
Mulai
Anda harus mengonfigurasi lingkungan pengembangan Anda sebelum dapat mencoba kode contoh. Untuk mengetahui informasi selengkapnya, lihat Contoh kode Maps SDK for iOS.
Melihat kode
Swift
import GoogleMaps import UIKit class MyLocationViewController: UIViewController { private let cameraLatitude: CLLocationDegrees = -33.868 private let cameraLongitude: CLLocationDegrees = 151.2086 private let cameraZoom: Float = 12 lazy var mapView: GMSMapView = { let camera = GMSCameraPosition( latitude: cameraLatitude, longitude: cameraLongitude, zoom: cameraZoom) return GMSMapView(frame: .zero, camera: camera) }() var observation: NSKeyValueObservation? var location: CLLocation? { didSet { guard oldValue == nil, let firstLocation = location else { return } mapView.camera = GMSCameraPosition(target: firstLocation.coordinate, zoom: 14) } } override func viewDidLoad() { super.viewDidLoad() mapView.delegate = self mapView.settings.compassButton = true mapView.settings.myLocationButton = true mapView.isMyLocationEnabled = true view = mapView // Listen to the myLocation property of GMSMapView. observation = mapView.observe(\.myLocation, options: [.new]) { [weak self] mapView, _ in self?.location = mapView.myLocation } } deinit { observation?.invalidate() } } extension MyLocationViewController: GMSMapViewDelegate { func mapView(_ mapView: GMSMapView, didTapMyLocation location: CLLocationCoordinate2D) { let alert = UIAlertController( title: "Location Tapped", message: "Current location: <\(location.latitude), \(location.longitude)>", preferredStyle: .alert) alert.addAction(UIAlertAction(title: "OK", style: .default)) present(alert, animated: true) } }
Objective-C
#import "GoogleMapsDemos/Samples/MyLocationViewController.h" #import <GoogleMaps/GoogleMaps.h> @implementation MyLocationViewController { GMSMapView *_mapView; BOOL _firstLocationUpdate; } - (void)viewDidLoad { [super viewDidLoad]; GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.868 longitude:151.2086 zoom:12]; _mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; _mapView.delegate = self; _mapView.settings.compassButton = YES; _mapView.settings.myLocationButton = YES; // Listen to the myLocation property of GMSMapView. [_mapView addObserver:self forKeyPath:@"myLocation" options:NSKeyValueObservingOptionNew context:NULL]; self.view = _mapView; // Ask for My Location data after the map has already been added to the UI. GMSMapView *mapView = _mapView; dispatch_async(dispatch_get_main_queue(), ^{ mapView.myLocationEnabled = YES; }); } - (void)mapView:(GMSMapView *)mapView didTapMyLocation:(CLLocationCoordinate2D)location { NSString *message = [NSString stringWithFormat:@"My Location Dot Tapped at: [lat: %f, lng: %f]", location.latitude, location.longitude]; UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Location Tapped" message:message preferredStyle:UIAlertControllerStyleAlert]; UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action){ }]; [alertController addAction:okAction]; [self presentViewController:alertController animated:YES completion:nil]; } - (void)dealloc { [_mapView removeObserver:self forKeyPath:@"myLocation" context:NULL]; } #pragma mark - KVO updates - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { if (!_firstLocationUpdate) { // If the first location update has not yet been received, then jump to that location. _firstLocationUpdate = YES; CLLocation *location = [change objectForKey:NSKeyValueChangeNewKey]; _mapView.camera = [GMSCameraPosition cameraWithTarget:location.coordinate zoom:14]; } } @end
Menjalankan aplikasi contoh lengkap secara lokal
Aplikasi contoh Maps SDK for iOS tersedia sebagai arsip download dari GitHub. Ikuti langkah-langkah berikut untuk menginstal dan mencoba aplikasi contoh Maps SDK for iOS.
- Jalankan
git clone https://github.com/googlemaps-samples/maps-sdk-for-ios-samples.gituntuk meng-clone repositori contoh ke direktori lokal. Buka jendela terminal, buka direktori tempat Anda meng-clone file sampel, dan buka direktori GoogleMaps:
Swift
cd maps-sdk-for-ios-samples/GoogleMaps-Swift
open GoogleMapsSwiftXCFrameworkDemos.xcodeprojObjective-C
cd maps-sdk-for-ios-samples-main/GoogleMaps
open GoogleMapsDemos.xcodeproj- Di project Xcode, buka File > Add Package Dependencies.
Masukkan
https://github.com/googlemaps/ios-maps-sdksebagai URL, tekan Enter untuk menarik paket, lalu klik Tambahkan Paket. - Di Xcode, tekan tombol kompilasi untuk
membangun aplikasi
dengan skema saat ini. Build menghasilkan error, yang meminta Anda memasukkan kunci API
dalam file
SDKConstants.swiftuntuk Swift atau fileSDKDemoAPIKey.huntuk Objective-C. - Dapatkan kunci API dari project Anda dengan Maps SDK for iOS diaktifkan.
- Edit file
SDKConstants.swiftuntuk Swift atau fileSDKDemoAPIKey.huntuk Objective-C, lalu tempel kunci API Anda ke dalam definisi konstantaapiKeyataukAPIKey. Contoh:Swift
static let apiKey = "YOUR_API_KEY"Objective-C
static NSString *const kAPIKey = @"YOUR_API_KEY";
- Dalam file
SDKConstants.swift(Swift) atauSDKDemoAPIKey.h(Objective-C), hapus baris berikut, karena digunakan untuk mendaftarkan masalah yang ditentukan pengguna:Swift
#error (Register for API Key and insert here. Then delete this line.)
Objective-C
#error Register for API Key and insert here.
- Bangun dan jalankan proyek. Jendela simulator iOS akan muncul, menampilkan daftar Demo Maps SDK.
- Pilih salah satu opsi yang ditampilkan untuk bereksperimen dengan fitur Maps SDK for iOS.
- Jika diminta untuk mengizinkan GoogleMapsDemos mengakses lokasi Anda, pilih Izinkan.