import type { Layer, LayerProps } from '@deck.gl/core'; import type { ColorMap as GeoStylerColorMap } from 'geostyler-style'; import { type ColorMapName } from '../geotiff/utils/colormap-utils'; export interface DeckGLGeoTIFFTerrainLayerProps extends LayerProps { url?: string; /** * Quell-Projektion des GeoTIFF (z. B. \"EPSG:32632\" oder proj4-String) */ projection?: string; /** * Erzwingt die Verwendung der projection-Prop, ignoriert GeoKeys */ forceProjection?: boolean; /** * NoData-Wert für ungültige Höhendaten */ noDataValue?: number; /** * Minimale Zoom-Stufe */ minZoom?: number; /** * Maximale Zoom-Stufe */ maxZoom?: number; /** * Tile-Größe in Pixeln (muss 2^n sein, z. B. 256 oder 512) */ tileSize?: number; /** * Mesh-Fehlertoleranz in Metern für Martini-Triangulierung. * Kleinere Werte = detaillierteres Mesh, aber höhere GPU-Last. * Default: 4.0 */ meshMaxError?: number; /** * Wireframe-Modus: zeigt nur Mesh-Linien (terrain-Modus) * Default: false */ wireframe?: boolean; /** * Textur-URL (optional) */ texture?: string; /** * Farbe für das Terrain-Mesh (terrain-Modus, wenn keine Textur) * [r, g, b] mit Werten 0-255 */ color?: [number, number, number]; /** * ColorMap für Höhendaten-Visualisierung (colormap-Modus) */ colorMap?: ColorMapName | GeoStylerColorMap; /** * Wertebereich für ColorMap-Normalisierung [min, max] */ valueRange?: [number, number]; /** * Höhen-Überhöhung (terrain-Modus) * Default: 1.0 */ elevationScale?: number; /** * Rendering-Modus: * - 'terrain': 3D-Mesh via Martini-Algorithmus (Standard) * - 'colormap': 2D-Kacheln mit Farbkarte (TileLayer + BitmapLayer) */ renderMode?: 'terrain' | 'colormap'; /** Optional callback for tile load errors, wired by provider. */ onTileLoadError?: (err: Error) => void; } /** * Factory-Funktion zum Erstellen eines DeckGLGeoTIFFTerrainLayer * * Rendert GeoTIFF-Höhendaten als 3D-Terrain-Mesh (Standard) oder als * colormap-basierte 2D-Kacheln. * * Im terrain-Modus (Standard) wird der Martini-Algorithmus (@mapbox/martini) * für adaptive RTIN-Mesh-Generierung verwendet. meshMaxError, wireframe und * elevationScale sind in diesem Modus funktional. */ export declare function createDeckGLGeoTIFFTerrainLayer(props: DeckGLGeoTIFFTerrainLayerProps): Promise;