DE:Ajoessen/Objekte als GPX extrahieren

From OpenStreetMap Wiki
Jump to: navigation, search

Nachfolgend wird beschrieben, wie man Objekte mit einem speziellen tag filtern und als GPX im GPXviewer darstellen kann. Als Beispiel sollen alle Gebäude mit dem tag year_of_construction in Troisdorf gezeigt werden.

Die Rohdaten könne mit osmosis aus einem Geofabrik-Extrakt oder vom XAPI-Server gefiltert werden.


Filterung mit osmosis

Extrakte der Geofabrik von [1]: nordrhein-westfalen.osm.pbf oder koeln.osm.pbf

Batchdatei zur Filterung:

D:\Karten\OpenStreetMap\osmosis\bin\osmosis.bat --read-pbf D:\Karten\osm\Geofabrik\nordrhein-westfalen.osm.pbf --bb left=7.07 right=7.22 bottom=50.76 top=50.87  --tf accept-ways year_of_construction=* --used-node --tf reject-relations --write-xml yoc.osm

Filterung über die XAPI

Batch-Datei:

D:\wget\wget.exe http://osmxapi.telascience.org/api/0.6/way[bbox=7.07,50.76,7.22,50.87][year_of_construction=*] -O xapi-yoc.osm

Die XAPI-Server sind zeitweise überlastet, eventuell kommt man auf http://xapi.openstreetmap.org/... weiter.

Umwandlung nach GPX

Die oben erzeugte yoc.osm in josm laden Speichern unter ->yoc.gpx irgendwo auf der Platte.

Den aktuellen Stand 11/2010 habe ich hier abgelegt: http://bahnradwandern.bplaced.net/yoc.gpx

Vorgehensweise bei Punktelementen (POI)

josm kann nur Wege als GPX-tracks speichern; Punkte werden leider ignoriert. Daher muß hier für die Umwandlung auf GPSbabel ausgewichen werden.

Im zweiten Beispiel werden alle Bänke extrahiert und angezeigt. Die Ausgangsdatei ist bereits auf den interessierenden Bereich (hier Netphen) zugeschnitten.

Batchdatei für osmosis:

D:\Karten\OpenStreetMap\osmosis\bin\osmosis.bat --read-xml netphen.osm --tf accept-nodes amenity=bench --tf reject-ways --tf reject-relations --write-xml bench.osm

Batchdatei für Gpsbabel:

C:\Programme\gpsbabel\gpsbabel.exe -w -i osm -f bench.osm -o gpx,snlen=32 -F bench.gpx


GPX über OpenStreetMap darstellen

Meinen GPX-Viewer hier herunterladen, yoc.gpx als track.gpx ins Verzeichnis des GPXviewers kopieren, und den Viewer starten. Die Objekte mit year_of_construction-tag sind rot umrandet zu sehen.


HKTSmap

Mit der nachfolgenden Batchdatei kann man ziemlich einfach einen GPX-Layer mit Hundekottütenspendern erstellen:

call D:\Karten\OpenStreetMap\osmosis\bin\osmosis.bat --read-pbf D:\Karten\osm\Geofabrik\nordrhein-westfalen.osm.pbf --tf accept-nodes vending=excrement_bags --tf reject-ways --tf reject-relations --write-xml D:\Karten\osm\osmosis\hkts.osm
C:\Programme\gpsbabel\gpsbabel.exe -w -i osm -f D:\Karten\osm\osmosis\hkts.osm -o gpx,snlen=32 -F D:\Karten\osm\gpx\hkts.gpx
copy D:\Karten\osm\gpx\hkts.gpx D:\Karten\OpenStreetMap\gpxviewer\Track.gpx
D:\Karten\OpenStreetMap\gpxviewer\gpxviewer.htm

Extrahieren von Bushaltestellen als GPX

Die Bushaltestellen eines Kreises sollen als GPX-Datei mit Namen extrahiert werden. Hierzu muß zuerst ein Ausschneide-Polygon des Kreises erstellt werden. Aus dem Geofabrik-Extrakt des Bundeslandes werden zunächst alle Kreisgrenzen extrahiert:

admin-6.bat

 D:\Karten\OpenStreetMap\osmosis\bin\osmosis.bat --read-pbf D:\Karten\osm\Geofabrik\nordrhein-westfalen.osm.pbf --tf accept-relations admin_level=6 --used-way --used-node --write-xml admin6.osm

