Skip to content

Fastfood an der Autobahn fürs Garmin

OpenStreetMap So langsam wirds draußen wieder wärmer und es gibt die eine oder andere Strecke auf der Autobahn zurückzulegen. Schön auch dass die großen Fastfood-Ketten dort auch ihren Platz gefunden haben, mit bekannten Produkten zu zivilen Preisen. Gerade beim Geocaching hat die "Goldene Möve" schon fast Tradition.

Nur die Suche nach dem nächsten Fastfood ist gar nicht so einfach: Das Navi kennt natürlich alles, aber schlägt sortiert nach Entfernung vor. Ich suche in diesen Fällen aber in der Nähe einer der nächsten Autobahn-Abfahrten, also z.B. einen Autohof der nicht so weit ab von der Autobahn-Abfahrt liegt.

Hier war also eine neue POI-Datei fürs Garmin gefragt. Wer nur die POI haben will, kann hier die Datei motorway_fastfood.gpi herunterladen und einfach in den POI-Ordner kopieren.

Um die Fastfood-POI an der Autobahn aus der OpenStreetMap abzuleiten, verwende ich in diesem Beispiel einen deutschen Auszug der OSM, der mit osm2pgsql in eine PostGIS-Datenbank eingespielt wurde.

Alle Fastfood-Läden sind einfach selektiert:

select osm_id, way as coords, name from planet_osm_point where amenity='fast_food'
union
select osm_id, st_centroid(way) as coords, name from planet_osm_polygon where amenity='fast_food';


Auch die Autobahnen liegen hier bereits vor:

select ref, way from planet_osm_roads where highway='motorway'


Beides wird mit einem "spatial join" den PostGIS anbietet verknotet. Man kann mit dem "on" nicht nur Schlüssel matchen wie sonst in SQL üblich, sondern auch einen maximalen Abstand abfragen. Komplett sieht die Abfrage dann so aus:
copy (
select distinct on (osm_id)
st_x(st_transform(poi.coords,4326)) as lon, st_y(st_transform(poi.coords,4326)) as lat, concat(bab.ref,' ',poi.name) as name
from (
select osm_id, way as coords, name from planet_osm_point where amenity='fast_food'
union
select osm_id, st_centroid(way) as coords, name from planet_osm_polygon where amenity='fast_food'
) as poi
inner join (
select ref, way from planet_osm_roads where highway='motorway'
) as bab
on st_distance(bab.way,poi.coords)<400 order by osm_id
) to '/tmp/motorway_fastfood.csv' CSV header;


Damit werden die Daten auch gleich in eine CSV-Datei kopiert, die dann noch mit GPS-Babel auf der Shell in ein Garmin-taugliches GPI-File mit einem Burger als Signatur konvertiert werden kann:
wget http://openclipart.org/image/800px/svg_to_png/9075/Gerald_G_Fast_Food_Lunch_Dinner_%28FF_Menu%29_1.png -O motorway_fastfood.png

convert motorway_fastfood.png -compress none -type truecolor -resize 18x18 motorway_fastfood.bmp

gpsbabel -c utf8 -i unicsv -f "motorway_fastfood.csv" -o garmin_gpi,category="fastfood",bitmap="motorway_fastfood.bmp",position -F "motorway_fastfood.gpi"


Einen Haken hat die Sache noch: In großen Städte sind an den Abfahrten in der Stadt sehr viele Fastfood-POI die natürlich eigentlich nicht die gesuchten sind, weil sie sich nicht für die kurze Pause eignen. Für mich ist das kein Problem weil ich diese POI-Sammlung ohnehin nur in weniger dicht besiedelten Gebieten benötige.

Update: Ein erster Praxistest ergab, dass die SQL-Abfrage mit den Ausfahrten nicht so günstig war und daher wird nun rund um die Autobahn an sich gesucht. Sehr schön dass man im Nüvi damit jetzt auch nach dem Namen der Autobahn suchen kann auf der man gerade fährt!

Die Erstellung dieser POI-Datei ist gleichzeitig auch ein schönes Beispiel wie man allgemein POI aus der OpenStreetMap aufs Garmin bekommen kann. Lasst mich in den Kommentaren wissen wie Ihr mit der Datei zurecht kommt!

Punkte der OpenStreetMap in Garmin POI konvertieren

OpenStreetMap Immer wieder kommt in Foren die Frage auf wie man einfach Punkte aus der OpenStreetMap in POI für das Garmin konvertieren kann.

Auch Forscher an meiner Dienststelle wünschten sich kürzlich POI aus der OpenStreetMap von Hotels, Autovermietung, Supermärkten, Kneipen und anderem auf dem Navi zu haben.

Das geht recht einfach und lässt sich mit den drei Programmen wget, ImageMagick und GPSBabel auf der Linux-Shell sogar automatisieren. Natürlich kann man auch alle Schritte auf einer klickbaren Oberfläche nacheinander ausführen.

