Kebijakan untuk Places SDK for iOS

Dokumen ini mencantumkan persyaratan yang spesifik untuk semua aplikasi yang dikembangkan dengan Places SDK for iOS, termasuk layanan Place Autocomplete yang merupakan bagian dari API tersebut. Informasi lebih umum untuk developer Google Maps dapat ditemukan di Persyaratan Layanan Google Maps Platform.

Menyediakan ketentuan penggunaan dan kebijakan privasi

Jika Anda mengembangkan aplikasi Places SDK for iOS, Anda harus menyediakan Persyaratan Penggunaan dan Kebijakan Privasi bersama aplikasi Anda yang memenuhi panduan yang diuraikan dalam Perjanjian Anda dengan Google:

  • Persyaratan Penggunaan dan Kebijakan Privasi harus tersedia untuk umum.
  • Anda harus menyatakan secara eksplisit dalam Persyaratan Penggunaan aplikasi Anda bahwa dengan menggunakan aplikasi Anda, pengguna akan terikat dengan Persyaratan Layanan Google.
  • Anda harus memberi tahu pengguna dalam Kebijakan Privasi Anda bahwa Anda menggunakan Google Maps API dan melalui penyebutan memasukkan Kebijakan Privasi Google.

Tempat yang direkomendasikan untuk menyediakan Persyaratan Penggunaan dan Kebijakan Privasi Anda akan bergantung pada platform aplikasi Anda.

Aplikasi seluler

Jika mengembangkan aplikasi seluler, sebaiknya Anda menyediakan link ke Persyaratan Penggunaan dan Kebijakan Privasi di halaman download aplikasi Anda di app store yang relevan dan di menu setelan aplikasi.

Aplikasi web

Jika mengembangkan aplikasi web, sebaiknya Anda menyediakan link ke Persyaratan Penggunaan dan Kebijakan Privasi di footer situs web Anda.

Melakukan pra-pengambilan, menyimpan dalam cache, atau menyimpan konten

Aplikasi yang menggunakan Places SDK for iOS terikat oleh persyaratan Perjanjian Anda dengan Google. Tunduk pada ketentuan Perjanjian Anda, Anda tidak boleh melakukan pra-pengambilan, mengindeks, menyimpan dalam cache, atau menyimpan Konten apa pun, kecuali berdasarkan kondisi terbatas yang dinyatakan dalam ketentuan tersebut.

Perhatikan bahwa ID tempat, yang digunakan untuk mengidentifikasi tempat secara unik, dikecualikan dari pembatasan penyimpanan dalam cache. ID tempat ditampilkan di kolom `place_id` dalam respons Places SDK for iOS. Pelajari cara menyimpan, memperbarui, dan mengelola ID tempat di panduan ID Tempat.

Menampilkan hasil Places SDK for iOS

Anda dapat menampilkan hasil Places SDK for iOS pada Google Maps atau tanpa peta. Jika Anda ingin menampilkan hasil Places SDK for iOS pada peta, hasil tersebut harus ditampilkan di Google Maps. Dilarang menggunakan data Places SDK for iOS pada peta yang bukan peta Google.

Jika aplikasi Anda menampilkan data di Google Maps, logo Google akan disertakan dan tidak boleh diubah. Aplikasi yang menampilkan data Google di layar yang sama seperti Google Maps tidak diwajibkan memberikan atribusi lainnya untuk Google.

Jika aplikasi Anda menampilkan data di halaman atau tampilan yang juga tidak menampilkan Google Maps, Anda harus menampilkan logo Google dengan data tersebut. Misalnya, jika aplikasi Anda menampilkan data Google pada satu tab, dan Google Maps dengan data tersebut pada tab lainnya, tab pertama harus menampilkan logo Google. Jika aplikasi Anda menggunakan kolom penelusuran dengan atau tanpa pelengkapan otomatis, logo harus ditampilkan secara inline.

