پوشش های زمینی

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

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

مقدمه

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

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

اضافه کردن یک پوشش

  1. یک شی جدید GMSGroundOverlay را نمونه سازی کنید
  2. ویژگی icon را روی یک نمونه از UIImage تنظیم کنید.
  3. ویژگی bounds را روی یک نمونه از GMSCoordinateBounds تنظیم کنید. حاشیه ها نمایانگر گوشه های جنوب غربی و شمال شرقی تصویر هستند.
  4. ویژگی های اختیاری، مانند bearing و zoomLevel را به صورت دلخواه تنظیم کنید.
  5. ویژگی 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 ببینید.