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的历史部分合并。 有关更多信息,请参阅更改日志和升级指南