正如标题所示,我试图找到地图上两点之间的距离。这些点是用户和a之间的距离,此时是另一个位置(将是一个带有for
循环的数组,以及引入服务器时的所有好东西)。但是,就目前而言,我创建了一个新的CLLocation
并将默认位置传递给它。然后我获取用户位置(不断更新),然后如果距离超过5米,则可以出现下一部分代码。否则会出现警告,告诉他们距离太近。以下是完成此任务的代码:
IBAction func ReportBtn(sender: AnyObject) {
let usrLocation = CLLocation(latitude: (locationManager.location?.coordinate.latitude)! , longitude: (locationManager.location?.coordinate.longitude)!)
let surroundings = getLocations()
if(usrLocation.distanceFromLocation(surroundings[0]) > 50){
MainMap.addAnnotation(pointAnnotation)
}else{
let alertController = UIAlertController(title: "Whoa There!", message: "You're too close!", preferredStyle: .Alert)
let defaultAction = UIKit.UIAlertAction(title: "OK", style: .Default, handler: nil)
alertController.addAction(defaultAction)
self.presentViewController(alertController, animated: true, completion: nil)
}
功能getLocations
中有一个默认位置:
func getLocations() -> [CLLocation]{
//Connect to server and all of that.
let myLocation : [CLLocation] = [CLLocation(latitude: -122.0312186, longitude: 37.3323314)]
return myLocation
}
无论我离默认的注释位置有多远,警报仍然会出现。有人知道这是怎么回事吗?
谢谢大家!