如何在iOS中使用方向和语音打开Goog​​le地图导航网址?

时间:2015-02-12 04:54:10

标签: ios google-maps mapkit

我是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]];
}
}

但是在这里我想打开谷歌地图或苹果地图,用户当前位置和选定位置之间的转弯方向如何可能请给我解决方案。

2 个答案:

答案 0 :(得分:4)

对于Google地图您需要执行以下操作: -

使用此方案请求并显示两个位置之间的路线。您也可以指定运输模式。

<强>参数 saddr:设置方向搜索的起点。这可以是纬度,经度或查询格式的地址。如果它是返回多个结果的查询字符串,则将选择第一个结果。如果该值保留为空,则将使用用户的当前位置。 daddr:设置路线搜索的终点。与saddr具有相同的格式和行为。 directionsmode:运输方式。可以设置为:驾驶,公共交通,骑自行车或步行。

以下是一个示例网址,用于显示Google NYC和JFK机场之间的公交路线:

comgooglemaps:// SADDR =谷歌+公司+ 8 +大道+新+纽约,+ NY&放大器; DADDR =约翰+ F. +肯尼迪+国际+机场+凡+威克+高速公路+牙买加, +新+纽约&安培; directionsmode =中转

enter image description here

下面是一些额外的例子:

&#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

<强>参见: -

&#34; https://developer.apple.com/library/iad/featuredarticles/iPhoneURLScheme_Reference/iPhoneURLScheme_Reference.pdf&#34;

这适用于我,只有我能用你的查询看到的问题是精确的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];

enter image description here

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

enter image description here

答案 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://");
}

享受!!!!