如何将变量从Google地图地理编码器传递到另一个函数?

时间:2011-07-24 20:50:00

标签: javascript

如何将test2变量的值传递给另一个函数?我一直在尝试使用全局变量和链接函数,正如我发现的另一个线程中所建议的那样,但是无法使它们起作用。

function codeAddress(addresstocode) {

var test2 = ['123','321'];

geocoder.geocode( { 'address': addresstocode}, function(results, status) {

    if(status == google.maps.GeocoderStatus.OK) {
        map.setCenter(results[0].geometry.location);

        coded_lat = results[0].geometry.location.Ka;
        coded_long = results[0].geometry.location.La;

        //coded_location = [{"latitude" : coded_lat, "longitude" : coded_long}];

        //test2 = returnAddress(coded_location);

        test2 = [coded_lat,coded_long];

        //coded_lat = coded_location[0].latitude;
        //coded_long = coded_location[0].longitude;
        //returnAddress(coded_location);
    }

});

console.log('test2: '+test2);

return test2;


}

2 个答案:

答案 0 :(得分:1)

您必须创建一个接收以下值的函数:

function geocodeOK(lat, lng){
    // Do what you want with lat lng
}

在您的代码中:

function codeAddress(addresstocode) {

    var test2 = ['123', '321'];

    geocoder.geocode({
        'address': addresstocode
    }, function(results, status) {

        if (status == google.maps.GeocoderStatus.OK) {
            map.setCenter(results[0].geometry.location);

            coded_lat = results[0].geometry.location.Ka;
            coded_long = results[0].geometry.location.La;
            geocodeOK(coded_lat, coded_long);
        }

    });

}

答案 1 :(得分:1)

你也不应该使用location.Ka,location.La的字母标识。 “Ka”和“La”经常变化。使用location.lat()或location.lng()的相应函数。这样你的代码就不会突然崩溃。