2011-02-17 3 views
12

Je suis en train de créer une application de recherche de trésors et je dois être capable de cacher un marqueur et de le rendre visible à un certain niveau de zoom.Visibilité des marqueurs Dans Google Maps

Comment puis-je y parvenir? J'utilise un marqueur personnalisé et google maps v3.

Merci.

Oh, et ce qui est bizarre est que je peux tourner la visibilité hors à un certain niveau de zoom comme dans le code suivant:

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

    } 
}); 

mais si j'inverser la marker.visibility tel que:

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

    }  
}); 

Le marqueur n'apparaîtra pas du tout sur la carte.

+0

Bravo, ça a marché. Sentez-vous un peu idiot maintenant que marker.visible = true; était en fait le problème et c'était juste ma syntaxe. Merci. –

Répondre

28

La bonne façon de setVisible est marker.setVisible(false);

5

Si vous souhaitez définir la visibilité à l'initialisation du marqueur à la place comme une méthode après le fait, utilisez la syntaxe suivante (voir le docs):

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