我从我的Android应用程序启动以下意图,使用Google发布的地图URL格式:
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.google.com/maps/search/?api=1&query=51.196327,-7.325649")));
我要做的就是在地图上查询位置放置一个标记。当我在线时,它工作正常,但如果我离线,我只会收到无法连接的消息。即使我关闭该消息,标记也不会显示。如果我下载我标记的区域的离线地图,甚至会发生这种情况。
离线标记是我应用程序的重要组成部分,所以我很想知道是否有办法通过 URL 放置图钉,即使下面的地图无法加载?如果有一种方法可以只放置标记并绕过任何本地搜索,那将是理想的选择。目前,地图坚持搜索附近不需要的东西。
实际上,可以通过离线移动设备在谷歌地图中放置和显示标记。
您可以使用其自定义 url 方案来执行此操作:
Uri gmmIntentUri = Uri.parse("geo:51.196327,-7.325649?q=51.196327,-7.325649");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
if (mapIntent.resolveActivity(getPackageManager()) != null) {
startActivity(mapIntent);
}
geo:
后,您设置了中心坐标,然后q
参数将执行搜索(就像您正在执行的搜索一样(,如果您将坐标设置为搜索参数,它将在其中显示一个标记。
在kotlin中也有同样的例子:
val gmmIntentUri = Uri.parse("geo:51.196327,-7.325649?q=51.196327,-7.325649")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
if (mapIntent.resolveActivity(packageManager) != null) {
startActivity(mapIntent)
}
您可以提供一个 else 条件来执行某些操作,以防该设备上未安装 google 地图应用。