İşaretçi İçeren Harita Ekleyin
Bu eğitim, iOS uygulamanıza işaretçi içeren basit bir Google haritasını nasıl ekleyeceğinizi gösterir. Bu eğitim, genel Xcode bilgisinin yanı sıra başlangıç ya da orta düzey Swift veya Objective-C bilgisine 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, Avustralya'nın Sidney şehrinde.
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:
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 kullanılarak yüklenebilir.
- iOS bağımlılıkları için mevcut tüm Haritalar SDK'sını kaldırdığınızdan emin olun.
- Bir terminal penceresi açıp
tutorials/map-with-marker
dizinine gidin. -
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
- Xcode projenizi açın ve kapsül dosyasını silin.
- Dosya > Paket Bağımlılıkları Ekle'ye gidin.
- URL olarak https://github.com/googlemaps/ios-maps-sdk adresini girin, paketi almak için Enter'a basın ve Paket Ekle'yi tıklayın.
- Dosya > Paketler > Paket Önbelleğini Sıfırla'yı kullanarak paketinizin önbelleğini sıfırlamanız gerekebilir.
CocoaPods'u kullanma
- Xcode 15.0 sürümünü veya sonraki bir sürümü indirip yükleyin.
- CocoaPods'unuz yoksa terminalde aşağıdaki komutu çalıştırarak macOS'e yükleyin:
sudo gem install cocoapods
tutorials/map-with-marker
dizinine gidin.pod install
komutunu çalıştırın. Bu işlem,Podfile
içinde belirtilen Haritalar SDK'sını ve bağımlılıklarını yükler.- 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 algılanırsaPodfile
uygulamasını güncellemek ve en son SDK'yı yüklemek içinpod update
komutunu çalıştırın. Daha ayrıntılı bilgi için CocoaPods Kılavuzu'nu inceleyin. - Projeyi 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.
API anahtarı alın ve gerekli API'leri etkinleştirin
Bu eğiticiyi tamamlamak üzere, iOS için Haritalar SDK'sını kullanma yetkisi olan 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ınDaha 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:
- Şu içe aktarma ifadesinin dosyaya eklendiğini unutmayın:
import GoogleMaps
- YOUR_API_KEY ifadesini API anahtarınızla değiştirerek
application(_:didFinishLaunchingWithOptions:)
yönteminizde aşağıdaki satırı düzenleyin:GMSServices.provideAPIKey("YOUR_API_KEY")
Uygulamanızı derleyip çalıştırma
- Bir iOS cihazı bilgisayarınıza bağlayın veya Xcode şema menüsünden bir simülatör seçin.
- 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.
- Xcode'da Ürün/Çalıştır menü seçeneğini (veya oynat 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'in ortasında bir işaretçinin olduğu bir harita göreceksiniz.
Sorun giderme:
- Harita görmüyorsanız önceden 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 konsolunu kontrol edin.
- API anahtarını iOS paket tanımlayıcısıyla 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
- Bir harita oluşturun ve
viewDidLoad()
içindeki 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;
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;
iOS için Haritalar SDK'sı varsayılan olarak, 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ını görüntüleyen bir iOS uygulaması oluşturdunuz. Ayrıca iOS için Haritalar SDK'sının nasıl kullanılacağını da öğrendiniz.
Sonraki adımlar
Harita nesnesi ve işaretçiler ile neler yapabileceğiniz hakkında daha fazla bilgi edinin.