ich bin gerade dabei, eine Smartphone-App zu entwickeln, die dem Anwender die aktuellen Covid19-Statistiken anzeigt für den Landkreis in dem er sich gerade aufhält.
Eine API zu den landkreis-spezifischen Infektionsdaten habe ich bereits und muss dafür (logischerweise) den Landkreis an die API übermitteln.
Durch die GPS-Koordinaten des Anwenders kann ich theoretisch über die Google Maps API den Landkreis ermitteln - jedoch sind hier nur begrenzt viele Anfragen im Monat kostenlos und ich möchte bei einer kostenlosen App (die vermutlich eh niemand außer meinen Bekannten benutzen wird) ungern Kosten tragen.
Somit benötige ich Tabellen, die mir helfen, die Verbindung von GPS-Koordinaten zu Landkreis zu finden.
Ich habe hier etwas gefunden: https://www.basedig.com/german-government/list-of-all-cities-and-towns-in-germany-with-gps-coordinates-4937/
Für wenige Euro könnte ich mir eine Liste aller deutschen Städte mit ihren Koordinaten holen. Dann könnte ich mithilfe der GPS-Koordinaten die nächstgelegene Stadt ermitteln. Dann würde mir nur noch die die Weiterverbindung von Städten zu Landkreisen fehlen.
Durch googeln bin ich hier gelandet. Kann mir hier jemand helfen? Ist es möglich mithilfe der Rohdaten von OSM eine Liste aller deutschen Städte mit dazugehörigem Landkreis zu generieren? Geht es evtl sogar, sich eine Liste aller Städte mit einer Koordinate zu generieren? Dann wäre ich komplett unabhängig von der evtl etwas älteren Tabelle im oben genannten Link.
Vielleicht habt ihr ja ein Tutorial für mich.
Die Zuordnung zu einem Landkreis per nächstgelegener Stadt wäre mir zu ungenau.
Für Deutschland sind die Kreisgrenzen (admin_level=6) komplett in OSM erfasst (s.o.).
Dann braucht man “nur noch” ein Werkzeug, das feststellt, in welcher dieser Flächen eine Koordinate liegt (s.o.: is_in).
Wenn man zunächst nur einen Namen hat, liefert eine Suche per Nominatim neben den Koordinaten auch den Land- oder Stadtkreis. Man muss sich da nur oft den richtigen unter vielen namensgleichen heraussuchen.
ganz großen Dank für eure Antworten. Jetzt habe ich sogar drei Möglichkeiten, mein Problem anzugehen.
Ich habe lange nach Reverse Geolocation gesucht, aber bin nie auf Overpass gestoßen. Super interessant! Hat mich bis gestern Nacht am 3 beschäftigt.
Ich habe ein wenig mit dem von fx99 geschriebenen Befehl rumgespielt. Mich interessiert für die Landkreise vor allem die Adminebene 6. Bei bestimmten Koordinaten bekomme ich zwei Nodes zurück und nicht nur einen. Beispiel hier:
*
is_in(47.909824, 7.908466);
area._[admin_level~“6”];
out;*
Was hat es denn mit dem zweiten Knoten inhaltlich auf sich, der bei beginnt? Gibt es einen Befehl, um nur den erstgenannten Knoten mit den landkreisspezifischen Informationen zurückzubekommen? Beide Male beginnt der key mit “name”, sodass es recht fehleranfällig wäre, das nachträglich auseinanderzuschnipseln.
wieso prüfst du auf String-Ähnlichkeit mit ~ statt auf Gleichheit mit =?
~ ist vermutlich langsamer als =, außerdem trifft “admin_level~6” auch welche mit 16 und 26 wenn ich das richtig sehe, siehe diese Testabfrage hier: https://overpass-turbo.eu/s/Zcg