Skip to content

Commit

Permalink
Merge pull request #476 from OpenHistoricalMap/staging
Browse files Browse the repository at this point in the history
Update Materialized Views for Natural Earth Lakes
  • Loading branch information
Rub21 authored Feb 13, 2025
2 parents a834c75 + 5a1c91d commit 4677ffc
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 42 deletions.
26 changes: 16 additions & 10 deletions images/tiler-imposm/queries/mviews_ne_lakes.sql
Original file line number Diff line number Diff line change
@@ -1,30 +1,36 @@
-- This script creates a materialized view for lakes in the Natural Earth dataset, merging data from multiple source tables.
-- Drop the materialized view if it exists
DROP MATERIALIZED VIEW IF EXISTS mview_ne_lakes CASCADE;

-- Create a new materialized view
-- Create the materialized view with a unique serial ID
CREATE MATERIALIZED VIEW mview_ne_lakes AS
SELECT
'ne_10m_lakes_' || CAST(ogc_fid AS TEXT) AS ogc_fid,
ROW_NUMBER() OVER () AS id, -- Generates a unique sequential ID
name,
wkb_geometry,
ST_Simplify(wkb_geometry, 100) AS wkb_geometry,
'ne_10m_lakes' AS source_table
FROM ne_10m_lakes
WHERE ST_Simplify(wkb_geometry, 100) IS NOT NULL

UNION ALL
SELECT
'ne_10m_lakes_europe_' || CAST(ogc_fid AS TEXT) AS ogc_fid,
ROW_NUMBER() OVER () + (SELECT COUNT(*) FROM ne_10m_lakes WHERE wkb_geometry IS NOT NULL) AS id,
name,
wkb_geometry,
ST_Simplify(wkb_geometry, 100) AS wkb_geometry,
'ne_10m_lakes_europe' AS source_table
FROM ne_10m_lakes_europe
WHERE ST_Simplify(wkb_geometry, 100) IS NOT NULL

UNION ALL
SELECT
'ne_10m_lakes_north_america_' || CAST(ogc_fid AS TEXT) AS ogc_fid,
ROW_NUMBER() OVER ()
+ (SELECT COUNT(*) FROM ne_10m_lakes WHERE wkb_geometry IS NOT NULL)
+ (SELECT COUNT(*) FROM ne_10m_lakes_europe WHERE wkb_geometry IS NOT NULL) AS id,
name,
wkb_geometry,
ST_Simplify(wkb_geometry, 100) AS wkb_geometry,
'ne_10m_lakes_north_america' AS source_table
FROM ne_10m_lakes_north_america;
FROM ne_10m_lakes_north_america
WHERE ST_Simplify(wkb_geometry, 100) IS NOT NULL;

-- Create spatial and ID indexes
CREATE INDEX idx_mview_ne_lakes_geom ON mview_ne_lakes USING GIST (wkb_geometry);
CREATE INDEX idx_mview_ne_lakes_ogc_fid ON mview_ne_lakes (ogc_fid);
CREATE INDEX idx_mview_ne_lakes_id ON mview_ne_lakes (id);
35 changes: 5 additions & 30 deletions images/tiler-server/config/config.template.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ bucket = "${TILER_CACHE_BUCKET}"
region = "${TILER_CACHE_REGION}"
aws_access_key_id = "${TILER_CACHE_AWS_ACCESS_KEY_ID}"
aws_secret_access_key = "${TILER_CACHE_AWS_SECRET_ACCESS_KEY}"
endpoint = "${TILER_CACHE_AWS_ENDPOINT}"

# metrics
[observer]
Expand All @@ -38,25 +39,11 @@ uri = "postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POS
max_connections = 25
###### Water lands ne
[[providers.layers]]
name = "ne_water_lakes_0-2"
name = "ne_water_lakes_0-8"
geometry_fieldname = "geometry"
geometry_type = "multipolygon"
id_fieldname = "ogc_fid"
sql = "SELECT ST_AsMVTGeom(ST_Simplify(wkb_geometry, 1000),!BBOX!) AS geometry, name, ogc_fid FROM ne_50m_lakes WHERE wkb_geometry && !BBOX!"

