使用googlemap v3反向地理编码samplesource将此源

var map;
        var geocoder;
        var marker;
        function initialize() {
            geocoder = new google.maps.Geocoder();
            var mapOptions = {
                zoom : 14,
                center : new google.maps.LatLng(30, 30)
            };
            map = new google.maps.Map(document.getElementById('map-canvas'),
                    mapOptions);
        }

        function codeLatLng() {
              var latlng = new google.maps.LatLng(30, 30);
              alert("call codeLatLng() 1");
              geocoder.geocode({'latLng': latlng}, function(results, status) {
                  alert("call codeLatLng() 2");
                if (status == google.maps.GeocoderStatus.OK) {
                  if (results[1]) {
                    map.setZoom(11);
                    marker = new google.maps.Marker({
                        position: latlng,
                        map: map
                    });
                    infowindow.setContent(results[1].formatted_address);
                    infowindow.open(map, marker);
                  } else {
                    alert('No results found');
                  }
                } else {
                  alert('Geocoder failed due to: ' + status);
                }
              });
            }


        google.maps.event.addDomListener(window, 'load', initialize);
        codeLatLng();


我叫函数codeLatLng();代码的最后一行

因此调用函数codeLatLng()和警报消息“调用codeLatLng()1

但不调用“ call codeLatLng()2”,并且代码不起作用

我的代码有什么问题?

最佳答案

我的代码有什么问题?


您正在执行codeLatLng,然后初始化地图和geocoder变量(在DOM完成加载后初始化运行,codeLatLng立即运行)。

这样会更好:

    var map;
    var geocoder;
    var marker;
    function initialize() {
        geocoder = new google.maps.Geocoder();
        var mapOptions = {
            zoom : 14,
            center : new google.maps.LatLng(30, 30)
        };
        map = new google.maps.Map(document.getElementById('map-canvas'),
                mapOptions);

        // map and geocoder initialized
        codeLatLng();
    }

    function codeLatLng() {
          var latlng = new google.maps.LatLng(30, 30);
          alert("call codeLatLng() 1");
          geocoder.geocode({'latLng': latlng}, function(results, status) {
              alert("call codeLatLng() 2");
            if (status == google.maps.GeocoderStatus.OK) {
              if (results[1]) {
                map.setZoom(11);
                marker = new google.maps.Marker({
                    position: latlng,
                    map: map
                });
                infowindow.setContent(results[1].formatted_address);
                infowindow.open(map, marker);
              } else {
                alert('No results found');
              }
            } else {
              alert('Geocoder failed due to: ' + status);
            }
          });
        }


    google.maps.event.addDomListener(window, 'load', initialize);

关于javascript - Googlemap v3反向地理编码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20112690/

10-10 01:56