Saltar al contenido

¿Cómo utilizar la codificación geográfica inversa de Google con React Native Expo?

Te damos la bienvenida a proyecto online, aquí hallarás la resolución de lo que estabas buscando.

Solución:

No necesita una biblioteca para la codificación geográfica inversa de LatLon, simplemente puede llamar a la API de Google Maps directamente como:

fetch('https://maps.googleapis.com/maps/api/geocode/json?address=' + myLat + ',' + myLon + '&key=' + myApiKey)
        .then((response) => response.json())
        .then((responseJson) => 
            console.log('ADDRESS GEOCODE is BACK!! => ' + JSON.stringify(responseJson));
)

(¡recuerde proporcionar su clave API de Google Maps!)

El objeto de resultado tendrá todos los componentes de dirección para ese LatLon.

Resultado de ejemplo

"results":["address_components":["long_name":"540","short_name":"540","types":["street_number"],"long_name":"Avenida Alda Garrido","short_name":"Av. Alda Garrido","types":["route"],"long_name":"Barra da Tijuca","short_name":"Barra da Tijuca","types":["political","sublocality","sublocality_level_1"],"long_name":"Rio de Janeiro","short_name":"Rio de Janeiro","types":["administrative_area_level_2","political"],"long_name":"Rio de Janeiro","short_name":"RJ","types":["administrative_area_level_1","political"],"long_name":"Brazil","short_name":"BR","types":["country","political"],"long_name":"22640-000","short_name":"22640-000","types":["postal_code"]],"formatted_address":"Av. Alda Garrido, 540 - Barra da Tijuca, Rio de Janeiro - RJ, 22640-000, Brazil","geometry":"location":"lat":-23.0077328,"lng":-43.315117,"location_type":"ROOFTOP","viewport":"northeast":"lat":-23.0063838197085,"lng":-43.3137680197085,"southwest":"lat":-23.0090817802915,"lng":-43.3164659802915,"place_id":"ChIJfSac_7vQmwARNiQbMrnXe4E","types":["street_address"],"address_components":["long_name":"Apto 301","short_name":"Apto 301","types":["subpremise"],"long_name":"470","short_name":"470","types":["street_number"],"long_name":"Avenida Alda Garrido","short_name":"Av. Alda Garrido","types":["route"],"long_name":"Barra da Tijuca","short_name":"Barra da Tijuca","types":["political","sublocality","sublocality_level_1"],"long_name":"Rio de Janeiro","short_name":"Rio de Janeiro","types":["administrative_area_level_2","political"],"long_name":"Rio de Janeiro","short_name":"RJ","types":["administrative_area_level_1","political"],"long_name":"Brazil","short_name":"BR","types":["country","political"],"long_name":"22621-000","short_name":"22621-000","types":["postal_code"]],"formatted_address":"Av. Alda Garrido, 470 - Apto 301 - Barra da Tijuca, Rio de Janeiro - RJ, 22621-000, Brazil","geometry":"location":"lat":-23.0079088,"lng":-43.3148068,"location_type":"ROOFTOP","viewport":"northeast":"lat":-23.0065598197085,"lng":-43.3134578197085,"southwest":"lat":-23.0092577802915,"lng":-43.3161557802915,"place_id":"ChIJpQ8sq77QmwARA6fRe9QZWZ0","types":["establishment","lodging","point_of_interest"],"address_components":["long_name":"589","short_name":"589","types":["street_number"],"long_name":"Avenida Alda Garrido","short_name":"Av. Alda Garrido","types":["route"],"long_name":"Barra da Tijuca","short_name":"Barra da Tijuca","types":["political","sublocality","sublocality_level_1"],"long_name":"Rio de Janeiro","short_name":"Rio de Janeiro","types":["administrative_area_level_2","political"],"long_name":"Rio de Janeiro","short_name":"RJ","types":["administrative_area_level_1","political"],"long_name":"Brazil","short_name":"BR","types":["country","political"],"long_name":"22620-171","short_name":"22620-171","types":["postal_code"]],"formatted_address":"Av. Alda Garrido, 589 - Barra da Tijuca, Rio de Janeiro - RJ, 22620-171, Brazil","geometry":"location":"lat":-23.0081304,"lng":-43.3147502,"location_type":"ROOFTOP","viewport":"northeast":"lat":-23.0067814197085,"lng":-43.3134012197085,"southwest":"lat":-23.0094793802915,"lng":-43.3160991802915,"place_id":"ChIJr2eVq77QmwARA3U9jQNI5Z8","types":["establishment","premise"],"address_components":["long_name":"540","short_name":"540","types":["street_number"],"long_name":"Avenida Alda Garrido","short_name":"Av. Alda Garrido","types":["route"],"long_name":"Barra da Tijuca","short_name":"Barra da Tijuca","types":["political","sublocality","sublocality_level_1"],"long_name":"Rio de Janeiro","short_name":"Rio de Janeiro","types":["administrative_area_level_2","political"],"long_name":"Rio de Janeiro","short_name":"RJ","types":["administrative_area_level_1","political"],"long_name":"Brazil","short_name":"BR","types":["country","political"],"long_name":"22620-171","short_name":"22620-171","types":["postal_code"]],"formatted_address":"Av. Alda Garrido, 540 - Barra da Tijuca, Rio de Janeiro - RJ, 22620-171, Brazil","geometry":"location":"lat":-23.0078265,"lng":-43.3151749,"location_type":"RANGE_INTERPOLATED","viewport":"northeast":"lat":-23.0064775197085,"lng":-43.3138259197085,"southwest":"lat":-23.0091754802915,"lng":-43.3165238802915,"place_id":"EkRBdi4gQWxkYSBHYXJyaWRvLCA1NDAgLSBCYXJyYSBkYSBUaWp1Y2EsIFJpbyBkZSBKYW5laXJvIC0gUkosIEJyYXppbCIbEhkKFAoSCXvIbAC80JsAEXZMHH23Zf8TEJwE","types":["street_address"],"address_components":["long_name":"Avenida Alda Garrido","short_name":"Av. Alda Garrido","types":["route"],"long_name":"Barra da Tijuca","short_name":"Barra da Tijuca","types":["political","sublocality","sublocality_level_1"],"long_name":"Rio de Janeiro","short_name":"Rio de Janeiro","types":["administrative_area_level_2","political"],"long_name":"Rio de Janeiro","short_name":"RJ","types":["administrative_area_level_1","political"],"long_name":"Brazil","short_name":"BR","types":["country","political"],"long_name":"22620-171","short_name":"22620-171","types":["postal_code"]],"formatted_address":"Av. Alda Garrido - Barra da Tijuca, Rio de Janeiro - RJ, 22620-171, Brazil","geometry":"bounds":"northeast":"lat":-23.0077138,"lng":-43.3146692,"southwest":"lat":-23.0080912,"lng":-43.3153903,"location":"lat":-23.0079025,"lng":-43.3150298,"location_type":"GEOMETRIC_CENTER","viewport":"northeast":"lat":-23.0065535197085,"lng":-43.3136807697085,"southwest":"lat":-23.0092514802915,"lng":-43.3163787302915,"place_id":"ChIJe8hsALzQmwARd0wcfbdl_xM","types":["route"],"address_components":["long_name":"22620-400","short_name":"22620-400","types":["postal_code"],"long_name":"Barra da Tijuca","short_name":"Barra da Tijuca","types":["political","sublocality","sublocality_level_1"],"long_name":"Rio de Janeiro","short_name":"Rio de Janeiro","types":["administrative_area_level_2","political"],"long_name":"State of Rio de Janeiro","short_name":"RJ","types":["administrative_area_level_1","political"],"long_name":"Brazil","short_name":"BR","types":["country","political"]],"formatted_address":"Barra da Tijuca, Rio de Janeiro - State of Rio de Janeiro, 22620-400, Brazil","geometry":"bounds":"northeast":"lat":-23.0078347,"lng":-43.3137711,"southwest":"lat":-23.0118196,"lng":-43.3149785,"location":"lat":-23.0108544,"lng":-43.3146249,"location_type":"APPROXIMATE","viewport":"northeast":"lat":-23.0078347,"lng":-43.31302581970849,"southwest":"lat":-23.0118196,"lng":-43.31572378029149,"place_id":"ChIJxyn3hb7QmwARggN-wB930Xo","types":["postal_code"],"address_components":["long_name":"Barra da Tijuca","short_name":"Barra da Tijuca","types":["political","sublocality","sublocality_level_1"],"long_name":"Rio de Janeiro","short_name":"Rio de Janeiro","types":["administrative_area_level_2","political"],"long_name":"State of Rio de Janeiro","short_name":"RJ","types":["administrative_area_level_1","political"],"long_name":"Brazil","short_name":"BR","types":["country","political"],"long_name":"22620-171","short_name":"22620-171","types":["postal_code"]],"formatted_address":"Barra da Tijuca, Rio de Janeiro - State of Rio de Janeiro, Brazil","geometry":"bounds":"northeast":"lat":-23.0009429,"lng":-43.2977475,"southwest":"lat":-23.0153102,"lng":-43.3294084,"location":"lat":-23.0093991,"lng":-43.3173933,"location_type":"APPROXIMATE","viewport":"northeast":"lat":-23.0009429,"lng":-43.2977475,"southwest":"lat":-23.0153102,"lng":-43.3294084,"place_id":"ChIJ2zZsIqPQmwARquMCy3yno4Q","types":["postal_code","postal_code_prefix"],"address_components":["long_name":"Barra da Tijuca","short_name":"Barra da Tijuca","types":["political","sublocality","sublocality_level_1"],"long_name":"Rio de Janeiro","short_name":"Rio de Janeiro","types":["administrative_area_level_2","political"],"long_name":"State of Rio de Janeiro","short_name":"RJ","types":["administrative_area_level_1","political"],"long_name":"Brazil","short_name":"BR","types":["country","political"]],"formatted_address":"Barra da Tijuca, Rio de Janeiro - State of Rio de Janeiro, Brazil","geometry":"bounds":"northeast":"lat":-22.9642374,"lng":-43.2844897,"southwest":"lat":-23.0228827,"lng":-43.45027049999999,"location":"lat":-23.0003709,"lng":-43.36589499999999,"location_type":"APPROXIMATE","viewport":"northeast":"lat":-22.9642374,"lng":-43.2844897,"southwest":"lat":-23.0228827,"lng":-43.45027049999999,"place_id":"ChIJXf62J0ramwARTg-e2NH2w2M","types":["political","sublocality","sublocality_level_1"],"address_components":["long_name":"Rio de Janeiro","short_name":"Rio de Janeiro","types":["administrative_area_level_2","political"],"long_name":"State of Rio de Janeiro","short_name":"RJ","types":["administrative_area_level_1","political"],"long_name":"Brazil","short_name":"BR","types":["country","political"]],"formatted_address":"Rio de Janeiro - State of Rio de Janeiro, Brazil","geometry":"bounds":"northeast":"lat":-22.7460201,"lng":-43.0990395,"southwest":"lat":-23.0828927,"lng":-43.7965385,"location":"lat":-22.9112301,"lng":-43.4452148,"location_type":"APPROXIMATE","viewport":"northeast":"lat":-22.7460201,"lng":-43.0990395,"southwest":"lat":-23.0828927,"lng":-43.7965385,"place_id":"ChIJC7UkQv5-mQAR7llshDwliPk","types":["administrative_area_level_2","political"],"address_components":["long_name":"Rio de Janeiro","short_name":"Rio de Janeiro","types":["locality","political"],"long_name":"Rio de Janeiro","short_name":"Rio de Janeiro","types":["administrative_area_level_2","political"],"long_name":"State of Rio de Janeiro","short_name":"RJ","types":["administrative_area_level_1","political"],"long_name":"Brazil","short_name":"BR","types":["country","political"]],"formatted_address":"Rio de Janeiro, State of Rio de Janeiro, Brazil","geometry":"bounds":"northeast":"lat":-22.7460327,"lng":-43.0969042,"southwest":"lat":-23.0822288,"lng":-43.7950599,"location":"lat":-22.9068467,"lng":-43.1728965,"location_type":"APPROXIMATE","viewport":"northeast":"lat":-22.7460327,"lng":-43.0969042,"southwest":"lat":-23.0822288,"lng":-43.7950599,"place_id":"ChIJW6AIkVXemwARTtIvZ2xC3FA","types":["locality","political"],"address_components":["long_name":"State of Rio de Janeiro","short_name":"RJ","types":["administrative_area_level_1","political"],"long_name":"Brazil","short_name":"BR","types":["country","political"]],"formatted_address":"State of Rio de Janeiro, Brazil","geometry":"bounds":"northeast":"lat":-20.7632054,"lng":-40.9568207,"southwest":"lat":-23.3689318,"lng":-44.8893205,"location":"lat":-22.9098755,"lng":-43.2094971,"location_type":"APPROXIMATE","viewport":"northeast":"lat":-20.7632054,"lng":-40.9568207,"southwest":"lat":-23.3689318,"lng":-44.8893205,"place_id":"ChIJw4riypQYmAAR0IMFwRrDSQM","types":["administrative_area_level_1","political"],"address_components":["long_name":"Brazil","short_name":"BR","types":["country","political"]],"formatted_address":"Brazil","geometry":"bounds":"northeast":"lat":5.2717863,"lng":-28.650543,"southwest":"lat":-34.0891,"lng":-73.9828169,"location":"lat":-14.235004,"lng":-51.92528,"location_type":"APPROXIMATE","viewport":"northeast":"lat":5.2717863,"lng":-28.650543,"southwest":"lat":-34.0891,"lng":-73.9828169,"place_id":"ChIJzyjM68dZnAARYz4p8gYVWik","types":["country","political"]],"status":"OK"

No obstante, su requisito se completa con la respuesta de la API de Google,

Pero ahora no es gratis, no se puede usar más que el límite gratuito que no sea la facturación de la cuenta de Google.

Entonces, si usted o alguien que trabaja con React-Native-Geocoder, puede implementarlo así:

var pos = 
  lat: 40.7809261,
  lng: -73.9637594
;

Geocoder.geocodePosition(pos).then(res => 
    alert(res[0].formattedAddress);
)
.catch(error => alert(error));

Existe Location.reverseGeocodeAsync (ubicación) para la aplicación expo.

Más adelante puedes encontrar las acotaciones de otros desarrolladores, tú todavía tienes la habilidad mostrar el tuyo si lo crees conveniente.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *