الأسئلة الشائعة
تفاصيل المنتج
- كيف يجب عرض إشعار بنود خدمة حزمة تطوير البرامج (SDK) للتنقّل؟
- ما هي اللغات التي تتوافق مع ميزة "الإرشاد الصوتي"؟
- هل يتم الحفاظ على اتجاه السير عندما يخرج السائق من وضع التنقّل؟
- هل تتوفّر الخطوط المتعددة عند بدء مسار أو تغييره؟
- هل يجب أن يكون تطبيق "خرائط Google" مثبّتًا على الأجهزة الجوّالة لمستخدمي التطبيق؟
- هل يمكن أن تحدّد حزمة تطوير البرامج (SDK) الخاصة بخدمة Navigation مواقف السيارات بالقرب من المطاعم والوجهات الأخرى؟
- هل يعرض Navigation SDK اتجاه حركة المرور في المسارات عند الاقتراب من نقطة انعطاف؟
المشاكل
- في Xcode 12، لا يتم إنشاء التطبيقات بشكل صحيح للمحاكي. كيف يمكنني حلّ هذه المشكلة؟
- يتعذّر تحميل
GMSMapView.
الشبكة
البيانات
- هل يمكنني استرداد جميع المحطات/وجهات الرحلة قبل بدء المسار؟
- هل تتوفّر إرشادات المسار المفصّلة في بداية المسار؟
- كيف يتم إبلاغ مستخدمي التطبيق بـ "الوقت المقدَّر للوصول"؟
- هل يمكن استخدام
RoadSnappedLocationProviderللحصول على الموقع الجغرافي الحالي للسائق الذي تم التقاطه إذا لم يكن التنقّل في المقدّمة؟ - هل تتيح "حزمة تطوير البرامج (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) الخاصة بالتنقّل هذه الوظيفة في الوقت الحالي.
- نعم. يتوفّر اتجاه الزيارات ويتم عرضه تلقائيًا.
المشاكل
- في Xcode 12، لا يتم إنشاء التطبيقات بشكل صحيح للمحاكي. كيف يمكنني حلّ هذه المشكلة؟
-
لحلّ هذه المشكلة، افتح "إعدادات الإنشاء" (Build Settings) في مشروع Xcode وأضِف
arm64إلىExcluded Architecturesلعمليات الإنشاء الخاصة بـ "محاكي iOS" فقط.لمزيد من المعلومات، يُرجى الاطّلاع على سلسلة المحادثات التالية على StackOverflow.
- يتعذّر تحميل GMSMapView.
-
في حال عدم تحميل GMSMapView، اتّبِع الخطوات التالية:
- تأكَّد من تفعيل NavSDK في Cloud Console.
- إذا كانت حزمة Nav SDK مثبَّتة، ولكن مشروعك لا يستخدم واجهات برمجة التطبيقات الخاصة بها، فأزِلها من الملف الثنائي.
الشبكة
- كيف تتعامل حزمة تطوير البرامج للتنقّل مع ضعف الاتصال؟
- تخزّن حزمة تطوير البرامج (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. - هل تتيح حزمة تطوير البرامج للتنقّل توجيه الشاحنات والمركبات الكبيرة والتنقّل بها؟
-
نعم. باستخدام ميزة "تحديد مسار المركبات الكبيرة" (LVR)، يمكنك تمرير رموز مميّزة للمسار خاصة بالشاحنات تم إنشاؤها بواسطة Routes API أو Route Optimization API إلى Navigation SDK. توفّر حزمة تطوير البرامج (SDK) ميزة التنقّل بحسب الاتجاهات المفصّلة مع وسيلة شرح للمسار (الارتفاع والوزن والمواد الخطرة والقيود المفروضة على الشاحنات)، كما تحافظ على الملف الشخصي المادي للمركبة أثناء إعادة التوجيه الديناميكية. لمزيد من التفاصيل، يُرجى الاطّلاع على التنقّل في مسارات المركبات الكبيرة.
مُحاكي
- هل يتيح المحاكي تغيير المسار؟
-
نعم. في Android، اتّصِل بـ
simulateLocationsAlongNewRouteلمحاكاة رحلة تتضمّن تغييرًا في المسار. تتجاهل الطريقةsimulateLocationsAlongExistingRouteالتغييرات التي يتم إجراؤها على المسار الحالي.في نظام التشغيل iOS، استخدِم
GMSLocationSimulator.simulateAlongNewRouteToDestinationsلمحاكاة رحلة تتضمّن تغييرًا في المسار. إذا كنت لا تتوقّع حدوث أي تغييرات في المسار، يمكنك استخدامGMSLocationSimulator.simulateLocationsAlongExistingRouteأوGMSLocationSimulator.simulateAlongNewRouteToDestinations.
Workflows
- كيف يمكنني إغلاق الإشعار بعد إغلاق نشاط يحتوي على جزء تنقّل؟
-
يظل إشعار التنقّل مرئيًا أثناء التنقّل، عند إغلاق النشاط. عند وصول المركبة إلى الوجهة، تتوقف ميزة الملاحة ويختفي الإشعار.
للتعامل مع النقرات على الإشعار، استخدِم
Navigator.startGuidance(intent resumeIntent). يتم تنشيطresume intentعندما ينقر مستخدم التطبيق على الإشعار. عادةً، يتم استدعاءNavigator.startguidance(getIntent())من النشاط الرئيسي، الذي يعيد استدعاء النشاط عندما ينقر مستخدم التطبيق على الإشعار.
خدمات التنقّل
تقدّم خدمات التنقّل في "منصة خرائط Google" مجموعة من واجهات برمجة التطبيقات وحزم تطوير البرامج (SDK) للمساعدة في تلبية احتياجات المؤسسات في مجال النقل والخدمات اللوجستية. بالنسبة إلى عملاء "خدمات التنقّل"، يتم عادةً استخدام حزمة تطوير البرامج (SDK) الخاصة بخدمة Navigation مع الخدمات ذات الصلة لتحسين المسار، والإرسال، وتتبُّع المهام، وإحصاءات أسطول المركبات، وغير ذلك. تختلف أيضًا طريقة فوترة حزمة تطوير البرامج (SDK) للتنقّل لعملاء "خدمات التنقّل". لمزيد من المعلومات، يُرجى الاطّلاع على مستندات خدمات التنقّل.
تتوفّر منتجات التنقّل لعملاء محدّدين فقط. يُرجى التواصل مع ممثل المبيعات للحصول على مزيد من المعلومات.
ReportBillableEvent في الرمز البرمجي. يجب ألا يستدعي طريقة ReportBillableEvent سوى عملاء Mobility Services.
تتضمّن Navigation SDK عدة واجهات برمجة تطبيقات مخصّصة فقط لعملاء خدمات التنقّل الذين تحصّل منهم Google رسومًا على أساس كل معاملة. إذا لم تكن من عملاء "خدمات التنقّل"، لن يكون بإمكانك استخدام الطرق التالية:
نعم، يمكن لعملاء "خدمات التنقّل" استخدام كلّ من عمليات تنفيذ "خدمات التنقّل" وغير "خدمات التنقّل" في حزمة تطوير البرامج (SDK) للتنقّل. ومع ذلك، يمكنك استخدام نوع تنفيذ واحد فقط في التطبيق في كل مرة. عليك أيضًا إنشاء مشروع جديد على Google Cloud وحساب فوترة ومفتاح API منفصلَين عن تلك التي تستخدمها مع تنفيذ "خدمات التنقّل". لمزيد من المعلومات، يُرجى الاطّلاع على نظرة عامة على إعداد Navigation SDK.
لمزيد من المعلومات حول استخدام عملية تنفيذ Navigation SDK لا تتعلّق بخدمات التنقّل، بما في ذلك نقل تطبيق من نوع تنفيذ إلى آخر، يُرجى التواصل مع ممثل حساب Google.
ملاحظة: إذا لم تكن من عملاء "خدمات التنقّل" وكنت مهتمًا بمعرفة المزيد عن مجموعة واجهات برمجة التطبيقات وحزم تطوير البرامج (SDK) في "خدمات التنقّل"، يُرجى التواصل مع فريق مبيعات "منصة خرائط Google".