สร้างข้อความคำขอ

ตามที่ได้อธิบายสั้นๆ ในภาพรวมการเพิ่มประสิทธิภาพเส้นทาง คําขอพื้นฐานประกอบด้วยรุ่น การจัดส่ง และยานพาหนะ ดังนี้

  • โมเดลจะบันทึกการตั้งค่าและข้อจำกัดสําหรับคําขอทั้งหมด ซึ่งรวมถึงทั้ง Shipments และ Vehicles
  • การจัดส่งแสดงถึงงานหรือการจัดส่งจริงที่มีVisitRequestการรับและการนำส่ง การจัดส่งมีการตั้งค่าและข้อจำกัดในเครื่อง
  • ยานพาหนะแสดงถึงยานพาหนะ คนขับรถ หรือเจ้าหน้าที่ ยานพาหนะยังมีการตั้งค่าและข้อจำกัดในท้องถิ่นด้วย

พร็อพเพอร์ตี้ของเอนทิตีแต่ละรายการจะอธิบายปัญหาการเพิ่มประสิทธิภาพส่วนหนึ่งในระดับรายละเอียดที่เฉพาะเจาะจง ข้อจำกัดระดับโมเดลจะมีผลกับการจัดส่งและยานพาหนะทั้งหมด ส่วนข้อจำกัดและพร็อพเพอร์ตี้ที่ระบุไว้ในการจัดส่งหรือยานพาหนะจะมีผลกับการจัดส่งหรือยานพาหนะเดียวเท่านั้น

ดูเอกสารประกอบฉบับเต็มเกี่ยวกับข้อความแต่ละประเภทได้ที่เอกสารอ้างอิงสำหรับข้อความ ShipmentModel (REST, gRPC), Shipment (REST, gRPC) และ Vehicle (REST, gRPC)

ที่พัก OptimizeToursRequest แห่ง

พร็อพเพอร์ตี้ที่ใช้กันโดยทั่วไปของข้อความ OptimizeToursRequest ระดับบนสุด (REST, gRPC) มีดังนี้

  • searchMode ระบุว่าจะให้แสดงผลโซลูชันแรกที่เป็นไปตามข้อจำกัดที่ระบุหรือค้นหาโซลูชันที่ดีที่สุดภายในกำหนดเวลาที่กําหนด
  • considerRoadTraffic กำหนดว่าจะใช้ข้อมูลการจราจรแบบเรียลไทม์สำหรับการประมาณเส้นทางและเวลาถึงโดยประมาณหรือไม่
  • populateTransitionPolylines กำหนดว่าจะแสดงเส้นประกอบของเส้นทางและโทเค็นเส้นทางในการตอบกลับหรือไม่

พร็อพเพอร์ตี้ของโมเดล

พร็อพเพอร์ตี้ที่ใช้กันโดยทั่วไปของข้อความ ShipmentModel (REST, gRPC) มีดังนี้

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

พร็อพเพอร์ตี้การจัดส่ง

พร็อพเพอร์ตี้ที่ใช้กันโดยทั่วไปของข้อความ Shipment (REST, gRPC) มีดังนี้

  • pickups[] และ deliveries[] แสดงสถานที่รับหรือส่งสินค้า พร็อพเพอร์ตี้ pickups[] และ deliveries[] ใช้ข้อความ VisitRequest ทั้งคู่ (REST, gRPC)
  • loadDemands แสดงน้ำหนักบรรทุกที่จําเป็นสําหรับยานพาหนะในการขนส่งให้เสร็จสมบูรณ์ พร็อพเพอร์ตี้ load_limits (REST, gRPC) ที่สอดคล้องกับยานพาหนะแสดงน้ำหนักบรรทุกที่ยานพาหนะรองรับได้พร้อมกัน อ่านข้อมูลเพิ่มเติมเกี่ยวกับภาระในดีมานด์และขีดจำกัดของภาระ
  • penalty_cost แสดงถึงค่าใช้จ่ายที่เกิดขึ้นหากข้ามการจัดส่ง อ่านข้อมูลเพิ่มเติมเกี่ยวกับต้นทุนในพารามิเตอร์รูปแบบต้นทุน

พร็อพเพอร์ตี้ยานพาหนะ

พร็อพเพอร์ตี้ที่ใช้กันโดยทั่วไปของข้อความ Vehicle (REST, gRPC) มีดังนี้

  • startLocation แสดงจุดที่ยานพาหนะต้องเริ่มเส้นทาง คุณจะใช้พร็อพเพอร์ตี้นี้หรือไม่ก็ได้ หากไม่ได้ระบุ เส้นทางของยานพาหนะจะเริ่มต้นที่ตำแหน่งของการจัดส่งที่ได้รับมอบหมายครั้งแรก
  • endLocation แสดงจุดสิ้นสุดเส้นทางของยานพาหนะ พร็อพเพอร์ตี้นี้ไม่บังคับ หากไม่ได้ระบุ เส้นทางของยานพาหนะจะสิ้นสุดที่ตำแหน่งของการจัดส่งที่ได้รับมอบหมายล่าสุด
  • startTimeWindows[] แสดงเวลาที่ยานพาหนะเริ่มเส้นทางได้ คุณจะใช้พร็อพเพอร์ตี้นี้หรือไม่ก็ได้
  • endTimeWindows[] แสดงเวลาที่ยานพาหนะสามารถเริ่มและสิ้นสุดเส้นทาง คุณจะระบุพร็อพเพอร์ตี้ทั้ง 2 รายการหรือไม่ก็ได้
  • loadLimits แสดงถึงความสามารถในการบรรทุกของยานพาหนะที่พร้อมรองรับดีมานด์การโหลดของการจัดส่ง อ่านเพิ่มเติมเกี่ยวกับดีมานด์และขีดจำกัดของโหลดในดีมานด์และขีดจำกัดของโหลด

ตัวอย่างคําขอที่สมบูรณ์ในรูปแบบ JSON มีดังนี้

{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.73881799999999,
              "longitude": -122.4161
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.79581,
              "longitude": -122.4218856
            }
          }
        ]
      }
    ],
    "vehicles": [
      {
        "startLocation": {
          "latitude": 37.73881799999999,
          "longitude": -122.4161
        },
        "endLocation": {
          "latitude": 37.73881799999999,
          "longitude": -122.4161
        },
        "costPerKilometer": 1.0
      }
    ],
   "globalStartTime": "2024-02-13T00:00:00.000Z",
   "globalEndTime": "2024-02-14T06:00:00.000Z"
  }
}

ทั้ง OptimizeTours และ BatchOptimizeTours ใช้ข้อความคําขอเช่นเดียวกับตัวอย่างข้างต้น แต่ใช้ด้วยวิธีที่แตกต่างกัน ก่อนส่งคำขอการเพิ่มประสิทธิภาพเส้นทาง คุณต้องเข้าใจความแตกต่างระหว่าง 2 วิธีนี้

การเปรียบเทียบ OptimizeTours กับ BatchOptimizeTours