安卓谷歌地图网址查询 - 离线时放置标记



我从我的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 地图应用。

相关内容

  • 没有找到相关文章