Zemin bindirmeleri, 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 bindirme, bir haritaya sabitlenmiş bir resimdir. İşaretçilerden farklı olarak, zemin bindirmeleri ekran yerine Dünya yüzeyine dönüktür. Bu nedenle, haritayı döndürmek, eğmek veya yakınlaştırmak resmin yönünü değiştirir.
Bir zemin bindirme eklemek için hem simge hem de sınır tanımlayan bir GMSGroundOverlay
nesnesi oluşturun. Bu ikisinden birinin belirtilmemesi, zemin bindirmenin
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
GMSGroundOverlay
nesnesi örneği oluşturun icon
özelliğini birUIImage
örneğine ayarlayın.bounds
özelliğini birGMSCoordinateBounds
örneğine ayarlayın. Sınırlar, görüntünün güneybatı ve kuzeydoğu köşelerini temsil eder.- İstediğiniz gibi
bearing
vezoomLevel
gibi isteğe bağlı özellikleri ayarlayın. map
özelliğini ayarlayın. Resim haritada görünür.
Aşağıdaki örnekte, mevcut bir GMSMapView
nesnesine zemin bindirmesinin 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
cihazınızın map
özelliğini nil
şeklinde ayarlayarak bir zemin bindirmesini haritadan kaldırabilirsiniz. Alternatif olarak tüm bindirmeleri (şu anda harita üzerinde bulunan zemin bindirmeleri dahil) GMSMapView
clear
yöntemini çağırarak kaldırabilirsiniz.
Swift
mapView.clear()
Objective-C
[mapView clear];
Bir zemin bindirmesini haritaya ekledikten sonra üzerinde değişiklik yapmak istiyorsanız GMSGroundOverlay
nesnesini elinizde tuttuğunuzdan emin olun. Daha sonra bu nesnede değişiklik yaparak zemin bindirmesini 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
Bir kullanıcının yer paylaşımına dokunması gibi harita üzerinde gerçekleşen etkinlikleri dinleyebilirsiniz. Etkinlikleri dinlemek için GMSMapViewDelegate
protokolünü uygulamanız gerekir. GMSMapViewDelegate
'daki etkinlik kılavuzunu ve yöntemlerin listesini inceleyin.