باستخدام حزمة تطوير البرامج (SDK) للتنقّل على أجهزة iOS، يمكنك تعديل تجربة المستخدم مع خريطتك من خلال تحديد عناصر التحكّم في واجهة المستخدم والعناصر المضمّنة التي تظهر على الخريطة، والإيماءات التي تسمح بها. يمكنك أيضًا تعديل المظهر المرئي لواجهة مستخدم التنقّل. يُرجى الرجوع إلى صفحة السياسات للاطّلاع على الإرشادات حول التعديلات المقبولة على واجهة مستخدم التنقّل.
عناصر التحكّم في واجهة مستخدم الخريطة
توفّر حزمة تطوير البرامج (SDK) للتنقّل بعض عناصر التحكّم المضمّنة في واجهة المستخدم
المشابهة لتلك المتوفّرة في تطبيق "خرائط Google" لأجهزة iOS. يمكنك
تبديل مستوى ظهور عناصر التحكّم هذه باستخدام الفئة GMSUISettings. تظهر التغييرات التي تجريها على هذه الفئة فورًا على الخريطة.
البوصلة
توفّر حزمة تطوير البرامج (SDK) للتنقّل رسمًا بيانيًا للبوصلة يظهر في أعلى يسار الخريطة في ظروف معيّنة وعند تفعيله فقط. عندما ينقر المستخدم على البوصلة، تتحرك الكاميرا مرة أخرى إلى موضع باتجاه صفر (الاتجاه التلقائي) وتتلاشى البوصلة بعد فترة وجيزة.
إذا كان التنقّل مفعَّلاً وتم ضبط وضع الكاميرا على "متابعة"، ستظل البوصلة مرئية، ويؤدي النقر عليها إلى التبديل بين منظورَي الكاميرا المائل والعام.
لتجنُّب تشتت السائق، تظل البوصلة في الموضع نفسه إذا توسّع العنوان (في وضع "بورتريه") وتعارض مع الموضع التلقائي للبوصلة. إذا أضفت عنصر تحكّم مخصّصًا ثانويًا في العنوان أو طريقة عرض ملحق العنوان، سيتم إخفاء البوصلة لتجنُّب التعارضات في واجهة المستخدم.
تتيح البوصلة الوضعَين النهاري والليلي، بالإضافة إلى الوضع الداكن.
يتم تفعيل البوصلة تلقائيًا في الإصدار 11.0.0 والإصدارات الأحدث. يمكنك إيقاف
البوصلة من خلال ضبط السمة
compassButton
لـ GMSUISettings على false.
Swift
mapView.settings.compassButton = false
Objective-C
mapView.settings.compassButton = NO;
زر "موقعي الجغرافي"
يظهر زر "موقعي الجغرافي" في أسفل يسار الشاشة فقط
عند تفعيله. عندما ينقر المستخدم على الزر، تتحرك الكاميرا للتركيز على الموقع الجغرافي الحالي للمستخدم إذا كان معروفًا. يمكنك تفعيل الزر من خلال ضبط السمة
myLocationButton
لـ GMSUISettings على true.
Swift
mapView.settings.myLocationButton = true
Objective-C
mapView.settings.myLocationButton = YES;
زر "إعادة التوسيط"
عند تفعيل ميزة التنقّل، يظهر زر إعادة التوسيط عندما ينتقل المستخدم في عرض الخريطة، ويختفي عندما ينقر المستخدم لإعادة توسيط الخريطة. للسماح
بظهور زر إعادة التوسيط، اضبط السمة recenterButtonEnabled
لـ GMSUISettings على true. لمنع ظهور زر إعادة التوسيط، اضبط recenterButtonEnabled على false.
Swift
mapView.settings.isRecenterButtonEnabled = true
Objective-C
mapView.settings.recenterButtonEnabled = YES;
ملحقات واجهة مستخدم الخريطة
توفّر حزمة تطوير البرامج (SDK) للتنقّل ملحقات لواجهة المستخدم تظهر أثناء التنقّل، وهي مشابهة لتلك المتوفّرة في تطبيق "خرائط Google" لأجهزة iOS. يمكنك ضبط مستوى ظهور عناصر التحكّم هذه أو مظهرها المرئي كما هو موضّح في هذا القسم. ستظهر التغييرات التي تجريها هنا خلال رحلة المستخدم التالية.
رأس التنقل والتذييل

