ShipmentRoute

เส้นทางของยานพาหนะสามารถแยกย่อยตามแกนเวลาได้ดังนี้ (เราถือว่ามีการเข้าชม n ครั้ง)

  |            |            |          |       |  T[2], |        |      |
  | Transition |  Visit #0  |          |       |  V[2], |        |      |
  |     #0     |    aka     |   T[1]   |  V[1] |  ...   | V[n-1] | T[n] |
  |  aka T[0]  |    V[0]    |          |       | V[n-2],|        |      |
  |            |            |          |       | T[n-1] |        |      |
  ^            ^            ^          ^       ^        ^        ^      ^
vehicle    V[0].start   V[0].end     V[1].   V[1].    V[n].    V[n]. vehicle
 start     (arrival)   (departure)   start   end      start    end     end

โปรดทราบว่าเราแยกความแตกต่างระหว่าง

  • "เหตุการณ์ที่ตรงเวลา" เช่น การเริ่มต้นและสิ้นสุดของยานพาหนะ รวมถึงการเริ่มต้นและสิ้นสุดของการเข้าชมแต่ละครั้ง (หรือที่เรียกว่าการมาถึงและการออกเดินทาง) โดยจะเกิดขึ้นในวินาทีที่กำหนด
  • "ช่วงเวลา" เช่น การเข้าชมเอง และการเปลี่ยนผ่านระหว่างการเข้าชม แม้ว่าบางครั้งช่วงเวลาอาจมีระยะเวลาเป็น 0 เช่น เริ่มต้นและสิ้นสุดในวินาทีเดียวกัน แต่โดยทั่วไปแล้วช่วงเวลาจะมีระยะเวลาเป็นค่าบวก

ค่าคงที่:

  • หากมีการเข้าชม n ครั้ง จะมีการเปลี่ยนเส้นทาง n+1 ครั้ง
  • การเข้าชมจะอยู่ระหว่างการเปลี่ยนผ่านก่อนหน้า (ดัชนีเดียวกัน) และการเปลี่ยนผ่านหลังจากนั้น (ดัชนี + 1) เสมอ
  • การสตาร์ทรถจะตามด้วยการเปลี่ยน #0 เสมอ
  • โดยจุดสิ้นสุดของยานพาหนะจะมี "การเปลี่ยน #n" นำหน้าเสมอ

เมื่อซูมเข้าไปดู สิ่งที่จะเกิดขึ้นระหว่างTransitionและVisitมีดังนี้

---+-------------------------------------+-----------------------------+-->
   |           TRANSITION[i]             |           VISIT[i]          |
   |                                     |                             |
   |  * TRAVEL: the vehicle moves from   |      PERFORM the visit:     |
   |    VISIT[i-1].departure_location to |                             |
   |    VISIT[i].arrival_location, which |  * Spend some time:         |
   |    takes a given travel duration    |    the "visit duration".    |
   |    and distance                     |                             |
   |                                     |  * Load or unload           |
   |  * BREAKS: the driver may have      |    some quantities from the |
   |    breaks (e.g. lunch break).       |    vehicle: the "demand".   |
   |                                     |                             |
   |  * WAIT: the driver/vehicle does    |                             |
   |    nothing. This can happen for     |                             |
   |    many reasons, for example when   |                             |
   |    the vehicle reaches the next     |                             |
   |    event's destination before the   |                             |
   |    start of its time window         |                             |
   |                                     |                             |
   |  * DELAY: *right before* the next   |                             |
   |    arrival. E.g. the vehicle and/or |                             |
   |    driver spends time unloading.    |                             |
   |                                     |                             |
---+-------------------------------------+-----------------------------+-->
   ^                                     ^                             ^
V[i-1].end                           V[i].start                    V[i].end

