Osmdroid&Osmdroid bonuspack如何使用CacheManager

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加载的地图! 现在我希望下一次打开应用程序时,它将直接从本地已经缓存的源代码载入地图,而不是转到在线/网络请求。

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

  • 除非您更改默认地图提供程序实例,否则缓存始终首先被击中。 如果需要的磁贴过期,它将尝试重新下载。
  • 瓷砖到期时间设置在服务器上,并且可以显着地改变每个瓷砖
  • 可以使用osmdroid的Configuration类结构来延长到期时间和/或覆盖到期时间戳
  • 也可以使用缓存管理器在设备上创建一个永久的tile存档。 有这样的法律,服务条款,道德和潜在的道德问题。 请确保您阅读文件打印您提供给您的用户的瓷砖来源。

此外,请注意,缓存管理器现在位于osmdroid-android库中,因为与osmbonuspack的历史部分合并。 有关更多信息,请参阅更改日志和升级指南