在我的GeoServer中,我很难从WFS获取数据。我希望从WFS返回的JSON中获得特定的属性,并在我的html页面中使用它来填充一个表。我读过大量的帖子和文档,但我似乎无法使它发挥作用。我有:
(a)更改geoserver文件夹中的web.inf文件以启用jsonp
(b)已试用的outputFormat组合(json或text/javascript)
(c)尝试了不同的解析JSON的方法(使用)。或[],JSON.parse或parseJSON等),
(d)使用JSON.stringify测试ajax调用是否正确工作(它可以!)
但是,最终,它总是返回未定义的!
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);你能帮帮我吗?
发布于 2017-11-26 16:23:11
你离它很近。首先,在您正在编写的变量名(myVar1 vs myVar)中有一个错误。其次,您的函数正在接收Json对象,因此您必须深入研究它的结构。首先是特性,然后是第一个,然后是属性数组,然后是您选择的属性。我建议您在Json对象上读取一个教程,因为您肯定希望遍历属性/项,验证它们不是null等等。
function getJson(data) {
var myVar1=data.features[0].properties['avgtemp1'];
document.getElementById("v1").innerHTML = myVar1;
}最后,不要忘记在您喜欢的浏览器中使用调试器。在函数中放置一个断点,检查data的结构和内容。
https://stackoverflow.com/questions/47494306
复制相似问题