AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Overpass-API-Request als JSON
Thema durchsuchen
Ansicht
Themen-Optionen

Overpass-API-Request als JSON

Ein Thema von Hobbycoder · begonnen am 18. Mai 2020 · letzter Beitrag vom 18. Mai 2020
Antwort Antwort
Hobbycoder

Registriert seit: 22. Feb 2017
961 Beiträge
 
#1

Overpass-API-Request als JSON

  Alt 18. Mai 2020, 12:41
Hi,

ich mache bei einer GPS-Tracker-Auswertung eine Abfrage auf die zulässige Höchstgeschwindigkeit. Die Daten hole ich mir über die Overpass-API.
Zur Zeit frage ich jede Wegstrecke zwischen 2 aufeinander folgenden Wegpunkten ab, was auch im Großen und Ganzen funktioniert. Nur ist die Anzahl der Abfragen zu hoch, was ab und zu mal zu einem "Too many request" führt, und auch zu langsam ist.

Deswegen hole ich mir jetzt alle Daten zu der gesamten Fahrtstrecke und such mir alles raus, was ich brauche. Das geht um einiges schneller.
http://www.overpass-api.de/api/xapi?...66,52.1204483]

Nur hätte ich das ganze lieber aus JSON, was auch laut API irgendwie gehen soll. Nur habe ich bisher nicht herausbekommen, wie ich das in den Syntax einfließen lassen kann. Ist ja auch mehr oder weniger komplex.

Hat jemand eine Idee, wie ich in die o.g. Abfrage reinbekomme?
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#2

AW: Overpass-API-Request als JSON

  Alt 18. Mai 2020, 13:29
Könnte das helfen?
Zitat:
To get a response in format JSON, start the request with a [out:json] directive, for example:

/api/interpreter?data=[out:json];out;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
961 Beiträge
 
#3

AW: Overpass-API-Request als JSON

  Alt 18. Mai 2020, 14:59
Ja, das habe ich probiert. Nur weiß ich nicht, wie ich das einbauen soll.

Probiere ich das so:
Code:
http://www.overpass-api.de/api/xapi?data=[out:json][maxspeed=][bbox=9.3555183,52.1029216,9.3617866,52.1204483]
kommt
Zitat:
Error in [data=[out:json][maxspeed=][bbox=9.3555183,52.1029216,9.3617866,52.1204483]]:
Error: Query must start with 'node', 'way', 'relation', or '*'
Oder so:
Code:
http://www.overpass-api.de/api/xapi?*data=[out:json][maxspeed=][bbox=9.3555183,52.1029216,9.3617866,52.1204483]
dann kommt
Zitat:
Error in [*data=[out:json][maxspeed=][bbox=9.3555183,52.1029216,9.3617866,52.1204483]]:
Error: Text before '[' found.
Oder auch das hier
Code:
http://www.overpass-api.de/api/xapi?*[maxspeed=][bbox=9.3555183,52.1029216,9.3617866,52.1204483];data=[out:json];out
bringt mich nicht zum erfolg.

Ich finde auch nirgends eine (für mich verständliche) Anleitung, wie ich das jetzt schreiben muss.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

AW: Overpass-API-Request als JSON

  Alt 18. Mai 2020, 15:16
[GOOGLE]overpass-api out:json[/GOOGLE] -> https://gis.stackexchange.com/questi...rpass-api-call

Zitat:
You can't get a JSON result from the XAPI-compatibility endpoint. Instead, use the standard Overpass API (“interpreter”) endpoint and put the [out:json]; at the very start of your ql query:
Code:
https://www.overpass-api.de/api/interpreter?data=[out:json];node[highway=speed_camera](43.46669501043081,-5.708215989569187,43.588927989569186,-5.605835010430813);out%20meta;
(note the different ordering of the bbox coordinates compared to the xapi request!)
$2B or not $2B

Geändert von himitsu (18. Mai 2020 um 15:31 Uhr)
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Overpass-API-Request als JSON

  Alt 18. Mai 2020, 15:31
Code:
https://www.overpass-api.de/api/interpreter?data=[out:json];node[maxspeed=](52.1029216,9.3555183,52.1204483,9.3617866);

