我有一个从Google Places API获得的地方ID,其目的是通过地点ID打开Google地图应用,如下面的类似方法
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);
}
有没有办法呢?
我已经有用户类型的纬度,经度,例如来自地方API的“艾菲尔铁塔”。我将这些值存储在下一个用法中(假设我们列出了一些来自本地数据库的访问位置,用户点击其中一个并且应用导航到Google地图)
我有一些顾虑
如果我使用纬度 - 经度来指示一个地方而不是地方ID 在Google地图上,如果“Cafe XYZ”移动到另一条街道,会发生什么
如果我每次都使用地方ID来接收“Cafe XYZ”的最后位置 (而不是我本地数据库中的存储值)应用程序轻松达到请求限制
因此,这些问题使我想到了一种只发送地图ID谷歌地图的方式(如发送坐标)
答案 0 :(得分:8)
确实,有一种方法可以使用地点ID打开Google地图应用。为此,您必须使用2017年5月推出的 Google Maps URLs 。根据Google地图网址的文档,您可以构建以下网址,用于" Eiffel Tower" (地址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);
}
我希望这有帮助!
答案 1 :(得分:1)
这可能已经太晚了,但我能够使其与LatLog之外的其他信息一起使用 使用纬度/经度坐标以及地点ID搜索CenturyLink字段,结果显示在以下地图中: