首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Osmdroid & Osmdroid如何使用CacheManager

Osmdroid & Osmdroid如何使用CacheManager
EN

Stack Overflow用户
提问于 2017-08-25 10:22:31
回答 1查看 703关注 0票数 0
代码语言:javascript
复制
 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加载的地图的!现在,我希望下次应用程序打开时,它将直接从已经缓存的本地源加载映射,而不是进入联机/网络请求。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-26 22:09:35

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

  • 除非更改默认的映射提供程序实例,否则缓存总是首先命中。如果所需的瓷砖过期,它将尝试重新下载。
  • 在服务器上设置瓷砖过期时间,并且每个瓷砖的过期时间都会发生显著变化。
  • 可以使用osmdroid的Configuration类结构来延长过期时间和/或覆盖过期时间戳
  • 还可以使用缓存管理器在设备上创建永久的平铺存档。这就存在着法律、服务条款、道德和潜在的伦理问题。确保您读取了您为用户提供的瓷砖源的文件打印。

另外,由于与osmbonuspack的历史部分合并,缓存管理器现在位于osmdroid-android库中。有关更多信息,请参见变更日志升级指南

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45879313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档