如果这个问题重复,我很抱歉,但我很难尝试使用MKDirectionsRequest在两个地方之间显示路线。
MKDirectionsRequest *request = [[MKDirectionsRequest alloc] init];
request.source = [MKMapItem mapItemForCurrentLocation];
request.transportType = MKDirectionsTransportTypeAny;
request.destination = _dstItem;
request.requestsAlternateRoutes = YES;
MKDirections *directions = [[MKDirections alloc] initWithRequest:request];
// __block typeof(self) weakSelf = self;
[directions calculateDirectionsWithCompletionHandler:
^(MKDirectionsResponse *response, NSError *error) {
//stop loading animation here
if (error) {
NSLog(@"Error is %@",error);
} else {
//do something about the response, like draw it on map
MKRoute *route = [response.routes firstObject];
[self.mapView addOverlay:route.polyline level:MKOverlayLevelAboveRoads];
}
}];
MKDirectionsResponse总是返回nil,错误描述
Error Domain=MKErrorDomain Code=5 "Directions Not Available"
UserInfo=0x1700f1c80 {NSLocalizedFailureReason=A route to the nearest road cannot be determined.,
MKErrorGEOError=-403, MKDirectionsErrorCode=6, NSLocalizedDescription=Directions Not Available}
答案 0 :(得分:4)
MKDirectionsRequest是找到两点之间路线的正确api。苹果似乎尚未为印度增加路线功能。
答案 1 :(得分:3)
Error Domain=MKErrorDomain Code=5 "Directions Not Available"
如果该位置不属于此列表中的任何国家/地区,则您最有可能收到此错误:http://www.apple.com/ios/feature-availability/#maps-directions
在iOS模拟器上,您可以轻松自定义当前位置。有两种方法可以做到:
答案 2 :(得分:0)
我收到相同的错误信息。如果你提供lat长期的印度它将无法工作,因为苹果没有为印度添加路径功能但尝试与不同的lat长希望它将工作。我尝试相同,它的工作原理我
答案 3 :(得分:0)
我得到同样的错误。我还不知道最好的解决方案。但是我在地图上创建了一个带刷新的按钮,并调用我从viewDidLoad()调用的方法,我想方法,我的方法在从viewDidLoad()计算地址之前立即返回错误。 我的猜测是,viewDidLoad()应该在某个特定的预定义时间内完成。
所以,
<hr/> `-(IBAction)refreshRoute:(id)sender {
[self routeCalculate];
}`
<hr/>
而不是
<hr/>
-(void)viewDidLoad {
[super viewDidLoad];
_manager = [[CLLocationManager alloc]init];
[_manager requestWhenInUseAuthorization];
[_manager requestAlwaysAuthorization];
_manager.desiredAccuracy = kCLLocationAccuracyBest;
_manager.distanceFilter =kCLDistanceFilterNone;
[_manager requestWhenInUseAuthorization];
[_manager requestAlwaysAuthorization];
[_manager startUpdatingLocation];
[_manager delegate];
self.pinMap.delegate = self;
// [self routeCalculate]; ***** This Call ****
}
<hr/>