On 16.06.19 13:23, realadry via Talk-at wrote:
Ich bin zwar schon mehrere Jahre bei OSM aber habe das Thema nicht regelmäßig verfolgt, daher weiß ich nicht ob es mittlerweile einen Konsens gibt.
Nein, gibt es nicht.
Wenn man sich in der Karte in Wien umsieht, sieht man drei verschiedene Arten wie Hausnummern gemapped werden: 1) Eigener Node mit der gesamten Adresse. Gebäude Polygon hat gar keine Adressinformation. Dieser Node ist manchmal in der Nähe des Hauseinganges, manchmal irgendwo innerhalb der Gebäudes platziert.
Wie Robert Kaiser schon angemerkt hat, war das einst Konsens für Häuser mit mehreren Adressen. Heute gibt es dafür was Besseres, nämlich das addrN-Schema.
2) Hausnummer und Adresse am Gebäudepolygon. (Eingang als Node des Gebäudes.)
Das ist grundsätzlich die richtige Metode.
3) Hausnummer, Adresse und Eingang auf einem Node der Teil des Gebäude Polygons ist, an der Stelle des Hauseingangs.
Das war nie Konsens und zeugt von einer grundlegend falschen Sichtweise, s.u.
Variante 1: Eine Adresse die "irgendwo" als einzelner Node im Gebäude herumfliegt hat keinen Sinn, da man überlicherweise eine Adresse auch mit dem Eingang assoziiert
Tust du das wirklich? Wo wohnst du, dass du dir so eine Sichtweise angeeignet hast? Eine Hausnummer ist, wie der Name schon sagt, die Nummer eines Hauses, nicht eines Eingangs. Eigenschaften eines Hauses sind logischerweise aufs Haus zu taggen. Du setzt ja wohl auch nicht den Namen einer Firma nur auf den Eingang zum Firmengelände oder die Nummer einer Autobahn nur auf die Auffahrt.
(Hausnummer ist ja in Realität fast immer am Eingang angebracht).
Ja, zur Orientierung. Genauso wie das Schild am Eingang zum Firmengelände oder die Tafel bei der Autobahnauffahrt.
Es gibt genug Beispiele für Hausnummernschilder, wo kein Eingang ist, und für Eingänge, wo kein Hausnummernschild hängt. Es würde schon ein einziges Gegenbeispiel reichen um eine Theorie zu widerlegen, und hier gibt es Gegenbeispiele en masse.
Bei dieser Variante kann weder das Gebäude polygon, noch der Hauseingangs-node festgestellt werden. Es wird zum Ratespiel.
Doch, beides kann festgestellt werden. Soweit ich weiß, bietet PostGIS schon vorgefertigte Funktionen dafür um herauszufinden, ob ein bestimmter Node innerhalb eines bestimmten Polygons liegt. Aber das war gar nicht der Zweck dieser Variante 1. Es ging nur darum, Identadressen überhaupt erfassen zu können und dem Renderer zu sagen, auf welcher Seite des Hauses er die Hausnummer anzeigen soll.
Variante 2: Hier kann man immerhin den Eingang noch mit der Adresse assozieren, da man einfach den "Eingang" node am jeweiligen Gebäude Polygon auslesen muss (das man zuvor anhand der Adresse gefunden hat).
Ja, mit Variante 2 funktioniert alles.
Variante 3: In jeder Hinsicht die logischste. Eingang, Adresse, Gebäude ist alles einfach maschinell auszulesen.
Nein, s.o. (Gegenbeispiele), und für eine Trafik x im Gebäude y mit Adresse z muss eine Anwendung erst den Haupteingang (der gar nicht in die Trafik führt), das Gebäude und den POI für die Trafik einander zuordnen. Komplizierter geht es nicht.
Wenn ein entrance-Node Eingang zu 2 verschiedenen Flächen gleichzeitig ist (z.B. building und building:part), dann scheitert eine automatische Zuordnung überhaupt, denn in so einem Fall ist undefiniert, auf welche der Flächen sich die Adresse bezieht. Das ist halt das Problem, wenn man Attribute nicht auf das Objekt setzt, auf das sie sich beziehen.
Für das Rendern macht es keinen Unterschied welche Variante gewählt wird.
Doch, das ist sogar der sich am meisten praktisch auswirkende Unterschied. Wenn die Adresse aufs Gebäude gesetzt ist, wir sie in der Gebäudemitte gerendert. Wenn die Adresse auf einen Node gesetzt ist, wird sie dort gerendert, wo der Node ist.
Zum Routen und zur maschinellen verarbeitung (Suche) aber sehr wohl.
Im Moment können die gängigen Anwendungen alle 3 Varianten nicht richtig, obwohl es für alle 3 Varianten nicht schwierig wäre. Bisher hat halt keiner einen Bedarf gesehen, es ordentlich zu programmieren.
Jetzt fragt ihr euch vielleicht, warum mir das so wichtig ist. Ganz einfach. Abgesehen von Routingproblem um den Eingang zu finden. Um effizient und maschinell gewisse Bearbeitungen oder Suchen vorzunehmen, muss man mit Gewissheit die Adresse eines Gebäudes feststellen können. z.B. Eine Liste von Adressen von Gebäuden mit gewissen Merkmalen die man eintragen möchte oder eine Liste von Adressen von denen man das zugehörige Gebäudepolygon markieren/ausgeben möchte. Suche ich nach der Adresse, finde aber nur einen Knoten der im nichts herumschwebt (wie Variante 1), ist das ein Problem für ein Skript.
Heißt das, du bist Anwendungsentwickler? Dann wird dir nichts anderes übrig bleiben, als dein Programm so zu schreiben, dass es mit allen 3 Varianten umgehen kann. Denn als Anwendungsentwickler musst du mit den Daten leben, die du vorgesetzt bekommst.
-- Friedrich K. Volkmann http://www.volki.at/ Adr.: Davidgasse 76-80/14/10, 1100 Wien, Austria _______________________________________________ Talk-at mailing list [email protected] https://lists.openstreetmap.org/listinfo/talk-at
