使用Openlyers+Geoserver进行一个大量数据的展示,效率太低不能很好的的展示,也不适合于使用样式表按比例尺进行分层加载,于是研究一下如何通过代码刷新过滤图层,具体如下:
1、使用mergeNewParams的方式,这种方式从Geoserver的例子中学来的,数据量不大时可以使用,数据量一大,基本就不能使用了:
//先创建一个filter的数据结构
var filterParams = {
filter: null,
cql_filter: null,
featureId: null
};
//可以使用cal, ogc, fid进行过滤,具体如下
if (OpenLayers.String.trim(filter) != "") {
if (filterType == "cql")
filterParams["cql_filter"] = filter;
if (filterType == "ogc")
filterParams["filter"] = filter;
if (filterType == "fid")
filterParams["featureId"] = filter;
}
//然后调用图层方法,传入filter的数据
layer.mergeNewParams(filterPara