الأسئلة الشائعة

حقائق عن المنتج

المشاكل

الشبكة

البيانات

تخصيص واجهة المستخدم

يتم الآن تخطيط المسار

مُحاكي

Workflows

حقائق عن المنتج

يجب أن يتضمّن تطبيقك مربّع حوار يحتوي على بنود حزمة تطوير البرامج (SDK) للتنقّل. لإشعار الخدمة بأن يقبله كل سائق. يمنح مربع الحوار هذا السائق الفرصة للموافقة على بنود الخدمة. ملف نصي للبنود مع حزمة SDK للتنقل.
في Android، استخدِم NavigationApi.showTermsAndConditionsDialog لعرض مربع الحوار الذي يحتوي على العبارات.
في نظام iOS، يمكنك الاتصال GMSNavigationServices.showTermsAndConditionsDialogIfNeededWithCompanyName
يتم تلقائيًا تنسيق أي لغات مدعومة بواسطة خرائط Google للجوّال المتاحة لحزمة تطوير البرامج للتنقل. يتضمّن الجهاز لغة نظام تلقائية ولا يمكن لأي تطبيق تغيير هذا الإعداد. وَلَكِنْ يمكن للتطبيق الوصول إلى أكثر من 70 لغة.

نعم. على نظام Android، بعد أن بدأ LocationListener، يواصل تشغيله في الخلفية. يستمر تطبيقك في التقاط الطريق للموضع ويحافظ على المحمل.

لمواصلة تلقّي تحديثات الموقع الجغرافي في نظام التشغيل iOS، للموقع الجغرافي والاتجاه في الخلفية، قم بتطبيق تعطُّل الطرق وتعيين allowsBackgroundLocationUpdates إلى YES

نعم. عند إنشاء مسار أو تغييره، يتم عرض RouteChangeListener ويوفر الخطوط المتعددة.

لا، لا تتطلب حزمة تطوير البرامج (SDK) للتنقل تطبيق "خرائط Google" للأجهزة الجوّالة ليتم تثبيته على الجهاز.
لا، لا توفر حزمة SDK للتنقل هذه الوظيفة في الوقت الحالي الوقت.
نعم. يكون اتجاه حركة المرور متاحًا وعرضه بشكل تلقائي.
حزمة SDK للتنقل هل يجب أن يستخدم عملاء "خدمات الجوّال" واجهات برمجة التطبيقات فقط؟

هناك العديد من واجهات برمجة التطبيقات في حزمة تطوير البرامج (SDK) المخصّصة للتنقّل المخصصة للاستخدام فقط من قِبل عملاء خدمات التنقل الذين تحصّل Google الرسوم منهم على أساس كل معاملة. إذا لم تكن عميلاً في "خدمات التنقل"، لا تتوفر الطرق التالية:

المشاكل

في Xcode 12، لا يتم إنشاء التطبيقات بشكل صحيح للمحاكي. كيف يمكنني حلّ هذه المشكلة؟

لحلّ هذه المشكلة، افتح إعدادات الإصدار لمشروع Xcode وأضِف arm64 إلى Excluded Architectures. عن "محاكي iOS" يُنشئ فقط.

لمزيد من المعلومات، يُرجى الاطّلاع على سلسلة محادثات 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، اتّبِع الخطوات التالية لمنح مستخدمي التطبيق معلومات الوقت المقدّر للوصول:

  1. استرجع الوقت والمسافة لجميع نقاط الطريق باستخدام Navigator.getTimeAndDistanceList()
  2. يمكنك إعادة توجيه هذه المعلومات إلى تطبيق العميل أثناء حاليًا في الوقت المقدّر للوصول للسائق.

في iOS، اتّبِع الخطوات التالية لتزويد مستخدمي التطبيق بمعلومات الوقت المقدّر للوصول:

  1. استرجع الساقين في الرحلة باستخدام Navigator.getRouteSegments()
  2. يُرجى الاتصال بالرقم GMSNavigator.timeToNextDestination لكل مرحلة من مراحل الرحلة.
  3. يمكنك إعادة توجيه معلومات الوقت إلى تطبيق العميل أثناء حاليًا في الوقت المقدّر للوصول للسائق.
