Google Geocoding v3 – 格式化地址

我想知道是否有人能帮助我。 我很难在我的地理编码结果的对话框中将坐标和格式化地址返回给我,即使我似乎能够抓住城市,国家。

这是我正在使用的代码:

http://jsfiddle.net/d5DBh/5/ 

 var myLatlng = new google.maps.LatLng(31.272410, 0.190898); // INITALIZATION function initialize() { var mapOptions = { zoom: 4, center: myLatlng, mapTypeId: google.maps.MapTypeId.ROADMAP } var map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions); } // GEOCODE function codeAddress() { var address = document.getElementById("address").value; new google.maps.Geocoder().geocode({ 'address': address }, function (results, status) { if (status == google.maps.GeocoderStatus.OK) { if (results[0]) { var address = "", city = "", town = "", state = "", country = "", location = "", format = ""; for (var i = 0; i < results[0].address_components.length; i++) { var addr = results[0].address_components[i]; if (addr.types[0] == 'country') country = addr.short_name; else if (addr.types[0] == 'street_address') address = address + addr.long_name; else if (addr.types[0] == 'route') address = address + addr.long_name; else if (addr.types[0] == ['administrative_area_level_1']) state = addr.long_name; else if (addr.types[0] == ['administrative_area_level_2']) town = addr.long_name; else if (addr.types[0] == ['locality']) city = addr.long_name; else if (addr.types[0] == ['location']) location = addr.location; } alert('Formated Address: ' + format + '\n' + 'City: ' + city + '\n' + 'Town: ' + town + '\n' + 'State: ' + state + '\n' + 'Country: ' + country + '\n' + 'Coordinates: ' + location); } } else { alert("Error: We could not find this address - please try and different location"); }; }); } initialize(); document.getElementById("searchItem").onclick = function () { codeAddress(); return false; }; 

此外,由于我是Javascript的新手,我对任何关于写得更干净的想法持开放态度。

 function getLatLongDetail(myLatlng) { var geocoder = new google.maps.Geocoder(); geocoder.geocode({ 'latLng': myLatlng }, function (results, status) { if (status == google.maps.GeocoderStatus.OK) { if (results[0]) { var address = "", city = "", state = "", zip = "", country = "", formattedAddress = ""; var lat; var lng; for (var i = 0; i < results[0].address_components.length; i++) { var addr = results[0].address_components[i]; // check if this entry in address_components has a type of country if (addr.types[0] == 'country') country = addr.long_name; else if (addr.types[0] == 'street_address') // address 1 address = address + addr.long_name; else if (addr.types[0] == 'establishment') address = address + addr.long_name; else if (addr.types[0] == 'route') // address 2 address = address + addr.long_name; else if (addr.types[0] == 'postal_code') // Zip zip = addr.short_name; else if (addr.types[0] == ['administrative_area_level_1']) // State state = addr.long_name; else if (addr.types[0] == ['locality']) // City city = addr.long_name; } if (results[0].formatted_address != null) { formattedAddress = results[0].formatted_address; } //debugger; var location = results[0].geometry.location; lat = location.lat; lng = location.lng; alert('City: '+ city + '\n' + 'State: '+ state + '\n' + 'Zip: '+ zip + '\n' + 'Formatted Address: '+ formattedAddress + '\n' + 'Lat: '+ lat + '\n' + 'Lng: '+ lng); } } }); } 

注意:lat = location.lat; &lng = location.lng; 而不是lat = location.lat(); &lng = location.lng();