الأسئلة الشائعة
تفاصيل المنتج
- كيف يجب عرض إشعار بنود خدمة Navigation SDK؟
- ما هي اللغات التي تتوافق مع ميزة "الإرشاد الصوتي"؟
- هل يتم الحفاظ على اتجاه السير عندما يخرج السائق من وضع التنقّل؟
- هل تتوفّر الخطوط المتعددة الأضلاع عند بدء مسار أو تغييره؟
- هل يجب أن يكون تطبيق "خرائط Google" للأجهزة الجوّالة مثبّتًا على أجهزة مستخدمي التطبيق؟
- هل يمكن أن تحدّد حزمة تطوير البرامج (SDK) الخاصة بخدمة Navigation مواقف السيارات بالقرب من المطاعم والوجهات الأخرى؟
- هل تعرض حزمة تطوير البرامج (SDK) الخاصة بخدمة Navigation اتجاه حركة المرور في المسارات عند الاقتراب من نقطة انعطاف؟
المشاكل
- في Xcode 12، لا يتم إنشاء التطبيقات بشكل صحيح للمحاكي. كيف يمكنني حلّ هذه المشكلة؟
- يتعذّر تحميل
GMSMapView
.
الشبكة
البيانات
- هل يمكنني استرداد جميع المحطات/الوجهات في رحلة قبل بدء المسار؟
- هل تتوفّر ميزة "التوجيه المفصّل" في بداية المسار؟
- كيف يتم إبلاغ مستخدمي التطبيق بـ "الوقت المقدَّر للوصول"؟
- هل يمكن استخدام
RoadSnappedLocationProvider
للحصول على الموقع الجغرافي الحالي للسائق الذي تم التقاطه إذا لم يكُن التنقّل في المقدّمة؟ - هل تتوافق حزمة Navigation SDK مع ميزة السياج الجغرافي؟
- هل يمكنني إيقاف الإشعارات عندما يكون تطبيق Navigation يعمل في الخلفية؟
تخصيص واجهة المستخدم
- هل يمكنني استخدام رموز الألوان لتحديد أفضل خيار للطريق؟
- هل يمكن أن تعرض حزمة Navigation SDK الوقت المقدَّر للوصول إلى الوجهة النهائية؟
- كيف يمكنني إخفاء إشعارات الوقت المقدَّر للوصول؟
- ما هي خيارات تخصيص واجهة المستخدم المتاحة لبطاقات الرأس والتذييل؟
يتم الآن تخطيط المسار
- هل يمكنني تقديم مسار محدّد للسائق أو إزالة المسارات البديلة؟
- هل يمكنني عرض تصنيف مختلف للسائق للوجهة بدلاً من الموقع الجغرافي التلقائي للوجهة؟
- هل يمكنني استخدام حزمة Navigation SDK لتتبُّع الانحرافات عن مسار محدّد؟
- هل يمكن للسائق الخروج من وضع التنقّل بدون إكمال المسار؟
مُحاكي
Workflows
خدمات التنقّل
- ما هي الاختلافات في استخدام حزمة تطوير البرامج للتنقّل بالنسبة إلى عملاء "خدمات التنقّل"؟
- كيف يمكنني معرفة ما إذا كنتُ من عملاء "خدمات الأجهزة الجوّالة"؟
- كيف تتم فوترة حزمة تطوير البرامج للتنقّل لعملاء "خدمات التنقّل"؟
- ما هي واجهات برمجة التطبيقات في Navigation SDK التي يجب أن يستخدمها عملاء "خدمات التنقّل" فقط؟
- إذا كنت من عملاء "خدمات التنقّل"، هل يمكنني أيضًا استخدام إصدار غير تابع لـ "خدمات التنقّل" من حزمة Navigation SDK؟
تفاصيل المنتج
- يجب أن يعرض تطبيقك مربّع حوار يتضمّن إشعارًا ببنود خدمة Navigation SDK، ويجب أن يوافق عليه كل سائق. يمنح مربّع الحوار هذا السائق فرصة الموافقة على بنود الخدمة. يتم توفير ملف نصي للشروط مع حزمة Navigation SDK.
- في نظام التشغيل Android، استخدِم طريقة
NavigationApi.showTermsAndConditionsDialog
لعرض مربّع الحوار الذي يتضمّن البنود. - في نظام التشغيل iOS، انقر على رمز الاتصال
GMSNavigationServices.showTermsAndConditionsDialogIfNeededWithCompanyName
. - تتوفّر تلقائيًا أي لغات متوافقة مع تطبيق "خرائط Google" للأجهزة الجوّالة في حزمة Navigation SDK. يحتوي الجهاز على لغة نظام تلقائية ولا يمكن للتطبيق تغيير هذا الإعداد، ولكن يمكن للتطبيق الوصول إلى أكثر من 70 لغة.
-
نعم. في نظام التشغيل Android، بعد بدء
LocationListener
، يستمر تشغيله في الخلفية. يواصل تطبيقك محاذاة الموقع الجغرافي مع الطريق والحفاظ على اتجاه الحركة.في نظام التشغيل iOS، لمواصلة تلقّي تحديثات الموقع الجغرافي الخاصة بالموضع والاتجاه في الخلفية، عليك تنفيذ ميزة "محاذاة مع الطريق" وضبط
allowsBackgroundLocationUpdates
علىYES
. -
نعم. عند إنشاء مسار أو تغييره، يوفّر
RouteChangeListener
خطوطًا متعددة الأضلاع. - لا، لا تتطلّب حزمة Navigation SDK تثبيت تطبيق "خرائط Google" على الجهاز.
- لا، لا توفّر حزمة تطوير البرامج (SDK) الخاصة بخدمة Navigation هذه الوظيفة في الوقت الحالي.
- نعم. يتوفّر اتجاه حركة المرور ويتم عرضه تلقائيًا.
المشاكل
- في Xcode 12، لا يتم إنشاء التطبيقات بشكل صحيح للمحاكي. كيف يمكنني حلّ هذه المشكلة؟
-
لحلّ هذه المشكلة، افتح "إعدادات الإنشاء" في مشروع Xcode وأضِف
arm64
إلىExcluded Architectures
لعمليات الإنشاء الخاصة بـ "محاكي iOS" فقط.لمزيد من المعلومات، يُرجى الاطّلاع على سلسلة المحادثات التالية على StackOverflow.
- لا يتم تحميل GMSMapView.
-
إذا لم يتم تحميل GMSMapView، اتّبِع الخطوات التالية:
- تأكَّد من تفعيل NavSDK في Cloud Console.
- إذا كانت حزمة Nav SDK مثبَّتة، ولكن مشروعك لا يستخدم واجهات برمجة تطبيقات Nav SDK، عليك إزالتها من البرنامج الثنائي.
الشبكة
- كيف تتعامل حزمة تطوير البرامج للتنقّل مع ضعف الاتصال؟
- تخزّن حزمة تطوير البرامج للتنقّل مؤقتًا المسار لكل رحلة. تشمل المعلومات المخزّنة مؤقتًا مسبقًا معلومات التوجيه لمدة تتراوح بين 15 و20 دقيقة، بالإضافة إلى بدائل للطريق في حال انحراف السائق عن المسار. يقدّر حزمة تطوير البرامج (SDK) الخاصة بخدمة Navigation الموقع الجغرافي باستخدام نظام تحديد المواقع العالمي (GPS) وأدوات الاستشعار في الجهاز.
- هل يتوفّر وضع عدم الاتصال بالإنترنت؟
- لا، لا توفّر حزمة تطوير البرامج (SDK) الخاصة بخدمة Navigation وضعًا غير متصل بالإنترنت في الوقت الحالي، ولكنها توفّر معلومات مخزّنة مؤقتًا مسبقًا لرحلة.
البيانات
- هل يمكنني استرداد جميع المحطات/وجهات الرحلة قبل بدء المسار؟
-
نعم. في Android، لاسترداد الاتجاهات الخاصة بمسار، استخدِم الدالة
Navigator.getRouteSegments()
.في iOS، اتّصِل بالرقم
GMSNavigator.routeLegs(read)
. - هل تتوفّر إرشادات مفصّلة للمسار عند بدايته؟
- نعم. توفّر حزمة تطوير البرامج (SDK) الخاصة بخدمة Navigation قائمة بأجزاء المسار. بالإضافة إلى ذلك، يمكن للسائق التمرير سريعًا عبر بطاقة الاتجاهات في العنوان للاطّلاع على كل مناورة.
- كيف يتم إبلاغ مستخدمي التطبيق بالوقت المقدَّر للوصول؟
-
في Android، اتّبِع الخطوات التالية لتقديم معلومات حول الوقت المقدَّر للوصول إلى وجهة معيّنة لمستخدمي التطبيق:
- استرداد الوقت والمسافة لجميع نقاط الطريق باستخدام
Navigator.getTimeAndDistanceList()
- أرسِل هذه المعلومات إلى تطبيق العميل بالطريقة نفسها التي ترسل بها الوقت المقدّر لوصول السائق.
في نظام التشغيل iOS، اتّبِع الخطوات التالية لتقديم معلومات حول الوقت المقدَّر للوصول إلى مستخدمي التطبيق:
- استرداد الأجزاء في الرحلة باستخدام
Navigator.getRouteSegments()
- اتّصِل على
GMSNavigator.timeToNextDestination
لكل جزء من الرحلة. - أرسِل معلومات الوقت إلى تطبيق العميل بالطريقة نفسها التي ترسل بها معلومات الوقت المقدَّر لوصول السائق.
- استرداد الوقت والمسافة لجميع نقاط الطريق باستخدام
-
هل يمكن استخدام
RoadSnappedLocationProvider
للحصول على الموقع الجغرافي الحالي للسائق الذي تم التقاطه إذا لم يكن التنقّل في المقدّمة؟ -
نعم. في نظام التشغيل Android، يتم تشغيل
RoadSnappedLocationProvider
في الخلفية تلقائيًا.في نظام التشغيل iOS، للحفاظ على استمرار التنقّل في الخلفية، عليك تنفيذ أداة معالجة الأحداث الخاصة بـ
GMSRoadSnappedLocationProviderListener
، وضبط السمةallowsBackgroundLocationUpdates
علىTRUE
. - هل تتوافق حزمة تطوير البرامج للتنقّل مع ميزة "المناطق الجغرافية السياجية"؟
-
لا، ففي سياق التنقّل،
remainingTimeOrdistanceChangeListener
تتفوّق على السياج الجغرافي. قد لا يأخذ السياج الجغرافي في الاعتبار شكل الطريق، وقد لا يكون متمركزًا في النقطة المحدّدة التي يتّبعها السائق.يمكنك تقريبًا تنفيذ هذه الوظيفة باستخدام
remainingTimeOrdistanceChangeListener
.- اضبط الحدّ لتحديد معدّل تكرار عمليات معاودة الاتصال.
- تحقَّق من المسافة المتبقية إلى الوجهة.
على سبيل المثال، إذا ضبطت الحدّ الأدنى على 100 متر، ستتلقّى ردّ اتصال عندما تتغيّر المسافة إلى الوجهة بمقدار 100 متر. مع انخفاض المسافة، يمكنك تعديل هذا الحدّ إلى قيمة أصغر وتلقّي عمليات ردّ أكثر تكرارًا. بعد ذلك، تحقَّق من المسافة المتبقية لتحديد ما إذا كنت قريبًا بما يكفي من موقع الاستلام أو التسليم.
في نظام التشغيل iOS، نفِّذ أداة معالجة الأحداث
GMSNavigatorListener.didUpdateRemainingDistance
لإدارة المسافة بين الإشعارات. - هل يمكنني إيقاف الإشعارات عندما يكون تطبيق "التنقّل" يعمل في الخلفية؟
-
نعم. في Android، استخدِم
Navigator.setHeadsUpNotificationEnabled
للتحكّم في الإشعارات. تحتوي هذه الطريقة على وسيطة منطقية. يؤدي الرمزFALSE
إلى إيقاف الإشعارات، بينما يؤدي الرمزTRUE
إلى تفعيلها.في نظام التشغيل iOS، أوقِف الإشعارات في الخلفية بشأن المواقع الجغرافية التي تم تعديلها لتتطابق مع الطرق من خلال ضبط
GMSRoadSnappedLocationProvider.allowsBackgroundLocationUpdates
على NO.لإيقاف المعالجة في الخلفية لإشعارات الموقع الجغرافي الأخرى، استخدِم الدالة
GMSNavigator.sendsBackgroundNotifications(NO)
.
تخصيص واجهة المستخدم
- هل يمكنني ترميز خيار أفضل مسار بالألوان؟
- لا، لا تتوفّر إمكانية ترميز خيار مسار معيّن بالألوان في الوقت الحالي.
- هل يمكن أن تعرض حزمة تطوير البرامج للتنقّل الوقت المقدَّر للوصول إلى الوجهة النهائية؟
-
نعم. في 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
بعنوان مخصّص للوجهة وخطوط الطول والعرض. تعرض حزمة تطوير البرامج Navigation SDK العنوان المخصّص والإحداثيات علىNavigationMap
.في نظام التشغيل iOS، يمكنك إنشاء
GMSMarker
وعرضه للوجهة. - هل يمكنني استخدام حزمة Navigation 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())
من النشاط الرئيسي، الذي يعيد استدعاء النشاط عندما ينقر مستخدم التطبيق على الإشعار.
خدمات التنقّل
توفّر "خدمات التنقّل في Google Maps Platform" مجموعة من واجهات برمجة التطبيقات وحِزم تطوير البرامج (SDK) للمساعدة في تلبية احتياجات المؤسسات في مجال النقل والخدمات اللوجستية. بالنسبة إلى عملاء "خدمات التنقّل"، يتم عادةً استخدام حزمة تطوير البرامج (SDK) الخاصة بخدمة Navigation إلى جانب الخدمات ذات الصلة لتحسين المسار، والإرسال، وتتبُّع المهام، وإحصاءات أسطول المركبات، وغير ذلك. يتم أيضًا تحصيل رسوم مختلفة من عملاء "خدمات التنقّل" مقابل استخدام حزمة تطوير البرامج للتنقّل. لمزيد من المعلومات، يُرجى الاطّلاع على مستندات خدمات التنقّل.
تتوفّر منتجات التنقّل لعملاء محدّدين فقط. يُرجى التواصل مع ممثل المبيعات للحصول على مزيد من المعلومات.
ReportBillableEvent
في الرمز. يجب أن يتصل عملاء "خدمات التنقّل" فقط بالطريقة ReportBillableEvent
.
تتضمّن حزمة تطوير البرامج (SDK) للتنقّل عدة واجهات برمجة تطبيقات مخصّصة فقط لعملاء خدمات التنقّل الذين تحصّل منهم Google رسومًا على أساس كل معاملة. إذا لم تكن من عملاء "خدمات التنقّل"، لن يكون بإمكانك استخدام الطرق التالية:
نعم، يمكن لعملاء "خدمات التنقّل" استخدام كلّ من عمليات تنفيذ "خدمات التنقّل" وغير "خدمات التنقّل" في حزمة Navigation SDK. ومع ذلك، يمكنك استخدام نوع واحد فقط من عمليات التنفيذ في تطبيق واحد في كل مرة. عليك أيضًا إنشاء مشروع جديد على Google Cloud وحساب فوترة ومفتاح API منفصلَين عن تلك التي تستخدمها مع تنفيذ "خدمات التنقّل". لمزيد من المعلومات، يُرجى الاطّلاع على نظرة عامة على إعداد حزمة تطوير البرامج (SDK) الخاصة بخدمة Navigation.
لمزيد من المعلومات حول استخدام تطبيق غير تابع لـ "خدمات التنقّل" في Navigation SDK، بما في ذلك نقل تطبيق من نوع تنفيذ إلى آخر، يُرجى التواصل مع ممثل حسابك على Google.
ملاحظة: إذا لم تكن من عملاء "خدمات التنقّل" وكنت مهتمًا بمعرفة المزيد عن مجموعة واجهات برمجة التطبيقات وحِزم تطوير البرامج (SDK) الخاصة بـ "خدمات التنقّل"، يُرجى التواصل مع فريق مبيعات Google Maps Platform.