[[providers.layers]]
name = "ne_water_lakes_3-5"
geometry_fieldname = "geometry"
geometry_type = "multipolygon"
id_fieldname = "ogc_fid"
sql = "SELECT ST_AsMVTGeom(ST_Simplify(wkb_geometry, 500),!BBOX!) AS geometry, name, ogc_fid FROM ne_50m_lakes WHERE wkb_geometry && !BBOX!"

[[providers.layers]]
name = "ne_water_lakes_6-8"
geometry_fieldname = "geometry"
geometry_type = "multipolygon"
id_fieldname = "ogc_fid"
sql = "SELECT ST_AsMVTGeom(ST_Simplify(wkb_geometry, 100),!BBOX!) AS geometry, name, ogc_fid FROM ne_10m_lakes WHERE wkb_geometry && !BBOX!"
id_fieldname = "id"
sql = "SELECT ST_AsMVTGeom(wkb_geometry,!BBOX!) AS geometry, name, id FROM mview_ne_lakes WHERE wkb_geometry && !BBOX!"

####################################
## OpenHistoricalMap maps
Expand All @@ -77,18 +64,6 @@ center = [-74.275329586789, -12.153492567373, 8.0]
# Water lakes Natural Earth
[[maps.layers]]
name = "water_areas"
provider_layer = "ne.ne_water_lakes_0-2"
provider_layer = "ne.ne_water_lakes_0-8"
min_zoom = 0
max_zoom = 2

[[maps.layers]]
name = "water_areas"
provider_layer = "ne.ne_water_lakes_3-5"
min_zoom = 3
max_zoom = 5

[[maps.layers]]
name = "water_areas"
provider_layer = "ne.ne_water_lakes_6-8"
min_zoom = 6
max_zoom = 8
2 changes: 1 addition & 1 deletion ohm/requirements.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
dependencies:
- name: osm-seed
version: '0.1.0-n820.ha0b02a1'
version: '0.1.0-n806.h184cc3c'
repository: https://devseed.com/osm-seed-chart/
3 changes: 2 additions & 1 deletion values.production.template.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ osm-seed:
autoscaling:
enabled: true
minReplicas: 2
maxReplicas: 6
maxReplicas: 4
cpuUtilization: 80
sharedMemorySize: 512Mi
livenessProbeExec: true
Expand Down Expand Up @@ -509,6 +509,7 @@ osm-seed:
TILER_CACHE_BUCKET: tiler-cache-production
TILER_CACHE_AWS_ACCESS_KEY_ID: {{PRODUCTION_TILER_CACHE_AWS_ACCESS_KEY_ID}}
TILER_CACHE_AWS_SECRET_ACCESS_KEY: {{PRODUCTION_TILER_CACHE_AWS_SECRET_ACCESS_KEY}}
TILER_CACHE_AWS_ENDPOINT: ""
EXECUTE_REINDEX: false
EXECUTE_VACUUM_ANALYZE: false
# In case you use TILER_CACHE_TYPE: file with persistenceDisk
Expand Down
1 change: 1 addition & 0 deletions values.staging.template.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -541,6 +541,7 @@ osm-seed:
TILER_CACHE_BUCKET: tiler-cache-staging
TILER_CACHE_AWS_ACCESS_KEY_ID: {{STAGING_TILER_CACHE_AWS_ACCESS_KEY_ID}}
TILER_CACHE_AWS_SECRET_ACCESS_KEY: {{STAGING_TILER_CACHE_AWS_SECRET_ACCESS_KEY}}
TILER_CACHE_AWS_ENDPOINT: ""
# In case you use TILER_CACHE_TYPE: file with persistenceDisk
EXECUTE_REINDEX: false
EXECUTE_VACUUM_ANALYZE: false
Expand Down

0 comments on commit 4677ffc

Please sign in to comment.