Mehr

Wie erhalte ich alle GPS-Punkte auf einer Straße aus Osm-Daten?

Wie erhalte ich alle GPS-Punkte auf einer Straße aus Osm-Daten?


Ich versuche, GPS-Punkte auf Straßen in einer Region zu extrahieren. Für jede Straße benötige ich alle 10 Meter einen GPS-Punkt auf dieser Straße.

Mir ist bewusst, dass die Google Map API solche Wegpunkte anbietet, aber aufgrund der Latenzzeiten dieser Anwendung und der benötigten Datenmenge kann ich es mir nicht leisten, eine Netzwerkkommunikation mit dem Google-Server durchzuführen.

Ich stieß auf OSM, diese wunderbaren Open-Source-Kartendaten. Aber als Neuling ist es sehr unklar, wie ich GPS-Punkte auf Straßen aus OSM extrahieren kann. Ich weiß, dass Straßen als "Linienfolge" mit dem Schlüsselwort "Autobahn" gespeichert werden. Einige Geojson-Dateien enthalten Start- und End-GPS-Positionen für jede Straße. Aber wie extrahiere ich alle GPS-Punkte (Lat,Lng) entlang der Straße?


In meiner Antwort hier verwende ich eine Abfrage, um Punkte entlang von Linien mit einem bestimmten Abstand zu erstellen create

WITH line AS (SELECT your_polylinestring_id, (ST_Dump(geom)).geom AS geom FROM your_polylinestring_table), linemeasure AS (SELECT ST_AddMeasure(line.geom, 0, ST_Length(line.geom)) AS linem, generate_series(0, ST_Length(line .) .geom::int, 10) AS i FROM line), Geometrien AS ( SELECT i, (ST_Dump(ST_GeometryN(ST_LocateAlong(linem, i), 1))).geom AS geom FROM linemeasure) SELECT i, ST_SetSRID(ST_MakePoint (ST_X(geom), ST_Y(geom)), 31468) AS-Geom VON Geometrien

Sie verwenden also offensichtlich eine PostGIS/PostgreSQL-Datenbank. Sie können OSM-Daten importieren (mit osm2pgsql, Osmose usw.).

Wichtig ist eine eindeutige ID. Sie können die mitlaufende osm_id verwenden, wenn Sie die OSM-Daten importieren.

Wenn Sie Daten im Geojson-Format haben, können Sie die Postgis-Funktion ST_GeomFromGeoJSON verwenden. Eine andere Möglichkeit: Hier ist eine Anleitung zum Konvertieren von Geojson-Daten in ein Shapefile. Das Shapefile können Sie einfach mit gdal/ogr, pgadmin oder QGIS in postgres/postgis importieren.

Danach können Sie Ihre Punktdaten als GPX mit ogr2ogr exportieren. Die Kommentare zu dieser GIS SE-Antwort enthalten einige nützliche Informationen.

ogr2ogr -f GPX-Punkte.gpx PG:'host=server user=username dbname=database'