gpt4 book ai didi

google-maps - 在 iOS 6 中打开带有当前位置和方向的 map

转载 作者:行者123 更新时间:2023-12-04 01:29:44 26 4
gpt4 key购买 nike

我正在构建一个应用程序,它可以打开 map 应用程序,其中包含从用户当前位置到另一个位置的方向。代码如下所示:

- (id)resolveDirectionsFromCoordinate:(CLLocationCoordinate2D)startCoordinate toCoordinate:(CLLocationCoordinate2D)endCoordinate
{
NSString* url = [NSString stringWithFormat: @"http://maps.google.com/maps?saddr=%f,%f&daddr=%f,%f",
startCoordinate.latitude, startCoordinate.longitude,
endCoordinate.latitude, endCoordinate.longitude];
[[UIApplication sharedApplication] openURL: [NSURL URLWithString: url]];

return nil;
}

Thos 在 iOS 5.x 中运行良好。然而,在 iOS 6 中,这会带来 Safari,因为 Maps 不再使用 Google Maps。

有谁知道我应该在 iOS 6 中调用哪个 URL?

最佳答案

Apple Documentation建议使用等效的 maps.apple.com URL Scheme

所以用

http://maps.apple.com/maps?saddr=%f,%f&daddr=%f,%f

代替
http://maps.google.com/maps?saddr=%f,%f&daddr=%f,%f

要向后兼容,您的代码将是
    NSString* versionNum = [[UIDevice currentDevice] systemVersion];
NSString *nativeMapScheme = @"maps.apple.com";
if ([versionNum compare:@"6.0" options:NSNumericSearch] == NSOrderedAscending){
nativeMapScheme = @"maps.google.com";
}
NSString* url = [NSString stringWithFormat: @"http://%@/maps?saddr=%f,%f&daddr=%f,%f", nativeMapScheme startCoordinate.latitude, startCoordinate.longitude,
endCoordinate.latitude, endCoordinate.longitude];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];

或者,您也可以使用 maps://saddr=%f,%f&daddr=%f,%f方案,但它似乎不支持全范围的参数。

关于google-maps - 在 iOS 6 中打开带有当前位置和方向的 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11511846/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com