我的地图上的叠加层大致是这样创建的:

for(String date : dates)
{
MapCustomTileProvider tileProvider = getMapCustomTileProviderForDate(date); // MapCustomeTileProvider extends UrlTileProvider
mMap.addTileOverlay(tileProvider.overlayOptions);
tileProviders.add(tileProvider);
}


在我的代码的后面,我想使其中一些叠加层透明/不可见:

   for (MapTileProvider tileProvider : tileProviders) {

            tileProvider.overlayOptions.visible(false);
}


但是地图不会重绘。

如何强制刷新地图?

顺便说一句,是否可以调整覆盖层的透明度(alpha)?

谢谢 !!!

最佳答案

addTileOverlay方法返回可以使用的TileOverlay对象:

TileOverlay overlay = mMap.addTileOverlay(tileProvider.overlayOptions);
overlay.setVisible(false); // Make the overlay invisible
overlay.remove(); // Remove the tile overlay from the map.


您可能需要将tileProviders更改为List<TileOverlay>以使用叠加层:

List<TileOverlay> tileOverlays = new ArrayList<TileOverlay>
tileOverlays.add(mMap.addTileOverlay(tileProvider.overlayOptions));

// ...

for (TileOverlay tileOverlay : tileOverlays) {
    tileOverlay.setVisible(false);
}

10-06 12:06