Seyahat Verilerini Doğrudan Filo Motorundan Alma

Tüketici SDK'sı, tüketici uygulamalarını yolculuğuna götüren aracın konumunu ve ilerleme durumunu göstermek için araç paylaşma olanağı sunan anahtar teslim bir özellik sunar.

Ancak bazı Rideshare sağlayıcıları esnek entegrasyon sayesinde son kullanıcı müşteri deneyimi üzerinde daha fazla kontrol sahibi olmak isterken Google'ın doğru ve gerçek zamanlı araç konumu, tahmini varış süresi ve rotasından yararlanmaya devam etmek istiyor. Bu kılavuzda, Tüketici SDK'sını kullanmanın alternatifi olarak gezi verilerini doğrudan Fleet Engine'den nasıl alabileceğiniz gösterilmektedir.

Genel bakış

Seyahat bilgilerini doğrudan Fleet Engine'den almak için JOURNEY_SHARING_V1S görünümünü (RPC | REST) belirterek GetTrip yöntemini çağırın.

static final String PROJECT_ID = "my-rideshare-co-gcp-project";
static final String TRIP_ID = "trip-A";

String tripName = "providers/" + PROJECT_ID + "/trips/" + TRIP_ID;
GetTripRequest getTripRequest =
    GetTripRequest.newBuilder()
        .setName(tripName)
        .setView(JOURNEY_SHARING_V1S)
        .build();
Trip trip = tripService.getTrip(getTripRequest);

Sonuçta ortaya çıkan Seyahat (RPC | REST) nesnesinde aşağıdaki alanlar Seyahat için mevcut en son bilgilerle doldurulur:

  • name
  • vehicle_id
  • trip_status
  • trip_type
  • number_of_passengers
  • pickup_point
  • actual_pickup_point
  • pickup_time
  • intermediate_destinations
  • intermediate_destinations_version
  • intermediate_destination_index
  • dropoff_point
  • actual_dropoff_point
  • dropoff_time
  • remaining_waypoints
  • last_location
  • view (== JOURNEY_SHARING_V1S)

Araç paylaşma sağlayıcıları genellikle her iki ila beş saniyede bir, binici aracın ilerleme durumunu aktif olarak izlerken her bir yolculuğun durumu için gezi hizmetinde anket yapar. Araç konum güncellemeleri genellikle daha uzun aralıklarla (ör. 10 saniye) yapılır. GetTrip için yapılan bir önceki çağrıdan bu yana herhangi bir güncelleme olup olmadığını görmek için Trip.last_location.update_time alanı izlenebilir.

Yolculuk ara noktaları

Seyahat varlığı, TripWaypoint türünde yinelenen bir alan içeriyor (RPC | REST). Bu alan, aracın bu yolculuğun son kalkış noktasından önce sırayla ilerlemesi gereken tüm ara noktaları içerir. Yolculuk Paylaşımı görünümünün belirtilmesi Fleet Engine'e, güncellenen bilgileri kalan_waypoints[0] TripWaypoint öğesine yerleştirmesini bildirir. Yolculuk Paylaşımı dışındaki görünümlerde, söz konusu referans noktası genellikle atanan aracın en son konumunu yansıtmaz.

A Seyahatinin remaining_waypoints alanı için bir örnek aşağıda verilmiştir:

[0] location.point = trip.pickup_point.point
trip_id = "trip_A"
referans noktası_türü = PICKUP_WAYPOINT_TYPE
yol_yolu_yolu = EnlBoy[] Kalan yoldan teslim almaya kadar 1. EnlBoy
Kalan yoldan teslim almaya kadar 2. EnlBoy
...
kalan yoldan teslim almaya kadar son EnlBoy
pickup_point [teslim_alma_noktası], sondan farklıysa
traffic_data
mesafe_ölçerleri = yol_to_yol noktası boyunca mevcut araç_konumundan teslim alma noktasına olan mesafe
eta = güncellenmiş TVS
süre = güncellenen süre
[1] location.point = trip.dropoff_point.point
trip_id = "trip_A"
referans noktası_türü = DROP_OFF_WAYPOINT_TYPE
yol_yolu_yolu = EnlBoy[] İndirme ayağından 1. EnlBoy
İndirme ayağından 2. EnlBoy
...
bırakma bacağından son EnlBoy
dropoff_point (sonuncudan farklıysa)
traffic_data
mesafe_metreleri = teslim alma tarihinden itibaren path_to_waypoint'e kadar olan mesafe
eta = güncellenmiş TVS
süre = bırakma bacak süresi

Arka arkaya ve ortak (araba paylaşımı) seyahatler söz konusu olduğunda bu listede, diğer gezilerden bu gezi sırasında üzerine çıkılacak ara noktalar bulunabilir. Örneğin, B Gezisinin A ile aynı araca atandığı senaryoyu ele alalım. Bu durumda Seyahat A'nın remaining_waypoints alanı aşağıdaki gibi doldurulur. (Alanların çoğu, kısa ve öz olması için atlanmıştır, ancak bir önceki örnekle tutarlı şekilde doldurulur.)

[0] trip_id = "trip_A"
referans noktası_türü = PICKUP_WAYPOINT_TYPE
[1] trip_id = "trip_B"
referans noktası_türü = PICKUP_WAYPOINT_TYPE
[2] trip_id = "trip_B"
referans noktası_türü = DROP_OFF_WAYPOINT_TYPE
[3] trip_id = "trip_A"
referans noktası_türü = DROP_OFF_WAYPOINT_TYPE

Seyahat B'nin remaining_waypoint alanı benzer şekilde doldurulur ancak Seyahat A'nın teslim noktası Seyahat B'nin rotasının bir parçası olmadığı için yalnızca ilk üç giriş gösterilir.