Migra a Place Details (nuevo)

El SDK de Places para Android admite los detalles de lugares existentes. Si conoces el SDK de Places existente para Android, la nueva versión de Place Details realiza los siguientes cambios:

  • Usa un nuevo modelo de precios. Para obtener información sobre los precios de todas las APIs, consulta el SDK de Places para Android (nuevo).

  • Debes inicializar tu app llamando al método Places.initializeWithNewPlacesApiEnabled(). Para obtener más información sobre cómo seleccionar el servicio de la API de Places, consulta Configura tu proyecto de Google Cloud.

  • Se requiere el enmascaramiento de campos. Debes especificar qué campos deseas que se muestren en la respuesta. No hay una lista predeterminada de campos que se muestran. Si omites esta lista, los métodos mostrarán un error.

En las siguientes secciones, se describen los cambios adicionales.

Accede a nuevos tipos de lugares

Cada lugar puede tener uno o más valores de type asociados. El SDK de Places para Android versión 3.3.0 y versiones posteriores agrega muchos valores de tipo nuevos. Para obtener la lista completa, consulta Tipos de lugares expandidos.

El método Place.getPlaceTypes() muestra los valores de tipo como una lista de valores de cadena. Los valores que se muestran dependen de la versión del SDK de Places para Android:

  • SDK de Places para Android (nuevo): Muestra las cadenas definidas en las tablas A y B que se muestran en Tipos de lugares (nuevos), incluidos todos los tipos de lugares agregados en la versión 3.3.0.

  • SDK de Places para Android: Muestra las enums definidas por Place.Types, que no incluye los tipos nuevos agregados en la versión 3.3.0 y versiones posteriores.

Accede a las opiniones de lugares

El SDK de Places para Android (nuevo) agrega la clase Review, que contiene una opinión sobre un lugar. El objeto Place puede contener hasta cinco opiniones.

La clase Review también puede contener una atribución y una atribución de autor. Si muestras la opinión en tu app, también debes mostrar cualquier atribución o atribución del autor. Para obtener más información, consulta Cómo mostrar una opinión.

Para obtener más información, consulta la documentación sobre las atribuciones.

Accede al código de idioma del nombre del lugar

El método Place.getName() existente muestra una cadena de texto que contiene el nombre de un lugar. Para propagar el objeto Place con el nombre del lugar, debes incluir Place.Field.DISPLAY_NAME en la lista de campos de la solicitud de Place Details.

El objeto Place ahora contiene el código de idioma de la cadena de nombre. Para propagar el objeto Place con el código de idioma, debes hacer lo siguiente:

  1. Incluye el Place.Field.DISPLAY_NAME en la lista de campos de la solicitud. Este valor configura la respuesta para que incluya el nombre del lugar y el código de idioma en el objeto Place.

  2. Llama a PlacesClient.fetchPlace(). PlacesClient.findCurrentPlace() no admite el campo de código de idioma.

  3. Usa el método Place.getNameLanguageCode() para acceder al campo de código de idioma en el objeto Place.

Cómo establecer el código de región

El SDK de Places para Android (nuevo) agrega el parámetro de solicitud de código de región a Place Details. El código de región se usa para dar formato a la respuesta, que se especifica como un valor de código CLDR de dos caracteres. Este parámetro también puede tener un efecto sesgado en los resultados de la búsqueda. No hay un valor predeterminado. Debes habilitar el nuevo SDK para establecer el código de región.

Si el nombre del país del campo de dirección en la respuesta coincide con el código de región, se omite el código de país de la dirección.

La mayoría de los códigos CLDR son idénticos a los códigos ISO 3166-1, con algunas excepciones notables. Por ejemplo, el ccTLD del Reino Unido es “uk” (.co.uk), mientras que su código ISO 3166-1 es “gb” (técnicamente para la entidad de “Reino Unido de Gran Bretaña e Irlanda del Norte”). El parámetro puede afectar los resultados según la ley aplicable.

Ejemplo de solicitud

Para ver un ejemplo completo, consulta Place Details (New).