How can I get city name from a latitude and longitude point? How can I get city name from a latitude and longitude point? javascript javascript

How can I get city name from a latitude and longitude point?


Here is a complete sample:

<!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>


In node.js we can use node-geocoder npm module to get address from 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);});

output:

node 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' } ]