66 lines
2.0 KiB
TypeScript
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 };
|