İşaretli harita ekleme

Bu eğitimde, iOS uygulamanıza işaretçi içeren bir Google Haritası ekleme işlemi gösterilmektedir. Bu eğitim, Swift veya Objective-C hakkında başlangıç ya da orta düzeyde bilgiye ve Xcode hakkında genel bilgiye sahip olanlar için uygundur. Harita oluşturmayla ilgili ileri düzey bir kılavuz için geliştirici kılavuzunu okuyun.

Bu eğitimde aşağıdaki haritayı oluşturacaksınız. İşaretçi Sidney, Avustralya'da bulunuyor.

Sidney'in üzerinde işaretçi bulunan bir haritanın ekran görüntüsü

Kodu alın

GitHub'daki Google Haritalar iOS örnekleri deposunu klonlayın veya indirin.

Alternatif olarak, kaynak kodunu indirmek için aşağıdaki düğmeyi tıklayın:

Kodu ver

Swift

import UIKit
import GoogleMaps

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        // Create a GMSCameraPosition that tells the map to display the
        // coordinate -33.86,151.20 at zoom level 6.
        let camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 6.0)
        let mapView = GMSMapView.map(withFrame: self.view.frame, camera: camera)
        self.view.addSubview(mapView)

        // Creates a marker in the center of the map.
        let marker = GMSMarker()
        marker.position = CLLocationCoordinate2D(latitude: -33.86, longitude: 151.20)
        marker.title = "Sydney"
        marker.snippet = "Australia"
        marker.map = mapView
  }
}
      

Objective-C

#import "ViewController.h"
#import <GoogleMaps/GoogleMaps.h>

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
  // Do any additional setup after loading the view.
  // Create a GMSCameraPosition that tells the map to display the
  // coordinate -33.86,151.20 at zoom level 6.
  GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86
                                                          longitude:151.20
                                                               zoom:6];
  GMSMapView *mapView = [GMSMapView mapWithFrame:self.view.frame camera:camera];
  mapView.myLocationEnabled = YES;
  [self.view addSubview:mapView];

  // Creates a marker in the center of the map.
  GMSMarker *marker = [[GMSMarker alloc] init];
  marker.position = CLLocationCoordinate2DMake(-33.86, 151.20);
  marker.title = @"Sydney";
  marker.snippet = @"Australia";
  marker.map = mapView;
}

@end
      

Başlayın

Swift Package Manager

iOS için Haritalar SDK'sı, Swift Package Manager kullanılarak yüklenebilir.

  1. Mevcut tüm iOS için Haritalar SDK'sı bağımlılıklarını kaldırın.
  2. Bir terminal penceresi açın ve tutorials/map-with-marker dizinine gidin.
  3. Xcode çalışma alanınızı kapatın ve aşağıdaki komutları çalıştırın:
    sudo gem install cocoapods-deintegrate cocoapods-clean
    pod deintegrate
    pod cache clean --all
    rm Podfile
    rm map-with-marker.xcworkspace
  4. Xcode projenizi açın ve podfile dosyasını silin.
  5. File > Add Package Dependencies'e (Dosya > Paket Bağımlılıkları Ekle) gidin.
  6. URL olarak https://github.com/googlemaps/ios-maps-sdk adresini girin, paketi çekmek için Enter tuşuna basın ve Paket Ekle'yi tıklayın.
  7. Dosya > Paketler > Paket Önbelleğini Sıfırla'yı kullanarak paket önbelleğinizi sıfırlamanız gerekebilir.

CocoaPods'u kullanma

  1. Xcode'un 16.0 sürümünü veya sonraki bir sürümünü indirip yükleyin.
  2. Henüz CocoaPods'unuz yoksa terminalden aşağıdaki komutu çalıştırarak macOS'e yükleyin:
    sudo gem install cocoapods
  3. tutorials/map-with-marker dizinine gidin.
  4. pod install komutunu çalıştırın. Bu işlem, Podfile içinde belirtilen Haritalar SDK'sını ve bağımlılıkları yükler.
  5. Yüklü pod sürümünü yeni güncellemelerle karşılaştırmak için pod outdated komutunu çalıştırın. Yeni bir sürüm algılanırsa pod update komutunu çalıştırarak Podfile öğesini güncelleyin ve en yeni SDK'yı yükleyin. Daha fazla ayrıntı için CocoaPods Kılavuzu'na bakın.
  6. Projenin map-with-marker.xcworkspace dosyasını açarak (çift tıklayarak) Xcode'da açın. Projeyi açmak için .xcworkspace dosyasını kullanmanız gerekir.

