 |
www.integro.ru ЦСИ ИНТЕГРО
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
rjdgtn
Зарегистрирован: 26.02.2009 Сообщения: 37
|
Добавлено: Вс 26 Апр 2009 18:16 Заголовок сообщения: QueryBySurfacePos |
|
|
необходимо получить список всех объектов находящихся по заданным координатам.
нашел функцию
HRESULT QueryBySurfacePos(VARIANT aLayerIDs, IIngeoPaintSurface* aSurface, long aDevX, long aDevY, IIngeoMapObjectsQuery** Value);
однако
1)не работает
2) непонятно почему параметры aDevX и aDevУ имеют тип long тогда как позиция любого объекта на карте задается переменной типа double.... это же огромная потеря точности.......
или я не понимаю принципа работы данной функции?
вызваю
App->ActiveDb->MapObjects->QueryBySurfacePos(Variant((wchar_t*)markerlayerID),App->MainWindow->MapWindow->Surface,x,y,&Query);
где x и y 100% координаты существующего объекта на карте.
Query->EOF_ возвращает true
в чем косяк? |
|
Вернуться к началу |
|
 |
Михаил Власов

Зарегистрирован: 14.02.2005 Сообщения: 580 Откуда: ИНТЕГРО
|
Добавлено: Пн 27 Апр 2009 09:25 Заголовок сообщения: |
|
|
QueryBySurfacePos выполняет поиск на основе координат и параметров проекции, относящихся к поверхности рисования (а НЕ на основе исходных координат местности).
Поверхность рисования (surface) - это НЕ поверхность исходной территории, а поверхность устройства отображения карты - окно, принтер, растровая картинка.
Соответственно, координаты задаются в точках поверхности отображения.
Если Вам нужно делать выборку на основе исходных координат, используйте метод QueryByRect или QueryByContour. _________________ С уважением, Михаил Власов. |
|
Вернуться к началу |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете добавлять приложения в этом форуме Вы можете скачивать файлы в этом форуме
|
|