我有以下代码总是让我回复"无法确定路线" (或类似的东西,消息各不相同)
-(void)getPathDirections:(CLLocationCoordinate2D)source withDestination:(CLLocationCoordinate2D)destination{
MKPlacemark *placemarkSrc = [[MKPlacemark alloc] initWithCoordinate:source addressDictionary:nil];
MKMapItem *mapItemSrc = [[MKMapItem alloc] initWithPlacemark:placemarkSrc];
MKPlacemark *placemarkDest = [[MKPlacemark alloc] initWithCoordinate:destination addressDictionary:nil];
MKMapItem *mapItemDest = [[MKMapItem alloc] initWithPlacemark:placemarkDest];
[mapItemSrc setName:@"name1"];
[mapItemDest setName:@"name2"];
MKDirectionsRequest *request = [[MKDirectionsRequest alloc] init];
[request setSource:mapItemSrc];
[request setDestination:mapItemDest];
[request setTransportType:MKDirectionsTransportTypeAutomobile];
request.requestsAlternateRoutes = NO;
MKDirections *directions = [[MKDirections alloc] initWithRequest:request];
[directions calculateDirectionsWithCompletionHandler:
^(MKDirectionsResponse *response, NSError *error) {
if (error) {
// Handle Error
} else {
[_mapView removeOverlays:_mapView.overlays];
[self showRoute:response];
}
}];
}
我在罗马尼亚,我的国家在路线支持国家的Apple名单上。
此外,我能够在当前位置和地图上的标记之间进行路线...
有什么想法吗?
答案 0 :(得分:3)
您的代码与欧洲的坐标完美配合。您在上述评论中给我的坐标是在沙特阿拉伯,而不是罗马尼亚。确保您有一个有效的坐标。检查坐标的最简单方法是访问Google地图,然后在搜索框中输入Latitude
和Longitude
值,并查看地图上的位置。
<强> P.S 强>
您的错误是交换Latitude
和Longitude
值。改变它们并再次检查:)
而不是:
source = CLLocationCoordinate2DMake(24.51898765563965, 44.26686859130859);
destination = CLLocationCoordinate2DMake(24.3679256439209, 44.10536575317383);
使用此:
source = CLLocationCoordinate2DMake(44.26686859130859, 24.51898765563965);
destination = CLLocationCoordinate2DMake(44.10536575317383, 24.3679256439209);