我写了这样的东西来计算 2 个点/位置之间的行驶距离。
方法实现:
第一类:
static func calculateDistance(_ location1 : CLLocationCoordinate2D, location2: CLLocationCoordinate2D, completion: @escaping (_ distance: CLLocationDistance?) -> ()) {
let start = MKMapItem(placemark: MKPlacemark(coordinate: location1))
let destination = MKMapItem(placemark: MKPlacemark(coordinate: location2))
let request = MKDirectionsRequest()
request.source = start
request.destination = destination
request.requestsAlternateRoutes = false
let direction = MKDirections(request: request)
var distanceInMiles: CLLocationDistance?
direction.calculate { (response, error) in
if let response = response, let route = response.routes.first {
distanceInMiles = route.distance * 0.000621371
completion(distanceInMiles)
}
}
}
使用问题
第 2 类:如何访问不同类中的距离值?例如,我有一个参数化的 init,其中第三个参数“dist”的类型为 CLLocationDistance。我想要实现的是从Class1 的calculateDistance方法访问距离值
let assigningDistValue = Class1(coordinate: location, secondParam: paramValue, dist:finalDistance!)
我已经阅读了与此问题相关的所有建议解决方案,但没有任何帮助。