The reverse geocoding feature of Google Maps API lets you convert latitude and longitude into a physical address. Here’s a snippet of code that implements address lookup in Google Maps using JavaScript.
//Initialize Global Variables
var adUnit;
var marker;
var infoWindow;
var geocoder;
var map = null;
var lat;
var lon;
function initialize() {
  var mapOptions = {
    zoom: 16,
    mapTypeId: google.maps.MapTypeId.ROADMAP,
    streetViewControl: false,
    panControl: false,
    mapTypeControl: true,
    mapTypeControlOptions: {
      style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR,
      position: google.maps.ControlPosition.BOTTOM_CENTER,
    },
    zoomControl: true,
    zoomControlOptions: {
      style: google.maps.ZoomControlStyle.SMALL,
      position: google.maps.ControlPosition.LEFT_CENTER,
    },
  };
  map = new google.maps.Map(document.getElementById('map'), mapOptions);
  var adUnitDiv = document.createElement('div');
  var adsense = 'ca-pub-1234';
  // Add a Google AdSense unit
  var adUnitOptions = {
    format: google.maps.adsense.AdFormat.BUTTON,
    position: google.maps.ControlPosition.RIGHT_BOTTOM,
    publisherId: adsense,
    map: map,
    visible: true,
  };
  var adUnit = new google.maps.adsense.AdUnit(adUnitDiv, adUnitOptions);
  lat = 37.41954708018655;
  lon = -122.08398342132568;
  // Determine your initial location through GPS
  if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(function (position) {
      lat = position.coords.latitude;
      lon = position.coords.longitude;
    });
  }
  var latLng = new google.maps.LatLng(lat, lon);
  map.setCenter(latLng);
  marker = new google.maps.Marker({
    position: latLng,
    title: 'Drag this pin to another location',
    animation: google.maps.Animation.DROP,
    map: map,
    draggable: true,
  });
  infoWindow = new google.maps.InfoWindow({
    content:
      "<div class='place'>Drag this pin anywhere on the Google Map to know the approximate address of that point.</div>",
  });
  infoWindow.open(map, marker);
  geocoder = new google.maps.Geocoder();
  //Update postal address when the marker is dragged
  google.maps.event.addListener(marker, 'dragend', function () {
    geocoder.geocode({ latLng: marker.getPosition() }, function (responses) {
      if (responses && responses.length > 0) {
        infoWindow.setContent(
          "<div class='place'>" +
            responses[0].formatted_address +
            '<br /> <small>' +
            'Latitude: ' +
            marker.getPosition().lat() +
            '<br>' +
            'Longitude: ' +
            marker.getPosition().lng() +
            '</small></div>'
        );
        infoWindow.open(map, marker);
      } else {
        alert('Error: Google Maps could not determine the address of this location.');
      }
    });
    map.panTo(marker.getPosition());
  });
  // Close the marker window when being dragged
  google.maps.event.addListener(marker, 'dragstart', function () {
    infoWindow.close(map, marker);
  });
}
google.maps.event.addDomListener(window, 'load', initialize);
// Search for an address on Google Maps
function showAddress(address) {
  if (geocoder) {
    geocoder.geocode({ address: address }, function (results, status) {
      if (status == google.maps.GeocoderStatus.OK) {
        // For accurate addresses, the type is ROOFTOP else APPROXIMATE
        if (results[0].geometry.location_type == 'ROOFTOP') map.setZoom(18);
        else map.setZoom(14);
        map.setCenter(results[0].geometry.location);
        marker.setPosition(results[0].geometry.location);
        infoWindow.open(map, marker);
      } else {
        alert('Error: ' + address + ' cannot be found on Google Maps.');
      }
    });
  }
} 
  
  
  
  
 