Android Studio如何使用osmdroid和mbtiles显示离线地图

时间:2018-07-20 08:21:57

标签: android android-studio openstreetmap osmdroid mbtiles

我们正在开发一个Android应用,该应用必须显示一个特定位置(例如3-7个相邻岛屿)的离线地图。我们成功地展示了整个世界,但这太重了。而且当手机离线时,地图的缩放比例会受到限制(变得模糊并且开始滞后)。

我设想该应用程序类似于Maps.me,其中,如果您处于离线状态,则可以连续放大下载的地图。一直试图绕过https://github.com/osmdroid/osmdroid/wiki/Offline-Map-Tiles,经过两天半的时间,我能够使用Maperitive来提高适应力。 但是从那里开始,我对下一步是什么感到困惑。在github教程中,我被困在这里:https://github.com/osmdroid/osmdroid/wiki/Offline-Map-Tiles#using-offline-tile-archives 这是否意味着我必须手动将mbtiles放置到路径上,还是有办法自动(或通过代码)存储和使用mbtiles?

几周前,我才刚刚开始了解osm和android studio,我需要帮助。不好有人请赐教。

2 个答案:

答案 0 :(得分:3)

  • 您可以将切片存档托管在您提供给应用程序用户下载的服务器上
  • 您可以使用CacheManager实用程序使用户在脱机之前为给定区域缓存和/或永久存档图块
  • 如@Josef Adamcik所述,如果磁贴数量很少,则可以将其直接放在/assets/YourTileSourceHere中。然后告诉osmdroid使用与该名称匹配的地图图块源
  • 如果tile存档很小,您也可以将其放入raw中,然后在安装时将其复制到osmdroid可以读取的位置,例如/data/data/yourpackagename(也称为应用程序专用存储或复制到/ sdcard / osmdroid或任何您想要的地方,只需使用Configuration.getInstance()。set ....方法来为其配置路径。

如果您有改进Wiki的建议,请告诉我

答案 1 :(得分:0)

是的,您必须将mbtiles文件放到手机上,并在应用程序代码中指定正确的路径。