Descripción general de la migración

En esta guía, se destacan las diferencias clave entre el servicio de Places heredado y la nueva clase Place. La actualización a la clase Place ofrece ventajas significativas, como un mejor rendimiento y un nuevo modelo de precios. Para aprovechar al máximo Google Places y asegurarte de que tus apps estén actualizadas, familiarízate con los cambios que se detallan en esta guía.

Prácticas recomendadas de facturación para la migración

Esta guía se aplica si el uso de tu API es lo suficientemente alto como para pasar al nivel de precios de segundo nivel. Cuando migras a una versión más reciente de una API, también se te factura un SKU diferente. Para evitar un aumento de costos durante el mes de la transición, te recomendamos que cambies a las APIs nuevas en producción lo más cerca posible del comienzo del mes. Esto te garantizará que alcances los niveles de precios mensuales más rentables durante el mes de migración. Para obtener información sobre los niveles de precios, consulta la página de precios y las Preguntas frecuentes sobre los precios.

Habilita la API de Places

La clase Place depende del servicio de la API de Places. Para usar las funciones de la nueva clase Place, primero debes habilitar la API de Places (nueva) en tu proyecto de Google Cloud. Para obtener más información, consulta Cómo comenzar.

Cambios generales

En la siguiente tabla, se enumeran algunas de las diferencias principales entre PlacesService y Place:

PlacesService (heredada) Place (nuevo)
Los métodos requieren el uso de una devolución de llamada para controlar el objeto de resultados y la respuesta de google.maps.places.PlacesServiceStatus. Usa promesas y funciona de forma asíncrona.
Los métodos requieren una verificación de PlacesServiceStatus. No se requiere verificación de estado, se puede usar el manejo de errores estándar.
Los campos de datos de Place tienen el formato de escritura en mayúsculas y minúsculas. Los campos de datos de Place tienen el formato de mayúsculas y minúsculas intercaladas.
Se limita a un conjunto fijo de tipos de lugares y campos de datos de lugares. Proporciona una selección expandida de tipos de lugares y campos de datos de lugares actualizados periódicamente.

Cambios específicos de la API

La clase Place proporciona una API para usar la biblioteca de Places y admite patrones de uso modernos, como las promesas. La clase Place expone los mismos tipos y campos de datos de lugares que el servicio de Places heredado, y también incluye muchos valores nuevos para estos campos y tipos.

En esta tabla, se muestra cómo se asignan las funciones del servicio de Places a las de la clase Place:

Servicio de Places (heredado) Clase Place (nueva)
Campos de datos de Place Campos de datos de la clase Place
Tipos de lugares Tipos de lugares
PlacesService.findPlaceFromQuery() Place.searchByText()
PlacesService.findPlaceFromPhoneNumber() Place.searchByText()
PlacesService.textSearch() Place.searchByText()
PlacesService.nearbySearch() Place.searchNearby()
PlacesService.getDetails() Place.fetchFields()
Places.AutocompletionRequest Places.AutocompleteRequest
Places.AutocompletePrediction Places.PlacePrediction
Clase Autocomplete Clase PlaceAutocompleteElement
Clase SearchBox ---

Carga la biblioteca de Places

La forma en que tu app carga la biblioteca de Places depende del cargador de arranque que se esté usando. Si tu app usa la importación de bibliotecas dinámica, puedes cargar las bibliotecas necesarias en el tiempo de ejecución con el operador await para llamar a importLibrary(), como se muestra a continuación:

const { Place } = await google.maps.importLibrary("places");

Si tu app usa la etiqueta de carga de secuencia de comandos directa, solicita la biblioteca places en la secuencia de comandos del cargador:

<script async
    src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&loading=async&libraries=places&callback=initMap">
</script>

Obtén más información para cargar la API de Maps JavaScript.

En esta sección, se incluyen las siguientes guías para ayudarte a migrar tus apps para usar la versión más reciente de la API de Places: