perf(geoportal): 4-level UAT simplification + intravilan layer + preserve view on basemap switch

UAT zoom-dependent views (read-only, original geom NEVER modified):
- gis_uats_z0 (z0-5): 2000m simplification — country outlines
- gis_uats_z5 (z5-8): 500m — regional overview
- gis_uats_z8 (z8-12): 50m — county/city level with labels
- gis_uats_z12 (z12+): 10m — near-original precision

New layers:
- gis_administrativ (intravilan, arii speciale) — orange dashed, no simplification
- Toggle in layer panel (off by default)

Basemap switching:
- Now preserves current center + zoom when switching between basemaps

Parcels + buildings: NO simplification (exact geometry needed)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
AI Assistant
2026-03-23 20:34:15 +02:00
parent 76c19449f3
commit 4f694d4458
4 changed files with 231 additions and 128 deletions
+56 -8
View File
@@ -1,36 +1,82 @@
# Martin v0.15 configuration — optimized tile sources for ArchiTools Geoportal
# All geometries are EPSG:3844 (Stereo70). Bounds are approximate Romania extent.
# Original table data is NEVER modified — views compute simplification on-the-fly.
# Disable auto-discovery — only serve explicitly configured sources
postgres:
connection_string: ${DATABASE_URL}
default_srid: 3844
auto_publish: false
tables:
gis_uats:
# ── UAT boundaries: 4 zoom-dependent simplification levels ──
gis_uats_z0:
schema: public
table: gis_uats
table: gis_uats_z0
geometry_column: geom
srid: 3844
bounds: [20.2, 43.5, 30.0, 48.3]
minzoom: 0
maxzoom: 14
maxzoom: 5
properties:
name: text
siruta: text
gis_uats_simple:
gis_uats_z5:
schema: public
table: gis_uats_simple
table: gis_uats_z5
geometry_column: geom
srid: 3844
bounds: [20.2, 43.5, 30.0, 48.3]
minzoom: 0
maxzoom: 9
minzoom: 5
maxzoom: 8
properties:
name: text
siruta: text
gis_uats_z8:
schema: public
table: gis_uats_z8
geometry_column: geom
srid: 3844
bounds: [20.2, 43.5, 30.0, 48.3]
minzoom: 8
maxzoom: 12
properties:
name: text
siruta: text
county: text
gis_uats_z12:
schema: public
table: gis_uats_z12
geometry_column: geom
srid: 3844
bounds: [20.2, 43.5, 30.0, 48.3]
minzoom: 12
maxzoom: 16
properties:
name: text
siruta: text
county: text
# ── Administrativ (intravilan, arii speciale) — NO simplification ──
gis_administrativ:
schema: public
table: gis_administrativ
geometry_column: geom
srid: 3844
bounds: [20.2, 43.5, 30.0, 48.3]
minzoom: 10
maxzoom: 16
properties:
object_id: text
siruta: text
layer_id: text
cadastral_ref: text
# ── Terenuri (parcels) — NO simplification ──
gis_terenuri:
schema: public
table: gis_terenuri
@@ -46,6 +92,8 @@ postgres:
area_value: float8
layer_id: text
# ── Cladiri (buildings) — NO simplification ──
gis_cladiri:
schema: public
table: gis_cladiri