اولویتهای ترافیکی که انتخاب میکنید، دقت جزئیات مسیر را با عملکرد درخواست به یکی از دو روش زیر متعادل میکند:
- آگاه از ترافیک: دقیقترین نتایج ممکن را برمیگرداند (تأخیر بیشتر).
- بدون توجه به ترافیک: نتایج را در سریعترین زمان ممکن (کمترین تأخیر) برمیگرداند.
وقتی درخواستی ارائه میکنید، بسنجید که آیا بهتر است دقیقترین نتایج ممکن را برگردانید یا نتایج را در سریعترین زمان ممکن برگردانید. کتابخانه Routes گزینههایی ارائه میدهد که به شما امکان میدهد کیفیت دادههای پاسخ را درمقابل تأخیر پاسخ کنترل کنید.
تنظیم سطح ترافیک و مدل ترافیک
برای مشخص کردن سطح ترافیک،
routingPreference
را در ComputeRoutesRequest تنظیم کنید. فهرست زیر گزینههای routingPreference دردسترس را نشان میدهد:
TRAFFIC_UNAWARE(پیشفرض): نتایج را در سریعترین زمان ممکن با جزئیات تقریبی مسیریابی برمیگرداند.TRAFFIC_AWARE: بااستفاده از دادههای ترافیک همزمان، نتایج دقیقتری برمیگرداند، اما تأخیر بیشتری دارد.TRAFFIC_AWARE_OPTIMAL: بااستفاده از دادههای ترافیک همزمان، دقیقترین نتایج ممکن را برمیگرداند، اما بیشترین تأخیر را دارد.
ویژگی TRAFFIC_MODEL
نشاندهنده فرضیاتی است که باید هنگام پیشبینی مدت زمان در ترافیک استفاده شود (
TrafficModel.BEST_GUESS (پیشفرض)،
TrafficModel.OPTIMISTIC،
TrafficModel.PESSIMISTIC).
نحوه انتخاب مسیریابی بااطلاع از ترافیک
برای ایجاد درخواست مسیر با درنظر گرفتن ترافیک، این مراحل را دنبال کنید:
-
خصوصیت
travelModeرا رویDRIVINGتنظیم کنید. -
خصوصیت
routingPreferenceرا روی یکی از موارد زیر تنظیم کنید:TRAFFIC_AWARETRAFFIC_AWARE_OPTIMAL
توجه:
TRAFFIC_UNAWAREتنظیم پیشفرض است. -
خصوصیت
trafficModelرا روی یکی از موارد زیر تنظیم کنید: -
خصوصیت
extraComputationsرا رویTRAFFIC_ON_POLYLINEتنظیم کنید. -
فیلدهای
path،speedPaths، وrouteLabelsرا درخواست کنید.
درخواست نمونه زیر نشان میدهد که چگونه میتوان مسیر آگاه از ترافیک را درخواست کرد که دادههای ترافیک را در خط چندضلعی نشان میدهد:
// Define a traffic aware routes request with polylines. const requestWithTraffic = { origin: '200 King St San Francisco, CA 94107', destination: 'Pier 41, San Francisco, CA 94133', travelMode: 'DRIVING', routingPreference: 'TRAFFIC_AWARE_OPTIMAL', trafficModel: 'optimistic', extraComputations: ['TRAFFIC_ON_POLYLINE'], fields: ['speedPaths'], };
شرایط ترافیک
وضعیت تردد نرخ جریان ترافیک را مشخص میکند:
- ترافیک عادی: بدون تراکم و ترافیک با سرعت عادی جریان دارد.
- ترافیک سبک تا متوسط: افزایش ازدحام، با جریان ترافیک با سرعت کاهشیافته.
- ترافیک سنگین: ازدحام شدید، با کاهش شدید سرعت ترافیک.
بدون اطلاع از ترافیک
TRAFFIC_UNAWARE تنظیم پیشفرض است. وقتی میخواهید پاسخها در سریعترین زمان ممکن برگردانده شوند و جزئیات تقریبی مسیریابی کافی است، از این اولویت مسیریابی استفاده کنید.
TRAFFIC_UNAWARE مسیر بدون درنظر گرفتن شرایط ترافیک فعلی محاسبه شده است. این اولویت مسیریابی منجر به سریعترین پاسخ درخواست (کمترین تأخیر) میشود.
اگر TRAFFIC_UNAWARE را انتخاب کنید، مسیر و مدت زمان انتخابشده براساس شبکه جادهای و شرایط ترافیکی میانگین مستقل از زمان است، نه شرایط جادهای فعلی.
درنتیجه، ممکن است مسیرها شامل جادههایی باشند که موقتاً بسته شدهاند. نتایج یک درخواست معین ممکن است بهدلیل تغییرات در شبکه جادهای، بهروزرسانی میانگین وضعیت ترافیک، و ماهیت توزیعشده سرویس درطول زمان متفاوت باشد. نتایج ممکن است بین مسیرهای تقریباً معادل در هر زمان یا با هر تناوبی متفاوت باشد.
پاسخهایی که خواهید دید در اینجا آمده است:
-
duration: حاوی زمان تقریبی ورود برای مسیر است. staticDuration: «زمان تقریبی رسیدن» برای مسیر فقط با درنظر گرفتن اطلاعات ترافیک تاریخی. برایTRAFFIC_UNAWARE، این مورد حاوی همان مقدارdurationاست.
آگاه از ترافیک
وقتی جزئیات مسیریابی دقیقتری نسبت به
TRAFFIC_UNAWARE میخواهید و درعینحال اگر پاسخها با
افزایش متوسط در تأخیر برگردانده شوند مشکلی ندارید، از این اولویت مسیریابی استفاده کنید.
وقتی اولویت مسیریابی TRAFFIC_AWARE را تنظیم میکنید، سرویس با درنظر گرفتن شرایط ترافیکی فعلی مسیر را محاسبه میکند. درنتیجه، مسیر و جزئیات مسیر شرایط دنیای واقعی را دقیقتر منعکس میکند. ازآنجاییکه این افزایش کیفیت داده به قیمت تأخیر پاسخ تمام میشود، بهینهسازیهای عملکردی برای کاهش بخش زیادی از تأخیر اعمال میشود.
پاسخهایی که خواهید دید در اینجا آورده شده است:
-
duration: زمان تقریبی ورود با درنظر گرفتن اطلاعات ترافیک همزمان. staticDuration: زمان تقریبی ورود برای مسیر با درنظر گرفتن فقط اطلاعات ترافیک گذشته.
بهینه با درنظر گرفتن ترافیک
وقتی میخواهید نتایج با بالاترین کیفیت را بدون توجه به مدت زمان پاسخدهی دریافت کنید، از این اولویت مسیریابی استفاده کنید. این اولویت مسیریابی طولانیترین تأخیر را در برگرداندن پاسخها دارد (بالاترین تأخیر).
وقتی اولویت مسیریابی TRAFFIC_AWARE_OPTIMAL را تنظیم میکنید، سرویس
مسیر را با درنظر گرفتن شرایط ترافیک فعلی محاسبه میکند، اما بهینهسازیهای عملکرد را
اعمال نمیکند. در این حالت، سرور جستجوی جامعتری در شبکه جادهای انجام میدهد
تا مسیر بهینه را پیدا کند.
اولویت مسیریابی TRAFFIC_AWARE_OPTIMAL معادل حالتی است که
maps.google.com و برنامه تلفن همراه Google Maps استفاده میکنند.
وقتی از این گزینه با computeRouteMatrix استفاده میکنید، تعداد عناصر در یک
درخواست (تعداد مبدأ × تعداد مقصد) نمیتواند از ۲۵ بیشتر باشد.
پاسخهایی که خواهید دید در اینجا آمده است:
-
duration: زمان تقریبی ورود برای مسیر با درنظر گرفتن اطلاعات ترافیک همزمان. staticDuration: زمان تقریبی ورود برای مسیر با درنظر گرفتن فقط اطلاعات ترافیک گذشته.
تنظیم زمان خروج (اختیاری)
از این دارایی فقط برای درخواستهای آگاه از ترافیک استفاده کنید که زمان حرکت باید در آینده باشد. اگر ویژگی departureTime را تنظیم نکنید، بهطور پیشفرض
روی زمانی تنظیم میشود که درخواست را ارسال میکنید.
وقتی میخواهید نحوه پیشبینی ترافیک توسط سرویس را هنگام انتخاب مسیر اصلاح کنید، از دارایی departureTime بههمراه گزینههای TRAFFIC_AWARE و
TRAFFIC_AWARE_OPTIMAL استفاده کنید.
TRAFFIC_UNAWARE: توصیه نمیشود زیرا انتخاب مسیر و مدتزمان براساس شبکه جادهای و میانگین شرایط ترافیک مستقل از زمان است.TRAFFIC_AWAREوTRAFFIC_AWARE_OPTIMAL: برای حرکتهایی که در آینده نزدیک اتفاق میافتد توصیه میشود زیرا این اولویتها شرایط ترافیک لحظهای را درنظر میگیرند. هرچهdepartureTimeبه زمان فعلی نزدیکتر باشد، ترافیک زنده مهمتر و مرتبطتر میشود. هرچه زمان حرکت را برای آینده دورتری تنظیم کنید، شرایط ترافیک گذشته بیشتر در انتخاب مسیرها درنظر گرفته میشود.
دریافت کد مسیر
نشانهای مسیر، نمایشی از مسیر هستند که برای وب ایمن است و با کدبندی base64 ارائه میشود. از یک توکن مسیر برای همرسانی مسیر با Navigation SDK استفاده کنید. کیت توسعه نرمافزار از این توکن برای بازسازی مسیر و حفظ هدف اصلی ناوبری، حتی درطول تغییر مسیر، استفاده میکند.
برای دریافت کردن توکن مسیر، این مراحل را دنبال کنید:
- travelMode را روی
DRIVINGتنظیم کنید. routingPreferenceرا رویTRAFFIC_AWAREیاTRAFFIC_AWARE_OPTIMALتنظیم کنید.- فیلد
routeTokenرا درخواست کنید.
درخواست نمونه زیر نحوه درخواست کردن کد مسیر را نشان میدهد:
// Define a traffic aware routes request with a route token. const requestWithRouteToken = { origin: '200 King St San Francisco, CA 94107', destination: 'Pier 41, San Francisco, CA 94133', travelMode: 'DRIVING', routingPreference: 'TRAFFIC_AWARE', fields: ['path', 'speedPaths', 'routeLabels', 'routeToken'], };