OSMDroid 切换地图不更新的问题

用OSMDroid加载Google地图的时候 需要有按钮切换不同图层的地图,如果发现调用了mMapView.setTileSource(ITileSource aTileSource)方法的时候发现地图View没有更新的话,可能是因为两个实例化TileSource对象其子类BitmapTileSourceBase这个类的aName成员变量值一样导致的地图在setTileSource出现不更新问题,只要在new XYTileSource的时候构造器的aName在不同的实例化对象中设置为不同的name就好了,望大家注意这点。

package org.osmdroid.tileprovider.tilesource;

import org.osmdroid.util.MapTileIndex;

public class XYTileSource extends OnlineTileSourceBase {
    public XYTileSource(String aName, int aZoomMinLevel, int aZoomMaxLevel, int aTileSizePixels, String aImageFilenameEnding, String[] aBaseUrl) {
        this(aName, aZoomMinLevel, aZoomMaxLevel, aTileSizePixels, aImageFilenameEnding, aBaseUrl, (String)null);
    }

    public XYTileSource(String aName, int aZoomMinLevel, int aZoomMaxLevel, int aTileSizePixels, String aImageFilenameEnding, String[] aBaseUrl, String copyright) {
        super(aName, aZoomMinLevel, aZoomMaxLevel, aTileSizePixels, aImageFilenameEnding, aBaseUrl, copyright);
    }

    public String toString() {
        return this.name();
    }

    public String getTileURLString(long pMapTileIndex) {
        return this.getBaseUrl() + MapTileIndex.getZoom(pMapTileIndex) + "/" + MapTileIndex.getX(pMapTileIndex) + "/" + MapTileIndex.getY(pMapTileIndex) + this.mImageFilenameEnding;
    }
}

猜你喜欢

转载自blog.csdn.net/godoge/article/details/83624109