www.map-info.ru :: Просмотр темы - порядок контуров в сложных (комбинированных) объектах
                               РќР° главную страницу сайта

 
                                
ВходВход    РегистрацияРегистрация    ПрофильПрофиль    ПользователиПользователи    ГруппыГруппы    FAQFAQ    ПоискПоиск  

 
   Список форумов www.map-info.ru | Форум - программирование в среде MapInfo Добавить ответ
Предыдущая тема :: Следующая тема  
Автор Сообщение
reasonat



Зарегистрирован: 01.07.2009
Сообщения: 224
Откуда: Екатеринбург

СообщениеДобавлено: Пн Окт 26, 2009 4:11 pm    Заголовок сообщения: порядок контуров в сложных (комбинированных) объектах Добавить ответ со ссылкой на данный текст

Все здравствуйте.
Собственно, вопрос даже не по программированию. Но проблема видимо где-то в корне мапинфы..
Сколько лет уже пробую разные способы, никак не получается упорядочить части комбинированного объекта. Если по одному объекту добавлять через Объекты\Объединить.. - еще кое как получается в результате части в том порядке, в каком добавлялись. Но если вырезать из этого объекта дырку (остров), то порядок частей путается.
И если экспортировать объект в mid/mif - там тоже порядок получается не такой, в котором пытались собирать объект.
В итоге, при надобности пронумеровать точки границ этого объекта, мы получаем полный разброд, первые точки где-то в середине объекта, продолжение нумерации где-то там, окончание где-то тут.
В мапинфо это не решается, кто-нибудь знает?
Я так понимаю, можно только утилиту писать, сортируя контура слева направо и сверху вниз по центроидам либо по первым точкам.. Или еще хитрости есть, про которые я не знаю?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
spawner



Зарегистрирован: 01.04.2009
Сообщения: 77

СообщениеДобавлено: Пн Окт 26, 2009 4:16 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Да, MapInfo это та еще пакость...глюков в ней навалом. Насколько я знаю, эту задачу можно решить только на мапбэйсике (как вы и описали)

А обязательно нужно чтобы объект был комбинированный?Можно ведь сделать несколько объектов с одним ID, поля для вложенностей предусмотреть если нужно и т.д.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
FedorinoFF



Зарегистрирован: 01.02.2007
Сообщения: 272
Откуда: Санкт-Петербург

СообщениеДобавлено: Пн Окт 26, 2009 10:27 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

судя по наблюдениям и опыту, самой Mapinfo внутри все равно в каком порядке идут контура. она их объединяет в один и образует "дырки" и "бублики" как надо.
Проблему можно решить путем разбора вложенности контуров по геометрическому критерию...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
reasonat



Зарегистрирован: 01.07.2009
Сообщения: 224
Откуда: Екатеринбург

СообщениеДобавлено: Вт Окт 27, 2009 10:20 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Цитата:
Можно ведь сделать несколько объектов с одним ID

не очень понимаю, в каких случаях это может пригодиться.. Нет, в землеустроительных работах нужен именно один комбинированный объект, участки "с дырками" и участки "чересполосные", из нескольких частей. Мапинфе конечно без разницы, в каком порядке части сложились, а вот при землеустроительных работах надо выводить номера поворотных точек границы такого участка. И очень неудобно искать номера, разбросанные по картинке. Особенно, если частей в таком участке - штук 100.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Андрей Могильный



Зарегистрирован: 21.03.2006
Сообщения: 864

СообщениеДобавлено: Вт Окт 27, 2009 3:52 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Можно решить на MapBasic. В Инструментарии для MapInfo есть инструмент Изменение обхода объекта, он решает похоже все задачи, которые вам требуются.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
reasonat



Зарегистрирован: 01.07.2009
Сообщения: 224
Откуда: Екатеринбург

СообщениеДобавлено: Вт Окт 27, 2009 4:40 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

