Descripción general de la migración

Desarrolladores del Espacio Económico Europeo (EEE)

En esta guía, se destacan las diferencias clave entre el servicio Places heredado y la nueva clase Place. La actualización a la clase Place ofrece ventajas significativas, incluido un mejor rendimiento y un nuevo modelo de precios. Para aprovechar al máximo 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 la API es lo suficientemente alto como para pasar a los precios de segundo nivel. Cuando migras a una versión más reciente de una API, también se te factura por una SKU diferente. Para evitar aumentos de costos durante el mes de la transición, te recomendamos que cambies a las nuevas APIs en producción lo más cerca posible del comienzo del mes. Esto garantizará que alcances los niveles de precios mensuales más rentables durante el mes de la migración. Para obtener información sobre los niveles de precios, consulta la página de precios y las Preguntas frecuentes sobre precios.

Habilita la API de Places

La clase Place se basa en el 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 principales diferencias entre PlacesService y Place:

PlacesService (heredado) Place (nuevo)
Los métodos requieren el uso de una devolución de llamada para controlar el objeto de resultado y google.maps.places.PlacesServiceStatus respuesta. Usa promesas y funciona de forma asíncrona.
Los métodos requieren una verificación de PlacesServiceStatus. No se requiere una verificación de estado, se puede usar el control de errores estándar.
Los campos de datos de lugar se formatean con snake_case. Los campos de datos de lugar se formatean con camelCase.
Se limita a un conjunto fijo de tipos de lugares y campos de datos de lugar. Proporciona una selección ampliada de tipos de lugares y campos de datos de lugar que se actualizan con regularidad.

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 campos de datos de lugar y tipos de lugares que el servicio Places heredado, y también incluye muchos valores nuevos para los campos de datos de lugar y los tipos de lugares.

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

Servicio Places (heredado) Clase Place (nueva)
Campos de datos de lugar 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
Autocomplete clase Clase PlaceAutocompleteElement
SearchBox clase ---

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ámicas, 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 sobre cómo cargar la API de Maps JavaScript.

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