Políticas y atribuciones del SDK de Places para Android

En este tema, se abordan los requisitos de atribución que deben cumplir 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.

Políticas

En esta sección, se describen las políticas pertinentes al SDK de Places para Android. Las políticas proporcionan lineamientos y requisitos de implementación prácticos para ayudarte a usar el Servicio correctamente y de acuerdo con las expectativas de Google Maps Platform.

Excepciones a las restricciones de almacenamiento en caché

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é. Por lo tanto, puedes almacenar valores del ID del lugar de manera indefinida. En las respuestas de la API, el ID de lugar se devuelve en el campo place_id en Consulta la guía sobre los IDs de lugar para saber cómo guardarlos, actualizarlos y administrarlos en la guía sobre los IDs de lugar.

Países y territorios del Espacio Económico Europeo

Este producto tiene diferentes Condiciones del Servicio para los clientes con una dirección de facturación en el Espacio Económico Europeo (EEE) y también puede tener diferentes funcionalidades. Antes de compilar con Google Maps Platform, revisa los siguientes términos e información específicos del EEE:

Si tu dirección de facturación no se encuentra en el EEE, se te aplicarán las siguientes Condiciones del Servicio:

Requisitos de atribución de Google Maps

En esta sección, se proporcionan los requisitos y lineamientos de atribución para mostrar Google Maps y el Contenido a través de tus aplicaciones.

Ejemplo de atribución

A continuación, se muestra un ejemplo de atribución para el kit de IU de Places.

Ejemplo de atribución del kit de IU de Places en un mapa que no es de Google
Atribución obligatoria aplicada al componente compacto Place Details. En este mapa que no es de Google, la atribución de Google Maps es claramente visible, y el contenido de Google Maps Platform se diferencia visualmente de otro contenido.

Cómo mostrar la atribución de Google Maps

Debes seguir los requisitos de atribución de Google Maps cuando muestres Contenido de Google Maps Platform APIs en tu app o sitio web. No es necesario agregar una atribución adicional si el Contenido se muestra en un mapa de Google en el que la atribución ya es visible.

Atribución de Google Maps incluida

Para la atribución de Google Maps que ya proporciona Google Maps Platform en la interfaz de usuario, como en el kit de IU de Places, haz lo siguiente:

  • No quites la atribución incluida, sin importar dónde se muestre. No alteres, ocultes ni oscurezcas la atribución, y asegúrate de que sea claramente visible en el fondo.
  • Siempre distingue visualmente el Contenido de Google Maps Platform de otro contenido usando indicadores de la IU como un borde, un color de fondo, una sombra o un espacio en blanco suficiente.
  • Cuando realices modificaciones visuales, debes cumplir con todos los requisitos de atribución de Google Maps.

Siempre que sea posible, la atribución debe tomar la forma del logotipo de Google Maps. En los casos en que el espacio sea limitado, el texto Google Maps es aceptable. Siempre debe quedar claro para los usuarios finales qué contenido proporciona Google Maps.

Izquierda: Atribución del logotipo de Google Maps. Derecha: Atribución de texto de Google Maps.
Izquierda: Ejemplo de atribución del logotipo de Google Maps. Derecha: Ejemplo de atribución de texto de Google Maps.

Atribución del logotipo

Sigue estos requisitos para usar el logotipo de Google Maps en tu app o sitio web.
Variaciones aceptables para la atribución del logotipo de Google Maps
Ejemplos de variaciones aceptables para la atribución del logotipo de Google Maps

Descarga los logotipos de Google Maps

Usa los archivos oficiales del logotipo de Google Maps. Descarga los logotipos que se muestran a continuación y sigue los lineamientos de esta sección.

Descarga los recursos de atribución de Google Maps

Cuando uses el logotipo de Google Maps, sigue estos lineamientos.

  • No modifiques el logotipo de ninguna manera.
  • Mantén la relación de aspecto del logotipo para evitar la distorsión.
  • Usa el logotipo con contorno en un fondo cargado, como un mapa o una imagen.
  • Usa el logotipo sin contorno en un fondo simple, como un color sólido o un degradado sutil.

Especificación del tamaño del logotipo

