So einen Fall habe ich bei mir an der Ecke. Vor Ort nachsehen hilft da leider auch nicht. Man müsste schon klingeln und nachfragen - und hoffen, dass die Bewohner es selbst wissen…
Dabei fällt mir ein: Woher “weiß” man eigentlich “seine” PLZ oder gar die anderer? Doch nicht durch Nachschauen bei der Post, sondern tradiertes “Wissen” (z.B. Mietvertrag), fragen eines Bekannten/Nachbarn u.ä. Wie wir wissen, kann der Irrtum da schon vorprogrammiert sein. Ich wundere mich daher auch nicht über teils widersprüchliche Adressen auf Websites bzgl. DPAG-Daten.
Falsche Grenzfälle werden ja wahrscheinlich trotzdem zuverlässig zugestellt.
Geht auch mit overpass api. Stichwort: Difference.
Grober Ablauf (bin gerade zu faul, sry).
Menge 1: Wie von fx99
Menge 2: alle associatedStreet-Relationen in der bbox und davon ways/nodes ableiten (mit recurse oder > oder >>)
Ergebnis: Differenz von Menge 1 und 2, also Menge 1 \ Menge 2.
Ein Hinweis kann sein, von welcher Straße aus man die Haustüre erreicht, hundertprozentig sicher ist das aber auch nicht.
Mit solchen Ungenauigkeiten könnte ich aber leben. In OSM gibt es weitaus größere Baustellen (z.B. Orte ganz ohne Adressen, die “Irren”), in die man Arbeit hineinstecken kann.
/*zunächst alle Häuser mit Hausnummer, aber ohne Straße in der aktuellen bbox in "allHouses" sammeln */
way({{bbox}})["addr:housenumber"]["addr:street"!~"."]->.allHouses;
/* In der BBOX alle associatedStreet Relationen ermitteln */
rel({{bbox}})[type=associatedStreet]->.associatedStreet;
/* und darin alle Wege mit der Rolle "house" in "asHouse" sammeln */
way(r.associatedStreet:"house")->.asHouse;
/* Jetzt die Differenz der beiden Mengen bilden, Nodes dazu und ausgeben */
((.allHouses; - .asHouse); >; );out;
/* Jetzt das ganze noch für Nodes: */
node({{bbox}})["addr:housenumber"]["addr:street"!~"."]->.allHousesNode;
node(r.associatedStreet:"house")->.asHouseNode;
((.allHousesNode; - .asHouseNode););out;
Ich bin gerade mal beim einbauen des Overpass querys von oben. Habt ihr irgend eine Beispielregion, wo es associatedStreet Relationen gibt, bei denen die Hausnummern ein addr:street-Tag haben?
Falsch zugeordnete Eckhäuser führen doch unter Umständen zu doppelt vorhandenen Adress-Tags. Bei diesen sollte es möglich sein, sie festzustellen und auszugeben, evtl. erst bei überschreiten eines Mindestabstands.
Möglich wäre vielleicht auch ein abweichen von der Vergabelogik. “Nördlich der Straße sind nur gerade Hausnummern und Hausnummer 1”. Aber das klingt für mich nach immensem Programmier- und Rechenaufwand.
Die Logik der Vergabe von Hausnummern ist gelegentlich äußerst schwer nachzuvollziehen (falls überhaupt vorhanden). Mit Programmen/Algorithmen habe ich da wenig Hoffnung.
In verdichtet besiedelten Gegenden (Häuserblocks) kann man ohne Gebäudeplan nur erahnen, was wohin gehört.
Selbst in einer (pardon) Kleinstadt kenne ich ein Eckgebäude mit drei Hausnummern auf zwei Straßen verteilt und mit nur zwei von außen ersichtlichen Eingängen, wovon einer zu zwei Straßen gehört. Ohne Teilungsplan der Eigentümergemeinschaft hat man da keine Chance.
So ein Programm könnte vielleicht einen größeren Anteil von Falschadressen identifizieren, man erhielte aber ziemlicher sicher auch einen erklecklichen Bodensatz an Falschalarmen.
kannst Du, couchmapper, oder jemand anderer die Query auf alle 3 Objekttypen erweitern und außerdem statt der bbox zuerst eine query nach einer relation machen mit den Tags
dann kann ich die Query bei mir in einer Karte einbauen [1].
Ich ermittle derzeit für alle deutschen Gemeinden die Anzahl Adressen ohne Zusatz und will dann aber bei einer Gemeinde nur die ermittelte Summe angeben und grafisch einfärben. Die konkret betroffenen Objekte sind dann sinnvoller über die dynamische Overpass Query auszuführen in Richtung Josm, damit jemand bei Arbeiten in einer Gemeinde immer nur noch zu bearbeitenden bekommt und nicht alle von mir zu einem Zeitpunkt x vorher.
Ich habe mal die bbox durch eine Area ausgetauscht. Allerdings fehlt mir gerade die Idee, welche Konstallationen mit Relationen (statt Way/node) mit addr:housenumber und ohne addr:street vorkommen können.
Ich habe in München Unterschiede festgestellt zu meiner Auswertung. Ich suche nach associatedStreet Relationen, bei denen name=* gesetzt ist.
In München gibt es einige mit addr:street Angabe zur Straße statt des üblichen name=*, die werden von Deiner Abfrage als gültige Adressen herausgefiltert, bei mir werden sie als ungültig gezählt. Der Unterschied ist mir aber egal und dürfte selten vorkommen.
(ab hier identischer Post zu [0])
auf meiner Sonderkarte [1] werden jetzt nach und nach die Gemeinden Deutschlands eingefärbt abhängig von der absoluten Anzahl von singulären Hausnummern, also ohne addr:street, addr:place und associateStreet-Relationszugehörigkeit. Die Farblegende ist derzeit noch unterhalb der Karte leicht versteckt.
Beim Klick auf die Gemeinde kommen einige Details zur Gemeinde. Die erste Zeile gibt die Anzahl singulärer Hausnummern an und mit dem Link dahinter werden über eine Overpass-API Anfrage alle singulären Hausnummern in Josm geladen. Die Query stammt von couchmapper aus dem Post [2] des Threads “ungültige Adressen”, vielen Dank dafür!.
Die Gemeinden werden normalerweise Bundesland für Bundesland in den nächsten Stunden und Tagen ausgewertet. RP wurde letzte Nacht begonnen, es fehlen dort aber noch etliche, die werden noch nachgeliefert.
Wenn jemand für seine Gegend vorab eine Auswertung haben möchte, bitte den Gemeindeschlüssel oder Regionalschlüssel des Gebiets angeben, entweder eine einzelne Gemeinde oder z.b. ein Kreis. Die Nummern sind z.b. in Wikipedia Artikeln abrufbar.