เอกสารนี้อธิบายบริการการเดินทางแบบออนดีมานด์ใน 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 รายการได้ โดยข้อควรทราบมีดังนี้
- กำหนดการเดินทางให้กับยานพาหนะตามบัตรประจำตัว
- สมาคมพาหนะการเดินทาง (The Tripvehicle Association) กล่าวคือ การเดินทางหนึ่งๆ อาจเป็นการเดินทางเดียวที่กำหนดเวลาไว้สำหรับยานพาหนะ หรืออาจเป็นหนึ่งในการเดินทางจำนวนมากสำหรับยานพาหนะ
- วัตถุการเดินทางประกอบด้วยรายการจุดอ้างอิง 2 จุด โดยจุดแรกสำหรับการเดินทางนั้นเอง และอีกจุดหนึ่งสำหรับยานพาหนะที่กำหนด ซึ่งจะมีการอธิบายในรายละเอียดเพิ่มเติมในเอกสารนี้
- ยานพาหนะแบบออนดีมานด์มีรายการจุดอ้างอิงสำหรับการเดินทาง ซึ่งอธิบายไว้อย่างละเอียดในเอกสารนี้
โมเดลข้อมูลการเดินทาง
โมเดลข้อมูลยานพาหนะ
ประเภทการเดินทาง
เมื่อบริการสร้างการเดินทาง อาจตั้งค่าช่อง tripType
เป็น EXCLUSIVE
หรือ SHARED
การเดินทางพิเศษ
การเดินทางพิเศษคือการเดินทางที่ไม่ซ้อนทับกับการเดินทางอื่นๆ และการเดินทางที่ยานพาหนะเสร็จสมบูรณ์ก่อนหรือหลังจากการเดินทางอื่นๆ ตามกำหนดการ ซึ่งหมายความว่าเมื่อระบบกำหนดการเดินทางสุดพิเศษ จะสามารถกำหนดการเดินทางดังกล่าวให้กับยานพาหนะตามลำดับเท่านั้น โดยไม่ดำเนินการพร้อมกัน เพื่อแสดงให้เห็นถึง คุณอาจสร้างการเดินทางพิเศษที่มีลักษณะเฉพาะต่อไปนี้
- การเดินทางที่มีบริการรับส่ง 1 ครั้งและส่งคืนยานพาหนะ 1 ครั้งสำหรับยานพาหนะที่ไม่มีการเดินทางอื่นๆ ตามกำหนดการ
- การเดินทางที่มีจุดอ้างอิงจุดรับ จุดระหว่างกลาง และการลงยานพาหนะ โดยไม่มีการเดินทางอื่นๆ ตามกำหนดการ
- เพิ่มการเดินทางที่มีบริการรับและส่งผู้โดยสารลงในตอนท้ายของการเดินทางที่จัดกำหนดการไว้แล้วสำหรับยานพาหนะ ในกรณีเหล่านี้ การเดินทางแต่ละครั้งจะไม่ซ้ำกัน แต่การเดินทางจะเรียงลำดับแบบต่อเนื่องกันไป นอกจากนี้ การเดินทางดังกล่าวยังอาจรวมถึงจุดหมายระดับกลาง หากจำเป็น
การเดินทางที่แชร์
การเดินทางที่แชร์คือการเดินทางที่ทับซ้อนกับการจองการเดินทางอื่นๆ ได้ สำหรับประเภทการเดินทางเหล่านี้ ระบบของคุณสามารถกำหนดให้การเดินทางเหล่านี้เกิดขึ้นพร้อมกันกับปลายทางที่เชื่อมถึงกัน ตัวอย่างเช่น การส่งคืนสำหรับการเดินทางครั้งหนึ่งอาจเกิดขึ้นหลังจากการรับสินค้าสำหรับการเดินทางอื่น นอกจากนี้ การเดินทางที่แชร์ไม่สามารถใช้ จุดอ้างอิงกลางได้ด้วย
โดยทั่วไปแล้ว คุณจะใช้การเดินทางที่แชร์สำหรับสถานการณ์การรวมข้อมูลร่วมกันอย่างใดอย่างหนึ่งดังที่แสดงในส่วนสถานการณ์การเดินทาง
จุดอ้างอิงสำหรับการเดินทาง
สำหรับ Google Maps การชี้ทางคือสถานที่ระหว่างเส้นทาง ซึ่งโดยปกติแล้วจะกำหนดโดยพิกัดละติจูด/ลองจิจูด สำหรับการเดินทางแบบออนดีมานด์ จุดอ้างอิงจะแสดงด้วยออบเจ็กต์ TripWaypoint
ซึ่งมีข้อมูลเพิ่มเติม เช่น
- รหัสการเดินทาง
WaypointType
ไม่ว่าจะเป็นการไปรับเอง ตอนกลาง หรือส่งคืน- ข้อมูลเส้นทางและระยะทางระหว่างจุดอ้างอิงของการเดินทางก่อนหน้ากับเส้นทางปัจจุบัน
- สภาพการจราจรตลอดเส้นทางจนถึงจุดอ้างอิงของการเดินทาง
- เวลาเดินทางและเวลาถึงโดยประมาณในการบอกทาง
ดูข้อมูลอ้างอิง
ประเภทจุดอ้างอิงสำหรับการเดินทาง
จุดอ้างอิงของการเดินทางกำหนดโดยสัมพันธ์กับวงจรชีวิตทั่วไปของการเดินทางโดยพาหนะ ดังนี้
- จุดอ้างอิงสำหรับการรับสินค้า - ใช้สำหรับต้นทางหรือจุดเริ่มต้นของการเดินทาง เช่น เมื่อคนขับไปรับคำสั่งซื้ออาหารเพื่อจัดส่งในภายหลัง หรือเมื่อคนขับไปรับคนมาส่งในภายหลัง
- จุดอ้างอิงระดับกลาง - และจุดหมายระดับกลางที่ใช้เพื่อวัตถุประสงค์ต่างๆ ได้ เช่น เมื่อคนขับนำผู้โดยสาร 1 คนจากการจองเดียวกัน แต่การเดินทางยังไม่เสร็จสมบูรณ์เนื่องจากมีผู้โดยสารเหลืออยู่อีก การชี้ทางนี้เป็นตัวเลือกที่ไม่บังคับและอาจใช้สำหรับการเดินทางพิเศษเท่านั้น
- จุดอ้างอิงสำหรับส่ง - ใช้สำหรับตำแหน่งสุดท้ายของการเดินทาง เช่น เมื่อผู้โดยสารที่เหลือออกจากรถ
รายการจุดอ้างอิงสำหรับการเดินทาง
เอนทิตี Trip
มีรายการจุดอ้างอิง 2 รายการ แต่ละรายการเป็นฟิลด์ที่ซ้ำของประเภท TripWaypoint
รายการหนึ่งอธิบายฟิลด์เหล่านั้นซึ่งจำเป็นสำหรับการเดินทางนั้นๆ และอีกรายการจะอธิบายจุดอ้างอิงทั้งหมดที่เหลืออยู่ของยานพาหนะที่เชื่อมโยงกับการเดินทาง ซึ่งจะช่วยให้คุณเห็นภาพรวมขององค์ประกอบทั้งหมดของ
การเดินทาง ทั้งการเดินทางและการเดินทางด้วยยานพาหนะ
- จุดอ้างอิงที่เหลืออยู่สำหรับยานพาหนะ - ช่องชื่อ
vehicle_waypoints
มีข้อมูลจุดอ้างอิงที่เหลืออยู่ทั้งหมดในการเดินทางทั้งหมดที่กำหนดให้รถ - จุดอ้างอิงที่เหลือสำหรับการเดินทาง - ช่องชื่อ
remaining_waypoints
ซึ่งมีจุดอ้างอิงที่ยานพาหนะต้องเดินทางตามลำดับก่อนจุดลงจอดสุดท้ายของการเดินทาง ดูสถานการณ์ได้ในสถานการณ์การเดินทาง- สำหรับการเดินทางแบบปลายทางเดียวที่กำหนดให้กับยานพาหนะที่ไม่มีการเดินทางอื่นตามกำหนดเวลา กรณีนี้จะรวมเฉพาะจุดรับและจุดลงรถ โดยถือว่ารถไม่ได้ออกจากจุดรับ
- สำหรับสถานการณ์การเดินทางอื่นๆ ที่มีการกำหนดเวลายานพาหนะไว้สำหรับการเดินทางอื่นๆ ด้วย จุดอ้างอิงที่เหลือสำหรับการเดินทางในแผนการเดินทางจะรวมจุดอ้างอิงทั้งหมดจากการเดินทางอื่นๆ ที่ยานพาหนะต้องเดินทางผ่านก่อนที่จะถึงจุดอ้างอิงสำหรับการเดินทางนั้น ตัวอย่างเช่น ในการเดินทางไป-กลับซึ่งมีพาหนะกำลังขับไป-กลับสำหรับการเดินทาง A จุดอ้างอิงที่เหลือสำหรับการเดินทาง B จะรวมจุดลงของการเดินทางสำหรับการเดินทาง A Fleet Engine คำนวณข้อมูลนี้โดยใช้ช่อง
vehicle_waypoints
ดูข้อมูลอ้างอิงสำหรับเอนทิตี Trip
: gRPC หรือ REST
สถานการณ์การเดินทาง
แผนภาพต่อไปนี้แสดงสถานการณ์การเดินทางที่รองรับแบบต่างๆ ในสถานการณ์เหล่านี้ จะมีเพียงการเดินทางรวมที่แชร์ซึ่งเป็นประเภท SHARED
เท่านั้น ประเภทอื่นทั้งหมดจะเป็น EXCLUSIVE
แผนภาพยังแสดงสถานะการเดินทางและจุดอ้างอิงที่เหลือของยานพาหนะในการเดินทาง แนวคิดที่จะอธิบายต่อไปในคู่มือนี้
การเดินทางแบบจุดหมายเดียว
การเดินทางแบบจุดหมายเดียวคือการเดินทาง EXCLUSIVE
ที่มีจุดไปรับและที่จุดรับส่ง 1 แห่ง ตัวอย่างเช่น คนขับรับผู้โดยสารไปรับผู้โดยสารจากสถานที่หนึ่งและไปส่งที่อื่น หรือคนขับรับคำสั่งซื้ออาหารจากร้านแล้วนำไปส่งให้ลูกค้า
การเดินทางหลายจุดหมาย
การเดินทางแบบหลายปลายทางคือการเดินทาง EXCLUSIVE
ที่มีจุดหมายขั้นกลางอย่างน้อย 1 แห่งระหว่างจุดรับและส่ง ตัวอย่างเช่น ลูกค้าบริการร่วมเดินทาง 3 รายจองรถโดยสารร่วมกัน
จากโทรศัพท์ 1 เครื่อง โดยแต่ละรายมีจุดหมายแยกกัน
การเดินทางขากลับ
การเดินทางไป-กลับคือการเดินทาง EXCLUSIVE
ที่มีชุดการเดินทางอิสระที่เกิดขึ้นต่อเนื่องกัน 1 ครั้ง การเดินทางแต่ละครั้งในเชนอาจมีปลายทางเดียวหรือหลายปลายทางก็ได้ ในสถานการณ์นี้ คนขับจะตกลงไปรับลูกค้ารายอื่นก่อนการเดินทางปัจจุบันจะเสร็จสมบูรณ์
คุณจะกำหนดการเดินทางเหล่านี้ให้กับยานพาหนะที่อนุญาตให้มีการกำหนดเวลาต่อเนื่องได้เท่านั้น โปรดดูข้อมูลอ้างอิง Vehicle
REST,
gRPC
การเดินทางแบบกลุ่มที่แชร์
การเดินทางแบบรวมที่แชร์จะแตกต่างจากการเดินทางประเภทอื่น อย่างแรก ต้องเป็นการเดินทาง SHARED
ไม่ใช่ EXCLUSIVE
ในตัวอย่างนี้ รถจะดำเนินการเดินทางพร้อมกันแทนที่จะทำตามลำดับเช่นเดียวกับการเดินทางพิเศษ แม้ว่าการเดินทางแบบรวมที่แชร์จะแชร์เส้นทางกับการเดินทางอื่นๆ แต่จะไม่แชร์ข้อมูลสถานที่รับและส่งของระหว่างการเดินทาง แต่เป็นการจองพิเศษที่ทำให้ผู้ใช้ปลายทางที่จองการเดินทาง 1 ครั้งไม่เห็นข้อมูลการรับสินค้าหรือจุดหมายของการเดินทางอื่นๆ ยกเว้นของตนเอง เช่น
- บริการรถรับส่งสนามบินจะคอยรับลูกค้าหลายคนที่ที่พักของลูกค้าและนำไปฝากไว้ที่อาคารผู้โดยสารของสนามบินต่างๆ ตลอดเส้นทาง บุคคลที่ 2 อาจใช้แอปผู้บริโภคเพื่อติดตามความคืบหน้าของการเดินทาง แต่แอปแสดงเพียงส่วนหนึ่งของเส้นทางเท่านั้น โดยไม่ได้แสดงตำแหน่งที่ 1 ไปรับ หรือบุคคล 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
|
สถานะการเดินทางและจุดอ้างอิงของยานพาหนะที่เหลืออยู่
เมื่อกำหนดการเดินทางเพิ่มเติมให้กับยานพาหนะที่เรียกใช้การเดินทางแล้ว คุณควรเข้าใจความสัมพันธ์ระหว่างจุดอ้างอิงที่เหลืออยู่ของยานพาหนะ รวมถึงว่าสถานะการเดินทางส่งผลต่อจุดอ้างอิงที่เหลืออย่างไร
เช่น คุณอาจส่งคำขอบริการร่วมเดินทางใหม่ให้กับยานพาหนะที่รองรับการเดินทางสุดพิเศษเท่านั้นและอยู่ในระหว่างการเดินทาง ในกรณีนี้ คุณจะจำลองการเดินทางเป็นการเดินทางขากลับ เมื่อกำหนดการเดินทางดังกล่าว ระบบของคุณควรตรวจสอบว่าจุดอ้างอิงสำหรับการเดินทางใหม่นั้นเกิดขึ้นหลังจากจุดอ้างอิงสำหรับการเดินทางที่ดำเนินอยู่
ระหว่างการเดินทางด้วยยานพาหนะ Fleet Engine จะนำจุดอ้างอิงสำหรับการเดินทางก่อนหน้าออกจากรายการจุดอ้างอิงที่เหลืออยู่ของรถเฉพาะในกรณีที่ยานพาหนะรายงานว่าอยู่ระหว่างทางไปยังจุดหมายถัดไปหรือเสร็จสมบูรณ์แล้ว ซึ่งหมายถึง สิ่งต่อไปนี้
- ENROUTE_TO_INTERMEDIATE_DESTINATION
- ENROUTE_TO_DROPOFF
- เสร็จสมบูรณ์
เมื่อสถานะการเดินทางเปลี่ยนเป็น COMPLETED
Fleet Engine จะนำจุดอ้างอิงสุดท้ายของการเดินทางออกจากรายการจุดอ้างอิงที่เหลืออยู่ของยานพาหนะ
ในทางตรงกันข้าม การเปลี่ยนแปลงสถานะที่ระบุว่ามาถึงที่จุดอ้างอิงมักจะไม่มีผลกระทบต่อรายการจุดอ้างอิงที่เหลืออยู่ของยานพาหนะ ดังนี้
- 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
แต่การเดินทางที่เสร็จสมบูรณ์หรือยกเลิกแล้วจะไม่ปรากฏ