如何获得两点之间的行驶距离?

Posted

技术标签:

【中文标题】如何获得两点之间的行驶距离?【英文标题】:How to get driving distance between two point? 【发布时间】:2013-07-18 06:02:47 【问题描述】:

我想创建可以计算 A 点到 B 点之间行驶距离的应用程序。我知道 CLLocationdistanceFromLocation: 来计算 2 点之间的距离,但它只计算从 A 点开始的直线to B. 有没有办法计算两点之间的行驶距离?如何?有样品吗?

谢谢

【问题讨论】:

因为保密协议不能讨论,但是看看ios7 MapKit的变化。 【参考方案1】:

斯威夫特 3:

func routingDistance(userNotation: CLLocation, destinationLocation: CLLocation, completion: @escaping (CLLocationDistance) -> Void) 
    let request:MKDirectionsRequest = MKDirectionsRequest()

    // source and destination are the relevant MKMapItems
    let sourceS = CLLocationCoordinate2D(latitude: userNotation.coordinate.latitude, longitude: userNotation.coordinate.longitude)
    let destinationD = CLLocationCoordinate2D(latitude: destinationLocation.coordinate.latitude, longitude: destinationLocation.coordinate.longitude)
    let sourcePM = MKPlacemark(coordinate: sourceS)
    let destinationPM = MKPlacemark(coordinate: destinationD)
    request.source = MKMapItem(placemark: sourcePM)
    request.destination = MKMapItem(placemark: destinationPM)

    // Specify the transportation type
    request.transportType = MKDirectionsTransportType.automobile;

    // If you're open to getting more than one route,
    // requestsAlternateRoutes = true; else requestsAlternateRoutes = false;
    request.requestsAlternateRoutes = true

    let directions = MKDirections(request: request)

    directions.calculate  (response, error) in
        if let response = response, let route = response.routes.first 
            completion(route.distance)
        
    

【讨论】:

【参考方案2】:

我认为 iOS 中没有任何功能,distanceFromLocation 会给出两个坐标之间的空气距离。

但是是的,您可以使用google APIS 计算道路距离。

【讨论】:

不幸的是,你必须为这个 api 付费(如果你有体面的使用)

以上是关于如何获得两点之间的行驶距离?的主要内容,如果未能解决你的问题,请参考以下文章

如何获得两个地理点坐标之间的最短行驶路径和距离?

计算iphone中两点之间的距离

获取经纬度之间两点间真实距离(适用于GoogleMap,BaiduMap,Amap等)

arcgis怎么批量计算两点之间的距离

获取画布中两点之间的距离

如何连续计算位置更新之间的距离以获得总距离