2017-02-03 25 views
0

我在我的项目中使用OSMdroid库,以在我的应用中显示来自我公司本地服务器的地图贴砖(它是带线条和空白背景的形状)。事情是当我在离线模式下使用应用程序时,我浏览地图显示不在缓存中的图块的空灰色网格背景,我想将空灰色网格更改为空白背景图像/图块。OSMdroid - 当没有平铺可用时替换空的网格背景(离线)

我发现实现这一目标是以下唯一的解决方法:

瓷砖覆盖,并设置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(); 

回答

1

您的代码是添加辅助图块叠加的示例。这对于在地图图像上需要另一个栅格图形叠加层时非常有用。

您还可以更改现有和默认切片叠加的加载线和背景。这应该让你去

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

+0

其实几个叠加显示在地图图像的顶部,而没有的伎俩!非常感谢你的间谍! –