Dans Google Maps V3, existe-t-il un moyen de vérifier si un marqueur est réellement présent sur la carte?
J'ai des marqueurs qui disparaissent lorsqu'on clique dessus. J'aimerais une certaine logique pour vérifier la visibilité actuelle du marqueur.
Par exemple:
var start_marker = null;
start_marker = new google.maps.Marker({ position: location, map: map, clickable: true });
google.maps.event.addListener(start_marker, 'click', function(event) {
start_marker.setMap(null);
});
// ... Later in code: check whether marker is currently visible.
console.log('Type of start_marker is now: ' + typeof(start_marker));
J'espérais que cela me donnerait un type nul quand le marqueur n'est pas visible, mais en fait c'est toujours un objet.
Alors, comment puis-je vérifier si ce marqueur est visible sur la carte?
Merci!
Cette ligne retournera true
si la position de marker
est contenue sous la limite map
actuelle, et retournera false
sinon.
map.getBounds().contains(marker.getPosition())
J'espère que ça aide, à la vôtre!
start_marker.getMap()
Renverrait null si vous aviez précédemment utilisé start_marker.setMap (null); comme dans votre exemple.
Cela dit, pourquoi ne pas utiliser setVisible et getVisible si vous souhaitez simplement masquer et afficher des marqueurs?
Si vous souhaitez simplement masquer/afficher le marqueur, vous pouvez utiliser la méthode setVisible du marqueur comme:
start_marker.setVisible(false);//to hide
start_marker.setVisible(true);//to show
car setMap (null) ne masque pas le marqueur mais le supprime de la carte.
Vous pouvez ensuite utiliser getVisible () pour obtenir la visibilité du marqueur comme:
console.log('Type of start_marker is now: ' + start_marker.getVisible());
Vous pouvez les lire ici: https://developers.google.com/maps/documentation/javascript/overlays#Markers . https://developers.google.com/maps/documentation/javascript/overlays
Je pense que vous devez changer votre logique.Pourquoi ne pas stocker vos marqueurs dans un tableau et les supprimer complètement de ce tableau quand ils sont cliqués.Alors les marqueurs restants sont les visibles.
À votre santé