Yolculuk verilerini doğrudan Fleet Engine'den alma

Bu kılavuzda, gezi verilerini doğrudan Fleet Engine'den nasıl alabileceğiniz kullanmaya bir alternatif. Bu yaklaşımı daha fazla Fleet'ten yararlanmaya devam ederken son kullanıcı deneyiminiz üzerinde kontrol sahibi olun Motorun doğru ve gerçek zamanlı araç konumu, TVS ve rota bilgisi.

Tüketici SDK'sını kullanmayla ilgili ayrıntılı bilgi için İsteğe bağlı yolculukları paylaşma seyahatleri hakkında daha fazla bilgi edinin.

Seyahat bilgilerini alma

Yolculuk bilgilerini doğrudan Fleet Engine'den almak için GetTrip numarasını arayın yöntemini kullanarak JOURNEY_SHARING_V1S görünümünü belirtir. RPC referansına bakın veya REST:

Sunucunuz genellikle her yolculuğun durumu için gezi hizmetini yoklar. Sürücü, aracın ilerlemesini aktif olarak izliyor. Araç konumu güncellemeler genellikle 10 saniyede bir gerçekleşir ve sisteminiz bu tarihte yoklama yapar. aynı hızda. Trip.last_location.update_time alanı, denetlenebilir ve GetTrip için yapılan önceki çağrıdan bu yana güncelleme oldu.

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

Ortaya çıkan Trip nesnesi, aşağıdaki alanlar en son değerle doldurulur seyahatle ilgili mevcut bilgiler:

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

Kalan seyahat ara noktalarını alma

Gezi varlığı, TripWaypoint türünde yinelenen bir alan içeriyor izlemeden önce, aracın gitmesi gereken tüm ara noktaları sırayla bir bitiş noktası belirleyin. Yolculuk Paylaşımı görünümünü belirterek Fleet Engine'in, güncellenen bilgileri geri_ayak noktalarına[0] yerleştirilecek. TripWaypoint Yolculuk paylaşımı dışındaki görüntülemelerde, bu ara nokta atanan aracın en son konumunu yansıtır. Bkz. RPC veya REST için bir referans.

Daha fazla bilgi için aşağıdaki Seyahat durumu ve kalan araç ara noktaları bölümüne bakın: Gezilere giriş rehberini inceleyin.

Bir gezi için remaining_waypoints alanı örneği: Seyahat A:

[0] location.point = trip.pickup_point.point
trip_id = "trip_A"
waypoint_type = PICKUP_WAYPOINT_TYPE
path_to_waypoint = EnlBoy[] Kalan yoldan teslim almaya giden 1. EnlBoy
Kalan yoldan teslim almaya giden 2. EnlBoy
...
teslim almaya kadar kalan yoldan son EnlBoy
pickup_point [teslim_alma_noktası] (sondan farklıysa)
traffic_data
mesafe_metreleri = mevcut araç_konumundan teslim alma yoluna kadar olan_yol boyuncaki mesafe
eta = güncellenmiş TVS
süre = güncellenen süre
[1] location.point = trip.dropoff_point.point
trip_id = "trip_A"
ara nokta_türü = DROP_OFF_WAYPOINT_TYPE
path_to_waypoint = EnlBoy[] Kaldırma bacağından 1. EnlBoy
Kaldırma ayağından 2. EnlBoy
...
bırakma ayağından son EnlBoy
dropoff_point, sondan farklıysa
traffic_data
mesafe_metresi = yol boyunca_to_waypoint ile teslim alma noktasından ayrılma noktasına kadar olan mesafe
eta = güncellenmiş TVS
süre = ayrılma ayağı süresi

Arka arkaya ve paylaşılan havuz gezilerinde bu liste ara noktalar içerebilir köprü kuracaksınız. Örneğin, Bu senaryoda, Seyahat B ile Yolculuk A aynı araca atanır. İlgili içeriği oluşturmak için kullanılan Daha sonra A Seyahati'nin remaining_waypoints alanı aşağıdaki gibi doldurulur. Alanların çoğu kısa ve öz olması için atlandı, ancak önceki örnekle tutarlı olarak doldurulmuştur.

[0] trip_id = "trip_A"
ara nokta_türü = PICKUP_WAYPOINT_TYPE
[1] trip_id = "trip_B"
ara nokta_türü = PICKUP_WAYPOINT_TYPE
[2] trip_id = "trip_B"
ara nokta_türü = DROP_OFF_WAYPOINT_TYPE
[3] trip_id = "trip_A"
ara nokta_türü = DROP_OFF_WAYPOINT_TYPE

Gezi B'nin remaining_waypoint alanı da benzer şekilde doldurulur, ancak yalnızca ilk üç giriş mevcut olacaktır, çünkü A Seyahatinin ayrılma noktası, bir rota çizeceğiz.