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

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

المشاكل

الشبكة

البيانات

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

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

مُحاكي

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.
  • إذا تم تثبيت حزمة تطوير البرامج Nav SDK، ولكنّ مشروعك لا يستخدم واجهات برمجة التطبيقات الخاصة بها، عليك إزالتها من البرنامج الثنائي.

الشبكة

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

هل تتوافق حزمة 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 باستخدام عنوان مخصّص للوجهة وخطوط الطول/العرض. تعرِض Navigation 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()) من النشاط الرئيسي الذي يُعيد النشاط عندما ينقر مستخدم التطبيق على الإشعار.

خدمات النقل

كيف يختلف استخدام حزمة تطوير البرامج Navigation SDK عن عملاء Mobility Services؟

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

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

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

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

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

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

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

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

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

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