Suche über API

Hallo zusammen,

ich versuche gerad über die API gezielt einzelne POI abzufragen (in diesem Fall Spielplätze).
Gestartet habe ich mit der OSM-Query-to-map unter http://toolserver.org/~kolossos/osm/index.php
Dabei habe festgestellt, dass nur die POI zurückgeliefert werden, die als Punkt eingetragen sind. Spielplätze, die eine Fläche haben, werden nicht angezeigt.
Auch der direkte Zugriff über die API zeigt dieses Verhalten.

Daher stellen sich mir die Fragen:

  • Sollte das Tagging (z.B. eines Spielplatzes) immer (nur) ein Punkt sein ?
  • Sollte die API sowohl Punkte als auch Fläche zurückliefern

Dazu habe ich noch weitere Fragen zum Thema Anzeige von POI:

  • Kann ich (z.B. über den oben genannten Toolserver) direkt eine (fertige) Kartenanfrage senden, die mir direkt die Karte liefert ?
    Wie kann ich (alternativ dazu) möglichst einfach eine Ausgabe der API (xml) mit Openlayer zusammen ausgeben ?

Nope, ein Punkt sollte nur verwendet werden, wenn man die Umrissse des Platzes/des Gebaeudes nicht kennt oder es sich um etwas kleines wie eine Bank, ein Wegkreuz etc. handelt.

Zum Rest kann ich leider nichts sagen

So hatte ich mir das beim Taggen auch gedacht.
Das “Doppletaggen” (Fläche und Punkt), das ich versuchsweise gemacht habe, verführt dann nämlich auch den einen oder anderen Renderer zum doppelten Anzeigen :smiley:

Schade, aber vielleicht gibt’s ja noch den einen oder anderen Wissenden, der die API und deren Features gut kennt.

Warum sollte die API oder XAPI nur Nodes liefern? Es kommt halt immer drauf an, wie man die Anfrage stellt…

Das ist richtig.

Wenn ich die API-Beschreibung richtig verstanden habe, so kann ich als Kategorie zwischen

  • node
  • way
  • relations auswählen

Sonst habe ich (soweit ich verstanden habe), keine Möglichkeit nach Punkten oder Flächen zu selektieren.

Ich setze also (für die Spielplätze) eine Abfrage nach leisure=playground ab. So habe ich auch die entsprechenden Flächen markiert.
Die Flächen werden allerdings nicht zurückgeliefert, sondern ich erhalte nur Treffer, die als Punkt markiert sind.
Also nur (echte) Nodes :frowning:

Der http://toolserver.org/~kolossos/osm/index.php visualisiert dieses Ergebnis freundlicherweise gleich noch. Daher kann man damit relativ einfach feststellen, was als Ergebniss zurückkommt.

Nachtrag:
Hier ist noch ein solcher Fall zum leichten Nachvollziehen meines Problems:
Ich habe den Spielplatz als Fläche nachgetragen, aber die API bringt nichts zurück
http://toolserver.org/~kolossos/osm/index.php?node=leisure%3Dplayground&bbox=9.09,49.13,9.2,49.2

Der direkte Aufruf der API
http://www.informationfreeway.org/api/0.6/node[leisure=playground][bbox=9.09,49.13,9.2,49.2]
liefert das gleiche Resultat

<?xml version='1.0' standalone='no'?>
<osm version='0.6' generator='xapi: OSM Extended API 2.0' xmlns:xapi='http://www.informationfreeway.org/xapi/0.6' xapi:uri='/api/0.6/node[leisure=playground][bbox=9.09,49.13,9.2,49.2]' xapi:planetDate='200905211951' xapi:copyright='2009 OpenStreetMap contributors' xapi:instance='zappyHyper'>
  <node id='272047913' lat='49.1963866' lon='9.1373229' user='friedel_hn' xapi:users='friedel_hn' timestamp='2008-06-22T20:40:44Z' version='1'>
    <tag k='leisure' v='playground'/>
  </node>
  <node id='288527195' lat='49.1420982' lon='9.1064606' user='friedel_hn' xapi:users='friedel_hn' timestamp='2008-08-16T18:42:51Z' version='1'>
    <tag k='leisure' v='playground'/>
  </node>
  <node id='272056765' lat='49.1612795' lon='9.1665923' user='friedel_hn' xapi:users='friedel_hn' timestamp='2008-06-22T21:03:29Z' version='1'>
    <tag k='leisure' v='playground'/>
  </node>
  <node id='289487581' lat='49.1346956' lon='9.1805799' user='friedel_hn' xapi:users='friedel_hn' timestamp='2008-08-19T20:24:33Z' version='1'>
    <tag k='leisure' v='playground'/>
  </node>
  <node id='289495051' lat='49.1374234' lon='9.1939486' user='friedel_hn' xapi:users='friedel_hn' timestamp='2008-08-19T20:45:12Z' version='1'>
    <tag k='leisure' v='playground'/>
  </node>
</osm>

Yepp, genau. Also nicht bei “node”, sondern bei “way” “leisure=playground” angeben. Eine Fläche ist ja auch nur ein geschlossener Weg. Ich hab das mal so in Deiner Suche oben gemacht, und bekomme dann rot umrandete Spielplätze. Irgendwie sollte man wohl noch “area=yes” in die Abfrage einbauen, um es korrekt zu machen.

Danke für den Hinweis.

Jetzt muss ich die API nur noch dazu überreden, mir beide Treffermengen (ways und nodes) zusammen zurückzugeben.
Ausreichend wäre (bei der normalen Größe eines Spielplatzes) auch ein Punkt des entsprechenden Wegs.
Aber ich bin zuversichtlich, dass ich das noch herausbekomme.

Einfach node durch ein Sternchen ersetzen:

http://www.informationfreeway.org/api/0.6/*[leisure=playground][bbox=9.09,49.13,9.2,49.2]

Danke für die Hilfe.
Das war ja 'mal wieder viel zu einfach :sunglasses:

Über den Toolserver geht’s leider (noch ?) nicht. So sagt’s zumindest die Doku
http://wiki.openstreetmap.org/wiki/Query-to-map (-> 1. Punkt in der Erklärung der Skriptausführung)