从WFS / Geoserver获取JSON数据

时间:2017-11-26 08:31:43

标签: javascript jquery json ajax geoserver

我正在努力从我的GeoServer中的WFS获取数据。我想从WFS返回的JSON中获取特定属性,并在填充表格的html页面中使用它。我已经阅读了很多帖子和文档,但我似乎无法使它工作。我有:

(a)更改了我的geoserver文件夹中的web.inf文件以启用jsonp

(b)尝试了outputFormat(json或text / javascript)的组合

(c)尝试了不同的方法来解析JSON(使用。或[],JSON.parse或parseJSON等),

(d)使用JSON.stringify来测试ajax调用是否正常工作(它确实!!)

但是,最后,它总是返回 undefined !!

function wfs(longitude, latitude){
    function getJson(data) {
        var myVar1=data['avgtemp1'];
        document.getElementById("v1").innerHTML = myVar;
    }
    var JsonUrl = "http://88.99.13.199:8080/geoserver/agristats/wfs?service=wfs&version=2.0.0&request=GetFeature&typeNames=agristats:beekeeping&cql_filter=INTERSECTS(geom,POINT(" + longitude + " " + latitude + "))&outputFormat=text/javascript&format_options=callback:getJson";
    $.ajax({
        type: 'GET', 
        url: JsonUrl,
        dataType: 'jsonp',
        jsonpCallback:'getJson',
        success: getJson
    });
}
wfs(38, 23);

你能帮我吗?

1 个答案:

答案 0 :(得分:3)

你很接近它。首先,您在编写的变量名称中有一个拼写错误(myVar1 vs myVar)。其次,您的函数正在接收Json对象,因此您必须深入了解其结构。首先,您获得功能,然后是第一个,然后是属性数组,然后是您选择的属性。 我建议你在Json Objects上读一个tutorial,因为你肯定想要遍历属性/项目,验证它们不是null等。

 function getJson(data) {
        var myVar1=data.features[0].properties['avgtemp1'];
        document.getElementById("v1").innerHTML = myVar1;
    }

最后,不要忘记在您喜欢的浏览器中使用调试器。在您的函数中放置一个断点并检查data的结构和内容。