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

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

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

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

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

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

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

از متد ComputeRouteMatrix استفاده کنید

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

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

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

رست: 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: originIndex,destinationIndex,duration,distanceMeters,status . می‌توانید از کاراکتر wildcard (*) برای مشخص کردن همه فیلدها استفاده کنید، اما این کار توصیه نمی‌شود. از کاراکتر wildcard برای آزمایش و درک پاسخ API استفاده کنید، اما فیلدهایی را که می‌خواهید در field mask در کد تولید خود قرار دهید، به صراحت فهرست کنید.

      برای اطلاعات بیشتر در مورد نحوه ساخت رشته ماسک فیلد، به 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 است. برای مبداها و مقاصد مشخص شده توسط درخواست، مسیر origin معادل origins[origin_index] برای یک عنصر معین و مسیر destination معادل destinations[destination_index] است. این آرایه‌ها دارای اندیس صفر هستند. ذخیره ترتیب لیست مبدا و مقصد بسیار مهم است.

محاسبه هزینه عوارض

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

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