Files
tripz-llc/docs
Hamza-AyedandClaude Opus 5 e2e663dd61 fix(apps): إسقاط التطبيق عند توليد الخريطة — النقاط صارت طبقة فلاتر
## العطل
Unhandled Exception: This Annotation Manager has not been initialized
  → didUpdateWidget → diffCircles → addCircle
  → libc++abi: std::domain_error → SIGABRT

## السبب البنيوي
MapLibre يُنشئ مديري التعليقات (circle/symbol/line) **عند تحميل الستايل
وحده**، ويهدمهم عند كل إعادة تحميل — وتبديل الوضع الليلي إعادةُ تحميل.
وحارسٌ زمنيّ لا يكفي: didUpdateWidget في الحزمة يستدعي diffCircles بمجرّد
وجود المتحكّم، وهو موجود قبل تحميل الستايل وأثناء إعادة تحميله. أي أن أي
نافذة زمنية نتركها ستُصاب عاجلاً أو آجلاً.

## العلاج — إزالة صنف العطل لا ترقيعه
كل ما يُرسم فوق الخريطة صار **طبقة فلاتر** في Stack: نقطة البداية والنهاية
(MapPin) والأسماء (MapLabel) وأيقونة السائق، بمواضع من getScreenCoordinate.
لا annotation manager، فلا عطل — ومعها نرث الخط العربي والاتجاه والثيم.

Polyline وحده بقي annotation (لا بديل لرسم المسار)، محروساً بعَلَم _styleReady
يُصفَّر عند كل تغيير styleUrl.

## أداء
onCameraMove يُطلق عشرات المرات في الثانية وكل مزامنة ثلاثة نداءات منصّة —
أُضيف حارس _syncing يمنع تكدّسها.

## توثيق
docs/23 §13 قاعدة جديدة: ممنوع markers/circles/polygons مع IntaleqMap.
كُتبت كي لا تتكرر في أي شاشة خريطة قادمة.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-05 01:43:51 +03:00
..