gpt4 book ai didi

android - 找不到具有 "images"表的 Cordova SQLitePlugin

转载 作者:行者123 更新时间:2023-11-29 12:40:33 26 4
gpt4 key购买 nike

我实际上正在开发一个正在读取(而不是写入).mbtiles 文件的 cordova 应用程序。这是一个用图 block 归档的数据库,用于显示带有传单的离线 map 。

与文件(称之为 test.mbtiles)有关的一切都在工作:下载和打开。但是还有一个大问题。我无法阅读表格。这是我的代码的非功能示例:

getTileUrl: function (tilePoint, callBack) {
var x = tilePoint.x;
var y = tilePoint.y;
var z = tilePoint.z;

var base64Prefix = 'data:image/png;base64,';

var db2 = new window.sqlitePlugin.openDatabase({name: 'test.mbtiles'});

db2.transaction(function(tx) {

tx.executeSql("SELECT tile_data FROM images INNER JOIN map ON images.tile_id = map.tile_id WHERE zoom_level = ? AND tile_column = ? AND tile_row = ?", [z, x, y], function (tx, res) {

if(res.rows.length>0) {
console.log("success");
var src = base64Prefix + res.rows.item(0).tile_data;
callBack(src);
}
else {
console.log("response : no data");
}
}, function (tx, er) {
console.log('error with executeSql : ', er.message);
return;
});
});
}

所以现在每次我尝试使用离线 map (使用设备上存在的 test.mbtiles 中的图 block )时,我都会收到此错误:

error with executeSql :  no such table: images (code 1): , while compiling: SELECT tile_data FROM images INNER JOIN map ON images.tile_id = map.tile_id WHERE zoom_level = ? AND tile_column = ? AND tile_row = ?

所以我假设我得到的文件 test.mbtiles 不好,因为它没有任何 images 表。但那是错误的。我使用 SQLite 数据库浏览器 查看我的数据库方案,发现 images 表在这里并填充了正确的数据。

有没有其他人遇到过这个错误并且知道如何修复它?

顺便说一句,我使用的是 SQLite 插件和 Cordova 的最新版本,主要是在 android 上进行测试(如果 android 可以工作,将移植到 ios)。我尽可能只使用 .js 文件,不添加任何 java 类等(会破坏整个工作流程)。

谢谢。

最佳答案

关于android - 找不到具有 "images"表的 Cordova SQLitePlugin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25056148/

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