2016-03-27 79 views
1

我被JavaScript工作的Android应用程序,我想知道我怎么能隐藏地图标记,当我缩小小于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, 
 
    });   
 
    }

回答

2

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

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); 
    } 
}); 

注意的是,上述方法不删除该标记。它只需 从地图中删除标记。如果您希望删除 标记,则应从地图中将其删除,然后将标记 自身设置为空。

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, 
     });  
    } 

为隐藏

if (zoomLevel<15) { 
     beachMarker.setMap(null); 
    } 
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(); 
    } 
} 
});