feat(map): add seamless five-band grid LOD

This commit is contained in:
Codex
2026-08-05 19:36:01 +03:00
parent 2cd3b33141
commit 80e948c018
10 changed files with 638 additions and 62 deletions
+28
View File
@@ -0,0 +1,28 @@
import type { MapPresentation } from "./CesiumMapRenderer.js";
export type GridLodMode = "3d" | "graticule";
export type GridLodBand = {
index: number;
id: string;
maxHeightKm: number;
stepKm: number;
mode: GridLodMode;
};
export const GRID_LOD_HYSTERESIS_RATIO: number;
export function gridLodBands(settings: MapPresentation): GridLodBand[];
export function selectGridLod(
settings: MapPresentation,
cameraHeightKm: number,
previousIndex?: number | null,
): GridLodBand;
export function resolveGridMode(
settings: MapPresentation,
requestedMode: GridLodMode,
viewAngleFromNadirDegrees: number,
): GridLodMode | "hidden";
export function gridShouldBeVisible(settings: MapPresentation, cameraHeightKm: number): boolean;
export function snapGridCenter(
center: { latitude: number; longitude: number },
settings: MapPresentation,
): { latitude: number; longitude: number };