Список форумов www.integro.ru www.integro.ru
ЦСИ ИНТЕГРО
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Запрос по пространственным объектам

 
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Вопросы разработчиков
Предыдущая тема :: Следующая тема  
Автор Сообщение
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    Заголовок сообщения: Ответить с цитатой

Большое спасибо, Михаил!
Вы помогли очень сильно ускорить процесс создания отчета! Smile

_________________
Нет ни чего сложнее, чем достигнуть простоты.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
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. Rolling Eyes Извините, не знал, как для удобочитаемости вставить отступы... Пришлось тыкать прочерки.

_________________
Нет ни чего сложнее, чем достигнуть простоты.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Михаил Власов



Зарегистрирован: 14.02.2005
Сообщения: 580
Откуда: ИНТЕГРО

СообщениеДобавлено: Вт 10 Окт 2006 09:55    Заголовок сообщения: Ответить с цитатой

Количество объектов в результате пространственного запроса можно узнать только тем способом, который Вы привели.
_________________
С уважением, Михаил Власов.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Вопросы разработчиков Часовой пояс: GMT + 5
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете добавлять приложения в этом форуме
Вы можете скачивать файлы в этом форуме


© phpBB Group
Русская поддержка phpBB