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 Transcoding استفاده می کند.

درخواست بدن

بدنه درخواست حاوی داده هایی با ساختار زیر است:

نمایندگی 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 ایستگاه بین راهی پشتیبانی می شود.

travel Mode

enum ( RouteTravelMode )

اختیاری. نحوه حمل و نقل را مشخص می کند.

routing Preference

enum ( RoutingPreference )

اختیاری. نحوه محاسبه مسیر را مشخص می کند. سرور سعی می کند از اولویت مسیریابی انتخاب شده برای محاسبه مسیر استفاده کند. اگر اولویت مسیریابی منجر به خطا یا تاخیر طولانی مدت شود، یک خطا برگردانده می شود. شما می توانید این گزینه را فقط زمانی مشخص کنید که travelMode DRIVE یا TWO_WHEELER باشد، در غیر این صورت درخواست با شکست مواجه می شود.

polyline Quality

enum ( PolylineQuality )

اختیاری. ترجیح شما را برای کیفیت پلی لاین مشخص می کند.

polyline Encoding

enum ( PolylineEncoding )

اختیاری. رمزگذاری ترجیحی برای چند خط را مشخص می کند.

departure Time

string ( Timestamp format)

اختیاری. زمان حرکت اگر این مقدار را تنظیم نکنید، این مقدار به طور پیش‌فرض روی زمانی است که درخواست را انجام داده‌اید. اگر این مقدار را روی زمانی تنظیم کنید که قبلاً رخ داده است، درخواست با شکست مواجه می شود.

مهر زمانی در قالب RFC3339 UTC "Zulu"، با وضوح نانوثانیه و حداکثر نه رقم کسری. مثال‌ها: "2014-10-02T15:01:23Z" و "2014-10-02T15:01:23.045123456Z" .

compute Alternative Routes

boolean

اختیاری. تعیین می کند که آیا مسیرهای جایگزین علاوه بر مسیر محاسبه شود یا خیر. هیچ مسیر جایگزینی برای درخواست هایی که دارای ایستگاه های بین راهی هستند بازگردانده نمی شود.

route Modifiers

object ( RouteModifiers )

اختیاری. مجموعه ای از شرایط برای برآورده شدن که بر نحوه محاسبه مسیرها تأثیر می گذارد.

language Code

string

اختیاری. کد زبان BCP-47، مانند "en-US" یا "sr-Latn". برای اطلاعات بیشتر، به شناسه محلی یونیکد مراجعه کنید. برای لیست زبان های پشتیبانی شده به پشتیبانی زبان مراجعه کنید. وقتی این مقدار را ارائه نمی کنید، زبان نمایش از محل درخواست مسیر استنباط می شود.

units

enum ( Units )

اختیاری. واحدهای اندازه گیری فیلدهای نمایش را مشخص می کند. این شامل فیلد instruction در NavigationInstruction است. واحدهای اندازه گیری مورد استفاده برای مسیر، پا، فاصله گام، و مدت زمان تحت تأثیر این مقدار قرار نمی گیرند. اگر این مقدار را ارائه نکنید، واحدهای نمایش از محل درخواست استنتاج می شوند.

optimize Waypoint Order

boolean

اگر optimizeWaypointOrder روی true تنظیم شده باشد، تلاش می‌شود تا ایستگاه‌های میانی مشخص شده را مجدداً ترتیب دهیم تا هزینه کلی مسیر به حداقل برسد. اگر هر یک از ایستگاه های بین راهی از طریق ایستگاه بین راه باشد، درخواست با شکست مواجه می شود. از ComputeRoutesResponse.Routes.optimized_intermediate_waypoint_index برای پیدا کردن سفارش جدید استفاده کنید. اگر routes.optimized_intermediate_waypoint_index در هدر X-Goog-FieldMask درخواست نشود، درخواست با شکست مواجه می شود. اگر optimizeWaypointOrder روی false تنظیم شده باشد، ComputeRoutesResponse.optimized_intermediate_waypoint_index خالی است.

بدن پاسخگو

در صورت موفقیت آمیز بودن، بدنه پاسخ حاوی نمونه ای از ComputeRoutesResponse است.

محدوده مجوز

به محدوده OAuth زیر نیاز دارد:

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

برای اطلاعات بیشتر، به نمای کلی OAuth 2.0 مراجعه کنید.