【问题标题】:Osmdroid & Osmdroid bonuspack how to use CacheManagerOsmdroid & Osmdroid bonuspack 如何使用 CacheManager
【发布时间】:2017-08-25 10:22:31
【问题描述】:
 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 加载地图的方式!现在我希望下次打开应用程序时,它会直接从本地已缓存的源加载地图,而不是转到在线/网络请求。

【问题讨论】:

    标签: android kotlin osmdroid


    【解决方案1】:

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

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

    另外,请注意缓存管理器现在位于 osmdroid-android 库中,因为它与 osmbonuspack 的历史记录部分合并。请参阅change logupgrade guide 了解更多信息

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多