Method: computeRoutes

لعرض المسار الأساسي مع مسارات بديلة اختيارية، مع تحديد مجموعة من نقاط الطرق الطرفية والوسطى.

ملاحظة: تتطلب هذه الطريقة تحديد قناع حقل الردّ في الإدخال. يمكنك توفير قناع حقل الاستجابة باستخدام مَعلمة عنوان URL $fields أو fields أو باستخدام عنوان HTTP/gRPC X-Goog-FieldMask (اطّلِع على عناوين ومَعلمات عناوين URL المتوفّرة. ويجب أن تكون القيمة هي قائمة بمسارات الحقول مفصولة بفواصل. اطّلِع على مستندات تفصيلية عن كيفية إنشاء مسارات الحقول.

على سبيل المثال، باستخدام هذه الطريقة:

  • كمامة الحقل لجميع الحقول المتاحة (للفحص اليدوي): X-Goog-FieldMask: *
  • قناع الحقل للمدة على مستوى المسار والمسافة والخطوط المتعددة (مثال على إعداد الإنتاج): X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline

لا تنصح Google باستخدام قناع حقل الردّ بحرف البدل (*) أو تحديد قناع الحقل على المستوى الأعلى (routes)، للسببَين التاليَين:

  • ويعمل تحديد الحقول التي تحتاجها فقط على مساعدة الخادم في حفظ دورات الحوسبة، مما يتيح لنا عرض النتيجة لك في وقت استجابة أقل.
  • إنّ اختيار الحقول التي تحتاجها فقط في مهمة الإنتاج يضمن أداء وقت الاستجابة مستقرًا. قد نضيف المزيد من حقول الاستجابة في المستقبل، وقد تتطلب هذه الحقول الجديدة وقتًا إضافيًا في العمليات الحسابية. في حال اختيار جميع الحقول أو اختيار جميع الحقول في المستوى الأعلى، قد تواجه تراجعًا في الأداء بسبب تضمين أي حقل جديد نضيفه تلقائيًا في الردّ.
  • ويؤدي اختيار الحقول التي تحتاجها فقط إلى تقليل حجم الاستجابة، وبالتالي زيادة سرعة معالجة بيانات الشبكة.

طلب HTTP

POST https://routespreferred.googleapis.com/v1:computeRoutes

يستخدِم عنوان URL بنية تحويل ترميز gRPC.

نص الطلب

يحتوي نص الطلب على بيانات بالبنية التالية:

تمثيل JSON
{
  "origin": {
    object (Waypoint)
  },
  "destination": {
    object (Waypoint)
  },
  "intermediates": [
    {
      object (Waypoint)
    }
  ],
  "travelMode": enum (RouteTravelMode),
  "routingPreference": enum (RoutingPreference),
  "polylineQuality": enum (PolylineQuality),
  "polylineEncoding": enum (PolylineEncoding),
  "departureTime": string,
  "computeAlternativeRoutes": boolean,
  "routeModifiers": {
    object (RouteModifiers)
  },
  "languageCode": string,
  "units": enum (Units),
  "optimizeWaypointOrder": boolean
}
الحقول
origin

object (Waypoint)

مطلوب. نقطة مسار الأصل.

destination

object (Waypoint)

مطلوب. النقطة الوسيطة للوجهة.

intermediates[]

object (Waypoint)

اختياريّ. مجموعة من نقاط الطريق على طول المسار (باستثناء النقاط النهائية)، سواء للتوقف عند أو للمرور. ويمكن استخدام ما يصل إلى 25 نقطة طريق متوسطة.

travelMode

enum (RouteTravelMode)

اختياريّ. تحدّد هذه السمة وسيلة النقل.

routingPreference

enum (RoutingPreference)

اختياريّ. لتحديد كيفية حساب المسار. يحاول الخادم استخدام تفضيل التوجيه المحدد لاحتساب المسار. إذا أدى تفضيل التوجيه إلى حدوث خطأ أو وقت استجابة طويل جدًا، فسيتم عرض خطأ. في المستقبل، قد نطبّق آلية احتياطية لاستخدام خيار مختلف عندما لا يقدّم الخيار المفضّل نتيجة صالحة. لا يمكنك تحديد هذا الخيار إلا إذا كانت قيمة travelMode هي DRIVE أو TWO_WHEELER، وإلّا يتعذّر تنفيذ الطلب.

polylineQuality

enum (PolylineQuality)

اختياريّ. لتحديد إعداداتك المفضّلة لجودة الخطوط المتعددة.

polylineEncoding

enum (PolylineEncoding)

اختياريّ. تحدِّد هذه السياسة الترميز المفضّل للخطوط المتعددة.

departureTime

string (Timestamp format)

اختياريّ. وقت المغادرة إذا لم يتم ضبط هذه القيمة، سيتم ضبط هذه القيمة تلقائيًا على الوقت الذي قدّمت فيه الطلب. وفي حال ضبط هذه القيمة على وقت قد حدث بالفعل، سيتعذّر الطلب.

طابع زمني بتنسيق RFC3339 حسب التوقيت العالمي المنسَّق (UTC) "زولو" بدقة نانوثانية وما يصل إلى تسعة أرقام كسرية. أمثلة: "2014-10-02T15:01:23Z" و"2014-10-02T15:01:23.045123456Z".

computeAlternativeRoutes

boolean

لتحديد ما إذا كان سيتم حساب المسارات البديلة بالإضافة إلى المسار.

routeModifiers

object (RouteModifiers)

اختياريّ. يشير ذلك المصطلح إلى مجموعة من الشروط التي يجب استيفاؤها وتؤثّر في طريقة احتساب المسارات.

languageCode

string

اختياريّ. رمز اللغة BCP-47، مثل en-US أو "sr-Latn". لمزيد من المعلومات، يُرجى الاطّلاع على http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. يمكنك الانتقال إلى قسم دعم اللغات للاطّلاع على قائمة باللغات المتوافقة. عند عدم تقديم هذه القيمة، يتم استنتاج لغة العرض من موقع طلب المسار.

units

enum (Units)

اختياريّ. تحدّد هذه السمة وحدات القياس لحقول العرض. ويشمل ذلك الحقل instruction في NavigationInstruction. لا تتأثر وحدات القياس المستخدمة للمسار والساق ومسافة الخطوة والمدة بهذه القيمة. في حال عدم تقديم هذه القيمة، سيتم استنتاج وحدات العرض من موقع الطلب.

optimizeWaypointOrder

boolean

إذا تم ضبط optWaypointOrder على "صحيح"، يتم إجراء محاولة لإعادة ترتيب نقاط الطرق الوسيطة المحدّدة لتقليل التكلفة الإجمالية للمسار. إذا كانت أي من نقاط الطريق الوسيطة عبر نقطة وسيطة، يفشل الطلب. استخدِم ComputeRoutesResponse.Routes.محسَّن_intermediate_waypoint_index للعثور على الترتيب الجديد. في حال لم يتم طلب path.Optimization_intermediate_waypoint_index في عنوان X-Goog-FieldMask، لن يعود الطلب متاحًا. في حال ضبط OptimizeWaypointOrder على "خطأ"، تكون قيمة ComputeRoutesResponse.enabled_intermediate_waypoint_index فارغة.

نص الاستجابة

إذا كانت الاستجابة ناجحة، يحتوي نص الاستجابة على مثال ComputeRoutesResponse.

نطاقات التفويض

يجب توفير نطاق OAuth التالي:

  • https://www.googleapis.com/auth/maps-platform.routespreferred

لمزيد من المعلومات، يُرجى الاطِّلاع على نظرة عامة على OAuth 2.0.