This is an automated email from the ASF dual-hosted git repository. bchapuis pushed a commit to branch basemaps-schema in repository https://gitbox.apache.org/repos/asf/incubator-baremaps.git
commit ef2bf7c04caed3d354004a1c5cf40fe521fbe0ec Author: Bertil Chapuis <[email protected]> AuthorDate: Sun Jan 5 17:46:11 2025 +0100 Improve the amenity layer --- basemap/layers/amenity/create.sql | 444 ++++++++++++++++++++++++++++++++++++- basemap/layers/amenity/overlay.js | 1 - basemap/layers/amenity/refresh.sql | 128 +++++++++++ basemap/layers/amenity/tileset.js | 4 +- 4 files changed, 573 insertions(+), 4 deletions(-) diff --git a/basemap/layers/amenity/create.sql b/basemap/layers/amenity/create.sql index 9d9b3b344..2ff023d21 100644 --- a/basemap/layers/amenity/create.sql +++ b/basemap/layers/amenity/create.sql @@ -13,8 +13,450 @@ -- See the License for the specific language governing permissions and -- limitations under the License. +-- Zoom levels 20 to 13 + CREATE OR REPLACE VIEW osm_amenity AS SELECT id, tags, geom FROM osm_way +WHERE tags ? 'amenity' +UNION +SELECT id, tags, geom +FROM osm_relation +WHERE tags ? 'amenity'; + +CREATE OR REPLACE VIEW osm_amenity_z20 AS +SELECT id, tags, geom +FROM osm_amenity; + +CREATE OR REPLACE VIEW osm_amenity_z19 AS +SELECT id, tags, geom +FROM osm_amenity; + +CREATE OR REPLACE VIEW osm_amenity_z18 AS +SELECT id, tags, geom +FROM osm_amenity; + +CREATE OR REPLACE VIEW osm_amenity_z17 AS +SELECT id, tags, geom +FROM osm_amenity; + +CREATE OR REPLACE VIEW osm_amenity_z16 AS +SELECT id, tags, geom +FROM osm_amenity; + +CREATE OR REPLACE VIEW osm_amenity_z15 AS +SELECT id, tags, geom +FROM osm_amenity; + +CREATE OR REPLACE VIEW osm_amenity_z14 AS +SELECT id, tags, geom +FROM osm_amenity; + +CREATE OR REPLACE VIEW osm_amenity_z13 AS +SELECT id, tags, geom +FROM osm_amenity; + +-- Zoom level 12 + +DROP MATERIALIZED VIEW IF EXISTS osm_amenity_z12_filtered CASCADE; +CREATE MATERIALIZED VIEW IF NOT EXISTS osm_amenity_z12_filtered AS +SELECT tags -> 'amenity' AS tag, + st_buffer( + st_simplifypreservetopology( + geom, + 78270 / power(2, 12) + ), + 78270 / power(2, 12) * 1.1, + 'join=mitre' + ) AS geom +FROM osm_amenity +WHERE geom IS NOT NULL + AND NOT ST_IsEmpty(geom) + AND st_area(geom) > power(78270 / power(2, 12), 2) * 32 +WITH NO DATA; + +DROP MATERIALIZED VIEW IF EXISTS osm_amenity_z12 CASCADE; +CREATE MATERIALIZED VIEW IF NOT EXISTS osm_amenity_z12 AS +WITH clustered AS (SELECT tag, + geom, + st_clusterdbscan(geom, 0, 0) OVER (PARTITION BY tag) AS cluster + FROM osm_amenity_z12_filtered) +SELECT row_number() OVER () AS id, + jsonb_build_object('amenity', tag) AS tags, + st_simplifypreservetopology( + (st_dump( + st_buffer( + st_collect(geom), + -78270 / power(2, 12), + 'join=mitre' + ) + )).geom, + 78270 / power(2, 12) + ) AS geom +FROM clustered +WHERE geom IS NOT NULL + AND NOT ST_IsEmpty(geom) + AND st_area(geom) > power(78270 / power(2, 12), 2) * 32 +GROUP BY tag, cluster +WITH NO DATA; + +-- Zoom level 11 + +DROP MATERIALIZED VIEW IF EXISTS osm_amenity_z11_filtered CASCADE; +CREATE MATERIALIZED VIEW IF NOT EXISTS osm_amenity_z11_filtered AS +SELECT tags -> 'amenity' AS tag, + st_buffer( + st_simplifypreservetopology( + geom, + 78270 / power(2, 11) + ), + 78270 / power(2, 11) * 1.1, + 'join=mitre' + ) AS geom +FROM osm_amenity_z12 +WHERE geom IS NOT NULL + AND NOT ST_IsEmpty(geom) + AND st_area(geom) > power(78270 / power(2, 11), 2) * 32 +WITH NO DATA; + +DROP MATERIALIZED VIEW IF EXISTS osm_amenity_z11 CASCADE; +CREATE MATERIALIZED VIEW IF NOT EXISTS osm_amenity_z11 AS +WITH clustered AS (SELECT tag, + geom, + st_clusterdbscan(geom, 0, 0) OVER (PARTITION BY tag) AS cluster + FROM osm_amenity_z11_filtered) +SELECT row_number() OVER () AS id, + jsonb_build_object('amenity', tag) AS tags, + st_simplifypreservetopology( + (st_dump( + st_buffer( + st_collect(geom), + -78270 / power(2, 11), + 'join=mitre' + ) + )).geom, + 78270 / power(2, 11) + ) AS geom +FROM clustered +WHERE geom IS NOT NULL + AND NOT ST_IsEmpty(geom) + AND st_area(geom) > power(78270 / power(2, 11), 2) * 32 +GROUP BY tag, cluster +WITH NO DATA; + +-- Zoom level 10 + +DROP MATERIALIZED VIEW IF EXISTS osm_amenity_z10_filtered CASCADE; +CREATE MATERIALIZED VIEW IF NOT EXISTS osm_amenity_z10_filtered AS +SELECT tags -> 'amenity' AS tag, + st_buffer( + st_simplifypreservetopology( + geom, + 78270 / power(2, 10) + ), + 78270 / power(2, 10) * 1.1, + 'join=mitre' + ) AS geom +FROM osm_amenity_z11 +WHERE geom IS NOT NULL + AND NOT ST_IsEmpty(geom) + AND st_area(geom) > power(78270 / power(2, 10), 2) * 32 +WITH NO DATA; + +DROP MATERIALIZED VIEW IF EXISTS osm_amenity_z10 CASCADE; +CREATE MATERIALIZED VIEW IF NOT EXISTS osm_amenity_z10 AS +WITH clustered AS (SELECT tag, + geom, + st_clusterdbscan(geom, 0, 0) OVER (PARTITION BY tag) AS cluster + FROM osm_amenity_z10_filtered) +SELECT row_number() OVER () AS id, + jsonb_build_object('amenity', tag) AS tags, + st_simplifypreservetopology( + (st_dump( + st_buffer( + st_collect(geom), + -78270 / power(2, 10), + 'join=mitre' + ) + )).geom, + 78270 / power(2, 10) + ) AS geom +FROM clustered +WHERE geom IS NOT NULL + AND NOT ST_IsEmpty(geom) + AND st_area(geom) > power(78270 / power(2, 10), 2) * 32 +GROUP BY tag, cluster +WITH NO DATA; + +-- Zoom level 9 + +DROP MATERIALIZED VIEW IF EXISTS osm_amenity_z9 CASCADE; +CREATE MATERIALIZED VIEW IF NOT EXISTS osm_amenity_z9 AS +WITH filtered AS (SELECT tags -> 'amenity' AS tag, + st_buffer( + st_simplifypreservetopology( + geom, + 78270 / power(2, 9) + ), + 78270 / power(2, 9) * 1.1, + 'join=mitre' + ) AS geom + FROM osm_amenity_z10 + WHERE geom IS NOT NULL + AND NOT ST_IsEmpty(geom) + AND st_area(geom) > power(78270 / power(2, 9), 2) * 32), + clustered AS (SELECT tag, + geom, + st_clusterdbscan(geom, 0, 0) OVER (PARTITION BY tag) AS cluster + FROM filtered) +SELECT row_number() OVER () AS id, + jsonb_build_object('amenity', tag) AS tags, + st_simplifypreservetopology( + (st_dump( + st_buffer( + st_collect(geom), + -78270 / power(2, 9), + 'join=mitre' + ) + )).geom, + 78270 / power(2, 9) + ) AS geom +FROM clustered +WHERE geom IS NOT NULL + AND NOT ST_IsEmpty(geom) + AND st_area(geom) > power(78270 / power(2, 9), 2) * 32 +GROUP BY tag, cluster +WITH NO DATA; + +-- Zoom level 8 + +DROP MATERIALIZED VIEW IF EXISTS osm_amenity_z8 CASCADE; +CREATE MATERIALIZED VIEW IF NOT EXISTS osm_amenity_z8 AS +WITH filtered AS (SELECT tags -> 'amenity' AS tag, + st_buffer( + st_simplifypreservetopology( + geom, + 78270 / power(2, 8) + ), + 78270 / power(2, 8) * 1.1, + 'join=mitre' + ) AS geom + FROM osm_amenity_z9 + WHERE geom IS NOT NULL + AND NOT ST_IsEmpty(geom) + AND st_area(geom) > power(78270 / power(2, 8), 2) * 32), + clustered AS (SELECT tag, + geom, + st_clusterdbscan(geom, 0, 0) OVER (PARTITION BY tag) AS cluster + FROM filtered) +SELECT row_number() OVER () AS id, + jsonb_build_object('amenity', tag) AS tags, + st_simplifypreservetopology( + (st_dump( + st_buffer( + st_collect(geom), + -78270 / power(2, 8), + 'join=mitre' + ) + )).geom, + 78270 / power(2, 8) + ) AS geom +FROM clustered +WHERE geom IS NOT NULL + AND NOT ST_IsEmpty(geom) + AND st_area(geom) > power(78270 / power(2, 8), 2) * 32 +GROUP BY tag, cluster +WITH NO DATA; + +-- Zoom level 7 + +DROP MATERIALIZED VIEW IF EXISTS osm_amenity_z7 CASCADE; +CREATE MATERIALIZED VIEW IF NOT EXISTS osm_amenity_z7 AS +WITH filtered AS (SELECT tags -> 'amenity' AS tag, + st_buffer( + st_simplifypreservetopology( + geom, + 78270 / power(2, 7) + ), + 78270 / power(2, 7) * 1.1, + 'join=mitre' + ) AS geom + FROM osm_amenity_z8 + WHERE geom IS NOT NULL + AND NOT ST_IsEmpty(geom) + AND st_area(geom) > power(78270 / power(2, 7), 2) * 32), + clustered AS (SELECT tag, + geom, + st_clusterdbscan(geom, 0, 0) OVER (PARTITION BY tag) AS cluster + FROM filtered) +SELECT row_number() OVER () AS id, + jsonb_build_object('amenity', tag) AS tags, + st_simplifypreservetopology( + (st_dump( + st_buffer( + st_collect(geom), + -78270 / power(2, 7), + 'join=mitre' + ) + )).geom, + 78270 / power(2, 7) + ) AS geom +FROM clustered +WHERE geom IS NOT NULL + AND NOT ST_IsEmpty(geom) + AND st_area(geom) > power(78270 / power(2, 7), 2) * 32 +GROUP BY tag, cluster +WITH NO DATA; + +-- Zoom level 6 + +DROP MATERIALIZED VIEW IF EXISTS osm_amenity_z6 CASCADE; +CREATE MATERIALIZED VIEW IF NOT EXISTS osm_amenity_z6 AS +WITH filtered AS (SELECT tags -> 'amenity' AS tag, + st_buffer( + st_simplifypreservetopology( + geom, + 78270 / power(2, 6) + ), + 78270 / power(2, 6) * 1.1, + 'join=mitre' + ) AS geom + FROM osm_amenity_z7 + WHERE geom IS NOT NULL + AND NOT ST_IsEmpty(geom) + AND st_area(geom) > power(78270 / power(2, 6), 2) * 32), + clustered AS (SELECT tag, + geom, + st_clusterdbscan(geom, 0, 0) OVER (PARTITION BY tag) AS cluster + FROM filtered) +SELECT row_number() OVER () AS id, + jsonb_build_object('amenity', tag) AS tags, + st_simplifypreservetopology( + (st_dump( + st_buffer( + st_collect(geom), + -78270 / power(2, 6), + 'join=mitre' + ) + )).geom, + 78270 / power(2, 6) + ) AS geom +FROM clustered +WHERE geom IS NOT NULL + AND NOT ST_IsEmpty(geom) + AND st_area(geom) > power(78270 / power(2, 6), 2) * 32 +GROUP BY tag, cluster +WITH NO DATA; + +-- Zoom level 5 + +DROP MATERIALIZED VIEW IF EXISTS osm_amenity_z5 CASCADE; +CREATE MATERIALIZED VIEW IF NOT EXISTS osm_amenity_z5 AS +WITH filtered AS (SELECT tags -> 'amenity' AS tag, + st_buffer( + st_simplifypreservetopology( + geom, + 78270 / power(2, 5) + ), + 78270 / power(2, 5) * 1.1, + 'join=mitre' + ) AS geom + FROM osm_amenity_z6 + WHERE geom IS NOT NULL + AND NOT ST_IsEmpty(geom) + AND st_area(geom) > power(78270 / power(2, 5), 2) * 32), + clustered AS (SELECT tag, + geom, + st_clusterdbscan(geom, 0, 0) OVER (PARTITION BY tag) AS cluster + FROM filtered) +SELECT row_number() OVER () AS id, + jsonb_build_object('amenity', tag) AS tags, + st_simplifypreservetopology( + (st_dump( + st_buffer( + st_collect(geom), + -78270 / power(2, 5), + 'join=mitre' + ) + )).geom, + 78270 / power(2, 5) + ) AS geom +FROM clustered +WHERE geom IS NOT NULL + AND NOT ST_IsEmpty(geom) + AND st_area(geom) > power(78270 / power(2, 5), 2) * 32 +GROUP BY tag, cluster +WITH NO DATA; + +-- Zoom level 4 + +DROP MATERIALIZED VIEW IF EXISTS osm_amenity_z4 CASCADE; +CREATE MATERIALIZED VIEW IF NOT EXISTS osm_amenity_z4 AS +WITH filtered AS (SELECT tags -> 'amenity' AS tag, + st_buffer( + st_simplifypreservetopology( + geom, + 78270 / power(2, 4) + ), + 78270 / power(2, 4) * 1.1, + 'join=mitre' + ) AS geom + FROM osm_amenity_z6 + WHERE geom IS NOT NULL + AND NOT ST_IsEmpty(geom) + AND st_area(geom) > power(78270 / power(2, 4), 2) * 32), + clustered AS (SELECT tag, + geom, + st_clusterdbscan(geom, 0, 0) OVER (PARTITION BY tag) AS cluster + FROM filtered) +SELECT row_number() OVER () AS id, + jsonb_build_object('amenity', tag) AS tags, + st_simplifypreservetopology( + (st_dump( + st_buffer( + st_collect(geom), + -78270 / power(2, 4), + 'join=mitre' + ) + )).geom, + 78270 / power(2, 4) + ) AS geom +FROM clustered +WHERE geom IS NOT NULL + AND NOT ST_IsEmpty(geom) + AND st_area(geom) > power(78270 / power(2, 4), 2) * 32 +GROUP BY tag, cluster +WITH NO DATA; + +-- Zoom level 3 + +DROP MATERIALIZED VIEW IF EXISTS osm_amenity_z3 CASCADE; +CREATE MATERIALIZED VIEW IF NOT EXISTS osm_amenity_z3 AS +SELECT id, tags, st_simplifypreservetopology(geom, 78270 / power(2, 3)) AS geom +FROM osm_amenity_z4 +WHERE geom IS NOT NULL + AND NOT ST_IsEmpty(geom) + AND st_area(geom) > power(78270 / power(2, 3), 2) * 16 +WITH NO DATA; + +-- Zoom level 2 + +DROP MATERIALIZED VIEW IF EXISTS osm_amenity_z2 CASCADE; +CREATE MATERIALIZED VIEW IF NOT EXISTS osm_amenity_z2 AS +SELECT id, tags, st_simplifypreservetopology(geom, 78270 / power(2, 2)) AS geom +FROM osm_amenity_z4 +WHERE geom IS NOT NULL + AND NOT ST_IsEmpty(geom) + AND st_area(geom) > power(78270 / power(2, 2), 2) * 16 +WITH NO DATA; + +-- Zoom level 1 + +DROP MATERIALIZED VIEW IF EXISTS osm_amenity_z1 CASCADE; +CREATE MATERIALIZED VIEW IF NOT EXISTS osm_amenity_z1 AS +SELECT id, tags, st_simplifypreservetopology(geom, 78270 / power(2, 1)) AS geom +FROM osm_amenity_z4 WHERE geom IS NOT NULL - AND tags ? 'amenity'; \ No newline at end of file + AND NOT ST_IsEmpty(geom) + AND st_area(geom) > power(78270 / power(2, 1), 2) * 16 +WITH NO DATA; diff --git a/basemap/layers/amenity/overlay.js b/basemap/layers/amenity/overlay.js index 699960b56..cb9e235b3 100644 --- a/basemap/layers/amenity/overlay.js +++ b/basemap/layers/amenity/overlay.js @@ -30,7 +30,6 @@ let directives = [ ], ], 'fill-color': theme.amenityParkingOverlayFillColor, - 'fill-outline-color': theme.amenityParkingOverlayOutlineColor }, ]; diff --git a/basemap/layers/amenity/refresh.sql b/basemap/layers/amenity/refresh.sql new file mode 100644 index 000000000..b0d83fd13 --- /dev/null +++ b/basemap/layers/amenity/refresh.sql @@ -0,0 +1,128 @@ +-- Licensed to the Apache Software Foundation (ASF) under one or more +-- contributor license agreements. See the NOTICE file distributed with +-- this work for additional information regarding copyright ownership. +-- The ASF licenses this file to you under the Apache License, Version 2.0 +-- (the "License"); you may not use this file except in compliance with +-- the License. You may obtain a copy of the License at +-- +-- http://www.apache.org/licenses/LICENSE-2.0 +-- +-- Unless required by applicable law or agreed to in writing, software +-- distributed under the License is distributed on an "AS IS" BASIS, +-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +-- See the License for the specific language governing permissions and +-- limitations under the License. + +-- Zoom level 12 + +DROP INDEX IF EXISTS osm_amenity_z12_filtered_geom_idx; +DROP INDEX IF EXISTS osm_amenity_z12_filtered_tags_idx; +REFRESH MATERIALIZED VIEW osm_amenity_z12_filtered; +CREATE INDEX IF NOT EXISTS osm_amenity_z12_filtered_geom_idx ON osm_amenity_z12_filtered USING GIST (geom); +CREATE INDEX IF NOT EXISTS osm_amenity_z12_filtered_tags_idx ON osm_amenity_z12_filtered (tag); + +DROP INDEX IF EXISTS osm_amenity_z12_geom_idx; +DROP INDEX IF EXISTS osm_amenity_z12_tags_idx; +REFRESH MATERIALIZED VIEW osm_amenity_z12; +CREATE INDEX IF NOT EXISTS osm_amenity_z12_geom_idx ON osm_amenity_z12 USING GIST (geom); +CREATE INDEX IF NOT EXISTS osm_amenity_z12_tags_idx ON osm_amenity_z12 USING GIN (tags); + +-- Zoom level 11 + +DROP INDEX IF EXISTS osm_amenity_z11_filtered_geom_idx; +DROP INDEX IF EXISTS osm_amenity_z11_filtered_tags_idx; +REFRESH MATERIALIZED VIEW osm_amenity_z11_filtered; +CREATE INDEX IF NOT EXISTS osm_amenity_z11_filtered_geom_idx ON osm_amenity_z11_filtered USING GIST (geom); +CREATE INDEX IF NOT EXISTS osm_amenity_z11_filtered_tags_idx ON osm_amenity_z11_filtered (tag); + +DROP INDEX IF EXISTS osm_amenity_z11_geom_idx; +DROP INDEX IF EXISTS osm_amenity_z11_tags_idx; +REFRESH MATERIALIZED VIEW osm_amenity_z11; +CREATE INDEX IF NOT EXISTS osm_amenity_z11_geom_idx ON osm_amenity_z11 USING GIST (geom); +CREATE INDEX IF NOT EXISTS osm_amenity_z11_tags_idx ON osm_amenity_z11 USING GIN (tags); + +-- Zoom level 10 + +DROP INDEX IF EXISTS osm_amenity_z10_filtered_geom_idx; +DROP INDEX IF EXISTS osm_amenity_z10_filtered_tags_idx; +REFRESH MATERIALIZED VIEW osm_amenity_z10_filtered; +CREATE INDEX IF NOT EXISTS osm_amenity_z10_filtered_geom_idx ON osm_amenity_z10_filtered USING GIST (geom); +CREATE INDEX IF NOT EXISTS osm_amenity_z10_filtered_tags_idx ON osm_amenity_z10_filtered (tag); + +DROP INDEX IF EXISTS osm_amenity_z10_geom_idx; +DROP INDEX IF EXISTS osm_amenity_z10_tags_idx; +REFRESH MATERIALIZED VIEW osm_amenity_z10; +CREATE INDEX IF NOT EXISTS osm_amenity_z10_geom_idx ON osm_amenity_z10 USING GIST (geom); +CREATE INDEX IF NOT EXISTS osm_amenity_z10_tags_idx ON osm_amenity_z10 USING GIN (tags); + +-- Zoom level 9 + +DROP INDEX IF EXISTS osm_amenity_z9_geom_idx; +DROP INDEX IF EXISTS osm_amenity_z9_tags_idx; +REFRESH MATERIALIZED VIEW osm_amenity_z9; +CREATE INDEX IF NOT EXISTS osm_amenity_z9_geom_idx ON osm_amenity_z9 USING GIST (geom); +CREATE INDEX IF NOT EXISTS osm_amenity_z9_tags_idx ON osm_amenity_z9 USING GIN (tags); + +-- Zoom level 8 + +DROP INDEX IF EXISTS osm_amenity_z8_geom_idx; +DROP INDEX IF EXISTS osm_amenity_z8_tags_idx; +REFRESH MATERIALIZED VIEW osm_amenity_z8; +CREATE INDEX IF NOT EXISTS osm_amenity_z8_geom_idx ON osm_amenity_z8 USING GIST (geom); +CREATE INDEX IF NOT EXISTS osm_amenity_z8_tags_idx ON osm_amenity_z8 USING GIN (tags); + +-- Zoom level 7 + +DROP INDEX IF EXISTS osm_amenity_z7_geom_idx; +DROP INDEX IF EXISTS osm_amenity_z7_tags_idx; +REFRESH MATERIALIZED VIEW osm_amenity_z7; +CREATE INDEX IF NOT EXISTS osm_amenity_z7_geom_idx ON osm_amenity_z7 USING GIST (geom); +CREATE INDEX IF NOT EXISTS osm_amenity_z7_tags_idx ON osm_amenity_z7 USING GIN (tags); + +-- Zoom level 6 + +DROP INDEX IF EXISTS osm_amenity_z6_geom_idx; +DROP INDEX IF EXISTS osm_amenity_z6_tags_idx; +REFRESH MATERIALIZED VIEW osm_amenity_z6; +CREATE INDEX IF NOT EXISTS osm_amenity_z6_geom_idx ON osm_amenity_z6 USING GIST (geom); +CREATE INDEX IF NOT EXISTS osm_amenity_z6_tags_idx ON osm_amenity_z6 USING GIN (tags); + +-- Zoom level 5 + +DROP INDEX IF EXISTS osm_amenity_z5_geom_idx; +DROP INDEX IF EXISTS osm_amenity_z5_tags_idx; +REFRESH MATERIALIZED VIEW osm_amenity_z5; +CREATE INDEX IF NOT EXISTS osm_amenity_z5_geom_idx ON osm_amenity_z5 USING GIST (geom); +CREATE INDEX IF NOT EXISTS osm_amenity_z5_tags_idx ON osm_amenity_z5 USING GIN (tags); + +-- Zoom level 4 + +DROP INDEX IF EXISTS osm_amenity_z4_geom_idx; +DROP INDEX IF EXISTS osm_amenity_z4_tags_idx; +REFRESH MATERIALIZED VIEW osm_amenity_z4; +CREATE INDEX IF NOT EXISTS osm_amenity_z4_geom_idx ON osm_amenity_z4 USING GIST (geom); +CREATE INDEX IF NOT EXISTS osm_amenity_z4_tags_idx ON osm_amenity_z4 USING GIN (tags); + +-- Zoom level 3 + +DROP INDEX IF EXISTS osm_amenity_z3_geom_idx; +DROP INDEX IF EXISTS osm_amenity_z3_tags_idx; +REFRESH MATERIALIZED VIEW osm_amenity_z3; +CREATE INDEX IF NOT EXISTS osm_amenity_z3_geom_idx ON osm_amenity_z3 USING GIST (geom); +CREATE INDEX IF NOT EXISTS osm_amenity_z3_tags_idx ON osm_amenity_z3 USING GIN (tags); + +-- Zoom level 2 + +DROP INDEX IF EXISTS osm_amenity_z2_geom_idx; +DROP INDEX IF EXISTS osm_amenity_z2_tags_idx; +REFRESH MATERIALIZED VIEW osm_amenity_z2; +CREATE INDEX IF NOT EXISTS osm_amenity_z2_geom_idx ON osm_amenity_z2 USING GIST (geom); +CREATE INDEX IF NOT EXISTS osm_amenity_z2_tags_idx ON osm_amenity_z2 USING GIN (tags); + +-- Zoom level 1 + +DROP INDEX IF EXISTS osm_amenity_z1_geom_idx; +DROP INDEX IF EXISTS osm_amenity_z1_tags_idx; +REFRESH MATERIALIZED VIEW osm_amenity_z1; +CREATE INDEX IF NOT EXISTS osm_amenity_z1_geom_idx ON osm_amenity_z1 USING GIST (geom); +CREATE INDEX IF NOT EXISTS osm_amenity_z1_tags_idx ON osm_amenity_z1 USING GIN (tags); diff --git a/basemap/layers/amenity/tileset.js b/basemap/layers/amenity/tileset.js index 9976e8f17..1fda5dc63 100644 --- a/basemap/layers/amenity/tileset.js +++ b/basemap/layers/amenity/tileset.js @@ -18,9 +18,9 @@ export default { id: 'amenity', queries: [ { - minzoom: 13, + minzoom: 1, maxzoom: 20, - sql: "SELECT id, tags, geom FROM osm_amenity", + sql: "SELECT id, tags, geom FROM osm_amenity_z$zoom", }, ], }
