Извлечь единственное значение из geoServer getfeatureinfo
Я пытаюсь извлечь одно значение с помощью getfeatureinfo. Я использовал точный код, указанный GeoServer.
map.events.register('click', map, function (e) {
document.getElementById('nodelist').innerHTML = "Loading... please wait...";
var params = {
REQUEST: "GetFeatureInfo",
EXCEPTIONS: "application/vnd.ogc.se_xml",
BBOX: map.getExtent().toBBOX(),
SERVICE: "WMS",
INFO_FORMAT: 'text/html',
QUERY_LAYERS: map.layers[0].params.LAYERS,
FEATURE_COUNT: 50,
Layers: 'Wind Speed',
WIDTH: map.size.w,
HEIGHT: map.size.h,
format: format,
s tyles: map.layers[0].params.STYLES,
srs: map.layers[0].params.SRS};
// handle the wms 1.3 vs wms 1.1 madness
if(map.layers[0].params.VERSION == "1.3.0") {
params.version = "1.3.0";
params.j = parseInt(e.xy.x);
params.i = parseInt(e.xy.y);
} else {
params.version = "1.1.1";
params.x = parseInt(e.xy.x);
params.y = parseInt(e.xy.y);
}
// merge filters
if(map.layers[0].params.CQL_FILTER != null) {
params.cql_filter = map.layers[0].params.CQL_FILTER;
}
if(map.layers[0].params.FILTER != null) {
params.filter = map.layers[0].params.FILTER;
}
if(map.layers[0].params.FEATUREID) {
params.featureid = map.layers[0].params.FEATUREID;
}
OpenLayers.loadURL("http://localhost:8080/geoserver/GIS/wms", params, this, setHTML, setHTML);
OpenLayers.Event.stop(e);
});
}
// sets the HTML provided into the nodelist element
function setHTML(response){
document.getElementById('nodelist').innerHTML = response.responseText;
};
Теперь я хочу получить одно значение из ответа. Я попытался разобрать. Изменение COntent.ftl. Но все же возвращенный код находится в формате HTML. Когда я пытаюсь использовать response.responseXML, он возвращает Null. Было бы полезно, если бы кто-нибудь мог предоставить какой-либо вклад. Это разочаровывает, поскольку это дает чувство, что это просто, но все же я нахожусь на нем с прошлых трех дней.
Спасибо астха
1 ответ
Решение
Вы можете сначала попытаться проанализировать данные как JSON в вашей функции setHTML, а затем найти нужный вам атрибут.
var data = JSON.parse(response.responseText);