API anahtarı alma ve gerekli API'leri etkinleştirme

Bu eğitimi tamamlamak için iOS için Haritalar SDK'sını kullanmaya yetkili bir Google API anahtarına ihtiyacınız vardır. Anahtar almak ve API'yi etkinleştirmek için aşağıdaki düğmeyi tıklayın.

Başlayın

Daha fazla bilgi için API anahtarı alma başlıklı makaleyi inceleyin.

API anahtarını uygulamanıza ekleme

API anahtarınızı AppDelegate.swift dosyasına aşağıdaki şekilde ekleyin:

  1. Dosyaya aşağıdaki içe aktarma ifadesinin eklendiğini unutmayın:
    import GoogleMaps
  2. application(_:didFinishLaunchingWithOptions:) yönteminizde aşağıdaki satırı düzenleyerek YOUR_API_KEY kısmını API anahtarınızla değiştirin:
    GMSServices.provideAPIKey("YOUR_API_KEY")

Uygulamanızı derleyip çalıştırma

  1. Bir iOS cihazı bilgisayarınıza bağlayın veya Xcode şema menüsünden bir simülatör seçin.
  2. Cihaz kullanıyorsanız konum hizmetlerinin etkinleştirildiğinden emin olun. Simülatör kullanıyorsanız Özellikler menüsünden bir konum seçin.
  3. Xcode'da Product/Run (Ürün/Çalıştır) menü seçeneğini (veya oynatma düğmesi simgesini) tıklayın.
    • Xcode, uygulamayı oluşturur ve ardından cihazda veya simülatörde çalıştırır.
    • Bu sayfadaki resme benzer şekilde, Avustralya'nın doğu kıyısında Sidney'de ortalanmış bir işaretçinin bulunduğu bir harita görmeniz gerekir.

Sorun Giderme:

  • Harita görmüyorsanız daha önce açıklandığı gibi bir API anahtarı aldığınızı ve bunu uygulamaya eklediğinizi kontrol edin. API anahtarıyla ilgili hata mesajları için Xcode'un hata ayıklama konsolunu kontrol edin.
  • API anahtarını iOS paket tanımlayıcısıyla kısıtladıysanız anahtarı düzenleyerek uygulamaya ait paket tanımlayıcıyı ekleyin: com.google.examples.map-with-marker.
  • İyi bir kablosuz veya GPS bağlantınız olduğundan emin olun.
  • Günlükleri görüntülemek ve uygulamada hata ayıklamak için Xcode hata ayıklama araçlarını kullanın.

Kodu anlama

  1. Bir harita oluşturun ve viewDidLoad()'da görünüm olarak ayarlayın.

    Swift

    // Create a GMSCameraPosition that tells the map to display the
    // coordinate -33.86,151.20 at zoom level 6.
    let camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 6.0)
    let mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera)
    view = mapView
          

    Objective-C

    // Create a GMSCameraPosition that tells the map to display the
    // coordinate -33.86,151.20 at zoom level 6.
    GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86
                                                            longitude:151.20
                                                                 zoom:6.0];
    GMSMapView *mapView = [[GMSMapView alloc] initWithFrame: CGRectZero camera:camera];
    self.view = mapView;
          
  2. viewDidLoad()'da haritaya işaretçi ekleyin.

    Swift

    // Creates a marker in the center of the map.
    let marker = GMSMarker()
    marker.position = CLLocationCoordinate2D(latitude: -33.86, longitude: 151.20)
    marker.title = "Sydney"
    marker.snippet = "Australia"
    marker.map = mapView
          

    Objective-C

    // Creates a marker in the center of the map.
    GMSMarker *marker = [[GMSMarker alloc] init];
    marker.position = CLLocationCoordinate2DMake(-33.86, 151.20);
    marker.title = @"Sydney";
    marker.snippet = @"Australia";
    marker.map = mapView;
          

iOS için Haritalar SDK'sı, kullanıcı bir işaretçiye dokunduğunda varsayılan olarak bilgi penceresinin içeriğini gösterir. Varsayılan davranışı kullanmaktan memnunsanız işaretçi için tıklama işleyici eklemeniz gerekmez.

Tebrikler! Belirli bir konumu belirtmek için işaretçi içeren bir Google Haritası gösteren bir iOS uygulaması oluşturdunuz. Ayrıca iOS için Haritalar SDK'sını kullanmayı da öğrendiniz.

Sonraki adımlar

Harita nesnesi ve işaretçilerle yapabilecekleriniz hakkında daha fazla bilgi edinin.