hanchao / MapLite

Android Tile Map, fork from osmdroid
17 stars 3 forks source link

TiandituTileSource缓存问题 #2

Closed apachemaven closed 10 years ago

apachemaven commented 10 years ago

看源码天地图图层的调用是通过CompositeTileSource这个实现的:

···

    public static final OnlineTileSourceBase TIANDITU_VEC = new TiandituTileSource("tianditu_vec",...)

    public static final OnlineTileSourceBase TIANDITU_CVA = new TiandituTileSource("tianditu_cva",...)

    public static final CompositeTileSource TIANDITU_VECTOR = new CompositeTileSource("tianditu_vector", ...       TIANDITU_VEC,TIANDITU_CVA);

    mTileSources.add(TIANDITU_VECTOR);

···

在使用中我又将TIANDITU_VEC添加到了TileSourceFactory里面:


mTileSources.add(TIANDITU_VEC);

然后在使用过程中从TIANDITU_VECTIANDITU_VECTOR之间切换的时候会发现MapView并没有更新,应该是本地缓存的问题吧。

hanchao commented 10 years ago

我这里并未出现MapView不更新的情况。验证代码如下:

        if(mapview.getTileProvider().getTileSource() != TileSourceFactory.TIANDITU_VECTOR){
            mapview.setTileSource(TileSourceFactory.TIANDITU_VECTOR);
        }else{
            mapview.setTileSource(TileSourceFactory.TIANDITU_VEC);
        }

你可以试着清除一下本地的文件缓存。默认情况下缓存文件夹在/sdcard/mutumapapi TIANDITU_VECTORTIANDITU_VEC使用的缓存路径是不一样。

apachemaven commented 10 years ago

不好意思,我自己的原因,我是在程序运行期间手动对SD卡上面缓存的文件进行了更改,现在没有问题了。