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

حقائق المنتج

الشبكة

البيانات

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

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

مُحاكي

Workflows

حقائق المنتج

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

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

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

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

لا، فحزمة تطوير البرامج (SDK) للتنقّل لا تتطلّب تثبيت "خرائط Google" للأجهزة الجوّالة على الجهاز.
لا، لا توفِّر حزمة تطوير البرامج (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، لمواصلة تشغيل التنقّل في الخلفية، يجب تنفيذ التفويض لـ GMSRoadSnappedLocationProviderDelegate وضبط الخاصية allowsBackgroundLocationUpdates على TRUE.

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

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

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

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

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

في نظام التشغيل iOS، يمكنك تنفيذ رمز التفويض GMSNavigatorDelegate.didUpdateRemainingDistance لإدارة المسافة بين الإشعارات.

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

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

في نظام iOS، يمكنك إيقاف إشعار الخلفية للمواقع الجغرافية التي تم التقاط صور لها على الطريق من خلال ضبط GMSRoadSnappedLocationProviderDelegate.allowsBackgroundLocationUpdates على "لا".

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

يتتبّع مسجّل المعاملات عمليات استلام الطلبات وعمليات الانسحاب باستخدام معرّف فريد تسجّله Google لأغراض الفوترة. لمزيد من المعلومات، يُرجى الاطّلاع على تعليمات اختبار التنفيذ للنظام الأساسي الذي تستخدمه:

للحصول على معلومات حول جوانب الترميز في معاملات الفوترة، يُرجى الاطّلاع على المعاملات القابلة للفوترة.

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

هل يمكنني استخدام الترميز بالألوان الأفضل للمسار؟
لا، الترميز اللوني لأحد خيارات مسار محددة غير متاح في الوقت الحالي.
هل يمكن لحزمة تطوير البرامج (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. في وحدة التحكّم في عرض الخريطة، نفِّذ بروتوكول GMSNavigatorDelegate وبروتوكول GMSRoadSnappedLocationProviderDelegate.
  2. تنفيذ GMSNavigatorDelegate.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()) من قسم "النشاط الرئيسي" الذي يسترجع "النشاط" عندما ينقر مستخدم التطبيق على الإشعار.