Erstellen von Fahrzeitpolygonen mit Open Source-Tools?

55

Verwendet jemand Open-Source-Tools und / oder -Daten, um Laufzeitpolygone zu generieren, die von einem bestimmten Standort ausgehen? Ich habe zum Beispiel ESRI-Produkte wie Network Analyst und Business Analyst verwendet, um Polygongrenzen zu generieren, die die maximale Entfernung darstellen, die man von einem bestimmten Punkt innerhalb eines benutzerdefinierten Zeitraums (z. B. 5, 10 und / oder 8) entlang eines Straßennetzes zurücklegen kann 15 Minuten). Gibt es ähnliche Open Source- oder webbasierte Alternativen?

Ich habe diesen Beitrag gesehen, aber es gibt wirklich keine alternativen Optionen: Können Sie mit der Google Maps-API ein Reiseregionspolygon erstellen?

Ich war besonders neugierig zu wissen, ob jemand OpenStreetMap für die Analyse der Fahrzeit verwendet (oder verwenden kann)?

Gibt es auch eine Implementierung der Dienstprogramme pgRouting, die zum Generieren von Polygonen verwendet werden könnten? http://pgrouting.postlbs.org/

RyanDalton
quelle
Interessiert, die Antwort auf diese zu sehen. Meiner Meinung nach hat ESRI Vorrang vor Open-Source-Serverprodukten, vor allem, weil es die Geoverarbeitung in einem einfach zu bedienenden / zu konsumierenden Modell verfügbar macht.
Simon
Irgendwelche Updates zu dieser Frage? Ich bin wirklich daran interessiert, mit einem Open-Source-DT-Poly-Ersteller im Map-Scripting herumzuspielen.
Furlong
Ich kann noch keine definitive Antwort geben, da ich meine Arbeit an diesem Projekt pausieren musste. Da ich kein GRASS-Typ bin, gehe ich diesen Weg wahrscheinlich nicht, obwohl es so aussieht, als wäre es eine sehr praktikable Lösung. Im Moment neige ich jedoch dazu, das pgRouting zu verwenden, in das angeblich Alpha-Shapes-Funktionen integriert sind.
RyanDalton

Antworten:

52

Mit GRASS v.net.iso erhalten Sie ein Ergebnis wie das folgende:

Bildbeschreibung hier eingeben

Möglicherweise möchten Sie keinen konvexen Rumpfalgorithmus für diese Ausgabe ausführen. Stellen Sie sich die blauen Straßen vor: Ein konvexer Rumpf um sie herum würde viele Teile enthalten, die in der durch "blau" dargestellten Zeit nicht erreichbar sind.

Stattdessen möchten Sie sich vielleicht mit Alpha-Formen befassen (verwandte Frage: Was sind Definitionen, Algorithmen und praktische Lösungen für konkave Hüllen? )

Alpha-Form-Skizze

Sie können mit pgRouting und QGIS ( wie hier beschrieben ) Isochronen für die Fahrzeit erstellen . Ich habe in diesem Fall kein OSM verwendet, aber Sie können natürlich Ihr routingfähiges Netzwerk auf OSM-Basis aufbauen (siehe osm2pgrouting tool ).

Bildbeschreibung hier eingeben

( volle Auflösung )

Für eine reine PostGIS-Lösung können Sie die Alpha-Shape-Funktion pgRouting verwenden . Hier ist ein Vergleich der in pgRouting implementierten Alpha-Formen und des Ansatzes, den ich im vorherigen Update vorgestellt habe:

Bildbeschreibung hier eingeben

Farbige Bereiche stellen die Ergebnisse der Alpha-Formfunktion dar, schwarze Linien sind die Ergebnisse des zuvor beschriebenen Interpolationsansatzes. Die Einzugsgebiete sind mit den Alpha-Formen von pgRouting weniger detailliert. Es scheint auch keine Möglichkeit zu geben, den Wert von Alpha zu variieren, um detailliertere Darstellungen zu erstellen.

unterdunkelt
quelle
2
+1 auf Alpha-Formen! Lerne jeden Tag etwas Neues! Ich wusste, dass der konvexe Rumpf nicht genau die Lösung war, wusste aber nichts davon!
Darren Cope
1
Vielen Dank, dass Sie die Beschreibung in Ihrem Blog veröffentlicht haben. Ich habe definitiv vor, mir das bald anzuschauen und zu prüfen, ob ich es mit meinen Daten replizieren kann. Es sieht aber fantastisch aus!
RyanDalton
10

Mit GRASS 'v.net.iso kann das' Netzwerk 'für die Fahrzeit erstellt werden, das Sie in einen' konvexen Rumpf'-Befehl übergeben können, um ein Polygon zu erhalten. Vielleicht nicht ideal, aber würde funktionieren!

Darren Cope
quelle
1
Haha - schlag mich einfach!
om_henners
+1 für v.net.iso, aber nicht sicher über den konvexen Rumpf Teil - siehe meine Antwort
underdark
9

Möglicherweise können Sie v.net.iso von GRASS GIS verwenden. Es werden jedoch keine Polygone (AFAIK) erstellt, sondern die Zeilen werden nach Kostenklassen aus der Quelle aufgeteilt.

Für die Berechnung der Fahrzeiten aus OSM können Sie die Daten mit v.in.osm in GRASS importieren und mit v.net.iso die Kostenzonen berechnen. Wenn Sie Fahrzeiten haben möchten und möglicherweise keine Geschwindigkeitsbegrenzungen haben, können Sie die Geschwindigkeitsbegrenzung basierend auf einer Funktion der Straßenklasse berechnen.

om_henners
quelle
7

