我有在https://www.google.com/maps/@41.3825581,2.1704375,16z
地图上定位巴塞罗那的 url,但我发现地址指针没有出来,它只使地图居中。
在我的设备上,我有几个地图应用程序:
- 细胞图谱仪
- 地图.ME
- 谷歌地图
- 谷歌地球
我必须启动的代码Intent
:
Uri uri = Uri.parse("https://www.google.com/maps/@41.3825581,2.1704375,16z");
if (URLUtil.isValidUrl(uri.toString())) {
startActivity( new Intent(Intent.ACTION_VIEW, uri));
}
我可以ActionList
选择,Maps
或者Chrome
,如果Maps
我点击应用程序打开maps
,但它没有向我显示带有指示器的位置,它专注于地标和点。
如果我指出它打开时chrome
,会出现另一个ActionList
,与其他地图应用程序一起出现。
我的疑问是:
- 如何启动
Intent
特定的,以便可以使用地图应用程序打开它? - 如何在地图中显示位置标记?
固定的:
使用标记和标签显示位置
geo:<lat>,<lon>?z=<zoom>&q=<lat>,<lon>(<label>)
显示巴塞罗那的位置
geo:41.3825581,2.1704375?z=16&q=41.3825581,2.1704375(Barcelona)
显示ActionList
所有兼容应用程序的输出以定位位置
Uri uri = Uri.parse("geo:41.3825581,2.1704375?z=16&q=41.3825581,2.1704375(Barcelona)");
startActivity( new Intent(Intent.ACTION_VIEW, uri));
如果您想将位置直接发送到 Google 地图应用程序
Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse("geo:41.3825581,2.1704375?z=16&q=41.3825581,2.1704375(Barcelona)"));
intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity");
startActivity(intent);
根据这个关于SO的英文答案:
表格是这样的:
你可以这样做:
xxxx 代表纬度和经度,14.0f 代表缩放级别。
https://www.google.com/maps/@41.3825581,2.1704375,16z
如何在地图中显示位置标记?
我不知道是否有更好的方法来完成您的要求,但是如果我理解您的问题,您可以尝试以下一些示例,如果您正在寻找它,您可以在您的应用程序中以某种方式实现它,如果您无法获得以下 Act 中的坐标,我可以将它们传递到 Intent 中并在那里检索它们。
如何启动特定 Intent 以便地图应用程序可以打开它?
关于如何使用 Intent 打开应用程序的部分,我不知道这是否是您的意思: