ส่ง 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 |
หากตั้งค่าการหมดเวลานี้ไว้ เซิร์ฟเวอร์จะแสดงผลลัพธ์ก่อนที่ระยะเวลาหมดเวลาจะสิ้นสุดลงหรือก่อนที่เซิร์ฟเวอร์จะถึงกำหนดเวลาของคำขอแบบซิงค์ แล้วแต่ว่าเวลาใดจะมาถึงก่อน สําหรับคําขอแบบไม่พร้อมกัน เซิร์ฟเวอร์จะสร้างโซลูชัน (หากเป็นไปได้) ก่อนที่เวลาหมด ระยะเวลาเป็นวินาทีที่มีเศษทศนิยมได้สูงสุด 9 หลัก โดยลงท้ายด้วย |
model |
รูปแบบการจัดส่งที่จะแก้ปัญหา |
solving |
โดยค่าเริ่มต้น โหมดการแก้ปัญหาจะเป็น |
search |
โหมดการค้นหาที่ใช้เพื่อแก้ปัญหา |
injected |
แนะนําอัลกอริทึมการเพิ่มประสิทธิภาพในการค้นหาวิธีแก้ปัญหาแรกซึ่งคล้ายกับวิธีแก้ปัญหาก่อนหน้า โมเดลถูกจํากัดเมื่อสร้างโซลูชันแรก ระบบจะข้ามการจัดส่งที่ไม่ได้ดำเนินการในเส้นทางหนึ่งๆ โดยปริยายในโซลูชันแรก แต่อาจดำเนินการในโซลูชันต่อๆ ไป โซลูชันต้องเป็นไปตามสมมติฐานพื้นฐานบางอย่างเกี่ยวกับความถูกต้อง ดังนี้
หากโซลูชันที่แทรกไม่สามารถทำได้ ระบบอาจไม่แสดงข้อผิดพลาดในการตรวจสอบและแสดงข้อผิดพลาดที่ระบุว่าไม่สามารถทำได้แทน |
injected |
จำกัดอัลกอริทึมการเพิ่มประสิทธิภาพเพื่อค้นหาวิธีแก้ปัญหาสุดท้ายที่คล้ายกับวิธีแก้ปัญหาก่อนหน้า เช่น สามารถใช้เพื่อหยุดเส้นทางบางส่วนที่เสร็จสมบูรณ์แล้วหรือที่กำลังจะเสร็จสมบูรณ์แต่ต้องไม่แก้ไข หากโซลูชันที่แทรกไม่สามารถทำได้ ระบบอาจไม่แสดงข้อผิดพลาดในการตรวจสอบและแสดงข้อผิดพลาดที่ระบุว่าไม่สามารถทำได้แทน |
refresh |
หากไม่ใช่ค่าว่าง ระบบจะรีเฟรชเส้นทางที่ระบุโดยไม่แก้ไขลําดับการแวะพักหรือเวลาเดินทางที่อยู่เบื้องหลัง ระบบจะอัปเดตเฉพาะรายละเอียดอื่นๆ เท่านั้น การดำเนินการนี้ไม่ได้แก้ปัญหาโมเดล ณ วันที่ 11/2020 การดำเนินการนี้จะสร้างเฉพาะเส้นประกอบของเส้นทางที่ไม่ใช่ "ว่าง" และกำหนดให้ ฟิลด์ ห้ามใช้ช่องนี้ร่วมกับ
|
interpret |
เงื่อนไข "เป็นจริง"
การตีความนี้มีผลกับช่อง หากเป็น "จริง" ป้ายกำกับในหมวดหมู่ต่อไปนี้ต้องปรากฏในหมวดหมู่นั้นๆ ไม่เกิน 1 ครั้ง
หาก การนําการเข้าชมเส้นทางหรือทั้งเส้นทางออกจากโซลูชันที่แทรกอาจส่งผลต่อข้อจํากัดโดยนัย ซึ่งอาจทําให้เกิดการเปลี่ยนแปลงโซลูชัน ข้อผิดพลาดในการตรวจสอบ หรือความเป็นไปไม่ได้ หมายเหตุ: ผู้โทรต้องตรวจสอบว่า |
consider |
พิจารณาการประมาณการเข้าชมในการคำนวณช่อง |
populate |
หากเป็น "จริง" ระบบจะสร้างเส้นประกอบใน |
populate |
หากเป็น "จริง" ระบบจะป้อนข้อมูลเส้นประกอบและโทเค็นเส้นทางในการตอบกลับ |
allow |
หากตั้งค่านี้ คำขอจะมีกำหนดเวลา (ดูที่ https://grpc.io/blog/deadlines) ได้สูงสุด 60 นาที ไม่เช่นนั้น กำหนดเวลาสูงสุดคือ 30 นาทีเท่านั้น โปรดทราบว่าคําขอที่มีอายุการใช้งานนานมีความเสี่ยงที่จะหยุดชะงักมากกว่า (แต่ก็ยังถือว่าน้อย) |
use |
หากเป็นจริง ระบบจะคํานวณระยะทางในการเดินทางโดยใช้ระยะทางตามแนวเส้นโค้งแทนระยะทางของ Google Maps และคำนวณเวลาในการเดินทางโดยใช้ระยะทางตามแนวเส้นโค้งที่มีความเร็วที่กําหนดโดย |
label |
ป้ายกำกับที่อาจใช้ระบุคำขอนี้ซึ่งรายงานกลับใน |
geodesic |
เมื่อ |
max |
ตัดจำนวนข้อผิดพลาดในการตรวจสอบที่แสดงผล โดยปกติแล้ว ข้อผิดพลาดเหล่านี้จะแนบไปกับเพย์โหลดข้อผิดพลาด 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