Pl:Karlsruhe Schema

From OpenStreetMap Wiki
Jump to navigation Jump to search

Schemat jest używany do oznaczania numerów budynków.

Poniższy schemat był używany początkowo tylko do nanoszenia numeracji budynków. W związku z rozwojem projektu jest on obecnie używany do nanoszenia całości danych adresowych. (Patrz klucz).

Jest to propozycja jedna z wielu.

Housenumber-karlsruhe-de.png

Schemat może się zmienić w każdej chwili, jeśli pojawi się więcej doświadczeń ze zbieraniem informacji adresowych i ich wykorzystaniem.

Podstawy

Domy znajdują się zazwyczaj w pobliżu ulic. Poprzez adres pocztowy mają odniesienie do sąsiadującej ulicy.
Równocześnie mają współrzędne geograficzne.

Im System von OSM gesprochen:

  • Grundsätzlich entspricht jedes Haus einem Punkt oder einer Fläche, der/die in der Nähe (nicht auf!) einer Straße liegt.
  • Besondere Linien können solche Punkte verbinden, um dazwischen liegende Hausnummern "interpolierend" anzudeuten; d.h. mit ihnen wird angezeigt, dass z.B. zwischen den Hausnummern 10 und 20 die Hausnummern 12, 14, 16, 18 liegen.

Wskazówka: Wenn ein Ort keine benannten Straßen hat, ist (zumindest in Deutschland) sinnvollerweise folgende Regelung der Deutschen Post AG anzuwenden: Wenn es sich um einen Ortsteil handelt, dann gilt dessen Name als Straßenname, bei einem Einzelgehöft der Name des Flurstücks, andernfalls der Ortsname selbst.

W centrum miasta Mannheim w RFN ulice nie mają nazw. Bloki zabudowy (kwadraty) są tam oznaczone literami. Wewnątrz tych bloków budynki mają swoją numerację. Diese Nummern laufen dann einmal im Quadrat rum. Ein Haus hat z.B. die Adresse B5 3, das Haus auf der anderen Straßenseite hat die Adresse C5 8.

Klucz

Zur vollständigen Adresserfassung haben sich folgende Schlüssel (Stand 07/2010) zur Verwendung am Adress-Node oder Gebäude (vor allem für neue OSM-User sehr gut geeignet!) oder Adress-Relation (siehe unten Relation, für erfahrene OSM-User zu empfehlen) etablieren können:

Klucz Zatosowanie Element-Typ Wartość Opis
addr:housenumber erforderlich węzeł obszar Text die Hausnummer (Ziffern und evtl. Buchstaben)
addr:street erforderlich węzeł obszar Text der postalische Name der Straße
addr:interpolation erforderlich linia even / odd / all / alphabetic Art der Interpolation (gerade, ungerade, durchlaufend oder alphabetisch für 7a-7e)
addr:full optional węzeł obszar Text vollständige postalische Anschrift
addr:postcode erforderlich węzeł obszar Text Postleitzahl
addr:city erforderlich węzeł obszar Text Postalische Bezeichnung der Stadt bzw. Gemeinde
addr:country erforderlich węzeł obszar zwei Buchstaben Da die Postleitzahlen nur in einem Land einmalig sind, empfiehlt es sich den nach ISO 3166-1 alpha-2 eingeführten Zwei-Buchstabencode in Großbuchstaben (siehe wikipedia:ISO 3166-1 alpha-2) zu benutzen. Also z.B. 'PL' dla Polski i 'FR' dla Francji.

Wskazówka: Klucz zawiera einen Doppelpunkt. So wie man sonst z.B. den Schlüssel highway mit dem Wert residential eingibt, muss man hier den Schlüssel addr:housenumber mit einem Wert wie 10 eingeben.

Przykład: addr:housenumber=10

Zastosowanie

Wolno stojący budynek jako punkt w pobliżu ulicy

NodeNextToRoad.png Der in die Nähe der Straße gesetzte Punkt wird so gekennzeichnet:

addr:housenumber=10

