Bu dokümanda, arka arkaya seyahatin nasıl oluşturulacağı açıklanmaktadır; bu nedenle, ve doldurulması için bir araca atayın. Bu eğitimde, Fleet Engine'ı oluşturduğunuz, araç oluşturduğunuz, çalışan uygulamasına 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ğıdakiler için aşağıdaki ilgili kılavuzlara bakın: şu bilgileri sağlar:
- Fleet Engine'i kurma
- Araç oluşturma
- Seç-izle geziler'e 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 veya REST kullanarak bir oluşturma isteği gönderirsiniz.
Seyahat Alanları
Fleet Engine'de gezi oluşturmak için aşağıdaki alanları kullanın. Farklı veri türleri için farklı seyahat türlerine yönelik alanlar sunar: tek veya çok hedefli, ortak havuz gezileri olabilir. İ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. Gezi kimlikleri referansta belirtildiği şekilde bazı kısıtlamalara tabi olacaktır. |
trip_type | Evet | TripType'ı, oluşturduğunuz gezi türü için aşağıdaki değerlere ayarlayın:
|
pickup_point | Evet | Seyahatin kalkış noktası. |
Orta seviye 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.
Burada, atanan araç için kalan tüm ara noktaları da
olarak ayarlayabilirsiniz. Bu alanı |
number_of_passengers | Hayır | Seyahatteki yolcu sayısı. |
dropoff_point | Hayır | Gezinin 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 bir varış noktası için yapılanla aynıdır hayal edin. Yalnızca daha sonra başka bir gezi oluşturup bunu bir araca atarsınız zaten etkin olan bir gezide.
// 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;
}
Art arda yapılan gezileri güncelleyin
Arka arkaya seyahat için bir araç atadığınızda, daha önce atanmış olsa bile bir seyahat aracına atarsınız.
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.
Seyahati bir araca atadıktan sonra, Fleet Engine otomatik olarak
aracın ara noktalarına yapılan art arda yolculuklarla ilişkili ara noktalar
girin. Bir seyahatin remainingWaypoints
alanında, seyahatin teslimat noktasından önce ziyaret edilecek diğer seyahatlerdekiler de dahil olmak üzere tüm yol işaretlerinin listesi yer alır.
Örneğin, arka arkaya iki seyahati düşünün: A Gezisi ve B Gezisi. Araç, tüketiciyi aldı A Gezisi için ve indirme sırasında başka bir tüketiciyi teslim alma isteği alırsa sonraki gezi, B Gezisi.
getVehicle()
araması yapıldığındaremainingWaypoints
değeri döndürülür şunları içeren:
Ayrılma → B Teslim alma → B Ayrılma.getTrip()
veya Şunun içinonTripRemainingWaypointsUpdated
geri arama: A gezisiremainingWaypoints
tarihinde dönüyor şunları içeren:
Ayrılma.getTrip()
veya B Gezisi içinonTripRemainingWaypointsUpdated
geri çağırma işlevi,
şunu içerenremainingWaypoints
döndürür:
A Bırakma → B Alma → ve B Bırakma.