feat: add Jordan 3D topographic platform, Siro Map cinematic orbit studio, sun-shadow simulation, and sovereign intelligence security gating

This commit is contained in:
Hamza-Ayed
2026-09-19 12:34:26 +03:00
parent 91e9e71ce4
commit 0bf13824c9
180 changed files with 245224 additions and 704 deletions
+7 -7
View File
@@ -163,10 +163,10 @@ packages:
dependency: transitive
description:
name: matcher
sha256: "12956d0ad8390bbcc63ca2e1469c0619946ccb52809807067a7020d57e647aa6"
sha256: dc0b7dc7651697ea4ff3e69ef44b0407ea32c487a39fff6a4004fa585e901861
url: "https://pub.dev"
source: hosted
version: "0.12.18"
version: "0.12.19"
material_color_utilities:
dependency: transitive
description:
@@ -179,10 +179,10 @@ packages:
dependency: transitive
description:
name: meta
sha256: "23f08335362185a5ea2ad3a4e597f1375e78bce8a040df5c600c8d3552ef2394"
sha256: "1741988757a65eb6b36abe716829688cf01910bbf91c34354ff7ec1c3de2b349"
url: "https://pub.dev"
source: hosted
version: "1.17.0"
version: "1.18.0"
path:
dependency: transitive
description:
@@ -256,10 +256,10 @@ packages:
dependency: transitive
description:
name: test_api
sha256: "93167629bfc610f71560ab9312acdda4959de4df6fac7492c89ff0d3886f6636"
sha256: "949a932224383300f01be9221c39180316445ecb8e7547f70a41a35bf421fb9e"
url: "https://pub.dev"
source: hosted
version: "0.7.9"
version: "0.7.11"
typed_data:
dependency: transitive
description:
@@ -301,5 +301,5 @@ packages:
source: hosted
version: "6.6.1"
sdks:
dart: ">=3.9.0-0 <4.0.0"
dart: ">=3.10.0-0 <4.0.0"
flutter: ">=3.22.0"
@@ -179,6 +179,103 @@ class IntaleqMapController {
? CameraPosition.fromMapLibre(_raw.cameraPosition!)
: null;
/// Direct access to underlying MapLibreMapController.
mgl.MapLibreMapController get raw => _raw;
/// Sets camera tilt (0.0 to 60.0 degrees) smoothly.
Future<void> setTilt(double tilt, {Duration duration = const Duration(milliseconds: 300)}) async {
final pos = cameraPosition;
if (pos == null) return;
await _raw.animateCamera(
mgl.CameraUpdate.newCameraPosition(
mgl.CameraPosition(
target: pos.target,
zoom: pos.zoom,
bearing: pos.bearing,
tilt: tilt.clamp(0.0, 60.0),
),
),
duration: duration,
);
}
/// Sets camera bearing (0.0 to 360.0 degrees) smoothly.
Future<void> setBearing(double bearing, {Duration duration = const Duration(milliseconds: 100)}) async {
final pos = cameraPosition;
if (pos == null) return;
await _raw.animateCamera(
mgl.CameraUpdate.newCameraPosition(
mgl.CameraPosition(
target: pos.target,
zoom: pos.zoom,
bearing: (bearing % 360.0 + 360.0) % 360.0,
tilt: pos.tilt,
),
),
duration: duration,
);
}
/// Smooth cinematic orbit step by [deltaDegrees].
Future<void> orbitStep(double deltaDegrees, {Duration duration = const Duration(milliseconds: 60)}) async {
final pos = cameraPosition;
if (pos == null) return;
final newBearing = (pos.bearing + deltaDegrees) % 360.0;
await _raw.animateCamera(
mgl.CameraUpdate.newCameraPosition(
mgl.CameraPosition(
target: pos.target,
zoom: pos.zoom,
bearing: newBearing,
tilt: pos.tilt,
),
),
duration: duration,
);
}
/// Sets layer visibility in the active style.
Future<void> setLayerVisibility(String layerId, bool visible) async {
if (!_isStyleLoaded) return;
try {
await _raw.setLayerVisibility(layerId, visible);
} catch (e) {
print("⚠️ [IntaleqController] setLayerVisibility error for $layerId: $e");
}
}
/// Updates sun lighting and shadows simulation across terrain and 3D buildings.
Future<void> updateSunSimulation({
required double sunAzimuth,
required String shadowColorHex,
required String highlightColorHex,
required String buildingColorHex,
double buildingOpacity = 0.88,
double hillshadeExaggeration = 0.75,
}) async {
if (!_isStyleLoaded) return;
try {
await _raw.setLayerProperties(
'hillshading',
mgl.HillshadeLayerProperties(
hillshadeIlluminationDirection: sunAzimuth % 360.0,
hillshadeShadowColor: shadowColorHex,
hillshadeHighlightColor: highlightColorHex,
hillshadeExaggeration: hillshadeExaggeration,
),
);
} catch (_) {}
try {
final buildingProps = mgl.FillExtrusionLayerProperties(
fillExtrusionColor: buildingColorHex,
fillExtrusionOpacity: buildingOpacity,
);
await _raw.setLayerProperties('building-3d', buildingProps);
await _raw.setLayerProperties('building-3d-osm', buildingProps);
} catch (_) {}
}
/// Returns the current zoom level.
Future<double> getZoomLevel() async => _raw.cameraPosition?.zoom ?? 14.0;
+7 -7
View File
@@ -164,10 +164,10 @@ packages:
dependency: transitive
description:
name: matcher
sha256: "12956d0ad8390bbcc63ca2e1469c0619946ccb52809807067a7020d57e647aa6"
sha256: dc0b7dc7651697ea4ff3e69ef44b0407ea32c487a39fff6a4004fa585e901861
url: "https://pub.dev"
source: hosted
version: "0.12.18"
version: "0.12.19"
material_color_utilities:
dependency: transitive
description:
@@ -180,10 +180,10 @@ packages:
dependency: transitive
description:
name: meta
sha256: "23f08335362185a5ea2ad3a4e597f1375e78bce8a040df5c600c8d3552ef2394"
sha256: "1741988757a65eb6b36abe716829688cf01910bbf91c34354ff7ec1c3de2b349"
url: "https://pub.dev"
source: hosted
version: "1.17.0"
version: "1.18.0"
path:
dependency: transitive
description:
@@ -257,10 +257,10 @@ packages:
dependency: transitive
description:
name: test_api
sha256: "93167629bfc610f71560ab9312acdda4959de4df6fac7492c89ff0d3886f6636"
sha256: "949a932224383300f01be9221c39180316445ecb8e7547f70a41a35bf421fb9e"
url: "https://pub.dev"
source: hosted
version: "0.7.9"
version: "0.7.11"
typed_data:
dependency: transitive
description:
@@ -302,5 +302,5 @@ packages:
source: hosted
version: "6.6.1"
sdks:
dart: ">=3.9.0-0 <4.0.0"
dart: ">=3.10.0-0 <4.0.0"
flutter: ">=3.22.0"