gpt4 book ai didi

android - 加载自定义 .mbtiles 文件时出现 "No data"错误

转载 作者:搜寻专家 更新时间:2023-11-01 08:55:42 25 4
gpt4 key购买 nike

我正在使用 Nutiteq SDK 开发一个 Android map 应用程序,该应用程序需要离线工作并显示一个小城市的 map ,所以我正在使用 .mbtiles 文件。到目前为止,使用 TileMill 下载的 .mbtile 文件效果很好,或者更确切地说是他们的演示项目之一,因为互联网访问有时对我来说是个大问题,出于同样的原因,当我的一个 friend 告诉我他写了一个用于从 tiles .png 文件夹创建 .mbtiles 文件的 Python 脚本,具有完全相同的 .mbtiles 格式。我尝试使用以这种方式获得的文件,但在加载文件时出现以下错误:

10-02 00:11:41.976: DEBUG/hellomap(404): DbMapLayer: Start loading  zoom=10 x=277 y=444
10-02 00:11:41.976: DEBUG/hellomap(404): DbMapLayer: Start loading zoom=10 x=278 y=444
10-02 00:11:41.976: DEBUG/hellomap(404): DbMapLayer: Start loading zoom=10 x=277 y=443
10-02 00:11:41.976: DEBUG/hellomap(404): DbMapLayer: Start loading zoom=10 x=278 y=443
10-02 00:11:41.976: DEBUG/hellomap(404): DbMapLayer: Start loading zoom=10 x=277 y=445
10-02 00:11:41.976: DEBUG/hellomap(404): DbMapLayer: Start loading zoom=10 x=278 y=445
10-02 00:11:41.976: DEBUG/hellomap(404): DbMapLayer task: Start loading zoom=10 x=277 y=444
10-02 00:11:42.340: DEBUG/TileDatabaseHelper(404): not found z=10 x=277 y=579
10-02 00:11:42.340: ERROR/hellomap(404): com.nutiteq.layers.raster.MBTilesMapLayer$DbFetchTileTask: No data.
10-02 00:11:42.536: DEBUG/hellomap(404): DbMapLayer task: Start loading zoom=10 x=278 y=444
10-02 00:11:42.636: DEBUG/TileDatabaseHelper(404): not found z=10 x=278 y=579
10-02 00:11:42.636: ERROR/hellomap(404): com.nutiteq.layers.raster.MBTilesMapLayer$DbFetchTileTask: No data.
10-02 00:11:42.746: DEBUG/hellomap(404): DbMapLayer task: Start loading zoom=10 x=277 y=443
10-02 00:11:42.746: DEBUG/TileDatabaseHelper(404): not found z=10 x=277 y=580
10-02 00:11:42.746: ERROR/hellomap(404): com.nutiteq.layers.raster.MBTilesMapLayer$DbFetchTileTask: No data.
10-02 00:11:42.947: DEBUG/hellomap(404): DbMapLayer task: Start loading zoom=10 x=278 y=443
10-02 00:11:43.186: DEBUG/hellomap(404): onDrawFrame: Last frame time 325ms
10-02 00:11:43.346: DEBUG/TileDatabaseHelper(404): not found z=10 x=278 y=580
10-02 00:11:43.360: ERROR/hellomap(404): com.nutiteq.layers.raster.MBTilesMapLayer$DbFetchTileTask: No data.
10-02 00:11:43.360: DEBUG/hellomap(404): DbMapLayer task: Start loading zoom=10 x=277 y=445
10-02 00:11:43.596: DEBUG/hellomap(404): onDrawFrame: Last frame time 230ms
10-02 00:11:43.706: DEBUG/TileDatabaseHelper(404): not found z=10 x=277 y=578
10-02 00:11:43.706: ERROR/hellomap(404): com.nutiteq.layers.raster.MBTilesMapLayer$DbFetchTileTask: No data.
10-02 00:11:43.706: DEBUG/hellomap(404): DbMapLayer task: Start loading zoom=10 x=278 y=445
10-02 00:11:43.706: DEBUG/TileDatabaseHelper(404): not found z=10 x=278 y=578
10-02 00:11:43.706: ERROR/hellomap(404): com.nutiteq.layers.raster.MBTilesMapLayer$DbFetchTileTask: No data.
10-02 00:11:43.966: DEBUG/hellomap(404): onDrawFrame: Last frame time 249ms

我猜脚本有问题,但事实是他在 MapBox iOS SDK 中使用相同的 .mbtiles 文件没有问题。

我希望使用过 map ,最好是使用过 MBT​​iles 和/或 Nutiteq 的人可以提供一些见解。

谢谢。

最佳答案

从日志来看,请求的 map 图 block 似乎只是从数据库中丢失了。你可以检查它

sqlite3 <file>.mbtiles
sqlite> select * from tiles where zoom_level=10 and tile_column=277 and tile_row=579;

如果返回空数据,则数据不存在。如果它返回一行,则检查文件是否已正确打开。

y 也有可能被翻转,因为 TMS 与常见的网络 map 图 block (如 OSM)具有不同的来源。您可以在应用程序中更改它,MBTilesLayer 有 setTmsY(),请尝试将其设置为 true。

关于android - 加载自定义 .mbtiles 文件时出现 "No data"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19126147/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com