我使用WMS作为叠加地图。我想过滤WMS中的点shapefile。当前仅使用WMS代码整体显示。为此,以下是代码。
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)。如果有人知道,请帮帮我。
发布于 2012-04-10 00:57:44
可以通过将过滤器附着到WMS图层来限制该图层中的点。首先,根据形状文件中的某些属性创建过滤器:
var filter = new OpenLayers.Filter.Comparison({
type: OpenLayers.Filter.Comparison.EQUAL_TO,
property: "id",
value: 5
});这将创建filter对象。您需要将其解析为XML字符串。下面的代码可以完成这项工作:
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层:
jpl_wms.params["FILTER"] = filterAsString;如果图层已经绘制好了,你需要调用redraw()方法来应用滤镜:
jpl_wms.redraw();https://stackoverflow.com/questions/10071349
复制相似问题