Harita ekle

Platform seçin: Android iOS JavaScript

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 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 sunar.

API, eşleme işlevinin yanı sıra 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 yanıtlar tanımlayarak bir haritayla etkileşimler oluşturabilirsiniz.

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.
  • Cihaz ekranında karolar gösteriliyor.
  • Kaydırma ve yakınlaştırma gibi çeşitli kontroller görüntüleniyor.
  • 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 hareketleri yanıtlama.

Bu otomatik işlemlere ek olarak, haritanın davranışını ve görünümünü, GMSMapView sınıfı tarafından gösterilen özellikler ve yöntemler aracılığıyla kontrol edebilirsiniz. GMSMapView, GMSCameraPosition sınıfı aracılığıyla işaretçi, yer örtüşmesi ve çoklu çizgi ekleyip kaldırmanıza, görüntülenen harita türünü değiştirmenize ve haritada nelerin gösterileceğini kontrol etmenize olanak tanır.

SwiftUI ile harita oluşturma

SwiftUI, bildirim temelli bir yaklaşım kullanarak kullanıcı arayüzü oluşturmak için ek bir yöntem sunar. SwiftUI'ya görünümünüzün farklı durumlarla birlikte nasıl görünmesini istediğinizi söylersiniz, gerisini sistem yapar. SwiftUI, bir etkinlik veya kullanıcı işlemi nedeniyle temel durum değiştiğinde görünümün güncellenmesini sağlar.

iOS için Haritalar SDK'sı, UIKit üzerine inşa edilmiştir ve henüz SwiftUI ile uyumlu bir görünüm sağlamamaktadır. SwiftUI'ya harita eklemek için UIViewRepresentable veya UIViewControllerRepresentable kurallarına uyulması gerekir. Daha fazla bilgi edinmek için SwiftUI ile iOS uygulamanıza harita ekleme başlıklı Codelab'e göz atın.

Harita ekleme

Harita eklemek için temel adımlar şunlardır:

  1. SDK'yı almak, API anahtarı edinmek ve gerekli çerçeveleri eklemek için şu adımları uygulayın:

    1. Google Cloud Console'da Kurulum

    2. API anahtarı kullanma

    3. Xcode Projesi oluşturun

  2. AppDelegate dosyanızda, 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österilecekse haritayı loadView yöntemiyle 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şturun ve somutlaştırın. Bu harita, görünüm denetleyicisinin tek görünümü olarak kullanılacaksa, haritanın çerçevesi olarak CGRectZero 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, merkezi Singapur şehir merkezinde olan bir harita bir uygulamaya eklenmiştir.

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ı izledikten sonra GMSMapView nesnesini daha ayrıntılı yapılandırabilirsiniz.

Sırada ne var?

Bu adımları tamamladıktan sonra harita ayarlarını yapılandırabilirsiniz.