todos tipos sacar saber paises mis mapa los longitud latitud geograficas ejemplos definicion coordenadas como buscar javascript google-maps

javascript - tipos - mapa de latitud y longitud



¿Cómo puedo obtener el nombre de la ciudad desde un punto de latitud y longitud? (6)

Aquí hay una solución moderna que usa una promesa:

function getAddress (latitude, longitude) { return new Promise(function (resolve, reject) { var request = new XMLHttpRequest(); var method = ''GET''; var url = ''http://maps.googleapis.com/maps/api/geocode/json?latlng='' + latitude + '','' + longitude + ''&sensor=true''; var async = true; request.open(method, url, async); request.onreadystatechange = function () { if (request.readyState == 4) { if (request.status == 200) { var data = JSON.parse(request.responseText); var address = data.results[0]; resolve(address); } else { reject(request.status); } } }; request.send(); }); };

Y llámalo así:

getAddress(lat, lon).then(console.log).catch(console.error);

La promesa devuelve el objeto de dirección en ''entonces'' o el código de estado de error en ''captura''

¿Hay alguna manera de obtener un nombre de ciudad desde un punto de latitud y longitud con la API de google api para javascript?

Si es así, ¿podría ver un ejemplo?


El siguiente código funciona bien para obtener el nombre de la ciudad (usando Google Map Geo API ):

HTML

<p><button onclick="getLocation()">Get My Location</button></p> <p id="demo"></p> <script src="http://maps.google.com/maps/api/js?key=YOUR_API_KEY"></script>

GUIÓN

var x=document.getElementById("demo"); function getLocation(){ if (navigator.geolocation){ navigator.geolocation.getCurrentPosition(showPosition,showError); } else{ x.innerHTML="Geolocation is not supported by this browser."; } } function showPosition(position){ lat=position.coords.latitude; lon=position.coords.longitude; displayLocation(lat,lon); } function showError(error){ switch(error.code){ case error.PERMISSION_DENIED: x.innerHTML="User denied the request for Geolocation." break; case error.POSITION_UNAVAILABLE: x.innerHTML="Location information is unavailable." break; case error.TIMEOUT: x.innerHTML="The request to get user location timed out." break; case error.UNKNOWN_ERROR: x.innerHTML="An unknown error occurred." break; } } function displayLocation(latitude,longitude){ var geocoder; geocoder = new google.maps.Geocoder(); var latlng = new google.maps.LatLng(latitude, longitude); geocoder.geocode( {''latLng'': latlng}, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { if (results[0]) { var add= results[0].formatted_address ; var value=add.split(","); count=value.length; country=value[count-1]; state=value[count-2]; city=value[count-3]; x.innerHTML = "city name is: " + city; } else { x.innerHTML = "address not found"; } } else { x.innerHTML = "Geocoder failed due to: " + status; } } ); }


En node.js podemos usar node-geocoder npm module para obtener la dirección de lat, lng.,

geo.js

var NodeGeocoder = require(''node-geocoder''); var options = { provider: ''google'', httpAdapter: ''https'', // Default apiKey: '' '', // for Mapquest, OpenCage, Google Premier formatter: ''json'' // ''gpx'', ''string'', ... }; var geocoder = NodeGeocoder(options); geocoder.reverse({lat:28.5967439, lon:77.3285038}, function(err, res) { console.log(res); });

salida:

nodo geo.js

[ { formattedAddress: ''C-85B, C Block, Sector 8, Noida, Uttar Pradesh 201301, India'', latitude: 28.5967439, longitude: 77.3285038, extra: { googlePlaceId: ''ChIJkTdx9vzkDDkRx6LVvtz1Rhk'', confidence: 1, premise: ''C-85B'', subpremise: null, neighborhood: ''C Block'', establishment: null }, administrativeLevels: { level2long: ''Gautam Buddh Nagar'', level2short: ''Gautam Buddh Nagar'', level1long: ''Uttar Pradesh'', level1short: ''UP'' }, city: ''Noida'', country: ''India'', countryCode: ''IN'', zipcode: ''201301'', provider: ''google'' } ]



Igual que @Sanchit Gupta.

en esta parte

if (results[0]) { var add= results[0].formatted_address ; var value=add.split(","); count=value.length; country=value[count-1]; state=value[count-2]; city=value[count-3]; x.innerHTML = "city name is: " + city; }

solo consola la matriz de resultados

if (results[0]) { console.log(results[0]); // choose from console whatever you need. var city = results[0].address_components[3].short_name; x.innerHTML = "city name is: " + city; }


Aquí hay una muestra completa:

<!DOCTYPE html> <html> <head> <title>Geolocation API with Google Maps API</title> <meta charset="UTF-8" /> </head> <body> <script> function displayLocation(latitude,longitude){ var request = new XMLHttpRequest(); var method = ''GET''; var url = ''http://maps.googleapis.com/maps/api/geocode/json?latlng=''+latitude+'',''+longitude+''&sensor=true''; var async = true; request.open(method, url, async); request.onreadystatechange = function(){ if(request.readyState == 4 && request.status == 200){ var data = JSON.parse(request.responseText); var address = data.results[0]; document.write(address.formatted_address); } }; request.send(); }; var successCallback = function(position){ var x = position.coords.latitude; var y = position.coords.longitude; displayLocation(x,y); }; var errorCallback = function(error){ var errorMessage = ''Unknown error''; switch(error.code) { case 1: errorMessage = ''Permission denied''; break; case 2: errorMessage = ''Position unavailable''; break; case 3: errorMessage = ''Timeout''; break; } document.write(errorMessage); }; var options = { enableHighAccuracy: true, timeout: 1000, maximumAge: 0 }; navigator.geolocation.getCurrentPosition(successCallback,errorCallback,options); </script> </body> </html>