Norme e attribuzioni per Places SDK for iOS

Questo documento elenca i requisiti specifici per tutte le applicazioni sviluppate con Places SDK for iOS, incluso il servizio Place Autocomplete che fa parte di questa API. Informazioni più generali per gli sviluppatori di Google Maps sono disponibili nei Termini di servizio di Google Maps Platform.

Norme

Questa sezione descrive le policy relative a Places SDK for iOS. Le norme forniscono linee guida e requisiti pratici per l'implementazione, per aiutarti a utilizzare il Servizio in modo corretto e in linea con le aspettative di Google Maps Platform.

Archiviazione, memorizzazione nella cache e scraping dei dati

Quando utilizzi i contenuti di Google Maps nella tua applicazione, segui i requisiti di gestione dei dati indicati nella sezione 3.2.3 dei Termini di servizio di Google Maps Platform e nei Termini di servizio specifici di Google Maps Platform:

  • Limitazioni relative alla memorizzazione nella cache e allo scraping (Sezione 3.2.3(a) e (b)): memorizza nella cache o archivia i Contenuti di Google Maps solo se espressamente consentito dai Termini di servizio specifici di Google Maps Platform. Non esportare, estrarre o effettuare scraping dei Contenuti di Google Maps per utilizzarli al di fuori dei Servizi. Ad esempio, non eseguire il pre-caricamento, l'indicizzazione, l'archiviazione o la ridistribuzione dei Contenuti di Google Maps al di fuori dei Servizi; non scaricare in blocco i riquadri della mappa, le immagini di Street View, i geocodici, le indicazioni stradali, i risultati di Distance Matrix, le informazioni sulle strade, le informazioni sui luoghi, i valori di altitudine o i dettagli del fuso orario; non copiare e salvare nomi di attività, indirizzi o recensioni degli utenti.
  • Limitazioni relative ai contenuti derivati (sezione 3.2.3(c)): utilizza i contenuti di Google Maps all'interno della tua applicazione come consentito dai Termini di servizio di Google Maps Platform. Non creare contenuti basati sui Contenuti di Google Maps. Ad esempio, non tracciare o digitalizzare elementi da immagini satellitari, creare modelli 3D o del terreno, utilizzare i valori di latitudine e longitudine di Places come input per l'analisi point-in-polygon, creare un indice di località da immagini di Street View o convertire i tempi di percorrenza basati su testo in sintesi vocale.

Per ridurre la latenza e i costi di fatturazione senza memorizzare nella cache i dati limitati, utilizza maschere di campo o elenchi di campi per richiedere solo i campi necessari alla tua interfaccia utente. Archivia gli identificatori esenti, come l'ID luogo, per recuperare dettagli aggiornati quando un utente interagisce con un luogo.

I tecnici dell'assistenza tecnica di Google non possono fornire consulenza legale o concedere eccezioni ai Termini di servizio di Google Maps Platform. Rivolgiti al tuo consulente legale per determinare se la tua implementazione è conforme ai termini o contatta il team di vendita se il tuo caso d'uso richiede licenze personalizzate.

Eccezioni alle limitazioni di memorizzazione nella cache

I Termini di servizio specifici di Google Maps Platform concedono le seguenti eccezioni limitate alla memorizzazione nella cache:

  • ID luogo: L'ID luogo, utilizzato per identificare in modo univoco un luogo, è esente da le restrizioni di caching. Pertanto, puoi memorizzare i valori degli ID luogo a tempo indeterminato. Gli ID luogo vengono restituiti nel campo id o place_id nelle risposte dell'API. Scopri come salvare, aggiornare e gestire gli ID luogo nella guida agli ID luogo.
  • Coordinate di latitudine e longitudine: puoi memorizzare temporaneamente nella cache i valori di latitudine (latitude) e longitudine (longitude) per un massimo di 30 giorni di calendario consecutivi, dopodiché devi eliminare le coordinate memorizzate nella cache, quando utilizzi servizi che concedono questa eccezione nei Termini di servizio specifici di Google Maps Platform:
    • API Routes, API Route Optimization, API Directions (legacy) e API Roads
    • API Geocoding, API Geolocation e API Address Validation
    • API Places, Places UI Kit e SDK di navigazione
  • Periodi di memorizzazione nella cache specifici per i servizi: i Termini specifici dei servizi di Google Maps Platform definiscono anche i periodi di memorizzazione nella cache specifici per i campi e gli scopi consentiti per l'API Address Validation, l'API Air Quality, l'API Pollen, l'API Solar, l'API Weather e l'API Places Aggregate.

Paesi e territori dello Spazio economico europeo