Sigue estas especificaciones de tamaño para el logotipo de Google Maps:
  • Altura mínima del logotipo: 16 dp
  • Altura máxima del logotipo: 19 dp
  • Espacio libre mínimo del logotipo: 10 dp a la izquierda, a la derecha y en la parte superior, y 5 dp en la parte inferior

Para obtener información sobre dp, consulta Densidad de píxeles en el sitio web de Material Design.

Logotipo de Google Maps que muestra el espacio libre mínimo y el rango de tamaño aceptable
Ejemplo del logotipo de Google Maps que muestra el espacio libre mínimo y el rango de tamaño aceptable

Accesibilidad del logotipo

Sigue estos requisitos de accesibilidad para el logotipo de Google Maps:
  • Mantén un contraste accesible entre el logotipo y el fondo.
  • Incluye una etiqueta de accesibilidad con el texto Google Maps.
Variaciones inaceptables y problemas de accesibilidad para la atribución del logotipo de Google Maps
Ejemplos de variaciones inaceptables y problemas de accesibilidad para la atribución del logotipo de Google Maps

Atribución de texto

Si el tamaño de tu interfaz no admite el uso del logotipo de Google Maps, puedes escribir Google Maps en texto. Sigue estos lineamientos:

Variaciones aceptables de la atribución de texto de Google Maps
Ejemplos de variaciones aceptables de la atribución de texto de Google Maps
  • No modifiques el texto Google Maps de ninguna manera:
    • No cambies el uso de mayúsculas y minúsculas de Google Maps.
    • No ajustes Google Maps en varias líneas.
    • No localices Google Maps en otro idioma.
    • Evita que los navegadores traduzcan Google Maps usando el atributo HTML translate="no".
