Составные полигоны
-
- Новоприбывший
- Сообщения: 8
- Зарегистрирован: 06 сен 2011, 13:44
- Репутация: 0
Составные полигоны
MapInfo v10.5
Windows Xp sp3
Геобъекты: составные полигоны
Задан составной полигон ( полигон с "дыркой").
Как в MapBasice в составном полигоне определить какой из полигонов внешний, а какой вложенный ?
Windows Xp sp3
Геобъекты: составные полигоны
Задан составной полигон ( полигон с "дыркой").
Как в MapBasice в составном полигоне определить какой из полигонов внешний, а какой вложенный ?
-
- Гуру
- Сообщения: 4231
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: -344969098
- Откуда: Париж
Re: Составные полигоны
внешний - это тот, который содержит внутренние. один из режимов "разбора" полигонов позволяет превращать дырки в новые полигоны. вот те из них, что полностью внутри других и будут ответом на вопрос. мапинфо - сама определяет вложенность полигонов.
-
- Новоприбывший
- Сообщения: 8
- Зарегистрирован: 06 сен 2011, 13:44
- Репутация: 0
Re: Составные полигоны
Давайте на примере полигона. Пусть есть внешний полигон с 4-мя вершинами(узлами). В этом полигоне есть вложенный из 3-х узлов. Если создать объект NewObject и присвоить ему данный полигон, и воспользоваться командой ObjectInfo( NewObject, OBJ_INFO_NPOLYGONs+N) в следующем виде:
ObjectInfo(NewObject,21)
ObjectInfo(NewObject,22)
ObjectInfo(NewObject,23)
на выходе получится:
2 - полигон состоит из 2-х объектов
5 - кол-во узлов в 1-ом объекте+1
4 - кол-во узлов во 2-ом объекте+1
Если теперь преобразовать этот полигон, сделав внешним полигон из 3-х узлов, а вложенным полигон из 4-х узлов, и вывести ObjectInfo, то на выходе снова будет:
2
5
4
То есть Мапинфо вложенность всегда выводит ту, которая была определена при создании объекта, и не учитывает дальнейшее редактирование объекта. Вот вопрос в том, можно ли это как-то учесть, если можно , то как?
ObjectInfo(NewObject,21)
ObjectInfo(NewObject,22)
ObjectInfo(NewObject,23)
на выходе получится:
2 - полигон состоит из 2-х объектов
5 - кол-во узлов в 1-ом объекте+1
4 - кол-во узлов во 2-ом объекте+1
Если теперь преобразовать этот полигон, сделав внешним полигон из 3-х узлов, а вложенным полигон из 4-х узлов, и вывести ObjectInfo, то на выходе снова будет:
2
5
4
То есть Мапинфо вложенность всегда выводит ту, которая была определена при создании объекта, и не учитывает дальнейшее редактирование объекта. Вот вопрос в том, можно ли это как-то учесть, если можно , то как?
-
- Гуру
- Сообщения: 4168
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1107
- Ваше звание: программист
- Откуда: Казань
Re: Составные полигоны
расскажите, как вам удалось это сделатьel_inca писал(а): Если теперь преобразовать этот полигон, сделав внешним полигон из 3-х узлов, а вложенным полигон из 4-х узлов,

-
- Новоприбывший
- Сообщения: 8
- Зарегистрирован: 06 сен 2011, 13:44
- Репутация: 0
Re: Составные полигоны
для данного примера в Мапинфо в "пенале"(toolbar с элементами рисования) кнопкой "форма". Она переключает в редактирование узлов. Ну а там дальше узлы вложенного полигона просто перетаскиваются за границы внешнего полигона.
-
- Завсегдатай
- Сообщения: 257
- Зарегистрирован: 10 июн 2009, 12:21
- Репутация: 0
- Откуда: Екатеринбург
- Контактная информация:
Re: Составные полигоны
видимо таким образом никто и никогда не редактирует объекты, перемещая дырку наружу. Обычно вокруг 4хугольника рисуют треугольник, например, и вырезают четырехугольник из треугольника. Тогда на выходе будет
2
4
5
если в четырехугольнике уже существует треугольный внутренний контур, который не нужен, его не перемещают наружу, а удаляют узлы внутреннего контура для ликвидации дырки.
2
4
5
если в четырехугольнике уже существует треугольный внутренний контур, который не нужен, его не перемещают наружу, а удаляют узлы внутреннего контура для ликвидации дырки.
-
- Гуру
- Сообщения: 4168
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1107
- Ваше звание: программист
- Откуда: Казань
Re: Составные полигоны
тогда вопрос: с чего вы решили, что порядок полигонов в выводе имеет какое-то отношение к вложенности? вы нарисовать его пробовали с заливкой? мышкой потыкать (с буквой i)?el_inca писал(а):для данного примера в Мапинфо в "пенале"(toolbar с элементами рисования) кнопкой "форма". Она переключает в редактирование узлов. Ну а там дальше узлы вложенного полигона просто перетаскиваются за границы внешнего полигона.
в любом случае, топологию (даже одного полигона) лучше перестроить после редактирования, преобразовав сначала в линии, а потом обратно в полигон
-
- Завсегдатай
- Сообщения: 257
- Зарегистрирован: 10 июн 2009, 12:21
- Репутация: 0
- Откуда: Екатеринбург
- Контактная информация:
Re: Составные полигоны
в мапинфо нумерация полигонов вроде всегда с внешнего начинается. вот когда контуры невложенные комбинируются (типа опор ЛЭП), тогда действительно, за порядком этих контуров не уследить.
-
- Новоприбывший
- Сообщения: 8
- Зарегистрирован: 06 сен 2011, 13:44
- Репутация: 0
Re: Составные полигоны
При работе с МапИнфо порядок и вложенность действительно не важны. Но для перевода объектов, например, из МапИнфо в базу данных (например, PostGIS ) порядок полигонов имеет значение, так как в ней другая структура хранения объектов.gamm писал(а): тогда вопрос: с чего вы решили, что порядок полигонов в выводе имеет какое-то отношение к вложенности? вы нарисовать его пробовали с заливкой? мышкой потыкать (с буквой i)?
в любом случае, топологию (даже одного полигона) лучше перестроить после редактирования, преобразовав сначала в линии, а потом обратно в полигон
-
- Гуру
- Сообщения: 4168
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1107
- Ваше звание: программист
- Откуда: Казань
Re: Составные полигоны
Мапинфе все равно, в каком порядке идут полигоны. Я проделал операцию, описанную топикастером (вытащил внутреннюю границу наружу), полученный полигон и рисуется, и распознается нормально. И вообще, лучше посмотреть в GDAL/OGR, что там на самом деле хранится, и есть ли там зависимость от порядка, а не заниматься непонятными опытамиreasonat писал(а):в мапинфо нумерация полигонов вроде всегда с внешнего начинается.

То, что обычно порядок получаются описанным вами, есть скорее всего следствие "внутренних работ" мапинфы по построению топологии объектов.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей