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

مقدمه
رونهاد زمین تصویری است که روی نقشه ثابت شده است. برخلاف نشانگرها، همپوشانیهای زمین بهجای صفحه، نسبت به سطح زمین جهتگیری میشوند، بنابراین چرخاندن، کج کردن، یا بزرگنمایی نقشه جهت تصویر را تغییر میدهد.
برای افزودن همپوشانی زمین، یک شیء
GMSGroundOverlay
ایجاد کنید که هم نماد و هم مرزها را تعریف میکند. اگر هیچکدام را مشخص نکنید،
رونهاد زمین در نقشه نشان داده نخواهد شد. میتوانید بهطور اختیاری تنظیمات بیشتری را مشخص کنید که بر موقعیت تصویر روی نقشه تأثیر میگذارد.
پساز تعریف گزینههای لازم، ویژگی map این شیء را برای افزودن همپوشانی تنظیم کنید.
درحال افزودن رونهاد
- نمونهسازی شیء
GMSGroundOverlayجدید - خصوصیت
iconرا روی نمونهای ازUIImageتنظیم کنید. - خصوصیت
boundsرا روی نمونهای ازGMSCoordinateBoundsتنظیم کنید. مرزها نشاندهنده گوشههای جنوب غربی و شمال شرقی تصویر است. - ویژگیهای اختیاری، مانند
bearingوzoomLevel، را بهدلخواه تنظیم کنید. - خصوصیت
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 ببینید.