Osmdroid & Osmdroid bonuspack 如何使用 CacheManager

Osmdroid & Osmdroid bonuspack how to use 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 加载地图的方式!现在我希望下次打开应用程序时,它会直接从本地已缓存的源加载地图,而不是转到 online/network 请求。

您无需执行任何操作,它是自动的。缓存管理器基本上连接到 MapView 的 IFileSystemCache 提供程序,默认情况下是 sqlite 数据库。但是请记住以下几点。

  • 除非您更改默认的地图提供程序实例,否则总是先命中缓存。如果所需的磁贴已过期,它将尝试重新下载。
  • 图块过期时间由服务器设置,每个图块可能会有很大差异
  • 可以延长到期时间 and/or 使用 osmdroid 的 Configuration class 结构覆盖到期时间戳
  • 也可以使用缓存管理器在设备上创建一个永久的切片存档。这存在法律、服务条款、道德和潜在的伦理问题。请务必阅读文件打印,了解您向用户提供的磁贴源。

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