في بعض الأحيان، قد تحتاج إلى تخطيط المسار الذي يوفره تطبيقك للمستخدمين. يمكنك استخدام رمز مسار من Routes API أو Routes Preferred API أو Route Optimization API لتحديد أمرين لمسارك المخطط له:
خطوط متعدّدة للمسار
أهداف المسار
على سبيل المثال، في ما يلي بعض الأمثلة على أهداف التوجيه التي قد تكون لديك:
تقليل وقت التسليم: قد ترغب شركة توصيل الطعام في تقليل الوقت الذي يستغرقه توصيل الطعام.
تقليل مدة الرحلة أو استهلاك الوقود: قد ترغب شركة خدمات لوجستية في تحسين كفاءة السائقين لديها وتقليل تكاليف الوقود.
تقليل الوقت المستغرَق للوصول إلى الوجهة: قد تهدف عملية إرسال الخدمة إلى تقليل الوقت المستغرَق لوصول المشغّلين إلى طلب العمل.
خفض التكاليف وتحسين السلامة: قد ترغب شركة مشاركة الرحلات في العثور على مسار أقل تكلفة للركاب ويتجنب مناطق معينة لأسباب تتعلق بالسلامة.
لمزيد من المعلومات حول تخطيط مسار باستخدام رمز مميّز للمسار، يُرجى الاطّلاع على الحصول على رمز مميّز للمسار في Routes API ونقل الخطوط المتعدّدة والرموز المميّزة للمسارات في Route Optimization API.
أهمية استخدام رمز مميّز للمسار من أجل تحقيق أهداف المسار
باستخدام رمز مسار من Routes API أو Routes Preferred API أو Route Optimization API، يمكنك التحكّم بشكل أكبر في المسار المقدَّم:
خطِّط لمسار مسبقًا لتستخدمه حزمة Navigation SDK.
اختيار أفضل مسار لتستخدمه حزمة تطوير البرامج (SDK) للتنقّل إذا طلبت رموز المسارات المميّزة عند إنشاء المسارات في Routes API، ستحصل على رمز مسار مميّز لكل مسار يتم إنشاؤه. يمكنك بعد ذلك اختيار الرمز المميّز للمسار الذي تريد استخدامه عند تمريره إلى حزمة تطوير البرامج (SDK) للتنقّل.
تقدير السعر مسبقًا، بما في ذلك تقديرات الوقت المقدَّر للوصول والمسافة على الرغم من أنّ التكلفة والوقت الفعليَّين قد يختلفان، يقلّل هذا التقدير من الفجوة بين تكلفة المسار المتوقّعة والفعلية.
تحديد أهداف أكثر تقدّمًا للمسارات، مثل المسار الصديق للبيئة أو أقصر مسار
طريقة عمل رموز المسارات المميّزة
يمكنك استخدام Routes API أو Routes Preferred API أو Route Optimization API لتخطيط مسار باستخدام أهداف المسار. يمكنك تمرير رمز مسار تم عرضه من أي من واجهات برمجة التطبيقات هذه إلى Navigation SDK لتوجيه كيفية تحديد مسار مركبتك.
إليك ما يحدث عند طلب رمز مسار واستخدامه:
تعرض واجهة برمجة التطبيقات Routes API أو Routes Preferred API أو Route Optimization API رمزًا مميّزًا مشفّرًا للمسار يتضمّن الخطوط المتعدّدة للمسار وأهداف المسار.
يتم تمرير الرمز المميّز للمسار إلى حزمة تطوير البرامج (SDK) للتنقّل.
تبدأ حزمة تطوير البرامج (SDK) للتنقّل في مسارك المخطّط له، حتى إذا كان هناك مسار أسرع متاح.
أثناء الرحلة، إذا تغيّرت حركة المرور أو ظروف الطريق، أو إذا غادرت المركبة المسار المخطط له، تحسب حزمة تطوير البرامج (SDK) للتنقّل مسارًا جديدًا يتّبع أهداف المسار وخيارات المسار المحدّدة في رمز المسار المميّز.
تساعد هذه العملية في تقريب المسار الفعلي من المسار المخطط له إلى أقصى حد.
أسباب عدم اتّباع المسار المخطَّط له بدقة
يبدأ التنقّل على مسارك المخطَّط له، ولكن يمكن أن يختلف المسار الفعلي عنه في حالات مثل ما يلي:
- تبدأ المركبة من نقطة بعيدة عن نقطة البداية المخطط لها.
- تغيُّر حركة المرور أو حالة الطريق أثناء الرحلة
- تغادر المركبة المسار المخطط له.
يمكن أن تؤثر هذه الاختلافات في المسافة والوقت المقدَّر للوصول وغيرهما من الجوانب المهمة للرحلة التي خطّطت لها.
التخطيط لمسار باستخدام رمز مميّز للمسار
يمكنك تخطيط مسار من خلال إنشاء رمز مميّز للمسار ثم تمريره إلى Navigation SDK، كما هو موضّح في الخطوات التالية:
الخطوة 1: إنشاء رمز مميّز للمسار باستخدام Routes API أو Routes Preferred API أو Route Optimization API
اطلب رمز مسار باستخدام إحدى الطرق التالية:
Routes API:
computeRoutes. لمزيد من المعلومات حول طلب رمز مسار في Routes API، يُرجى الاطّلاع على احتساب مسار والحصول على رمز مسار.Routes Preferred API:
computeCustomRoutes. لمزيد من المعلومات حول طلب رمز مميّز للمسار في Routes Preferred API، يُرجى الاطّلاع على تخطيط مسار.Route Optimization API:
optimizeToursأوbatchOptimizeTours. لمزيد من المعلومات حول طلب رمز مميّز للمسار في Route Optimization API، يُرجى الاطّلاع على الخطوط المتعدّدة للانتقال والرموز المميّزة للمسارات.
اضبط طلب Routes API أو Routes Preferred API لاستيفاء متطلبات استخدام رمز المسار:
- اضبط السمة
travelModeعلىDRIVEأوTWO_WHEELER. - اضبط السمة
routingPreferenceعلىTRAFFIC_AWAREأوTRAFFIC_AWARE_OPTIMAL. - لا تستخدِم نقاط المسار
Via.
- اضبط السمة
الخطوة 2: تمرير الرمز المميّز للمسار إلى حزمة تطوير البرامج (SDK) للتنقّل
تخزين الرمز المميّز للمسار: في حزمة تطوير البرامج (SDK) للتنقّل، يمكنك إعداد سلسلة لتخزين الرمز المميّز للمسار. على سبيل المثال:
let routeToken = "route token returned by Routes API"مثال على رمز مميّز للمسار تم عرضه:
{ // Other fields "routeToken": "CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g", }مرِّر الرمز المميّز للمسار إلى حزمة Navigation SDK باستخدام
mapView.navigator.setDestinations. حدِّد النقاط نفسها على المسار التي استخدمتها عند إنشاء الرمز المميّز للمسار:mapView.navigator?.setDestinations([waypoint1, waypoint2], routeToken: routeToken, callback: {...})تمرّر طريقة
setDestinationsحالة الطلب إلى دالة الاستدعاء. إذا عثر على مسار من الموقع الجغرافي للمستخدم إلى الوجهة المحدّدة، تكون الحالة.OK(GMSRouteStatusOK).
سيناريوهات الرحلات المتعدّدة المحطات
يمكنك ضبط 25 نقطة على المسار كحدّ أقصى.
لا تتيح طريقة setDestinations الرحلات المتعدّدة المحطات. استخدِم
continueToNextDestinationWithCompletion()
للانتقال بالنقطة على المسار إلى المرحلة التالية من الرحلة.
مثال
توضّح أمثلة الرموز البرمجية التالية كيفية استرداد مسار مخطّط له.
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:location 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) للتنقّل مع مسارك المخطّط له:
تلغي أي وجهات تم ضبطها سابقًا.
يستخدم الموقع الجغرافي لبدء الرحلة بالمركبة.
يتم تعديل الوقت المقدَّر للوصول حسب أحوال الطرق وحركة المرور. يُرجى الاطّلاع على أسباب عدم اتّباع المسار المخطَّط له بدقة.
يستخدم خيارات المسار المحدّدة في الرمز المميّز للمسار بدلاً من الإعدادات التالية في تطبيقك، بما في ذلك عند احتساب مسار جديد أثناء الرحلة:
avoidsHighwaysavoidsTollsavoidsFerrieslicensePlateRestriction- وضع السفر الذي تم ضبطه في تطبيقك
يتّبع هذه الإعدادات عند احتساب المسار أو تعديله:
أهداف المسار من الرمز المميّز للمسار، مثل المسار الصديق للبيئة أو أقصر مسار إذا اضطرت حزمة تطوير البرامج (SDK) للتنقّل إلى تعديل المسار، فإنّها تستخدم أهداف المسار التي حدّدتها عند طلب رمز المسار المميّز.
الخيارات المتعلّقة بنقاط المسار من تطبيقك، مثل تفضيل جانب الطريق استخدِم الخيارات نفسها المتعلّقة بنقاط المسار التي حدّدتها عند طلب الرمز المميّز للمسار.