İstek üzerine geziler

Bu belgede, Fleet Engine'deki isteğe bağlı gezi hizmeti açıklanmaktadır. Raporda, Fleet Engine nedir? başlıklı makaleyi okuduğunuzu ve ihtiyacınız olan belirli Filo Motoru hizmeti özelliklerinden haberdar olduğunuz varsayılır.

Bu dokümanları okurken aşağıdakileri göz önünde bulundurun:

  • Gezi ile bu yolculuğu tamamlayan sürücü arasındaki gerçek dünya ilişkisini modellemek için araçlara geziler atarsınız. Araçların Fleet Engine'de nasıl çalıştığını daha iyi anlamak için Araçlara giriş bölümünü okuyun.
  • Bu belgede yalnızca isteğe bağlı geziler için geçerli olan bazı araç öğeleri de açıklanmaktadır.
  • İsteğe bağlı geziler için Fleet Engine, Trip ve Vehicle olmak üzere iki kaynak kullanır. Fleet Engine, hem gRPC hizmeti hem de REST arayüzleri sağlar:
    • TripService: gRPC ve REST
    • VehicleService: gRPC ve REST
    • Basitlik sağlaması için bu kılavuzda gRPC örnekleri kullanılmıştır.

İsteğe bağlı gezi nedir?

Fleet Engine'de gezi, çeşitli ulaşım hedeflerine ulaşabilecek, isteğe bağlı bir yolculuğu temsil eder. Örneğin:

  • Kişiler: Bir veya daha fazla kişiyi teslim alma yerinden teslim alma konumlarına taşıyın.
  • Gıda ve eşyalar: Belirli bir işletme konumundan bir veya daha fazla yemek siparişi alın ve bu siparişleri bulundukları yerde bir veya daha fazla alıcıya bırakın.

Gezi öğeleri

Aşağıdaki resimde bir gezinin temel öğeleri gösterilmektedir: Atanan araç kimliği, seyahat durumu ve yolculuk ara noktaları. Referans noktası türleri yolculuğun aşamasına bağlı olarak değişir: alma, ara ve bırakma. Tüm gezilerde, ara hedef veya ara nokta isteğe bağlıdır. Resim örneğinde, araç teslim alma noktasına ulaşmıştır.

Geziler için veri modeli

Arka ucunuz araçlara seyahat atadığından araç için planlanan diğer seyahatleri de bilmesi gerekir. Bu nedenle aşağıdaki diyagramlarda, Trip kaynağının veri modeli, ilişkili Vehicle kaynağı şemasıyla birlikte gösterilmektedir. İki kaynak arasındaki ilişkileri keşfetmek için her iki diyagramı da inceleyerek aşağıdaki noktaları göz önünde bulundurabilirsiniz:

  • Geziler araçlara kimlikle atanır.
  • Seyahat-araç derneği birden çoka bir yapıdadır. Diğer bir deyişle, belirli bir gezi, araç için planlanan tek seyahat veya araçla ilgili birçok yolculuktan biri olabilir.
  • Gezi nesneleri, biri seyahatin kendisi, diğeri atanan araç için olmak üzere iki seyahat ara noktası listesi içerir. Bu konu, bu belgede daha ayrıntılı bir şekilde açıklanmaktadır.
  • İsteğe bağlı araçta ayrıca bu belgede daha kapsamlı olarak açıklanan bir seyahat ara noktaları listesi de bulunur.

Yolculuk verisi modeli

Araç veri modeli

Gezi türleri

Hizmetiniz bir gezi oluşturduğunda tripType alanını şu iki değerden biriyle ayarlayabilir: EXCLUSIVE veya SHARED.

Özel geziler

Özel gezi, yolculuğu diğer gezilerle örtüşmeyen ve aracın kendi planına göre yapılan diğer gezilerden önce ya da sonra tamamladığı bir seyahattir. Diğer bir deyişle, sisteminiz özel seyahatler atadığında bu gezileri eşzamanlı olarak değil, yalnızca sırayla tamamlanacak bir araca atayabilir. Örnek olarak, aşağıdaki özelliklerden herhangi birine sahip özel geziler oluşturabilirsiniz:

  • Programında başka yolculuk olmayan bir araç için tekli alma ve tek aktarmalı seyahat.
  • Programında başka bir gezi olmayan bir araç için biniş, ara ara nokta ve bırakma olan bir seyahat.
  • Araç için önceden planlanmış bir yolculuğun sonuna eklenen bir yolcu alma ve bırakma gibi seyahat. Bu durumlarda her gezi birbirine özeldir ancak seyahatler arka arkaya olacak şekilde sıralanır. Ayrıca, gerekirse bu tür geziler ara varış noktaları içerebilir.

