На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты

Различие активных и неактивных объектов

Поиск  Пользователи  Правила  Войти
Форум » Linux » Средства разработки ГИС-приложений для Linux
Страницы: 1
RSS
Различие активных и неактивных объектов
 
Здравствуйте!

В комментарии написано, что функция mapWhatActiveObject выполняет поиск среди активных объектов. А как задается, активным является данный, объект, или нет? То есть, какую функцию следует вызвать или какой аргумент требуется куда-либо передать, чтобы сделать активным объект, размещенный на карте с помощью mapapi?

Заранее спасибо.
 
Код
 // Выбор видимых объектов в окрестности точки, заданной прямоугольной рамкой, среди активных объектов
 // Применяется для перебора видимых объектов при нажатии левой кнопки мыши на карте
 // Не является функцией поиска объектов по области (см. mapSelectSeekAreaFrame и т.п.)
 // Активные объекты - те, что доступны для интерактивного выбора (оператором)
 // Установка условий поиска выполняется функцией mapSetSiteActiveSelect()
 // hMap  - идентификатор открытой карты,
 // info  - идентификатор объекта в памяти,
 //         предварительно созданного функцией mapCreateObject()
 //         или mapCreateSiteObject(),
 //         в котором будет размещен результат поиска.
 // frame - прямоугольная область поиска объекта в системе координат,
 //         заданной переменной place (PP_PLANE,PP_GEO, ...)
 // flag  - порядок поиска объектов (WO_FIRST, WO_NEXT...)
 // place - система координат
 // Если объект не найден - возвращает ноль

_MAPIMP long int _MAPAPI mapWhatActiveObject(HMAP hMap, HOBJ info, DFRAME *frame, long int flag = WO_LAST, long int place = PP_PICTURE);

В MAPAPI-интерфейсе есть некоторая избыточность.
Код
 // Выбор видимых объектов в окрестности точки, заданной прямоугольной рамкой,
 // удовлетворяющих условиям поиска
 // Не является функцией поиска объектов по области (см. mapSelectSeekAreaFrame и т.п.)
 // Выбор выполнется среди тех объектов,которые соответствуют условиям, заданным в HSELECT 
 // hMap - идентификатор открытой карты.
 // info - идентификатор объекта в памяти,
 //        предварительно созданного функцией mapCreateObject()
 //        или mapCreateSiteObject(),
 //        в котором будет размещен результат поиска.
 // frame - прямоугольная область поиска объекта в системе координат,
 //         заданной переменной place (PP_PLANE,PP_GEO, ...)
 // select- контекст условий выбора объектов,
 // flag  - порядок поиска объектов (WO_FIRST, WO_NEXT...)
 // Выбор объекта в "точке" лучше начинать с последнего, то
 // есть того, что нарисован поверх остальных (это чуть медленнее
 // прямого поиска). При поиске с флажками WO_NEXT,WO_BACK параметр 
 // info должен содержать результат предыдущего поиска.
 // place - система координат,
 // hPaint - идентификатор контекста отображения для многопоточного вызова функции отображения,
 // создается функцией mapCreatePaintControl
 // Если объект не найден - возвращает ноль,
 // иначе - возвращает значение info !

_MAPIMP HOBJ _MAPAPI mapWhatObjectBySelectEx(HMAP hMap, HOBJ info, DFRAME *frame, HSELECT select, long int flag, long int place, HPAINT hPaint);

Вы можете выбирать объекты в некоторой точке (окрестности точки) среди тех, что соответствуют заданным условиям отбора (select), вызывая функцию mapWhatObjectBySelectEx..

Или установить эти условия в документ функцией mapSetSiteActiveSelect(), а затем вызывать mapWhatActiveObject().
Страницы: 1
Читают тему (гостей: 2)



© КБ Панорама, 1991-2024

Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности