反向地理编码将坐标转换为地址?

时间:2012-05-12 21:29:25

标签: jquery google-maps google-maps-api-3 geocoding reverse-geocoding

我错过了一些完全明显的东西吗?

我的目的是将坐标转换为地址并将其插入div

http://jsfiddle.net/sHLG6/1/

谢谢

1 个答案:

答案 0 :(得分:11)

我看到你的小提琴立即弹出了3件事。

  1. 您从未引用过Google javascript库
  2. 您从未致电initialize()codeLatLng()
  3. 您在div元素上使用了value属性,但您真正想要的是getAttribute()方法。
  4. I changed your fiddle so it's working now

    为了完整起见,原始代码如下

    <div id="latlng" value="54.9882,-1.5747"></div>
    <div id="test"></div>
    var geocoder; function initialize() {
    geocoder = new google.maps.Geocoder(); } function codeLatLng() {
    
        var input = document.getElementById("latlng").value;
        var latlngStr = input.split(",", 2);
        var lat = parseFloat(latlngStr[0]);
        var lng = parseFloat(latlngStr[1]);
        var latlng = new google.maps.LatLng(lat, lng);
        geocoder.geocode({
            'latLng': latlng
        }, function(results, status) {
    
            document.getElementById("test").innerHTML = '' + (results[4].formatted_address); + ''
        }); }​
    

    工作代码:

    <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?sensor=false"></script>
    <div id="latlng" value="54.9882,-1.5747"></div>
    <div id="test"></div>
    var geocoder;
    initialize();
    codeLatLng();
    function initialize() {
    
        geocoder = new google.maps.Geocoder();
    }
    
    function codeLatLng() {
    
        var input = document.getElementById("latlng").getAttribute('value');
    console.log(input);
        var latlngStr = input.split(",", 2);
        var lat = parseFloat(latlngStr[0]);
        var lng = parseFloat(latlngStr[1]);
        var latlng = new google.maps.LatLng(lat, lng);
        geocoder.geocode({
            'latLng': latlng
        }, function(results, status) {
    
            document.getElementById("test").innerHTML = '' + (results[4].formatted_address); + ''
        });
    }​