首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从geoServer getfeatureinfo中提取单个值

从geoServer getfeatureinfo中提取单个值
EN

Stack Overflow用户
提问于 2013-08-07 11:06:22
回答 1查看 1.5K关注 0票数 0

我正在尝试使用getfeatureinfo提取单个值。我使用了GeoServer给出的确切代码。

代码语言:javascript
复制
                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。如果有人能提供任何投入,那将是有帮助的。它的成果,因为它给人的感觉,它是直截了当的,但我仍然是从过去的三天。

谢谢你,艾莎

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-01 16:52:36

您可以尝试首先在setHTML函数中将数据解析为JSON,然后查找所需的属性。

代码语言:javascript
复制
var data = JSON.parse(response.responseText);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18101768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档