İşaretçi içeren bir harita ekleme

Bu eğitimde, iOS uygulamanıza işaretçi içeren basit bir Google haritasının nasıl ekleneceği gösterilmektedir. Eğitim, Xcode hakkında genel bilginin yanı sıra Swift veya Objective-C hakkında başlangıç veya orta düzey bilgi sahibi olan kullanıcılara 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 konumlandırılmış.

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

Kodu alın

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

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

Kodu verin

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 iOS için Haritalar SDK'sı bağımlılıklarını kaldırdığınızdan emin olun.
  2. Bir terminal penceresi açıp tutorials/map-with-marker dizinine gidin.
  3. Xcode çalışma alanınızın kapalı olduğundan emin olun 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. Dosya > Paket Bağımlılıkları Ekle'ye gidin.
  6. URL olarak https://github.com/googlemaps/ios-maps-sdk adresini girin, paketi almak 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 15.0 veya sonraki bir sürümünü indirip yükleyin.
  2. CocoaPods'u henüz yüklemediyseniz terminalde 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 tüm bağımlılıklarını yükler.
  5. Yüklü kapsül 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 tespit edilirse Podfile'ı güncellemek ve en son SDK'yı yüklemek için pod update'yi çalıştırın. Daha fazla bilgi için CocoaPods Kılavuzu'na bakın.
  6. Projenin map-with-marker.xcworkspace dosyasını Xcode'da açmak için dosyayı açın (çift tıklayın). Projeyi açmak için .xcworkspace dosyasını kullanmanız gerekir.

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

Bu eğitici içeriği tamamlamak için iOS için Haritalar SDK'sını kullanma yetkisine sahip 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'nize aşağıdaki gibi ekleyin:

  1. Dosyaya aşağıdaki içe aktarma beyanının eklendiğini unutmayın:
    import GoogleMaps
  2. application(_:didFinishLaunchingWithOptions:) yönteminizde aşağıdaki satırı düzenleyin. YOUR_API_KEY ifadesini 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 şeması 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 Ürün/Çalıştır menü seçeneğini (veya oynatma düğmesi simgesini) tıklayın.
    • Xcode, uygulamayı derleyip cihazda veya simülatörde çalıştırır.
    • Bu sayfadaki resme benzer şekilde, Avustralya'nın doğu kıyısındaki Sidney'i merkez alan bir işaretçi içeren bir harita görürsünüz.

Sorun Giderme:

  • Harita görmüyorsanız daha önce açıklandığı gibi bir API anahtarı alıp uygulamaya eklediğinizden emin olun. 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ına göre kısıtladıysanız anahtarı düzenleyerek uygulamanın paket tanımlayıcısını ekleyin: com.google.examples.map-with-marker.
  • İyi bir kablosuz bağlantınız veya GPS bağlantınız olduğundan emin olun.
  • Günlükleri görüntülemek ve uygulamada hata ayıklama yapmak için Xcode hata ayıklama araçlarını kullanın.

Kodu anlama

  1. Bir harita oluşturun ve viewDidLoad()'te 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()'te haritaya bir 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ı, varsayılan olarak kullanıcı bir işaretçiye dokunduğunda bilgi penceresinin içeriğini gösterir. Varsayılan davranışı kullanmak istiyorsanız işaretçi için tıklama dinleyici eklemeniz gerekmez.

Tebrikler! Belirli bir konumu gösteren bir işaretçi içeren bir Google haritası gösteren bir iOS uygulaması oluşturdunuz. Ayrıca iOS için Haritalar SDK'sını nasıl kullanacağınızı da öğrendiniz.

Sonraki adımlar

Harita nesnesi ve işaretçilerle neler yapabileceğiniz hakkında daha fazla bilgi edinin.