الردّ بعد حلّ مشكلة تحسين الجولات التي تحتوي على المسارات التي تتبعها كل مركبة والشحنات التي تم تخطّيها والتكلفة الإجمالية للحلّ
| تمثيل JSON |
|---|
{ "routes": [ { object ( |
| الحقول | |
|---|---|
routes[] |
المسارات المحسوبة لكل مركبة، ويتوافق المسار رقم i مع المركبة رقم i في النموذج. |
requestLabel |
نسخة من |
skippedShipments[] |
قائمة بجميع الشحنات التي تم تخطّيها |
validationErrors[] |
قائمة بجميع أخطاء التحقّق التي تمكّنا من رصدها بشكل مستقل. اطّلِع على شرح "أخطاء متعددة" للرسالة |
processedRequest |
في بعض الحالات، نعدّل الطلب الوارد قبل حلّه، أي نضيف التكاليف. إذا كانت قيمة solvingMode هي TRANSFORM_AND_RETURN_REQUEST، سيتم عرض الطلب المعدَّل هنا. تجريبي: يُرجى الاطّلاع على https://developers.google.com/maps/tt/route-optimization/experimental/objectives/make-request لمزيد من التفاصيل. |
metrics |
مقاييس المدة والمسافة والاستخدام لهذا الحلّ |
OptimizeToursValidationError
تصف هذه السمة خطأ أو تحذيرًا حدث أثناء التحقّق من صحة OptimizeToursRequest.
| تمثيل JSON |
|---|
{
"code": integer,
"displayName": string,
"fields": [
{
object ( |
| الحقول | |
|---|---|
code |
يتم تحديد خطأ التحقّق من الصحة من خلال الزوج ( تقدّم الحقول التالية لهذا القسم مزيدًا من السياق حول الخطأ. أخطاء متعدّدة: عند حدوث أخطاء متعدّدة، تحاول عملية التحقّق عرض العديد منها. وكما هو الحال مع المترجم، هذه عملية غير مثالية. ستكون بعض أخطاء التحقّق "خطيرة"، ما يعني أنّها ستوقف عملية التحقّق بأكملها. وينطبق ذلك على أخطاء الثبات: يجب أن يكون |
displayName |
الاسم المعروض للخطأ |
fields[] |
قد يتضمّن سياق الخطأ 0 أو 1 (في معظم الأحيان) أو أكثر من الحقول. على سبيل المثال، يمكن الإشارة إلى عملية الاستلام الأولى للمركبة رقم 4 والشحنة رقم 2 على النحو التالي: يُرجى العِلم، مع ذلك، بأنّ عدد القيم الممكنة لـ |
errorMessage |
سلسلة تصف الخطأ ويمكن لشخص عادي قراءتها هناك تطابق بنسبة 1:1 بين الثبات: غير ثابت: قد تتغيّر رسالة الخطأ المرتبطة برمز |
offendingValues |
قد يحتوي على قيم الحقول. قد لا يكون هذا الخيار متاحًا في بعض الأحيان. ولا ننصحك بالاعتماد عليه، بل استخدِمه فقط لتصحيح أخطاء النموذج يدويًا. |
FieldReference
تحدّد هذه السمة سياقًا لخطأ التحقّق من الصحة. يشير FieldReference دائمًا إلى حقل معيّن في هذا الملف ويتّبع البنية الهرمية نفسها. على سبيل المثال، يمكننا تحديد العنصر رقم 2 من startTimeWindows للمركبة رقم 5 باستخدام:
name: "vehicles" index: 5 subField { name: "endTimeWindows" index: 2 }
ومع ذلك، نتجاهل الكيانات ذات المستوى الأعلى، مثل OptimizeToursRequest أو ShipmentModel، لتجنُّب الازدحام في الرسالة.
| تمثيل JSON |
|---|
{
"name": string,
"subField": {
object ( |
| الحقول | |
|---|---|
name |
اسم الحقل، مثل "المركبات". |
subField |
حقل فرعي متداخل بشكل متكرر، إذا لزم الأمر |
| في ما يلي قائمة بالحقول التي يستبعد كلّ منها الآخر. سيتم ضبط حقل واحد على الأكثر في الرد: | |
index |
فهرس الحقل إذا كان متكررًا |
key |
مفتاح إذا كان الحقل خريطة |
| نهاية الحقول التي يستبعد كلّ منها الآخر | |
المقاييس
المقاييس الإجمالية، المجمّعة على مستوى جميع المسارات
| تمثيل JSON |
|---|
{
"aggregatedRouteMetrics": {
object ( |
| الحقول | |
|---|---|
aggregatedRouteMetrics |
يتم احتساب هذه النسبة بشكل مجمّع على مستوى المسارات. كل مقياس هو مجموع (أو الحد الأقصى، بالنسبة إلى عمليات التحميل) جميع حقول |
skippedMandatoryShipmentCount |
عدد الشحنات الإلزامية التي تم تخطّيها |
usedVehicleCount |
عدد المركبات المستخدَمة ملاحظة: إذا كان مسار المركبة فارغًا وكانت قيمة |
earliestVehicleStartTime |
تمثّل هذه السمة أقرب وقت بدء لمركبة مستعمَلة، ويتم احتسابها كحدّ أدنى لجميع المركبات المستعمَلة من يستخدم المعيار RFC 3339، حيث يكون الناتج الذي يتم إنشاؤه مُمثلاً بالتوقيت العالمي المنسَّق مع حرف Z في النهاية ويستخدم الأرقام الجزئية 0 أو 3 أو 6 أو 9. تُقبل أيضًا المعادلات الأخرى التي لا تستخدم حرف Z. أمثلة: |
latestVehicleEndTime |
تمثّل هذه السمة آخر وقت انتهاء لمركبة مستعمَلة، ويتم احتسابها كحدّ أقصى لجميع المركبات المستعمَلة من يستخدم المعيار RFC 3339، حيث يكون الناتج الذي يتم إنشاؤه مُمثلاً بالتوقيت العالمي المنسَّق مع حرف Z في النهاية ويستخدم الأرقام الجزئية 0 أو 3 أو 6 أو 9. تُقبل أيضًا المعادلات الأخرى التي لا تستخدم حرف Z. أمثلة: |
costs |
تكلفة الحلّ، مقسّمة حسب حقول الطلبات ذات الصلة بالتكلفة المفاتيح هي مسارات أولية، بالنسبة إلى OptimizeToursRequest الإدخال، مثل "model.shipments.pickups.cost"، والقيم هي التكلفة الإجمالية التي تم إنشاؤها بواسطة حقل التكلفة المقابل، ويتم تجميعها على مستوى الحلّ بأكمله. بعبارة أخرى، costs["model.shipments.pickups.cost"] هو مجموع جميع تكاليف الاستلام في الحل. يتم هنا عرض جميع التكاليف المحدّدة في النموذج بالتفصيل، باستثناء التكاليف المتعلّقة بسمات TransitionAttributes التي يتم عرضها بشكل مجمّع فقط اعتبارًا من 2022/01. |
totalCost |
التكلفة الإجمالية للحلّ مجموع كل القيم في خريطة التكاليف. |