FileDataStoreFinder.getDataStore () возвращает нулевой указатель - PullRequest
0 голосов
/ 06 июля 2018

Я пытаюсь воссоздать учебник GeoTools QuickStart .

Интеграция Maven работала нормально, теперь я хочу загрузить немецкий почтовый индекс в область shapefile . Мой код выглядит следующим образом:

File file = new File("\\PATH\\TO\\FILE\\post_pl.shp");
FileDataStore store = FileDataStoreFinder.getDataStore(file);
SimpleFeatureSource featureSource = store.getFeatureSource();

FileDataStoreFinder всегда возвращает ноль при вызове getDataStore(). Отладка предполагает, что он ничего не может найти в GeoTools.scanForSystemHints(newGlobal);.

Шейп-файл может быть прочитан другими пользователями без проблем. Путь в Java также правильный. Это также терпит неудачу на файлах примера из учебника. Могу ли я включить файлы .dbf и .shx?

Я также пытался понизить SDK с 1,9 до 1,8 (так как doc подразумевает проблемы), но безрезультатно, по-прежнему нулевой указатель.

Может ли кто-нибудь помочь мне определить мою ошибку, или есть какие-то сведения о том, что я могу проверить?

Спасибо за вашу помощь

Thomas

1 Ответ

0 голосов
/ 19 января 2019

Если вы используете netbeans, возможно, вам не хватает зависимости в вашем файле pom.xml. Добавьте зависимость и проверьте правильность атрибута управления версиями geotools.

</project>
    </repositories>
        <repository>
            <id>osgeo</id>
            <name>Open Source Geospatial Foundation Repository</name>
            <url>http://download.osgeo.org/webdav/geotools/</url>
        </repository>
    </repositories>
    <dependencies>
        <dependency>
            <groupId>org.geotools</groupId>
            <artifactId>gt-shapefile</artifactId>
            <version>${geotools.version}</version>
        </dependency>
    </dependencies>
</project>

Источник: Имел проблему, нашел этот вопрос без ответа, исправил его; чувствовал себя обязанным сделать свой первый пост, чтобы внести свой вклад, когда я решил это.

...