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 لمزيد من المعلومات، يُرجى الاطّلاع على http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. راجِع دعم اللغة للحصول على قائمة اللغات المتاحة. عند عدم توفير هذه القيمة، يتم استنتاج لغة العرض من موقع طلب المسار.

units

enum (Units)

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

optimizeWaypointOrder

boolean

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

نص الاستجابة

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

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

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

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

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