Haritalar, API'de UIView
sınıfının bir alt sınıfı olan GMSMapView
sınıfıyla temsil edilir. Harita, iOS için Haritalar SDK'sındaki en önemli nesnedir ve işaretçiler ile çoklu çizgiler gibi diğer nesneleri eklemek, kaldırmak ve yönetmek için gerekli yöntemleri sağlar.
Giriş
iOS için Haritalar SDK'sı, iOS uygulamanızda bir Google haritası görüntülemenize olanak tanır. Bu haritalar, Google Haritalar iOS uygulamasında gördüğünüz haritalarla aynı görünüme sahiptir ve SDK, aynı özelliklerin çoğunu kullanıma sunar.
API, harita işlevine ek olarak iOS kullanıcı arayüzü modeliyle tutarlı bir dizi etkileşimi de destekler. Örneğin, dokunma ve çift dokunma gibi kullanıcı hareketlerine tepki veren yanıtlayıcılar tanımlayarak haritayla etkileşimleri ayarlayabilirsiniz.
Bir Harita nesnesiyle çalışırken kullanılan anahtar sınıfı GMSMapView
sınıfıdır.
GMSMapView
aşağıdaki işlemleri otomatik olarak gerçekleştirir:
- Google Haritalar hizmetine bağlanma
- Harita parçaları indiriliyor.
- Cihaz ekranında kartları gösterme
- Kaydırma ve yakınlaştırma gibi çeşitli kontrolleri gösterme
- Haritayı hareket ettirerek ve yakınlaştırıp uzaklaştırarak kaydırma ve yakınlaştırma hareketlerine yanıt verme
- Haritanın görüntüleme açısını eğerek iki parmakla yapılan hareketlere yanıt verme.
Bu otomatik işlemlerin yanı sıra, GMSMapView
sınıfı tarafından kullanıma sunulan özellikler ve yöntemler aracılığıyla haritanın davranışını ve görünümünü kontrol edebilirsiniz. GMSMapView
kullanarak işaretçi, yer paylaşımı ve çoklu çizgi ekleyip kaldırabilir, gösterilen harita türünü değiştirebilir ve GMSCameraPosition
sınıfı aracılığıyla haritada gösterilenleri kontrol edebilirsiniz.
SwiftUI ile Haritalar Oluşturma
SwiftUI, bildirim temelli bir yaklaşımla kullanıcı arayüzü oluşturmanın ek bir yolunu sunar. SwiftUI'a görünümünüzün nasıl görünmesini istediğinizi ve görünümünüzün farklı durumlarını söylersiniz, sistem de gerisini halleder. SwiftUI, temel durum bir etkinlik veya kullanıcı işlemi nedeniyle her değiştiğinde görünümü günceller.
iOS için Haritalar SDK'sı UIKit
üzerine kurulmuştur ve SwiftUI ile uyumlu bir görünüm sağlamaz. SwiftUI'da harita eklemek için UIViewRepresentable
veya UIViewControllerRepresentable
protokolüne uymanız gerekir. Daha fazla bilgi edinmek için SwiftUI ile iOS uygulamanıza harita ekleme codelab'ine bakın.
Harita ekleme
Harita eklemenin temel adımları şunlardır:
SDK'yı edinmek, API anahtarı almak ve gerekli çerçeveleri eklemek için aşağıdaki makaledeki adımları uygulayın:
AppDelegate
içinde,GMSServices
üzerindeprovideAPIKey:
sınıfı yöntemine API anahtarınızı sağlayın.ViewController
oluşturun veya güncelleyin. Bu görünüm denetleyicisi görünür hale geldiğinde harita gösteriliyorsa haritayıviewDidLoad
yöntemi içinde oluşturduğunuzdan emin olun.Harita görünümünüzü başlatırken
GMSMapViewOptions
ile yapılandırma seçeneklerini ayarlayın.frame
,camera
,mapID
,backgroundColor
veyascreen
gibi özellikler.GMSCameraPosition
nesnesiyle harita seçeneklericamera
özelliğini ayarlayın. Bu, haritanın merkezini ve yakınlaştırma düzeyini belirtir.GMSMapView
options:
yöntemini kullanarak birGMSMapView
sınıfı oluşturun ve örneğini oluşturun. Bu harita, görünüm denetleyicisinin tek görünümü olarak kullanılacaksa harita seçeneğiframe
varsayılan değeriCGRectZero
görünüm olarak kullanılabilirframe
. Haritanın boyutu otomatik olarak ayarlanır.GMSMapView
nesnesini görünüm denetleyicisinin görünümü olarak ayarlayın. Örneğin,self.view = mapView;
.
Aşağıdaki örnekte, Singapur şehir merkezinde ortalanmış bir harita uygulamaya ekleniyor.
Swift
import GoogleMaps class MapObjects : UIViewController { override func viewDidLoad() { super.viewDidLoad() let options = GMSMapViewOptions() options.camera = GMSCameraPosition(latitude: 1.285, longitude: 103.848, zoom: 12) options.frame = self.view.bounds; let mapView = GMSMapView(options:options) self.view = mapView } }
Objective-C
- (void)viewDidLoad { [super viewDidLoad]; GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; options.camera = [GMSCameraPosition cameraWithLatitude:1.285 longitude:103.848 zoom:12]; options.frame = self.view.bounds; GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options]; self.view = mapView; }
Bu adımları uyguladıktan sonra GMSMapView
nesnesini daha ayrıntılı bir şekilde yapılandırabilirsiniz.
Sırada ne var?
Bu adımları tamamladıktan sonra harita ayarlarını yapılandırabilirsiniz.