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/v1alpha: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" لمزيد من المعلومات، يُرجى الاطّلاع على معرّف لغة Unicode. اطّلِع على اللغات المتاحة للاطّلاع على قائمة اللغات المتاحة. عند عدم تقديم هذه القيمة، يتم استنتاج لغة العرض من موقع طلب المسار.

units

enum (Units)

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

optimizeWaypointOrder

boolean

إذا تم ضبط optWaypointOrder على "صحيح"، يتم إجراء محاولة لإعادة ترتيب نقاط الطرق الوسيطة المحدّدة لتقليل التكلفة الإجمالية للمسار. إذا كانت أي من نقاط الطريق الوسيطة عبر نقطة وسيطة، يفشل الطلب. يمكنك استخدام 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.