Cómo migrar a la nueva experiencia de Nearby Search
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Desarrolladores del Espacio Económico Europeo (EEE)
En esta página, se explican las diferencias entre la búsqueda cercana que se usa en la clase Place (nueva) y la PlacesService (heredada), y se proporcionan algunos fragmentos de código para compararlas.
El objeto PlacesService heredado tiene un método nearbySearch(), que te permite buscar lugares dentro de un área especificada por palabra clave o tipo.
La clase Place tiene un método searchNearby() que te permite buscar lugares dentro de un área especificada por tipo de lugar, con una selección ampliada de campos de datos y tipos de lugares para una mayor flexibilidad.
En la siguiente tabla, se enumeran algunas de las principales diferencias en los métodos de búsqueda cercana entre la clase Place y PlacesService:
Accede a una selección ampliada y actualizada con frecuencia de tipos de lugares.
Búsqueda basada en texto compatible con la palabra clave.
No se admite la búsqueda basada en texto. En su lugar, usa Text Search (nueva).
Comparación de código
En esta sección, se compara el código de los métodos de búsqueda cercana para ilustrar las diferencias entre el servicio de Places y la clase Place. Los fragmentos de código muestran el código requerido en cada API respectiva para realizar una solicitud de búsqueda basada en texto.
Nearby Search (heredado)
La versión heredada de Nearby Search te permite buscar lugares dentro de un área especificada por palabra clave o tipo. No es posible limitar las búsquedas con campos de datos de lugares, por lo que todos los campos disponibles se devuelven con cada solicitud.
En el siguiente fragmento, se muestra una llamada a nearbySearch() para devolver información sobre restaurantes en Sídney, Australia. La solicitud es síncrona, usa una devolución de llamada y, además, incluye una verificación condicional obligatoria en PlacesServiceStatus.
letmap;letservice;functioninitMap(){constsydney=newgoogle.maps.LatLng(-33.867,151.195);map=newgoogle.maps.Map(document.getElementById("map"),{center:sydney,zoom:15,});constrequest={location:sydney,radius:'500',type:['restaurant']};service=newgoogle.maps.places.PlacesService(map);service.nearbySearch(request,callback);}functioncallback(results,status){if(status==google.maps.places.PlacesServiceStatus.OK){for(vari=0;i < results.length;i++){createMarker(results[i]);}}}// Helper function to create markers.functioncreateMarker(place){if(!place.geometry||!place.geometry.location)return;constmarker=newgoogle.maps.Marker({map,position:place.geometry.location,title:place.name,});}
La nueva versión de Nearby Search mejora su predecesora de las siguientes maneras:
La capacidad de especificar qué campos de datos de lugar se deben devolver
El uso de promesas, que permite la operación asíncrona
No es necesario verificar el estado de PlacesService; en su lugar, se puede usar el control de errores estándar.
En el siguiente fragmento de código, se muestra una función que realiza una solicitud de Búsqueda cercana de restaurantes. En este ejemplo, se muestra el uso de la opción rankPreference para clasificar los resultados de la búsqueda por popularidad (en la versión anterior, la clasificación se especificaba con la opción rankBy). Dado que el método searchNearby() usa el operador await, solo se puede usar dentro de una función async.
asyncfunctionnearbySearch(){// Restrict within the map viewport.letcenter=newgoogle.maps.LatLng(52.369358,4.889258);constrequest={// 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}=awaitgoogle.maps.places.Place.searchNearby(request);if(places.length){console.log(places);// Create a new bounds, which will be extended with each result.constbounds=newgoogle.maps.LatLngBounds();// Loop through and get all the results.places.forEach((place)=>{constmarkerView=newgoogle.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");}}
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 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)"]]