Alle Adressen aus germany.osm herausladen

Hallo allerseits,

ich würde gerne aus der “germany.osm” der Geofabrik alle Adressen herausfilter! Dazu würde ich gerne “osmosis” verwenden! Nun ist ja das Problem der unterschiedlichen Erfassungsmethoden bei Adressen. So aus dem stehgreif fallen mir da ein:

  • als einzelner Punkt
  • als Fläche (z.b. ein Gebäude)
  • als Relation zur Straße

Ich hätte nun gerne als “Ergebnis” eine komplette Liste die NUR aus Punkten (mit Koordinaten + Adressdaten) besteht und in eine MySQL Datenbank geschrieben werden kann.

Ist hier osmosis der richtige Ansatz und wenn ja könnte mir jemand bei der Erstellung der Kommandozeile behilflich sein?
Vielen Dank schon einmal an alle Helfer!

P.S.: Ich verwende Win 7 64x

Hallo jman1983,

Ich schätze mal, dass Du ohne Datenbank Dein Aufgabe nicht lösen kannst und dabei denke ich nicht unbedingt an die Probleme der Relation und Wegeauflösung. Wie willst Du in diesem Zusammenhang die interpolierten Adressen behandeln? Welche Koordinate willst Du überignes bei Wegen benutzen?

MfG Georg V.

Hmm an interpolierte Adresse habe ich gar nicht gedacht!

Ok die nehmen wir dann schonmal raus aus der Liste!

Also nur noch “sichere” Adressen, also solche wo die genaue Lage (hinreichend genau) bekannt ist!

Ich habe irgendwo einmal von einem plugin für osmosis gelesen, welches aus einer Fläche (Gebäude mit Adressdaten) einen Punkt in der Mitte der Fläche erzeugt. Dies wäre ja quasi genau das, was ich bei “Flächenadressen” gebräuchte…

Bei Relationen müßten dann “nur” die Mitglieder, mit der Rolle “house” genutzt werden und natürlich auch der Straßenname. Wobei “nur” glaube ich masslos untertrieben ist…

Ich hoffe, es findet sich noch jemand der mir wenigstens bisl weiterhelfen kann, so das ich meine Idee nicht sofort wieder verwerfen muss

MfG

Jan

Hi,
ich meine, dass osmconvert eine Option besitzt Flächen-POIs zu Punkt-POIs umzuwandeln.
Chris

–all-to-nodes

Wenn ich es recht sehe, wird “einfach” der Knoten in der Reihemitte genommen und nicht der Flächenschwerpunkt selbst berechnet.
Kann man so oder so sehen …

Besten Dank für den Tipp!
Ich habe mir da jetzt mal eine Kommandozeile zusammengebastelt und wollte fragen ob ich es so richtig verstanden habe:

osmfilter germany.osm --keep= --keep-nodes=“addr:" -o=addr_node.osm
osmfilter germany.osm --keep= --keep-ways="addr:
” -o=addr_way.osm
osmconvert addr_way.osm --all-to-nodes -o=addr_way_node.osm
osmconvert addr_node.osm addr_way_node.osm -o=addr.osm

Ich habe die Relation jetzt (noch) herausgelassen…

addr_way_node.osm muss nochmal gefiltert werden, da die (ur-)nodes der ways ja selbst keine addr hatten, somit
osmfilter addr_way_node.osm --keep= --keep-nodes=“addr:*” -o=addr_node2.osm
osmconvert addr_node.osm addr_node2.osm -o=addr.osm

Wie wär’s mit
osmconvert germany.osm.pbf --all-to-nodes --out-o5m > g.o5m
osmfilter g.o5m --keep-nodes=“addr:" --keep-tags="all addr:” -o=addr.osm

:wink:

Super! Vielen dank, klappt super!

Jetzt muss die Datei nur noch in die (lokale) Datenbank…

Ich werde morgen mal versuche in diese Richtung starten, aber über Tipps freue ich mich bereits jetzt schon :wink:

Ich nehme an, dass MySQL eine Importfunktion für CSV-Files hat? Dann müsstest Du nur noch die osm-xml-Daten
in CSV wandeln, was kein großes Problem darstellen sollte. :wink:

