توضح هذه المقالة كيف يقوم التطبيق بانشاء مسار, من الضروري فهم المبادئ الاساسية لمعرفة الاخطاء التي تحدث في المسارات
كيف تحسب السرعة
عند كل نقطة تقاطع يستطيع النضام تحديد سرعة منفصلة لكل مسار على نفس الوصلة بالاعتماد على الاتجاه الذي يرغب بالذهاب اليه,
الصورة توضح سرعة مختلفة لكل لون بالاعتماد على الوجهة المقصودة
نظام تحديد مكان السائق (falcon snapper)
دقة نضام تحديد الموقع gps تصل الى 10 متر, لذلك عند وجود شارعين متجاورين يصعب تحديد مكان السائق في اي شارع, ابتكر المطورين نظام خاص لتسهيل اكتشاف الشارع الحقيقي ويعتمد على سرعة المستخدم والاتجاه وايضا حساسات الهاتف الجيروسكوب, هنا كورس تعليمي حول هذا النظام،
العوامل المساعدة في زيادة دقة هذا النظام
- البيانات التاريخية لسرعة الشارع (لذلك تجنب التعديلات الغير ضرورية لحماية البيانات)
- استمرارية الشارع (تجنب العقد والنقاط الغير ضرورية)
- موقع الشارع يجب ان يكون في منتصف نقاط الموقع gps
- اضافة معلومات عرض الشارع
الصورة ادناه تضهر فيها عقد غير ضرورية وايضا الشارع السريع لا يقع في منتصف نقاط الموقع gps مما قد يسبب اخطاء في موقع المسار
اضافة عرض الشارع يجب التركيز على بداية تفرع الشارع حيث تحدث المشاكل غالبا, يمكن حساب عدد المسارات لاضافة عددها ولا داعي لتغيير عرض المسار الافتراضي 3.5
تجنب الطرق (penalty)
عندما يقوم البرنامج بتجنب طريق معين (مثلا تجنب الطريق الغير معبد) فانه يقوم بوضع وقت تاخير اضافي على الوصلة الخاصة بالشارع ليقوم بحساب مسار اخر اسرع, لا يضهر هذا التاخير الاضافي للمستخدم وانما يستخدم فقط لاغراض تجنب المسار
معادلة حساب المسار = (طول الطريق/السرعة) + معامل التاخير
معامل التاخير هي بيانات لا يتم التصريح بها من المطورين, لكن تم التعرف على بعضها من التجربة وهذه امثلة تقريبية في الجدول
معاملات تاخير المسافات الطويلة
| الطريق | معامل التاخير | متى يتم تطبيق المعامل |
|---|---|---|
| طريق حر | لا يوجد | لا يوجد |
| سريع اولي | لا يوجد | لا يوجد |
| منحدر | لا يوجد | لا يوجد |
| سريع ثانوي | عالي جدا | مسافة القيادة اكثر من 120 كم |
| شارع رايسي | عالي جدا | مسافة القيادة اكثر من 50 كم |
| شارع | عالي جدا | مسافة القيادة اكثر من 30 كم |
من الجدول اعلاه يمكنك معرفة ان التطبيق في المسارات الطويلة يستخدم الطرق السريعة دائما ويتجنب الطرق العادية حتى اذا كانت توفر ساعات من وقت الرحلة, مما قد يستبب بطرق طويلة جدا تشمل الطرق السريعة فقط, لذلك قد يستخدم المحررين خاصية حساب المسار مفضل ليتم معاملة الشارع الرايسي كطريق سريع ثانوي, ومعاملة السريع الثانوي كسريع رايسي لغرض رسم المسار فقط بدون تغيير نوع الطريق
معاملات تاخير المسافات المتوسطة والقصيرة
| نوع الطريق | معامل التاخير | متى يتم تطبيق المعامل |
|---|---|---|
| طريق حر | 0 ثانية | |
| سريع اساسي | 2 ثانية | دائما |
| سريع ثانوي | 5 ثانية | دائما |
| شارع رايسي | 10 ثانية | دائما |
| شارع | 20 ثانية | دائما |
| طريق ضيق | 6 دقائق | للسيارات فقط |
| طريق خاص | عالية جدا | عند وجود مسار بديل |
| موقف سيارات | عالية جدا | عند وجود طريق بديل |
| تحت الصيانة | عالي جدا | عند وجود طريق بديل |
من الجدول اعلاه يتبين كيف يقوم البرنامج بتفضيل السير في الطرق ذات المستوى العالي اولا ثم نزولا للمستويات الاقل, اما طريق وقوف سيارات مثلا لا يتم استخدامه في المسار الا بحالة لا يوجد مسار بديل اخر, هذا النوع من الطريق يستخدم في محطات الوقود فلا يتم توجيه السائق الى محطة الوقود الا اذا كان هو الطريق الوحيد للوصول الى الوجهة
| حالة الطريق | معامل التاخير | متى يتم تطبيق المعامل |
|---|---|---|
| عقدة جديدة | 5 ثانية | في الطريق الجديد |
| عقدة قديمة | 1 ثانية | جميع العقد في المسار |
| انعطاف | 5-10 ثانية | دائما (اليمين 5ث, اليسار 10ث) |
| دخول وخروج الدوار | 5 ثانية | دائما |
| خروج من طريق سريع | 10 ثانية | دائما |
| طريق يحتوي قيود | عالية جدا | للمشمولين بالقيود فقط |
| اشارة ”غير معبد” | 6 دقيقة | اعدادات السائق تسمح بالطرق غير المعبدة |
| اشارة ”غير معبد” | عالية جدا | اعدادات السائق تمنع الطرق غير المعبدة |
| انعطاف صعب | 1 دقيقة | اعدادات السائق تسمح بالانعطاف الصعب |
| انعطاف صعب | عالية جدا | اعدادات السائق تمنع الانعطاف الصعب |
من الجدول اعلاه قد تلاحض السلوك الغريب عندما يبتعد المسار عن الشارع الرايسي ثم يعود وذلك لتجنب العقد الكثيرة بالمسار الرايسي, والنظام يفترض كل عقدة ممكن ان تسبب تاخير ثواني قليلة لانها تقاطع, لذلك ننصح دائمة بعدم ترك العقد الغير ضرورية في الشوارع, توجد سكربتات مخصصة لمسح العقد الغير ضرورية
التحويلات المسارية
ويز مصمم لتوصيل السائق باسرع طريق, احيانا يقوم بادخال المستخدم في طرق جانبية كثيرة لا داع لها في سبيل توفير دقيقة واحدة بسبب الزحام على الخط الرايسي, وهذا مزعج للسواق .. لذلك تم منع هذه التحويلات الاضافية اذا كان توفير الوقت اقل من 5 دقائق, وفق قواعد معينة
تجنب التحويلات الكبيرة
يقوم النظام بتجنب الخروج عن الطريق السريع والسير في طرق الجانبية ثم الرجوع الى نفس الطريق السريع مرة اخرى اذا كان المسار يوفر اقل من 5 دقائق
- في البداية يجب ان يعرف النظام ما هو الطريق السريع المستمر؟, يتم ذلك عن طريق اختيار نفس الاسم (او الاسم الثانوي) ونفس نوع الطريق السريع,
- ويجب ان يعرف النظام ما هي الطرق الجانبية؟, تكون باسم مختلف ونوع شارع مختلف وتكون متعددة اكثر من وصله واحدة
اذا انطبقت هذه الشروط فان النظام يتجنب الخروج من الطريق السريع او الحر الى الشوارع الجانبية اذا كان يوفر اقل من 5 دقائق, ويجب ان يكون طول الشوارع الجانبية اقل من 5كم ليتم تجنبها
اما في السريع الثانوي فيتم تجنب الشوارع الجانبية اذا كانت بطول اقل من 0.5كم وتوفر وقت اقل من 5 دقائق
صورة اعلاه توضح خروج المسار عن الطريق السريع وعودته .. اسبابها قد تكون
- عدم تطابق اسماء وصلات الطريق السريع
- وجود ازدحام على الطريق السريع بتاخير اكثر من 5 دقائق
المشاكل المرتبطة بنظام تجنب التحويلات الكبيرة …
قد تنطبق شروط النظام في حالات معينة لا تحتاج الى تجنب المسارات, فعند قطع الاستدارة من المنتصف تكونت طرق تعتبر جانبية وباكثر من قطعه واسم مختلف, والطريق السريع يحقق شروط الاستمرارية قبل وبعد الاستدارة (نفس الاسم والنوع)
فان البرنامج يقوم بتجنب هذه الاستدارة غالبا كما الصورة في الاسفل
تجنب التحويلات الصغيرة
عندما يقوم النظام بالتوجيه الى اليسار (الاخضر) احيانا يقوم بعمل توجيه (يمين –> استدر للعودة –> الى الامام) كما في اللون الاحمر, لان المسار الاحمر يكون اسرع في بعض الحالات, يقوم التطبيق بتجنب المسار الاحمر بالعادة اذا كان يوفر وقت اقل من دقيقة (الزمن يكون متغير احسانا), عن طريق منع المسارات التالية
- يمين –> استدر للعودة –> الى الامام
- او باعكس ( الى الامام –> استدر للعودة –> يمين)







