feat(map): add fixed ENU and WGS84 sector grid

This commit is contained in:
Codex
2026-08-06 10:31:03 +03:00
parent 80e948c018
commit 6f1fcb1eb0
15 changed files with 1806 additions and 362 deletions
+29 -4
View File
@@ -1,15 +1,40 @@
import type { MapPresentation } from "./CesiumMapRenderer.js";
export type GridLodMode = "3d" | "graticule";
export type GridLodBand = {
index: number;
id: string;
export type GridLodProfile = {
maxHeightKm: number;
stepKm: number;
mode: GridLodMode;
heightMeters: number;
max3dViewAngleDegrees: number;
tileSizeKm: number;
radiusKm: number;
lineDiameterMeters: number;
lineColor: string;
lineOpacity: number;
dotsEnabled: boolean;
dotsDiameterMeters: number;
dotsColor: string;
dotsOpacity: number;
crossesEnabled: boolean;
crossesLengthMeters: number;
crossesWidthMeters: number;
crossesColor: string;
crossesOpacity: number;
graticuleStepDegrees: number;
graticuleLineWidthPx: number;
graticuleColor: string;
graticuleOpacity: number;
};
export type GridLodBand = GridLodProfile & {
index: number;
id: string;
};
export const GRID_LOD_HYSTERESIS_RATIO: number;
export const GRID_LOD_COUNT: number;
export const DEFAULT_GRID_LOD_PROFILES: readonly Readonly<GridLodProfile>[];
export function gridLodProfile(settings: MapPresentation, index: number): GridLodProfile;
export function gridLodBands(settings: MapPresentation): GridLodBand[];
export function selectGridLod(
settings: MapPresentation,
@@ -19,10 +44,10 @@ export function selectGridLod(
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,
tileSizeKm?: number,
): { latitude: number; longitude: number };