İşaretçisi Olan Harita Ekleme

Bu eğiticide, iOS uygulamanıza işaretçi içeren basit bir Google haritasını nasıl ekleyeceğiniz gösterilmektedir. Harita, Swift veya Objective-C konusunda başlangıç veya orta düzeyde bilgi sahibi ve Xcode hakkında genel bilgiye sahip kullanıcılar için uygundur. Harita oluşturmayla ilgili ileri düzey bir kılavuz için geliştirici kılavuzunu okuyun.

Bu eğiticiyi kullanarak aşağıdaki haritayı oluşturacaksınız. İşaretçi Sidney, Avustralya'da konumlandırılır.

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

Kodu alın

GitHub'da Google Haritalar iOS örnek deposunu klonlayın veya indirin.

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

Kodu bana ver

Swift

/*
 * Copyright 2020 Google Inc. All rights reserved.
 *
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
 * file except in compliance with the License. You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
 * ANY KIND, either express or implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */

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

/*
* Copyright 2020 Google Inc. All rights reserved.
*
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
* file except in compliance with the License. You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
* ANY KIND, either express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/

#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 Paket Yöneticisi

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

  1. iOS bağımlılıkları için mevcut tüm Haritalar SDK'sını kaldırdığınızdan emin olun.
  2. Bir terminal penceresi açıp tutorials/mapwithmarker 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 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ğini sıfırlamanız gerekebilir.

CocoaPods kullanma

  1. Xcode 14.0 veya sonraki bir sürümü indirip yükleyin.
  2. Cihazınızda CocoaPods 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, tüm bağımlılıklarla birlikte Podfile içinde belirtilen Haritalar SDK'sını yükler.
  5. Yüklü kapsül sürümünü tüm yeni güncellemelerle karşılaştırmak için pod outdated komutunu çalıştırın. Yeni bir sürüm algılanırsa Podfile uygulamasını güncellemek ve en son SDK'yı yüklemek için pod update komutunu çalıştırın. Daha fazla bilgi için CocoaPods Kılavuzu'na göz atın.
  6. Xcode'da açmak için projenin map-with-marker.xcworkspace dosyasını açın (çift tıklayın). Projeyi açmak için .xcworkspace dosyasını kullanmanız gerekir.

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

Bu eğiticiyi tamamlamak üzere, iOS için Haritalar SDK'sını kullanmak üzere yetkilendirilmiş bir Google API anahtarına ihtiyacınız vardır. Bir 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 bölümüne bakın.

API anahtarını uygulamanıza ekleyin

API anahtarınızı AppDelegate.swift cihazınıza aşağıdaki şekilde ekleyin:

  1. Dosyaya aşağıdaki içe aktarma ifadesinin eklendiğini unutmayın:
    import GoogleMaps
  2. Aşağıdaki satırı application(_:didFinishLaunchingWithOptions:) yönteminizde 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. Bilgisayarınıza bir iOS cihaz bağlayın veya Xcode şema menüsünden bir simülatör seçin.
  2. Bir cihaz kullanıyorsanız konum hizmetlerinin etkinleştirildiğinden emin olun. Simülasyon aracı kullanıyorsanız Özellikler menüsünden bir konum seçin.
  3. Xcode'da Product/Run menü seçeneğini (veya oynat düğmesi simgesini) tıklayın.
    • Xcode, uygulamayı oluşturur ve sonra cihazda veya simülatörde çalıştırır.
    • Bu sayfadaki görsele benzer şekilde, Avustralya'nın doğu yakasında Sidney merkezli bir işaretçi bulunan bir harita göreceksiniz.

Sorun giderme:

  • Harita görmüyorsanız daha önce açıklandığı gibi bir API anahtarı edinip uygulamaya eklediğinizden emin olun. API anahtarıyla ilgili hata mesajları için Xcode'un hata ayıklama konsolunda 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.
  • Kablosuz 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 onu viewDidLoad() ürününde 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() bölgesindeki 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;
          

Varsayılan olarak iOS için Haritalar SDK'sı, kullanıcı bir işaretçiye dokunduğunda bilgi penceresinin içeriğini görüntüler. Varsayılan davranışı kullanmaktan memnunsanız işaretçi için bir tıklama işleyici eklemenize gerek yoktur.

Tebrikler! Belirli bir konumu belirten işaretçiyle Google haritası görüntüleyen bir iOS uygulaması geliştirdiniz. Ayrıca iOS için Haritalar SDK'sının nasıl kullanıldığını da öğrendiniz.

Sonraki adımlar

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