| Предыдущая тема :: Следующая тема   | 
	
	
	
		| Автор | 
		Сообщение | 
	
	
		Tulon
 
  
  Зарегистрирован: 11.07.2006 Сообщения: 77 Откуда: Сочи
  | 
		
			
				 Добавлено: Пн 18 Сен 2006 14:36    Заголовок сообщения: Запрос по пространственным объектам | 
				     | 
			 
			
				
  | 
			 
			
				Зравствуйте, уважаемые разработчики.
 
У меня вопрос в первую очередь к Михаилу Власову.
 
Есть ли в ИнГЕО API функция позволяющая отобрать объекты определенного слоя лежащие в пределах прямоугольной области (Bounds) или объекты, которые пересекаются с заданным объектом?
 
Задача: Выбрать из всех видимых слоёв те объекты, которые пересекаются с выделенным объектом.
 
Моё решение (не рациональное): Проверять все объекты каждого видимого слоя на нахождение в пределах Bounds выделенного объекта. Когда в видимых слоях около 40-60 тыс объектов, то такая проверка происходит в течение 5-7 минут (из-за того, что кол-во итераций равно суммарному кол-ву объектов)...
 
Требуется многократное увеличение скорости выдачи результата... А этого можно достичь уменьшением количества итераций. _________________ Нет ни чего сложнее, чем достигнуть простоты. | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
		Михаил Власов
 
  
  Зарегистрирован: 14.02.2005 Сообщения: 580 Откуда: ИНТЕГРО
  | 
		
			
				 Добавлено: Пн 18 Сен 2006 15:18    Заголовок сообщения:  | 
				     | 
			 
			
				
  | 
			 
			
				Выбор по прямоугольнику:
 
Метод IIngeoMapObjects.QueryByRect.
 
Выбор по объекту:
 
Метод IIngeoMapObjects.QueryByObject. _________________ С уважением, Михаил Власов. | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
		Tulon
 
  
  Зарегистрирован: 11.07.2006 Сообщения: 77 Откуда: Сочи
  | 
		
			
				 Добавлено: Пн 25 Сен 2006 19:19    Заголовок сообщения:  | 
				     | 
			 
			
				
  | 
			 
			
				Большое спасибо, Михаил!
 
Вы помогли очень сильно ускорить процесс создания отчета!    _________________ Нет ни чего сложнее, чем достигнуть простоты. | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
		Tulon
 
  
  Зарегистрирован: 11.07.2006 Сообщения: 77 Откуда: Сочи
  | 
		
			
				 Добавлено: Ср 27 Сен 2006 00:09    Заголовок сообщения:  | 
				     | 
			 
			
				
  | 
			 
			
				Попутно тогда разрешите еще один вопрос...
 
Кроме ниже указанного метода, как можно узнать количество записей в результате запроса?
 
var
 
___MyQuery: IIngeoMapObjectsQuery;
 
___QueryCount: cardinal;
 
begin
 
___...
 
___QueryCount:= 0;
 
___while not MyQuery.EOF do
 
___begin
 
______Inc(QueryCount);
 
______MyQuery.MoveNext;
 
___end;
 
___ShowMessage('Кол-во отобранных объектов: '+IntToStr(QueryCount));
 
end;
 
P.S.   Извините, не знал, как для удобочитаемости вставить отступы... Пришлось тыкать прочерки. _________________ Нет ни чего сложнее, чем достигнуть простоты. | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
		Михаил Власов
 
  
  Зарегистрирован: 14.02.2005 Сообщения: 580 Откуда: ИНТЕГРО
  | 
		
			
				 Добавлено: Вт 10 Окт 2006 09:55    Заголовок сообщения:  | 
				     | 
			 
			
				
  | 
			 
			
				Количество объектов в результате пространственного запроса можно узнать только тем способом, который Вы привели. _________________ С уважением, Михаил Власов. | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
		 |