أثناء التنقل، يظهر عنوان التنقل في أعلى الشاشة ويظهر تذييل التنقل في الأسفل. يعرض عنوان التنقّل اسم الشارع واتجاه المنعطف التالي على المسار، بالإضافة إلى اتجاه المنعطف الذي يليه. يعرض تذييل التنقّل الوقت والمسافة المقدّرَين للوصول إلى الوجهة، بالإضافة إلى الوقت المقدّر للوصول.
يمكنك تبديل مستوى ظهور رأس التنقل والتذييل وتعيين ألوانه برمجيًا باستخدام الخصائص التالية:
navigationHeaderEnabled— تتحكّم في ما إذا كان عنوان التنقّل مرئيًا (القيمة التلقائية هيtrue).navigationFooterEnabled— يتحكّم في ما إذا كان تذييل التنقّل مرئيًا (القيمة التلقائية هيtrue).navigationHeaderPrimaryBackgroundColor— لضبط لون الخلفية الأساسي لرأس التنقّل.navigationHeaderSecondaryBackgroundColor— لضبط لون الخلفية الثانوي لرأس التنقّل
يوضّح مثال الرمز التالي تفعيل مستوى العرض للرأس والتذييل، ثم ضبط navigationHeaderPrimaryBackgroundColor على اللون الأزرق وnavigationHeaderSecondaryBackgroundColor على اللون الأحمر.
Swift
mapView.settings.isNavigationHeaderEnabled = true
mapView.settings.isNavigationFooterEnabled = true
mapView.settings.navigationHeaderPrimaryBackgroundColor = .blue
mapView.settings.navigationHeaderSecondaryBackgroundColor = .red
Objective-C
mapView.settings.navigationHeaderEnabled = YES;
mapView.settings.navigationFooterEnabled = YES;
mapView.settings.navigationHeaderPrimaryBackgroundColor = [UIColor blueColor];
mapView.settings.navigationHeaderSecondaryBackgroundColor = [UIColor redColor];
عرض عنوان ملحق التنقّل
يمكنك تخصيص تطبيقك من خلال استبدال طريقة عرض عنوان التنقّل الثانوي
بطريقة عرض ملحقة مخصّصة. يمكنك إجراء ذلك من خلال إنشاء طريقة عرض
تنفّذ بروتوكول GMSNavigationAccessoryView. يحتوي هذا البروتوكول على طريقة واحدة مطلوبة: -heightForAccessoryViewConstrainedToSize:onMapView:. يتم منحك الحد الأقصى للحجم المتاح لعرضك على mapView المحدد، ويجب عليك توفير الارتفاع الذي يتطلبه العرض.
يمكنك بعد ذلك تمرير طريقة العرض هذه إلى mapView من خلال استدعاء setHeaderAccessoryView:
تُخرج mapView أي طرق عرض حالية، ثم تُدخل طريقة العرض المخصّصة. يجب أن يكون عنوان التنقل مرئيًا حتى يتمكن العرض المخصص من
العرض.
لإزالة طريقة عرض ملحق العنوان المخصّص، مرِّر nil إلى
setHeaderAccessoryView:.
إذا كان يجب تغيير حجم العرض في أي وقت، يمكنك استدعاء
invalidateLayoutForAccessoryView:، مع تمرير العرض الذي يجب تغيير
حجمه.
مثال
يوضّح مثال الرمز البرمجي التالي طريقة عرض مخصّصة تنفّذ بروتوكول GMSNavigationAccessoryView. يتم بعد ذلك استخدام طريقة العرض المخصصة هذه لتعيين
عرض ملحق رأس التنقل المخصص.
Swift
class MyCustomView: UIView, GMSNavigationAccessoryView {
…
func heightForAccessoryViewConstrained(to size: CGSize, on mapView: GMSMapView) -> CGFloat {
// viewHeight gets calculated as the height your view needs.
return viewHeight
}
…
}
let customView = MyCustomView(...)
mapView.setHeaderAccessory(customView)
// At some later point customView changes size.
mapView.invalidateLayout(forAccessoryView: customView)
// Remove the custom header accessory view.
mapView.setHeaderAccessory(nil)
Objective-C
@interface MyCustomView : UIView <GMSNavigationAccessoryView>
…
@end
@implementation MyCustomView
…
- (CGFloat)heightForAccessoryViewConstrainedToSize:(CGSize)size onMapView:(GMSMapView *)mapView {
// viewHeight gets calculated as the height your view needs.
return viewHeight;
}
…
@end
MyCustomView *customView = [[MyCustomView alloc] init…];
[_mapView setHeaderAccessoryView:customView];
// At some later point customView changes size.
[_mapView invalidateLayoutForAccessoryView:customView];
// Remove the custom header accessory view.
[_mapView setHeaderAccessoryView:nil];
ألوان العناوين في وضع الإضاءة المنخفضة
تحسب حزمة Navigation SDK لنظام التشغيل iOS وضع الإضاءة المقترَح استنادًا إلى الوقت من اليوم والموقع الجغرافي الحالي للجهاز، وتستدعي الإجراء المستمع GMSNavigatorListener.didChangeSuggestedLightingMode عند تغيُّر الوضع المقترَح (مثل شروق الشمس أو غروبها).
يمكنك تعديل سلوك "وضع الإضاءة المنخفضة" آليًا بالطرق التالية:
- يمكنك التحكّم في وقت استخدام الخريطة لوضعَي الإضاءة العادية والمنخفضة من خلال ضبط السمة
GMSMapView.lightingModeعلى قيمةGMSNavigationLightingMode. لمزيد من المعلومات حول تفعيل التبديل التلقائي بين وضعَي الإضاءة، يُرجى الاطّلاع على ضبط وضعَي الإضاءة العادية والمنخفضة. - يمكنك تخصيص ألوان الخلفية الأساسية والثانوية لرأس التنقّل في وضع الإضاءة المنخفضة من خلال ضبط السمتَين
navigationHeaderPrimaryBackgroundColorNightModeوnavigationHeaderSecondaryBackgroundColorNightModeعلىGMSUISettings.
قائمة الاتجاهات
يمكنك تقديم اتجاهات خطوة بخطوة في تطبيقك. يوضح المثال التالي طريقة واحدة ممكنة للقيام بذلك. قد تختلف هذه الخطوات حسب طريقة التنفيذ.
- تفعيل زر نقطة الدخول بعد اكتمال
setDestinationsعلىGMSNavigator(المتصفّح) بنجاح وتفعيلguidanceActiveعلى المتصفّح - عندما ينقر المستخدم على زر نقطة الدخول، أنشئ
GMSNavigationDirectionsListController(وحدة تحكّم) باستخدام أداة التنقّل المرتبطة بـGMSMapView(mapView). - أضِف وحدة التحكّم إلى مثيل
UIViewController(وحدة تحكّم في العرض)، وأضِفdirectionsListViewكعرض فرعي لوحدة التحكّم في العرض. يجب استدعاء الطريقتَينreloadDataوinvalidateLayoutفي وحدة التحكّم كما هو الحال معUICollectionView. - ادفع وحدة التحكّم في العرض إلى التسلسل الهرمي لوحدة التحكّم في العرض في التطبيق.
يوضّح مثال الرمز التالي كيفية إضافة DirectionsListViewController.
Swift
override func viewDidLoad() {
super.viewDidLoad()
// Add the directionsListView to the host view controller's view.
let directionsListView = directionsListController.directionsListView
directionsListView.frame = self.view.frame
self.view.addSubview(directionsListView)
directionsListView.translatesAutoresizingMaskIntoConstraints = false
directionsListView.topAnchor.constraint(equalTo: self.view.topAnchor).isActive = true
directionsListView.leadingAnchor.constraint(equalTo: self.view.leadingAnchor).isActive = true
directionsListView.trailingAnchor.constraint(equalTo: self.view.trailingAnchor).isActive = true
directionsListView.bottomAnchor.constraint(equalTo: self.view.bottomAnchor).isActive = true
...
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
// Make sure data is fresh when the view appears.
directionsListController.reloadData()
...
}
override func willTransition(to newCollection: UITraitCollection, with coordinator: UIViewControllerTransitionCoordinator) {
super.willTransition(to: newCollection, with: coordinator)
// Invalidate the layout during rotation.
coordinator.animate(alongsideTransition: {_ in
self.directionsListController.invalidateLayout()
})
...
}
Objective-C
- (void)viewDidLoad {
[super viewDidLoad];
// Add the directionsListView to the host view controller's view.
UIView *directionsListView = _directionsListController.directionsListView;
directionsListView.frame = self.view.bounds;
[self.view addSubview:directionsListView];
directionsListView.translatesAutoresizingMaskIntoConstraints = NO;
[directionsListView.topAnchor constraintEqualToAnchor:self.view.topAnchor].active = YES;
[directionsListView.leadingAnchor constraintEqualToAnchor:self.view.leadingAnchor].active = YES;
[directionsListView.trailingAnchor constraintEqualToAnchor:self.view.trailingAnchor].active = YES;
[directionsListView.bottomAnchor constraintEqualToAnchor:self.view.bottomAnchor].active = YES;
...
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
// Make sure data is fresh when the view appears.
[_directionsListController reloadData];
...
}
- (void)willTransitionToTraitCollection:(UITraitCollection *)newCollection
withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator {
[super willTransitionToTraitCollection:newCollection withTransitionCoordinator:coordinator];
void(^animationBlock)(id <UIViewControllerTransitionCoordinatorContext>context) =
^void(id <UIViewControllerTransitionCoordinatorContext>context) {
[_directionsListController invalidateLayout];
};
// Invalidate the layout during rotation.
[coordinator animateAlongsideTransition:animationBlock
completion:nil];
...
}
...
شريط تقدّم الرحلة

