Bu belgede, arka arkaya gezilerin nasıl oluşturulacağı, doğru alanların nasıl ayarlanacağı ve gezinin tamamlanması için bir araca nasıl atanacağı 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ı yolculuklar için sunulan çeşitli yolculuk senaryolarına da aşina olmanız gerekir. Bu konuda aşağıdaki ilgili rehberlere 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 gezi oluşturmak için gereken istek ayrıntıları açıklanmaktadır. gRPC ve REST'i kullanarak bir oluşturma isteği gönderirsiniz.
Seyahat Alanları
Fleet Engine'de seyahat oluşturmak için aşağıdaki alanları kullanın. Tek veya birden fazla varış noktası olan, arka arkaya ya da paylaşımlı yolculuklar gibi farklı türlerdeki 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 |
|---|---|---|
| parent | 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 seyahati benzersiz ş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 ortak yolculuklar: Bu alan, birden fazla yolculuktaki ara noktaların iç içe geçmesini destekler.
Atanan araçla ilgili 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 | Gezintiye atanan aracın kimliği. |
Örnek: Arka arkaya iki seyahat oluşturma
Aşağıda, arka arkaya iki gezi oluşturma ve bunları bir araca atama işlemi gösterilmektedir. Bu senaryoda gezi oluşturma işlemi, tek hedefli 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 yapılacak bir gezi için araç atadığınızda, daha önce atanmış olsa bile bir araca gezi atamış olursunuz.
Fleet Engine'in seyahat tahmini varış zamanlarını hesaplayabilmesi ve 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ı aracın yol noktaları alanına otomatik olarak ekler. Bir gezinin remainingWaypoints alanı, gezinin bırakma noktasından önce ziyaret edilecek diğer gezilerden olanlar da dahil olmak üzere tüm ara noktaların listesini içerir.
Örneğin, arka arkaya iki yolculuk olduğunu düşünelim: A Yolculuğu ve B Yolculuğu. Araç, A Seyahati için tüketiciyi almış ve bırakma konumuna giderken sürücü, bir sonraki seyahat olan B Seyahati için başka bir tüketiciyi alma isteği almıştır.
- Arama
getVehicle(), aşağıdakileri içerenremainingWaypointsdöndürür:
A Terk etme → B Teslim alma → B Terk etme. getTrip()veya A Seyahati içinonTripRemainingWaypointsUpdatedgeri çağırması, aşağıdakileri içerenremainingWaypointsdöndürüyor:
Bir terk etme.getTrip()veyaonTripRemainingWaypointsUpdatedgeri çağırma işlevi,remainingWaypointsdöndürür. Bu işlevde , B Seyahati için bulunur:
A İndirme → B Alma → ve B İndirme.