I Google Maps API v2, hvis jeg ønsket å fjerne alle kartmarkørene, kunne jeg ganske enkelt gjøre det:
map.clearOverlays();
Hvordan gjør jeg dette i Google Maps API v3?
Når jeg ser på Referanse-API, er det uklart for meg.
Det ser ut til at det ikke finnes noen slik funksjon i V3 ennå.
Folk foreslår å holde referanser til alle markører du har på kartet i en matrise. Og når du vil slette dem alle, er det bare å løpe gjennom matrisen og ringe .setMap (null) -metoden på hver av referansene.
Se dette spørsmålet for mer info / kode.
Min versjon:
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);
}
*Koden er redigert versjon av denne koden http://www.lootogo.com/googlemapsapi3/markerPlugin.html Jeg fjernet behovet for å ringe addMarker manuelt.
Fordeler
Ulemper
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();
};
Jeg tror ikke det er en i V3, så jeg brukte den tilpassede implementeringen ovenfor.
Ansvarsfraskrivelse: Jeg skrev ikke denne koden, men jeg glemte å beholde en referanse da jeg flettet den inn i kodebasen min, så jeg vet ikke hvor den kom fra.
Funksjonen "set_map" i begge svarene ser ikke lenger ut til å fungere i Google Maps v3 API.
Jeg lurer på hva som skjedde
Oppdatering:
Det ser ut til at Google har endret sitt API slik at "set_map" ikke er "setMap".
http://code.google.com/apis/maps/documentation/v3/reference.html