- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个移动网站,我有一个链接,可以使用链接格式在 iphone 和 android 上使用默认的开始和结束位置打开 google maps native 应用程序:http://maps.google.com/maps?saddr=XX&daddr=XX .
我的问题是,我希望能够将起始位置设置为当前位置,并且我希望它在 android 和 iphone 浏览器中都能正常工作。根据我的经验,如果我将 saddr 留空,在 android 中这默认为当前位置,但在 iphone 上它只是将开始位置留空。如果我将 saddr 设置为“当前位置”,这会将起始位置设置为 iphone 上的当前位置,但在 android 上它无法识别该位置。
我现在的解决方案是使用用户的地理纬度/经度坐标作为起始地址。这在两个平台上都能成功运行,但取决于用于获取坐标的方法,它可能不如应用程序上 gps 的用户当前位置准确。我想知道是否有某种方法可以获取链接以使用正确的“当前位置”作为起点打开 native 应用程序。我知道我也可以有条件地检查用户代理并相应地创建链接,但我希望有一种更优雅的方式来做到这一点。
最佳答案
我只是将以下字符串中的值替换为我的起点和终点 Lng/Lat
http://maps.google.com/maps?saddr=START_ADD&daddr=DEST_ADD&ll=START_ADD
然后我在 android 中启动这样的 url,这将让用户选择使用浏览器还是他们的本地 map 应用程序:
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 前加上 maps://而不是 http://,它将在手机上启动 map 应用程序,效果非常好。有点像
NSString *url = @"maps://maps.google.com/maps?saddr=START_ADD&daddr=DEST_ADD&ll=START_ADD";
[[UIApplication sharedApplication] openURL:[NSURL urlWithString:url]];
这就是我选择的处理方式。在任一设备上使用各自的位置框架获取当前的 Lng/Lat 都非常容易。结果对我来说也总是很准确,您可以指定您想要结果的准确度。越准确,电池消耗越多,有时需要更长的时间来获取,但这通常是您最终进行调整以获得最佳实现结果的方法。
关于iphone - 在 Android 和 iPhone 上使用默认起始位置从浏览器打开谷歌地图应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6703349/
leaflet:一个开源并且对移动端友好的交互式地图 JavaScript 库 中文文档: https://leafletjs.cn/reference.html 官网(英文): ht
我是一名优秀的程序员,十分优秀!