Android Google Maps URL 查询 - 离线放置标记
Posted
技术标签:
【中文标题】Android Google Maps URL 查询 - 离线放置标记【英文标题】:Android Google Maps URL query - placing marker while offline 【发布时间】:2020-09-13 01:42:49 【问题描述】:我正在使用 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 放置图钉,即使下面的地图无法加载?如果有办法只放置一个标记并绕过任何本地搜索,那将是理想的。目前,地图坚持搜索附近不需要的东西。
【问题讨论】:
【参考方案1】:实际上可以使用离线移动设备在谷歌地图中放置和显示标记。
您可以使用它的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)
您可以提供 else 条件来做某事,以防该设备上未安装谷歌地图应用。
【讨论】:
我刚刚尝试了geo:
URL,它有效 - 谢谢!在一些不同的例子中也看到了它,所以它看起来是一个不错的方法。以上是关于Android Google Maps URL 查询 - 离线放置标记的主要内容,如果未能解决你的问题,请参考以下文章
Android Google Maps v2 从资产中的图像加载 OverlayTile
将来自 url 的图像添加到自定义 InfoWindow google maps v2
无法通过 gradle 导入 com.google.maps.android:android-maps-utils