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 kutucukları 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 tüm 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:
AppDelegateiçinde,GMSServicesüzerindekiprovideAPIKey:sınıfı yöntemine API anahtarınızı sağlayın.ViewControlleroluşturun veya güncelleyin. Bu görünüm denetleyicisi görünür hale geldiğinde harita gösteriliyorsa haritayıviewDidLoadyöntemi içinde oluşturduğunuzdan emin olun.Harita görünümünüzü başlatırken
GMSMapViewOptionsile yapılandırma seçeneklerini ayarlayın.frame,camera,mapID,backgroundColorveyascreengibi özellikler.GMSCameraPositionnesnesiyle harita seçeneklericameraözelliğini ayarlayın. Bu, haritanın merkezini ve yakınlaştırma düzeyini belirtir.GMSMapViewoptions:yöntemini kullanarakGMSMapViewsınıfı oluşturun ve başlatın. Bu harita, görünüm denetleyicisinin tek görünümü olarak kullanılacaksa harita seçeneğiframevarsayılan değeriCGRectZerogörünümframeolarak kullanılabilir. Haritanın boyutu otomatik olarak ayarlanır.GMSMapViewnesnesini 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.