2017-02-03 5 views
0

私のプロジェクトでOSMdroidライブラリを使用して、私の会社のローカルサーバーからマップタイルを表示します。問題は、オフラインモードでアプリを使用すると、キャッシュ内にないタイルの空白の灰色のグリッド背景がマップに表示され、その空の灰色のグリッドを空白の背景画像/タイルに変更したい場合です。OSMdroid - タイルを使用できないときに空のグリッドの背景を置き換えます(オフライン)

私はこれを達成するために見つけた唯一の回避策は以下の通りです:

タイルオーバーレイを追加し、Color.WHITEにsetLoadingBackgroundColorとsetLoadingLineColorを設定し、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

いくつかのオーバーレイを軌道に乗る必要があり、それはトリックをしました!非常にスパイありがとう! –

関連する問題