如何获得两点之间的行驶距离?
Posted
技术标签:
【中文标题】如何获得两点之间的行驶距离?【英文标题】:How to get driving distance between two point? 【发布时间】:2013-07-18 06:02:47 【问题描述】:我想创建可以计算 A 点到 B 点之间行驶距离的应用程序。我知道 CLLocation
有 distanceFromLocation:
来计算 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 付费(如果你有体面的使用)以上是关于如何获得两点之间的行驶距离?的主要内容,如果未能解决你的问题,请参考以下文章