HowTo OpenStreetMap: Unterschied zwischen den Versionen
Stefan (Diskussion | Beiträge) (→Kartenelemente/Map Features) |
Stefan (Diskussion | Beiträge) (→Kartenelemente/Map Features) |
||
Zeile 6: | Zeile 6: | ||
== Kartenelemente/Map Features == | == Kartenelemente/Map Features == | ||
− | Eigentlich geht es um | + | Eigentlich geht es um Geodaten-Objekte (features), die mittels sog. Renderer (z.B. Mapnik, Osmarender, Kosmos und Merkaartor) dargestellt werden (aber 'Kartenelemente' ist verständlicher). |
=== Online-Suche nach Kartenelementen === | === Online-Suche nach Kartenelementen === |
Version vom 1. Mai 2011, 21:04 Uhr
Siehe auch:
Inhaltsverzeichnis
Kartenelemente/Map Features
Eigentlich geht es um Geodaten-Objekte (features), die mittels sog. Renderer (z.B. Mapnik, Osmarender, Kosmos und Merkaartor) dargestellt werden (aber 'Kartenelemente' ist verständlicher).
Online-Suche nach Kartenelementen
- Suche (englisch) mit Taginfo
- Browser-Suche (englisch) in osm-annotated.xml
- Suche (mehrsprachig) mit der Wiki-Suche von OpenStreetMap
- Suche (mehrsprachig) mit Tagfinder von POI-Service
Listen/Kataloge
Eine Liste mit den berücksichtigten 'Kartenelementen' ist nur von wenigen Renderern verfügbar, hier z.B. von der OpenStreetMap-Hauptkarte: osm-annotated.xml.
Listen/Kataloge von wichtigen 'Kartenelementen' in OSM:
- DE:Map_Features
- Tagwatch
- DE:Howto_Map_A
- map-your-world >> OSM-Erfassungskatalog für Feldarbeit
- OSM Cheat Sheet (pdf)
Styles und Rules verschiedener Renderer
Die Renderer und ihre "Map Style Sheets" (Darstellungsmodelle):
- Mapnik arbeitet mit Stylesheets in XML, siehe hier und hier.
- Osmarender arbeitet mit Rules und SVG (XML), die ähnlich sind wie SLDs, siehe http://wiki.openstreetmap.org/wiki/Osmarender/Rules
- Kosmos arbeitet mit Map rendering rules gespeichert in OSM Wiki pages, siehe hier.
- Merkaartor arbeitet mit eigenen Styles (XML), siehe hier.
Technische Übersicht
Die OSM-'Tool Chain'
Rechts in der Grafik ein Überblick über die Software, die zur Herstellung der Daten und der Karte auf der OSM-Startseite verwendet werden.
Verfügbarkeit der OSM-Webapplikationen und -Webservices: OSM-Plattform-Status
Step-by-Step Guide
Wir haben für Sie einen Step-by-Step Guide (deutsch) zusammengestellt. Dieser ist besonders für Einsteiger und angehende "OSM-Mapper" gedacht:
- OpenStreetMap Guide (.pdf, Acrobat)
- OpenStreetMap Guide (.docx zipped, Word 2007)
- OpenDocument OpenStreetMap Guide (odt zipped, OpenOffice)
Eine weitere Schritt-für-Schritt-Einführung für Anfänger ist auch auf openstreetmap.de zu finden.
Daten erfassen
- Erster Ansatz
- To get going requires just a GPS and a web browser. Start by creating an account and locating your home area. You then go out and collect data with a GPS. This as straightforward as walking, cycling or driving around an area while recording a tracklog. The next stage is to extract data from your GPS, save it as a GPX file, (I use Easy GPS for this) and upload it to the OSM server. Don’t forget that GPS Visualizer offers a range of options for viewing your GPX data in the classroom. The next stage is to edit the GPX file to create OSM data. There are a few options for this, the simplest is to use the online Flash editor provided, that allows you to edit map data in your web browser. Finally the map is rendered and changes can be seen in OSM (although this doesn’t happen immediately).
- Zweiter Ansatz
- Siehe HowTo auf wiki.openstreetmap.org
- Dritter Ansatz
- Siehe 'OSM-Daten erfassen' unten.
OSM-Daten für GPS aufbereiten
Erzeugen von Garmin Maps:
- Aus OSM-Daten MP files erzeugen,
- Mit cgpsmapper zu Garmin Maps (.img?) compilieren.
- und dann mit sendmap(?) hochladen?
Siehe auch GPS.
OSM-Daten für GIS aufbereiten
Hier geht es um das Umwandeln von OSM-Daten in ein GIS-Dateiformat oder das Importieren direkt in eine (Geo-)Datenbank.
Genau zu diesem Zweck ist ein POI-Service geplant. Ideal wäre auch ein "Export-Tab" auf der OpenStreetMap-Karte, mit dem man den aktuellen Ausschnitt exportieren und in einem bestimmten GIS-Datei-Format lokal speichern könnte. Leider gibt es unseres Wissens z.Zt. auch keine Konverter (wie z.B. OGR), die ohne Umwege OSM lesen und in ein GIS-Dateiformat konvertieren können.
OSM-Daten können - wie Geodaten generell - schnell umfangreich werden, so dass sich eine Verarbeitung auf dem lokalen Computer empfiehlt:
- Zuerst eine .OSM-Datei in ein lokales Verzeichnis kopieren:
- Kleinere Bereiche können online über das API heruntergeladen werden.
- Grössere Ausschnitte können über die JOSM-Desktopapplikation exportiert werden.
- Es gibt Mirrors mit Snaphsots nach Kontinent und Land geordnet. Siehe Planet.osm Snapshots. Der gesamte OSM-Datensatz kann ebenfalls über Planet.osm Snapshots heruntergeladen werden.
- Alterative: Bereits aufbereitete Shapefiles herunterladen von Geofabrik: Siehe OSM#OSM_zu_Shapefiles_konvertieren
... Und dann mit einem GIS-Konverter lokal (vgl. unten) oder (demnächst!) übers Web (GeoConverter) konvertieren.
OSM-fähige Desktop-Konverter
Die meisten der folgenden Konverter werden im SVN-Repository des OSM-Projekts verwaltet:
- osm2pgsql - Ein OSM-Daten zo PostgreSQL/PostGIS-DB Converter und Loader.
- Osmosis - Importiert OSM planet files (OSM, MySQL, PostgreSQL). Siehe unten.
- Osm2Csv - Converts an OSM planet file to files nodes.csv, ways.csv and waytags.csv (und dann...?).
- Osmxapi (siehe unten).
- Ein OSM-zu-GML-Skript (XSLT), das dann weiter z.B. nach Shapefile verarbeitet werden kann, z.B. mit OGR und GeoConverter: Siehe [1]
- Osm2Csv - Converts an OSM planet file to files nodes.csv (id,lat,lon,timestamp,taglist) and ways.csv (id,timestamp,taglist) and waytags.csv (way-id,key,value). It does not use more memory if planet.osm is larger. It uses Java and the MinXML parser.
- Angeblich auch FME(?)
osm2pgsql
Ein OSM-Daten zo PostgreSQL/PostGIS-DB Converter und Loader (Autor: jburgess777(at)googlemail.com). osm2pgsql is mainly written for rendering data with data. So it only imports tags which are going to be useful for rendering. These tags are defined in the file 'default.style' (svn, trac). It also manipulates data for mapnik (i.e. placing nodes in the centre of gravity of polygons).
Instruktionen:
- Install PostgreSQL and PostGIS and create a postgres user with the same name as your system username (the utility explained next connects always with the default user name)
- Get osm2pgsql
- Download OSM dump - See Planet.osm for mirrors and partial extracts
- Download OpenJUMP from http://www.openjump.org. Nightly build is recommended.
- run osm2pgsql like this:
osm2pgsql -d <pg_database> --hstore <osmdumpname.osm>
- Everything will be automatic after that and the result is ready-to-use PostGIS tables '_point', '_line' and '_polygon' containing OSM data.
- There is a style file which maps source source to tartget tables.
Osmosis
Ein OSM-Daten Import- und Export-Tool (inkl. diffs). Liest/schreibt Dateien und Datenbanken (PostGIS).
- Homepage: Osmosis
Beispiel-Aufrufe
Entity Report: Erzeugt report-entity.txt
> java -jar osmosis.jar --read-xml switzerland.osm --report-entity
report-entity.txt:
********** User Report ********** USER NAME NODES WAYS RELNS anonymous 432095 41866 84 fundriver 248 43 1 gummibaerli 596 8 0 ...
Integrity Report: Erzeugt report-integrity.txt (falls es Probleme gibt)
> java -Xmx1024m -jar osmosis.jar --read-xml switzerland.osm --report-integrity EnableDateParsing=no
Howto mit PostgreSQL
How to load an 0.6 OSM file into PostgreSQL (from J. Zobel on OSM-Dev mailing list; loaded Germany in about 6 hours):
- Download PostgreSQL schema from Brett Henderson: http://gweb.bretth.com/apidb06-pgsql-latest.sql
- Split the script into 2 parts at the COPY statements.
- Run the first part to create the schema without indexes and foreign keys.
- Run (the following is an example, adapt the parameters)
bin/osmosis --read-xml-0.6 file=~/Desktop/download/germany.osm.bz2 --write-apidb-0.6 host=localhost database=osm1 user=osm password=**** populateCurrentTables=yes validateSchemaVersion=no
- When osmosis started to copy into the current_* tables, things slow down (nearly no disk writes, lots of reads). So add primary keys on nodes, node_tags, ways, way_nodes and way_tags and copying ran run fast
- Run the second part of the schema script creating the missing indexes and FKs.
XAPI
Service, der original OSM XML liefert mit einfachen Query-Möglichkeiten.
- XAPI-Dokumentation: OSM XAPI implementiert in Mumps und GT.M
- Aktueller Service xapi.openstreetmap.org
- Projekt jXAPI - Reimplementation als Java Servlet mit PostgreSQL
- Projekt osm-spline-xapi - Reimplementation in JavaScript mit PostgreSQL
Eigener OSM-Server installieren
Tile-Service als auch XML API.
Siehe The Rails Port vom OSM-Wiki.
OSM-Daten erfassen
Schritt 0. GPS-Tracks sammeln und hochladen
Mittels GPS gesammelte Wegepunkte sind gemäss der OSM-Philosophie Bestandteil der Hintergrundkarte und fliessen nicht direkt in die Karte ein. Als Hintergrundkarten-Material kommen verschiedene Quellen in Frage (vgl. Tipp oben). Es ist daher nicht zwingend notwendig, dass vorgängig Wegepunkte mit GPS gesammelt werden. Nachfolgend die zwei Geräte, bzw. Software, die ich verwende:
Ein neueres, Java-fähiges Mobile (z.B. Nokia E60- oder E65-Handy) zusammen mit einer günstigen Bluetooth Maus (z.B. GlobalSat BT-338) sowie Logging/Tracking-Software, wie z.B. GpsTrack (Open Source): Weitere Mobile Tracking-Software siehe hier.
Navis/Mobiles mit empfohlener Software:
- Navigationsgeräte:
- Garmin: eTrex Vista C; das nächst grössere Modell 'GPS 60' sei auch nicht schlecht), Colorado => fest eingebaute SW
- Java-fähige Handies:
- ohne eingebautem GPS (SonyEricsson K750)=> GPS Bluetooth Maus => Mobile Trail Explorer
- mit eingebautem GPS (u.a. SonyEricsson C702) => Mobile Trail Explorer
- Mobiles:
- Android G1 ('Google Phone') => 'MyTracks' vom Market Place
- iPhone => Motion GPSX (3 USD), ev. OSMTrack (1 USD) (siehe hier)
Schritt 1. Editieren mit JOSM vorbereiten
- JOSM downloaden und installieren, inkl. JOSM-Plugins (WMS plugin und Yahoo WMS plugin).
- Bei OSM anmelden
- auf wiki.openstreetmap.org einen geografischen Ausschnitt wählen (eine Stadt/Gemeinde) und Link kopieren (vgl. http://wiki.openstreetmap.org/index.php/JOSM)
- Link in JOSM pasten (Download) und für diesen bestehende OSM-Daten downloaden.
- Als Hintergrund kann man evtl. auch einen alten Stadtplan nehmen (Copyright beachten!), diesen mit dem Rectifier georeferenzieren und als Quelle direkt in JOSM einbinden (Menu WMS > Rectified Image).
Schritt 2. Editieren mit JOSM
- GPS Wegpunkte werden separat verwaltet und werden nicht in die 'Zeichenebene' übernommen (siehe z.B. http://wiki.openstreetmap.org/index.php/Beginners_Guide_1.3),
- Tipps zu wichtigen Kartenelemente (Map Features): siehe oben.
- Siehe Beginners Guide, speziell How to create your first basic road in JOSM,
- Erläuterung über Richtungen und Tagging beachten siehe Daten editieren.
Es gibt in den OSM-Daten ein generelles Feld "Layer". Das hat nichts mit dem Layer vom WMS zu tun! Damit wird gesteuert, welche Objekte in der Realität oben und unten liegen. 0 ist der Normalzustand und der Standard-Wert, wenn nichts angegeben ist (z.B. Kreuzung zweier Straßen, Beschränkter Bahnübergang), Wertebereich ist -5 bis 5. Wenn eine Straße über einen Bach geht, dann bekommt dies Stück Straße: bridge=yes, layer=1. Wenn ein Radweg unter einer Hauptstraße getunnelt ist: tunnel=yes, layer=-1. Sie sollten dann auch so gerendert werden. D.h. der niedrigste (OSM-) Layer zuerst und der höchste kommt oben drauf.
Schritt 3. Daten aus JOSM hochladen und auf OSM darstellen
- Nach dem Hochladen der editierten Daten mit JOSM kann es eine Woche gehen, bis die Daten als Karte sichtbar sind und auch dann offenbar nur, wenn man hineinzoomt, z.B. wie hier auf Stadt Rapperswil.
- Das Rendern auf den Servern kann beschleunigt werden: Siehe dazu die OpenStreetMap - Tipps und Tricks.
Daten für Routenplanung
Routing-fähige OSM-Daten müssen bestimmte Bedingungen einhalten, damit die Routenplaner (bzw. deren Algorithmen) die Daten verwenden können.
Infos/Diskussion:
- http://wiki.openstreetmap.org/index.php/Routing
- http://wiki.openstreetmap.org/index.php/Relation:route, bzw. http://wiki.openstreetmap.org/index.php/Talk:Relation:route
- http://wiki.openstreetmap.org/index.php/Map_Features#Cycleway
Allgemeine Regeln fürs Routing:
- Nodes:
- 'name'=...
- 'ref'=ID für Fahranweisungen(?)
- Ways:
- Netzwerk-Topologie einhalten: Ways an Kreuzungen führen zu gemeinsamen Knoten; Ways, die über Knoten führen unterbrechen
- Geschwindigkeiten angeben: ...?
- Relations:
- Abbiegevorschriften angeben: ...?
Keys, die in OpenRouteService.org verwendet werden (Stand Mitte Juli 2008):
- Fahrzeug-Routing:
- 'highway' mit value = motorway, motorway_link, trunk, trunk_link, primary, primary_link, secondary, tertiary, unclassified, residential
- 'service/access'=yes und living_street
- 'motorcar'=yes/no
- 'oneway'
- 'junction'
- Fussgänger-Routing:
- 'highway' mit value = alle Fahrzeuge highway values (ohne motorway/-link), track, service, bridleway, cycleway, footway, pedestrian und steps
- foot=yes/no
- Fahrrad-Routing:
- 'highway' mit value = alle Fahrzeuge highway values (ohne motorway/-link), track, service, bridleway, cycleway, pedestrian und footway
- 'bicycle'=yes/no
- 'tracktype=...?' (in Arbeit)
OSM-Daten auf eigenem Server darstellen ('rendern')
- Als bereits gerenderte Rasterdatei über http://tah.openstreetmap.org
- Via PostGIS (osm2pgsql) im UMN Mapserver:
- mapnik config file (UMN Mapserver Mapfile?) is in SVN...?
- http://wiki.openstreetmap.org/index.php/Displaying_OSM_Shapefiles_In_Mapserver
- http://wiki.openstreetmap.org/index.php/Mapserver
- Via PostGIS im GeoServer
- Mapnik oder Osmarender lokal installieren...
- Mapnik-Rules: Siehe [2] (Jochen Topf's XSLT)
- SVG direkt erzeugen...?
- Windows (im DOS-Fenster): % msxsl.exe osm-map-features-z15.xml -pi -o map.svg
- wobei die Input-Datei data.osm heissen muss und '...-z15' dem Zoom-Level 15 entspricht (aus 12..17).
- Bezug XML/XSLT: osmarender-frontend auf svn.openstreetmap.org
- Bezug msxsl.exe: Siehe Microsoft Homepage.
- Windows (im DOS-Fenster): % msxsl.exe osm-map-features-z15.xml -pi -o map.svg
Flächen (Polygone) in OSM
Es gibt in OSM leider noch keinen Geometrie-Datentyp "Fläche" vergleichbar mit OGC's Simple Feature-Standard (Polygon) oder Interlis' SURFACE/AREA. Es gibt jedoch einige "Abmachungen":
- Eine einfache Fläche wird durch einen "Closed Way" 'gemapped' (= Polygon).
- Eine Fläche mit innerem Rand wird über eine zusätzliche Relation 'gemapped'. Flächen mit inneren Rändern werden zurzeit 'Multipolygon' genannt. HINWEIS: Multipolygon im aktuellen Sinne von OSM ist nicht zu verwechseln mit OGC's Definition von Multipolygon, welche mehrere "echte" Polygone mit allenfalls mehreren inneren Ränder zulässt.
- Bei Multipolygon-Relations müssen *alle* beteiligten Flächen die selben Tags haben. D.h. man muss den inneren Bereich, einmal als inneren Rand der äußeren Fläche und einmal die innere Fläche separat mappen.
- ACHTUNG: Die Definitionen von 'Fläche'/'Polygon' und 'Multipolygon' sowie das Taggen mit Relations ist noch im Fluss! vgl. http://trac.openstreetmap.org/ticket/969