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?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top