基于java geotools库读取shp文件
通过shpDataStore.setCharset设置dbf编码,确保与源文件编码一致,不然会出现乱码
话不多说直接上代码
/***
* path shp文件路径
* filters 属性过滤条件
* */
public SimpleFeatureCollection readStoreByShp(String path, List<Filter> filters) throws IOException {
ShapefileDataStore shpDataStore = null;
File file = new File(path);
shpDataStore = new ShapefileDataStore(file.toURL());
// 设置编码
// if(code.equals("GBK")) {
Charset charset = Charset.forName("GBK");
shpDataStore.setCharset(charset);
// }else {
// Charset charset = Charset.forName("UTF-8");
// shpDataStore.setCharset(charset);
// }
String typeName = shpDataStore.getTypeNames()[0];
SimpleFeatureSource featureSource = null;
featureSource = shpDataStore.getFeatureSource(typeName);
Query query = new Query();
FilterFactory2 ff = CommonFactoryFinder.getFilterFactory2();
query.setFilter(ff.and(filters));
SimpleFeatureCollection result = featureSource.getFeatures(query);
shpDataStore.dispose();// 使用之后必须关掉
return result;
}
本文介绍了如何使用JavaGeoTools库通过指定shp文件路径和过滤条件,设置正确的DBF编码(如GBK或UTF-8),以避免读取时出现乱码,最终获取SimpleFeatureCollection对象。
1289

被折叠的 条评论
为什么被折叠?



