/**
* 根据点集获取面几何模型
* @param points 点集
* @return 返回polygon
*/
public static ShapefileDataStore instance(){
File file = new File (Utils.getFeatureFile());
if(featureSource == null){
try{
featureSource = new ShapefileDataStore(file.toURL());
}catch (Exception e){
e.printStackTrace();
}
}
return featureSource;
}
/**
* 返回与geom相交的进行相交处理的几何模型
* @param features 要素集
* @param geom 几何模型
* @return 返回几何模型集
*/
public static List<String> getFieldByEnvelop(ShapefileDataStore source,Geometry geom,String fieldName){
List<String> files = new ArrayList<>();
try{
ContentFeatureSource featureSource = source.getFeatureSource();
SimpleFeatureIterator iterator = featureSource.getFeatures().features();
while(iterator.hasNext()){
SimpleFeature feature =iterator.next();
SimpleFeatureType featureType = feature.getFeatureType();
Geometry defaultGeometry = (Geometry)feature.getDefaultGeometry();
//相交
if(defaultGeometry.intersects(geom)){
String jc = feature.getProperty(fieldName).getValue().toString();
files.add(jc);
}
}
}catch (Exception e){
e.printStackTrace();
return null;
}
return files;
}