สุดท้ายนี้ เรามาดูวิธีจัดเรียง TRAVEL, BREAKS, DELAY และ WAIT ในระหว่างการเปลี่ยนผ่านกัน

  • โดยทั้ง 2 ส่วนจะไม่ทับซ้อนกัน
  • DELAY ต้องไม่ซ้ำกันและต้องเป็นระยะเวลาต่อเนื่องก่อนการเข้าชมครั้งถัดไป (หรือสิ้นสุดยานพาหนะ) ดังนั้น คุณเพียงแค่ทราบระยะเวลาการเลื่อนเพื่อทราบเวลาเริ่มต้นและเวลาสิ้นสุด
  • ช่วงพักคือช่วงเวลาที่ต่อเนื่องกันและไม่ทับซ้อนกัน การตอบกลับจะระบุเวลาเริ่มต้นและระยะเวลาของช่วงพักแต่ละช่วง
  • สถานะ TRAVEL และ WAIT เป็นสถานะที่ "ขัดจังหวะได้" ซึ่งอาจถูกขัดจังหวะหลายครั้งในระหว่างการเปลี่ยนสถานะนี้ ลูกค้าสามารถถือว่าการเดินทางเกิดขึ้น "โดยเร็วที่สุด" และ "รอ" จะเติมเต็มเวลาที่เหลือ

ตัวอย่าง (ซับซ้อน)

                               TRANSITION[i]
--++-----+-----------------------------------------------------------++-->
  ||     |       |           |       |           |         |         ||
  ||  T  |   B   |     T     |       |     B     |         |    D    ||
  ||  r  |   r   |     r     |   W   |     r     |    W    |    e    ||
  ||  a  |   e   |     a     |   a   |     e     |    a    |    l    ||
  ||  v  |   a   |     v     |   i   |     a     |    i    |    a    ||
  ||  e  |   k   |     e     |   t   |     k     |    t    |    y    ||
  ||  l  |       |     l     |       |           |         |         ||
  ||     |       |           |       |           |         |         ||
--++-----------------------------------------------------------------++-->
การแสดง JSON
{
  "vehicleIndex": integer,
  "vehicleLabel": string,
  "vehicleStartTime": string,
  "vehicleEndTime": string,
  "visits": [
    {
      object (Visit)
    }
  ],
  "transitions": [
    {
      object (Transition)
    }
  ],
  "hasTrafficInfeasibilities": boolean,
  "routePolyline": {
    object (EncodedPolyline)
  },
  "breaks": [
    {
      object (Break)
    }
  ],
  "metrics": {
    object (AggregatedMetrics)
  },
  "vehicleFullness": {
    object (VehicleFullness)
  },
  "routeCosts": {
    string: number,
    ...
  },
  "routeTotalCost": number
}
ช่อง
vehicleIndex

integer

ยานพาหนะที่วิ่งตามเส้นทาง โดยระบุด้วยดัชนีในแหล่งที่มา ShipmentModel

vehicleLabel

string

ป้ายกำกับของยานพาหนะที่ใช้เส้นทางนี้ ซึ่งเท่ากับ ShipmentModel.vehicles(vehicleIndex).label หากมีการระบุ

vehicleStartTime

string (Timestamp format)

เวลาที่ยานพาหนะเริ่มเส้นทาง

ใช้ RFC 3339 โดยเอาต์พุตที่สร้างขึ้นจะได้รับการแปลงเป็นรูปแบบ Z เสมอ และใช้ตัวเลขเศษส่วน 0, 3, 6 หรือ 9 หลัก นอกจากนี้ ระบบยังยอมรับออฟเซ็ตอื่นๆ นอกเหนือจาก "Z" ด้วย เช่น "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" หรือ "2014-10-02T15:01:23+05:30"

vehicleEndTime

string (Timestamp format)

เวลาที่รถสิ้นสุดเส้นทาง

ใช้ RFC 3339 โดยเอาต์พุตที่สร้างขึ้นจะได้รับการแปลงเป็นรูปแบบ Z เสมอ และใช้ตัวเลขเศษส่วน 0, 3, 6 หรือ 9 หลัก นอกจากนี้ ระบบยังยอมรับออฟเซ็ตอื่นๆ นอกเหนือจาก "Z" ด้วย เช่น "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" หรือ "2014-10-02T15:01:23+05:30"

visits[]

object (Visit)

ลําดับการเข้าชมที่เรียงตามลําดับซึ่งแสดงเส้นทาง visits[i] คือการเข้าชมครั้งที่ i ในเส้นทาง หากช่องนี้ว่างเปล่า ระบบจะถือว่ารถไม่ได้ใช้งาน

