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 alabileceğiniz gösterilmektedir. Fleet Engine'ın doğru ve gerçek zamanlı araç konumu, tahmini varış zamanı ve rota planlama ö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 İsteğe bağlı gezilere yönelik yolculukları paylaşma bölümüne bakın.

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 yolculuğun durumu için yolculuk hizmetini yoklar. Araç konum güncellemeleri genellikle 10 saniyede bir gerçekleşir ve sisteminiz, yoklama işlemini aynı hızda 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);

Ortaya çıkan Trip nesnesi, aşağıdaki alanlar gezi için mevcut en son bilgilerle doldurulur:

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 atanmış aracın 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 = EnlBoy[] Kalan yoldan teslim almaya giden 1. EnlBoy
Kalan yoldan teslim almaya giden 2. EnlBoy
...
teslim almaya kadar kalan yoldan son EnlBoy
pickup_point, öncekinden farklıysa
traffic_data
mesafe_metresi = yol_yolu_noktası üzerindeki mevcut araç_konumundan teslim almaya kadar olan mesafe
eta = güncellenmiş TVS
süre = güncellenen süre
[1] location.point = trip.dropoff_point.point
trip_id = "trip_A"
waypoint_type = DROP_OFF_WAYPOINT_TYPE
path_to_waypoint = EnlBoy[] Ayrılma ayağının 1. EnlBoy'u
Kaldırma ayağından 2. EnlBoy
...
son bırakma noktasındaki LatLng
dropoff_point, öncekinden farklıysa
traffic_data
mesafe_metresi = yol boyunca_to_waypoint boyunca teslim alma noktasından ayrılma noktasına kadar 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, Seyahat B'nin Seyahat A ile aynı araca atandığı senaryoyu düşünün. Bu durumda Seyahat A'nın remaining_waypoints alanı aşağıdaki gibi doldurulur. Alanların çoğu kısa ve öz olması için atlanmıştır ancak önceki örnekle tutarlı şekilde doldurulur.

[0] trip_id = "trip_A"
ara nokta_türü = 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"
ara nokta_türü = DROP_OFF_WAYPOINT_TYPE

Seyahat B'nin remaining_waypoint alanı benzer şekilde doldurulur, ancak A Seyahati'nin bırakma noktası Seyahat B'nin rotasının bir parçası olmadığından yalnızca ilk üç giriş bulunur.