How to calculate the distance travelled by user fr

2019-09-16 04:06发布

I am using UImapkit & core location frameworks How will I get the total polyLine distance & travelled time

this my code

func locationManager(_ manager: CLLocationManager!, didUpdateToLocation newLocation: CLLocation!, fromLocation oldLocation: CLLocation!) {



      if let oldLocationNew = oldLocation as CLLocation?{
        let oldCoordinates = oldLocationNew.coordinate


        let newCoordinates = newLocation.coordinate
        var area = [oldCoordinates, newCoordinates]
        print(area)
        let polyline = MKPolyline(coordinates: &area, count: area.count)
        mkMapView.add(polyline)


    }

//calculation for location selection for pointing annoation
    if (previousLocation as CLLocation?) != nil{

        if previousLocation.distance(from: newLocation) > 10 {
            addAnnotationsOnMap(newLocation)
            previousLocation = newLocation
        }
    }else{
        //case if previous location doesn't exists
        addAnnotationsOnMap(newLocation)
        previousLocation = newLocation
    }
}

1条回答
仙女界的扛把子
2楼-- · 2019-09-16 04:27

You can use CLLocation to calculate the distance between two locations.

i.e

let distance = newLocation.distance(from: oldLocation)

Once you calculated the distance, then you can easily calculate the travel time by using the speed distance time formula

 speed = distance / time

since you know the distance and if you assume the speed, you can calculate time taken for the travel as

 time = distance / speed

Hope this stuff will help you.

查看更多
登录 后发表回答