الرموز المميزة للمسار

عندما تحدد أفضل مسار لرحلة مشاركة الرحلات، فقد لا يكون أسرع مسار دائمًا هو الخيار الأفضل. قد ترغب في تخصيص مسارك. تتيح لك Routes Preferred API تخصيص مسار من خلال تحديد هدف المسار باستخدام طريقة ComputeCustomRoutes.

عند إنشاء مسار مخصّص، تُنشئ Routes Preferred API رمزًا مميزًا للمسار. يمكنك بعد ذلك تمرير الرمز المميز إلى حزمة SDK للتنقل لنظام التشغيل Android واسترداد المسار المخصص.

لمزيد من المعلومات حول إنشاء مسار مخصّص، يُرجى مراجعة إنشاء مسارات مخصّصة.

استرداد مسار مخصص

يمكنك استرداد مسار مخصص عن طريق تمرير رمز مميز للمسار إلى حزمة SDK للتنقل في نظام Android باستخدام طريقة Navigator.setDestinations.

setDestinations(List<Waypoint> destinations, CustomRoutesOptions customRoutesOptions, DisplayOptions displayOptions);

يُلغي المسار المخصّص أي وجهات تم ضبطها سابقًا. وتستخدم موقع بدء السائق المقابل وظروف الطريق وحركة المرور.

تستخدم Navigator.setDestinations المَعلمات التالية:

المَعلمةالوصف
الوجهات قائمة الوجهات الجديدة التي سيتم إعدادها.
customRoutesOptions الخيارات التي سيتم استخدامها لاسترداد مسار محسوب مسبقًا، استنادًا إلى رمز مميز تعرضه Routes Preferred API.
displayOptions الخيارات التي سيتم استخدامها لعرض المسار.

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

مثال

يوضح مثال الرمز التالي كيفية استرداد مسار مخصص.

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 RoutesPreferred API";

CustomRoutesOptions customRoutesOptions =
   CustomRoutesOptions.builder()
      .setRouteToken(routeToken)
      .setTravelMode(CustomRoutesOptions.TravelMode.TWO_WHEELER)
      .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);