Paylaşılan geziler

Paylaşılan gezi, yolculuğu diğer seyahat rezervasyonlarıyla çakışabilir. Bu gezi türleri için sisteminiz, bunları araya giren hedeflerle eş zamanlı olarak gerçekleşecek şekilde atayabilir. Örneğin, bir gezideki ayrılma, başka bir seyahat için teslim almasından sonra gerçekleşebilir. Ayrıca, paylaşılan gezilerde ara noktalar kullanılamaz.

Genellikle, Seyahat senaryoları bölümünde gösterilen paylaşılan havuz senaryolarından biri için ortak gezi kullanırsınız.

Yolculuk referans noktaları

Google Haritalar'da referans noktası, genellikle enlem/boylam koordinatıyla tanımlanan rota üzerindeki bir yerdir. İsteğe bağlı gezilerde ara nokta, TripWaypoint nesnesiyle temsil edilir. Bu nesne, aşağıdakiler gibi ek bilgileri içerir:

  • Gezi kimliği
  • WaypointType (teslim alma, ara veya bırakma)
  • Önceki seyahat ara noktası ile mevcut referans noktası arasındaki yol ve mesafe bilgileri
  • Yolculuk ara noktasına giden yoldaki trafik koşulları
  • Ara noktaya giden seyahat süresi ve TVS

Referansları inceleyin:

Yolculuk referans noktası türleri

Seyahat referans noktası, araç yolculuğunun genel yaşam döngüsüyle ilişkili olarak tanımlanır:

  • Teslim alma referans noktası - Sürücünün sonraki teslimat için bir yemek siparişi alması veya sürücünün daha sonra teslim etmek üzere bir kişiyi alması gibi seyahatin kalkış noktası veya başlangıcı için kullanılır.
  • Ara ara nokta: Bir sürücünün aynı rezervasyon tarafındaki yolculardan birini bırakmasına rağmen daha fazla yolcu kaldığı için yolculuğun tamamlanmaması gibi çeşitli amaçlar için kullanılabilecek ara varış noktası. Bu ara nokta isteğe bağlıdır ve yalnızca özel geziler için kullanılabilir.
  • Ayrılma ara noktası: Kalan yolcunun araçtan inmesi gibi yolculuğun son konumu için kullanılır.

Yolculuk ara noktası listeleri

Trip varlığı, her biri TripWaypoint türünde tekrarlanan bir alan olan iki ara nokta listesi içerir. Listelerden biri yolculuğun kendisi için gerekli olan alanları, diğeri de geziyle ilişkili araç için kalan tüm ara noktaları açıklar. Bu sayede yolculuğun ve araç yolculuğunun tamamı dahil olmak üzere yolculuğun tüm unsurlarını görebilirsiniz.

  • Araç için kalan ara noktalar: vehicle_waypoints adlı bir alandır. Araca atanan tüm yolculuklar için kalan tüm ara noktaları içerir.
  • Gezi için kalan ara noktalar: remaining_waypoints adlı alan. Aracın, yolculuğun son iniş noktasından önce sırayla gitmesi gereken ara noktaları içerir. Seyahat senaryoları bölümündeki senaryoları inceleyin.
    • Programında başka yolculuk bulunmayan bir araca atanan tek hedefli seyahat için bu, aracın teslim alma ara noktasından ayrılmadığı varsayıldığında yalnızca bir alma ve bırakma konumunu içerir.
    • Aracın başka yolculuklar için de programlandığı diğer yolculuk senaryolarında, seyahat planındaki herhangi bir gezi için kalan ara noktalar, aracın o yolculuk için bırakma ara noktasına ulaşmadan önce kat etmesi gereken diğer yolculuklara ait tüm ara noktaları içerir. Örneğin, aracın A seyahati için ayrılmaya doğru ilerlediği bir arka arkaya yolculukta, B seyahati için kalan ara noktalar, A seyahati için bırakma ara noktasını içerir. Fleet Engine, bu bilgileri vehicle_waypoints alanını kullanarak hesaplar.