Sie können GraphHopper für diese Aufgabe verwenden, der auch verschiedene Modi wie Laufen oder Radfahren unterstützt und standardmäßig OpenStreetMap verwendet. Sie benötigen eine Java-Codierung, die das Straßennetz vom Ausgangspunkt aus untersucht, ähnlich wie die Dijkstra-Algorithmen, aber dann können Sie auch in Echtzeit (<0,5 s) Folgendes erhalten:

Bildbeschreibung hier eingeben

Der Code sammelt die Punkte, die Sie zB mit den JTS- Werkzeugen in ein Polygon umwandeln müssen . Die Geschwindigkeit hängt weitgehend von diesem letzten Schritt ab. Ohne diese wäre es auch bei großen Entfernungen unter 0,5s möglich.

Ein anderer Weg wäre mit OpenTripPlanner .

Karussell
quelle
6

osrm-isochrone ist eine kleine node.js-Bibliothek zum Generieren von Laufzeiten.

Morgan Herlocker
quelle
5

Vielleicht möchten Sie sich die offene Route360 ° JavaScript-API ansehen , die sowohl mit Leaflet- als auch mit Google Maps funktioniert. Es gibt Reisezeitpolygone für die folgenden Reisemodi zurück: Gehen, Fahrrad, Auto, Transit.

Reisezeitpolygone - NYC

Es ist kostenlos und Open Source und die Berichterstattung ist ziemlich gut. Auf der Website finden Sie viele verschiedene Tutorials zur Verwendung.

Yoya01
quelle
1
Die Clientseite ist Open Source, die Serverseite jedoch nicht IMO.
Karussell
2

Obwohl Sie Ihre Frage nicht direkt beantworten können, sollten Sie sich die Mapnificent API ansehen .

Mapnificent bietet dynamische Zeitkarten für öffentliche Verkehrsmittel für viele Städte in den USA und einige weltweit. Mit der Mapnificent-API können Sie Ihre Google Maps-Anwendung um Overlays für die Reisezeit im öffentlichen Verkehr erweitern.

Werfen Sie hier einen Blick auf London . Alt-Text

Simon
quelle
MapNificent ist Open Source?
Karussell
2

Ich bin auch auf die Netzwerkerweiterung von gvSIG gestoßen , aber die Konfigurationsdokumentation, die ich bisher gefunden habe, ist ziemlich schlecht. Ich habe große Hoffnungen, ich muss nur die Details für die Kostenberechnung herausfinden.

Ich habe die TIGER-Daten der US-Volkszählung für das Straßennetz verwendet und tatsächlich ein paar Polygone generiert, konnte aber die Kosteneinheiten nicht wirklich sinnvoll machen. Wenn jemand dieses Tool erfolgreich implementiert hat, würde ich gerne davon hören.

Ich habe auch Quantum Navigator für QGIS gefunden, aber keine aktuellen Updates gefunden.

RyanDalton
quelle
2

Das Ergebnis mit der konkaven Rumpfannäherung ist großartig und ich habe viel Inspiration von den obigen Bildern genommen. Mir ist jedoch aufgefallen, dass die Ergebnisse einige Bereiche umfassen können, die auf der Straße nicht zugänglich sind (wie zum Beispiel den Fluss). Kein Zweifel, dass dies kein Problem bei der Suche nach relevanten Merkmalen (Bevölkerungsschwerpunkte, Anzahl der Wohnungen) nach Entfernung oder Zeit vom Ursprung ist. Es funktioniert aber auch nur an jedem Ende eines Links. Auch dies ist in den allermeisten Fällen kein Problem (da die längsten Straßenverbindungen über eine Zugangskontrolle verfügen - Sie können sie normalerweise nicht verlassen, bis Sie zur nächsten Kreuzung / Kreuzung gelangen).

Trotzdem habe ich an einem anderen Ansatz gearbeitet, der auf den von PgRouting / (oder einem rohen "Dijkstra" -Algorithmus) zurückgegebenen LINKS basiert, die nach Zeit vom Ursprungsknoten geordnet sind. Es ist relativ einfach und kategorisiert Links nach Zeitbereichen und teilt auch Links auf, die die Zeitgrenzen überschreiten. Dann werden Links mit derselben Kategorisierung (z. B. 0-2 Minuten, 2-4 Minuten) um 250 Meter gepuffert.

John Steedman
quelle
1

Auf der diesjährigen WhereCampPDX gaben mehrere Vertreter von OpenStreetMap an, dass die Verwendung von OSM-Daten für das Routing in Europa weit verbreitet ist. In den USA ist dies jedoch seltener, da die Karte in der Regel nicht gut genug ist. Sie können einen OSM-basierten Routing-Service unter folgender Adresse auschecken:

http://openrouteservice.org/

jvangeld
quelle
1
Und kein Routing ist nicht dasselbe wie die Fahrzeit, aber es hängt damit zusammen.
Jvangeld
1
Es ist eine Art von Routing, aber "eins zu allen" begrenzt durch Zeit oder Entfernung
Karussell
1
Dieser Service funktioniert gut für mich. Ich habe keine Chance bekommen, die Genauigkeit zu testen, aber es erlaubt mir, zB einen Radius von 1 Stunde um einen bestimmten Bereich zu finden. Sehr gut, wenn man für Arbeit usw. in ein unbekanntes Gebiet ziehen muss
Roman
1
Openrouteservices.org bietet die Möglichkeit, unsere Daten nach geoJSON zu exportieren. Anschließend können wir es konvertieren und unsere Isochronenkarte anzeigen, z. B. in Google Earth, Google Maps usw. mkrgeo-blog.com/…
Mariusz Krukar
Genial. Openrouteservice scheint jetzt in den USA stabil zu funktionieren.
Jvangeld