عناصر التحكّم والإيماءات

اختيار النظام الأساسي: Android iOS JavaScript

باستخدام حزمة SDK للخرائط لأجهزة iOS، يمكنك تخصيص الطريقة التي يتفاعل بها المستخدمون مع خريطتك، من خلال تحديد عناصر واجهة المستخدم المضمنة التي تظهر على الخريطة والإيماءات المسموح بها.

عناصر التحكّم في الخريطة

توفر حزمة SDK للخرائط المتوفرة لنظام التشغيل iOS بعض عناصر التحكم المضمنة في واجهة المستخدم والمشابهة لتلك الموجودة في تطبيق خرائط Google لنظام التشغيل iOS. يمكنك تبديل مستوى ظهور عناصر التحكّم هذه باستخدام الفئة GMSUISettings. التغييرات التي يتم إجراؤها في هذه الفئة تظهر على الخريطة فورًا.

بوصلة

توفر حزمة SDK للخرائط لأجهزة iOS رسم بوصلة يظهر في الزاوية اليمنى العليا من الخريطة في ظل ظروف معينة. لن تظهر البوصلة إلا عندما تكون الكاميرا موجَّهة بحيث يكون اتجاهها غير صفري. عندما ينقر المستخدم على البوصلة، تحرك الكاميرا مرة أخرى إلى موضع يكون اتجاهه صفر (الاتجاه التلقائي) وتتلاشى البوصلة بعد ذلك بقليل.

يتم إيقاف البوصلة بشكل تلقائي. يمكنك تفعيل البوصلة من خلال ضبط السمة compassButton في GMSUISettings على YES. ومع ذلك، لا يمكنك فرض إظهار البوصلة دائمًا.

Swift

let camera = GMSCameraPosition(latitude: 37.757815, longitude: -122.50764, zoom: 12)
let mapView = GMSMapView(frame: .zero, camera: camera)
mapView.settings.compassButton = true
      

Objective-C

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:37.757815
                                                        longitude:-122.50764
                                                             zoom:12];
GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
mapView.settings.compassButton = YES;
      

زر موقعي

يظهر زر "موقعي" في الزاوية السفلية اليسرى من الشاشة فقط عندما يكون زر "موقعي" مفعَّلاً. عندما ينقر المستخدم على الزر، تحرك الكاميرا للتركيز على الموقع الحالي للمستخدم إذا كان موقع المستخدم معروفًا حاليًا. ويمكنك تفعيل الزرّ من خلال ضبط السمة myLocationButton الخاصة بسمة GMSUISettings على YES.

Swift

mapView.settings.myLocationButton = true
      

Objective-C

mapView.settings.myLocationButton = YES;
      

أداة اختيار الطوابق

يظهر عنصر تحكم منتقي الطوابق بالقرب من الجزء السفلي الأيمن من الشاشة كلما تم عرض خريطة داخلية بشكل بارز. عند ظهور خريطتين داخليتين أو أكثر، يرتبط منتقي الطابق بالمبنى الأقرب إلى وسط الشاشة. لكل مبنى طابق تلقائي يتم تحديده عند عرض أداة الاختيار لأول مرة. يمكنك اختيار طابق مختلف من خلال اختياره من أداة الاختيار.

يمكنك إيقاف عنصر التحكّم في أداة اختيار الطوابق من خلال ضبط السمة indoorPicker في GMSUISettings على NO.

Swift

mapView.settings.indoorPicker = false
      

Objective-C

mapView.settings.indoorPicker = NO;
      

إيماءات الخريطة

يمكنك إيقاف الإيماءات التلقائية على الخريطة من خلال ضبط سمات الفئة GMSUISettings المتاحة كسمة للسمة GMSMapView. يمكن تفعيل الإيماءات التالية وإيقافها آليًا. يُرجى العلم أنّ إيقاف الإيماءة لن يحدّ من إمكانية الوصول الآلي إلى إعدادات الكاميرا.

  • scrollGestures: للتحكّم في تفعيل إيماءات التمرير أو إيقافها في حال التفعيل، يمكن للمستخدمين التمرير سريعًا لتحريك الكاميرا.
  • zoomGestures: للتحكم في تفعيل إيماءات التكبير/التصغير أو إيقافها في حال تفعيل هذا الإعداد، يمكن للمستخدمين النقر مرّتين أو النقر بإصبعين أو التصغير أو التكبير بإصبعين. تجدر الإشارة إلى أنّ النقر مرّتين أو الضغط بإصبعين بعد تفعيل "scrollGestures" قد يؤدي إلى تحريك الكاميرا إلى النقطة المحددة.
  • tiltGestures: للتحكم في تفعيل إيماءات الإمالة أو إيقافها. في حالة التفعيل، يمكن للمستخدمين استخدام التمرير السريع بإصبعين عموديًا لأسفل أو لأعلى لإمالة الكاميرا.
  • rotateGestures: للتحكم في تفعيل إيماءات التدوير أو إيقافها. في حال تفعيل هذا الإعداد، يمكن للمستخدمين استخدام إيماءة التدوير بإصبعين لتدوير الكاميرا.

في المثال أدناه، تم إيقاف كل من إيماءات التحريك والتكبير/التصغير.

Swift

override func loadView() {
  let camera = GMSCameraPosition.camera(
    withLatitude: 1.285,
    longitude: 103.848,
    zoom: 12
  )

  let mapView = GMSMapView.map(withFrame: .zero, camera: camera)
  mapView.settings.scrollGestures = false
  mapView.settings.zoomGestures = false
  self.view = mapView
}
      

Objective-C

- (void)loadView {
  GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:1.285
                                                          longitude:103.848
                                                               zoom:12];
  GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
  mapView.settings.scrollGestures = NO;
  mapView.settings.zoomGestures = NO;
  self.view = mapView;
}