Migrer vers la nouvelle interface Nearby Search
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Développeurs de l'Espace économique européen (EEE)
Cette page explique les différences entre la recherche à proximité utilisée dans la classe Place
(nouvelle) et la classe PlacesService
(ancienne), et fournit quelques extraits de code à des fins de comparaison.
- L'ancienne
PlacesService
comporte une méthode nearbySearch()
qui vous permet de rechercher des lieux dans une zone définie par mot clé ou par type.
- La classe
Place
comporte une méthode searchNearby()
qui vous permet de rechercher des lieux dans une zone spécifiée par type de lieu. Elle utilise une sélection élargie de champs de données et de types de lieux pour une plus grande flexibilité.
Le tableau suivant liste certaines des principales différences entre les méthodes de recherche à proximité des classes Place
et PlacesService
:
PlacesService (ancienne) |
Place (Nouveau) |
nearbySearch()
|
searchNearby()
|
PlaceSearchRequest |
SearchNearbyRequest |
Nécessite l'utilisation d'un rappel pour gérer l'objet de résultats et la réponse google.maps.places.PlacesServiceStatus . |
Utilise des promesses et fonctionne de manière asynchrone. |
Nécessite une vérification PlacesServiceStatus . |
Aucune vérification de l'état n'est requise. Vous pouvez utiliser la gestion des erreurs standard.
En savoir plus |
Compatible uniquement avec le biais de localisation. |
Compatible avec le biais géographique et la restriction géographique. |
Renvoie tous les champs de données disponibles (un sous-ensemble des champs acceptés). Il n'est pas possible de le contraindre à des champs spécifiques. |
Ne renvoie que les champs de données de lieu demandés. La classe Place propose une sélection de champs plus large et régulièrement mise à jour. |
Limité à un ensemble fixe de types de lieux. |
Accédez à une sélection élargie et régulièrement mise à jour de types de lieux. |
Recherche textuelle compatible avec le mot clé. |
La recherche textuelle n'est pas acceptée. Utilisez plutôt Text Search (nouvelle version). |
Comparaison de code
Cette section compare le code des méthodes de recherche à proximité pour illustrer les différences entre le service Places et la classe Place. Les extraits de code montrent le code requis sur chaque API respective pour effectuer une requête de recherche textuelle.
Nearby Search (ancienne version)
L'ancienne fonctionnalité Nearby Search permet de rechercher des lieux dans une zone définie par mot clé ou par type. Il n'existe aucun moyen de contraindre les recherches à l'aide des champs de données de lieu. Tous les champs disponibles sont donc renvoyés avec chaque requête.
L'extrait suivant montre comment appeler nearbySearch()
pour renvoyer des informations sur les restaurants à Sydney, en Australie. La requête est synchrone, utilise un rappel et inclut une vérification conditionnelle obligatoire sur PlacesServiceStatus
.
let map;
let service;
function initMap() {
const sydney = new google.maps.LatLng(-33.867, 151.195);
map = new google.maps.Map(document.getElementById("map"), {
center: sydney,
zoom: 15,
});
const request = {
location: sydney,
radius: '500',
type: ['restaurant']
};
service = new google.maps.places.PlacesService(map);
service.nearbySearch(request, callback);
}
function callback(results, status) {
if (status == google.maps.places.PlacesServiceStatus.OK) {
for (var i = 0; i < results.length; i++) {
createMarker(results[i]);
}
}
}
// Helper function to create markers.
function createMarker(place) {
if (!place.geometry || !place.geometry.location) return;
const marker = new google.maps.Marker({
map,
position: place.geometry.location,
title: place.name,
});
}
En savoir plus
Nearby Search (nouveau)
La nouvelle version de Nearby Search apporte les améliorations suivantes :
- La possibilité de spécifier les champs de données de lieu à renvoyer.
- L'utilisation de promesses qui permet une opération asynchrone.
- Il n'est pas nécessaire de vérifier l'état de
PlacesService
. Vous pouvez utiliser la gestion des erreurs standard à la place.
L'extrait de code suivant montre une fonction qui envoie une requête Nearby Search pour les restaurants. Cet exemple montre comment utiliser l'option rankPreference
pour classer les résultats de recherche par popularité (dans la version précédente, le classement était spécifié à l'aide de l'option rankBy
). Étant donné que la méthode searchNearby()
utilise l'opérateur await
, elle ne peut être utilisée que dans une fonction async
.
async function nearbySearch() {
// Restrict within the map viewport.
let center = new google.maps.LatLng(52.369358, 4.889258);
const request = {
// Required parameters.
fields: ["displayName", "location", "businessStatus"],
locationRestriction: {
center: center,
radius: 500,
},
// Optional parameters.
includedPrimaryTypes: ["restaurant"],
maxResultCount: 5,
rankPreference: google.maps.places.SearchNearbyRankPreference.POPULARITY,
language: "en-US",
region: "us",
};
const { places } = await google.maps.places.Place.searchNearby(request);
if (places.length) {
console.log(places);
// Create a new bounds, which will be extended with each result.
const bounds = new google.maps.LatLngBounds();
// Loop through and get all the results.
places.forEach((place) => {
const markerView = new google.maps.marker.AdvancedMarkerElement({
map,
position: place.location,
title: place.displayName,
});
bounds.extend(place.location);
console.log(place);
});
map.fitBounds(bounds);
} else {
console.log("No results");
}
}
En savoir plus
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/08/31 (UTC).
[null,null,["Dernière mise à jour le 2025/08/31 (UTC)."],[],[],null,["# Migrate to the new Nearby Search\n\n\u003cbr /\u003e\n\n**European Economic Area (EEA) developers** If your billing address is in the European Economic Area, effective on 8 July 2025, the [Google Maps Platform EEA Terms of Service](https://cloud.google.com/terms/maps-platform/eea) will apply to your use of the Services. Functionality varies by region. [Learn more](/maps/comms/eea/faq).\n\nThis page explains the differences between nearby search as used in the\n[`Place`](/maps/documentation/javascript/reference/place) class (new) and the\n[`PlacesService`](/maps/documentation/javascript/reference/places-service)\n(legacy), and provides some code snippets for comparison.\n\n- The legacy `PlacesService` has a `nearbySearch()` method, which lets you search for places within a specified area by keyword or type.\n- The `Place` class has a `searchNearby()` method which lets you search for places within a specified area by place type, utilizing an expanded selection of place data fields and place types for greater flexibility.\n\nThe following table lists some of the main differences in nearby search methods\nbetween the `Place` class and `PlacesService`:\n\n| [`PlacesService`](/maps/documentation/javascript/reference/places-service) (Legacy) | [`Place`](/maps/documentation/javascript/reference/place) (New) |\n|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| [`nearbySearch()`](/maps/documentation/javascript/reference/places-service#PlacesService.nearbySearch) | [`searchNearby()`](/maps/documentation/javascript/reference/place#Place.searchNearby) |\n| [`PlaceSearchRequest`](/maps/documentation/javascript/reference/places-service#PlaceSearchRequest) | [`SearchNearbyRequest`](/maps/documentation/javascript/reference/place#SearchNearbyRequest) |\n| Requires the use of a callback to handle the results object and `google.maps.places.PlacesServiceStatus` response. | Uses Promises, and works asynchronously. |\n| Requires a `PlacesServiceStatus` check. | No required status check, can use standard error handling. [Learn more](/maps/documentation/javascript/reference/errors). |\n| Supports only location bias. | Supports location bias and location restriction. |\n| Returns all available data fields (a [subset of the supported fields](/maps/documentation/places/web-service/place-data-fields#places-api-fields-support)); cannot be constrained to specific fields. | Returns only the requested [place data fields](/maps/documentation/javascript/place-class-data-fields); the `Place` class offers an expanded and regularly updated selection of fields. |\n| Limited to a fixed set of [place types](/maps/documentation/javascript/supported_types). | Access an expanded and regularly updated selection of [place types](/maps/documentation/javascript/place-types). |\n| Supported text-based search with the [keyword](/maps/documentation/javascript/reference/places-service#PlaceSearchRequest.keyword). | Text-based search is not supported, use [Text Search (New)](/maps/documentation/javascript/places-migration-search#place-class-new) instead. |\n\nCode comparison\n---------------\n\nThis section compares code for nearby search methods to illustrate the\ndifferences between the Places Service and the\nPlace class. The code snippets show the code\nrequired on each respective API to make a text-based search request.\n\n### Nearby Search (Legacy)\n\nThe legacy Nearby Search lets you search for places within a specified area by\nkeyword or type. There is no way to constrain searches by using place data\nfields, so that all of the available fields are returned with each request.\nThe following snippet shows calling `nearbySearch()` to return information about\nrestaurants in Sydney, Australia. The request is synchronous, uses a callback,\nand includes a required conditional check on `PlacesServiceStatus`. \n\n let map;\n let service;\n\n function initMap() {\n const sydney = new google.maps.LatLng(-33.867, 151.195);\n\n map = new google.maps.Map(document.getElementById(\"map\"), {\n center: sydney,\n zoom: 15,\n });\n\n const request = {\n location: sydney,\n radius: '500',\n type: ['restaurant']\n };\n\n service = new google.maps.places.PlacesService(map);\n service.nearbySearch(request, callback);\n }\n\n function callback(results, status) {\n if (status == google.maps.places.PlacesServiceStatus.OK) {\n for (var i = 0; i \u003c results.length; i++) {\n createMarker(results[i]);\n }\n }\n }\n\n // Helper function to create markers.\n function createMarker(place) {\n if (!place.geometry || !place.geometry.location) return;\n\n const marker = new google.maps.Marker({\n map,\n position: place.geometry.location,\n title: place.name,\n });\n }\n\n#### Learn more\n\n- [See the documentation for legacy Nearby Search](/maps/documentation/javascript/places#place_search_requests)\n- [See the `searchNearby()` reference](/maps/documentation/javascript/reference/places-service#PlacesService.nearbySearch)\n\n### Nearby Search (New)\n\nThe new version of Nearby Search improves upon its predecessor in the following\nways:\n\n- The ability to specify which place data fields to return.\n- The use of Promises which enables asynchronous operation.\n- No need to check for the status of `PlacesService`; standard error handling can be used instead.\n\nThe following code snippet shows a function which makes a Nearby Search request\nfor restaurants. This example shows using the `rankPreference` option to rank\nsearch results by popularity (in the previous version ranking is specified\nusing the `rankBy` option). Because the `searchNearby()` method uses the `await`\noperator it can only be used inside an `async` function. \n\n async function nearbySearch() {\n // Restrict within the map viewport.\n let center = new google.maps.LatLng(52.369358, 4.889258);\n const request = {\n // Required parameters.\n fields: [\"displayName\", \"location\", \"businessStatus\"],\n locationRestriction: {\n center: center,\n radius: 500,\n },\n // Optional parameters.\n includedPrimaryTypes: [\"restaurant\"],\n maxResultCount: 5,\n rankPreference: google.maps.places.SearchNearbyRankPreference.POPULARITY,\n language: \"en-US\",\n region: \"us\",\n };\n\n const { places } = await google.maps.places.Place.searchNearby(request);\n\n if (places.length) {\n console.log(places);\n\n // Create a new bounds, which will be extended with each result.\n const bounds = new google.maps.LatLngBounds();\n\n // Loop through and get all the results.\n places.forEach((place) =\u003e {\n const markerView = new google.maps.marker.AdvancedMarkerElement({\n map,\n position: place.location,\n title: place.displayName,\n });\n\n bounds.extend(place.location);\n console.log(place);\n });\n map.fitBounds(bounds);\n } else {\n console.log(\"No results\");\n }\n }\n\n#### Learn more\n\n- [See the complete example code](/maps/documentation/javascript/examples/place-nearby-search)\n- [See the documentation for Nearby Search (New)](/maps/documentation/javascript/nearby-search)\n- [See the `searchNearby()` reference](/maps/documentation/javascript/reference/place#Place.searchNearby)"]]