باستخدام حزمة تطوير البرامج Navigation SDK لنظام التشغيل iOS، يمكنك تعديل تجربة المستخدم مع الخريطة من خلال تحديد عناصر التحكّم في واجهة المستخدم والعناصر المضمّنة في واجهة المستخدم التي تظهر على الخريطة، والإيماءات التي تسمح بها. يمكنك أيضًا تعديل المظهر المرئي لواجهة مستخدم التنقّل. راجِع صفحة السياسات للاطّلاع على الإرشادات المتعلّقة بالتعديلات المقبولة على واجهة مستخدم التنقّل.
عناصر التحكّم في واجهة مستخدم الخريطة
توفّر حزمة تطوير البرامج للتنقّل بعض عناصر التحكّم المضمّنة في واجهة المستخدم
المشابهة لتلك المتوفّرة في تطبيق "خرائط 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;
ملحقات واجهة مستخدم الخريطة
توفّر حزمة تطوير البرامج للتنقّل ملحقات لواجهة المستخدم تظهر أثناء التنقّل، وهي تشبه تلك المتوفّرة في تطبيق "خرائط 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];
ألوان العناوين في وضع الإضاءة المنخفضة
تحسب حزمة تطوير البرامج (SDK) الخاصة بخدمة Navigation لنظام التشغيل 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){...}];