Parkhäuser mit Längen- und Breitengraden auslesen

Hi,

bisher habe ich Parkhäuser mit dem nachfolgenden Code ausgelesen. Die Ergebnisse scheinen jedoch nicht immer die Längen und Breitengrade zu enthalten. Gibt es evtl. eine Alternative?

Vielen Dank im Voraus


$url='https://www.overpass-api.de/api/interpreter?data=[out:json];node[amenity=parking][parking="multi-storey"]('.$uk6.','.$uk5.','.$uk8.','.$uk7.');out+999;';
$ja8a = file_get_contents($url);
$jb8a = json_decode($ja8a);
$url='https://www.overpass-api.de/api/interpreter?data=[out:json];way[amenity=parking][parking="multi-storey"]('.$uk6.','.$uk5.','.$uk8.','.$uk7.');out+999;';
$ja8b = file_get_contents($url);
$jb8b = json_decode($ja8b);
$url='https://www.overpass-api.de/api/interpreter?data=[out:json];relation[amenity=parking][parking="multi-storey"]('.$uk6.','.$uk5.','.$uk8.','.$uk7.');out+999;';
$ja8c = file_get_contents($url);
$jb8c = json_decode($ja8c);

Den Code verstehe ich zwar nicht, aber es könnte daran liegen, dass für ways und relations von overpass standardmäßig
keine Geometrien ausgegeben werden. Da hilft dann ein out center

Danke für den Tip. Aber irgendwie verstehe ich das nicht. Ich bekomme einfach keine Ausgabe von Längen und Breitengraden hin. Ich habe den Code dahingehend verändert, dass nun anstatt “out+999” nun “out center+999” steht. Aber nichts passiert. Oder mache ich da einen Denkfehler?


$url='https://www.overpass-api.de/api/interpreter?data=[out:json];node[amenity=parking][parking="multi-storey"]('.$uk6.','.$uk5.','.$uk8.','.$uk7.');out center+999;';
$ja8a = file_get_contents($url);
$jb8a = json_decode($ja8a);
$url='https://www.overpass-api.de/api/interpreter?data=[out:json];way[amenity=parking][parking="multi-storey"]('.$uk6.','.$uk5.','.$uk8.','.$uk7.');out center+999;';
$ja8b = file_get_contents($url);
$jb8b = json_decode($ja8b);
$url='https://www.overpass-api.de/api/interpreter?data=[out:json];relation[amenity=parking][parking="multi-storey"]('.$uk6.','.$uk5.','.$uk8.','.$uk7.');out center+999;';
$ja8c = file_get_contents($url);
$jb8c = json_decode($ja8c);

Was für ein Code ist das?
Was bedeutet out+999; ?
Kommen bei allen 3 Anfragen keine Koordinaten?

Probier mal in http://overpass-turbo.eu/

[out:json][timeout:25];
nwr["amenity"="parking"]["parking"="multi-storey"]({{bbox}});
out center;

im Vergleich zu

[out:json][timeout:25];
nwr["amenity"="parking"]["parking"="multi-storey"]({{bbox}});
out;

Das “999” soll wohl dazu dienen, die Treffermenge auf 999 einzuschränken. Allerdings muss zwischen “999” und “center” ein Leerzeichen rein. Plus führt an der Stelle schlicht zu einem Syntaxfehler. Vielleicht beim nächsten mal einfach noch etwas Zeit in eine gescheite Fehlerbehandlung investieren. Das hat auch andere Vorteile.

Hi,

danke für den Tip. Aber ich bekomme das trotzdem nicht umgesetzt. Ich glaube, dass es am Aufbau des Links liegt. Oder mache ich etwas anderes falsch? Wenn ich z.B. den Befehl in


$url='https://overpass-turbo.eu?data=[out:json];[timeout:25];nwr["amenity"="parking"]["parking"="multi-storey"]('.$uk6.','.$uk5.','.$uk8.','.$uk7.');out center;';

ändere, erhalte ich keine Ausgabe!

overpass-turbo.eu ist eine grafische Weboberfläche, die liefert dir keine Daten zurück. Warum benutzt du nicht https://www.overpass-api.de/api/interpreter? wie zuvor auch?

Mein Problem ist, dass ich eine Ausgabe von Parkhäusern erstellen möchte mit entsprechenden Längen- und Breitenbgrad. Aber leider funktioniert es einfach nicht. Selbst dieser abgewandelte Code


$url='https://www.overpass-api.de/api/interpreter?data=[out:json];[timeout:25];nwr["amenity"="parking"]["parking"="multi-storey"]('.$uk6.','.$uk5.','.$uk8.','.$uk7.');out center;';

bringt kein Ergebnis. Ich weiß einfach nicht mehr weiter…

Ich würde sagen, da ist noch ein weiterer Syntaxfehler drin:


[out:json];[timeout:25];

Das Semikolon nach [out:json] muss weg:


[out:json][timeout:25];

Bitte baue entweder deinen Code so um, dass du alle Fehlermeldungen sehen kannst, oder teste deine Query vorab im Browser unter overpass-turbo.eu, bis das gewünschte Ergebnis eintritt.