Als erstes holen wir uns die POI aus dem Untersuchungsgebiet mit der Overpass-API:
wget "http://overpass-api.de/api/interpreter?data=node[tourism=hotel](-18,-61,2,-46);out meta;" -O hotel.osm


Wer kein wget auf einer Shell verwendet kopiert einfach den Text zwischen den Anführungszeichen als URL komplett in den Browser seiner Wahl speichert die OSM-Datei ab.

Dann brauchen wir noch ein Icon, dabei greife ich in die OpenClipart und hole es dazu:
wget "http://openclipart.org/image/800px/svg_to_png/129925/1301476335.png" -O hotel.png


Das Icon muss noch das richtige Format bekommen, hier wird der convert von ImageMagick verwendet:
convert hotel.png -compress none -type truecolor -resize 24x24 hotel.bmp


Schließlich macht GPSBabel die GPI-Datei für Garmin fertig:
gpsbabel -i osm -f "hotel.osm" -o garmin_gpi,category="Hotel",bitmap="hotel.bmp",position -F "hotel.gpi"


Das Beispiel lässt sich beliebig für andere Features der OpenStreetMap übertragen. Die Sache hat nur einen Haken: POI die als Fläche gemappt sind werden auf diese Weise nicht berücksichtigt.

Geocacher helfen OpenStreetMap

OpenStreetMap Eine schwere Umstellung hat die beliebte OpenStreetMap nun hinter sich - auch wenn es nicht so schlimm ist, wie Heise uns zum 1. April berichtete.

Auch bei den Geocachern ist die OpenStreetMap sehr beliebt, vor allem die fertigen Lösungen wie die Kleineisel-Karte oder die Freizeitkarte, die man nur schnell aufs Garmin kopieren muss, werden gern verwendet.

Es ist an der Zeit, dass Geocacher die OpenStreetMap unterstützen!. Nun liegt es nicht jedem sich in die üblichen Programme wie JOSM oder Potlatch einzuarbeiten. Ich habe mir daher ein kleines Programm mit dem Namen YAPIS ausgedacht, mit dem sogar meine Oma Punkte in die OpenStreetMap hätte eintragen können.

Damit mögen Geocacher bitte POI, also Orte von Interesse in die OpenStreetMap eintragen. Dabei ist egal um was es sich dabei handelt. Es muss auch kein YAPIS verwendet werden, sondern wer das anders machen will, soll das auch tun.

Sowohl Geocaching als auch OpenStreetMap haben mir in meiner beruflichen Entwicklung sehr geholfen. Als Anreiz habe ich deshalb einen dicken Stapel Geocoins spendiert, und zwar nicht irgendeine, sondern die zum 8-jährigen Jubiläum der grünen Hölle von Sepp&Berta!


Unter allen Geocachern, die bis Ende April 2012 mindestens 10 Punkte in die OpenStreetmap eingetragen haben, werden 50 (fünfzig!) dieser Geocoin ausgelost. Um mitmachen zu können, hier zu dem Artikel bitte im Kommentar (oder für Blogger: Trackback) bitte den OpenStreetMap-Namen angeben, mit dem die Einträge erfolgen.

Gehen mehr als 50 Kommentare ein werden die Geocoins unter den Teilnehmern verlost. Die 10 eingetragenen Punkte in der OpenStreetMap werden natürlich auch überprüft! Die Gewinner werden per E-Mail benachrichtigt und erhalten die unaktivierte Geocoin mit normalem Postbrief. Ich und meine Verwandschaft dürfen nicht mitmachen, der Rechtsweg ist ausgeschlossen.

Und nun: Frohes kartieren und viel Glück!

Navigation im Tierpark Berlin mit OpenStreetMap und GPS

OpenStreetMap Für diesen Artikel, in dem ich mal ganz allgemein erklären möchte, wie man mit QGIS recht einfach Geodaten aus der OpenStreetMap auf Garmin GPS-Empfänger bekommt hätte ich auch "Quantum-GIS für Anfänger" als Überschrift nehmen können. Aber das klingt mir dann doch für die Zielgruppe zu technisch und damit abschreckend

QGIS ist freie Software und kann für Windows, Linux und Mac kostenlos heruntergeladen werden. Zumindest für Windows ist die Installation so einfach wie man das von üblichen Windows-Programmen so kennt. Ein praktisches Beispiel soll das Ganze praktisch nützlich verpacken. Die Vorgehensweise ist auch auf andere Aufgaben übertragbar, bei denen Punkte für ein Gebiet aus der OpenStreetMap gewonnen werden sollen.

