2016-08-24 192 views
0

我有不同的.sqlite地圖文件,我想加載MapView。 我只能加載一個sqlite文件。 是否可以加載多個離線地圖?在我的情況下,不同的sqlite文件。OsmDroid加載多個離線地圖

回答

0

總之答案是肯定的。具有諷刺意味的是,我幾天前就自己做了這件事。

如果您使用的是同一個tile源,例如「Mapnik」,跨越多個tile存檔,那麼您不應該執行任何操作。只需使用默認的磁貼供應商,設置setUseDataConnection(false),設置您的磁貼來源以匹配檔案內容的來源,然後您就可以進入比賽。從5.0開始,您還可以使用OfflineTileProvider並明確指定要加載的文件夾文件。

如果您使用的是混合瓷磚來源並想要創建複合材料(例如,忽略所有瓷磚來源名稱並僅顯示第一個可用瓷磚),那麼這也有可能帶來一些詭計。

  1. 首先,覆蓋DatabaseFileArchive並根據需要刪除的瓷磚源名稱檢查刪除檢查瓷磚源名稱
  2. 覆蓋其他存檔類。
  3. 如果您使用的是v5或更新版本,那麼您可以使用ArchiveFileFactory.registerArchiveFileProvider 註冊自定義DatabaseFileArchive實施比v5早?使用自定義磁貼供應商
    1. 此時使用您想要的任何磁貼來源,因爲它在文件歸檔加載程序中被忽略。

在第二種方法中,你可能會遇到了很多瓦片檔案的一些性能問題,所以只是一個供參考。

編輯:還有另一種方法可以使用多個TileOverlay來完成此操作。對於除基礎層以外的所有內容,請將加載線和背景設置爲透明。

+0

我使用OsmDroid v5,我想使用多個TileOverlays ...謝謝 – Albert