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 Google Haritalar'ı 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 sunar.
API, harita işlevinin yanı sıra 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.
Harita nesnesiyle çalışırken kullanılan temel 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österiliyor.
- Kaydırma ve yakınlaştırma gibi çeşitli kontrolleri görüntüleme
- 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 parmak hareketlerine yanıt verme.
Bu otomatik işlemlere ek olarak, GMSMapView sınıfı tarafından sunulan özellikler ve yöntemler aracılığıyla haritanın davranışını ve görünümünü kontrol edebilirsiniz. İşaretçi, yer yer paylaşımı ve çoklu çizgi ekleyip kaldırmak, görüntülenen haritanın türünü değiştirmek ve haritada gösterilenleri kontrol etmek için GMSMapView sınıfını kullanın. Bu işlemleri GMSCameraPosition sınıfı üzerinden yapabilirsiniz.
SwiftUI ile Harita 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 tüm farklı durumlarını söylersiniz, sistem de gerisini 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 sunmaz. SwiftUI'da harita eklemek için UIViewRepresentable veya UIViewControllerRepresentable protokolüne uymak gerekir. Daha fazla bilgi edinmek için SwiftUI ile iOS uygulamanıza harita ekleme codelab'ini inceleyin.
Harita ekleme
Harita eklemenin temel adımları şunlardır:
SDK'yı almak, API anahtarı edinmek ve gerekli çerçeveleri eklemek için şu makaledeki adımları uygulayın:
AppDelegateuygulamanızda, API anahtarınızıGMSServicesüzerindekiprovideAPIKey:sınıf yöntemine sağlayın.ViewControlleroluşturun veya güncelleyin. Bu görünüm denetleyicisi görünür olduğunda harita gösteriliyorsa haritayıviewDidLoadyönteminde oluşturduğunuzdan emin olun.Harita görünümünüzü başlatırken yapılandırma seçeneklerini
GMSMapViewOptionsile ayarlayın. Özellikler arasındaframe,camera,mapID,backgroundColorveyascreenyer alır.Harita seçenekleri
cameraözelliğinizi birGMSCameraPositionnesnesiyle ayarlayın. Bu, haritanın merkezini ve yakınlaştırma seviyesini belirtir.GMSMapViewoptions:yöntemini kullanarakGMSMapViewsınıfı oluşturma ve örneklendirme. Bu harita, görünüm denetleyicisinin tek görünümü olarak kullanılacaksa harita seçeneğiframeiçin varsayılan değer olanCGRectZero, görünümframeolarak kullanılabilir. Harita otomatik olarak yeniden boyutlandırılır.GMSMapViewnesnesini 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 merkezini gösteren bir harita eklenmektedir.
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.