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!
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?
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
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 …
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
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.
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?
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.
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”.
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