الأسئلة الشائعة
حقائق المنتج
- كيف يجب عرض إشعار "بنود خدمة حزمة تطوير البرامج (SDK)" للتنقّل؟
- ما هي اللغات المتاحة في الإرشاد الصوتي؟
- هل يتم صيانة الاتجاه عندما يخرج السائق من وضع التنقل؟
- هل تتوفر الخطوط المتعددة عند بدء مسار أو تغييره؟
- هل يحتاج مستخدمو التطبيق إلى تثبيت تطبيق "خرائط Google" للأجهزة الجوّالة؟
- هل يمكن لحزمة تطوير البرامج (SDK) الخاصة بالتنقل تحديد مواقف السيارات بالقرب من المطاعم والوجهات الأخرى؟
- هل تعرض حزمة تطوير البرامج (SDK) الخاصة بالتنقل اتجاه حركة المرور في الحارات عند الاقتراب من نقطة انعطاف؟
المشاكل
الشبكة
البيانات
- هل يمكنني استرداد جميع محطات التوقّف/الوجهات في الرحلة قبل بدء المسار؟
- هل الإرشادات التفصيلية للمسار متاحة في بداية المسار؟
- كيف يتم إعلام مستخدمي التطبيق بالوقت المقدَّر للوصول (ETA)؟
- هل يمكن استخدام
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" فقط.لمزيد من المعلومات، يُرجى الاطّلاع على سلسلة تعليمات StackOverflow التالية.
الشبكة
- كيف تتعامل حزمة 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())
من قسم "النشاط الرئيسي" الذي يسترجع "النشاط" عندما ينقر مستخدم التطبيق على الإشعار.