Une requête Nearby Search (New) prend en entrée la région
pour effectuer une recherche spécifiée sous la forme d'un cercle, définie par la latitude et la longitude
coordonnées du point central du cercle et du rayon en mètres. La
renvoie une liste de lieux correspondants, chacun représenté par un
Place
dans la zone de recherche spécifiée.
Par défaut, la réponse contient des lieux de tous types dans la zone de recherche. Vous pouvez éventuellement filtrer la réponse en spécifiant une liste de types de lieux à explicitement inclus dans la réponse ou exclus de celle-ci. Par exemple, vous pouvez spécifier pour n'inclure dans la réponse que les lieux de type "restaurant", "boulangerie" et "café", ou exclure tous les lieux de type "école".
Requêtes Nearby Search (nouvelle version)
Envoyer une requête Nearby Search (New) en appelant
PlacesClient.searchNearby
,
en transmettant
SearchNearbyRequest
qui définit les paramètres de la requête.
L'objet SearchNearbyRequest
spécifie tous les champs obligatoires et facultatifs
pour la requête. Les paramètres obligatoires sont les suivants:
- Liste des champs à renvoyer dans l'objet
Place
, également appelé masque de champ. Si vous ne spécifiez pas au moins un champ dans la liste des champs ou si vous omettez la liste des champs, l'appel renvoie une erreur. - Restriction géographique pour la zone de recherche, définie comme une la paire latitude/longitude et la valeur du rayon, en mètres.
Cet exemple de requête de recherche à proximité indique que la réponse avec les objets Place
contiennent les champs de lieu Place.Field.ID
et Place.Field.NAME
pour chaque
Place
dans les résultats de recherche. De plus, la réponse est filtrée
afficher des lieux de type "restaurant" et "café", mais exclure des lieux de type
"restaurant_pizza" et "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(); });<ph type="x-smartling-placeholder">
Réponses Nearby Search (nouvelle)
La
SearchNearbyResponse
représente la réponse à partir d'une requête de recherche. SearchNearbyResponse
contient:
- Liste d'objets
Place
représentant tous les lieux correspondants, avec un objetPlace
objet par lieu correspondant. - Chaque objet
Place
ne contient que les champs définis par la liste de champs. transmis dans la requête.
Par exemple, dans la requête, vous avez défini une liste de champs comme suit:
// 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);
Cette liste de champs signifie que chaque objet Place
de la réponse ne contient que les
l'identifiant et le nom de chaque lieu correspondant. Vous pouvez ensuite utiliser Place.getId()
et Place.getName()
pour accéder à ces champs dans chaque objet Place
.
Pour plus d'exemples d'accès aux données d'un objet Place
, consultez Accéder à Place
champs de données d'objet.
Paramètres obligatoires
Utilisez les
SearchNearbyRequest
pour spécifier les paramètres requis pour la recherche.
Liste des champs
Lorsque vous demandez des détails sur un lieu, vous devez spécifier les données à renvoyer dans le Objet
Place
pour le lieu en tant que masque de champ. Pour définir le masque de champ, transmettez un tableau de valeursPlace.Field
à l'objetSearchNearbyRequest
. Le masquage du champ est une bonne pratique de conception pour vous assurer de ne pas demander de données inutiles, ce qui permet d'éviter le temps de traitement et les frais de facturation inutiles.Renseignez un ou plusieurs des champs suivants:
Les champs suivants déclenchent l'événement Nearby Search (De base) 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
.Les champs suivants déclenchent l'événement Nearby Search (Avancé) 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
Les champs suivants déclenchent l'événement Nearby Search (À privilégier) 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
.
Pour définir le paramètre de liste de champs, appelez la méthode
setPlaceFields()
lors de la création de l'objetSearchNearbyRequest
.L'exemple suivant définit une liste de deux valeurs de champ pour spécifier que le paramètre L'objet
Place
renvoyé par une requête contient les champsPlace.Field.ID
et ChampsPlace.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);
Restriction géographique
A
LocationRestriction
qui définit la zone de recherche spécifiée sous la forme d'un cercle, défini par le point central et le rayon en mètres. Le rayon doit être compris entre 0,0 et inférieure ou égale à 50000,0.Sachez que si vous spécifiez un rayon trop petit, renvoyerZERO_RESULTS
comme réponse.Pour définir le paramètre de restriction en fonction de l'emplacement, appelez la méthode
setLocationRestriction()
lors de la création de l'objetSearchNearbyRequest
.
Paramètres facultatifs
Utilisez les
SearchNearbyRequest
pour spécifier les paramètres facultatifs de la recherche.
-
Types et types principaux
Permet de spécifier une liste de types à partir des types Tableau A utilisé pour filtrer les résultats de recherche. Vous pouvez spécifier jusqu'à 50 types dans chaque catégorie de restriction de type.
Un lieu ne peut avoir qu'un seul type principal issu des types Le Tableau A est associé aux Par exemple, le type principal peut être
"mexican_restaurant"
ou"steak_house"
. UtilisezincludedPrimaryTypes
etexcludedPrimaryTypes
pour filtrer les résultats. le type principal d'un lieu.Un lieu peut également avoir plusieurs valeurs de type à partir des types. Tableau A qui lui est associée. Par exemple, un restaurant peut posséder les types suivants:
"seafood_restaurant"
,"restaurant"
,"food"
"point_of_interest"
,"establishment"
. UtiliserincludedTypes
etexcludedTypes
pour filtrer les résultats sur la liste des types associés à un lieu.Lorsque vous spécifiez un type principal général, tel que
"restaurant"
ou"hotel"
, la réponse peut contenir des lieux avec un signe plus type principal spécifique que celui spécifié. Par exemple, vous spécifiez incluent un type principal"restaurant"
. La réponse peut alors contiennent des lieux dont le type principal est"restaurant"
, mais peut également contenir des lieux avec un type principal plus spécifique, comme"chinese_restaurant"
ou"seafood_restaurant"
.Si une recherche est spécifiée avec plusieurs restrictions de type, seuls les lieux qui satisfont à toutes les restrictions sont renvoyées. Par exemple, si vous spécifiez
includedTypes = Arrays.asList("restaurant")
etexcludedPrimaryTypes = Arrays.asList("steak_house")
, le Les lieux renvoyés proposent des services associés à"restaurant"
, mais ne fonctionnent pas principalement en tant que"steak_house"
.Pour obtenir un exemple d'utilisation de
includedTypes
et deexcludedTypes
, consultez Requêtes Nearby Search (nouvelle version)Types inclus
La liste des types de lieux Tableau A à rechercher. Si ce paramètre est omis, des lieux de tous types sont renvoyés.
Pour définir le paramètre de types inclus, appelez la méthode
setIncludedTypes()
lors de la création de l'objetSearchNearbyRequest
.Types exclus
Une liste des types de lieux Tableau A pour exclure d'un recherche.
Si vous spécifiez à la fois
includedTypes
(par exemple,"school"
) etexcludedTypes
(par exemple,"primary_school"
) dans la requête, le paramètre La réponse inclut des lieux classés dans la catégorie"school"
, mais pas dans la catégorie"primary_school"
La réponse inclut des lieux correspondant à au moins un des éléments suivants :includedTypes
et aucunexcludedTypes
.S'il existe des types en conflit, par exemple si un type apparaît à la fois dans
includedTypes
etexcludedTypes
, une erreurINVALID_REQUEST
est renvoyée.Pour définir le paramètre des types exclus, appelez la méthode
setExcludedTypes()
lors de la création de l'objetSearchNearbyRequest
.Types principaux inclus
La liste des principaux types de lieux Tableau A à inclure lors d'une recherche.
Pour définir le paramètre des types principaux inclus, appelez la méthode
setIncludedPrimaryTypes()
lors de la création de l'objetSearchNearbyRequest
.Types principaux exclus
La liste des principaux types de lieux Tableau A pour exclure à partir d'une recherche.
S'il existe des types principaux en conflit, par exemple un type apparaissant à la fois dans
includedPrimaryTypes
etexcludedPrimaryTypes
, un L'erreurINVALID_ARGUMENT
est renvoyée.Pour définir le paramètre des types principaux exclus, appelez la méthode
setExcludedPrimaryTypes()
lors de la création de l'objetSearchNearbyRequest
. -
Nombre maximal de résultats
Spécifie le nombre maximal de résultats de lieu à renvoyer. Doit être compris entre 1 et 20 (par défaut) inclus.
Pour définir le paramètre de nombre maximal de résultats, appelez la méthode
setMaxResultCount()
lors de la création de l'objetSearchNearbyRequest
. -
Préférence de classement
Type de classement à utiliser. Si ce paramètre est omis, les résultats sont classés en fonction de leur popularité. Il peut s'agir de l'un des éléments suivants:
POPULARITY
(par défaut) Trie les résultats en fonction de leur popularité.DISTANCE
Trie les résultats par ordre croissant en fonction de leur distance par rapport à la à l'emplacement spécifié.
Pour définir le paramètre de préférence de classement, appelez la méthode
setRankPreference()
lors de la création de l'objetSearchNearbyRequest
. -
Code régional
Code régional utilisé pour mettre en forme la réponse, spécifié sous la forme d'une CLDR à deux caractères. Il n'existe pas de valeur par défaut.
Si le nom de pays du champ
formattedAddress
dans la réponse correspond auregionCode
, le code pays est omis deformattedAddress
.La plupart des codes CLDR sont identiques les codes ISO 3166-1, à quelques exceptions près. Par exemple, le ccTLD au Royaume-Uni est "uk" (.co.uk), tandis que son code ISO 3166-1 est "gb". (d'un point de vue technique, du Royaume-Uni de Grande-Bretagne et d'Irlande du Nord). Ce paramètre peut avoir un impact sur les résultats en fonction de la législation applicable.
Pour définir le paramètre de code régional, appelez la méthode
setRegionCode()
lors de la création de l'objetSearchNearbyRequest
.
Afficher les mentions dans votre application
Lorsque votre application affiche des informations obtenues
PlacesClient
,
telles que des photos et des avis, l'application doit également afficher les mentions requises.
Pour en savoir plus, consultez Règles du SDK Places pour Android