我正在努力从我的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);
你能帮我吗?
答案 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
的结构和内容。