Ist es o.k? clearoverlays () in GMap API V2 zu Google Maps API V3?
-
11-09-2019 - |
Frage
Ich verwende Google Maps API V3.
I wandern Meine Website GMap API V2 -> V3. aber verkraftet, weil ich die clearoverlays () -Methode verwenden ein vorhandenes Objekt auf einmal in der V2 zu löschen, und es gelöscht, ein Objekt in dem, was war in V3 einzeln aufgehoben.
V2
map.clearOverlays();
V3
map.set_visible(false);
popup.close();
ist es OK? oder andere Lösungen?
Lösung
Ich konnte nichts finden Sie im Handbuch V3 Referenz die die Overlays auf der Karte erstellt ausdrücklich klar, und ich could't alle Code-Beispiele finden, die dies auch nicht.
Ich denke, dass es wichtig ist, die V3 API darauf hinzuweisen, ist eine sehr frühe Entwicklerversion und enthält nur ein sehr einfach Satz von Funktionen. Es ist durchaus möglich, dass sie einfach noch nicht auf diese Funktionalität bekommen haben. Wenn Sie auf einem Live-System arbeiten, empfehle ich Ihnen mit V2 bleiben, bis V3 reifere ist.
Es gibt einen Beitrag auf der Entwicklergruppe, das die Frage nach fragt, wie die API sollte mit einer sehr nützlichen Antwort aus dem V3 Produktmanager verwendet werden:
Misconception über v3 Optionen
EDIT:
OK, scheint es, wie diese Funktionalität von der API fehlt absichtlich, um es leicht zu halten. Sie sollten den Überblick über Ihre Overlay halten Objekte selbst und rufen:
object.set_map(null);
um sie zu entfernen.
Andere Tipps
Hier ist, was ich tue:
ein leeres Arrayliteral, drücken Sie die Markierungen, wie Sie sie machen und sie dann vertreiben, wenn nötig
var eviction_list = [];
function evictMarkers() {
// clear all markers
$(eviction_list).each(function () {
this.set_map(null);
});
// reset the eviction array
eviction_list = [];
}
//in function adding markers
......
marker = new google.maps.Marker({
position: results[0].geometry.location,
map: map,
title: elem.title
});
eviction_list.push(marker);
......
//to clear all markers
evictMarkers();
Wie hongwei richtig erwähnt, wird die Funktion aufgerufen setMap (), nicht set_map ().
Siehe http://code.google.com/ apis / maps / documentation / v3 / overlays.html # Ausblendenanzeigen
Das Problem ist, dass setMap(null)
langsam sein kann, wenn Sie viele Markierungen haben.