ส่ง 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/*/locations/*}:optimizeTours
URL ใช้ไวยากรณ์การแปลง gRPC
พารามิเตอร์เส้นทาง
พารามิเตอร์ | |
---|---|
parent |
ต้องระบุ กำหนดเป้าหมายโปรเจ็กต์หรือสถานที่ตั้งเพื่อโทรออก รูปแบบ: * หากไม่มีการระบุตําแหน่ง ระบบจะเลือกภูมิภาคโดยอัตโนมัติ |
เนื้อหาของคำขอ
เนื้อความของคำขอมีข้อมูลซึ่งมีโครงสร้างดังต่อไปนี้
การแสดง JSON |
---|
{ "timeout": string, "model": { object ( |
ช่อง | |
---|---|
timeout |
หากตั้งค่าการหมดเวลานี้ไว้ เซิร์ฟเวอร์จะแสดงผลลัพธ์ก่อนที่ระยะเวลาหมดเวลาจะสิ้นสุดลงหรือก่อนที่เซิร์ฟเวอร์จะถึงกำหนดเวลาของคำขอแบบซิงค์ แล้วแต่ว่าเวลาใดจะถึงก่อน สําหรับคําขอแบบไม่พร้อมกัน เซิร์ฟเวอร์จะสร้างโซลูชัน (หากเป็นไปได้) ก่อนที่เวลาหมด ระยะเวลาเป็นวินาทีโดยมีเลขเศษส่วนไม่เกิน 9 หลัก ลงท้ายด้วย " |
model |
รูปแบบการจัดส่งที่จะแก้ไข |
solvingMode |
โดยค่าเริ่มต้น โหมดการแก้ปัญหาจะเป็น |
searchMode |
โหมดการค้นหาที่ใช้เพื่อไขคำขอ |
injectedFirstSolutionRoutes[] |
แนะนำอัลกอริทึมการเพิ่มประสิทธิภาพในการค้นหาโซลูชันแรกที่คล้ายกับโซลูชันก่อนหน้า โมเดลถูกจํากัดเมื่อสร้างโซลูชันแรก การจัดส่งที่ไม่ได้ดำเนินการในเส้นทางจะถูกข้ามโดยปริยายในโซลูชันแรก แต่อาจดำเนินการในโซลูชันต่อเนื่อง โซลูชันนี้ต้องเป็นไปตามสมมติฐานเกี่ยวกับความถูกต้องขั้นพื้นฐานบางประการ ดังนี้
หากโซลูชันที่แทรกลงไปเป็นไปไม่ได้ อาจไม่มีการส่งคืนข้อผิดพลาดในการตรวจสอบ และระบบอาจแสดงข้อผิดพลาดที่ระบุว่าไม่สามารถเป็นไปได้แทน |
injectedSolutionConstraint |
จำกัดอัลกอริทึมการเพิ่มประสิทธิภาพเพื่อค้นหาโซลูชันสุดท้ายที่คล้ายกับโซลูชันก่อนหน้า เช่น สามารถใช้เพื่อหยุดเส้นทางบางส่วนที่เสร็จสมบูรณ์แล้วหรือที่กำลังจะเสร็จสมบูรณ์แต่ต้องไม่แก้ไข หากโซลูชันที่แทรกลงไปเป็นไปไม่ได้ อาจไม่มีการส่งคืนข้อผิดพลาดในการตรวจสอบ และระบบอาจแสดงข้อผิดพลาดที่ระบุว่าไม่สามารถเป็นไปได้แทน |
refreshDetailsRoutes[] |
หากไม่ว่างเปล่า ระบบจะรีเฟรชเส้นทางที่ระบุโดยไม่แก้ไขลำดับการเข้าชมหรือเวลาเดินทางที่สําคัญ โดยจะอัปเดตเฉพาะรายละเอียดอื่นๆ เท่านั้น การดำเนินการนี้ไม่ได้แก้ปัญหาโมเดล ตั้งแต่ปี 2020/11 เป็นต้นไป ตัวแปรนี้จะเติมเฉพาะโพลีไลน์ของเส้นทางที่ไม่ว่างเปล่าและกำหนดให้ ช่อง ช่องนี้ต้องไม่ใช้ร่วมกับ
|
interpretInjectedSolutionsUsingLabels |
หากเป็นจริง
การตีความนี้มีผลกับช่อง หากจริง ป้ายกำกับในหมวดหมู่ต่อไปนี้ต้องปรากฏมากที่สุดครั้งเดียวในหมวดหมู่ของป้ายกำกับนั้น
หาก การนำการเข้าชมเส้นทางหรือทั้งเส้นทางออกจากโซลูชันที่แทรกไว้อาจส่งผลต่อข้อจำกัดโดยนัย ซึ่งอาจนำไปสู่การเปลี่ยนแปลงในโซลูชัน ข้อผิดพลาดในการตรวจสอบ หรือความเป็นไปไม่ได้ หมายเหตุ: ผู้โทรต้องตรวจสอบว่า |
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