在Google Map api中获取distanceFrom的问题

时间:2011-06-30 16:36:22

标签: javascript google-maps-api-2

我尝试使用google maps api获取两点之间的距离,

function load_points(){
        var geocoder = new GClientGeocoder();

        var firstZip, secondZip;
        geocoder.getLatLng(document.getElementById("firstZip").value, function(point) { 
         if (!point) { 
            alert("This point could not be geocoded"); 
           } else { 
            firstZip = point;
            var marker = new GMarker(point);
            map.addOverlay(marker);
           }
        });

        geocoder.getLatLng(document.getElementById("secondZip").value, function(point) { 
         if (!point) { 
            alert("This point could not be geocoded"); 
           } else { 
             secondZip = point;
             var marker = new GMarker(point);            
             map.addOverlay(marker);
            }
        });

        alert(new GLatLng(firstZip).distanceFrom(new GLatLng(secondZip)));

    }
问题是,当我尝试它时,似乎首先执行警报,然后执行地理编码部分,当然,distanceFrom方法失败,因为firstZip和secondZip的值未定义。有人知道如何解决它?

1 个答案:

答案 0 :(得分:1)

getLatLng函数是异步的,因此在尝试使用firstZipsecondZip变量之前,您需要等待对它的两次调用都成功返回。