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