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
+40 -3
View File
@@ -414,12 +414,13 @@ const mapPageSettingsPatchInputSchema = {
gridLodEnabled: { type: "boolean" },
grid3dEnabled: { type: "boolean" },
gridGraticuleEnabled: { type: "boolean" },
gridCenterMode: { type: "string", enum: ["camera", "fixed"] },
gridCenterLatitude: { type: "number" },
gridCenterLongitude: { type: "number" },
gridCenterMode: { type: "string", enum: ["fixed"] },
gridCenterLatitude: { type: "number", minimum: -90, maximum: 90 },
gridCenterLongitude: { type: "number", minimum: -180, maximum: 180 },
gridTileSizeKm: { type: "number" },
gridAutoDisableHeightKm: { type: "number" },
gridRebuildOnMoveEnd: { type: "boolean" },
gridLegacyMode: { type: "boolean" },
gridMax3dViewAngleDegrees: { type: "number" },
gridHeightMeters: { type: "number" },
gridLod1MaxHeightKm: { type: "number" },
@@ -434,6 +435,7 @@ const mapPageSettingsPatchInputSchema = {
gridLod4MaxHeightKm: { type: "number" },
gridLod4StepKm: { type: "number" },
gridLod4Mode: { type: "string", enum: ["3d", "graticule"] },
gridLod5MaxHeightKm: { type: "number" },
gridLod5StepKm: { type: "number" },
gridLod5Mode: { type: "string", enum: ["3d", "graticule"] },
gridRadiusKm: { type: "number" },
@@ -451,6 +453,41 @@ const mapPageSettingsPatchInputSchema = {
gridCrossesWidthMeters: { type: "number" },
gridCrossesColor: { type: "string", pattern: "^#[0-9A-Fa-f]{6}$" },
gridCrossesOpacity: { type: "number" },
gridLodProfiles: {
type: "array",
minItems: 5,
maxItems: 5,
items: {
type: "object",
additionalProperties: false,
required: ["maxHeightKm", "stepKm", "mode", "heightMeters", "max3dViewAngleDegrees", "tileSizeKm", "radiusKm", "lineDiameterMeters", "lineColor", "lineOpacity", "dotsEnabled", "dotsDiameterMeters", "dotsColor", "dotsOpacity", "crossesEnabled", "crossesLengthMeters", "crossesWidthMeters", "crossesColor", "crossesOpacity", "graticuleStepDegrees", "graticuleLineWidthPx", "graticuleColor", "graticuleOpacity"],
properties: {
maxHeightKm: { type: "number", minimum: 0.1, maximum: 100000, description: "Strictly greater than the previous LOD maxHeightKm; enforced by Foundry." },
stepKm: { type: "number", minimum: 0.1, maximum: 5000 },
mode: { type: "string", enum: ["3d", "graticule"] },
heightMeters: { type: "number", minimum: 0, maximum: 5000 },
max3dViewAngleDegrees: { type: "number", minimum: 30, maximum: 170 },
tileSizeKm: { type: "number", minimum: 1, maximum: 50 },
radiusKm: { type: "number", minimum: 1, maximum: 100000 },
lineDiameterMeters: { type: "number", minimum: 1, maximum: 100 },
lineColor: { type: "string", pattern: "^#[0-9A-Fa-f]{6}$" },
lineOpacity: { type: "number", minimum: 0, maximum: 100 },
dotsEnabled: { type: "boolean" },
dotsDiameterMeters: { type: "number", minimum: 1, maximum: 1000 },
dotsColor: { type: "string", pattern: "^#[0-9A-Fa-f]{6}$" },
dotsOpacity: { type: "number", minimum: 0, maximum: 100 },
crossesEnabled: { type: "boolean" },
crossesLengthMeters: { type: "number", minimum: 1, maximum: 5000 },
crossesWidthMeters: { type: "number", minimum: 1, maximum: 500 },
crossesColor: { type: "string", pattern: "^#[0-9A-Fa-f]{6}$" },
crossesOpacity: { type: "number", minimum: 0, maximum: 100 },
graticuleStepDegrees: { type: "number", minimum: 0.1, maximum: 180 },
graticuleLineWidthPx: { type: "number", minimum: 1, maximum: 3 },
graticuleColor: { type: "string", pattern: "^#[0-9A-Fa-f]{6}$" },
graticuleOpacity: { type: "number", minimum: 0, maximum: 100 },
},
},
},
},
};