目的:给一个属性名和一个数组,找到该属性里该数组对应的要素值,以一个要素列表的形式返回。
FilterFactory和FilterFactory2的区别。。不都是属性过滤器吗?能接受数组参数吗?
geotools的CQL属性查找规则:
参考1:https://blog.csdn.net/sxausgyy/article/details/8113111(GeoTools应用-Filter_CQL)
参考2:https://blog.csdn.net/oYinHeZhiGuang/article/details/118316074(GeoTools入门(六)-- 查询那点事)
filter:org.geotools.filter
This is most often used when making a Query to retrieve specific Features from a DataStore
cql:common query language
public FeatureCollection filterCQL(FeatureSource<SimpleFeatureType, SimpleFeature> fs,String name) throws CQLException, IOException{ return fs.getFeatures(CQL.toFilter("NAME like '%" + name + "%'")); } public static void main(String[] args) throws IOException, CQLException, SAXException, ParserConfigurationException { FilterExam fe = new FilterExam(); FeatureSource<SimpleFeatureType, SimpleFeature> fs = fe.getFeatureS("D:\\安康公交线_polyline.shp"); FeatureCollection col1 = fe.compareFilterEx(fs); System.out.println(col1.size()); FeatureCollection col2 = fe.filterFidEx(fs); System.out.println(col2.size()); FeatureCollection col3 = fe.filterCQL(fs, "13路"); System.out.println(col3.size()); FeatureCollection col4 = fe.filterXML(fs, "filter.xml"); System.out.println(col4.size()); }
得到FeatureCollection之后呢?如何保存到shp?
SimpleFeatureIterator itr = featureCollection.features();
得到的是Iterator迭代器。。
>>Set:
>>FeatureCollection:
>>arcgis sql属性查询:"attName" in ('value1','value2','value3','value4')
>>geoserver wfs查询(filter):https://www.cnblogs.com/2008nmj/p/16900136.html
>>ECQL:CQL的扩展,支持一些谓词