Questo prodotto ha Termini di servizio diversi per i clienti con un indirizzo di fatturazione nello Spazio economico europeo (SEE) e potrebbe anche avere funzionalità diverse. Prima di creare con Google Maps Platform, consulta i seguenti termini e informazioni specifici per il SEE:

Se il tuo indirizzo di fatturazione non si trova nel SEE, si applicano i seguenti Termini di servizio:

Requisiti di attribuzione di Google Maps

Questa sezione fornisce i requisiti e le linee guida per l'attribuzione per la visualizzazione di Google Maps e dei contenuti tramite le tue applicazioni.

Esempio di attribuzione

Di seguito è riportato un esempio di attribuzione per Places UI Kit.

Esempio di attribuzione di Places UI Kit su una mappa non Google
Attribuzione obbligatoria applicata al componente compatto Place Details. In questa mappa non Google, l'attribuzione di Google Maps è chiaramente visibile e i contenuti di Google Maps Platform sono visivamente differenziati dagli altri contenuti.

Mostra l'attribuzione di Google Maps

Devi rispettare i requisiti di attribuzione di Google Maps quando mostri contenuti delle API di Google Maps Platform nella tua app o nel tuo sito web. Non è necessario aggiungere ulteriori attribuzioni se i Contenuti vengono mostrati su una mappa di Google in cui l'attribuzione è già visibile.

Attribuzione di Google Maps inclusa

Per l'attribuzione di Google Maps già fornita da Google Maps Platform nell'interfaccia utente, ad esempio in Places UI Kit:

  • Non rimuovere l'attribuzione inclusa, indipendentemente da dove viene visualizzata. Non alterare, nascondere o oscurare l'attribuzione e assicurati che sia chiaramente visibile sullo sfondo.
  • Distingui sempre visivamente i Contenuti di Google Maps Platform dagli altri contenuti utilizzando indicatori dell'interfaccia utente come un bordo, un colore di sfondo, un'ombra o uno spazio vuoto sufficiente.
  • Quando apporti modifiche visive, devi rispettare tutti i requisiti di attribuzione di Google Maps.

L'attribuzione deve assumere la forma del logo di Google Maps, se possibile. Nei casi in cui lo spazio è limitato, è accettabile il testo Google Maps. Deve essere sempre chiaro agli utenti finali quali contenuti sono forniti da Google Maps.

A sinistra: attribuzione del logo di Google Maps, a destra: attribuzione del testo di Google Maps
A sinistra: esempio di attribuzione del logo di Google Maps, a destra: esempio di attribuzione del testo di Google Maps

Attribuzione del logo

Segui questi requisiti per l'utilizzo del logo di Google Maps nella tua app o nel tuo sito web.
Varianti accettabili per l'attribuzione del logo di Google Maps
Esempi di varianti accettabili per l'attribuzione del logo di Google Maps

Scarica i loghi di Google Maps

Utilizza i file del logo ufficiale di Google Maps. Scarica i loghi di seguito e segui le linee guida riportate in questa sezione.

Scarica gli asset di attribuzione di Google Maps

Quando utilizzi il logo di Google Maps, segui queste linee guida.

  • Non modificare il logo in alcun modo.
  • Mantieni le proporzioni del logo per evitare distorsioni.
  • Utilizza il logo con contorno su uno sfondo elaborato, ad esempio una mappa o un'immagine.
  • Utilizza il logo senza contorno su uno sfondo semplice, ad esempio un colore a tinta unita o un gradiente tenue.

Specifiche delle dimensioni del logo

Segui queste specifiche relative alle dimensioni per il logo di Google Maps:
  • Altezza minima del logo: 16 dp
  • Altezza massima del logo: 19 dp
  • Spazio libero minimo del logo: 10 dp a sinistra, a destra e in alto, 5 dp in basso

Per scoprire di più sui dp, consulta la sezione Densità di pixel sul sito web di Material Design.

Logo di Google Maps che mostra lo spazio libero minimo e l'intervallo di dimensioni accettabile
Esempio di logo di Google Maps che mostra lo spazio vuoto minimo e l'intervallo di dimensioni accettabile

Accessibilità del logo

Segui questi requisiti di accessibilità per il logo di Google Maps:
  • Mantieni un contrasto accessibile tra il logo e lo sfondo.
  • Includi un'etichetta di accessibilità con il testo Google Maps.
Variazioni inaccettabili e problemi di accessibilità per l'attribuzione del logo di Google Maps
Esempi di varianti inaccettabili e problemi di accessibilità per l'attribuzione del logo di Google Maps

Attribuzione del testo

Se le dimensioni della tua interfaccia non supportano l'utilizzo del logo di Google Maps, puoi scrivere Google Maps in formato testo. Procedi nel seguente modo:

