我正在尝试检测地图注释是否在MKCircle中。我不知疲倦地遍历互联网,很幸运能为Swift 2.0找到一个可靠的教程。所有教程或Stack Overflow问题都可以使用不推荐的代码或Objective-C来回答。不幸的是,我对Swift很新,所以翻译答案有点困难。
到目前为止我所拥有的:
到目前为止,我已经宣布了一个看似MKCircle的圆圈,
SelectionChanged
我最终希望使用CGPathContainsPoint来检测Annotation是否在此圈内。 CGPathContainsPoint的定义如下,
let location = CLLocationCoordinate2D(latitude: 36.9900,
longitude: -122.0605)
let circle = MKCircle(centerCoordinate: location, radius: 100)
其中,
path - 检查点的路径
m - 仿射变换(不确定这个目的是什么,但大多数问题都将这个参数设置为零)
要点 - 问题的要点
eoFill - 使用偶数填充(真或假,再次不确定,但大多数问题都设置为假)
我的问题:如何转换或翻译我的MKCircle,使其表现为CGPath,以便将其传递到CGPathContainsPoint并将我的CLLocationCoordinate2D转换为CGPoint?
答案 0 :(得分:2)
为什么要使用复杂的路径评估来确定某个点是否在圈内?你所描述的内容的某些变化可能对测试任意复杂区域的点有意义,但你所说的是一个圆圈。圆的定义是距离所选点(中心)一定距离(半径)的点集。所以:
CLLocation
个对象。 distanceFromLocation:
方法查找它们之间的距离。