Android Google地图:隐藏标签和显示标记

时间:2014-03-13 08:29:39

标签: javascript android google-maps google-maps-api-3

我想开发一个Android应用程序,我向用户展示带有一些标记的地图。在一个问题的基础上,他们选择一个标记,然后评估为正确或错误。 现在的问题是:

可以使用Google Maps Android API v2

实现
  1. 但问题是我无法隐藏国家,州或大陆的名字。这剥夺了游戏的目的。我可以模糊名字吗?我可以阻止缩放吗?
  2. WebViews中使用WebView和Google地图:

    1. 问题是无法使标记可点击。我怎样才能做到这一点。再加上javascript编码在哪里?我可以为此提供教程吗?
    2. 使用离线地图。

      这是否可能?我可以在上面放置标记,并知道用户点击的位置吗?

      应用程序"地理学习游戏"它做得很好,而谷歌也写在底部,所以他们只使用谷歌地图。 http://goo.gl/obE1fB

      回答以上任何问题都可以解决我的问题。请回复代码。

3 个答案:

答案 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,其他人需要回答这个问题。