Страница 1 из 1
Разъединение объектов
Добавлено: 30 мар 2009, 15:12
Qwe1
Подскажите, пожалуйста, как реализовать разъединение объектов для MapBasic 6.0, ведь "Objects Disaggregate Into Table <...>" не работает. Мои собственные попытки реализовать не работают для случаев, когда в полигонах есть вырезы, а в них еще есть полигоны ("острова")...
Re: Разъединение объектов
Добавлено: 30 мар 2009, 17:36
Boris
У вас очень специфичный и очень обще сформулированный вопрос. Либо больше подробностей, либо ответ - никак.
А что происходит, когда вы делаете эту команду Disaggregate в самой MapInfo?
Re: Разъединение объектов
Добавлено: 30 мар 2009, 18:49
Qwe1
Когда делаешь разъединение через меню МапИнфо (7.5) или через окно MapBasic'а - все отлично происходит. Вложение - два слоя (таблицы), в первом - один объект, во втором - он же, но после разъединения штатными средствами МапИнфо 7.5. Это же надо реализовать на МэпБэйсике 6, если это возможно и не слишком сложно. Пока у меня получается, но не все (см. первый пост).
Re: Разъединение объектов
Добавлено: 30 мар 2009, 18:59
Boris
Я посмотрю в ближайшее время, боюсь, что сразу не найду 6.0
А пока ответ очевиден - с версии 7.0 (или 7.5, что сомнительно), команда Дисагрегации - усложнилась. В ней добавился уровень до которого надо разобрать объект. Теперь их два -

- Clipboard01.jpg (16.83 КБ) 6957 просмотров
, или вернее даже 3. Сравните синтаксис с тем, который прописан в вашем Help'е (это от 9.0):
Код: Выделить всё
Objects Disaggregate [ Into Table name ]
[ All | Collection ]
[ Data column_name = expression [ , column_name = expression ... ]
Re: Разъединение объектов
Добавлено: 30 мар 2009, 19:14
Boris
Вот пришло в голову. Если команда руками в окне MapBasic'а в самом MapInfo - работает, то попробуйте обойти кодирование MB строк в команды, специфичные именно для 6.0 -
перешлите сформированную строку команды на выполнение самой MI с помощью
command - это тестовая строка команды, которая у вас работала правильно
Re: Разъединение объектов
Добавлено: 30 мар 2009, 19:36
Qwe1
Disaggregate нет ни в хелпе, ни в самом МВ 6.0 (судя по сообщениям о неизвестном операторе), но с помощью Run Command все сработало. Спасибо!