Cs:Relation:boundary

From OpenStreetMap Wiki
Jump to navigation Jump to search
Public-images-osm logo.svg boundary
Boundary.png
Popis
Pro seskupování hranic a vyznačování enkláv/exkláv. Show/edit corresponding data item.
Vykreslování v OSM Carto
Boundary.png
Skupina: Vlastnosti
Členy

  • cesta - inner
  • cesta - outer
  • uzel - admin_centre
  • relace - subarea
Viz též
Status: de facto

Relace boundary=* se používají pro seskupování hranic a označování  enkláv/ exkláv(en).

Relace se používají, aby se:

  • Vyhnulo použití name:left=*, name:right=*, nation:right=* a region:right=*. Toto bylo nahrazeno jednou relací pro každou zem, provincii, město, atd.
  • Snadněji k sobě sešívaly všechny části hranice.
  • Vyhnulo více duplikovaným cestám nad sebou.
  • Vyhnulo připojování hranic k fyzickým prvkům jako lesům či řekám. Dříve nebo později se tyto prvky v reálu změní a budou aktualizovány v OSM – ale obvykle tvar hranice zůstane stejný. Výjimkou je, když je hranice právně vázána na fyzický prvek.

Značky na cestách

Cesty hranice by měly mít značky boundary=administrative a admin_level=* pro nejvyšší hranici (když země, stát, okres jsou na té samé cestě, pak admin_level by mělo být 2). source=* je vždy doporučován.

Protože hranice mohou být vykreslovány jak z relací tak jednotlivých cest, značení cest je v nejstriktnějším smyslu volitelné. Existoval problém vykreslování (viz tuto diskusi na Githubu(en)), ale ten byl vyřešen.

Relace hranic jsou užitečné pro hodně nástrojů, ale ne nutně pro účely vykreslování, což je důvod proč hraniční linie by měly být označeny, aby je vykrelsovač mohl opět použít.

Staré značky závislé na orientaci jako jsou name:left=*/name:right=* mohou být odstraněny.

Značky na relaci

Klíč Hodnota Diskuse
type boundary také se používá type=multipolygon, ale je to již zastaralé (viz poznámky o softwarové implementaci)
boundary administrative pro skutečnou hranici (někdy uprostřed řeky nebo 12 mil od pobřeží)
land_area administrative pro pobřežní a skutečné hranice na pevnině
name název
admin_level administrativní úroveň hranice

Pokud máte v oblasti administrativní plochu na pevnině měli byste nastavit obojí: boundary=administrative i land_area=administrative. Pokud land_area není stejná jako hranice, udělejte dvě relace, jednu s land_area=administrative a druhou s boundary=administrative.

Členy relace

Prvek Role Opakování? Diskuse
cesta outer ! 1+ Více cest, které tvoří uzavřenou hranici
cesta inner ? 0+ Enklávy této hranice - více cest, které tvoří uzavřené vnitřní hranice
relace subarea ? 0+ Odkazují na relace pod-úrovňových hranic uvnitř této administrativní úrovně.
Poznámka: Volitelně, rozporováno a nadbytečné (odkazy na pod-úrovně lze také najít pomocí prostorových dotazů, za předpokladu, že se podobné pod-úrovně nepřekrývají). Také odkazování na jiné relace v některých případech komplikuje editaci.
uzel admin_centre ? 0–1 Uzel reprezentující administrativní centrum (hlavní město, správní centrum okresu atd.), obvykle město nebo vesnice (závisí na úrovni hranice, viz place=*).
uzel label ? 0–1 Uzel reprezentující místo, kam se má vykreslit popiska. (Toto není momentálně podporováno Mapnikem). Může se hodit, když existuje enkláva nebo je hranice hodně prohnutá a výchozí umístění popisky by ji dalo zcela mimo plochu hranic.
cesta <empty>  0 Zastaralé, použijte místo toho outer

Poznámka: Cesty nemusí být uzavřeny, ale všechny cesty dohromady musí tvořit uzavřené kruhy vytvářející hranici. Pro neuzavřené, lineární hranice, viz Proposal:Relation boundary segment(en).

Příklady

Baarle Nassau je dobrým příkladem použití této relace. Má exklávy v enklávách. Exklávy v enklávách Belgie by byly přidány jako exklávy do relace Nizozemí, holandské provincie Noord-Brabant a hranice vesnice.

Příklady značení
C je enkláva A a exkláva B:
<relation id="1">
  <tag k="type" v="boundary" />
  <tag k="boundary" v="administrative" />
  <tag k="land_area" v="administrative" />
  <tag k="admin_level" v="2" />
  <tag k="name" v="světlezelená země" />
  <member type="way" id="AB" role="outer" />
  <member type="way" id="AC" role="inner" />
</relation>
<relation id="2">
  <tag k="type" v="boundary" />
  <tag k="boundary" v="administrative" />
  <tag k="land_area" v="administrative" />
  <tag k="admin_level" v="2" />
  <tag k="name" v="tmavězelená země" />
  <member type="way" id="AB" role="outer" />
  <member type="way" id="AC" role="outer" />
</relation>
C je enkláva A a exkláva B.
D je exkláva B, ale není enklávou A, jelikož také sdílí hranici s C:
<relation id="1">
  <tag k="type" v="boundary" />
  <tag k="boundary" v="administrative" />
  <tag k="land_area" v="administrative" />
  <tag k="admin_level" v="2" />
  <tag k="name" v="světlezelená země" />
  <member type="way" id="AB" role="outer" />
  <member type="way" id="AC1" role="outer" />
  <member type="way" id="AC2" role="outer" />
  <member type="way" id="AD" role="outer" />
</relation>
<relation id="2">
  <tag k="type" v="boundary" />
  <tag k="boundary" v="administrative" />
  <tag k="land_area" v="administrative" />
  <tag k="admin_level" v="2" />
  <tag k="name" v="tmavězelená země" />
  <member type="way" id="AB" role="outer" />
  <member type="way" id="BC" role="outer" />
  <member type="way" id="AD" role="outer" />
  <member type="way" id="CD" role="outer" />
</relation>
<relation id="3">
  <tag k="type" v="boundary" />
  <tag k="boundary" v="administrative" />
  <tag k="land_area" v="administrative" />
  <tag k="admin_level" v="2" />
  <tag k="name" v="fialová země" />
  <member type="way" id="AC1" role="outer" />
  <member type="way" id="AC2" role="outer" />
  <member type="way" id="CD" role="outer" />
  <member type="way" id="BC" role="outer" />
</relation>
D je exkláva B, ale není to enkláva A, jelikož také sdílí hranici s C.

Máme i více příkladů!

Softwarová implementace

Software by měl podporovat všechny zastaralé typy, dokud nezmizí z databáze:

  • type=multipolygon stejně jako type=boundary (administrativní hranici lze určitě poznat pomocí existující značky boundary=*)
  • role=(blank) pro role=outer (povšimněte si, že prázdná role je zastaralá i pro multipolygon, ale obvykle se bere za outer)

Nástroje

Downloady