OSMdroid - 在没有可用图块时替换空网格背景(离线)

OSMdroid - Replace empty grid background when no tile available (offline)

我在我的项目中使用 OSMdroid 库来在我的应用程序中显示来自我公司本地服务器的地图图块(它是一个带有线条和空白背景的形状)。问题是当我在离线模式下使用该应用程序并且我浏览地图时显示不在缓存中的图块的空灰色网格背景,我想将空灰色网格更改为空白背景 image/tile.

我发现实现此目的的唯一解决方法如下:

添加图块叠加层并将 setLoadingBackgroundColor 和 setLoadingLineColor 设置为 Color.WHITE,然后从 OnlineTileSourceBase 设置来自本地服务器的 TileSource。我知道这不是很有效,那么有没有更好的方法来做到这一点?提前致谢!

    final ITileSource tileSource = new OnlineTileSourceBase(...)
    {
        @Override
        public String getTileURLString(MapTile aTile) {
            return getBaseUrl()  + aTile.getX() + "+" + aTile.getY() + "+" + aTile.getZoomLevel();
        }
    };

    tileProvider = new MapTileProviderBasic(context, tileSource);

    tilesOverlay = new TilesOverlay(tileProvider , context);
    tilesOverlay.setLoadingBackgroundColor(Color.WHITE);
    tilesOverlay.setLoadingLineColor(Color.WHITE);

    this.map.getOverlays().add(tilesOverlay);
    this.map.setTileSource(tileProvider.getTileSource());

    map.invalidate();

您的代码是添加辅助磁贴叠加层的示例。当您需要在地图图像之上叠加另一个栅格图形时,这很有用。

您还可以更改现有和默认图块叠加层的加载线和背景。这应该让你继续

mMapView.getOverlayManager().getTilesOverlay().setLoadingBackgroundColor(Color.TRANSPARENT); mMapView.getOverlayManager().getTilesOverlay().setLoadingLineColor(Color.TRANSPARENT);