2016-03-27 99 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(); 
    } 
} 
});