Trip varlığına ilişkin referansa bakın: gRPC veya REST.

Gezi senaryoları

Aşağıdaki diyagramlarda, desteklenen çeşitli gezi senaryoları gösterilmektedir. Bu senaryolarda, yalnızca paylaşılan havuz gezisi SHARED türündedir; diğer tüm seyahatler EXCLUSIVE türündedir. Diyagramlar, bu kılavuzun ilerleyen bölümlerinde açıklanan kavramlarla, yolculuğu gerçekleştiren araç için yolculuk durumunu ve kalan ara noktaları da gösterir.

Tek varışlı gezi

Tek varışlı seyahat, bir teslim alma ve bırakma konumu içeren EXCLUSIVE seyahatidir. Örneğin, sürücü bir yolcuyu bir yerden alıp başka bir yere götürüyor veya sürücü bir restorandan paket yemek siparişi alıp müşteriye teslim ediyor.

Çok hedefli geziler

Çok hedefli seyahat, teslim alma ve bırakma konumları arasında bir veya daha fazla ara varış noktası içeren EXCLUSIVE seyahatidir. Örneğin, araç paylaşımı yapan üç müşteri bir kişinin telefonundan birlikte araç yolculuğu rezervasyonu yapar, ancak ikisinin hedefi ayrıdır.

Art arda gezi

Art arda yapılan geziler, birbiri ardına gerçekleşen bir dizi bağımsız seyahat içeren EXCLUSIVE seyahatlerdir. Zincirdeki her seyahat, tek veya çok hedefli olabilir. Bu senaryoda sürücü, mevcut yolculuğu tamamlamadan önce başka bir müşteriyi almayı taahhüt eder.

Bu seyahatler yalnızca arka arkaya planlama olanak tanıyan araçlara atanabilir. Vehicle REST, gRPC referansını inceleyin.

Ortak havuz gezileri

Ortak havuz gezisi diğer gezi türlerinden farklıdır. Öncelikle, EXCLUSIVE değil, SHARED bir seyahat olmalıdır. Burada araç, yolculukları özel yolculuklarda olduğu gibi sırayla değil eşzamanlı olarak yürütür. Paylaşılan havuz gezisi yolculuğunu diğer seyahatlerle paylaşır ancak geziler arasında alma ve bırakma konumu bilgileri paylaşılmaz. Bunun yerine, her seyahat özel bir rezervasyondur. Böylece, bir seyahat için rezervasyon yapan son kullanıcı, kendi seyahati dışındaki bir seyahate ait teslim alma veya varış noktası bilgilerini göremez. Örneğin:

  • Havaalanı servis hizmeti, farklı müşterileri ikamet ettikleri konukları alarak rota üzerindeki farklı havalimanı terminallerine yerleştirir. 2. kişi, seyahatin ilerlemesini takip etmek için tüketici uygulamanızı kullanabilir ancak uygulamada, yolculuk bölümleri çakışsa bile 1. kişinin nereden alındığı veya nereye ayrılacağı değil, yolculuğun yalnızca bir kısmını gösterir.
  • Bir yemek kuryesi, farklı müşteri evlerine teslimat yapmak için aynı restorandan üç yemek siparişi alır. 3. Kişi, tüketici uygulamanızı kullanarak yemeğin nereden ve ne zaman teslim alındığını görebilir ve sürücü rotasını görebilir, ancak 1. ve 2. kişi için yemeğin ne zaman verildiğini göremez.

Gezi durumu ve yaşam döngüsü

Bu bölümde, yolculuk durumu, bunun araç üzerindeki etkisi ve isteğe bağlı seyahatlerinizi atayıp yönetirken karşılaştığınız çeşitli senaryolar açıklanmaktadır.

