Для этой карты Германии я представляю газетные киоски, которые решили бойкотировать листовку ненависти. Свернутая карта с 14 записями пока работает нормально. Но есть некоторые регионы, в которых есть более одного магазина, а на картах Google отображается только один маркер:
Я знаю, что на самом деле их больше, и если вы увеличите эти позиции, появятся другие маркеры. Но лучше кластеризация, показывающая количество маркеров, если вокруг этого маркера их больше. Я нашел это на GitHub: Marker Clusterer, но даже в простом примере я не знаю, как добавить эту библиотеку на мою карту. Может быть, я немного запутался с циклом for, чтобы показать маркеры.
Источник моей карты в основном следующий:
<html><head>
<style type="text/css">
html { height: 100% } body { height: 100%; margin: 0; padding: 0; } a { text-decoration:none; color:#000; } #map_canvas { height: 100% }
</style>
<script type="text/javascript"
src="https://maps.googleapis.com/maps/api/js?key=ACCESSTOKEN&sensor=false">
</script>
<script type="text/javascript">
var Orte = [
[51.418288,7.339213,"EDEKA Schwalemeyer, Bommerfelder Ring 110, 58452 Witten, Nordrhein-Westfalen. Quelle: http://goo.gl/jQe2Oo"],
[51.418266,7.342316,"Bonema Trinkhalle & Minishop, Bommerfelder Ring 86, 58452 Witten, Nordrhein-Westfalen. Quelle: http://goo.gl/jQe2Oo"],
[51.422492,7.338546,"Kiosk, Auf dem Brenschen 21, 58452 Witten, Nordrhein-Westfalen. Quelle: http://goo.gl/jQe2Oo"],
[51.415127,7.337124,"Holzofenbäckerei, Elberfelder Straße 11, 58452 Witten, Nordrhein-Westfalen. Quelle: http://goo.gl/jQe2Oo"]
];
function initialize()
{
var map = new google.maps.Map(document.getElementById('map_canvas'));
map.controls[google.maps.ControlPosition.BOTTOM_LEFT].push(legende);
var bounds = new google.maps.LatLngBounds();
var infowindow = new google.maps.InfoWindow();
var image = {url:"bildfrei.png",size:new google.maps.Size(32,32),};
for (var i in Orte)
{
var p = Orte[i];
var latlng = new google.maps.LatLng(p[0],p[1]);bounds.extend(latlng);
var marker = new google.maps.Marker({position:latlng,map:map,title:p[2],icon:image});
google.maps.event.addListener(marker, 'click', function() {infowindow.setContent(this.title);infowindow.open(map, this);});
}
map.fitBounds(bounds);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body onload="initialize()">
<div id="map_canvas" style="width:100%; height:100%"></div>
</body>
</html>
Я уже пытался добавить markerclusterer_compiled.js и var markerCluster = new MarkerClusterer(map, markers);
и markerCluster
ниже var map = new google.maps.Map(document.getElementById('map_canvas'));
... но безуспешно.
Может ли кто-нибудь помочь мне? :-)
ОБНОВЛЕНИЕ: версия с кластеризатором js-библиотеки:
<html><head>
<style type="text/css">
html { height: 100% } body { height: 100%; margin: 0; padding: 0; } a { text-decoration:none; color:#000; } #map-container { padding: 6px; border-width: 1px; border-style: solid;border-color: #ccc #ccc #999 #ccc;-webkit-box-shadow: rgba(64, 64, 64, 0.5) 0 2px 5px;-moz-box-shadow: rgba(64, 64, 64, 0.5) 0 2px 5px; box-shadow: rgba(64, 64, 64, 0.1) 0 2px 5px; width: 600px; } #map_canvas { height: 100% }
</style>
<script type="text/javascript"
src="https://maps.googleapis.com/maps/api/js?key=ACCESSTOKEN&sensor=false">
<script>
var script = '<script type="text/javascript" src="markerclusterer';
if (document.location.search.indexOf('compiled') !== -1) {
script += '_compiled';
}
script += '.js"><' + '/script>';
document.write(script);
</script>
</script>
<script type="text/javascript">
var Orte = [
[51.418288,7.339213,"EDEKA Schwalemeyer, Bommerfelder Ring 110, 58452 Witten, Nordrhein-Westfalen. Quelle: http://goo.gl/jQe2Oo"],
[51.418266,7.342316,"Bonema Trinkhalle & Minishop, Bommerfelder Ring 86, 58452 Witten, Nordrhein-Westfalen. Quelle: http://goo.gl/jQe2Oo"],
[51.422492,7.338546,"Kiosk, Auf dem Brenschen 21, 58452 Witten, Nordrhein-Westfalen. Quelle: http://goo.gl/jQe2Oo"],
[51.415127,7.337124,"Holzofenbäckerei, Elberfelder Straße 11, 58452 Witten, Nordrhein-Westfalen. Quelle: http://goo.gl/jQe2Oo"]
];
function initialize()
{
var map = new google.maps.Map(document.getElementById('map_canvas'));
var markerCluster = new MarkerClusterer(map, marker);
map.controls[google.maps.ControlPosition.BOTTOM_LEFT].push(legende);
var bounds = new google.maps.LatLngBounds();
var infowindow = new google.maps.InfoWindow();
var image = {url:"bildfrei.png",size:new google.maps.Size(32,32),};
for (var i in Orte)
{
var p = Orte[i];
var latlng = new google.maps.LatLng(p[0],p[1]);bounds.extend(latlng);
var marker = new google.maps.Marker({position:latlng,map:map,title:p[2],icon:image});
google.maps.event.addListener(marker, 'click', function() {infowindow.setContent(this.title);infowindow.open(map, this);});
}
map.fitBounds(bounds);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body onload="initialize()">
<div id="map-container">
<div id="map_canvas" style="width:100%; height:100%"></div>
</div>
</body>
</html>
Uncaught ReferenceError: legende is not defined
- person geocodezip   schedule 04.04.2015