Да.
В цикле перебрать все контуры и проверить вхождение в них точки.
При этом, если контур внутренний ("дырка"), то точка не принадлежит объекту, а если контур внешний (это может быть не только основной контур) - то значит точка лежит на объекте.
Проверка внешний/внутренний нужна только для мультиполигонов, у обычных полигонов все контуры, кроме основного, внутренние.
Код |
---|
// Запросить является ли объект мультиполигоном
// Мультиполигон - это площадной объект, у которого некоторые подобъекты
// могут быть вне границ объекта
// При подсчете площади мультиполигона площадь внешних подобъектов
// будет добавляться к площади основного объекта, а площади
// внутренних подобъектов - вычитаться
// info - идентификатор объекта карты в памяти
// Если да, возвращает ненулевое значение
_MAPIMP long int _MAPAPI mapIsMultiPolygon(HOBJ info);
// Запросить флаг размещения подобъекта вне объекта
// subject - номер подобъекта, если 0 - запрос для объекта
// Для внешних подобъектов возвращает отрицательное значение (-1),
// для внутренних подобъектов возвращает номер внешнего подобъекта (c 0), в который
// входит данный подобъект
// При отсутствии описания возвращает ноль
_MAPIMP long int _MAPAPI mapGetSubjectMultiFlag(HOBJ info, long int subject); |