2011-02-17 62 views
12

我正在構建一個尋寶者應用程序,我需要能夠隱藏標記並僅在某個縮放級別使其可見。標記在Google地圖中的可見性

我該如何做到這一點?

我使用自定義標記和谷歌地圖v3。

謝謝。

哦,什麼是奇怪的是,我可以在一定的縮放級別打開知名度去像下面的代碼:

var marker = new google.maps.Marker({ 
    draggable: false, 
    raiseOnDrag: false, 
    clickable: true, 
    icon: image, 
    shadow: shadow, 
    shape: shape, 
    map: map, 
    url: 'http://www.google.com/', 
    visible: true, 
    position: markerLatlng 
}); 

var zoomLevel; 
//marker.visible = false; 

google.maps.event.addListener(marker, 'click', function() { 
    window.location.href = marker.url; 
}); 

var infowindow = new google.maps.InfoWindow(
{ 
    content: 'Oh You Found Me!!!', 
    size: new google.maps.Size(25,25), 
    position: myLatlng 
}); 


google.maps.event.addListener(map, 'zoom_changed', function() { 
    zoomLevel = map.getZoom(); 

    if (zoomLevel == 16) { 

     marker.visible = false; 

     infowindow.open(map,marker); 

    } 
}); 

,但如果我扭轉marker.visibility這樣的:

var marker = new google.maps.Marker({ 

    draggable: false, 

    raiseOnDrag: false, 

    clickable: true, 

    icon: image, 

    shadow: shadow, 

    shape: shape, 

    map: map, 

    url: 'http://www.google.com/', 



    visible: false, 

    position: markerLatlng 

}); 

google.maps.event.addListener(map, 'zoom_changed', function() { 
    zoomLevel = map.getZoom(); 

    if (zoomLevel == 16) { 

     marker.visible = true; 

     infowindow.open(map,marker); 

    }  
}); 

標記不會顯示在地圖上。

+0

乾杯,工作。感覺有點傻了,現在marker.visible = true;其實是問題,這只是我的語法。謝謝。 – 2011-02-18 09:33:43

回答

28

調用setVisible的正確方法是marker.setVisible(false);

5

如果你想設置標誌的初始化,而不是作爲一種方法知名度後 - 事實上,使用以下語法(見docs):

marker = new google.maps.Marker({ 
    map: map, 
    visible: false, // <------ 
});