https://www.overpass-api.de/api/interpreter?data=[out:json];node[maxspeed=](9.3555183,52.1029216,9.3617866,52.1204483);
Ergebnismenge ist zwar leer, aber es gibt zumindest keine Fehler.
Nach: https://gis.stackexchange.com/questi...rpass-api-call
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
961 Beiträge
 
#6

AW: Overpass-API-Request als JSON

  Alt 18. Mai 2020, 18:05
Leider trifft es das doch nicht so ganz.

Hie mal die beiden Abfragen zum Vergleich.

XML:
Code:
http://www.overpass-api.de/api/xapi?*[maxspeed=][bbox=9.3555183,52.1029216,9.3617866,52.1204483]
Ergebnis in XAPI in Anhang

JSON:
Code:
https://www.overpass-api.de/api/interpreter?data=[out:json];node[maxspeed=](52.1129216,9.3605183,52.1204483,9.3617866);out;
Ergbnis in der JSON im Anhang

Der Unterschied ist, in der XML sind Way's enthalten, wo ich die zulässigen Höchstgeschwindigkeiten finden. Die Way's enthalten dann die Referenzen auf die Node's mit den Koordinaten. So könnte ich mir aus der Koordinatenmenge die passende heraussuchen.
In der JSON sind nur die Nodes. Und da gibt dann maximal die Blitzer, welche mich nicht interessieren.
Angehängte Dateien
Dateityp: zip xapi.zip (14,3 KB, 3x aufgerufen)
Dateityp: zip json.zip (92,3 KB, 2x aufgerufen)
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#7

AW: Overpass-API-Request als JSON

  Alt 18. Mai 2020, 18:13
Einfach nochmal die BuzzWords deiner URL genommen und Google damit gefüttert
[google]overpass-api interpreter out:json maxspeed[/google]

die ersten beiden Links sind dann
http://overpass-api.de/api/interpret...maxspeed];out;
https://wiki.openstreetmap.org/wiki/...API_by_Example

* das maxspeed am Ende, ohne = (liefert was)
* die Koordinaten getauscht (Ergebnis ist leer)
* und dann noch way zu node (findet wieder was)
Code:
http://overpass-api.de/api/interpreter?data=[out:json];way(around:10,53.6788398,-1.4992124)[maxspeed];out;
http://overpass-api.de/api/interpreter?data=[out:json];way(52.1129216,9.3605183,52.1204483,9.3617866)[maxspeed];out;
http://overpass-api.de/api/interpreter?data=[out:json];node(52.1129216,9.3605183,52.1204483,9.3617866)[maxspeed];out;

http://overpass-api.de/api/interpreter?data=[out:json];node[maxspeed](52.1129216,9.3605183,52.1204483,9.3617866);out;
http://overpass-api.de/api/interpreter?data=[out:json];[maxspeed]node(52.1129216,9.3605183,52.1204483,9.3617866);out;
http://overpass-api.de/api/interpreter?data=[out:json][maxspeed];node(52.1129216,9.3605183,52.1204483,9.3617866);out;
maxspeed nach vorne
* wieder leer
* und fehler
* und nochmal
also nur am Ende geht's ohne Fehler
$2B or not $2B

Geändert von himitsu (18. Mai 2020 um 18:24 Uhr)
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
961 Beiträge
 
#8

AW: Overpass-API-Request als JSON

  Alt 18. Mai 2020, 19:05
Danke für die Unterstützung.

Ich habe jetzt mit diesen beiden Abfragen
Code:
http://overpass-api.de/api/interpreter?data=[out:json];way(52.1129216,9.3605183,52.1204483,9.3617866)[maxspeed];out;
http://overpass-api.de/api/interpreter?data=[out:json];node(52.1129216,9.3605183,52.1204483,9.3617866);out;
einmal die Way's mit den maxspeed Angeben und den dazugehörigen Nodes,
und in einer zweiten Datei die Nodes mit den Koordinaten. Ich denke daraus kann ich mir was zurechtbasteln. Mal sehen wie das so klappt.

Ich danke euch.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz