الفهرس
RouteOptimization(واجهة)AggregatedMetrics(رسالة)BatchOptimizeToursMetadata(رسالة)BatchOptimizeToursRequest(رسالة)BatchOptimizeToursRequest.AsyncModelConfig(رسالة)BatchOptimizeToursResponse(رسالة)BreakRule(رسالة)BreakRule.BreakRequest(رسالة)BreakRule.FrequencyConstraint(رسالة)DataFormat(تعداد)DistanceLimit(رسالة)GcsDestination(رسالة)GcsSource(رسالة)InjectedSolutionConstraint(رسالة)InjectedSolutionConstraint.ConstraintRelaxation(رسالة)InjectedSolutionConstraint.ConstraintRelaxation.Relaxation(رسالة)InjectedSolutionConstraint.ConstraintRelaxation.Relaxation.Level(تعداد)InputConfig(رسالة)Location(رسالة)OptimizeToursLongRunningMetadata(رسالة)OptimizeToursRequest(رسالة)OptimizeToursRequest.SearchMode(تعداد)OptimizeToursRequest.SolvingMode(تعداد)OptimizeToursResponse(رسالة)OptimizeToursResponse.Metrics(رسالة)OptimizeToursUriMetadata(رسالة)OptimizeToursUriRequest(رسالة)OptimizeToursUriResponse(رسالة)OptimizeToursValidationError(رسالة)OptimizeToursValidationError.FieldReference(رسالة)OutputConfig(رسالة)RouteModifiers(رسالة)Shipment(رسالة)Shipment.Load(رسالة)Shipment.VisitRequest(رسالة)ShipmentModel(رسالة)ShipmentModel.DurationDistanceMatrix(رسالة)ShipmentModel.DurationDistanceMatrix.Row(رسالة)ShipmentModel.Objective(رسالة)ShipmentModel.Objective.Type(تعداد)ShipmentModel.PrecedenceRule(رسالة)ShipmentRoute(رسالة)ShipmentRoute.Break(رسالة)ShipmentRoute.EncodedPolyline(رسالة)ShipmentRoute.Transition(رسالة)ShipmentRoute.VehicleLoad(رسالة)ShipmentRoute.Visit(رسالة)ShipmentTypeIncompatibility(رسالة)ShipmentTypeIncompatibility.IncompatibilityMode(تعداد)ShipmentTypeRequirement(رسالة)ShipmentTypeRequirement.RequirementMode(تعداد)SkippedShipment(رسالة)SkippedShipment.Reason(رسالة)SkippedShipment.Reason.Code(تعداد)TimeWindow(رسالة)TransitionAttributes(رسالة)Uri(رسالة)Vehicle(رسالة)Vehicle.DurationLimit(رسالة)Vehicle.LoadLimit(رسالة)Vehicle.LoadLimit.Interval(رسالة)Vehicle.LoadLimit.LoadCost(رسالة)Vehicle.TravelMode(تعداد)Vehicle.UnloadingPolicy(تعداد)VehicleFullness(رسالة)Waypoint(رسالة)
RouteOptimization
خدمة لتحسين جولات المركبات
صلاحية أنواع معيّنة من الحقول:
google.protobuf.Timestamp- يتم عرض الأوقات بتنسيق Unix: الثواني منذ 1970-01-01T00:00:00+00:00.
- يجب أن تكون الثواني في النطاق [0, 253402300799]، أي في النطاق [1970-01-01T00:00:00+00:00, 9999-12-31T23:59:59+00:00].
- يجب إلغاء ضبط قيمة "نانو ثانية" أو ضبطها على 0.
google.protobuf.Duration- يجب أن تكون الثواني في النطاق [0, 253402300799]، أي في النطاق [1970-01-01T00:00:00+00:00, 9999-12-31T23:59:59+00:00].
- يجب إلغاء ضبط قيمة "نانو ثانية" أو ضبطها على 0.
google.type.LatLng- يجب أن يكون خط العرض ضمن النطاق [-90.0, 90.0].
- يجب أن يكون خط الطول ضمن النطاق [-180.0, 180.0].
- يجب أن تكون قيمة خط العرض أو خط الطول أو كليهما غير صفرية.
| BatchOptimizeTours |
|---|
|
تحسين جولات المركبة لرسالة واحدة أو أكثر هذه الطريقة هي عملية طويلة الأمد (LRO). تتم قراءة مدخلات التحسين (رسائل يمكن للمستخدم إجراء عملية بحث إذا كان حقل إذا كان الحقل
|
| OptimizeTours |
|---|
|
ترسل هذه الطريقة يتألف نموذج الهدف هو توفير عملية ربط بين
|
| OptimizeToursLongRunning |
|---|
|
هذا النوع هو أحد أشكال طريقة سيكون لعملية تجريبية: يُرجى الاطّلاع على https://developers.google.com/maps/tt/route-optimization/experimental/otlr/make-request لمزيد من التفاصيل.
|
| OptimizeToursUri |
|---|
|
هذا النوع هو أحد أشكال طريقة يحدّد العميل معرّف الموارد المنتظم (URI) الخاص بـ يجب تفضيل هذه الطريقة على الطريقة سيكون لعملية تجريبية: يُرجى الاطّلاع على https://developers.google.com/maps/tt/route-optimization/experimental/otlr/make-request لمزيد من التفاصيل.
|
AggregatedMetrics
مقاييس مجمّعة لـ ShipmentRoute (أو OptimizeToursResponse على جميع عناصر Transition و/أو Visit (أو ShipmentRoute على جميع العناصر)
| الحقول | |
|---|---|
performed_shipment_count |
عدد عمليات الشحن التي تم تنفيذها يُرجى العِلم أنّه يتم احتساب كل عملية استلام وتسليم مرة واحدة فقط. |
travel_duration |
إجمالي مدة الرحلة لمسار أو حلّ |
wait_duration |
إجمالي مدة الانتظار لمسار أو حلّ |
delay_duration |
إجمالي مدة التأخير لمسار أو حلّ |
break_duration |
إجمالي مدة الاستراحة لمسار أو حلّ |
visit_duration |
إجمالي مدة الزيارة لمسار أو حلّ |
total_duration |
يجب أن تكون المدة الإجمالية مساوية لمجموع كل المدد المذكورة أعلاه. بالنسبة إلى المسارات، يتوافق أيضًا مع: |
travel_distance_meters |
إجمالي مسافة السفر لمسار أو حلّ |
max_loads |
الحدّ الأقصى للحِمل الذي تم تحقيقه على مستوى المسار (أو الحلّ) بأكمله، لكل كمية في هذا المسار (أو الحلّ)، ويتم احتسابه على أنّه الحدّ الأقصى لجميع |
performed_mandatory_shipment_count |
عدد عمليات الشحن الإلزامية التي تم تنفيذها تجريبي: قد يتغيّر سلوك هذا الحقل أو يتوقف عن الوجود في المستقبل. |
performed_shipment_penalty_cost_sum |
مجموع تجريبي: قد يتغيّر سلوك هذا الحقل أو يتوقف عن الوجود في المستقبل. |
BatchOptimizeToursMetadata
لا يتضمّن هذا النوع أي حقول.
البيانات الوصفية للعمليات الخاصة بمكالمات BatchOptimizeToursRequest
BatchOptimizeToursRequest
طلب تحسين الجولات بشكل مجمّع كعملية غير متزامنة يجب أن يحتوي كل ملف إدخال على OptimizeToursRequest واحد، وسيحتوي كل ملف إخراج على OptimizeToursResponse واحد. يحتوي الطلب على معلومات لقراءة الملفات وكتابتها وتحليلها. يجب أن تكون جميع ملفات الإدخال والإخراج ضِمن المشروع نفسه.
| الحقول | |
|---|---|
parent |
الحقل مطلوب. استهداف مشروع وموقع جغرافي لإجراء مكالمة التنسيق:
في حال عدم تحديد موقع جغرافي، سيتم اختيار منطقة تلقائيًا. |
model_configs[] |
الحقل مطلوب. معلومات الإدخال/الإخراج لكل نموذج شراء، مثل مسارات الملفات وتنسيقات البيانات |
AsyncModelConfig
معلومات لحلّ نموذج تحسين واحد بشكل غير متزامن
| الحقول | |
|---|---|
display_name |
اختيارية: اسم الطراز الذي يحدّده المستخدم، ويمكن للمستخدمين استخدامه كاسم مستعار لتتبُّع الطُرز. |
input_config |
الحقل مطلوب. معلومات حول نموذج الإدخال |
output_config |
الحقل مطلوب. معلومات الموقع الجغرافي المطلوب إخراج البيانات إليه |
BatchOptimizeToursResponse
لا يتضمّن هذا النوع أي حقول.
ردّ على BatchOptimizeToursRequest يتم عرض هذا الرمز في عملية التشغيل الطويلة بعد اكتمال العملية.
BreakRule
قواعد لإنشاء فواصل زمنية لمركبة (مثل فترات استراحة الغداء) الاستراحة هي فترة زمنية متواصلة تبقى خلالها المركبة متوقفة في موقعها الحالي ولا يمكنها إجراء أي زيارة. قد تحدث استراحة في الحالات التالية:
- أثناء التنقّل بين زيارتَين (ويشمل ذلك الوقت قبل الزيارة أو بعدها مباشرةً، ولكن ليس في منتصف الزيارة)، وفي هذه الحالة يتم تمديد وقت التنقّل المقابل بين الزيارتَين،
- أو قبل بدء تشغيل السيارة (قد لا يتم تشغيل السيارة في منتصف الاستراحة)، وفي هذه الحالة لن يؤثر ذلك في وقت بدء تشغيل السيارة.
- أو بعد انتهاء فترة استخدام المركبة (كما هو الحال مع وقت انتهاء فترة استخدام المركبة).
| الحقول | |
|---|---|
break_requests[] |
تسلسل الفواصل اطّلِع على الرسالة |
frequency_constraints[] |
قد تنطبق عدة |
BreakRequest
يجب معرفة تسلسل فترات الاستراحة (أي عددها وترتيبها) التي تنطبق على كل مركبة مسبقًا. تحدّد BreakRequest المتكررة هذا التسلسل بالترتيب الذي يجب أن يحدث به. قد تتداخل الفترات الزمنية (earliest_start_time / latest_start_time)، ولكن يجب أن تكون متوافقة مع الترتيب (يتم التحقّق من ذلك).
| الحقول | |
|---|---|
earliest_start_time |
الحقل مطلوب. الحدّ الأدنى (شامل) لبداية فترة الاستراحة. |
latest_start_time |
الحقل مطلوب. الحدّ الأعلى (شامل) لوقت بدء الاستراحة |
min_duration |
الحقل مطلوب. تمثّل هذه السمة الحد الأدنى لمدة الاستراحة. يجب أن تكون موجبة. |
FrequencyConstraint
يمكن للمستخدم فرض قيود إضافية على معدّل تكرار الفواصل ومدتها المحدّدة أعلاه، وذلك من خلال فرض حدّ أدنى لمعدّل تكرار الفواصل، مثل "يجب أن يكون هناك فاصل لمدة ساعة واحدة على الأقل كل 12 ساعة". بافتراض أنّه يمكن تفسير ذلك على أنّه "خلال أي فترة زمنية متغيرة مدتها 12 ساعة، يجب أن يكون هناك استراحة واحدة على الأقل لمدة ساعة واحدة على الأقل"، سيتم تحويل هذا المثال إلى ما يلي FrequencyConstraint:
{
min_break_duration { seconds: 3600 } # 1 hour.
max_inter_break_duration { seconds: 39600 } # 11 hours (12 - 1 = 11).
}
سيراعي توقيت فترات الاستراحة ومدتها جميع هذه القيود، بالإضافة إلى الفترات الزمنية والمدد الدنيا المحدّدة مسبقًا في BreakRequest.
قد ينطبق FrequencyConstraint في الواقع على فواصل إعلانية غير متتالية. على سبيل المثال، يلتزم الجدول الزمني التالي بالمثال "ساعة واحدة كل 12 ساعة":
04:00 vehicle start
.. performing travel and visits ..
09:00 1 hour break
10:00 end of the break
.. performing travel and visits ..
12:00 20-min lunch break
12:20 end of the break
.. performing travel and visits ..
21:00 1 hour break
22:00 end of the break
.. performing travel and visits ..
23:59 vehicle end
| الحقول | |
|---|---|
min_break_duration |
الحقل مطلوب. الحد الأدنى لمدة الاستراحة لهذا القيد غير سالب اطّلِع على وصف |
max_inter_break_duration |
الحقل مطلوب. الحد الأقصى للمدة الزمنية المسموح بها لأي فترة زمنية في المسار لا تتضمّن استراحة لمدة |
DataFormat
تنسيقات البيانات لملفات الإدخال والإخراج
| عمليات التعداد | |
|---|---|
DATA_FORMAT_UNSPECIFIED |
قيمة غير صالحة، يجب ألا يكون التنسيق UNSPECIFIED. |
JSON |
JavaScript Object Notation |
PROTO_TEXT |
تنسيق النص في Protocol Buffers يُرجى الاطّلاع على https://protobuf.dev/reference/protobuf/textformat-spec/ |
DistanceLimit
حدّ يحدّد أقصى مسافة يمكن قطعها. ويمكن أن يكون صلبًا أو ليّنًا.
في حال تحديد حدّ أقصى مرن، يجب تحديد كل من soft_max_meters وcost_per_kilometer_above_soft_max ويجب أن تكونا غير سالبتَين.
| الحقول | |
|---|---|
max_meters |
حدّ أقصى يقيّد المسافة لتكون max_meters على الأكثر. يجب أن يكون الحدّ غير سالب. |
soft_max_meters |
حدّ مرن لا يفرض حدًا أقصى للمسافة، ولكن عند تجاوزه ينتج عنه تكلفة تُضاف إلى التكاليف الأخرى المحدّدة في النموذج، مع استخدام الوحدة نفسها. إذا تم تحديد soft_max_meters، يجب أن تكون قيمته أقل من max_meters وألا تكون سالبة. |
cost_per_kilometer_below_soft_max |
التكلفة لكل كيلومتر تمّ تحمّلها، وتزداد لتصل إلى لا يمكن استخدام هذه التكلفة في |
cost_per_kilometer_above_soft_max |
التكلفة لكل كيلومتر يتم تكبدها إذا كانت المسافة أعلى من الحدّ يجب أن تكون التكلفة غير سالبة. |
GcsDestination
موقع Google Cloud Storage الذي ستتم كتابة ملفات الإخراج فيه.
| الحقول | |
|---|---|
uri |
الحقل مطلوب. معرّف الموارد المنتظم (URI) لخدمة Google Cloud Storage |
GcsSource
موقع Google Cloud Storage الذي سيتم قراءة ملف الإدخال منه.
| الحقول | |
|---|---|
uri |
الحقل مطلوب. معرّف الموارد المنتظم (URI) لعنصر Google Cloud Storage بالتنسيق |
InjectedSolutionConstraint
حلّ تم إدراجه في الطلب يتضمّن معلومات عن الزيارات التي يجب تقييدها وكيفية تقييدها
| الحقول | |
|---|---|
routes[] |
مسارات الحلّ المطلوب إضافته قد يتم حذف بعض المسارات من الحل الأصلي. يجب أن تستوفي المسارات والشحنات التي تم تخطّيها افتراضات الصلاحية الأساسية المدرَجة في |
skipped_shipments[] |
تم تخطّي شحنات الحلّ المطلوب إضافته. وقد يتم حذف بعضها من الحل الأصلي. الاطّلاع على حقل |
constraint_relaxations[] |
بالنسبة إلى صفر أو أكثر من مجموعات المركبات، تحدّد هذه السمة متى يتم تخفيف القيود ومقدار التخفيف. إذا كان هذا الحقل فارغًا، يتم فرض قيود كاملة على جميع مسارات المركبات غير الفارغة. |
ConstraintRelaxation
بالنسبة إلى مجموعة من المركبات، يحدّد هذا الحقل الحدّ الأدنى الذي سيتم عنده تخفيف القيود المفروضة على الزيارات ومستوى التخفيف. يجب تخطّي الشحنات المُدرَجة في الحقل skipped_shipment، أي لا يمكن تنفيذها.
| الحقول | |
|---|---|
relaxations[] |
جميع القيود التي سيتم تخفيفها على الزيارات في المسارات التي تتضمّن مركبات في |
vehicle_indices[] |
تحدّد هذه السمة فهارس المركبات التي ينطبق عليها قيد الزيارة يتم ربط فهرس المركبات بالطريقة نفسها كما في |
استرخاء
إذا كانت relaxations فارغة، يكون وقت البدء وتسلسل جميع الزيارات في routes مقيّدًا بالكامل ولا يمكن إدراج أو إضافة زيارات جديدة إلى تلك المسارات. بالإضافة إلى ذلك، يتم تقييد وقتَي بدء وانتهاء المركبة في routes بشكل كامل، ما لم تكن المركبة فارغة (أي ليس لديها زيارات وتم ضبط used_if_route_is_empty على "خطأ" في النموذج).
تحدّد relaxations(i).level مستوى تخفيف القيود الذي يتم تطبيقه على الزيارة رقم j التي تستوفي ما يلي:
route.visits(j).start_time >= relaxations(i).threshold_timeوj + 1 >= relaxations(i).threshold_visit_count
وبالمثل، يتم تخفيف شرط بدء تشغيل المركبة إلى relaxations(i).level إذا استوفى ما يلي:
vehicle_start_time >= relaxations(i).threshold_timeو- يتم ضبط
relaxations(i).threshold_visit_count == 0علىrelaxations(i).levelإذا استوفى ما يلي: vehicle_end_time >= relaxations(i).threshold_timeوroute.visits_size() + 1 >= relaxations(i).threshold_visit_count
لتطبيق مستوى استرخاء إذا كانت الزيارة تستوفي threshold_visit_count أو threshold_time، أضِف relaxations مرّتين مع level نفسه: أحدهما مع ضبط threshold_visit_count فقط والآخر مع ضبط threshold_time فقط. إذا كانت إحدى الزيارات تستوفي شروط relaxations متعددة، يتم تطبيق المستوى الأقل تقييدًا. نتيجةً لذلك، يصبح مستوى الاسترخاء أعلى تدريجيًا من بداية الرحلة إلى نهايتها، أي أنّ مستوى الاسترخاء لا ينخفض مع تقدّم الرحلة.
يتم تقييد توقيت وتسلسل زيارات المسار التي لا تستوفي شروط الحد الأدنى لأي relaxations بشكل كامل، ولا يمكن إدراج أي زيارات في هذه التسلسلات. بالإضافة إلى ذلك، إذا لم يستوفِ بدء المركبة أو نهايتها شروط أي تخفيف، يتم تحديد الوقت، ما لم تكن المركبة فارغة.
| الحقول | |
|---|---|
level |
مستوى تخفيف القيود الذي ينطبق عند استيفاء الشروط عند |
threshold_time |
الوقت الذي يمكن فيه تطبيق التخفيف |
threshold_visit_count |
عدد الزيارات التي يمكن تطبيق التخفيف إذا كانت القيمة |
المستوى
تعرض هذه السمة مستويات تخفيف القيود المختلفة التي يتم تطبيقها على زيارة والزيارات اللاحقة عندما تستوفي شروط الحدّ الأدنى.
يتم ترتيب التعداد أدناه حسب درجة التخفيف المتزايدة.
| عمليات التعداد | |
|---|---|
LEVEL_UNSPECIFIED |
مستوى التخفيف التلقائي الضمني: لا يتم تخفيف أي قيود، أي أنّ جميع الزيارات تكون مقيّدة بالكامل. يجب عدم استخدام هذه القيمة بشكل صريح في |
RELAX_VISIT_TIMES_AFTER_THRESHOLD |
سيتم تخفيف القيود المفروضة على أوقات بدء الزيارات وأوقات بدء/انتهاء استخدام المركبات، ولكن ستظل كل زيارة مرتبطة بالمركبة نفسها ويجب الالتزام بتسلسل الزيارات: لا يمكن إدراج أي زيارة بينها أو قبلها. |
RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD |
كما هو الحال في RELAX_VISIT_TIMES_AFTER_THRESHOLD، ولكن يتم أيضًا تخفيف تسلسل الزيارات: لا يمكن إجراء الزيارات إلا بواسطة هذه المركبة، ولكن قد لا يتم إجراؤها. |
RELAX_ALL_AFTER_THRESHOLD |
كما هو الحال مع RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD، ولكن يتم أيضًا تخفيف القيود على المركبة: تكون الزيارات مجانية تمامًا في الوقت المحدد أو بعده، وقد لا يتم تنفيذها. |
InputConfig
تحديد إدخال لـ [BatchOptimizeTours][google.maps.routeoptimization.v1.RouteOptimizationService.BatchOptimizeTours]
| الحقول | |
|---|---|
data_format |
الحقل مطلوب. تنسيق البيانات المدخلة |
حقل الدمج source الحقل مطلوب. يمكن أن تكون source إحدى القيم التالية فقط: |
|
gcs_source |
موقع Google Cloud Storage يجب أن يكون هذا الملف عبارة عن عنصر واحد. |
الموقع الجغرافي
تتضمّن هذه السمة موقعًا جغرافيًا (نقطة جغرافية واتجاهًا اختياريًا).
| الحقول | |
|---|---|
lat_lng |
الإحداثيات الجغرافية لنقطة الطريق |
heading |
تمثّل هذه السمة اتجاه البوصلة المرتبط باتجاه حركة المرور. تُستخدَم هذه القيمة لتحديد جانب الطريق الذي يجب استخدامه للاستلام والتسليم. يمكن أن تتراوح قيم الاتجاه من 0 إلى 360، حيث يشير 0 إلى اتجاه الشمال تمامًا، ويشير 90 إلى اتجاه الشرق تمامًا، وما إلى ذلك. |
OptimizeToursLongRunningMetadata
لا يتضمّن هذا النوع أي حقول.
البيانات الوصفية للعمليات الخاصة بمكالمات OptimizeToursLongRunning
OptimizeToursRequest
طلب يتم تقديمه إلى أداة حلّ لتحسين الجولات، وتحدّد هذه الأداة نموذج الشحنة المطلوب حلّه بالإضافة إلى مَعلمات التحسين.
| الحقول | |
|---|---|
parent |
الحقل مطلوب. استهداف مشروع أو موقع جغرافي لإجراء مكالمة التنسيق:
في حال عدم تحديد موقع جغرافي، سيتم اختيار منطقة تلقائيًا. |
timeout |
في حال ضبط مهلة الاستجابة هذه، يعرض الخادم ردًا قبل انقضاء مدة المهلة أو قبل بلوغ الموعد النهائي الذي حدّده الخادم للطلبات المتزامنة، أيهما أقرب. بالنسبة إلى الطلبات غير المتزامنة، سينشئ الخادم حلاً (إذا أمكن ذلك) قبل انقضاء المهلة. |
model |
نموذج الشحن المطلوب حله |
solving_mode |
يكون وضع الحلّ تلقائيًا |
search_mode |
وضع البحث المستخدَم لحلّ الطلب |
injected_first_solution_routes[] |
توجيه خوارزمية التحسين للعثور على حلّ أوّلي مشابه لحلّ سابق يتم تقييد النموذج عند إنشاء الحلّ الأول. يتم ضِمنيًا تخطّي أي شحنات لم يتم تنفيذها على مسار في الحل الأول، ولكن يمكن تنفيذها في الحلول اللاحقة. يجب أن يستوفي الحل بعض افتراضات الصلاحية الأساسية:
إذا كان الحلّ الذي تم إدخاله غير ممكن، لن يتم بالضرورة عرض خطأ في التحقّق من الصحة، بل قد يتم عرض خطأ يشير إلى عدم الإمكانية. |
injected_solution_constraint |
تقييد خوارزمية التحسين للعثور على حل نهائي مشابه لحل سابق على سبيل المثال، يمكن استخدام ذلك لتجميد أجزاء من المسارات التي تم إكمالها أو التي سيتم إكمالها ولكن يجب عدم تعديلها. إذا كان الحلّ الذي تم إدخاله غير ممكن، لن يتم بالضرورة عرض خطأ في التحقّق من الصحة، بل قد يتم عرض خطأ يشير إلى عدم الإمكانية. |
refresh_details_routes[] |
في حال عدم توفّر مسار فارغ، سيتم إعادة تحميل المسارات المحدّدة بدون تعديل التسلسل الأساسي للزيارات أو أوقات السفر، وسيتم تعديل التفاصيل الأخرى فقط. لا يحلّ هذا الإجراء المشكلة في النموذج. اعتبارًا من 11/2020، لا يتم ملء خطوط متعدّدة الأضلاع إلا للمسارات غير الفارغة، ويجب أن تكون قيمة قد تكون حقول يجب عدم استخدام هذا الحقل مع ليس لـ |
interpret_injected_solutions_using_labels |
إذا كان ذلك صحيحًا:
ينطبق هذا التفسير على الحقول إذا كانت القيمة هي true، يجب ألا تظهر التصنيفات في الفئات التالية أكثر من مرة واحدة في فئتها:
إذا لم يتطابق قد تؤدي إزالة زيارات مسار أو مسارات كاملة من حلّ تم إدخاله إلى التأثير في القيود الضمنية، ما قد يؤدي إلى تغيير في الحلّ أو حدوث أخطاء في التحقّق من الصحة أو عدم إمكانية التنفيذ. ملاحظة: على المتّصل التأكّد من أنّ كل |
consider_road_traffic |
ضَع تقدير حركة المرور في الاعتبار عند احتساب الحقول |
populate_polylines |
في حال ضبطها على "صحيح"، ستتم تعبئة الخطوط المتعددة في الردود |
populate_transition_polylines |
إذا كانت القيمة "صحيح"، سيتم ملء الخطوط المتعددة ورموز المسار المميزة في الرد |
allow_large_deadline_despite_interruption_risk |
في حال ضبط هذه السياسة، يمكن أن يكون للطلب موعد نهائي (راجِع https://grpc.io/blog/deadlines) يصل إلى 60 دقيقة. وبخلاف ذلك، يكون الحدّ الأقصى للموعد النهائي 30 دقيقة فقط. يُرجى العِلم أنّ الطلبات التي تستغرق وقتًا طويلاً تكون أكثر عرضة للانقطاع (وإن كان احتمال حدوث ذلك ضئيلاً). |
use_geodesic_distances |
في حال ضبط القيمة على true، سيتم احتساب مسافات التنقّل باستخدام المسافات الجيوديسية بدلاً من مسافات "خرائط Google"، وسيتم احتساب مُدد التنقّل باستخدام المسافات الجيوديسية مع سرعة محدّدة بواسطة |
label |
تصنيف يمكن استخدامه لتحديد هذا الطلب، ويتم إرجاعه في |
geodesic_meters_per_second |
عندما تكون قيمة |
max_validation_errors |
يتم اقتطاع عدد أخطاء التحقّق من الصحة التي يتم عرضها. عادةً ما تكون هذه الأخطاء مرفقة بحِزمة بيانات الخطأ INVALID_ARGUMENT كتفاصيل الخطأ BadRequest (https://cloud.google.com/apis/design/errors#error_details)، ما لم يكن solving_mode=VALIDATE_ONLY: راجِع الحقل |
SearchMode
الوضع الذي يحدّد سلوك البحث، مع الموازنة بين وقت الاستجابة وجودة الحلّ. في جميع الأوضاع، يتم فرض الموعد النهائي للطلبات العالمية.
| عمليات التعداد | |
|---|---|
SEARCH_MODE_UNSPECIFIED |
وضع البحث غير المحدّد، وهو مكافئ RETURN_FAST. |
RETURN_FAST |
أوقِف البحث بعد العثور على الحلّ الأول المناسب. |
CONSUME_ALL_AVAILABLE_TIME |
استغِلّ كل الوقت المتاح للبحث عن حلول أفضل. |
SolvingMode
تحدّد هذه السمة الطريقة التي يجب أن يتعامل بها برنامج الحلّ مع الطلب. في جميع الأوضاع باستثناء VALIDATE_ONLY، إذا كان الطلب غير صالح، ستتلقّى الخطأ INVALID_REQUEST. اطّلِع على max_validation_errors لتحديد الحد الأقصى لعدد الأخطاء التي يتم عرضها.
| عمليات التعداد | |
|---|---|
DEFAULT_SOLVE |
حلّ النموذج قد يتم إصدار تحذيرات في [OptimizeToursResponse.validation_errors][google.cloud.optimization.v1.OptimizeToursResponse.validation_errors]. |
VALIDATE_ONLY |
يتحقّق هذا الخيار من صحة النموذج فقط بدون حلّه: يتم ملء أكبر عدد ممكن من OptimizeToursResponse.validation_errors. |
DETECT_SOME_INFEASIBLE_SHIPMENTS |
يتم ملء ملاحظة مهمة: لا يتم عرض جميع الشحنات غير الممكنة هنا، بل فقط تلك التي تم رصدها على أنّها غير ممكنة أثناء المعالجة المسبقة. |
TRANSFORM_AND_RETURN_REQUEST |
لا يعمل هذا الوضع إلا إذا لم يكن تجريبي: يمكنك الاطّلاع على https://developers.google.com/maps/tt/route-optimization/experimental/objectives/make-request لمزيد من التفاصيل. |
OptimizeToursResponse
الردّ بعد حلّ مشكلة تحسين الجولة التي تحتوي على المسارات التي تتبعها كل مركبة والشحنات التي تم تخطّيها والتكلفة الإجمالية للحلّ
| الحقول | |
|---|---|
routes[] |
المسارات المحسوبة لكل مركبة، ويتطابق المسار رقم i مع المركبة رقم i في النموذج. |
request_label |
نسخة من |
skipped_shipments[] |
قائمة بجميع الشحنات التي تم تخطّيها |
validation_errors[] |
قائمة بجميع أخطاء التحقّق التي تمكّنا من رصدها بشكل مستقل راجِع شرح "أخطاء متعدّدة" للرسالة |
processed_request |
في بعض الحالات، نعدّل الطلب الوارد قبل حلّه، أي نضيف تكاليف. إذا كانت قيمة solving_mode هي TRANSFORM_AND_RETURN_REQUEST، يتم عرض الطلب المعدَّل هنا. تجريبي: يمكنك الاطّلاع على https://developers.google.com/maps/tt/route-optimization/experimental/objectives/make-request لمزيد من التفاصيل. |
metrics |
مقاييس المدة والمسافة والاستخدام لهذا الحلّ |
المقاييس
مقاييس عامة، مجمّعة على مستوى جميع المسارات
| الحقول | |
|---|---|
aggregated_route_metrics |
يتم احتساب هذه النسبة بشكل مجمّع على مستوى المسارات. كل مقياس هو مجموع (أو الحد الأقصى، بالنسبة إلى عمليات التحميل) جميع حقول |
skipped_mandatory_shipment_count |
عدد الشحنات الإلزامية التي تم تخطّيها |
used_vehicle_count |
عدد المركبات المستخدَمة ملاحظة: إذا كان مسار المركبة فارغًا وكانت قيمة |
earliest_vehicle_start_time |
تمثّل هذه السمة أقرب وقت بدء لمركبة مستعمَلة، ويتم احتسابها كحدّ أدنى لجميع المركبات المستعمَلة من |
latest_vehicle_end_time |
تمثّل هذه السمة آخر وقت انتهاء لمركبة مستعمَلة، ويتم احتسابها كحدّ أقصى لجميع المركبات المستعمَلة من |
costs |
تكلفة الحلّ، مقسّمة حسب حقول الطلبات ذات الصلة بالتكلفة المفاتيح هي مسارات أولية، بالنسبة إلى OptimizeToursRequest للإدخال، مثل "model.shipments.pickups.cost"، والقيم هي التكلفة الإجمالية التي تم إنشاؤها بواسطة حقل التكلفة المقابل، ويتم تجميعها على مستوى الحلّ بأكمله. بعبارة أخرى، costs["model.shipments.pickups.cost"] هو مجموع كل تكاليف عمليات الاستلام في الحلّ. يتم هنا عرض جميع التكاليف المحدّدة في النموذج بالتفصيل، باستثناء التكاليف المتعلّقة بسمات الانتقال التي يتم عرضها بشكل مجمّع فقط اعتبارًا من 2022/01. |
total_cost |
التكلفة الإجمالية للحلّ مجموع كل القيم في خريطة التكاليف |
OptimizeToursUriMetadata
لا يتضمّن هذا النوع أي حقول.
البيانات الوصفية للعمليات الخاصة بمكالمات OptimizeToursUri
OptimizeToursUriRequest
طلب مستخدَم من خلال طريقة OptimizeToursUri.
| الحقول | |
|---|---|
parent |
الحقل مطلوب. استهداف مشروع أو موقع جغرافي لإجراء مكالمة التنسيق:
في حال عدم تحديد موقع جغرافي، سيتم اختيار منطقة تلقائيًا. |
input |
الحقل مطلوب. معرّف الموارد المنتظم (URI) لكائن Cloud Storage الذي يحتوي على |
output |
الحقل مطلوب. معرّف الموارد المنتظم (URI) لعنصر Cloud Storage الذي سيحتوي على |
OptimizeToursUriResponse
ردّ يعرضه الإجراء OptimizeToursUri.
| الحقول | |
|---|---|
output |
اختيارية: معرّف الموارد المنتظم (URI) لعنصر Cloud Storage الذي يحتوي على يمكن استخدام |
OptimizeToursValidationError
تصف هذه السمة خطأً أو تحذيرًا حدث أثناء التحقّق من صحة OptimizeToursRequest.
| الحقول | |
|---|---|
code |
يتم تحديد خطأ التحقّق من الصحة من خلال الزوج ( تقدّم الحقول التالية لهذا القسم مزيدًا من السياق حول الخطأ. أخطاء متعددة: عند حدوث أخطاء متعددة، تحاول عملية التحقّق عرض عدة أخطاء. وكما هو الحال مع المترجم، هذه عملية غير مثالية. ستكون بعض أخطاء التحقّق "خطيرة"، ما يعني أنّها ستوقف عملية التحقّق بأكملها. وينطبق ذلك على أخطاء الثبات: يجب أن يكون |
display_name |
الاسم المعروض للخطأ. |
fields[] |
قد يتضمّن سياق الخطأ 0 أو 1 (في معظم الأحيان) أو أكثر من الحقول. على سبيل المثال، يمكن الإشارة إلى عملية الاستلام الأولى للمركبة رقم 4 والشحنة رقم 2 على النحو التالي: يُرجى العِلم، مع ذلك، بأنّ عدد العناصر في |
error_message |
سلسلة يمكن لشخص عادي قراءتها تصف الخطأ. هناك تطابق بنسبة 1:1 بين الثبات: غير ثابتة: قد تتغيّر رسالة الخطأ المرتبطة برمز |
offending_values |
قد يحتوي على قيم الحقول. هذا الخيار غير متاح دائمًا. يجب عدم الاعتماد عليه إطلاقًا واستخدامه فقط لتصحيح أخطاء النموذج يدويًا. |
FieldReference
تحدّد هذه السمة سياقًا لخطأ التحقّق. يشير FieldReference دائمًا إلى حقل معيّن في هذا الملف ويتّبع البنية الهرمية نفسها. على سبيل المثال، يمكننا تحديد العنصر رقم 2 من start_time_windows للمركبة رقم 5 باستخدام:
name: "vehicles" index: 5 sub_field { name: "end_time_windows" index: 2 }
ومع ذلك، نحذف الكيانات ذات المستوى الأعلى، مثل OptimizeToursRequest أو ShipmentModel، لتجنُّب الازدحام في الرسالة.
| الحقول | |
|---|---|
name |
اسم الحقل، مثل "vehicles". |
sub_field |
حقل فرعي متداخل بشكل متكرر، إذا لزم الأمر |
حقل الدمج يمكن أن تكون |
|
index |
فهرس الحقل إذا كان متكرّرًا |
key |
مفتاح إذا كان الحقل خريطة |
OutputConfig
تحدِّد هذه السمة وجهة لنتائج [BatchOptimizeTours][google.maps.routeoptimization.v1.RouteOptimizationService.BatchOptimizeTours].
| الحقول | |
|---|---|
data_format |
الحقل مطلوب. تنسيق بيانات الإخراج |
حقل الدمج destination الحقل مطلوب. يمكن أن تكون destination إحدى القيم التالية فقط: |
|
gcs_destination |
موقع Google Cloud Storage الذي سيتم كتابة الإخراج فيه. |
RouteModifiers
تتضمّن هذه السمة مجموعة من الشروط الاختيارية التي يجب استيفاؤها عند احتساب مسارات المركبات. يشبه ذلك RouteModifiers في واجهة برمجة التطبيقات "المسارات المفضّلة" من Google Maps Platform. يمكنك الاطّلاع على: https://developers.google.com/maps/documentation/routes/reference/rest/v2/RouteModifiers.
| الحقول | |
|---|---|
avoid_tolls |
تحدّد هذه السمة ما إذا كان يجب تجنُّب الطرق ذات رسوم العبور حيثما كان ذلك معقولاً. سيتم منح الأولوية للمسارات التي لا تحتوي على طرق برسوم عبور. لا ينطبق هذا الإعداد إلا على وسائل النقل الآلية. |
avoid_highways |
تحدّد هذه السمة ما إذا كان يجب تجنُّب الطرق السريعة حيثما كان ذلك معقولاً. سيتم منح الأولوية للمسارات التي لا تحتوي على طرق سريعة. لا ينطبق هذا الإعداد إلا على وسائل النقل الآلية. |
avoid_ferries |
تحدّد هذه السمة ما إذا كان يجب تجنُّب العبّارات حيثما كان ذلك معقولاً. سيتم منح الأولوية للمسارات التي لا تتضمّن السفر بالعبّارات. لا ينطبق هذا الإعداد إلا على وسائل النقل الآلية. |
avoid_indoor |
اختيارية: تحدّد هذه السمة ما إذا كان يجب تجنُّب التنقّل في الأماكن المغلقة حيثما كان ذلك منطقيًا. سيتم منح الأولوية للمسارات التي لا تتضمّن ميزة "التنقّل في الأماكن المغلقة". ينطبق ذلك على وضع التنقّل |
الشحن
شحن سلعة واحدة من عملية استلامها إلى عملية تسليمها لكي يتم اعتبار الشحنة على أنّها تمّت، يجب أن تزور مركبة فريدة أحد مواقع الاستلام (ويتم خفض السعات الاحتياطية وفقًا لذلك)، ثم تزور أحد مواقع التسليم في وقت لاحق (وبالتالي يتم إعادة زيادة السعات الاحتياطية وفقًا لذلك).
| الحقول | |
|---|---|
display_name |
الاسم المعروض الذي يحدّده المستخدم للشحنة يمكن أن يصل طوله إلى 63 حرفًا ويمكن أن يستخدم أحرف UTF-8. |
pickups[] |
مجموعة من البدائل لاستلام الشحنة. في حال عدم تحديد ذلك، يجب أن تتوقف المركبة في موقع جغرافي يتوافق مع عمليات التسليم. |
deliveries[] |
مجموعة من بدائل التسليم المرتبطة بالشحنة في حال عدم تحديد هذه السمة، يجب أن تتوقف المركبة في موقع جغرافي يتوافق مع نقاط الاستلام. |
load_demands |
متطلبات حمولة الشحنة (مثل الوزن والحجم وعدد المنصات وما إلى ذلك) يجب أن تكون المفاتيح في الخريطة معرّفات تصف نوع الحمل المقابل، ويُفضّل أن تتضمّن أيضًا الوحدات. على سبيل المثال: "weight_kg" و"volume_gallons" و"pallet_count" وما إلى ذلك. إذا لم يظهر مفتاح معيّن في الخريطة، سيتم اعتبار الحمولة المقابلة فارغة. |
allowed_vehicle_indices[] |
مجموعة المركبات التي يمكنها تنفيذ عملية الشحن هذه في حال تركها فارغة، يمكن لجميع المركبات تنفيذها. يتم عرض المركبات حسب فهرسها في قائمة |
costs_per_vehicle[] |
تحدّد هذه السمة التكلفة التي يتم تكبّدها عند تسليم هذه الشحنة بواسطة كل مركبة. في حال تحديدها، يجب أن تتضمّن أحد الخيارَين التاليَين:
يجب أن تكون هذه التكاليف بالوحدة نفسها التي تستخدمها السمة |
costs_per_vehicle_indices[] |
فهارس المركبات التي تنطبق عليها |
pickup_to_delivery_absolute_detour_limit |
تحدّد هذه السمة الحدّ الأقصى المطلق لوقت التوقف مقارنةً بأقصر مسار من موقع الاستلام إلى موقع التسليم. في حال تحديدها، يجب أن تكون غير سالبة، ويجب أن تتضمّن الشحنة عملية استلام وعملية تسليم واحدة على الأقل. على سبيل المثال، لنفترض أنّ t هو أقصر وقت يستغرقه الانتقال من خيار الاستلام البديل المحدّد إلى خيار التسليم البديل المحدّد. بعد ذلك، يؤدي ضبط إذا تم تحديد كل من الحدود النسبية والمطلقة في الشحنة نفسها، سيتم استخدام الحد الأكثر تقييدًا لكل زوج ممكن من عمليات الاستلام/التسليم. اعتبارًا من 10/2017، لا يمكن استخدام طرق بديلة إلا عندما لا تعتمد مدة الرحلة على المركبات. |
pickup_to_delivery_time_limit |
تحدّد هذه السمة الحد الأقصى للمدة الزمنية من بداية استلام الشحنة إلى بداية تسليمها. في حال تحديدها، يجب أن تكون غير سالبة، ويجب أن تتضمّن الشحنة عملية استلام وعملية تسليم واحدة على الأقل. ولا يعتمد ذلك على البدائل المحدّدة للاستلام والتسليم، ولا على سرعة المركبة. يمكن تحديد ذلك إلى جانب قيود الحد الأقصى للانحراف عن المسار: سيلتزم الحلّ بكلتا المواصفات. |
shipment_type |
سلسلة غير فارغة تحدّد "نوع" هذه الشحنة. يمكن استخدام هذه الميزة لتحديد حالات عدم التوافق أو المتطلبات بين يختلف عن |
label |
تحدّد هذه السمة تصنيفًا لهذه الشحنة. يتم عرض هذا التصنيف في الردّ في |
ignore |
إذا كانت القيمة صحيحة، تخطَّ هذه الشحنة، ولكن لا تطبِّق سيؤدي تجاهل شحنة إلى حدوث خطأ في التحقّق من الصحة عند توفّر أي يُسمح بتجاهل شحنة يتم تنفيذها في |
penalty_cost |
في حال عدم إكمال الشحنة، تتم إضافة هذه الغرامة إلى التكلفة الإجمالية للمسارات. يُعدّ الشحن مكتملاً إذا تم الانتقال إلى أحد بدائل الاستلام والتسليم. يمكن التعبير عن التكلفة بالوحدة نفسها المستخدَمة في جميع الحقول الأخرى ذات الصلة بالتكلفة في النموذج، ويجب أن تكون موجبة. ملاحظة مهمة: إذا لم يتم تحديد هذه الغرامة، سيتم اعتبارها غير محدودة، أي يجب إكمال الشحنة. |
pickup_to_delivery_relative_detour_limit |
تحدّد هذه السمة الحدّ الأقصى لوقت الانحراف النسبي مقارنةً بأقصر مسار من موقع الاستلام إلى موقع التسليم. في حال تحديدها، يجب أن تكون غير سالبة، ويجب أن تتضمّن الشحنة عملية استلام وعملية تسليم واحدة على الأقل. على سبيل المثال، لنفترض أنّ t هو أقصر وقت يستغرقه الانتقال من خيار الاستلام البديل المحدّد إلى خيار التسليم البديل المحدّد. بعد ذلك، يؤدي ضبط إذا تم تحديد كل من الحدود النسبية والمطلقة في الشحنة نفسها، سيتم استخدام الحد الأكثر تقييدًا لكل زوج ممكن من عمليات الاستلام/التسليم. اعتبارًا من 10/2017، لا يمكن استخدام طرق بديلة إلا عندما لا تعتمد مدة الرحلة على المركبات. |
التحميل
عند إجراء زيارة، قد تتم إضافة مبلغ محدّد مسبقًا إلى حمولة المركبة إذا كانت عملية استلام، أو طرحه إذا كانت عملية توصيل. تحدّد هذه الرسالة هذا المبلغ. يمكنك الاطّلاع على load_demands.
| الحقول | |
|---|---|
amount |
مقدار اختلاف حمولة المركبة التي تجري الزيارة المعنية بما أنّها عدد صحيح، ننصح المستخدمين باختيار وحدة مناسبة لتجنُّب فقدان الدقة. يجب أن تكون القيمة ≥ 0. |
VisitRequest
طلب زيارة يمكن إجراؤها بواسطة مركبة: يتضمّن الموقع الجغرافي (أو موقعَين جغرافيَين، كما هو موضّح أدناه) وأوقات العمل ممثّلة بنطاقات زمنية، ومدة الخدمة (الوقت الذي تستغرقه المركبة بعد وصولها لاستلام السلع أو تسليمها).
| الحقول | |
|---|---|
arrival_location |
الموقع الجغرافي الذي تصل إليه المركبة عند تنفيذ |
arrival_waypoint |
نقطة الطريق التي تصل إليها المركبة عند تنفيذ |
departure_location |
الموقع الجغرافي الذي تغادر منه المركبة بعد إكمال هذه |
departure_waypoint |
نقطة المرور التي تغادر منها المركبة بعد إكمال هذه |
tags[] |
تحدّد هذه السمة العلامات المرفقة بطلب الزيارة. لا يُسمح باستخدام سلاسل فارغة أو مكرّرة. |
time_windows[] |
فترات زمنية تحدّد وقت الوصول إلى موقع جغرافي. يُرجى العِلم أنّه يمكن أن تغادر المركبة خارج فترة وقت الوصول، أي أنّه ليس من الضروري أن يكون وقت الوصول + المدة داخل فترة زمنية. قد يؤدي ذلك إلى وقت انتظار إذا وصلت المركبة قبل يشير عدم توفّر يجب أن تكون الفترات الزمنية منفصلة، أي يجب ألا تتداخل أي فترة زمنية مع فترة أخرى أو تكون مجاورة لها، ويجب أن تكون مرتّبة بترتيب تصاعدي. لا يمكن ضبط |
duration |
مدة الزيارة، أي الوقت الذي استغرقته المركبة بين الوصول والمغادرة (سيتم إضافتها إلى وقت الانتظار المحتمل؛ يُرجى الاطّلاع على |
cost |
تكلفة تقديم خدمة طلب الزيارة هذا على مسار مركبة يمكن استخدام هذه السمة لدفع تكاليف مختلفة لكل خيار بديل لاستلام الشحنة أو توصيلها. يجب أن تكون هذه التكلفة بالوحدة نفسها التي تستخدمها السمة |
load_demands |
حمِّل طلبات الزيارة هذه. هذا الحقل يشبه الحقل |
visit_types[] |
تحدّد هذه السمة أنواع الزيارات. يمكن استخدام هذه المعلومات لتحديد الوقت الإضافي المطلوب لمركبة لإكمال هذه الزيارة (راجِع لا يمكن أن يظهر النوع إلا مرة واحدة. |
label |
تحدّد هذه السمة تصنيفًا لـ |
avoid_u_turns |
تحدّد هذه السمة ما إذا كان يجب تجنُّب المنعطفات على شكل حرف U في مسارات القيادة في هذا الموقع الجغرافي. يتم بذل أقصى جهد لتجنُّب المنعطفات على شكل حرف U، ولكن لا يمكن ضمان تجنُّبها بالكامل. هذه ميزة تجريبية وقد يتغير سلوكها. تجريبية: يُرجى الاطّلاع على https://developers.google.com/maps/tt/route-optimization/experimental/u-turn-avoidance/make-request لمزيد من التفاصيل. |
ShipmentModel
يحتوي نموذج الشحن على مجموعة من عمليات الشحن التي يجب أن تنفّذها مجموعة من المركبات، مع تقليل التكلفة الإجمالية إلى الحدّ الأدنى، وهي مجموع ما يلي:
- تكلفة توجيه المركبات (مجموع التكلفة لكل الوقت الإجمالي والتكلفة لكل وقت السفر والتكلفة الثابتة لجميع المركبات)
- عقوبات الشحن غير المنفَّذ
- تكلفة المدة الإجمالية لعمليات الشحن
| الحقول | |
|---|---|
shipments[] |
مجموعة من الشحنات التي يجب تنفيذها في النموذج. |
vehicles[] |
مجموعة من المركبات التي يمكن استخدامها لإجراء زيارات |
objectives[] |
مجموعة الأهداف لهذا النموذج، والتي سنحوّلها إلى تكاليف. إذا لم يكن فارغًا، يجب أن يكون نموذج الإدخال بلا تكلفة. للحصول على الطلب المعدَّل، يُرجى استخدام تجريبي: يمكنك الاطّلاع على https://developers.google.com/maps/tt/route-optimization/experimental/objectives/make-request لمزيد من التفاصيل. |
global_start_time |
وقت البدء والانتهاء العام للنموذج: لا يمكن اعتبار أي أوقات خارج هذا النطاق صالحة. يجب أن يكون النطاق الزمني للنموذج أقل من عام واحد، أي يجب أن يكون الفرق بين عند استخدام حقول |
global_end_time |
في حال عدم ضبطها، يتم استخدام 00:00:00 بالتوقيت العالمي المتفق عليه في 1 كانون الثاني (يناير) 1971 (أي الثواني: 31536000، النانو ثانية: 0) كقيمة تلقائية. |
global_duration_cost_per_hour |
"المدة الإجمالية" للخطة العامة هي الفرق بين أقرب وقت بدء فعلي وأبعد وقت انتهاء فعلي لجميع المركبات. يمكن للمستخدمين تحديد تكلفة لكل ساعة لتلك الكمية لمحاولة تحسين وقت إكمال المهمة في أقرب وقت ممكن، على سبيل المثال. يجب أن تكون هذه التكلفة بالوحدة نفسها التي تستخدمها السمة |
duration_distance_matrices[] |
تحدّد هذه السمة مصفوفات المدة والمسافة المستخدَمة في النموذج. إذا كان هذا الحقل فارغًا، سيتم استخدام "خرائط Google" أو المسافات الجيوديسية بدلاً من ذلك، وذلك استنادًا إلى قيمة الحقل أمثلة على الاستخدام:
|
duration_distance_matrix_src_tags[] |
علامات تحدّد مصادر مصفوفات المدة والمسافة، وتحدّد تتطابق العلامات مع |
duration_distance_matrix_dst_tags[] |
علامات تحدّد وجهات مصفوفات المدة والمسافة، تتطابق العلامات مع |
transition_attributes[] |
تمت إضافة سمات الانتقال إلى النموذج. |
shipment_type_incompatibilities[] |
مجموعات من shipment_types غير متوافقة (راجِع |
shipment_type_requirements[] |
مجموعات متطلبات |
precedence_rules[] |
مجموعة من قواعد الأولوية التي يجب فرضها في النموذج ملاحظة مهمة: يؤدي استخدام قواعد الأولوية إلى الحدّ من حجم المشكلة التي يمكن تحسينها. قد يتم رفض الطلبات التي تستخدم قواعد الأولوية والتي تتضمّن عمليات شحن متعددة. |
max_active_vehicles |
تفرض هذه السمة الحدّ الأقصى لعدد المركبات النشطة. تكون المركبة نشطة إذا نفّذ مسارها شحنة واحدة على الأقل. يمكن استخدام هذه السمة للحدّ من عدد المسارات في حال كان عدد السائقين أقل من عدد المركبات وكانت أسطول المركبات غير متجانس. سيختار التحسين بعد ذلك أفضل مجموعة فرعية من المركبات لاستخدامها. يجب أن تكون موجبة تمامًا. |
DurationDistanceMatrix
تحدّد هذه السمة مصفوفة المدة والمسافة من مواقع بدء الزيارة والمركبة إلى مواقع انتهاء الزيارة والمركبة.
| الحقول | |
|---|---|
rows[] |
تحدّد هذه السمة صفوف مصفوفة المدة والمسافة. يجب أن يحتوي على عدد العناصر نفسه الموجود في |
vehicle_start_tag |
علامة تحدّد المركبات التي تنطبق عليها مصفوفة المدة والمسافة هذه. إذا كان هذا الحقل فارغًا، ينطبق ذلك على جميع المركبات، ولا يمكن أن تكون هناك سوى مصفوفة واحدة. يجب أن يتطابق كل بدء تشغيل مركبة مع مصفوفة واحدة بالضبط، أي يجب أن يتطابق أحد حقول يجب أن يكون لكل مصفوفة |
الصف
تحدّد هذه السمة صفًا من مصفوفة المدة والمسافة.
| الحقول | |
|---|---|
durations[] |
قيم المدة لصف معيّن يجب أن يحتوي على عدد العناصر نفسه الموجود في |
meters[] |
قيم المسافة لصف معيّن إذا لم تكن هناك تكاليف أو قيود تشير إلى المسافات في النموذج، يمكن ترك هذا الحقل فارغًا، وإلا يجب أن يحتوي على عدد العناصر نفسه الذي يحتويه |
الهدف
تحلّ الأهداف محلّ نموذج التكلفة بالكامل، وبالتالي فهي غير متوافقة مع التكاليف المحدّدة مسبقًا. يرتبط كل هدف بعدد من التكاليف المحدّدة مسبقًا، مثل المركبات أو الشحنات أو سمات الانتقال.
تجريبي: يمكنك الاطّلاع على https://developers.google.com/maps/tt/route-optimization/experimental/objectives/make-request لمزيد من التفاصيل.
| الحقول | |
|---|---|
type |
نوع الهدف. |
weight |
مقدار أهمية هذا الهدف مقارنةً بالأهداف الأخرى يمكن أن يكون هذا أي رقم غير سالب، ولا يلزم أن يكون مجموع الأوزان 1. تكون الأوزان تلقائيًا 1.0. |
النوع
نوع الهدف الذي سيتم ربطه بمجموعة من التكاليف.
| عمليات التعداد | |
|---|---|
DEFAULT |
سيتم استخدام مجموعة تلقائية من التكاليف لضمان التوصّل إلى حلّ معقول. ملاحظة: يمكن استخدام هذا الهدف بمفرده، ولكن سيتم أيضًا إضافته دائمًا بالوزن 1.0، كأساس، إلى الأهداف التي يحدّدها المستخدم، إذا لم يكن موجودًا من قبل. |
MIN_DISTANCE |
أهداف "الحدّ الأدنى" تقليل إجمالي المسافة المقطوعة |
MIN_WORKING_TIME |
تقليل إجمالي وقت العمل، الذي يتم جمعه على مستوى جميع المركبات |
MIN_TRAVEL_TIME |
كما هو موضّح أعلاه، ولكن مع التركيز على مدة الرحلة فقط. |
MIN_NUM_VEHICLES |
تقليل عدد المركبات المستخدَمة |
PrecedenceRule
قاعدة الأولوية بين حدثَين (كل حدث هو استلام شحنة أو تسليمها): يجب أن يبدأ الحدث "الثاني" بعد offset_duration على الأقل من بدء الحدث "الأول".
يمكن أن تشير عدة أسبقيات إلى الأحداث نفسها (أو الأحداث ذات الصلة)، مثل: "يتم استلام الطلب B بعد تسليم الطلب A" و "يتم استلام الطلب C بعد استلام الطلب B".
بالإضافة إلى ذلك، لا تسري الأولوية إلا عند تنفيذ الشحنتَين، وإلا سيتم تجاهلها.
| الحقول | |
|---|---|
first_is_delivery |
تشير إلى ما إذا كان الحدث "الأول" هو حدث تسليم. |
second_is_delivery |
تشير إلى ما إذا كان الحدث "الثاني" هو حدث تسليم. |
offset_duration |
الإزاحة بين الحدث "الأول" والحدث "الثاني". ويمكن أن تكون سلبية. |
first_index |
فهرس الشحنة للحدث "الأول". يجب تحديد هذا الحقل. |
second_index |
فهرس الشحنة للحدث "الثاني" يجب تحديد هذا الحقل. |
ShipmentRoute
يمكن تقسيم مسار المركبة على محور الوقت على النحو التالي (نفترض أنّ هناك n زيارة):
| | | | | T[2], | | |
| Transition | Visit #0 | | | V[2], | | |
| #0 | aka | T[1] | V[1] | ... | V[n-1] | T[n] |
| aka T[0] | V[0] | | | V[n-2],| | |
| | | | | T[n-1] | | |
^ ^ ^ ^ ^ ^ ^ ^
vehicle V[0].start V[0].end V[1]. V[1]. V[n]. V[n]. vehicle
start (arrival) (departure) start end start end end
يُرجى العِلم بأنّنا نفرّق بين ما يلي:
- "الأحداث المحدّدة بوقت"، مثل بدء المركبة وإيقافها وبدء كل زيارة وانتهائها (المعروفة أيضًا باسم الوصول والمغادرة) تحدث هذه الأحداث في ثانية معيّنة.
- "الفواصل الزمنية"، مثل الزيارات نفسها والانتقال بين الزيارات على الرغم من أنّ الفواصل الزمنية قد تكون أحيانًا صفرية المدة، أي تبدأ وتنتهي في الثانية نفسها، إلا أنّها غالبًا ما تكون ذات مدة موجبة.
الثوابت:
- إذا كانت هناك n زيارة، سيكون هناك n+1 عملية انتقال.
- يتم دائمًا تضمين زيارة في عملية انتقال قبلها (الفهرس نفسه) وعملية انتقال بعدها (الفهرس + 1).
- يتبع بدء تشغيل المركبة دائمًا الانتقال رقم 0.
- يسبق نهاية المركبة دائمًا الانتقال رقم n.
عند التكبير، إليك ما يحدث أثناء Transition وVisit:
---+-------------------------------------+-----------------------------+-->
| TRANSITION[i] | VISIT[i] |
| | |
| * TRAVEL: the vehicle moves from | PERFORM the visit: |
| VISIT[i-1].departure_location to | |
| VISIT[i].arrival_location, which | * Spend some time: |
| takes a given travel duration | the "visit duration". |
| and distance | |
| | * Load or unload |
| * BREAKS: the driver may have | some quantities from the |
| breaks (e.g. lunch break). | vehicle: the "demand". |
| | |
| * WAIT: the driver/vehicle does | |
| nothing. This can happen for | |
| many reasons, for example when | |
| the vehicle reaches the next | |
| event's destination before the | |
| start of its time window | |
| | |
| * DELAY: *right before* the next | |
| arrival. E.g. the vehicle and/or | |
| driver spends time unloading. | |
| | |
---+-------------------------------------+-----------------------------+-->
^ ^ ^
V[i-1].end V[i].start V[i].end
أخيرًا، إليك كيفية ترتيب TRAVEL وBREAKS وDELAY وWAIT أثناء عملية الانتقال.
- ولا تتداخل مع بعضها.
- يجب أن يكون التأخير فريدًا ويجب أن يكون فترة زمنية متجاورة قبل الزيارة التالية مباشرةً (أو نهاية الرحلة). وبالتالي، يكفي معرفة مدة التأخير لمعرفة وقت بدئه وانتهائه.
- فترات الاستراحة هي فترات زمنية متجاورة وغير متداخلة. يحدّد الردّ وقت بدء كل استراحة ومدتها.
- يمكن "مقاطعة" حالتي TRAVEL وWAIT: يمكن مقاطعتهما عدة مرات خلال هذه الفترة الانتقالية. يمكن للعملاء افتراض أنّ السفر سيحدث "في أقرب وقت ممكن" وأنّ "الانتظار" سيشغل الوقت المتبقي.
مثال (معقّد):
TRANSITION[i]
--++-----+-----------------------------------------------------------++-->
|| | | | | | | ||
|| T | B | T | | B | | D ||
|| r | r | r | W | r | W | e ||
|| a | e | a | a | e | a | l ||
|| v | a | v | i | a | i | a ||
|| e | k | e | t | k | t | y ||
|| l | | l | | | | ||
|| | | | | | | ||
--++-----------------------------------------------------------------++-->
| الحقول | |
|---|---|
vehicle_index |
المركبة التي تسلك المسار، ويتم تحديدها من خلال الفهرس في المصدر |
vehicle_label |
تصنيف المركبة التي تسلك هذا المسار، ويساوي |
vehicle_start_time |
الوقت الذي تبدأ فيه المركبة مسارها |
vehicle_end_time |
الوقت الذي تنهي فيه المركبة مسارها |
visits[] |
تسلسل مرتّب من الزيارات يمثّل مسارًا. تمثّل visits[i] الزيارة رقم i في المسار. إذا كان هذا الحقل فارغًا، سيتم اعتبار المركبة غير مستخدَمة. |
transitions[] |
قائمة مرتّبة بعمليات الانتقال للمسار. |
has_traffic_infeasibilities |
عند ضبط من المرجّح أن يكون موعد الوصول إلى next_visit متأخرًا عن الفترة الزمنية الحالية بسبب زيادة تقدير وقت السفر |
route_polyline |
تمثيل الخطوط المتعددة المشفّرة للمسار. لا تتم تعبئة هذا الحقل إلا إذا تم ضبط |
breaks[] |
فترات الاستراحة المجدوَلة للمركبة التي تسلك هذا المسار يمثّل التسلسل |
metrics |
مقاييس المدة والمسافة والحِمل لهذا المسار يتم جمع حقول |
vehicle_fullness |
حقل تجريبي: قد يتغيّر سلوك هذا الحقل أو يتوقف عن الوجود في المستقبل. |
route_costs |
تكلفة المسار، مقسّمة حسب حقول الطلبات ذات الصلة بالتكلفة المفاتيح هي مسارات أولية، بالنسبة إلى OptimizeToursRequest للإدخال، مثل "model.shipments.pickups.cost"، والقيم هي التكلفة الإجمالية التي تم إنشاؤها بواسطة حقل التكلفة المقابل، ويتم تجميعها على مستوى المسار بأكمله. بعبارة أخرى، costs["model.shipments.pickups.cost"] هو مجموع كل تكاليف عمليات الاستلام على طول المسار. يتم هنا عرض جميع التكاليف المحدّدة في النموذج بالتفصيل، باستثناء التكاليف المتعلّقة بسمات الانتقال التي يتم عرضها بشكل مجمّع فقط اعتبارًا من 2022/01. |
route_total_cost |
تمثّل هذه السمة التكلفة الإجمالية للمسار. مجموع كل التكاليف في خريطة التكاليف |
استراحة
بيانات تمثّل تنفيذ استراحة
| الحقول | |
|---|---|
start_time |
وقت بدء الاستراحة |
duration |
مدة الاستراحة |
EncodedPolyline
تمثيل مشفّر لخط متعدد الأضلاع يمكنك الاطّلاع على مزيد من المعلومات حول ترميز الخطوط المتعددة على الرابطين التاليين: https://developers.google.com/maps/documentation/utilities/polylinealgorithm https://developers.google.com/maps/documentation/javascript/reference/geometry#encoding.
| الحقول | |
|---|---|
points |
سلسلة تمثّل النقاط المرمّزة للخط المتعدد الأضلاع. |
الانتقال
الانتقال بين حدثَين على المسار اطّلِع على وصف ShipmentRoute.
إذا لم تكن المركبة مزوّدة بجهاز start_location و/أو end_location، تكون مقاييس التنقّل ذات الصلة صفرًا.
| الحقول | |
|---|---|
travel_duration |
مدة السفر خلال هذه الفترة الانتقالية |
travel_distance_meters |
المسافة المقطوعة أثناء الانتقال |
traffic_info_unavailable |
عند طلب معلومات حركة المرور من خلال |
delay_duration |
مجموع مدة التأخير المطبَّقة على عملية النقل هذه إذا كان هناك أي تأخير، يبدأ التأخير قبل |
break_duration |
مجموع مدة الفواصل الإعلانية التي تحدث أثناء هذا الانتقال، إن وُجدت. يتم تخزين تفاصيل حول وقت بدء كل استراحة ومدتها في |
wait_duration |
الوقت الذي تم قضاؤه في الانتظار خلال هذا الانتقال تتوافق مدة الانتظار مع وقت عدم النشاط ولا تشمل وقت الاستراحة. يُرجى العِلم أيضًا أنّ مدة الانتظار هذه قد يتم تقسيمها إلى عدة فواصل زمنية غير متجاورة. |
total_duration |
إجمالي مدة الانتقال، ويتم توفيرها لتسهيل الأمر. وهي تساوي:
|
start_time |
وقت بدء هذا الانتقال |
route_polyline |
تمثيل الخطوط المتعددة المشفّرة للمسار الذي تم اتّباعه أثناء الانتقال لا تتم تعبئة هذا الحقل إلا إذا تم ضبط |
route_token |
النتائج فقط. رمز مميّز غير شفاف يمكن تمريره إلى Navigation SDK لإعادة إنشاء المسار أثناء التنقّل، وفي حال إعادة التوجيه، يتم الالتزام بالنية الأصلية عند إنشاء المسار. تعامَل مع الرمز المميز هذا ككائن ثنائي كبير غير شفاف. لا تقارِن قيمتها بين الطلبات لأنّ قيمتها قد تتغيّر حتى إذا كانت الخدمة تعرض المسار نفسه بالضبط. لا تتم تعبئة هذا الحقل إلا إذا تم ضبط |
vehicle_loads |
حمولة المركبة خلال عملية النقل هذه، لكل نوع يظهر في عمليات التحميل أثناء عملية النقل الأولى هي عمليات التحميل الأولية لمسار المركبة. بعد ذلك، وبعد كل زيارة، تتم إضافة |
VehicleLoad
تعرض هذه السمة حمولة المركبة الفعلية في نقطة معيّنة على طول المسار، وذلك لنوع معيّن (راجِع Transition.vehicle_loads).
| الحقول | |
|---|---|
amount |
تعرض هذه السمة مقدار الحمولة على المركبة، للنوع المحدّد. عادةً ما يتم تحديد وحدة التحميل حسب النوع. يمكنك الاطّلاع على |
زيارة
زيارة تم إجراؤها أثناء مسار تتطابق هذه الزيارة مع عملية استلام أو توصيل Shipment.
| الحقول | |
|---|---|
shipment_index |
فهرس الحقل |
is_pickup |
إذا كانت القيمة صحيحة، تتوافق الزيارة مع استلام |
visit_request_index |
فهرس |
start_time |
الوقت الذي تبدأ فيه الزيارة يُرجى العِلم أنّ المركبة قد تصل إلى الموقع الجغرافي للزيارة قبل هذا الوقت. تتطابق الأوقات مع |
load_demands |
إجمالي طلب تحميل الزيارات كمجموع الشحنة وطلب الزيارة |
detour |
وقت إضافي للانحراف عن المسار بسبب الشحنات التي تمّت زيارتها على المسار قبل الزيارة ووقت الانتظار المحتمل الناتج عن الفترات الزمنية. إذا كانت الزيارة عبارة عن عملية تسليم، يتم احتساب الانحراف عن المسار من زيارة الاستلام المقابلة ويكون مساويًا لما يلي: بخلاف ذلك، يتم احتسابه من المركبة |
shipment_label |
نسخة من |
visit_label |
نسخة من |
injected_solution_location_token |
رمز مميز غير شفاف يمثّل معلومات حول الموقع الجغرافي للزيارة. قد تتم تعبئة هذا الحقل في زيارات مسارات النتائج عندما تكون قيمة تجريبية: يُرجى الاطّلاع على https://developers.google.com/maps/tt/route-optimization/experimental/u-turn-avoidance/make-request لمزيد من التفاصيل. |
ShipmentTypeIncompatibility
تحدّد هذه السمة حالات عدم التوافق بين الشحنات استنادًا إلى shipment_type. يتم حظر ظهور الشحنات غير المتوافقة على المسار نفسه استنادًا إلى وضع عدم التوافق.
| الحقول | |
|---|---|
types[] |
قائمة بالأنواع غير المتوافقة تُعدّ الشحنتان اللتان تحملان |
incompatibility_mode |
الوضع الذي تم تطبيقه على عدم التوافق |
IncompatibilityMode
أوضاع تحدّد كيفية حظر ظهور الشحنات غير المتوافقة على المسار نفسه
| عمليات التعداد | |
|---|---|
INCOMPATIBILITY_MODE_UNSPECIFIED |
وضع التوافق غير المحدّد يجب عدم استخدام هذه القيمة مطلقًا. |
NOT_PERFORMED_BY_SAME_VEHICLE |
في هذا الوضع، لا يمكن أبدًا أن تشترك شحنتان بنوعَين غير متوافقَين في المركبة نفسها. |
NOT_IN_SAME_VEHICLE_SIMULTANEOUSLY |
في هذا الوضع، لا يمكن أبدًا أن تكون شحنتان من أنواع غير متوافقة في المركبة نفسها في الوقت نفسه:
|
ShipmentTypeRequirement
تحدّد هذه السمة المتطلبات بين الشحنات استنادًا إلى shipment_type. يتم تحديد تفاصيل المتطلبات من خلال وضع المتطلبات.
| الحقول | |
|---|---|
required_shipment_type_alternatives[] |
قائمة بأنواع الشحن البديلة التي تتطلّبها |
dependent_shipment_types[] |
يجب أن تتضمّن جميع الشحنات التي لها نوع في الحقل ملاحظة: لا يُسمح بسلاسل المتطلبات التي يعتمد فيها |
requirement_mode |
الوضع الذي تم تطبيقه على المتطلب |
RequirementMode
أوضاع تحدّد مظهر الشحنات التابعة على مسار.
| عمليات التعداد | |
|---|---|
REQUIREMENT_MODE_UNSPECIFIED |
وضع المتطلبات غير المحدّد يجب عدم استخدام هذه القيمة مطلقًا. |
PERFORMED_BY_SAME_VEHICLE |
في هذا الوضع، يجب أن تشترك جميع الشحنات "التابعة" في المركبة نفسها مع شحنة واحدة على الأقل من شحناتها "المطلوبة". |
IN_SAME_VEHICLE_AT_PICKUP_TIME |
في وضع لذلك، يجب أن يتضمّن استلام شحنة "تابعة" أحد الخيارَين التاليَين:
|
IN_SAME_VEHICLE_AT_DELIVERY_TIME |
كما في السابق، باستثناء أنّ الشحنات "التابعة" يجب أن تتضمّن شحنة "مطلوبة" في مركبتها في وقت التسليم. |
SkippedShipment
تحدّد هذه السمة تفاصيل الشحنات التي لم يتم تنفيذها في الحلّ. في الحالات البسيطة و/أو إذا تمكّنا من تحديد سبب التخطّي، نُدرج السبب هنا.
| الحقول | |
|---|---|
index |
يتوافق الفهرس مع فهرس الشحنة في المستند المصدر |
label |
نسخة من |
reasons[] |
قائمة بالأسباب التي توضّح سبب تخطّي الشحنة. راجِع التعليق أعلاه |
penalty_cost |
هذه نسخة من تجريبي: قد يتغيّر سلوك هذا الحقل أو يتوقف عن الوجود في المستقبل. |
estimated_incompatible_vehicle_ratio |
النسبة المقدَّرة للمركبات التي لا يمكنها تنفيذ عملية الشحن هذه لسبب واحد على الأقل من الأسباب أدناه ملاحظة: لا يتم ملء هذا الحقل إلا عندما تتضمّن الأسباب مركبة. تجريبي: قد يتغيّر سلوك هذا الحقل أو يتوقف عن الوجود في المستقبل. |
السبب
إذا كان بإمكاننا توضيح سبب تخطّي الشحنة، سيتم إدراج الأسباب هنا. إذا لم يكن السبب هو نفسه لجميع المركبات، سيحتوي reason على أكثر من عنصر واحد. لا يمكن أن تتضمّن الشحنة التي تم تخطّيها أسبابًا مكرّرة، أي أن تكون جميع الحقول متطابقة باستثناء example_vehicle_index. مثال:
reasons {
code: DEMAND_EXCEEDS_VEHICLE_CAPACITY
example_vehicle_index: 1
example_exceeded_capacity_type: "Apples"
}
reasons {
code: DEMAND_EXCEEDS_VEHICLE_CAPACITY
example_vehicle_index: 3
example_exceeded_capacity_type: "Pears"
}
reasons {
code: CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT
example_vehicle_index: 1
}
الشحنة التي تم تخطّيها غير متوافقة مع جميع المركبات. قد تختلف الأسباب من مركبة إلى أخرى، ولكن سيتم تجاوز سعة "التفاح" في مركبة واحدة على الأقل (بما في ذلك المركبة 1)، وسيتم تجاوز سعة "الكمثرى" في مركبة واحدة على الأقل (بما في ذلك المركبة 3)، وسيتم تجاوز حد المسافة في مركبة واحدة على الأقل (بما في ذلك المركبة 1).
| الحقول | |
|---|---|
code |
يُرجى الرجوع إلى تعليقات الرمز. |
example_vehicle_indices[] |
هي نفسها تجريبي: قد يتغيّر سلوك هذا الحقل أو يتوقف عن الوجود في المستقبل. |
example_exceeded_capacity_type |
إذا كان رمز السبب هو |
example_vehicle_index |
إذا كان السبب مرتبطًا بعدم توافق مركبة الشحن، يوفّر هذا الحقل فهرس إحدى المركبات ذات الصلة. |
الرمز
رمز يحدّد نوع السبب. الترتيب هنا لا معنى له. على وجه الخصوص، لا يقدّم أي إشارة إلى ما إذا كان سبب معيّن سيظهر قبل آخر في الحلّ، إذا كان كلاهما منطبقًا.
| عمليات التعداد | |
|---|---|
CODE_UNSPECIFIED |
يجب عدم استخدام هذا الخيار أبدًا. |
NO_VEHICLE |
لا توجد مركبة في النموذج تجعل جميع الشحنات غير ممكنة. |
DEMAND_EXCEEDS_VEHICLE_CAPACITY |
يتجاوز الطلب على الشحنة سعة المركبة لبعض أنواع السعة، وأحدها هو example_exceeded_capacity_type. |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT |
الحد الأدنى للمسافة اللازمة لتنفيذ عملية الشحن هذه، أي من يُرجى العِلم أنّنا نستخدم المسافات الجيوديسية في هذا الحساب. |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT |
الحدّ الأدنى للوقت اللازم لإجراء عملية الشحن هذه، بما في ذلك وقت السفر ووقت الانتظار ووقت الخدمة، يتجاوز ملاحظة: يتم احتساب مدة السفر في أفضل سيناريو، أي كمسافة جيوديسية × 36 متر/ثانية (حوالي 130 كيلومتر/ساعة). |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TRAVEL_DURATION_LIMIT |
كما هو مذكور أعلاه، ولكننا نقارن فقط بين الحد الأدنى لمدة الرحلة وtravel_duration_limit للمركبة. |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TIME_WINDOWS |
لا يمكن للمركبة إجراء عملية الشحن هذه في أفضل سيناريو (راجِع CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT لاحتساب الوقت) إذا بدأت في أقرب وقت بدء لها: سيؤدي إجمالي الوقت إلى انتهاء المركبة بعد آخر وقت انتهاء لها. |
VEHICLE_NOT_ALLOWED |
حقل allowed_vehicle_indices الخاص بالشحنة ليس فارغًا وهذه المركبة لا تنتمي إليه. |
VEHICLE_IGNORED |
قيمة الحقل تجريبي: قد يتغيّر سلوك هذا الحقل أو يتوقف عن الوجود في المستقبل. |
SHIPMENT_IGNORED |
الحقل تجريبي: قد يتغيّر سلوك هذا الحقل أو يتوقف عن الوجود في المستقبل. |
SKIPPED_IN_INJECTED_SOLUTION_CONSTRAINT |
تم تخطّي الشحنة في تجريبي: قد يتغيّر سلوك هذا الحقل أو يتوقف عن الوجود في المستقبل. |
VEHICLE_ROUTE_IS_FULLY_SEQUENCE_CONSTRAINED |
لا يسمح تخفيف قيود مسار المركبة المحدّد في تجريبي: قد يتغيّر سلوك هذا الحقل أو يتوقف عن الوجود في المستقبل. |
ZERO_PENALTY_COST |
لا تتضمّن الشحنة أي تكلفة جزائية. على الرغم من أنّ هذا الخيار يمكن أن يكون مفيدًا كخيار متقدّم للنمذجة، إلا أنّه قد يوضّح أيضًا بعد اكتمال عملية الشحن سبب تخطّي عملية شحن معيّنة. تجريبي: قد يتغيّر سلوك هذا الحقل أو يتوقف عن الوجود في المستقبل. |
TimeWindow
تفرض الفترات الزمنية قيودًا على وقت وقوع حدث معيّن، مثل وقت الوصول إلى موقع جغرافي أو وقت بدء تشغيل مركبة ووقت إيقافها.
تفرض حدود الفترة الزمنية الثابتة، start_time وend_time، الوقت الأبكر والأخير للحدث، بحيث يكون start_time <= event_time <=
end_time. الحدّ الأدنى لفترة المهلة المرنة، soft_start_time، يعبّر عن تفضيل لحدوث الحدث في الوقت soft_start_time أو بعده من خلال تكبُّد تكلفة تتناسب مع المدة التي يقع فيها الحدث قبل soft_start_time. يعبّر الحدّ الأعلى لفترة الوقت المرنة، soft_end_time، عن تفضيل حدوث الحدث في soft_end_time أو قبله من خلال تكبُّد تكلفة تتناسب مع المدة التي يحدث فيها الحدث بعد soft_end_time. يجب أن تكون قيم start_time وend_time وsoft_start_time وsoft_end_time ضمن الحدود الزمنية العامة (راجِع ShipmentModel.global_start_time وShipmentModel.global_end_time)، ويجب أن تلتزم بما يلي:
0 <= `start_time` <= `end_time` and
0 <= `start_time` <= `soft_start_time` and
0 <= `soft_end_time` <= `end_time`.
| الحقول | |
|---|---|
start_time |
تمثّل هذه السمة وقت بدء فترة التوقف الإجباري. إذا لم يتم تحديدها، سيتم ضبطها على |
end_time |
تمثّل هذه السمة وقت انتهاء الفترة الزمنية المحدّدة. إذا لم يتم تحديدها، سيتم ضبطها على |
soft_start_time |
تمثّل هذه السمة وقت البدء المحدّد للفترة الزمنية. |
soft_end_time |
تمثّل هذه السمة وقت انتهاء الفترة الزمنية. |
cost_per_hour_before_soft_start_time |
تكلفة لكل ساعة تُضاف إلى التكاليف الأخرى في النموذج إذا وقع الحدث قبل soft_start_time، ويتم احتسابها على النحو التالي: يجب أن تكون هذه التكلفة موجبة، ولا يمكن ضبط الحقل إلا إذا تم ضبط soft_start_time. |
cost_per_hour_after_soft_end_time |
تكلفة لكل ساعة تُضاف إلى التكاليف الأخرى في النموذج إذا وقع الحدث بعد يجب أن تكون هذه التكلفة موجبة، ولا يمكن ضبط الحقل إلا إذا تم ضبط |
TransitionAttributes
تحدّد هذه السمة سمات عمليات الانتقال بين زيارتَين متتاليتَين على مسار. يمكن تطبيق عدة TransitionAttributes على عملية الانتقال نفسها: في هذه الحالة، يتم جمع كل التكاليف الإضافية ويتم تطبيق القيد أو الحد الأكثر صرامة (باتّباع دلالات "AND" الطبيعية).
| الحقول | |
|---|---|
src_tag |
علامات تحدّد مجموعة عمليات الانتقال (من المصدر إلى الوجهة) التي تنطبق عليها هذه السمات. تتطابق زيارة المصدر أو بدء تشغيل المركبة إذا كان الحقل |
excluded_src_tag |
يمكنك الاطّلاع على |
dst_tag |
تتطابق زيارة الوجهة أو نهاية الرحلة بالمركبة إذا كان الحقل |
excluded_dst_tag |
يمكنك الاطّلاع على |
cost |
تحدّد هذه السمة تكلفة تنفيذ هذا الانتقال. يجب أن تكون هذه القيمة بالوحدة نفسها التي تستخدمها جميع التكاليف الأخرى في النموذج، ويجب ألا تكون سالبة. ويتم تطبيقها بالإضافة إلى جميع التكاليف الحالية الأخرى. |
cost_per_kilometer |
تحدّد هذه السمة تكلفة الكيلومتر الواحد التي يتم تطبيقها على المسافة المقطوعة أثناء تنفيذ هذا الانتقال. تُضاف هذه السمة إلى أي |
distance_limit |
تحدّد هذه السمة حدًا للمسافة التي يتم قطعها أثناء تنفيذ هذا الانتقال. اعتبارًا من 2021/06، لا يمكن استخدام سوى الحدود المرنة. |
delay |
تحدّد هذه السمة التأخير الذي يحدث عند تنفيذ هذا الانتقال. يحدث هذا التأخير دائمًا بعد الانتهاء من الزيارة المصدر وقبل بدء الزيارة الوجهة. |
يوري
معرّف موارد منتظم يشير إلى مورد يمكن قراءته وكتابته من خلال Route Optimization API.
| الحقول | |
|---|---|
uri |
تمثّل هذه السمة معرّف الموارد المنتظم (URI) للمورد. قد لا يكون المرجع متوفّرًا بعد. يتم ترميز محتوى المورد بتنسيق JSON أو textproto. يُسمح باستخدام موارد Google Cloud Storage فقط. إذا كان المورد مشفّرًا بتنسيق JSON، يجب أن ينتهي اسم المورد باللاحقة |
مركبة
تمثّل هذه السمة مركبة في مشكلة شحن. سيؤدي حلّ مشكلة الشحن إلى إنشاء مسار يبدأ من start_location وينتهي عند end_location لهذه المركبة. المسار هو سلسلة من الزيارات (راجِع ShipmentRoute).
| الحقول | |
|---|---|
display_name |
الاسم المعروض الذي يحدّده المستخدم للمركبة يمكن أن يصل طوله إلى 63 حرفًا ويمكن أن يستخدم أحرف UTF-8. |
travel_mode |
وضع السفر الذي يؤثر في الطرق التي يمكن أن تسلكها المركبة وسرعتها يمكنك الاطّلاع أيضًا على |
route_modifiers |
مجموعة من الشروط التي يجب استيفاؤها وتؤثّر في طريقة احتساب المسارات للمركبة المحدّدة |
start_location |
الموقع الجغرافي الذي تبدأ منه المركبة قبل استلام أي شحنات في حال عدم تحديد ذلك، تبدأ المركبة في أول محطة استلام. إذا كان نموذج الشحن يتضمّن مصفوفات المدة والمسافة، يجب عدم تحديد |
start_waypoint |
نقطة توقّف تمثّل موقعًا جغرافيًا تبدأ منه المركبة قبل استلام أي شحنات. إذا لم يتم تحديد أي من |
end_location |
الموقع الجغرافي الذي تنتهي فيه المركبة بعد إكمال آخر |
end_waypoint |
نقطة طريق تمثّل موقعًا جغرافيًا تنتهي فيه المركبة بعد إكمال |
start_tags[] |
تحدّد هذه السمة العلامات المرفقة ببداية مسار المركبة. لا يُسمح باستخدام سلاسل فارغة أو مكرّرة. |
end_tags[] |
تحدّد هذه السمة العلامات المرفقة بنهاية مسار المركبة. لا يُسمح باستخدام سلاسل فارغة أو مكرّرة. |
start_time_windows[] |
تمثّل هذه السمة الفترات الزمنية التي يمكن للمركبة خلالها مغادرة موقعها الجغرافي. يجب أن تكون ضمن الحدود الزمنية العامة (راجِع الحقول يجب أن تكون الفترات الزمنية التي تنتمي إلى الحقل المتكرّر نفسه منفصلة، أي لا يمكن أن تتداخل أي فترة زمنية مع فترة أخرى أو تكون مجاورة لها، ويجب أن تكون بالترتيب الزمني. لا يمكن ضبط |
end_time_windows[] |
تمثّل هذه السمة الفترات الزمنية التي يمكن أن تصل خلالها المركبة إلى موقعها الجغرافي النهائي. يجب أن تكون ضمن الحدود الزمنية العامة (راجِع الحقول يجب أن تكون الفترات الزمنية التي تنتمي إلى الحقل المتكرّر نفسه منفصلة، أي لا يمكن أن تتداخل أي فترة زمنية مع فترة أخرى أو تكون مجاورة لها، ويجب أن تكون بالترتيب الزمني. لا يمكن ضبط |
unloading_policy |
سياسة التفريغ المفروضة على المركبة |
load_limits |
سعات المركبة (الوزن والحجم وعدد المنصات النقالة مثلاً) المفاتيح في الخريطة هي معرّفات لنوع التحميل، وهي تتطابق مع مفاتيح الحقل |
cost_per_hour |
تكاليف المركبة: يتم جمع كل التكاليف ويجب أن تكون بالوحدة نفسها التكلفة في الساعة لمسار المركبة يتم تطبيق هذه التكلفة على إجمالي الوقت الذي يستغرقه المسار، ويشمل وقت السفر ووقت الانتظار ووقت الزيارة. قد يؤدي استخدام |
cost_per_traveled_hour |
تكلفة كل ساعة يتم فيها قطع مسافة على مسار المركبة لا تنطبق هذه التكلفة إلا على مدة التنقل التي يستغرقها المسار (أي المدة المُسجّلة في |
cost_per_kilometer |
تكلفة الكيلومتر الواحد من مسار المركبة يتم تطبيق هذه التكلفة على المسافة التي تم تسجيلها في |
fixed_cost |
يتم تطبيق تكلفة ثابتة إذا تم استخدام هذه المركبة للتعامل مع شحنة. |
used_if_route_is_empty |
لا ينطبق هذا الحقل إلا على المركبات التي لا يخدم مسارها أي شحنات. تشير هذه السمة إلى ما إذا كان يجب اعتبار المركبة مستعمَلة أم لا في هذه الحالة. إذا كانت القيمة صحيحة، تنتقل المركبة من موقعها الجغرافي عند البدء إلى موقعها الجغرافي عند الانتهاء حتى إذا لم تنقل أي شحنات، ويتم أخذ تكاليف الوقت والمسافة الناتجة عن التنقّل من نقطة البدء إلى نقطة الانتهاء في الاعتبار. بخلاف ذلك، لن تنتقل المركبة من موقع البدء إلى موقع الانتهاء، ولن يتم تحديد موعد |
route_duration_limit |
الحدّ الأقصى لمدة مسار المركبة الإجمالية في |
travel_duration_limit |
الحدّ الأقصى لمدة السفر على مسار المركبة في |
route_distance_limit |
الحدّ المطبَّق على إجمالي مسافة مسار المركبة في |
extra_visit_duration_for_visit_type |
تحدّد هذه السمة خريطة من سلاسل visit_types إلى المدد. المدة هي الوقت بالإضافة إلى إذا كان طلب الزيارة يتضمّن أنواعًا متعددة، ستتم إضافة مدة لكل نوع في الخريطة. |
break_rule |
تصف هذه السمة جدول فترات الاستراحة الذي سيتم فرضه على هذه المركبة. إذا كان الحقل فارغًا، لن يتم تحديد أي فترات استراحة لهذه المركبة. |
label |
تحدّد هذه السمة تصنيفًا لهذه المركبة. يتم عرض هذا التصنيف في الردّ على أنّه |
ignore |
إذا كانت القيمة صحيحة، يجب أن تكون قيمة إذا تمّت عملية شحن بواسطة مركبة تمّ تجاهلها في إذا تمّت عملية شحن بواسطة مركبة تمّ تجاهلها في |
travel_duration_multiple |
تحدّد هذه السمة عاملاً مضاعفًا يمكن استخدامه لزيادة أوقات السفر لهذه المركبة أو تقليلها. على سبيل المثال، يعني ضبط هذه السمة على 2.0 أنّ هذه المركبة أبطأ وتستغرق وقتًا أطول للوصول إلى الوجهة بمقدار ضعف الوقت الذي تستغرقه المركبات العادية. لا يؤثّر هذا المضاعف في مدة الزيارات. ويؤثر ذلك في التكلفة في حال تحديد تحذير: سيتم تقريب أوقات السفر إلى أقرب ثانية بعد تطبيق هذا المضاعف ولكن قبل إجراء أي عمليات رقمية، وبالتالي، قد يؤدي المضاعف الصغير إلى فقدان الدقة. يمكنك أيضًا الاطّلاع على |
DurationLimit
حدّ يحدّد الحد الأقصى لمدة مسار مركبة. ويمكن أن يكون صلبًا أو ليّنًا.
عند تحديد حقل حدّ أقصى مرن، يجب تحديد الحدّ الأقصى المرن والتكلفة المرتبطة به معًا.
| الحقول | |
|---|---|
max_duration |
حدّ صارم يقصر المدة على max_duration كحدّ أقصى. |
soft_max_duration |
حدّ غير صارم لا يفرض حدًا أقصى للمدة، ولكن عند تجاوزه، يتحمّل المسار تكلفة. تُضاف هذه التكلفة إلى التكاليف الأخرى المحدّدة في النموذج، مع استخدام الوحدة نفسها. في حال تحديد |
quadratic_soft_max_duration |
حدّ أقصى غير إلزامي لا يفرض حدًا أقصى للمدة، ولكن عند تجاوزه، يتحمّل المسار تكلفة تربيعية في المدة. تُضاف هذه التكلفة إلى التكاليف الأخرى المحدّدة في النموذج، مع استخدام الوحدة نفسها. في حال تحديد
|
cost_per_hour_after_soft_max |
التكلفة بالساعة التي يتم تكبّدها في حال تجاوز الحدّ الأقصى يجب أن تكون التكلفة غير سالبة. |
cost_per_square_hour_after_quadratic_soft_max |
تمثّل هذه السمة التكلفة لكل ساعة مربّعة يتم تكبّدها في حال انتهاك الحدّ الأقصى تكون التكلفة الإضافية 0 إذا كانت المدة أقل من الحدّ الأدنى، وإلا ستعتمد التكلفة على المدة على النحو التالي: يجب أن تكون التكلفة غير سالبة. |
LoadLimit
تحدّد هذه السمة الحدّ الأقصى للحمولة المسموح بها في مركبة، مثلاً "يمكن لهذه الشاحنة حمل ما يصل إلى 3500 كغ فقط". يمكنك الاطّلاع على load_limits.
| الحقول | |
|---|---|
soft_max_load |
حدّ أقصى مرن لعملية التحميل يمكنك الاطّلاع على |
cost_per_unit_above_soft_max |
إذا تجاوزت الحمولة |
start_load_interval |
تمثّل هذه السمة الفاصل الزمني المقبول لتحميل المركبة في بداية المسار. |
end_load_interval |
تعرض هذه السمة الفترة الزمنية المقبولة لتحميل المركبة في نهاية المسار. |
max_load |
الحد الأقصى المسموح به للحمل |
cost_per_kilometer |
تكلفة نقل وحدة واحدة من الحمولة لمسافة كيلومتر واحد لهذه المركبة يمكن استخدام ذلك كبديل لاستهلاك الوقود: إذا كان الحمل عبارة عن وزن (بالنيوتن)، فإنّ الحمل*كيلومتر يكون له بُعد الطاقة. تجريبي: يمكنك الانتقال إلى https://developers.google.com/maps/tt/route-optimization/experimental/load-cost/make-request لمزيد من التفاصيل. |
cost_per_traveled_hour |
تكلفة التنقّل بوحدة حمولة واحدة خلال ساعة واحدة لهذه المركبة تجريبي: يمكنك الانتقال إلى https://developers.google.com/maps/tt/route-optimization/experimental/load-cost/make-request لمزيد من التفاصيل. |
الفاصل الزمني
فترة مبالغ التحميل المقبولة
| الحقول | |
|---|---|
min |
الحد الأدنى المقبول للتحميل يجب أن تكون القيمة ≥ 0. إذا تم تحديد كليهما، يجب أن تكون قيمة |
max |
الحد الأقصى للحمل المقبول يجب أن تكون القيمة ≥ 0. في حال عدم تحديد الحد الأقصى للحِمل، لن يتم فرض أي قيود عليه من خلال هذه الرسالة. إذا تم تحديد كليهما، يجب أن تكون قيمة |
LoadCost
تكلفة نقل وحدة واحدة من الحمولة خلال Transition بالنسبة إلى عملية تحميل معيّنة، تكون التكلفة هي مجموع جزأين:
- min(load,
load_threshold) *cost_per_unit_below_threshold - max(0, load -
load_threshold) *cost_per_unit_above_threshold
مع هذه التكلفة، تفضّل الحلول تلبية الطلبات المرتفعة أولاً، أو بعبارة أخرى، تلبية الطلبات المرتفعة أخيرًا. على سبيل المثال، إذا كانت إحدى المركبات تتضمّن
load_limit {
key: "weight"
value {
cost_per_kilometer {
load_threshold: 15
cost_per_unit_below_threshold: 2.0
cost_per_unit_above_threshold: 10.0
}
}
}
ومسارها هو البدء، والاستلام، والاستلام، والتسليم، والتسليم، والانتهاء مع عمليات الانتقال التالية:
transition { vehicle_load['weight'] { amount: 0 }
travel_distance_meters: 1000.0 }
transition { vehicle_load['weight'] { amount: 10 }
travel_distance_meters: 1000.0 }
transition { vehicle_load['weight'] { amount: 20 }
travel_distance_meters: 1000.0 }
transition { vehicle_load['weight'] { amount: 10 }
travel_distance_meters: 1000.0 }
transition { vehicle_load['weight'] { amount: 0 }
travel_distance_meters: 1000.0 }
عندئذٍ تكون التكلفة التي تتحمّلها هذه LoadCost هي (cost_below * load_below * kilometers + cost_above * load_above * kms)
- الانتقال 0: 0.0
- الانتقال 1: 2.0 * 10 * 1.0 + 10.0 * 0 * 1.0 = 20.0
- المرحلة الانتقالية 2: 2.0 * 15 * 1.0 + 10.0 * (20 - 15) * 1.0 = 80.0
- الانتقال 3: 2.0 * 10 * 1.0 + 10.0 * 0 * 1.0 = 20.0
- الانتقال 4: 0.0
إذًا، يكون LoadCost على طول المسار 120.0.
ومع ذلك، إذا كان المسار هو start,pickup,delivery,pickup,delivery,end مع عمليات الانتقال:
transition { vehicle_load['weight'] { amount: 0 }
travel_distance_meters: 1000.0 }
transition { vehicle_load['weight'] { amount: 10 }
travel_distance_meters: 1000.0 }
transition { vehicle_load['weight'] { amount: 0 }
travel_distance_meters: 1000.0 }
transition { vehicle_load['weight'] { amount: 10 }
travel_distance_meters: 1000.0 }
transition { vehicle_load['weight'] { amount: 0 }
travel_distance_meters: 1000.0 }
عندئذٍ تكون التكلفة التي تتحمّلها LoadCost هي
- الانتقال 0: 0.0
- الانتقال 1: 2.0 * 10 * 1.0 + 10.0 * 0 * 1.0 = 20.0
- الانتقال 2: 0.0
- الانتقال 3: 2.0 * 10 * 1.0 + 10.0 * 0 * 1.0 = 20.0
- الانتقال 4: 0.0
في هذه الحالة، تكون قيمة LoadCost على طول المسار 40.0.
LoadCost يجعل الحلول التي تتضمّن انتقالات محمّلة بشكل كبير أكثر تكلفة.
تجريبي: يمكنك الانتقال إلى https://developers.google.com/maps/tt/route-optimization/experimental/load-cost/make-request لمزيد من التفاصيل.
| الحقول | |
|---|---|
load_threshold |
مقدار الحمولة الذي يتغيّر عنده سعر نقل وحدة الحمولة من cost_per_unit_below_threshold إلى cost_per_unit_above_threshold. يجب أن تكون القيمة >= 0. |
cost_per_unit_below_threshold |
تكلفة نقل وحدة حمولة، لكل وحدة بين 0 والحدّ الأقصى يجب أن تكون قيمة محدودة وأكبر من أو تساوي 0. |
cost_per_unit_above_threshold |
تكلفة نقل وحدة حمولة، لكل وحدة أعلى من الحدّ. في حالة الحدّ الأدنى الخاص = 0، تكون هذه تكلفة ثابتة لكل وحدة. يجب أن تكون قيمة محدودة وأكبر من أو تساوي 0. |
TravelMode
وسائل النقل التي يمكن أن تستخدمها المركبات
يجب أن تكون هذه القيم مجموعة فرعية من وسائل النقل في Google Maps Platform Routes API، راجِع: https://developers.google.com/maps/documentation/routes/reference/rest/v2/RouteTravelMode
ملاحظة: طرق WALKING هي في مرحلة الإصدار التجريبي وقد لا تتضمّن أحيانًا أرصفة واضحة أو ممرات للمشاة. يجب عرض هذا التحذير للمستخدم في جميع مسارات المشي التي تعرضها في تطبيقك.
| عمليات التعداد | |
|---|---|
TRAVEL_MODE_UNSPECIFIED |
وضع السفر غير المحدّد، وهو ما يعادل DRIVING. |
DRIVING |
وضع التنقّل الذي يتوافق مع اتجاهات القيادة (سيارة، وما إلى ذلك). |
WALKING |
وضع السفر الذي يتوافق مع اتجاهات المشي |
UnloadingPolicy
سياسة بشأن كيفية تفريغ مركبة ينطبق ذلك فقط على الشحنات التي تتضمّن عملية استلام وتوصيل.
يمكن إجراء عمليات شحن أخرى في أي مكان على المسار بشكل مستقل عن unloading_policy.
| عمليات التعداد | |
|---|---|
UNLOADING_POLICY_UNSPECIFIED |
سياسة تفريغ غير محدّدة، ويجب أن تتم عمليات التسليم بعد عمليات الاستلام المقابلة. |
LAST_IN_FIRST_OUT |
يجب أن تتم عمليات التسليم بترتيب عكسي لعمليات الاستلام |
FIRST_IN_FIRST_OUT |
يجب أن تتم عمليات التسليم بالترتيب نفسه الذي تتم به عمليات الاستلام |
VehicleFullness
VehicleFullness هو مقياس يحسب مدى امتلاء مركبة. تتراوح قيمة كل حقل VehicleFullness بين 0 و1، ويتم احتسابها كنسبة بين حقل مقياس محدود (مثل AggregatedMetrics.travel_distance_meters) والحد الأقصى للمركبة المرتبط به (مثل Vehicle.route_distance_limit)، إذا كان هذا الحد الأقصى متوفّرًا. وفي حال عدم إجراء ذلك، سيظلّ معدّل الامتلاء غير محدّد. إذا كان الحدّ 0، يتم ضبط الحقل على 1. ملاحظة: عندما يكون المسار عرضة لعدم إمكانية التنقّل بسبب الازدحام، قد تتجاوز بعض نسب الامتلاء الأولية القيمة 1.0، مثلاً قد تتجاوز المركبة الحدّ الأقصى للمسافة. في هذه الحالات، نضع حدًا أقصى لقيم الامتلاء عند 1.0.
| الحقول | |
|---|---|
max_fullness |
الحد الأقصى لجميع الحقول الأخرى في هذه الرسالة |
distance |
النسبة بين |
travel_duration |
النسبة بين [AggregatedMetrics.travel_duration_seconds][] و |
active_duration |
النسبة بين [AggregatedMetrics.total_duration_seconds][] و |
max_load |
النسبة القصوى بين جميع أنواع [AggregatedMetrics.max_load][] و |
active_span |
تمثّل هذه السمة النسبة (vehicle_end_time - vehicle_start_time) / (latest_vehicle_end_time - earliest_vehicle_start_time) لمركبة معيّنة. في حال عدم توفّر المقام، يتم استخدام ( |
النقطة الوسيطة
تغليف نقطة طريق تحدّد نقاط الطريق المواقع الجغرافية للوصول والمغادرة في VisitRequests، والمواقع الجغرافية للبدء والانتهاء في Vehicles.
| الحقول | |
|---|---|
side_of_road |
اختيارية: تشير إلى أنّ الموقع الجغرافي لنقطة الطريق هذه يهدف إلى أن تتوقف المركبة على جانب معيّن من الطريق. عند ضبط هذه القيمة، سيمرّ المسار بالموقع الجغرافي لكي تتمكّن المركبة من التوقف على جانب الطريق الذي يميل إليه الموقع الجغرافي من وسط الطريق. لا يعمل هذا الخيار مع وضع التنقّل "سيرًا على الأقدام". |
vehicle_stopover |
تشير إلى أنّ نقطة الطريق مخصّصة لتتوقف فيها المركبات، ويكون الهدف إما الصعود إلى المركبة أو النزول منها. لا يعمل هذا الخيار إلا مع وضع السفر "القيادة"، وعندما تكون قيمة "location_type" هي "location". تجريبي: قد يتغيّر سلوك هذا الحقل أو يتوقف عن الوجود في المستقبل. |
حقل الدمج location_type طرق مختلفة لتمثيل موقع جغرافي يمكن أن تكون location_type إحدى القيم التالية فقط: |
|
location |
تمثّل هذه السمة نقطة محدّدة باستخدام الإحداثيات الجغرافية، بما في ذلك عنوان اختياري. |
place_id |
تمثّل هذه السمة رقم تعريف المكان الخاص بنقطة الاهتمام المرتبط بنقطة الطريق. عند استخدام معرّف مكان لتحديد موقع الوصول أو المغادرة في VisitRequest، استخدِم معرّف مكان محدّدًا بما يكفي لتحديد موقع LatLng للتنقّل إلى المكان. على سبيل المثال، يكون معرّف المكان الذي يمثّل مبنى مناسبًا، ولكن لا يُنصح باستخدام معرّف المكان الذي يمثّل طريقًا. |