پرسشگان

جزئیات محصول

مشکلات

شبکه

داده

سفارشی‌سازی میانای کاربر

مسیریابی

شبیه‌ساز

گردش کار

سرویس‌های جابه‌جایی

جزئیات محصول

برنامه شما باید کادر گفتگویی را با اعلان «شرایط خدمات» Navigation SDK پیاده‌سازی کند که هر راننده باید آن را بپذیرد. این کادر گفتگو به راننده فرصت می‌دهد با «شرایط خدمات» موافقت کند. فایل نوشتاری شرایط همراه با Navigation SDK ارائه شده است.
در Android، از روش NavigationApi.showTermsAndConditionsDialog برای نمایش کادر گفتگوی حاوی شرایط استفاده کنید.
در iOS، GMSNavigationServices.showTermsAndConditionsDialogIfNeededWithCompanyName را فراخوانی کنید.
هر زبانی که Google Maps Mobile از آن پشتیبانی می‌کند به‌طور خودکار برای Navigation SDK دردسترس است. دستگاه زبان سیستم پیش‌فرضی دارد و برنامه نمی‌تواند آن تنظیم را تغییر دهد؛ بااین‌حال، برنامه به بیش‌از ۷۰ زبان دسترسی دارد.

بله. در Android، پس‌از شروع، LocationListener همچنان در پس‌زمینه اجرا می‌شود. برنامه شما به چسباندن موقعیت به جاده ادامه می‌دهد و جهت را حفظ می‌کند.

در iOS، برای ادامه دریافت به‌روزرسانی‌های مکان مربوط به موقعیت و جهت در پس‌زمینه، چسباندن به جاده را پیاده‌سازی کنید و allowsBackgroundLocationUpdates را روی YES تنظیم کنید.

بله. وقتی مسیری ایجاد یا تغییر داده می‌شود، RouteChangeListener چندخطی‌ها را ارائه می‌دهد.

نه، Navigation SDK نیازی به نصب Google Maps Mobile روی دستگاه ندارد.
نه، Navigation SDK درحال‌حاضر این عملکرد را ارائه نمی‌دهد.
بله. جهت ترافیک دردسترس است و به‌طور پیش‌فرض نمایش داده می‌شود.

مشکلات

در Xcode 12، برنامه‌ها به‌درستی برای شبیه‌ساز ساخته نمی‌شوند. چگونه می‌توانم این مشکل را برطرف کنم؟

برای رفع این مشکل، «تنظیمات ساخت» پروژه Xcode را باز کنید و arm64 را به Excluded Architectures فقط برای ساخت‌های «شبیه‌ساز iOS» اضافه کنید.

برای اطلاعات بیشتر، رشته StackOverflow زیر را ببینید.

GMSMapView بار نمی‌شود.

اگر GMSMapView بار نشود:

  • بررسی کنید NavSDK در «کنسول Cloud» فعال باشد.
  • اگر Nav SDK نصب شده است، اما پروژه شما از Nav SDK API استفاده نمی‌کند، آن را از دودویی خود بردارید.

شبکه

کیت توسعه نرم‌افزار پیمایش چگونه اتصال ضعیف را مدیریت می‌کند؟
کیت توسعه نرم‌افزار پیمایش مسیر هر سفر را ازقبل ذخیره می‌کند. اطلاعات پیش‌ذخیره‌شده شامل اطلاعات مسیریابی برای ۱۵ تا ۲۰ دقیقه، و مسیرهای جایگزین درصورت انحراف راننده از مسیر است. کیت توسعه نرم‌افزار ناوبری موقعیت را بااستفاده از GPS و حسگرهای دستگاه تخمین می‌زند.
حالت آفلاین دردسترس است؟
نه، Navigation SDK درحال‌حاضر حالت آفلاین ارائه نمی‌دهد؛ اما این کیت توسعه نرم‌افزار اطلاعات پیش‌ذخیره‌شده‌ای برای سفر ارائه می‌دهد.

داده

آیا می‌توانم قبل‌از شروع مسیر، همه توقف‌ها/مقصدها را در یک سفر بازیابی کنم؟

بله. در Android، برای بازیابی مسیرهای یک مسیر، Navigator.getRouteSegments() را فراخوانی کنید.

در iOS، با GMSNavigator.routeLegs(read) تماس بگیرید.

