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

پلتفرم مورد نظر را انتخاب کنید: اندروید، iOS، جاوا اسکریپت

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

مقدمه

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

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

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

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

هدف-سی

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 مراجعه کنید.