Text Search (nouvelle version) renvoie des informations sur un ensemble de lieux à partir d'une chaîne, par exemple "pizza à New York" ou "magasins de chaussures près d'Ottawa ou "123 Main Street". Le service répond avec une liste de lieux correspondant à la chaîne de texte et à tout biais géographique défini.
Ce service est particulièrement utile pour créer des adresses ambiguës de requêtes dans un système automatisé, et autres que des adresses peuvent correspondre à des entreprises, des adresses IP externes. Les adresses au format incorrect sont des exemples de requêtes d'adresse ambiguës. ou qui incluent des composants autres que des adresses, comme les noms d'entreprise. Demandes comme dans les deux premiers exemples, peut ne renvoyer aucun résultat, sauf si un lieu — comme la région, la restriction d'emplacement ou la pondération de l'emplacement, est définie.
Text Search (nouvelle version) est semblable à Nearby Search (Nouveau). La principale la différence entre les deux est que Text Search (nouvelle version) vous permet de spécifier une chaîne de recherche arbitraire, tandis que Nearby Search (nouveau) nécessite un une zone spécifique dans laquelle effectuer la recherche.
"10 High Street, UK" ou "123 Main Street, US" | Plusieurs boutiques de "High Street" au Royaume-Uni plusieurs "Main Street" aux États-Unis. La requête ne renvoie pas de résultats souhaitables, sauf si une restriction d'emplacement est défini. |
"ChainRestaurant New York" | Plusieurs "ChainRestaurant" à New York ; sans adresse postale et même le nom de la rue. |
"10 High Street, Escher Royaume-Uni" ou "123 Main Street, Pleasanton US" | Une seule "High Street" dans la ville d'Escher au Royaume-Uni, une seule "Rue principale" dans la ville américaine de Pleasanton, en Californie. |
"UniqueRestaurantName New York" | Un seul établissement portant ce nom à Paris aucune adresse postale nécessaires pour différencier. |
"restaurants pizzerias à Paris" | Cette requête contient la restriction géographique associée, ainsi que les termes "pizzas" correspond à d'un type de lieu bien défini. Elle renvoie plusieurs résultats. |
"+1 514-670-8700" | Cette requête contient un numéro de téléphone. Elle renvoie plusieurs résultats pour lieux associés à ce numéro de téléphone. |
Requêtes Text Search
Une requête Text Search se présente sous la forme suivante:
// Specify the list of fields to return. final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.NAME); // Define latitude and longitude coordinates of the search area. LatLng southWest = new LatLng(37.38816277477739, -122.08813770258874); LatLng northEast = new LatLng(37.39580487866437, -122.07702325966572); // Use the builder to create a SearchByTextRequest object. final SearchByTextRequest searchByTextRequest = SearchByTextRequest.builder("Spicy Vegetarian Food", placeFields) .setMaxResultCount(10) .setLocationRestriction(RectangularBounds.newInstance(southWest, northEast)).build(); // Call PlacesClient.searchByText() to perform the search. // Define a response handler to process the returned List of Place objects. placesClient.searchByText(searchByTextRequest) .addOnSuccessListener(response -> { List<Place> places = response.getPlaces(); });
Dans cet exemple, vous allez:
Définissez la liste des champs pour n'inclure que
Place.Field.ID
etPlace.Field.NAME
. Autrement dit, les objetsPlace
de la réponse qui représentent chaque correspondance ne contiennent que ces deux champs.Utiliser
SearchByTextRequest.Builder
pour créerSearchByTextRequest
qui définit la recherche.Définissez la chaîne de requête de texte sur « Spicy Vegetarian Food ».
Définissez le nombre maximal de résultats sur 10. Les paramètres par défaut est de 20.
Limiter la zone de recherche au rectangle défini par la latitude et ses coordonnées géographiques. Aucune correspondance en dehors de cette zone n'est renvoyée.
Ajoutez un
OnSuccessListener
et récupérez les lieux correspondants à partir deSearchByTextResponse
.
Réponses de Text Search
La
SearchByTextResponse
représente la réponse à partir d'une requête de recherche. SearchByTextResponse
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:
// Specify the list of fields to return. 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
Les paramètres requis pour
SearchByTextRequest
sont:
-
Liste des champs
Spécifiez les champs de données de lieu à renvoyer. Transmettre une liste de
Place.Field
spécifiant les champs de données à renvoyer. Il n'existe pas de liste par défaut a renvoyé des champs dans la réponse.Les listes de champs sont une bonne pratique à appliquer pour vous assurer de ne pas demander des données inutiles, ce qui permet d'éviter les délais de traitement et frais facturés.
Renseignez un ou plusieurs des champs suivants:
Les champs suivants déclenchent le SKU Text Search (ID Only):
Place.Field.ID
,Place.Field.NAME
Les champs suivants déclenchent le SKU Text Search (Basic):
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.TYPES
,Place.Field.UTC_OFFSET
,Place.Field.VIEWPORT
,Place.Field.WHEELCHAIR_ACCESSIBLE_ENTRANCE
Les champs suivants déclenchent le SKU Text Search (Advanced):
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 le SKU Text Search (Preferred):
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'objetSearchByTextRequest
. -
Requête textuelle
Chaîne de texte sur laquelle doit porter la recherche, par exemple : "restaurant", "123 Main Street" ou "meilleur endroit à visiter à San Francisco". L'API renvoie les résultats correspondant à cette chaîne et les classe en fonction en fonction de leur pertinence perçue.
Pour définir le paramètre de requête de texte, appelez la méthode
setTextQuery()
lors de la création de l'objetSearchByTextRequest
.
Paramètres facultatifs
Utilisez les
SearchByTextRequest
pour spécifier les paramètres facultatifs de votre requête.
Type inclus
Limite les résultats aux lieux correspondant au type spécifié défini par Tableau A : Vous ne pouvez spécifier qu'un seul type. Exemple :
setIncludedType("bar")
setIncludedType("pharmacy")
Pour définir le paramètre de type inclus, appelez la méthode
setIncludedType()
lors de la création de l'objetSearchByTextRequest
.Biais de localisation
Spécifie une zone de recherche. Cet emplacement sert de biais, ce qui signifie des résultats situés à proximité du lieu spécifié, y compris des résultats en dehors de la zone spécifiée.
Vous pouvez spécifier une restriction ou un biais en fonction de l'emplacement, mais pas les deux. Considérez la restriction d'emplacement comme une indication la région dans laquelle les résultats doivent se trouver, et le biais de localisation spécifiant la région dont les résultats doivent être proches, mais qui peuvent se trouver en dehors de la zone.
Spécifiez la région sous forme de fenêtre d'affichage rectangulaire ou de cercle.
Un cercle est défini par le point central et le rayon en mètres. Le rayon doit être comprise entre 0.0 et 50000.0, inclus. Exemple :
// Define latitude and longitude coordinates of the center of the search area. LatLng searchCenter = new LatLng(37.38816277477739, -122.08813770258874); // Use the builder to create a SearchByTextRequest object. // Set the radius of the search area to 500.0 meters. final SearchByTextRequest searchByTextRequest = SearchByTextRequest.builder("Spicy Vegetarian Food", placeFields) .setMaxResultCount(10) .setLocationBias(CircularBounds.newInstance(searchCenter, 500.0)).build();
Un rectangle est une fenêtre d'affichage de latitude-longitude, représentée par deux en diagonale à l'opposé des points haut et bas. Le point bas indique le sud-ouest. du rectangle et le point haut représente le nord-est du rectangle.
Une fenêtre d'affichage est considérée comme fermée, ce qui signifie qu'elle inclut ses limites. Les limites de latitude doit être comprise entre -90 et 90 degrés inclus, et les limites de longitude doit être comprise entre -180 et 180 degrés inclus:
- Si
low
=high
, la fenêtre d'affichage est constituée des éléments suivants : sur ce point. - Si
low.longitude
>high.longitude
, le de longitude est inversée (la fenêtre d'affichage traverse (ligne de longitude). - Si
low.longitude
= -180 degrés ethigh.longitude
= 180 degrés, la fenêtre d'affichage inclut tous les et des longitudes. - Si
low.longitude
= 180 degrés ethigh.longitude
= -180 degrés, la plage de longitude est vide. - Si
low.latitude
>high.latitude
, le La plage de latitude est vide.
Les valeurs "Faible" et "Élevée" doivent être renseignées, et la boîte représentée ne peut pas être vide. Une fenêtre d'affichage vide entraîne une erreur.
Par exemple, pour une fenêtre d'affichage rectangulaire, Requêtes Text Search :
Pour définir le paramètre de biais de localisation, appelez la méthode
setLocationBias()
lors de la création de l'objetSearchByTextRequest
.- Si
Restriction géographique
Spécifie une zone de recherche. Les résultats situés en dehors de la zone spécifiée renvoyé. Spécifiez la région sous la forme d'une fenêtre d'affichage rectangulaire. Voir la description du biais de la localisation pour en savoir plus sur la définition de la fenêtre d'affichage.
Vous pouvez spécifier une restriction ou un biais en fonction de l'emplacement, mais pas les deux. Considérez la restriction d'emplacement comme une indication la région dans laquelle les résultats doivent se trouver, et le biais de localisation spécifiant la région à laquelle les résultats doivent être proches, mais qui peuvent se trouver en dehors la zone.
Pour définir le paramètre de restriction d'emplacement, appelez la méthode
setLocationRestriction()
lors de la création de l'objetSearchByTextRequest
.-
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'objetSearchByTextRequest
. Note minimale
Limite les résultats aux seuls utilisateurs dont la note moyenne par les utilisateurs est supérieure à ou égale à cette limite. Les valeurs doivent être comprises entre 0.0 et 5.0 (inclus) dans par incréments de 0,5. Par exemple: 0, 0,5, 1.0, ... , 5.0 (inclus). Les valeurs sont les suivantes : arrondie au 0,5 le plus proche. Par exemple, une valeur de 0,6 élimine tous résultats avec une note inférieure à 1,0.
Pour définir le paramètre de note minimale, appelez la méthode
setMinRating()
lors de la création de l'objetSearchByTextRequest
.Ouvert
Si la valeur est
true
, ne renvoyez que les lieux ouverts lors de l'envoi de la requête. Si la valeur estfalse
, renvoie tous les établissements quel que soit leur état d'ouverture. Les lieux pour lesquels aucun horaire d'ouverture n'est spécifié dans la base de données Google Places sont est renvoyé si vous définissez ce paramètre surfalse
.Pour définir le paramètre "Open Now", appelez la méthode
setOpenNow()
lors de la création de l'objetSearchByTextRequest
.-
Niveaux de prix
Par défaut, les résultats incluent les établissements qui proposent des services à tous les niveaux de prix. Pour restreindre pour n'inclure que les lieux correspondant à des niveaux de prix spécifiques, vous pouvez transmettre une liste de valeurs entières correspondant aux niveaux de prix des lieux que vous souhaitez renvoyer:
1
: Place fournit des services peu coûteux.2
: cet établissement propose des services à prix modéré.3
: Place fournit des services coûteux.4
: Place fournit des services très coûteux.
Pour définir le paramètre des niveaux de prix, appelez la méthode
setPriceLevels()
lors de la création de l'objetSearchByTextRequest
. Préférence de classement
Spécifie la façon dont les résultats sont classés dans la réponse en fonction du type de requête:
- Pour une requête catégorielle telle que "Restaurants à New York",
SearchByTextRequest.RankPreference.RELEVANCE
(classer les résultats en fonction de la pertinence des recherches) est l'option par défaut. Vous pouvez définir la préférence de classement surSearchByTextRequest.RankPreference.RELEVANCE
ouSearchByTextRequest.RankPreference.DISTANCE
(classer les résultats en fonction de la distance) - Pour une requête non catégorielle telle que "Mountain View, CA", nous recommandons que le paramètre de préférence de classement n'est pas défini.
Pour définir le paramètre de préférence de classement, appelez la méthode
setRankPreference()
lors de la création de l'objetSearchByTextRequest
.- Pour une requête catégorielle telle que "Restaurants à New York",
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. Ce paramètre peut également avoir un effet de biais dans les résultats de recherche. Il n'existe pas de valeur par défaut.
Si le nom de pays du champ d'adresse dans la réponse correspond au code de région, le code pays est omis de l'adresse.
La plupart des codes CLDR sont identiques aux 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'objetSearchByTextRequest
.Filtrage strict par type
Utilisé avec le paramètre de type "include". Si défini sur
true
, uniquement les lieux correspondant aux types spécifiés par Le type include est renvoyé. Si la valeur estfalse
, la réponse peut contenir des lieux qui ne correspondent pas aux types spécifiés.Pour définir le paramètre de filtrage de type strict, appelez la méthode
setStrictTypeFiltering()
lors de la création de l'objetSearchByTextRequest
.