我有一个为 iOS < 6 构建的应用程序,在此之前所有功能都可以完美运行。现在我使用了一个开关来识别设备上安装的 iOS,然后我的应用程序打开正确的地图以获取从本地位置到另一个位置的方向(地图上的一些引脚)。问题是在 iOS 6 之前,应用程序会打开原生地图并向用户显示路线。现在,如果设备使用 iOS 6,该应用程序会打开 Apple 地图,但会显示一个弹出窗口,其中包含“无法在这 2 个位置之间获取方向”之类的内容。为什么?有人可以帮我解决这个问题吗?
在这里,我如何将坐标从显示按钮传递给地图:
- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control {
[self.navigationController pushViewController:[[UIViewController alloc] init] animated:YES];
if (SYSTEM_VERSION_LESS_THAN(@"6.0")) {
NSString* addr = [NSString stringWithFormat:@"http://maps.google.com/maps?daddr=%1.6f,%1.6f&saddr=Posizione attuale", view.annotation.coordinate.latitude,view.annotation.coordinate.longitude];
NSURL* url = [[NSURL alloc] initWithString:[addr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
[[UIApplication sharedApplication] openURL:url];
}
else {
NSString* addr = [NSString stringWithFormat:@"http://maps.apple.com/maps?daddr=%1.6f,%1.6f&saddr=Posizione attuale", view.annotation.coordinate.latitude,view.annotation.coordinate.longitude];
NSURL* url = [[NSURL alloc] initWithString:[addr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
[[UIApplication sharedApplication] openURL:url];
}