Dans l'API Google Maps v2, si je voulais supprimer tous les marqueurs de carte, je pouvais simplement le faire :
map.clearOverlays();
Comment puis-je faire cela dans l'API Google Maps v3 ?
En regardant l'[API de référence][1], je ne comprends pas bien.
[1] : http://code.google.com/apis/maps/documentation/v3/reference.html
Il semble qu'une telle fonction n'existe pas encore dans la V3.
Les gens suggèrent de garder les références à tous les marqueurs que vous avez sur la carte dans un tableau. Et ensuite, lorsque vous voulez tous les supprimer, il suffit de faire une boucle dans le tableau et d'appeler la méthode .setMap(null) sur chacune des références.
[Voir cette question pour plus d'informations et de codes][1].
Ma version :
google.maps.Map.prototype.markers = new Array();
google.maps.Map.prototype.getMarkers = function() {
return this.markers
};
google.maps.Map.prototype.clearMarkers = function() {
for(var i=0; i<this.markers.length; i++){
this.markers[i].setMap(null);
}
this.markers = new Array();
};
google.maps.Marker.prototype._setMap = google.maps.Marker.prototype.setMap;
google.maps.Marker.prototype.setMap = function(map) {
if (map) {
map.markers[map.markers.length] = this;
}
this._setMap(map);
}
Le code est une version éditée de ce code http://www.lootogo.com/googlemapsapi3/markerPlugin.html J'ai supprimé le besoin d'appeler addMarker manuellement.
Pour
Contre
google.maps.Map.prototype.markers = new Array();
google.maps.Map.prototype.addMarker = function(marker) {
this.markers[this.markers.length] = marker;
};
google.maps.Map.prototype.getMarkers = function() {
return this.markers
};
google.maps.Map.prototype.clearMarkers = function() {
for(var i=0; i<this.markers.length; i++){
this.markers[i].setMap(null);
}
this.markers = new Array();
};
Je ne pense pas qu'il y en ait une dans la V3, j'ai donc utilisé l'implémentation personnalisée ci-dessus.
Clause de non-responsabilité : Je n'ai pas écrit ce code mais j'ai oublié de conserver une référence lorsque je l'ai intégré à ma base de code et je ne sais donc pas d'où il vient.
La fonction "set_map" affichée dans les deux réponses semble ne plus fonctionner dans l'API Google Maps v3.
Je me demande ce qui s'est passé
Mise à jour:
Il semble que Google ait modifié son API de telle sorte que "set_map
" ; ne soit pas "setMap
" ;.
http://code.google.com/apis/maps/documentation/v3/reference.html