رونهادهای زمین

پلاتفرم را انتخاب کنید: Android iOS JavaScript

هم‌پوشانی‌های زمین هم‌پوشانی‌هایی روی نقشه هستند که به مختصات طول/عرض جغرافیایی گره خورده‌اند، بنابراین وقتی نقشه را می‌کشید یا بزرگ‌نمایی می‌کنید، آن‌ها نیز حرکت می‌کنند.

مقدمه

رونهاد زمین تصویری است که روی نقشه ثابت شده است. برخلاف نشانگرها، هم‌پوشانی‌های زمین به‌جای صفحه، نسبت به سطح زمین جهت‌گیری می‌شوند، بنابراین چرخاندن، کج کردن، یا بزرگ‌نمایی نقشه جهت تصویر را تغییر می‌دهد.

برای افزودن هم‌پوشانی زمین، یک شیء GMSGroundOverlay ایجاد کنید که هم نماد و هم مرزها را تعریف می‌کند. اگر هیچ‌کدام را مشخص نکنید، رونهاد زمین در نقشه نشان داده نخواهد شد. می‌توانید به‌طور اختیاری تنظیمات بیشتری را مشخص کنید که بر موقعیت تصویر روی نقشه تأثیر می‌گذارد. پس‌از تعریف گزینه‌های لازم، ویژگی map این شیء را برای افزودن هم‌پوشانی تنظیم کنید.

درحال افزودن رونهاد

  1. نمونه‌سازی شیء GMSGroundOverlay جدید
  2. خصوصیت icon را روی نمونه‌ای از UIImage تنظیم کنید.
  3. خصوصیت bounds را روی نمونه‌ای از GMSCoordinateBounds تنظیم کنید. مرزها نشان‌دهنده گوشه‌های جنوب غربی و شمال شرقی تصویر است.
  4. ویژگی‌های اختیاری، مانند bearing و zoomLevel، را به‌دلخواه تنظیم کنید.
  5. خصوصیت map را تنظیم کنید - تصویر روی نقشه ظاهر می‌شود.

مثال زیر نحوه افزودن رونهاد زمین به شیء GMSMapView موجود را نشان می‌دهد.

Swift

let southWest = CLLocationCoordinate2D(latitude: 40.712216, longitude: -74.22655)
let northEast = CLLocationCoordinate2D(latitude: 40.773941, longitude: -74.12544)
let overlayBounds = GMSCoordinateBounds(coordinate: southWest, coordinate: northEast)

// Image from http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg
let icon = UIImage(named: "newark_nj_1922")

let overlay = GMSGroundOverlay(bounds: overlayBounds, icon: icon)
overlay.bearing = 0
overlay.map = mapView
      

آبجکتیو-سی

CLLocationCoordinate2D southWest = CLLocationCoordinate2DMake(40.712216,-74.22655);
CLLocationCoordinate2D northEast = CLLocationCoordinate2DMake(40.773941,-74.12544);
GMSCoordinateBounds *overlayBounds = [[GMSCoordinateBounds alloc] initWithCoordinate:southWest
                                                                        coordinate:northEast];

// Image from http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg
UIImage *icon = [UIImage imageNamed:@"newark_nj_1922"];
GMSGroundOverlay *overlay = [GMSGroundOverlay groundOverlayWithBounds:overlayBounds icon:icon];
overlay.bearing = 0;
overlay.map = mapView;
      

برداشتن رونهاد

می‌توانید با تنظیم ویژگی map مربوط به GMSGroundOverlay روی nil، پوشش زمینه را از نقشه بردارید. همچنین می‌توانید با فراخوانی روش GMSMapView clear، همه هم‌پوشانی‌ها (ازجمله هم‌پوشانی‌های زمینی که درحال‌حاضر روی نقشه هستند) را بردارید.

Swift

mapView.clear()
      

آبجکتیو-سی

[mapView clear];
      

اگر می‌خواهید پس‌از افزودن پوشش زمین به نقشه، آن را اصلاح کنید، مطمئن شوید که شیء GMSGroundOverlay را نگه دارید. می‌توانید بعداً با ایجاد تغییرات در این شیء، هم‌پوشانی زمین را اصلاح کنید.

Swift

let overlay = GMSGroundOverlay(bounds: overlayBounds, icon: icon)
overlay.bearing = 0
overlay.map = mapView

// ...

overlay.isTappable = true
      

آبجکتیو-سی

GMSGroundOverlay *overlay = [GMSGroundOverlay groundOverlayWithBounds:overlayBounds icon:icon];
overlay.bearing = 0;
overlay.map = mapView;

// ...
overlay.tappable = YES;
      

رویدادها

می‌توانید به رویدادهایی که روی نقشه رخ می‌دهند گوش دهید، مثلاً وقتی کاربر روی یک هم‌پوشانی ضربه می‌زند. برای گوش دادن به رویدادها، باید پروتکل GMSMapViewDelegate را پیاده‌سازی کنید. راهنمای رویدادها و فهرست روش‌ها را در GMSMapViewDelegate ببینید.