هل يمكن استخدام RoadSnappedLocationProvider للحصول على رقم تعريف السائق الموقع الحالي المقطوعة إذا لم يكن التنقل في المقدمة؟

نعم. في Android، يتم تشغيل RoadSnappedLocationProvider في الخلفية تلقائيًا.

في نظام iOS، لإبقاء التنقل قيد التشغيل في الخلفية، استخدم المستمع لـ GMSRoadSnappedLocationProviderListener وضبط الموقع allowsBackgroundLocationUpdates إلى TRUE.

هل تدعم حزمة تطوير البرامج (SDK) للتنقل تحديد الموقع الجغرافي؟

لا. في سياق التنقّل، remainingTimeOrdistanceChangeListener أكثر من السياج الجغرافي البسيط. قد لا يأخذ الحدود الجغرافية في الحسبان هندسة الطرق، وقد لا يتم تركيزها على النقطة الدقيقة التي يتنقل السائق.

يمكنك تقريب هذه الوظيفة باستخدام remainingTimeOrdistanceChangeListener

  1. اضبط الحدّ الأدنى لتحديد معدّل تكرار معاودة الاتصال.
  2. تحقَّق من المسافة المتبقية إلى الوجهة.

على سبيل المثال، إذا ضبطت الحدّ الأدنى على 100 متر، ستتلقّى معاودة الاتصال عندما تتغير المسافة إلى الوجهة بمقدار 100 متر. ومع انخفاض المسافة، يمكنك تعديل هذا الحدّ إلى قيمة أقل القيمة وتلقي المزيد من معاودة الاتصال. ثم افحص المسافة المتبقية حدد ما إذا كنت قريبًا بدرجة كافية من موقع الاستلام/التوصيل.

في iOS، تنفيذ أداة معالجة البيانات GMSNavigatorListener.didUpdateRemainingDistance في إدارة المسافة بين الإشعارات.

هل يمكنني إيقاف الإشعارات عندما يكون تطبيق "التنقل" في الخلفية؟

نعم. استخدام Navigator.setHeadsUpNotificationEnabled في Android للتحكم في الإشعارات. تحتوي هذه الطريقة على وسيطة منطقية. FALSE لإيقاف الإشعارات؛ يمكّن TRUE الإشعارات.

في iOS، قم بإيقاف إشعار الخلفية للمواقع التي تم قطعها على الطريق عن طريق إعداد "GMSRoadSnappedLocationProvider.allowsBackgroundLocationUpdates" إلى NO.

لإيقاف المعالجة في الخلفية لإشعارات الموقع الجغرافي الأخرى، يُرجى الاتصال GMSNavigator.sendsBackgroundNotifications(NO)

تخصيص واجهة المستخدم

هل يمكنني ترميز أفضل خيار للمسار؟
لا. لا يتم توفير الترميز بالألوان لخيار مسار معيّن في الوقت الحالي.
هل يمكن أن تعرض حزمة SDK للتنقل الوقت المقدّر للوصول للوجهة النهائية؟

نعم. في Android، يمكنك استخدام الطرق التالية:

  1. استرجع الوقت والمسافة لجميع نقاط الطريق باستخدام Navigator.getTimeAndDistanceList()
  2. إخفاء الوقت المقدر للوصول للنقطة الحالية باستخدام NavigationFragment.setEtaCardEnabled(false)
  3. اعرض الوقت المقدّر للوصول النهائي.

في نظام التشغيل iOS، استخدِم ما يلي:

  1. تواصل هاتفيًا مع "GMSNavigator.routeLegs(read)".
  2. مع المحطة الأخيرة، اتصل GMSNavigator.timeToNextDestination
  3. إخفاء الوقت المقدر للوصول للنقطة الحالية باستخدام MSMapView.settings.navigationFooterEnabled=NO إلى FALSE.
  4. اعرض الوقت المقدّر للوصول النهائي.
