La geocodificación inversa convierte una ubicación del mapa en una dirección legible por humanos. Representas la ubicación del mapa con las coordenadas de latitud y longitud de la ubicación.
Cuando realizas una codificación geográfica inversa de una ubicación, la respuesta contiene lo siguiente:
- ID de lugar de la dirección
- Plus Codes de la dirección
- Detalles de la dirección
Esta API devuelve diferentes tipos de direcciones, desde la dirección de la calle más específica hasta entidades políticas menos específicas, como vecindarios, ciudades, condados y estados. Por lo general, la dirección más exacta es el primer resultado. Si deseas que coincida con un tipo específico de dirección, usa el parámetro types
.
Solicitud de geocodificación inversa
Una solicitud de geocodificación inversa es una solicitud HTTP GET. Puedes especificar la ubicación como una cadena no estructurada:
https://geocode.googleapis.com/v4beta/geocode/location/LATITUDE,LONGITUDE
O bien como un conjunto estructurado de coordenadas de latitud y longitud representadas por parámetros de consulta:
https://geocode.googleapis.com/v4beta/geocode/location?location.latitude=LATITUDE&location.longitude=LONGITUDE
Por lo general, se usa el formato estructurado cuando se procesan los componentes de ubicación capturados en un formulario HTML.
Pasa todos los demás parámetros como parámetros de URL o, para parámetros como la clave de API o la máscara de campo, en encabezados como parte de la solicitud GET. Por ejemplo:
Pasa una cadena de ubicación no estructurada
Una ubicación no estructurada es una ubicación con el formato de una cadena separada por comas de coordenadas de latitud y longitud:
https://geocode.googleapis.com/v4beta/geocode/location/37.4225508,-122.0846338?key=API_KEY
O en un comando curl:
curl -X GET -H 'Content-Type: application/json' \ -H "X-Goog-Api-Key: API_KEY" \ "https://geocode.googleapis.com/v4beta/geocode/location/37.4225508,-122.0846338"
Cómo pasar una ubicación estructurada
Especifica la ubicación estructurada con el parámetro de consulta location
, del tipo LatLng
.
El objeto LatLng
te permite especificar la latitud y la longitud como parámetros de búsqueda separados:
https://geocode.googleapis.com/v4beta/geocode/location?location.latitude=37.4225508&location.longitude=-122.0846338 &key=API_KEY
Usa OAuth para realizar una solicitud
La API de Geocoding v4 admite OAuth 2.0 para la autenticación. Para usar OAuth con la API de Geocoding, el token de OAuth debe tener asignado el alcance correcto. La API de Geocoding admite los siguientes alcances para su uso con la geocodificación inversa:
https://www.googleapis.com/auth/maps-platform.geocode
— Se usa con todos los extremos de la API de Geocoding.https://www.googleapis.com/auth/maps-platform.geocode.location
— Úsalo solo conGeocodeLocation
para la geocodificación inversa.
También puedes usar el alcance general https://www.googleapis.com/auth/cloud-platform
para todos los extremos de la API de Geocoding. Ese alcance es útil durante el desarrollo, pero no en la producción, ya que es un alcance general que permite el acceso a todos los endpoints.
Para obtener más información y ejemplos, consulta Usa OAuth.
Respuesta de geocodificación inversa
La codificación geográfica inversa devuelve un objeto GeocodeLocationResponse
que contiene lo siguiente:
Es el array
results
de objetosGeocodeResult
que representa el lugar.El geocodificador inverso muestra más de un resultado en el array
results
. Los resultados no solo representan direcciones postales, sino que permiten hacer referencia a cualquier ubicación geográfica. Por ejemplo, cuando se geocodifica un punto en la ciudad de Chicago, dicho punto puede indicarse como una dirección, como la ciudad (Chicago), como su estado (Illinois) o como un país (Estados Unidos). Todas son "direcciones" para el geocodificador. El geocodificador inverso devuelve cualquiera de estos tipos como resultados válidos.El campo
plusCode
, de tipoPlusCode
, contiene el código plus que mejor aproxima la latitud y la longitud en la solicitud. Además, cada elemento del arrayresults
contiene un Plus Code. La distancia entre el Plus Code decodificado y el punto de la solicitud es inferior a 10 metros.
El objeto JSON completo tiene el siguiente formato:
{ "results": [ { "place": "//places.googleapis.com/places/ChIJV-FZF7i7j4ARo4ZOUoecZFU", "placeId": "ChIJV-FZF7i7j4ARo4ZOUoecZFU", "location": { "latitude": 37.422588300000008, "longitude": -122.0846489 }, "granularity": "ROOFTOP", "viewport": { "low": { "latitude": 37.421239319708512, "longitude": -122.0859978802915 }, "high": { "latitude": 37.423937280291511, "longitude": -122.08329991970851 } }, "formattedAddress": "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA", "addressComponents": [ { "longText": "1600", "shortText": "1600", "types": [ "street_number" ] }, { "longText": "Amphitheatre Parkway", "shortText": "Amphitheatre Pkwy", "types": [ "route" ], "languageCode": "en" }, { "longText": "Mountain View", "shortText": "Mountain View", "types": [ "locality", "political" ], "languageCode": "en" }, { "longText": "Santa Clara County", "shortText": "Santa Clara County", "types": [ "administrative_area_level_2", "political" ], "languageCode": "en" }, { "longText": "California", "shortText": "CA", "types": [ "administrative_area_level_1", "political" ], "languageCode": "en" }, { "longText": "United States", "shortText": "US", "types": [ "country", "political" ], "languageCode": "en" }, { "longText": "94043", "shortText": "94043", "types": [ "postal_code" ] } ], "types": [ "street_address" ], "plusCode": { "globalCode": "849VCW83+PM", "compoundCode": "CW83+PM Mountain View, CA, USA" } }, { "place": "//places.googleapis.com/places/ChIJj61dQgK6j4AR4GeTYWZsKWw", "placeId": "ChIJj61dQgK6j4AR4GeTYWZsKWw", "location": { "latitude": 37.4220541, "longitude": -122.08532419999999 }, "granularity": "ROOFTOP", "viewport": { "low": { "latitude": 37.4207051197085, "longitude": -122.08667318029148 }, "high": { "latitude": 37.423403080291493, "longitude": -122.08397521970851 } }, "formattedAddress": "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA", "addressComponents": [ { "longText": "1600", "shortText": "1600", "types": [ "street_number" ] }, { "longText": "Amphitheatre Parkway", "shortText": "Amphitheatre Pkwy", "types": [ "route" ], "languageCode": "en" }, { "longText": "Mountain View", "shortText": "Mountain View", "types": [ "locality", "political" ], "languageCode": "en" }, { "longText": "Santa Clara County", "shortText": "Santa Clara County", "types": [ "administrative_area_level_2", "political" ], "languageCode": "en" }, { "longText": "California", "shortText": "CA", "types": [ "administrative_area_level_1", "political" ], "languageCode": "en" }, { "longText": "United States", "shortText": "US", "types": [ "country", "political" ], "languageCode": "en" }, { "longText": "94043", "shortText": "94043", "types": [ "postal_code" ] } ], "types": [ "establishment", "point_of_interest" ], "plusCode": { "globalCode": "849VCWC7+RV", "compoundCode": "CWC7+RV Mountain View, CA, USA" } }, ... ], "plusCode": { "globalCode": "849VCWF8+24H", "compoundCode": "CWF8+24H Mountain View, CA, USA" } }
Parámetros obligatorios
ubicación
Son las coordenadas de latitud y longitud que especifican dónde deseas obtener la dirección más cercana legible por humanos.
Parámetros opcionales
languageCode
Idioma en el que se mostrarán los resultados.
- Consulta la lista de idiomas admitidos. Google actualiza con frecuencia los idiomas admitidos, por lo que es posible que esta lista no sea exhaustiva.
-
Si no se proporciona
languageCode
, la API usaráen
de forma predeterminada. Si especificas un código de idioma no válido, la API devuelve un errorINVALID_ARGUMENT
. - La API hace todo lo posible para proporcionar una dirección que sea legible tanto para el usuario como para los residentes locales. Para lograr ese objetivo, devuelve direcciones de calles en el idioma local, transliteradas a un alfabeto que el usuario pueda leer si es necesario, y observa el idioma preferido. Todas las demás direcciones se devuelven en el idioma preferido. Todos los componentes de la dirección se devuelven en el mismo idioma, que se elige a partir del primer componente.
- Si un nombre no está disponible en el idioma preferido, la API usa la coincidencia más cercana.
- El idioma preferido tiene una pequeña influencia en el conjunto de resultados que la API elige devolver y en el orden en que se devuelven. El geocodificador interpreta las abreviaturas de manera diferente según el idioma, como las abreviaturas de los tipos de calles o los sinónimos que pueden ser válidos en un idioma, pero no en otro.
regionCode
Es el código de región como un valor de código CLDR de dos caracteres. No hay un valor predeterminado. La mayoría de los códigos de CLDR son idénticos a los códigos ISO 3166-1.
Cuando se geocodifica una dirección, geocodificación directa, este parámetro puede influir en los resultados del servicio para la región especificada, pero no los restringe por completo. Cuando se geocodifica una ubicación o un lugar, ya sea con la geocodificación inversa o la geocodificación de lugares, este parámetro se puede usar para dar formato a la dirección. En todos los casos, este parámetro puede afectar los resultados según la legislación aplicable.
nivel de detalle
Una o más granularidades de ubicación, especificadas como parámetros de búsqueda separados, según lo define
Granularity
. Si especificas varios parámetrosgranularity
, la API devolverá todas las direcciones que coincidan con cualquiera de las granularidades.El parámetro
granularity
no restringe la búsqueda a las granularidades de ubicación especificadas. En cambio,granularity
actúa como un filtro posterior a la búsqueda. La API recupera todos los resultados para ellocation
especificado y, luego, descarta los resultados que no coinciden con las granularidades de ubicación especificadas.Si especificas
types
ygranularity
, la API solo devolverá los resultados que coincidan con ambos. Por ejemplo:https://geocode.googleapis.com/v4beta/geocode/location/37.4225508,-122.0846338?granularity=ROOFTOP
&granularity=GEOMETRIC_CENTER &key=API_KEY Tipos
Uno o más tipos de direcciones, especificados como parámetros de búsqueda separados. Si especificas varios parámetros
types
, la API devolverá todas las direcciones que coincidan con cualquiera de los tipos.El parámetro
types
no restringe la búsqueda a los tipos de direcciones especificados. En cambio,types
actúa como un filtro posterior a la búsqueda. La API recupera todos los resultados para la ubicación especificada y, luego, descarta los que no coinciden con los tipos de direcciones especificados.Si especificas
types
ygranularity
, la API solo devolverá los resultados que coincidan con ambos. Por ejemplo:https://geocode.googleapis.com/v4beta/geocode/location/37.4225508,-122.0846338?types=administrative_area_level_2
&types=locality &key=API_KEY Se admiten los siguientes valores:
Tipos de direcciones y tipos de componentes de direcciones
El array
types
en el cuerpo deGeocodeResult
en la respuesta indica el tipo de dirección. Entre los ejemplos de tipos de direcciones, se incluyen una dirección de la calle, un país o una entidad política. El arraytypes
en el campoAddressComponents
del cuerpo deGeocodeResult
indica el tipo de cada parte de la dirección. Los ejemplos incluyen el número de una calle o el país.Las direcciones pueden tener múltiples tipos. Los tipos se pueden considerar como "etiquetas". Por ejemplo, muchas ciudades están etiquetadas con los tipos
political
ylocality
.El geocodificador admite y muestra los siguientes tipos en los arrays de tipos de dirección y de componente de dirección:
Tipo de dirección Descripción street_address
Una dirección precisa route
Una ruta designada (como "US 101"). intersection
Una intersección principal, generalmente de dos rutas principales. political
Es una entidad política. Generalmente, este tipo indica un polígono de alguna administración pública. country
Indica la entidad política nacional y, por lo general, es el tipo de orden más alto que muestra el geocodificador. administrative_area_level_1
Indica una entidad pública de primer orden por debajo del nivel de país. En Estados Unidos, estos niveles administrativos son los estados. No todos los países poseen estos niveles administrativos. En la mayoría de los casos, los nombres cortos de administrative_area_level_1
coincidirán considerablemente con las subdivisiones de ISO 3166-2 y otras listas conocidas; sin embargo, no podemos garantizarlo debido a que nuestros resultados de geocodificación se basan en diferentes indicadores y datos de ubicación.administrative_area_level_2
Indica una entidad pública de segundo orden por debajo del nivel de país. En Estados Unidos, estos niveles administrativos son los condados. No todos los países poseen estos niveles administrativos. administrative_area_level_3
Indica una entidad civil de tercer rango por debajo del nivel de país. Este tipo indica una división política inferior. No todos los países poseen estos niveles administrativos. administrative_area_level_4
Indica una entidad civil de cuarto rango por debajo del nivel de país. Este tipo indica una división política inferior. No todos los países poseen estos niveles administrativos. administrative_area_level_5
Indica una entidad civil de quinto rango por debajo del nivel de país. Este tipo indica una división política inferior. No todos los países poseen estos niveles administrativos. administrative_area_level_6
Indica una entidad pública de sexto orden por debajo del nivel de país. Este tipo indica una división política inferior. No todos los países poseen estos niveles administrativos. administrative_area_level_7
Indica una entidad pública de séptimo orden por debajo del nivel de país. Este tipo indica una división política inferior. No todos los países poseen estos niveles administrativos. colloquial_area
Es un nombre alternativo de uso general para la entidad. locality
Indica una entidad política constituida como ciudad o pueblo. sublocality
Indica una entidad civil de primer rango por debajo de una localidad. Algunas ubicaciones pueden recibir uno de los tipos adicionales: sublocality_level_1
asublocality_level_5
. Cada nivel de sublocalidad es una entidad pública. Los números más altos indican un área geográfica más pequeña.neighborhood
Indica un área residencial con nombre. premise
Es una ubicación designada, generalmente un edificio o un conjunto de edificios con un nombre común. subpremise
Es una entidad direccionable por debajo del nivel de la instalación, como un departamento, una unidad o una suite. plus_code
Es una referencia de ubicación codificada, derivada de la latitud y la longitud. Los Plus Codes se pueden usar como reemplazo de las direcciones en los lugares donde estas no existen (donde los edificios no están numerados o las calles no tienen nombre). Visita https://plus.codes para obtener más información. postal_code
Es un código postal, tal como se usa para identificar una dirección de correo postal dentro del país. natural_feature
Un accidente geográfico destacado. airport
Un aeropuerto. park
Indica un parque designado. point_of_interest
Es un lugar de interés designado. Por lo general, estos "lugares de interés" son entidades locales destacadas que no encajan con facilidad en otras categorías, como "Edificio Empire State" o "Torre Eiffel". Una lista vacía de tipos indica que no hay tipos conocidos para el componente de dirección específico (por ejemplo, Lieu-dit en Francia).