这段代码有问题,我无法计算出两个位置之间的距离。我已经在网上搜索过了,但是我解决不了。下面是我的didUpdateLocations函数:
func locationManager(manager:CLLocationManager, didUpdateLocations locations:[AnyObject]) {
var userLocation:CLLocation = locations[0] as CLLocation
var startLocation = userLocation
var endLocation = userLocation
if x == 0 {
var startLocation = userLocation
star.text = "\(startLocation)"
}
if x > 0 {
var endLocation = userLocation
end.text = "\(endLocation)"
let distance: CLLocationDistance = startLocation.distanceFromLocation(endLocation)
println(distance)
}
x = x + 1
}发布于 2015-02-22 02:16:23
您只需要将var startLocation声明为可选的,而不是在函数中声明。
var startLocation :CLLocation! 然后,在您的didUpdate函数中,只需要测试startLocation变量是否为零:
func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) {
if startLocation == nil {
startLocation = locations.first as? CLLocation
}
let distance = startLocation.distanceFromLocation(locations.last as! CLLocation)
println( "\(startLocation)")
println( "\(locations.last as! CLLocation)")
println("DISTANCE: \(distance)")
}发布于 2015-02-22 10:04:05
很多Tks!
我得做些改变
var startLocation :CLLocation!
var endLocation :CLLocation!
func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) {
var userLocation:CLLocation = locations[0] as CLLocation
if startLocation == nil {
startLocation = locations.first as? CLLocation
}
endLocation = locations.last as? CLLocation
let distance = startLocation.distanceFromLocation(endLocation)
println("DISTANCE: \(distance)")
VDistancia.text = "\(distance)"
VInical.text = "\(startLocation)"
VSpeed.text = "\(userLocation.speed)"
}这是工作!这些值不正确,但我将研究如何修复它。tks!
https://stackoverflow.com/questions/28653496
复制相似问题