【发布时间】:2018-10-23 01:55:27
【问题描述】:
我正在使用 Osmdroid 在应用程序中使用。我已经有一个瓷砖服务器并想使用这些瓷砖。查看了使用setTileSource(new XYTileSource()) 的文档,魔法发生了。我不得不提一下,文档在很多部分都有些陈旧。
上述服务器的磁贴已在应用程序中以不同的功能使用。按照逻辑要求,我想使用相同的缓存位置,这样我就不会在系统中拥有重复的切片。再次通过文档,使用Configuration.getInstance().setOsmdroidTileCase(new File("path")),一切都很好。这并不容易,因为文档引用了 Osmdroids 常量类,该类在最新的稳定版本中进行了更改。
最后一部分是从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 告诉我存储不可写。授予应用程序权限,现在可写,仍然没有。我注意到除了tiles文件夹之外,.db文件已经被创建,但是tiles表是空的。我回到上面的代码并用new SQLTileWriter() 替换了new TileWriter(),只是为了进行完整性检查,地图工作得很好,没有任何权限。
所以主要问题。 如何从 SQL 转为存储 TileWriter?
【问题讨论】: