الأسئلة الشائعة
تفاصيل المنتج
- كيف يجب عرض إشعار بنود الخدمة لـ Navigation SDK؟
- ما هي اللغات التي تتوفّر بها الإرشادات الصوتية؟
- هل يتم الاحتفاظ بالاتجاه عندما يخرج السائق من وضع التنقّل؟
- هل تتوفّر الخطوط المتعددة عند بدء مسيرة أو تغيير مسار؟
- هل يجب أن يكون تطبيق "خرائط Google" مثبّتًا على الأجهزة الجوّالة لدى مستخدمي التطبيق؟
- هل يمكن لحزمة Navigation SDK تحديد مواقف السيارات بالقرب من المطاعم والوجهات الأخرى؟
- هل يعرض Navigation SDK اتجاه حركة المرور في المسارات عند الاقتراب من نقطة انعطاف؟
المشاكل
- في Xcode 12، لا يتم إنشاء التطبيقات بشكل صحيح للمحاكي. كيف يمكنني حلّ هذه المشكلة؟
- تعذّر تحميل
GMSMapView
الشبكة
البيانات
- هل يمكنني استرداد جميع المحطات أو الوجهات في رحلة قبل بدء المسار؟
- هل تتوفّر إرشادات اتّجاهات مفصّلة للمسار في بداية المسار؟
- كيف يتم إبلاغ مستخدمي التطبيق بالوقت المقدَّر للوصول؟ (ETA)
- هل يمكن استخدام
RoadSnappedLocationProvider
للحصول على الموقع الجغرافي الحالي للسائق الذي تم التقاطه إذا لم تكن ميزة التنقّل في المقدّمة؟ - هل تتيح حزمة تطوير البرامج (SDK) لتطبيق Navigation استخدام ميزة وضع حدود جغرافية؟
- هل يمكنني إيقاف الإشعارات عندما يكون تطبيق "التنقّل" في الخلفية؟
تخصيص واجهة المستخدم
- هل يمكنني استخدام ترميز ألوان لأفضل خيار مسار؟
- هل يمكن لحزمة تطوير البرامج (SDK) لنظام التنقّل عرض وقت الوصول المقدَّر إلى الوجهة النهائية؟
- كيف يمكنني إخفاء تعديلات وقت الوصول المقدَّر؟
- ما هي تخصيصات واجهة المستخدم التي تتوفّر لبطاقتَي الرأس والتذييل؟
يتم الآن تخطيط المسار
- هل يمكنني تقديم مسار محدّد لسائق أو إزالة مسارات بديلة؟
- هل يمكنني عرض تصنيف مختلف للوجهة على السائق عن الموقع الجغرافي التلقائي للوجهة؟
- هل يمكنني استخدام حزمة تطوير البرامج (SDK) لميزة التنقّل لتتبُّع الانحرافات عن مسار محدّد؟
- هل يمكن للسائق الخروج من وضع التنقّل بدون إكمال المسار؟
مُحاكي
Workflows
خدمات التنقّل
- ما هو الفرق بين استخدام حزمة تطوير البرامج Navigation SDK واستخدامها من قِبل عملاء "خدمات النقل"؟
- كيف يمكنني معرفة ما إذا كنت من عملاء "خدمات النقل"؟
- كيف يتم تحصيل رسوم حزمة تطوير البرامج (SDK) لميزة التنقّل من عملاء "خدمات النقل"؟
- ما هي واجهات برمجة التطبيقات لـ Navigation SDK التي يجب أن يستخدمها عملاء Mobility Services فقط؟
- إذا كنت من عملاء Mobility Services، هل يمكنني أيضًا استخدام حزمة تطوير البرامج (SDK) لنظام التنقّل من خلال عملية تنفيذ غير مرتبطة بـ Mobility Services؟
تفاصيل المنتج
- يجب أن يعرض تطبيقك مربّع حوار يتضمّن إشعار بنود الخدمة المتعلّقة بحزمة تطوير البرامج (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، اتّبِع الخطوات التالية لتقديم معلومات وقت الوصول المقدَّر لمستخدمي التطبيق:
- استرداد الوقت والمسافة لجميع نقاط الالتفاف باستخدام
Navigator.getTimeAndDistanceList()
- أعِد توجيه هذه المعلومات إلى تطبيق العميل كما تفعل حاليًا مع الوقت المقدَّر للوصول الخاص بالسائق.
في نظام التشغيل iOS، اتّبِع الخطوات التالية لتقديم معلومات وقت الوصول المقدَّر لمستخدمي التطبيق:
- استرداد المراحل في الرحلة باستخدام
Navigator.getRouteSegments()
- يُرجى الاتصال على
GMSNavigator.timeToNextDestination
لكل رحلة. - إعادة توجيه معلومات الوقت إلى تطبيق العميل كما تفعل حاليًا مع الوقت المقدَّر للوصول
- استرداد الوقت والمسافة لجميع نقاط الالتفاف باستخدام
-
هل يمكن استخدام
RoadSnappedLocationProvider
للحصول على الموقع الجغرافي الحالي للسائق الذي تم التقاطه إذا لم تكن ميزة التنقّل في المقدّمة؟ -
نعم. في Android، يتم تشغيل
RoadSnappedLocationProvider
في الخلفية تلقائيًا.في نظام التشغيل iOS، لمواصلة تشغيل التنقّل في الخلفية، نفِّذ مستمع لـ
GMSRoadSnappedLocationProviderListener
، واضبط السمةallowsBackgroundLocationUpdates
علىTRUE
. - هل تتيح حزمة تطوير البرامج Navigation 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
إلى خطأ. - عرض وقت الوصول المقدَّر إلى الوجهة النهائية
- استرداد الوقت والمسافة لجميع نقاط الالتفاف باستخدام
- كيف يمكنني إخفاء تعديلات وقت الوصول المقدَّر؟
-
يمكنك إيقاف بطاقات وقت الوصول المقدَّرة باستخدام الطرق التالية:
- في 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
Navigation SDK العنوان المخصّص والإحداثيات فيNavigationMap
.في نظام التشغيل iOS، يمكنك إنشاء
GMSMarker
للوجهة وعرضه. - هل يمكنني استخدام حزمة Navigation SDK لتتبُّع الانحرافات عن مسار محدّد؟
-
نعم. في Android، استخدِم
Navigator.setRouteChangedListener
لتلقّي إشعارات عند تغيُّر مسار أو اقتراح مسار جديد:- سجِّل مستمعًا يتحقّق من موضع الجهاز على طول المسار
باستخدام الطريقة
Navigator.setRouteChangedListener
. - أضِف رمزًا إلى معالِج حدث الاستدعاء
onRouteChanged
:- أرسِل رسالة إلى مستخدم التطبيق تتضمّن معلومات محدّثة عن الوقت المقدَّر للوصول والمسافة.
- تتبُّع الموقع الجغرافي للجهاز
- [اختياري] أضِف وظائف أخرى يتطلبها تطبيقك للتعامل مع الحالات التي يخرج فيها السائق عن المسار المحدّد.
في نظام التشغيل iOS، استخدِم
GMSNavigator
والمستمعين له لتلقّي إشعارات عند تغيير مسار أو اقتراح مسار جديد:- في وحدة التحكّم بالعرض الخاصة بالخريطة، نفِّذ بروتوكول
GMSNavigatorListener
و بروتوكولGMSRoadSnappedLocationProviderListener
. - تنفيذ
GMSNavigatorListener.navigatorDidChangeRoute
. - يمكنك الوصول إلى المسار الجديد باستخدام السمتَين
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())
من النشاط الرئيسي الذي يُعيد النشاط عندما ينقر مستخدم التطبيق على الإشعار.
خدمات التنقّل
توفّر "خدمات النقل" في "منصّة خرائط Google" مجموعة من واجهات برمجة التطبيقات وحِزم تطوير البرامج (SDK) للمساعدة في تلبية احتياجات المؤسسات في مجال النقل والخدمات اللوجستية. بالنسبة إلى عملاء "خدمات النقل"، يتم استخدام حزمة تطوير البرامج (SDK) لميزة التنقّل عادةً مع الخدمات ذات الصلة لتحسين المسار والإرسال وتتبُّع المهام وتحليلات الأسطول وغير ذلك. يتم أيضًا إصدار فواتير مختلفة لعملاء "خدمات التنقّل" مقابل حزمة تطوير البرامج للتنقّل. لمزيد من المعلومات، يُرجى الاطّلاع على مستندات خدمات التنقّل.
لا تتوفّر منتجات "التنقّل" حاليًا إلا لعدد محدّد من العملاء. يُرجى التواصل مع ممثل المبيعات للحصول على مزيد من المعلومات.
ReportBillableEvent
في الرمز البرمجي. يجب أن يتصل عملاء Mobility Services فقط بطريقة ReportBillableEvent
.
هناك العديد من واجهات برمجة التطبيقات في حزمة تطوير البرامج (SDK) للملاحة مخصّصة فقط لاستخدام عملاء خدمات النقل الذين تفرض عليهم Google رسومًا على أساس كل معاملة. إذا لم تكن من عملاء Mobility Services، لن تكون الطرق التالية مفيدة لك:
نعم، يمكن لعملاء Mobility Services استخدام حزمة تطوير البرامج Navigation SDK في كلّ من عمليات التنفيذ التي تتضمن Mobility Services وغير ذلك. ومع ذلك، يمكنك استخدام نوع تنفيذ واحد فقط في التطبيق في كل مرة. عليك أيضًا إنشاء مشروع جديد على Google Cloud وحساب فوترة ومفتاح واجهة برمجة تطبيقات جديدَين، ويجب أن يكونا منفصلَين عن المشروع وحساب الفوترة ومفتاح واجهة برمجة التطبيقات اللذين تستخدمهما مع تنفيذ "خدمات النقل". لمزيد من المعلومات، يُرجى الاطّلاع على نظرة عامة على إعداد حزمة تطوير البرامج (SDK) لنظام التنقّل.
لمزيد من المعلومات عن استخدام حزمة Navigation SDK من خلال عملية تنفيذ لا تتبع "خدمات النقل"، بما في ذلك نقل تطبيق من نوع تنفيذ إلى آخر، يُرجى التواصل مع ممثل حسابك على Google.
ملاحظة: إذا لم تكن حاليًا من عملاء Mobility Services وكنت مهتمًا بالاطّلاع على مزيد من المعلومات عن مجموعة Mobility Services من واجهات برمجة التطبيقات وحِزم تطوير البرامج (SDK)، يُرجى التواصل مع فريق المبيعات في Google Maps Platform.