آیا راهنمای مسیر گام‌به‌گام در ابتدای مسیر دردسترس است؟
بله. «کیت توسعه نرم‌افزار پیمایش» فهرستی از بخش‌های مسیر را ارائه می‌دهد. علاوه‌براین، راننده می‌تواند با تند کشیدن کارت مسیرها در سرصفحه، هر مانور را ببیند.
زمان تخمینی ورود چگونه به کاربران برنامه اطلاع داده می‌شود؟

در Android، از مراحل زیر برای ارائه اطلاعات زمان تخمینی ورود به کاربران برنامه استفاده کنید:

  1. زمان و فاصله را برای همه نقطه‌مسیرها بااستفاده از Navigator.getTimeAndDistanceList() بازیابی کنید.
  2. این اطلاعات را به برنامه کارخواه بازارسال کنید، همان‌طور که برای زمان تقریبی ورود راننده انجام می‌دهید.

در iOS، از این مراحل برای ارائه اطلاعات زمان تخمینی ورود به کاربران برنامه استفاده کنید:

  1. بازیابی بخش‌های سفر بااستفاده از Navigator.getRouteSegments().
  2. برای هر بخش از سفر با GMSNavigator.timeToNextDestination تماس بگیرید.
  3. اطلاعات زمان را به برنامه کارخواه بازارسال کنید، همان‌طور که برای زمان تقریبی ورود راننده انجام می‌دهید.
آیا می‌توان از RoadSnappedLocationProvider برای دریافت مکان فعلی راننده درصورت عدم حضور ناوبری در پیش‌نما استفاده کرد؟

بله. در Android،‏ RoadSnappedLocationProvider به‌طور پیش‌فرض در پس‌زمینه اجرا می‌شود.

در iOS، برای اینکه پیمایش در پس‌زمینه همچنان اجرا شود، شنونده را برای GMSRoadSnappedLocationProviderListener پیاده‌سازی کنید و ویژگی allowsBackgroundLocationUpdates را روی TRUE تنظیم کنید.

آیا Navigation SDK از حصارکشی جغرافیایی پشتیبانی می‌کند؟

نه. در زمینه پیمایش، remainingTimeOrdistanceChangeListener نسبت‌به حصار جغرافیایی برتری دارد. ممکن است حصار جغرافیایی هندسه جاده را درنظر نگیرد و ممکن است دقیقاً در نقطه‌ای که راننده به‌سمت آن پیمایش می‌کند متمرکز نباشد.

می‌توانید این عملکرد را بااستفاده از remainingTimeOrdistanceChangeListener تخمین بزنید.

  1. آستانه را برای تعیین بسامد تماس‌های برگشتی تنظیم کنید.
  2. مسافت باقی‌مانده تا مقصد را بررسی کنید.

برای مثال، اگر آستانه را روی ۱۰۰ متر تنظیم کنید، وقتی فاصله تا مقصد ۱۰۰ متر تغییر کند، فراخوانی برگشتی دریافت می‌کنید. با کاهش فاصله، می‌توانید این آستانه را به مقدار کوچک‌تری به‌روز کنید و فراخوانی‌های برگشتی بیشتری دریافت کنید. سپس، فاصله باقی‌مانده را بررسی کنید تا ببینید به‌اندازه کافی به مکان سوار کردن/ پیاده کردن نزدیک هستید یا نه.

در iOS، شنونده GMSNavigatorListener.didUpdateRemainingDistance را پیاده‌سازی کنید تا فاصله بین اعلان‌ها را مدیریت کنید.

آیا می‌توانم اعلان‌ها را وقتی برنامه «ناوبری» در پس‌زمینه است غیرفعال کنم؟

بله. در Android، از Navigator.setHeadsUpNotificationEnabled برای کنترل اعلان‌ها استفاده کنید. این روش یک متغیر مستقل بولی دارد. FALSE اعلان‌ها را غیرفعال می‌کند؛ TRUE اعلان‌ها را فعال می‌کند.

در iOS، اعلان پس‌زمینه را برای مکان‌های منطبق با جاده با تنظیم GMSRoadSnappedLocationProvider.allowsBackgroundLocationUpdates روی NO غیرفعال کنید.

برای غیرفعال کردن پردازش پس‌زمینه برای دیگر اعلان‌های مکان، GMSNavigator.sendsBackgroundNotifications(NO) را فراخوانی کنید.

