ส่ง 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 |
รูปแบบการจัดส่งที่จะแก้ไข |
solvingMode |
โดยค่าเริ่มต้น โหมดการแก้ปัญหาจะเป็น |
searchMode |
โหมดการค้นหาที่ใช้เพื่อแก้ปัญหา |
injectedFirstSolutionRoutes[] |
แนะนำอัลกอริทึมการเพิ่มประสิทธิภาพในการค้นหาโซลูชันแรกที่คล้ายกับโซลูชันก่อนหน้า โมเดลถูกจํากัดเมื่อสร้างโซลูชันแรก การจัดส่งที่ไม่ได้ดำเนินการในเส้นทางจะถูกข้ามโดยปริยายในโซลูชันแรก แต่อาจดำเนินการในโซลูชันต่อเนื่อง โซลูชันต้องเป็นไปตามสมมติฐานเกี่ยวกับความถูกต้องขั้นพื้นฐานบางประการ ดังนี้
หากโซลูชันที่แทรกไม่สามารถทำได้ ระบบอาจไม่แสดงข้อผิดพลาดในการตรวจสอบและแสดงข้อผิดพลาดที่ระบุว่าไม่สามารถทำได้แทน |
injectedSolutionConstraint |
จำกัดอัลกอริทึมการเพิ่มประสิทธิภาพเพื่อค้นหาวิธีแก้ปัญหาสุดท้ายที่คล้ายกับวิธีแก้ปัญหาก่อนหน้า เช่น สามารถใช้เพื่อหยุดเส้นทางบางส่วนที่เสร็จสมบูรณ์แล้วหรือที่กำลังจะเสร็จสมบูรณ์แต่ต้องไม่แก้ไข หากโซลูชันที่แทรกลงไปเป็นไปไม่ได้ อาจไม่มีการส่งคืนข้อผิดพลาดในการตรวจสอบ และระบบอาจแสดงข้อผิดพลาดที่ระบุว่าไม่สามารถเป็นไปได้แทน |
refreshDetailsRoutes[] |
หากข้อมูลไม่ว่างเปล่า ระบบจะรีเฟรชเส้นทางที่ระบุโดยไม่แก้ไขลําดับการเข้าชมหรือเวลาเดินทางที่อยู่เบื้องหลัง ระบบจะอัปเดตเฉพาะรายละเอียดอื่นๆ เท่านั้น การดำเนินการนี้ไม่ได้แก้ปัญหาโมเดล ในเดือน 11/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) ยกเว้น troubleshootingMode=VALIDATE_ONLY: โปรดดูช่อง |
เนื้อหาการตอบกลับ
หากทำสำเร็จ เนื้อหาการตอบกลับจะมีอินสแตนซ์ OptimizeToursResponse
ขอบเขตการให้สิทธิ์
ต้องใช้ขอบเขต OAuth ต่อไปนี้
https://www.googleapis.com/auth/cloud-platform
สิทธิ์ IAM
ต้องมีสิทธิ์ IAM ต่อไปนี้ในทรัพยากร parent
:
routeoptimization.locations.use
ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบ IAM