Wichtig ist die Reihenfolge von --used-way und --used-node. Nur so werden alle Wege und Knoten ignoriert, die nicht zu Kreisgrenzen gehören.

Für die Umwandlung in ein poly-File wird osm2poly.py von hier verwendet. Hierzu müssen die Wege der Kriesgrenze spezielle tags haben. Die Umwandlung wird mit josm durchgeführt.

admin6.osm in josm laden

Datei/Neue Ebene

Im Ebenenfenster Haken vor admin6.osm setzen

Filter type:node blendet alle Knoten aus

Im Relationsfenster Rechtsklick auf den gewünschten Landkreis ->Elemente auswählen

(Im folgenden wird der Kreis Borken bearbeitet)

Bearbeiten/Auswahl vereinigen

Vereinigen

Im Ebenenfenster Haken vor Datenebene 1 setzen

mit Rechteckauswahl gesamtes Kreisgebiet markieren

Im Eigenschaftenfenster alle tags löschen

neue tags:

polygon_file : Kreis Borken

polygon_id : 1

Werkzeuge/Linien verbinden

Drehen und Verbinden

Datei/Speichern unter

BOR-poly.osm

Beim Verlassen : Verwerfen und Beenden (Nicht hochladen!)

poly.bat:

osm2poly.pl BOR-poly.osm >BOR.poly

Die Bushaltestellen könne nun aus dem Geofabrik-Extrakt ausgeschnitten werden:

BOR-Bushalte.bat:

D:\Karten\OpenStreetMap\osmosis\bin\osmosis.bat --read-pbf D:\Karten\osm\Geofabrik\nordrhein-westfalen.osm.pbf --tf accept-nodes highway=bus_stop amenity=bus_station public_transport=platform --tf reject-ways --tf reject-relations --bounding-polygon file="D:\Karten\osm\osm2poly\BOR.poly" --write-xml BOR-Bushalt.osm

Leider kann man diese Datei nicht mit JOSM in eine GPX-Datei umwandeln. Die Umwandlung mit GPXbabel hat den Nachteil, dass die osm-id als cmt und description, bei namenlosen Objekten auch als Name verwendet wird. Deshalb wird hier alternativ die Umwandlung über Quantum GIS und ogr2ogr beschrieben. Der Direktexport von Quantum GIS in GPX funktioniert leider auch nicht, deshalb wird zunächst ein shapefile erstellt.

In Quantum GIS wird das OSM-plugin aktiviert:

Erweiterungen/Erweiterungen verwalten

x OpenStreetMap plugin

Erweiterungen/Openstreetmap/Load OSM from file

(oder das OSM-Symbol mit dem grünen plus)

... Datei auswählen

Spalten für Elemente:

x name

OK

Im Layerfenster Rechtsklick auf BOR-Bushalt points ->Speichern als...

Format: ESRI-Shapedatei

Speichern unter: Verzeichnis und Dateinamen auswählen

Kodierung: UTF-8

KBS: Durchsuchen

EPSG:4326 auswählen

OK

OK

Quantum GIS beenden


Für die Umwandlung mit ogr2ogr wird die Installation von Mapserver for Windows benutzt:

ogr.bat

set PATH=C:\ms4w\Apache\cgi-bin;C:\ms4w\tools\gdal-ogr;C:\ms4w\tools\mapserv;C:\ms4w\tools\shapelib;C:\ms4w\proj\bin;C:\ms4w\tools\shp2tile;C:\ms4w\tools\shpdiff;C:\ms4w\tools\avce00;C:\ms4w\python\gdal;%PATH%
set GDAL_DATA=C:\ms4w\gdaldata
set GDAL_DRIVER_PATH=C:\ms4w\gdalplugins
set PROJ_LIB=C:\ms4w\proj\nad
set CURL_CA_BUNDLE=C:\ms4w\Apache\conf\ca-bundle\cacert.pem
if exist BOR-Bushalt.gpx del BOR-Bushalt.gpx
C:\ms4w\tools\gdal-ogr\ogr2ogr.exe -f "GPX" D:\Karten\osm\osm2poly\BOR-Bushalt.gpx D:\Karten\osm\osm2poly\BOR-Bushalt.shp