我可以从我的应用程序打开苹果地图应用程序来计算从当前位置到我的地标的路线,它工作正常。
但现在我有一个按给定顺序排列的几个地标的列表,并希望将它们发送到地图应用程序,以用作从第一个地标到最后一个地标的路线之间的目标。这可能吗?
作为替代方案,我可以在 safari 上启动谷歌地图,它允许在 url 中设置多个目标: https ://maps.google.com/maps?saddr=first&daddr=second&daddr=third+to:final&hl=en
我可以从我的应用程序打开苹果地图应用程序来计算从当前位置到我的地标的路线,它工作正常。
但现在我有一个按给定顺序排列的几个地标的列表,并希望将它们发送到地图应用程序,以用作从第一个地标到最后一个地标的路线之间的目标。这可能吗?
作为替代方案,我可以在 safari 上启动谷歌地图,它允许在 url 中设置多个目标: https ://maps.google.com/maps?saddr=first&daddr=second&daddr=third+to:final&hl=en
我使用了下面的代码,它运行了几个月,但现在新的在线版本的谷歌地图不再支持这样请求的多个目标。
因此您需要像这样调整您的网址:https: //www.google.com/maps/dir/longitude,latitude/longitude,latitude
在这里您可以找到有关 url 搜索的更多信息:http: //gearside.com/easily-link-to-locations-and-directions-using-the-new-google-maps/
我目前的解决方案是使用链接在 safari 上打开谷歌地图,我在其中添加 +to: 目标:
for (int i == 0; int i < route.count; i++) {
if (i == 0) {
NSString *start = [NSString stringWithFormat:@"http://maps.google.com/maps?saddr=%f,%f", latitude, longitude];
locationString = start;
}
if (i != 0 && i != route.count - 1) {
NSString *between = [NSString stringWithFormat:@"+to:%f,%f", latitude, longitude];
locationString = [locationString stringByAppendingString:between];
}
if (i == route.count - 1) {
NSString *end = [NSString stringWithFormat:@"&daddr=%f,%f", latitude, longitude];
NSString *type = @"&dirflg=w";
locationString = [locationString stringByAppendingString:end];
locationString = [locationString stringByAppendingString:type];
}
}
NSURL *url = [NSURL URLWithString:locationString];
[[UIApplication sharedApplication] openURL:url];
如果我使用的是 iOS 5 或 6 sSimulator,它会在移动版 maps.google.com 上的 Safari 中打开链接,这可以正常工作
但是当我在 iOS 5 设备上运行它时,并且可能在安装了 Google Maps 的 iOS6 设备上运行它时,链接在 Google Maps 中开始,并且路线绘制错误(尤其是有很多目标)并且中间的目标没有注释......
有人知道如何强制在 Safari 中打开链接吗?