Мультиполигон описывает территорию больницы. На территории расположены здания. Должны ли эти здания быть включенными в мультиполигон с ролью inner или нет? С одной стороны они обязательно должны быть включены, так как это однозначно описывает причастность зданий к мультиполигону. С другой стороны получается что здания стоят в дырках мультиполигона и не находятся на описываемой территории. Как правильно?
Есть также третий случай - здание, часть которого входит в границу мултиполигона, часть расположена внутри. Пример: http://www.openstreetmap.org/browse/relation/1338679 Как наиболее правильно поступать в этом случае?
Relations of type multipolygon are used to represent complex areas.
Simple areas are mapped in OSM by creating one circular way and tag it with something that suggests an area rather than a circular way. For example, a circular way tagged landuse=forest will be assumed to be an area, while a circular way tagged junction=roundabout will not.
However, this model only works for areas the outline of which consists of one single way, and which do not have holes. Any area that is more complex than that (e.g., because its outline consists of several ways joined together, or because the area consists of multiple disjunct parts, or has holes) requires a multipolygon relation.
Дак тут-то они совсем не соединены. Мультиполигон тут не в тему ни разу.
Мультиполигоном только объединяются границы, всё. Здания внутри - сами по себе.
В данном случае, насколько я понял, идея с вырезанием в территории дырок под здания заключается в том, чтобы определять принадлежность зданий не из геометрии, а из отношения. При этом подходе не требуется геометрических вычислений. Имеет ли такой подход право на существование или это вредная затея?
Идея хорошая с точки зрения удобства программирования обработки данных. Но весьма неудобная для редактирования и поддержания актуальности, т.к. требует лишних действий. Добавили новое здание - надо не забыть добавить его в отношение. Уточнили границу объекта - надо не забыть переместить объекты из одного отношения в другой. Т.е. тут имеется прямое противоречие - или удобнее железке или удобнее мапперу.
Я предпочитаю второе - а железка пусть напрягётся немного больше, но облегчит работу маппера.
Сейчас определяем из геометрии и в общем то это это решенная задача. В любом случае нужно программировать алгоритмы работы с геометрией, это очень часто встречающаяся задача - посчитать попадает ли 1 объект внутрь другого. Вариант определения типа по геометрии все-равно необходимо будет поддерживать.
С точки зрения программирования - вариант неудобный. Старый вариант все-равно надо поддерживать, причем инструменты для этой поддержки как правило есть.
Мультиполигон здесь применен неправомерно, т.к. здания находятся НА территории больницы, а не ВНЕ ее.
Для объединения нескольких разнородных частей в один сложный объект мультиполигон не подходит. В мультиполигон входят только линии (way) и только в качестве границ (т.е. все части мультиполигона однородны), по одну сторону от которой находится площадь, принадлежащая объекту, а с другой - не принадлежащая.