带有多个目标的苹果或谷歌地图的 ios 导航
Posted
技术标签:
【中文标题】带有多个目标的苹果或谷歌地图的 ios 导航【英文标题】:ios navigation with apple or google maps with several targets 【发布时间】:2013-04-15 21:56:26 【问题描述】:我可以从我的应用程序中打开苹果地图应用程序来计算从当前位置到我的地标的路线,它工作正常。
但是现在我有一个按给定顺序排列的几个地标的列表,并希望将它们发送到地图应用程序,以用作从第一个地标到最后一个地标的路线之间的目标。这可能吗?
我可以在 safari 上启动 google maps 作为替代方法,它允许在 url 中设置多个目标: https://maps.google.com/maps?saddr=first&daddr=second&daddr=third+to:final&hl=en
【问题讨论】:
【参考方案1】:我使用了下面的代码,它运行了几个月,但现在新的在线版本的谷歌地图不再支持这样请求的多个目标。
因此您需要像这样调整您的网址: 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/
【讨论】:
【参考方案2】:我目前的解决方案是使用链接在 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 中打开链接吗?
【讨论】:
以上是关于带有多个目标的苹果或谷歌地图的 ios 导航的主要内容,如果未能解决你的问题,请参考以下文章
谷歌地图提供谷歌地方 API 或谷歌地图 API 未返回的结果
Android Studio 谷歌地图自定义地图,只想显示自定义地图但利用谷歌地图功能