osmdroid API解读(五)

osmdroid API解读(五)

osmdroid-android org.osmdroid.tileprovider.tilesource 包

1. ITileSource

瓦片源接口,用于获取一个瓦片源的信息

public interface ITileSource {

    //瓦片源序号标识符
    @Deprecated
    int ordinal();

    //瓦片源的名称
    String name();

    //获取瓦片的路径,文件路径可能事故文件系统中用于存储瓦片的路径,可以包含多个路径。
    String getTileRelativeFilenameString(MapTile aTile);

    //获取特殊路径下瓦片对用的图片对象
    Drawable getDrawable(String aFilePath) throws LowMemoryException;

    //获取输入流中对应的瓦片图片对象
    Drawable getDrawable(InputStream aTileInputStream) throws LowMemoryException;

    //获取该瓦片源中最小、最大的缩放等级
    public int getMinimumZoomLevel();
    public int getMaximumZoomLevel();

    //获取瓦片中图片的像素值比如(256x256的图片返回256)
    public int getTileSizePixels();

    String getCopyrightNotice();
}

1.1 IStyledTileSource

有style属性的瓦片源可以实现这个接口。带有这个接口的瓦片源设置到tile provider,你需要使用clearTileCache()或setTileSource()
以清理tile provider在屏幕上仍然处于老的style的瓦片

public interface IStyledTileSource<T> {

    public void setStyle(T style);

    public void setStyle(String style);

    public T getStyle();
}

1.2 BitmapTileSourceBase

一个实现了ITileSource的瓦片源

public abstract class BitmapTileSourceBase implements ITileSource{
    ...
}

1.2.1 OnlineTileSourceBase

一个用于在线在线瓦片源管理的抽象类瓦片源

public abstract class OnlineTileSourceBase extends BitmapTileSourceBase{
    ...
}

1.2.2 TMSOnlineTileSourceBase

一个类似于OnlineTileSourceBase的在线瓦片源,只是采用的编号系统是Tile Map Service标准,所以解析的方式与OnlineTileSourceBase略有不同,关于瓦片编号系统请查看http://blog.csdn.net/u013896312/article/details/78298265

public abstract class TMSOnlineTileSourceBase extends OnlineTileSourceBase{
    ...
}

1.2.3 XYTileSource

一个简单的以ZXY标准为编号系统的瓦片源

public class XYTileSource extends OnlineTileSourceBase {
    ...
}

1.2.4 FileBasedTileSource

一个极简单的瓦片源,仅用于离线瓦片源。

public class FileBasedTileSource extends XYTileSource{
    ...
}

1.2.5 FileBasedTileSource

用于云端瓦片源的类。

public class CloudmadeTileSource extends OnlineTileSourceBase implements IStyledTileSource<Integer> {
    ...
}

2. 不同瓦片源及其管理

2.1 不同瓦片源

osmdroid为开发者根据在下瓦片源构造了不同的瓦片源类型,并采用TileSourceFactory的方式管理了一部分瓦片源,一方便开发者的使用。主要的瓦片源类型如下:

  • HEREWeGoTileSource
  • MapBoxTileSource
  • MapQuestTileSource
  • QuadTreeTileSource
  • ThunderforestTileSource
  • bing.BingMapTileSource

不同瓦片源的配置方式请查看http://blog.csdn.net/u013896312/article/details/78298265

离线瓦片源配置方式请查看http://blog.csdn.net/u013896312/article/details/78299996

关于瓦片使用疑问请查看http://blog.csdn.net/u013896312/article/details/78300021

2.2 瓦片源的管理

TileSourceFactory用于管理以静态的形式管理多个瓦片源,如下:

public class TileSourceFactory {

    ...

    private static List<ITileSource> mTileSources;
    static {
        mTileSources = new ArrayList<ITileSource>();
        mTileSources.add(MAPNIK);
        mTileSources.add(PUBLIC_TRANSPORT);
        mTileSources.add(HIKEBIKEMAP);
        mTileSources.add(USGS_TOPO);
        mTileSources.add(USGS_SAT);
        mTileSources.add(ChartbundleWAC);
        mTileSources.add(ChartbundleENRH);
        mTileSources.add(ChartbundleENRL);
        mTileSources.add(OpenTopo);
    }

这些类型的瓦片源在工厂类中以公开静态的形式存在,您可以通过 TileSourceFactory.MAPNIK 来获取相应的瓦片源。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值