الأسئلة الشائعة
حقائق عن المنتج
- كيف يجب عرض إشعار بنود خدمة حزمة تطوير البرامج (SDK) للتنقل؟
- ما هي اللغات التي تتوفّر بها ميزة "الإرشاد الصوتي"؟
- هل يتم الحفاظ على الاتجاه عندما يخرج السائق من وضع "التنقل"؟
- هل تتوفر الخطوط المتعددة عند بدء المسار أو تغييره؟
- هل يحتاج مستخدمو التطبيق إلى تثبيت تطبيق "خرائط Google" للأجهزة الجوّالة؟
- هل يمكن لحزمة تطوير البرامج (SDK) للتنقّل تحديد مواقف السيارات بالقرب من المطاعم والوجهات الأخرى؟
- هل تعرض حزمة تطوير البرامج (SDK) الخاصة بالتنقّل اتجاه حركة المرور في الممرات عند الاقتراب من نقطة تحوّل؟
المشاكل
- في Xcode 12، لا تنشئ التطبيقات بشكل صحيح للمحاكي. كيف يمكنني حلّ هذه المشكلة؟
- لا يتم تحميل
GMSMapView
.
الشبكة
البيانات
- هل يمكنني استرداد جميع محطات التوقّف/الوجهات في رحلة قبل بدء المسار؟
- هل يتوفّر اتّجاهات مفصّلة في بداية المسار؟
- كيف يتم إعلام مستخدمي التطبيق بالوقت المقدّر للوصول؟
- هل يمكن استخدام
RoadSnappedLocationProvider
للحصول على الموقع الجغرافي الحالي الذي تم قطعه للسائق إذا لم يكن التنقّل في المقدّمة؟ - هل توفِّر حزمة "SDK للتنقّل" ميزة تحديد الموقع الجغرافي؟
- هل يمكنني إيقاف الإشعارات عندما يكون تطبيق "التنقل" في الخلفية؟
تخصيص واجهة المستخدم
- هل يمكنني ترميز أفضل خيار للمسار باللون؟
- هل يمكن لحزمة تطوير البرامج (SDK) للتنقل عرض الوقت المقدّر للوصول للوجهة النهائية؟
- كيف يمكنني إخفاء تعديلات الوقت المقدر للوصول؟
- ما هي عمليات تخصيص واجهة المستخدم المتاحة لبطاقات الرؤوس والتذييلات؟
يتم الآن تخطيط المسار
- هل يمكنني توفير مسار محدّد للسائق أو إزالة مسارات بديلة؟
- هل يمكنني عرض تصنيف للوجهة مختلفة عن الموقع الجغرافي للوجهة التلقائي للسائق؟
- هل يمكنني استخدام حزمة تطوير البرامج (SDK) الخاصة بالتنقّل لتتبُّع الانحرافات عن مسار محدّد؟
- هل يمكن للسائق الخروج من وضع التنقّل بدون إكمال المسار؟
مُحاكي
Workflows
حقائق عن المنتج
- يجب أن يتضمّن تطبيقك مربّع حوار يتضمّن إشعار بنود خدمة "حزمة تطوير البرامج (SDK) للتنقّل" الذي يجب أن يقبله كل سائق. يتيح مربّع الحوار هذا للسائق الفرصة للموافقة على بنود الخدمة. يتم تقديم ملف نصي للبنود مع حزمة SDK للتنقل.
- في نظام Android، يمكنك استخدام الطريقة
NavigationApi.showTermsAndConditionsDialog
لعرض مربّع الحوار الذي يحتوي على العبارات. - على جهاز iOS، يمكنك إجراء مكالمة
GMSNavigationServices.showTermsAndConditionsDialogIfNeededWithCompanyName
. - تكون أي لغات متاحة في تطبيق "خرائط Google" للأجهزة الجوّالة متاحة تلقائيًا من خلال حزمة تطوير البرامج (SDK) للتنقّل. يحتوي الجهاز على لغة نظام تلقائية ولا يمكن للتطبيق تغيير هذا الإعداد، ومع ذلك، يمكن للتطبيق الوصول إلى أكثر من 70 لغة.
-
رائع في نظام Android، ما إن بدأ تشغيل
LocationListener
في الخلفية. ويستمر تطبيقك في التقاط الطريق والحفاظ على الاتجاه.في نظام iOS، لمواصلة تلقّي تعديلات الموقع الجغرافي للموقع الجغرافي والاتجاه في الخلفية، عليك تنفيذ لقطات الطريق وضبط
allowsBackgroundLocationUpdates
علىYES
. -
رائع عند إنشاء مسار أو تغييره، توفّر السمة
RouteChangeListener
الخطوط المتعددة. - لا، إنّ "حزمة تطوير البرامج (SDK) للتنقّل" لا تتطلّب تثبيت تطبيق "خرائط Google" للأجهزة الجوّالة على الجهاز.
- لا، لا توفّر "حزمة تطوير البرامج (SDK) للتنقّل" هذه الوظيفة في الوقت الحالي.
- نعم. يكون اتجاه حركة المرور متاحًا وعرضه بشكل تلقائي.
المشاكل
- في Xcode 12، لا يتم إنشاء التطبيقات بشكل صحيح للمحاكي. كيف يمكنني حلّ هذه المشكلة؟
-
لحلّ هذه المشكلة، افتح إعدادات الإصدار لمشروع Xcode، وأضِف
arm64
إلىExcluded Architectures
لإصدارات "iOS Simulator" فقط.لمزيد من المعلومات، يُرجى الاطّلاع على سلسلة محادثات StackOverflow التالية.
- لا يتم تحميل GMSMapView.
-
في حال عدم تحميل GMSMapView:
- تأكَّد من أنّ حزمة NavSDK مفعَّلة في Cloud Console.
- في حال تثبيت حزمة تطوير البرامج (SDK) للتنقل، ولكنّ مشروعك لا يستخدم واجهات برمجة تطبيقات Nav SDK، عليك إزالتها من البرنامج الثنائي.
الشبكة
- كيف تتعامل حزمة SDK للتنقل مع الاتصال الضعيف؟
- تخزّن حزمة "حزمة تطوير البرامج (SDK) للتنقل" المسار مؤقتًا لكل رحلة. وتتضمن المعلومات المخزنة مؤقتًا بشكل مسبق معلومات التوجيه لمدة تتراوح بين 15 و20 دقيقة، بالإضافة إلى بدائل المسار في حالة انحراف السائق عن المسار. وتحدد حزمة "SDK للتنقل" موضعها باستخدام نظام تحديد المواقع العالمي (GPS) وأدوات الاستشعار في الجهاز.
- هل وضع عدم الاتصال متاح؟
- لا، لا توفّر "حزمة تطوير البرامج (SDK) للتنقل" وضع "بلا اتصال بالإنترنت" في الوقت الحالي، ولكن توفّر "حزمة SDK" معلومات مخزَّنة مؤقتًا بشكل مسبق من أجل رحلة معيّنة.
البيانات
- هل يمكنني استرداد جميع محطات التوقّف/الوجهات في رحلة قبل بدء المسار؟
-
رائع في نظام Android، يمكنك طلب
Navigator.getRouteSegments()
لاسترداد اتجاهات مسار الرحلة.في جهاز iOS، يمكنك الاتصال بالرقم
GMSNavigator.routeLegs(read)
. - هل تتوفر الإرشادات المفصّلة على المسار في بداية المسار؟
- نعم. توفر حزمة SDK للتنقل قائمة بأجزاء المسارات. بالإضافة إلى ذلك، يمكن للسائق التمرير سريعًا عبر بطاقة الاتجاهات في العنوان لمشاهدة كل مناورة.
- كيف يتم إعلام مستخدمي التطبيق بالوقت المقدر للوصول؟
-
في Android، اتّبِع الخطوات التالية لمنح مستخدمي التطبيق معلومات الوقت المقدّر للوصول:
- استرِد الوقت والمسافة بين جميع نقاط الطرق باستخدام
Navigator.getTimeAndDistanceList()
. - يمكنك إعادة توجيه هذه المعلومات إلى تطبيق العميل، كما تفعل حاليًا في الوقت المقدّر للوصول للسائق.
في iOS، اتّبِع الخطوات التالية لتزويد مستخدمي التطبيق بمعلومات الوقت المقدّر للوصول:
- استعادة الساقين في الرحلة باستخدام
Navigator.getRouteSegments()
. - يُرجى الاتصال بالرقم
GMSNavigator.timeToNextDestination
لكل مرحلة من مراحل الرحلة. - أعد توجيه معلومات الوقت إلى تطبيق العميل كما تفعل حاليًا مع الوقت المقدّر للوصول للسائق.
- استرِد الوقت والمسافة بين جميع نقاط الطرق باستخدام
-
هل يمكن استخدام
RoadSnappedLocationProvider
للحصول على الموقع الجغرافي المقطوعة حاليًا للسائق إذا لم يكن شريط التنقّل في المقدّمة؟ -
رائع في Android، يتم تشغيل
RoadSnappedLocationProvider
في الخلفية تلقائيًا.في نظام iOS، لإبقاء التنقل قيد التشغيل في الخلفية، عليك تنفيذ المستمع لـ
GMSRoadSnappedLocationProviderListener
، وضبط السمةallowsBackgroundLocationUpdates
علىTRUE
. - هل تدعم حزمة تطوير البرامج (SDK) للتنقل تحديد الموقع الجغرافي؟
-
لا، في سياق التنقل، تتميز السمة
remainingTimeOrdistanceChangeListener
بميزة "تفوق الحدود الجغرافية" البسيطة. قد لا يأخذ السياج الجغرافي في الاعتبار هندسة الطرق، وقد لا يتم تركيزه على النقطة الدقيقة التي يتنقل إليها السائق.يمكنك تقريب هذه الوظيفة باستخدام
remainingTimeOrdistanceChangeListener
.- اضبط الحدّ الأدنى لتحديد معدّل تكرار معاودة الاتصال.
- تحقَّق من المسافة المتبقية إلى الوجهة.
على سبيل المثال، عند ضبط الحد الأدنى على 100 متر، ستتلقى معاودة الاتصال عند تغيير المسافة إلى الوجهة بمقدار 100 متر. ومع انخفاض المسافة، يمكنك تعديل هذا الحدّ إلى قيمة أصغر وتلقّي معاودة الاتصال بشكل أكثر تكرارًا. بعد ذلك، افحص المسافة المتبقية لتحديد ما إذا كنت قريبًا بما يكفي من موقع الاستلام/التسليم.
في أجهزة iOS، استخدِم أداة معالجة البيانات
GMSNavigatorListener.didUpdateRemainingDistance
لإدارة المسافة بين الإشعارات. - هل يمكنني إيقاف الإشعارات عندما يكون تطبيق "التنقل" في الخلفية؟
-
رائع في Android، استخدِم
Navigator.setHeadsUpNotificationEnabled
للتحكّم في الإشعارات. تحتوي هذه الطريقة على وسيطة منطقية. يوقفFALSE
الإشعارات، ويفعِّلTRUE
الإشعارات.في iOS، يمكنك إيقاف إشعار الخلفية للمواقع التي تم قطعها على الطريق من خلال ضبط
GMSRoadSnappedLocationProvider.allowsBackgroundLocationUpdates
على "لا".لإيقاف المعالجة في الخلفية لإشعارات الموقع الجغرافي الأخرى، يمكنك الاتصال برقم
GMSNavigator.sendsBackgroundNotifications(NO)
.
تخصيص واجهة المستخدم
- هل يمكنني ترميز أفضل خيار للمسار؟
- لا، لا يمكن حاليًا استخدام الترميز اللوني لخيار مسار معيّن.
- هل يمكن أن تعرض حزمة 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
وnavigationHeaderEnabled
لكل منGMSUISettings
.
يتم الآن تخطيط المسار
- هل يمكنني توفير مسار محدد للسائق أو إزالة مسارات بديلة؟
- لا، لأنّه بشكل تلقائي، يتم توفير مسارات متعددة وتكون الأولوية للمسار الأسرع. يمكنك التأثير في المسار التلقائي من خلال إضافة إعدادات مفضّلة إلى طلبك، مثل "تجنّب الطرق السريعة ورسوم العبور". تؤثر إضافة نقاط الطريق أيضًا على المسار.
- هل يمكنني عرض تصنيف للوجهة لمستخدم التطبيق يختلف عن تصنيف الموقع الجغرافي للوجهة التلقائي؟
-
رائع في Android، يمكنك إنشاء
Marker
مع عنوان مخصّص للوجهة وخط العرض/خط الطول. تعرض حزمة تطوير البرامج (SDK) للتنقل العنوان المخصّص والإحداثيات فيNavigationMap
.في نظام التشغيل iOS، يمكنك إنشاء
GMSMarker
للوجهة وعرضها. - هل يمكنني استخدام حزمة تطوير البرامج (SDK) للتنقل لتتبُّع الانحرافات عن مسار محدَّد؟
-
رائع في Android، استخدِم تطبيق
Navigator.setRouteChangedListener
لتلقّي الإشعارات عند تغيير مسار أو عند اقتراح مسار جديد:- يمكنك استخدام طريقة
Navigator.setRouteChangedListener
لتسجيل جهاز استماع يتحقّق من موضع الجهاز على طول المسار. - إضافة رمز إلى معالج حدث معاودة الاتصال،
onRouteChanged
:- يمكنك إرسال رسالة إلى مستخدم التطبيق تتضمّن معلومات محدّثة حول الوقت المقدّر للوصول والمسافة.
- يمكنك تتبُّع الموقع الجغرافي للجهاز.
- [اختياري] يمكنك إضافة وظائف أخرى يتطلبها تطبيقك للتعامل مع السائق خارج المسار الموصوف.
في نظام iOS، استخدِم
GMSNavigator
ومستمعينه لتلقّي إشعارات عند تغيير أحد المسارات أو عند اقتراح مسار جديد:- في وحدة التحكّم في عرض الخريطة، نفِّذ بروتوكول
GMSNavigatorListener
وبروتوكولGMSRoadSnappedLocationProviderListener
. - تنفيذ
GMSNavigatorListener.navigatorDidChangeRoute
. - يمكنك الوصول إلى المسار الجديد باستخدام السمتَين
routeLegs
وcurrentRouteLeg
منGMSNavigator
.
- يمكنك استخدام طريقة
-
رائع في Android، يمكنك طلب طريقة
Navigator.stopGuidance()
لإيقاف التنقّل.في جهاز iOS، يمكنك الاتصال بالرقم
GMSNavigator.clearDestinations
.
مُحاكي
- هل يتوافق المحاكي مع تغييرات المسار؟
-
رائع في Android، يمكنك الاتصال بالرقم
simulateLocationsAlongNewRoute
لمحاكاة رحلة تتضمن تغيير المسار. تتجاهل الطريقةsimulateLocationsAlongExistingRoute
التغييرات التي تتم على المسار الحالي.في أجهزة iOS، استخدِم
GMSLocationSimulator.simulateAlongNewRouteToDestinations
لمحاكاة رحلة تتضمن تغيير المسار. وإذا لم تكن تتوقع حدوث أي تغييرات في المسار، يمكنك استخدام السمةGMSLocationSimulator.simulateLocationsAlongExistingRoute
أوGMSLocationSimulator.simulateAlongNewRouteToDestinations
.
Workflows
- كيف يمكنني إغلاق الإشعار بعد إغلاق نشاط يحتوي على جزء من التنقّل؟
-
يظل إشعار التنقل مرئيًا أثناء التنقل، عندما يكون النشاط مغلقًا. عندما تصل المركبة إلى الوجهة، يتوقف التنقل، ويختفي الإشعار.
لمعالجة النقرات على الإشعار، استخدِم
Navigator.startGuidance(intent resumeIntent)
. يتم تنشيطresume intent
عندما ينقر مستخدِم التطبيق على الإشعار. ويتم عادةً استدعاءNavigator.startguidance(getIntent())
من النشاط الرئيسي، ما يؤدي إلى استرجاع النشاط عندما ينقر مستخدم التطبيق على الإشعار.