تخطيط مسار

في بعض الأحيان، قد تحتاج إلى تخطيط المسار الذي يقدّمه تطبيقك للمستخدمين. يمكن أن يساعدك استخدام رمز مميّز للمسار من Routes API أو Routes Preferred API أو Route Optimization API في تحديد شيئَين للمسار المخطّط:

  • خط متعدد الخطوط للمسار

  • أهداف المسار

على سبيل المثال، إليك بعض الأمثلة على أهداف التوجيه التي قد تكون لديك:

  • تقليل وقت التسليم: قد يريد النشاط التجاري الذي يقدّم خدمة توصيل الطعام تقليل الوقت الذي يستغرقه تسليم الطعام.

  • تقليل وقت التنقّل أو استهلاك الوقود: قد يريد نشاط تجاري في مجال الخدمات اللوجستية تحسين كفاءة سائقيه وخفض تكاليف الوقود.

  • تقليل الوقت المستغرَق للوصول إلى الوجهة: قد تحتاج عملية إرسال الخدمة إلى تقليل الوقت المستغرَق لنقل موظّفي التشغيل إلى طلب العمل.

  • خفض التكاليف وتحسين السلامة: قد يريد نشاط مشاركة الركوب العثور على مسار يقلّل من تكلفة التنقّل للركاب ويتجنّب مناطق معيّنة لأسباب تتعلّق بالسلامة.

لمزيد من المعلومات عن تخطيط مسار باستخدام رمز مسار، اطّلِع على طلب رمز مسار في واجهة برمجة التطبيقات Routes API والخطوط المتعددة المنحنية للانتقال ورموّز المسارات في واجهة برمجة التطبيقات Route Optimization API.

سبب استخدام رمز مسار لأهداف المسار

باستخدام رمز تعريف مسار من Routes API أو Routes Preferred API أو Route Optimization API، يمكنك التحكّم بشكلٍ أكبر في المسار المقدَّم:

  • خطِّط للمسار مسبقًا لاستخدام حزمة تطوير البرامج Navigation SDK متى كان ذلك ممكنًا.

  • اختَر أفضل مسار لاستخدام حزمة Navigation SDK. إذا طلبت رموز مميزة للمسارات عند إنشاء مسارات في Routes API، ستحصل على رمز مميز للمسار لكل مسار تم إنشاؤه. يمكنك بعد ذلك اختيار الرمز المميّز للمسار الذي تريد استخدامه عند تمريره إلى Navigation SDK.

  • تقدير السعر مسبقًا، بما في ذلك تقديرات وقت الوصول والمسافة على الرغم من أنّ التكلفة والوقت الفعليين قد يختلفان، يقلّل هذا التقدير الفارق بين التكلفة المتوقّعة والتكلفة الفعلية للمسار.

  • تحديد أهداف أكثر تقدّمًا للمسار، مثل المسار الصديق للبيئة أو المسار الأقصر

آلية عمل الرموز المميّزة للمسارات

يمكنك استخدام Routes API أو Routes Preferred API أو Route Optimization API لتخطيط مسار باستخدام أهداف المسار. يمكنك تمرير رمز مسار تم إرجاعه من أي من واجهات برمجة التطبيقات هذه إلى حزمة تطوير البرامج (SDK) لنظام التنقّل من أجل توجيه كيفية توجيه مركبتك.

في ما يلي ما يحدث عند طلب رمز مسار واستخدامه:

  1. تُعرِض Routes API أو Routes Preferred API أو Route Optimization API رمزًا مميّزًا مشفَّرًا للمسار يشمل الخط المتعدّد الأضلاع للمسار وأهداف المسار.

  2. يمكنك تمرير رمز تعريف المسار إلى حزمة تطوير البرامج Navigation SDK.

  3. تسترجع حزمة Navigation SDK المسار، أو إذا لم يكن المسار متاحًا بسبب تغيُّر الظروف، تسترجع أفضل مسار مطابق.

  4. أثناء القيادة على المسار، إذا تغيّرت حركة المرور أو أحوال الطريق الأخرى، أو إذا انحرف المركبة عن المسار المخطَّط، تحاول المسارات المعدَّلة باستمرار مطابقة أفضل مسار استنادًا إلى أهداف المسار في الرمز المميّز.

تزيد هذه العملية من مدى تطابق المسار الفعلي مع المسار المخطَّط له.

أسباب عدم اتّباع المسار المخطّط بدقة

يمكنك اعتبار المسار المخطّط وأهداف المسار إرشادات يجب اتّباعها، وهي ليست إلزامية. قد تلاحظ اختلافًا بين المسار المخطّط و المسار الذي تقدّمه ميزة "التنقّل الإرشادي" بسبب الاختلافات في حالة الطريق أو الموقع الجغرافي للبدء أو المَعلمات الأخرى التي تغيّرت منذ إنشاء المسار المخطّط. وقد يؤدي هذا الاختلاف إلى عدم تطابق بين أهدافك المخطّط لها والفعلية للمسافة والوقت المقدَّر للوصول، بالإضافة إلى غيرها من ميزات الرحلة العميقة الأهمية.

تخطيط مسار باستخدام رمز مسار

يمكنك تخطيط مسار من خلال إنشاء رمز مسار ثم تمريره إلى مكتبة تنمية البرامج (SDK) Navigation، كما هو موضّح في الخطوات التالية:

