Android - Osmdroid 6.0.2,从SqlTileWriter切换到TileWriter(本地存储)
Android - Osmdroid 6.0.2, switch from SqlTileWriter to TileWriter (local storage)
我正在尝试在应用程序中使用 Osmdroid。我已经有一个 tiles 服务器并想使用这些 tiles。查看文档使用 setTileSource(new XYTileSource())
奇迹发生了。我不得不提的是,该文档的许多部分都有些陈旧。
上述服务器的磁贴已在应用程序的不同功能中使用。按照逻辑,我想使用相同的缓存位置,这样我就不会在系统中出现重复的图块。再次通过文档,使用 Configuration.getInstance().setOsmdroidTileCase(new File("path"))
再次一切正常。这并不容易,因为文档引用了 Osmdroids 常量 class,它在最新的 stable.
中发生了变化
最后一部分是将 SqlTileWriter
更改为正常的 TileWriter
,因为我们已经从其他功能下载了图像文件。这是我无法弄清楚的地方。我正在使用:
MapTileProviderBasic tileProvider = new MapTileProviderBasic(getActivity(), new XYTileSource("My Tiles", 5, 16, 256, ".png",
new String[]{"SERVER_URL"}), new TileWriter());
mMap.setTileProvider(tileProvider);
事情变得很奇怪。图片实际上正在下载,但地图只显示加载背景。在日志中,我得到 StorageUtils
告诉我存储不是 writable。给app权限了,现在writable,还是没有。我注意到除了 tiles 文件夹之外,已经创建了 .db
文件,但是 tiles table 是空的。我回到上面的代码并将 new TileWriter()
替换为 new SQLTileWriter()
只是为了完整性检查并且地图工作正常,没有任何权限。
所以主要问题。
如何从SQL转为存储TileWriter?
对于可能遇到此问题的任何人,我在 Osmdroid 的 Github 页面中打开了一个问题,我们在该页面上找到并解决了该问题。查看此 link 了解更多信息。
我正在尝试在应用程序中使用 Osmdroid。我已经有一个 tiles 服务器并想使用这些 tiles。查看文档使用 setTileSource(new XYTileSource())
奇迹发生了。我不得不提的是,该文档的许多部分都有些陈旧。
上述服务器的磁贴已在应用程序的不同功能中使用。按照逻辑,我想使用相同的缓存位置,这样我就不会在系统中出现重复的图块。再次通过文档,使用 Configuration.getInstance().setOsmdroidTileCase(new File("path"))
再次一切正常。这并不容易,因为文档引用了 Osmdroids 常量 class,它在最新的 stable.
最后一部分是将 SqlTileWriter
更改为正常的 TileWriter
,因为我们已经从其他功能下载了图像文件。这是我无法弄清楚的地方。我正在使用:
MapTileProviderBasic tileProvider = new MapTileProviderBasic(getActivity(), new XYTileSource("My Tiles", 5, 16, 256, ".png",
new String[]{"SERVER_URL"}), new TileWriter());
mMap.setTileProvider(tileProvider);
事情变得很奇怪。图片实际上正在下载,但地图只显示加载背景。在日志中,我得到 StorageUtils
告诉我存储不是 writable。给app权限了,现在writable,还是没有。我注意到除了 tiles 文件夹之外,已经创建了 .db
文件,但是 tiles table 是空的。我回到上面的代码并将 new TileWriter()
替换为 new SQLTileWriter()
只是为了完整性检查并且地图工作正常,没有任何权限。
所以主要问题。 如何从SQL转为存储TileWriter?
对于可能遇到此问题的任何人,我在 Osmdroid 的 Github 页面中打开了一个问题,我们在该页面上找到并解决了该问题。查看此 link 了解更多信息。