我还没有设法找到将两个* .mbtiles文件连接在一起的方法(第一个包含从0-16缩放级别和第二个缩放级别17)。我正在与不同的SQLite管理员工作,但没有mather如何导出和导入database1到数据库1,我没有成功 - 二进制领域总是如此严重损坏,它无法得到image.png回来。将两个mbtiles文件连接在一起
有谁知道将两个mbtiles文件连接在一起的简单程序吗?
我还没有设法找到将两个* .mbtiles文件连接在一起的方法(第一个包含从0-16缩放级别和第二个缩放级别17)。我正在与不同的SQLite管理员工作,但没有mather如何导出和导入database1到数据库1,我没有成功 - 二进制领域总是如此严重损坏,它无法得到image.png回来。将两个mbtiles文件连接在一起
有谁知道将两个mbtiles文件连接在一起的简单程序吗?
如果两个文件具有相同的元数据,如果tiles
表实际上是表,而不是视图,你可以简单地一个数据追加到另一个表:
/* open database1 as main database, then: */
ATTACH 'database2' AS db2;
INSERT INTO tiles SELECT * FROM db2.tiles;
在我来说,我有与@CL错误。解决方案:
Error: cannot modify tiles because it is a view
所以,我的数据库的模式是不同的:
> .schema
CREATE TABLE grid_key (
grid_id TEXT,
key_name TEXT
);
CREATE TABLE grid_utfgrid (
grid_id TEXT,
grid_utfgrid BLOB
);
CREATE TABLE images (
tile_data blob,
tile_id text
);
CREATE TABLE keymap (
key_name TEXT,
key_json TEXT
);
CREATE TABLE map (
zoom_level INTEGER,
tile_column INTEGER,
tile_row INTEGER,
tile_id TEXT,
grid_id TEXT
);
CREATE TABLE metadata (
name text,
value text
);
CREATE VIEW tiles AS
SELECT
map.zoom_level AS zoom_level,
map.tile_column AS tile_column,
map.tile_row AS tile_row,
images.tile_data AS tile_data
FROM map
JOIN images ON images.tile_id = map.tile_id;
CREATE VIEW grids AS
SELECT
map.zoom_level AS zoom_level,
map.tile_column AS tile_column,
map.tile_row AS tile_row,
grid_utfgrid.grid_utfgrid AS grid
FROM map
JOIN grid_utfgrid ON grid_utfgrid.grid_id = map.grid_id;
CREATE VIEW grid_data AS
SELECT
map.zoom_level AS zoom_level,
map.tile_column AS tile_column,
map.tile_row AS tile_row,
keymap.key_name AS key_name,
keymap.key_json AS key_json
FROM map
JOIN grid_key ON map.grid_id = grid_key.grid_id
JOIN keymap ON grid_key.key_name = keymap.key_name;
CREATE UNIQUE INDEX grid_key_lookup ON grid_key (grid_id, key_name);
CREATE UNIQUE INDEX grid_utfgrid_lookup ON grid_utfgrid (grid_id);
CREATE UNIQUE INDEX images_id ON images (tile_id);
CREATE UNIQUE INDEX keymap_lookup ON keymap (key_name);
CREATE UNIQUE INDEX map_index ON map (zoom_level, tile_column, tile_row);
CREATE UNIQUE INDEX name ON metadata (name);
这样你就可以适应的解决方案是这样的:
首先更新元数据,你想要的方式,例如:
sqlite> UPDATE metadata SET value = '7' WHERE name = 'minzoom';
然后插入砖:
sqlite> INSERT OR REPLACE INTO images SELECT * from db2.images;
sqlite> INSERT OR REPLACE INTO map SELECT * from db2.map;
它的工作,thx :) – user2362608
这是如何可以从Linux命令行完成?有任何想法吗? –
错误:无法修改图块,因为它是视图 – toutpt