缩小时如何隐藏标记?

时间:2016-03-27 07:38:33

标签: javascript android google-maps

我正在通过JavaScript开发Android应用程序,我想知道当我使用Google地图缩小小于15时,如何隐藏地图标记,这是我使用的代码:

function success1(position) {
    var bangalore = { lat: 24.7511, lng: 46.6568 };
    var gift = { lat: 24.7906, lng: 46.6312 };
    var map = new google.maps.Map(document.getElementById('mapp'), {
    zoom: 17,
    streetViewControl: false,
    panControl: false,
    disableDoubleClickZoom: true,
    TiltGestures: false,
    AllGestures: false,
    ZoomGestures: false,
    ScrollGestures: false,
    zoomControl: false,
    scrollwheel: false,
    center: bangalore
    });        
    var image = 'http://iconbug.com/download/size/32/icon/7605/yellow-gift-box/';
    zoom = map.getZoom();
    var zoom = map.getZoom();
    var beachMarker = new google.maps.Marker({
    position: gift,
    map: map,
    icon: image,
    });         
    }

3 个答案:

答案 0 :(得分:2)

要从地图中删除/隐藏marker,请调用setMap()方法,将null作为参数传递。

marker.setMap(null);

.setMap(null)函数将使标记不在地图上显示。您也可以在隐藏多边形和折线时使用它。

google.maps.event.addListener(map, 'zoom_changed', function() { 
    var zoom = map.getZoom(); 
    if (zoom <= 15) { 
        marker.setMap(null); 
    } else { 
        marker.setMap(map); 
    } 
}); 
  

请注意,上述方法不会删除标记。它很简单   从地图中删除标记。如果你想要删除   标记,您应该从地图中删除它,然后设置标记   本身为null。

答案 1 :(得分:0)

缩放级别的显示/隐藏标记没有特定属性,您必须检查缩放级别

  var image = 'http://iconbug.com/download/size/32/icon/7605/yellow-gift-box/';
  if (zoomLevel>=15 ) { 
      var beachMarker = new google.maps.Marker({
        position: gift,
        map: map,
        icon: image,
      });    
  } 

for hide

  if (zoomLevel<15 ) { 
      beachMarker.setMap(null);
  }

答案 2 :(得分:0)

这是java代码。希望你能把它转换成Javascript。

设置相机更改侦听器。如果新的缩放级别小于之前的缩放级别,则表示发生缩小,因此隐藏标记。

mMap.setOnCameraChangeListener(new OnCameraChangeListener() {

private float currentZoom = mMap.zoom;

@Override
public void onCameraChange(CameraPosition newPosition) {
    if (newPosition.zoom < currentZoom){
        // remove a particular marker
        yourMarker.remove();
       // or remove all the markers
       mMap.clear();
    }
}
});