M-Razavi
M-Razavi

Reputation: 3467

Getting Address from Google Map (Reverse Geocoding)

I have a online shop and people buy products and we send a products to their address , but sometimes customers enter a bad address and we couldn't find the destination.

I want to show a Google map in address form then customer locate their address on the map and finally address of that point fetched from Google map.

Is Google offers this feature?

Upvotes: 0

Views: 502

Answers (3)

Jeffrey Duncan
Jeffrey Duncan

Reputation: 51

You can also check the address against known deliverable addresses within the area. This database is maintained by the USPS, who visits (practically) every address every single weekday. Using a web-based API you could query the database and either get an automatic match or get a list of suggested matches. I know this doesn't provide you a map, but in many cases, it can allow your clients to correct their address right there on the spot and can be very easy to implement and use. Some services offer a Javascript implementation as well as an XML hook into the API. If you're googling it, look for address verification webservice, or something similar.

I work for an address verification service called smartystreets.

Upvotes: 2

Ruslan
Ruslan

Reputation: 10147

Yes, this service is known as reverse geocoding. And it's actually quite simple to implement. Assuming you get lat and long values from map click event, like so:

var map;
function initialize() {
  var myLatlng = new google.maps.LatLng(-25.363882,131.044922);
  var myOptions = {
    zoom: 4,
    center: myLatlng,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  }
  map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

  google.maps.event.addListener(map, 'click', function(event) {
    getAddress(event.latLng);
  });
}

function getAddress(location latlng) {
 var geocoder;
  var map;
  var infowindow = new google.maps.InfoWindow();
  var marker;
  function initialize() {
    geocoder = new google.maps.Geocoder();

    var myOptions = {
      zoom: 8,
      center: latlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
  }
}

Upvotes: 1

Argiropoulos Stavros
Argiropoulos Stavros

Reputation: 9533

Take a look at reverse geocoding.Although your question is many questions in one and you should break it to smaller ones and ask them here also.

Upvotes: 1

Related Questions