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. Bu eğitimde, Fleet Engine'ı kurduğunuz, araç oluşturduğunuz, çalışan uygulaması ve isteğe bağlı olarak tüketici uygulamasına sahip olduğunuz varsayılmaktadır. Ayrıca, isteğe bağlı seyahatler için kullanılabilen çeşitli seyahat senaryolarını da bilmeniz gerekir. Aşağıdaki ilgili kılavuzları inceleyin:
- Fleet Engine'u 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, art arda yapılan veya ortak havuz seyahatleri. İ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 havuzdaki seyahatler: Bu alan, birden fazla seyahatteki yol noktalarının birbirine karıştırılmasını destekler.
Atanmış araç için kalan tüm yol noktalarının yanı sıra bu seyahatin teslim alma ve bırakma yol noktalarını içerir. Bu alanı |
number_of_passengers | Hayır | Gezideki yolcu sayısı. |
dropoff_point | Hayır | Seyahatin varış noktası. |
vehicle_id | Hayır | Geziye atanan aracın kimliği. |
Örnek: Arka arkaya seyahat oluşturma
Aşağıda, art arda seyahatlerin 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 etkin bir gezisi 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, daha önce atanmış olsa bile bir seyahat için araca atadığınızda
Fleet Engine'da oluşturulan tüm seyahatlerin, Fleet Engine'ın seyahat tahmini varış zamanlarını hesaplayabilmesi ve izleyebilmesi için bir araca atanması gerekir. 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 bulunur.
Örneğin, arka arkaya yapılan iki seyahat olduğunu varsayalım: A Seyahat ve B Seyahat. Araç, A Gezisi için tüketiciyi aldı ve bırakma konumuna giderken sürücü, bir sonraki gezi olan B Gezisi için başka bir tüketiciyi alma isteği aldı.
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,
şunu içerenremainingWaypoints
döndürür:
A Bırakma → B Başlama → ve B Bırakma.