RU:Примеры мультиполигонов

From OpenStreetMap Wiki
Jump to navigation Jump to search

На этой странице есть несколько примеров отношения мультиполигон, иллюстрирующих его использование.

Примеры для картографов: Шаг за шагом от простого к сложному

В этом разделе показаны примеры создания мультиполигонов от простых до сложных конструкций.

Обозначения принятые в описании примеров:
  • Линии отмечены арабскими цифрами 1, 2, 3 ....
  • Незамкнутые линии имеют большие чёрные точки на своих концах.
  • Площадные объекты отмечены заглавными буквами A, B, C, ....
  • После чисел и букв следуют теги описания объектов.
  • Теги выбраны только для примера.
  • Теги, которые не являются необходимыми для примера, опущены. Например name=*, source=*.
  • Отношения описаны в тексте в виде списка делая их более читабельными чем код XML.
  • Добавляемые члены на конкретном этапе выглядят >наклонно.
Отношение
   Теги отношения
   ...
   Члены отношения
  >Новые члены отношения
   ...
Принятые обозначения

Лес (Одна замкнутая линия)

Замкнутая линия 1 отмечается landuse=forest означающим лес A. Тегирование замкнутых линий меткам площадных объектов даёт полигоны. Этот способ применим к простым площадным объектам состоящим из одной линии и не имеющим отверстий. Это же можно сделать и мультиполигоном, но он будет содержать только одного участника.
Лес (Одна замкнутая линия)

Лес с озером (Одно внешнее и одно внутреннее кольца)

Замкнутую линию 2 добавили во внутрь леса и отметили natural=water означающую озеро B. Замкнутая линия 1 теперь не имеет меток так как она не описывает всё что в ней находится одним тегом. Лес А который можно отметить landuse=forest теперь зелёное кольцо: территория извечная линией 1 за вычетом озера В.

Мультиполигон A описывающий такой вариант.

Отношение A:
   type=multipolygon
   landuse=forest
   outer 1
   inner 2
Лес с озером (Одно внешнее и одно внутреннее кольца)

Лес с двумя озёрами (Одно внешнее и два внутренних кольца)

Замкнутую линию 3 добавили в лес А и отметили natural=water означающую озеро C. Лес A отмеченный landuse=forest уже не полигон. Теперь это территория отмеченная линий 1 за вычетом озёр В и С.

inner 3 добавили к мультиполигону А:

Отношение A:
   type=multipolygon
   landuse=forest
   outer 1
   inner 2
  >inner 3
Лес с двумя озёрами (Одно внешнее и два внутренних кольца)

Лес с двумя озёрами и островом (Вложенные мультиполигоны)

Замкнутая линия 4 встроена в озеро В и отмечена natural=scrub означающее остров D.

Лес A и его мультиполигон A остаются без изменений:

Отношение A:
   type=multipolygon
   landuse=forest
   outer 1
   inner 2
   inner 3

Замкнутая линия 2 теперь без тегов потому что теперь нельзя описать одним тегом её содержание. Озеро В ранее отмеченное как natural=water теперь стало голубым кольцом территорией охваченной линией 2 за вычетом острова D.

Это описывается вторым мультиполигоном B:

Отношение B:
   type=multipolygon
   natural=water
   outer 2
   inner 4
Лес с двумя озёрами и островом (Вложенные мультиполигоны)

Лес с двумя озёрами и островом, граница и дорога (Несколько линий образующих вложенный мультиполигон)

Линия 1 бывшая границей леса А теперь разбита на несколько: линии 5, 6, 7 и 8 добавлены и отмечены как boundary=administrative. Похожим образом добавлены линии 9,10 и 11 с тегом highway=unclassified.

Линия 2 бывшая границей озера В также разбита. Добавлены линии 12, 13, 14 и 15 отмеченные как highway=track. Для линий 5 и 15 теги остаются без изменений вне зависимости от членства в мультиполигоне потому что они не площадные объекты.

Оставшаяся линия 1 и линии 6 и 10 теперь являются границей леса А. outer 6, outer 10 и inner 13 добавлены в мультиполигон А:

Отношение A:
   type=multipolygon
   landuse=forest
   outer 1
  >outer 6
  >outer 10
   inner 2
  >inner 13
   inner 3

Линии 2 и 13 формируют границу озера В. outer 13 добавлен к мультиполигону В:

Отношение B:
   type=multipolygon
   natural=water
   outer 2
  >outer 13
   inner 4
Лес с двумя озёрами и островом, граница и дорога (Несколько линий образующих вложенный мультиполигон)

Пояснения:

  • Когда дороги выбраны в качестве границы полигона, то она проходит не по центру, а по краю дороги.
  • Некоторые люди используют дороги как границы, а кто-то предпочитает рисовать их отдельно. Иногда используют оба способа в зависимости от ситуации.
  • Эта последовательность была начата с полигонов, на практике лучше сразу начинать с линейных объектов, таких как дороги, для создания мультиполигонов.

Поле, прилегающее к лесу и ферма, прилегающая к озеру (Прилегающие мультиполигоны и прилегающие внутренние полигоны)

Линия 1 снова разбита на короткий участок и новую линию 16 с тегом barrier=fence. Линия 17 отмечена barrier=fence. Линия 18 добавлена без тегов. Линии 7, 16, 17 и 18 образуют границу поля E примыкающего к лесу A. Они соприкасаются линией 16. Замкнутая линия 19 создана путем добавления двух точек на линию 7 и нарисована по ним поверх линии 7. Линия 19 отмечена landuse=farmyard обозначая ферму G. Замкнутая линия 20 нарисована в том числе по двум верхним точкам линии 19 дублирующей линией по границе фермы G. Линия 20 отмечена natural=water означая озеро F.

