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 bilgilerinden yararlanmaya devam edebilirsiniz.

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.

Seyahat bilgilerini alma

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

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

Kalan gezi ara 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üncellenmiş bilgileri remaining_waypoints[0] TripWaypoint içine yerleştirmesini 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 (A Gezisi) 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 için kalan yoldaki 1. 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 mesafeyi ifade eder.
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
dropoff_point, sonuncusundan farklıysa
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 ara noktaları 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 şekilde doldurulur. Kısa olması için alanların çoğu çıkarıldı ancak bu alanlar, önceki örnekle tutarlı bir şekilde doldurulacaktır.

[0] trip_id = "trip_A"
yol_noktası_türü = ALMA_YOL_NOKTASI_TÜRÜ
[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.