لإرسال OptimizeToursRequest
تحتوي على ShipmentModel
وعرض OptimizeToursResponse
تحتوي على ShipmentRoute
، وهي مجموعة من المسارات التي يمكن للمركبات تنفيذها مع تقليل التكلفة الإجمالية.
يتكوّن نموذج ShipmentModel
بشكلٍ أساسي من Shipment
التي يجب تنفيذها وVehicle
s التي يمكن استخدامها لنقل 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:
ينطبق هذا التفسير على الحقول إذا كانت القيمة هي 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
أذونات إدارة الهوية وإمكانية الوصول
يجب الحصول على إذن IAM التالي في مورد "parent
":
routeoptimization.locations.use
ولمزيد من المعلومات، اطّلِع على مستندات إدارة الهوية وإمكانية الوصول.