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