سفارشی‌سازی میانای کاربر

آیا می‌توانم بهترین گزینه مسیر را با رنگ مشخص کنم؟
نه. درحال‌حاضر کدگذاری رنگی گزینه مسیر خاصی پشتیبانی نمی‌شود.
آیا Navigation SDK می‌تواند زمان تخمینی رسیدن به مقصد نهایی را نشان دهد؟

بله. در Android، از روش‌های زیر استفاده کنید:

  1. زمان و فاصله را برای همه نقطه‌مسیرها بااستفاده از Navigator.getTimeAndDistanceList() بازیابی کنید.
  2. پنهان کردن زمان تخمینی رسیدن به نقطه‌مسیر فعلی بااستفاده از NavigationFragment.setEtaCardEnabled(false).
  3. زمان تخمینی رسیدن به مقصد نهایی را پرداز بزنید.

در iOS، از موارد زیر استفاده کنید:

  1. تماس با GMSNavigator.routeLegs(read).
  2. با آخرین بخش، با GMSNavigator.timeToNextDestination تماس بگیرید.
  3. پنهان کردن زمان تخمینی رسیدن نقطه‌مسیر فعلی بااستفاده از MSMapView.settings.navigationFooterEnabled=NO روی FALSE.
  4. زمان تقریبی رسیدن به مقصد نهایی را پرداز بزنید.
چگونه می‌توانم به‌روزرسانی‌های زمان تخمینی ورود را پنهان کنم؟

می‌توانید کارت‌های زمان تخمینی ورود را با روش‌های زیر غیرفعال کنید:

  • در Android، از navigationView.setEtaCardEnabled(false) استفاده کنید.
  • در iOS، از GMSMapView.settings.navigationFooterEnabled=NO استفاده کنید.
کدام سفارشی‌سازی‌های واسط کاربر برای کارت‌های سرصفحه و پاصفحه دردسترس است؟

در Android، از StylingOptions برای تنظیم سبک رنگ پس‌زمینه استفاده می‌کنید. برای پنهان کردن یا نشان دادن سرصفحه و پاصفحه، از توابع عضو setHeaderEnabled و setFooterEnabled مربوط به NavigationFragment استفاده کنید.

در iOS، از GMSMapView.settings.navigationHeaderPrimaryBackgroundColor برای تنظیم سبک رنگ پس‌زمینه استفاده کنید. برای پنهان کردن یا نمایش دادن سرصفحه و پانویس از ویژگی‌های navigationFooterEnabled و navigationHeaderEnabled GMSUISettings استفاده کنید.

مسیریابی

آیا می‌توانم مسیر خاصی را به راننده ارائه دهم یا مسیرهای جایگزین را حذف کنم؟
نه. به‌طور پیش‌فرض، چندین مسیر ارائه می‌شود و سریع‌ترین مسیر اولویت دارد. می‌توانید با افزودن اولویت‌هایی مثل «اجتناب از بزرگراه‌ها و عوارضی‌ها» به درخواستتان، بر مسیر پیش‌فرض تأثیر بگذارید. افزودن نقطه‌مسیر نیز بر مسیر تأثیر می‌گذارد.
آیا می‌توانم برچسبی متفاوت از مکان مقصد پیش‌فرض را برای مقصد به کاربر برنامه نشان دهم؟

بله. در Android، یک Marker با عنوان سفارشی برای مقصد و طول/عرض جغرافیایی ایجاد کنید. کیت توسعه نرم‌افزار ناوبری عنوان سفارشی و مختصات را در NavigationMap نمایش می‌دهد.

در iOS، یک GMSMarker برای مقصد ایجاد و نمایش می‌دهید.

آیا می‌توانم از «کیت توسعه نرم‌افزار پیمایش» برای ردیابی انحراف از مسیر تعریف‌شده استفاده کنم؟

