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

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

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

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

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

תוכלו לאחזר מסלול מותאם אישית על ידי העברת אסימון נתיב ל-Navigation SDK for Android באמצעות השיטה Navigator.setDestinations.

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

המסלול המותאם אישית מבטל את כל היעדים שהוגדרו בעבר. היא מתבססת על מיקום ההתחלה של הנהג, על מצב הכביש ומצב התנועה.

הפונקציה Navigator.setDestinations לוקחת את הפרמטרים הבאים:

פרמטרתיאור
יעדים גיאוגרפיים רשימת היעדים החדשה שיש להגדיר.
customRoutesOptions האפשרויות שישמשו לאחזור מסלול שמחושב מראש, על סמך אסימון שהוחזר על ידי Routes Preferred API.
displayOptions האפשרויות שישמשו להצגת המסלול.

ה-method 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);