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

اختيار نظام أساسي: 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;
}