شريط تقدّم الرحلة هو شريط عمودي يظهر على جانب البداية/الجانب الرئيسي من الخريطة عند بدء التنقّل. عند تفعيل هذه الميزة، يتم عرض نظرة عامة على رحلة كاملة، بالإضافة إلى وجهة المستخدم وموقعه الجغرافي الحالي.
يتيح ذلك للمستخدمين توقُّع أي مشاكل قادمة، مثل حركة المرور، بدون الحاجة إلى التكبير. ويمكنهم بعد ذلك إعادة توجيه الرحلة إذا لزم الأمر. إذا غيّر المستخدم مسار الرحلة، تتم إعادة ضبط شريط التقدم كما لو أنّ رحلة جديدة قد بدأت من تلك النقطة.
يعرض شريط تقدّم الرحلة مؤشرات الحالة التالية:
حالة حركة المرور: حالة حركة المرور القادمة
الموقع الجغرافي الحالي: الموقع الجغرافي الحالي للسائق في الرحلة
الجزء المنقضي من المسار: الجزء المنقضي من الرحلة
فعِّل شريط تقدّم الرحلة من خلال ضبط السمة navigationTripProgressBarEnabled في GMSUISettings.
Swift
mapView.settings.isNavigationTripProgressBarEnabled = true
Objective-C
mapView.settings.navigationTripProgressBarEnabled = YES;
تحديد موضع شريط تقدّم الرحلة
- يتم محاذاة الجانب الأيمن من الشريط تقريبًا مع الجانب الأيمن من عدّاد السرعة وشعار Google وزر "إعادة التوسيط" (عندما يكون مرئيًا). العرض هو 12 نقطة.
- يستجيب شريط تقدّم الرحلة ديناميكيًا للمساحة العمودية على الشاشة. يتم وضع الجزء السفلي من الشريط على بعد 210 نقطة من أسفل الشاشة. يظل الجزء العلوي من شريط تقدّم الرحلة على بُعد 170 نقطة على الأقل من أعلى الشاشة، والحد الأقصى لارتفاع الشريط هو 400 نقطة.
- إذا تداخل شريط تقدّم الرحلة مع عنوان التنقّل أو عناصر أخرى في واجهة مستخدم التنقّل، سيظهر تحت هذه العناصر الأخرى.
Prompt Visibility API (تجريبية)
تتيح لك واجهة برمجة التطبيقات Prompt Visibility API تجنُّب التعارضات بين عناصر واجهة المستخدم التي تنشئها حزمة تطوير البرامج (SDK) للتنقّل وعناصر واجهة المستخدم المخصّصة من خلال إضافة متتبِّع لتلقّي استدعاء قبل ظهور عنصر في واجهة المستخدم في حزمة تطوير البرامج (SDK) للتنقّل وبمجرد إزالة العنصر. لمزيد من المعلومات، بما في ذلك عينات التعليمات البرمجية، يُرجى الاطّلاع على قسم واجهة برمجة التطبيقات Prompt Visibility في صفحة ضبط الانقطاعات في الوقت الفعلي.
التحكّم في عدّاد السرعة
عند تفعيل ميزة التنقّل وضبط وضع السفر على القيادة، تعرض حزمة تطوير البرامج (SDK) للتنقّل في نظام التشغيل iOS عنصر تحكّم في الحدّ الأقصى للسرعة في الزاوية السفلية من الخريطة يعرض الحدّ الأقصى الحالي للسرعة. عندما يتجاوز السائق الحد الأقصى للسرعة، يتوسّع عنصر التحكّم ليعرض عدّاد سرعة ثانيًا يوضّح سرعة السائق الحالية.
يمكنك ضبط مستويات التنبيه لتغيير تنسيق عرض عدّاد السرعة عندما يتجاوز السائق الحدّ الأقصى للسرعة بمقدار محدّد. على سبيل المثال، يمكنك تحديد أن يتم عرض السرعة الحالية بلون نص أحمر عندما يتجاوز السائق الحد الأقصى للسرعة بمقدار 5 أميال في الساعة، وبلون خلفية أحمر عندما يتجاوز السائق الحد الأقصى للسرعة بمقدار 10 أميال في الساعة.
لعرض عنصر التحكّم في الحدّ الأقصى للسرعة، اضبط السمة shouldDisplaySpeedometer في GMSUISettings على true. لإيقاف عرض عنصر التحكّم في الحدّ الأقصى للسرعة، اضبط shouldDisplaySpeedometer على false.
Swift
mapView.settings.shouldDisplaySpeedometer = true
Objective-C
mapView.settings.shouldDisplaySpeedometer = YES;
لمزيد من المعلومات حول ضبط تنبيهات عدّاد السرعة، يُرجى الاطّلاع على مقالة ضبط تنبيهات عدّاد السرعة.
علامات الوجهة
يمكنك إظهار علامات الوجهة لمسار معيّن أو إخفاؤها من خلال ضبط السمة
showsDestinationMarkers
لـ GMSUISettings. يوضح المثال التالي إيقاف تشغيل
علامات الوجهة.
Swift
mapView.settings.showsDestinationMarkers = false
Objective-C
mapView.settings.showsDestinationMarkers = NO;
ميزات تجربة الخريطة
تتيح لك حزمة تطوير البرامج (SDK) للتنقّل إجراء المزيد من التخصيصات على تجربة التنقّل للمستخدمين. وتظهر التغييرات التي تجريها على النسخة في التحديث التالي لتطبيقك لدى المستخدم.
إبراز الوجهات والمداخل
عند إنشاء وجهة باستخدام placeID، سيتم تمييز مبنى الوجهة وسيظهر رمز المدخل كلما أمكن ذلك. تساعد هذه الإشارات المرئية المستخدمين في تمييز وجهتهم المقصودة والانتقال إليها.
لإنشاء وجهة باستخدام placeID، استخدِم إحدى دوال الإعداد GMSNavigationWaypoint التي تقبل placeID. على سبيل المثال، تتضمّن الوجهات التي تم إنشاؤها في البرنامج التعليمي حول التنقّل في مسار ميزة تمييز الوجهات وتصنيفات المداخل عندما تكون متاحة.
عرض المباني ثلاثية الأبعاد أثناء التنقّل
يتم عرض المباني ثلاثية الأبعاد أثناء التنقّل تلقائيًا. لإيقاف هذه الميزة، اضبط buildingsEnabled على false (Swift) أو NO (Objective-C).
إيقاف إيماءات الخريطة التلقائية
يمكنك إيقاف الإيماءات التلقائية على الخريطة من خلال ضبط خصائص فئة GMSUISettings، والتي تتوفّر كخاصية من خصائص GMSMapView.
يمكن تفعيل الإيماءات التالية وإيقافها آليًا. يُرجى العِلم أنّ إيقاف الإيماءة لن يحدّ من إمكانية الوصول الآلي إلى إعدادات الكاميرا.
scrollGestures— تتحكّم في تفعيل إيماءات الانتقال في المحتوى أو إيقافها. في حال تفعيل هذا الخيار، يمكن للمستخدمين التمرير سريعًا لتحريك الكاميرا.zoomGestures— تتحكّم هذه السياسة في تفعيل إيماءات التكبير أو إيقافها. في حال تفعيل هذه السياسة، يمكن للمستخدمين النقر مرّتين أو النقر بإصبعين أو التصغير أو التكبير بإصبعين لتكبير الكاميرا أو تصغيرها. يُرجى العِلم أنّ النقر مرّتين أو التصغير أو التكبير بإصبعين عند تفعيلscrollGesturesقد يؤدي إلى تحريك الكاميرا إلى النقطة المحدّدة.tiltGestures— تتحكّم في تفعيل إيماءات الإمالة أو إيقافها. في حال تفعيل هذا الإعداد، يمكن للمستخدمين التمرير سريعًا بإصبعين للأعلى أو للأسفل لإمالة الكاميرا.rotateGestures— تتحكّم في تفعيل إيماءات التدوير أو إيقافها. في حال تفعيل هذا الخيار، يمكن للمستخدمين استخدام إيماءة التدوير بإصبعين لتدوير الكاميرا.
في هذا المثال، تم إيقاف إيماءتَي العرض الشامل والتكبير/التصغير.
Swift
mapView.settings.scrollGestures = false
mapView.settings.zoomGestures = false
Objective-C
mapView.settings.scrollGestures = NO;
mapView.settings.zoomGestures = NO;
موضع عناصر التحكّم وعناصر في واجهة المستخدم
يمكنك تحديد موضع عناصر التحكّم وعناصر واجهة المستخدم الأخرى بالنسبة إلى موضع رأس التنقّل وتذييله، وذلك باستخدام السمات التالية:
navigationHeaderLayoutGuidenavigationFooterLayoutGuidebottomTrailingButtonsLayoutGuide
يوضّح مثال الرمز البرمجي التالي استخدام أدلة التنسيق لوضع زوج من التصنيفات في عرض الخريطة:
Swift
/* Add a label to the top left, positioned below the header. */
let topLabel = UILabel()
topLabel.text = "Top Left"
mapView.addSubview(topLabel)
topLabel.translatesAutoresizingMaskIntoConstraints = false
topLabel.topAnchor.constraint(equalTo: mapView.navigationHeaderLayoutGuide.bottomAnchor).isActive = true
topLabel.leadingAnchor.constraint(equalTo: mapView.leadingAnchor).isActive = true
/* Add a label to the bottom right, positioned above the footer. */
let bottomLabel = UILabel()
bottomLabel.text = "Bottom Right"
mapView.addSubview(bottomLabel)
bottomLabel.translatesAutoresizingMaskIntoConstraints = false
bottomLabel.bottomAnchor.constraint(equalTo: mapView.navigationFooterLayoutGuide.topAnchor).isActive = true
bottomLabel.trailingAnchor.constraint(equalTo: mapView.trailingAnchor).isActive = true
Objective-C
/* Add a label to the top left, positioned below the header. */
UILabel *topLabel = [[UILabel alloc] init];
topLabel.text = @"Top Left";
[view addSubview:topLabel];
topLabel.translatesAutoresizingMaskIntoConstraints = NO;
[topLabel.topAnchor
constraintEqualToAnchor:mapView.navigationHeaderLayoutGuide.bottomAnchor].active = YES;
[topLabel.leadingAnchor constraintEqualToAnchor:mapView.leadingAnchor].active = YES;
/* Add a label to the bottom right, positioned above the footer. */
UILabel *bottomLabel = [[UILabel alloc] init];
bottomLabel.text = @"Bottom Right";
[view addSubview:bottomLabel];
bottomLabel.translatesAutoresizingMaskIntoConstraints = NO;
[bottomLabel.bottomAnchor
constraintEqualToAnchor:mapView.navigationFooterLayoutGuide.topAnchor].active = YES;
[bottomLabel.trailingAnchor constraintEqualToAnchor:mapView.trailingAnchor].active = YES;
للاطّلاع على مثال على كيفية استخدام bottomTrailingButtonsLayoutGuide لتحديد موضع زر الإبلاغ عن الحوادث في الوقت الفعلي، يُرجى مراجعة ضبط ميزة "المعلومات عن الحوادث في الوقت الفعلي".
إخفاء المسارات البديلة
عندما تصبح واجهة المستخدم مزدحمة بالكثير من المعلومات، يمكنك تقليل الفوضى عن طريق عرض مسارات بديلة أقل من المسارات الافتراضية (اثنين)، أو عن طريق عدم عرض أي مسارات بديلة على الإطلاق. يمكنك ضبط هذا الخيار قبل جلب المسارات من خلال ضبط GMSNavigationRoutingOptions وضبط alternateRoutesStrategy باستخدام إحدى قيم تعداد الخيارات التالية:
| قيمة تعداد الخيارات | الوصف |
|---|---|
| GMSNavigationAlternateRoutesStrategyAll | تلقائي: يعرض ما يصل إلى مسارَين بديلَين. |
| GMSNavigationAlternateRoutesStrategyOne | يعرض مسارًا بديلاً واحدًا (إذا كان متاحًا). |
| GMSNavigationAlternateRoutesStrategyNone | يخفي المسارات البديلة. |
مثال
يوضّح مثال الرمز البرمجي التالي كيفية إخفاء المسارات البديلة تمامًا.
Swift
let routingOptions = GMSNavigationRoutingOptions(alternateRoutesStrategy: .none)
navigator?.setDestinations(destinations,
routingOptions: routingOptions) { routeStatus in
...
}
Objective-C
GMSNavigationRoutingOptions *routingOptions = [[GMSNavigationRoutingOptions alloc] initWithAlternateRoutesStrategy:GMSNavigationAlternateRoutesStrategyNone];
[navigator setDestinations:destinations
routingOptions:routingOptions
callback:^(GMSRouteStatus routeStatus){...}];