在react中使用openlayer的filter进行多属性筛选的问题。
这里的目的是实现一个关键字查询多个图层的指定属性。多属性用or连接。
import {
and as andFilter,
or as orFilter,
like as likeFilter
} from 'ol/format/filter.js';
const layerArr=[
{name:'cite:2020xxxxx',geo:'geometry',nameText:"xxxxx",queryParams:["place_names","add","survey_num"]},
{name:'cite:2024xxxxx',geo:'geometry',nameText:"xxxxx",queryParams:["place_names","township"]}
];
const keyword = “广东” //需要查询的关键字
layerArr.map((e,i)=>{
const featureRequest = new WFS().writeGetFeature({
srsName: 'EPSG:4326', //坐标系统
featureTypes: [e.name], //查询图层
outputFormat: 'application/json',
//这里希望使用上面queryParams中的字段作为查询条件,查询的值用keyword,但是不知道该怎么写,请高手赐教!
filter: orFilter(e.queryParams) // e.queryParams 是需要重写的
});
fetch('http://xxxxxx/geoserver/wfs', {
method: 'POST',
mode: 'cors',
body: new XMLSerializer().serializeToString(featureRequest)
})
.then(function (response) {
return response.json(); //只要拿到这个response就可以了
})
***后续代码省略