پرسشگان
جزئیات محصول
- اعلان «شرایط خدمات» Navigation SDK چگونه باید نشان داده شود؟
- راهنمای گفتاری از کدام زبانها پشتیبانی میکند؟
- آیا وقتی راننده از حالت ناوبری خارج میشود، جهت حفظ میشود؟
- آیا چندخطیها هنگام شروع یا تغییر مسیر دردسترس هستند؟
- آیا کاربران برنامه باید Google Maps را در تلفن همراه نصب کرده باشند؟
- آیا Navigation SDK میتواند پارکینگهای نزدیک رستورانها و مقصدهای دیگر را شناسایی کند؟
- آیا Navigation SDK جهت ترافیک را در لاینها هنگام نزدیک شدن به نقطه گردش نشان میدهد؟
مشکلات
- در Xcode 12، برنامهها بهدرستی برای شبیهساز ساخته نمیشوند. چگونه میتوانم این مشکل را برطرف کنم؟
GMSMapViewبار نمیشود.
شبکه
داده
- آیا میتوانم همه ایستگاهها/مقصدها را در یک سفر قبلاز شروع مسیر بازیابی کنم؟
- آیا راهنمای مسیر گامبهگام در ابتدای مسیر دردسترس است؟
- «زمان برآوردی ورود» (ETA) چگونه به کاربران برنامه اطلاع داده میشود؟
- آیا میتوان از
RoadSnappedLocationProviderبرای دریافت مکان فعلی راننده درصورت عدم وجود ناوبری در پیشنما استفاده کرد؟ - آیا «کیت توسعه نرمافزار پیمایش» از حصار جغرافیایی پشتیبانی میکند؟
- آیا میتوانم وقتی برنامه «ناوبری» در پسزمینه است، اعلانها را غیرفعال کنم؟
سفارشیسازی میانای کاربر
- آیا میتوانم بهترین گزینه مسیر را با رنگ کدگذاری کنم؟
- آیا Navigation SDK میتواند زمان تقریبی رسیدن به مقصد نهایی را نشان دهد؟
- چگونه میتوانم بهروزرسانیهای زمان تقریبی ورود را پنهان کنم؟
- کدام سفارشیسازیهای میانای کاربر برای کارتهای سرصفحه و پاصفحه دردسترس است؟
مسیریابی
- آیا میتوانم مسیر خاصی را به راننده ارائه دهم یا مسیرهای جایگزین را حذف کنم؟
- آیا میتوانم برچسبی متفاوت از مکان مقصد پیشفرض برای مقصد به راننده نشان دهم؟
- آیا میتوانم از Navigation SDK برای ردیابی انحرافات از مسیر تعریفشده استفاده کنم؟
- آیا راننده میتواند بدون تکمیل مسیر از ناوبری خارج شود؟
- آیا «کیت توسعه نرمافزار پیمایش» از مسیریابی و پیمایش برای کامیونها و خودروهای بزرگ پشتیبانی میکند؟
شبیهساز
گردش کار
سرویسهای جابهجایی
- استفاده از «کیت توسعه نرمافزار ناوبری» برای مشتریان «سرویسهای جابهجایی» چه تفاوتی دارد؟
- چگونه میتوانم متوجه شوم که مشتری «سرویسهای جابهجایی» هستم؟
- صدور صورتحساب «کیت توسعه نرمافزار پیمایش» برای مشتریان «خدمات جابهجایی» چگونه است؟
- کدام میاناهای برنامهسازی کاربردی Navigation SDK باید فقط توسط مشتریان «سرویسهای جابهجایی» استفاده شود؟
- اگر مشتری «خدمات جابهجایی» باشم، آیا میتوانم از پیادهسازی غیر«خدمات جابهجایی» Navigation SDK نیز استفاده کنم؟
جزئیات محصول
- برنامه شما باید کادر گفتگویی را با اعلان «شرایط خدمات» 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، از مراحل زیر برای ارائه اطلاعات زمان تخمینی ورود به کاربران برنامه استفاده کنید:
- زمان و فاصله را برای همه نقطهمسیرها بااستفاده از
Navigator.getTimeAndDistanceList()بازیابی کنید. - این اطلاعات را به برنامه کارخواه بازارسال کنید، همانطور که برای زمان تقریبی ورود راننده انجام میدهید.
در iOS، از این مراحل برای ارائه اطلاعات زمان تخمینی ورود به کاربران برنامه استفاده کنید:
- بازیابی بخشهای سفر بااستفاده از
Navigator.getRouteSegments(). - برای هر بخش از سفر با
GMSNavigator.timeToNextDestinationتماس بگیرید. - اطلاعات زمان را به برنامه کارخواه بازارسال کنید، همانطور که برای زمان تقریبی ورود راننده انجام میدهید.
- زمان و فاصله را برای همه نقطهمسیرها بااستفاده از
-
آیا میتوان از
RoadSnappedLocationProviderبرای دریافت مکان فعلی راننده درصورت عدم حضور ناوبری در پیشنما استفاده کرد؟ -
بله. در Android،
RoadSnappedLocationProviderبهطور پیشفرض در پسزمینه اجرا میشود.در iOS، برای اینکه پیمایش در پسزمینه همچنان اجرا شود، شنونده را برای
GMSRoadSnappedLocationProviderListenerپیادهسازی کنید و ویژگیallowsBackgroundLocationUpdatesرا رویTRUEتنظیم کنید. - آیا Navigation SDK از حصارکشی جغرافیایی پشتیبانی میکند؟
-
نه. در زمینه پیمایش،
remainingTimeOrdistanceChangeListenerنسبتبه حصار جغرافیایی برتری دارد. ممکن است حصار جغرافیایی هندسه جاده را درنظر نگیرد و ممکن است دقیقاً در نقطهای که راننده بهسمت آن پیمایش میکند متمرکز نباشد.میتوانید این عملکرد را بااستفاده از
remainingTimeOrdistanceChangeListenerتخمین بزنید.- آستانه را برای تعیین بسامد تماسهای برگشتی تنظیم کنید.
- مسافت باقیمانده تا مقصد را بررسی کنید.
برای مثال، اگر آستانه را روی ۱۰۰ متر تنظیم کنید، وقتی فاصله تا مقصد ۱۰۰ متر تغییر کند، فراخوانی برگشتی دریافت میکنید. با کاهش فاصله، میتوانید این آستانه را به مقدار کوچکتری بهروز کنید و فراخوانیهای برگشتی بیشتری دریافت کنید. سپس، فاصله باقیمانده را بررسی کنید تا ببینید بهاندازه کافی به مکان سوار کردن/ پیاده کردن نزدیک هستید یا نه.
در iOS، شنونده
GMSNavigatorListener.didUpdateRemainingDistanceرا پیادهسازی کنید تا فاصله بین اعلانها را مدیریت کنید. - آیا میتوانم اعلانها را وقتی برنامه «ناوبری» در پسزمینه است غیرفعال کنم؟
-
بله. در Android، از
Navigator.setHeadsUpNotificationEnabledبرای کنترل اعلانها استفاده کنید. این روش یک متغیر مستقل بولی دارد.FALSEاعلانها را غیرفعال میکند؛TRUEاعلانها را فعال میکند.در iOS، اعلان پسزمینه را برای مکانهای منطبق با جاده با تنظیم
GMSRoadSnappedLocationProvider.allowsBackgroundLocationUpdatesروی NO غیرفعال کنید.برای غیرفعال کردن پردازش پسزمینه برای دیگر اعلانهای مکان،
GMSNavigator.sendsBackgroundNotifications(NO)را فراخوانی کنید.
سفارشیسازی میانای کاربر
- آیا میتوانم بهترین گزینه مسیر را با رنگ مشخص کنم؟
- نه. درحالحاضر کدگذاری رنگی گزینه مسیر خاصی پشتیبانی نمیشود.
- آیا Navigation SDK میتواند زمان تخمینی رسیدن به مقصد نهایی را نشان دهد؟
-
بله. در Android، از روشهای زیر استفاده کنید:
- زمان و فاصله را برای همه نقطهمسیرها بااستفاده از
Navigator.getTimeAndDistanceList()بازیابی کنید. - پنهان کردن زمان تخمینی رسیدن به نقطهمسیر فعلی بااستفاده از
NavigationFragment.setEtaCardEnabled(false). - زمان تخمینی رسیدن به مقصد نهایی را پرداز بزنید.
در iOS، از موارد زیر استفاده کنید:
- تماس با
GMSNavigator.routeLegs(read). - با آخرین بخش، با
GMSNavigator.timeToNextDestinationتماس بگیرید. - پنهان کردن زمان تخمینی رسیدن نقطهمسیر فعلی بااستفاده از
MSMapView.settings.navigationFooterEnabled=NOروی FALSE. - زمان تقریبی رسیدن به مقصد نهایی را پرداز بزنید.
- زمان و فاصله را برای همه نقطهمسیرها بااستفاده از
- چگونه میتوانم بهروزرسانیهای زمان تخمینی ورود را پنهان کنم؟
-
میتوانید کارتهای زمان تخمینی ورود را با روشهای زیر غیرفعال کنید:
- در Android، از
navigationView.setEtaCardEnabled(false)استفاده کنید. - در iOS، از
GMSMapView.settings.navigationFooterEnabled=NOاستفاده کنید.
- در Android، از
-
در Android، از
StylingOptionsبرای تنظیم سبک رنگ پسزمینه استفاده میکنید. برای پنهان کردن یا نشان دادن سرصفحه و پاصفحه، از توابع عضوsetHeaderEnabledوsetFooterEnabledمربوط بهNavigationFragmentاستفاده کنید.در iOS، از
GMSMapView.settings.navigationHeaderPrimaryBackgroundColorبرای تنظیم سبک رنگ پسزمینه استفاده کنید. برای پنهان کردن یا نمایش دادن سرصفحه و پانویس از ویژگیهایnavigationFooterEnabledوnavigationHeaderEnabledGMSUISettingsاستفاده کنید.
مسیریابی
- آیا میتوانم مسیر خاصی را به راننده ارائه دهم یا مسیرهای جایگزین را حذف کنم؟
- نه. بهطور پیشفرض، چندین مسیر ارائه میشود و سریعترین مسیر اولویت دارد. میتوانید با افزودن اولویتهایی مثل «اجتناب از بزرگراهها و عوارضیها» به درخواستتان، بر مسیر پیشفرض تأثیر بگذارید. افزودن نقطهمسیر نیز بر مسیر تأثیر میگذارد.
- آیا میتوانم برچسبی متفاوت از مکان مقصد پیشفرض را برای مقصد به کاربر برنامه نشان دهم؟
-
بله. در Android، یک
Markerبا عنوان سفارشی برای مقصد و طول/عرض جغرافیایی ایجاد کنید. کیت توسعه نرمافزار ناوبری عنوان سفارشی و مختصات را درNavigationMapنمایش میدهد.در iOS، یک
GMSMarkerبرای مقصد ایجاد و نمایش میدهید. - آیا میتوانم از «کیت توسعه نرمافزار پیمایش» برای ردیابی انحراف از مسیر تعریفشده استفاده کنم؟
-
بله. در Android، از
Navigator.setRouteChangedListenerبرای دریافت اعلان هنگام تغییر مسیر یا توصیه شدن مسیر جدید استفاده کنید:- شنوندهای را ثبت کنید که موقعیت دستگاه را درطول مسیر بااستفاده از روش
Navigator.setRouteChangedListenerبررسی میکند. - کد را به رسیدگیکننده رویداد بازخوانی،
onRouteChanged، اضافه کنید:- پیامی با اطلاعات بهروزشده زمان تخمینی ورود و فاصله به کاربر برنامه ارسال کنید.
- مکان دستگاه را ردیابی کنید.
- [اختیاری] عملکردهای دیگری را که برنامهتان برای مدیریت شرایطی که راننده در مسیر تعیینشده نیست نیاز دارد اضافه کنید.
در iOS، از
GMSNavigatorو شنوندگان آن برای دریافت اعلانها هنگام تغییر مسیر یا توصیه مسیر جدید استفاده کنید:- در کنترلکننده نمای نقشه، پروتکل
GMSNavigatorListenerو پروتکلGMSRoadSnappedLocationProviderListenerرا پیادهسازی کنید. - اجرای
GMSNavigatorListener.navigatorDidChangeRoute. - بااستفاده از ویژگیهای
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 را فراخوانی کنند.
چندین میانای برنامهسازی کاربردی در «کیت توسعه نرمافزار ناوبری» وجود دارد که فقط برای استفاده مشتریان سرویسهای جابهجایی درنظر گرفته شده است و Google هزینه آنها را براساس هر تراکنش از مشتریان دریافت میکند. اگر مشتری «سرویسهای جابهجایی» نیستید، روشهای زیر بدونعملکرد هستند:
بله، مشتریان «خدمات جابهجایی» میتوانند از هر دو پیادهسازی «خدمات جابهجایی» و غیر«خدمات جابهجایی» Navigation SDK استفاده کنند. بااینحال، در هر زمان فقط میتوانید از یک نوع پیادهسازی در برنامه استفاده کنید. همچنین باید پروژه Google Cloud، حساب صورتحساب، و کلید API جدیدی ایجاد کنید که از موارد استفادهشده در پیادهسازی «سرویسهای جابهجایی» شما جدا باشد. برای اطلاعات بیشتر، نمای کلی راهاندازی Navigation SDK را ببینید.
برای کسب اطلاعات بیشتر درباره استفاده از پیادهسازی غیر«خدمات جابهجایی» از Navigation SDK، ازجمله انتقال برنامه از یک نوع پیادهسازی به نوع دیگر، با نماینده حساب Google خود تماس بگیرید.
توجه: اگر مشتری «سرویسهای جابهجایی» نیستید و میخواهید درباره مجموعه میاناهای برنامهسازی کاربردی و کیتهای توسعه نرمافزار «سرویسهای جابهجایی» بیشتر بدانید، با بخش فروش «پلاتفرم Google Maps» تماس بگیرید.