本帖最后由 liangddmy 于 2013-10-29 10:47:17 编辑

解决方案 »

  1.   

    地址解码是异步加载得到数据的,都没返回实际数据就已经执行到alert(locationArr);这里了而且你alert(reLocation);这句每次100%都是输出空内容改成这样    var j = 0;
        function codeAddress(addressStr) {
            var geocoder = new google.maps.Geocoder();
            var reLocation = new google.maps.LatLng();
            geocoder.geocode({ 'address': addressStr }, function (results, status) {
                if (status == google.maps.GeocoderStatus.OK) {
                    locationArr[j] = results[0].geometry.location;
                } else {
                    locationArr[j] = null;
                }
                j++;
                if (j < stationArr.length) codeAddress(stationArr[j]);
                else alert(locationArr)
            });
        }
        codeAddress(stationArr[j]);
      

  2.   

    本帖最后由 showbo 于 2013-10-29 11:28:21 编辑
      

  3.   

    这个程序运行时,第11个以后的编码都不执行了,感觉像是循环执行结束后异步进行的函数页不再执行了,请问这个怎么解决呢?在每次循环的时候加一个alert()之后所有数据都可以获取,但是程序运行的时候肯定不能加alert()的啊。
      

  4.   

    if (j < stationArr.length) codeAddress(stationArr[j]);确认你的这个数组长度是11?是11肯定会继续执行的