[英]Remove pins from google map
I have the code below. 我有下面的代码。 What I'm trying to do, is when I'll reach a specific zoom point(>8) then to display some pins on the map. 我想做的是,当我到达特定的缩放点(> 8),然后在地图上显示一些图钉时。 This is working fine. 一切正常。 However, as you can see below I have and an else statement. 但是,正如您在下面看到的,我有一个else语句。 In this else statement I want to remove the pins in any occasion the zoom is less than 8. Unfortunately, I can't find a solution. 在本else语句中,我想在缩放小于8的任何情况下都将其移除。不幸的是,我找不到解决方案。 Can anyone help me? 谁能帮我?
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: 更新:
The problem is the I have and other pins apart from these. 问题是我还有其他引脚。 So, I want explicitely to remove the aforementioned pins. 因此,我想明确地删除上述针脚。 Moreover, when I reach on zoom>8 then, when I go to zoom<8 the pin is still be displayed 此外,当我达到zoom> 8时,当我进入zoom <8时,该图钉仍会显示
I would try one of these: 我会尝试其中的一种:
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)
});
marker.conditionalVisibility = true; //first option
conditionalMarkers.push(marker); //second option, conditionalMarkers is an array declared globally
}
}
else {
//first option
for (var i = 0; i < <?= $store_records ?>; i++) {
if (marker.conditionalVisibility)
marker.setMap(null);
}
//second option
for (var i = 0; i < conditionalMarkers.length; i++) {
marker.setMap(null);
}
conditionalMarkers.length = 0;
or something similar. 或类似的东西。
Hope this helps 希望这可以帮助
Try this in the else block this way: 以这种方式在else块中尝试以下操作:
} else {
for (var i = 0; i < <?= $store_records ?>; i++) {
$('#map_canvas').gmap('clear', 'overlays');
$('#map_canvas').gmap('clear', 'markers');
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.