Geziler genellikle oluşturma aşamasından tamamlanmaya kadar çeşitli aşamalarda ilerler. Genel olarak, bir gezi, durumuna bağlı olarak aktif veya etkin olmayabilir. Yolculuk durumu, Fleet Engine'de çeşitli kullanım alanı senaryolarını ve yolculuk boyunca araç ilerlemesini belirleyebilmenizi etkiler. Bu belgenin geri kalanında bu senaryolar ele alınmaktadır.

Aşağıdaki tabloda, etkin ve etkin olmayan türlere göre gezi durumu listelenmektedir.

Etkin gezi durumları Etkin olmayan gezi durumları
NEW
UNKNOWN_TRIP_STATUS
ENROUTE_TO_PICKUP
ARRIVED_AT_PICKUP
ENROUTE_TO_INTERMEDIATE_DESTINATION
ARRIVED_AT_INTERMEDIATE_DESTINATION
ENROUTE_TO_DROPOFF
COMPLETE
CANCELED

Yolculuk durumu ve kalan araç ara noktaları

Seyahat etmekte olan bir araca ek geziler atarken, aracın kalan ara noktaları arasındaki ilişkiyi ve gezi durumunun kalan ara noktaları nasıl etkilediğini anlamanız gerekir.

Örneğin, yalnızca özel yolculukları destekleyen ve yolculuğu tamamlama sürecinde olan bir araca yeni bir araç paylaşımı isteği atayabilirsiniz. Bu durumda, seyahatinizi arka arkaya bir yolculuk olarak modelleyebilirsiniz. Bu tür bir gezi atarken sisteminiz yeni gezi için ara noktaların devam eden yolculuğun ara noktalarından sonra olduğundan emin olmalıdır.

Fleet Engine, araç yolculuğu sırasında önceki bir ara noktayı aracın kalan ara noktalar listesinden yalnızca araç bir sonraki hedefe giden veya tamamlandığını bildirdiğinde kaldırır. Yani, aşağıdakilerden herhangi biri:

  • ENROUTE_TO_INTERMEDIATE_DESTINATION
  • ENROUTE_TO_DROPOFF
  • TAMAMLANDI

Yolculuk durumu COMPLETED olarak değiştiğinde, Fleet Engine yolculuğun son referans noktasını aracın kalan ara noktası listesinden kaldırır.

Buna karşılık, bir ara noktaya varışı gösteren durum değişikliklerinin genellikle aracın kalan ara noktaları listesi üzerinde herhangi bir etkisi yoktur:

  • ARRIVED_AT_PICKUP
  • ARRIVED_AT_INTERMEDIATE_DESTINATION
  • ARRIVED_AT_DROPOFF

İsteğe bağlı yolculuk örneğiyle açıklama yapmak gerekirse: Sürücünün bir müşteriyi yaşadığı yerden alıp müşterinin bir görevi tamamlamasını beklediği bir yere götürdüğünü ve daha sonra da bulunduğu yere geri taşıdığını varsayalım. Başlangıçta oluşturulan gezide üç ara nokta bulunur: PICKUP, INTERMEDIATE ve DROPOFF. Aşağıdaki tabloda, yolculuğun çeşitli durumlarında kalan ara noktalar için yapılan sorgunun sonuçları gösterilmektedir:

Gezi durumu Kalan ara noktalar
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 gereksinimleri

Aşağıdakilerden herhangi birini yapabilmek için gezi durumunu NEW veya CANCELED olarak ayarlamanız gerekir.

  • Seyahat için araç atamalarını değiştirirken. Örneğin, bir sürücü bir aracın yolculuk için atanmasını reddederse ve bu aracın farklı bir araca yeniden atanması gerekiyorsa.
  • Seyahat için araç atamasını silerken. Örneğin, bir sürücü yoldayken bir yolculuğu iptal ederse ve araç atamasını temizlemek isterseniz durum NEW veya CANCELED olmalıdır.

Gezi durumuna göre arama sonuçları

SearchTrips hizmetini belirli bir araç için kullandığınızda SearchTripsResponse içindeki etkin yolculukların listesini döndürür. Etkin geziler, Vehicle öğesinin active_trips alanında da gösterilir. Ayrıntılar için SearchTripsResponse referansına bakın: gRPC veya REST.

Bu nedenle, etkin durumdaki tüm geziler active_trips alanında görünür, ancak tamamlanan veya iptal edilen geziler görünmez.

Sırada ne var?