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

يمكنك التحكّم في عرض نصائح المقاطعات على طول المسارات باستخدام shouldDisplayPrompts
، والذي يتحكّم أيضًا في عرض التنبيهات المبرمَجة عندما يقترب المستخدم من مقطع.
mapView.navigator.shouldDisplayPrompts = true
عرض تفاصيل الاضطراب عندما ينقر المستخدم على أحد العناصر التي تشير إلى مشكلة
يمكن للمستخدمين النقر على أحد العناصر المميّزة لعرض بطاقة معلومات تتضمّن مزيدًا من المعلومات عن المشكلة، بما في ذلك نوع المشكلة ووقت آخر إبلاغ بها، وفي بعض الحالات، خيار للتصويت على ما إذا كانت المشكلة لا تزال قائمة. هناك نوعان مختلفان من بطاقات المعلومات التي قد تظهر، وذلك استنادًا إلى ما إذا كان المستخدم في وضع التنقّل النشط، وتختلف خيارات الضبط لكل نوع.
بطاقات معلومات توضيحية في النظرات العامة على المسارات، قبل بدء التنقّل النشط
عندما ينقر المستخدم على رمز معلومات في نظرة عامة على المسار، تظهر بطاقة معلومات قبل بدء التنقّل النشط تتضمّن مزيدًا من المعلومات عن الحدث المُعيق.

يمكنك التحكّم في إمكانية نقر المستخدمين على نصائح المقاطع المتعلّقة بالاضطرابات في المخططات الإجمالية للمسارات لعرض المزيد من
المعلومات باستخدام
showsIncidentCards
.
mapView.settings.showsIncidentCards = true
بطاقات معلومات التعليقات التوضيحية أثناء التنقّل النشط
عندما يظهر بيان عُطل على طول مسار أثناء التنقّل النشط، يمكن للمستخدمين النقر على البيان لعرض بطاقة معلومات تتضمّن مزيدًا من المعلومات عن العُطل، بما في ذلك نوعه ووقت آخر مرة تم الإبلاغ عنه، بالإضافة إلى أزرار للتصويت على ما إذا كان العُطل لا يزال قائمًا. تعالج Google الأصوات التي يرسلها المستخدمون، وقد تظهر على الخريطة لاطلاع مستخدمي "خرائط Google" الآخرين ومستخدمي حزمة تطوير البرامج Navigation SDK عليها، كما يمكن استخدامها لتحديد ما إذا كان سيتم مواصلة عرض معلومات الاضطراب.

يمكنك التحكّم في عرض وإمكانية النقر على وسائل الشرح المتعلّقة بالانقطاعات أثناء التنقّل النشط باستخدام رمز
shouldDisplayPrompts
الذي يتحكّم أيضًا في
عرض وسائل الشرح على طول المسارات و
عرض التنبيهات المبرمَجة عندما يقترب المستخدم من انقطاع.
mapView.navigator.shouldDisplayPrompts = true
تنبيهات تلقائية بشأن الانقطاعات مع إمكانية التصويت أثناء التنقّل النشط
أثناء التنقّل النشط، عندما يقترب المستخدم من عرقلة على طول مسار، تظهر رسالة تطلب منه تقديم معلومات عن العرقلة واختيار ما إذا كان العرقلة لا تزال موجودة. تعالج Google الأصوات التي يرسلها المستخدمون، وقد تظهر على الخريطة لاطلاع مستخدمي حزمة SDK لـ "خرائط Google" و"التنقّل" الآخرين عليها، كما يمكن استخدامها لتحديد ما إذا كان سيتم مواصلة عرض معلومات الاضطراب.

يمكنك ضبط عرض طلبات التنبيه أثناء التنقّل النشط باستخدام
shouldDisplayPrompts
، والذي يتحكّم أيضًا في عرض
التعليقات التوضيحية على طول المسارات.
mapView.navigator.shouldDisplayPrompts = true
الإبلاغ عن انقطاع الخدمة أثناء التنقّل النشط
أثناء تفعيل وضع التنقّل النشط، يظهر زر في واجهة مستخدم التنقّل يتيح للمستخدمين الإبلاغ عن أي تعطُّلات جديدة على طول مسارهم. عندما ينقر المستخدم على الزر، تظهر قائمة بأنواع الأعطال المتاحة للإبلاغ عنها. تعالج Google البلاغات التي يرسلها المستخدمون، وقد تظهر على الخريطة لمستخدمي "خرائط Google" وحزمة تطوير البرامج Navigation SDK الآخرين.


