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

Menampilkan Atribusi

Bila menampilkan data dari Google Places API for iOS, seperti hasil pelengkapan otomatis atau nama tempat dan alamat, ada beberapa atribusi dan persyaratan logo Google yang harus Anda patuhi.

Ringkasan

Persyaratan atribusi dan logo dikelompokkan dalam kategori berikut:

Persyaratan berlaku untuk widget UI place-picker serta panggilan API terprogram. Jika aplikasi telah mengambil suatu tempat melalui place-picker kemudian menampilkan datanya pada layar tindak-lanjut tanpa peta, maka aplikasi harus menampilkan atribusi pada layar tindak-lanjut.

Menampilkan peta

Anda tidak perlu menampilkan peta. Jika aplikasi Anda menampilkan data dari Google Places API for iOS pada peta, maka peta itu harus merupakan peta Google dengan logo Google terlihat. Aplikasi yang menampilkan data Places API pada layar yang sama dengan peta Google tidak diharuskan untuk memberikan atribusi lebih jauh untuk Google.

Perhatikan, Anda tetap harus menampilkan atribusi bagi materi pihak ketiga yang relevan.

Atribusi 'Diberdayakan oleh Google'

Jika aplikasi Anda menampilkan data Places API pada laman atau tampilan tanpa Google Map, maka Anda harus menampilkan gambar 'Diberdayakan oleh Google' bersama data itu. Misalnya, jika aplikasi Anda menampilkan daftar tempat yang diambil melalui API pada satu layar, dan Google Map serta tempat-tempat lainnya di layar yang lain, maka layar pertama harus menampilkan atribusi 'Diberdayakan oleh Google'.

File ZIP berikut berisi gambar 'Diberdayakan oleh Google' dalam ukuran yang tepat untuk aplikasi desktop, Android, dan iOS. Anda tidak boleh mengubah ukuran atau memodifikasi gambar-gambar ini dengan cara apa pun.

Unduh: powered-by-google.zip
  • Untuk digunakan pada latar belakang terang: powered-by-google-on-white<size-indicator>.png
  • Untuk digunakan pada latar belakang gelap: powered-by-google-on-non-white<size-indicator>.png

Atribusi untuk materi pihak ketiga

Atribusi untuk penyedia pihak ketiga berisi materi yang harus Anda tampilkan kepada pengguna dalam format yang telah mereka sediakan. Setiap tautan yang disertakan dalam atribusi harus dipertahankan. Kami menyarankan agar aplikasi Anda menampilkan informasi ini di bawah detail tempat.

Ikuti petunjuk ini untuk menampilkan atribusi pihak ketiga untuk satu tempat atau sekumpulan tempat.

Menampilkan atribusi untuk satu tempat

Bila Anda menampilkan suatu tempat dari place-picker atau mendapatkan tempat melalui ID, Anda bisa menampilkan atribusi untuk tempat itu dari properti attributions pada GMSPlace .

attributions disediakan sebagai objek NSAttributedString.

Kode berikut memberikan contoh dasar mengenai cara menampilkan atribusi untuk satu tempat yang diambil dari place-picker.

Swift

  @IBOutlet weak var nameLabel: UILabel!
  @IBOutlet weak var attributionTextView: UITextView!

  var placePicker: GMSPlacePicker?

  override func viewDidLoad() {
    super.viewDidLoad()
    attributionTextView.delegate = self
  }

  // Select the PARKROYAL Saigon
  let VIEWPORT_LATLNG = CLLocationCoordinate2DMake(10.800174,106.667622)
  let VIEWPORT_DELTA = 0.001

  @IBAction func pickPlace(sender: UIButton) {
    let northEast = CLLocationCoordinate2DMake(VIEWPORT_LATLNG.latitude + VIEWPORT_DELTA, VIEWPORT_LATLNG.longitude + VIEWPORT_DELTA)
    let southWest = CLLocationCoordinate2DMake(VIEWPORT_LATLNG.latitude - VIEWPORT_DELTA, VIEWPORT_LATLNG.longitude - VIEWPORT_DELTA)
    let viewport = GMSCoordinateBounds(coordinate: northEast, coordinate: southWest)
    let config = GMSPlacePickerConfig(viewport: viewport)
    placePicker = GMSPlacePicker(config: config)

    placePicker?.pickPlaceWithCallback({ (place: GMSPlace?,error: NSError?) -> Void in
      self.nameLabel.text = ""
      self.attributionTextView.text = ""

      if error != nil {
        self.nameLabel.text = error?.localizedDescription
        return
      }

      if place != nil {
        self.nameLabel.text = place?.name
        self.attributionTextView.attributedText = place?.attributions
      } else {
        self.nameLabel.text = "No place selected"
      }
    })
  }
    

Objective-C

@interface ViewController () <UITextViewDelegate>
@property (weak, nonatomic) IBOutlet UILabel *nameLabel;
@property (weak, nonatomic) IBOutlet UITextView *attributionTextView;
@end

