Zemin Bindirmeleri

Platform seçin: Android iOS JavaScript

Zemin bindirmeleri, harita üzerinde enlem/boylam koordinatlarına bağlı bindirmelerdir ve böylece haritayı sürüklediğinizde ya da yakınlaştırdığınızda hareket ederler.

Giriş

Zemin bindirme, haritaya sabitlenmiş bir görüntüdür. İşaretçilerden farklı olarak, zemin bindirmeleri ekran yerine Dünya'nın yüzeyine göre ayarlanır. Bu nedenle haritayı döndürmek, yatırmak veya yakınlaştırmak görüntünün yönünü değiştirir.

Zemin bindirme eklemek için hem simge hem de sınırları tanımlayan bir GMSGroundOverlay nesnesi oluşturun. İkisinden 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.

Bindirme ekleme

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

Aşağıdaki örnekte, mevcut bir GMSMapView nesnesine zemin bindirmenin 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 olarak ayarlayarak bir zemin bindirmesini haritadan kaldırabilirsiniz. Alternatif olarak, tüm yer paylaşımlarını (GMSMapView clear yöntemini çağırarak haritadaki mevcut zemin bindirmeleri dahil) kaldırabilirsiniz.

Swift

mapView.clear()
      

Objective-C

[mapView clear];
      

Bir zemin bindirmesini haritaya ekledikten sonra üzerinde değişiklik yapmak isterseniz GMSGroundOverlay nesnesini elinizde tuttuğunuzdan emin olun. Daha sonra bu nesnede değişiklikler yaparak zemin bindirmesinde değişiklik yapabilirsiniz.

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 haritada gerçekleşen etkinlikleri dinleyebilirsiniz. Etkinlikleri dinlemek için GMSMapViewDelegate protokolünü uygulamanız gerekir. Etkinlik kılavuzunu ve GMSMapViewDelegate sitesindeki yöntemlerin listesini inceleyin.