يمكنك ضبط مستوى ظهور زر الإبلاغ أثناء التنقّل النشط باستخدام
navigationReportIncidentButtonEnabled
.
// Enables the incident reporting FAB to show in situations where incident // reporting is possible. mapView.settings.navigationReportIncidentButtonEnabled = true
العمل مع واجهات مستخدم التنقّل المخصّصة
إذا كان تطبيقك يستخدم حزمة Navigation SDK التي تتضمّن عناصر واجهة مستخدم مخصّصة، عليك مراعاة عناصر المقاطع التي تظهر في الوقت الفعلي لتجنّب حدوث تعارضات.
موضع زر إعداد التقارير
يتم وضع زر الإبلاغ عن الأعطال تلقائيًا في أسفل/زاوية نهاية الخريطة، على الجانب الأيمن للغات التي تُكتب من اليسار إلى اليمين وعلى الجانب الأيسر للغات التي تُكتب من اليمين إلى اليسار. إذا كنت بحاجة إلى نقل زر الإبلاغ لإفساح مساحة لعناصر واجهة المستخدم المخصّصة، استخدِمbottomTrailingButtonsLayoutGuide
.
Swift
// Create a new layout guide let topRightLayoutGuide = UILayoutGuide() self.view.addLayoutGuide(topRightLayoutGuide) // Activate constraints using fixed constants here as an example // assuming the current reporting button is of fixed height topRightLayoutGuide.topAnchor.constraint(equalTo: _mapView.navigationHeaderLayoutGuide.bottomAnchor, constant: 50).isActive = true topRightLayoutGuide.trailingAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.trailingAnchor, constant: -14).isActive = true // Assign the layout guide _mapView.bottomTrailingButtonsLayoutGuide = topRightLayoutGuide // Create an alternate layout guide to use when the header and the footer are not full width let topRightAlternateLayoutGuide = UILayoutGuide() self.view.addLayoutGuide(topRightAlternateLayoutGuide) // Activate constraints using fixed constants here as an example // assuming the current RTD button is of fixed height topRightAlternateLayoutGuide.topAnchor.constraint(equalTo: _mapView.navigationHeaderLayoutGuide.bottomAnchor, constant: 20).isActive = true topRightAlternateLayoutGuide.trailingAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.trailingAnchor, constant: -10).isActive = true // Assign the layout guide _mapView.bottomTrailingButtonsAlternateLayoutGuide = topRightAlternateLayoutGuide
Objective-C
// Create a new layout guide UILayoutGuide *topRightLayoutGuide = [[UILayoutGuide alloc] init]; [self.view addLayoutGuide:topRightLayoutGuide]; // Activate constraints using fixed constants here as an example // assuming the current RTD button is of fixed height [[topRightLayoutGuide.topAnchor constraintEqualToAnchor:_mapView.navigationHeaderLayoutGuide.bottomAnchor constant:50] setActive:YES]; [[topRightLayoutGuide.trailingAnchor constraintEqualToAnchor:self.view.safeAreaLayoutGuide.trailingAnchor constant:-14] setActive:YES]; // Assign the layout guide _mapView.bottomTrailingButtonsLayoutGuide = topRightLayoutGuide; // Create an alternate layout guide to use when the header and the footer are not full width UILayoutGuide *topRightAlternateLayoutGuide = [[UILayoutGuide alloc] init]; [self.view addLayoutGuide:topRightAlternateLayoutGuide]; // Activate constraints using fixed constants here as an example // assuming the current RTD button is of fixed height [[topRightAlternateLayoutGuide.topAnchor constraintEqualToAnchor:_mapView.navigationHeaderLayoutGuide.bottomAnchor constant:50] setActive:YES]; [[topRightAlternateLayoutGuide.trailingAnchor constraintEqualToAnchor:self.view.safeAreaLayoutGuide.trailingAnchor constant:-14] setActive:YES]; // Assign the layout guide _mapView.bottomTrailingButtonsAlternateLayoutGuide = topRightAlternateLayoutGuide;
Prompt Visibility API (تجريبية)
تساعدك واجهة برمجة التطبيقات Prompt Visibility API في تجنُّب التعارضات بين عناصر واجهة المستخدم التي يتم إنشاؤها من خلال Navigation SDK وعناصر واجهة المستخدم المخصّصة الخاصة بك من خلال إضافة مستمع لتلقّي طلب إعادة الاتصال قبل ظهور عنصر واجهة مستخدم Navigation SDK وفور إزالة العنصر. يمكنك تلقّي مكالمات إعادة توجيه بشأن عناصر الاضطرابات في الوقت الفعلي، بما في ذلك بطاقات المعلومات والطلبات وقائمة الإبلاغ عن الاضطرابات، بالإضافة إلى الإشعارات الأخرى التي تنشئها حزمة تطوير البرامج (SDK) للتنقّل.Swift
// Additional methods added to GMSNavigatorListener ... func navigatorWillPresentPrompt(_ navigator: GMSNavigator) { // Hide any sort of custom UI element. } func navigatorDidDismissPrompt(_ navigator: GMSNavigator) { // Show any sort of custom UI element. } ...
Objective-C
// Additional methods added to GMSNavigatorListener ... - (void)navigatorWillPresentPrompt:(GMSNavigator *)navigator { // Hide any sort of custom UI element. } - (void)navigatorDidDismissPrompt:(GMSNavigator *)navigator { // Show any sort of custom UI element. } ...