Yolculuk verilerini doğrudan Fleet Engine'den alma

Bu kılavuzda, Tüketici SDK'sını kullanmaya alternatif olarak gezi verilerini doğrudan Fleet Engine'dan nasıl alacağınız gösterilmektedir. Bu yaklaşımı kullanarak Fleet Engine'in doğru ve gerçek zamanlı araç konumu, tahmini varış zamanı ve rota özelliklerinden yararlanmaya devam ederken son kullanıcı deneyiminiz üzerinde daha fazla kontrol sahibi olabilirsiniz.

Consumer SDK'yı kullanma hakkında ayrıntılı bilgi için İsteğe bağlı geziler için yolculuk paylaşma başlıklı makaleyi inceleyin.

Gezi bilgilerini alma

Seyahat bilgilerini doğrudan Fleet Engine'den almak için GetTrip yöntemini çağırın ve JOURNEY_SHARING_V1S görünümünü belirtin. RPC veya REST için referansı inceleyin.

Sunucunuz, sürücü araç ilerlemesini aktif olarak izlerken genellikle her yolculuğun durumunu öğrenmek için yolculuk hizmetine yoklama gönderir. Araç konumu güncellemeleri genellikle her 10 saniyede bir gerçekleşir ve sisteminiz de aynı sıklıkta yoklama yapmalıdır. Trip.last_location.update_time alanı, GetTrip için yapılan önceki çağrıdan bu yana herhangi bir güncelleme olup olmadığını görmek için izlenebilir.

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

Elde edilen Trip nesnesinde, geziyle ilgili en son bilgilerle doldurulmuş aşağıdaki alanlar bulunur:

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 gezi noktalarını alma

Seyahat öğesi, TripWaypoint türünde yinelenen bir alan içerir. Bu alan, aracın bu seyahatin son bırakma noktasından önce sırayla gitmesi gereken tüm ara noktaları içerir. Yolculuk paylaşımı görünümünü belirtmek, Fleet Engine'a güncellenmiş bilgileri remaining_waypoints[0] TripWaypoint alanına eklemesini söyler. Diğer, Yolculuk Paylaşımı dışındaki görünümlerde bu ara nokta genellikle atanan aracın en son konumunu yansıtmaz. RPC veya REST ile ilgili referansı inceleyin.

Daha fazla bilgi için Gezilere giriş kılavuzundaki Gezinin durumu ve araç için kalan yol noktaları bölümüne bakın.

Aşağıda bir gezi için remaining_waypoints alanı örneği verilmiştir (Gezi A):

[0] location.point = trip.pickup_point.point
trip_id = "trip_A"
waypoint_type = PICKUP_WAYPOINT_TYPE
path_to_waypoint = LatLng[] Teslim alma noktasına giden kalan rotadaki ilk LatLng
Teslim alma noktasına giden kalan rotadaki 2. LatLng
...
Teslim alma için kalan yoldaki son LatLng
Öncekilerden farklıysa pickup_point
traffic_data
distance_meters = mevcut vehicle_location'dan path_to_waypoint boyunca teslim alma noktasına olan mesafe
eta = güncellenmiş TVS
duration = güncellenen süre
[1] location.point = trip.dropoff_point.point
trip_id = "trip_A"
waypoint_type = DROP_OFF_WAYPOINT_TYPE
path_to_waypoint = LatLng[] Bırakma ayağındaki ilk LatLng
İndirme ayağındaki 2. LatLng
...
İndirme ayağındaki son LatLng
Sonuncudan farklıysa dropoff_point
traffic_data
distance_meters = teslim alma noktasından, yol noktasına giden yol boyunca teslimat noktasına olan mesafe
eta = updated ETA
duration = drop-off leg duration

Arka arkaya ve paylaşımlı havuz gezilerinde bu liste, bu yolculuktan önce geçilecek diğer gezilere ait yol noktalarını içerebilir. Örneğin, B gezisinin A gezisiyle aynı araca atandığı senaryoyu ele alalım. A Gezisi'nin remaining_waypoints alanı aşağıdaki şekilde doldurulur. Kısa olması için alanların çoğu atlandı ancak bu alanlar, önceki örnekle tutarlı bir şekilde doldurulacaktır.

[0] trip_id = "trip_A"
waypoint_type = PICKUP_WAYPOINT_TYPE
[1] trip_id = "trip_B"
waypoint_type = PICKUP_WAYPOINT_TYPE
[2] trip_id = "trip_B"
waypoint_type = DROP_OFF_WAYPOINT_TYPE
[3] trip_id = "trip_A"
waypoint_type = DROP_OFF_WAYPOINT_TYPE

B Gezisi'nin remaining_waypoint alanı da benzer şekilde doldurulur ancak A Gezisi'nin bırakma noktası B Gezisi'nin rotasında yer almadığından yalnızca ilk üç giriş bulunur.