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

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