Выбор объектов

MapInfo, MapBasic
Ответить
nikomuro
Активный участник
Сообщения: 232
Зарегистрирован: 10 мар 2012, 07:59
Репутация: 4
Откуда: Новосибирск

Выбор объектов

Сообщение nikomuro »

Прошу помощи в пространственной выборке. Выбираю точки не лежащие в площадном объекте: Select * from poi, глф where poi.obj Intersects глф.obj into Selection работает. а вот Select * from poi, глф where not (poi.obj Intersects глф.obj) into Selection уже не работает. в чем беду искать
MYS
Интересующийся
Сообщения: 42
Зарегистрирован: 02 ноя 2011, 09:11
Репутация: 23

Re: Выбор объектов

Сообщение MYS »

Сделайте первый запрос и обратите выборку (Invert selection).
asgs1977
Интересующийся
Сообщения: 15
Зарегистрирован: 06 сен 2018, 16:36
Репутация: 2
Откуда: Новосибирск

Re: Выбор объектов

Сообщение asgs1977 »

Попробуйте Select * from poi, глф where poi.obj not Intersects глф.obj into Selection
nikomuro
Активный участник
Сообщения: 232
Зарегистрирован: 10 мар 2012, 07:59
Репутация: 4
Откуда: Новосибирск

Re: Выбор объектов

Сообщение nikomuro »

MYS писал(а): 17 сен 2018, 10:56Сделайте первый запрос и обратите выборку (Invert selection).
Небходимо результат получить только через mapbasic, без сторонних кнопок
nikomuro
Активный участник
Сообщения: 232
Зарегистрирован: 10 мар 2012, 07:59
Репутация: 4
Откуда: Новосибирск

Re: Выбор объектов

Сообщение nikomuro »

asgs1977 писал(а): 17 сен 2018, 11:04Попробуйте Select * from poi, глф where poi.obj not Intersects глф.obj into Selection
Так не работает. уже пробовал
asgs1977
Интересующийся
Сообщения: 15
Зарегистрирован: 06 сен 2018, 16:36
Репутация: 2
Откуда: Новосибирск

Re: Выбор объектов

Сообщение asgs1977 »

nikomuro писал(а): 17 сен 2018, 11:06Небходимо результат получить только через mapbasic, без сторонних кнопок
Можно попробовать так:
Include "Menu.def"
Select * ...
Run Menu Command M_QUERY_INVERTSELECT
nikomuro
Активный участник
Сообщения: 232
Зарегистрирован: 10 мар 2012, 07:59
Репутация: 4
Откуда: Новосибирск

Re: Выбор объектов

Сообщение nikomuro »

asgs1977 писал(а): 17 сен 2018, 11:04Попробуйте Select * from poi, глф where poi.obj not Intersects глф.obj into Selection
Более того через does not тоже не работает
gamm
Гуру
Сообщения: 4168
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

Re: Выбор объектов

Сообщение gamm »

nikomuro писал(а): 17 сен 2018, 09:34Select * from poi, глф where not (poi.obj Intersects глф.obj) into Selection уже не работает
выбирать нужно ID

Select * from poi where poi.ID not in (select poi.ID from poi,глф where poi.obj Intersects глф.obj)
nikomuro
Активный участник
Сообщения: 232
Зарегистрирован: 10 мар 2012, 07:59
Репутация: 4
Откуда: Новосибирск

Re: Выбор объектов

Сообщение nikomuro »

тоже не работает.
MYS
Интересующийся
Сообщения: 42
Зарегистрирован: 02 ноя 2011, 09:11
Репутация: 23

Re: Выбор объектов

Сообщение MYS »

Через Mapbasic можно сделать следующее:

сделать копию таблицы;
выбрать точки, попадающие в полигоны;
удалить их.

Останутся не попадающие в полигоны точки.
nikomuro
Активный участник
Сообщения: 232
Зарегистрирован: 10 мар 2012, 07:59
Репутация: 4
Откуда: Новосибирск

Re: Выбор объектов

Сообщение nikomuro »

MYS писал(а): 17 сен 2018, 13:36Через Mapbasic можно сделать следующее:

сделать копию таблицы;
выбрать точки, попадающие в полигоны;
удалить их.

Останутся не попадающие в полигоны точки.
так это,ж... самый долгий путь. нужно то чтобы базовые таблицы оставались неизменными. в них потом еще будут объекты добавляться
gamm
Гуру
Сообщения: 4168
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

Re: Выбор объектов

Сообщение gamm »

nikomuro писал(а): 17 сен 2018, 12:45тоже не работает.
так не бывает, начиная с 2 версии работало, и вдруг. Посмотрите, что выдает внутренний запрос

select poi.ID from poi,глф where poi.obj Intersects глф.obj

надеюсь, вы не буквально переписывали, и у вас просто нет поля ID ...
nikomuro
Активный участник
Сообщения: 232
Зарегистрирован: 10 мар 2012, 07:59
Репутация: 4
Откуда: Новосибирск

Re: Выбор объектов

Сообщение nikomuro »

gamm писал(а): 17 сен 2018, 12:15Select * from poi where poi.ID not in (select poi.ID from poi,глф where poi.obj Intersects глф.obj)
Это заработало. Поле id есть, но оно не заполнено было.
Ответить

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

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

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