Place Details

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.
Seleccionar plataforma: Android iOS JavaScript Servicio web

El SDK de Places para Android proporciona a tu app información detallada sobre los lugares, incluidos el nombre y la dirección del lugar, la ubicación geográfica especificada como coordenadas de latitud y longitud, el tipo de lugar (como un club nocturno, una tienda de mascotas, un museo), entre otros. Para acceder a esta información de un sitio específico, puedes usar el id. de sitio, un identificador estable que identifica un sitio de forma exclusiva.

Detalles del lugar

El objeto Place proporciona información sobre un lugar específico. Puedes obtener un objeto Place de las siguientes maneras:

Cuando solicitas un sitio, debes especificar qué tipos de datos del lugar se deben mostrar. Para ello, pasa un List<Place.Field> y especifica los tipos de datos que se mostrarán. Esta es una consideración importante, ya que afectará el costo de cada solicitud. Debido a que los resultados de datos de sitios no pueden estar vacíos, solo se muestran resultados de sitios con datos (por ejemplo, si un sitio solicitado no tiene fotos, el campo photos no estará presente en los resultados). Puedes especificar uno o más de los siguientes campos:

  • Place.Field.ADDRESS
  • Place.Field.ADDRESS_COMPONENTS
  • Place.Field.BUSINESS_STATUS
  • Place.Field.ID
  • Place.Field.LAT_LNG
  • Place.Field.NAME
  • Place.Field.OPENING_HOURS
  • Place.Field.PHONE_NUMBER
  • Place.Field.PHOTO_METADATAS
  • Place.Field.PLUS_CODE
  • Place.Field.PRICE_LEVEL
  • Place.Field.RATING
  • Place.Field.TYPES
  • Place.Field.USER_RATINGS_TOTAL
  • Place.Field.ICON_URL
  • Place.Field.ICON_BACKGROUND_COLOR
  • Place.Field.VIEWPORT
  • Place.Field.UTC_OFFSET
  • Place.Field.WEBSITE_URI

Obtén más información sobre los campos de lugar. Para obtener más información sobre cómo se facturan las solicitudes de datos de lugar, consulta Uso y facturación.

Usa los siguientes métodos para recuperar datos de un Place:

  • getAddress(): la dirección del lugar, en un formato legible.
  • getAddressComponents(): Es un List de los componentes de dirección para este lugar. Estos componentes se proporcionan con el propósito de extraer información estructurada sobre la dirección de un lugar, por ejemplo, para encontrar la ciudad en la que se encuentra un lugar. No uses estos componentes para dar formato a las direcciones. En su lugar, llama a getAddress(), que proporciona una dirección con formato localizada.
  • getBusinessStatus(): el estado operativo del lugar, si es una empresa. Puede contener uno de los siguientes valores: OPERATIONAL, CLOSED_TEMPORARILY y CLOSED PERMANENTLY.
  • getAttributions(): las atribuciones que se deben mostrar al usuario si se utilizan datos del lugar.
  • getID(): el identificador textual del lugar. Obtén más información sobre los ID de lugar en el resto de esta página.
  • getLatLng(): la ubicación geográfica del lugar, especificada como coordenadas de latitud y longitud.
  • getName(): el nombre del lugar.
  • getOpeningHours(): el OpeningHours del lugar. Llama a OpeningHours.getWeekdayText() para ver una lista de strings que representan los horarios de apertura y cierre de cada día de la semana. Llama a OpeningHours.getPeriods() para mostrar una lista de objetos period con información más detallada equivalente a los datos proporcionados por getWeekdayText(). Nota: Si un lugar siempre está abierto, el período se representa como domingo a la medianoche y el closeEvent es nulo.
  • getPhoneNumber(): el número de teléfono del lugar.
  • getPhotoMetadatas(): los metadatos asociados a una foto asociada con el lugar, incluida la imagen de mapa de bits.
  • getPlusCode(): la ubicación del PlusCode de este lugar.
  • getPriceLevel(): el nivel de precio de este lugar, que se muestra como un número entero con valores que van de 0 (el más económico) a 4 (el más costoso).
  • getRating(): es una calificación agregada del lugar, que se muestra como un número de punto flotante con valores que van de 1.0 a 5.0, según las opiniones agregadas de los usuarios.
  • getTypes(): es una lista de tipos de sitios que caracterizan este lugar. Para obtener una lista de los tipos de sitios disponibles, consulta la documentación de la interfaz Place.
  • getUserRatingsTotal(): la cantidad total de calificaciones de los usuarios de este lugar.
  • getIconUrl(): La URL de una máscara de ícono negra que representa el tipo de lugar.
  • getIconBackgroundColor: el color de fondo del ícono para el tipo de lugar.
  • getUtcOffsetMinutes(): el desplazamiento de UTC, en minutos.
  • getViewport(): Es un viewport, que se muestra como un objeto LatLngBounds, útil para mostrar el lugar en un mapa. Puede mostrar un valor nulo si no se conoce el tamaño del lugar.
  • getWebsiteUri(): el URI del sitio web del lugar, si se conoce. Este es el sitio web que mantienen el negocio o la entidad asociada con el lugar. El resultado es null si no existe ningún sitio web conocido.
  • isOpen(): un valor booleano que indica si el lugar está abierto actualmente. Si no se especifica un horario, el valor predeterminado será el actual. isOpen solo se mostrará si Place.Field.UTC_OFFSET y Place.Field.OPENING_HOURS están disponibles. Para garantizar resultados precisos, solicita los campos Place.Field.BUSINESS_STATUS y Place.Field.UTC_OFFSET en tu solicitud de lugar original. Si no se solicita, se supone que la empresa está operativa. Consulta este video para obtener información sobre cómo usar isOpen con Place Details.

