Полигоны с прямыми углами

MapInfo, MapBasic
Ответить
Аватара пользователя
ginpetr
Завсегдатай
Сообщения: 376
Зарегистрирован: 21 июн 2011, 12:07
Репутация: 140
Откуда: Орск
Контактная информация:

Полигоны с прямыми углами

Сообщение ginpetr » 30 ноя 2016, 08:24

Инструмент сделал для удобного рисования ортогональных полигонов в Мапинфо 9.5 и выше. Наверняка кто-нибудь занимается рисованием по космоснимкам.
Получилось, вроде, неплохо. Потестил пока мало.
Кому интересно - попробуйте, напишите замечания и предложения.
Управление:
shift - прямой угол,
ctrl - продолжение сегмента (или усечение),
замыкание на начальную точку - создать полигон,
указание коротким нажатием - указание новой вершины (+shift - расстояние перпендикулярно последнему ребру),
указание коротким нажатием в последнюю вершину - удалить её,
указание типа "нажать/протянуть/отпустить" - приращение координат последней точки на указанный вектор
протяжка перед указанием первой вершины задаёт прямую, на которой эта вершина будет лежать

построения в косметике, замкнутый объект помещается на изменяемый слой.
Вложения
OrtoPoligon.zip
(2.65 КБ) 378 скачиваний
Последний раз редактировалось ginpetr 02 дек 2016, 08:04, всего редактировалось 7 раз.

giser
Завсегдатай
Сообщения: 388
Зарегистрирован: 09 ноя 2012, 09:25
Репутация: 113
Откуда: Москва

Re: Полигоны с прямыми углами

Сообщение giser » 30 ноя 2016, 13:44

Спасибо! Давно не работаю в MapInfo, но все равно интересно. В ArcGIS есть удобная функция «Завершить прямым углом», с помощью которой автоматически строится прямой угол между первым и последним узлами. Можно ли с помощью Вашего инструмента подобным образом завершать прямоугольные полигоны? У меня пока не получилось. Всегда не нравилось отсутствие этой функции в MapInfo (или это мое незнание). В чем принципиальное отличие Вашего инструмента от стандартного механизма рисования прямых углов в MapInfo?

Аватара пользователя
ginpetr
Завсегдатай
Сообщения: 376
Зарегистрирован: 21 июн 2011, 12:07
Репутация: 140
Откуда: Орск
Контактная информация:

Re: Полигоны с прямыми углами

Сообщение ginpetr » 30 ноя 2016, 13:56

Не очень понимаю смысл "завершения прямым углом". Инструмент позволяет отрисовать здание любой формы со всеми прямыми углами (разумеется визуально прямыми, точность построений не CAD-овская).
Завтра видеоролик сделаю.

giser
Завсегдатай
Сообщения: 388
Зарегистрирован: 09 ноя 2012, 09:25
Репутация: 113
Откуда: Москва

Re: Полигоны с прямыми углами

Сообщение giser » 30 ноя 2016, 14:09

Да, будьте добры.

"Завершение прямым углом (Square and Finish) - это способ завершения оцифровки полигона или замкнутой линии. Данная команда завершает полигон или линию, добавляя два новых сегмента под углом 90 градусов друг к другу."

В данном случае не приходится привязываться к первому узлу. В MapInfo же у меня не получается точно привязаться к первому узлу при попытке завершить полигон прямым углом. Хотя возможно, что создаваемые углы и попадают под категорию "визуально прямых".

Аватара пользователя
ginpetr
Завсегдатай
Сообщения: 376
Зарегистрирован: 21 июн 2011, 12:07
Репутация: 140
Откуда: Орск
Контактная информация:

Re: Полигоны с прямыми углами

Сообщение ginpetr » 01 дек 2016, 08:48

Понял про завершение. У меня оно не нужно, так как, если всё сделано правильно, первый и последний сегменты уже будут вровень.
Утилиту доработал (заменил в первом посте). Отказался от создания полилиний. Теперь через ctrl можно построить сегмент, лежащий на одной прямой с предыдущим, или усечь последний сегмент, если указать следующую точку через ctrl в его пределах.
Видеоролик
Аннотации на видео не видны при просмотре с мобильных устройств!

giser
Завсегдатай
Сообщения: 388
Зарегистрирован: 09 ноя 2012, 09:25
Репутация: 113
Откуда: Москва

Re: Полигоны с прямыми углами

Сообщение giser » 01 дек 2016, 12:47

Да, теперь у меня все получилось. Спасибо за видеоролик!
1) Но есть одна тонкость, из-за которой, собственно, у меня вчера была проблема. Она касается привязки к узлам, которая позволяет "красиво" заканчивать прямоугольные полигоны.
Объясняю ситуацию:
1. Открываю MapInfo 15.0.
2. Создаю новый тестовый "слой домов" (или открываю созданный).
3. Делаю слой редактируемым, "snap" активен.
4. Рисую, но привязка к узлам создаваемого полигона не работает. По этой причине не получалось адекватно завершать полигон.
Сегодня проблему удалось решить простым переключением редактируемого слоя на "косметический" и обратно на целевой.
Реально ли сделать так, чтобы сразу можно было полнофункционально цифровать в целевом слое? Или просто следует запомнить такую тонкость?
2) После введения новых функций следует немного поправить инструкцию в "Message".

Аватара пользователя
ginpetr
Завсегдатай
Сообщения: 376
Зарегистрирован: 21 июн 2011, 12:07
Репутация: 140
Откуда: Орск
Контактная информация:

Re: Полигоны с прямыми углами

Сообщение ginpetr » 01 дек 2016, 13:16

Спасибо за замечания!
Заменил файл.
"Message" поправил и внедрил команду "Сделать косметику доступной для выбора" (почему-то косметика после открытия нового окна карты недоступна для выбора).
Пока не понял почему, но первый объект после запуска утилиты иногда создаётся не вполне адекватно, потом всё работает как задумывалось.

Аватара пользователя
ginpetr
Завсегдатай
Сообщения: 376
Зарегистрирован: 21 июн 2011, 12:07
Репутация: 140
Откуда: Орск
Контактная информация:

Re: Полигоны с прямыми углами

Сообщение ginpetr » 01 дек 2016, 21:43

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

Ответить

Вернуться в «MapInfo»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 13 гостей