Uk:Relation:boundary
boundary |
Опис |
---|
Використовуються для гуртування окремих відрізків меж для опису територій, а також створення їх анклавів/ексклавів. |
Зображення в OSM Carto |
Група: Властивості |
Учасники |
|
Дивись також |
Статус: де-факто |
Інструменти |
|
Зв’язки boundary=* використовуються для гуртування окремих відрізків меж для опису територій, а також створення їх анклавів/ексклавів.
Зв’язки використовуються для того, щоб:
- Уникати використання name:left=*, name:right=*, nation:right=* та region:right=*. Їх можна замінити створивши один зв’язок для кожної країни, провінції, міста й т.д.
- Полегшити поєднання відрізків кордону один з одним.
- Уникати використання кількох ліній, що дублюють одна одну.
- Уникати приєднання кордонів до об’єктів довкілля, таких як ліси та річки. Рано чи пізно вони змінюють свою форму і ці зміни також відбуваються в OSM – але, зазвичай, кордони лишаються незмінними, крім випадків коли сам кордон описується через об'єкти довкілля.
Теґи ліній
Кордони повинні мати теґи boundary=administrative та значення теґу admin_level=* для найвищого рівня кордону (у разі спільного кордону країни та області – admin_level=2). Рекомендується додавати джерело походження інформації в source=*.
Оскільки візуалізація кордонів може відбуватись як на основі даних зв’язків, так і з окремих ліній — теґування ліній не є обов’язковим. Колись це викликало помилки візуалізації (див обговорення на Github) але зараз цю проблему усунуто.
Зв’язки кордонів є корисними для використання різноманітних інструментів, але для візуалізації вони не обов’язково використовуються, ось чому рекомендується також теґувати лінії, щоб дозволити рендерам їх коректно показувати.
Застарілі теґи, подібні до name:left=*/name:right=*, можна вилучити.
Теґи зв’язків
Ключ | Значення | Опис |
---|---|---|
type | boundary | Також може бути використаний зв’язок type=multipolygon, але така практика є застарілою і перевага надається зв’язкам type=boundary (див #Реалізація в програмному забезпеченні) |
boundary | administrative | Для адміністративних кордонів (іноді посеред ріки, чи 12 мильна зона від морського узбережжя) |
land_area | administrative | Для берегової лінії чи кордонів на суші |
name | назва | |
admin_level | Рівень в адміністративній ієрархії |
Якщо у вас є адміністративна одиниця, що не має виходу до моря, вам потрібно скористатись парою теґів: boundary=administrative та land_area=administrative. Якщо land_area не збігається з адміністративним кордоном, створіть два зв’язки, один з land_area=administrative, інший з boundary=administrative.
Члени зв’язків
Елемент | Роль | Наявність | Опис |
---|---|---|---|
outer | ! 1+ | Одна чи більше ліній, що утворюють замкнений зовнішній контур або кілька контурів (лінії зовнішніх меж не мають перетинатись поміж собою) | |
inner | ? 0+ | Анклави – за наявності, одна чи більше ліній що утворюють внутрішні контур(и) (лінії внутрішніх меж не мають перетинатись поміж собою) | |
✗ 0 | Не використовується. Використовуйте натомість outer чи inner. Деякі інструменти можуть поводитись з елементами без ролей як з такими, що мають роль outer, інші намагаються визначити чи це елемент зовнішнього чи внутрішнього контурів використовуючи складні геометричні обчислення. | ||
admin_centre | ? 0–1 | Точка, що представляє адміністративний центр території (столиця, обласний, районний центр й т.і.), зазвичай це місто чи селище (в залежності від положення адміністративної одиниці в ієрархії адміністративного устрою, див також place=*). Ця роль призначається саме столиці (столичному місту, обласному чи районному центру), а не місцю де в ньому знаходиться законодавчий орган (будівля відповідної ради). | |
label | ? 0–1 | Точка, яка показує в якому місці на мапі зазвичай потрібно показувати напис з назвою. Наприклад, "центром" міста може вважатись місце знаходження мерії, ратуші, центральної площі, або точки початку відліку відстаней, на відміну від центроїду міста визначеного геометрично по межах міста. Додавання точки для розміщення напису на мапі може бути також корисне, коли територія має анклави, або значні вигини меж, коли типово визначений центроїд для розміщення назви може опинитись по за її межами. Зверніть увагу, що різні стилі мап вимагають різного розміщення назв (через те, що різні стилі роблять наголос на різних елементах мапи, можуть використовувати підписи різними мовами, назви можуть показуватись різними стилями та бажано, щоб вони не перекривали важливі об’єкти на мапі – так, наприклад, на мапі назву прибережного міста краще показувати на водній поверхні; мапи що показують водні маршрути воліли б мати назву міст на суходолі). В результати, розташування точки для показу назви має бути оптимізована під різноманітні стилі, що їх одним зі способів мапінгу під рендер.
Точка з роллю label може мати ключ place=* зі значенням відповідно до переліку місць, що є суб’єктами адміністративного устрою (наприклад place=country; place=state; place=county й так далі.) за наявності. Наприклад – Франція. | |
subarea | ? 0+ | Посилання на адміністративні одиниці нижчого рівня (на зв'язки їх меж), які знаходяться в межах описуємого об’єкта адміністративного устрою.
Зауваження: цей елемент є необов’язковими, суперечливими та надлишковими (посилання на вкладені рівні можуть також знаходитись за геометричними запитами на вкладення). Також посилання на інші зв’язки робить редагування складнішим у деяких випадках. |
Примітка: Лінії, що утворюють адміністративну межу не обов’язково мають бути замкненими, але разом повинні утворювати замкнений контур. Для незамкнених лінійних кордонів дивіться Proposal:Relation boundary segment.
Приклади
<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="Країна A, світло-зеленого кольору, не включає територію C" />
<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="Країна B, темно-зеленого кольору, разом з територією C" />
<member type="way" id="AB" role="outer" />
<member type="way" id="AC" role="outer" />
</relation>
|
<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="Країна A, світло-зеленого кольору" />
<member type="way" id="AB" role="outer" />
<member type="way" id="AC1" role="outer" />
<member type="way" id="AD" role="outer" />
<member type="way" id="AC2" 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="Країна B, темно-зеленого кольору, разом з територією D" />
<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="Країна C, фіолетового кольору" />
<member type="way" id="AC1" role="outer" />
<member type="way" id="CD" role="outer" />
<member type="way" id="AC2" role="outer" />
<member type="way" id="BC" role="outer" />
</relation>
|
Baarle Nassau гарний приклад застосування зв’язків цього типу. Він має ексклави в анклавах. Ексклави в анклавах в Бельгії потрібно додавати до зв’язку Нідерландів, голландської провінції Noord-Brabant та кордону села.
Реалізація в програмному забезпеченні
Програмне забезпечення повинне підтримувати всі застаріли теґи, доки вони не зникнуть з бази даних:
- type=multipolygon разом з type=boundary (адміністративні кордони можуть визначатись через уточнюючий теґ boundary=* )
- role=(blank) для role=outer (використання елементів без ролі є застарілим також і для мультиполігонів, але типово на увазі мається роль outer)