این راهنما برای چه کسانی مناسب است: اگر شما یک توسعهدهنده موبایل هستید که مسئول ساخت تجربه ناوبری گام به گام برای رانندگان کامیونها، اتوبوسها یا سایر وسایل نقلیه تجاری بزرگ هستید، این راهنما را بخوانید.
آنچه این راهنما پوشش میدهد: این راهنما توضیح میدهد که چگونه یک مسیر مخصوص کامیون که توسط Routes API یا Route Optimization API تولید شده است را انتخاب کنید و از آن برای راهاندازی یک جلسه ناوبری گام به گام با Navigation SDK برای iOS استفاده کنید.
آنچه یاد خواهید گرفت
شما یاد خواهید گرفت که چگونه وظایف زیر را انجام دهید:
- از یک
routeTokenبرای اتصال برنامهریزی مسیر backend به تجربه ناوبری درون برنامهای استفاده کنید . - SDK ناوبری را طوری پیکربندی کنید که از یک مسیر کامیون از پیش برنامهریزیشده استفاده کند.
- بفهمید که محدودیتهای خاص کامیون چگونه در رابط کاربری ناوبری برای راننده نمایش داده میشود .
پیشنیازها
قبل از شروع، مطمئن شوید که شرایط زیر را دارید:
۱. درخواست دسترسی برای پروژه خود
مسیریابی وسایل نقلیه بزرگ برای تعداد محدودی از مشتریان در دسترس است. برای ابراز علاقه و درخواست دسترسی به پروژه Google Cloud خود، فرم تماس را پر کنید. یکی از نمایندگان گوگل برای مراحل بعدی با شما تماس خواهد گرفت.
پس از اعطای دسترسی توسط گوگل، مطمئن شوید که پروژه گوگل کلود شما برای مسیریابی وسایل نقلیه بزرگ آماده شده است.
اگر سازمان شما از پروژههای جداگانه Google Cloud برای APIهای مسیریابی backend و SDK ناوبری موبایل استفاده میکند، برای تهیه هر پروژه با گوگل تماس بگیرید.
۲. ایجاد مسیر در بکاند را تنظیم کنید و یک توکن مسیر دریافت کنید
قبل از شروع ناوبری روی دستگاه، سرور backend شما باید یک مسیر کامیون ایجاد کند و با استفاده از یکی از API های زیر، یک routeToken دریافت کند:
- API مسیرها : برای محاسبه مسیرهای تک کامیونی بین مبدا و مقصد توصیه میشود. برای دستورالعملهای تنظیم، به بخش «ایجاد مسیرهای بزرگ وسایل نقلیه و زمانهای رسیدن به مقصد» مراجعه کنید.
- API بهینهسازی مسیر : برای بهینهسازی مسیرهای چند توقفه در ناوگان توصیه میشود. برای اطلاعات بیشتر، به راهنمای مسیریابی وسایل نقلیه بزرگ API بهینهسازی مسیر مراجعه کنید.
درخواست backend شما باید travelMode: TRUCK به همراه ویژگیهای فیزیکی وسیله نقلیه (ارتفاع، عرض، طول، وزن، تعداد محور و محموله مواد خطرناک) مشخص کند. API مسیریابی در پاسخ خود یک routeToken برمیگرداند که سرور backend شما آن را به برنامه تلفن همراه شما ارسال میکند.
۳. حداقل الزامات SDK و سیستم را برآورده کنید
برنامه شما باید از حداقل نسخه مورد نیاز Navigation SDK یعنی ۵.۴.۰ یا بالاتر استفاده کند.علاوه بر این، پروژه شما باید الزامات استاندارد راهاندازی Navigation SDK را برآورده کند.
محدودیتها و دستورالعملهای عملیاتی
قبل از شروع، به محدودیتها و دستورالعملهای عملیاتی زیر توجه کنید:
- دسترسی جغرافیایی : مسیریابی وسایل نقلیه بزرگ در ۴۸ ایالت مجاور ایالات متحده (به طور کلی در دسترس) و ژاپن (آزمایشی) در دسترس است. این سرویس در آلاسکا، هاوایی یا سرزمینهای ایالات متحده در دسترس نیست.
- هشدار و ایمنی راننده : رانندگان نباید صرفاً به مسیرهایی که توسط SDK ناوبری ارائه میشوند، به عنوان مسیرهای ایمن یا قانونی تکیه کنند. مسیرها ممکن است در همه شرایط جاده برای وسیله نقلیه مناسب نباشند و دنبال کردن آنها میتواند رانندگان را در معرض خطراتی مانند فاصله کم از سطح جاده یا جادههای با محدودیت وزن قرار دهد. رانندگان باید همیشه هوشیار باشند و از علائم جادهای نصب شده و مقررات محلی پیروی کنند.
- مسیرهای با بهترین تلاش : وقتی API مسیریابی نمیتواند مسیری را پیدا کند که کاملاً با محدودیتهای وسیله نقلیه مطابقت داشته باشد، یک مسیر "بهترین تلاش" را برمیگرداند که هنوز ممکن است از بخشهای محدود عبور کند. به عنوان مثال، API مسیرها، پرچم
routeRestrictionsPartiallyIgnoredرا در پاسخ خود تنظیم میکند. هنگام پیمایش این مسیرها، SDK ناوبری، راهنماهای مسیر را برای برجسته کردن محدودیتهای مربوطه نمایش میدهد. در این موارد، مسیرها را با دقت برنامهریزی کنید و از یک مسیر علامتگذاری شده به عنوان تنها منبع حقیقت برای برنامهریزی یا پیمایش استفاده نکنید. - ویژگیهای پشتیبانی نشده : مسیریابی وسایل نقلیه بزرگ از ویژگیهای زیر پشتیبانی نمیکند:
- تعیین نرخ عوارض کامیون
- محدودیتهای سرعت مخصوص کامیون یا وسیله نقلیه سنگین
- مسیریابی مواد خطرناک رادیواکتیو
- محدودیتهای استفاده : درخواستهای ارسالی به SDK ناوبری از محدودیتهای استاندارد استفاده و سهمیهبندی پیروی میکنند. برای اطلاعات بیشتر، به بخش «استفاده و صورتحساب» مراجعه کنید.
نمایش رابط کاربری مخصوص کامیون (توضیحات مسیر)
کیت توسعه نرمافزار ناوبری (Navigation SDK) بهطور خودکار هشدارهای بصری، به نام راهنماهای مسیر ، را روی نقشه نمایش میدهد تا رانندگان را از محدودیتهای پیش روی کامیونها مطلع کند. راهنماها برای محدودیتهایی که در طول مسیر برنامهریزیشده رخ میدهند، ظاهر میشوند، اما در سایر جادههای مجاور نمایش داده نمیشوند.
کیت توسعه نرمافزار ناوبری (Navigation SDK) شامل توضیحاتی برای محدودیتهای زیر است:
| محدودیت | نماد و متن فراخوان | شرایط نمایش |
|---|---|---|
| ارتفاع | ![]() زرد = هشدار، وسیله نقلیه شما نزدیک به حداکثر ارتفاع مجاز است ![]() قرمز = ارتفاع وسیله نقلیه شما بالاتر از حداکثر ارتفاع مجاز است | وقتی ارتفاع خودرو نزدیک به محدودیت باشد، یک علامت زرد رنگ ظاهر میشود. ![]() اگر مسیر مطابق با قوانین نباشد و محدودیت ارتفاع را نقض کند، یک هشدار قرمز ظاهر میشود. ![]() |
| وزن | ![]() | وقتی وزن وسیله نقلیه از حد مجاز جاده بیشتر شود، یک علامت قرمز رنگ ظاهر میشود. ![]() |
| کامیونها ممنوع | ![]() | هنگام سفر در بخشی از جاده که محدودیت عبور کامیونهای تجاری وجود دارد، یک علامت قرمز رنگ ظاهر میشود. ![]() |
| کالاهای خطرناک | ![]() | زمانی که حمل بار مواد خطرناک وسیله نقلیه در بخشی از جاده ممنوع باشد، یک علامت هشدار قرمز رنگ ظاهر میشود. ![]() |
نحوه کار توکنهای مسیر
یک routeToken یک اسنپشات رمزگذاریشده از مسیری است که توسط بخش مسیریابی گوگل ایجاد میشود. این توکن، هندسه مسیر برنامهریزیشده و همچنین ابعاد فیزیکی و مشخصات محدودیت وسیله نقلیه را در خود جای میدهد.
گردش کار مراحل زیر را دنبال میکند:
- درخواست مسیر : سرور بکاند شما یک مسیر کامیون را از Routes API (یا Route Optimization API ) درخواست میکند.
- دریافت توکن : API مسیریابی، مسیر سازگار را محاسبه کرده و یک
routeTokenبه سرور backend شما برمیگرداند. - توکن ارسالی : سرور بکاند شما،
routeTokenو مختصات مقصد را به برنامه موبایل شما ارسال میکند. - ارسال به SDK : برنامه موبایل
routeTokenرا به Navigation SDK ارسال میکند. - راهنمای شروع : کیت توسعه نرمافزار ناوبری (Navigation SDK) تمام جنبههای تجربه پیمایش گام به گام، از جمله نمایش راهنماهای مسیر و مدیریت تغییر مسیر پویا با توجه به محدودیتهای وسیله نقلیه را مدیریت میکند .
محاسبات و مسیریابی مجدد پویا
در طول ناوبری فعال، شرایط ترافیکی، بسته بودن جاده یا عدم رعایت دستورالعملها ممکن است باعث انحراف وسیله نقلیه از مسیر برنامهریزی شده شود.
وقتی تغییر مسیر رخ میدهد:
- کیت توسعه نرمافزار ناوبری (Navigation SDK) به طور خودکار مسیر رسیدن به مقصد را دوباره محاسبه میکند.
- SDK ویژگیها و ابعاد وسیله نقلیه کدگذاری شده در
routeTokenاصلی را حفظ میکند. - مسیر تازه محاسبه شده از فاصله کم، پلهای با وزن محدود و جادههای ممنوعه برای کامیونهای تجاری اجتناب میکند.
پیادهسازی: شروع یک سفر ویژه کامیون
برای تنظیم اولیه و شروع ناوبری گام به گام با یک توکن مسیر وسیله نقلیه بزرگ، این مراحل را دنبال کنید.
مرحله ۱: توکن مسیر را از بکاند خود دریافت کنید
برنامه تلفن همراه شما رشته routeToken را به همراه مختصات مقصد از سرور backend شما دریافت میکند. برای جزئیات بیشتر در مورد تولید این توکن در سرور خود، به بخش Generate large vehicle routes & ETAs در مستندات Routes API مراجعه کنید.
کد زیر یک نمونه توکن مسیر است:
{
"routeToken": "CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g"
}
مرحله ۲: توکن را به ناویگاتور (Navigator) ارسال کنید
routeToken و نقاط مسیر مقصد را به متد setDestinations به mapView.navigator ارسال کنید.
هنگام پیکربندی نقاط مسیر و ارسال توکن مسیر، نکات زیر را در نظر داشته باشید:
- الزام تطابق مقصد : مختصات مقصد ارسالی به
setDestinationsباید با مختصات مقصد استفاده شده هنگام تولیدrouteTokenمطابقت داشته باشد. تعیین یک مقصد متفاوت باعث خطا میشود. - مسیریابی کنار جادهای : وسایل نقلیه تجاری بزرگ نمیتوانند به راحتی در خیابانهای باریک دور بزنند. برای اطمینان از اینکه کامیون به مقصد در سمت صحیح جاده نزدیک میشود، در نقاط مسیر خود
preferSameSideOfRoad = trueرا تنظیم کنید. - توقفهای وسیله نقلیه : برای هدایت کامیون به مکان مناسب برای توقف یا تخلیه بار، در نقاط مسیر خود،
vehicleStopover = trueقرار دهید. - نقاط ناوبری : اگر مقصد شما ورودی بار یا اسکله بارگیری مشخصی دارد، آن را با استفاده از یک توکن نقطه ناوبری مشخص کنید.
مرحله ۳: بررسی وضعیت مسیر و شروع راهنمایی
مقدار GMSRouteStatus برگردانده شده در تابع setDestinations را ارزیابی کنید. وقتی وضعیت .OK ( GMSRouteStatusOK ) است، برای شروع هدایت فعال گام به گام، isGuidanceActive = true ( guidanceActive = YES ) قرار دهید.
مثال کد
توکن مسیر را با استفاده از متد mapView.navigator setDestinations به Navigation SDK ارسال کنید، و همان نقاط مسیر مقصدی را که هنگام ایجاد توکن مسیر استفاده کردهاید، مشخص کنید:
// Obtain the routeToken string from your backend
let routeToken = "route token returned by Routes API"
mapView.navigator?.setDestinations([destination], routeToken: routeToken, callback: {...})
نمایشگرهای داخل خودرو
شما میتوانید با استفاده از Navigation for CarPlay ، جلسه ناوبری وسیله نقلیه بزرگ را روی صفحه نمایشهای داخل داشبورد نمایش دهید.مراحل بعدی
- تغییر رابط کاربری ناوبری : کنترلهای رابط کاربری داخلی و عناصر بصری، مانند قطبنما، دکمهی بازگشت به صفحه و نمای دوربین را سفارشی کنید.
- گوش دادن به رویدادهای ناوبری : مدیریت بهروزرسانیهای ناوبری و رویدادهای چرخه عمر، مانند پیشرفت مسیر، تغییرات ETA و تغییر مسیرها.









