Zemin yer paylaşımları

Platform seçin: Android iOS JavaScript

Yer paylaşımları, haritada 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ş

Yer kaplaması, bir haritaya sabitlenmiş bir resimdir. İşaretçilerin aksine, zemin yer paylaşımları ekran yerine Dünya'nın yüzeyine göre yönlendirilir. Bu nedenle, haritayı döndürmek, eğmek veya yakınlaştırmak görüntünün yönünü değiştirir.

Yer kaplaması eklemek için hem simgeyi hem de sınırları tanımlayan bir GMSGroundOverlay obje oluşturun. Bu iki parametreden herhangi biri belirtilmezse zemin yer paylaşımı haritada görünmez. İsteğe bağlı olarak, görüntünün haritadaki konumunu etkileyecek ek ayarlar belirtebilirsiniz. Gerekli seçenekleri tanımladıktan sonra bu nesnenin map özelliğini ayarlayarak yer paylaşımını ekleyin.

Yer paylaşımı ekleme

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

Aşağıdaki örnekte, mevcut bir GMSMapView nesnesine nasıl zemin yer paylaşımı 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'nın map mülkünü nil olarak ayarlayarak bir zemin yer paylaşımını haritadan kaldırabilirsiniz. Alternatif olarak, GMSMapView clear yöntemini çağırarak haritadaki tüm yer kaplamaları da dahil olmak üzere tüm yer paylaşımlarını kaldırabilirsiniz.

Swift

mapView.clear()
      

Objective-C

[mapView clear];
      

Bir yer katmanını haritaya ekledikten sonra üzerinde değişiklik yapmak istiyorsanız GMSGroundOverlay nesnesini tutmaya devam edin. Bu nesnede değişiklik yaparak zemin yer paylaşımını daha sonra 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

Harita üzerinde gerçekleşen etkinlikleri (ör. kullanıcı bir yer paylaşımına dokunduğunda) dinleyebilirsiniz. Etkinlikleri dinlemek için GMSMapViewDelegate protokolünü uygulamanız gerekir. GMSMapViewDelegate adresindeki etkinlikler kılavuzuna ve yöntemlerin listesine bakın.