feat: Add Improved Polish Orthophoto Map component with WMTS support

- Introduced ImprovedPolishOrthophotoMap component for displaying Polish orthophoto layers using WMTS.
- Implemented custom WMTSLayer for handling tile requests.
- Added Google Satellite and OpenStreetMap layers for comparison.
- Included debug information for network requests to Geoportal.
- Enhanced LeafletMap to support WMS overlays and improved layer control.
- Created PolishGeoLayers module for easy access to various Polish geospatial layers.
- Added TransparencyDemoMap for adjustable layer opacity controls.
- Updated mapLayers configuration to include new Polish orthophoto layers and WMS overlays.
- Refactored wmtsCapabilities to use updated URLs and parameters for better compatibility.
This commit is contained in:
2025-06-21 01:21:21 +02:00
parent 6df4302396
commit f83cc8e564
25 changed files with 4538 additions and 32 deletions

View File

@@ -13,14 +13,32 @@ export const mapLayers = {
url: "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
maxZoom: 19
},
polishOrthophoto,
{
name: "Polish Land Records (WMS)",
attribution: '&copy; <a href="https://www.gugik.gov.pl/">GUGiK</a>',
// This is actually a WMS service, not WMTS as discovered from GetCapabilities
url: "https://integracja.gugik.gov.pl/cgi-bin/KrajowaIntegracjaEwidencjiGruntow?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&BBOX={bbox-epsg-3857}&CRS=EPSG:3857&WIDTH=256&HEIGHT=256&LAYERS=EGiB&STYLES=&FORMAT=image/png",
name: "🇵🇱 Polish Orthophoto (Standard)",
attribution: '&copy; <a href="https://www.geoportal.gov.pl/">Geoportal</a>',
url: "https://mapy.geoportal.gov.pl/wss/service/PZGIK/ORTO/WMTS/StandardResolution?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=ORTO&STYLE=default&TILEMATRIXSET=EPSG:3857&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&FORMAT=image/jpeg",
maxZoom: 19,
tileSize: 256
checked: false
},
{
name: "🇵🇱 Polish Orthophoto (High Resolution)",
attribution: '&copy; <a href="https://www.geoportal.gov.pl/">Geoportal</a>',
url: "https://mapy.geoportal.gov.pl/wss/service/PZGIK/ORTO/WMTS/HighResolution?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=ORTO&STYLE=default&TILEMATRIXSET=EPSG:3857&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&FORMAT=image/jpeg",
maxZoom: 19,
checked: false
},
{
name: "🌍 Google Satellite",
attribution: '&copy; Google',
url: "http://mt1.google.com/vt/lyrs=s&hl=pl&x={x}&y={y}&z={z}",
maxZoom: 20,
checked: false
}, {
name: "🌍 Google Hybrid",
attribution: '&copy; Google',
url: "http://mt1.google.com/vt/lyrs=y&hl=pl&x={x}&y={y}&z={z}",
maxZoom: 20,
checked: false
},
{
name: "Satellite (Esri)",
@@ -34,7 +52,131 @@ export const mapLayers = {
url: "https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}{r}.png",
maxZoom: 19
}
].filter(Boolean) // Remove any null entries
].filter(Boolean), // Remove any null entries
overlays: [
{
name: "🌍 Google Roads",
type: "tile",
attribution: '&copy; Google',
url: "http://mt1.google.com/vt/lyrs=h&hl=pl&x={x}&y={y}&z={z}",
maxZoom: 20,
opacity: 1.0,
checked: false
},
{
name: "📋 Polish Cadastral Data",
type: "wms",
attribution: '&copy; <a href="https://www.gugik.gov.pl/">GUGiK</a>',
url: "https://integracja01.gugik.gov.pl/cgi-bin/KrajowaIntegracjaEwidencjiGruntow",
params: {
service: 'WMS',
request: 'GetMap',
layers: 'powiaty,powiaty_obreby,zsin,obreby,dzialki,geoportal,numery_dzialek,budynki',
styles: ',,,,,,,',
format: 'image/png',
transparent: true,
version: '1.3.0',
crs: 'EPSG:3857'
},
opacity: 0.8,
checked: false
},
{
name: "🏗️ Polish Spatial Planning",
type: "wms",
attribution: '&copy; <a href="https://www.geoportal.gov.pl/">Geoportal</a>',
url: "https://mapy.geoportal.gov.pl/wss/ext/KrajowaIntegracjaMiejscowychPlanowZagospodarowaniaPrzestrzennego",
params: {
service: 'WMS',
request: 'GetMap',
layers: 'raster,wektor-str,wektor-lzb,wektor-pow,wektor-lin,wektor-pkt,granice',
styles: ',,,,,,',
format: 'image/png',
transparent: true,
version: '1.3.0',
crs: 'EPSG:3857',
tiled: true
},
opacity: 0.7,
checked: false
},
{
name: "🛣️ LP-Portal Roads",
type: "wms",
attribution: '&copy; <a href="https://lp-portal.pl/">LP-Portal</a>',
url: "https://geoserver.lp-portal.pl/geoserver/pzdnowysacz/wms",
params: {
service: 'WMS',
request: 'GetMap',
layers: '00_6_mapainteraktywna_drogi',
styles: '',
format: 'image/png8',
transparent: true,
version: '1.3.0',
crs: 'EPSG:3857',
tiled: true
},
opacity: 0.9,
checked: false
},
{
name: "🏷️ LP-Portal Street Names",
type: "wms",
attribution: '&copy; <a href="https://lp-portal.pl/">LP-Portal</a>',
url: "https://geoserver.lp-portal.pl/geoserver/pzdnowysacz/wms",
params: {
service: 'WMS',
request: 'GetMap',
layers: '00_5_mapainteraktywna_opisy_drog,00_3_mapainteraktywna_nazwy_ulic',
styles: '',
format: 'image/png8',
transparent: true,
version: '1.1.1',
crs: 'EPSG:3857',
tiled: true
},
opacity: 1.0,
checked: false
},
{
name: "📐 LP-Portal Parcels",
type: "wms",
attribution: '&copy; <a href="https://lp-portal.pl/">LP-Portal</a>',
url: "https://geoserver.lp-portal.pl/geoserver/pzdnowysacz/wms",
params: {
service: 'WMS',
request: 'GetMap',
layers: 'dzialki',
styles: '',
format: 'image/png',
transparent: true,
version: '1.1.1',
crs: 'EPSG:3857',
tiled: true
},
opacity: 0.6,
checked: false
},
{
name: "📍 LP-Portal Survey Markers",
type: "wms",
attribution: '&copy; <a href="https://lp-portal.pl/">LP-Portal</a>',
url: "https://geoserver.lp-portal.pl/geoserver/pzdnowysacz/wms",
params: {
service: 'WMS',
request: 'GetMap',
layers: '00_2_view_geop_odcinek_pikietaz_glob_multi',
styles: '',
format: 'image/png8',
transparent: true,
version: '1.1.1',
crs: 'EPSG:3857',
tiled: true
},
opacity: 0.8,
checked: false
}
]
};
// WMTS services configuration with GetCapabilities URLs