Haritalar, API'de UIView
alt sınıfı olan GMSMapView
sınıfı tarafından temsil edilir. Harita, iOS için Haritalar SDK'sındaki en önemli nesnedir ve işaretçiler ve ç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 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 sunar.
API, eşleme 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 bir harita ile etkileşimleri ayarlayabilirsiniz.
Harita nesnesi ile çalışırken temel sınıf GMSMapView
sınıfıdır.
GMSMapView
aşağıdaki işlemleri otomatik olarak yönetir:
- Google Haritalar hizmetine bağlanıyor.
- Harita parçaları indiriliyor.
- Cihaz ekranında karolar gösteriliyor.
- 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ı değiştirerek iki parmaklı hareketlere 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. GMSMapView
, işaretçiler, yer yer paylaşımları ve çoklu çizgiler eklemenize, 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 harita oluşturma
SwiftUI, açıklayıcı bir yaklaşım kullanarak kullanıcı arayüzü oluşturmanın ek bir yolunu sunar. SwiftUI'ye görünümünüzün nasıl görünmesini istediğinizi ve tüm farklı durumlarını belirtirsiniz. Gerisi sistem tarafından halledilir. SwiftUI, temel durum bir etkinlik veya kullanıcı işlemi nedeniyle değiştiğinde görünümü güncellemeyi yönetir.
iOS için Haritalar SDK'sı, UIKit
üzerine kuruludur ve SwiftUI uyumlu bir görünüm sağlamaz. SwiftUI'ye harita eklemek için UIViewRepresentable
veya UIViewControllerRepresentable
'e uymanız gerekir. Daha fazla bilgi edinmek için SwiftUI ile iOS uygulamanıza harita ekleme konulu Codelab'i inceleyin.
Harita ekleme
Harita eklemeyle ilgili temel adımlar şunlardır:
SDK'yı almak, API anahtarı edinmek ve gerekli çerçeveleri eklemek için şu makaledeki adımları uygulayın:
AppDelegate
dosyanızda, API anahtarınızıGMSServices
sınıfındakiprovideAPIKey:
sınıf yöntemine sağlayın.ViewController
oluşturun veya güncelleyin. Harita, bu görüntüleme denetleyicisi görünür hale geldiğinde görüntüleniyorsa haritayıviewDidLoad
yönteminde oluşturduğunuzdan emin olun.Harita görünümünüzü başlatırken yapılandırma seçeneklerini
GMSMapViewOptions
ile ayarlayın. Mülklerframe
,camera
,mapID
,backgroundColor
veyascreen
içerir.GMSCameraPosition
nesnesi ile harita seçeneklericamera
mülkünüzü ayarlayın. Bu, haritanın merkezini ve yakınlaştırma düzeyini belirtir.GMSMapView
sınıfını oluşturun veGMSMapView
sınıfınıoptions:
yöntemini kullanarak örneklendirin. Bu harita, görüntüleme denetleyicisinin tek görünümü olarak kullanılacaksa harita seçeneğiframe
varsayılan değeriCGRectZero
, görünümframe
olarak kullanılabilir. Harita otomatik olarak yeniden boyutlandırılır.GMSMapView
nesnesini, görüntü kontrol cihazının görünümü olarak ayarlayın. Örneğin,self.view = mapView;
.
Aşağıdaki örnekte, Singapur şehir merkezinin ortasına yerleştirilmiş bir harita uygulamaya 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 da yapılandırabilirsiniz.
Sırada ne var?
Bu adımları tamamladıktan sonra harita ayarlarını yapılandırabilirsiniz.