تخطيط مسار

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

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

  • أهداف مسارك

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

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

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

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

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

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

لماذا يجب استخدام رمز مميّز للمسار لأهداف المسار؟

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

  • خطِّط لمسار مسبقًا لتستخدمه حزمة Navigation SDK عند الإمكان.

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

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

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

طريقة عمل رموز المسار

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

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

  1. تعرض واجهة Routes API أو واجهة Routes Preferred API أو واجهة Route Optimization API رمزًا مميزًا مشفّرًا للمسار يتضمّن المضلّع المتعدد الخاص بالمسار وأهداف المسار.

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

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

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

تساعد هذه العملية في تحديد مسار قريب قدر الإمكان من المسار المخطّط له.

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

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

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

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

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

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

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

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

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

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

    let routeToken = "route token returned by Routes API"
    

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

    {
    // Other fields
    "routeToken": "CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g",
    }
    
  2. مرِّر رمز المسار إلى حزمة Navigation SDK باستخدام الطريقة 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){...}];

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

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

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

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

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

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

    • avoidsHighways
    • avoidsTolls
    • avoidsFerries
    • licensePlateRestriction
  • المتابعون:

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

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