Nominatim Nutzen?

Hi,
ich bin ja immer noch an der Anpassung einer Mitgliederkarte für mein Forum.
Kartenmäßig bin ich jetzt soweit, dass das wichtigste passt.

Jetzt stellt sich mir die frage wie wandle ich die Adressen der User in Koordinaten um?
Wenn ich die Sache manuell mache, habe ich ziemlich viel Aufwand, da ich Forumsseitig keine Benachrichtigung bei Änderungen hin bekomme.

Eine Alternative wäre es, einmal die Woche einen Lauf über das System zu machen und die Adressen neu ein zu lesen und automatisiert über einen Dienst in Koordinaten umwandeln zu lassen.

jetzt gibt es ja diesen Nominatim Service auch bei OSM. Aber den soll man ja nicht so stark beanspruchen. Jetzt fehlt mir jede Idee, was eine starke Beanspruchung ist? Ich gehe mal von ca. 200 Adressen aus, die ich einmal die Woche abgleichen müsste. Ist das schon zu viel? Darf ich das?

Da ich parallel auch noch versuche über Scripte die neuen Daten mit den vorhandenen ab zu gleichen, könnte die Zahl der Anfragen auch massiv sinken, so auf 2-3 pro Woche, was ja kein Problem für den Dienst ist.

nur dann stellt sich die nächste Frage: hat jemand einen tip wie ich das per Script hin bekomme?
Ich habe Straße, Ort und Land und will nur die Koordinaten als Rückgabe.

habe mir mal das Wiki dazu durch gelesen, muss aber sagen, dass ich es nicht wirklich verstanden habe :confused:
Was jetzt aber an mir nicht an dem Wiki liegt. :wink:

Danke im Voraus
gruß Werner

Zum Thema “Serverlast” s. https://operations.osmfoundation.org/policies/nominatim/
Zum Thema API (Abfrageschnittstelle): https://wiki.openstreetmap.org/wiki/DE:Nominatim

Wie Du das in Deinem Sktript verwurstest hängst start davon ab, was Du als Progammiersprache verwendest.

Ich habe auch keinen Hinweis entdeckt, wie man 200 Adressen “en block” abfragen kann. D.h. Du müsstest 200 Einzelrequests mit einem Mindestabstand von 1 Sekunde umsetzen. Aber vielleicht gibt es da noch eine bessere Methode…

Andere Alternative: in beliebigem zeitlichem Abstand (10 Minuten? 1 h? 1 d?) Daten auslesen und mit altem Stand (aus letztem Durchlauf) vergleichen. Dann nur die geänderten Einträge bei Nominatim abfragen.

Dann hast du nur initial den Aufwand, die Daten abzufragen, aber das geht zur Not auch manuell.

Hi glglgl,

dein Ansatz ist nicht so einfach (für mich).
ich habe ja bereits eine Liste mit Namen und Adressen und Koordinaten.
Aus meiner Datenbank bekomme ich jetzt auch eine Liste mit Namen und Adressen.
Nur ich habe 3 Fälle:
a) Ein Mitglied entscheidet sich, dass seine Daten nicht mehr veröffentlicht werden sollen, d.h. sein Eintrag fehlt in der neuen Liste.
b) Ein Mitglied ist neu hinzu gekommen, d.h. seine Daten müssen georeferenziert werden
c) Ein Mitglied hat seine Adresse geändert. D.H. sein Eintrag muss aktualisiert werden.

Und da bin ich dann echt raus, wie ich das über scripte hin bekommen soll.
bin gerade am überlegen, ob ich das irgendwie über vba lösen kann, aber selbst da bin ich noch nicht wirklich bei einer Lösung.

gruß Werner

Du musst halt einen Link wie https://nominatim.openstreetmap.org/search/Unter%20den%20Linden%201%20Berlin?format=json&addressdetails=1 zusammenbasteln und den absetzen. Danach “nur noch” das Ergebnis einlesen und verarbeiten. :wink:

Wie schon gefragt wurde: Worin programmierst du?

Gruss
walter

Ich nutze php.

Hab sowas mal für einen Verein gemacht.
Ausgangspunkt war die Adressdatei als csv. Diese wurde mit einem perl Script gelesen, für jeden Eintrag ein
system-Call mit einer Adresse abgesetzt, wie:
wget “http://nominatim.openstreetmap.org/search?q=Turmgasse 9,Sindelfingen&format=xml” -O test1.osm
Dann eine Sekunde gewartet, test1.osm

<?xml version="1.0" encoding="UTF-8" ?>
<searchresults timestamp='Thu, 12 Apr 18 17:22:59 +0000' attribution='Data © OpenStreetMap contributors, ODbL 1.0. http://www.openstreetmap.org/copyright' querystring='Turmgasse 9,Sindelfingen' polygon='false' exclude_place_ids='80443623,82672353,82458121,76038462' more_url='https://nominatim.openstreetmap.org/search.php?q=Turmgasse+9%2CSindelfingen&exclude_place_ids=80443623%2C82672353%2C82458121%2C76038462&format=xml'>
<place place_id='80443623' osm_type='way' osm_id='45137434' place_rank='30' boundingbox="48.7092312,48.7093906,9.0011638,9.0013689" lat='48.70931085' lon='9.0012663215998' display_name='9, Turmgasse, Sindelfingen (Stadt), Sindelfingen, Landkreis Böblingen, Regierungsbezirk Stuttgart, Baden-Württemberg, 71063, Deutschland' class='building' type='yes' importance='0.33025'/><place place_id='82672353' osm_type='way' osm_id='45694192' place_rank='26' boundingbox="48.7087378,48.7098829,9.0009428,9.0017474" lat='48.7092406' lon='9.0013694' display_name='Turmgasse, Sindelfingen (Stadt), Sindelfingen, Landkreis Böblingen, Regierungsbezirk Stuttgart, Baden-Württemberg, 71063, Deutschland' class='highway' type='living_street' importance='0.245'/></searchresults>

auf lat, lon geparsed und diese zusammen mit den restlichen Adressdaten in eine neue csv Datei geschrieben.

Es gab dabei 2 Probleme:

  1. die Umlaute in utf-8 / pc Darstellung (siehe oben)
  2. das Fehlen von Adressen in OSM