باستخدام حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" للتطبيقات المتوافقة مع 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; }