Ein ESRI-Shapefile aus einer Zip-Datei während der Laufzeit in Java lesen - DataStoreFinder.getDataStore (connectParameters) gibt null zurück

8

Wir erstellen einen Dienst zum Hochladen von Zip-Dateien, die eine ESRI-Shapefile enthalten. Der Dienst sollte in der Lage sein, das Shapefile zu lesen und mit seinem Inhalt zu arbeiten. Also habe ich eine Klasse erstellt, die die Zip-Datei in den temporären Ordner entpackt (Unterordner von System.getProperty ("java.io.tmpdir")).

Eine andere Klasse ruft die unzip-Methode aus der Unzip-Klasse auf und versucht dann, die entpackte Shapedatei mit Geotools zu lesen. Es verwendet die Geotools DataStoreFinder.getDataStore (Map params) -Methode, um einen Datenspeicher aus der entpackten Shapefile zu erstellen. Hier tritt das Problem auf: Die getDataStore-Methode gibt null zurück. Ich habe die URL getestet, es sieht gut aus. Die Datei, von der die URL abgeleitet wird, ist eine Datei und kann von der Anwendung gelesen werden (getestet mit shapefile.exists (), shapefile.isFile (), shapefile.canRead ()). Also, was könnte falsch sein? Warum bekomme ich null zurück?

Hier ist der (relevante) Code:

%Vor%     
Martijn 09.01.2013, 16:45
quelle

3 Antworten

1

Obwohl Ihr Code korrekt zu sein scheint, habe ich eine etwas andere Implementierung der entscheidenden Zeilen in unserer Codebasis gefunden:

%Vor%     
Halmackenreuter 15.12.2014 11:19
quelle
1

Benutze einfach den Konstruktor von ShapefileDataStore wie folgt:

%Vor%     
caw 31.12.2014 15:57
quelle
0

Ihr Code ist korrekt, aber in Ihrem Klassenpfad fehlt der ShapeFileDataStore. Korrigieren Sie Ihren Klassenpfad, indem Sie z. B .: gt2-shapefile-2.3.2.jar

hinzufügen

Oder verwenden Sie direkt

%Vor%

Dies hat den Vorteil, dass Sie sofort sehen werden, dass Ihr Code nicht kompiliert werden kann, da die Shapefile-Bibliothek fehlt.

Mit

%Vor%

Sie können eine Liste aller verfügbaren Datenspeicher ausgeben. Wenn leer oder wenn ShapefileDataStoreFactory nicht aufgelistet ist, wissen Sie, dass die Ursache der Klassenpfad ist.

    
AlexWien 15.06.2015 16:29
quelle

Tags und Links