الأسئلة الشائعة
تفاصيل المنتج
- كيف يجب عرض إشعار بنود خدمة حزمة تطوير البرامج (SDK) للتنقّل؟
- ما هي اللغات التي تتوفّر بها ميزة "الإرشاد الصوتي"؟
- هل يتم الحفاظ على الاتجاه عندما يخرج السائق من وضع التنقّل؟
- هل تتوفّر الخطوط المتعدّدة عند بدء مسار أو تغييره؟
- هل يحتاج مستخدمو التطبيق إلى تثبيت تطبيق "خرائط Google" للأجهزة الجوّالة؟
- هل يمكن لحزمة تطوير البرامج (SDK) الخاصة بالتنقّل تحديد مواقف السيارات بالقرب من المطاعم والوجهات الأخرى؟
- هل تعرض حزمة تطوير البرامج (SDK) للتنقّل اتجاه حركة المرور في المسارات عند الاقتراب من نقطة انعطاف؟
المشاكل
- في Xcode 12، لا يتم إنشاء التطبيقات بشكل صحيح للمحاكي. كيف يمكنني حلّ هذه المشكلة؟
- يتعذّر تحميل
GMSMapView.
الشبكة
البيانات
- هل يمكنني استرداد جميع محطات التوقف/الوجهات في رحلة قبل بدء المسار؟
- هل تتوفّر إرشادات المسار المفصّلة في بداية المسار؟
- كيف يتم إبلاغ مستخدمي التطبيق بالوقت المقدَّر للوصول؟
- هل يمكن استخدام
RoadSnappedLocationProviderللحصول على الموقع الجغرافي الحالي للسائق إذا لم يكن التنقّل في المقدّمة؟ - هل تتيح حزمة تطوير البرامج (SDK) للتنقّل استخدام الحدود الجغرافية؟
- هل يمكنني إيقاف الإشعارات عندما يكون تطبيق "التنقّل" في الخلفية؟
تخصيص واجهة المستخدم
- هل يمكنني ترميز أفضل خيار للمسار بالألوان؟
- هل يمكن لحزمة Navigation SDK عرض الوقت المتوقّع للوصول إلى الوجهة النهائية؟
- كيف يمكنني إخفاء تعديلات الوقت المقدَّر للوصول؟
- ما هي تخصيصات واجهة المستخدم المتاحة لبطاقات الرأس والتذييل؟
التوجيه
- هل يمكنني تقديم مسار محدّد للسائق أو إزالة المسارات البديلة؟
- هل يمكنني عرض تصنيف مختلف للوجهة للسائق غير الموقع الجغرافي التلقائي للوجهة؟
- هل يمكنني استخدام حزمة Navigation SDK لتتبُّع الانحرافات عن مسار محدّد؟
- هل يمكن للسائق الخروج من التنقّل بدون إكمال المسار؟
- هل تتيح حزمة تطوير البرامج (SDK) للتنقّل تحديد المسارات والتنقّل للشاحنات والمركبات الكبيرة؟
مُحاكي
Workflows
خدمات التنقّل
- ما هي أوجه الاختلاف في استخدام حزمة تطوير البرامج (SDK) للتنقّل لعملاء "خدمات التنقّل"؟
- كيف يمكنني معرفة ما إذا كنتُ من عملاء "خدمات التنقّل"؟
- كيف تتم فوترة حزمة تطوير البرامج (SDK) للتنقّل لعملاء "خدمات التنقّل"؟
- ما هي واجهات برمجة التطبيقات في Navigation SDK التي يجب أن يستخدمها عملاء "خدمات التنقّل" فقط؟
- إذا كنت من عملاء "خدمات التنقّل"، هل يمكنني أيضًا استخدام عملية تنفيذ لحزمة Navigation SDK لا تتعلّق بـ "خدمات التنقّل"؟
تفاصيل المنتج
- يجب أن يعرض تطبيقك مربّع حوار يتضمّن إشعارًا ببنود خدمة حزمة تطوير البرامج (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، اتّبِع الخطوات التالية لتقديم معلومات الوقت المتوقّع للوصول إلى مستخدمي التطبيق:
- استرداد الوقت والمسافة لجميع النقاط على المسار باستخدام
Navigator.getTimeAndDistanceList() - أعِد توجيه هذه المعلومات إلى تطبيق العميل كما تفعل مع الوقت المقدَّر لوصول السائق.
في نظام التشغيل iOS، اتّبِع الخطوات التالية لتقديم معلومات الوقت المتوقّع للوصول إلى مستخدمي التطبيق:
- استرِدّ مراحل الرحلة باستخدام
Navigator.getRouteSegments(). - اتصِل بـ
GMSNavigator.timeToNextDestinationلكل جزء من الرحلة. - أعِد توجيه معلومات الوقت إلى تطبيق العميل كما تفعل مع الوقت المقدَّر لوصول السائق.
- استرداد الوقت والمسافة لجميع النقاط على المسار باستخدام
-
هل يمكن استخدام
RoadSnappedLocationProviderللحصول على الموقع الجغرافي الحالي للسائق إذا لم يكن تطبيق التنقّل في المقدّمة؟ -
نعم. في Android، يتم تشغيل
RoadSnappedLocationProviderفي الخلفية تلقائيًا.في نظام التشغيل iOS، لمواصلة تشغيل التنقّل في الخلفية، يمكنك تنفيذ المستمع لـ
GMSRoadSnappedLocationProviderListener، وضبط السمةallowsBackgroundLocationUpdatesعلىTRUE. - هل تتيح حزمة تطوير البرامج (SDK) للتنقّل استخدام الحدود الجغرافية؟
-
لا، في سياق التنقّل، يتفوّق
remainingTimeOrdistanceChangeListenerعلى الحدود الجغرافية. قد لا تأخذ الحدود الجغرافية في الاعتبار هندسة الطريق، وقد لا تكون متمركزة على النقطة المحدّدة التي يتنقّل إليها السائق.يمكنك محاكاة هذه الوظيفة باستخدام
remainingTimeOrdistanceChangeListener.- اضبط الحدّ الأدنى لتحديد معدّل تكرار عمليات معاودة الاتصال.
- تحقَّق من المسافة المتبقية إلى الوجهة.
على سبيل المثال، إذا ضبطت الحدّ على 100 متر، ستتلقّى طلب معاودة الاتصال عندما تتغيّر المسافة إلى الوجهة بمقدار 100 متر. ومع انخفاض المسافة، يمكنك تعديل هذا الحدّ إلى قيمة أصغر وتلقّي عمليات استدعاء بشكل متكرر. بعد ذلك، تحقَّق من المسافة المتبقية لتحديد ما إذا كنت قريبًا بما يكفي من موقع الاستلام أو التسليم.
في نظام التشغيل iOS، يمكنك تنفيذ المستمع
GMSNavigatorListener.didUpdateRemainingDistanceلإدارة المسافة بين الإشعارات. - هل يمكنني إيقاف الإشعارات عندما يكون تطبيق "التنقّل" في الخلفية؟
-
نعم. في Android، استخدِم
Navigator.setHeadsUpNotificationEnabledللتحكّم في الإشعارات. تحتوي هذه الطريقة على وسيطة منطقية. يؤدي الخيارFALSEإلى إيقاف الإشعارات، بينما يؤدي الخيارTRUEإلى تفعيلها.في نظام التشغيل iOS، يمكنك إيقاف إشعارات الخلفية للمواقع الجغرافية التي تم تثبيتها على الطريق من خلال ضبط
GMSRoadSnappedLocationProvider.allowsBackgroundLocationUpdatesعلى "لا".لإيقاف المعالجة في الخلفية لإشعارات المواقع الجغرافية الأخرى، يمكنك الاتصال بالرقم
GMSNavigator.sendsBackgroundNotifications(NO).
تخصيص واجهة المستخدم
- هل يمكنني ترميز أفضل خيار للمسار بالألوان؟
- لا، لا يتوفّر حاليًا خيار الترميز اللوني لمسار محدّد.
- هل يمكن لـ Navigation SDK عرض الوقت المتوقّع للوصول إلى الوجهة النهائية؟
-
نعم. في Android، استخدِم الطرق التالية:
- استرداد الوقت والمسافة لجميع النقاط على المسار باستخدام
Navigator.getTimeAndDistanceList() - يمكنك إخفاء الوقت المتوقّع للوصول إلى النقطة الحالية على المسار باستخدام
NavigationFragment.setEtaCardEnabled(false). - عرض الوقت المقدَّر للوصول إلى الوجهة النهائية
في نظام التشغيل iOS، استخدِم ما يلي:
- تواصل هاتفيًا مع "
GMSNavigator.routeLegs(read)". - في المرحلة الأخيرة، اتصل بالرقم
GMSNavigator.timeToNextDestination. - يمكنك إخفاء الوقت المقدَّر للوصول إلى النقطة الحالية على المسار من خلال ضبط
MSMapView.settings.navigationFooterEnabled=NOعلى FALSE. - عرض الوقت المقدَّر للوصول إلى الوجهة النهائية
- استرداد الوقت والمسافة لجميع النقاط على المسار باستخدام
- كيف يمكنني إخفاء تعديلات الوقت المقدَّر للوصول؟
-
يمكنك إيقاف بطاقات الوقت المقدّر للوصول بالطرق التالية:
- على Android، استخدِم
navigationView.setEtaCardEnabled(false). - في نظام التشغيل iOS، استخدِم
GMSMapView.settings.navigationFooterEnabled=NO.
- على Android، استخدِم
-
في Android، يمكنك استخدام
StylingOptionsلضبط نمط لون الخلفية. لإخفاء أو إظهار الرأس والتذييل، استخدِم دالتي العضوsetHeaderEnabledوsetFooterEnabledفيNavigationFragment.في نظام التشغيل iOS، استخدِم
GMSMapView.settings.navigationHeaderPrimaryBackgroundColorلضبط نمط لون الخلفية. لإخفاء الرأس والتذييل أو إظهارهما، استخدِم السمتَينnavigationFooterEnabledوnavigationHeaderEnabledفيGMSUISettings.
التوجيه
- هل يمكنني تقديم مسار محدّد للسائق أو إزالة المسارات البديلة؟
- لا، يتم تلقائيًا توفير مسارات متعددة، وتكون الأولوية للمسار الأسرع. يمكنك التأثير في المسار التلقائي من خلال إضافة إعدادات مفضّلة، مثل "تجنُّب الطرق السريعة ورسوم العبور"، إلى طلبك. تؤثر إضافة نقاط على المسار أيضًا في المسار.
- هل يمكنني عرض تصنيف مختلف للوجهة لمستخدم التطبيق عن الموقع الجغرافي التلقائي للوجهة؟
-
نعم. في Android، يمكنك إنشاء
Markerبعنوان مخصّص للوجهة وخط العرض/خط الطول. تعرض "حزمة تطوير البرامج للتنقّل" العنوان المخصّص والإحداثيات علىNavigationMap.في نظام التشغيل iOS، يمكنك إنشاء
GMSMarkerللوجهة وعرضه. - هل يمكنني استخدام حزمة Navigation SDK لتتبُّع الانحرافات عن مسار محدّد؟
-
نعم. في Android، استخدِم
Navigator.setRouteChangedListenerلتلقّي إشعارات عند تغيير مسار أو اقتراح مسار جديد:- سجِّل مستمعًا يتحقّق من موضع الجهاز على طول المسار
باستخدام طريقة
Navigator.setRouteChangedListener. - أضِف الرمز إلى معالج أحداث ردّ الاتصال،
onRouteChanged:- أرسِل رسالة إلى مستخدم التطبيق تتضمّن معلومات محدّثة عن الوقت المقدَّر للوصول والمسافة.
- تتبُّع الموقع الجغرافي للجهاز
- [optional] Add other functionality required by your app to handle when the driver is off the prescribed route.
في نظام التشغيل iOS، استخدِم
GMSNavigatorوالمستمعين لتلقّي إشعارات عند تغيير مسار أو اقتراح مسار جديد:- في وحدة التحكّم في عرض الخريطة، نفِّذ بروتوكول
GMSNavigatorListenerوبروتوكولGMSRoadSnappedLocationProviderListener. - تنفيذ
GMSNavigatorListener.navigatorDidChangeRoute - يمكنك الوصول إلى المسار الجديد باستخدام السمتَين
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())من النشاط الرئيسي، والذي يستدعي النشاط عندما ينقر مستخدم التطبيق على الإشعار.
خدمات التنقّل
توفّر خدمات التنقّل في "منصة خرائط Google" مجموعة من واجهات برمجة التطبيقات وحزم تطوير البرامج (SDK) للمساعدة في تلبية احتياجات المؤسسات في مجال النقل والخدمات اللوجستية. بالنسبة إلى عملاء Mobility Services، يتم عادةً استخدام حزمة تطوير البرامج (SDK) للتنقّل مع الخدمات ذات الصلة لتحسين المسار والإرسال وتتبُّع المهام وإحصاءات الأسطول وغير ذلك. يتم أيضًا احتساب تكلفة حزمة تطوير البرامج (SDK) للتنقّل بشكل مختلف لعملاء "خدمات التنقّل". لمزيد من المعلومات، يُرجى الاطّلاع على مستندات خدمات التنقّل.
تتوفّر منتجات التنقّل لعملاء محدّدين فقط. يُرجى التواصل مع ممثل المبيعات للحصول على مزيد من المعلومات.
ReportBillableEvent في الرمز البرمجي. يجب ألا يستدعي طريقة ReportBillableEvent سوى عملاء Mobility Services.
هناك العديد من واجهات برمجة التطبيقات في حزمة تطوير البرامج (SDK) للتنقّل والمخصّصة للاستخدام فقط من قِبل عملاء خدمات التنقّل، والذين تحصّل Google منهم رسومًا على أساس كل معاملة. إذا لم تكن من عملاء Mobility Services، لن تؤدي الطرق التالية إلى أي إجراء:
نعم، يمكن لعملاء "خدمات التنقّل" استخدام كلّ من عمليات تنفيذ "خدمات التنقّل" وغير "خدمات التنقّل" في حزمة Navigation SDK. ومع ذلك، يمكنك استخدام نوع تنفيذ واحد فقط في التطبيق في كل مرة. عليك أيضًا إنشاء مشروع جديد على Google Cloud وحساب فوترة ومفتاح واجهة برمجة تطبيقات، بشكل منفصل عن تلك التي تستخدمها مع عملية تنفيذ "خدمات التنقّل". لمزيد من المعلومات، يُرجى الاطّلاع على نظرة عامة على إعداد حزمة تطوير البرامج (SDK) للتنقّل.
لمزيد من المعلومات حول استخدام عملية تنفيذ Navigation SDK لا تتعلّق بخدمات التنقّل، بما في ذلك نقل تطبيق من نوع تنفيذ إلى آخر، يُرجى التواصل مع ممثل حساب Google.
ملاحظة: إذا لم تكن من عملاء "خدمات التنقّل" وكنت مهتمًا بمعرفة المزيد عن مجموعة واجهات برمجة التطبيقات وحزم تطوير البرامج (SDK) في "خدمات التنقّل"، يُرجى التواصل مع فريق مبيعات "منصة خرائط Google".