transitions[]

object (Transition)

รายการการเปลี่ยนเส้นทางที่เรียงลำดับแล้วสำหรับเส้นทาง

hasTrafficInfeasibilities

boolean

เมื่อตั้งค่า OptimizeToursRequest.consider_road_traffic เป็นจริง ช่องนี้จะระบุว่าระบบคาดการณ์ความไม่สอดคล้องกันของเวลาเส้นทางโดยใช้การประมาณระยะเวลาการเดินทางตามการจราจร อาจมีเวลาไม่เพียงพอที่จะทำการเดินทางที่ปรับตามการเข้าชม ความล่าช้า และช่วงพักระหว่างการเข้าชมให้เสร็จสมบูรณ์ก่อนการเข้าชมครั้งแรกหรือหลังจากการเข้าชมครั้งสุดท้าย ในขณะที่ยังคงเป็นไปตามกรอบเวลาการเข้าชมและกรอบเวลาของยานพาหนะ ตัวอย่างเช่น

  startTime(previous_visit) + duration(previous_visit) +
  travelDuration(previous_visit, next_visit) > startTime(next_visit)

การมาถึงที่ next_visit มีแนวโน้มที่จะเกิดขึ้นช้ากว่ากรอบเวลาปัจจุบันเนื่องจากเวลาเดินทางโดยประมาณเพิ่มขึ้น travelDuration(previous_visit, next_visit) อันเนื่องมาจากปริมาณการเข้าชม นอกจากนี้ ระบบอาจบังคับให้ช่วงพักซ้อนทับกับการเข้าชมเนื่องจากเวลาเดินทางโดยประมาณเพิ่มขึ้นและข้อจำกัดของกรอบเวลาการเข้าชมหรือช่วงพัก

routePolyline

object (EncodedPolyline)

การแสดงเส้นประกอบที่เข้ารหัสของเส้นทาง ระบบจะป้อนข้อมูลในช่องนี้ก็ต่อเมื่อตั้งค่า OptimizeToursRequest.populate_polylines เป็น "จริง"

breaks[]

object (Break)

เวลาพักที่กำหนดไว้สำหรับยานพาหนะที่วิ่งในเส้นทางนี้ breaks ลำดับแสดงช่วงเวลา โดยแต่ละช่วงจะเริ่มต้นที่ startTime ที่เกี่ยวข้องและมีระยะเวลา duration วินาที

metrics

object (AggregatedMetrics)

เมตริกระยะเวลา ระยะทาง และภาระงานสำหรับเส้นทางนี้ ระบบจะรวมฟิลด์ของ AggregatedMetrics ใน ShipmentRoute.transitions หรือ ShipmentRoute.visits ทั้งหมด โดยขึ้นอยู่กับบริบท

vehicleFullness

object (VehicleFullness)

VehicleFullness เพื่อคำนวณว่าเมตริกที่จำกัดนั้นใกล้เคียงกับขีดจำกัดของยานพาหนะที่เกี่ยวข้องมากน้อยเพียงใด ฟิลด์ของเมตริกนี้คืออัตราส่วนระหว่างฟิลด์เมตริกที่มีการจำกัด (เช่น AggregatedMetrics.travel_distance_meters) กับขีดจำกัดของยานพาหนะที่เกี่ยวข้อง (เช่น Vehicle.route_distance_limit)

ทดลอง: ลักษณะการทำงานหรือการมีอยู่ของฟิลด์นี้อาจมีการเปลี่ยนแปลงในอนาคต

routeCosts

map (key: string, value: number)

