Как восстановить свойства фигуры в памяти с помощью GeoTools? - PullRequest
0 голосов
/ 28 января 2020

После ознакомления с кратким описанием геоинструментов: 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
}

1 Ответ

0 голосов
/ 28 января 2020

A ShapeFile - это набор из не менее 3 и, возможно, до 12 файлов, которые имеют общее базовое имя и имеют различные расширения, такие как .shp, .shx, .dbf, .prj et * 1006. *.

Таким образом, невозможно создать объект ShapeFile из InputStream или коллекции байтов, так как конструктору необходимо считывать сразу 3 файла до t ie геометрии (.shp) в атрибутах (. dbf) использование индекса и другой информации, разбросанной по оставшимся файлам.

...