outer 16 добавлен в мультиполигон A:

Отношение A:
   type=multipolygon
   landuse=forest
   outer 1
  >outer 16
   outer 6
   outer 10
   inner 2
   inner 13
   inner 3

Мультиполигон B остался без изменений:

Отношение B:
   type=multipolygon
   natural=water
   outer 2
   outer 13
   inner 4

Ферма E описана новым мультиполигоном E:

Отношение E:
   type=multipolygon
   landuse=farmland
   outer 7
   outer 16
   outer 17
   outer 18
   inner 19
   inner 20
Поле, прилегающее к лесу и ферма, прилегающая к озеру (Прилегающие мультиполигоны и прилегающие внутренние полигоны)

Пояснения:

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

Три разделённых поля (Разобщенные внешние кольца)

Линия 21 добавлена без тегов. Линия 22 добавлена с тегом barrier=fence. Линии 21 и 22 образуют поле E2 которые отделены от поля E, но являются его частью.

Линия 23 добавлена без тегов. Линия 24 отмечена тегом barrier=fence. Линии 23 и 24 образуют поле E3 отделено, но принадлежит полю E. Замкнутая линия 25 добавлена вовнутрь поля E3 и отмечена natural=water как озеро H.

Мультиполигон A остался неизменным:

Отношение A:
   type=multipolygon
   landuse=forest
   outer 1
   outer 16
   outer 6
   outer 10
   inner 2
   inner 13
   inner 3

Мультиполигон B остался неизменным:

Отношение B:
   type=multipolygon
   natural=water
   outer 2
   outer 13
   inner 4

outer 21, outer 22, outer 23, outer 24 и inner 25 добавлены к мультиполигону E:

Отношение E:
   type=multipolygon
   landuse=farmland
   outer 7
   outer 16
   outer 17
   outer 18
   inner 19
   inner 20
  >outer 21
  >outer 22
  >outer 23
  >outer 24
  >inner 25
Три разделённых поля (Разобщенные внешние кольца)

Примеры для картографов на основе реальных мест

Луг с полем с двумя кусками леса с кустарником (Вложенные полигоны на четыре уровня)

Правило: Для вложенных на несколько уровней полигонов надёжнее всего

  • отмечать самую вложенную замкнутую линию как площадной объект; и
  • отмечать другие замкнутые линии только как обычные линии, а не площадные объекты; и
  • использовать несколько мультиполигонов описывающих два смежных уровня.

Этот пример создан на основе дискуссии Verschachtelte Multipolygone немецкого форума.

Замкнутые линии 1 и 2 охватывают полигоны с отверстиями. Это требует создание мультиполигонов из линий без тегов а не площадных объектов. Линии 3 и 4, а так же 5 и 6, являются линиями образующими площадные объекты. Требуется создание мультиполигонов. Линии 3 и 6 отмечены собственными тегами, а 4 и 5 не объекты и потому не имеют тегов. Замкнутая линия 7 не имеет отверстий и её можно отметить как площадной объект и для неё не нужно создавать мультиполигон.

Мультиполигон A описывает луг A, мультиполигон B - поле B, мультиполигон C - лес C и мультиполигон D - лес D:

Отношение A:
   type=multipolygon
   landuse=meadow
   outer 1
   inner 2
Отношение B:
   type=multipolygon
   landuse=farmland
   outer 2
   inner 3
   inner 4
   inner 5
   inner 6
Отношение C:
   type=multipolygon
   landuse=forest
   outer 3
   outer 4
Отношение D:
   type=multipolygon
   landuse=forest
   outer 5
   outer 6
   inner 7
Луг с полем с двумя кусками леса с кустарником (Вложенные полигоны на четыре уровня)

Лес с тремя типами деревьев

Этот пример создан на основе обсуждения Multipolygone, z.B. See oder Gebäude in Waldfläche на немецком форуме. Он демонстрирует как можно обойти текущие недостатки средств визуализации при этом пометив в соответствии с реальностью . Не рисуйте под рендер.

Теория:

Большой смешанный лес с тремя участками - хвойный, лиственный и смешанный. В теории можно описать отношением A. Но рендеры и JOSM не отображают его правильно. Замкнутые линии 1,2,3 и 4 отмечены как показано на рисунке. Линия 1 отмечена "Big forest" (название для примера). Название леса это не описание состава леса или его размера, а именно название, принятое в данной местности.
Отношение A:
   type=multipolygon
   landuse=forest
   wood=mixed
   outer 1
   inner 2
   inner 3
   inner 4
Лес с тремя видами деревьев (Теория)

Практика:

Следующий пример тоже корректен, но использует четыре мультиполигона для того чтобы обойти особенности рендера. Линия 1 и отношение А остались без изменений. Теги с линий 2,3 и 4 перенесены на соответствующие новые отношения B, C, D.
Отношение A:
   type=multipolygon
   landuse=forest
   wood=mixed
   outer 1
   inner 2
   inner 3
   inner 4
Отношение B:
   type=multipolygon
   landuse=forest
   wood=coniferious
   name=Coniferous
   outer 2
Отношение C:
   type=multipolygon
   landuse=forest
   wood=deciduous
   name=Deciduous
   outer 3
Отношение D:
   type=multipolygon
   landuse=forest
   wood=mixed
   name=Mixed
   outer 4
Лес с тремя видами деревьев (Практика)