ส่ง OptimizeToursRequest ที่มี ShipmentModel และแสดงผล OptimizeToursResponse ที่มี ShipmentRoute ซึ่งเป็นชุดเส้นทางที่ยานพาหนะจะใช้เพื่อลดต้นทุนโดยรวม
โมเดล ShipmentModel ประกอบด้วย Shipment ที่ต้องดำเนินการและ Vehicle ที่ใช้ขนส่ง Shipment เป็นหลัก ShipmentRoute จะกำหนดShipmentให้กับVehicle กล่าวอย่างเจาะจงคือ ระบบจะกำหนดชุดVisitให้กับยานพาหนะแต่ละคัน โดยที่ Visit จะสอดคล้องกับ VisitRequest ซึ่งเป็นการรับหรือนำส่งสำหรับ Shipment
เป้าหมายคือการมอบหมาย ShipmentRoute ให้กับ Vehicle ซึ่งจะลดต้นทุนรวม โดยต้นทุนมีองค์ประกอบหลายอย่างที่กำหนดไว้ใน ShipmentModel
คำขอ HTTP
POST https://routeoptimization.googleapis.com/v1/{parent=projects/*}:optimizeTours
URL ใช้ไวยากรณ์การแปลงรหัส gRPC
พารามิเตอร์เส้นทาง
| พารามิเตอร์ | |
|---|---|
parent |
ต้องระบุ กำหนดเป้าหมายโปรเจ็กต์หรือสถานที่เพื่อโทรออก รูปแบบ:
ระบบไม่รองรับค่า |
เนื้อความของคำขอ
เนื้อหาของคำขอมีข้อมูลซึ่งมีโครงสร้างดังต่อไปนี้
| การแสดง JSON |
|---|
{ "timeout": string, "model": { object ( |
| ช่อง | |
|---|---|
timeout |
หากตั้งค่าการหมดเวลานี้ เซิร์ฟเวอร์จะแสดงการตอบกลับก่อนที่ระยะเวลาหมดเวลาจะผ่านไปหรือถึงกำหนดเวลาของเซิร์ฟเวอร์สำหรับคำขอที่โหลดแบบซิงโครนัส แล้วแต่ว่าอย่างใดจะถึงก่อน สำหรับคำขอที่โหลดแบบอะซิงโครนัส เซิร์ฟเวอร์จะสร้างโซลูชัน (หากเป็นไปได้) ก่อนที่ระยะหมดเวลาจะสิ้นสุดลง |
model |
โมเดลการจัดส่งที่ต้องการแก้ปัญหา |
solvingMode |
โดยค่าเริ่มต้น โหมดการแก้โจทย์คือ |
searchMode |
โหมดการค้นหาที่ใช้เพื่อแก้ปัญหาคำขอ |
injectedFirstSolutionRoutes[] |
แนะนําอัลกอริทึมการเพิ่มประสิทธิภาพในการค้นหาโซลูชันแรกที่คล้ายกับโซลูชันก่อนหน้า โมเดลจะถูกจำกัดเมื่อสร้างโซลูชันแรก ระบบจะข้ามการจัดส่งที่ไม่ได้ดำเนินการในเส้นทางโดยนัยในโซลูชันแรก แต่อาจดำเนินการในโซลูชันต่อๆ ไป โซลูชันต้องเป็นไปตามสมมติฐานความถูกต้องพื้นฐานบางประการ ดังนี้
หากโซลูชันที่แทรกไม่สามารถทำได้ ระบบอาจไม่แสดงข้อผิดพลาดในการตรวจสอบความถูกต้อง และอาจแสดงข้อผิดพลาดที่ระบุว่าไม่สามารถทำได้แทน |
injectedSolutionConstraint |
จำกัดอัลกอริทึมการเพิ่มประสิทธิภาพเพื่อค้นหาโซลูชันสุดท้ายที่คล้ายกับโซลูชันก่อนหน้า ตัวอย่างเช่น อาจใช้เพื่อตรึงบางส่วนของเส้นทางที่เสร็จสมบูรณ์แล้วหรือที่กำลังจะเสร็จสมบูรณ์แต่ต้องไม่มีการแก้ไข หากโซลูชันที่แทรกไม่สามารถทำได้ ระบบอาจไม่แสดงข้อผิดพลาดในการตรวจสอบความถูกต้อง และอาจแสดงข้อผิดพลาดที่ระบุว่าไม่สามารถทำได้แทน |
refreshDetailsRoutes[] |
หากไม่ว่างเปล่า ระบบจะรีเฟรชเส้นทางที่ระบุโดยไม่แก้ไขลำดับการเข้าชมหรือระยะเวลาเดินทางที่เกี่ยวข้อง โดยจะอัปเดตเฉพาะรายละเอียดอื่นๆ การดำเนินการนี้ไม่ได้แก้ปัญหาโมเดล ตั้งแต่เดือนพฤศจิกายน 2020 เป็นต้นมา ฟิลด์นี้จะสร้างเฉพาะเส้นประกอบของเส้นทางที่ไม่ว่างเปล่าและกำหนดให้ ช่อง ต้องไม่ใช้ช่องนี้ร่วมกับ
|
interpretInjectedSolutionsUsingLabels |
หากเป็นจริง ให้ทำดังนี้
การตีความนี้มีผลกับช่อง หากเป็นจริง ป้ายกำกับในหมวดหมู่ต่อไปนี้ต้องปรากฏในหมวดหมู่ของตนเองไม่เกิน 1 ครั้ง
หาก การนำการเข้าชมเส้นทางหรือทั้งเส้นทางออกจากโซลูชันที่แทรกอาจส่งผลต่อข้อจำกัดโดยนัย ซึ่งอาจทำให้เกิดการเปลี่ยนแปลงในโซลูชัน ข้อผิดพลาดในการตรวจสอบ หรือไม่สามารถทำได้ หมายเหตุ: ผู้โทรต้องตรวจสอบว่า |
considerRoadTraffic |
พิจารณาการประมาณการเข้าชมในการคำนวณช่อง |
populatePolylines |
หากเป็น "จริง" ระบบจะป้อนข้อมูลเส้นประกอบใน |
populateTransitionPolylines |
หากเป็น "จริง" ระบบจะป้อนข้อมูลเส้นประกอบและโทเค็นเส้นทางในการตอบกลับ |
allowLargeDeadlineDespiteInterruptionRisk |
หากตั้งค่านี้ คำขอจะมีกำหนดเวลา (ดู https://grpc.io/blog/deadlines) ได้สูงสุด 60 นาที ไม่เช่นนั้น กำหนดเวลาสูงสุดจะอยู่ที่ 30 นาทีเท่านั้น โปรดทราบว่าคำขอที่ใช้เวลานานมีความเสี่ยงที่จะถูกขัดจังหวะมากกว่า (แต่ก็ยังน้อยอยู่) |
useGeodesicDistances |
หากเป็นจริง ระบบจะคำนวณระยะทางในการเดินทางโดยใช้ระยะทางแบบจีโอเดสิกแทนระยะทางของ Google Maps และจะคำนวณระยะเวลาเดินทางโดยใช้ระยะทางแบบจีโอเดสิกด้วยความเร็วที่กำหนดโดย |
label |
ป้ายกำกับที่อาจใช้เพื่อระบุคำขอนี้ ซึ่งรายงานกลับมาใน |
geodesicMetersPerSecond |
เมื่อ |
maxValidationErrors |
ตัดจำนวนข้อผิดพลาดในการตรวจสอบที่แสดงผล โดยทั่วไปข้อผิดพลาดเหล่านี้จะแนบมากับเพย์โหลดข้อผิดพลาด INVALID_ARGUMENT เป็นรายละเอียดข้อผิดพลาด BadRequest (https://cloud.google.com/apis/design/errors#error_details) เว้นแต่ว่า solvingMode=VALIDATE_ONLY: โปรดดูช่อง |
เนื้อหาการตอบกลับ
หากทำสำเร็จ เนื้อหาการตอบกลับจะมีอินสแตนซ์ OptimizeToursResponse
ขอบเขตการให้สิทธิ์
ต้องใช้ขอบเขต OAuth ต่อไปนี้
https://www.googleapis.com/auth/cloud-platform
สิทธิ์ IAM
ต้องมีสิทธิ์ IAM ต่อไปนี้ในทรัพยากร parent
routeoptimization.locations.use
ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบของ IAM