Zemin bindirmeleri, harita üzerinde enlem/boylam koordinatlarına bağlı bindirmelerdir ve böylece haritayı sürüklediğinizde ya da yakınlaştırdığınızda hareket ederler.
Giriş
Zemin bindirme, haritaya sabitlenmiş bir görüntüdür. İşaretçilerden farklı olarak, zemin bindirmeleri ekran yerine Dünya'nın yüzeyine göre ayarlanır. Bu nedenle haritayı döndürmek, yatırmak veya yakınlaştırmak görüntünün yönünü değiştirir.
Zemin bindirme eklemek için hem simge hem de sınırları tanımlayan bir GMSGroundOverlay
nesnesi oluşturun. İkisinden 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.
Bindirme ekleme
- Yeni bir
GMSGroundOverlay
nesnesi gösterin icon
özelliğini,UIImage
öğesinin bir örneği olarak ayarlayın.bounds
özelliğini,GMSCoordinateBounds
öğesinin bir örneği olarak ayarlayın. Sınırlar, görüntünün güneybatı ve kuzeydoğu köşelerini temsil eder.bearing
vezoomLevel
gibi isteğe bağlı özellikleri istediğiniz gibi ayarlayın.map
özelliğini ayarlayın. Resim haritada gösterilir.
Aşağıdaki örnekte, mevcut bir GMSMapView
nesnesine zemin bindirmenin 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
olarak ayarlayarak bir zemin bindirmesini haritadan kaldırabilirsiniz. Alternatif olarak, tüm yer paylaşımlarını (GMSMapView
clear
yöntemini çağırarak haritadaki mevcut zemin bindirmeleri dahil) kaldırabilirsiniz.
Swift
mapView.clear()
Objective-C
[mapView clear];
Bir zemin bindirmesini haritaya ekledikten sonra üzerinde değişiklik yapmak isterseniz GMSGroundOverlay
nesnesini elinizde tuttuğunuzdan emin olun. Daha sonra bu nesnede değişiklikler yaparak zemin bindirmesinde değişiklik yapabilirsiniz.
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 haritada gerçekleşen etkinlikleri dinleyebilirsiniz. Etkinlikleri dinlemek için GMSMapViewDelegate
protokolünü uygulamanız gerekir. Etkinlik kılavuzunu ve GMSMapViewDelegate
sitesindeki yöntemlerin listesini inceleyin.