MKDirections 多个位置 xcode 6.2 Mapkit
MKDirections multiple locations xcode 6.2 Mapkit
我正在使用 xcode beta 6.2。这无关紧要,因为我的问题与 API 相关 - 特别是使用 MKDirectionsRequest 调用 MKDirections。
请注意,此论坛上发布了另一个类似问题,但未提供解决方案:iOS MKDirections for multiple destinations and a single source
我的问题:
- 我在自定义对象中保存了一组 MKMapItem class。
- 这组 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 请求的标签。如果还有其他人可以,那就太好了!
西蒙.
使用 for
循环并为集合(或数组)中的每个目的地创建一个 MKDirectionsRequest
。当调用每个完成处理程序块时,将结果存储在一个集合或(数组)中。我已经发送了多个这样的请求 'rapid fire' 来获取路线并且没有被限制。
我正在使用 xcode beta 6.2。这无关紧要,因为我的问题与 API 相关 - 特别是使用 MKDirectionsRequest 调用 MKDirections。
请注意,此论坛上发布了另一个类似问题,但未提供解决方案:iOS MKDirections for multiple destinations and a single source
我的问题:
- 我在自定义对象中保存了一组 MKMapItem class。
- 这组 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 请求的标签。如果还有其他人可以,那就太好了!
西蒙.
使用 for
循环并为集合(或数组)中的每个目的地创建一个 MKDirectionsRequest
。当调用每个完成处理程序块时,将结果存储在一个集合或(数组)中。我已经发送了多个这样的请求 'rapid fire' 来获取路线并且没有被限制。