Der Straßenname kann dann in den meisten Fällen von den Anwendungsprogrammen vom nächstliegenden Straßenabschnitt genommen (Fuß-, Rad- und Feldwege zählen dabei nicht) werden. Achtung: Die alleinige Angabe von addr:housenumber=* hat sich als fehlerträchtig herausgestellt. Z.B. an Eckhäusern oder bei Häusern mit Eingang an der Parallelstraße hinter dem Haus, kann Software alleine nicht immer richtig entscheiden, welche Straße den Namen liefern soll. Aus diesem Grund ist das vollständige Erfassen aller Schlüssel sehr zweckmäßig und macht die Auswertung für Anwendungen (Routing, Suchen, etc.) sicherer und weniger fehleranfällig. (Siehe 'genaue Angabe der zugehörigen Straße')

Wolno stojący budynek jako powierzchnia

HousePolygonNextToRoad.png

Ein Haus als Fläche wird so gekennzeichnet:

building=yes (oder building=apartements, ...)
+ addr:housenumber=10

Dies entspricht dem ersten Beispiel, nur dass statt des Punkts eine Fläche verwendet wird.

Mehrere Häuser an einer Straße (Interpolation)

Interpolationen sind ein vorübergehendes Hilfskonstrukt.
Besser ist es alle Häuser einzuzeichnen und allen eine eigene Hausnummer zu geben.

HouseNumbersInterpolation.png

Parallel zur Straße wird eine zusätzliche Linie gezeichnet. Mindestens zwei Punkte dieser Linie (mindestens die Endpunkte) werden wie oben als "einzelne Häuser" mit Hausnummern gekennzeichnet. Diese zusätzliche Linie (nicht die Punkte!) bekommt folgende Kennzeichnung:

für gerade Hausnummern:

addr:interpolation=even 

für ungerade Hausnummern:

addr:interpolation=odd 

für fortlaufende Hausnummern:

addr:interpolation=all

Diese Methode funktioniert nicht bei Hausnummern mit Buchstaben als Zusatz (Beispiel: 21a). Wenn Häuser (und damit eine Hausnummer) fehlen, (z.B. bei einem fehlenden Haus Nr. 12) und man genau sein will, dann sind zwei Linien zu zeichnen (im Beispiel "1-11" und "13-25").

Der Straßenname kann dann in den meisten Fällen von den Anwendungsprogrammen vom nächstliegenden Straßenabschnitt genommen (Fuß-, Rad- und Feldwege zählen dabei nicht) werden. Achtung: Die alleinige Angabe von addr:housenumber=* hat sich als fehlerträchtig herausgestellt. Z.B. an Eckhäusern oder bei Häusern mit Eingang an der Parallelstraße hinter dem Haus, kann Software alleine nicht immer richtig entscheiden, welche Straße den Namen liefern soll. Aus diesem Grund ist das vollständige Erfassen aller Schlüssel sehr zweckmäßig und macht die Auswertung für Anwendungen (Routing, Suchen, etc.) sicherer und weniger fehleranfällig. (Siehe 'genaue Angabe der zugehörigen Straße')

(weitere Details siehe englische Seite)

genaue Angabe der zugehörigen Straße

Relationen sind der bevorzugte Weg, die zugehörige Straße anzugeben, da sie in Software leicht auszuwerten sind. Wer sich aber nicht mit Relationen beschäftigen will, kann auch das addr:street-Tag dazu verwenden (siehe nächster Abschnitt).

Laut Marcus Wolschon reicht es, entweder addr:street oder die Relation associatedStreet) zu verwenden (siehe Mail "Re: Hausnummernmapping & Relationen (Karlsruher Schema)" (Wayback Machine) von 2009-04-15 09:18:48 GMT auf der talk-de Mailingliste).

Dokładnie narysowana ulica für einzelne Häuser

HousePolygonNextToRoadWName.png

Zusätzlich zur Hausnummer wird die Straße angegeben:

addr:housenumber=10
addr:street=Goethestraße

Oder als vollständige Adresse:

addr:housenumber=10
addr:street=Goethestraße
addr:postcode=50011
addr:city=Köln
addr:country=DE

Obie formy są dla ludzi łatwo i bezpośrednio zrozumiałe.

Jako relacja

Relationen sind für Computer in bestimmten Anwendungsfällen leichter zu verarbeiten, aber weniger intuitiv für Menschen.

