Google Maps API v2'de, tüm harita işaretleyicilerini kaldırmak istersem, bunu basitçe yapabilirdim:
map.clearOverlays();
Bunu Google Maps API v3'te nasıl yapabilirim?
Referans API]1'e baktığımda, bu benim için net değil.
Görünüşe göre V3'te henüz böyle bir işlev yok.
İnsanlar haritada sahip olduğunuz tüm işaretleyicilerin referanslarını bir dizide tutmanızı önerir. Ve sonra hepsini silmek istediğinizde, sadece dizi boyunca döngü yapın ve referansların her birinde .setMap(null) yöntemini çağırın.
Daha fazla bilgi/kod için bu soruya bakın
Benim versiyonum:
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);
}
Kod bu kodun düzenlenmiş halidir http://www.lootogo.com/googlemapsapi3/markerPlugin.html addMarker'ı manuel olarak çağırma ihtiyacını kaldırdım.
Artıları
Eksiler
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();
};
V3'te bir tane olduğunu sanmıyorum, bu yüzden yukarıdaki özel uygulamayı kullandım.
Sorumluluk Reddi: Bu kodu ben yazmadım, ancak kod tabanıma birleştirirken bir referans tutmayı unuttum, bu yüzden nereden geldiğini bilmiyorum.
Her iki yanıtta da yayınlanan "set_map
" işlevi artık Google Haritalar v3 API'sinde çalışmıyor gibi görünüyor.
Ne olduğunu merak ediyorum.
Güncelleme:
Görünüşe göre Google API'sini "set_map
" değil "setMap
" olacak şekilde değiştirmiş.
http://code.google.com/apis/maps/documentation/v3/reference.html