ต้นทุนของเส้นทางที่แยกย่อยตามช่องคำขอที่เกี่ยวข้องกับต้นทุน คีย์คือเส้นทาง Proto ที่สัมพันธ์กับ OptimizeToursRequest ที่ป้อน เช่น "model.shipments.pickups.cost" และค่าคือต้นทุนทั้งหมดที่สร้างขึ้นโดยฟิลด์ต้นทุนที่เกี่ยวข้อง ซึ่งรวบรวมไว้ในเส้นทางทั้งหมด กล่าวคือ costs["model.shipments.pickups.cost"] คือผลรวมของต้นทุนการรับสินค้าทั้งหมดในเส้นทาง ต้นทุนทั้งหมดที่กําหนดไว้ในโมเดลจะรายงานอย่างละเอียดที่นี่ ยกเว้นต้นทุนที่เกี่ยวข้องกับ TransitionAttributes ซึ่งจะรายงานในลักษณะรวมเท่านั้น ณ วันที่ 01/2022

routeTotalCost

number

ต้นทุนรวมของเส้นทาง ผลรวมของค่าใช้จ่ายทั้งหมดในแผนที่ต้นทุน

ไปที่

การเข้าชมที่ดำเนินการระหว่างเส้นทาง การเข้าชมนี้สอดคล้องกับการรับหรือการนำส่งของ Shipment

การแสดง JSON
{
  "shipmentIndex": integer,
  "isPickup": boolean,
  "visitRequestIndex": integer,
  "startTime": string,
  "loadDemands": {
    string: {
      object (Load)
    },
    ...
  },
  "detour": string,
  "shipmentLabel": string,
  "visitLabel": string,
  "injectedSolutionLocationToken": integer
}
ช่อง
shipmentIndex

integer

ดัชนีของฟิลด์ shipments ในแหล่งข้อมูล ShipmentModel

isPickup

boolean

หากเป็นจริง การเข้าชมจะสอดคล้องกับการรับ Shipment ไม่เช่นนั้นจะสอดคล้องกับการนำส่ง

visitRequestIndex

integer

ดัชนีของ VisitRequest ในช่องการรับสินค้าหรือการนำส่งของ Shipment (ดู isPickup)

startTime

string (Timestamp format)

เวลาที่การเข้าชมเริ่มต้น โปรดทราบว่ายานพาหนะอาจมาถึงสถานที่นัดหมายก่อนเวลาที่ระบุไว้ เวลาเป็นไปตาม ShipmentModel

ใช้ RFC 3339 โดยเอาต์พุตที่สร้างขึ้นจะได้รับการแปลงเป็นรูปแบบ Z เสมอ และใช้ตัวเลขเศษส่วน 0, 3, 6 หรือ 9 หลัก นอกจากนี้ ระบบยังยอมรับออฟเซ็ตอื่นๆ นอกเหนือจาก "Z" ด้วย เช่น "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" หรือ "2014-10-02T15:01:23+05:30"

loadDemands

map (key: string, value: object (Load))

ดีมานด์การโหลดการเข้าชมทั้งหมดเป็นผลรวมของการจัดส่งและคำขอเข้าชม loadDemands ค่าจะเป็นลบหากการเข้าชมเป็นการนำส่ง ระบบจะรายงานดีมานด์สำหรับประเภทเดียวกันกับ Transition.loads (ดูฟิลด์นี้)

detour

string (Duration format)

เวลาอ้อมเพิ่มเติมเนื่องจากการจัดส่งที่เข้าชมในเส้นทางก่อนการเข้าชม และเวลาที่อาจต้องรอซึ่งเกิดจากกรอบเวลา หากการเข้าชมเป็นการนำส่ง ระบบจะคำนวณการอ้อมจากระยะเวลาการเข้าชมที่รับสินค้าที่เกี่ยวข้องและมีค่าเท่ากับ

startTime(delivery) - startTime(pickup)
- (duration(pickup) + travel duration from the pickup location
to the delivery location).

มิฉะนั้น ระบบจะคำนวณจากstartLocationของยานพาหนะและมีค่าเท่ากับ

startTime - vehicleStartTime - travel duration from
the vehicle's `startLocation` to the visit.

ระยะเวลาเป็นวินาทีที่มีเศษทศนิยมได้สูงสุด 9 หลัก โดยลงท้ายด้วย 's' เช่น "3.5s"

shipmentLabel

string

สำเนาของ Shipment.label ที่เกี่ยวข้อง หากระบุไว้ใน Shipment

visitLabel

string

สำเนาของ VisitRequest.label ที่เกี่ยวข้อง หากระบุไว้ใน VisitRequest

