في بعض الأحيان، قد تحتاج إلى تخطيط المسار الذي يقدّمه تطبيقك للمستخدمين. يمكن أن يساعدك استخدام رمز مميّز للمسار من 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، ستحصل على رمز مميز للمسار لكل مسار تم إنشاؤه. يمكنك بعد ذلك اختيار الرمز المميّز للمسار الذي تريد استخدامه عند تمريره إلى حزمة تطوير البرامج (SDK) لميزة التنقّل.
تقدير السعر مسبقًا، بما في ذلك تقديرات وقت الوصول والمسافة على الرغم من أنّ التكلفة والوقت الفعليين قد يختلفان، يقلّل هذا التقدير الفارق بين التكلفة المتوقّعة والتكلفة الفعلية للمسار.
تحديد أهداف أكثر تقدّمًا للمسار، مثل المسار الصديق للبيئة أو المسار الأقصر
آلية عمل الرموز المميّزة للمسارات
يمكنك استخدام Routes API أو Routes Preferred API أو Route Optimization API لتخطيط مسار باستخدام أهداف المسار. يمكنك تمرير رمز مسار تم إرجاعه من أي من واجهات برمجة التطبيقات هذه إلى حزمة تطوير البرامج (SDK) لنظام التنقّل لتوجيه كيفية توجيه مركبتك.
في ما يلي ما يحدث عند طلب رمز مسار واستخدامه:
تُعرِض Routes API أو Routes Preferred API أو Route Optimization API رمزًا مميّزًا مشفَّرًا للمسار يشمل الخط المتعدّد الأضلاع للمسار وأهداف المسار.
يمكنك تمرير رمز تعريف المسار إلى حزمة تطوير البرامج Navigation SDK.
تسترجع حزمة Navigation SDK المسار، أو إذا لم يكن المسار متاحًا بسبب تغيُّر الظروف، تسترجع أفضل مسار مطابق.
أثناء القيادة على المسار، إذا تغيّرت حركة المرور أو أحوال الطريق الأخرى، أو إذا انحرف المركبة عن المسار المخطّط، تحاول المسارات المعدّلة باستمرار مطابقة أفضل مسار استنادًا إلى أهداف المسار في الرمز المميّز.
تزيد هذه العملية من مدى تطابق المسار الفعلي مع المسار المخطَّط له.
أسباب عدم اتّباع المسار المخطَّط بدقة
يمكنك اعتبار المسار المخطّط وأهداف المسار إرشادات يجب اتّباعها، وهي ليست إلزامية. قد تلاحظ اختلافًا بين المسار المخطّط و المسار الذي تقدّمه ميزة "التنقّل الإرشادي" بسبب الاختلافات في حالة الطريق أو الموقع الجغرافي للبدء أو المَعلمات الأخرى التي تغيّرت منذ إنشاء المسار المخطّط. وقد يؤدي هذا الاختلاف إلى عدم تطابق بين أهدافك المخطّط لها والفعلية للمسافة والوقت المقدَّر للوصول، بالإضافة إلى غيرها من ميزات الرحلة العميقة الأهمية.
تخطيط مسار باستخدام رمز مسار
يمكنك تخطيط مسار من خلال إنشاء رمز مسار ثم تمريره إلى مكتبة تنمية البرامج (SDK) Navigation، كما هو موضّح في الخطوات التالية:
الخطوة 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 طلب لاستيفاء متطلبات استخدام رمز مسار مميز:
- اضبط
travel_mode
علىDRIVING
أوTWO_WHEELER
. - اضبط
routing_preference
علىTRAFFIC_AWARE
أوTRAFFIC_AWARE_OPTIMAL
. - لا تستخدِم
Via
نقطة طريق.
- اضبط
الخطوة 2: تمرير الرمز المميّز للمسار إلى حزمة تطوير البرامج Navigation SDK
تخزين الرمز المميّز للمسار: في حزمة تطوير البرامج (SDK) للتنقّل، يمكنك إعداد سلسلة لتخزين الرمز المميّز للمسار. على سبيل المثال:
String routeToken = "route token returned by Routes API";
مثال على رمز مسار معروض:
{ // Other fields "routeToken": "CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g", }
أرسِل رمز مسار التنقّل إلى حزمة تطوير البرامج (SDK) لتطبيق Navigation باستخدام الطريقة
Navigator.setDestinations
، مع تحديد نقاط الالتقاء الوجهة نفسها التي استخدمتها عند إنشاء رمز مسار التنقّل:setDestinations(List
destinations, CustomRoutesOptions customRoutesOptions, DisplayOptions displayOptions); على سبيل المثال:
CustomRoutesOptions customRoutesOptions = CustomRoutesOptions.builder() .setRouteToken(routeToken) .setTravelMode(TravelMode.DRIVING) .build();
تُعرِض طريقة Navigator.setDestinations
حالة الطلب. إذا عثر على مسار من موقع المركبة إلى الوجهة المحدّدة، يعرضRouteStatus.OK
.
لمزيد من المعلومات حول هذه الطريقة، يُرجى الاطّلاع على
Navigator.setDestinations
.
مثال
يوضّح مثال الرمز البرمجي التالي كيفية تحديد مسار مخطّط باستخدام رمز ميزات ملف المسار.
ArrayList <Waypoint> destinations = Lists.newArrayList();
Waypoint waypoint1 =
Waypoint.builder()
.setLatLng(10, 20)
.setTitle("title")
.setVehicleStopover(true)
.build();
destinations.add(waypoint1);
Waypoint waypoint2 =
Waypoint.builder()
.setPlaceId("ChIJYV-J-ziuEmsRIMyoFaMedU4")
.setTitle("title")
.setVehicleStopover(true)
.build()
destinations.add(waypoint2);
String routeToken = "route token returned by Routes API";
CustomRoutesOptions customRoutesOptions =
CustomRoutesOptions.builder()
.setRouteToken(routeToken)
.setTravelMode(TravelMode.DRIVING)
.build();
// Existing flow to get a Navigator.
NavigationApi.getNavigator(...);
// Existing flow for requesting routes.
ListenableResultFuture<RouteStatus> routeStatusFuture =
navigator.setDestinations(destinations, customRoutesOptions);
// Or with display options.
DisplayOptions displayOptions = new DisplayOptions();
ListenableResultFuture<RouteStatus> routeStatusFuture =
navigator.setDestinations(destinations, customRoutesOptions, displayOptions);
كيفية تفاعل الرموز المميّزة للمسارات وحزمة تطوير البرامج (SDK) للتنقّل
في ما يلي كيفية تفاعل المسار الذي تم إنشاؤه بواسطة حزمة Navigation SDK والمسار المخطَّط في الرمز المميّز للمسار:
تلغِي أي وجهات تم ضبطها سابقًا.
يستخدم الموقع الجغرافي لنقطة انطلاق المركبة.
يتم تعديلها وفقًا لظروف الطرق وحركة المرور. اطّلِع على الأسباب التي قد تؤدي إلى عدم اتّباع المسار المخطَّط بدقة.
تجاهل الخيارات التالية المرتبطة بالتوجيه لأنّها غير ضرورية:
avoidsHighways
avoidsTolls
avoidsFerries
licensePlateRestriction
المواقع التي تتابعها:
الخيارات المتعلّقة بنقاط الطريق، مثل الإعداد المفضّل لجانب الطريق
أهداف المسار: إذا كان على حزمة SDK للتنقّل تعديل المسار الذي تم إرجاعه، ستستخدِم أهداف المسار التي حدّدتها عند طلب رمز مسار التنقّل. لهذا السبب، عليك استخدام الخيارات المتعلقة بالنقاط المرجعية نفسها التي حدّدتها في Routes API.