Pio*_*otr 22
Osmdroid中的地图图块由地图图块提供者提供.Osmdroid使用的默认tile提供程序是MapTileProviderBasic.此提供程序扩展了MapTileProviderArray,这意味着它是一些其他tile提供程序的数组 - 当请求tile时,这些tile提供程序将被逐个询问tile图像,直到其中一个提供它.看一下构造函数MapTileProviderBasic:
public MapTileProviderBasic(final IRegisterReceiver pRegisterReceiver,
final INetworkAvailablityCheck aNetworkAvailablityCheck,
final ITileSource pTileSource) {
super(pTileSource, pRegisterReceiver);
final TileWriter tileWriter = new TileWriter();
final MapTileFilesystemProvider fileSystemProvider =
new MapTileFilesystemProvider(pRegisterReceiver, pTileSource);
mTileProviderList.add(fileSystemProvider);
final MapTileFileArchiveProvider archiveProvider =
new MapTileFileArchiveProvider(pRegisterReceiver, pTileSource);
mTileProviderList.add(archiveProvider);
final MapTileDownloader downloaderProvider =
new MapTileDownloader(pTileSource, tileWriter, aNetworkAvailablityCheck);
mTileProviderList.add(downloaderProvider);
}
Run Code Online (Sandbox Code Playgroud)
按顺序将三个地图图块提供程序添加到提供程序数组中:
MapTileFilesystemProvider - 从文件系统(SD卡目录)提供切片MapTileFileArchiveProvider - 从文件系统中的存档提供切片MapTileDownloader - 通过从Internet下载(例如从OSM服务器)提供磁贴因此,MapTileProviderBasic首先在文件系统中查找给定的磁贴,如果磁贴不可用,则它在归档文件中查找它,如果它不可用,则再次从Internet下载磁贴.
好的,这是默认机制.如果要更改此机制以查找存储在数据库中的切片,则可以创建类似于自己的类MapTileProviderBasic.因此,您的类也可以扩展MapTileProviderArray并在构造函数中使用其他提供程序.在Osmdroid中有一个类DatabaseFileArchive,它可以帮助您从数据库中读取切片.
创建自己的磁贴提供程序后,您应该使用它而不是默认的.地图图块提供程序附加到MapView.一些施工人员MapView采取MapTileProviderBase作为一个参数-你可以用它们的一个附加自己的供应商.
| 归档时间: |
|
| 查看次数: |
17135 次 |
| 最近记录: |