Políticas del SDK de Places para Android

En este tema, se proporcionan los requisitos de atribución para todas las aplicaciones desarrolladas con el SDK de Places para Android, incluido el servicio Place Autocomplete que forma parte de esa API. Para conocer los demás requisitos de Google Maps Platform, consulta las Condiciones del Servicio de Google Maps Platform.

Divulgación de las Condiciones de Uso y la Política de Privacidad

Si desarrollas una aplicación del SDK de Places para Android, debes incluir en ella las Condiciones de Uso y una Política de Privacidad que cumpla con los lineamientos que se describen en tu Acuerdo con Google:

  • Las Condiciones de Uso y la Política de Privacidad deben estar disponibles públicamente.
  • En las Condiciones de Uso de tu aplicación, debes indicar de forma explícita que, al utilizarla, los usuarios estarán vinculados a las Condiciones del Servicio de Google.
  • En tu Política de Privacidad, debes notificar a los usuarios que utilizas las APIs de Google Maps y que incorporas por referencia la Política de Privacidad de Google.

El lugar recomendado para publicar tus Condiciones de Uso y tu Política de Privacidad dependerá de la plataforma de tu aplicación.

Aplicaciones para dispositivos móviles

Si desarrollas una aplicación para dispositivos móviles, te recomendamos que incluyas, en su página de descarga de la tienda de aplicaciones correspondiente y en un menú de parámetros de configuración de la aplicación, un vínculo a las Condiciones de Uso y la Política de Privacidad.

Aplicaciones web

Si desarrollas una aplicación web, te recomendamos que incluyas, en el pie de página de tu sitio web, un vínculo a las Condiciones de Uso y la Política de Privacidad.

Recuperación anticipada o almacenamiento (incluso en caché) del contenido

Las aplicaciones que usen el SDK de Places para Android están sujetas a las condiciones de tu Acuerdo con Google. Sujeto a las condiciones de tu Acuerdo, no debes recuperar anticipadamente, indexar ni almacenar en caché y otros medios ningún contenido, salvo de acuerdo con las condiciones limitadas que se indican allí.

Ten en cuenta que el ID del lugar, que se usa para identificar un lugar de forma unívoca, está exento de las restricciones de almacenamiento en caché. El ID de lugar se muestra en el campo "place_id" de las respuestas del SDK de Places para Android. Consulta la guía sobre los IDs de lugar para saber cómo guardarlos, actualizarlos y administrarlos.

Cómo mostrar resultados del SDK de Places para Android

Puedes mostrar los resultados del SDK de Places para Android en un mapa de Google Maps o sin un mapa. Si deseas mostrar resultados del SDK de Places para Android en un mapa, estos deben aparecer en un mapa de Google Maps. Se prohíbe usar datos del SDK de Places para Android en un mapa que no sea de Google.

Si tu aplicación muestra datos en un mapa de Google Maps, se incluirá el logotipo de Google y no se podrá alterar. Las aplicaciones que muestran datos de Google en la misma pantalla que contiene un mapa de Google Maps no requieren ninguna atribución adicional relacionada con Google.

En caso de que tu aplicación muestre datos en una página o vista que no incluya un mapa de Google Maps, deberás mostrar un logotipo de Google con esos datos. Por ejemplo, si tu aplicación muestra datos de Google en una pestaña y presenta un mapa de Google Maps con esos datos en otra pestaña, la primera pestaña deberá mostrar el logotipo de Google. Siempre que tu aplicación utilice campos de búsqueda con o sin autocompletado, el logotipo se deberá mostrar intercalado.

El logotipo de Google se debe colocar en la esquina inferior izquierda del mapa, con la información de atribución en la esquina inferior derecha, y ambos elementos se deben presentar como una unidad sobre el mapa, no debajo ni en ningún otro lugar de la aplicación. El siguiente mapa de ejemplo muestra el logotipo de Google en el extremo inferior izquierdo con la atribución a la derecha.