بله. در Android، از Navigator.setRouteChangedListener برای دریافت اعلان هنگام تغییر مسیر یا توصیه شدن مسیر جدید استفاده کنید:

  1. شنونده‌ای را ثبت کنید که موقعیت دستگاه را درطول مسیر بااستفاده از روش Navigator.setRouteChangedListener بررسی می‌کند.
  2. کد را به رسیدگی‌کننده رویداد بازخوانی، onRouteChanged، اضافه کنید:
    • پیامی با اطلاعات به‌روزشده زمان تخمینی ورود و فاصله به کاربر برنامه ارسال کنید.
    • مکان دستگاه را ردیابی کنید.
    • [اختیاری] عملکردهای دیگری را که برنامه‌تان برای مدیریت شرایطی که راننده در مسیر تعیین‌شده نیست نیاز دارد اضافه کنید.

در iOS، از GMSNavigator و شنوندگان آن برای دریافت اعلان‌ها هنگام تغییر مسیر یا توصیه مسیر جدید استفاده کنید:

  1. در کنترل‌کننده نمای نقشه، پروتکل GMSNavigatorListener و پروتکل GMSRoadSnappedLocationProviderListener را پیاده‌سازی کنید.
  2. اجرای GMSNavigatorListener.navigatorDidChangeRoute.
  3. بااستفاده از ویژگی‌های routeLegs و currentRouteLeg مربوط به GMSNavigator، به مسیر جدید دسترسی پیدا کنید.
آیا راننده می‌تواند بدون تکمیل مسیر از ناوبری خارج شود؟

بله. در Android، روش Navigator.stopGuidance() را برای توقف پیمایش فراخوانی کنید.

در iOS، با GMSNavigator.clearDestinations تماس بگیرید.

آیا «کیت توسعه نرم‌افزار ناوبری» از مسیریابی و ناوبری برای کامیون‌ها و خودروهای بزرگ پشتیبانی می‌کند؟

بله. با مسیریابی خودروهای بزرگ (LVR)، می‌توانید توکن‌های مسیر مختص کامیون را که توسط Routes API یا Route Optimization API تولید شده‌اند به Navigation SDK ارسال کنید. این کیت توسعه نرم‌افزار ناوبری گام‌به‌گام را با توضیحات مسیر (ارتفاع، وزن، مواد خطرناک، و محدودیت‌های کامیون) ارائه می‌دهد و نمایه فیزیکی خودرو را درطول مسیریابی مجدد پویا حفظ می‌کند. برای جزئیات، به پیمایش مسیرهای وسایل نقلیه بزرگ مراجعه کنید.

شبیه‌ساز

آیا شبیه‌ساز از تغییرات مسیر پشتیبانی می‌کند؟

بله. در Android، با simulateLocationsAlongNewRoute تماس بگیرید تا سفری را که شامل تغییر مسیر است شبیه‌سازی کنید. روش simulateLocationsAlongExistingRoute تغییرات مسیر موجود را نادیده می‌گیرد.

در iOS، از GMSLocationSimulator.simulateAlongNewRouteToDestinations برای شبیه‌سازی سفری که شامل تغییر مسیر است استفاده کنید. اگر انتظار ندارید مسیر تغییر کند، می‌توانید از GMSLocationSimulator.simulateLocationsAlongExistingRoute یا GMSLocationSimulator.simulateAlongNewRouteToDestinations استفاده کنید.

گردش کار

چگونه پس‌از بستن فعالیتی که حاوی قطعه ناوبری است، اعلان را ببندم؟

اعلان ناوبری درطول ناوبری، وقتی فعالیت بسته است، نمایان می‌ماند. وقتی خودرو به مقصد می‌رسد، ناوبری متوقف می‌شود و اعلان ناپدید می‌شود.

برای مدیریت کلیک‌ها روی اعلان، از Navigator.startGuidance(intent resumeIntent) استفاده کنید. وقتی کاربر برنامه روی اعلان کلیک می‌کند، resume intent فعال می‌شود. معمولاً Navigator.startguidance(getIntent()) از «فعالیت» اصلی فراخوانده می‌شود که وقتی کاربر برنامه روی اعلان کلیک می‌کند، «فعالیت» را دوباره فراخوانی می‌کند.

سرویس‌های جابه‌جایی

استفاده از «کیت توسعه نرم‌افزار پیمایش» برای مشتریان «سرویس‌های جابه‌جایی» چه تفاوتی دارد؟

