Yolculuk verilerini doğrudan Fleet Engine'den alma

Bu kılavuzda, Tüketici SDK'sını kullanmaya alternatif olarak doğrudan Fleet Engine'den seyahat verilerinin nasıl alınacağı gösterilmektedir. Fleet Engine'ın doğru ve gerçek zamanlı araç konumu, tahmini varış zamanı ve rota oluşturma özelliklerinden yararlanırken son kullanıcı deneyiminiz üzerinde daha fazla kontrol sahibi olmak için bu yaklaşımı kullanabilirsiniz.

Tüketici SDK'sını kullanmayla ilgili ayrıntılar için Seç-bin seyahatleri için yolculukları paylaşma başlıklı makaleyi inceleyin.

Seyahat bilgilerini alma

Gezi bilgilerini doğrudan Fleet Engine'dan almak için JOURNEY_SHARING_V1S görünümünü belirterek GetTrip yöntemini çağırın. RPC veya REST ile ilgili referanslara bakın.

Sürücü, aracın ilerleme durumunu aktif olarak izlerken sunucunuz genellikle her seyahatin durumu için seyahat hizmetini sorar. Araç konum güncellemeleri genellikle 10 saniyede bir gerçekleşir ve sisteminiz aynı hızda anket yapmalıdır. GetTrip çağrısından bu yana herhangi bir güncelleme olup olmadığını görmek için Trip.last_location.update_time alanı 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, seyahat için mevcut en son bilgilerle doldurulan 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 seyahat yol noktalarını alma

Yolculuk öğesi, TripWaypoint türündeki yinelenen bir alan içerir. Bu alan, aracın bu seyahatin son teslim noktasına ulaşmadan önce sırayla geçmesi gereken tüm yol noktalarını içerir. Yolculuğu Paylaşma görünümünü belirtmek, Fleet Engine'a remaining_waypoints[0]TripWaypoint alanına güncel bilgileri yerleştirmesini söyler. Yolcu Paylaşımı dışındaki diğer görünümlerde bu yol noktası genellikle atanan aracın en son konumunu yansıtmaz. RPC veya REST referansına bakın.

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

A seyahati için remaining_waypoints alanının bir örneğini aşağıda bulabilirsiniz:

[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 yoldaki 1. LatLng
Kalan yoldan teslim alma noktasına kadar olan 2. LatLng
...
Kalan yoldan teslim alma noktasına kadar olan son LatLng
pickup_point, öncekinden farklıysa
traffic_data
distance_meters = teslim alma noktasına giden yol boyunca mevcut vehicle_location'dan uzaklık
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 aşamasından 1. LatLng
Bırakma aşamasından 2. LatLng
...
son bırakma noktasındaki LatLng
Farklıysa dropoff_point
traffic_data
distance_meters = teslim alma noktasından yol_noktalarına_yön_noktası boyunca teslim noktasına olan mesafe
eta = güncellenmiş TVS
duration = teslimat bacağı süresi

Arka arkaya ve paylaşılan havuz gezilerinde bu liste, bu yolculuktan önce geçilecek diğer gezilerdeki yol noktalarını içerebilir. Örneğin, B gezisinin A gezisiyle aynı araca atandığı senaryoyu düşünün. A gezisi için remaining_waypoints alanı aşağıdaki gibi doldurulur. Alanların çoğu kısalık için atlanmıştır ancak önceki örneğe uygun ş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 gezisinin remaining_waypoint alanı benzer şekilde doldurulur ancak A gezisinin bırakma noktası B gezisinin rotasının bir parçası olmadığından yalnızca ilk üç giriş bulunur.