Primeiros passos
Antes de testar o exemplo de código, é necessário configurar o ambiente de desenvolvimento. Confira mais detalhes em Exemplos de código do SDK do Maps para iOS.
Ver o código
Swift
import GoogleMaps import UIKit // Sample code for adding a marker. class MarkersViewController: UIViewController { private lazy var sydneyMarker = GMSMarker( position: CLLocationCoordinate2D(latitude: -33.8683, longitude: 151.2086)) private lazy var melbourneMarker = GMSMarker( position: CLLocationCoordinate2D(latitude: -37.81969, longitude: 144.966085)) private lazy var mapView: GMSMapView = { let camera = GMSCameraPosition(latitude: -37.81969, longitude: 144.966085, zoom: 4) return GMSMapView(frame: .zero, camera: camera) }() override func loadView() { view = mapView sydneyMarker.title = "Sydney" sydneyMarker.snippet = "Population: 4,605,992" sydneyMarker.isFlat = false sydneyMarker.rotation = 30 print("sydneyMarker: \(sydneyMarker)") let australiaMarker = GMSMarker( position: CLLocationCoordinate2D(latitude: -27.994401, longitude: 140.07019)) australiaMarker.title = "Australia" australiaMarker.appearAnimation = .pop australiaMarker.isFlat = true australiaMarker.isDraggable = true australiaMarker.groundAnchor = CGPoint(x: 0.5, y: 0.5) australiaMarker.icon = UIImage(named: "australia") australiaMarker.map = mapView mapView.selectedMarker = sydneyMarker navigationItem.rightBarButtonItem = UIBarButtonItem( barButtonSystemItem: .add, target: self, action: #selector(tapAdd)) } @objc func tapAdd() { if sydneyMarker.map == nil { sydneyMarker.map = mapView } else { sydneyMarker.map = nil } melbourneMarker.title = "Melbourne" melbourneMarker.snippet = "Population: 4,169,103" melbourneMarker.map = mapView } }
Objective-C
#import "GoogleMapsDemos/Samples/MarkersViewController.h" #import <GoogleMaps/GoogleMaps.h> @implementation MarkersViewController { GMSMarker *_sydneyMarker; GMSMarker *_melbourneMarker; GMSMarker *_fadeInMarker; } - (void)viewDidLoad { [super viewDidLoad]; GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-37.81969 longitude:144.966085 zoom:4]; GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; _sydneyMarker = [[GMSMarker alloc] init]; _sydneyMarker.title = @"Sydney"; _sydneyMarker.snippet = @"Population: 4,605,992"; _sydneyMarker.position = CLLocationCoordinate2DMake(-33.8683, 151.2086); _sydneyMarker.flat = NO; _sydneyMarker.rotation = 30.0; NSLog(@"sydneyMarker: %@", _sydneyMarker); GMSMarker *australiaMarker = [[GMSMarker alloc] init]; australiaMarker.title = @"Australia"; australiaMarker.position = CLLocationCoordinate2DMake(-27.994401, 140.07019); australiaMarker.appearAnimation = kGMSMarkerAnimationPop; australiaMarker.flat = YES; australiaMarker.draggable = YES; australiaMarker.groundAnchor = CGPointMake(0.5, 0.5); australiaMarker.icon = [UIImage imageNamed:@"australia"]; australiaMarker.map = mapView; _fadeInMarker = [[GMSMarker alloc] init]; _fadeInMarker.title = @"Australia"; _fadeInMarker.position = CLLocationCoordinate2DMake(-29.9959, 145.0719); _fadeInMarker.appearAnimation = kGMSMarkerAnimationFadeIn; _fadeInMarker.icon = [UIImage imageNamed:@"australia"]; // Set the marker in Sydney to be selected mapView.selectedMarker = _sydneyMarker; self.view = mapView; self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(didTapAdd)]; } - (void)didTapAdd { if (_sydneyMarker.map == nil) { _sydneyMarker.map = (GMSMapView *)self.view; } else { _sydneyMarker.map = nil; } _melbourneMarker.map = nil; _melbourneMarker = [[GMSMarker alloc] init]; _melbourneMarker.title = @"Melbourne"; _melbourneMarker.snippet = @"Population: 4,169,103"; _melbourneMarker.position = CLLocationCoordinate2DMake(-37.81969, 144.966085); _melbourneMarker.map = (GMSMapView *)self.view; if (_fadeInMarker.map) { _fadeInMarker.map = nil; } else { _fadeInMarker.map = (GMSMapView *)self.view; } } @end
Executar o app de exemplo completo localmente
O app de exemplo do SDK do Maps para iOS está disponível como um arquivo de download no GitHub (em inglês). Siga estas etapas para instalar e testar o app de exemplo do SDK do Maps para iOS.
- Execute
git clone https://github.com/googlemaps-samples/maps-sdk-for-ios-samples.git
para clonar o repositório de amostras em um diretório local. Abra uma janela de terminal, navegue até o diretório em que você clonou os arquivos de amostra e navegue até o diretório GoogleMaps:
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
- No Xcode, pressione o botão de compilação para
criar o app
com o esquema atual. O build produz um erro, solicitando a inserção da chave de API
no arquivo
SDKConstants.swift
para Swift ouSDKDemoAPIKey.h
para Objective-C. - Se você ainda não tiver uma chave de API, siga as
instruções para configurar
um projeto no console do Google Cloud e receber uma chave de API. Ao configurar a
chave no Cloud Console, é possível
restringir a chave ao
identificador de pacote do app de exemplo para
garantir que somente seu app possa usá-la. O identificador de pacote padrão do
aplicativo de exemplo do SDK é
com.example.GoogleMapsDemos
. - Edite o arquivo
SDKConstants.swift
para Swift ouSDKDemoAPIKey.h
para Objective-C e cole sua chave de API na definição da constanteapiKey
oukAPIKey
. Exemplo:Swift
static let apiKey = "YOUR_API_KEY"
Objective-C
static NSString *const kAPIKey = @"YOUR_API_KEY";
- No arquivo
SDKConstants.swift
(Swift) ouSDKDemoAPIKey.h
(Objective-C), remova a linha a seguir, porque ela é usada para registrar o problema definido pelo usuário:Swift
#error (Register for API Key and insert here. Then delete this line.)
Objective-C
#error Register for API Key and insert here.
- Compile e execute o projeto. A janela do simulador do iOS vai aparecer, mostrando uma lista de demonstrações do SDK do Maps.
- Escolha uma das opções exibidas para experimentar um recurso do SDK do Maps para iOS.
- Se você receber uma solicitação para permitir que o GoogleMapsDemos acesse sua localização, selecione Permitir.