سوالات متداول
جزئیات محصول
- چگونه باید اعلامیه شرایط سرویس Navigation SDK نشان داده شود؟
- راهنمای صوتی کدام زبان ها را پشتیبانی می کند؟
- آیا وقتی راننده از حالت ناوبری خارج می شود یاتاقان حفظ می شود؟
- آیا پلی لاین ها هنگام شروع یا تغییر مسیر در دسترس هستند؟
- آیا کاربران برنامه باید Google Maps موبایل را نصب کنند؟
- آیا Navigation SDK میتواند پارکینگ نزدیک رستورانها و مقاصد دیگر را شناسایی کند؟
- آیا Navigation SDK جهت ترافیک در خطوط را هنگام نزدیک شدن به نقطه عطف نشان می دهد؟
مسائل
- در Xcode 12، برنامه ها به درستی برای شبیه ساز ساخته نمی شوند. چگونه می توانم این را برطرف کنم؟
-
GMSMapView
بارگیری نمی شود.
شبکه
داده ها
- آیا می توانم قبل از شروع مسیر، تمام توقف ها/مقصدهای سفر را بازیابی کنم؟
- آیا راهنمایی مسیر گام به گام در ابتدای مسیر موجود است؟
- زمان تخمینی ورود (ETA) چگونه به کاربران برنامه ابلاغ می شود؟
- اگر مسیریابی در پیش زمینه نباشد، آیا می توان از
RoadSnappedLocationProvider
برای به دست آوردن موقعیت مکانی ضبط شده فعلی راننده استفاده کرد؟ - آیا Navigation SDK از geofencing پشتیبانی می کند؟
- آیا می توانم وقتی برنامه ناوبری در پس زمینه است اعلان ها را غیرفعال کنم؟
سفارشی سازی UI
- آیا می توانم بهترین گزینه مسیر را کد رنگ کنم؟
- آیا Navigation SDK می تواند ETA را برای مقصد نهایی نشان دهد؟
- چگونه می توانم به روز رسانی های ETA را پنهان کنم؟
- کدام شخصیسازیهای رابط کاربری برای کارتهای سرصفحه و پاورقی در دسترس هستند؟
مسیریابی
- آیا می توانم مسیر خاصی را به راننده ارائه دهم یا مسیرهای جایگزین را حذف کنم؟
- آیا می توانم برچسبی متفاوت از مکان مقصد پیش فرض به راننده نشان دهم؟
- آیا می توانم از Navigation SDK برای ردیابی انحرافات از یک مسیر تعریف شده استفاده کنم؟
- آیا راننده می تواند بدون تکمیل مسیر از مسیریابی خارج شود؟
شبیه ساز
گردش کار
خدمات تحرک
- استفاده از Navigation SDK برای مشتریان Mobility Services چگونه متفاوت است؟
- چگونه می توانم بفهمم که یک مشتری Mobility Services هستم؟
- صورتحساب Navigation SDK برای مشتریان Mobility Services چگونه است؟
- کدام APIهای Navigation SDK باید فقط توسط مشتریان Mobility Services استفاده شود؟
- اگر من یک مشتری Mobility Services هستم، آیا می توانم از اجرای خدمات غیرحرکتی SDK ناوبری نیز استفاده کنم؟
جزئیات محصول
- برنامه شما باید یک کادر محاوره ای با اعلان شرایط سرویس Navigation SDK اجرا کند که هر راننده باید آن را بپذیرد. این کادر محاوره ای به راننده این فرصت را می دهد که با شرایط خدمات موافقت کند. یک فایل متنی از شرایط همراه با Navigation SDK ارائه شده است.
- در اندروید، از روش
NavigationApi.showTermsAndConditionsDialog
برای نمایش کادر محاوره ای حاوی عبارات استفاده کنید.- در iOS، با
GMSNavigationServices.showTermsAndConditionsDialogIfNeededWithCompanyName
تماس بگیرید. - در اندروید، از روش
- هر زبانی که توسط Google Maps Mobile پشتیبانی می شود به طور خودکار برای Navigation SDK در دسترس است. یک دستگاه دارای یک زبان سیستم پیش فرض است و یک برنامه نمی تواند آن تنظیمات را تغییر دهد. با این حال، این برنامه به بیش از 70 زبان دسترسی دارد.
بله. در اندروید، پس از شروع،
LocationListener
همچنان در پسزمینه اجرا میشود. برنامه شما به گرفتن موقعیت جاده ادامه می دهد و یاتاقان را حفظ می کند.در iOS، برای ادامه دریافت بهروزرسانیهای موقعیت مکانی و یاتاقان در پسزمینه، snapping را پیادهسازی کنید و
allowsBackgroundLocationUpdates
رویYES
تنظیم کنید.بله. هنگامی که یک مسیر ایجاد یا تغییر می کند،
RouteChangeListener
چند خطوط را ارائه می دهد.- خیر، Navigation SDK نیازی به نصب Google Maps Mobile روی دستگاه ندارد.
- خیر، Navigation SDK در حال حاضر این قابلیت را ارائه نمی دهد.
- بله. جهت ترافیک به صورت پیش فرض در دسترس است و نمایش داده می شود.
مسائل
- در Xcode 12، برنامه ها به درستی برای شبیه ساز ساخته نمی شوند. چگونه می توانم این را برطرف کنم؟
برای رفع این مشکل، تنظیمات ساخت پروژه Xcode خود را باز کنید و
arm64
بهExcluded Architectures
برای ساختهای "iOS Simulator" اضافه کنید.برای اطلاعات بیشتر، به رشته StackOverflow زیر مراجعه کنید.
- GMSMapView بارگیری نمی شود.
اگر GMSMapView بارگیری نشد:
- بررسی کنید که NavSDK در Cloud Console فعال باشد.
- اگر Nav SDK نصب شده است، اما پروژه شما از Nav SDK API استفاده نمی کند، آن را از باینری خود حذف کنید.
شبکه
- چگونه SDK ناوبری اتصال ضعیف را کنترل می کند؟
- Navigation SDK مسیر را برای هر سفر از قبل ذخیره می کند. اطلاعات از پیش ذخیره شده شامل اطلاعات مسیریابی به مدت 15 تا 20 دقیقه و جایگزین های مسیر در صورت انحراف راننده از مسیر است. Navigation SDK موقعیت را با استفاده از GPS دستگاه و حسگرها تقریبی می کند.
- آیا حالت آفلاین موجود است؟
- خیر، Navigation SDK در حال حاضر حالت آفلاین را ارائه نمی دهد. با این حال، SDK اطلاعات از پیش ذخیره شده را برای یک سفر فراهم می کند.
داده ها
- آیا می توانم قبل از شروع مسیر، تمام توقف ها/مقصدهای سفر را بازیابی کنم؟
بله. در Android، برای بازیابی مسیرها،
Navigator.getRouteSegments()
را فراخوانی کنید.در iOS، با
GMSNavigator.routeLegs(read)
تماس بگیرید.- آیا راهنمایی مسیر گام به گام در ابتدای مسیر موجود است؟
- بله. Navigation SDK فهرستی از بخش های مسیر را ارائه می دهد. علاوه بر این، راننده می تواند برای دیدن هر مانور، از طریق کارت جهت ها در هدر حرکت کند.
- چگونه ETA به کاربران برنامه منتقل می شود؟
در Android، از مراحل زیر برای دادن اطلاعات ETA به کاربران برنامه استفاده کنید:
- با استفاده از
Navigator.getTimeAndDistanceList()
زمان و مسافت را برای تمام نقاط بین راهی بازیابی کنید. - همانطور که در حال حاضر برای درایور ETA انجام می دهید، این اطلاعات را به برنامه مشتری ارسال کنید.
در iOS، از این مراحل برای دادن اطلاعات ETA به کاربران برنامه استفاده کنید:
- پاهای سفر را با استفاده از
Navigator.getRouteSegments()
بازیابی کنید. - برای هر مرحله سفر با
GMSNavigator.timeToNextDestination
تماس بگیرید. - همانطور که در حال حاضر برای درایور ETA انجام می دهید، اطلاعات زمان را به برنامه مشتری ارسال کنید.
- با استفاده از
- اگر مسیریابی در پیش زمینه نباشد، آیا می توان از
RoadSnappedLocationProvider
برای به دست آوردن موقعیت مکانی ضبط شده فعلی راننده استفاده کرد؟ بله. در اندروید،
RoadSnappedLocationProvider
به طور پیش فرض در پس زمینه اجرا می شود.در iOS، برای اجرای ناوبری در پسزمینه، شنونده را برای
GMSRoadSnappedLocationProviderListener
پیادهسازی کنید و ویژگیallowsBackgroundLocationUpdates
را رویTRUE
تنظیم کنید.- آیا Navigation SDK از geofencing پشتیبانی می کند؟
خیر. در زمینه ناوبری،
remainingTimeOrdistanceChangeListener
نسبت به geofence ساده مزیت دارد. geofence ممکن است هندسه جاده را در نظر نگیرد، و ممکن است بر روی نقطه دقیقی که راننده در حال حرکت به آن است متمرکز نباشد.می توانید این عملکرد را با استفاده از
remainingTimeOrdistanceChangeListener
تقریبی کنید.- آستانه را برای تعیین فرکانس تماس ها تنظیم کنید.
- فاصله باقی مانده تا مقصد را بررسی کنید.
برای مثال، اگر آستانه را روی 100 متر تنظیم کنید، زمانی که فاصله تا مقصد 100 متر تغییر کند، یک تماس پاسخ دریافت خواهید کرد. با کاهش فاصله، می توانید این آستانه را به مقدار کمتری به روز کنید و تماس های مکرر بیشتری دریافت کنید. سپس، فاصله باقیمانده را بررسی کنید تا مشخص کنید آیا به اندازه کافی به محل تحویل یا رها کردن نزدیک هستید یا خیر.
در iOS، شنونده
GMSNavigatorListener.didUpdateRemainingDistance
را برای مدیریت فاصله بین اعلان ها اجرا کنید.- آیا می توانم وقتی برنامه ناوبری در پس زمینه است اعلان ها را غیرفعال کنم؟
بله. در Android، از
Navigator.setHeadsUpNotificationEnabled
برای کنترل اعلانها استفاده کنید. این روش دارای آرگومان بولی است.FALSE
اعلان ها را غیرفعال می کند.TRUE
اعلان ها را فعال می کند.در iOS، با تنظیم
GMSRoadSnappedLocationProvider.allowsBackgroundLocationUpdates
روی NO، اعلان پسزمینه را برای مکانهای تصادفی غیرفعال کنید.برای غیرفعال کردن پردازش پسزمینه برای سایر اعلانهای مکان، با
GMSNavigator.sendsBackgroundNotifications(NO)
تماس بگیرید.
سفارشی سازی UI
- آیا می توانم بهترین گزینه مسیر را کد رنگ کنم؟
- خیر. کدگذاری رنگی یک گزینه مسیر خاص در حال حاضر پشتیبانی نمی شود.
- آیا Navigation SDK می تواند ETA را برای مقصد نهایی نشان دهد؟
بله. در اندروید از روش های زیر استفاده کنید:
- با استفاده از
Navigator.getTimeAndDistanceList()
زمان و مسافت را برای تمام نقاط بین راهی بازیابی کنید. - ETA نقطه بین راه فعلی را با استفاده از
NavigationFragment.setEtaCardEnabled(false)
مخفی کنید. - مقصد نهایی ETA را رندر کنید.
در iOS از موارد زیر استفاده کنید:
- با
GMSNavigator.routeLegs(read)
تماس بگیرید. - با آخرین مرحله، با
GMSNavigator.timeToNextDestination
تماس بگیرید. - ETA نقطه راه فعلی را با استفاده از
MSMapView.settings.navigationFooterEnabled=NO
به FALSE پنهان کنید. - مقصد نهایی ETA را رندر کنید.
- با استفاده از
- چگونه می توانم به روز رسانی های ETA را پنهان کنم؟
می توانید کارت های ETA را با روش های زیر غیرفعال کنید:
- در Android، از
navigationView.setEtaCardEnabled(false)
استفاده کنید. - در iOS، از
GMSMapView.settings.navigationFooterEnabled=NO
استفاده کنید.
- در Android، از
در اندروید، از
StylingOptions
برای تنظیم استایل رنگ پسزمینه استفاده میکنید. برای پنهان کردن یا نمایش سرصفحه و پاورقی، از توابع عضوsetHeaderEnabled
وsetFooterEnabled
NavigationFragment
استفاده کنید.در iOS، از
GMSMapView.settings.navigationHeaderPrimaryBackgroundColor
برای تنظیم استایل رنگ پسزمینه استفاده کنید. برای پنهان کردن یا نمایش سرصفحه و پاورقی از ویژگی هایnavigationFooterEnabled
وnavigationHeaderEnabled
GMSUISettings
استفاده کنید.
مسیریابی
- آیا می توانم مسیر خاصی را به راننده ارائه دهم یا مسیرهای جایگزین را حذف کنم؟
- خیر به طور پیش فرض چندین مسیر ارائه شده و سریعترین مسیر اولویت دارد. میتوانید با افزودن تنظیمات برگزیده، مانند «جلوگیری از بزرگراهها و عوارضی» به درخواست خود، مسیر پیشفرض را تحت تأثیر قرار دهید. اضافه کردن ایستگاه های بین راه نیز بر مسیر تأثیر می گذارد.
- آیا می توانم به کاربر برنامه برچسبی متفاوت از مکان مقصد پیش فرض برای مقصد نشان دهم؟
بله. در Android، یک
Marker
با عنوان سفارشی برای مقصد و طول و عرض جغرافیایی ایجاد کنید. Navigation SDK عنوان سفارشی و مختصات را درNavigationMap
نمایش می دهد.در iOS، یک
GMSMarker
برای مقصد ایجاد و نمایش می دهید.- آیا می توانم از Navigation SDK برای ردیابی انحرافات از یک مسیر تعریف شده استفاده کنم؟
بله. در Android، از
Navigator.setRouteChangedListener
برای دریافت اعلانها هنگام تغییر مسیر یا توصیه مسیر جدید استفاده کنید:- شنونده ای را ثبت کنید که موقعیت دستگاه را در طول مسیر با استفاده از روش
Navigator.setRouteChangedListener
بررسی می کند. - کد را به کنترل کننده رویداد پاسخ به تماس،
onRouteChanged
اضافه کنید:- برای کاربر برنامه پیامی با اطلاعات به روز شده ETA و فاصله ارسال کنید.
- مکان دستگاه را ردیابی کنید.
- [اختیاری] قابلیتهای دیگری را اضافه کنید که برنامهتان مورد نیاز است تا زمانی که راننده از مسیر تعیینشده خارج میشود، آن را مدیریت کند.
در iOS، از
GMSNavigator
و شنوندگان آن برای دریافت اعلانها هنگام تغییر مسیر یا توصیه مسیر جدید استفاده کنید:- در کنترلر نمای نقشه، پروتکل
GMSNavigatorListener
و پروتکلGMSRoadSnappedLocationProviderListener
را پیاده سازی کنید. -
GMSNavigatorListener.navigatorDidChangeRoute
را پیاده سازی کنید. - با استفاده از
routeLegs
و ویژگی هایcurrentRouteLeg
GMSNavigator
به مسیر جدید دسترسی پیدا کنید.
- شنونده ای را ثبت کنید که موقعیت دستگاه را در طول مسیر با استفاده از روش
بله. در اندروید، متد
Navigator.stopGuidance()
را برای توقف ناوبری فراخوانی کنید.در iOS، با
GMSNavigator.clearDestinations
تماس بگیرید.
شبیه ساز
- آیا شبیه ساز از تغییرات مسیر پشتیبانی می کند؟
بله. در اندروید، با
simulateLocationsAlongNewRoute
تماس بگیرید تا سفری را که شامل تغییر مسیر است شبیه سازی کنید. متدsimulateLocationsAlongExistingRoute
تغییرات مسیر موجود را نادیده می گیرد.در iOS، از
GMSLocationSimulator.simulateAlongNewRouteToDestinations
برای شبیه سازی سفری که شامل تغییر مسیر است، استفاده کنید. اگر هیچ تغییر مسیری را پیشبینی نمیکنید، میتوانید ازGMSLocationSimulator.simulateLocationsAlongExistingRoute
یاGMSLocationSimulator.simulateAlongNewRouteToDestinations
استفاده کنید.
گردش کار
- چگونه می توانم پس از بستن فعالیتی که حاوی یک قطعه ناوبری است، اعلان را رد کنم؟
اعلان ناوبری در طول ناوبری، زمانی که فعالیت بسته می شود، قابل مشاهده باقی می ماند. وقتی وسیله نقلیه به مقصد می رسد، ناوبری متوقف می شود و اعلان ناپدید می شود.
برای مدیریت کلیکهای روی اعلان، از
Navigator.startGuidance(intent resumeIntent)
استفاده کنید. هنگامی که کاربر برنامه روی اعلان کلیک می کند،resume intent
فعال می شود. به طور معمول،Navigator.startguidance(getIntent())
از Activity اصلی فراخوانی می شود، که وقتی کاربر برنامه روی اعلان کلیک می کند، Activity را به یاد می آورد.
خدمات تحرک
Google Maps Platform Mobility Services مجموعهای از API و SDK را برای کمک به پشتیبانی از نیازهای سازمانی برای حمل و نقل و کسبوکارهای تدارکات ارائه میکند. برای مشتریان Mobility Services، Navigation SDK معمولاً همراه با خدمات مرتبط برای بهینهسازی مسیر، ارسال، ردیابی کار، تجزیه و تحلیل ناوگان و موارد دیگر استفاده میشود. Navigation SDK نیز برای مشتریان Mobility Services صورتحساب متفاوتی دارد. برای اطلاعات بیشتر، به مستندات Mobility Services مراجعه کنید.
محصولات Mobility در حال حاضر فقط برای مشتریان منتخب در دسترس هستند. برای اطلاعات بیشتر با نماینده فروش خود تماس بگیرید.
ReportBillableEvent
در کد خود باشید. فقط مشتریان Mobility Services باید با روش ReportBillableEvent
تماس بگیرند.چندین API در Navigation SDK وجود دارد که فقط برای استفاده توسط مشتریان Mobility Services در نظر گرفته شده است که توسط Google بر اساس هر تراکنش صورتحساب دریافت میکنند. اگر مشتری Mobility Services نیستید، روشهای زیر غیرمجاز هستند:
بله، مشتریان Mobility Services میتوانند از خدمات Mobility و غیر Mobility Services از Navigation SDK استفاده کنند. با این حال، شما می توانید تنها از یک نوع پیاده سازی در یک برنامه در یک زمان استفاده کنید. همچنین باید یک پروژه جدید Google Cloud، حساب صورتحساب و کلید API ایجاد کنید، جدا از مواردی که در پیادهسازی Mobility Services استفاده میکنید. برای اطلاعات بیشتر، به نمای کلی راه اندازی SDK پیمایش مراجعه کنید.
برای اطلاعات بیشتر در مورد استفاده از سرویسهای غیرحرکتی از Navigation SDK، از جمله انتقال یک برنامه از یک نوع پیادهسازی به نوع دیگر، با نماینده حساب Google خود تماس بگیرید.
توجه: اگر در حال حاضر مشتری Mobility Services نیستید و علاقه مند به کسب اطلاعات بیشتر در مورد مجموعه Mobility Services از API ها و SDK هستید، با فروش پلت فرم Google Maps تماس بگیرید .