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

تفاصيل المنتج

المشاكل

الشبكة

البيانات

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

التوجيه

مُحاكي

Workflows

خدمات التنقّل

تفاصيل المنتج

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

الشبكة

كيف تتعامل "حزمة تطوير البرامج للتنقّل" مع الاتصال الضعيف؟
تخزّن حزمة تطوير البرامج (SDK) للتنقّل المسار مؤقتًا لكل رحلة. وتشمل المعلومات المخزّنة مؤقتًا معلومات المسار لمدة تتراوح بين 15 و20 دقيقة، والمسارات البديلة في حال انحراف السائق عن المسار. تستخدم حزمة تطوير البرامج (SDK) للتنقّل نظام تحديد المواقع العالمي (GPS) وأدوات الاستشعار في الجهاز لتحديد الموقع الجغرافي التقريبي.
هل يتوفّر وضع عدم الاتصال بالإنترنت؟
لا، لا توفّر حزمة تطوير البرامج (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 لإدارة المسافة بين الإشعارات.

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

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

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

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

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

هل يمكنني ترميز أفضل خيار للمسار بالألوان؟
لا، لا يتوفّر حاليًا خيار الترميز اللوني لمسار محدّد.
هل يمكن لـ Navigation 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 بعنوان مخصّص للوجهة وخط العرض/خط الطول. تعرض "حزمة تطوير البرامج للتنقّل" العنوان المخصّص والإحداثيات على NavigationMap.

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

هل يمكنني استخدام حزمة Navigation SDK لتتبُّع الانحرافات عن مسار محدّد؟

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

  1. سجِّل مستمعًا يتحقّق من موضع الجهاز على طول المسار باستخدام طريقة Navigator.setRouteChangedListener.
  2. أضِف الرمز إلى معالج أحداث ردّ الاتصال، onRouteChanged:
    • أرسِل رسالة إلى مستخدم التطبيق تتضمّن معلومات محدّثة عن الوقت المقدَّر للوصول والمسافة.
    • تتبُّع الموقع الجغرافي للجهاز
    • [optional] Add other functionality required by your app to handle when the driver is off the prescribed route.

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

  1. في وحدة التحكّم في عرض الخريطة، نفِّذ بروتوكول GMSNavigatorListener وبروتوكول GMSRoadSnappedLocationProviderListener.
  2. تنفيذ GMSNavigatorListener.navigatorDidChangeRoute
  3. يمكنك الوصول إلى المسار الجديد باستخدام السمتَين routeLegs وcurrentRouteLeg في GMSNavigator.
هل يمكن للسائق الخروج من التنقّل بدون إكمال المسار؟

نعم. في Android، يمكنك استدعاء طريقة Navigator.stopGuidance() لإيقاف التنقّل.

في iOS، يمكنك الاتصال بـ GMSNavigator.clearDestinations.

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

نعم. باستخدام ميزة "توجيه المركبات الكبيرة" (LVR)، يمكنك تمرير رموز المسارات المميّزة الخاصة بالشاحنات التي تم إنشاؤها بواسطة Routes API أو Route Optimization API إلى حزمة تطوير البرامج (SDK) الخاصة بالتنقّل. توفّر حزمة SDK اتجاهات مفصّلة مع وسائل شرح المسار (الارتفاع والوزن والمواد الخطرة والقيود المفروضة على الشاحنات) وتحافظ على الملف الشخصي المادي للمركبة أثناء إعادة التوجيه الديناميكي. لمعرفة التفاصيل، يُرجى الاطّلاع على التنقّل في مسارات المركبات الكبيرة.

مُحاكي

هل تتيح المحاكاة تغيير المسار؟

نعم. في Android، يمكنك استدعاء simulateLocationsAlongNewRoute لمحاكاة رحلة تتضمّن تغييرًا في المسار. تتجاهل الطريقة simulateLocationsAlongExistingRoute التغييرات التي تطرأ على المسار الحالي.

في نظام التشغيل iOS، استخدِم GMSLocationSimulator.simulateAlongNewRouteToDestinations لمحاكاة رحلة تتضمّن تغييرًا في المسار. إذا كنت لا تتوقّع أي تغييرات في المسار، يمكنك استخدام GMSLocationSimulator.simulateLocationsAlongExistingRoute أو GMSLocationSimulator.simulateAlongNewRouteToDestinations.

Workflows

كيف يمكنني إغلاق الإشعار بعد إغلاق نشاط يحتوي على جزء تنقّل؟

يظل إشعار التنقل مرئيًا أثناء التنقل، عند إغلاق النشاط. عند وصول المركبة إلى الوجهة، تتوقف الملاحة ويختفي الإشعار.

للتعامل مع النقرات على الإشعار، استخدِم Navigator.startGuidance(intent resumeIntent). يتم تنشيط resume intent عندما ينقر مستخدم التطبيق على الإشعار. عادةً ما يتم استدعاء Navigator.startguidance(getIntent()) من النشاط الرئيسي، والذي يستدعي النشاط عندما ينقر مستخدم التطبيق على الإشعار.

خدمات التنقّل

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

توفّر خدمات التنقّل في "منصة خرائط Google" مجموعة من واجهات برمجة التطبيقات وحزم تطوير البرامج (SDK) للمساعدة في تلبية احتياجات المؤسسات في مجال النقل والخدمات اللوجستية. بالنسبة إلى عملاء Mobility Services، يتم عادةً استخدام حزمة تطوير البرامج (SDK) للتنقّل مع الخدمات ذات الصلة لتحسين المسار والإرسال وتتبُّع المهام وإحصاءات الأسطول وغير ذلك. يتم أيضًا احتساب تكلفة حزمة تطوير البرامج (SDK) للتنقّل بشكل مختلف لعملاء "خدمات التنقّل". لمزيد من المعلومات، يُرجى الاطّلاع على مستندات خدمات التنقّل.

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

كيف يمكنني معرفة ما إذا كنتُ من عملاء "خدمات التنقّل"؟
إذا لم تكن متأكدًا مما إذا كنت تستخدم Navigation SDK كعميل في "خدمات التنقّل"، ابحث عن طلب ReportBillableEvent في الرمز البرمجي. يجب ألا يستدعي طريقة ReportBillableEvent سوى عملاء Mobility Services.

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

ما هي واجهات برمجة التطبيقات في Navigation SDK التي يجب أن يستخدمها عملاء "خدمات التنقّل" فقط؟

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

إذا كنت من عملاء "خدمات التنقّل"، هل يمكنني أيضًا استخدام حزمة Navigation SDK غير تابعة لـ "خدمات التنقّل"؟

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

لمزيد من المعلومات حول استخدام عملية تنفيذ Navigation SDK لا تتعلّق بخدمات التنقّل، بما في ذلك نقل تطبيق من نوع تنفيذ إلى آخر، يُرجى التواصل مع ممثل حساب Google.

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