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

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

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

محدودیت های درخواستی

متدهای Compute Route Matrix محدودیت‌های درخواستی زیر را اعمال می‌کنند:

  • تعداد عناصر (تعداد مبدا × تعداد مقصد) نمی تواند از 625 تجاوز کند.

  • اگر TRAFFIC_AWARE_OPTIMAL را مشخص کنید، تعداد عناصر نمی تواند از 100 تجاوز کند. برای اطلاعات بیشتر در مورد TRAFFIC_AWARE_OPTIMAL ، پیکربندی کیفیت در مقابل تأخیر را ببینید.

  • حداکثر تعداد نقاط بین راه ( مبدا + مقصد) که می توانید با استفاده از شناسه مکان مشخص کنید 50 است.

خطاهای پاسخگویی

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

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

نتایج جریان

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

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

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

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

مثال HTTP

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

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

    در آرایه، عنصر اول با شاخص 0، عنصر دوم شاخص 1 و غیره است.

  • یک ماسک فیلد پاسخ اضافه کنید تا مشخص کنید کدام فیلدهای پاسخ (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 1 در پاسخ مربوط به مسیری است که از نقطه راه در شاخص 1 آرایه 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 را ببینید. مثال جاوا در آن صفحه هر دو مسیرهای محاسبه و ماتریس مسیر محاسبه را فراخوانی می کند.