Bu belgede, arka arkaya yolculuk oluşturma, doğru alanları ayarlama ve yolculuğu tamamlamak için bir araca atama işlemleri açıklanmaktadır. Fleet Engine'i kurduğunuz, araç oluşturduğunuz, çalışan bir sürücü uygulamanızın ve isteğe bağlı olarak bir tüketici uygulamanızın 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 kurma
- 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. Daha sonra başka bir gezi oluşturup bunu, 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 yolculuk için araç atadığınızda, araca daha önce bir yolculuk atanmış olsa bile yeni bir yolculuk atamış olursunuz.
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 gezilerden alınanlar 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 aldı ve bırakma konumuna giderken sürücü, bir sonraki seyahat olan B Seyahati için başka bir tüketiciyi alma isteği aldı.
- Arama
getVehicle()
, aşağıdakileri içerenremainingWaypoints
sonuçlarını döndürür:
A Teslimat → B Teslim alma → B Teslimat. getTrip()
veyaonTripRemainingWaypointsUpdated
geri çağırma işlevi, A Gezisi içinremainingWaypoints
döndürüyor.
İndirme.getTrip()
veya B Seyahati içinonTripRemainingWaypointsUpdated
geri çağırma işlemi,remainingWaypoints
döndürür. Bu işlem şunları içerir:
A İndirme → B Alma → ve B İndirme.