injectedSolutionLocationToken

integer

โทเค็นทึบแสงที่แสดงข้อมูลเกี่ยวกับสถานที่ที่เข้าชม

ระบบอาจป้อนข้อมูลในช่องนี้ในการเข้าชมเส้นทางผลลัพธ์เมื่อตั้งค่า VisitRequest.avoid_u_turns เป็นจริงสำหรับการเข้าชมนี้ หรือหากตั้งค่า ShipmentModel.avoid_u_turns เป็นจริงในคำขอ OptimizeToursRequest

ทดลอง: ดูรายละเอียดเพิ่มเติมได้ที่ https://developers.google.com/maps/tt/route-optimization/experimental/u-turn-avoidance/make-request

ทรานซิชัน

เปลี่ยนผ่านระหว่าง 2 เหตุการณ์ในเส้นทาง ดูคำอธิบายของ ShipmentRoute

หากยานพาหนะไม่มี startLocation และ/หรือ endLocation เมตริกการเดินทางที่เกี่ยวข้องจะเป็น 0

การแสดง JSON
{
  "travelDuration": string,
  "travelDistanceMeters": number,
  "trafficInfoUnavailable": boolean,
  "delayDuration": string,
  "breakDuration": string,
  "waitDuration": string,
  "totalDuration": string,
  "startTime": string,
  "routePolyline": {
    object (EncodedPolyline)
  },
  "routeToken": string,
  "vehicleLoads": {
    string: {
      object (VehicleLoad)
    },
    ...
  }
}
ช่อง
travelDuration

string (Duration format)

ระยะเวลาการเดินทางในช่วงเปลี่ยนผ่านนี้

ระยะเวลาเป็นวินาทีที่มีเศษทศนิยมได้สูงสุด 9 หลัก โดยลงท้ายด้วย 's' เช่น "3.5s"

travelDistanceMeters

number

ระยะทางที่เดินทางระหว่างการเปลี่ยน

trafficInfoUnavailable

boolean

เมื่อมีการขอการเข้าชมผ่าน OptimizeToursRequest.consider_road_traffic และดึงข้อมูลการเข้าชมสำหรับ Transition ไม่ได้ ระบบจะตั้งค่าบูลีนนี้เป็นจริง ปัญหานี้อาจเป็นปัญหาชั่วคราว (ข้อผิดพลาดที่เกิดขึ้นไม่บ่อยนักในเซิร์ฟเวอร์การจราจรแบบเรียลไทม์) หรือปัญหาถาวร (ไม่มีข้อมูลสำหรับตำแหน่งนี้)

delayDuration

string (Duration format)

ผลรวมของระยะเวลาการหน่วงเวลาที่ใช้กับการเปลี่ยนฉากนี้ หากมี การหน่วงเวลาจะเริ่มขึ้นตรงกับ delayDuration วินาทีก่อนเหตุการณ์ถัดไป (การเข้าชมหรือการสิ้นสุดของยานพาหนะ) ดู TransitionAttributes.delay

ระยะเวลาเป็นวินาทีที่มีเศษทศนิยมได้สูงสุด 9 หลัก โดยลงท้ายด้วย 's' เช่น "3.5s"

breakDuration

string (Duration format)

ผลรวมของระยะเวลาการหยุดพักที่เกิดขึ้นระหว่างการเปลี่ยนนี้ หากมี รายละเอียดเกี่ยวกับเวลาเริ่มต้นและระยะเวลาของแต่ละช่วงพักจะจัดเก็บไว้ใน ShipmentRoute.breaks

ระยะเวลาเป็นวินาทีที่มีเศษทศนิยมได้สูงสุด 9 หลัก โดยลงท้ายด้วย 's' เช่น "3.5s"

waitDuration

string (Duration format)

เวลาที่ใช้ในการรอระหว่างการเปลี่ยนผ่านนี้ ระยะเวลารอจะสอดคล้องกับเวลาว่างและไม่รวมเวลาพัก โปรดทราบว่าเวลารอสายนี้อาจแบ่งออกเป็นช่วงเวลาที่ไม่ต่อเนื่องกันหลายช่วง