Variaciones inaceptables de la atribución de texto de Google Maps
Ejemplos de variaciones inaceptables de la atribución de texto de Google Maps
  • Aplica el estilo al texto de Google Maps como se describe en la siguiente tabla:

    Requisitos de estilo de texto de Google Maps
    Propiedad Estilo
    Familia de fuentes Roboto. Cargar la fuente es opcional.
    Familia de fuentes de resguardo Cualquier fuente de cuerpo Sans Serif que ya se use en tu producto o "Sans-Serif" para invocar la fuente predeterminada del sistema
    Estilo de fuente Normal
    Grosor de la fuente 400
    Color de la fuente Blanco, negro (#1F1F1F) o gris (#5E5E5E). Mantén un contraste accesible (4.5:1) con el fondo.
    Tamaño de fuente Tamaño de fuente mínimo: 12 sp
    Tamaño de fuente máximo: 16 sp
    Para obtener información sobre sp, consulta Unidades de tamaño de fuente en el sitio web de Material Design.
    Espacio entre letras Normal

Ejemplo de CSS

El siguiente CSS renderiza Google Maps con el estilo tipográfico y el color adecuados sobre un fondo blanco o claro.

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

Requisitos visuales

Sigue estos requisitos para el tratamiento visual de la atribución de Google Maps.
  • Posiciona la atribución cerca de la parte superior o inferior del contenido, y dentro del mismo contenedor visual. Para una sola línea de contenido, la atribución se puede posicionar a la derecha o a la izquierda.

  • Distingue visualmente el Contenido de Google Maps Platform de otro contenido usando indicadores de la IU, como un borde, un color de fondo, una sombra o un espacio en blanco suficiente.

  • No tergiverses Google Maps atribuyéndolo con contenido que no sea de Google Maps Platform.
  • Verifica que la atribución siempre sea visible y legible. Nunca la quites, ocultes, oscurezcas ni modifiques.

En las siguientes imágenes, se muestran ejemplos de estos requisitos visuales.

Ejemplo de la atribución de Google Maps ubicada en la parte superior, en la parte inferior y al costado del contenido
Ejemplo de atribución de Google Maps posicionada en la parte superior, en la parte inferior y al costado del contenido

Ejemplo de dos enfoques para diferenciar el contenido de Google Maps (la calificación del lugar) de otro contenido
Ejemplo de dos enfoques para diferenciar el Contenido de Google Maps (la calificación del lugar) de otro contenido

No ocultes la atribución de Google Maps ni la mezcles con contenido de otras fuentes.
No oscurezcas la atribución de Google Maps ni la mezcles con contenido de otras fuentes

Proveedores externos de datos

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. En el caso de algunos productos, como la API de Map Tiles, es posible que te proporcionemos la atribución requerida al proveedor de datos externo. Cuando lo hagamos, el texto de tu atribución deberá indicar el nombre "Google Maps" 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 Maps" o el logotipo de Google cuando Google proporciona la atribución de terceros.

Otros requisitos de atribución

Sigue estas instrucciones para recuperar y mostrar atribuciones de terceros en tu aplicación.

Cómo recuperar las atribuciones de un lugar

Si tu aplicación muestra información que se obtiene llamando a get place by ID, tu aplicación también deberá mostrar las atribuciones de terceros que correspondan a los detalles del lugar obtenidos.

La API devuelve un Place objeto. Para recuperar las atribuciones del objeto Place, llama a Place.getAttributions(). El método devuelve una List de objetos String, o bien null si no hay atribuciones para mostrar.

String placeId = "INSERT_PLACE_ID_HERE";
List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.DISPLAY_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 aplicación muestra fotos de lugares, debes incluir la atribución de cada foto que la incluya. PhotoMetadatapuede contener cualquiera de los dos tipos de atribuciones:

Para obtener las atribuciones de cadena de una foto, llama a PhotoMetadata.getAttributions(). El método devuelve una secuencia de caracteres HTML o una cadena 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 una List de AuthorAttribution objetos, uno por atribución del 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();

Atribuciones de resultados de la búsqueda

En Europa, cuando se usa la clasificación no adulterada de Google, los productos de búsqueda deben tener un texto explicativo a no más de 1 clic de distancia que describa los factores principales y la ponderación de los factores principales que determinan la clasificación de los resultados de la búsqueda. Texto explicativo:

Encabezado: Acerca de estos resultados

Cuerpo: Cuando buscas empresas o lugares cerca de una ubicación, Google Maps te mostrará resultados locales. Se combinan varios factores, principalmente la relevancia, la distancia y la prominencia, para ayudarte a encontrar los mejores resultados para tu búsqueda.

Botón 1: Más información
"Más información" texto debe vincularse a un artículo del Centro de ayuda.

Botón 2: Aceptar

Cómo mostrar una opinión

Un objeto Place puede contener hasta cinco opiniones, cada una representada con un Review objeto. Opcionalmente, puedes mostrar esas opiniones en tu aplicación.

Cuando muestras opiniones de los usuarios de Google, debes colocar el nombre del autor en una posición cercana. Te recomendamos incluir la foto del autor y también el vínculo a su perfil si están disponibles en su campo de atribución del objeto Review. La siguiente imagen 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 cómo se ordenan las opiniones al usuario final.

Para acceder a las opiniones, 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 a proveedores externos contienen contenido y vínculos en formato HTML que debes conservar y mostrar al usuario en el formato en que se proporcionan. 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>

Autocompletado para direcciones de usuarios finales

Cuando un usuario final usa la funcionalidad de Autocomplete en tu aplicación para clientes para escribir una dirección y esa dirección se habría proporcionado de forma completa y precisa por ese usuario final sin Autocomplete, la dirección seleccionada por el usuario final no está sujeta a las restricciones de Contenido de Google Maps en tu Acuerdo de Google Maps Platform. Esta excepción se aplica solo a la dirección seleccionada por el usuario final y únicamente para la transacción específica de ese usuario final; no se aplica a la lista de direcciones sugeridas que proporciona la funcionalidad de Autocomplete ni a otro Contenido de Google Maps. Esta excepción no se aplica a ninguna funcionalidad de búsqueda de PDI o direcciones que ofrecen otros Servicios de Google Maps Platform.

Autocompletar la dirección del usuario final

En la imagen anterior, la lista de direcciones de la izquierda aún está sujeta a las restricciones sobre el Contenido de Google Maps. Una vez que el usuario final selecciona la dirección elegida, esa dirección no está sujeta a las restricciones sobre el Contenido de Google Maps únicamente para la transacción aplicable de ese usuario final.