باستخدام حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" لتطبيقات iOS، يمكنك تغيير وجهة نظر المستخدم للخريطة. من خلال تغيير كاميرا الخريطة.
باستخدام حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" لتطبيقات iOS، يمكن للمستخدمين إمالة الخريطة وتدويرها. لضبطها على اتجاه مفيد لسياقها. في أي وقت المستوى، يمكن للمستخدمين تحريك الخريطة أو تغيير منظورها في وقت استجابة سريع جدًا.
لا تؤدي التغييرات التي تجريها على الكاميرا إلى تغيير العلامات أو الخطوط المتعددة أو الرسومات الأخرى التي على الرغم من أنك قد ترغب في تغيير هذه الإضافات لتلائم عرض جديد.
عرض الخريطة
تستخدم حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" لتطبيقات iOS منصة Mercator التوقعات لتمثيل سطح العالم (كرة كروية) على شاشة جهازك (شاشة مسطحة طائرة).
موضع الكاميرا
يتم تصميم عرض الخريطة على أنه كاميرا تنظر لأسفل على مستوٍ مسطّح. الوظيفة الكاميرا (وبالتالي عرض الخريطة) يتم تحديدها من خلال السمات التالية: target (الموقع الجغرافي لخط العرض/خط الطول): محمل، إمالة، وتكبير/تصغير.
الهدف (الموقع)
يستهدف الكاميرا موقع مركز الخريطة، ويتم تحديده إحداثيات خطوط العرض وخطوط الطول.
ويمكن أن يتراوح خط العرض بين -85 و85 درجة، بشكل شامل. القيم المذكورة أعلاه أو أقل من هذا النطاق سوف يتم تثبيته بأقرب قيمة ضمن هذا النطاق. على سبيل المثال، يؤدي تحديد خط عرض 100 إلى تعيين القيمة على 85. خط الطول تتراوح بين -180 و180 درجة، ضمنًا. القيم أعلى أو أسفل هذه القيمة النطاق بحيث يقع ضمن النطاق (-180، 180). بالنسبة على سبيل المثال، 480 و840 و1200 سيتم التفافها جميعًا إلى 120 درجة.الاتجاه (الاتجاه)
تحدّد موجِّه الكاميرا اتجاه البوصلة، الذي يتم قياسه بالدرجات من الشمال الحقيقي، ويتجاوب إلى الحافة العلوية من الخريطة. إذا رسمت خطًا رأسيًا من وسط الخريطة إلى الحافة العلوية من الخريطة، يتجاوب الاتجاه مع عنوان الكاميرا (بالدرجات) نسبيًا إلى الشمال الحقيقي.
يعني الاتجاه 0 أن الجزء العلوي من الخريطة يشير إلى الشمال الحقيقي. تعني القيمة الاتجاهية 90 أعلى نقاط الخريطة المستحقة للشرق (90 درجة على بوصلة). قيمة 180 يعني الجزء العلوي من نقاط الخريطة بسبب الجنوب.
تتيح لك واجهة برمجة تطبيقات الخرائط تغيير اتجاه الخريطة. على سبيل المثال، شخص يقود سيارة يحولون خريطة طريق لمحاذاة اتجاه سفرهم، بينما يستخدم المسافرون خريطة توجه الخريطة عادةً بحيث يشير الخط الرأسي إلى الشمال.
الإمالة (زاوية العرض)
تحدد الإمالة موضع الكاميرا على قوس فوق موضع الخريطة مباشرةً الموضع المركزي، ويتم قياسه بالدرجات من nadir (الاتجاه الذي يشير إلى أسفل الكاميرا مباشرةً). تتجاوب القيمة 0 مع الكاميرا الموجَّهة. مباشرةً. تتوافق القيم الأكبر من 0 مع الكاميرا المائلة نحو الأفق من خلال العدد المحدد من الدرجات. عند تغيير زاوية العرض، تظهر الخريطة في منظورك الخاص، مع ميزات بعيدة. وظهور الميزات القريبة أصغر حجمًا وظهور الميزات القريبة بحجم أكبر. ما يلي: والرسوم التوضيحية توضح ذلك.
في الصور أدناه، تبلغ زاوية المشاهدة 0 درجة. تعرض الصورة الأولى المخطط له؛ الموضع 1 هو موضع الكاميرا والموضع 2 هو موضع الخريطة الحالي. يتم عرض الخريطة الناتجة أسفلها.
في الصور أدناه، تبلغ زاوية العرض 45 درجة. لاحظ أن الكاميرا تتحرك في منتصف الطريق على طول قوس بين الرأس المستقيم (0 درجة) والأرض (90 درجة)، إلى الموضع 3. لا تزال الكاميرا تشير إلى النقطة المركزية للخريطة، ولكن المنطقة الذي يتم تمثيله بالخط في الموضع 4 يظهر الآن.
لا تزال الخريطة في لقطة الشاشة هذه مركزة على نفس النقطة كما في الخريطة الأصلية، ولكن ظهرت المزيد من العناصر في أعلى الخريطة. أثناء زيادة الزاوية إلى ما يزيد عن 45 درجة، والميزات بين الكاميرا والخريطة يظهر الموضع أكبر نسبيًا، في حين أن العناصر التي تقع خارج موضع الخريطة أصغر نسبيًا، مما ينتج عنه تأثير ثلاثي الأبعاد.
Zoom
يحدد مستوى تكبير/تصغير الكاميرا مقياس الخريطة. في تكبير/تصغير يمكن رؤية مزيد من التفاصيل بمستويات على الشاشة، بينما عند مستويات التكبير الأصغر مشاهدة المزيد من العالم على الشاشة. عند مستوى التكبير/التصغير 0، يكون مقياس الخريطة بحيث يكون للعالم بأكمله بعرض 256 نقطة تقريبًا.
تؤدي زيادة مستوى التكبير/التصغير بمقدار 1 إلى مضاعفة عرض العالم على الشاشة. وبالتالي عند مستوى التكبير/التصغير N، يكون عرض العالم تقريبًا 256 * 2 N نقطة. على سبيل المثال، عند مستوى التكبير/التصغير 2، يكون العالم بأسره حوالي بعرض 1024 نقطة.
لا يلزم أن يكون مستوى التكبير/التصغير عددًا صحيحًا. نطاق التكبير/التصغير المستويات التي تسمح بها الخريطة على عدد من العوامل، منها الهدف نوع الخريطة وحجم الشاشة. وسيتم تحويل أي رقم خارج النطاق إلى قيمة أقرب قيمة صالحة بعد ذلك، والتي يمكن أن تكون إما الحد الأدنى لمستوى التكبير أو الحد الأقصى لمستوى التكبير/التصغير. تعرض القائمة التالية المستوى التقريبي للتفاصيل يمكنك أن تتوقع رؤية ما يلي في كل مستوى من مستويات التكبير أو التصغير:
- 1: العالم
- 5: مساحة اليابسة/القارة
- 10: المدينة
- 15: الشوارع
- 20: مبانٍ
ضبط الموضع الأولي للكاميرا
يمكنك ضبط الموضع الأولي للكاميرا باستخدام
GMSCameraPosition
كائن، يتيح لك تعيين خط العرض وخط الطول للهدف
الاتجاه والإمالة والتكبير/التصغير.
لضبط الموضع الأولي للكاميرا، أنشِئ عنصر GMSMapViewOptions
واضبطه.
السمة camera
إلى GMSCameraPosition
. ثم مرر خياراتك إلى
GMSMapView
منشئ سهولة الاستخدام.
Swift
let options = GMSMapViewOptions() options.camera = GMSCameraPosition.camera(withLatitude: -33.8683, longitude: 151.2086, zoom: 16) let mapView = GMSMapView(options:options)
Objective-C
GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; options.camera = [GMSCameraPosition cameraWithLatitude:-33.8683 longitude:151.2086 zoom:16]; GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
يمكنك أيضًا إنشاء كائن GMSMapView
باستخدام الإعداد التلقائي UIView
.
. في هذه الحالة، يبدأ موضع الكاميرا من الموقع التلقائي
تغييرها بعد الإنشاء.
Swift
let options = GMSMapViewOptions() options.frame = self.view.bounds let mapView = GMSMapView(options:options)
Objective-C
GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; options.frame = self.view.bounds; GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
تغيير موضع الكاميرا
يمكنك تغيير موضع الكاميرا آليًا لضبط الموقع الجغرافي.
الاتجاه والإمالة والتكبير/التصغير. وفي حين أنّ GMSMapView
يوفّر العديد من الطرق التي
يمكنك استخدامها لتغيير موضع الكاميرا، وعادةً ما تستخدم GMSCameraPosition
أو
GMSCameraUpdate
:
GMSCameraPosition
يحتوي على الخصائص والطرق التي تستخدمها لتغيير كل موضع للكاميرا المعلمة: الاستهداف والاتجاهات والإمالة والتكبير/التصغير.GMSCameraUpdate
تتيح لك تغيير الهدف والاتجاهات والإمالة والتكبير/التصغير، ويحتوي أيضًا على والملاءمة لدعم التمرير والتكبير/التصغير المتقدم وتوسيط والكاميرا ضمن حدود محددة مسبقًا والمزيد.
عند تحريك الكاميرا، يمكنك اختيار "التقاط". الكاميرا إلى موضعه، بمعنى عدم وجود رسوم متحركة، أو إضافة حركة. على سبيل المثال، إذا تحرّك التغيير إلى الموقع المستهدف للكاميرا، تنتقل الصورة المتحركة من الموقع السابق على الموقع الجديد.
تدمج الرسوم المتحركة بين سمات الكاميرا الحالية وخصائص الكاميرا الجديدة سمات الكاميرا. يمكنك التحكم في مدة الرسوم المتحركة باستخدام زر الحركة:
استخدام GMSCameraPosition
لتغيير الكاميرا باستخدام
GMSCameraPosition
،
إنشاء كائن جديد أو نسخ كائن موجود ثم تعيينه على
الكائن GMSMapView
. استخدِم الكائن GMSCameraPosition
لتثبيت الكاميرا على
الموقع الجديد مع صور متحركة أو بدونها.
استخدِم عنصر GMSCameraPosition
لضبط أي خصائص للكاميرا، مثل
خط العرض، وخط الطول، والتكبير/التصغير، والاتجاهات، وزاوية العرض. يمكنك بعد ذلك استخدام هذا الكائن
لضبط السمة camera
في GMSMapView
.
Swift
let fancy = GMSCameraPosition( latitude: -33, longitude: 151, zoom: 6, bearing: 270, viewingAngle: 45 ) mapView.camera = fancy
Objective-C
GMSCameraPosition *fancy = [GMSCameraPosition cameraWithLatitude:-33.8683 longitude:151.2086 zoom:6 bearing:30 viewingAngle:45]; [mapView setCamera:fancy];
احذف أي سمة GMSCameraPosition
تريد ضبطها على قيمتها التلقائية.
لتحريك عملية النقل، استخدِم الطريقة animateToCameraPosition:
بدلاً من
لإعداد السمة camera
.
استخدام GMSCameraUpdate
GMSCameraUpdate
تعديل موضع الكاميرا واختيار محاذاة أو إضافة تأثيرات متحركة
هذا المنصب الجديد. ميزة GMSCameraUpdate
هي الراحة. يمكنك
استخدام GMSCameraPosition
لأداء المهام نفسها التي يؤديها GMSCameraUpdate
، ولكن
يوفِّر GMSCameraUpdate
أساليب مساعدة إضافية لتسهيل
التلاعب بالكاميرا.
على سبيل المثال، لاستخدام GMSCameraPosition
لزيادة مستوى التكبير الحالي، يمكنك
عليك أولاً تحديد مستوى التكبير الحالي، ثم إنشاء
كائن GMSCameraPosition
حيث يمكنك ضبط التكبير أو التصغير على قيمة أكبر من
التكبير/التصغير الحالي.
ويمكنك بدلاً من ذلك إنشاء كائن GMSCameraUpdate
باستخدام الطريقة zoomIn:
.
بعد ذلك، يمكنك تحديث الكاميرا من خلال تمرير كائن GMSCameraUpdate
إلى
طريقة animateWithCameraUpdate:
GMSMapView
.
Swift
// Zoom in one zoom level let zoomCamera = GMSCameraUpdate.zoomIn() mapView.animate(with: zoomCamera)
Objective-C
// Zoom in one zoom level GMSCameraUpdate *zoomCamera = [GMSCameraUpdate zoomIn]; [mapView animateWithCameraUpdate:zoomCamera];
استخدِم طريقة moveCamera:
GMSMapView
لتثبيت الكاميرا على الموضع الجديد.
بدلاً من ذلك.
في المثال التالي، يمكنك استخدام GMSCameraUpdate
لتحريك حركة الكاميرا
لتوسيطه حول فانكوفر.
Swift
// Center the camera on Vancouver, Canada let vancouver = CLLocationCoordinate2D(latitude: 49.26, longitude: -123.11) let vancouverCam = GMSCameraUpdate.setTarget(vancouver) mapView.animate(with: vancouverCam)
Objective-C
// Center the camera on Vancouver, Canada CLLocationCoordinate2D vancouver = CLLocationCoordinate2DMake(49.26, -123.11); GMSCameraUpdate *vancouverCam = [GMSCameraUpdate setTarget:vancouver]; [mapView animateWithCameraUpdate:vancouverCam];
إنشاء عنصر GMSCameraUpdate
يمكنك إنشاء كائن GMSCameraUpdate
باستخدام إحدى طرقه.
zoomIn:
وzoomOut:
- تغيير مستوى التكبير الحالي بمقدار 1.0 مع الاحتفاظ جميع الخصائص الأخرى متطابقة.
zoomTo:
- تغيير مستوى التكبير أو التصغير إلى القيمة المحدّدة، مع الاحتفاظ بجميع العناصر الأخرى الخصائص نفسها.
zoomBy:
- يزيد (أو ينخفض، إذا كانت القيمة سالبة) مستوى التكبير/التصغير على القيمة المقدمة.
zoomBy:atPoint:
- يزيد (أو يخفض، إذا كانت القيمة سالبة) مستوى التكبير/التصغير حسب القيمة المقدمة، مع الاحتفاظ بإعدادات موضعه على الشاشة.
setTarget:
- تغيير خط العرض وخط الطول للكاميرا مع الاحتفاظ جميع المواقع الأخرى.
setTarget:zoom:
- تغير خط العرض وخط الطول والتكبير/التصغير للكاميرا، أثناء مع الحفاظ على جميع الخصائص الأخرى.
setCamera:
- لتعيين
GMSCameraPosition
جديد. scrollByX:Y:
- تغيير خط العرض وخط الطول للكاميرا لتحريك الخريطة بالعدد المحدد من النقاط. تؤدي القيمة x الموجبة إلى الكاميرا للتحرك إلى اليمين، بحيث يبدو أن الخريطة قد تم نقلها إلى غادر. تؤدي قيمة ص الموجبة إلى تحريك الكاميرا لأسفل، بحيث يبدو أنه تم نقله لأعلى. يعتمد التمرير على الوضع الحالي للكاميرا تحمل. فعلى سبيل المثال، إذا كان اتجاه الكاميرا 90 درجة، الشرق هو "أعلى".
fitBounds:
- يحوِّل الكاميرا إلى توسيط الحدود المحددة على الشاشة عند أكبر مستوى ممكن من التكبير. يطبق نهجًا افتراضيًا المساحة المتروكة لحدود 64 نقطة.
fitBounds:withPadding:
- يحوِّل الكاميرا إلى توسيط الحدود المحددة على الشاشة بأعلى مستوى ممكن من التكبير. استخدِم هذه الطريقة لتحديد المساحة المتروكة نفسها، بالنقاط، لجميع جوانب المربع المحيط.
fitBounds:withEdgeInsets:
- يحوِّل الكاميرا إلى توسيط الحدود المحددة على
الشاشة بأعلى مستوى ممكن من التكبير. مع
UIEdgeInsets
، يمكنك تحديد المساحة المتروكة لكل جانب من جوانب المربع بشكل مستقل.
استخدام GMSMapView
لتغيير موقع واحد
GMSMapView
العديد من الطرق التي تتيح لك تحريك الكاميرا بدون استخدام
كائن GMSCameraPosition
أو كائن GMSCameraUpdate
. باستخدام هذه الطرق، مثل
كـ animateToLocation:
أو animateToZoom:
، يمكنك تحريك التغيير إلى
لكاميرا واحدة.
على سبيل المثال، يمكنك استخدام طريقة toViewingAngle:
لتحريك تغيير في الكاميرا
إمالة.
Swift
mapView.animate(toViewingAngle: 45)
Objective-C
[mapView animateToViewingAngle:45];
تحديد الاستهداف (الموقع الجغرافي)
يحدّد الموقع الجغرافي مركز الخريطة. يتم تحديد المواقع من خلال
وخطوط الطول والعرض، ويتم تمثيلهما برمجيًا بواسطة
CLLocationCoordinate2D
، تم إنشاؤه باستخدام CLLocationCoordinate2DMake
يُرجى استخدام GMSCameraPosition
لتغيير الموقع الجغرافي. في هذا المثال، تلتقط الخريطة
إلى الموقع الجديد.
Swift
let target = CLLocationCoordinate2D(latitude: -33.868, longitude: 151.208) mapView.camera = GMSCameraPosition(target: target, zoom: 6)
Objective-C
CLLocationCoordinate2D target = CLLocationCoordinate2DMake(-33.868, 151.208); mapView.camera = [GMSCameraPosition cameraWithTarget:target zoom:6];
لتحريك التغيير وتحريك الخريطة إلى الموقع الجديد، يمكنك استخدام
animateToCameraPosition:
بدلاً من إعداد السمة camera
. أو
استخدِم طريقة animateToLocation:
على GMSMapView
.
Swift
mapView.animate(toLocation: CLLocationCoordinate2D(latitude: -33.868, longitude: 151.208))
Objective-C
[mapView animateToLocation:CLLocationCoordinate2DMake(-33.868, 151.208)];
يمكنك أيضًا إنشاء كائن GMSCameraUpdate
لتحريك الكاميرا. استخدام
المضمنة، scrollByX:Y:
، لتحديد عدد النقاط لتمرير
الكاميرا في الاتجاهين X وY. في هذا المثال، قمت بالتمرير على الكاميرا 200
إلى اليمين و100 نقطة إلى أسفل:
Swift
// Move the camera 200 points to the right, and 100 points downwards let downwards = GMSCameraUpdate.scrollBy(x: 200, y: 100) mapView.animate(with: downwards)
Objective-C
// Move the camera 200 points to the right, and 100 points downwards GMSCameraUpdate *downwards = [GMSCameraUpdate scrollByX:200.0 Y:100.0]; [mapView animateWithCameraUpdate:downwards];
تعيين الاتجاه (الاتجاه)
المحمل هو اتجاه البوصلة، ويتم قياسه بالدرجات من الشمال الحقيقي، الحافة العلوية من الخريطة. على سبيل المثال، يؤدي الاتجاه 90 درجة إلى ظهور خريطة حيث تتجه نقاط الحافة العلوية إلى الشرق.
ضبط الاتجاه آليًا باستخدام GMSCameraPosition
أو GMSCameraUpdate
أو باستخدام طريقة animateToBearing:
لحساب GMSMapView
.
Swift
mapView.animate(toBearing: 0)
Objective-C
[mapView animateToBearing:0];
ضبط الإمالة (زاوية العرض)
زاوية العرض هي موضع الكاميرا على قوس بين الموضع المركزي على الخريطة وسطح الأرض، ويتم قياسه بالدرجات من nadir (الاتجاه يشيران أسفل الكاميرا مباشرةً). عندما تقوم بتغيير زاوية العرض، فإن الخريطة تظهر في منظور، مع وجود ميزات بين الكاميرا وموضع الخريطة وظهور أكبر نسبيًا، كما تظهر ميزات تتجاوز موضع الخريطة أصغر نسبيًا، ما ينتج عنه تأثير ثلاثي الأبعاد.
يمكن أن تتراوح زاوية العرض بين 0 (تشير مباشرة لأسفل على الخريطة) وصولاً إلى الحد الأقصى التابع لمستوى التكبير/التصغير. بالنسبة إلى مستوى التكبير/التصغير 16 أو أعلى، يكون الحد الأقصى الزاوية 65 درجة. بالنسبة إلى مستوى التكبير/التصغير 10 أو أقل، يكون الحد الأقصى للزاوية هو 30 درجات.
ضبط زاوية العرض آليًا باستخدام GMSCameraPosition
أو
GMSCameraUpdate
أو باستخدام طريقة animateToViewingAngle:
لحساب GMSMapView
.
Swift
mapView.animate(toViewingAngle: 45)
Objective-C
[mapView animateToViewingAngle:45];
ضبط التكبير أو التصغير
يحدد مستوى تكبير/تصغير الكاميرا مقياس الخريطة. في تكبير/تصغير أكبر يمكنك رؤية المزيد من التفاصيل على الشاشة، بينما عند مستويات التكبير/التصغير الأصغر، رؤية المزيد من العالم.
ضبط التكبير أو التصغير آليًا باستخدام GMSCameraPosition
أو GMSCameraUpdate
أو
باستخدام طريقة animateToZoom:
لحساب GMSMapView
.
Swift
mapView.animate(toZoom: 12)
Objective-C
[mapView animateToZoom:12];
يستخدم المثال التالي الطريقة zoomIn:
لإنشاء GMSCameraUpdate
.
لتحريك التكبير بمقدار مستوى واحد من المستوى الحالي.
Swift
// Zoom in one zoom level let zoomCamera = GMSCameraUpdate.zoomIn() mapView.animate(with: zoomCamera)
Objective-C
// Zoom in one zoom level GMSCameraUpdate *zoomCamera = [GMSCameraUpdate zoomIn]; [mapView animateWithCameraUpdate:zoomCamera];
وضع الحدود
لتحريك الكاميرا بحيث تكون المنطقة المهمة بالكامل مرئية في أقصى ارتفاع مستوى التكبير/التصغير المحتمل، وتعيين حدود عرض الكاميرا. على سبيل المثال، إذا تريد عرض جميع محطات الوقود ضمن مسافة خمسة أميال من التيار موضعه، حرِّك الكاميرا بحيث تصبح كلها مرئية على الشاشة:
- احسِب
GMSCoordinateBounds
الذي تريد. مرئية على الشاشة. - يمكنك استخدام طريقة
cameraForBounds:insets:
فيGMSMapView
لعرض طريقةGMSCameraPosition
يؤدي ضبط هذه الحدود إلى ضمان ملاءمة GMSCoordinateBounds
المحدّدة بالكامل.
داخل حجم الخريطة الحالية. لاحظ أن هذه الطريقة تحدد الإمالة والاتجاهات
على الخريطة إلى 0.
يوضح المثال التالي كيفية تغيير الكاميرا بحيث تظهر المدن لكل من فانكوفر وكالغاري في نفس العرض.
Swift
let vancouver = CLLocationCoordinate2D(latitude: 49.26, longitude: -123.11) let calgary = CLLocationCoordinate2D(latitude: 51.05,longitude: -114.05) let bounds = GMSCoordinateBounds(coordinate: vancouver, coordinate: calgary) let camera = mapView.camera(for: bounds, insets: UIEdgeInsets())! mapView.camera = camera
Objective-C
CLLocationCoordinate2D vancouver = CLLocationCoordinate2DMake(49.26, -123.11); CLLocationCoordinate2D calgary = CLLocationCoordinate2DMake(51.05, -114.05); GMSCoordinateBounds *bounds = [[GMSCoordinateBounds alloc] initWithCoordinate:vancouver coordinate:calgary]; GMSCameraPosition *camera = [mapView cameraForBounds:bounds insets:UIEdgeInsetsZero]; mapView.camera = camera;
حصر تصوير المستخدم في منطقة معيّنة
تحدد هذه السيناريوهات حدود الخريطة ولكن يمكن للمستخدم بعد ذلك التمرير أو تحريكها خارج هذه الحدود. بدلاً من ذلك، قد ترغب في تقييد الإحداثي للنقطة المركزية للخريطة (هدف الكاميرا) بحيث يمكن للمستخدمين يمكنهم فقط التمرير والتحريك داخل هذه الحدود.
على سبيل المثال، قد يرغب تطبيق بيع بالتجزئة لمركز تسوق أو مطار في تقييد الخريطة إلى حدود محددة، مما يسمح للمستخدمين بالتمرير والتحريك داخل تلك الحدود.
لحظر العرض الشامل لحدود محددة، اضبط خاصية cameraTargetBounds
في
GMSMapView
إلى كائن GMSCoordinateBounds
يحدد الحدود المطلوبة.
لإزالة التقييد في وقت لاحق، اضبط cameraTargetBounds
على nil.
Swift
mapView.cameraTargetBounds = bounds
Objective-C
mapView.cameraTargetBounds = bounds;
يوضّح الرسم البياني التالي سيناريو عندما يكون هدف الكاميرا مقيدة بمنطقة أكبر بقليل من إطار العرض. يمكن للمستخدم التمرير والتحريك، بشرط بقاء هدف الكاميرا ضمن المنطقة المحدودة. تشير رسالة الأشكال البيانية يمثل الصليب هدف الكاميرا:
تملأ الخريطة إطار العرض دائمًا، حتى إذا أدى ذلك إلى ظهور إطار العرض. المناطق التي تقع خارج الحدود المحددة. على سبيل المثال، إذا وضعت دالة الكاميرا المستهدفة في زاوية من المنطقة المحاطة، فإن المنطقة خلف الزاوية مرئية في إطار العرض ولكن لا يمكن للمستخدمين التمرير إلى أبعد من ذلك في هذه المنطقة. تشير رسالة الأشكال البيانية يوضح الرسم التخطيطي التالي هذا السيناريو. يمثل الصليب الكاميرا الهدف:
في الرسم التخطيطي التالي، حدود الكاميرا المستهدفة ذات حدود شديدة، مما يوفر للمستخدم فرصة ضئيلة جدًا للتمرير أو تحريك الخريطة. يمثل الصليب هدف الكاميرا:
ضبط حد أدنى أو أقصى للتكبير أو التصغير
يحدد الثابتان العامان kGMSMinZoomLevel
وkGMSMaxZoomLevel
الحد الأدنى أو الأقصى للتكبير/التصغير. سيتم ضبط minZoom
وmaxZoom
تلقائيًا.
يتم تعيين خصائص GMSMapView
على هذه الثوابت.
لتقييد نطاق مستويات التكبير/التصغير المتاحة للخريطة، يمكنك ضبط حد أدنى وحد أقصى. مستوى التكبير/التصغير. تقصر التعليمة البرمجية التالية مستوى التكبير/التصغير على ما بين 10 و15.
Swift
let camera = GMSCameraPosition( latitude: 41.887, longitude: -87.622, zoom: 12 ) let mapView = GMSMapView(frame: .zero, camera: camera) mapView.setMinZoom(10, maxZoom: 15)
Objective-C
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:41.887 longitude:-87.622 zoom:12]; GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; [mapView setMinZoom:10 maxZoom:15];
يجب ضبط نطاق التكبير أو التصغير باستخدام الطريقة setMinZoom:maxZoom:
. ومع ذلك،
قراءة القيم الحالية باستخدام السمتَين minZoom
وmaxZoom
. هذا النمط
مفيدًا عند تقييد واحدة فقط من القيم. يُنشئ الكود التالي
تغير الحد الأدنى لمستوى التكبير فقط.
Swift
mapView.setMinZoom(12, maxZoom: mapView.maxZoom)
Objective-C
[mapView setMinZoom:12 maxZoom:mapView.maxZoom];
إذا تم تعيين مستوى التكبير/التصغير للكاميرا على خارج النطاق الجديد، يتم تحديث التكبير/التصغير الحالي تلقائيًا إلى ستعرض أقرب قيمة صالحة. على سبيل المثال، في التعليمة البرمجية التالية، يتم تعريف التكبير/التصغير الأصلي على أنه 4. عندما يتم تعيين نطاق التكبير/التصغير لاحقًا على 10-15، يتم تحديث مستوى التكبير الحالي إلى 10.
Swift
// Sets the zoom level to 4. let camera2 = GMSCameraPosition( latitude: 41.887, longitude: -87.622, zoom: 4 ) let mapView2 = GMSMapView(frame: .zero, camera: camera) // The current zoom, 4, is outside of the range. The zoom will change to 10. mapView.setMinZoom(10, maxZoom: 15)
Objective-C
// Sets the zoom level to 4. GMSCameraPosition *camera2 = [GMSCameraPosition cameraWithLatitude:41.887 longitude:-87.622 zoom:4]; GMSMapView *mapView2 = [GMSMapView mapWithFrame:CGRectZero camera:camera]; // The current zoom, 4, is outside of the range. The zoom will change to 10. [mapView setMinZoom:10 maxZoom:15];