Adressen georeferenzieren

Moin!

Ich möchte 1000-2000 Adreesen in unserer Stadt georeferenzieren.

Gibt es einen einfachen kostenfreien Weg?

Jan

Also ich denke du redest ja von Lübeck. Ich habe mal eben für SHS alle adressen via addressextract aus einem aktuellen shs pbf extrahiert und dir hier hin gelegt:

https://silicon-verl.de/home/flo/tmp/20210328/shs.json.gz

Das sind 10MByte - Ausgepackt 128MByte … Die kannst du dann filtern z.b. mit jq:

Kommt dann sowas bei raus:

{
  "addresses": [
    {
      "city": "List auf Sylt",
      "geomcity": "List auf Sylt",
      "geomcounty": "Nordfriesland",
      "geompostcode": "25992",
      "housenumber": "1",
      "id": "9352765",
      "lat": "55.018164",
      "lon": "8.421756",
      "postcode": "25992",
      "source": "node",
      "street": "Landwehrdeich"
    },
[ ... ]

Wenn du dann ein Linux hast (Gibt bestimmt auch windows tools) kannst du das json filtern - Z.b. mit “jq”

jq '.addresses[] | select(.city | contains("Lübeck"))' shs.json

Dann hast du alle Adressen aus OSM - Für was auch immer du damit machen willst.

Flo

Danke, aber genau Windows ist meine Umgebung.

Dann ist aber noch die Frage, ob man so einfach die Hausnummern ermitteln kann um die passende zu finden.

Der eine Schreibt Moislinger Allee 67a;67b und der andere 67a-b…

Ich dachte man könnte irgendwie auf Nominatim zugreifen.

Jan

Das geht sicher auch, aber bei > 1000 Adressen dauert das und gibt vielleicht auch “quota-Probleme”.
Der Ansatz von Flo, das lokal zu machen ist sicher besser.

Hier die Version für Windows User:

rem windows batch file to extract all addresses from a given area

osmconvert64 stuttgart-regbez-latest-internal.osm.pbf -b=9.40,48.92,9.47,48.97 -o=backnang.o5m

osmfilter backnang.o5m --keep="addr:city= addr:postcode= addr:street= addr:place= addr:housenumber= " --drop-author --drop-version -o=backnang_add.o5m

osmfilter backnang_add.o5m --keep-tags="all addr:city= addr:postcode= addr:street= addr:place= addr:housenumber= " -o=backnang_add2.o5m

osmconvert64 backnang_add2.o5m --all-to-nodes -o=backnang_nodes.o5m

osmfilter backnang_nodes.o5m --keep="addr:city= addr:postcode= addr:street= addr:place= addr:housenumber= " -o=backnang_nodes2.o5m

osmconvert64  backnang_nodes2.o5m --csv="@id @lon @lat addr:city addr:postcode addr:street addr:place addr:housenumber" --csv-headline -o=backnang_nodes.txt

pause

Die alte pbf Datei hatte ich noch rumliegen, daraus einen rechteckigen Bereich herausschneiden (ein Polygon geht auch)
und alles bis auf die Adressen wegwerfen.
Am Schluss entsteht eine Text-Datei mit ‘;’ separierten Einträgen, die sich in Excel einlesen lässt. (Achtung: Dezimalzeichen → ‘.’)

osmconvert(64) und osmfilter sind im wiki beschrieben.

Bis auf die erste Konversion geht alles Ratz-Fatz schnell.