Uk:Полігон

From OpenStreetMap Wiki
Jump to navigation Jump to search
Mf area.svg
Пішохідна ділянка приєднана до дорожньої мережі

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

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

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

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

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

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

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

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

Показ

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

Приклади

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

Нижче наведено приклад озера, накресленого замкненою лінією, остання точка якої збігається з першою. Використовується теґ natural=*, що вже обумовлює наявність 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>

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

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

  <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>

Див. також