wie kann ich bestimmen, Wann Google Maps loadGeoJson abgeschlossen?
Habe ich ein Szenario, wo Benutzer können speichern Ihre mapping-styling. Wenn ein Benutzer zurück navigiert zur Seite mit der Karte sollte es die Karte anzuzeigen die Weise, wie es vorher war.
Kann der Benutzer die Farben wechseln von Regionen und Grenzen hinweg so gut wie für thematische Formatvorlagen basierend auf demografischen Daten.
Mit der Veröffentlichung der neuen loadGeoJson ich habe großen Erfolg mit Beschleunigung meine Anwendung, Anfangs war ich Zeichnung, die alle von den Regionen selbst, über JS. Dies war causeing einige Speicher-Probleme bei rund 1500 Standorten. Diese neue Funktion verringert Sie sich deutlich. Ich bin die Wahl zu generieren, die die Eigenschaften der Objekte auf der server-Seite und geben Sie nur eine URL, um die Karte zu Rendern. Diese URL übergeben wird, zusammen mit allen anderen Stil-Informationen neu erstellen Sie die Karte wie es vorher war.
Dem problem bin ich begegnet, ist, wenn ich versuche, gelten die stylings, die Karte noch nicht abgerufen die Liste der features werden auf der Karte angezeigt.
Suche durch die Dokumentation sehe ich keine Veranstaltungen, die speziell für die loadGeoJson Methode, aber sah für addfeature und setgeometry, aber keines dieser Ereignisse ausgelöst wird, wenn mit der loadGeoJson Methode.
Dies wurde alles geschrieben in Typoskript und versucht einzuhalten, um eine ziemlich strenge MVVM-Ansatz mit Knock-out, um alle änderungen der Benutzeroberfläche für mich über Bindung.
Gibt es ein anderes Ereignis kann ich tie-in, um zu sehen, wenn dieses Verfahren abgeschlossen ist, so kann ich meine Stile angemessen?
Gibt es einen anderen Ansatz, wo ich kann Backen in einem "warte" irgendwo? .
- Könnten Sie den link der Dokumentation?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie hören
addFeature
event abgefeuert wird für jedes feature in Ihren json. wenn Sie z.B. verwenden https://storage.googleapis.com/maps-devrel/google.json sechs Ereignisse ausgelöst werden nach die json-Anforderung abgeschlossen ist, d.h. wenn die google-api startet das hinzufügen von Funktionen aus der json-Datei:Sehen Sie die demo hier : http://jsbin.com/ofutUbA/4/edit
addFeature
Veranstaltung können wir sicher davon ausgehen, dass alle json-Daten empfangen werden? Danke..data.addListener
es werden nur Ereignisse für Funktionen erstellt, die aus.data
und daherloadGeoJson
aber Sie haben verschleiert den code, und ich kann nicht von innen sehenaddfeature event ist definitiv aufgerufen loadGeoJson, wenn nicht für Sie ist, werden einige setup-Fehler.
loadGeoJson hat eine optionale callback-parameter, welche aufgerufen wird, nachdem alle Funktionen geladen wurden und hat die Funktionen als parameter.
https://developers.google.com/maps/documentation/javascript/3.exp/reference
Können Sie signalisieren Ihren code von diesem Rückruf, der kann es mit der Verarbeitung Fort.
Könnten Sie auch wickeln loadGeoJson in ein Versprechen, und lösen die Versprechen in loadGeoJson Rückruf.
Könnte man annehmen, wenn Sie mit Knock-out auf vielleicht binden auf einige Zuhörer, oder befestigen Sie die Zuhörer zu einer Veranstaltung.
Meisten Ereignisse durch JavaScript immer eine callback-Funktion, das ist gut practive, so dass, wenn eine Funktion die Ausführung beendet hat einige lange
I/O
oderDatabase
Abfrage, es wird sofort ausführen dieser Funktion. Offensichtlich, dass der Rückruf wird von Ihnen definiert.Wenn Sie vertraut sind mit ko, dann würden Sie wissen, dass, sobald die Daten abgerufen wurden und passieren Sie durch ein
observable
dassobservable
aktualisieren würde, seine Bindung.Hier ist der link für die Erweiterung der observablen: knockout js
Soweit ich verstehen kann, aus Sie Frage, diese
loadGeoJson
ist es server-Seite? Wenn dem so ist, brauchen Sie eine lange Umfrage von client-Seite und binden Sie in das: