[英]marker cluster in google geocode
我正在使用google地理編碼在Google地圖上根據站點名稱顯示標記,並且工作正常。 現在,我有兩個相同的站點名稱,並且圖表僅顯示一個標記的情況。 它會覆蓋標記。 所以,我想到了群集,但是,我不知道如何在下面的代碼中實現?
<script>
$(document).ready(function () {
var map;
var elevator;
var myOptions = {
zoom: 4,
center: new google.maps.LatLng(39.639537564366684, -97.03125),
mapTypeId: 'terrain'
};
map = new google.maps.Map($('#map')[0], myOptions);
//info window
var infowindow = new google.maps.InfoWindow({});
var addresses = [<?php $numItems = count($val); $i=0; foreach($val as $data){ echo "['".$data['name']."','".$data['resp']."']"; if(++$i !== $numItems) {echo ",";}}?>];
//var colordot =[];
//alert(addresses);
for (var x = 0; x < addresses.length; x++) {
//alert(addresses[x][1]);
var resp = addresses[x][1];
//alert(colordot[x]);
$.getJSON('http://maps.googleapis.com/maps/api/geocode/json?address=' + addresses[x][0] + '&sensor=false', null, function(resp) {
return function(data) {
var p = data.results[0].geometry.location;
var address = data.results[0].formatted_address;
var latlng = new google.maps.LatLng(p.lat, p.lng);
if (resp >= 50) {
var img= 'img/red-dot.png';
}
else{
var img= 'img/green-dot.png';
}
var marker = new google.maps.Marker({
icon: img,
position: latlng,
map: map
});
// Adding a click event to the marker
google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent('<div><strong>SiteName : ' + address + '</strong><br><strong>Avg. Response : ' + resp + '</strong>');
infowindow.open(map, this);
});
}
}(resp));
}
});
</script>
我認為您的意思是,您有2個標記彼此重疊,因為它們共享完全相同的坐標,並且您想表明它們確實是分開的標記。
在這種情況下,請使用MarkerClusterer
https://developers.google.com/maps/documentation/javascript/marker-clustering
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.