OsmDroid 加载多个离线地图

OsmDroid load multiple offline map

我有不同的 .sqlite 地图文件,我想在 MapView 上加载。 我只能加载一个 sqlite 文件。 是否可以加载多个离线地图?在我的例子中,不同的 sqlite 文件。

简而言之,答案是肯定的。具有讽刺意味的是,我几天前才自己做的。

如果您使用相同的图块源,例如 "Mapnik",跨多个图块档案,那么您不必执行任何操作。只需使用默认的图块提供程序,设置 setUseDataConnection(false),将您的图块源设置为与您的档案中的资源相匹配,您就可以开始比赛了。从 5.0 开始,您还可以使用 OfflineTileProvider 并明确指定要加载的图块存档。

如果您正在使用混合图块源并想要创建一个合成图(例如,忽略所有图块源名称并只显示第一个可用的图块),那么这也可以通过一些技巧实现。

  1. 首先,覆盖 DatabaseFileArchive 并删除对图块源名称的检查
  2. 根据需要覆盖其他存档 类 以删除对图块源名称的检查。
  3. 如果您使用的是 v5 或更高版本,则可以使用 ArchiveFileFactory.registerArchiveFileProvider 注册您的自定义 DatabaseFileArchive 实现 早于 v5?使用自定义磁贴提供程序
    1. 此时使用您想要的任何图块源,因为它在文件存档加载器中被忽略。

使用第二种方法,您可能会 运行 遇到一些与大量切片存档有关的性能问题,因此仅供参考。

编辑:还有另一种方法可以做到这一点,即使用多个 TileOverlay。对于基础层以外的所有内容,将加载线和背景设置为透明。