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

时间:2014-11-12 17:49:53

标签: javascript ajax json vb.net reverse-geocoding

我正在尝试使用geocodefarm.com中的反向地理编码API来获取使用纬度和经度的地址。当我运行这个时,我收到了警告"错误",但geocodefarm状态说我已经使用了我的一个查询...所以我知道它要去网址,我只是不确定我应该如何获取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"
    }
}

}

1 个答案:

答案 0 :(得分:0)

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

其次,这是错误的语法

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

应该是

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

最后,您使用的URL似乎不支持CORS,运行时出现No 'Access-Control-Allow-Origin'错误,但我没有API密钥,因此可能是导致它的原因。