Hallo!

Diese Mail hat zwei Teile. Ich hatte gestern auf dem Treffen zugesagt,
ein paar Informationen, die ich zu den Themen schon gesammelt habe,
weiter zu reichen. (Die angegebenen URLs haben häufig überlange Zeilen.)

Der erste Teil befasst sich mit dem Zugriff auf die
OSM-Daten außerhalb der allgemein bekannten Kartendarstellung.

Die Einstiegsseite dazu ist [deutsch]:

http://wiki.openstreetmap.org/index.php/DE:Daten_aus_der_Datenbank_filtern

Es gibt dazu eine graphische Beispielanwendung [englisch]:

http://www.faveve.uni-stuttgart.de/~troll/OSM/index2.html

Ich könnt rechts auf der Karte den gewünschten Ausschnitt wählen und
dann bei »search for« ein Kriterium eingeben, was angezeigt werden soll.
»amenity=parking« zeigt zum Beispiel alle Parkplätze an (es dauert
eventuelle einen kleinen Moment bis der Server antwortet). Im links
unteren Teil könnt Ihr Euch die Ergebnisse der Abfrage in verschiedenen
Formaten speichern lassen.

Ganz ohne Browser geht das auch (das Beispiel von gestern):

wget -O parkplaetze.csv 
"http://www.faveve.uni-stuttgart.de/~troll/OSM/osm-poll.cgi?format=csv&filename=parkplaetze&query=[bbox=14.4906,52.3144,14.5682,52.3619][amenity=parking]";

Die Parameter in der URL sind wohl selbsterklärend, so dass sie sich
leicht an andere Anforderungen anpassen lassen. Leider geht nicht alles
derzeit. Ein

wget -O einbahn.csv 
"http://www.faveve.uni-stuttgart.de/~troll/OSM/osm-poll.cgi?format=csv&filename=einbahn&query=[bbox=14.4906,52.3144,14.5682,52.3619][oneway=yes|YES|true|TRUE|1]

liefert mir eine leere Datei.

Zuständig für die Datenbankabfrage ist die XAPI[englisch]:

http://wiki.openstreetmap.org/wiki/OSMXAPI

Das Parkplatzbeispiel von eben sieht damit so aus:

wget -O parkplaetze.osm 
"http://osmxapi.hypercube.telascience.org/api/0.5/*[bamenity=parking][bbox=14.4906,52.3144,14.5682,52.3619]";

Mit der XAPI geht auch die Anfrage nach Einbahnstraßen:

wget -O einbahn.osm 
"http://osmxapi.hypercube.telascience.org/api/0.5/*[oneway=yes|YES|true|TRUE|1][bbox=14.4906,52.3144,14.5682,52.3619]"

Die XAPI liefert allerdings (bisher) die Daten allerdings nur im
OSM-XML-Format zurück. Die sollten also auch schon parsbar sein;
ansonsten gibt's bestimmt auch Konvertierungstools für OSM-Daten -- etwa
Osmosis [englisch]:

http://wiki.openstreetmap.org/index.php/Osmosis


----------------------------


Zweiter Teil: Eigene Daten in die OSM-Darstellung einbauen

Ich habe für die Statuskarte (http://www.kryger.de/ML-osm-ffo/status/)
»Openlayers« benutzt [englisch]:

http://www.openlayers.org/

Viele Beispiele zum Abgucken gibt auf [englisch]:

http://www.openlayers.org/dev/examples/example-list.html

oder -- etwas besser sortiert [englisch]:

http://trac.openlayers.org/wiki/UserRecipes

Die vollständige Dokumentation des APIs [englisch]:

http://dev.openlayers.org/releases/OpenLayers-2.7/doc/apidocs/files/OpenLayers-js.html

In Openlayers muss man sich ein wenig hineinfriemeln, aber es macht
durchaus Spaß. Openlayers hat den Vorteil, dass sich alle möglichen
Karten als Basis benutzen lassen, also nicht nur OSM.

Für die Darstellung von OSM mit Openlayers gibt's sogar eine deutsche
Einstiegsseite:

http://wiki.openstreetmap.org/wiki/DE:OpenLayers

mit weiterführenden Links. 

Ein einfaches Beispiel, welches sich je nach Gusto (mit den Links von
oben) weiter entwickeln lässt steht auf [deutsch]:

http://wiki.openstreetmap.org/wiki/DE:OpenLayers_Simple_Example

Ein weiteres -- umfangreich auf deutsch kommentiertes -- Beispiel:

http://wiki.openstreetmap.org/wiki/DE:Openlayers_Track_example

Die Beispiele zeigen, wie man auf Grundlage von mehr oder weniger frei
verfügbarem Kartenmaterial eigene Daten darstellen kann. 

Für die oben genannte Statussseite liegen die Daten zu den einzelnen
Gebieten in einer XML-Datei. Diese wird von dem Script geladen, die
Umrisse der einzelnen Gebiete liegen als Trackpunkte vor und werden als
geschlossenes Polygon in die Karte gezeichnet, dabei je nach Status
eines Attributes unterschiedlich eingefärbt. Die Bezeichnung der Gebiete
sind kleine Grafiken, die an eine festes Position auf der Karte
projiziert werden.

So, ich hoffe, das reicht erstmal als Einstieg.


Viel Spaß!
               Torsten

-- 
http://www.openstreetmap.org/user/kunister
-- 
Mailingliste »osm-ffo«:
http://www.kryger.de/ML-osm-ffo/
Frankfurt (Oder) bei OpenStreetMap:
http://wiki.openstreetmap.org/wiki/Frankfurt_%28Oder%29

Antwort per Email an