从反向地理编码获取完整格式的地址

4
我希望通过Google地图API v3反向地理编码来检索完整的格式化地址,因为在许多(也许所有)国家它只显示邮政编码和/或城市和国家。我还想检索街道名称和其他反向地理编码(地址查找)函数可以获取的信息。但是由于我无法从JavaScript中的XML文件或链接到XML文件的地址中获取数据,因此我必须使用反向地理编码函数。
反向地理编码(地址查找)显示791 Long Ridge Lane, Gainesboro, Tennessee 38562, USA,而反向地理编码则显示Gainesboro, Tennessee 38562, USA
即使通过反向地理编码,是否仍然有可能获取完整的格式化地址,或者我必须使用PHP XML文件通过反向地理编码(地址查找)来获得它?
function coordinates_to_address(lat, lng) {
    var latlng = new google.maps.LatLng(lat, lng);

    geocoder.geocode({'latLng': latlng}, function(results, status) {
        if(status == google.maps.GeocoderStatus.OK) {
            if(results[1]) {
                $('#address_current').text(results[1].formatted_address);
            } else {
                alert('No results found');
            }
        } else {
            var error = {
                'ZERO_RESULTS': 'Kunde inte hitta adress'
            }

            // alert('Geocoder failed due to: ' + status);
            $('#address_new').html('<span class="color-red">' + error[status] + '</span>');
        }
    });
}
1个回答

10
为了获得最精确的结果,请使用第一个结果 (results[0]) 而不是第二个 (results[1]) :
function coordinates_to_address(lat, lng) {
    var latlng = new google.maps.LatLng(lat, lng);

    geocoder.geocode({'latLng': latlng}, function(results, status) {
        if(status == google.maps.GeocoderStatus.OK) {
            if(results[0]) {
                $('#address_current').text(results[0].formatted_address);
            } else {
                alert('No results found');
            }
        } else {
            var error = {
                'ZERO_RESULTS': 'Kunde inte hitta adress'
            }

            // alert('Geocoder failed due to: ' + status);
            $('#address_new').html('<span class="color-red">' + error[status] + '</span>');
        }
    });
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接