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

How does Android Studio display an offline map using osmdroid and mbtiles

我们正在开发一款 android 应用程序,该应用程序必须显示一个特定位置(比如 3-7 个相邻岛屿)的离线地图。我们成功展示了整个世界,但那太沉重了。当 phone 离线时,地图缩放有限(变得模糊并开始滞后)。

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

我几周前才开始学习 osm 和 android studio,我需要帮助。很糟糕。请哪位大神赐教

是的,您必须将 mbtiles 文件放入您的 phone 并在您的应用代码中指定正确的路径。

  • 您可以在您提供给应用程序用户下载的服务器上托管磁贴档案
  • 您可以使用 CacheManager 实用程序让您的用户能够在离线前缓存 and/or 给定区域的永久存档图块
  • @Josef Adamcik 提到,如果瓷砖数量少,可以直接放入/assets/YourTileSourceHere。然后告诉 osmdroid 使用匹配该名称的地图图块源
  • 如果 tile archive 比较小,你也可以把它放在 raw 然后在安装时将它复制到 osmdroid 可以读取的地方,比如 /data/data/yourpackagename (这也被称为 app私人存储或复制到 /sdcard/osmdroid 或任何你想要的地方,只需使用 Configuration.getInstance().set.... 方法为其配置路径。

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