Harita ekleme

Platformu seçin: Android iOS JavaScript

Haritalar, API'de UIView alt 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 nesnelerin eklenmesi, kaldırılması ve yönetilmesi 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 birçoğunu açığa çıkarır.

API, eşleme işlevine ek olarak iOS kullanıcı arayüzü modeliyle tutarlı bir dizi etkileşimi de destekler. Örneğin, dokunma ve iki kez dokunma gibi kullanıcı hareketlerine tepki veren tepkiler tanımlayarak haritayla etkileşimler ayarlayabilirsiniz.

Bir Harita nesnesiyle çalışırken 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ğlanılıyor.
  • Harita desenleri indiriliyor.
  • Kartlar cihaz ekranında gösteriliyor.
  • Kaydırma ve yakınlaştırma gibi çeşitli kontroller görüntüleniyor.
  • Haritayı hareket ettirip yakınlaştırıp uzaklaştırarak kaydırma ve yakınlaştırma hareketlerine yanıt verebilirsiniz.
  • Haritanın görüntüleme açısını yatırarak iki parmakla yapılan hareketleri yanıtlama.

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 döşemeleri ve çoklu çizgiler eklemenize, kaldırmanıza, görüntülenen harita türünü değiştirmenize ve GMSCameraPosition sınıfıyla haritada nelerin gösterileceğini kontrol etmenize olanak tanır.

SwiftUI ile Haritalar Oluştur

SwiftUI, bildirim temelli bir yaklaşım kullanarak kullanıcı arayüzü oluşturmanın ek bir yolunu sunar. SwiftUI'ye görüntünüzün tüm farklı durumlarıyla birlikte nasıl görünmesini istediğinizi söyleyin, gerisini sisteme bırakın. SwiftUI, bir etkinlik veya kullanıcı işlemi nedeniyle temel durum değiştiğinde görünümü güncelleme işlemini yönetir.

iOS için Haritalar SDK'sı UIKit temel alınarak geliştirilmiştir ve henüz SwiftUI uyumlu bir görünüm sağlamamaktadır. SwiftUI'de harita eklemek için UIViewRepresentable veya UIViewControllerRepresentable ile uyumlu olmak gerekir. Daha fazla bilgi için Codelab'de SwiftUI ile iOS uygulamanıza harita ekleme konusuna bakın.

Harita ekleme

Harita eklemenin temel adımları şunlardır:

  1. SDK'yı edinmek için bir API anahtarı edinin ve gerekli çerçeveleri ekleyin aşağıdaki adımları uygulayın:

    1. Google Cloud Console'da Kurulum

    2. API anahtarı kullanma

    3. Xcode projesi oluşturma

  2. AppDelegate içinde API anahtarınızı GMSServices üzerindeki provideAPIKey: sınıf yöntemine sağlayın.

  3. ViewController oluşturun veya güncelleyin. Harita, bu görünüm denetleyicisi görünür hale geldiğinde görüntülenirse, loadView yöntemini kullanarak oluşturduğunuzdan emin olun.

    1. Haritanın ortasını ve yakınlaştırma düzeyini belirten bir GMSCameraPosition nesnesi oluşturun. GMSMapView nesnesini örneklediğinizde GMSCameraPosition nesnesini zorunlu parametre olarak iletmeniz gerekir.

    2. GMSMapView mapWithFrame: yöntemini kullanarak bir GMSMapView sınıfı oluşturup örnekleyin. Bu harita, görünüm denetleyicisinin tek görünümü olarak kullanılacaksa CGRectZero, haritanın çerçevesi olarak kullanılabilir. Harita otomatik olarak yeniden boyutlandırılır.

    3. GMSMapView nesnesini, görünüm denetleyicisinin görünümü olarak ayarlayın (ör. self.view = mapView;).

Aşağıdaki örnekte, bir uygulamaya Singapur şehir merkezinin merkezinde yer alan bir harita gösterilmektedir.

Swift

import GoogleMaps

class MapObjects : UIViewController {
  override func viewDidLoad() {
    super.viewDidLoad()
    let camera = GMSCameraPosition(latitude: 1.285, longitude: 103.848, zoom: 12)
    let mapView = GMSMapView(frame: .zero, camera: camera)
    self.view = mapView
  }
}
      

Objective-C

#import "MapObjects.h"
@import GoogleMaps;

@implementation MapObjects

- (void)viewDidLoad {
  [super viewDidLoad];
  GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:1.285
                                                          longitude:103.848
                                                               zoom:12];
  GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
  self.view = mapView;
}

@end
      

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.