我有下面的代碼。我想要做的是當我達到特定的縮放點(> 8),然後在地圖上顯示一些引腳。這工作正常。但是,正如你可以在下面看到的,我有一個和其他聲明。在這個else語句中,我想在任何情況下移除引腳,縮放比例小於8.不幸的是,我找不到解決方案。誰能幫我?從谷歌地圖刪除別針
var map = $('#map_canvas').gmap('get', 'map');
var zoomLevel = 1;
//var marker;
$(map).addEventListener('zoom_changed', function() {
var i, prevZoomLevel;
prevZoomLevel = zoomLevel;
map.getZoom() < 15 ? zoomLevel = 1 : zoomLevel = 2;
if (prevZoomLevel === zoomLevel) {
if (map.getZoom() > 8) {
for (var i = 0; i < <?= $store_records ?>; i++) {
$('#map_canvas').gmap('addMarker', {
'position': new google.maps.LatLng(store_data.records[i].lat, store_data.records[i].lng),
'icon': imageStores,
'visible': true
}).click(function() {
$('#map_canvas').gmap('openInfoWindow', { 'content': store_data.records[i].name }, this);
});
//marker = new google.maps.Marker({
//'position': new google.maps.LatLng(store_data.records[i].lat, store_data.records[i].lng)
// });
}
}
else {
for (var i = 0; i < <?= $store_records ?>; i++) {
//marker.setVisible(false);
}
}
}
});
UPDATE:
的問題是我已經和除了這些其它引腳。所以,我想明確地刪除上述的引腳。此外,當我到達的變焦> 8,然後,當我去放大< 8引腳仍然顯示
prevZoomLevel = zoomLevel; map.getZoom()<15? zoomLevel = 1:zoomLevel = 2; 不應該是 prevZoomLevel = zoomLevel; zoomLevel = map.getZoom()<15? zoomLevel = 1:zoomLevel = 2; 此外,你試過 marker.setMap(null); 請解釋更詳細的情況。 – slawekwin
編輯:將它們存儲在數組中或添加某種標誌,指示其條件可見性 – slawekwin
@slawekwin您能否通過提供答案來幫助我? –