Logo Google harus ditempatkan di sudut kiri bawah peta, dengan informasi atribusi ditempatkan di sudut kanan bawah, keduanya harus ada di peta yang ditampilkan sebagai satu kesatuan, dan bukan di bawah peta atau tempat lain dalam aplikasi. Contoh peta berikut menampilkan logo Google di kiri bawah peta, dan atribusi di kanan bawah.

penempatan atribusi kebijakan

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

Download: google_logo.zip

Jangan mengubah atribusi. Jangan menghapus, mengaburkan, atau memangkas informasi atribusi. Anda tidak boleh menggunakan logo Google secara inline (misalnya, "Peta ini dari [Google_logo]").

Selalu dekatkan posisi atribusi. Jika menggunakan screenshot gambar Google di luar sematan langsung, sertakan atribusi dasar sebagaimana yang muncul di gambar tersebut. Jika perlu, Anda dapat menyesuaikan gaya dan penempatan teks atribusi, selama teks tersebut berada sangat dekat dengan konten dan dapat dibaca oleh kebanyakan pelihat atau pembaca. Anda tidak boleh menjauhkan atribusi dari konten, seperti ke bagian akhir buku Anda, kredit file atau acara Anda, atau footer situs Anda.

Sertakan penyedia data pihak ketiga. Beberapa data dan gambar di produk pemetaan kami berasal dari penyedia selain Google. Jika gambar tersebut digunakan, teks atribusi Anda harus berisi nama "Google" dan penyedia data yang relevan, seperti "Data peta: Google, Maxar Technologies." Jika ada penyedia data pihak ketiga yang dikutip bersama gambar, menyertakan "Google" atau logo Google saja bukanlah bentuk atribusi yang benar.

Jika Anda menggunakan Google Maps Platform di perangkat yang tidak mungkin digunakan untuk menampilkan atribusi, hubungi tim penjualan Google untuk mendiskusikan lisensi yang sesuai untuk kasus penggunaan Anda.

Persyaratan atribusi lainnya

Atribusi ke penyedia pihak ketiga berisi konten dan link yang harus Anda tampilkan kepada pengguna dalam format yang disediakan. Google merekomendasikan agar aplikasi Anda menampilkan informasi ini di bawah detail tempat.

Atribusi pihak ketiga yang ditampilkan oleh API tidak menyertakan atribusi Google. Anda harus menyertakan atribusi ini sendiri, seperti yang dijelaskan dalam Menampilkan logo dan atribusi Google.

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

Mengambil atribusi untuk satu tempat

Saat mengambil tempat dengan mendapatkan tempat berdasarkan ID, Anda dapat mengambil atribusi untuk tempat tersebut dari properti attributions pada GMSPlace.

attributions disediakan sebagai objek NSAttributedString.

Mengambil atribusi untuk kumpulan tempat

Jika aplikasi Anda menampilkan informasi yang diperoleh dengan meminta tempat saat ini dari perangkat, aplikasi harus menampilkan atribusi pihak ketiga untuk detail tempat yang ditampilkan. Anda dapat mengambil atribusi untuk semua tempat yang diambil dalam permintaan, dari properti attributions di GMSPlaceLikelihoodList.

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

Menampilkan atribusi untuk foto

Jika aplikasi menampilkan foto, Anda harus menampilkan attributions dan authorAttributions untuk setiap foto yang memilikinya.

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 ulasan

Objek GMSPlace dapat berisi hingga lima ulasan, dengan setiap ulasan diwakili oleh objek GMSPlaceReview. Anda dapat memilih untuk menampilkan ulasan ini di aplikasi.

Saat menampilkan ulasan yang dikontribusikan oleh pengguna Google, Anda harus menempatkan nama penulis di jarak yang berdekatan. Jika tersedia di kolom atribusi penulis pada objek GMSPlaceReview, sebaiknya sertakan juga foto penulis dan link ke profilnya. Gambar berikut menunjukkan contoh ulasan sebuah taman:

Tampilan atribusi penulis

Google juga merekomendasikan agar Anda menampilkan cara pengurutan ulasan kepada pengguna akhir.

