我是iOS中的新手我想制作一个包含地图套件navigation.i的应用程序想要打开谷歌地图的导航网址,如果用户设备有谷歌地图应用程序。如果它不包含然后我想打开Apple地图在这里我写一个像
的代码 -(IBAction)navigationButtonPressed:(id)sender
{
if ([[UIApplication sharedApplication] canOpenURL:
[NSURL URLWithString:@"comgooglemaps://"]])
{
NSString *urlString=[NSString stringWithFormat:@"comgooglemaps://?center=%f,%f&zoom=14&views=traffic",self.latitude,self.longitude];
[[UIApplication sharedApplication] openURL:
[NSURL URLWithString:urlString]];
}
else
{
NSString *string = [NSString stringWithFormat:@"http://maps.apple.com/?ll=%f,%f",self.latitude,self.longitude];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:string]];
}
}
但是在这里我想打开谷歌地图或苹果地图,用户当前位置和选定位置之间的转弯方向如何可能请给我解决方案。
答案 0 :(得分:4)
对于Google地图您需要执行以下操作: -
使用此方案请求并显示两个位置之间的路线。您也可以指定运输模式。
<强>参数强> saddr:设置方向搜索的起点。这可以是纬度,经度或查询格式的地址。如果它是返回多个结果的查询字符串,则将选择第一个结果。如果该值保留为空,则将使用用户的当前位置。 daddr:设置路线搜索的终点。与saddr具有相同的格式和行为。 directionsmode:运输方式。可以设置为:驾驶,公共交通,骑自行车或步行。
以下是一个示例网址,用于显示Google NYC和JFK机场之间的公交路线:
comgooglemaps:// SADDR =谷歌+公司+ 8 +大道+新+纽约,+ NY&放大器; DADDR =约翰+ F. +肯尼迪+国际+机场+凡+威克+高速公路+牙买加, +新+纽约&安培; directionsmode =中转
下面是一些额外的例子:
&#34; comgooglemaps:// SADDR =谷歌,+ 1600 +剧场+大道,+山+视图,+ CA + 94043&安培; DADDR =谷歌+公司,+ 345 +矛+街+圣+旧金山,+ CA&安培;中心= 37.422185,-122.083898和缩放= 10&#34;
&#34; comgooglemaps:// SADDR = 2025 +加西亚+大街,+山+视图,+ CA,+美国及其DADDR =谷歌,+ 1600 +剧场+大道,+山+视图,+ CA, +美国&安培;中心= 37.423725,-122.0877&安培; directionsmode =行走和缩放= 17&#34;
请参阅:
https://developers.google.com/maps/documentation/ios/urlscheme
对于Apple Map,请执行以下操作: - 以下示例显示了用于在旧金山之间提供行车路线的字符串 和库比蒂诺:
&#34; http://maps.apple.com/?daddr=San+Francisco,+CA&saddr=cupertino”
<强>参见强>: -
这适用于我,只有我能用你的查询看到的问题是精确的lat long值(那些看起来是度经纬度经度值,但作为小数纬度经度值传递。
实施例 从唐尼到洛杉矶的路线 NSString * string = [NSString stringWithFormat:@&#34; http://maps.apple.com/? DADDR =%1.6F,1.6F%&安培; SADDR =%1.6F,1.6F%&#34;,34.0522300,-118.2436800,33.9400100,-118.1325700];

但是对于某些方向,它不起作用并显示方向不可用

答案 1 :(得分:3)
您可以使用以下代码;它会出现带有删除注释的选定位置;从谷歌应用程序,您可以导航
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"comgooglemaps://"]]) {
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"comgooglemaps://?center=%f,%f&q=%f,%f",mosqueLocation.latitude,mosqueLocation.longitude, mosqueLocation.latitude,mosqueLocation.longitude]];
[[UIApplication sharedApplication] openURL:url];
} else {
NSLog(@"Can't use comgooglemaps://");
}
享受!!!!