Osmdroid& Osmdroid bonuspack如何使用CacheManager

时间:2017-08-25 10:22:32

标签: android kotlin osmdroid

 val cm= CacheManager(map)
    val  mt=MapTile(map.getZoomLevel(),map.scrollX,map.scrollY);
    //(cm.loadTile(TileSourceFactory.MAPNIK,mt)) 
     cm.downloadAreaAsync(this,bb,map.minZoomLevel,map.maxZoomLevel);

这就是我如何下载OSM加载的地图!现在我希望下次应用程序打开时,它会直接从本地已缓存的源加载地图,而不是转到在线/网络请求。

1 个答案:

答案 0 :(得分:1)

你不应该做任何事情,它是自动的。缓存管理器基本上挂钩到MapView的IFileSystemCache提供程序,默认情况下是sqlite数据库。但请记住以下几点。

  • 除非您更改默认地图提供程序实例,否则始终首先命中缓存。如果所需的图块已过期,则会尝试重新下载。
  • 平铺到期时间是设置服务器的,并且每个磁贴可以有所不同,显着
  • 可以使用osmdroid的Configuration类结构延长过期时间和/或覆盖过期时间戳
  • 还可以使用缓存管理器在设备上创建永久磁贴存档。这有法律,服务条款,道德和潜在的道德问题。请务必阅读您为用户提供的图块来源的文件打印。

另外,请注意,由于与osmbonuspack的历史记录部分合并,缓存管理器现在位于osmdroid-android库中。有关详细信息,请参阅change logupgrade guide