Haritalar, API'de UIView
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 ve çoklu çizgiler gibi diğer nesnelerin eklenmesi, kaldırılması ve yönetilmesi için gerekli yöntemler sunar.
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'da aynı özelliklerin birçoğu bulunur.
API, eşleme işlevinin yanı sıra iOS kullanıcı arayüzü modeliyle tutarlı olan bir dizi etkileşimi de destekler. Örneğin, dokunma ve iki kez dokunma gibi kullanıcı hareketlerine tepki veren katılımcılar tanımlayarak haritayla etkileşimler ayarlayabilirsiniz.
Bir Harita nesnesiyle çalışırken anahtar sınıfı GMSMapView
sınıfıdır.
GMSMapView
, şu işlemleri otomatik olarak işler:
- Google Haritalar hizmetine bağlanılıyor.
- Harita parçaları indiriliyor.
- Kartlar cihaz ekranında gösteriliyor.
- Kaydırma ve yakınlaştırma gibi çeşitli denetimler gösteriliyor.
- Haritayı hareket ettirip yakınlaştırarak veya uzaklaştırarak kaydırma ve yakınlaştırma hareketlerine yanıt verme.
- Haritanın görüntüleme açısını yatırarak iki parmakla yapılan hareketlere yanıt verme.
Bu otomatik işlemlere ek olarak, GMSMapView
sınıfı tarafından gösterilen özellikler ve yöntemler aracılığıyla haritanın davranışını ve görünümünü kontrol edebilirsiniz. GMSMapView
işaretçiler, zemin örtüleri ve çoklu çizgiler ekleyip kaldırma, gösterilen harita türünü değiştirmenize ve GMSCameraPosition
sınıfı aracılığıyla haritada gösterilenleri kontrol etmenize olanak tanır.
SwiftUI ile Haritalar Oluşturma
SwiftUI, bildirim temelli bir yaklaşım kullanarak kullanıcı arayüzü oluşturmak için ek bir yöntem sunar. SwiftUI'ye görünümün tüm farklı durumlarıyla birlikte nasıl görünmesini istediğinizi söylersiniz, gerisini sistem halleder. SwiftUI, bir etkinlik veya kullanıcı işlemi nedeniyle temel durum 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'de harita eklemek için UIViewRepresentable
veya UIViewControllerRepresentable
kurallarına uyulması gerekir. Daha fazla bilgi için Codelab SwiftUI ile iOS uygulamanıza harita ekleme bölümünü inceleyin.
Harita ekleme
Harita eklemek için temel adımlar şunlardır:
SDK'yı edinmek, bir API anahtarı edinmek ve gerekli çerçeveleri eklemek için şuradaki adımları uygulayın:
AppDelegate
içinde API anahtarınızıGMSServices
üzerindekiprovideAPIKey:
sınıfı yöntemine sağlayın.Bir
ViewController
oluşturun veya güncelleyin. Harita, bu görünüm denetleyicisi görünür olduğunda görüntülenirse bunuviewDidLoad
yöntemi ile oluşturduğunuzdan emin olun.Harita görünümünüzü başlatırken
GMSMapViewOptions
ile yapılandırma seçeneklerini ayarlayın. Mülkler arasındaframe
,camera
,mapID
,backgroundColor
veyascreen
bulunur.Eşleme seçenekleri
camera
mülkünüzü birGMSCameraPosition
nesnesiyle ayarlayın. Bu, haritanın merkez ve yakınlaştırma düzeyini belirtir.GMSMapView
options:
yöntemini kullanarak birGMSMapView
sınıfı oluşturma ve örneklendirme. Bu harita, görüntüleme denetleyicisinin tek görünümü olarak kullanılacaksa harita seçeneğininframe
varsayılan değeri (CGRectZero
),frame
görünümü olarak kullanılabilir. Harita otomatik olarak yeniden boyutlandırılır.GMSMapView
nesnesini, görünüm denetleyicisinin görünümü olarak ayarlayın. Örneğin,self.view = mapView;
.
Aşağıdaki örnekte, bir uygulamaya Singapur şehir merkezinde ortalanan bir harita eklenmiştir.
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 fazla yapılandırabilirsiniz.
Sırada ne var?
Bu adımları tamamladıktan sonra harita ayarlarını yapılandırabilirsiniz.