Код |
---|
// Выбор видимых объектов в окрестности точки, заданной прямоугольной рамкой, среди активных объектов
// Применяется для перебора видимых объектов при нажатии левой кнопки мыши на карте
// Не является функцией поиска объектов по области (см. 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().