Android Google 地图 URL 查询 - 离线放置标记

Android Google Maps URL query - placing marker while offline

我正在使用 Google 的 published format for map URLs 从我的 Android 应用启动以下意图:

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.google.com/maps/search/?api=1&query=51.196327,-7.325649")));

我只想在地图上的查询位置放置一个标记。当我在线时它工作正常,但如果我离线,我得到的只是一条 无法连接 消息。即使我关闭消息,标记也不会出现。如果我为我标记的区域下载离线地图,甚至会发生这种情况。

离线标记是我应用程序的重要组成部分,所以我很想知道是否有办法通过 URL 放置图钉,即使下面的地图无法加载?如果有一种方法可以只放置一个标记并绕过任何本地搜索,那将是理想的。目前,地图坚持搜索附近不需要的东西。

实际上可以在移动设备离线的情况下在 google 地图中放置和显示标记。

您可以使用其 custom url scheme:

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)
}

如果 google 地图应用程序未安装在该设备上,您可以提供其他条件来执行某些操作。