可以通过PlaceId打开谷歌地图吗?

bla*_*ara 4 android google-maps google-places-api

我有一个从Google Places API获得的地方ID,其目的是通过地址ID打开Goog​​le地图应用,如下面的类似方法

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);
}
Run Code Online (Sandbox Code Playgroud)

有办法吗?

当用户输入例如来自地方API的"艾菲尔铁塔"时,我已经具有纬度,经度.我将这些值存储在下一个用法中(假设我们列出了一些来自本地数据库的访问位置,用户点击其中一个,app导航到Google Maps)

我有一些担忧

  1. 如果我使用纬度 - 经度在Google地图上指示地点而不是地点ID,那么如果"Cafe XYZ"移动到另一条街道会发生什么?

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

所以这些问题让我想到了一种只发送地点ID Google Maps的方式(比如发送坐标)

xom*_*ena 9

实际上,有一种方法可以使用地点ID打开Goog​​le地图应用.为此,你必须使用谷歌地图的网址那是在2017年5推出了继谷歌地图网址,你可以构造以下网址的"埃菲尔铁塔"的文档(地点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);
}
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助!


Car*_*jas 6

这可能太晚了,但我能够使用我们应该拥有的信息来使用纬度/经度坐标以及地点 ID 结果在以下地图中的 LatLog 搜索 CenturyLink 字段之外的信息:

https://www.google.com/maps/search/?api=1&query=47.5951518,-122.3316393&query_place_id=ChIJKxjxuaNqkFQR3CK6O1HNNqY

在此处输入图片说明