es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Google Place Autocomplete – propiedades de límites de geometría

No puedo encontrar esta respuesta en los documentos de Google, así que estoy publicando mi pregunta aquí.

Según la respuesta de autocompletado de lugares de Google Places docs, bounds es uno de los campos devueltos.

Sin embargo, al registrar en la consola bounds en el navegador, el objeto tiene claves con nombres extraños como Ba, Ab, Ra y así sucesivamente.

Además, he observado que estas claves cambian con el tiempo.

Por ejemplo, el siguiente código puede fallar en unos pocos días.

En la búsqueda inicial, digamos, de Nueva York, bounds.Ab.g puede contener un valor numérico.

Sin embargo, después de unos pocos días, bounds.Ab.g podría convertirse en bounds.Bb.g y el valor original será undefined.

import PlacesAutocomplete, { geocodeByAddress } from 'react-places-autocomplete'

const GooglePlacesSearchBar = () => {

const handleSelect = async userInput => {
    const result = await geocodeByAddress(userInput)
    const { place<em>id, geometry, formatted</em>address } = result[0]
    const { bounds } = geometry

    const swBounds = [bounds.Ab.g, bounds.Ra.g]
    const neBounds = [bounds.Ab.h, bounds.Ra.h]
...
}

Este es un ejemplo del objeto “bounds” impreso en la consola.
bounds: _.Wf
Bb: Vf
g: 49.19817700000001
h: 49.3172939
Ra: Qf
g: -123.22474
h: -123.023068

¿Alguien puede señalar un documento o explicar para qué sirven estas claves y por qué siguen cambiando?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que las teclas extrañas como Ab, Ra, Bb, etc., son claves internas utilizadas por la API de Google Maps y están sujetas a cambios en cualquier momento. Estas claves no están destinadas a ser accedidas o utilizadas por los desarrolladores, y no hay documentación oficial sobre lo que significan.

    Según la documentación de respuesta de Autocompletado de lugares de Google, el campo bounds debe incluir un objeto northeast y un objeto southwest, cada uno de los cuales contiene una clave lat y una clave lng. Se recomienda acceder a estos valores directamente en lugar de confiar en las claves internas que pueden cambiar con el tiempo.

    En el código de ejemplo proporcionado, en lugar de acceder a bounds.Ab.g y bounds.Ra.g, sería más seguro acceder a bounds.southwest.lat y bounds.northeast.lng, respectivamente. De esta manera, el código seguirá funcionando incluso si las claves internas cambian.

    En resumen, es importante utilizar solo los campos y claves documentados en la API de Google Maps y evitar confiar en campos o claves internas o no documentadas.

Comments are closed.