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

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

المشاكل

الشبكة

البيانات

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

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

مُحاكي

Workflows

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

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

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

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

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

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

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

المشاكل

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

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

لمزيد من المعلومات، يُرجى الاطّلاع على سلسلة محادثات StackOverflow التالية.

لا يتم تحميل GMSMapView.

إذا لم يتم تحميل GMSMapView:

  • تأكَّد من أنّ NavSDK مفعَّل في Cloud Console.
  • إذا كانت حزمة تطوير البرامج (SDK) لنظام الملاحة مثبّتة، ولكنّ مشروعك لا يستخدم واجهات برمجة تطبيقات حزمة تطوير البرامج (SDK) لنظام الملاحة، عليك إزالتها من ملفك الثنائي.

الشبكة

كيف تتعامل حزمة Navigation SDK مع ضعف الاتصال بالإنترنت؟
تخزِّن حزمة تطوير البرامج (SDK) لميزة التنقّل المسار مسبقًا لكل رحلة. تشمل المعلومات المخزّنة مسبقًا معلومات عن المسار لمدة تتراوح بين 15 و20 دقيقة، وطرق بديلة في حال انحراف السائق عن المسار. تقترب برمجة تطبيقات تنمية البرامج (SDK) لنظام التنقّل من تحديد الموقع الجغرافي باستخدام نظام تحديد المواقع العالمي (GPS) وأدوات قياس في الجهاز.
هل يتوفّر وضع بلا إنترنت؟
لا، لا توفّر حزمة تطوير البرامج (SDK) لميزة التنقّل حاليًا ميزة "وضع عدم الاتّصال بالإنترنت"، ولكنّها توفّر معلومات محفوظة مؤقتًا في ذاكرة التخزين لرحلة معيّنة.

البيانات

هل يمكنني استرداد جميع المحطات/الوجهات في رحلة قبل بدء المسار؟

نعم. في Android، لاسترداد الاتجاهات لمسار معيّن، اتصل بالرقم Navigator.getRouteSegments().

على جهاز iOS، اتصل بالرقم GMSNavigator.routeLegs(read).

هل تتوفّر إرشادات مفصّلة للمسار في بداية الرحلة؟
نعم. توفِّر حزمة Navigation SDK قائمة بمقاطع المسار. بالإضافة إلى ذلك، يمكن للسائق التمرير سريعًا في بطاقة الاتجاهات في العنوان لعرض كل مناورة.
كيف يتم إبلاغ مستخدمي التطبيق بالوقت المقدَّر للوصول؟

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

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

في نظام التشغيل iOS، اتّبِع الخطوات التالية لتقديم معلومات وقت الوصول المقدَّر لمستخدمي التطبيق:

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

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

في نظام التشغيل iOS، لمواصلة تشغيل التنقّل في الخلفية، نفِّذ مستمع لـ GMSRoadSnappedLocationProviderListener، واضبط السمة allowsBackgroundLocationUpdates على TRUE.

هل تتيح حزمة تطوير البرامج Navigation 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 إلى خطأ.
  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 Navigation SDK العنوان المخصّص والإحداثيات في NavigationMap.

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

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

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

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

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

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

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

على جهاز iOS، اتصل بالرقم GMSNavigator.clearDestinations.

مُحاكي

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

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

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

Workflows

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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