Wenn ich in Google Maps API v2 alle Kartenmarkierungen entfernen wollte, konnte ich das einfach tun:
map.clearOverlays();
Wie kann ich dies in Google Maps API v3 tun?
Wenn ich mir die Referenz-API ansehe, ist das für mich unklar.
Es scheint, dass es in V3 noch keine solche Funktion gibt.
Die Leute schlagen vor, Verweise auf alle Marker auf der Karte in einem Array zu speichern. Und dann, wenn Sie sie alle löschen wollen, einfach Schleife durch das Array und rufen Sie .setMap(null) Methode auf jeder der Referenzen.
Siehe diese Frage für weitere Informationen/Code
Meine 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);
}
*Der Code ist eine bearbeitete Version dieses Codes http://www.lootogo.com/googlemapsapi3/markerPlugin.html Ich habe die Notwendigkeit, addMarker manuell aufzurufen, entfernt.
Vorteile
Nachteile
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();
};
Ich glaube nicht, dass es eine in V3 gibt, also habe ich die obige benutzerdefinierte Implementierung verwendet.
Haftungsausschluss: Ich habe diesen Code nicht geschrieben, aber ich habe vergessen, einen Verweis beizubehalten, als ich ihn in meine Codebasis einfügte, so dass ich nicht weiß, woher er stammt.
Die Funktion "set_map
", die in beiden Antworten gepostet wurde, scheint in Google Maps v3 API nicht mehr zu funktionieren.
Ich frage mich, was passiert ist
Aktualisierung:
Es scheint, dass Google seine API so geändert hat, dass "set_map
" nicht "setMap
" ist.
http://code.google.com/apis/maps/documentation/v3/reference.html