【问题标题】:Why can't I get a MKDirectionResponse为什么我无法获得 MKDirectionResponse
【发布时间】:2026-01-08 00:15:02
【问题描述】:

我正在尝试获取两点之间的路线以获取两点之间的步行距离。但我总是最终得到以下错误:

错误:

/SourceCache/ProtocolBuffer/ProtocolBuffer-225/Runtime/PBRequester.m:799 server (https://gsp-ssl.ls.apple.com/directions.arpc) returned error: 400
2015-08-12 16:19:34.354 projectName[2995:597568] RESPONSE: (null)

这是我的代码:

-(void)viewDidLoad{
    [super viewDidLoad];

    [self.view setBackgroundColor:[UIColor whiteColor]];


    MKPlacemark *spot1 = [[MKPlacemark alloc] initWithCoordinate:CLLocationCoordinate2DMake(51.21299581976029, 4.404984000000013) addressDictionary:nil];
    MKPlacemark *spot2 = [[MKPlacemark alloc] initWithCoordinate:CLLocationCoordinate2DMake(51.20173651985178, 4.450245532177766) addressDictionary:nil];


    MKMapItem * startItem = [[MKMapItem alloc] initWithPlacemark:spot1];
    MKMapItem * destinationItem = [[MKMapItem alloc] initWithPlacemark:spot2];

    NSLog(@"START: %@",startItem);
    NSLog(@"DESTINATION: %@",destinationItem);

    MKDirectionsRequest * directionsRequest = [[MKDirectionsRequest alloc] init];
    [directionsRequest setSource:startItem];
    [directionsRequest setSource:destinationItem];
    [directionsRequest setTransportType:MKDirectionsTransportTypeWalking];
    MKDirections *direction = [[MKDirections alloc] initWithRequest:directionsRequest];

    [direction calculateDirectionsWithCompletionHandler:^(MKDirectionsResponse *response, NSError *error) {

        NSLog(@"RESPONSE: %@",response);

    }];
}

我使用不同的互联网连接进行了测试,以确保这不是问题所在。 我还按照Apple's Documentation 的所有步骤配置我的应用程序以接受路线请求,但没有任何帮助。

【问题讨论】:

    标签: ios routes request distance directions


    【解决方案1】:

    [directionsRequest setSource:destinationItem]; 应该是[directionsRequest setDestination:destinationItem];

    您正在设置源两次(或者更确切地说,用第二个值覆盖第一个值)。然后,您正在请求没有目的地的方向,当然现在有一种计算方法,因此您会收到错误。

    【讨论】:

    • 非常感谢!我现在感觉好傻,找了半天这个错误! -_-'
    • 没问题!最简单的最容易被忽视。 :P
    最近更新 更多