Страница 1 из 1
					
				Найти многоконтурные объекты
				Добавлено: 12 июн 2019, 22:12
				 tracer78
				Задача такая - есть слой с площадными объектами. Их в слое больше 200 тысяч. Некоторые из них многоконтурные. Требуется, собственно, найти эти многоконтурные объекты. Задача кажется простой на первый взгляд, а вот как она решается - совсем не очевидно. Может есть у кого-то решение?
			 
			
					
				Re: Найти многоконтурные объекты
				Добавлено: 12 июн 2019, 22:27
				 gamm
				
			 
			
					
				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'е