Varianti accettabili dell'attribuzione del testo di Google Maps
Esempi di varianti accettabili dell'attribuzione del testo di Google Maps
  • Non modificare in alcun modo il testo Google Maps:
    • Non modificare l'uso delle maiuscole di Google Maps
    • Non mandare a capo Google Maps su più righe
    • Non localizzare Google Maps in un'altra lingua.
    • Impedisci ai browser di tradurre Google Maps utilizzando l'attributo HTML translate="no".
Varianti non accettabili dell'attribuzione del testo di Google Maps
Esempi di varianti non accettabili dell'attribuzione del testo di Google Maps
  • Applica uno stile al testo di Google Maps come descritto nella tabella seguente:

    Requisiti per lo stile del testo di Google Maps
    Proprietà Stile
    Famiglia di caratteri Roboto. Il caricamento del carattere è facoltativo.
    Famiglia di caratteri di riserva Qualsiasi carattere sans serif per il corpo già utilizzato nel tuo prodotto o "Sans-Serif" per richiamare il carattere di sistema predefinito
    Stile carattere Normale
    Spessore carattere 400
    Colore carattere Bianco, nero (#1F1F1F) o grigio (#5E5E5E). Mantieni un contrasto accessibile (4,5:1) con lo sfondo.
    Dimensione carattere Dimensione minima del carattere: 12 sp
    Dimensione massima del carattere: 16 sp
    Per scoprire di più sugli sp, consulta la sezione Unità di misura delle dimensioni dei caratteri sul sito web di Material Design.
    Spaziatura tra le lettere Normale

CSS di esempio

Il seguente CSS mostra Google Maps con lo stile tipografico e il colore appropriati su uno sfondo bianco o chiaro.

@import url('https://fonts.googleapis.com/css2?family=Roboto&display=swap');

.GMP-attribution {
font-family: Roboto, Sans-Serif;
font-style: normal;
font-weight: 400;
font-size: 1rem;
letter-spacing: normal;
white-space: nowrap;
color: #5e5e5e;
}

Requisiti visivi

Segui questi requisiti per il trattamento visivo dell'attribuzione di Google Maps.
  • Posiziona l'attribuzione vicino alla parte superiore o inferiore dei contenuti e all'interno dello stesso contenitore visivo. Per una singola riga di contenuti, l'attribuzione può essere posizionata a destra o a sinistra.

  • Distingui visivamente i Contenuti di Google Maps Platform dagli altri contenuti utilizzando indicatori dell'interfaccia utente come un bordo, un colore di sfondo, un'ombra o uno spazio vuoto sufficiente.

  • Non rappresentare in modo ingannevole Google Maps attribuendogli contenuti non di Google Maps Platform.
  • Verifica che l'attribuzione sia sempre visibile e leggibile. Non rimuoverlo, nasconderlo, oscurarlo o modificarlo.

Le seguenti immagini mostrano esempi di questi requisiti visivi.

Esempio di attribuzione di Google Maps posizionata in alto, in basso e a lato dei contenuti
Esempio di attribuzione di Google Maps posizionata in alto, in basso e a lato dei contenuti

Esempio di due approcci per differenziare i contenuti di Google Maps (la valutazione del luogo) da altri contenuti
Esempio di due approcci per differenziare i contenuti di Google Maps (la valutazione del luogo) da altri contenuti

Non oscurare l'attribuzione di Google Maps né combinarla con contenuti di altre fonti
Non oscurare l'attribuzione di Google Maps né mescolarla con contenuti di altre fonti

Fornitori di dati di terze parti

Alcuni dei dati e delle immagini dei nostri prodotti di mappatura provengono da fornitori diversi da Google. Per alcuni prodotti, come l'API Map Tiles, potremmo fornirti l'attribuzione richiesta al fornitore di dati di terze parti. In questo caso, il testo dell'attribuzione deve contenere il nome "Google Maps" e i fornitori di dati pertinenti, ad esempio "Dati mappa: Google, Maxar Technologies". Quando Google fornisce l'attribuzione di terze parti, l'inclusione di "Google Maps" o del logo Google non è un'attribuzione corretta.

Altri requisiti di attribuzione

Le attribuzioni ai fornitori di terze parti contengono contenuti e link che devi mostrare all'utente nel formato in cui vengono forniti. Google consiglia di mostrare queste informazioni sotto i dettagli del luogo.

Le attribuzioni di terze parti restituite dall'API non includono l'attribuzione di Google. Devi includere questa attribuzione autonomamente, come descritto in Visualizzazione del logo Google e delle attribuzioni.

Segui queste istruzioni per recuperare le attribuzioni di terze parti per un singolo luogo o una raccolta di luoghi.

Recupera le attribuzioni per un singolo luogo

Quando recuperi un luogo tramite il suo ID, puoi recuperare le attribuzioni per quel luogo dalla proprietà attributions su GMSPlace.

I attributions vengono forniti come oggetto NSAttributedString.

Recupera le attribuzioni per una raccolta di luoghi

Se la tua app mostra informazioni ottenute richiedendo il luogo attuale del dispositivo, deve mostrare le attribuzioni di terze parti per i dettagli dei luoghi visualizzati. Puoi recuperare le attribuzioni per tutti i luoghi recuperati nella richiesta dalla proprietà attributions su GMSPlaceLikelihoodList.

Le attributions vengono fornite come oggetto NSAttributedString, a cui puoi accedere e che puoi visualizzare nello stesso modo delle attributions di un singolo luogo, come descritto sopra.

Attribuzioni dei risultati di ricerca

In Europa, quando si utilizza il ranking non modificato di Google, i prodotti di ricerca devono avere un testo esplicativo a non più di un clic di distanza che descriva i fattori principali e la ponderazione dei fattori principali che determinano il ranking dei risultati di ricerca. Testo esplicativo:

Intestazione: Informazioni su questi risultati

Corpo: Quando cerchi attività o luoghi nelle vicinanze di una località, Google Maps mostra risultati di ricerca locale. Per trovare i risultati migliori per la ricerca, vengono combinati diversi fattori, principalmente pertinenza, distanza ed evidenza.

Pulsante 1: Scopri di più
Il testo "Scopri di più" deve rimandare a un articolo del Centro assistenza.

Pulsante 2: OK

Visualizza le attribuzioni di una foto

Se la tua app mostra foto, devi mostrare tutti i attributions e i authorAttributions per ogni foto che li contiene.

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;
          }
        }
      }];
    

