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 "Zulu"‎ وبدقة تصل إلى نانوثانية وما يصل إلى تسعة أرقام كسور. أمثلة: "2014-10-02T15:01:23Z" و"2014-10-02T15:01:23.045123456Z"

computeAlternativeRoutes

boolean

اختياريّ. تُحدِّد ما إذا كان سيتم احتساب مسارات بديلة بالإضافة إلى المسار. لا يتم عرض أي طرق بديلة للطلبات التي تحتوي على نقاط مسار وسيطة.

routeModifiers

object (RouteModifiers)

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

languageCode

string

اختياريّ. تمثّل هذه السمة رمز اللغة BCP-47، مثل en-US أو sr-Latn. للمزيد من المعلومات، يُرجى الاطّلاع على معرّف لغة يونيكود. اطّلِع على اللغات المتاحة للاطّلاع على قائمة اللغات المتاحة. في حال عدم تقديم هذه القيمة، يتم استنتاج لغة العرض من الموقع الجغرافي لطلب المسار.

units

enum (Units)

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

optimizeWaypointOrder

boolean

في حال ضبط optimizeWaypointOrder على true، تتم محاولة إعادة ترتيب نقاط التوقف الوسيطة المحدّدة لتقليل التكلفة الإجمالية للمسار. إذا كان أيّ من نقاط التوقف المؤقتة يمرّ عبر نقطة توقف، سيتعذّر تنفيذ الطلب. استخدِم ComputeRoutesResponse.Routes.optimized_intermediate_waypoint_index للعثور على الطلب الجديد. إذا لم يتم طلب routes.optimized_intermediate_waypoint_index في عنوان X-Goog-FieldMask، سيتعذّر تنفيذ الطلب. إذا تم ضبط optimizeWaypointOrder على خطأ، يكون ComputeRoutesResponse.optimized_intermediate_waypoint_index فارغًا.

نص الاستجابة

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

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

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

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

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