بهطور پیشفرض، «میانای برنامهسازی کاربردی مسیرها» پیشفرض مسیر را برمیگرداند که معمولاً سریعترین مسیر از مبدأ تا مقصد است. وقتی درخواست مسیرهای جایگزین میکنید، API حداکثر سه مسیر را بههمراه مسیر پیشفرض برمیگرداند. سپس مشتریانتان میتوانند مسیری را انتخاب کنند که بیشترین تناسب را با نیازهایشان دارد.
ملاحظات هنگام درخواست مسیرهای جایگزین
برای درخواست مسیرهای جایگزین، به ملاحظات زیر توجه کنید:
پاسخ حداکثر شامل سه مسیر جایگزین است. بااینحال، گاهی اوقات هیچ مسیر جایگزینی دردسترس نیست، بنابراین پاسخ فقط شامل مسیر پیشفرض است.
بهدلیل پردازش اضافی موردنیاز برای محاسبه مسیرهای جایگزین، درخواست مسیرهای جایگزین ممکن است زمان پاسخ API را افزایش دهد.
نمونه درخواست مسیرهای جایگزین
برای درخواست مسیرهای جایگزین، computeAlternativeRoutes را روی true تنظیم کنید. مثال زیر نشان میدهد که چگونه میتوان مسیرهای جایگزین را در درخواست روش computeRoutes (REST) درخواست کرد.
curl -X POST -d '{ "origin":{ "location":{ "latLng":{ "latitude":42.340173523716736, "longitude":-71.05997968330408 } } }, "destination":{ "location":{ "latLng":{ "latitude":42.075698891472804, "longitude": -72.59806562080408 } } }, "travelMode": "DRIVE", "routingPreference":"TRAFFIC_AWARE", "computeAlternativeRoutes": true }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \ -H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.routeLabels' \ 'https://routes.googleapis.com/directions/v2:computeRoutes'
در این مثال، ماسک فیلدی را مشخص میکنید تا پاسخ فقط شامل ویژگیهای
duration، distanceMeters,، و routeLabels برای هر مسیر باشد. سپس مشتری شما میتواند از آن اطلاعات برای انتخاب مسیر استفاده کند. برای اطلاعات بیشتر، به انتخاب اطلاعات برای برگرداندن مراجعه کنید.
نمونه پاسخ مسیرهای جایگزین
در پاسخ، از دارایی آرایه routeLabels برای شناسایی مسیر
دسترسی استفاده کنید:
برای مسیر پیشفرض، ویژگی
routeLabelsحاویDEFAULT_ROUTEاست.برای هر مسیر جایگزین، دارایی
routeLabelsشاملDEFAULT_ROUTE_ALTERNATEاست.
در این مثال، پاسخ حاوی مسیر پیشفرض و دو مسیر جایگزین است. توجه داشته باشید که مقادیر ویژگیهای duration و distanceMeters
برای هر مسیر متفاوت است:
{ "routes": [ { "distanceMeters": 150322, "duration": "5309s", "routeLabels": [ "DEFAULT_ROUTE" ] }, { "distanceMeters": 157614, "duration": "6879s", "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] }, { "distanceMeters": 189311, "duration": "7376s", "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] } ] }
چندخطیها در پاسخ گنجانده شود
برای اینکه کاربر راحتتر بتواند مسیر را انتخاب کند، چندخطی هر مسیر را به پاسخ اضافه کنید. سپس میتوانید هر چندخطی را روی نقشه نمایش دهید.
برای افزودن چندخطی، routes.polyline را در پوشش فیلد اضافه کنید:
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.routeLabels,routes.polyline'
سپس پاسخ حاوی چندخطی برای هر مسیر است:
{ "routes": [ { "distanceMeters": 150322, "duration": "5309s", "polyline": { "encodedPolyline": "mrlaGtavpLPLBTm…PgA^qC" }, "routeLabels": [ "DEFAULT_ROUTE" ] }, { "distanceMeters": 157614, "duration": "6879s", "polyline": { "encodedPolyline": "DmEd`@e@pCo@pCs@z…PgA^qC" }, "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] }, { "distanceMeters": 189311, "duration": "7376s", "polyline": { "encodedPolyline": "FVLL|Af@HPAV…PgA^qC" }, "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] } ] }