POI aus Openstreetmap
Vorraussetzungen
- OSM.PBF Datei
- osmosis
- gpsbabel
- sed
Bedienung
Mit diesem Script kann man sich aus Openstreetmap-Daten POI als GPX-Datei ausgeben lassen.
Zuerst muss man in der Variable INPUT die Quelldatei angeben.
Bei der Variable OUTPUT wird der Name von der Ausgabedatei festgelegt. Die Endung „.gpx“ wird automatisch angehängt.
Bei der Variable POITEXT muss man den Namen der POIs angeben. Dieser wird in der Regel auf dem Ausgabegerät angezeigt.
Mit den Variablen NODESFILTER, RELATIONSFILTER und WAYSFILTER kann man die Filter festlegen.
Beispiel
NODESFILTER=“accept-nodes highway=bus_stop“: Nur Punkte die als highway=bus_stop gekennzeichnet sind werden ausgegeben.
RELATIONSFILTER=“reject-relations“: Alle Flächen werden Weggefiltert.
WAYSFILTER=“reject-ways“: Alle Linen/Wege werden Weggefiltert.
Anwendungsbeispiele
Die GPX-Dateien können auf diverse Navigationsgeräte/GPS-Empfänger kopiert/installiert werden.
Das Gerät kann dann z.B. einen Annäherungsalarm auslösen.
Script
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
#!/bin/bash #Name: POI-Extrakt #Description: Es werden POI aus einer Openstreetmap PBF Datei extrahiert und als gpx Datei gespeichert. #Dependencies: osmosis, gpsbabel, sed #Author: Thomas Jungbauer #License: WTFPL #License-Text-Url: http://sam.zoy.org/wtfpl/COPYING #Version: 01 #Relase-Date: 10.05.2013 #Last-change-Date: - #INPUT muss eine osm.pbf Datei sein #Die Dateien gibt es hier zum Download http://download.geofabrik.de/ INPUT="openstreetmap.osm.pbf" OUTPUT="poi-bus-stop" POITEXT="Bushaltestelle" NODESFILTER="accept-nodes highway=bus_stop" RELATIONSFILTER="reject-relations" WAYSFILTER="reject-ways" if [ -f $INPUT ]; then osmosis --read-pbf file=$INPUT --tf $NODESFILTER --tf $RELATIONSFILTER --tf $WAYSFILTER --write-xml file=- |gpsbabel -i osm -f - -o gpx -F - |sed -e "s/osm.id.[0-9]*/$POITEXT/" >$OUTPUT.gpx else echo "$INPUT exestiert nicht. Bitte Variable INPUT anpassen." fi exit 0 |
Schreibe einen Kommentar
Du musst angemeldet sein, um einen Kommentar abzugeben.