Swift Mapkit DistanceFromLocation Bug

时间:2016-07-23 00:55:42

标签: ios swift mapkit cllocationmanager cllocation

正如标题所示,我试图找到地图上两点之间的距离。这些点是用户和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


}

无论我离默认的注释位置有多远,警报仍然会出现。有人知道这是怎么回事吗?

谢谢大家!

0 个答案:

没有答案