Get started
Before you can try the sample code, you must configure your development environment. For more information, see Maps SDK for iOS code samples.
View the code
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
Run the full sample app locally
The Maps SDK for iOS sample app is available as a download archive from GitHub. Follow these steps to install and try the Maps SDK for iOS sample app.
- Run
git clone https://github.com/googlemaps-samples/maps-sdk-for-ios-samples.git
to clone the samples repository into a local directory. Open a terminal window, navigate to the directory where you cloned the sample files, and drill down into the GoogleMaps directory:
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
- In Xcode, press the compile button to
build the app
with the current scheme. The build produces an error, prompting you to enter your API key
in the
SDKConstants.swift
file for Swift orSDKDemoAPIKey.h
file for Objective-C. - If you don't yet have an API key, follow the
instructions to set up
a project on the Google Cloud console and get an API key. When configuring the
key on the Cloud console, you can
restrict the key to the
sample app's bundle identifier to
ensure that only your app can use the key. The default bundle identifier of
the SDK samples app is
com.example.GoogleMapsDemos
. - Edit the
SDKConstants.swift
file for Swift orSDKDemoAPIKey.h
file for Objective-C and paste your API key into the definition of either theapiKey
orkAPIKey
constant. For example:Swift
static let apiKey = "YOUR_API_KEY"
Objective-C
static NSString *const kAPIKey = @"YOUR_API_KEY";
- In the
SDKConstants.swift
file (Swift) orSDKDemoAPIKey.h
file (Objective-C), remove the following line, because it's used to register the user-defined issue:Swift
#error (Register for API Key and insert here. Then delete this line.)
Objective-C
#error Register for API Key and insert here.
- Build and run the project. The iOS simulator window appears, showing a list of Maps SDK Demos.
- Choose one of the options displayed, to experiment with a feature of the Maps SDK for iOS.
- If prompted to allow GoogleMapsDemos to access your location, choose Allow.