Anda sudah siap!

Untuk mulai mengembangkan, masuklah ke dokumentasi developer kami.

Aktifkan Google Places API for iOS

Untuk membantu Anda memulai, kami akan memandu Anda melalui Google Developers Console untuk melakukan beberapa hal terlebih dahulu:

  1. Buat atau pilih sebuah proyek
  2. Aktifkan Google Places API for iOS
  3. Buat kunci yang sesuai
Lanjutkan

Memulai Places API for iOS

Ikuti langkah-langkah dalam panduan ini untuk mengunduh Google Places API for iOS, menambahkan pustaka dan dependensi ke aplikasi Anda, dan mendapatkan kunci API gratis.

Catatan rilis tersedia untuk setiap rilis.

Langkah 1: Dapatkan Xcode versi terbaru

Untuk membangun proyek menggunakan Google Places API for iOS, Anda memerlukan versi 7.3 atau Xcode yang lebih baru.

Langkah 2: Pasang API

Gunakan Cocoapods

Google Places API for iOS Tersedia sebagai dua pod CocoaPod. Yang pertama dari pod ini, GooglePlaces, berisi semua fungsionalitas tempat yang tidak memerlukan peta (API terprogram dan widget UI pelengkapan otomatis), sementara GooglePlacePicker adalah pod terpisah yang berisi widget untuk menelusuri dan memilih tempat dari peta.

CocoaPods merupakan pengelola dependensi sumber terbuka untuk proyek Swift dan Objective-C Cocoa. Jika Anda belum memiliki alat (bantu) CocoaPods, pasang di macOS dengan menjalankan perintah berikut dari terminal. Untuk detailnya, lihat Panduan Memulai CocoaPods.

sudo gem install cocoapods

Buat Podfile untuk Google Places API for iOS dan gunakan untuk memasang API serta dependensinya:

  1. Jika Anda belum memiliki proyek Xcode, buatlah sekarang dan simpan ke mesin lokal Anda. (Jika Anda masih baru dengan development iOS, buat Single View Application.)
  2. Buat file bernama Podfile dalam direktori proyek Anda. File ini mendefinisikan dependensi proyek Anda.
  3. Edit Podfile dan tambahkan dependensi Anda. Berikut ini adalah contoh yang menetapkan nama target aplikasi Anda, dan nama pod yang datang bersama Places API for iOS (GooglePlacePicker dan GoogleMaps hanya diperlukan jika Anda menggunakan contoh place picker):
    source 'https://github.com/CocoaPods/Specs.git'
    target 'YOUR_APPLICATION_TARGET_NAME_HERE' do
      pod 'GooglePlaces'
      pod 'GooglePlacePicker'
      pod 'GoogleMaps'
    end
  4. Simpan Podfile.
  5. Buka terminal dan masuklah ke direktori berisi Podfile:

    cd <path-to-project>
  6. Jalankan perintah pod install. Ini akan memasang API yang ditetapkan dalam Podfile, beserta dependensi yang mungkin dimilikinya.

    pod install
  7. Tutup Xcode, kemudian buka (klik dua kali) file proyek .xcworkspace Anda untuk menjalankan Xcode. Untuk seterusnya, Anda harus menggunakan file .xcworkspace untuk membuka proyek.

Pasang secara manual

Panduan ini menampilkan cara menambahkan framework GooglePlaces secara manual ke proyek Anda dan mengonfigurasi setelan pembangunan di Xcode.

  1. Unduh file sumber SDK:

    GooglePlacePicker-2.0.1 hanya diperlukan jika Anda menggunakan place picker.

  2. Mekarkan file sumber.
  3. Luncurkan Xcode dan buka proyek yang ada, atau buat proyek baru. Jika Anda masih baru dengan iOS, buat Single View Application, dan nonaktifkan Use Storyboards serta aktifkan Use Automatic Reference Counting.
  4. Buang semua bundel Maps rilis sebelumnya dari proyek Anda.
  5. Seret bundel berikut ke dalam proyek Anda (bila ditanya, pilih Copy items if needed):
    • GooglePlaces-2.0.1/Frameworks/GooglePlaces.framework
    • GoogleMaps-2.0.1/Subspecs/Base/Frameworks/GoogleMapsBase.framework

    Jika menggunakan place picker, seret bundel berikut ke dalam proyek Anda (selain bundel sebelumnya yang telah terdaftar):

    • GooglePlacePicker-2.0.1/Frameworks/GooglePlacePicker.framework
    • GoogleMaps-2.0.1/Subspecs/Maps/Frameworks/GoogleMapsCore.framework
    • GoogleMaps-2.0.1/Subspecs/Maps/Frameworks/GoogleMaps.framework
  6. Klik-kanan GooglePlaces.framework di proyek Anda, dan pilih Show In Finder.
  7. Seret GooglePlaces.bundle dari folder Resources ke dalam proyek Anda. Bila dikonfirmasi, pastikan Copy items into destination group's folder tidak dipilih.
  8. Jika Anda menggunakan place picker, ulangi langkah sebelumnya dan seret file GoogleMaps.bundle dan GooglePlacePicker.bundle ke dalam proyek Anda. Ini bisa ditemukan di GoogleMaps.framework dan GooglePlacePicker.framework.
  9. Pilih proyek Anda dari Project Navigator, dan pilih sasaran aplikasi Anda.
  10. Buka tab Build Phases, dan dalam Link Binary with Libraries, tambahkan kerangka kerja berikut:
    • GooglePlaces.framework
    • GoogleMapsBase.framework
    • GooglePlacePicker.framework (hanya jika menggunakan place picker)
    • GoogleMapsCore.framework (hanya jika menggunakan place picker)
    • GoogleMaps.framework (hanya jika menggunakan place picker)
    • Accelerate.framework
    • CoreData.framework
    • CoreGraphics.framework
    • CoreLocation.framework
    • CoreText.framework
    • GLKit.framework
    • ImageIO.framework
    • libc++.tbd
    • libz.tbd
    • OpenGLES.framework
    • QuartzCore.framework
    • SystemConfiguration.framework
    • UIKit.framework
  11. Pilih proyek Anda, bukan target tertentu, dan buka tab Build Settings.

  12. Di bagian Other Linker Flags, tambahkan -ObjC. Jika setelan ini tidak terlihat, ubah filter di bilah Build Settings dari Basic menjadi All.

