使用JavaScript进行谷歌地理编码

使用JavaScript进行谷歌地理编码,javascript,google-api,geocoding,Javascript,Google Api,Geocoding,我根据谷歌文档编写了以下脚本: 但是,脚本不起作用。 我在上面的链接上运行了原始的google脚本,它可以正常工作。我不知道代码的哪一部分出错了 谢谢 <!DOCTYPE html> <html> <body> <script> var geocode_file_path = "C:\\Hello.txt"; createFile(geocode_file_path); var geocoder; initial

我根据谷歌文档编写了以下脚本:

但是,脚本不起作用。 我在上面的链接上运行了原始的google脚本,它可以正常工作。我不知道代码的哪一部分出错了

谢谢

<!DOCTYPE html>
<html>
<body>
<script>
    var geocode_file_path = "C:\\Hello.txt";
    createFile(geocode_file_path);

    var geocoder;

    initialize();

    geocodeAddress(geocoder);

    function initialize() 
    {
    geocoder = new google.maps.Geocoder();
    }

    function geocodeAddress(geocoder) {
        var addresses = ['121 Dartmouth Street, Boston, MA', 'Boston, USA'];
        var arrayLength = addresses.length;
        for (var i = 0; i < arrayLength; i++) {
            var address = addresses[i];
            geocoder.geocode({'address': address}, function (results, status) 
        {
        alert('ok')
                if (status === google.maps.GeocoderStatus.OK) {
                    var result = results[0].geometry.location;
                    var name = results[0].formatted_address;
            alert(result)
                    writeFile(geocode_file_path, name + ': ' + result.toString());
                } else {
                    alert('Geocode was not successful for the following reason: ' + status);
                }
            });
        }
    }

    function createFile(afile)
    {
        var fso = new ActiveXObject("Scripting.FileSystemObject");
        var outFile = fso.CreateTextFile(afile, true);
        outFile.WriteLine('Geocoded Locations:');
        outFile.Close();
    }

    function writeFile(afile, str)
    {
        var fso = new ActiveXObject("Scripting.FileSystemObject");
        var outFile = fso.OpenTextFile(afile, 8, true);
        outFile.WriteLine(str);
        outFile.Close();
    }
</script>
<script async defer
        src="https://maps.googleapis.com/maps/api/js?key=Mykey">
</script>
</body>
</html>

var geocode_file_path=“C:\\Hello.txt”;
createFile(地理编码文件路径);
var地理编码器;
初始化();
地理编码地址;
函数初始化()
{
geocoder=新的google.maps.geocoder();
}
功能geocodeAddress(地理编码器){
var地址=['121达特茅斯街,波士顿,马萨诸塞州','波士顿,美国'];
var arrayLength=地址.length;
对于(变量i=0;i
您应该首先调用外部谷歌地图脚本

同时从
script
标记中删除
async
defer
属性,因为API脚本是脚本的直接依赖项,您希望它按顺序执行

<!DOCTYPE html>
<html>
<body>
<script src="https://maps.googleapis.com/maps/api/js?key=Mykey"></script>
<script>
    var geocode_file_path = "C:\\Hello.txt";
    createFile(geocode_file_path);

    var geocoder;

    initialize();

    geocodeAddress(geocoder);

    function initialize() 
    {
    geocoder = new google.maps.Geocoder();
    }

    function geocodeAddress(geocoder) {
        var addresses = ['121 Dartmouth Street, Boston, MA', 'Boston, USA'];
        var arrayLength = addresses.length;
        for (var i = 0; i < arrayLength; i++) {
            var address = addresses[i];
            geocoder.geocode({'address': address}, function (results, status) 
        {
        alert('ok')
                if (status === google.maps.GeocoderStatus.OK) {
                    var result = results[0].geometry.location;
                    var name = results[0].formatted_address;
            alert(result)
                    writeFile(geocode_file_path, name + ': ' + result.toString());
                } else {
                    alert('Geocode was not successful for the following reason: ' + status);
                }
            });
        }
    }

    function createFile(afile)
    {
        var fso = new ActiveXObject("Scripting.FileSystemObject");
        var outFile = fso.CreateTextFile(afile, true);
        outFile.WriteLine('Geocoded Locations:');
        outFile.Close();
    }

    function writeFile(afile, str)
    {
        var fso = new ActiveXObject("Scripting.FileSystemObject");
        var outFile = fso.OpenTextFile(afile, 8, true);
        outFile.WriteLine(str);
        outFile.Close();
    }
</script>
</body>
</html>

var geocode_file_path=“C:\\Hello.txt”;
createFile(地理编码文件路径);
var地理编码器;
初始化();
地理编码地址;
函数初始化()
{
geocoder=新的google.maps.geocoder();
}
功能geocodeAddress(地理编码器){
var地址=['121达特茅斯街,波士顿,马萨诸塞州','波士顿,美国'];
var arrayLength=地址.length;
对于(变量i=0;i
谢谢,Ryan!问题解决了。