كيف يمكنني إخفاء تعديلات الوقت المقدر للوصول؟

يمكنك إيقاف بطاقات الوقت المقدّر للوصول بالطرق التالية:

  • في Android، استخدِم navigationView.setEtaCardEnabled(false).
  • في نظام iOS، استخدِم GMSMapView.settings.navigationFooterEnabled=NO.
ما هي تخصيصات واجهة المستخدم المتوفرة لبطاقات الرأس والتذييل؟

أنت تستخدم في Android StylingOptions لضبط الخلفية. ونمط الألوان. لإخفاء أو إظهار العنوان و التذييل، استخدم setHeaderEnabled setFooterEnabled من الدوال الأعضاء في NavigationFragment

في iOS، استخدم GMSMapView.settings.navigationHeaderPrimaryBackgroundColor لضبط نمط لون الخلفية. لإخفاء الرأس والتذييل أو إظهارهما استخدام "navigationFooterEnabled" وnavigationHeaderEnabled من سمات GMSUISettings.

يتم الآن تخطيط المسار

هل يمكنني تقديم مسار محدّد؟ إلى السائق أو إزالة المسارات البديلة؟
لا، بشكل افتراضي، يتم توفير مسارات متعددة وتكون الأولوية للمسار الأسرع. يمكنك التأثير على المسار الافتراضي عن طريق إضافة تفضيلات، مثل "تجنب والطرق السريعة ورسوم العبور"، على طلبك. تؤثر إضافة نقاط الطريق أيضًا على المسار.
هل يمكنني عرض تصنيف للوجهة لمستخدم التطبيق يختلف عن التصنيف التلقائي للوجهة؟ موقع الوجهة؟

نعم. في Android، يمكنك إنشاء Marker باستخدام عنوان مخصص للوجهة وخط العرض/خط الطول. تشير رسالة الأشكال البيانية حزمة SDK للتنقل تعرض العنوان المخصّص والإحداثيات في NavigationMap.

في نظام التشغيل iOS، يمكنك إنشاء GMSMarker للوجهة وعرضها.

هل يمكنني استخدام حزمة تطوير البرامج (SDK) للتنقل لتتبُّع الانحرافات عن مسار محدَّد؟

نعم. في Android، يمكنك استخدام Navigator.setRouteChangedListener من أجل تلقي إشعارات عندما يتغير مسار أو يتم اقتراح مسار جديد:

  1. تسجيل جهاز استماع يتحقّق من موضع الجهاز على طول المسار باستخدام الطريقة Navigator.setRouteChangedListener.
  2. إضافة رمز إلى معالج حدث معاودة الاتصال، onRouteChanged:
    • يمكنك إرسال رسالة إلى مستخدم التطبيق تتضمّن معلومات محدّثة حول الوقت المقدّر للوصول والمسافة.
    • يمكنك تتبُّع الموقع الجغرافي للجهاز.
    • [اختياري] إضافة الوظائف الأخرى التي يتطلبها تطبيقك للتعامل مع البيانات عندما يكون السائق خارج المسار الموصوف.

في نظام iOS، استخدِم GMSNavigator ومستمعيه لتنفيذ ما يلي: تلقي إشعارات عندما يتغير مسار أو يتم اقتراح مسار جديد:

  1. على وحدة التحكم في طريقة العرض للخريطة، نفِّذ GMSNavigatorListener. والبروتوكول GMSRoadSnappedLocationProviderListener.
  2. التنفيذ GMSNavigatorListener.navigatorDidChangeRoute
  3. الوصول إلى المسار الجديد باستخدام 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()) من النشاط الرئيسي، الذي يسترجع النشاط عندما ينقر مستخدم التطبيق على الإشعار.