32 lines
1.1 KiB
SQL
32 lines
1.1 KiB
SQL
-- Create merged_tiles table for storing merged map tiles at different zoom levels
|
|
-- Zoom level 2: 1x1 tiles (512px original tiles)
|
|
-- Zoom level 1: 2x2 tiles merged into 512px
|
|
-- Zoom level 0: 4x4 tiles merged into 512px
|
|
|
|
CREATE TABLE merged_tiles (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
-- Tile coordinates at this zoom level
|
|
x INTEGER NOT NULL,
|
|
y INTEGER NOT NULL,
|
|
-- Zoom level (0 = most zoomed out, 2 = most zoomed in)
|
|
zoom_level INTEGER NOT NULL,
|
|
-- Number of original tiles merged (1, 4, or 16)
|
|
merge_factor INTEGER NOT NULL,
|
|
-- Dimensions of the merged image
|
|
width INTEGER NOT NULL,
|
|
height INTEGER NOT NULL,
|
|
-- WebP image data (lossless compression)
|
|
webp_data BLOB NOT NULL,
|
|
webp_size INTEGER NOT NULL,
|
|
-- Metadata
|
|
processed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
-- Track which original tiles were merged (for debugging)
|
|
source_tiles TEXT NOT NULL,
|
|
|
|
-- Unique constraint on zoom level + coordinates
|
|
UNIQUE(zoom_level, x, y)
|
|
);
|
|
|
|
-- Index for fast lookups
|
|
CREATE INDEX idx_merged_tiles_zoom_coords ON merged_tiles(zoom_level, x, y);
|