Google Maps API 18.2:如何让绘制的图形重新显示在建筑前方?
Google Maps SDK 18.2.0 图形被遮挡问题解决
这是设计变更,不是Bug。Google在Play Services Maps 18.1.0版本的更新中调整了地图元素的绘制层级,把3D建筑、道路标签这类要素的层级拉高了,导致默认添加的自定义多边形、折线等图形被压在下方。
解决办法
方法一:自定义地图样式调整层级
创建map_style.json文件放在res/raw目录,将建筑和标签的层级调低:
[ { "featureType": "administrative.building", "elementType": "geometry", "stylers": [ { "zIndex": 0 } ] }, { "featureType": "labels", "elementType": "all", "stylers": [ { "zIndex": 0 } ] } ]
然后在代码中加载该样式,同时给自定义图形设置更高的z-index:
// 加载自定义地图样式 googleMap.setMapStyle(MapStyleOptions.loadRawResourceStyle(this, R.raw.map_style)); // 给多边形设置高优先级层级 polygon.setZIndex(10f);
方法二:用Marker自定义视图替代(适合简单图形)
如果你的图形结构简单,可以制作自定义Marker视图。Marker的默认层级高于建筑和标签,不会被遮挡,但这种方式不适用于复杂多边形场景。
方法三:尝试升级到最新版本
可以检查Play Services Maps的最新版本,看是否新增了恢复旧层级逻辑的配置选项,但截至目前,18.2.0之后的版本仍保持该设计,优先推荐方法一。
内容的提问来源于stack exchange,提问作者Henrik Berg
相关产品推荐
相关产品推荐

