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

นักพัฒนาแอปในเขตเศรษฐกิจยุโรป (EEA)

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

  • โมเดลจะบันทึกการตั้งค่าและข้อจำกัดสำหรับคำขอทั้งหมด รวมถึงทั้ง 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