Compare commits
2
Commits
da5cfab38e
...
58928cd258
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
58928cd258 | ||
|
|
6ea213629c |
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -83,6 +83,10 @@ class _RideMapState extends State<RideMap> {
|
||||
|
||||
static const _fallback = im.LatLng(31.9539, 35.9106); // عمّان
|
||||
|
||||
/// الستايلان مرفقان في `assets/` — منقولان من سيرو الميداني.
|
||||
static const _lightStyleAsset = 'assets/style.json';
|
||||
static const _darkStyleAsset = 'assets/style_dark.json';
|
||||
|
||||
@override
|
||||
void didUpdateWidget(RideMap old) {
|
||||
super.didUpdateWidget(old);
|
||||
@@ -200,9 +204,24 @@ class _RideMapState extends State<RideMap> {
|
||||
|
||||
// الخريطة تبدّل ستايلها مع الثيم — خريطة نهارية في وضع ليلي تكسر
|
||||
// الغرض (docs/26 §2). وتبديله يهدم مديري التعليقات، فيُصفَّر العَلَم.
|
||||
final styleUrl = isDark
|
||||
? im.IntaleqStyles.obsidian(AppConfig.mapApiKey)
|
||||
: im.IntaleqStyles.light(AppConfig.mapApiKey);
|
||||
//
|
||||
// ⚠️ **ستايل محلّي لا بعيد.** ستايل map-saas البعيد
|
||||
// (`/api/maps/style.json?theme=light`) فيه **12 طبقة `symbol` تستعمل
|
||||
// `icon-image` بلا `sprite` معرَّف** — وMapLibre الأصلي يرمي عندها
|
||||
// `std::domain_error` فيُسقط التطبيق قبل أن يظهر إطار واحد
|
||||
// (مثبت 2026-08-05). الستايلان المرفقان في `assets/` سليمان: بهما
|
||||
// `sprite` وبلاطاتهما من `tiles.intaleqapp.com` نفسها.
|
||||
//
|
||||
// وهذا حرفياً حلّ سيرو الميداني: انظر
|
||||
// `apps/rider/lib/views/home/map_widget.dart/google_map_passenger_widget.dart`
|
||||
// — يمرّر `'assets/style.json'` / `'assets/style_dark.json'` نفسهما، وملفّاه
|
||||
// مطابقان لهذين طبقةً بطبقة (لا يختلفان إلا في اسم العلامة التجارية).
|
||||
// فلا تُعِد هذا السطر إلى `IntaleqStyles.light/obsidian` — جُرّب وأسقط
|
||||
// التطبيق مرتين.
|
||||
//
|
||||
// ومعها نكسب الإقلاع بلا انتظار شبكة — وهو ما يعنيه «الشكل حتمي من أول
|
||||
// إقلاع» (docs/26 §1).
|
||||
final styleUrl = isDark ? _darkStyleAsset : _lightStyleAsset;
|
||||
if (_styleUrl != null && _styleUrl != styleUrl) _styleReady = false;
|
||||
_styleUrl = styleUrl;
|
||||
|
||||
@@ -210,6 +229,10 @@ class _RideMapState extends State<RideMap> {
|
||||
children: [
|
||||
im.IntaleqMap(
|
||||
apiKey: AppConfig.mapApiKey,
|
||||
// التنزيل المسبق للمناطق لا معنى له مع ستايل من `assets/` — الحزمة
|
||||
// تتخطّاه على iOS أصلاً لكنها تترك عَلَم «جارٍ التنزيل» مرفوعاً،
|
||||
// فنقفله من هنا بدل الاتّكال على ذلك.
|
||||
autoCache: false,
|
||||
initialCameraPosition: im.CameraPosition(
|
||||
target: widget.origin == null
|
||||
? _fallback
|
||||
|
||||
@@ -83,6 +83,10 @@ class _RideMapState extends State<RideMap> {
|
||||
|
||||
static const _fallback = im.LatLng(31.9539, 35.9106); // عمّان
|
||||
|
||||
/// الستايلان مرفقان في `assets/` — منقولان من سيرو الميداني.
|
||||
static const _lightStyleAsset = 'assets/style.json';
|
||||
static const _darkStyleAsset = 'assets/style_dark.json';
|
||||
|
||||
@override
|
||||
void didUpdateWidget(RideMap old) {
|
||||
super.didUpdateWidget(old);
|
||||
@@ -200,9 +204,24 @@ class _RideMapState extends State<RideMap> {
|
||||
|
||||
// الخريطة تبدّل ستايلها مع الثيم — خريطة نهارية في وضع ليلي تكسر
|
||||
// الغرض (docs/26 §2). وتبديله يهدم مديري التعليقات، فيُصفَّر العَلَم.
|
||||
final styleUrl = isDark
|
||||
? im.IntaleqStyles.obsidian(AppConfig.mapApiKey)
|
||||
: im.IntaleqStyles.light(AppConfig.mapApiKey);
|
||||
//
|
||||
// ⚠️ **ستايل محلّي لا بعيد.** ستايل map-saas البعيد
|
||||
// (`/api/maps/style.json?theme=light`) فيه **12 طبقة `symbol` تستعمل
|
||||
// `icon-image` بلا `sprite` معرَّف** — وMapLibre الأصلي يرمي عندها
|
||||
// `std::domain_error` فيُسقط التطبيق قبل أن يظهر إطار واحد
|
||||
// (مثبت 2026-08-05). الستايلان المرفقان في `assets/` سليمان: بهما
|
||||
// `sprite` وبلاطاتهما من `tiles.intaleqapp.com` نفسها.
|
||||
//
|
||||
// وهذا حرفياً حلّ سيرو الميداني: انظر
|
||||
// `apps/rider/lib/views/home/map_widget.dart/google_map_passenger_widget.dart`
|
||||
// — يمرّر `'assets/style.json'` / `'assets/style_dark.json'` نفسهما، وملفّاه
|
||||
// مطابقان لهذين طبقةً بطبقة (لا يختلفان إلا في اسم العلامة التجارية).
|
||||
// فلا تُعِد هذا السطر إلى `IntaleqStyles.light/obsidian` — جُرّب وأسقط
|
||||
// التطبيق مرتين.
|
||||
//
|
||||
// ومعها نكسب الإقلاع بلا انتظار شبكة — وهو ما يعنيه «الشكل حتمي من أول
|
||||
// إقلاع» (docs/26 §1).
|
||||
final styleUrl = isDark ? _darkStyleAsset : _lightStyleAsset;
|
||||
if (_styleUrl != null && _styleUrl != styleUrl) _styleReady = false;
|
||||
_styleUrl = styleUrl;
|
||||
|
||||
@@ -210,6 +229,10 @@ class _RideMapState extends State<RideMap> {
|
||||
children: [
|
||||
im.IntaleqMap(
|
||||
apiKey: AppConfig.mapApiKey,
|
||||
// التنزيل المسبق للمناطق لا معنى له مع ستايل من `assets/` — الحزمة
|
||||
// تتخطّاه على iOS أصلاً لكنها تترك عَلَم «جارٍ التنزيل» مرفوعاً،
|
||||
// فنقفله من هنا بدل الاتّكال على ذلك.
|
||||
autoCache: false,
|
||||
initialCameraPosition: im.CameraPosition(
|
||||
target: widget.origin == null
|
||||
? _fallback
|
||||
|
||||
@@ -248,4 +248,24 @@ MapLibre يُنشئ «مديري التعليقات» عند تحميل الست
|
||||
ثلاثة نداءات منصّة. حارس `_syncing` إلزامي وإلا تتكدّس النداءات وتلتهم
|
||||
الإطارات.
|
||||
|
||||
### الستايل محلّي لا بعيد
|
||||
|
||||
**ممنوع تمرير `IntaleqStyles.light()`/`obsidian()` (الستايل البعيد).**
|
||||
|
||||
ستايل map-saas البعيد `/api/maps/style.json?theme=light` فيه **12 طبقة
|
||||
`symbol` تستعمل `icon-image` بلا `sprite` معرَّف**، وMapLibre الأصلي يرمي
|
||||
عندها `std::domain_error` فيُسقط التطبيق قبل ظهور إطار واحد. مثبت بفحص
|
||||
الستايل مباشرةً 2026-08-05.
|
||||
|
||||
⚠️ الستايل المرفق **بالحزمة نفسها** (`packages/intaleq_maps/assets/style.json`)
|
||||
مصابٌ بالعيب ذاته — sprite غائب و12 طبقة أيقونات. الوضع الليلي المرفق بها
|
||||
سليم. فلا يُعتمد على افتراضات الحزمة أيضاً.
|
||||
|
||||
**المعتمد**: `assets/style.json` و`assets/style_dark.json` المنقولان من سيرو
|
||||
الميداني — بهما `sprite` صحيح، وبلاطاتهما من `tiles.intaleqapp.com` نفسها،
|
||||
ويقلعان بلا انتظار شبكة (docs/26 §1).
|
||||
|
||||
**الإصلاح الجذري على الخادم** (لا يخصّ التطبيق): إضافة `sprite` لستايل
|
||||
map-saas البعيد، أو إزالة طبقات الأيقونات منه.
|
||||
|
||||
المرجع العملي: `apps/rider_new/lib/features/trip/view/widgets/ride_map.dart`.
|
||||
|
||||
Reference in New Issue
Block a user