Страница 1 из 1

Найти многоконтурные объекты

Добавлено: 12 июн 2019, 22:12
tracer78
Задача такая - есть слой с площадными объектами. Их в слое больше 200 тысяч. Некоторые из них многоконтурные. Требуется, собственно, найти эти многоконтурные объекты. Задача кажется простой на первый взгляд, а вот как она решается - совсем не очевидно. Может есть у кого-то решение?

Re: Найти многоконтурные объекты

Добавлено: 12 июн 2019, 22:27
gamm
ObjectInfo(table.obj,OBJ_INFO_NPOLYGONS) https://mapbasic.ru/doc/MapBasicReference-9-0.pdf

Re: Найти многоконтурные объекты

Добавлено: 12 июн 2019, 23:16
tracer78
gamm писал(а):
12 июн 2019, 22:27
ObjectInfo(table.obj,OBJ_INFO_NPOLYGONS)
Как это использовать? Я не разбираюсь в мапбэйсике. Если можно то пошагово пожалуйста.

Re: Найти многоконтурные объекты

Добавлено: 13 июн 2019, 08:56
juffin_h
tracer78 писал(а):
12 июн 2019, 23:16
Я не разбираюсь в мапбэйсике.
Это не обязательно. Просто сделайте выборку (запрос) Select * from my_table where ObjectInfo(obj,21) > 1

Re: Найти многоконтурные объекты

Добавлено: 13 июн 2019, 09:33
tracer78
juffin_h писал(а):
13 июн 2019, 08:56
Select * from my_table where ObjectInfo(obj,21) > 1
Что-то тут не то - при выполнении такого запроса Мапинфо пишет о несовпадении типов данных в выражении. Где засада? Упд. Убрал > 1, запрос сработал, но результат - полностью выбранный слой. Либо я что-то делаю не так, либо оператор запроса не тот. Может есть еще варианты запросов?

Re: Найти многоконтурные объекты

Добавлено: 13 июн 2019, 10:37
juffin_h
Val(Str$(ObjectInfo(obj,21))) > 1

Re: Найти многоконтурные объекты

Добавлено: 13 июн 2019, 10:56
tracer78
juffin_h писал(а):
13 июн 2019, 10:37
Val(Str$(ObjectInfo(obj,21))) > 1
Запрос сработал. И вроде выбраны многоконтурные объекты. Теперь было бы неплохо выяснить что он делает и что значат его операторы (Val и прочие) в данной комбинации.

Re: Найти многоконтурные объекты

Добавлено: 13 июн 2019, 11:19
trir
Теперь было бы неплохо выяснить что он делает и что значат его операторы (Val и прочие) в данной комбинации
RTFM

Re: Найти многоконтурные объекты

Добавлено: 13 июн 2019, 15:41
tracer78
Похоже запрос работает. Только с его точки зрения полигон с дыркой - тоже многоконтурный объект. Но это не страшно. Всем спасибо за помощь. Остался еще один момент. Есть ли возможность видоизменить этот запрос таким образом, чтобы выбирались объекты, в которых расстояние между фрагментами многоконтурного полигона больше определенного расстояния? То есть не просто автоматизировать выборку многоконтурных объектов, а объектов с максимальными расстояниями между фрагментами или расстояние больше определенного числа. :?:

Re: Найти многоконтурные объекты

Добавлено: 13 июн 2019, 19:08
trir
тут без mapbasic'а не обойдешься, или можно загрузить в БД и реализовать на SQL'е