Başlayın
Örnek kodu denemeden önce geliştirme ortamınızı yapılandırmanız gerekir. Daha fazla bilgi için iOS için Haritalar SDK'sı kod örnekleri başlıklı makaleyi inceleyin.
Kodu görüntüleme
Swift
import GoogleMaps import UIKit class GestureControlViewController: UIViewController { private let holderHeight: CGFloat = 60 private let zoomLabelInset: CGFloat = 16 private lazy var mapView: GMSMapView = { let camera = GMSCameraPosition(latitude: -25.5605, longitude: 133.605097, zoom: 3) return GMSMapView(frame: .zero, camera: camera) }() private lazy var zoomSwitch: UISwitch = UISwitch(frame: .zero) override func viewDidLoad() { super.viewDidLoad() view.addSubview(mapView) let holder = UIView(frame: .zero) holder.backgroundColor = UIColor(white: 1, alpha: 0.8) view.addSubview(holder) let zoomLabel = UILabel(frame: .zero) zoomLabel.text = "Zoom gestures" zoomLabel.font = .boldSystemFont(ofSize: 18) holder.addSubview(zoomLabel) // Control zooming. holder.addSubview(zoomSwitch) zoomSwitch.addTarget(self, action: #selector(toggleZoom), for: .valueChanged) zoomSwitch.isOn = true [mapView, holder, zoomLabel, zoomSwitch].forEach({ $0.translatesAutoresizingMaskIntoConstraints = false }) NSLayoutConstraint.activate([ mapView.leftAnchor.constraint(equalTo: view.leftAnchor), mapView.rightAnchor.constraint(equalTo: view.rightAnchor), mapView.topAnchor.constraint(equalTo: view.topAnchor), mapView.bottomAnchor.constraint(equalTo: view.bottomAnchor), holder.heightAnchor.constraint(equalToConstant: holderHeight), holder.centerXAnchor.constraint(equalTo: view.centerXAnchor), holder.widthAnchor.constraint(equalTo: view.widthAnchor), zoomLabel.leftAnchor.constraint(equalTo: holder.leftAnchor, constant: zoomLabelInset), zoomLabel.centerYAnchor.constraint(equalTo: holder.centerYAnchor), zoomSwitch.rightAnchor.constraint(equalTo: holder.rightAnchor, constant: -zoomLabelInset), zoomSwitch.centerYAnchor.constraint( equalTo: holder.centerYAnchor), ]) NSLayoutConstraint.activate([ holder.topAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.topAnchor) ]) } @objc func toggleZoom() { mapView.settings.zoomGestures = zoomSwitch.isOn } }
Objective-C
#import "GoogleMapsDemos/Samples/GestureControlViewController.h" #import <GoogleMaps/GoogleMaps.h> @implementation GestureControlViewController { GMSMapView *_mapView; UISwitch *_zoomSwitch; } - (void)viewDidLoad { [super viewDidLoad]; GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-25.5605 longitude:133.605097 zoom:3]; _mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; _mapView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; _mapView.accessibilityIdentifier = @"gestureControlDemoMapView"; self.view = [[UIView alloc] initWithFrame:CGRectZero]; [self.view addSubview:_mapView]; UIView *holder = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 59)]; holder.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin; holder.backgroundColor = [UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:0.8f]; [self.view addSubview:holder]; // Zoom label. UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(16, 16, 200, 29)]; label.text = @"Zooming?"; label.font = [UIFont boldSystemFontOfSize:18.0f]; label.textAlignment = NSTextAlignmentLeft; label.backgroundColor = [UIColor clearColor]; label.layer.shadowColor = [[UIColor whiteColor] CGColor]; label.layer.shadowOffset = CGSizeMake(0.0f, 1.0f); label.layer.shadowOpacity = 1.0f; label.layer.shadowRadius = 0.0f; [holder addSubview:label]; // Control zooming. _zoomSwitch = [[UISwitch alloc] initWithFrame:CGRectMake(-90, 16, 0, 0)]; _zoomSwitch.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin; [_zoomSwitch addTarget:self action:@selector(didChangeZoomSwitch) forControlEvents:UIControlEventValueChanged]; _zoomSwitch.on = YES; [holder addSubview:_zoomSwitch]; } - (void)didChangeZoomSwitch { _mapView.settings.zoomGestures = _zoomSwitch.isOn; } @end
Örnek uygulamanın tamamını yerel olarak çalıştırma
iOS için Haritalar SDK'sı örnek uygulamasını GitHub'dan indirme arşivi olarak indirebilirsiniz. iOS için Haritalar SDK'sı örnek uygulamasını yükleyip denemek üzere aşağıdaki adımları uygulayın.
- Örnek deposunu yerel bir dizine klonlamak için
git clone https://github.com/googlemaps-samples/maps-sdk-for-ios-samples.git
çalıştırın. Bir terminal penceresi açın, örnek dosyaların klonlandığı dizine gidin ve GoogleMaps dizinine gidin:
Swift
cd maps-sdk-for-ios-samples-main/GoogleMaps-Swift
pod install
open GoogleMapsSwiftDemos.xcworkspace
Objective-C
cd maps-sdk-for-ios-samples-main/GoogleMaps
pod install
open GoogleMapsDemos.xcworkspace
- Mevcut şema ile uygulamayı derlemek için Xcode'da derle düğmesine basın. Derleme işlemi, API anahtarınızı Swift için
SDKConstants.swift
dosyasına veya Objective-C içinSDKDemoAPIKey.h
dosyasına girmenizi isteyen bir hata oluşturuyor. - Henüz API anahtarınız yoksa Google Cloud Console'da proje oluşturmak ve API anahtarı almak için talimatları uygulayın. Cloud Console'da anahtarı yapılandırırken, anahtarın yalnızca uygulamanızın kullanabilmesini sağlamak için anahtarı örnek uygulamanın paket kimliğiyle sınırlandırabilirsiniz. SDK örnekleri uygulamasının varsayılan paket tanımlayıcısı
com.example.GoogleMapsDemos
'tür. - Swift için
SDKConstants.swift
dosyasını veya Objective-C içinSDKDemoAPIKey.h
dosyasını düzenleyin ve API anahtarınızıapiKey
veyakAPIKey
sabitinin tanımına yapıştırın. Örneğin:Swift
static let apiKey = "YOUR_API_KEY"
Objective-C
static NSString *const kAPIKey = @"YOUR_API_KEY";
- Kullanıcı tanımlı sorunu kaydetmek için kullanılan şu satırı
SDKConstants.swift
dosyasından (Swift) veyaSDKDemoAPIKey.h
dosyasından (Objective-C) kaldırın:Swift
#error (Register for API Key and insert here. Then delete this line.)
Objective-C
#error Register for API Key and insert here.
- Projeyi derleyip çalıştırın. Haritalar SDK'sı Demoları'nın listesini gösteren iOS simülasyon penceresi görünür.
- iOS için Haritalar SDK'sının bir özelliğini denemek üzere görüntülenen seçeneklerden birini belirleyin.
- GoogleMapsDemos'un konumunuza erişmesine izin vermeniz istenirse İzin ver'i seçin.