使用Google' Javascript API的未定义问题

Undefined Issue using Google's Javascript API

本文关键字:API 未定义 问题 Javascript Google 使用      更新时间:2023-09-26

在使用谷歌地理定位api时,我已经被困在一个问题上好几天了。这就是我一直在尝试的-

function codeAddress(address) {
    var geocoder = new google.maps.Geocoder();
    geocoder.geocode({"address": address}, function(results, status) {
        if (status == "OK") {
            return results[0].geometry.location;
        } else {
            return null;
        }
    });
}
function generateJSON(origin, destination) {
    var origin_loc = codeAddress(origin);
    var dest_loc = codeAddress(destination);
    ....
}

"origin_loc"变量返回未分配,我还没有能够找出为什么与调试器。当我将结果[0]记录到控制台时,它会与对象一起返回。

有人知道为什么会发生这种情况吗?

谢谢

这就是我最终成功的方法-

function codeAddresses(addresses, callback) {
    var coords = [];
    for(var i = 0; i < addresses.length; i++) {
        var geocoder = new google.maps.Geocoder();
        geocoder.geocode({'address':addresses[i]}, function (results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
                coords.push(results[0].geometry.location);
                if(coords.length == addresses.length) {
                    callback(coords);
                }
            }
            else {
                throw('No results found: ' + status);
            }
        });
    }
}
function generateJSON(origin, destination) {
    var addresses = [origin, destination];
    codeAddresses(addresses, function(coords) {
         var json = { ..... }
         ....
    });
}
谢谢你的帮助@yuriy636!