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ı ekrana göre değil 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
nesnesi oluşturun. Bu iki seçenekten biri belirtilmezse zemin yer paylaşımı haritada görünmez. İsteğe bağlı olarak, resmin haritada konumlandırılmasını etkileyecek ek ayarlar da belirtebilirsiniz.
Gerekli seçenekleri tanımladıktan sonra, yer paylaşımını eklemek için bu nesnenin map
mülkünü ayarlayın.
Yer paylaşımı ekleme
- Yeni bir
GMSGroundOverlay
nesnesi oluşturma icon
mülkünüUIImage
örneği olarak ayarlayın.bounds
mülkünüGMSCoordinateBounds
ö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
öğenizin map
özelliğini 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 kaplamalarını kaldırabilirsiniz.
Swift
mapView.clear()
Objective-C
[mapView clear];
Bir yer kaplamasını haritaya ekledikten sonra üzerinde değişiklik yapmak istiyorsanız GMSGroundOverlay
nesnesini tutmaya devam edin. Bu nesnede değişiklik yaparak daha sonra yer yer paylaşımını 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ının bir yer paylaşımına dokunması) dinleyebilirsiniz. Etkinlikleri dinlemek için GMSMapViewDelegate
protokolünü uygulamanız gerekir. GMSMapViewDelegate
adresindeki etkinlikler kılavuzuna ve yöntemlerin listesine bakın.