因此,我正在研究一个项目,其中包括许多用于在地图周围放置注释的用途。注释,(这是一个更大的圆形范围内的自定义图像)出现在屏幕上,并且理想地,我想为用户为:如何检测用户是否在注释的范围
- 通知的,如果他们是一个注释 的范围内和
- 不得放置另一个注解另一个的范围内,如果圆针重叠,比方说,超过25%
我觉得这是一个非常独特的问题,应该是有人乐趣帮助,让玩得开心!谢谢大家!
因此,我正在研究一个项目,其中包括许多用于在地图周围放置注释的用途。注释,(这是一个更大的圆形范围内的自定义图像)出现在屏幕上,并且理想地,我想为用户为:如何检测用户是否在注释的范围
我觉得这是一个非常独特的问题,应该是有人乐趣帮助,让玩得开心!谢谢大家!
可以从每个注释使用
- (CLLocationDistance)distanceFromLocation:(const CLLocation *)location
该方法测量通过追踪 下面地球的曲率它们之间的线的两个位置之间的距离检查距离。产生的弧线是平滑的曲线,并且不考虑两个位置之间的特定高度变化。
欲了解更多详情,请参阅Link
试试这个:
let location = CLLocation(latitude: 1, longitude: 1)//Or user's location
let distance = location.distance(from: anotherLocation)
编辑:
正如在评论中提到,你想创建一个等距点。我建议手动做到这一点:
从用户的位置减去注释的位置。然后将距离添加回原来的距离。例如:
用户的位置=(1,1)
该注释的位置=(3,2)
垂直差异将是2
水平差将是1
Then:
(3 + 2,2 + 1)
您的结果:(5,3)
现在,你将在一个中心点(原注释)
我认为位置和距离必须是var的,我不知道是否可以设置距离等于位置坐标内的注释加上具有特定可重用标识符的容差?也许? – Ethan
你不需要他们成为变数。每次更新位置(locationDidUpdate方法)时都会调用它。我根据新的观点编辑了我的问题。 – penatheboss
作为一般的指针每端有两个点(您刚刚创建的和用户的位置),看看up GeoFencing – LuigiPower
或者更具体地说,使用MapKit,查看[Monitoring Geographical Regions](https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/LocationAwarenessPG/RegionMonitoring/RegionMonitoring.html#//apple_ref/doc/uid/TP40009497-CH9-SW2)。_注意,我相信可以同时监视的区域数量有限,但这是一种可行的方法。但正如其他人所讨论的那样,正确的解决方案可能只是使用'CLLocation'的'distanceFromLocation'方法。 – Rob
感谢@Rob鸣叫我现在就来看看这个! – Ethan