1
我正在使用Google Maps API V3在地圖上放置一些標記。由於有多個標記具有相同的LatLng,因此可能會有重疊的標記,因此我嘗試使用setMap(null)
和setVisible(false)
刪除除第一個以外的所有重疊標記。setVisible(false)刪除標記,但不刪除setMap(null)
問題:當標記上使用setMap(null)
時,該函數似乎無法執行任何操作,標記仍保留在地圖上。但是,如果使用setVisible(false)
,標記確實消失。
任何想法爲什麼會發生這種情況?
我也注意到,所使用的標記聚類器插件做了統計所有重複的標記,已經setVisible(false)
和setMap(null)
,
JS代碼
$.getJSON(getJSON_url,
{
someValues: someValues
},
function(json){
for(i = 0; i < json.length; i++) {
// Check if marker already exist at that LatLng
var duplicate_marker = 0;
for(var j = 0; j < markers.length; j++) {
// If marker exists
if(json[i].lat == markers[j].getPosition().lat() && json[i].lng == markers[j].getPosition().lng()) {
console.log(json[i].lat + ' ' + json[i].lng + ' ' + i + ' ' + markers[j].getPosition().lat() + ' ' + markers[j].getPosition().lng() + ' ' + j);
duplicate_marker = 1;
break;
}
}
// Place markers on map
var latLng = new google.maps.LatLng(json[i].lat, json[i].lng);
var marker = new google.maps.Marker({
position: latLng,
icon: base_url + 'images/template/markers/listing.png',
map: map
});
markers.push(marker);
// Make duplicate marker invisible
if(duplicate_marker) {
//marker.setMap(null);
marker.setVisible(false);
}
爲什麼不創建重複標記?或者至少在沒有'map'參數的情況下創建標記,並在檢查後設置它? – hamczu 2012-04-03 10:58:32