Uk:Полігон

From OpenStreetMap Wiki
(Redirected from Uk:Area)
Jump to navigation Jump to search
Osm element area.svg

Полігон (або заповнений полігон) може бути визначений як місцевість оточена замкненою лінією чи лініями з відповідними теґами або з використанням мультиполігону, що утворює полігон з однієї чи більше ліній.

Зауважте, що полігони не є окремим примітивом даних в моделі даних OpenStreetMap і чи є замкнена лінія полігоном визначається на основі її теґів. Наприклад замкнені лінії позначені landuse=* вважатимуться полігонами, а інші, такі як highway=pedestrian — ні, і оброблятись як лінійні об’єкти, тільки якщо до них не застосовано теґ area=yes для позначення пішохідної території.

information sign

На сторінках опису теґів мультиполігони розглядаються як полігони area, а не як звʼязки relation, оскільки ті самі теґи застосовуються як до замкнених шляхів, так і до мультиполігонів. Див ЧаПи Вікі.

Як позначати на мапі

Пішохідна ділянка приєднана до дорожньої мережі

Існує два способи створити полігон:

  • Для невеликих ділянок найчастіше достатньо накреслити замкнену лінію з відповідними теґами і в дуже рідкісних випадках потрібно додати area=yes. Дивіться area=* для подальших інструкцій.
  • Для великих територій і для тих ділянок, що входять до складу інших полігонів або ліній, найбільш відповідним є застосування мультиполігонів, так само із застосування потрібних теґів. Дивіться relation:multipolygon для додаткової інформації.

Хоча технічно мультиполігони є звʼязками relation, їх використання є загальноприйнятим для теґів, які передбачають використання лише на полігонах area (і для яких у вікі зазначено, що ці теґи НЕ слід використовувати на звʼязках). Це виняток, оскільки мультиполігони – це звʼязки, спеціально призначені для представлення полігонів. Наприклад: natural=* використано 2,5 мільйона разів у звʼязках; landuse=* 1,8 мільйона разів (за даними Taginfo, 2023).

Замкнені лінії із деякими комбінаціями теґів можуть утворювати як 'замкнені лінії', так і 'полігони'. Наприклад лінія, що позначає дорогу з круговим рухом із газоном в середині може бути як замкненою лінією з теґом highway=primary, так і полігоном з теґом landuse=grass. Такий елемент може бути визначений як дорога кільцевим рухом з газоном в середині.

Під час рендерингу на мапі незамкнених лінії з теґами об’єктів, що мають бути полігонами, матимуть заливку з кордоном по самій лінії і уявному відрізку між крайніми точками.

У минулому було необхідно дотримуватися напрямку руху лінії (за годинниковою стрілкою або проти) для їх коректного показу на мапі. Тепер це не необов’язково.

Представлення

Під час креслення обʼєктів на мапі, менші полігони накладаються зверху на великі. Таким чином скупчення дерев на території парку буде показане поверх полігону самого парку. Для полігонів, створених з використанням мультиполігонів, можливо точно показати дерева окремо від трави.

Приклади

Простий полігон

Нижче наведено приклад озера, накресленого замкненою лінією, остання точка якої збігається з першою. Використовується теґ natural=water, що вже обумовлює наявність area=yes. Зауважте, що неможливо таким способом показати острівці на озері. За визначенням, замкнені лінії не мають можливості показувати отвори в полігонах.

  <way id="4876027" timestamp="2008-03-12T07:59:11Z" user="MichaelCollinson">
    <nd ref="31492372"/>
    <nd ref="31492338"/>
    <nd ref="31492370"/>
    <nd ref="31492371"/>
    <nd ref="31492372"/>
    <tag k="natural" v="water"/>
    <tag k="name" v="Spegeldammen"/>
  </way>

Мультиполігон

Multipolygon Illustration 2.svg

Multipolygon Illustration 1b.svg

Полігон може бути визначений за допомогою relation:multipolygon, набору ліній, які визначають зовнішню межу, а також, необов’язково, внутрішні межі (або 'отвори'). У наведеному нижче прикладі є один зовнішній контур, визначений одною лінією способом, і дві лінії як inner (внутрішні контури):

З цього фрагменту даних ми не можемо сказати, чи це

  • два отвори (обидві лінії є замкненими, верхнє зображення праворуч) або
  • один отвір (обидві внутрішні лінії обʼєднані в одну замкнену лінію, нижній малюнок праворуч)

Це можна вирішити, подивившись на дані #8125153 та #8125154 відповідно.

  <relation id="12" timestamp="2008-12-21T19:31:43Z" user="kevjs1982" uid="84075">
    <member type="way" ref="2878061" role="outer"/> <!-- малюнок ref="1" -->
    <member type="way" ref="8125153" role="inner"/> <!-- малюнок ref="2" -->
    <member type="way" ref="8125154" role="inner"/> <!-- малюнок ref="3" -->

    <member type="way" ref="3811966" role=""/> <!-- порожня роль спричиняє 
        появу попередження; уникайте цього; більшість програм редакторів може визначати ролі
        самостійно, але це досить витратно ніж зазначити їх правильно з самого початку;
        не показується на малюнку праворуч -->

    <tag k="type" v="multipolygon"/>
  </relation>

Теґи, які передбачають, що вони позначають полігони

Полігони можуть бути створені явно за допомогою мультиполігонів або додаванням area=yes, але кілька теґів на замкнені лінії також можуть означати, що це полігон або ні. Наприклад, landuse=forest однозначно означає вкриту деревами територію, а не ряд дерев. Тоді як natural=tree_row на замкненій лінії однозначно означає, що це кільце дерев.

area=no може використовуватися для явного перевизначення стандартних припущень, його можна використовувати у деяких рідкісних випадках, таких як лавка, що позначена як лінія, яка утворює замкнену лінію шляху (див. way приклад).

Різні програми, що обробляють OSM-теґи, матимуть власні списки, які можуть дещо відрізнятися, значною мірою через різні способи використання цих списків.

Зауважте, що обробка ускладнюється і може призвести до збоїв у випадку представлення кількох обʼєктів одним елементом геометрії. Наприклад, представлення дитячого майданчика та стіни навколо дитячого майданчика одним елементом (barrier=wall та leisure=playground) спричинить проблеми у випадку спроб зобразити стіну як полігон. Дивіться, наприклад, приклад Стандартного стилю мапи.

Дивіться також

  • The Future of Areas
  • Overpass turbo/Polygon Features — опис що Overpass turbo вважає полігонами, може стати в пригоді, як початкова точка для розробників
  • area=* — Використовується для позначення того, що певний обʼєкт є полігоном (використовується тільки для обʼєктів із замкненими лініями, не використовується для точок, звичайних ліній та звʼязків).