Zemin yer paylaşımları

Platform seçin: Android iOS JavaScript

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

Giriş

Yer paylaşımı, haritaya sabitlenmiş bir resimdir. İşaretçilerden farklı olarak, yer paylaşımları ekrana değil, yeryüzüne 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 paylaşımı eklemek için hem simgeyi hem de sınırları tanımlayan bir GMSGroundOverlay nesnesi oluşturun. Bunlardan birinin belirtilmemesi, yer paylaşımının 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 oluşturun
  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üneybatı ve kuzeydoğu köşelerini temsil eder.
  4. İsteğe bağlı özellikleri (ör. bearing ve zoomLevel) istediğiniz gibi ayarlayın.
  5. map özelliğini ayarlayın. Bu durumda resim haritada görünür.

Aşağıdaki örnekte, mevcut bir GMSMapView nesnesine yer kaplamasının 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'nın map özelliğini nil olarak ayarlayarak yer paylaşımını haritadan kaldırabilirsiniz. Alternatif olarak, GMSMapView clear yöntemini çağırarak şu anda haritada bulunan yer paylaşımları da dahil olmak üzere tüm yer paylaşımlarını kaldırabilirsiniz.

Swift

mapView.clear()
      

Objective-C

[mapView clear];
      

Bir yer paylaşımını haritaya ekledikten sonra değiştirmek isterseniz GMSGroundOverlay nesnesini tuttuğunuzdan emin olun. Bu nesnede değişiklik yaparak 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

Kullanıcının bir yer paylaşımına dokunması gibi haritada gerçekleşen etkinlikleri dinleyebilirsiniz. Etkinlikleri dinlemek için GMSMapViewDelegate protokolünü uygulamanız gerekir. Etkinliklerle ilgili kılavuzu ve GMSMapViewDelegate adresindeki yöntemler listesini inceleyin.