首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CLLocationDistance不工作-斯威夫特

CLLocationDistance不工作-斯威夫特
EN

Stack Overflow用户
提问于 2015-02-22 01:34:29
回答 2查看 849关注 0票数 0

这段代码有问题,我无法计算出两个位置之间的距离。我已经在网上搜索过了,但是我解决不了。下面是我的didUpdateLocations函数:

代码语言:javascript
复制
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
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-22 02:16:23

您只需要将var startLocation声明为可选的,而不是在函数中声明。

代码语言:javascript
复制
var startLocation :CLLocation! 

然后,在您的didUpdate函数中,只需要测试startLocation变量是否为零:

代码语言:javascript
复制
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)")
}
票数 1
EN

Stack Overflow用户

发布于 2015-02-22 10:04:05

很多Tks!

我得做些改变

代码语言:javascript
复制
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!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28653496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档