从Android和iPhone上的默认开始位置的浏览器打开谷歌地图应用程序

我有一个移动网站,我有一个链接,可以使用链接格式: http://maps.google.com/maps?saddr=XX&daddr=XX打开谷歌地图本机应用程序在iphone和android的默认开始和结束位置.

我的问题是,我想要能够将起始位置设置为当前位置,并且我希望它可以从Android和iPhone浏览器工作.从我的经验来看,如果我离开saddr空白,在android中默认为当前位置,但在iphone上它只是将起始位置留空.如果我将saddr设置为“当前位置”,则将起始位置设置为iphone上的当前位置,但在android上无法识别该位置.

我的解决方案是使用用户的地理纬度/长坐标作为起始地址.这两个平台都可以成功运行,但是根据用于获取坐标的方法,它可能不如用户当前位置从应用程序的gps那么准确.我想知道是否有一些方法来获得链接,以开始使用正确的“当前位置”来开始本机应用程序.我知道我也可以有条件地检查用户代理,并相应地创建链接,但我希望有一个更优雅的方式来做到这一点.

我只需用我的起始和目标Lng / Lat替换以下字符串中的值

http://maps.google.com/maps?saddr=START_ADD&daddr=DEST_ADD&ll=START_ADD

然后我在Android中启动这样的URL,这将让用户选择使用浏览器或其本机地图应用程序:

String url = "http://maps.google.com/maps?saddr=START_ADD&daddr=DEST_ADD&ll=START_ADD";

startActivity( new Intent(Intent.ACTION_VIEW).setData(Uri.parse(url)));

对于iOS,如果您使用地图前缀的URL://而不是http://,它将在手机上启动地图应用程序,效果非常好.就像是

NSString *url = @"maps://maps.google.com/maps?saddr=START_ADD&daddr=DEST_ADD&ll=START_ADD";

[[UIApplication sharedApplication] openURL:[NSURL urlWithString:url]];

那就是我选择处理它的方式.它可以在任何一种设备上轻松获取当前的Lng / Lat使用各自的位置框架.结果对我来说总是看起来非常准确,您可以指定要求结果的准确程度.电池的准确度越高,电池的消耗就越多,有时需要更长时间才能获得,但这通常是您调整的最终结果,以获得最佳效果.

相关文章
相关标签/搜索