我使用WMS作为叠加图。我想过滤WMS中的point 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);
这是点文件。我想传递参数来限制要显示的点(即点< 100)。 如果有人知道,请帮帮我。
答案 0 :(得分:4)
您可以通过附加过滤器来限制WMS图层中的点。首先根据形状文件中的某些属性创建过滤器:
var filter = new OpenLayers.Filter.Comparison({
type: OpenLayers.Filter.Comparison.EQUAL_TO,
property: "id",
value: 5
});
这将创建过滤器对象。您需要将其解析为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();