İşaretçi içeren bir harita ekleme

Bu eğitimde, iOS uygulamanıza işaretçi içeren bir Google haritasının nasıl ekleneceği gösterilmektedir. 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'ya yerleştirilmiştir.

Sidney üzerinde bir işaretçinin bulunduğu haritayı gösteren ekran görüntüsü

Kodu alın

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

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

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 options = GMSMapViewOptions()
        options.camera = camera
        options.frame = self.view.frame
        let mapView = GMSMapView(options: options)
        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];
  GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
  options.camera = camera;
  options.frame = self.view.frame;
  GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
  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. iOS için Haritalar SDK'sı ile ilgili mevcut bağımlılıkları 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 (Dosya > Paket Bağımlılıkları Ekle) bölümüne gidin.
  6. URL olarak https://github.com/googlemaps/ios-maps-sdk adresini girin, paketi almak için Enter tuşuna basın ve Add Package'ı (Paket Ekle) tıklayın.
  7. Dosya > Paketler > Paket Önbelleğini Sıfırla'yı kullanarak paket önbelleğinizi sıfırlamanız gerekebilir.

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

Bu eğitimi tamamlamak için iOS için Haritalar SDK'sını kullanma yetkisine sahip bir Google API anahtarınız olmalıdı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 dosyanıza aşağıdaki gibi ekleyin:

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

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

  1. Bilgisayarınıza bir iOS cihazı 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 oynat düğmesi simgesini) tıklayın.
    • Xcode, uygulamayı derler 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ındaki Sidney'de ortalanmış bir işaretçinin bulunduğu bir harita görürsünüz.

Sorun Giderme:

  • Harita görmüyorsanız bir API anahtarı aldığınızdan ve bu anahtarı önceden açıklandığı gibi 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 kimliğine göre kısıtladıysanız anahtarı düzenleyerek uygulamanın paket kimliğini ekleyin: com.google.examples.map-with-marker.
  • Kablosuz ağ veya GPS bağlantınızın iyi 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 bunu viewDidLoad() uygulamasında 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 options = GMSMapViewOptions()
    options.camera = camera
    let mapView = GMSMapView(options: options)
    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];
    GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
    options.camera = camera;
    GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
    self.view = mapView;
          
  2. viewDidLoad() uygulamasında 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;
          

Varsayılan olarak, iOS için Haritalar SDK'sı, 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 dinleyicisi eklemeniz gerekmez.

Tebrikler! Belirli bir konumu göstermek için işaretçi içeren bir Google haritası görüntüleyen 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.