-(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]]; } }
但在这里我想打开谷歌地图或苹果地图与用户当前位置和选定位置之间的转弯方向如何可能请给我解决方案为此.
对于Google Map您需要执行以下操作: –使用此方案请求并显示两个位置之间的路线.您还可以指定运输模式.
参数
saddr:设置方向搜索的起点.这可以是纬度,经度或查询格式的地址.如果它是返回多个结果的查询字符串,则将选择第一个结果.如果该值保留为空,则将使用用户的当前位置.
daddr:设置路线搜索的终点.与saddr具有相同的格式和行为.
directionsmode:运输方式.可以设置为:驾驶,运输,骑自行车或步行.
下面是一个示例网址,用于显示Google NYC和JFK机场之间的公交路线:
comgooglemaps://?saddr = Google Inc,8th Avenue,New York,NY& daddr = John F. Kennedy International Airport,Van Wyck Expressway,Jamaica,New York& directionsmode = transit
下面还有一些例子:
“comgooglemaps://?saddr = Google,1600 Amphitheatre Parkway,Mountain View,CA 94043& daddr = Google Inc,345 Spear Street,San Francisco,CA& center = 37.422185,-122.083898& zoom = 10”
“comgooglemaps://?saddr = 2025 Garcia Ave,Mountain View,CA,USA& daddr = Google,1600 Amphitheatre Parkway,Mountain View,CA,United States& center = 37.423725,-122.0877& directionsmode = walking& zoom = 17 “
参考:
https://developers.google.com/maps/documentation/ios/urlscheme
对于Apple Map,请执行以下操作: –
以下示例显示了用于在旧金山之间提供行车路线的字符串
和库比蒂诺:
“http://maps.apple.com/?daddr=San+Francisco,+CA&saddr=cupertino”
参考:-
“https://developer.apple.com/library/iad/featuredarticles/iPhoneURLScheme_Reference/iPhoneURLScheme_Reference.pdf”
这适用于我,只有我可以看到你的查询的问题是准确的lat长值(那些看起来是度经纬度经度值,但作为小数纬度经度值传递.
例
从唐尼到洛杉矶的路线
NSString * string = [NSString stringWithFormat:@“http://maps.apple.com/?daddr =%1.6f,%1.6f& saddr =%1.6f,%1.6f”,34.0522300,-118.2436800,33.9400100,-118.1325700];

但是对于某些方向,它不起作用并显示无法使用的路线