Nutzen von OpenStreetMap-Daten in GIS
Wichtige Weblinks:
- OpenStreetMap
- POI und POI-Daten-Workshop
- OpenStreetMap für Landschaftsarchitekten und OpenStreetMap für Raumplaner
Auf dieser Seite werden Anwendungsbeispiele mit Arbeitsabläufen (Workflow) mit Szenarien gezeigt, um Daten von OpenStreetMap (OSM) in GIS als Vektordaten-Layer oder als Geo-Webservice für Karten nutzen zu können. Die Hauptbeteiligten sind u.a. technische Sachbearbeiter CAD-Operateure, Raumplaner, Landschaftsplaner, Naturschützer oder Förster.
Inhaltsverzeichnis
OSM-Rohdaten exportieren
Es gibt folgende OpenStreetMap-Export-Möglichkeiten inkl. Webservices:
- Rohdaten-Format von OSM (RAW OSM-XML), d.h. in OSM-Datenstruktur:
- XAPI-basierte Webservices: Siehe v.a. den XAPI URL Builder mit entsprechendem Osmosis-Befehl für das Overpass-API, das jxapi.openstreetmap.org und für rabler.ru (die MapQuest-Daten seien alt).
- Die Startseite von OpenStreetMap hat eine Export-Funktion im OSM/XML-Format (reiner Download).
- Mit derJOSM-Desktopapplikation gibt es einen Export nach OSM/XML.
- OpenStreetMapData.com - Speziell geeignet für die Extraktion für Länder-, Gewässer- und Küsten-Grenzen der Welt.
- Exportieren in verschiedene GIS-Formate, wie z.B. Spatialite, Shapefile, GeoJSON, KML etc.:
- OSM2GIS - Webapplikation mit direktem Download und optionaler Transformation in die Formate Shapefile, MapInfo, KML, GML, SQLite (beschränkt auf einen Bereich von der Breite des Zürichsees und eine Konversion alle 30 min.)
- Overpass API (insbesondere Overpass Turbo) - selektiver Download von Daten aus der Hauptdatenbank von OSM (GeoJSON und Rohdaten)
- OpenPOIMap - Webapplikation mit Preview, Download von Punktdaten direkt in verschiedene GIS-Formate, auch als WFS-Webservice (zurzeit auf Daten der Schweiz beschränkt).
- OSM2WEB (Repository) - Python-basierter RESTfull Webservice mit einer Datenbankstruktur analog EOSMDBOne (osm2pgsql, PostGIS), der GeoJSON, KML und alle von OGR unterstützten Formaten zurückliefern kann. Soll auch für Webapplikationen geeignet sein (vgl. [1] und die Tipps unten).
Zuerst eine .OSM-Datei in ein lokales Verzeichnis kopieren, d.h.
- Kleinere Bereiche können online über die OSM-Startseite (d.h. das API) heruntergeladen werden.
- Grössere Ausschnitte können über Webdienste oder die JOSM-Desktopapplikation als OSM/XML oder direkt in einem GIS-Format exportiert werden (vgl. unten).
- Ansonsten gibt es noch ganze vorbereitete Datensätze...
- solche die in Mirrors mit Snaphsots nach Kontinent und Land geordnet angeboten werden. Siehe Planet.osm Snapshots. ### Bereits aufbereitete Shapefiles herunterladen von Geofabrik: Siehe OSM#OSM_zu_Shapefiles_konvertieren
- Der gesamte OSM-Datensatz kann ebenfalls über Planet.osm Snapshots heruntergeladen werden.
Dann muss man die Daten in ein GIS-Format konvertieren (z.B. mit OGR oder GeoConverter), falls die Daten im OSM/XML-Format sind. Man beachte auch, dass man die Daten direkt analysieren kann, vgl. dazu unten HowTo_OpenStreetMap#OSM-Daten_analysieren oder das PostGIS-Terminal.
Tipps zu OSM-Daten exportieren
Tipp 1: Das Overpass-API ist ein schnelles und aktuelles API für den Online-Zugriff/Export von OSM-Daten (ganzer Planet); siehe dazu XAPI, den XAPI URL Builder und die Overpass API-Doku..
Tipp 2: Es gibt eine OSM2WEB-Instanz [2] auf http://www.gis-hosting.lu/examples/de/ (ganzer Planet). Hier ein Beispiel mit folgenden 'Parametern' (z.T. als URL-Subdirectories):
- Geometrie = points
- Exportformat = GeoJSON
- bbox = (Region Zürichsee min/max im selben SRID wie der SRID-Parameter,
- SRID = 4326 (d.h WGS84, Default SRID/CRS ist EPSG 3857/9009l3)
Beispielaufruf: http://www.gis-hosting.lu/osm2web/export/points/amenity/hospital.geojson?bbox=8.420,47.072,9.088,47.431&srid=4326 (*)
Tipp 3: Mit OpenPOIMap kann man die OSM-Daten mit einer eigenen Query abfragen und direkt als Webservice (WFS) in einer Web- oder Desktopapplikation betrachten und analysieren. Ist jedoch nur auf die Schweiz beschänkt.
Beispiel Rollstuhlparkplätze
Vektordaten von OSM können in GIS genutzt werden, gegeben man hält die ODbL-Lizenz ein und kennt die Besonderheiten von [[OSM], d.h. das spezielle Geometrie- und Tags-Schema. Für den Download der ganzen Welt in diesem Format siehe 'Downloading Data' im offiziellen OSM Wiki.
Es gibt inzwischen immer mehr Werkzeuge, mit denen man OSM-Daten selektieren (mind. räumlich) und als GIS-taugliches Format exportieren kann. Siehe dazu diese HowTo OpenStreetMap-Seite.
Nachfolgend ein Beispiel "Rollstuhlparkplätze der Schweiz":
- Das Tagging-Schema dafür ist
"amenity=parking" - und (logisch) "capacity:disabled" ~* "[0-9]|yes|unknown" (das ist rechts ein sog. "regulärer Ausdruck"). (es gibt nicht nur "capacity:disabled=yes" sondern auch "capacity:disabled=2" etc.)
- Siehe dazu die OSM-Wiki-Seite.
Variante A PostGIS-Terminal (Daten der Schweiz)
1. Aufrufen von http://labs.geometa.info/postgisterminal, dann Copy&Paste folgender SQL-Anfrage in das Query-Fenster:
SELECT ST_AsText(way) geom, COALESCE(name, )||' '||osm_id AS label FROM osm_poi WHERE tags @> hstore('amenity', 'parking') AND hstore("tags")->'capacity:disabled' ~* '[0-9]|yes|unknown' LIMIT 9999
2. Dann anschauen.
3. Falls Daten (im WKT-Format) gewünscht sind, den SELECT-Teil ersetzen mit "SELECT name, osm_id, gtype FROM ..." und Copy&Paste des Konsolen-Inhalts machen.
Mehr zum PostGIS_Terminal#Help.
Variante OpenPOIMap (Daten der Schweiz)
- OpenPOIMap aufrufen: http://bit.ly/11OP5Mf
- Dann Download z.B. als KML oder SQLite/Spatialite.
Mehr zu OpenPOIMap.
Variante Overpass Turbo (Daten ganze Welt, mit BBox)
- Interaktive Karte: http://bit.ly/X8pcmK
- OpenLayers-Karte: http://bit.ly/XRN6kD
- Query (Permalink): http://bit.ly/WCd6RK
- Download als OSM/XML, GeoJSON und als Bild.
Hier mehr zu Overpass (Achtung BBox, also mehr Daten als Schweiz).
POI-Daten nutzen
Möglichkeiten:
- OpenPOIMap
- Import in SQLite/SpatiaLite mit Hilfe der SpatiaLite-Tools 'spatialite_osm_map' und QGIS
- Export mit XAPI nach OSM-XML und dann weiteres Tool verwenden zum Konvertieren in ein GIS-Format
- OSM2GIS Dienst.
POI-Daten nutzen mit OpenPOIMap
Überblick:
- Benutzer erfassen POIs im öffentlichen OpenStreetMap (OSM, siehe unten).
- Am folgenden Tag sind die neuen Daten in OpenPOIMap verfügbar (in EOSMDBOne und zwar ab ca. 8 Uhr diejenigen Daten, die in OSM vor ca. 19:00 Uhr erfasst wurden).
- Benutzer können POIs in OpenPOIMap direkt anschauen und interaktiv abfragen
- Benutzer können die POIs direkt ins GIS integrieren mit Hilfe des OpenPOIMap Geo-Webservice (WFS)
- Benutzer können POIs von OpenPOIMap herunterladen und je nach Format nutzen z.B. in...
- Google Earth (KML)
- GIS (Shapefile)
- Navi/GPS (GPX)
Arbeitsschritte:
- POIs in OpenPOIMap visualisieren und interaktiv abfragen (=> Tab 'Home')
- Schritt 1: In OpenPOIMap Tab 'Home' einen Ausschnitt auf der Karte auswählen (Zoom, Pan & Geogr. Suche).
- Schritt 2: Query-Beispiel auswählen (z.B. Hospitals/Spitäler) oder mit Hilfe von Tab 'Query Builder' eine Query selber definieren.
- Schritt 3: Mit 'Show' das Resultat auf der Webkarte direkt ansehen.
- Hinweis: Die POIs auf der Webkarte lassen sich durch Klicken auf ein Punktsymbol interaktiv abfragen. Ev. muss man näher hineinzoomen.
- POIs herunterladen (=> Tab 'Download'):
- Schritt 1: In OpenPOIMap Tab 'Home' einen Ausschnitt auf der Karte auswählen (Zoom, Pan & Geogr. Suche).
- Schritt 2: Query definieren (z.B. in key 'Spital' eingeben und 'amenity=hospital' bestätigen).
- Schritt 3: Export-Format wählen.
- Schritt 4: Mit 'Download' Datei lokal speichern und damit selber weiterverarbeiten.
- Hinweis: Es wird hier gemäss Vorgabe nur der Ausschnitt heruntergeladen. Durch Klick auf eine Checkbox kann auch der Bereich der ganzen Datenbank, d.h. die Schweiz, verwendet werden.
- POIs als Webservice (WFS) nutzen (=> Tab 'Webservices'):
- Schritt 1: Zuerst in Tab 'Home' die Query definieren, (z.B. in key 'Spital' eingeben und 'amenity=hospital' bestätigen).
- Schritt 2: In Tab 'Webservices' die Basis-URL des WFS-Webservices kopieren und im eigenen System eingeben.
- Hinweis: Es wird hier immer die ganze Datenbank, d.h. die Schweiz, verwendet.
Routing-Daten nutzen mit ArcGIS oder QGIS
- QGIS: Import in SQLite/SpatiaLite mit Hilfe der SpatiaLite-Tools 'spatialite_osm_net'.
- ArcGIS: tbd.
POI-Daten erfassen/editieren
mit Potlatch (Browser):
- (Alternative für Fortgeschrittene: JOSM)
- siehe OpenStreetMap
Mit ArcGIS: tbd.
Mit QGIS: OSM-Plugin.