он меняет направление обхода - по часовой/против часовой, и, кажется, назначает выбранную точку началом нумерации?
И все равно это ручная работа. У нас есть и свои утилиты, и подобные от другого разработчика, которые сдвигают начало обхода объекта и меняют направление, но надо для каждого контура указывать точку.
Проблема в том, что работаем с многоконтурными участками из большого количества частей, и анализировать каждый контур и каждый участок вручную нереально, пытаюсь автоматизировать.
А вот порядок частей в комбинированном объекте автоматом все равно, похоже, не задать Sad , уже больно их расположение непредсказуемо - то слева направо, то снизу вверх, то зигзагом, то вразнобой как полянки в лесу.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
FedorinoFF



Зарегистрирован: 01.02.2007
Сообщения: 272
Откуда: Санкт-Петербург

СообщениеДобавлено: Чт Окт 29, 2009 1:17 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

[quote="reasonat"]... пытаюсь автоматизировать.
[/quot]
А готовых продуктов для решения задачи нету? судя по вопросам все курутится вокруг "межевого плана"? "кадастровый офис" что-то делает... Я конечно понимаю что самому поковыряться интересно, но иногда время дороже...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
reasonat



Зарегистрирован: 01.07.2009
Сообщения: 224
Откуда: Екатеринбург

СообщениеДобавлено: Чт Окт 29, 2009 11:23 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

в том-то и дело, что все крутится теперь вокруг меж.плана.
И кадофисом/геомастером пользуемся, и свой продукт опять же есть, но они, не меняя фактического порядка, меняют нумерацию точек и частей объектов в каталоге координат, в отчете.
Разные программы сортируют своими методами, получаются разная нумерация одного объекта. Ну вот приходится иногда выводить на один участок формы из разных программ. Поэтому хочется задать нужный порядок самому объекту, чтоб всегда первая точка была в одном месте. Причем обработать сразу все объекты карты автоматом, чтоб впоследствии не задаваться правильностью нумерации и порядком обхода. Дарю идею новой функции Wink
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Андрей Могильный



Зарегистрирован: 21.03.2006
Сообщения: 864

СообщениеДобавлено: Чт Окт 29, 2009 1:52 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Вы про северо-западный и обход по часовой? Ну расскажите какой вы видите алгоритм нумерации. Насколько я знаю сейчас нумерует каждый во что горазд, в самом 412 приказе все очень неоднозначно. Когда в межевом один объект и он из одного полигона, то вроде все ясно. А когда сложный объект или несколько объектов, то 2 разных человека пронумеруют по-разному и оба будут правы (согласно приказу).
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
reasonat



Зарегистрирован: 01.07.2009
Сообщения: 224
Откуда: Екатеринбург

СообщениеДобавлено: Чт Окт 29, 2009 2:31 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Мое имхо, что для многоконтурного объекта надо оставить порядок следования контуров такой, какой будет понятен при чтении чертежа.
для протяженных линейных объектов типа трубопроводов и ЛЭПок - это от начала линии к концу линии, независимо от того, каким боком линия обращена к С-З углу. А для больших объектов с вложенностями, типа леса с просеками, поля с дырками, опять же оставить порядок контуров, как создавался объект: внешние контура - как читаются, слева направо и сверху вниз, а после каждого внешнего контура - подряд его "острова", тоже слева направо и сверху вниз.
Автоматически отсортировать такую беду, видимо, невозможно. Искусственный интеллект до наших работе еще не дошел Smile
А вот запустить программку пересортировки, с предложив пользователю только щелкать по карте, указывая следующий контур, скорее всего получится.
Еще проще - запустить программку, собирающую из отдельных полигонов сложный объект. В таблице столбы пронумерованы и отсортированы, да и прочие объекты несложно заранее отсортировать в списке в нужном порядке. А программка может собрать многоконтурный объект из таблицы/выборки автоматом по порядку строк.

А вот каждый контур обходить уже по часовой стрелке (дырки получаются против ч.с.), с точки, ближайшей к северо-западному углу MBR данного контура. Опять же, удобнее первые точки и направление обхода проверить и поменять автоматом, еще до сбора сложного объекта, пробежав по отдельныи полигонам.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
   Список форумов www.map-info.ru | Форум - программирование в среде MapInfo Добавить ответ
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Top.Mail.Ru