Zemin yer paylaşımları

Platform seçin: Android iOS JavaScript

Zemin yer paylaşımları, 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 yer paylaşımı, haritaya sabitlenmiş bir resimdir. İşaretçilerin aksine, yer üst katmanları ekrana göre değil, Dünya 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.

Zemin yer paylaşımı eklemek için hem simge hem de sınır tanımlayan bir GMSGroundOverlay nesnesi oluşturun. Bunlardan birini belirtmezseniz zemin yer paylaşımı haritada görünmez. İ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 örneklendirin
  2. icon özelliğini bir UIImage örneği olarak ayarlayın.
  3. bounds özelliğini bir GMSCoordinateBounds örneği olarak ayarlayın. Sınırlar, resmin güneybatı ve kuzeydoğu köşelerini temsil eder.
  4. bearing ve zoomLevel gibi isteğe bağlı özellikleri dilediğiniz gibi ayarlayın.
  5. map özelliğini ayarlayın. Resim haritada görünür.

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

Swift

mapView.clear()
      

Objective-C

[mapView clear];
      

Haritaya eklediğiniz bir yer yer paylaşımında değişiklik yapmak istiyorsanız GMSGroundOverlay nesnesini sakladığınızdan emin olun. Bu nesnede değişiklik yaparak yer 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. Etkinlikler kılavuzuna ve GMSMapViewDelegate sayfasındaki yöntemler listesine bakın.