«سرویس‌های جابه‌جایی Google Maps Platform» مجموعه‌ای از میاناهای برنامه‌سازی کاربردی و کیت‌های توسعه نرم‌افزار را برای کمک به پشتیبانی از نیازهای سازمانی کسب‌وکارهای حمل‌ونقل و لجستیک ارائه می‌دهد. برای مشتریان «سرویس‌های جابه‌جایی»، Navigation SDK معمولاً در ترکیب با سرویس‌های مرتبط برای بهینه‌سازی مسیر، اعزام، ردگیری تکلیف، تجزیه‌وتحلیل ناوگان، و غیره استفاده می‌شود. صدور صورت‌حساب «کیت توسعه نرم‌افزار پیمایش» برای مشتریان «سرویس‌های جابه‌جایی» نیز متفاوت است. برای اطلاعات بیشتر، به مستندات سرویس‌های جابه‌جایی مراجعه کنید.

محصولات Mobility فقط برای مشتریان منتخب دردسترس است. برای اطلاعات بیشتر، با نماینده فروش تماس بگیرید.

چگونه می‌توانم متوجه شوم که مشتری «خدمات جابه‌جایی» هستم؟
اگر مطمئن نیستید که «کیت توسعه نرم‌افزار ناوبری» را به‌عنوان مشتری «سرویس‌های جابه‌جایی» پیاده‌سازی می‌کنید یا نه، به‌دنبال فراخوانی ReportBillableEvent در کدتان بگردید. فقط مشتریان Mobility Services باید روش ReportBillableEvent را فراخوانی کنند.

نحوه صدور صورت‌حساب «کیت توسعه نرم‌افزار پیمایش» برای مشتریان «خدمات جابه‌جایی» چگونه است؟
برای مشتریان «سرویس‌های جابه‌جایی»، صورت‌حساب و قیمت‌گذاری Navigation SDK به قرارداد خدماتی که با Google Maps Platform دارید بستگی دارد. برای کسب اطلاعات درباره درستی‌سنجی اینکه پیاده‌سازی «سرویس‌های جابه‌جایی» شما به‌درستی صورت‌حساب می‌شود، به اعتبارسنجی صورت‌حساب مراجعه کنید. برای اطلاعات بیشتر درباره صورت‌حساب «خدمات جابه‌جایی»، با نماینده فروش تماس بگیرید.

کدام میاناهای برنامه‌سازی کاربردی «کیت توسعه نرم‌افزار ناوبری» باید فقط توسط مشتریان «سرویس‌های جابه‌جایی» استفاده شود؟

چندین میانای برنامه‌سازی کاربردی در «کیت توسعه نرم‌افزار ناوبری» وجود دارد که فقط برای استفاده مشتریان سرویس‌های جابه‌جایی درنظر گرفته شده است و Google هزینه آن‌ها را براساس هر تراکنش از مشتریان دریافت می‌کند. اگر مشتری «سرویس‌های جابه‌جایی» نیستید، روش‌های زیر بدون‌عملکرد هستند:

اگر مشتری «سرویس‌های جابه‌جایی» باشم، آیا می‌توانم از پیاده‌سازی غیر«سرویس‌های جابه‌جایی» Navigation SDK نیز استفاده کنم؟

بله، مشتریان «خدمات جابه‌جایی» می‌توانند از هر دو پیاده‌سازی «خدمات جابه‌جایی» و غیر«خدمات جابه‌جایی» Navigation SDK استفاده کنند. بااین‌حال، در هر زمان فقط می‌توانید از یک نوع پیاده‌سازی در برنامه استفاده کنید. همچنین باید پروژه Google Cloud، حساب صورت‌حساب، و کلید API جدیدی ایجاد کنید که از موارد استفاده‌شده در پیاده‌سازی «سرویس‌های جابه‌جایی» شما جدا باشد. برای اطلاعات بیشتر، نمای کلی راه‌اندازی Navigation SDK را ببینید.

برای کسب اطلاعات بیشتر درباره استفاده از پیاده‌سازی غیر«خدمات جابه‌جایی» از Navigation SDK، ازجمله انتقال برنامه از یک نوع پیاده‌سازی به نوع دیگر، با نماینده حساب Google خود تماس بگیرید.

توجه: اگر مشتری «سرویس‌های جابه‌جایی» نیستید و می‌خواهید درباره مجموعه میاناهای برنامه‌سازی کاربردی و کیت‌های توسعه نرم‌افزار «سرویس‌های جابه‌جایی» بیشتر بدانید، با بخش فروش «پلاتفرم Google Maps» تماس بگیرید.