我的应用程序需要显示从 A 到 B 的 Google 地图方向,但我不想将 Google 地图放入我的应用程序 - 相反,我想使用 Intent 启动它。这可能吗?如果是,如何?
原文由 Lars D 发布,翻译遵循 CC BY-SA 4.0 许可协议
我的应用程序需要显示从 A 到 B 的 Google 地图方向,但我不想将 Google 地图放入我的应用程序 - 相反,我想使用 Intent 启动它。这可能吗?如果是,如何?
原文由 Lars D 发布,翻译遵循 CC BY-SA 4.0 许可协议
这有点离题,因为你问的是“方向”,但你也可以使用 Android 文档中描述的 Geo URI 方案:
http://developer.android.com/guide/appendix/g-app-intents.html
使用“geo:latitude,longitude”的问题是谷歌地图只以你所在的点为中心,没有任何图钉或标签。
这非常令人困惑,尤其是当您需要指向一个精确的位置或/和询问方向时。
如果您使用查询参数“geo:lat,lon?q=name”来标记您的地理点,它会使用查询进行搜索并忽略纬度/经度参数。
我找到了一种以纬度/经度为中心的地图并显示带有自定义标签的图钉的方法,非常适合显示并且在询问方向或任何其他操作时很有用:
Intent intent = new Intent(android.content.Intent.ACTION_VIEW,
Uri.parse("geo:0,0?q=37.423156,-122.084917 (" + name + ")"));
startActivity(intent);
注意(来自@TheNail):不适用于 Maps v.7(撰写本文时的最新版本)。将忽略坐标并搜索括号中给定名称的对象。另请参阅 带有位置的 Google Maps 7.0.0 的 Intent
原文由 Murphy 发布,翻译遵循 CC BY-SA 3.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
你可以使用这样的东西:
要从当前位置开始导航,请删除
saddr
参数和值。您可以使用实际街道地址而不是纬度和经度。然而,这会给用户一个对话框来选择通过浏览器或谷歌地图打开它。
这将直接在导航模式下启动谷歌地图:
更新
2017 年 5 月,谷歌为通用、跨平台的谷歌地图 URL 推出了新的 API:
https://developers.google.com/maps/documentation/urls/guide
您也可以将 Intent 与新 API 一起使用。