gpt4 book ai didi

android - 是否可以通过PlaceId打开谷歌地图?

转载 作者:太空宇宙 更新时间:2023-11-03 11:41:40 26 4
gpt4 key购买 nike

我有一个从 Google Places API 获得的地点 ID,目的是通过地点 ID 打开 Google map 应用程序,就像下面类似的方法

Uri gmmIntentUri = Uri.parse(String.format(Locale.ENGLISH,"geo:%f,%f", lat, lon));
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
if (mapIntent.resolveActivity(getPackageManager()) != null) {
startActivity(mapIntent);
}

有办法吗?

当用户从 places API 键入“Eiffel Tower”时,我已经有了纬度和经度。我正在存储这些值以供下次使用(假设我们正在从本地数据库中列出一些访问过的地方,用户点击其中一个,应用程序导航到谷歌地图)

我有几个问题

  1. 如果我使用纬度-经度来指示地点而不是地点 id在谷歌地图上,如果“Cafe XYZ”移动到另一条街会发生什么?

  2. 如果我每次都使用地点 ID 来接收“Cafe XYZ”的最后位置(而不是在我的本地数据库中存储值)该应用程序很容易达到请求限制

所以这些担忧让我想到了一种方法,即只发送地点 ID 谷歌地图(比如发送坐标)

最佳答案

的确,有一种方法可以使用地点 ID 打开 Google map 应用程序。为此,您必须使用 Google Maps URLs 于 2017 年 5 月推出。根据 Google map URL 的文档,您可以为“埃菲尔铁塔”构建以下 URL(地点 ID ChIJLU7jZClu5kcR4PcOOO6p3I0)

https://www.google.com/maps/search/?api=1&query=Eiffel%20Tower&query_place_id=ChIJLU7jZClu5kcR4PcOOO6p3I0

因此,您的代码将类似于

Uri gmmIntentUri = Uri.parse("https://www.google.com/maps/search/?api=1&query=Eiffel%20Tower&query_place_id=ChIJLU7jZClu5kcR4PcOOO6p3I0");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
if (mapIntent.resolveActivity(getPackageManager()) != null) {
startActivity(mapIntent);
}

希望对您有所帮助!

关于android - 是否可以通过PlaceId打开谷歌地图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48474864/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com