یک ماتریس مسیر را محاسبه کنید

با استفاده از روش ComputeRouteMatrix از Routes Preferred API می توانید مسافت و مدت یک مسیر را برای مبداها و مقصدهای متعدد محاسبه کنید. ComputeRouteMatrix از هر دو جریان تماس های gRPC و تماس های REST HTTP پشتیبانی می کند.

ComputeRouteMatrix با توجه به لیستی از جفت مبدا و مقصد، مسافت و مدت یک مسیر را که از هر مبدأ شروع می شود و به هر مقصد ختم می شود، محاسبه می کند. هر عنصر جریان مربوط به اطلاعات یک مسیر است.

روش ComputeRouteMatrix چندین مزیت نسبت به Distance Matrix Service دارد:

  • جریان اجازه می دهد تا عناصر قبل از محاسبه کل ماتریس برگردانده شوند و تأخیر را کاهش می دهد.
  • ComputeRouteMatrix دارای گزینه های دقیقی برای محاسبه ترافیک است که به شما امکان می دهد تصمیمات مبادله ای با تاخیر کیفیت بگیرید.
  • درخواست‌ها با اولویت بالاتری در زیرساخت‌های Google اجرا می‌شوند که منجر به دسترسی بیشتر می‌شود.
  • شما می توانید عنوان (جهت سفر) و اطلاعات کنار جاده را برای ایستگاه های بین راهی مشخص کنید.
  • شما می توانید درخواست کنید که اطلاعات عوارض به همراه مسافت مسیر و ETA برگردانده شود.

متد ComputeRouteMatrix را فعال کنید

قبل از اینکه بتوانید از متد ComputeRouteMatrix در کد خود استفاده کنید، باید آن را فعال کنید. برای اطلاعات بیشتر در مورد فعال کردن روش‌های API ترجیحی مسیرها، به شروع به کار مراجعه کنید.

از روش ComputeRouteMatrix استفاده کنید

روش ComputeRouteMatrix از طریق نقطه پایانی Routes Preferred v1 در دسترس است.

برای اطلاعات بیشتر به مستندات زیر مراجعه کنید:

gRPC: https://developers.google.com/maps/documentation/routes_preferred/reference/rpc/google.maps.routes.v1

REST: https://developers.google.com/maps/documentation/routes_preferred/reference/rest/v1/TopLevel/computeRouteMatrix

مراحل عمومی زیر نحوه استفاده از gRPC برای فراخوانی متد ComputeRouteMatrix را شرح می دهد:

  1. پروتوبافرهای لازم را از مخزن googleapis بررسی کنید:

    https://github.com/googleapis/googleapis/tree/master/google/maps/routes

    توجه داشته باشید که برخی از سیستم‌های بیلد، مانند Go، ممکن است به طور خودکار این کار را برای شما انجام دهند.

  2. با استفاده از زبان دلخواه و مجموعه ابزارهای ساخت، کد پروتوبافر مربوطه را تولید کنید.

  3. درخواست خود را ایجاد کنید دو قطعه فراداده مورد نیاز باید همراه با درخواست ارسال شود:

    • X-Goog-Api-Key باید روی کلید API شما تنظیم شود.
    • X-Goog-Fieldmask باید روی یک لیست جدا شده با کاما از فیلدهایی که از پاسخ نیاز دارید تنظیم شود. به عنوان مثال، X-Goog-FieldMask: OriginalIndex، DestinationIdex، duration، distanceMeters، وضعیت . می‌توانید از کاراکتر عام (*) برای نشان دادن همه فیلدها استفاده کنید، اما این کار ممنوع است. از کاراکتر wildcard برای آزمایش و درک پاسخ API استفاده کنید، اما به طور صریح فیلدهایی را که می خواهید در فیلد ماسک در کد تولید خود فهرست کنید.

      برای اطلاعات بیشتر در مورد نحوه ساخت رشته ماسک فیلد، به https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto مراجعه کنید. توجه داشته باشید که غیرفعال کردن فیلدهایی که به آنها نیاز ندارید می تواند تأخیر را کاهش دهد زیرا ممکن است این فیلدها به محاسبات بیشتری نیاز داشته باشند. اگر فیلدهای مورد نیاز خود را مشخص کنید و بعداً فیلدهای جدیدی که نیاز به محاسبات بیشتری دارند اضافه شوند، تأخیر شما ثابت خواهد ماند.

  4. درخواست خود را به routespreferred.googleapis.com:443 ارسال کنید. باید از پروتکل TLS استفاده کنید.

برای مثال‌هایی از استفاده از روش ComputeRouteMatrix ، به مثال‌های محاسبه یک ماتریس مسیر (بتا) مراجعه کنید.

یکی از ویژگی های متمایز روش ComputeRouteMatrix این است که کدهای خطا را می توان برای کل جریان یا برای عناصر جداگانه برگرداند. به عنوان مثال، اتصال جریان در صورتی که درخواست ناقص باشد (مثلاً منشأ آن صفر باشد) خطا را برمی‌گرداند. با این حال، اگر یک خطا فقط برای چند عنصر جریان اعمال شود (به عنوان مثال، تنظیم یک شناسه مکان نامعتبر برای مبدا)، آنگاه فقط عناصر تحت تأثیر خطا حاوی کدهای خطا هستند.

عناصر بازگردانده شده توسط جریان تضمینی برای بازگشت به هیچ ترتیبی ندارند. به همین دلیل، هر عنصر حاوی یک origin_index و یک destination_index است. برای مبداها و مقصدهای مشخص شده توسط درخواست، مبدا مسیر معادل origins[origin_index] برای یک عنصر معین و مقصد مسیر معادل destinations[destination_index] است. این آرایه ها دارای شاخص صفر هستند. ذخیره سفارشات لیست مبدا و مقصد مهم است.

محاسبه عوارض

برای اطلاعات در مورد محاسبه هزینه عوارض، به محاسبه هزینه عوارض مراجعه کنید.

برای مثال‌هایی از محاسبه هزینه‌های عوارض، به محاسبه نمونه‌های ماتریس مسیر مراجعه کنید.