دریافت ماتریس مسیر

توسعه‌دهندگان منطقه اقتصادی اروپا (EEA)

با فراخوانی روش computeRouteMatrix (REST) یا روش جاری‌سازی ComputeRouteMatrix (gRPC)، از Routes API برای محاسبه مسافت و مدت‌زمان مسیر برای چند مبدأ و مقصد استفاده کنید.

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

دریافت ماتریس مسیر حمل‌ونقل عمومی

همچنین می‌توانید ماتریس مسیر را در حمل‌ونقل عمومی محاسبه کنید. برای مشاهده نمونه، به دریافت ماتریس مسیر در حمل‌ونقل عمومی مراجعه کنید.

حدود درخواست

روش‌های Compute Route Matrix محدودیت‌های درخواست زیر را برای نقطه‌مسیرها بااستفاده از نشانی یا شناسه‌های مکان، و برای عناصر اعمال می‌کنند. عناصر عبارت‌اند از مسیرهای بین هر مبدأ و مقصد در ماتریس مسیر، بنابراین تعداد عناصر برابر است با تعداد مبدأها ضرب‌در تعداد مقصدها. برای مثال، اگر ۱۰ مبدأ و ۱۰ مقصد داشته باشید، ۱۰۰ عنصر دارید:

  • تعداد عناصر برای مسیرهایی که مسیر TRANSIT نیستند نمی‌تواند از ۶۲۵ بیشتر باشد.

  • اگر TRANSIT مسیر مشخص کنید، تعداد عناصر نمی‌تواند از ۱۰۰ بیشتر باشد.

  • اگر TRAFFIC_AWARE_OPTIMAL را مشخص کنید، تعداد عناصر نمی‌تواند از ۱۰۰ بیشتر باشد. برای اطلاعات بیشتر درباره TRAFFIC_AWARE_OPTIMAL، به مشخص کردن نحوه و لزوم گنجاندن داده‌های ترافیک مراجعه کنید.

  • اگر مبدأ یا مقصد را بااستفاده از نشانی یا شناسه مکان مشخص کنید، می‌توانید درمجموع تا ۵۰ مورد را به این روش مشخص کنید.

خطاهای پاسخ

یکی از ویژگی‌های روش‌های Compute Route Matrix این است که خطاها می‌توانند هم برای کل پاسخ و هم برای عناصر پاسخ تکی برگردانده شوند. برای مثال، اگر درخواست بدساخت باشد، کل پاسخ حاوی خطا است (برای مثال، مبدأ آن صفر باشد).

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

نتایج جاری‌سازی gRPC

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

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

نمونه‌های محاسبه ماتریس مسیر

از روش computeRouteMatrix در درخواست HTTP برای محاسبه ماتریس مسیر استفاده کنید.

نمونه HTTP

مثال زیر درخواست HTTP computeRouteMatrix را نشان می‌دهد. در این مثال شما:

  • آرایه‌ای از دو نقطه‌مسیر مبدأ و دو نقطه‌مسیر مقصد را مشخص کنید. این روش مسیری را از هر مبدأ به هر مقصد محاسبه می‌کند، بنابراین پاسخ شامل چهار مسیر است.

    در آرایه، عنصر اول در نمایه ۰، عنصر دوم در نمایه ۱، و غیره قرار دارد.

  • ماسک فیلد پاسخ را اضافه کنید تا مشخص شود کدام فیلدهای پاسخ (REST) یا ComputeRoutesResponse (gRPC) برگردانده شود. در این مثال، درخواست را برای برگرداندن originIndex،‏ destinationIndex،‏ duration،‏ distanceMeters،‏ status، و condition برای هر مسیر پیکربندی کنید. برای اطلاعات بیشتر، انتخاب فیلدها برای برگرداندن را ببینید.

curl -X POST -d '{
  "origins": [
    {
      "waypoint": {
        "location": {
          "latLng": {
            "latitude": 37.420761,
            "longitude": -122.081356
          }
        }
      },
      "routeModifiers": { "avoid_ferries": true}
    },
    {
      "waypoint": {
        "location": {
          "latLng": {
            "latitude": 37.403184,
            "longitude": -122.097371
          }
        }
      },
      "routeModifiers": { "avoid_ferries": true}
    }
  ],
  "destinations": [
    {
      "waypoint": {
        "location": {
          "latLng": {
            "latitude": 37.420999,
            "longitude": -122.086894
          }
        }
      }
    },
    {
      "waypoint": {
        "location": {
          "latLng": {
            "latitude": 37.383047,
            "longitude": -122.044651
          }
        }
      }
    }
  ],
  "travelMode": "DRIVE",
  "routingPreference": "TRAFFIC_AWARE"
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \
-H 'X-Goog-FieldMask: originIndex,destinationIndex,duration,distanceMeters,status,condition' \
'https://routes.googleapis.com/distanceMatrix/v2:computeRouteMatrix'

پاسخ حاوی چهار مسیر ممکن برای ترکیب همه نقطه‌مسیرهای مبدأ و مقصد است.

هر مسیر را در پاسخ بااستفاده از فیلدهای پاسخ originIndex و destinationIndex شناسایی کنید. برای مثال، originIndex با مقدار ۱ در پاسخ با مسیری مطابقت دارد که از نقطه‌مسیر در نمایه ۱ آرایه origins در درخواست محاسبه شده است.

[
    {
        "originIndex": 0,
        "destinationIndex": 0,
        "status": {},
        "distanceMeters": 822,
        "duration": "160s",
        "condition": "ROUTE_EXISTS"
    },
    {
        "originIndex": 1,
        "destinationIndex": 0,
        "status": {},
        "distanceMeters": 2919,
        "duration": "361s",
        "condition": "ROUTE_EXISTS"
    },
    {
        "originIndex": 1,
        "destinationIndex": 1,
        "status": {},
        "distanceMeters": 5598,
        "duration": "402s",
        "condition": "ROUTE_EXISTS"
    },
    {
        "originIndex": 0,
        "destinationIndex": 1,
        "status": {},
        "distanceMeters": 7259,
        "duration": "712s",
        "condition": "ROUTE_EXISTS"
    }
]

نمونه‌های gRPC

برای مثال درخواست‌های gRPC، نمونه‌های موجود در نمونه درخواست gRPC را ببینید. نمونه Java در آن صفحه هم Compute Routes و هم Compute Route Matrix را فراخوانی می‌کند.