Yolculuk verilerini doğrudan Fleet Engine'den alma

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

Consumer SDK'yı kullanmayla ilgili ayrıntılar için İsteğe bağlı geziler için yolculuk paylaşma başlıklı makaleyi inceleyin.

Seyahat 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 ile ilgili referansı inceleyin.

Sürücü, aracın ilerlemesini aktif olarak izlerken sunucunuz genellikle her yolculuğun durumu için yolculuk hizmetini yoklar. 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);

Sonuç olarak elde edilen Trip nesnesinde, geziyle ilgili mevcut 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

Gezinin kalan yol noktalarını alma

Seyahat öğesi, TripWaypoint türünde yinelenen bir alan içeriyor. Bu alan, aracın bu seyahatin son bırakma noktasına ulaşmadan önce sırayla gitmesi gereken tüm ara noktaları içerir. Yolculuk paylaşımı görünümünü belirtmek, Fleet Engine'e güncellenen bilgileri remaining_waypoints[0] TripWaypoint içine yerleştirmesini söyler. Diğer Yolculuk Paylaşımı dışındaki görünümlerde bu yol noktası 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, A Gezisi adlı bir gezi için remaining_waypoints alanı örneği verilmiştir:

[0] location.point = trip.pickup_point.point
trip_id = "trip_A"
waypoint_type = PICKUP_WAYPOINT_TYPE
path_to_waypoint = LatLng[] Teslim alma konumuna giden yolda kalan ilk LatLng
Teslim alma konumuna giden kalan yoldaki 2. LatLng
...
Teslim alma için kalan yoldaki son LatLng
pickup_point, if different from last
traffic_data
distance_meters = current_vehicle_location konumundan pickup konumuna kadar olan yol üzerindeki yol noktasına uzaklık
eta = updated ETA
duration = updated duration
[1] location.point = trip.dropoff_point.point
trip_id = "trip_A"
waypoint_type = DROP_OFF_WAYPOINT_TYPE
path_to_waypoint = LatLng[] Teslimat ayağındaki 1. 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 gezilerden gelen yol noktalarını içerebilir. Örneğin, B Gezisi'nin A Gezisi ile aynı araca atandığı senaryoyu ele alalım. A Gezisi'nin remaining_waypoints alanı aşağıdaki gibi doldurulur. Kısa olması için çoğu alan atlanmıştır ancak bu alanlar, önceki örnekle tutarlı bir şekilde doldurulur.

[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.