از Routes API برای محاسبه مسافت و مدت یک مسیر برای چندین مبدا و مقصد با فراخوانی روش computeRouteMatrix (REST) یا روش جریان ComputeRouteMatrix (gRPC) استفاده کنید.
با توجه به فهرستی از مبدا و مقصد، این روش مسافت و مدت یک مسیر را که از هر مبدأ شروع میشود و به هر مقصد ختم میشود، محاسبه میکند.
یک ماتریس مسیر ترانزیت دریافت کنید
شما همچنین می توانید یک ماتریس مسیر را در ترانزیت محاسبه کنید. برای مثال، به دریافت ماتریس مسیر در حمل و نقل مراجعه کنید.
محدودیت های درخواستی
روشهای Compute Route Matrix محدودیتهای درخواستی زیر را برای ایستگاههای بین با استفاده از آدرس یا شناسه مکان و برای عناصر اعمال میکنند. عناصر مسیرهای بین هر مبدا و مقصد در یک ماتریس مسیر هستند، بنابراین تعداد عناصر، تعداد مبدا ضربدر تعداد مقصد است. به عنوان مثال، اگر 10 مبدا و 10 مقصد داشته باشید، 100 عنصر دارید:
تعداد عناصر برای مسیرهایی که مسیرهای
TRANSIT
نیستند نمی تواند از 625 تجاوز کند.اگر یک مسیر
TRANSIT
را مشخص کنید ، تعداد عناصر نباید از 100 تجاوز کند.اگر
TRAFFIC_AWARE_OPTIMAL
را مشخص کنید ، تعداد عناصر نمی تواند از 100 تجاوز کند. برای اطلاعات بیشتر در موردTRAFFIC_AWARE_OPTIMAL
، به تعیین نحوه و آیا شامل کردن داده های ترافیک مراجعه کنید.اگر مبدا یا مقصد را با استفاده از آدرس یا شناسه مکان مشخص کنید ، در مجموع تا 50 را از این طریق مشخص می کنید.
خطاهای پاسخگویی
یکی از ویژگیهای روشهای Compute Route Matrix این است که خطاها را میتوان برای کل پاسخ یا برای عناصر پاسخ جداگانه برگرداند. به عنوان مثال، اگر درخواست بد شکل باشد، کل پاسخ حاوی یک خطا است (مثلاً منشا آن صفر است).
با این حال، اگر یک خطا برای زیرمجموعه ای از عناصر در پاسخ اعمال شود (مثلاً، یک مسیر را نمی توان برای یک ترکیب مبدا و مقصد محاسبه کرد)، آنگاه فقط عناصری که تحت تأثیر خطا قرار گرفته اند، کد خطا را برمی گردانند.
نتایج جریان gRPC
متد 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 را ببینید. مثال جاوا در آن صفحه هر دو مسیرهای محاسبه و ماتریس مسیر محاسبه را فراخوانی می کند.