MKDirections多个位置xcode 6.2 Mapkit

时间:2015-02-17 04:46:18

标签: xcode mapkit mkannotationview

我正在使用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请求的标签。如果其他人能做到这一点会很棒!

西蒙。

1 个答案:

答案 0 :(得分:0)

使用for循环为集合(或数组)中的每个目标创建MKDirectionsRequest。在调用每个完成处理程序块时,将结果存储在set或(数组)中。我发出了多个请求' rapid fire'像这样得到方向,并没有受到限制。