Puedes solicitar más detalles sobre un establecimiento o punto de interés en particular. Para ello, usa su ID de lugar y realiza una solicitud de Place Details (nuevo). Place Details (nuevo) muestra información más completa sobre el lugar indicado, como su dirección completa, su número de teléfono, su calificación y sus opiniones.
Existen muchas formas de obtener un ID de lugar. Puedes usar:
Solicitudes de Place Details (nuevas)
Para solicitar detalles de un lugar, llama a PlacesClient.fetchPlace()
y pasa un objeto FetchPlaceRequest
que contenga un ID de lugar y una lista de campos, así como cualquier parámetro opcional:
// Define a place ID.
final String placeId = "INSERT_PLACE_ID_HERE";
// Specify the list of fields to return.
final List<Place.Field> placeFields = Arrays.asList("INSERT_PLACE_FIELDS_HERE");
// Construct a request object, passing the place ID and field list.
final FetchPlaceRequest request = FetchPlaceRequest.newInstance(placeId, placeFields);
// Pass the request object and make the request
Task<FetchPlaceResponse> placeTask = placesClient.fetchPlace(request);
Respuestas de Place Details (nuevo)
Place Details (nuevo) muestra los datos en forma de un objeto Place
, que solo incluye los campos que solicitaste con la lista de campos. Los resultados de los datos de lugares no pueden estar vacíos, por lo que solo se muestran resultados de lugares con datos (por ejemplo, si un lugar solicitado no tiene fotos, el campo de fotos no estará presente en el resultado).
Para acceder a los campos de datos, llama al método correspondiente.
Por ejemplo, para acceder al nombre del lugar, llama a getName()
.
Parámetros obligatorios
Los parámetros obligatorios para FetchPlaceRequest
son los siguientes:
-
ID de lugar
Es un identificador textual que identifica un lugar de forma exclusiva y que se muestra en una Text Search (nuevo), Nearby Search (nuevo) o Autocomplete (nuevo). Para obtener más información sobre los IDs de lugar, consulta la descripción general de los IDs de lugar.
-
Lista de campos
Cuando solicitas un lugar, debes especificar qué datos del lugar se deben devolver. Para ello, pasa una lista de valores
Place.Field
que especifiquen los datos que se mostrarán. No hay una lista predeterminada de campos que se muestran en la respuesta.Las listas de campos son una práctica de diseño recomendada para garantizar que no solicites datos innecesarios, lo que ayuda a evitar tiempos de procesamiento y cargos de facturación adicionales.Esta lista es una consideración importante porque afecta el costo de cada solicitud. Para obtener más información, consulta Uso y facturación.
Especifica uno o más de los siguientes campos:
Los siguientes campos activan el SKU Place Details (solo IDs):
Place.Field.DISPLAY_NAME
Place.Field.ID
Place.Field.PHOTO_METADATAS
Place.Field.RESOURCE_NAME
Los siguientes campos activan el SKU de Place Details (solo ubicación):
Place.Field.ADDRESS_COMPONENTS
ADR_FORMAT_ADDRESS
Place.Field.FORMATTED_ADDRESS
Place.Field.LOCATION
Place.Field.PLUS_CODE
Place.Field.SHORT_FORMATTED_ADDRESS
Place.Field.TYPES
Place.Field.VIEWPORT
Los siguientes campos activan el SKU de Place Details (Basic):
Place.Field.ACCESSIBILITY_OPTIONS
Place.Field.BUSINESS_STATUS
Place.Field.GOOGLE_MAPS_URI
Place.Field.ICON_BACKGROUND_COLOR
Place.Field.ICON_MASK_URL
Place.Field.PRIMARY_TYPE
Place.Field.PRIMARY_TYPE_DISPLAY_NAME
Place.Field.SUB_DESTINATIONS
Place.Field.UTC_OFFSET
Los siguientes campos activan el SKU de Place Details (Advanced):
Place.Field.CURRENT_OPENING_HOURS
Place.Field.CURRENT_SECONDARY_OPENING_HOURS
Place.Field.INTERNATIONAL_PHONE_NUMBER
Place.Field.NATIONAL_PHONE_NUMBER
Place.Field.OPENING_HOURS
Place.Field.PRICE_LEVEL
Place.Field.RATING
Place.Field.SECONDARY_OPENING_HOURS
Place.Field.USER_RATING_COUNT
Place.Field.WEBSITE_URI
Los siguientes campos activan el SKU Place Details (Preferred):
Place.Field.ALLOWS_DOGS
Place.Field.CURBSIDE_PICKUP
Place.Field.DELIVERY
Place.Field.DINE_IN
Place.Field.EDITORIAL_SUMMARY
Place.Field.EV_CHARGE_OPTIONS
Place.Field.FUEL_OPTIONS
Place.Field.GOOD_FOR_CHILDREN
Place.Field.GOOD_FOR_GROUPS
Place.Field.GOOD_FOR_WATCHING_SPORTS
Place.Field.LIVE_MUSIC
Place.Field.MENU_FOR_CHILDREN
Place.Field.OUTDOOR_SEATING
Place.Field.PARKING_OPTIONS
Place.Field.PAYMENT_OPTIONS
Place.Field.RESERVABLE
Place.Field.RESTROOM
Place.Field.REVIEWS
Place.Field.SERVES_BEER
Place.Field.SERVES_BREAKFAST
Place.Field.SERVES_BRUNCH
Place.Field.SERVES_COCKTAILS
Place.Field.SERVES_COFFEE
Place.Field.SERVES_DESSERT
Place.Field.SERVES_DINNER
Place.Field.SERVES_LUNCH
Place.Field.SERVES_VEGETARIAN_FOOD
Place.Field.SERVES_WINE
Place.Field.TAKEOUT
Parámetros opcionales
Los parámetros opcionales para FetchPlaceRequest
son los siguientes:
Código de la región
Es el código de región que se usa para dar formato a la respuesta, especificado como un valor de código CLDR de dos caracteres. No hay un valor predeterminado.
Si el nombre del país del campo
Place.Field.FORMATTED_ADDRESS
en la respuesta coincide conregionCode
, se omite el código de país dePlace.Field.FORMATTED_ADDRESS
.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 "Reino Unido de Gran Bretaña e Irlanda del Norte"). El parámetro puede afectar los resultados según la ley aplicable.
Para establecer el parámetro de código de región, llama al método
setRegionCode()
cuando compiles el objetoFetchPlaceRequest
.-
Token de sesión
Los tokens de sesión son cadenas generadas por el usuario que hacen un seguimiento de las llamadas a Autocomplete (nuevo) como "sesiones". Autocomplete (nuevo) usa tokens de sesión para agrupar las fases de consulta y selección de lugar de una búsqueda de autocompletado del usuario en una sesión discreta para realizar la facturación correspondiente. Los tokens de sesión se pasan a las llamadas a Place Details (nuevo) que siguen a las llamadas a Autocomplete (nuevo). Para obtener más información, consulta Tokens de sesión.
Para establecer el parámetro de token de sesión, llama al método
setSessionToken()
cuando compiles el objetoFetchPlaceRequest
.
Ejemplo de Place Details
En el siguiente ejemplo, se solicitan los campos ID
, DISPLAY_NAME
y FORMATTED_ADDRESS
para el Empire State Building en la ciudad de Nueva York.
// Define a place ID.
final String placeId = "ChIJaXQRs6lZwokRY6EFpJnhNNE";
// Specify the list of fields to return.
final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.DISPLAY_NAME, Place.Field.FORMATTED_ADDRESS);
// Construct a request object, passing the place ID and field list.
final FetchPlaceRequest request = FetchPlaceRequest.newInstance(placeId, placeFields);
// Pass the request object and make the request
Task<FetchPlaceResponse> placeTask = placesClient.fetchPlace(request);