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

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

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

Сообщение nikomuro » 17 сен 2018, 09:34

Прошу помощи в пространственной выборке. Выбираю точки не лежащие в площадном объекте: 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 » 17 сен 2018, 10:56

Сделайте первый запрос и обратите выборку (Invert selection).

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

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

Сообщение asgs1977 » 17 сен 2018, 11:04

Попробуйте Select * from poi, глф where poi.obj not Intersects глф.obj into Selection

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

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

Сообщение nikomuro » 17 сен 2018, 11:06

MYS писал(а):
17 сен 2018, 10:56
Сделайте первый запрос и обратите выборку (Invert selection).
Небходимо результат получить только через mapbasic, без сторонних кнопок

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

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

Сообщение nikomuro » 17 сен 2018, 11:07

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 » 17 сен 2018, 11:11

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 » 17 сен 2018, 11:12

asgs1977 писал(а):
17 сен 2018, 11:04
Попробуйте Select * from poi, глф where poi.obj not Intersects глф.obj into Selection
Более того через does not тоже не работает

gamm
Гуру
Сообщения: 4047
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1050
Ваше звание: программист
Откуда: Казань

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

Сообщение gamm » 17 сен 2018, 12:15

nikomuro писал(а):
17 сен 2018, 09:34
Select * 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 » 17 сен 2018, 12:45

тоже не работает.

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

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

Сообщение MYS » 17 сен 2018, 13:36

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

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

Останутся не попадающие в полигоны точки.

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

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

Сообщение nikomuro » 17 сен 2018, 14:09

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

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

Останутся не попадающие в полигоны точки.
так это,ж... самый долгий путь. нужно то чтобы базовые таблицы оставались неизменными. в них потом еще будут объекты добавляться

gamm
Гуру
Сообщения: 4047
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1050
Ваше звание: программист
Откуда: Казань

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

Сообщение gamm » 17 сен 2018, 14:25

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 » 17 сен 2018, 20:20

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

Ответить

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

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

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