Files
NODEDC_DESIGN_GUIDELINE/apps/catalog/src/mapGridPolicy.d.mts
T

66 lines
2.0 KiB
TypeScript

import type { MapPresentation } from "./CesiumMapRenderer.js";
export type GridLodMode = "3d" | "graticule";
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;
majorLinesEnabled: boolean;
majorLabelsEnabled: boolean;
majorLineWidthMultiplier: number;
volumeEnabled: boolean;
volumeMinimumHeightMeters: number;
volumeMaximumHeightMeters: number;
volumeBandHeightMeters: number;
selectionFillColor: string;
selectionFillOpacityPercent: number;
selectionOutlineColor: string;
selectionOutlineWidthPx: number;
selectionOutlineOpacityPercent: 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,
cameraHeightKm: number,
previousIndex?: number | null,
): GridLodBand;
export function resolveGridMode(
settings: MapPresentation,
requestedMode: GridLodMode,
): 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 };