保持速度表应用程序的最大速度

时间:2016-02-29 14:40:24

标签: ios swift gps geolocation

我正在做一个简单的速度表来学习Swift和Geolocation,而且我已经坚持了最高速度。我想显示用户实现的最大速度,而我的标签显示当前速度。以下是该函数的代码:

func locationManager(manager:CLLocationManager, didUpdateLocations locations:[CLLocation]) {
        var latestLocation = locations.last as CLLocation!
        var maxSpeed: Double = 0

        latLabel.text = "\(latestLocation.coordinate.latitude)"
        lonLabel.text = "\(latestLocation.coordinate.longitude)"

        var speed: CLLocationSpeed = CLLocationSpeed()
        speed = locationManager.location!.speed
        if(speed<0){
            speed=0;
        }
        speedLabel.text = String(format: "%.0f km/h", speed * 3.6)

        maxSpeed = max(maxSpeed, speed)

        maxSpeedLabel.text = String(format: "%.0f km/h", maxSpeed*3.6)
    }

我想要的是speedLabel显示当前速度,而maxSpeedLabel仅在当前速度更高时才会更改。如果我不清楚,现在正在做什么:

(速度 - 最大速度)

3 - 3

4 - 4

5 - 5

4 - 4

这是我想要实现的目标:

(速度 - 最大速度)

3 - 3

4 - 4

5 - 5

4 - 5

6 - 6

3 - 6

我不知道为什么我的代码不起作用,我错过了什么?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

你必须从“func locationManager”中启动最大速度,因为最大速度在每次“迭代”(位置变化)时都会变为0,所以最大速度总是小于速度