Deren Verwendung kann allerdings auch für Menschen vorteilhaft sein. Wenn man in Josm per Doppelklick eine Relation aktiviert, so werden alle Mitglieder dieser Vorlage angezeigt. In diesem Fall also Strassenteile und assoziierte Hausnummern. Damit kann man leicht überprüfen, ob eine Strasse komplett ist.


Właściwości
Klucz Wartosc Uwagi
type associatedStreet
name Straßenname Optional?!?! Zur besseren Integration in JOSM


Mitglieder der Relation
Element-Typ Rolle Anzahl Anmerkungen
linia street eine Straße, zu der die Hausnummern gehören
węzeł linia house eine(r) oder mehrere eine oder mehrere Hausnummern


Przykład
Screenshot, der die Beispielrelation in JOSM zeigt.

So werden Häuser mit Hausnummern durch eine Relation mit einer Straße verknüpft:

Punkt für Hausnummer „10“:

building=yes
+ addr:housenumber=10

plus

Linie für „Goethestraße“:

highway=residential 
+ name=Goethestraße

→ Relation zur Verknüpfung:

type=associatedStreet

Mitglieder der Relation sind die beiden eben angelegten Objekte:

  • Hausnummer-Punkt mit Rolle house
  • Straßen-Linie mit Rolle street

genaue Straße für eine Reihe von Häusern

Parallel zur Straße wird eine zusätzliche Linie gezeichnet. Diese Linie wird so gekennzeichnet:

addr:interpolation=* 

Der erste Punkt dieser Linie erhält zusätzlich

addr:street=*

Auch hier kann mit Relationen gearbeitet werden, indem die mit addr:interpolation=* gekennzeichnete Linie in der Rolle house der Relation hinzugefügt wird.

Opis specjalnego dojazdu

