Recherche à proximité (nouveau)

Sélectionnez une plate-forme : Android iOS JavaScript Services Web

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();
    });

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 objet Place 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 valeurs Place.Field à l'objet SearchNearbyRequest. 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'objet SearchNearbyRequest.

    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 champs Place.Field.ID et Champs Place.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 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, renvoyer ZERO_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'objet SearchNearbyRequest.

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". Utilisez includedPrimaryTypes et excludedPrimaryTypes 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". Utiliser includedTypes et excludedTypes pour filtrer les résultats sur la liste des types associés à un lieu.

    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") et excludedPrimaryTypes = 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 de excludedTypes, 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'objet SearchNearbyRequest.

    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") et excludedTypes (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 aucun excludedTypes.

    S'il existe des types en conflit, par exemple si un type apparaît à la fois dans includedTypes et excludedTypes, une erreur INVALID_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'objet SearchNearbyRequest.

    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'objet SearchNearbyRequest.

    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 et excludedPrimaryTypes, un L'erreur INVALID_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'objet SearchNearbyRequest.

  • 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'objet SearchNearbyRequest.

  • 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'objet SearchNearbyRequest.

  • Code régional

    Code régional utilisé pour mettre en forme la réponse, spécifié sous la forme d'une <ph type="x-smartling-placeholder"></ph> 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 au regionCode, le code pays est omis de formattedAddress.

    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 du droit applicable.

    Pour définir le paramètre de code régional, appelez la méthode setRegionCode() lors de la création de l'objet SearchNearbyRequest.

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