Langkah 3: Dapatkan kunci API

Untuk memulai penggunaan Google Places API for iOS, klik tombol di bawah ini yang akan memandu Anda menjalani proses mengaktifkan Google Places API for iOS dan mendapatkan kunci API.

Dapatkan Kunci

Alternatifnya, ikuti langkah-langkah ini untuk mendapatkan kunci API:

  1. Masuklah ke Google API Console.
  2. Buat atau pilih sebuah proyek.
  3. Klik Continue untuk mengaktifkan Google Places API for iOS.
  4. Pada laman Credentials, dapatkan kunci API.
    Catatan: Jika Anda memiliki kunci dengan pembatasan iOS, Anda boleh menggunakan kunci itu. Anda bisa menggunakan kunci yang sama dengan salah satu aplikasi iOS Anda dalam proyek yang sama.
  5. Dari dialog yang menampilkan kunci API, pilih Restrict key untuk menyetel pembatasan iOS atas kunci API.
  6. Di bagian Restrictions, pilih iOS apps, kemudian masukkan identifier bundel aplikasi Anda. Misalnya: com.example.helloplaces.
  7. Klik Save.

    Kunci iOS Anda yang baru akan muncul dalam daftar kunci API untuk proyek Anda. Kunci API adalah string karakter, seperti ini:

    AIzaSyBdVl-cTICSwYKrZ95SuvNw7dbMuDt1KG0

Anda juga bisa mencari kunci yang sudah ada di Google API Console.

Untuk informasi selengkapnya mengenai penggunaan Google API Console, lihat Bantuan API Console.

Langkah 4: Tambahkan kunci API ke aplikasi Anda

Contoh kode berikut menunjukkan cara menambahkan kunci API ke sebuah aplikasi.

Swift

Tambahkan kunci API Anda ke AppDelegate.swift seperti berikut:

  • Tambahkan pernyataan import berikut:
    import GooglePlaces
  • Tambahkan yang berikut ini ke metode application(_:didFinishLaunchingWithOptions:) Anda, mengganti YOUR_API_KEY dengan kunci API Anda:
    GMSPlacesClient.provideAPIKey("YOUR_API_KEY")
Objective-C

Tambahkan kunci API Anda ke AppDelegate.m sebagai berikut:

  • Tambahkan pernyataan import berikut:
    @import GooglePlaces;
  • Tambahkan yang berikut ini ke metode application:didFinishLaunchingWithOptions: Anda, dengan mengganti YOUR_API_KEY dengan kunci API Anda:
    [GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];

Langkah 5: Mulai menulis kode

Contoh kode berikut menunjukkan cara mendapatkan tempat saat ini, dan menambahkan widget UI place picker ke aplikasi Anda.

Mendapatkan tempat sekarang

Swift

import UIKit
import GooglePlaces

class ViewController: UIViewController {

  var placesClient: GMSPlacesClient!

  // Add a pair of UILabels in Interface Builder, and connect the outlets to these variables.
  @IBOutlet var nameLabel: UILabel!
  @IBOutlet var addressLabel: UILabel!

  override func viewDidLoad() {
    super.viewDidLoad()
    placesClient = GMSPlacesClient.shared()
  }

  // Add a UIButton in Interface Builder, and connect the action to this function.
  @IBAction func getCurrentPlace(_ sender: UIButton) {

    placesClient.currentPlace(callback: { (placeLikelihoodList, error) -> Void in
      if let error = error {
        print("Pick Place error: \(error.localizedDescription)")
        return
      }

      self.nameLabel.text = "No current place"
      self.addressLabel.text = ""

      if let placeLikelihoodList = placeLikelihoodList {
        let place = placeLikelihoodList.likelihoods.first?.place
        if let place = place {
          self.nameLabel.text = place.name
          self.addressLabel.text = place.formattedAddress?.components(separatedBy: ", ")
            .joined(separator: "\n")
        }
      }
    })
  }
}

