如何管理 Android gmaps 覆盖顺序

How to manage Android gmaps overlays order

我想要的目标是添加一个 mbtiles 格式的 TileOverlay 并渲染一些 KML 格式的几何对象(主要是线和多边形)。

问题是 MapBox 地图覆盖了我的 KML 多边形,我不知道如何管理渲染顺序。

通过代码,我尝试先在地图上加载 mbtile,然后是 KML 多边形,但没有成功。

我附上代码以供进一步考虑

        TileOverlayOptions opts = new TileOverlayOptions();
        MapBoxOfflineTileProvider provider = new MapBoxOfflineTileProvider("/path/to/file.mbtiles");
        opts.tileProvider(provider);
        mbTileOverlay = mMap.addTileOverlay(opts);

        KmlLayer layer = null;
        try {
            layer = new KmlLayer(mMap, R.raw.mypolygons, mContext);
            layer.addLayerToMap();
            } catch (XmlPullParserException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

感谢您的帮助

这里是 link 使用的 KML

您的 KML 中定义的多边形没有设置 drawOrder 属性(请参阅 this change),因此 zIndex 设置为默认值 (0) .

由于您没有为 MapBoxOfflineTileProvider 定义 zIndex,因此它也默认为 0。尝试像这样定义 TileOverlayOptions

TileOverlayOptions opts = new TileOverlayOptions();
opts.zIndex(-1);