如何使用 GeoTools 恢复内存中形状的特征?

How to recover features of a shape in memory using GeoTools?

查看 geotools 快速入门后:https://docs.geotools.org/latest/userguide/tutorial/quickstart/intellij.html

它显示了使用此代码恢复形状特征的示例:

File file = new File("myfile.shp");

FileDataStore store = FileDataStoreFinder.getDataStore(file);
SimpleFeatureSource featureSource = store.getFeatureSource();
FeatureCollection collection = featureSource.getFeatures();

FeatureIterator iterator = collection.features();

但是此代码依赖于 File。在我的真实项目中,形状内容以字节数组的形式提供给我,我无法创建临时文件。那么,如何访问功能?

到目前为止,这是我的代码

public static Map<String,Vector<String>> getAllPropsValues(byte[] fileContent){
   //Some other code here

   DataStore store = DataStoreFinder.getDataStore(fileContent); //<-- how to replace this line
   SimpleFeatureSource featureSource = store.getFeatureSource();
   FeatureCollection collection = featureSource.getFeatures();

   FeatureIterator iterator = collection.features();

   //other things here
}

一个 ShapeFile 是至少 3 个,可能最多 12 个文件的集合,它们共享一个通用的基本名称并具有各种扩展名,例如 .shp、.shx、.dbf、.prj 等

因此不可能从 InputStream 或字节集合构造 ShapeFile 对象,因为构造函数需要一次从 3 个文件读取以使用索引将几何图形 (.shp) 与属性 (.dbf) 联系起来,其他信息分散在其余文件中。