الخطوة 1: إنشاء رمز مميّز للمسار باستخدام Routes API أو Routes Preferred API أو Route Optimization API

  1. اطلب رمز مسار باستخدام إحدى الطريقتَين التاليتَين:

    • Routes API: computeRoutes. لمزيد من المعلومات حول طلب رمز مسار في Routes API، يُرجى الاطّلاع على حساب مسار وطلب رمز مسار.

    • Routes Preferred API: computeCustomRoutes. لمزيد من المعلومات عن طلب رمز مميّز للمسار في واجهة برمجة التطبيقات Routes Preferred API، يُرجى الاطّلاع على مقالة تخطيط مسار.

    • Route Optimization API: optimizeTours أو batchOptimizeTours. لمزيد من المعلومات عن طلب رمز مسار في Route Optimization API، يُرجى الاطّلاع على الخطوط المتعددة المنحنية للانتقال ورموز مسار.

  2. إعداد واجهة برمجة التطبيقات Routes API أو Routes Preferred API طلب لاستيفاء متطلبات استخدام رمز مسار مميز:

    • اضبط travel_mode على DRIVING أو TWO_WHEELER.
    • اضبط routing_preference على TRAFFIC_AWARE أو TRAFFIC_AWARE_OPTIMAL.
    • لا تستخدِم Via نقطة طريق.

الخطوة 2: تمرير الرمز المميّز للمسار إلى حزمة تطوير البرامج Navigation SDK

  1. تخزين الرمز المميّز للمسار: في حزمة تطوير البرامج (SDK) للتنقّل، يمكنك إعداد سلسلة لتخزين الرمز المميّز للمسار. على سبيل المثال:

    let routeToken = "route token returned by Routes API"

    مثال على رمز مسار معروض:

    {
    // Other fields
    "routeToken": "CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g",
    }
    
  2. أرسِل رمز مسار التنقّل إلى حزمة تطوير البرامج (SDK) لتطبيق Navigation باستخدام الأسلوب mapView.navigator setDestinations، مع تحديد نقاط التوقف الوجهة نفسها التي استخدمتها عند إنشاء رمز مسار التنقّل:

    mapView.navigator?.setDestinations([waypoint1, waypoint2], routeToken: routeToken, callback: {...})

تُعرِض طريقة Navigator.setDestinations حالة الطلب. إذا تم العثور على مسار من الموقع الجغرافي للمستخدم إلى الوجهة المحدّدة، يتم عرضRouteStatus.OK.

لمزيد من المعلومات عن هذه الطريقة، يُرجى الاطّلاع على GMSNavigator.setDestinations.

مثال

توضّح أمثلة الرموز البرمجية التالية كيفية استرداد مسار مخطّط.

Swift

let location = CLLocationCoordinate2D(latitude: 47.67, longitude: -122.20)
let waypoint1 = GMSNavigationWaypoint(location: location, title: "waypoint from location")!
let waypoint2 = GMSNavigationWaypoint(placeID: "samplePlaceID", title: "waypoint from Place ID")!

let routeToken = "route token returned by Routes API"
mapView.navigator?.setDestinations([waypoint1, waypoint2], routeToken: routeToken, callback: {...})

Objective-C

CLLocationCoordinate2D location = CLLocationCoordinate2DMake(47.67, -122.20);
GMSNavigationWaypoint *waypoint1 = [[GMSNavigationWaypoint alloc] initWithLocation:coordinate title:@"waypoint from location"];
GMSNavigationWaypoint *waypoint2 = [[GMSNavigationWaypoint alloc] initWithPlaceID:@"samplePlaceID"
                                                                            title:@"waypoint from Place ID"];
NSString *routeToken = @"route token returned by Routes API";

[mapView.navigator setDestinations:@[waypoint1, waypoint2]
                         routeToken:routeToken
                           callback:^(GMSRouteStatus routeStatus){...}];

كيفية تفاعل الرموز المميّزة للمسارات وحزمة تطوير البرامج (SDK) للتنقّل

في ما يلي كيفية تفاعل المسار الذي تم إنشاؤه بواسطة حزمة Navigation SDK والمسار المخطَّط في الرمز المميّز للمسار:

  • تلغي أي وجهات تم ضبطها سابقًا.

  • يستخدم الموقع الجغرافي لنقطة انطلاق المركبة.

  • يتم تعديلها وفقًا لظروف الطرق وحركة المرور. اطّلِع على الأسباب التي قد تؤدي إلى عدم اتّباع المسار المخطَّط بدقة.

  • تجاهل الخيارات التالية المرتبطة بالتوجيه لأنّها غير ضرورية:

    • avoidsHighways
    • avoidsTolls
    • avoidsFerries
    • licensePlateRestriction
  • المواقع التي تتابعها:

    • الخيارات المتعلّقة بنقاط الطريق، مثل الإعداد المفضّل لجانب الطريق

    • أهداف المسار: إذا كان على حزمة SDK للتنقّل تعديل المسار الذي تم إرجاعه، ستستخدِم أهداف المسار التي حدّدتها عند طلب رمز مسار التنقّل. لهذا السبب، عليك استخدام الخيارات المتعلقة بالنقاط المرجعية نفسها التي حدّدتها في Routes API.