osmosis --write-mysql …
?

So endlich mal wieder bischen Zeit für dieses “Privatprojekt”!
Also jetzt klappt alles soweit…
Mir ist nur Aufgefallen, dass viele Adressen nicht “komplett” erfasst sind und habe mir gedacht ich mach mal bischen “Qualitätssicherung”! Hierzu möchte ich alle Adressen die “komplett” sind aus der o5m-Datei ausfilter und anschließend die “fehlerhaften” um sie irgendwie für die QS ( evtl. alla keep-right oder so, da hab ich mir noch keine gedanken drüber gemacht) zu veröffentlichen…
So mein Problem ist, wenn ich mit

osmfilter addr.o5m --keep= --keep-nodes=“addr:housenumber=* and addr:strett=* and addr:postcode=* and addr:city=*” -o=addr_komplett.osm

alle kompletten Adressen herausfiltern möchte, bekomme ich nur ne leere Datei ;(

Kann mir einer von euch sagen, was ich falsch mache?

Vielen Dank schonmal für eure Hilfe

Kennst du das Lied “Stretts of London” ?

Google auch nicht - aber such mal danach :wink:

Gruss
Walter

???

Nur zur Information: Mein housenumbervalidator (github, Wiki, Forum, Karte) erstellt u. a. auch eine Datei incomplete.txt, in der alle Adressdatensätze, die nicht vollständig sind, gespeichert werden. Diese werden momentan nicht auf der Karte angezeigt, da es a) sehr viele sind (mehr als 797000 in DE), b) mein Programm keine Adressrelationen berücksichtigt und c) einige Mapper grundsätzlich keine vollständige Adressinformtion eintragen, da z.B. Stadt und Staat i.d.R. automatisch ermittelt werden können.

Ei wo, die AllWissende MüllHalde findet alles:

ok, ich werde das Rätsel mal lösen:

Search: Stretts of London

Did you mean: Streets of London

→ osmfilter addr.o5m --keep= --keep-nodes=“addr:housenumber=* and addr:street=* and addr:postcode=* and addr:city=*” -o=addr_komplett.osm

Man sollte die Google-Ausgabe auch richtig interpretieren.

Gruss
walter

Das ist mir schon klar, wie Google das meint.
Es ist auch eines ihrer ganz großen Stärken, Rechtschreibfehler richtig zu interpretieren,
da kommen Bing & Co. bei weitem nicht mit.
und das bei weitaus komplizierteren Sachen als “Street” & “Strett”.

Oh man, das ist mir jetzt doch unendlich peinlich… Aber nichts desto trotz vielen Dank für deine “Rechtschreibprüfung”

@gulp21 Die Karte ist ja richtig gut, kannte ich gar nicht. Besten dank hierfür…

Wer kann nochmal schnell ne Tip zu POI/OSM-Datei in CSV/MYSQL geben ?
Ich würde gerne alle Attribute der Nodes mit übernehmen .

Dirk

Moinsen -

das hier

liefert ein DB-Abzug - Was aber ist mit dem Schema? Ich mein - wie kommt man denn zu einem vernünfitgen Schema!? Es gibt ja keinen Fremdschlüssel…
Also ich denk das Schema ist schlichtweg “schlecht”.

Aus folgendem Gründen.
Datenhaltung / Konsistenz
– Keine Fremdschlüssel in der Datenbank zu semantischen Abhängigkeiten der Daten insgesamt und das rührt daher, dass ja keine
– Datenintegrität zwingend erforderlich ist. Weil: Subnodes ohne nodes ohne weiteres möglich sind, weil nicht durch FKs in der DB abgesichert.

Also das macht doch so ein Ansatz zu einer schwierigen Aufgabe oder!?

Nochmals - vielle. habv ich da ja auch was noch nicht ganz zu Ende gedacht: Zum einen denke ich, dass es ja so ist: Nur wer wirklich konkret weiss, wie die Zusammenhänge genau sind, der kann diese aus dem Schema zurückholen

Frage - wie habt ihr das gemacht!?

Freu mich auf einen Tipp

euer TagtheWorld