Googlemaps API Geocoder中JS状态变量的更改不起作用

时间:2013-05-16 07:30:40

标签: javascript variables google-maps-api-3 state google-geocoder

你好比我聪明的人。 ;) 我真的无法想象我的代码这种奇怪的行为。

它应该做的是在按下按钮时执行函数fixedlocation()以检查是否可以找到有效地址然后执行一些代码。

为了检查它是否正常工作,我在代码中有一个警告,它给出了应该更改的布尔值的状态。现在我真的不明白为什么,但它只能在第二次按下按钮时起作用。这意味着即使可以找到有效的地址,第一次警报会弹出一个错误的...

起初我认为它必须与我定义变量的位置有关,但是第二次它无法工作吗?

任何帮助或指向正确的方向将非常感激。

var geoinfobool=new Boolean();
function fixedlocation()
{    

    var addresscoordinates = new google.maps.LatLng(document.getElementById('addresslat').value,document.getElementById('addresslng').value)
    geocoder.geocode({'latLng': addresscoordinates}, function(results, status) 
    {

        if (status == google.maps.GeocoderStatus.OK) 
        {
            geoinfoavailable(true);

            //do other stuff in here//

        } 
        else 
        {
            geoinfoavailable(false);

            //do other stuff in here//

        }
    });

    alert(geoinfobool);
}

function geoinfoavailable(state)

{
    geoinfobool = state;
}

1 个答案:

答案 0 :(得分:0)

在您的代码中未定义地理编码器。

尝试

var addresscoordinates = new google.maps.LatLng(document.getElementById('addresslat').value,document.getElementById('addresslng').value);
var geocoder = new google.maps.Geocoder();
geocoder.geocode({'latLng': addresscoordinates}, function(results, status) 
{