posición de la atribución conforme a la política

El siguiente archivo ZIP contiene el logotipo de Google en los tamaños correctos que se utilizan en aplicaciones para iOS, Android y computadoras. No debes cambiar el tamaño de estos logotipos ni modificarlos de ninguna manera.

Descarga: google_logo.zip

No modifiques la atribución. No quites, oscurezcas ni recortes la información de atribución. No puedes utilizar los logotipos de Google intercalado en el texto (por ejemplo, "Estos mapas son de [logotipo_de_Google]").

Muestra la atribución en una posición cercana. Si utilizas capturas de pantalla de imágenes de Google fuera de una incorporación directa, incluye la atribución estándar tal como aparece en la imagen. De ser necesario, puedes personalizar el diseño y la posición del texto de atribución, siempre y cuando ese texto quede colocado en una posición cercana al contenido y sea legible para el usuario o lector medio. No puedes mover la atribución a un lugar alejado del contenido (por ejemplo, para que aparezca al final de tu libro, en los créditos de tu programa o tus archivos, o en el pie de página de tu sitio web).

Incluye a los proveedores de datos de terceros. Algunos de los datos y las imágenes que se utilizan en nuestros productos de creación de mapas son de proveedores ajenos a Google. Si utilizas esas imágenes, el texto de tu atribución deberá indicar el nombre "Google" y los proveedores de datos correspondientes; por ejemplo, "Datos del mapa: Google y Maxar Technologies". No se considera una atribución adecuada incluir solo "Google" o el logotipo de Google cuando se citan proveedores de datos de terceros en las imágenes.

Si utilizas Google Maps Platform en un dispositivo en el que no resulta práctico mostrar la atribución, comunícate con el equipo de ventas de Google para informarte sobre las licencias adecuadas para tu caso de uso.

Otros requisitos de atribución

Sigue estas instrucciones para recuperar atribuciones de terceros y mostrarlas en tu app.

Recuperación de atribuciones de un lugar

Si tu app muestra información que obtuvo con una llamada a obtener lugar por ID, también debe mostrar atribuciones de terceros para los detalles del lugar que se obtuvieron.

La API muestra un objeto Place. Para recuperar atribuciones del objeto Place, llama a Place.getAttributions(). El método muestra un List de objetos String, o un valor nulo si no hay atribuciones para mostrar.

String placeId = "INSERT_PLACE_ID_HERE";
List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.NAME);
FetchPlaceRequest request = FetchPlaceRequest.newInstance(placeId, placeFields);

placesClient.fetchPlace(request).addOnSuccessListener((response) -> {
  Place place = response.getPlace();
  textView.append("Place found: " + place.getName());
  List<String> attributions = place.getAttributions();
  if (attributions != null) {
    StringBuilder stringBuilder = new StringBuilder("Attributions: ");
    for (String attribution : attributions) {
      stringBuilder.append(attribution).append("\n");
    }
    textView.append(stringBuilder.toString());
  }}).addOnFailureListener((exception) -> {
    if (exception instanceof ApiException) {
      // Handle the error.
    }
  }
);

Cómo mostrar las atribuciones de una foto

Si tu app muestra fotos de lugares, debes mostrar atribuciones para cada foto que las tenga. PhotoMetadata puede contener cualquiera de estos dos tipos de atribuciones:

Para obtener las atribuciones de cadena de una foto, llama a PhotoMetadata.getAttributions(). El método muestra una secuencia de caracteres HTML o una string vacía si no hay atribuciones para mostrar.

// Get the photo metadata from the Place object.
PhotoMetadata photoMetadata = place.getPhotoMetadatas().get(0);

// Get the attribution text.
String attributions = photoMetadata.getAttributions();

Para obtener las atribuciones del autor de una foto, llama a PhotoMetadata.getAuthorAttributions(). El método devuelve un objeto AuthorAttributions. Este objeto contiene un List de objetos AuthorAttribution, uno por atribución de autor.

