Bu belgede, arka arkaya iki gezi oluşturma, doğru alanları ayarlama ve bu gezileri bir araca atayarak tamamlamanın nasıl yapılacağı açıklanmaktadır. Fleet Engine'i ayarladığınız, araç oluşturduğunuz, çalışan bir sürücü uygulamanız olduğu ve isteğe bağlı olarak bir tüketici uygulamanız olduğu varsayılır. Ayrıca, isteğe bağlı geziler için kullanılabilen çeşitli gezi senaryolarına da aşina olmanız gerekir. Bu konuda aşağıdaki ilgili kılavuzlara göz atın:
- Fleet Engine'i ayarlama
- Araç oluşturma
- Talep üzerine yolculuklar genel bakışında yolculuk senaryoları
Gezi oluşturmayla ilgili temel bilgiler
Bu bölümde, Fleet Engine'de seyahat oluşturmak için gereken istek ayrıntıları açıklanmaktadır. gRPC ve REST'i kullanarak oluşturma isteği gönderirsiniz.
Seyahat Alanları
Fleet Engine'de gezi oluşturmak için aşağıdaki alanları kullanın. Farklı seyahat türleri (tek veya çok varış noktalı, arka arkaya ya da paylaşımlı yolculuklar) için farklı alanlar kullanabilirsiniz. İsteğe bağlı alanları geziyi oluştururken sağlayabilir veya geziyi güncellerken daha sonra ayarlayabilirsiniz.
| Ad | Zorunlu mu? | Açıklama |
|---|---|---|
| üst | Evet | Proje kimliğini içeren bir dize. Bu kimlik, aynı hizmet hesabı rolleriyle birlikte tüm Fleet Engine entegrasyonunuzda kullanılan kimlikle aynı olmalıdır. |
| trip_id | Evet | Bu geziyi benzersiz bir şekilde tanımlayan bir dize oluşturursunuz. Seyahat kimlikleri, referansta belirtildiği gibi belirli kısıtlamalara tabidir. |
| trip_type | Evet | Oluşturduğunuz gezi türü için TripType'ı aşağıdaki değerlere ayarlayın:
|
| pickup_point | Evet | Gezinin başlangıç noktası. |
| Ara hedefler | Evet | Yalnızca çok varış noktalı yolculuklar: Sürücünün yolcu alma ve bırakma arasında ziyaret ettiği ara varış noktalarının listesi. |
| vehicle_waypoints | Evet | Yalnızca paylaşımlı havuz gezileri: Bu alan, birden fazla gezideki ara noktaların iç içe geçmesini destekler.
Atanan araç için kalan tüm ara noktaların yanı sıra bu seyahatin teslim alma ve bırakma ara noktalarını içerir. Bu alanı |
| number_of_passengers | Hayır | Gezideki yolcu sayısı. |
| dropoff_point | Hayır | Gezinin varış noktası. |
| vehicle_id | Hayır | Gezide kullanılan aracın kimliği. |
Örnek: Arka arkaya iki gezi oluşturma
Aşağıda, arka arkaya yolculuk oluşturma ve bunu bir araca atama işlemi gösterilmektedir. Bu senaryoda gezi oluşturma işlemi, tek varış noktalı gezilerle aynıdır. Başka bir geziyi daha sonra oluşturup zaten etkin bir geziye sahip 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 yapılacak bir gezi için araç atadığınızda, araca daha önce bir gezi atanmış olsa bile geziyi araca atarsınız.
Fleet Engine'in seyahat tahmini varış zamanlarını hesaplayıp seyahati izleyebilmesi için Fleet Engine'de oluşturulan tüm seyahatlerin bir araca atanması gerekir. Bu işlemi gezi oluşturma sırasında veya daha sonra geziyi güncellerken yapabilirsiniz.
Gezileri bir araca atadıktan sonra Fleet Engine, arka arkaya gezilerle ilişkili yol noktalarını otomatik olarak aracın yol noktaları alanına ekler. Bir geziye ait remainingWaypoints alanı, gezinin bırakma noktasından önce ziyaret edilecek diğer gezilerdeki noktalar da dahil olmak üzere tüm ara noktaların listesini içerir.
Örneğin, arka arkaya iki seyahat olduğunu düşünelim: A Seyahati ve B Seyahati. Araç, A Seyahati için tüketiciyi alır ve bırakma konumuna giderken sürücü, sonraki seyahat olan B Seyahati için başka bir tüketiciyi alma isteği alır.
- Arama
getVehicle(), aşağıdakileri içerenremainingWaypointssonuçlarını döndürür:
A Teslimat → B Teslim alma → B Teslimat. getTrip()veyaonTripRemainingWaypointsUpdatedgeri çağırma işlevi, A Gezisi içinremainingWaypointsdöndürüyor.
İndirme.getTrip()veya B Gezisi içinonTripRemainingWaypointsUpdatedgeri çağırma işlemi,remainingWaypointsdöndürür. Bu işlem şunları içerir:
A İndirme → B Alma → ve B İndirme.