เอกสารนี้อธิบายบริการการเดินทางแบบออนดีมานด์ใน Fleet Engine บทความนี้ถือว่าคุณได้อ่านFleet Engine คืออะไรและทราบถึงความสามารถของบริการ Fleet Engine ที่คุณต้องการ
โปรดคำนึงถึงสิ่งต่อไปนี้ขณะอ่านเอกสารประกอบนี้
- คุณกําหนดการเดินทางให้กับยานพาหนะเพื่อจำลองการเชื่อมโยงในชีวิตจริงระหว่างการเดินทางกับคนขับที่ทําการเดินทางนั้นเสร็จสมบูรณ์ อ่านข้อมูลเบื้องต้นเกี่ยวกับยานพาหนะเพื่อให้เข้าใจวิธีการทำงานของยานพาหนะในฟีเจอร์ Fleet Engine ได้ดียิ่งขึ้น
- เอกสารนี้ยังอธิบายองค์ประกอบยานพาหนะบางอย่างที่ใช้กับการเดินทางแบบออนดีมานด์เท่านั้น
- Fleet Engine สำหรับการเดินทางแบบออนดีมานด์ใช้ทรัพยากร 2 อย่าง ได้แก่
Trip
และVehicle
Fleet Engine มีบริการ gRPC และอินเทอร์เฟซ REST ดังนี้
การเดินทางแบบออนดีมานด์คืออะไร
ใน Fleet Engine การเดินทางแสดงถึงเส้นทางแบบออนดีมานด์ที่บรรลุเป้าหมายการขนส่งที่หลากหลาย เช่น
- คน: ขนส่งบุคคลตั้งแต่ 1 คนขึ้นไปจากจุดรับส่ง
- อาหารและสินค้า: รับคำสั่งซื้ออาหารอย่างน้อย 1 รายการจากสถานที่ตั้งของธุรกิจหนึ่งๆ และนำส่งคำสั่งซื้อเหล่านี้ไปยังผู้รับอย่างน้อย 1 ราย ณ สถานที่ตั้งของผู้รับ
องค์ประกอบการเดินทาง
ภาพต่อไปนี้แสดงองค์ประกอบพื้นฐานของการเดินทาง ได้แก่ รหัสยานพาหนะที่กําหนด สถานะการเดินทาง และจุดแวะพักระหว่างการเดินทาง ประเภทจุดแวะพักจะแตกต่างกันไปขึ้นอยู่กับระยะทางของการเดินทาง ได้แก่ จุดรับส่ง จุดแวะพัก และจุดส่งผู้โดยสาร ในการเดินทางแต่ละครั้ง คุณไม่จำเป็นต้องระบุจุดแวะพักหรือจุดหมายระหว่างทาง ในตัวอย่างรูปภาพ ยานพาหนะมาถึงจุดรับแล้ว
โมเดลข้อมูลสําหรับการเดินทาง
เมื่อแบ็กเอนด์กำหนดการเดินทางให้กับยานพาหนะ แบ็กเอนด์จะต้องทราบเกี่ยวกับการเดินทางอื่นๆ ที่กำหนดเวลาไว้สำหรับยานพาหนะด้วย ด้วยเหตุนี้ แผนภาพต่อไปนี้จึงแสดงโมเดลข้อมูลของทรัพยากร Trip
ควบคู่ไปกับแผนภาพสำหรับทรัพยากร Vehicle
ที่เชื่อมโยง คุณสามารถตรวจสอบทั้ง 2 แผนภาพเพื่อสำรวจความสัมพันธ์ระหว่างแหล่งข้อมูล 2 รายการ โดยคำนึงถึงสิ่งต่อไปนี้
- ระบบจะกำหนดการเดินทางให้กับยานพาหนะตามรหัส
- การเชื่อมโยงการเดินทางกับยานพาหนะเป็นแบบหลายต่อ 1 กล่าวคือ การเดินทางหนึ่งๆ อาจเป็นเพียงการเดินทางเดียวที่กำหนดเวลาไว้สำหรับยานพาหนะ หรืออาจเป็นการเดินทางรายการใดรายการหนึ่งในหลายๆ รายการของยานพาหนะ
- ออบเจ็กต์การเดินทางมีรายการจุดแวะพักของการเดินทาง 2 รายการ รายการหนึ่งสำหรับการเดินทางเองและอีกรายการสำหรับยานพาหนะที่กําหนด ซึ่งอธิบายไว้อย่างละเอียดในเอกสารนี้
- ยานพาหนะแบบเรียกให้ใช้งานยังมีรายการจุดแวะพักระหว่างการเดินทางด้วย ซึ่งอธิบายไว้อย่างละเอียดในเอกสารนี้
โมเดลข้อมูลการเดินทาง
โมเดลข้อมูลยานพาหนะ
ประเภทการเดินทาง
เมื่อบริการสร้างการเดินทาง บริการจะตั้งค่าช่อง tripType
เป็น EXCLUSIVE
หรือ SHARED
ได้
ทริปสุดพิเศษ
การเดินทางแบบพิเศษคือการเดินทางที่ไม่ได้ซ้อนทับกับการเดินทางอื่นๆ และเป็นการเดินทางที่ยานพาหนะออกเดินทางก่อนหรือหลังการเดินทางอื่นๆ ตามกำหนดการ ซึ่งหมายความว่าเมื่อระบบกำหนดการเดินทางแบบพิเศษ ระบบจะกำหนดการเดินทางดังกล่าวให้กับยานพาหนะเพื่อดำเนินการให้เสร็จสมบูรณ์ตามลำดับเท่านั้น แต่จะดำเนินการพร้อมกันไม่ได้ ตัวอย่างเช่น คุณอาจสร้างทริปสุดพิเศษที่มีลักษณะต่อไปนี้
- การเดินทางที่มีการรับส่งครั้งเดียวสำหรับยานพาหนะที่ไม่ได้มีการเดินทางอื่นๆ ในกำหนดการ
- การเดินทางที่มีการรับส่ง ทางผ่าน และจุดส่งคืนยานพาหนะโดยไม่มีการเดินทางอื่นในกำหนดการ
- การเดินทางที่มีการเพิ่มจุดรับและส่งของที่ท้ายการเดินทางที่กำหนดเวลาไว้แล้วสำหรับยานพาหนะ ในกรณีเหล่านี้ การเดินทางแต่ละครั้งจะแยกจากกัน แต่มีลําดับต่อกัน นอกจากนี้ การเดินทางดังกล่าวยังรวมจุดหมายระหว่างทางได้หากจำเป็น
การเดินทางที่แชร์
การเดินทางที่แชร์คือการเดินทางที่เส้นทางอาจทับซ้อนกับการจองการเดินทางอื่นๆ สำหรับการเดินทางประเภทเหล่านี้ ระบบสามารถกำหนดให้เกิดขึ้นพร้อมกันกับปลายทางที่แทรกไว้ เช่น การนำส่งของการเดินทางหนึ่งอาจเกิดขึ้นหลังจากการไปรับของอีกการเดินทางหนึ่ง นอกจากนี้ การเดินทางที่แชร์จะใช้จุดแวะพักระหว่างทางไม่ได้
โดยปกติแล้ว คุณจะใช้การเดินทางที่แชร์สำหรับสถานการณ์การรวมกลุ่มที่ใช้ร่วมกันรูปแบบใดรูปแบบหนึ่งซึ่งแสดงในส่วนสถานการณ์การเดินทาง
จุดแวะพักระหว่างการเดินทาง
สำหรับ Google Maps จุดแวะพักคือสถานที่ระหว่างเส้นทาง ซึ่งมักจะกำหนดโดยพิกัดละติจูด/ลองจิจูด สำหรับการเดินทางแบบออนดีมานด์ จุดสังเกตจะแสดงโดยออบเจ็กต์ TripWaypoint
ซึ่งมีข้อมูลเพิ่มเติม เช่น
- รหัสการเดินทาง
WaypointType
ซึ่งอาจเป็นจุดรับส่ง ที่พัก หรือจุดส่ง- ข้อมูลเส้นทางและระยะทางระหว่างจุดแวะพักของการเดินทางก่อนหน้านี้กับจุดแวะพักปัจจุบัน
- สภาพการจราจรตลอดเส้นทางไปยังจุดแวะพักของการเดินทาง
- ระยะเวลาเดินทางและเวลาถึงโดยประมาณของจุดแวะพักระหว่างการเดินทาง
ดูข้อมูลอ้างอิงต่อไปนี้
ประเภทจุดแวะพักระหว่างการเดินทาง
การกำหนดจุดแวะพักระหว่างการเดินทางจะสัมพันธ์กับวงจรทั่วไปของการเดินทางด้วยยานพาหนะ ดังนี้
- จุดแวะรับ - ใช้สำหรับจุดต้นทางหรือจุดเริ่มต้นของการเดินทาง เช่น เมื่อคนขับไปรับคำสั่งซื้ออาหารเพื่อนำส่งในภายหลัง หรือเมื่อคนขับไปรับผู้โดยสารเพื่อส่งในภายหลัง
- จุดแวะพักกลางทาง - ปลายทางกลางทางที่ใช้เพื่อวัตถุประสงค์ต่างๆ ได้ เช่น เมื่อคนขับส่งผู้โดยสาร 1 คนจากฝ่ายที่จองเดียวกัน แต่การเดินทางยังไม่เสร็จสมบูรณ์เนื่องจากยังมีผู้โดยสารคนอื่นๆ อยู่ ทางผ่านนี้เป็นตัวเลือกและใช้ได้กับทริปพิเศษเท่านั้น
- จุดแวะส่งผู้โดยสาร - ใช้สำหรับตำแหน่งสุดท้ายของการเดินทาง เช่น เมื่อผู้โดยสารที่เหลือออกจากยานพาหนะ
รายการจุดแวะพักของการเดินทาง
เอนทิตี Trip
มีรายการจุดแวะพัก 2 รายการ ซึ่งแต่ละรายการเป็นฟิลด์ประเภท TripWaypoint
ซ้ำ รายการหนึ่งจะอธิบายช่องที่จำเป็นสำหรับการเดินทาง และอีกรายการจะอธิบายจุดแวะพักทั้งหมดที่เหลือสำหรับยานพาหนะที่เชื่อมโยงกับการเดินทาง ซึ่งจะช่วยให้คุณเห็นภาพองค์ประกอบทั้งหมดของเส้นทางได้อย่างชัดเจน ไม่ว่าจะเป็นการเดินทางและเส้นทางของยานพาหนะ
- จุดแวะพักที่เหลือสำหรับยานพาหนะ - ช่องชื่อ
vehicle_waypoints
ซึ่งจะมีจุดแวะพักที่เหลือทั้งหมดสำหรับการเดินทางทั้งหมดที่กำหนดให้กับยานพาหนะ - จุดแวะพักที่เหลือสำหรับการเดินทาง - ช่องชื่อ
remaining_waypoints
โดยจะมีจุดแวะพักที่ยานพาหนะต้องเดินทางตามลำดับก่อนถึงจุดส่งผู้โดยสารสุดท้ายของการเดินทาง ดูสถานการณ์ในสถานการณ์การเดินทาง- สำหรับการเดินทางที่มีจุดหมายเดียวซึ่งกำหนดให้กับยานพาหนะที่ไม่ได้มีการเดินทางอื่นๆ ในกำหนดการ ข้อมูลนี้จะรวมเฉพาะสถานที่รับและส่งเท่านั้น โดยสมมติว่ายานพาหนะยังไม่ได้ออกจากจุดแวะรับ
- สำหรับสถานการณ์การเดินทางอื่นๆ ที่ยานพาหนะมีกำหนดเวลาสำหรับการเดินทางอื่นๆ ด้วย จุดแวะพักที่เหลือสำหรับการเดินทางใดๆ ในแผนการเดินทางจะรวมจุดแวะพักทั้งหมดจากการเดินทางอื่นๆ ที่ยานพาหนะต้องผ่านก่อนที่จะถึงจุดแวะพักสำหรับการเดินทางนั้น ตัวอย่างเช่น ในการเดินทางติดต่อกัน 2 เที่ยวที่ยานพาหนะกำลังเดินทางไปจุดส่งผู้โดยสารของเที่ยวที่ 1 จุดแวะพักที่เหลือของเที่ยวที่ 2 จะรวมจุดแวะพักของจุดส่งผู้โดยสารของเที่ยวที่ 1 ด้วย Fleet Engine จะคํานวณข้อมูลนี้โดยใช้ฟิลด์
vehicle_waypoints
ดูข้อมูลอ้างอิงสำหรับเอนทิตี Trip
: gRPC หรือ REST
สถานการณ์การเดินทาง
แผนภาพต่อไปนี้แสดงสถานการณ์การเดินทางที่รองรับ ในกรณีเหล่านี้ มีเพียงการเดินทางแบบรวมกลุ่มที่แชร์เท่านั้นที่เป็นประเภท SHARED
ส่วนการเดินทางอื่นๆ ทั้งหมดจะเป็นประเภท EXCLUSIVE
แผนภาพยังแสดงสถานะการเดินทางและจุดแวะพักที่เหลือของยานพาหนะที่เดินทางด้วย ซึ่งเป็นแนวคิดที่อธิบายไว้ในส่วนถัดไปของคู่มือนี้
การเดินทางไปยังจุดหมายเดียว
การเดินทางไปยังจุดหมายเดียวคือการเดินทาง EXCLUSIVE
ที่มีจุดรับส่ง 1 แห่ง เช่น คนขับไปรับผู้โดยสารจากจุดหนึ่งและนำไปส่งที่จุดอื่น หรือคนขับไปรับคำสั่งซื้ออาหารจากร้านอาหารและนำไปส่งให้ลูกค้า
การเดินทางหลายจุดหมาย
การเดินทางหลายจุดหมายคือEXCLUSIVE
การเดินทางที่มีจุดหมายพักระหว่างทางอย่างน้อย 1 แห่งระหว่างจุดรับและจุดส่ง ตัวอย่างเช่น ลูกค้าเรียกรถ 3 คนจองรถด้วยกันจากโทรศัพท์ของบุคคลหนึ่ง แต่แต่ละคนมีจุดหมายปลายทางแยกกัน
การเดินทางติดต่อกัน
การเดินทางติดต่อกันคือEXCLUSIVE
การเดินทางที่มีชุดการเดินทางอิสระที่เกิดขึ้นติดต่อกัน การเดินทางแต่ละเที่ยวในเชนอาจเป็นปลายทางเดียวหรือหลายปลายทางก็ได้ ในกรณีนี้ คนขับตกลงที่จะไปรับลูกค้าอีกรายก่อนที่จะนำส่งผู้โดยสารคนปัจจุบัน
คุณสามารถกำหนดการเดินทางเหล่านี้ให้กับยานพาหนะที่อนุญาตให้กำหนดเวลาติดต่อกันได้เท่านั้น ดูข้อมูลอ้างอิงVehicle
REST,
gRPC
การเดินทางแบบแชร์
การเดินทางแบบร่วมจะแตกต่างจากการเดินทางประเภทอื่นๆ ประการแรก ต้องเป็นการเดินทางแบบ SHARED
ไม่ใช่ EXCLUSIVE
ในกรณีนี้ ยานพาหนะจะดำเนินการเดินทางพร้อมกันแทนที่จะดำเนินการตามลำดับเช่นเดียวกับการเดินทางแบบไม่รวม แม้ว่าการเดินทางแบบร่วมจะแชร์เส้นทางกับการเดินทางอื่นๆ แต่จะไม่แชร์ข้อมูลสถานที่รับและส่งระหว่างการเดินทาง แต่แต่ละทริปเป็นการจองแบบพิเศษเพื่อให้ผู้ใช้ปลายทางที่จองทริปหนึ่งๆ ไม่สามารถดูข้อมูลจุดรับหรือจุดหมายของทริปอื่นได้ เช่น
- บริการรถรับส่งสนามบินจะรับลูกค้าจากที่พักและส่งลูกค้าไปยังอาคารผู้โดยสารต่างๆ ของสนามบินตามเส้นทาง บุคคลที่ 2 อาจใช้แอปสำหรับผู้บริโภคเพื่อติดตามความคืบหน้าของการเดินทาง แต่แอปของบุคคลที่ 2 จะแสดงเฉพาะเส้นทางของบุคคลที่ 2 เท่านั้น โดยไม่แสดงจุดรับส่งบุคคลที่ 1 แม้ว่าเส้นทางบางส่วนจะทับซ้อนกันก็ตาม
- คนขับรถส่งอาหารรับคำสั่งซื้ออาหาร 3 รายการจากร้านอาหารเดียวกันเพื่อนำส่งไปยังที่พักของลูกค้าที่แตกต่างกัน เมื่อใช้แอปสำหรับผู้บริโภค บุคคลที่ 3 จะดูได้ว่ามีการนำอาหารไปส่งที่ไหนและเมื่อใด รวมถึงดูเส้นทางของพนักงานขับรถได้ แต่จะไม่เห็นจุดส่งอาหารของบุคคลที่ 1 และ 2
สถานะการเดินทางและวงจรของสถานะ
ส่วนนี้จะอธิบายสถานะการเดินทางและผลกระทบที่มีต่อยานพาหนะ รวมถึงสถานการณ์ต่างๆ ที่คุณพบขณะมอบหมายและจัดการการเดินทางแบบออนดีมานด์
โดยทั่วไป การเดินทางจะผ่านสถานะต่างๆ ตั้งแต่การสร้างจนถึงเสร็จสมบูรณ์ โดยทั่วไปแล้ว การเดินทางอาจเป็นได้ทั้งใช้งานอยู่หรือไม่มีการใช้งาน ทั้งนี้ขึ้นอยู่กับสถานะ สถานะการเดินทางส่งผลต่อสถานการณ์การใช้งานที่หลากหลายของ Fleet Engine รวมถึงความสามารถในการระบุความคืบหน้าของยานพาหนะตลอดเส้นทาง ส่วนที่เหลือของเอกสารนี้จะกล่าวถึงสถานการณ์เหล่านั้น
ตารางต่อไปนี้แสดงสถานะการเดินทางตามประเภทที่ใช้งานอยู่และไม่ได้ใช้งาน
สถานะการเดินทางที่ใช้งานอยู่ | สถานะการเดินทางที่ไม่ได้ใช้งาน |
---|---|
NEW UNKNOWN_TRIP_STATUS ENROUTE_TO_PICKUP ARRIVED_AT_PICKUP ENROUTE_TO_INTERMEDIATE_DESTINATION ARRIVED_AT_INTERMEDIATE_DESTINATION ENROUTE_TO_DROPOFF
|
COMPLETE CANCELED
|
สถานะการเดินทางและจุดแวะพักที่เหลือของยานพาหนะ
เมื่อมอบหมายการเดินทางเพิ่มเติมให้กับยานพาหนะที่ดำเนินการเดินทางอยู่แล้ว คุณควรทำความเข้าใจความสัมพันธ์ระหว่างจุดแวะพักที่เหลืออยู่ของยานพาหนะและผลกระทบที่สถานะการเดินทางมีต่อจุดแวะพักที่เหลืออยู่เหล่านั้น
เช่น คุณอาจมอบหมายคำขอเรียกรถร่วมคันใหม่ให้กับยานพาหนะที่รองรับเฉพาะการเดินทางแบบเหมาคันเท่านั้นและกำลังอยู่ระหว่างการเดินทาง ในกรณีนี้ คุณควรจำลองการเดินทางเป็นการเดินทางติดต่อกัน เมื่อกำหนดการเดินทางดังกล่าว ระบบควรตรวจสอบว่าจุดแวะพักของการเดินทางใหม่เกิดขึ้นหลังจากจุดแวะพักของการเดินทางที่กำลังดำเนินอยู่
ในระหว่างการเดินทางของยานพาหนะ เครื่องยนต์ของฝูงรถจะนำจุดแวะพักของการเดินทางก่อนหน้าออกจากรายการจุดแวะพักที่เหลือของยานพาหนะเฉพาะเมื่อยานพาหนะรายงานว่ากำลังเดินทางไปยังจุดหมายถัดไปหรือเสร็จสิ้นแล้ว กล่าวคือ การดำเนินการต่อไปนี้
- ENROUTE_TO_INTERMEDIATE_DESTINATION
- ENROUTE_TO_DROPOFF
- เสร็จสมบูรณ์
เมื่อสถานะการเดินทางเปลี่ยนเป็น COMPLETED
เครื่องยนต์ของฝูงรถจะนำจุดสังเกตสุดท้ายของการเดินทางออกจากรายการจุดสังเกตที่เหลือของยานพาหนะ
ในทางตรงกันข้าม การเปลี่ยนแปลงสถานะที่ระบุว่ามาถึงจุดสังเกตมักจะไม่มีผลต่อรายการจุดสังเกตที่เหลือของยานพาหนะ
- ARRIVED_AT_PICKUP
- ARRIVED_AT_INTERMEDIATE_DESTINATION
- ARRIVED_AT_DROPOFF
ตัวอย่างบริการเรียกรถแบบออนดีมานด์ เช่น สมมติว่าคนขับไปรับลูกค้าจากที่พัก พาลูกค้าไปยังสถานที่ซึ่งคนขับจะรอให้ลูกค้าทำงานให้เสร็จ แล้วพาลูกค้ากลับไปที่ที่พัก เมื่อสร้างการเดินทางครั้งแรก การเดินทางจะมีจุดแวะพัก 3 จุด ได้แก่ PICKUP
,
INTERMEDIATE
และ DROPOFF
ตารางต่อไปนี้แสดงผลการค้นหาจุดแวะพักที่เหลืออยู่ในสถานะต่างๆ ของการเดินทาง
สถานะการเดินทาง | จุดแวะพักที่เหลือ |
---|---|
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 |
ข้อกำหนดด้านสถานะสำหรับการเดินทางที่มีการมอบหมายใหม่หรือยกเลิก
คุณต้องตั้งค่าสถานะการเดินทางเป็น NEW
หรือ CANCELED
ก่อนจึงจะทำสิ่งต่อไปนี้ได้
- เมื่อเปลี่ยนการกำหนดยานพาหนะสำหรับการเดินทาง เช่น หากคนขับปฏิเสธการมอบหมายยานพาหนะสำหรับการเดินทางและจำเป็นต้องมอบหมายใหม่ให้กับยานพาหนะคันอื่น
- เมื่อล้างการกำหนดยานพาหนะสำหรับการเดินทาง ตัวอย่างเช่น หากคนขับยกเลิกการเดินทางระหว่างเส้นทางและคุณต้องการล้างการมอบหมายยานพาหนะ สถานะต้องเป็น
NEW
หรือCANCELED
ผลการค้นหาตามสถานะการเดินทาง
เมื่อคุณใช้บริการ SearchTrips
สำหรับยานพาหนะหนึ่งๆ ระบบจะแสดงรายการการเดินทางที่ใช้งานอยู่ใน SearchTripsResponse
การเดินทางที่ใช้งานอยู่จะปรากฏในช่อง active_trips
ของเอนทิตี Vehicle
ด้วย ดูรายละเอียดได้ในSearchTripsResponse
ข้อมูลอ้างอิงสำหรับ gRPC หรือ REST
ดังนั้น การเดินทางทั้งหมดที่มีสถานะ "ใช้งานอยู่" จะปรากฏในช่อง active_trips
แต่การเดินทางที่เสร็จสมบูรณ์หรือยกเลิกแล้วจะไม่ปรากฏ