Objective-C

#import "ViewController.h"
@import GooglePlaces;

@interface ViewController ()
// Add a pair of UILabels in Interface Builder, and connect the outlets to these variables.
@property (weak, nonatomic) IBOutlet UILabel *nameLabel;
@property (weak, nonatomic) IBOutlet UILabel *addressLabel;
@end

@implementation ViewController {
  GMSPlacesClient *_placesClient;
}

- (void)viewDidLoad {
  [super viewDidLoad];
  _placesClient = [GMSPlacesClient sharedClient];
}

// Add a UIButton in Interface Builder, and connect the action to this function.
- (IBAction)getCurrentPlace:(UIButton *)sender {
  [_placesClient currentPlaceWithCallback:^(GMSPlaceLikelihoodList *placeLikelihoodList, NSError *error){
    if (error != nil) {
      NSLog(@"Pick Place error %@", [error localizedDescription]);
      return;
    }

    self.nameLabel.text = @"No current place";
    self.addressLabel.text = @"";

    if (placeLikelihoodList != nil) {
      GMSPlace *place = [[[placeLikelihoodList likelihoods] firstObject] place];
      if (place != nil) {
        self.nameLabel.text = place.name;
        self.addressLabel.text = [[place.formattedAddress componentsSeparatedByString:@", "]
                                  componentsJoinedByString:@"\n"];
      }
    }
  }];
}
@end

Menambahkan place-picker

Aplikasi demo SDK yang disertakan bersama Google Places API for iOS menyertakan aplikasi contoh untuk widget UI place-picker. Untuk memasang demo place picker, gunakan perintah pod try GooglePlacePicker. Untuk detail selengkapnya, lihat panduan untuk contoh kode.

Inilah contoh pengantar cepat untuk membuat place-picker.

Swift

import UIKit
import GooglePlacePicker

class ViewController: UIViewController {

  // Add a pair of UILabels in Interface Builder, and connect the outlets to these variables.
  @IBOutlet var nameLabel: UILabel!
  @IBOutlet var addressLabel: UILabel!

  // Add a UIButton in Interface Builder, and connect the action to this function.
  @IBAction func pickPlace(_ sender: UIButton) {
    let center = CLLocationCoordinate2D(latitude: 37.788204, longitude: -122.411937)
    let northEast = CLLocationCoordinate2D(latitude: center.latitude + 0.001, longitude: center.longitude + 0.001)
    let southWest = CLLocationCoordinate2D(latitude: center.latitude - 0.001, longitude: center.longitude - 0.001)
    let viewport = GMSCoordinateBounds(coordinate: northEast, coordinate: southWest)
    let config = GMSPlacePickerConfig(viewport: viewport)
    let placePicker = GMSPlacePicker(config: config)

    placePicker.pickPlace(callback: {(place, error) -> Void in
      if let error = error {
        print("Pick Place error: \(error.localizedDescription)")
        return
      }

      if let place = place {
        self.nameLabel.text = place.name
        self.addressLabel.text = place.formattedAddress?.components(separatedBy: ", ")
          .joined(separator: "\n")
      } else {
        self.nameLabel.text = "No place selected"
        self.addressLabel.text = ""
      }
    })
  }
}
    

Objective-C

#import "ViewController.h"
@import GooglePlacePicker;

@interface ViewController ()
// Add a pair of UILabels in Interface Builder, and connect the outlets to these variables.
@property (weak, nonatomic) IBOutlet UILabel *nameLabel;
@property (weak, nonatomic) IBOutlet UILabel *addressLabel;
@end

@implementation ViewController {
  GMSPlacePicker *_placePicker;
}

// Add a UIButton in Interface Builder, and connect the action to this function.
- (IBAction)pickPlace:(UIButton *)sender {

  CLLocationCoordinate2D center = CLLocationCoordinate2DMake(37.788204, -122.411937);
  CLLocationCoordinate2D northEast = CLLocationCoordinate2DMake(center.latitude + 0.001,
                                                                center.longitude + 0.001);
  CLLocationCoordinate2D southWest = CLLocationCoordinate2DMake(center.latitude - 0.001,
                                                                center.longitude - 0.001);
  GMSCoordinateBounds *viewport = [[GMSCoordinateBounds alloc] initWithCoordinate:northEast
                                                                       coordinate:southWest];
  GMSPlacePickerConfig *config = [[GMSPlacePickerConfig alloc] initWithViewport:viewport];
  _placePicker = [[GMSPlacePicker alloc] initWithConfig:config];

  [_placePicker pickPlaceWithCallback:^(GMSPlace *place, NSError *error) {
    if (error != nil) {
      NSLog(@"Pick Place error %@", [error localizedDescription]);
      return;
    }

    if (place != nil) {
      self.nameLabel.text = place.name;
      self.addressLabel.text = [[place.formattedAddress
                                 componentsSeparatedByString:@", "] componentsJoinedByString:@"\n"];
    } else {
      self.nameLabel.text = @"No place selected";
      self.addressLabel.text = @"";
    }
  }];
}
@end

Kirim masukan tentang...

location_on
Google Places API for iOS