我有一个带有mapView和tableView的viewController。我试图从mapView获取用户当前位置等数据,并能够将其传递给tableView,以便打印出计算出的距离。
我尝试使用此代码......
let distance = currentLocation.distanceFromLocation(endLocation)
但这不起作用,因为currentLocation是在locationManager的didUpdateLocation函数中创建的,而endLocation是来自我从CloudKit中提取的tableview数据。我不能将这两个数据一起使用,因为它们来自不同的功能。
如何设置userLocation以便我可以在locationManager的功能之外使用它?
我有这个..
func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) {
let userLocation:CLLocation = locations[0] as! CLLocation
let ulong = userLocation.coordinate.longitude;
let ulat = userLocation.coordinate.latitude;
}
但我无法使用该功能之外的数据。
答案 0 :(得分:1)
将当前位置和结束位置保存到不同的CLLocation对象,然后实现以下代码。
func CalculateDisatnceBetweenTwoLocations(来源:CLLocation,destination:CLLocation) - >双{
var distanceMeters = source.distanceFromLocation(destination)
var distanceKM = distanceMeters / 1000
let roundedTwoDigit = distanceKM.roundedTwoDigit
return roundedTwoDigit
}