ระยะเวลาเป็นวินาทีที่มีเศษทศนิยมได้สูงสุด 9 หลัก โดยลงท้ายด้วย 's' เช่น "3.5s"

totalDuration

string (Duration format)

ระยะเวลาทั้งหมดของการเปลี่ยนผ่านเพื่อความสะดวก ซึ่งเท่ากับ

  • การเข้าชมครั้งถัดไป startTime (หรือ vehicleEndTime หากเป็นการเปลี่ยนเส้นทางสุดท้าย) - startTime ของการเปลี่ยนเส้นทางนี้
  • หาก ShipmentRoute.has_traffic_infeasibilities เป็นเท็จ จะมีข้อกำหนดเพิ่มเติมดังนี้ `totalDuration = travelDuration + delayDuration
  • breakDuration + waitDuration`

ระยะเวลาเป็นวินาทีที่มีเศษทศนิยมได้สูงสุด 9 หลัก โดยลงท้ายด้วย 's' เช่น "3.5s"

startTime

string (Timestamp format)

เวลาเริ่มต้นของการเปลี่ยนผ่านนี้

ใช้ RFC 3339 โดยเอาต์พุตที่สร้างขึ้นจะได้รับการแปลงเป็นรูปแบบ Z เสมอ และใช้ตัวเลขเศษส่วน 0, 3, 6 หรือ 9 หลัก นอกจากนี้ ระบบยังยอมรับออฟเซ็ตอื่นๆ นอกเหนือจาก "Z" ด้วย เช่น "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" หรือ "2014-10-02T15:01:23+05:30"

routePolyline

object (EncodedPolyline)

การแสดงเส้นประกอบที่เข้ารหัสของเส้นทางที่ใช้ในระหว่างการเปลี่ยน ระบบจะป้อนข้อมูลในช่องนี้ก็ต่อเมื่อตั้งค่า populateTransitionPolylines เป็น "จริง"

routeToken

string

เอาต์พุตเท่านั้น โทเค็นแบบทึบแสงที่ส่งไปยัง Navigation SDK เพื่อสร้างเส้นทางใหม่ในระหว่างการนำทาง และในกรณีที่มีการเปลี่ยนเส้นทาง ให้ดำเนินการตามความตั้งใจเดิมเมื่อสร้างเส้นทาง ถือว่าโทเค็นนี้เป็น Blob ที่คลุมเครือ อย่าเปรียบเทียบค่าในคำขอต่างๆ เนื่องจากค่าอาจเปลี่ยนแปลงได้แม้ว่าบริการจะแสดงเส้นทางเดียวกันก็ตาม ระบบจะป้อนข้อมูลในช่องนี้ก็ต่อเมื่อตั้งค่า populateTransitionPolylines เป็น "จริง"

vehicleLoads

map (key: string, value: object (VehicleLoad))

น้ำหนักบรรทุกของยานพาหนะในช่วงการเปลี่ยนผ่านนี้ สำหรับยานพาหนะแต่ละประเภทที่ปรากฏในVehicle.load_limitsของยานพาหนะนี้ หรือมีShipment.load_demandsที่ไม่ใช่ 0 ในการจัดส่งบางรายการที่ดำเนินการในเส้นทางนี้

การโหลดในช่วงการเปลี่ยนผ่านครั้งแรกคือการโหลดเริ่มต้นของเส้นทางยานพาหนะ จากนั้นหลังจากการเข้าชมแต่ละครั้ง ระบบจะloadDemandsเพิ่มหรือลบloadDemandsของการเข้าชมนั้นเพื่อรับการโหลดของการเปลี่ยนเส้นทางครั้งถัดไป โดยขึ้นอยู่กับการเข้าชมนั้นเป็นการรับสินค้าหรือการนำส่ง

EncodedPolyline

การแสดงเส้นประกอบที่เข้ารหัส ดูข้อมูลเพิ่มเติมเกี่ยวกับการเข้ารหัส Polyline ได้ที่ https://developers.google.com/maps/documentation/utilities/polylinealgorithm https://developers.google.com/maps/documentation/javascript/reference/geometry#encoding

การแสดง JSON
{
  "points": string
}
ช่อง
points

