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

QueryBySurfacePos

 
Начать новую тему   Ответить на тему    Список форумов 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.

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

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


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