ترسل هذه الطريقة 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 |
في حال ضبط مهلة الاستجابة هذه، يعرض الخادم ردًا قبل انقضاء مدة المهلة أو قبل بلوغ الموعد النهائي الذي حدّده الخادم للطلبات المتزامنة، أيهما أقرب. بالنسبة إلى الطلبات غير المتزامنة، سينشئ الخادم حلاً (إذا أمكن ذلك) قبل انقضاء المهلة. مدة بالثواني مع ما يصل إلى تسعة أرقام كسور، وتنتهي بـ " |
model |
نموذج الشحن المطلوب حله |
solvingMode |
يكون وضع الحلّ تلقائيًا |
searchMode |
وضع البحث المستخدَم لحلّ الطلب |
injectedFirstSolutionRoutes[] |
توجيه خوارزمية التحسين للعثور على حلّ أوّلي مشابه لحلّ سابق يتم تقييد النموذج عند إنشاء الحلّ الأول. يتم ضِمنيًا تخطّي أي شحنات لم يتم تنفيذها على مسار في الحل الأول، ولكن يمكن تنفيذها في الحلول اللاحقة. يجب أن يستوفي الحل بعض افتراضات الصلاحية الأساسية:
إذا كان الحلّ الذي تم إدخاله غير ممكن، لن يتم بالضرورة عرض خطأ في التحقّق من الصحة، بل قد يتم عرض خطأ يشير إلى عدم الإمكانية. |
injectedSolutionConstraint |
تقييد خوارزمية التحسين للعثور على حل نهائي مشابه لحل سابق على سبيل المثال، يمكن استخدام ذلك لتجميد أجزاء من المسارات التي تم إكمالها أو التي سيتم إكمالها ولكن يجب عدم تعديلها. إذا كان الحلّ الذي تم إدخاله غير ممكن، لن يتم بالضرورة عرض خطأ في التحقّق من الصحة، بل قد يتم عرض خطأ يشير إلى عدم الإمكانية. |
refreshDetailsRoutes[] |
في حال عدم توفّر مسار فارغ، سيتم إعادة تحميل المسارات المحدّدة بدون تعديل التسلسل الأساسي للزيارات أو أوقات السفر، وسيتم تعديل التفاصيل الأخرى فقط. لا يحلّ هذا الإجراء المشكلة في النموذج. اعتبارًا من 2020/11، لا يتم ملء الخطوط المتعددة إلا للطرق غير الفارغة، ويجب أن تكون قيمة قد تكون حقول يجب عدم استخدام هذا الحقل مع ليس لـ |
interpretInjectedSolutionsUsingLabels |
إذا كان ذلك صحيحًا:
ينطبق هذا التفسير على الحقول إذا كانت القيمة هي true، يجب ألا تظهر التصنيفات في الفئات التالية أكثر من مرة واحدة في فئتها:
إذا لم يتطابق قد تؤدي إزالة زيارات مسار أو مسارات كاملة من حلّ تم إدخاله إلى التأثير في القيود الضمنية، ما قد يؤدي إلى تغيير في الحلّ أو حدوث أخطاء في التحقّق من الصحة أو عدم إمكانية التنفيذ. ملاحظة: على المتّصل التأكّد من أنّ كل |
considerRoadTraffic |
ضَع تقدير حركة المرور في الاعتبار عند احتساب الحقول |
populatePolylines |
في حال ضبطها على "صحيح"، ستتم تعبئة الخطوط المتعددة في الردود |
populateTransitionPolylines |
إذا كانت القيمة "صحيح"، سيتم ملء الخطوط المتعددة ورموز المسار المميزة في الرد |
allowLargeDeadlineDespiteInterruptionRisk |
في حال ضبط هذه السياسة، يمكن أن يكون للطلب موعد نهائي (راجِع https://grpc.io/blog/deadlines) يصل إلى 60 دقيقة. وبخلاف ذلك، يكون الحدّ الأقصى للموعد النهائي 30 دقيقة فقط. يُرجى العِلم أنّ الطلبات التي تستغرق وقتًا طويلاً تكون أكثر عرضة للانقطاع (وإن كان احتمال حدوث ذلك ضئيلاً). |
useGeodesicDistances |
في حال ضبط القيمة على true، سيتم احتساب مسافات التنقّل باستخدام المسافات الجيوديسية بدلاً من مسافات "خرائط Google"، وسيتم احتساب مُدد التنقّل باستخدام المسافات الجيوديسية مع سرعة محدّدة بواسطة |
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) التالي على مورد parent:
routeoptimization.locations.use
لمزيد من المعلومات، يُرجى الاطّلاع على مستندات إدارة الهوية وإمكانية الوصول.