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

Place Photos

Anda bisa menggunakan Google Places API for iOS untuk meminta foto tempat agar ditampilkan dalam aplikasi Anda. Foto yang dikembalikan oleh layanan foto berasal dari berbagai sumber, termasuk pemilik bisnis dan foto kontribusi pengguna Google+. Untuk mengambil gambar suatu tempat, Anda harus melakukan langkah-langkah berikut:

  1. Panggil [GMSPlacesClient lookUpPhotosForPlaceID:callback:], dengan meneruskan string yang berisi ID tempat dan callback. Ini akan memanggil callback dengan objek GMSPlacePhotoMetadataList .
  2. Pada objek GMSPlacePhotoMetadataList , akses properti results dan pilih foto untuk dimuat dari larik.
  3. Untuk setiap GMSPlacePhotoMetadata yang akan dimuat dari daftar ini, panggil [GMSPlacesClient loadPlacePhoto:callback:] atau [GMSPlacesClient loadPlacePhoto:constrainedToSize:scale:callback:]. Ini akan memanggil callback dengan UIImage yang bisa dipakai.

Catatan: Kapan pun Anda menampilkan foto tempat, pastikan panduan atribusi dipatuhi. Lihat Atribusi untuk informasi selengkapnya.

Kode contoh

Metode contoh berikut ini mengambil ID tempat dan mendapatkan foto pertama dalam daftar yang dikembalikan. Anda bisa menggunakan metode ini sebagai template untuk metode yang akan Anda buat dalam aplikasi Anda sendiri.

Swift

func loadFirstPhotoForPlace(placeID: String) {
  GMSPlacesClient.shared().lookUpPhotos(forPlaceID: placeID) { (photos, error) -> Void in
    if let error = error {
      // TODO: handle the error.
      print("Error: \(error.localizedDescription)")
    } else {
      if let firstPhoto = photos?.results.first {
        self.loadImageForMetadata(photoMetadata: firstPhoto)
      }
    }
  }
}

func loadImageForMetadata(photoMetadata: GMSPlacePhotoMetadata) {
  GMSPlacesClient.shared().loadPlacePhoto(photoMetadata, callback: {
    (photo, error) -> Void in
      if let error = error {
        // TODO: handle the error.
        print("Error: \(error.localizedDescription)")
      } else {
        self.imageView.image = photo;
        self.attributionTextView.attributedText = photoMetadata.attributions;
      }
  })
}

Objective-C

- (void)loadFirstPhotoForPlace:(NSString *)placeID {
  [[GMSPlacesClient sharedClient]
      lookUpPhotosForPlaceID:placeID
                    callback:^(GMSPlacePhotoMetadataList *_Nullable photos,
                               NSError *_Nullable error) {
                      if (error) {
                        // TODO: handle the error.
                        NSLog(@"Error: %@", [error description]);
                      } else {
                        if (photos.results.count > 0) {
                          GMSPlacePhotoMetadata *firstPhoto = photos.results.firstObject;
                          [self loadImageForMetadata:firstPhoto];
                        }
                      }
                    }];
}

- (void)loadImageForMetadata:(GMSPlacePhotoMetadata *)photoMetadata {
  [[GMSPlacesClient sharedClient]
         loadPlacePhoto:photoMetadata
      constrainedToSize:self.imageView.bounds.size
                  scale:self.imageView.window.screen.scale
               callback:^(UIImage *_Nullable photo, NSError *_Nullable error) {
                 if (error) {
                   // TODO: handle the error.
                   NSLog(@"Error: %@", [error description]);
                 } else {
                   self.imageView.image = photo;
                   self.attributionTextView.attributedText = photoMetadata.attributions;
                 }
               }];
}

Caching

Foto yang dimuat menggunakan [GMSPlacesClient loadPlacePhoto:callback:] atau [GMSPlacesClient loadPlacePhoto:constrainedToSize:scale:callback:] di-cache dalam disk dan memori oleh sistem pemuatan URL Foundation di NSURLCache bersama

Untuk mengonfigurasi perilaku caching, Anda bisa mengubah cache URL bersama menggunakan [NSURLCache setSharedURLCache:] di metode application:didFinishLaunchingWithOptions: delegasi aplikasi Anda.

Jika tidak ingin aplikasi agar tidak membagikan NSURLCache dengan Google Places API for iOS Anda bisa membuat NSURLCache baru dan menggunakannya secara eksklusif di dalam aplikasi Anda tanpa menyetelnya sebagai cache bersama.

Atribusi

Umumnya, foto tempat bisa digunakan tanpa atribusi, atau mengharuskan penyertaan atribusi yang diperlukan sebagai bagian dari gambar. Akan tetapi, jika instance GMSPlacePhotoMetadata yang dikembalikan menyertakan atribusi, Anda harus menyertakan atribusi tambahan dalam aplikasi di mana saja Anda menampilkan gambar tersebut. Perhatikan bahwa tautan di atribusi harus bisa diketuk. Lihat dokumentasi mengenai atribusi.

Batas penggunaan

Pengambilan gambar menghabiskan satu unit kuota; tidak ada batas penggunaan untuk pengambilan metadata foto. Lihat dokumentasi mengenai batas penggunaan.

Kirim masukan tentang...

location_on
Google Places API for iOS