Uma solicitação de Nearby Search (novo) usa como entrada a região
para pesquisar especificado como um círculo, definido pela latitude e longitude,
coordenadas do ponto central do círculo e o raio em metros. O
request retorna uma lista de locais correspondentes, cada um representado por uma
Place
, dentro da área de pesquisa especificada.
Por padrão, a resposta contém locais de todos os tipos na área de pesquisa. Você pode, opcionalmente, filtrar a resposta especificando uma lista de tipos de lugar para incluir ou excluir explicitamente da resposta. Por exemplo, é possível especificar incluir apenas os lugares na resposta que sejam do tipo "restaurante", "padaria" e "café" ou excluir todos os lugares do tipo "escola".
Solicitações do Nearby Search (novo)
Faça uma solicitação de Nearby Search (novo) chamando
PlacesClient.searchNearby
,
transmitir um
SearchNearbyRequest
que define os parâmetros da solicitação.
O objeto SearchNearbyRequest
especifica todos os atributos obrigatórios e opcionais,
parâmetros para a solicitação. Os parâmetros obrigatórios incluem:
- A lista de campos a serem retornados no objeto
Place
, que também é conhecido como um máscara de campo. Se você não especificar pelo menos um campo na lista ou se você omitir a lista de campos, a chamada retornará um erro. - A restrição de local para a área de pesquisa, definida como um par de latitude/longitude e valor do raio, em metros.
Este exemplo de solicitação de pesquisa por perto especifica que a resposta os objetos Place
contêm os campos de lugar Place.Field.ID
e Place.Field.NAME
para cada
Place
nos resultados da pesquisa. Ele também filtra a resposta apenas para
retornar lugares do tipo "restaurante" e "café", mas excluir lugares do tipo
"restaurante_pizza" e "american_restaurante".
// 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(); });
Respostas do Nearby Search (novo)
O
SearchNearbyResponse
representa a resposta de uma solicitação de pesquisa. Um SearchNearbyResponse
contém:
- Uma lista de objetos
Place
que representam todos os lugares correspondentes, com umPlace
objeto por lugar correspondente. - Cada objeto
Place
contém apenas os campos definidos pela lista de campos passada na solicitação.
Por exemplo, na solicitação, você definiu uma lista de campos como:
// 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);
Essa lista de campos significa que cada objeto Place
na resposta contém apenas o
ID e o nome de cada local correspondente. Em seguida, use o Place.getId()
e Place.getName()
para acessar esses campos em cada objeto Place
.
Para mais exemplos de como acessar dados em um objeto Place
, consulte Acessar o Place
campos de dados de objetos.
Parâmetros obrigatórios
Use o
SearchNearbyRequest
para especificar os parâmetros necessários para a pesquisa.
Lista de campos
Ao solicitar detalhes do lugar, você deve especificar os dados a serem retornados no Objeto
Place
para o lugar como uma máscara de campo. Para definir a máscara de campo, transmita uma matriz de valores dePlace.Field
ao objetoSearchNearbyRequest
. O mascaramento de campo é uma boa prática de design para garantir que você não solicite dados desnecessários, o que ajuda a evitar tempo de processamento e cobranças de faturamento desnecessários.Especifique um ou mais dos seguintes campos:
Os campos a seguir acionam o recurso 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
Os campos a seguir acionam o recurso Nearby Search (Avançado) 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
Os campos a seguir acionam o recurso Nearby Search (Preferencial) 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 definir o parâmetro da lista de campos, chame o método
setPlaceFields()
ao criar o objetoSearchNearbyRequest
.O exemplo a seguir define uma lista de dois valores de campo para especificar que o O objeto
Place
retornado por uma solicitação contémPlace.Field.ID
e 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);
Restrição de local
Um
LocationRestriction
objeto que define a região a ser pesquisada, especificado como um círculo, definido por ponto central e o raio em metros. O raio deve estar entre maior que 0,0 e menor ou igual a 50000,0, tendo em mente que especificar um raio muito pequeno retornamZERO_RESULTS
como resposta.Para definir o parâmetro de restrição de local, chame o método
setLocationRestriction()
ao criar o objetoSearchNearbyRequest
.
Parâmetros opcionais
Use o
SearchNearbyRequest
para especificar os parâmetros opcionais da pesquisa.
-
Tipos e tipos principais
Permite especificar uma lista de tipos de tipos Tabela A usada para filtrar nos resultados da pesquisa. Até 50 tipos podem ser especificados em cada categoria de restrição.
Um lugar só pode ter um único tipo principal dos tipos Tabela A associada a reimplantá-lo. Por exemplo, o tipo principal pode ser
"mexican_restaurant"
ou"steak_house"
. UsarincludedPrimaryTypes
eexcludedPrimaryTypes
para filtrar os resultados o tipo principal de um lugar.Um lugar também pode ter vários valores de tipo de tipos. Tabela A associados a ele. Por exemplo, um restaurante pode ter os seguintes tipos:
"seafood_restaurant"
,"restaurant"
e"food"
."point_of_interest"
,"establishment"
. Usar oincludedTypes
eexcludedTypes
para filtrar os resultados na lista de tipos associados a de um lugar.Quando você especifica um tipo principal geral, como
"restaurant"
ou"hotel"
, a resposta pode conter locais com uma tipo primário específico que o especificado. Por exemplo, você especifica incluem um tipo principal de"restaurant"
; A resposta pode contêm lugares com um tipo principal de"restaurant"
, mas o a resposta também pode conter locais com um tipo primário mais específico, como"chinese_restaurant"
ou"seafood_restaurant"
.Se uma pesquisa for especificada com várias restrições de tipo, apenas lugares que satisfaçam todas as restrições são retornadas. Por exemplo, se você especificar
includedTypes = Arrays.asList("restaurant")
eexcludedPrimaryTypes = Arrays.asList("steak_house")
, os Os lugares retornados oferecem serviços relacionados ao"restaurant"
, mas não funcionam principalmente como"steak_house"
.Para ver um exemplo de como usar
includedTypes
eexcludedTypes
, consulte Solicitações do Nearby Search (novo).Tipos incluídos
Uma lista dos tipos de lugar de Tabela A a ser pesquisada. Se esse parâmetro for omitido, lugares de todos os tipos serão retornados.
Para definir o parâmetro de tipos incluídos, chame o método
setIncludedTypes()
ao criar o objetoSearchNearbyRequest
.Tipos excluídos
Uma lista de tipos de lugar de Tabela A para excluir de uma pesquisa.
Se você especificar o
includedTypes
(como"school"
) e oexcludedTypes
(como"primary_school"
) na solicitação, depois o a resposta inclui lugares categorizados como"school"
, mas não como"primary_school"
. A resposta inclui locais que correspondem a pelo menos um dos aincludedTypes
e nenhuma daexcludedTypes
.Se houver algum tipo conflitante, como um tipo que aparece em
includedTypes
eexcludedTypes
, será retornado um erroINVALID_REQUEST
.Para definir o parâmetro de tipos excluídos, chame o método
setExcludedTypes()
ao criar o objetoSearchNearbyRequest
.Tipos principais incluídos
Uma lista dos principais tipos de lugar de Tabela A para incluir em uma pesquisa.
Para definir o parâmetro de tipos principais incluído, chame o método
setIncludedPrimaryTypes()
ao criar o objetoSearchNearbyRequest
.Tipos principais excluídos
Uma lista dos principais tipos de lugar de Tabela A a ser excluída de uma pesquisa.
Se houver algum tipo principal conflitante, como um tipo que aparece
includedPrimaryTypes
eexcludedPrimaryTypes
, umaINVALID_ARGUMENT
será retornado.Para definir o parâmetro de tipos principais excluídos, chame o método
setExcludedPrimaryTypes()
ao criar o objetoSearchNearbyRequest
. -
Contagem máxima de resultados
Especifica o número máximo de resultados de lugar a serem retornados. Precisa estar entre 1 e 20 (padrão).
Para definir o parâmetro de contagem máxima de resultados, chame o método
setMaxResultCount()
ao criar o objetoSearchNearbyRequest
. -
Preferência de classificação
O tipo de classificação a ser usado. Se esse parâmetro for omitido, os resultados serão classificados por popularidade. Pode ser uma das seguintes opções:
POPULARITY
(padrão) classifica os resultados com base na popularidade.DISTANCE
Classifica os resultados em ordem crescente de distância do em um local específico.
Para definir o parâmetro de preferência de classificação, chame o método
setRankPreference()
ao criar o objetoSearchNearbyRequest
. -
Código de região
O código da região usado para formatar a resposta, especificado como um de dois caracteres. Não há valor padrão.
Se o nome do país do campo
formattedAddress
na resposta corresponder aoregionCode
, o código do país é omitido deformattedAddress
.A maioria dos códigos CLDR é idêntica códigos ISO 3166-1, com algumas exceções notáveis. Por exemplo, o ccTLD do Reino Unido é "uk" (.co.uk), enquanto o código ISO 3166-1 é "gb" (tecnicamente para os "Reino Unido da Grã-Bretanha e Irlanda do Norte"). O parâmetro pode afetar os resultados com base na legislação aplicável.
Para definir o parâmetro do código da região, chame o método
setRegionCode()
ao criar o objetoSearchNearbyRequest
.
Exibir atribuições no seu aplicativo
Quando o app exibe informações recebidas de
PlacesClient
,
como fotos e avaliações, o app também precisará exibir as atribuições necessárias.
Para mais informações, consulte Políticas do SDK do Places para Android.