אסימוני מסלול

כשאתם קובעים את המסלול הטוב ביותר לנסיעה משותפת, ייתכן שהמסלול המהיר ביותר לא תמיד יהיה האפשרות הטובה ביותר. ייתכן שתרצו להתאים אישית את המסלול. הממשק Routes Preferred API מאפשר לכם להתאים אישית מסלול על ידי ציון יעד המסלול באמצעות השיטה ComputeCustomRoutes.

כשיוצרים מסלול בהתאמה אישית, Routes Preferred API יוצר אסימון מסלול. לאחר מכן תוכל להעביר את האסימון ל-Navigation SDK ל-Android ולאחזר את הנתיב המותאם אישית.

מידע נוסף על יצירת מסלול מותאם אישית זמין במאמר יצירת נתיבים מותאמים אישית.

אחזור מסלול מותאם אישית

אפשר לאחזר מסלול מותאם אישית על ידי העברת אסימון מסלול ל-Navigation 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);