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
- Yeni bir
GMSGroundOverlay
nesnesi oluşturma icon
özelliğiniUIImage
örneği olarak ayarlayın.bounds
özelliğiniGMSCoordinateBounds
örneği olarak ayarlayın. Sınırlar, resmin güney batı ve kuzeydoğu köşelerini temsil eder.bearing
vezoomLevel
gibi isteğe bağlı özellikleri istediğiniz gibi ayarlayın.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.