使用反向地理编码API返回JSON

Using reverse geocode API to return JSON

本文关键字:编码 API 返回 JSON      更新时间:2023-09-26

我正在尝试使用geocodefarm.com中的反向地理编码API来获取使用纬度和经度的地址。当我运行这个程序时,我会收到警报"错误",但地理代码场状态显示我使用了一个查询。。。所以我知道它会进入url,我只是不确定我应该如何获取JSON并解析它。它在getLocation()上失败了。任何帮助都会很棒!

<td><button onclick="getLocation();return false;" runat="server"></button></td>

编写脚本

    function getLocation() {
        jQuery.support.cors = true;
        $.ajax({
            url: 'http://www.geocodefarm.com/api/reverse/json/*apiKey*/45.2040305/-93.3995728/',
            type: 'GET',
            dataType: 'json',
            async: false,
            success: function (data) {
                WriteResponse(data);
            },
            error: function (error) {
                alert("Error");
            }
        });
    }
function WriteResponse(location) {
        if (location != null) {
            $("#txtAddZipCode").html = location.address
        }
    }

这就是网站所说的应该以JSON形式返回的方式

{
    },
    "STATUS": {
        "access": "KEY_VALID, ACCESS_GRANTED",
        "status": "SUCCESS"
    },
           "PROVIDER": {
        "provider": "LOCAL_FARM",
        "import": "ALREADY_STORED"
    },
    "ADDRESS": {
        "address": "522-534 West Main Street, Anoka, MN 55303, USA",
        "accuracy": "GOOD ACCURACY"
    },
    "COORDINATES": {
        "latitude": "45.2040305",
        "longitude": "-93.3995728"
    },
    "STATISTICS": {
        "load_time": "0.52",
        "https_ssl": "DISABLED, INSECURE"
    }
}

}

您有几个问题,首先您不能跨域进行同步ajax调用,这是不可能的,所以没有理由添加async : false,它被忽略了。

其次,这是错误的语法

$("#txtAddZipCode").html = location.address

应该是

$("#txtAddZipCode").html(location.address);

最后,你使用的URL似乎不支持CORS,我在运行它时收到No 'Access-Control-Allow-Origin'错误,但我没有API密钥,所以这可能是导致它的原因