Bu dokümanda, Fleet Engine'daki isteğe bağlı seyahat hizmeti açıklanmaktadır. Bu doküman, Fleet Engine nedir? başlıklı makaleyi okuduğunuzu ve ihtiyacınız olan Fleet Engine hizmet özelliğinin farkında olduğunuzu varsaymaktadır.
Bu dokümanları okurken aşağıdakileri göz önünde bulundurun:
- Seyahat ile bu seyahati tamamlayan sürücü arasındaki gerçek ilişkiyi modellemek için seyahatleri araçlara atarsınız. Fleet Engine'da araçların işleyiş şeklini daha iyi anlamak için Araçlara giriş başlıklı makaleyi okuyun.
- Bu belgede, yalnızca isteğe bağlı seyahatler için geçerli olan bazı araç öğeleri de açıklanmaktadır.
- Araç çağırma için Fleet Engine iki kaynak kullanır:
Trip
veVehicle
. Fleet Engine hem gRPC hizmeti hem de REST arayüzleri sağlar:
İsteğe bağlı yolculuk nedir?
Fleet Engine'da bir gezi, çeşitli ulaşım hedeflerine ulaşabilecek bir isteğe bağlı geziyi temsil eder. Örneğin:
- Kişiler: Bir veya daha fazla kişiyi teslim alma ve bırakma konumları arasında taşıyın.
- Yemek ve ürünler: Belirli bir işletme konumundan bir veya daha fazla yemek siparişi alıp bu siparişleri konumlarında bir veya daha fazla alıcıya teslim edin.
Gezi öğeleri
Aşağıdaki resimde bir seyahatin temel öğeleri gösterilmektedir: atanan araç kimliği, seyahat durumu ve seyahat yol işaretleri. Yol noktası türleri, yolculuğun aşamasına bağlı olarak değişir: teslim alma, ara nokta ve teslim etme. Herhangi bir seyahatte ara hedef veya yol noktası isteğe bağlıdır. Resim örneğinde, araç teslim alma konumuna ulaşmıştır.
Geziler için veri modeli
Arka uç, seyahatleri araçlara atarken araç için planlanmış diğer seyahatleri de bilmesi gerekir. Bu nedenle, aşağıdaki diyagramlarda ilişkili Vehicle
kaynağının diyagramının yanında Trip
kaynağının veri modeli gösterilmektedir. İki kaynak arasındaki ilişkileri keşfetmek için her iki şemayı da inceleyebilirsiniz. Aşağıdakileri göz önünde bulundurun:
- Seyahatler, kimliğe göre bir araca atanır.
- Seyahat-araç ilişkisi çoklu-tektir. Yani belirli bir seyahat, araç için planlanmış tek seyahat olabileceği gibi araç için planlanmış birçok seyahat arasından biri de olabilir.
- Seyahat nesneleri, seyahat için iki adet yol noktası listesi içerir. Biri seyahat için, diğeri ise atanan araç içindir. Bu konu bu dokümanda daha ayrıntılı olarak açıklanmaktadır.
- Araç çağırma hizmetinde, seyahat ara noktalarının listesi de bulunur. Bu liste bu dokümanda daha ayrıntılı olarak açıklanmıştır.
Yolculuk veri modeli
Araç veri modeli
Gezi türleri
Hizmetiniz bir gezi oluşturduğunda tripType
alanını aşağıdakilerden biri olarak ayarlayabilir: EXCLUSIVE
veya SHARED
.
Özel geziler
Özel seyahat, yolculuğu diğer seyahatlerle çakışmayan ve aracın programındaki diğer seyahatlerden önce veya sonra tamamladığı bir seyahattir. Bu, sisteminiz özel gezileri atarken yalnızca bir araca atayabileceği ve bu gezilerin aynı anda değil, sırayla tamamlanacağı anlamına gelir. Örneğin, aşağıdaki özelliklerden herhangi birine sahip özel geziler oluşturabilirsiniz:
- Programında başka seyahat bulunmayan bir araç için tek bir teslim alma ve tek bir teslim etme noktası olan seyahat.
- Programında başka bir seyahat bulunmayan bir araç için teslim alma, ara yol noktası ve bırakma noktası içeren bir seyahat.
- Araç için önceden planlanmış bir seyahatin sonuna eklenen teslim alma ve bırakma noktası olan bir seyahat. Bu durumlarda her gezi diğerine özeldir ancak geziler arka arkaya sıralanır. Ayrıca bu tür seyahatler, gerekirse ara hedefler içerebilir.
Paylaşılan geziler
Paylaşılan seyahat, yolculuğunun diğer seyahat rezervasyonlarıyla örtüşebileceği bir seyahattir. Sisteminiz bu seyahat türlerini, birbirine karışan hedeflerle eşzamanlı olarak gerçekleşecek şekilde atayabilir. Örneğin, bir seyahat için teslimat, başka bir seyahat için teslim alma işleminden sonra gerçekleşebilir. Ayrıca, paylaşılan gezilerde ara yollar kullanılamaz.
Genellikle, Seyahat senaryoları bölümünde gösterilen paylaşılan havuz oluşturma senaryolarından biri için paylaşılan bir seyahat kullanırsınız.
Gezi yol işaretleri
Google Haritalar'da yol noktası, genellikle bir enlem/boylam koordinatıyla tanımlanan, rota üzerindeki bir yerdir. İsteğe bağlı seyahatlerde bir yol noktası, aşağıdakiler gibi ek bilgiler içeren bir TripWaypoint
nesnesi ile temsil edilir:
- Gezi kimliği
WaypointType
(alış, ara durak veya teslimat)- Önceki gezi yol noktası ile mevcut yol noktası arasındaki yol ve mesafe bilgileri
- Gezi yol işaretine giden yol boyunca trafik koşulları
- Seyahat süresi ve seyahat yol noktası için tahmini varış zamanı
Referansları inceleyin:
Gezi yol noktası türleri
Gezi yol noktası, bir araç yolculuğunun genel yaşam döngüsü ile ilgili olarak tanımlanır:
- Araçtan teslim alma yol noktası: Bir sürücünün daha sonra teslim etmek üzere yemek siparişini teslim aldığında veya bir kişiyi daha sonra bırakmak üzere teslim aldığında olduğu gibi, yolculuğun başlangıcı veya başlangıç noktası için kullanılır.
- Ara yol noktası: Sürücünün aynı rezervasyondaki bir yolcuyu bırakması ancak daha fazla yolcu olduğu için seyahatin tamamlanmaması gibi çeşitli amaçlarla kullanılabilen ara hedef. Bu yol noktası isteğe bağlıdır ve yalnızca özel geziler için kullanılabilir.
- Bırakma yol noktası: Yolculuğun son konumu için kullanılır (ör. kalan yolcu araçtan çıktığında).
Gezi yol noktası listeleri
Trip
öğesi, her biri TripWaypoint
türündeki tekrarlanan bir alan olan iki yol noktası listesi içerir. Bir liste, seyahatin kendisi için gerekli alanları, diğeri ise seyahatle ilişkili araç için kalan tüm yol noktalarını tanımlar. Bu sayede yolculuğun tüm unsurları (seyahat ve araç yolculuğunun tamamı) hakkında tam bir görünüm elde edebilirsiniz.
- Araç için kalan yol işaretleri:
vehicle_waypoints
adlı bir alandır. Araca atanan tüm seyahatler için kalan tüm yol noktalarını içerir. - Seyahat için kalan yol işaretleri:
remaining_waypoints
adlı bir alandır. Bu rota, aracın seyahatin son teslim noktasına ulaşmadan önce sırayla kat etmesi gereken yol noktalarını içerir. Senaryoları Seyahat senaryoları bölümünde bulabilirsiniz.- Programında başka seyahat bulunmayan bir araca atanan tek hedefli bir seyahat için, aracın teslim alma yol noktasından ayrılmadığı varsayılarak yalnızca teslim alma ve bırakma konumu dahil edilir.
- Aracın diğer seyahatler için de planlandığı diğer seyahat senaryolarında, seyahat planındaki herhangi bir seyahat için kalan yol noktaları, aracın ilgili seyahatin teslim noktası yol noktasına ulaşmadan önce geçmesi gereken diğer seyahatlerdeki tüm yol noktalarını içerir. Örneğin, aracın A seyahati için teslim noktasına doğru yol aldığı art arda yapılan bir seyahatte, B seyahati için kalan yol noktaları A seyahati için teslim noktası yol noktasını içerir. Fleet Engine, bu bilgileri
vehicle_waypoints
alanını kullanarak hesaplar.
Trip
öğesinin referansını inceleyin: gRPC veya REST.
Seyahat senaryoları
Aşağıdaki şemalarda, desteklenen çeşitli seyahat senaryoları gösterilmektedir. Bu senaryolarda yalnızca paylaşılan havuzlama gezisi SHARED
türüne sahiptir; diğer tüm geziler EXCLUSIVE
türündedir. Diyagramlarda, seyahat durumunun yanı sıra seyahat gerçekleştiren aracın kalan yol noktaları da gösterilir. Bu kavramlar bu kılavuzun ilerleyen bölümlerinde açıklanmaktadır.
Tek varış noktası olan gezi
Tek hedefli seyahat, bir alma ve bir bırakma konumu olan bir EXCLUSIVE
seyahat Örneğin, bir sürücü bir yolcuyu bir yerden alıp başka bir yere götürür veya bir sürücü bir restorandan yemek siparişini alıp müşteriye teslim eder.
Birden çok hedef içeren geziler
Birden fazla hedefi olan seyahat, alma ve bırakma konumları arasında bir veya daha fazla ara hedef içeren bir EXCLUSIVE
seyahattir. Örneğin, üç araç paylaşma müşterisi bir kişinin telefonundan birlikte araç rezervasyonu yapıyor ancak her birinin ayrı varış noktası var.
Art arda yapılan geziler
Arka arkaya geziler, birbiri ardına gerçekleşen bir dizi bağımsız gezi içeren EXCLUSIVE
gezilerdir. Zincirdeki her gezi tek veya çok hedefli olabilir. Bu senaryoda, sürücü mevcut seyahati tamamlamadan önce başka bir müşteriyi almaya söz verir.
Bu seyahatler yalnızca arka arkaya planlamaya izin veren araçlara atanabilir. Vehicle
REST,
gRPC referansına bakın.
Ortak havuz gezileri
Paylaşılan havuz gezisi, diğer gezi türlerinden farklıdır. Öncelikle, EXCLUSIVE
değil SHARED
seyahati olmalıdır.
Burada araç, özel yolculuklarda olduğu gibi sırayla değil, eşzamanlı olarak yolculukları yürütür. Paylaşılan bir toplu taşıma gezisi, yolculuğunu diğer gezilerle paylaşır ancak alma ve bırakma konumu bilgilerini geziler arasında paylaşmaz. Bunun yerine, her seyahat, rezervasyon yapan son kullanıcının kendi seyahati dışındaki diğer seyahatlerin alma veya varış bilgilerini görememesi için özel bir rezervasyondur. Örneğin:
- Bir havaalanı servisi, çeşitli müşterileri evlerinden alıyor ve rota üzerindeki farklı havaalanı terminallerine bırakıyor. 2. kullanıcı, seyahatin ilerleme durumunu takip etmek için tüketici uygulamanızı kullanabilir. Ancak uygulama, seyahatlerinin bazı bölümleri çakışsa bile 2. kullanıcının yalnızca kendi seyahat bölümünü gösterir. 1. kullanıcının alındığı veya bırakılacağı yeri göstermez.
- Bir yemek dağıtım sürücüsü, farklı müşteri adreslerine teslim etmek için aynı restorandan üç yemek siparişi alır. Tüketici uygulamanızı kullanan 3. kişi, yemeğinin nereden ve ne zaman alındığını ve sürücü rotasını görebilir ancak 1. ve 2. kişilerin yemek teslim noktalarını göremez.
Gezi durumu ve yaşam döngüsü
Bu bölümde, seyahat durumu ve bu durumun araç üzerindeki etkisi ile isteğe bağlı seyahatleri atarken ve yönetirken karşılaştığınız çeşitli senaryolar açıklanmaktadır.
Geziler genellikle oluşturulma aşamasından tamamlanma aşamasına kadar çeşitli aşamalardan geçer. Genel olarak bir gezi, durumuna bağlı olarak etkin veya etkin olmayan olabilir. Seyahat durumu, Fleet Engine'daki çeşitli kullanım alanı senaryolarını ve yolculuk sırasında aracın ilerleme durumunu belirleme olanağınızı etkiler. Bu dokümanın geri kalanında bu senaryolar ele alınmaktadır.
Aşağıdaki tabloda, etkin ve etkin olmayan türlere göre gezi durumu listelenmiştir.
Etkin gezi durumları | Etkin olmayan seyahat durumları |
---|---|
NEW UNKNOWN_TRIP_STATUS ENROUTE_TO_PICKUP ARRIVED_AT_PICKUP ENROUTE_TO_INTERMEDIATE_DESTINATION ARRIVED_AT_INTERMEDIATE_DESTINATION ENROUTE_TO_DROPOFF
|
COMPLETE CANCELED
|
Gezi durumu ve kalan araç yol noktaları
Halihazırda bir seyahat gerçekleştiren bir araca ek seyahatler atarken, araç için kalan ara noktalar ile seyahat durumunun bu kalan ara noktaları nasıl etkilediği arasındaki ilişkiyi anlamanız gerekir.
Örneğin, yalnızca özel seyahatleri destekleyen ve bir seyahat tamamlamakta olan bir araca yeni bir araç paylaşma isteği atayabilirsiniz. Bu durumda, seyahati arka arkaya seyahat olarak modellersiniz. Bu tür bir gezi atarken sisteminiz, yeni gezi için yol noktalarının devam eden gezi için yol noktalarından sonra gerçekleşmesini sağlamalıdır.
Fleet Engine, araç yolculuğu sırasında önceki bir seyahat yol işaretini aracın kalan yol işaretleri listesinden yalnızca araç bir sonraki hedefe doğru yola çıktığını veya hedefe ulaştığını bildirdiğinde kaldırır. Yani aşağıdakilerden herhangi biri:
- ENROUTE_TO_INTERMEDIATE_DESTINATION
- ENROUTE_TO_DROPOFF
- TAMAMLANDI
Yolculuğun durumu COMPLETED
olarak değiştiğinde Fleet Engine, yolculuğun son yol işaretini aracın kalan yol işareti listesinden kaldırır.
Buna karşılık, bir yol noktasına varıldığını belirten durum değişiklikleri genellikle aracın kalan yol noktası listesi üzerinde herhangi bir etki yapmaz:
- ARRIVED_AT_PICKUP
- ARRIVED_AT_INTERMEDIATE_DESTINATION
- ARRIVED_AT_DROPOFF
Talep üzerine araç çağırma örneğiyle açıklamak gerekirse: Şoförün bir müşteriyi evinde aldıktan sonra müşterinin bir görevi tamamlamasını beklediği bir yere götürdüğünü ve ardından müşteriyi evine geri götürdüğünü varsayalım. Gezi ilk oluşturulduğunda üç yol noktası vardır: PICKUP
,
INTERMEDIATE
ve DROPOFF
. Aşağıdaki tabloda, yolculuğun çeşitli aşamalarında kalan yol noktaları için bir sorgunun sonuçları gösterilmektedir:
Gezi durumu | Kalan yol işaretleri |
---|---|
ARRIVED_AT_PICKUP |
PICKUP INTERMEDIATE DROPOFF
|
ENROUTE_TO_INTERMEDIATE_DESTINATION |
PICKUP INTERMEDIATE DROPOFF
|
ARRIVED_AT_INTERMEDIATE_DESTINATION |
PICKUP INTERMEDIATE DROPOFF
|
ENROUTE_TO_DROPOFF |
PICKUP INTERMEDIATE DROPOFF
|
ARRIVED_AT_DROPOFF |
PICKUP INTERMEDIATE DROPOFF
|
COMPLETE |
PICKUP INTERMEDIATE DROPOFF |
Yeniden atanan veya iptal edilen geziler için durum koşulları
Aşağıdakilerden herhangi birini yapmadan önce seyahat durumunu NEW
veya CANCELED
olarak ayarlamanız gerekir.
- Bir seyahat için araç atamalarını değiştirirken. Örneğin, bir sürücü bir seyahat için araç atamasını reddederse ve bu atamanın farklı bir araca yeniden atanması gerekirse.
- Bir seyahat için araç atamasını temizlerken. Örneğin, bir sürücü yoldayken bir geziyi iptal ederse ve araç atamasını temizlemek isterseniz durumun
NEW
veyaCANCELED
olması gerekir.
Seyahat durumuna göre arama sonuçları
Belirli bir araç için SearchTrips
hizmetini kullandığınızda, SearchTripsResponse
'daki etkin gezilerin listesini döndürür. Etkin geziler, Vehicle
öğesinin active_trips
alanında da görünür. Ayrıntılar için SearchTripsResponse
referansına bakın: gRPC veya REST.
Bu nedenle, etkin durumu olan tüm geziler active_trips
alanında gösterilir ancak tamamlanan veya iptal edilen geziler gösterilmez.