Нахождение узлов пересечения полилиний

MapInfo, MapBasic
Ответить
KatyaBoyko
Новоприбывший
Сообщения: 8
Зарегистрирован: 14 янв 2016, 12:55
Репутация: 0

Нахождение узлов пересечения полилиний

Сообщение KatyaBoyko » 17 окт 2016, 14:07

Добрый день, уважаемые форумчане.
Помогите разобраться в несложном, на первый взгляд, задании: имеется слой (.tab), в котором все объекты являются полилиниями (у меня это улицы). Требуется построить точечный слой, в котором каждая точка является узлом всех возможных пересечений всех линий.
Дело в том, что функция IntersectNode мне не подходит, т.к. создаёт не точечный объект, а полилинию с узлом в точке пересечения.
Версия Mapinfo - 7.0
Спасибо за помощь)

trir
Гуру
Сообщения: 5278
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1014
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Нахождение узлов пересечения полилиний

Сообщение trir » 17 окт 2016, 14:12

всех возможных пересечений всех линий
чего? :?:

KatyaBoyko
Новоприбывший
Сообщения: 8
Зарегистрирован: 14 янв 2016, 12:55
Репутация: 0

Re: Нахождение узлов пересечения полилиний

Сообщение KatyaBoyko » 17 окт 2016, 14:27

3045.jpg
3045.jpg (80.51 КБ) 7476 просмотров
Вот так (тут точки проставлены вручную и не во всех пересечениях)

KatyaBoyko
Новоприбывший
Сообщения: 8
Зарегистрирован: 14 янв 2016, 12:55
Репутация: 0

Re: Нахождение узлов пересечения полилиний

Сообщение KatyaBoyko » 17 окт 2016, 14:28

...точкИ являются узламИ всех пересечений - наверное так мне нужно было написать

thegeo
Активный участник
Сообщения: 160
Зарегистрирован: 17 янв 2012, 18:51
Репутация: 74

Re: Нахождение узлов пересечения полилиний

Сообщение thegeo » 18 окт 2016, 13:32

Подобных штатных функций в MapInfo нет. Думаю что, несмотря на кажущуюся простоту вопроса, без кода здесь не обойтись.
Использование IntersectNodes(ob1,ob2,1) (как и, похожей по результату, Overlap(ob1,ob2)) здесь мало поможет. Прикладываю программу решающую подобную задачу. Перед тем как нажать на кнопку нужно выбрать объект (любой) на обрабатываемом слое. Обрабатываются объекты с типом полилиния. Есть одно ограничение: точки пересечения, попадающие на одну линию параллельную оси Y, не обрабатываются. Судя по вашей картинке такая ситуация маловероятна и я не стал усложнять код.
Скомпилировано на MapBasic v.8, надеюсь, что ваша версия MapInfo это воспримет (MB v.7 не оказалось в доступности).
Вложения
PointOfIintersection.zip
(2.23 КБ) 522 скачивания
miHG708.png
miHG708.png (8.21 КБ) 7421 просмотр

KatyaBoyko
Новоприбывший
Сообщения: 8
Зарегистрирован: 14 янв 2016, 12:55
Репутация: 0

Re: Нахождение узлов пересечения полилиний

Сообщение KatyaBoyko » 18 окт 2016, 13:57

thegeo, Спасибо Вам большое. За то, что нашли время помочь. К сожалению в моей версии ваша программка не хочет работать. Обязательно найду более новую версию!

Аватара пользователя
WeMaN
Завсегдатай
Сообщения: 310
Зарегистрирован: 16 фев 2009, 10:49
Репутация: 0

Re: Нахождение узлов пересечения полилиний

Сообщение WeMaN » 30 июл 2020, 10:03

thegeo писал(а):
18 окт 2016, 13:32
Скомпилировано на MapBasic v.8, надеюсь, что ваша версия MapInfo это воспримет (MB v.7 не оказалось в доступности).
Спасибо благородный человек, и мне пригодилось!

Ответить

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

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

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