Zemin Bindirmeleri

Platform seçin: Android iOS JavaScript

Zemin bindirmeleri, harita üzerinde enlem/boylam koordinatlarına bağlı olan yer paylaşımlarıdır. Bu nedenle, haritayı sürüklediğinizde veya yakınlaştırdığınızda hareket ederler.

Giriş

Zemin bindirme, bir haritaya sabitlenmiş bir resimdir. İşaretçilerden farklı olarak, zemin bindirmeleri ekran yerine Dünya yüzeyine dönüktür. Bu nedenle, haritayı döndürmek, eğmek veya yakınlaştırmak resmin yönünü değiştirir.

Bir zemin bindirme eklemek için hem simge hem de sınır tanımlayan bir GMSGroundOverlay nesnesi oluşturun. Bu ikisinden birinin belirtilmemesi, zemin bindirmenin haritada görünmemesine neden olur. İsteğe bağlı olarak, resmin haritadaki konumunu etkileyecek ek ayarlar belirtebilirsiniz. Gerekli seçenekleri tanımladıktan sonra, yer paylaşımını eklemek için bu nesnenin map özelliğini ayarlayın.

Yer paylaşımı ekleme

  1. Yeni bir GMSGroundOverlay nesnesi örneği oluşturun
  2. icon özelliğini bir UIImage örneğine ayarlayın.
  3. bounds özelliğini bir GMSCoordinateBounds örneğine ayarlayın. Sınırlar, görüntünün güneybatı ve kuzeydoğu köşelerini temsil eder.
  4. İstediğiniz gibi bearing ve zoomLevel gibi isteğe bağlı özellikleri ayarlayın.
  5. map özelliğini ayarlayın. Resim haritada görünür.

Aşağıdaki örnekte, mevcut bir GMSMapView nesnesine zemin bindirmesinin nasıl ekleneceği gösterilmektedir.

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
      

Objective-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;
      

Yer paylaşımını kaldırma

GMSGroundOverlay cihazınızın map özelliğini nil şeklinde ayarlayarak bir zemin bindirmesini haritadan kaldırabilirsiniz. Alternatif olarak tüm bindirmeleri (şu anda harita üzerinde bulunan zemin bindirmeleri dahil) GMSMapView clear yöntemini çağırarak kaldırabilirsiniz.

Swift

mapView.clear()
      

Objective-C

[mapView clear];
      

Bir zemin bindirmesini haritaya ekledikten sonra üzerinde değişiklik yapmak istiyorsanız GMSGroundOverlay nesnesini elinizde tuttuğunuzdan emin olun. Daha sonra bu nesnede değişiklik yaparak zemin bindirmesini değiştirebilirsiniz.

Swift

let overlay = GMSGroundOverlay(bounds: overlayBounds, icon: icon)
overlay.bearing = 0
overlay.map = mapView

// ...

overlay.isTappable = true
      

Objective-C

GMSGroundOverlay *overlay = [GMSGroundOverlay groundOverlayWithBounds:overlayBounds icon:icon];
overlay.bearing = 0;
overlay.map = mapView;

// ...
overlay.tappable = YES;
      

Etkinlikler

Bir kullanıcının yer paylaşımına dokunması gibi harita üzerinde gerçekleşen etkinlikleri dinleyebilirsiniz. Etkinlikleri dinlemek için GMSMapViewDelegate protokolünü uygulamanız gerekir. GMSMapViewDelegate'daki etkinlik kılavuzunu ve yöntemlerin listesini inceleyin.