首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在WMS中过滤点?

如何在WMS中过滤点?
EN

Stack Overflow用户
提问于 2012-04-09 17:31:25
回答 1查看 4.6K关注 0票数 0

我使用WMS作为叠加地图。我想过滤WMS中的点shapefile。当前仅使用WMS代码整体显示。为此,以下是代码。

代码语言:javascript
复制
var jpl_wms = new OpenLayers.Layer.WMS("Administrative Layer",
                "http://localhost:8080/geoserver/test/wms", 
                {layers: "maharashtra_administrative",transparent: true},{isBaseLayer:false});
                map.addLayer(jpl_wms);

这是点文件。我想传递一个参数来限制要显示的点(即point<100)。如果有人知道,请帮帮我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-10 00:57:44

可以通过将过滤器附着到WMS图层来限制该图层中的点。首先,根据形状文件中的某些属性创建过滤器:

代码语言:javascript
复制
var filter = new OpenLayers.Filter.Comparison({
   type: OpenLayers.Filter.Comparison.EQUAL_TO,
   property: "id",
   value: 5
});

这将创建filter对象。您需要将其解析为XML字符串。下面的代码可以完成这项工作:

代码语言:javascript
复制
 var parser = new OpenLayers.Format.Filter.v1_1_0();
 var filterAsXml = parser.write(filter);
 var xml = new OpenLayers.Format.XML();
 var filterAsString = xml.write(filterAsXml);

现在你有了一个字符串,你可以将它附加到你的WMS层:

代码语言:javascript
复制
jpl_wms.params["FILTER"] = filterAsString;

如果图层已经绘制好了,你需要调用redraw()方法来应用滤镜:

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

https://stackoverflow.com/questions/10071349

复制
相关文章

相似问题

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