Что подразумевается под "Выделение произвольной областью"? Координаты произвольной области откуда берутся? Опишите алгоритм действий оператора, который Вы хотите реализовать.
Например, есть компонент получения координат прямоугольной области MapSelectRect. В свойство MapSelect можно установить габариты поиска или координаты области поиска, которые можно взять
из компонента MapObj. Можно выстроить такой алгоритм:
- axMapEditMetric - создается площадной объект (это и будет область поиска), объект в карту не записывается.
- метрика области поиска из axMapEditMetric.MapObj переносится в MapSelect.
Далее можно искать по области, можно выделять по области.
Из документации:
aiMapSelect
Установить параметры поиска/выделения объектов по области
function SelectSeekArea(SiteNumber: Integer; const aObject: axMapObj;
aDistance: Double; aFilter, aInside, aVisible, aAction: Integer): Integer;
Описание:
Установить параметры поиска/выделения объектов по области, метрика которой задается в параметре aObject. Ограничение устанавливается только на режим поиска и не влияет на отображение/печать.
Метод принимает следующие параметры:
SiteNumber - номер карты в цепочке, для которой устанавливается ограничение поиска. Если аSiteN = -1 - ограничение установится для всего списка карт.
aObject - объект карты (компонент axMapObj) - область поиска. Координаты области поиска задаются свойством axMapObj.Metric. aObject не обязан реально существовать на карте (достаточно динамически создать экземпляр axMapObj, добавить в него метрику). После вызова метода aObject можно удалить. Объект карты может находиться на любой карте из списка.
aDistance - расстояние от границы области поиска в метрах.
aAction - предстоящая операция по области : выделение/поиск (1/0). Если указано выделение, то будет заполнен список выделенных объектов, которые можно выделить цветом при отображении карты (axcMapView.SetViewSelected).
aFillter - учитывать/не учитывать(1/0) фильтр объектов, уже установленных в axMapSelect.
aInside - границы поиска объектов по области:
0 - внутри области по расстоянию от заданного объекта;
1 - внутри области от заданного объекта, включая пересечение границы,
если задано расстояние, то с учетом расстояния;
2 - целиком внутри области без касания или пересечения границы;
4 - целиком снаружи области без касания или пересечения границы.
aVisible - с учетом/без учета(1/0) видимости объектов на карте. Режим - с учетом видимости объектов карты имеет смысл только в том случае, если для карты было выполнено ограничение перечня отображаемых объектов карты (используя свойство axcMapView.ViewSelect).
При ошибке метод возвращает ноль иначе количество карт, для которых ограничения на условия поиска успешно установлены.