如何管理 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);
我想要的目标是添加一个 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);