Frage

Ich versuche, einige Netzwerkanalyse für einen Kunden zu tun. Die bereitgestellte Straßennetz GIS Schicht ist von schlechter Qualität; deshalb muss ich auf Google Maps zurückgreifen mich zwischen 200 Punkte kürzesten Weg zu schaffen, Zeit und Distanzmatrizen zwischen jedem Punkt zu erzeugen.

gibt es eine Möglichkeit i eingeben kann die Schicht als eine Reihe von Punkten KML Ausgänge des Abstandes und der Zeit zwischen diesen Punkten zu erhalten?

, wenn diese über die api machbar ist, haben Sie irgendwelche Hinweise oder Vorschläge, wie solch ein Skript zu schreiben?

Bearbeiten das ideale Endergebnis wäre eine CSV-Datei der folgenden Form sein:

node_1, node_2, distance, travel_time
node_n, node_m, distance, travel_time
War es hilfreich?

Lösung

Ich will nicht das ganze Skript für Sie schreibt, aber dies kann mit dem Karten-API durchgeführt werden. Öffnen Sie der Karten-Sandbox und fügen Sie dem onGDirectionsLoad Funktion :

alert(gdir.getDistance().meters);

Sie können die Dokumentation finden hier - ein getDuration () ist ebenfalls verfügbar. Dann alles, was Sie tun müssen, ist Thema eine neue Anforderung einmal eine fertigen, immer Richtungen für jedes Paar von Start- und Endpunkt.

Beachten Sie jedoch, dass, wenn Sie auf 200 * 200 Pfade Planung sind immer, kann Google entscheiden Sie bewerten zu einem bestimmten Zeitpunkt zu begrenzen. Verwenden Sie diese Methode auf eigene Gefahr und mit einer Verzögerung zwischen den Anforderungen.

Beachten Sie auch, dass Googles builtin KML-Unterstützung doesn‘ t scheinen Sie die Liste der Punkte zur Unterstützung zu geben - das macht Sinn, da der Kunde nur diejenigen, die aktuell auf dem Bildschirm haben. Möglicherweise müssen Sie Ihre eigene KML-Loader schreiben, wenn Sie KML als Eingabeformat verwenden möchten. Oder verwenden Sie ein einfacheres Format, wie in diesem Beispiel .

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