همپوشانیهای زمینی، پوششهایی روی نقشه هستند که به مختصات طول و عرض جغرافیایی گره خوردهاند، بنابراین وقتی نقشه را میکشید یا بزرگنمایی میکنید، حرکت میکنند.
مقدمه
پوشش زمین تصویری است که روی نقشه ثابت می شود. بر خلاف نشانگرها ، روکشهای زمین به جای صفحه نمایش، روی سطح زمین قرار دارند، بنابراین چرخش، کج کردن یا بزرگنمایی نقشه، جهت تصویر را تغییر میدهد.
برای افزودن همپوشانی زمین، یک شی GMSGroundOverlay
ایجاد کنید که هم نماد و هم مرز را تعریف می کند. عدم تعیین هر کدام باعث می شود که پوشش زمین روی نقشه ظاهر نشود. شما می توانید به صورت اختیاری تنظیمات اضافی را تعیین کنید که بر موقعیت تصویر روی نقشه تأثیر می گذارد. هنگامی که گزینه های لازم را تعریف کردید، ویژگی map
این شی را برای اضافه کردن همپوشانی تنظیم کنید.
اضافه کردن یک پوشش
- یک شی جدید
GMSGroundOverlay
را نمونه سازی کنید - ویژگی
icon
را روی یک نمونه ازUIImage
تنظیم کنید. - ویژگی
bounds
را روی یک نمونه ازGMSCoordinateBounds
تنظیم کنید. حاشیه ها نمایانگر گوشه های جنوب غربی و شمال شرقی تصویر هستند. - ویژگی های اختیاری، مانند
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
هدف-C
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()
هدف-C
[mapView clear];
اگر میخواهید پس از افزودن آن به نقشه، روی همپوشانی زمین تغییراتی ایجاد کنید، مطمئن شوید که شی GMSGroundOverlay
را نگه دارید. بعداً میتوانید با ایجاد تغییرات در این شی، پوشش زمین را تغییر دهید.
سویفت
let overlay = GMSGroundOverlay(bounds: overlayBounds, icon: icon) overlay.bearing = 0 overlay.map = mapView // ... overlay.isTappable = true
هدف-C
GMSGroundOverlay *overlay = [GMSGroundOverlay groundOverlayWithBounds:overlayBounds icon:icon]; overlay.bearing = 0; overlay.map = mapView; // ... overlay.tappable = YES;
رویدادها
میتوانید به رویدادهایی که روی نقشه رخ میدهند گوش دهید، مانند زمانی که کاربر روی یک پوشش ضربه میزند. برای گوش دادن به رویدادها، باید پروتکل GMSMapViewDelegate
را پیاده سازی کنید. راهنمای رویدادها و فهرست روشها را در GMSMapViewDelegate
ببینید.