快速计算总行驶距离

时间:2019-03-08 15:50:18

标签: swift cllocation

我正在尝试计算从起点到终点的距离。我的实现有效,但无法给出准确的距离,因为它仅计算静态起始点CLLocation至停止点之间的距离

这是我的代码

    enum DistanceValue: Int {
            case meters, miles
        }

        func calculateDistanceBetweenLocations(_ firstLocation: CLLocation, secondLocation: CLLocation, valueType: DistanceValue) -> Double {
            var distance = 0.0
            let meters = firstLocation.distance(from: secondLocation)
            distance += meters
            switch valueType {
            case .meters:
                return distance
            case .miles:
                let miles = distance
                return miles
            }
        }

func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
        if startLocation == nil {
            startLocation = locations.first
        } else if let location = locations.last {
            runDistance += lastLocation.distance(from: location)
            let calc = calculateDistanceBetweenLocations(lastLocation, secondLocation: location, valueType: .meters)

            print("TOTAL LOC 1 \(calc)")
            print("TOTAL LOC 2 \(runDistance)")
        }
        lastLocation = locations.last

    }

如我的打印报表print("TOTAL LOC 1 \(calc)") print("TOTAL LOC 2 \(runDistance)")所示,我怎么做

calcrunDistance

这是控制台中打印的内容

TOTAL LOC 10.29331530774379
TOTAL LOC 2 10.29331530774379
TOTAL LOC 2.2655118031831587
TOTAL LOC 2 12.558827110926948

0 个答案:

没有答案