Bu dokümanda, art arda seyahatlerin nasıl oluşturulacağı, doğru alanların nasıl ayarlanacağı ve bu seyahatlerin yerine getirileceği bir araca nasıl atanacağı açıklanmaktadır. Fleet Engine'i kurduğunuzu, araçlar oluşturduğunuzu, çalışan bir sürücü uygulamanız ve isteğe bağlı olarak bir tüketici uygulamanız olduğunu varsayar. Ayrıca, isteğe bağlı geziler için sunulan çeşitli seyahat senaryoları hakkında da bilgi sahibi olmanız gerekir. Aşağıdaki ilgili kılavuzları inceleyin:
- Fleet Engine'i kurma
- Araç oluşturma
- Araç çağırma seyahatlerine genel bakıştaki seyahat senaryoları
Gezi oluşturmayla ilgili temel bilgiler
Bu bölümde, Fleet Engine'da gezi oluşturmak için gerekli istek ayrıntıları açıklanmaktadır. gRPC ve REST'i kullanarak bir oluşturma isteği gönderirsiniz.
Seyahat Alanları
Fleet Engine'da gezi oluşturmak için aşağıdaki alanları kullanın. Farklı seyahat türleri için farklı alanlar kullanabilirsiniz: tek veya çok hedefli, arka arkaya ya da paylaşılan havuz gezileri. İsteğe bağlı alanları geziyi oluştururken sağlayabilir veya geziyi güncellerken daha sonra ayarlayabilirsiniz.
Ad | Zorunlu mu? | Açıklama |
---|---|---|
parent | Evet | Proje kimliğini içeren bir dize. Bu kimlik, Fleet Engine entegrasyonunuzun tamamında kullanılan ve aynı hizmet hesabı rolleriyle aynı kimlik olmalıdır. |
trip_id | Evet | Bu geziyi benzersiz bir şekilde tanımlayan, sizin oluşturduğunuz bir dize. Seyahat kimliklerinde, referans bölümünde belirtildiği gibi belirli kısıtlamalar vardır. |
trip_type | Evet | Oluşturduğunuz seyahat türü için TripType parametresini aşağıdaki değerlere ayarlayın:
|
pickup_point | Evet | Seyahatin kalkış noktası. |
Orta düzey hedefler | Evet | Yalnızca çok hedefli seyahatler: Sürücünün, alma ve bırakma noktası arasında ziyaret ettiği ara hedeflerin listesi. |
vehicle_waypoints | Evet | Yalnızca ortak havuz gezileri: Bu alan, birden fazla seyahatteki ara noktaların arasına katılmayı destekler.
Atanan araç için kalan tüm ara noktaların yanı sıra bu yolculuk için alma ve bırakma ara noktalarını içerir. Bu alanı |
number_of_passengers | Hayır | Seyahatteki yolcu sayısı. |
dropoff_point | Hayır | Gezinin varış noktası. |
vehicle_id | Hayır | Seyahate atanan aracın kimliği. |
Örnek: arka arkaya seyahat oluşturma
Aşağıda, arka arkaya seyahatin nasıl oluşturulacağı ve bir araca nasıl atanacağı gösterilmektedir. Bu senaryoda, gezi oluşturma işlemi tek hedefli bir gezi oluşturma işlemiyle aynıdır. Daha sonra başka bir gezi oluşturup bunu zaten aktif olan bir araca atarsınız.
// A vehicle with ID 'my-vehicle' is already created and it is assigned to a trip with ID 'current-trip'.
static final String PROJECT_ID = "my-rideshare-co-gcp-project";
static final String VEHICLE_ID =" my-vehicle";
static final String TRIP_ID = "back-to-back-trip");
TripServiceBlockingStub tripService = TripService.newBlockingStub(channel);
String parent = "providers/" + PROJECT_ID;
Trip trip = Trip.newBuilder()
.setTripType(TripType.EXCLUSIVE)
.setPickupPoint(
TerminalLocation.newBuilder().setPoint(
LatLng.newBuilder()
.setLatitude(-6.195139).setLongitude(106.820826)))
.setDropoffPoint(
TerminalLocation.newBuilder().setPoint(
LatLng.newBuilder()
.setLatitude(-6.1275).setLongitude(106.6537)))
.setVehicleId(VEHICLE_ID)
.build();
// Create trip request
CreateTripRequest createTripRequest = CreateTripRequest.newBuilder()
.setParent(parent)
.setTripId(TRIP_ID)
.setTrip(trip)
.build();
// Error handling.
try {
// Fleet Engine automatically assigns a 'waypoints' list to the trip containing
// the vehicle's current trip waypoints.
Trip createdTrip =
tripService.createTrip(createTripRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case ALREADY_EXISTS:
break;
case PERMISSION_DENIED:
break;
}
return;
}
Arka arkaya yapılan gezileri güncelleme
Arka arkaya seyahat için bir araç atadığınızda, önceden atanmış olsa bile bir araca seyahat atarsınız.
Fleet Engine'in seyahat tahmini varış sürelerini hesaplayıp takip edebilmesi için Fleet Engine'de oluşturulan tüm yolculuklar bir araca atanmalıdır. Bu işlemi seyahat oluşturma sırasında veya daha sonra seyahati güncellerken yapabilirsiniz.
Fleet Engine, geziyi bir araca atadıktan sonra art arda yapılan gezilerle ilişkili yol işaretlerini aracın yol işaretleri alanına otomatik olarak ekler. Bir seyahatin remainingWaypoints
alanında, seyahatin teslimat noktasından önce ziyaret edilecek diğer seyahatlerdekiler de dahil olmak üzere tüm yol noktalarının listesi yer alır.
Örneğin, arka arkaya iki seyahati düşünün: A Gezisi ve B Gezisi. Araç, tüketiciyi A Seyahati için aldı ve ayrılma noktasına giderken sürücüye bir sonraki seyahat olan B Seyahati için başka bir tüketiciyi teslim alma isteği gösteriliyor.
getVehicle()
çağrısı, şunu içerenremainingWaypoints
döndürür:
A Teslim → B Teslim alma → B Teslim.getTrip()
veya A gezisi içinonTripRemainingWaypointsUpdated
geri çağırma işlevi, şunları içerenremainingWaypoints
döndürür:
Bir araç bırakma.getTrip()
veya B Gezisi içinonTripRemainingWaypointsUpdated
geri çağırma işlevi,
şu bilgileri içerenremainingWaypoints
döndürür:
A Bırakma → B Başlama → ve B Bırakma.