Untuk mengakses ulasan:

Swift

// Define a Place ID.
let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs"

// Specify the place data types to return.
let myProperties: [GMSPlaceProperty] = [.name, .website, .reviews]

// Create the GMSFetchPlaceRequest object.
let fetchPlaceRequest = GMSFetchPlaceRequest(placeID: placeID, placeProperties: myProperties)

client.fetchPlaceWithRequest(fetchPlaceRequest: fetchPlaceRequest, callback: {
  (place: GMSPlace?, error: Error?) in
  if let error = error {
    print("An error occurred: \(error.localizedDescription)")
    return
  }
  if let place = place {
    let firstReview: GMSPlaceReview = place.reviews![0]

    // Use firstReview to access review text, authorAttribution, and other fields.

  }
})

Objective-C

// Define a Place ID.
NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs";

// Specify the place data types to return, including reviews.
NSArray<GMSPlaceProperty *> *myProperties = @[GMSPlacePropertyName, GMSPlacePropertyWebsite,GMSPlacePropertyReviews];

GMSFetchPlaceRequest *fetchPlaceRequest = [[GMSFetchPlaceRequest alloc] initWithPlaceID:placeID placeProperties: myProperties];

[placesClient fetchPlaceWithRequest: fetchPlaceRequest, callback: ^(GMSPlace *_Nullable place, NSError *_Nullable error) {
  if (error) {
    // TODO: handle the error.
    NSLog(@"Error: %@", [error description]);
  } else {
    // Get first review.
    GMSPlaceReview *firstReview = [place reviews][0];

    // Use firstReview to access review text, authorAttribution, and other fields.

  }
}];

Menampilkan atribusi pihak ketiga

Atribusi ke penyedia pihak ketiga disediakan sebagai objek NSAttributedString yang berisi konten dan link yang harus Anda pertahankan dan tampilkan kepada pengguna.

Cara yang direkomendasikan untuk menampilkan atribusi adalah dengan UITextView, karena link dalam atribusi harus berfungsi. Untuk memastikan link berfungsi, tetapkan delegasi pada UITextView dan tetapkan metode shouldInteractWithURL dari UITextViewDelegate untuk menampilkan YES.

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. Contoh:

Listingan yang dicantumkan oleh Perusahaan Contoh

Dalam contoh di atas, rentang teks Perusahaan Contoh tercakup dalam atribut NSLink.

Panduan gaya untuk atribusi Google

Berikut adalah panduan gaya untuk atribusi Google di CSS dan HTML jika Anda tidak dapat menggunakan logo Google yang dapat didownload.

Ruang kosong

Ukuran ruang kosong di sekitar logo lengkap harus sama dengan atau lebih besar dari tinggi "G" di Google.

Ruang antara salinan atribusi dan logo Google harus setengah lebar huruf "G".

Keterbacaan

Baris nama penulis harus selalu jelas, dapat dibaca, dan ditampilkan dengan variasi warna terang untuk latar belakang tertentu. Pastikan selalu ada kontras yang memadai untuk variasi logo yang Anda pilih.

Warna

Gunakan teks Google Material Gray 700 di latar belakang putih atau terang yang menggunakan tint hitam maksimum dengan rentang 0%–40%.

Google
#5F6368
RGB 95 99 104
HSL 213 5 39
HSB 213 9 41

Di latar belakang yang lebih gelap, dan di pola yang tidak rumit atau fotografi, gunakan teks putih untuk baris nama penulis dan atribusi.

Google
#FFFFFF
RGB 255 255 255
HSL 0 0 100
HSB 0 0 100

Font

Gunakan font Roboto.

CSS Contoh

CSS berikut, saat diterapkan ke teks "Google", akan merender "Google" dengan font, warna dan ruang yang sesuai di latar belakang putih atau terang.

font-family: Roboto;
font-style: normal;
font-weight: 500;
font-size: 16px;
line-height: 16px;
padding: 16px;
letter-spacing: 0.0575em; /* 0.69px */
color: #5F6368;