User:Zverik/Multipolygon Translation

From OpenStreetMap Wiki
Jump to: navigation, search
Available languages — Relation:multipolygon
Afrikaans Alemannisch aragonés asturianu azərbaycanca Bahasa Indonesia Bahasa Melayu Bân-lâm-gú Basa Jawa Baso Minangkabau bosanski brezhoneg català čeština dansk Deutsch eesti English español Esperanto estremeñu euskara français Frysk Gaeilge Gàidhlig galego Hausa hrvatski Igbo interlingua Interlingue isiXhosa isiZulu íslenska italiano Kiswahili Kreyòl ayisyen kréyòl gwadloupéyen kurdî latviešu Lëtzebuergesch lietuvių magyar Malagasy Malti Nederlands Nedersaksies norsk norsk nynorsk occitan Oromoo oʻzbekcha/ўзбекча Plattdüütsch polski português română shqip slovenčina slovenščina Soomaaliga suomi svenska Tiếng Việt Türkçe Vahcuengh vèneto Wolof Yorùbá Zazaki српски / srpski беларуская български қазақша македонски монгол русский тоҷикӣ українська Ελληνικά Հայերեն ქართული नेपाली मराठी हिन्दी অসমীয়া বাংলা ਪੰਜਾਬੀ ગુજરાતી ଓଡ଼ିଆ தமிழ் తెలుగు ಕನ್ನಡ മലയാളം සිංහල ไทย မြန်မာဘာသာ ລາວ ភាសាខ្មែរ ⵜⴰⵎⴰⵣⵉⵖⵜ አማርኛ 한국어 日本語 中文(简体)‎ 吴语 粵語 中文(繁體)‎ ייִדיש עברית اردو العربية پښتو سنڌي فارسی ދިވެހިބަސް
Public-images-osm logo.svg multipolygon
frameless|center|200px|
Описание
Отношение мультиполигона описывает любые типы областей. Это официальный формат области в OSM.
Группа: Properties
Участники

  • way — outer
  • way — inner
Викиданные
Статус: неизвестен

Отношениями типа мультиполигон описываются любые виды областей. Мультиполигон — это формат описания области в OpenStreetMap.

Область можно нарисовать по-быстрому, одной замкнутой линией и такими тегами на ней, которые подразумевают, что это область (например, замкнутая линия с landuse=forest будет считаться областью, а с junction=roundabout — нет). Увы, такая простая схема применима только когда область проста: без дырок и рисуется одной линией.

Более сложные виды областей (например, контур которых состоит из нескольких линий, или у которых несколько отдельных контуров, или есть дырки) требуют отношения мультиполигон.

Есть мнение, что type=multipolygon нужно использовать даже на отношениях границ (вместо type=boundary), поскольку в основе эти отношения похожи, и отношение границы может быть легко распознано по наличию тега boundary=*.

Короче, мультиполигон должен содержать линии в роли outer (внешний контур), ещё линии в роли inner (дырки, не обязательны), и всё это как-то должно складываться в замкнутые контуры, из которых строится мультиполигон.

Теги

Тег Значение Описание
type multipolygon Сообщает приложению, что члены отношения составляют мультиполигон.

Члены

Отношения этого типа содержат только линии way в таких ролях:

Роль Количество Описание
outer 1 ... ∞ Линии, составляющие внешний контур (контуры) области.
inner 0 ... ∞ Линии, составляющие внутренний контур (контуры) области.
нет Почти всегда отношение можно правильно нарисовать даже в отсутствие ролей inner и outer. Тем не менее, их рекомендуется ставить для других мапперов, чтобы было понятно.

Применение

Отношение мультиполигона используется примерно таким образом:

  • Все теги про область (например, landuse=forest) ставятся на отношение. Внешний контур (контуры) остаются без тегов, если они не значат что-то сами по себе. К примеру, лес может быть очерчен четырьмя дорогами, которые в таком случае сохраняют теги highway, но могут участвовать в отношении леса как outer-члены (но обычно лес не вплотную примыкает к линиям highway, т.к. от них до леса минимум половина ширины дороги — прим. пер.).
  • Если внешний контур сделан одной линией, которая больше ничего не обозначает, можно повесить теги на неё, оставив отношение только с типом. Если внешних контуров много (см. «Сложные мультиполигоны» ниже), то в таком «упрощении» теряется смысл. Поэтому для однородности рекомендуется вешать теги на отношение всегда.
  • Если внутренний контур что-то обозначает сам по себе (например, лес с дыркой, где дырка — это озеро), то можно поставить соответствующие теги на линии внутреннего контура.
  • Иначе эти линии нужно оставить без тегов.
  • Направление линий не важно.
  • Порядок членов в отношении не важен (но сортировка поможет проверять замкнутость областей на глаз).
  • В общем случае отношением мультиполигона можно описать мультиполигоны в соответствии со стандартом OGC Simple Feature. Всё, что по этому стандарту не является корректным мультиполигоном (например, где контуры пересекаются), не должно считаться и корректным отношением мультиполигона, с единственным исключением — соприкасающимися внутренними кольцами (см. ниже).

Примеры

Будут несколько позже. Можно посмотреть их на английской странице.

Обработка

  • Все теги, описывающие область, предлагается ставить на отношение, а не на линии. В большинстве случаев на выходе будет множество линий без тегов вообще.
  • Учёт обратной совместимости:
    • стиль рисования берётся из тегов самого отношения;
    • если на отношении нет тегов, используется стиль линий внешнего контура;
    • если стили этих линий различаются или отсутствуют, это ошибка;
    • теги на линиях внутреннего контура влияют только на отрисовку областей-дырок. Но если эти теги совпадают с тегами внешнего контура (старый метод), стиль внутреннего контура считается отсутствующим.

Ещё про обработку

Теги на отношение мультиполигона могут быть расставлены разными способами. Вот список вариантов, проблем и возможных решений:

  • Больше одной линии outer:
    На отношении есть теги
    Используйте теги отношения, игнорируйте их на линиях.
    На отношении нет тегов, но одна или несколько линий имеют одинаковый набор тегов
    Допустимо, используйте теги с сегментов, распространяя их на весь внешний контур.
    На отношении нет тегов, а линии внешнего контура помечены по-разному
    Это чёрт знает что, результат не определён.
  • Больше одной линии inner:
    Один замкнутый контур (из одной или более линий) без тегов, но есть другой с тегами
    Контур без тегов рисуется как дырка, контур с тегами — как велят эти теги.
    Несколько замкнутых контуров с разными тегами
    Каждая «дырка» рисуется в соответствии со своими тегами.
    Один замкнутый контур (из двух или более линий), где на теги на линиях различаются
    Если на каких-то линиях нет тегов, то они заимствуют теги «соседей». Если теги совсем разные, результат не определён (как и для линий «outer»).

Отображение

  • JOSM умеет рисовать сложные мультиполигоны с версии 1203;
  • Osmarender (T@H) тоже их поддерживает;
  • стиль Mapnik на www.openstreetmap.org не полностью поддерживает «сложные мультиполигоны» (но большей частью);
  • польностью поддерживаются mkgmap с версии 1497;
  • GpsMid поддерживает большую часть возможностей сложных мультиполигонов;
  • можно почитать предложение алгоритма для разбора мультиполигонов.

Инструменты