Una solicitud de Nearby Search (nueva) toma como entrada la región
para buscar especificado como un círculo, definido por la latitud y la longitud
coordenadas del punto central del círculo y el radio en metros. El
request devuelve una lista de los lugares coincidentes, cada uno de ellos representado por un
Place
dentro del área de búsqueda especificada.
De forma predeterminada, la respuesta contiene lugares de todo tipo dentro del área de búsqueda. También puedes filtrar la respuesta especificando una lista de tipos de lugares para incluir en la respuesta o excluir de ella de manera explícita. Por ejemplo, puedes especificar incluir solo los lugares en la respuesta que sean del tipo “restaurante”, "panadería" y "cafetería", o bien excluir todos los lugares del tipo "escuela".
Solicitudes de Nearby Search (nuevo)
Realizar una solicitud de Nearby Search (nuevo) llamando
PlacesClient.searchNearby
:
pasar un
SearchNearbyRequest
que define los parámetros de la solicitud.
El objeto SearchNearbyRequest
especifica todos los datos
parámetros para la solicitud. Entre los parámetros obligatorios, se incluyen los siguientes:
- La lista de campos que se debe mostrar en el objeto
Place
, que también se conoce como máscara de campo. Si no especificas al menos un campo en la lista de campos omites la lista de campos, entonces la llamada muestra un error. - La restricción de ubicación para el área de búsqueda, definida como par latitud/longitud y valor de radio en metros.
En este ejemplo de solicitud de búsqueda cercana, se especifica que los objetos Place
de respuesta
contener los campos de lugar Place.Field.ID
y Place.Field.NAME
para cada
Place
en los resultados de la búsqueda. También filtra la respuesta para que solo se muestre
devolver lugares de tipo "restaurante" y "cafe", pero excluir lugares del tipo
"pizza_restaurante" y "american_restaurant".
// Define a list of fields to include in the response for each returned place. final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.NAME); // Define the search area as a 1000 meter diameter circle in New York, NY. LatLng center = new LatLng(40.7580, -73.9855); CircularBounds circle = CircularBounds.newInstance(center, /* radius = */ 1000); // Define a list of types to include. final List<String> includedTypes = Arrays.asList("restaurant", "cafe"); // Define a list of types to exclude. final List<String> excludedTypes = Arrays.asList("pizza_restaurant", "american_restaurant"); // Use the builder to create a SearchNearbyRequest object. final SearchNearbyRequest searchNearbyRequest = SearchNearbyRequest.builder(/* location restriction = */ circle, placeFields) .setIncludedTypes(includedTypes) .setExcludedTypes(excludedTypes) .setMaxResultCount(10) .build()); // Call placesClient.searchNearby() to perform the search. // Define a response handler to process the returned List of Place objects. placesClient.searchNearby(searchNearbyRequest) .addOnSuccessListener(response -> { List<Place> places = response.getPlaces(); });
Respuestas de Nearby Search (nuevo)
El
SearchNearbyResponse
la clase representa la respuesta de una solicitud de búsqueda. Un SearchNearbyResponse
El objeto contiene lo siguiente:
- Una lista de objetos
Place
que representan todos los lugares coincidentes, con unoPlace
objeto por lugar coincidente. - Cada objeto
Place
solo contiene los campos definidos por la lista de campos pasado en la solicitud.
Por ejemplo, en la solicitud, definiste una lista de campos de la siguiente manera:
// Define a list of fields to include in the response for each returned place. final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.NAME);
Esta lista de campos indica que cada objeto Place
de la respuesta contiene solo el
ID de lugar y nombre de cada lugar coincidente. Luego, puedes usar Place.getId()
y Place.getName()
para acceder a estos campos en cada objeto Place
.
Para obtener más ejemplos de acceso a datos en un objeto Place
, consulta Access Place
los campos de datos de objeto.
Parámetros obligatorios
Usa el
SearchNearbyRequest
objeto para especificar los parámetros necesarios para la búsqueda.
Lista de campos
Cuando solicitas detalles del lugar, debes especificar los datos que se devolverán en el Es el objeto
Place
del lugar como máscara de campo. Para definir la máscara de campo, pasa un array de valores a partir dePlace.Field
al objetoSearchNearbyRequest
. El enmascaramiento de campo es una práctica de diseño recomendada para asegurarse de no solicitar datos innecesarios, lo que ayuda a evitar tiempo de procesamiento innecesario y cargos de facturación.Especifica uno o más de los siguientes campos:
Los siguientes campos activan la búsqueda de Nearby Search (Básico) SKU:
Place.Field.ADDRESS_COMPONENTS
,Place.Field.BUSINESS_STATUS
,Place.Field.ADDRESS
,Place.Field.ICON_BACKGROUND_COLOR
,Place.Field.ICON_URL
,Place.Field.LAT_LNG
,Place.Field.PHOTO_METADATAS
,Place.Field.PLUS_CODE
,Place.Field.ID
,Place.Field.NAME
,Place.Field.TYPES
,Place.Field.UTC_OFFSET
,Place.Field.VIEWPORT
,Place.Field.WHEELCHAIR_ACCESSIBLE_ENTRANCE
Los siguientes campos activan la búsqueda de Nearby Search (Avanzado) SKU:
Place.Field.CURRENT_OPENING_HOURS
,Place.Field.SECONDARY_OPENING_HOURS
,Place.Field.PHONE_NUMBER
,Place.Field.PRICE_LEVEL
,Place.Field.RATING
,Place.Field.OPENING_HOURS
,Place.Field.USER_RATINGS_TOTAL
,Place.Field.WEBSITE_URI
Los siguientes campos activan la búsqueda de Nearby Search (Preferido) SKU:
Place.Field.CURBSIDE_PICKUP
,Place.Field.DELIVERY
,Place.Field.DINE_IN
,Place.Field.EDITORIAL_SUMMARY
,Place.Field.RESERVABLE
,Place.Field.REVIEWS
,Place.Field.SERVES_BEER
,Place.Field.SERVES_BREAKFAST
,Place.Field.SERVES_BRUNCH
,Place.Field.SERVES_DINNER
,Place.Field.SERVES_LUNCH
,Place.Field.SERVES_VEGETARIAN_FOOD
,Place.Field.SERVES_WINE
,Place.Field.TAKEOUT
Para establecer el parámetro de lista de campos, llama al
setPlaceFields()
cuando compiles el objetoSearchNearbyRequest
.En el siguiente ejemplo, se define una lista de dos valores de campo para especificar que el El objeto
Place
que muestra una solicitud contiene las propiedadesPlace.Field.ID
y CamposPlace.Field.NAME
:
// Define a list of fields to include in the response for each returned place. final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.NAME);
Restricción de ubicación
R
LocationRestriction
objeto que define la región en la que se buscará, especificada como un círculo, definida por punto central y radio en metros. El radio debe ser mayor que 0.0 e inferior o igual a 50,000.0, si se tiene en cuenta que especificar un radio demasiado pequeño Se muestraZERO_RESULTS
como respuesta.Para establecer el parámetro de restricción de ubicación, llama al
setLocationRestriction()
cuando compiles el objetoSearchNearbyRequest
.
Parámetros opcionales
Usa el
SearchNearbyRequest
para especificar los parámetros opcionales de la búsqueda.
-
Tipos y tipos principales
Te permite especificar una lista de tipos de tipos Se usa la Tabla A para filtrar los resultados de la búsqueda. Se pueden especificar hasta 50 tipos en cada categoría de restricción de tipos.
Un lugar solo puede tener un único tipo principal de los tipos Tabla A asociada con que la modifica. Por ejemplo, el tipo principal podría ser
"mexican_restaurant"
o"steak_house"
. UsaincludedPrimaryTypes
yexcludedPrimaryTypes
para filtrar los resultados el tipo principal de un lugar.Un lugar también puede tener varios valores de tipo de tipos Tabla A asociados con ella. Por ejemplo, un restaurante puede tener los siguientes tipos:
"seafood_restaurant"
,"restaurant"
y"food"
"point_of_interest"
,"establishment"
. UsaincludedTypes
yexcludedTypes
para filtrar los resultados en la lista de tipos asociados con un lugar.Cuando especificas un tipo principal general, como
"restaurant"
o"hotel"
, la respuesta puede contener lugares con una un tipo principal específico que el especificado. Por ejemplo, puedes especificar Incluye un tipo principal de"restaurant"
. Luego, la respuesta puede pueden contener lugares con un tipo principal de"restaurant"
, pero la también puede contener sitios con un tipo principal más específico, como"chinese_restaurant"
o"seafood_restaurant"
.Si se especifica una búsqueda con varias restricciones de tipo, solo los lugares que satisfagan todas las restricciones. Por ejemplo, si especificas
includedTypes = Arrays.asList("restaurant")
yexcludedPrimaryTypes = Arrays.asList("steak_house")
, el Los lugares que se muestran proporcionan servicios relacionados con"restaurant"
, pero no operan principalmente como"steak_house"
.Para ver un ejemplo de cómo usar
includedTypes
yexcludedTypes
, consulta Solicitudes de Nearby Search (nuevo):Tipos incluidos
Una lista de los tipos de lugares de Tabla A para buscar. Si se omite este parámetro, se devuelven lugares de todos los tipos.
Para establecer el parámetro de tipos incluidos, llama al método
setIncludedTypes()
cuando compiles el objetoSearchNearbyRequest
.Tipos excluidos
Una lista de los tipos de lugares de Tabla A para excluir de un búsqueda.
Si especificas tanto
includedTypes
(como"school"
) comoexcludedTypes
(como"primary_school"
) en la solicitud y, luego, el incluye lugares categorizados como"school"
, pero no como"primary_school"
La respuesta incluye lugares que coinciden con al menos uno de elincludedTypes
y ninguno de losexcludedTypes
.Si hay tipos en conflicto, como uno que aparezca en
includedTypes
yexcludedTypes
, se muestra un errorINVALID_REQUEST
.Para establecer el parámetro de tipos excluidos, llama al método
setExcludedTypes()
cuando compiles el objetoSearchNearbyRequest
.Tipos principales incluidos
Una lista de los tipos de lugares principales de Tabla A que se debe incluir en una búsqueda.
Para establecer el parámetro de tipos principales incluidos, llama al método
setIncludedPrimaryTypes()
cuando compiles el objetoSearchNearbyRequest
.Tipos principales excluidos
Una lista de los tipos de lugares principales de Tabla A para excluir de una búsqueda.
Si hay tipos principales en conflicto, como uno que aparezca en ambos
includedPrimaryTypes
yexcludedPrimaryTypes
, un Se muestra el errorINVALID_ARGUMENT
.Para establecer el parámetro de tipos principales excluidos, llama al método
setExcludedPrimaryTypes()
cuando compiles el objetoSearchNearbyRequest
. -
Cantidad máxima de resultados
Especifica la cantidad máxima de resultados de lugares que se mostrarán. Debe ser un valor entre 1 y 20 (predeterminado), ambos incluidos.
Para establecer el parámetro de cantidad máxima de resultados, llama al método
setMaxResultCount()
cuando compiles el objetoSearchNearbyRequest
. -
Preferencia de clasificación
El tipo de clasificación que se usará. Si se omite este parámetro, los resultados se clasifican por popularidad. Puede ser una de las siguientes opciones:
POPULARITY
(predeterminado) ordena los resultados según su popularidad.DISTANCE
ordena los resultados en forma ascendente por su distancia desde la ubicación especificada.
Para establecer el parámetro de preferencia de clasificación, llama al método
setRankPreference()
cuando compiles el objetoSearchNearbyRequest
. -
Código de la región
El código de región que se usa para dar formato a la respuesta, especificado como una valor de código CLDR de dos caracteres. No hay un valor predeterminado.
Si el nombre del país del campo
formattedAddress
en la respuesta coincide con elregionCode
, el código de país se omite deformattedAddress
.La mayoría de los códigos CLDR son idénticos a códigos ISO 3166-1, con algunas excepciones notables. Por ejemplo, el ccTLD del Reino Unido es “uk” (.co.uk), mientras que el código ISO 3166-1 es "gb" (técnicamente para el del "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 objetoSearchNearbyRequest
.
Mostrar atribuciones en tu aplicación
Cuándo muestra la app información obtenida de
PlacesClient
:
como fotos y opiniones, la app también debe mostrar las atribuciones requeridas.
Para obtener más información, consulta las Políticas del SDK de Places para Android