Initial commit of tilelive-mbtiles
This commit is contained in:
72
lib/schema.sql
Normal file
72
lib/schema.sql
Normal file
@@ -0,0 +1,72 @@
|
||||
-- MBTiles schema
|
||||
|
||||
CREATE TABLE IF NOT EXISTS map (
|
||||
zoom_level INTEGER,
|
||||
tile_column INTEGER,
|
||||
tile_row INTEGER,
|
||||
tile_id TEXT,
|
||||
grid_id TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS grid_key (
|
||||
grid_id TEXT,
|
||||
key_name TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS keymap (
|
||||
key_name TEXT,
|
||||
key_json TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS grid_utfgrid (
|
||||
grid_id TEXT,
|
||||
grid_utfgrid BLOB
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS images (
|
||||
tile_data blob,
|
||||
tile_id text
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS metadata (
|
||||
name text,
|
||||
value text
|
||||
);
|
||||
|
||||
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS map_index ON map (zoom_level, tile_column, tile_row);
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS grid_key_lookup ON grid_key (grid_id, key_name);
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS keymap_lookup ON keymap (key_name);
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS grid_utfgrid_lookup ON grid_utfgrid (grid_id);
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS images_id ON images (tile_id);
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS name ON metadata (name);
|
||||
|
||||
|
||||
CREATE VIEW IF NOT EXISTS 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 IF NOT EXISTS 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 IF NOT EXISTS 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;
|
||||
Reference in New Issue
Block a user