Algunos ejemplos simples:

Java


final CharSequence name = place.getName();
final CharSequence address = place.getAddress();
final LatLng location = place.getLatLng();

      

Kotlin


val name = place.name
val address = place.address
val location = place.latLng

      

Obtener un sitio por id.

Un id. de sitio es un identificador textual que identifica de forma exclusiva un sitio. En el SDK de Places para Android, puedes llamar a Place.getId() para recuperar el ID de un lugar. El servicio de Place Autocomplete también muestra un ID de lugar para cada lugar que coincida con la búsqueda y el filtro proporcionados. Puedes almacenar el ID de lugar y usarlo para recuperar el objeto Place más tarde.

Para obtener un lugar por ID, llama a PlacesClient.fetchPlace() y pasa un FetchPlaceRequest.

La API muestra un FetchPlaceResponse en un Task. El objeto FetchPlaceResponse contiene un objeto Place que coincide con el ID de lugar proporcionado.

En el siguiente ejemplo de código, se muestra cómo llamar a fetchPlace() para obtener detalles del lugar especificado.

Java


// Define a Place ID.
final String placeId = "INSERT_PLACE_ID_HERE";

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

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

placesClient.fetchPlace(request).addOnSuccessListener((response) -> {
    Place place = response.getPlace();
    Log.i(TAG, "Place found: " + place.getName());
}).addOnFailureListener((exception) -> {
    if (exception instanceof ApiException) {
        final ApiException apiException = (ApiException) exception;
        Log.e(TAG, "Place not found: " + exception.getMessage());
        final int statusCode = apiException.getStatusCode();
        // TODO: Handle error with given status code.
    }
});

      

Kotlin


// Define a Place ID.
val placeId = "INSERT_PLACE_ID_HERE"

// Specify the fields to return.
val placeFields = listOf(Place.Field.ID, Place.Field.NAME)

// Construct a request object, passing the place ID and fields array.
val request = FetchPlaceRequest.newInstance(placeId, placeFields)

placesClient.fetchPlace(request)
    .addOnSuccessListener { response: FetchPlaceResponse ->
        val place = response.place
        Log.i(PlaceDetailsActivity.TAG, "Place found: ${place.name}")
    }.addOnFailureListener { exception: Exception ->
        if (exception is ApiException) {
            Log.e(TAG, "Place not found: ${exception.message}")
            val statusCode = exception.statusCode
            TODO("Handle error with given status code")
        }
    }

      

Mostrar atribuciones en tu aplicación

Cuando tu app muestra información de lugares, también debe mostrar atribuciones. Consulta la documentación sobre las atribuciones.

Más información sobre los id. de sitio

El ID de lugar que se usa en el SDK de Places para Android es el mismo identificador que se usa en la API de Places. Cada id. de sitio puede referirse a un solo sitio, pero un solo sitio puede tener más de un id. de sitio. Existen otras circunstancias que pueden hacer que un sitio obtenga un nuevo id. de sitio. Por ejemplo, esto puede suceder si una empresa se traslada a una ubicación nueva.

Cuando solicitas un sitio mediante la especificación de un id. de sitio, puedes estar seguro de que siempre recibirás el mismo sitio en la respuesta (si el sitio aún existe). Sin embargo, ten en cuenta que la respuesta puede contener un id. de sitio diferente del que aparece en tu solicitud.

Para obtener más información, consulta la descripción general del ID de lugar.