我想开发一个Android应用程序,我向用户展示带有一些标记的地图。在一个问题的基础上,他们选择一个标记,然后评估为正确或错误。 现在的问题是:
可以使用Google Maps Android API v2
:
在WebViews
中使用WebView
和Google地图:
使用离线地图。
这是否可能?我可以在上面放置标记,并知道用户点击的位置吗?
应用程序"地理学习游戏"它做得很好,而谷歌也写在底部,所以他们只使用谷歌地图。 http://goo.gl/obE1fB
回答以上任何问题都可以解决我的问题。请回复代码。
答案 0 :(得分:1)
我找到了答案,并愿意帮助那些在浏览时遇到此问题的人。
使用Google地图无法隐藏国家/地区,大陆等名称,因此OpenStreetMaps叠加层将用于Google地图。
所以代码的其余部分保持不变,只需添加叠加层即可。这有选择地隐藏了必须隐藏的内容。
有关实施此目的的程序,请参阅https://code.google.com/p/osmdroid/。
希望它有所帮助!
答案 1 :(得分:1)
您可以使用GoogleMap.setMapStyle(MapStyleOptions)(method reference)应用地图样式来自定义地图。您可以创建地图样式here(只需移动“标签”进度条以自定义地图标签)。复制地图样式json并使用其内容创建原始资源。
您的onMapReady如下所示:
override fun onMapReady(googleMap: GoogleMap) {
try {
googleMap.setMapStyle(
MapStyleOptions.loadRawResourceStyle(context, R.raw.map_without_labels_style)
)
} catch (e: Resources.NotFoundException) {
// log it
}
}
可以找到更多信息here
答案 2 :(得分:0)
我不是100%确定,但您引用的应用可能正在使用Google Enterprise地图。你必须在这里查看http://www.google.com/enterprise/mapsearth/。
但是,您可以将地图类型设置为satellite以删除标签。我不知道任何模糊地图标签的明确方法。
googleMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
要禁用缩放,您可以执行以下操作。
googleMap.getUiSettings().setZoomControlsEnabled(false);
googleMap.getUiSettings().setZoomGesturesEnabled(false);
至于webview,其他人需要回答这个问题。