@implementation ViewController {
  GMSPlacePicker *_placePicker;
}

- (void)viewDidLoad {
  [super viewDidLoad];
  self.attributionTextView.delegate = self;
}

- (IBAction)pickPlace:(UIButton *)sender {
  // Select the PARKROYAL Saigon
  CLLocationCoordinate2D VIEWPORT_LATLNG = CLLocationCoordinate2DMake(10.800174,106.667622);
  float VIEWPORT_DELTA = 0.001;

  CLLocationCoordinate2D northEast = CLLocationCoordinate2DMake(VIEWPORT_LATLNG.latitude + VIEWPORT_DELTA,
                                                                VIEWPORT_LATLNG.longitude + VIEWPORT_DELTA);
  CLLocationCoordinate2D southWest = CLLocationCoordinate2DMake(VIEWPORT_LATLNG.latitude - VIEWPORT_DELTA,
                                                                VIEWPORT_LATLNG.longitude - VIEWPORT_DELTA);
  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) {
    self.nameLabel.text = @"";
    self.attributionTextView.text = @"";

    if (error != nil) {
      self.nameLabel.text = [error localizedDescription];
      return;
    }

    if (place != nil) {
      self.nameLabel.text = place.name;
      self.attributionTextView.attributedText = place.attributions;
    } else {
      self.nameLabel.text = @"No place selected";
    }
  }];
}
    

Mengambil atribusi untuk sekumpulan tempat

Jika aplikasi Anda menampilkan informasi yang diperoleh dengan meminta tempat sekarang dari perangkat, aplikasi juga harus menampilkan atribusi pihak ketiga untuk detail tempat yang ditampilkan. Anda bisa mengambil atribusi untuk semua tempat yang diambil dari permintaan, dari properti attributions pada GMSPlaceLikelihoodList.

attributions disediakan sebagai objek NSAttributedString, yang bisa Anda akses dan tampilkan dalam cara yang sama seperti attributions pada satu tempat, seperti dijelaskan di atas.

Menampilkan atribusi untuk foto

Jika aplikasi Anda menampilkan foto, Anda harus menampilkan atribusi untuk setiap foto yang memilikinya. Untuk mendapatkan atribusi bagi foto, panggil GMSPlacePhotoMetadata.attributions. Properti ini adalah NSAttributedString, atau nil jika tidak ada atribusi yang akan ditampilkan.

Swift

GMSPlacesClient.sharedClient().lookUpPhotosForPlaceID(placeID) { (photos, error) -> Void in
  if let error = error {
    // TODO: handle the error.
    print("Error: \(error.description)")
  } else {
    // Get attribution for the first photo in the list.
    if let photo = photos?.results.first {
      let attributions = photo.attributions
    }
  }
}
    

Objective-C

[[GMSPlacesClient sharedClient]
    lookUpPhotosForPlaceID:placeID
                  callback:^(GMSPlacePhotoMetadataList *_Nullable photos,
                             NSError *_Nullable error) {
                    if (error) {
                      // TODO: handle the error.
                      NSLog(@"Error: %@", [error description]);
                    } else {
                      // Get attribution for the first photo in the list.
                      if (photos.results.count > 0) {
                        GMSPlacePhotoMetadata *photo = photos.results.firstObject;
                        NSAttributedString *attributions = photo.attributions;
                      }
                    }
                  }];
    

Menampilkan atribusi pihak ketiga

Atribusi untuk pihak ketiga penyedia disediakan sebagai objek NSAttributedString dan berisi materi dengan tautan yang harus Anda tampilkan kepada pengguna. Setiap tautan yang disertakan dalam atribusi harus dipertahankan.

Cara yang disarankan untuk menampilkan atribusi adalah dengan UITextView karena tautan dalam atribusi pasti berfungsi. Untuk memastikan tautan berfungsi, setel delegate pada UITextView dan setel metode shouldInteractWithURL dari UITextViewDelegate Anda untuk mengembalikan YES. Lihat contoh kode di bawah ini.

Swift

...
  self.attributionTextView.delegate = self
...

// MARK: - UITextViewDelegate

func textView(textView: UITextView, shouldInteractWithURL URL: NSURL,
  inRange characterRange: NSRange) -> Bool {
  // Make links clickable.
  return true
}
    

Objective-C

...
  self.attributionTextView.delegate = self;
...

#pragma mark - UITextViewDelegate

- (BOOL)textView:(UITextView *)textView
    shouldInteractWithURL:(NSURL *)url
                  inRange:(NSRange)characterRange {
  // Make links clickable.
  return YES;
}
    

Contoh atribusi pihak ketiga

Atribusi pihak ketiga biasanya terdiri dari teks beserta tautan. Misalnya:

Daftar yang dibuat Perusahaan Contoh

Dalam contoh di atas, kisaran teks Perusahaan Contoh telah tercakup melalui atribut NSLink.

Kirim masukan tentang...

location_on
Google Places API for iOS