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, zemin yer paylaşımları ekrana 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.
Yer yer paylaşımı eklemek için hem simge hem de sınır tanımlayan bir GMSGroundOverlay nesnesi oluşturun. Bunlardan birinin belirtilmemesi, zemin 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
- Yeni bir
GMSGroundOverlaynesnesi örneklendirin iconözelliğini birUIImageörneği olarak ayarlayın.boundsözelliğini birGMSCoordinateBoundsörneği olarak ayarlayın. Sınırlar, resmin güneybatı ve kuzeydoğu köşelerini temsil eder.bearingvezoomLevelgibi isteğe bağlı özellikleri dilediğiniz gibi ayarlayın.mapözelliğini ayarlayın. Resim haritada görünür.
Aşağıdaki örnekte, mevcut bir GMSMapView nesnesine yer 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;
Pencereyi kaldırma
GMSGroundOverlay nesnenizin map özelliğini nil olarak ayarlayarak haritadan bir yer yer paylaşımını kaldırabilirsiniz. Alternatif olarak, GMSMapView clear yöntemini çağırarak tüm yer paylaşımlarını (şu anda haritada bulunan yer üstü katmanları 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.