// Get the photo metadata from the Place object.
PhotoMetadata photoMetadata = place.getPhotoMetadatas().get(0);

// Get the author attributions object.
AuthorAttributions authorAttributions = photoMetadata.getAuthorAttributions();
List<AuthorAttribution> authorAttributionList = authorAttributions.asList();

Cómo mostrar una opinión

Un objeto Place puede contener hasta cinco opiniones, y cada opinión se representa con un objeto Review. Opcionalmente, puedes mostrar esas opiniones en tu aplicación.

Cuando muestres las opiniones aportadas por los usuarios de Google, debes colocar el nombre del autor cerca. Cuando esté disponible en el campo de atribución del autor del objeto Review, te recomendamos que también incluyas la foto del autor y un vínculo a su perfil. En la siguiente imagen, se muestra un ejemplo de una opinión sobre un parque:

Forma en que se muestra la atribución del autor

Google también recomienda que muestres al usuario final cómo se ordenan las opiniones.

Para acceder a las revisiones, llama a Place.getReviews():

// Specify the fields to return.
final List<Place.Field> placeFields = Arrays.asList(Place.Field.REVIEWS);

// Construct a request object, passing the place ID and fields array.
final FetchPlaceRequest request = FetchPlaceRequest.newInstance("INSERT_PLACE_ID_HERE", placeFields);

placesClient.fetchPlace(request).addOnSuccessListener((response) -> {
    Place place = response.getPlace();
    List<Review> reviews = place.getReviews();
    // For loop for iterating over the List
    for (int i = 0; i < reviews.size(); i++) {
      // For each review, get the Review object.
        Review placeReview = reviews.get(i);

      // Get any attribution and author attribution.
        String reviewAttribution = placeReview.getAttribution();
        AuthorAttribution authorAttribution = placeReview.getAuthorAttribution();

        // Display the review contents and attributions as necessary.
    }
}).addOnFailureListener((exception) -> {
    if (exception instanceof ApiException) {
        // Handle the error.
    }
});

Muestra de atribuciones de terceros

Las atribuciones para proveedores externos incluyen contenido y vínculos en formato HTML que debes conservar y mostrar al usuario en el formato en el que se proporcionaron. Google recomienda mostrar esta información debajo de los detalles del lugar.

La API genera atribuciones para todos los lugares que usa la app. Las atribuciones se proporcionan por llamada a la API, no por lugar.

Una forma de mostrar las atribuciones es con un TextView. Por ejemplo:

TextView attributionsText = (TextView) findViewById(R.id.attributions);
String thirdPartyAttributions = place.getAttributions();
attributionsText.setText(thirdPartyAttributions);

Ejemplo de una atribución de terceros

Listings by <a href="https://www.example.com/">Example Company</a>

Lineamientos de diseño para las atribuciones de Google

A continuación se indican los lineamientos de diseño para las atribuciones de Google en CSS y HTML, por si no puedes usar el logotipo de Google descargable.

Espacio libre

La cantidad de espacio libre alrededor del diseño final debería ser igual o más grande que la altura de la "G" de Google.

El espacio entre el texto de atribución y el logotipo de Google debería equivaler a la mitad del ancho de la "G".

Legibilidad

El rótulo debería aparecer siempre de forma clara y legible, en la combinación de colores adecuada según el fondo específico. Siempre debes asegurarte de proporcionar suficiente contraste para la variante del logotipo que selecciones.

Color

Usa un texto de color gris 700 según Material de Google, sobre un fondo blanco o claro en el que el tono de negro sea de un rango del 0 al 40% como máximo.

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

En fondos más oscuros, así como sobre fotografías o diseños no complejos, usa un texto de color blanco para el rótulo y la atribución.

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

Fuente

Usa la fuente Roboto.

Ejemplo de CSS

Cuando se aplica al texto "Google", el siguiente código CSS renderizará "Google" con la fuente, el color y el espaciado adecuados sobre un fondo blanco o claro.

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;