chore: add build artifacts, map assets, and routing data

This commit is contained in:
Hamza-Ayed
2026-09-19 12:34:24 +03:00
parent aa2b9f131f
commit 43ad2e0ad4
327 changed files with 52421 additions and 1810 deletions
@@ -18,6 +18,21 @@ class ResectionController extends GetxController {
final RxList<ResectionObservation> observations = <ResectionObservation>[].obs;
final Rx<ResectionResult?> resectionResult = Rx<ResectionResult?>(null);
final RxDouble currentHeadingDeg = 0.0.obs;
final Rx<TacticalLandmark?> selectedMapLandmark = Rx<TacticalLandmark?>(null);
/// Set Landmark picked from interactive Map / تعيين المعلم المختار مباشرة من الخريطة
void setMapLandmark(double lat, double lng, {String? customName, int? elevationM}) {
selectedMapLandmark.value = TacticalLandmark(
id: 'picked_${DateTime.now().millisecondsSinceEpoch}',
name: customName ?? 'معلم تكتيكي مرصود (${lat.toStringAsFixed(4)}, ${lng.toStringAsFixed(4)})',
region: 'قاطع العمليات الميداني',
type: LandmarkType.mountain,
lat: lat,
lng: lng,
elevationM: elevationM ?? 850,
description: 'تم تحديده بصرياً عبر إشارة المصلب التفاعلية على الخريطة',
);
}
/// Add Observation / إضافة رصد اتجاهي لمعلم جغرافي
void addObservation(ResectionObservation obs) {
@@ -38,6 +53,24 @@ class ResectionController extends GetxController {
return res;
}
/// Compute Position from Single Landmark + Baseline step-off
/// استخراج الموقع بالرصد على معلم واحد وخط أساس متحرك (10م، 11م، 20م، 50م)
ResectionResult? computeSingleLandmarkPosition({
required TacticalLandmark landmark,
required double azimuth1Deg,
required double azimuth2Deg,
required double baselineMeters,
}) {
final res = ResectionCalculator.calculateSingleLandmarkPolar(
landmark: landmark,
azimuth1Deg: azimuth1Deg,
azimuth2Deg: azimuth2Deg,
baselineMeters: baselineMeters,
);
resectionResult.value = res;
return res;
}
/// Reset all observations / تصفير وإعادة ضبط الرصد
void reset() {
observations.clear();