Rota Jetonları

Paylaşımlı bir yolculuk için en iyi rotayı belirlerken, en hızlı rota her zaman en iyi seçenek olmayabilir. Rotanızı özelleştirmek isteyebilirsiniz. Routes Preferred API, ComputeCustomRoutes yöntemini kullanıp bir rota hedefi belirterek rota özelleştirmenize olanak tanır.

Özel bir rota oluşturduğunuzda, Routes Preferred API bir rota jetonu oluşturur. Daha sonra, jetonu Android için Gezinme SDK'sına iletebilir ve özel rotayı alabilirsiniz.

Özel rota oluşturma hakkında daha fazla bilgi için Özel Rotalar Oluşturma bölümüne bakın.

Özel rota alınıyor

Navigator.setDestinations yöntemini kullanıp Android için Navigasyon SDK'sına rota jetonu ileterek özel rota alabilirsiniz.

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

Özel rota, daha önce ayarlanmış hedefleri geçersiz kılar. İlgili sürücünün başlangıç konumunu, yol ve trafik koşullarını kullanır.

Navigator.setDestinations şu parametreleri alır:

ParametreAçıklama
hedefler Ayarlanacak yeni hedef listesi.
customRoutesOptions Routes Preferred API tarafından döndürülen bir jetona göre, önceden hesaplanmış bir rotayı almak için kullanılacak seçenekler.
displayOptions Rotayı görüntülemek için kullanılacak seçenekler.

Navigator.setDestinations yöntemi, isteğin durumunu döndürür. Kullanıcının konumundan belirtilen hedefe giden bir rota bulunursa RouteStatus.OK sonucunu döndürür.

Örnek

Aşağıdaki kod örneği, özel bir yolun nasıl alınacağını gösterir.

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