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

مقدمه
رونهاد زمین تصویری است که روی نقشه ثابت شده است. برخلاف نشانگرها، همپوشانیهای زمین بهجای صفحه، نسبت به سطح زمین جهتگیری میشوند، بنابراین چرخاندن، کج کردن، یا بزرگنمایی نقشه جهت تصویر را تغییر میدهد.
برای افزودن همپوشانی زمین، یک شیء
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 ببینید.