iOS:获取位置之间的距离

标签 ios mkmapview mapkit geocoding

请不要在未阅读整个问题的情况下将其标记为重复

在 iOS 中显示 map 的情况下,有没有办法获取两个 CLLocation 点之间的自驾路线的长度?

绝非乌鸦飞过!!!但是就像在MK驾驶模式下

我不能使用谷歌,因为我必须在谷歌地图上显示结果。

我找到了这段代码,但这只在显示 iOS map 时有效:

-(void)showMapRouteFromCurrentLocation
{
    CLLocationCoordinate2D currentUserCoordinate = YourCoordinate;
    //currentUserCoordinate.latitude=  +53.509980;
    //currentUserCoordinate.longitude =  -0.133700;

    MKPlacemark *place = [[MKPlacemark alloc]
                          initWithCoordinate:currentUserCoordinate
                          addressDictionary:nil];


    MKMapItem *mapItem = [[MKMapItem alloc]initWithPlacemark:place];

    NSDictionary *routeOption = [[NSDictionary alloc] initWithObjectsAndKeys:MKLaunchOptionsDirectionsModeDriving,MKLaunchOptionsDirectionsModeKey, nil];

    [mapItem openInMapsWithLaunchOptions:routeOption];
}

但这不是我需要的。

最佳答案

正如 brainray 所说,从 iOS7 开始,您可以执行以下操作:

MKDirectionsRequest *routeRequest = [[MKDirectionsRequest alloc] init];
routeRequest.transportType = MKDirectionsTransportTypeAutomobile;
[routeRequest setSource:startPoint]; // startPoint is an MKMapItem with the starting lat/long coordinate
[routeRequest setDestination :endPoint]; // endPoint an MKMapItem with the ending lat/long coordinate

MKDirections *routeDirections = [[MKDirections alloc] initWithRequest:routeRequest];
[routeDirections calculateDirectionsWithCompletionHandler:^(MKDirectionsResponse * routeResponse, NSError *routeError)
{
    // Check for error and then do something with the route...
    MKRoute *route = routeResponse.routes[0];
}];

关于iOS:获取位置之间的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15528565/

相关文章:

ios - Swift:子类 MKPolyline

swift - MKTileOverlay - 添加捆绑瓷砖

ios - 如何在 iOS 上设置一个假位置以供所有应用程序使用?

ios - Facebook 作者 user.credential 返回 nil

swift - 自定义 map View 在 initWithCoder 中 swift 崩溃

ios - 如何调整区域以适应刚刚出现的自定义注释标注?

iOS Mapkit - 如何过滤注释(显示/隐藏)?

ios - 如何获取IOS中的常用联系人?

IOS - 程序使用 IOS 6.1 模拟器产生 Apple Mach-O 链接器错误

ios - 如何在 Objective-C 中实现 MKClusterAnnotations?