Visualizza una recensione

Un oggetto GMSPlace può contenere fino a cinque recensioni, ognuna delle quali è rappresentata da un oggetto GMSPlaceReview. Se vuoi, puoi mostrare queste recensioni nella tua app.

Quando mostri le recensioni fornite dagli utenti Google, devi inserire il nome dell'autore nelle immediate vicinanze. Se disponibile nel campo di attribuzione dell'autore dell'oggetto GMSPlaceReview, ti consigliamo di includere anche la foto dell'autore e il link al suo profilo. L'immagine seguente mostra un esempio di recensione di un parco:

Visualizzazione dell'attribuzione dell'autore

Google consiglia inoltre di mostrare all'utente finale il modo in cui vengono ordinate le recensioni.

Per accedere alle recensioni:

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.

  }
}];

Mostra le attribuzioni di terze parti

Le attribuzioni ai fornitori di terze parti vengono fornite come oggetti NSAttributedString che contengono contenuti e link che devi conservare e mostrare all'utente.

Il modo consigliato per visualizzare le attribuzioni è con un UITextView, perché i link nelle attribuzioni devono funzionare. Per assicurarti che i link funzionino, imposta un delegato su UITextView e imposta il metodo shouldInteractWithURL di UITextViewDelegate in modo che restituisca 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;
}
    

Esempio di attribuzione di terze parti

Un'attribuzione di terze parti è in genere costituita da testo con un link. Ad esempio:

Schede di Example Company

Nell'esempio precedente, l'intervallo di testo Example Company è coperto da un attributo NSLink.

Completamento automatico per gli indirizzi degli utenti finali

Quando un utente finale utilizza la funzionalità di completamento automatico all'interno della tua Applicazione cliente per digitare un indirizzo e questo indirizzo sarebbe stato fornito in modo completo e accurato dall'utente finale senza il completamento automatico, l'indirizzo selezionato dall'utente finale non è soggetto alle limitazioni dei contenuti di Google Maps previste dal tuo Contratto Google Maps Platform. Questa eccezione si applica solo alla via selezionata dall'utente finale e unicamente per la transazione specifica di quell'utente finale; non si applica all'elenco di indirizzi suggeriti forniti dalla funzionalità di completamento automatico o ad altri Contenuti di Google Maps. Questa eccezione non si applica alle funzionalità di ricerca di PDI o indirizzi offerte da altri servizi di Google Maps Platform.

Completamento automatico dell'indirizzo dell'utente finale

Nell'immagine precedente, l'elenco di indirizzi a sinistra è ancora soggetto alle limitazioni relative ai Contenuti di Google Maps. Una volta che l'utente finale seleziona l'indirizzo scelto, questo non è soggetto alle limitazioni relative ai Contenuti di Google Maps esclusivamente ai fini della transazione applicabile dell'utente finale.