لإرسال 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/2011، ستؤدي هذه السياسة إلى تعبئة الخطوط المتعددة للمسارات غير الفارغة فقط وتتطلب أن تكون قيمة قد تكون حقول يجب عدم استخدام هذا الحقل مع وليس لكل من |
interpretInjectedSolutionsUsingLabels |
في حال صحته:
ينطبق هذا التفسير على الحقول إذا كان الأمر صحيحًا، يجب أن تظهر التصنيفات في الفئات التالية مرة واحدة في فئتها مرة واحدة على الأكثر:
إذا كان قد تؤثر إزالة زيارات المسارات أو المسارات بالكامل من المحلول الذي تم إدخاله على القيود الضمنية، ما قد يؤدي إلى حدوث تغيير في الحل أو حدوث أخطاء في عملية التحقق من الصحة أو عدم القدرة على تلبية المتطلبات. ملاحظة: يجب أن يتأكد المتصل من أن كل |
considerRoadTraffic |
ننصحك بتقدير عدد الزيارات في حساب حقول |
populatePolylines |
إذا كانت القيمة "صحيح"، ستتم تعبئة الخطوط المتعددة في رموز الاستجابة |
populateTransitionPolylines |
إذا كانت القيمة "true"، ستتم تعبئة الخطوط المتعددة في الرد |
allowLargeDeadlineDespiteInterruptionRisk |
وفي حال ضبطها، يمكن أن يتم تحديد موعد نهائي للطلب (يُرجى الاطّلاع على https://grpc.io/blog/deadlines) في غضون 60 دقيقة كحدّ أقصى. وبخلاف ذلك، فإن الحد الأقصى للموعد النهائي هو 30 دقيقة فقط. تجدر الإشارة إلى أنّ الطلبات الطويلة الأمد تنطوي على خطر أكبر بكثير (ولكنّه لا يزال صغيرًا) لانقطاع الخدمات. |
useGeodesicDistances |
إذا كانت القيمة صحيحة، سيتم احتساب مسافات السفر باستخدام المسافات الجيوديسية بدلاً من المسافات في "خرائط Google"، كما سيتم احتساب أوقات السفر باستخدام المسافات الجيوديسية بسرعة يتم تحديدها في |
label |
تصنيف يمكن استخدامه لتحديد هذا الطلب، وتم الإبلاغ عنه في |
geodesicMetersPerSecond |
عندما تكون قيمة |
maxValidationErrors |
لاقتطاع عدد أخطاء التحقّق من الصحة التي تم عرضها. يتم إرفاق هذه الأخطاء عادةً بحمولة خطأ وتقديمها كتفاصيل خطأ BadRequest (https://cloud.google.com/apis/design/errors#error_details)، إلا في حال حلول SolutionMode=VALIDATE_ONLY: يمكنك الاطّلاع على الحقل |
نص الاستجابة
إذا كانت الاستجابة ناجحة، يحتوي نص الاستجابة على مثال OptimizeToursResponse
.
نطاقات التفويض
يجب توفير نطاق OAuth التالي:
https://www.googleapis.com/auth/cloud-platform