تنظیمات ترافیکی که انتخاب میکنید، دقت جزئیات مسیر را با عملکرد درخواست به یکی از دو روش زیر متعادل میکند:
- آگاه از ترافیک: دقیقترین نتایج ممکن (با تأخیر بالاتر) را ارائه میدهد.
- عدم آگاهی از ترافیک: نتایج را در اسرع وقت (کمترین تأخیر) برگردانید.
وقتی درخواستی ارسال میکنید، بسنجید که آیا بهتر است دقیقترین نتایج ممکن را برگردانید یا نتایج را در سریعترین زمان ممکن برگردانید. کتابخانهی Routes گزینههایی را ارائه میدهد که به شما امکان میدهد کیفیت دادههای پاسخ را در مقابل تأخیر پاسخ کنترل کنید.
سطح ترافیک و مدل ترافیک را تنظیم کنید
برای مشخص کردن سطح ترافیک، routingPreference را روی ComputeRoutesRequest تنظیم کنید. لیست زیر گزینههای موجود routingPreference را نشان میدهد:
-
TRAFFIC_UNAWARE(پیشفرض): نتایج را با سریعترین زمان ممکن و به همراه جزئیات تقریبی مسیریابی برمیگرداند. -
TRAFFIC_AWARE: با استفاده از دادههای ترافیکی بلادرنگ، نتایج دقیقتری را برمیگرداند، اما با تأخیر بالاتر. -
TRAFFIC_AWARE_OPTIMAL: دقیقترین نتایج ممکن را با استفاده از دادههای ترافیکی در لحظه، اما با بالاترین تأخیر، برمیگرداند.
ویژگی TRAFFIC_MODEL نشاندهنده فرضیاتی است که هنگام پیشبینی مدت زمان ترافیک استفاده میشوند ( TrafficModel.BEST_GUESS (پیشفرض)، TrafficModel.OPTIMISTIC ، TrafficModel.PESSIMISTIC ).
نحوه انتخاب مسیریابی آگاه از ترافیک
برای ایجاد یک درخواست مسیر آگاه از ترافیک، این مراحل را دنبال کنید:
ویژگی
travelModeرا رویDRIVINGتنظیم کنید.ویژگی
routingPreferenceرا روی یکی از موارد زیر تنظیم کنید:-
TRAFFIC_AWARE -
TRAFFIC_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: شامل زمان تقریبی رسیدن به مقصد (ETA) برای مسیر است. -
staticDuration: زمان تقریبی رسیدن به مقصد (ETA) برای مسیر با در نظر گرفتن اطلاعات ترافیکی گذشته. برایTRAFFIC_UNAWARE، این مقدار شامل همان مقدارdurationاست.
آگاه از ترافیک
از این ترجیح مسیریابی زمانی استفاده کنید که جزئیات مسیریابی دقیقتری نسبت به TRAFFIC_UNAWARE میخواهید، و در عین حال برایتان مهم نیست که پاسخها با افزایش متوسطی در تأخیر بازگردانده شوند.
وقتی اولویت مسیریابی TRAFFIC_AWARE را تنظیم میکنید، سرویس مسیر را با توجه به شرایط ترافیک فعلی محاسبه میکند. در نتیجه، مسیر و جزئیات مسیر با دقت بیشتری شرایط دنیای واقعی را منعکس میکنند. از آنجا که این افزایش کیفیت دادهها به قیمت تأخیر پاسخ تمام میشود، بهینهسازیهای عملکرد برای کاهش بخش عمدهای از تأخیر اعمال میشوند.
پاسخهایی که خواهید دید به شرح زیر است:
-
duration: زمان رسیدن (ETA) با در نظر گرفتن اطلاعات ترافیکی در لحظه. -
staticDuration: زمان تقریبی رسیدن به مقصد (ETA) برای مسیر که فقط اطلاعات ترافیکی گذشته را در نظر میگیرد.
ترافیک آگاه بهینه
از این ترجیح مسیریابی زمانی استفاده کنید که میخواهید نتایجی با بالاترین کیفیت، صرف نظر از مدت زمان پاسخها، دریافت کنید. این ترجیح مسیریابی طولانیترین تأخیر را در بازگرداندن پاسخها دارد (بالاترین تأخیر).
وقتی ترجیح مسیریابی TRAFFIC_AWARE_OPTIMAL را تنظیم میکنید، سرویس مسیر را با توجه به شرایط ترافیک فعلی محاسبه میکند، اما بهینهسازیهای عملکرد را اعمال نمیکند. در این حالت، سرور جستجوی جامعتری در شبکه جادهای انجام میدهد تا مسیر بهینه را پیدا کند.
تنظیمات مسیریابی TRAFFIC_AWARE_OPTIMAL معادل حالتی است که توسط maps.google.com و برنامه موبایل Google Maps استفاده میشود.
وقتی از این گزینه به همراه computeRouteMatrix استفاده میکنید، تعداد عناصر موجود در یک درخواست (تعداد مبداها × تعداد مقصدها) نمیتواند از ۲۵ تجاوز کند.
پاسخهایی که خواهید دید به شرح زیر است:
-
duration: زمان تقریبی رسیدن به مقصد (ETA) برای مسیر با در نظر گرفتن اطلاعات ترافیکی لحظهای. -
staticDuration: زمان تقریبی رسیدن به مقصد (ETA) برای مسیر که فقط اطلاعات ترافیکی گذشته را در نظر میگیرد.
تنظیم زمان حرکت (اختیاری)
از این ویژگی فقط برای درخواستهای مربوط به ترافیک که زمان حرکت باید در آینده باشد استفاده کنید. اگر ویژگی departureTime را تنظیم نکنید، به طور پیشفرض زمانی را که درخواست را انجام میدهید در نظر میگیرد.
وقتی میخواهید نحوهی پیشبینی ترافیک توسط سرویس را هنگام انتخاب مسیر تنظیم کنید، از ویژگی departureTime به همراه گزینههای TRAFFIC_AWARE و TRAFFIC_AWARE_OPTIMAL استفاده کنید.
-
TRAFFIC_UNAWARE: توصیه نمیشود زیرا انتخاب مسیر و مدت زمان بر اساس شبکه جادهای و شرایط ترافیکی مستقل از میانگین زمان است. -
TRAFFIC_AWAREوTRAFFIC_AWARE_OPTIMAL: برای حرکتهایی که در آینده نزدیک اتفاق میافتند توصیه میشود زیرا این تنظیمات شرایط ترافیک زنده را در نظر میگیرند. هرچه زمانdepartureTimeبه زمان حال نزدیکتر باشد، ترافیک زنده مهمتر و مرتبطتر میشود. هرچه زمان حرکت را به آینده دورتری تنظیم کنید، در انتخاب مسیرها، شرایط ترافیکی گذشته بیشتر مورد توجه قرار میگیرد.
دریافت توکن مسیر
توکنهای مسیر، نمایش یک مسیر با رمزگذاری base64 و ایمن در وب هستند. از توکن مسیر برای اشتراکگذاری یک مسیر با SDK ناوبری استفاده کنید. SDK از این توکن برای بازسازی مسیر و حفظ هدف ناوبری اصلی، حتی در طول تغییر مسیر، استفاده میکند.
برای دریافت توکن مسیر، این مراحل را دنبال کنید:
- حالت سفر را روی
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'], };