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