<relation id="??">
  <tag k="type" v="roadAccess" />
  <member type="node" ref="11" role="accessto" />
  <member type="node" ref="12" role="accessvia" />
  <!-- (bei Bedarf weitere <member type="node" ref="11" role="accessvia" />
        für Gebäude mit mehreren Zugängen -->
  <member type="way" ref="???" role="accessfrom" /> <!-- bei Bedarf -->
</relation>

Innymi słowy: Relacja typu type=roadAccess z tymi członkami (members):

  • accessto = ein Punkt mit Hausnummernangabe (address node), der also wie oben angegeben wenigstens mit addr:housenumber=*, aber wegen der Entfernung zur Straße sinnvollerweise meist auch mit addr:street=* gekennzeichnet ist.
  • accessvia = ein Punkt (access node) auf der Straße oder nahe an dieser. Ein Routing-Algorithmus sollte ihn behandeln wie einen Punkt mit den entsprechender Hausnummernangabe, der nicht Mitglied einer solchen Relation ist. Im Falle, dass mehrere Punkte als accessvia angegeben sind, dann ist nach den üblichen Kriterien (z.B. kürzeste oder schnellste Route) der beste auszuwählen.
  • accessfrom (bei Bedarf) = der Weg (Straße, Zufahrtsweg), von dem aus der/die als accessvia gekennzeichnete(n) Punkt(e) ausschließlich zu erreichen ist/sind.

Dotychczasowe praktyczne zastosowanie

  • Ponad 2.101.185 razy tylko w samej RFN narysowano do tej pory addr:housenumber=* w Polsce 253.112 razy (Stan: 27.12.2011 spisane z Tagwatch ).
  • Traveling Salesman hat eine Kommandozeilen-Anwendung org.openstreetmap.osm.data.searching.HouseNumberFinderTest, die nach Straße und Hausnummer suchen und dazu die Geo-Koordination angeben kann.
  • OpenRouteService (OSR) wertet die Adressen für die Berechnung von Routen aus.
  • Osmarender zeigt solche Hausnummern sehr hübsch an: einzelne Häuser, Interpolation
  • Seit Februar 2009 tut dies auch Mapnik: einzelne Häuser, Interpolation
  • JOSM hat Vorgaben zum einfachen Setzen von Eigenschaften der Form addr:*=*, neuere Versionen haben unter "Vorlagen" (presets) - "Zivilitationsbauten->Gebäude" auch Vorlagen für Hausnummern nach diesem Schema.
  • mkgmap bindet die Adressdaten in die POI Info mit ein. Die associatedStreet Relation wird zur Zeit noch nicht ausgewertet.
  • LoroDux wird für Blinde hausnummerngenaues Routing anbieten. Bitte dafür die Eingangs-Nodes mit der addr:housenumber versehen.

Brainstorm Relation/Einzelerfassung auf talk-de 07/2010

Quelle: Diskussionsfaden Mailingliste talk-de: Zum 1000. mal - Hausnummern und Straßennamen?

  • Zusammenfassung: Diskussion darüber, ob die Methode der ausschließlichen Erfassung der Hausnummer, der Einzelerfassung von Adressdaten (hier ist nicht nur die Hausnummer, sondern die vollständige Adresse gemeint!) an eingezeichneten Gebäuden (building=yes) oder an Adress-Nodes mit vollständiger Angabe aller Adressschlüssel (siehe "Schlüssel") sinnvoller oder weniger sinnvoll ist, als Erfassung und Abbildung aller Adressdaten unter Verwendung von Relationen (siehe "Relationen"). (Die Hausnummer sollte nicht alleine erfasst werden, da Software die Beziehung zur Straße dann in vielen Fällen erraten müsste. Z.B. Eckhäuser, Häuser mittig zwischen zwei Parallelstraßen, etc.)


  • Ergebnis: Die im Karlsruher Schema vorgeschlagene Methode der Erfassung von Hausnummern zusammen mit der Straße, zu der sie gehören, in einer Relation vom Typ "associatedStreet" hat den Vorteil der geringeren Redundanz (addr:postcode=*, addr:city=* und addr:country=*) kann der Relation mitübergeben werden und muss nicht an jedem Gebäude/Adressknoten erfasst werden) und der damit einhergehenden "schöneren" Datenart. Sie hat aber auch den Nachteil, dass neue Mapper sich sofort mit Relationen beschäftigen müssen, um überhaupt Adressen eintragen zu können, was eine Hürde und Abschreckung, aber auch Fehlerquelle durch und für diese Neuuser bedeuten kann. Das betrifft nicht nur die Erfassung der Adressdaten, sondern vielmehr auch alle Änderungen an ways durch Trennung und Neuverknüpfung, etc., da hier die Relationen beeinträchtigt werden können. (Das einfache Tag-Ändern/Ergänzen am way selbst stört jedoch nicht die Relationen zu der sie gehören.) Die im Karlsruher Schema vorgeschlagene Methode der Einzelerfassung von Adressdaten an eingezeichneten Gebäuden (building=yes) oder an Adress-Nodes ist die für Neuuser einfachere Methode. Durch Mehrfachmarkierung bereits bestehender Gebäude und Knoten kann auch hier eine schnelle Erfassung der gemeinsamen Daten (Straße, PLZ, Stadt, Land) erreicht werden. Durch das Eintragen dieser Adress-Eigenschaften am Gebäude/Node selbst werden keine anderen Bereiche, wie der Straße zu der sie gehören, im Fehlerfalle beeinträchtigt oder in Mitleidenschaft gezogen werden. Bei Adress-Relation könnte dies für unerfahrene Neuuser eher der Fall sein.


  • Fazit: Da man neue OSM-User gerade zur Erfassung von Adressdaten eher gewinnen denn abschrecken möchte, sei dazu die Methode mit addr:-keys (siehe Schlüssel) als Tags am Gebäude oder Node für diese Gruppe der neuen OSM-User die praktikabelste Lösung, aber nicht die alleinig richtige. Erfahrene OSM-User können die Relation bevorzugen, da sie weniger Redundanz bietet. (Die Hausnummer sollte in beiden Versionen nicht alleine erfasst werden, da Software im einen Fall die Beziehung zur Straße (und PLZ, Ort, Land) dann in vielen Fällen erraten müsste. Z.B. Eckhäuser, Häuser mittig zwischen zwei Parallelstraßen, etc.. Im Falle der Relationen zwar zur Straße, aber nicht zur PLZ, Ort und Land bezogen wären.)