- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个从 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”时,我已经有了纬度和经度。我正在存储这些值以供下次使用(假设我们正在从本地数据库中列出一些访问过的地方,用户点击其中一个,应用程序导航到谷歌地图)
我有几个问题
如果我使用纬度-经度来指示地点而不是地点 id在谷歌地图上,如果“Cafe XYZ”移动到另一条街会发生什么?
如果我每次都使用地点 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/
leaflet:一个开源并且对移动端友好的交互式地图 JavaScript 库 中文文档: https://leafletjs.cn/reference.html 官网(英文): ht
我是一名优秀的程序员,十分优秀!