Kürzlich war ich mit einer Freundin und Kindern im Tierpark Berlin. Um Verwechslungen zu vermeiden, in Berlin gibts ja aus historischen Gründen alles zweimal: Nicht den Zoologischen Garten, sondern den im Ostteil der Hauptstadt.

Man kann sich natürlich dort mit Wegweisern orientieren, allerdings müsste das mit dem GPS (in meinem Fall ein Garmin Oregano) eleganter gehen. Die notwendigen Daten scheinen in der OpenStreetMap schon enthalten zu sein, da waren einige Mapper offensichtlich fleißig. Damit gilt es "nur noch" die Daten abzuholen und zu konvertieren.

Zunächst wählt man auf der OSM-Webseite das Zielgebiet aus und macht dann einen Export. Die Datei heißt map.osm und kann auch unter diesem Namen in einem neuen Verzeichnis gespeichert und dann mit QGIS und dem OpenStreetMap-Plugin geladen werden.


QGIS erzeugt dann drei Layer: Punkt, Linie und Polygon. Die Linien brauchen wir nicht und werfen sie gleich wieder raus. Die verbleibenden Layer werden in ESRI-ArcGis-Shapes gespeichert, damit wir damit arbeiten können.


Der Polygon-Layer braucht etwas Nachbearbeitung, denn als Polygon erfassten Gehege lassen sich so direkt nicht als Wegpunkt aufs Garmin spielen. Daher werden mit dem Geometrie-Werkzeug aus dem Vektor-Menü die Polygonschwerpunkte bestimmt und in einem neuen Layer gespeichert.


Die beiden Punktlayer können dann geladen und zusammengeführt werden.


Nicht nur wer kleine Kinder kennt weiß wie wichtig es ist zu wissen wo die Toiletten sind. Die haben aber keinen Namen (wozu auch). In der Attributtabelle kann man den nun automatisiert nachtragen. Mit der Suche wird nach "toilet" in Feld "tags" gesucht, dadurch werden die passenden Datensätze markiert und dann mit dem Feldrechner der Name ergänzt.

Danach können alle Felder ohne Namen gelöscht werden. Dazu nach dem Namen sortieren, die ersten Datensätze markieren und im Bearbeitungsmodus den roten Löschknopf drücken.

Nun müssen noch mit dem Plugin Table-Manager die Feldnamen der Tabelle korrigiert und überflüssige Felder gelöscht werden, dann ist die GPX-Datei fertig zum Abspeichern.


Die fertige GPX-Datei kann entweder auf die Speicherkarte des Garmin in das GPX-Verzeichnis kopiert werden, wo auch die Pocket-Queries vom Geocaching sind oder mit dem Garmin POI-Loader als POI hochgeladen werden.

Nix zu schwör

OpenStreetMap Gestern wusste ich noch nicht wie man das schreibt, heute bin ich schon einer. Wie es bei Daniel Düsentrieb schon heißt: Dem Ingenieur ist nichts zu schwör.

Im Geocaching-Podcast hab ich es schon öfter erwähnt: Ich hab mir ja vor ein paar Jahren den Luxus erlaubt, Geocaching zu studieren. Korrekt nennt sich das Studium Geoinformation, aber das kommt schon hin.

Koordinaten mit GPS messen, in Programme und Datenbanken eingeben, Berechnungen damit anstellen und das ganze auf Karten darstellen. Letztlich hat das Geocaching dazu geführt, dass dieses alte Interesse bei mir wieder geweckt werden konnte.

Mein Opa war Landesvermessungsdirektor und da fand ich die Messgeräte und die vielen Karten schon spannend. Der war auch als Dozent an der Ingenieurschule in Oldenburg, die später zur Fachhochschule Oldenburg-Ostfriesland wurde.

Allerdings haben 40 Jahre in der Provinz gereicht. Für mich ist Berlin "the place to be". Und darum gabs den "Bachelor of Engineering" wie das heute heißt auch in der Hauptstadt. Vor einigen Tagen haben mir die Professoren zum abgeschlossenen Studium gratuliert.

Meine Bachelor-Arbeit geht um ein Tourismus-Informationssystem als Web-GIS mit OpenStreetMap. Eine Lösung, die touristisch interessante Punkte (wie Geocaches) auf Detailseiten einer durchsuchbaren Website (wie Cachelistings) zur Verfügung stellt. Das können Kommunen gebrauchen, die bisher noch keine interaktiven Karten auf ihrer Website anbieten.



An der Beuth-Hochschule würde ich das auch noch ein wenig aushalten und auch noch den Master in Geocaching machen. Daraus wird aber nichts, ich muss zwischendurch die Welt retten.

Oder zumindest meinen bescheidenen Anteil dazu beitragen, indem ich für meinen neuen Arbeitgeber eine Geodateninfrastruktur zur Erhaltung des brasilianischen Regenwaldes konzipieren und aufbauen werde.
tweetbackcheck