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

问题描述 投票:0回答:1

查看了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
}
java datastore geotools
1个回答
0
投票

ShapeFile是至少3个(可能多达12个)文件的集合,这些文件具有相同的基本名称并具有各种扩展名,例如.shp,.shx,.dbf,.prj等。

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

© www.soinside.com 2019 - 2024. All rights reserved.