Как определить, находится ли текущая позиция в определенной области KML? - PullRequest
2 голосов
/ 18 октября 2011

У меня есть некоторые данные KML, которые определяют область на карте, например:

131.0764742247829,-15.80786022929951,0 132.6357700620065,-16.54895727734661,0
134.1119108999971,-17.28040233069844,0 135.8545033459996,-18.1298170074137,0 
137.7396886168202,-19.07860187595016,0 140.011948401144,-20.18462043802856,0 
142.3114600417346,-21.19369381963822,0 144.1566045495202,-22.15731684591415,0

A map with the KML-defined region overlaid on it

Я бы хотел определить в моем приложении iOS, находится ли текущее местоположение пользователя внутри этой определенной области. Как я могу это сделать?

1 Ответ

6 голосов
/ 19 октября 2011

Если вы знаете центр и радиус круга, то это довольно просто.

CLRegion *circle = [CLRegion initCircularRegionWithCenter:centerCoordinate radius:circleRadius identifier:@"myCircle"];

BOOL doesItContainMyPoint = [circle containsCoordinate:myLocation];

Обновление на основе пересмотренного вопроса

Я никогда не пробовал этого, но не могли бы вы создать UIBezierPath с вашими точками (вам на самом деле не нужно рисовать путь Безье), а затем использовать - (BOOL)containsPoint:(CGPoint)point UIBezierPath для проверки на включение?

...