لإرسال 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/*}: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 |
تقتطع عدد أخطاء التحقّق التي يتم عرضها. عادةً ما ترتبط هذه الأخطاء بحمولة خطأ INSERT_SELECTED كتفاصيل خطأ BadRequest (https://cloud.google.com/apis/design/errors#error_details)، ما لم يكن العنوان SolutionMode=VALIDATE_ONLY: يُرجى الاطّلاع على الحقل |
نص الاستجابة
إذا كانت الاستجابة ناجحة، يحتوي نص الاستجابة على مثال OptimizeToursResponse
.
نطاقات الأذونات
يجب توفير نطاق OAuth التالي:
https://www.googleapis.com/auth/cloud-platform
أذونات "إدارة الهوية وإمكانية الوصول"
يجب الحصول على إذن إدارة الهوية وإمكانية الوصول التالي في مورد "parent
":
routeoptimization.locations.use
لمزيد من المعلومات، يُرجى الاطّلاع على مستندات إدارة الهوية وإمكانية الوصول.