تخطيط مسار

في بعض الأحيان، قد ترغب في تخطيط المسار الذي يوفره تطبيقك للمستخدمين. استخدام يمكن أن يساعدك الرمز المميّز للمسار من واجهة برمجة تطبيقات Routes API (أو واجهة برمجة التطبيقات Routes Preferred API) في تحديد شيئين للمسار المخطط له:

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

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

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

  • تقليل الوقت اللازم للتسليم: قد يحتاج نشاط تجاري يقدم الطعام إلى تقليل الوقت المستغرق لتوصيل الطعام.

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

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

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

لمزيد من المعلومات حول تخطيط مسار باستخدام رمز مميز للمسار، راجع طلب رمز مميّز للمسار

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

باستخدام رمز مميز للمسار من واجهة برمجة التطبيقات المفضلة للمسارات أو المسارات، يمكنك الحصول على المزيد التحكم في المسار المقدم:

  • التخطيط لمسار مسبقًا حتى تستخدمه "حزمة SDK الخاصة بالتنقّل" متى أمكن.

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

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

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

آلية عمل الرموز المميّزة للمسار في Routes API

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

إليك ما يحدث عند طلب رمز مميز للمسار واستخدامه من واجهة برمجة تطبيقات المسارات:

  1. تعرض Routes API رمزًا مميّزًا للمسار مشفّرًا يتضمّن المسار. والخطوط المتعددة وأهداف المسار.

  2. يمكنك تمرير الرمز المميّز للمسار إلى حزمة تطوير البرامج (SDK) للتنقل.

  3. تسترد حزمة SDK للتنقل المسار، أو إذا لم يكن المسار متاحة بسبب الظروف المتغيرة، فإنها تسترد أفضل مطابقة المسار الصحيح.

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

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

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

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

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

يمكنك تخطيط مسار عن طريق إنشاء رمز مسار مميز وتمريره إلى حزمة SDK للتنقل، كما هو موضح في الخطوات التالية:

الخطوة 1: إنشاء رمز مميز للمسار باستخدام واجهة برمجة التطبيقات المفضلة للمسارات أو المسارات

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

    • واجهة برمجة تطبيقات المسارات: computeRoutes. لمزيد من المعلومات عن لطلب رمز مميز للمسار في واجهة برمجة تطبيقات المسارات، يمكنك الاطلاع على حساب مسار طلب رمز مميّز للمسار

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

  2. إعداد طلب المسار لاستيفاء متطلبات استخدام مسار الرمز المميز:

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

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

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

    let routeToken = "route token returned by Routes API"

    مثال على رمز مميّز للمسار تم إرجاعه:

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

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

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

لمزيد من المعلومات عن هذه الطريقة، يُرجى الاطّلاع على Navigator.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) للتنقل

في ما يلي كيفية إنشاء المسار باستخدام حزمة SDK المخصصة للتنقل تفاعل المسار في الرمز المميز للمسار:

  • يتجاهل أي وجهات تم إعدادها سابقًا.

  • تستخدم موقع بدء المركبة.

  • التعديلات لأحوال الطرق وحركة المرور عرض سبب عدم اتّباع مسار مخطط له بدقة

  • يتجاهل الخيارات التالية المتعلقة بالتوجيه باعتبارها غير ضرورية:

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

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

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