【问题标题】:MKDirections multiple locations xcode 6.2 MapkitMKDirections多个位置xcode 6.2 Mapkit
【发布时间】:2015-02-17 04:46:18
【问题描述】:

我正在使用 xcode beta 6.2。没关系,因为我的问题与 API 相关 - 特别是使用 MKDirectionsRequest 调用 MKDirections。

请注意,此论坛上还有另一个类似问题,但未提供解决方案:iOS MKDirections for multiple destinations and a single source

我的问题:

  • 我有一组 MKMapItem 保存在自定义对象类中。
  • 这组 MKMapItem 只能达到 1-5 条记录。这些项目中的每一个都代表一个目的地,我想从用户的当前位置计算到达的预计时间。

实际上,我想将以下语句包装在一个循环中,然后等待回调完成,然后再调用下一个目标。请注意,API 不允许同时请求:

CLLocationCoordinate2D location;
location.latitude = 40.71278371;
location.longitude = -74.0059413;

MKPlacemark* placemark = [[MKPlacemark alloc] initWithCoordinate:location addressDictionary:nil];

MKMapItem* destinationMapItem = [[MKMapItem alloc] initWithPlacemark:placemark];

MKDirectionsRequest *request = [[MKDirectionsRequest alloc] init];
[request setSource:[MKMapItem mapItemForCurrentLocation]];
[request setDestination:destinationMapItem];
[request setTransportType:MKDirectionsTransportTypeAutomobile]; 
[request setRequestsAlternateRoutes:NO];
MKDirections *directions = [[MKDirections alloc] initWithRequest:request];

[directions calculateETAWithCompletionHandler:^(MKETAResponse *response, NSError *error)
 {
     NSString *eta = [Utils stringFromTimeInterval:response.expectedTravelTime];

     NSLog(@"ETA route1: %@", eta);
 }];

有人可以提出一个如何循环对象并执行此操作的示例。我知道这可能会受到服务限制的风险,但是我的伙伴能够在我们产品的 android 版本上实现这一点。我应该希望能够为 1-5 个目的地提供服务。

提前感谢您。我无法添加 MKDirections 或 MKDirections 请求的标签。如果其他人可以,那就太好了!

西蒙。

【问题讨论】:

    标签: xcode mapkit mkannotationview


    【解决方案1】:

    使用for 循环并为您的集合(或数组)中的每个目标创建一个MKDirectionsRequest。当每个完成处理程序块被调用时,将结果存储在一个集合或(数组)中。我已经发送了多个这样的“快速启动”请求来获取路线并且没有受到限制。

    【讨论】:

    • 谢谢,但您没有收到来自 API 的错误消息,说您不能同时调用该服务(正在处理另一个方向请求?)如何停止循环在苹果路线服务器处理第一个服务时递归?
    • 我在一个循环中调用了 MKDirectionsRequest 十次,每次都收到一个结果。 Apple 不会拒绝您的请求,但会以某个未发布的阈值限制(减慢)结果。你一次做几百个吗?
    • 谢谢 - 同意....感谢您的帮助....请为我的问题投票...需要能够在这个网站上投票!
    猜你喜欢
    • 1970-01-01
    • 2012-11-20
    • 1970-01-01
    • 1970-01-01
    • 2011-07-16
    • 1970-01-01
    • 2012-04-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多