string

สตริงที่แสดงจุดที่เข้ารหัสของเส้นหลายเส้น

พัก

ข้อมูลที่แสดงการดำเนินการของช่วงพัก

การแสดง JSON
{
  "startTime": string,
  "duration": string
}
ช่อง
startTime

string (Timestamp format)

เวลาเริ่มต้นของช่วงพัก

ใช้ RFC 3339 โดยเอาต์พุตที่สร้างขึ้นจะได้รับการแปลงเป็นรูปแบบ Z เสมอ และใช้ตัวเลขเศษส่วน 0, 3, 6 หรือ 9 หลัก นอกจากนี้ ระบบยังยอมรับออฟเซ็ตอื่นๆ นอกเหนือจาก "Z" ด้วย เช่น "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" หรือ "2014-10-02T15:01:23+05:30"

duration

string (Duration format)

ระยะเวลาของช่วงพัก

ระยะเวลาเป็นวินาทีที่มีเศษทศนิยมได้สูงสุด 9 หลัก โดยลงท้ายด้วย 's' เช่น "3.5s"

VehicleFullness

VehicleFullness คือเมตริกที่คำนวณว่ายานพาหนะเต็มหรือไม่ ฟิลด์ VehicleFullness แต่ละรายการอยู่ระหว่าง 0 ถึง 1 โดยคำนวณเป็นอัตราส่วนระหว่างฟิลด์เมตริกที่จำกัด (เช่น AggregatedMetrics.travel_distance_meters) กับขีดจำกัดของยานพาหนะที่เกี่ยวข้อง (เช่น Vehicle.route_distance_limit) หากมี มิฉะนั้น ระบบจะไม่ตั้งค่าอัตราส่วนความสมบูรณ์ หากขีดจํากัดเป็น 0 ระบบจะตั้งค่าช่องเป็น 1 หมายเหตุ: เมื่อเส้นทางมีปัญหาด้านการจราจร อัตราส่วนความหนาแน่นดิบบางรายการอาจเกิน 1.0 เช่น ยานพาหนะอาจเกินขีดจำกัดระยะทาง ในกรณีเหล่านี้ เราจะจำกัดค่าความสมบูรณ์ไว้ที่ 1.0

การแสดง JSON
{
  "maxFullness": number,
  "distance": number,
  "travelDuration": number,
  "activeDuration": number,
  "maxLoad": number,
  "activeSpan": number
}
ช่อง
maxFullness

number

ค่าสูงสุดของฟิลด์อื่นๆ ทั้งหมดในข้อความนี้

distance

number

อัตราส่วนระหว่าง AggregatedMetrics.travel_distance_meters กับ Vehicle.route_distance_limit หากไม่ได้ตั้งค่า Vehicle.route_distance_limit ระบบจะไม่ได้ตั้งค่าช่องนี้

travelDuration

number

อัตราส่วนระหว่าง [AggregatedMetrics.travel_duration_seconds][] กับ Vehicle.travel_duration_limit หากไม่ได้ตั้งค่า Vehicle.travel_duration_limit ระบบจะไม่ได้ตั้งค่าช่องนี้

activeDuration

number

อัตราส่วนระหว่าง [AggregatedMetrics.total_duration_seconds][] กับ Vehicle.route_duration_limit หากไม่ได้ตั้งค่า Vehicle.route_duration_limit ระบบจะไม่ได้ตั้งค่าช่องนี้

maxLoad

number

อัตราส่วนสูงสุดใน [AggregatedMetrics.max_load][] ทุกประเภทและ Vehicle.load_limits ที่เกี่ยวข้อง หากไม่ได้ตั้งค่าฟิลด์ Vehicle.load_limits ทั้งหมด ระบบจะไม่ได้ตั้งค่าฟิลด์นี้

activeSpan

number

อัตราส่วน (vehicleEndTime - vehicleStartTime) / (latestVehicleEndTime - earliestVehicleStartTime) สำหรับยานพาหนะที่ระบุ หากไม่มีตัวหาร ระบบจะใช้ (ShipmentModel.global_end_time - ShipmentModel.global_start_time) แทน