이 문제에 아주 오래 참습니다. 나 우리가 이OgrJNI 플러그인 geotools를 사용하여 Mapinfo-File을 추가하는 데 문제가 있습니다.
OGRDataStoreFactory factory = new JniOGRDataStoreFactory();
Map<String, String> connectionParams = new HashMap<String, String>();
connectionParams.put("DriverName", "MapInfo File");
connectionParams.put("DatasourceName",
"C:\\Users\\Varun\\Desktop\\Test\\export\\MS1_Longcall0608143822_001.tab");
DataStore store = factory.createDataStore(connectionParams);
SimpleFeatureSource featureSource = store.getFeatureSource("MS1_Longcall0608143822_001");
MapContent map = new MapContent();
map.setTitle("Quickstart");
Style style = SLD.createSimpleStyle(featureSource.getSchema());
Layer layer = new FeatureLayer(featureSource, style);
map.addLayer(layer); // Now display the map
JMapFrame.showMap(map);
스택 추적
2016-09-27T18:36:44.839+0530 SEVERE org.gdal.ogr.ogrJNI.Layer_SetSpatialFilter(JLorg/gdal/ogr/Layer;JLorg/gdal/ogr/Geometry;)V
java.lang.UnsatisfiedLinkError: org.gdal.ogr.ogrJNI.Layer_SetSpatialFilter(JLorg/gdal/ogr/Layer;JLorg/gdal/ogr/Geometry;)V
at org.gdal.ogr.ogrJNI.Layer_SetSpatialFilter(Native Method)
at org.gdal.ogr.Layer.SetSpatialFilter(Layer.java:89)
at org.geotools.data.ogr.jni.JniOGR.LayerSetSpatialFilter(JniOGR.java:257)
at org.geotools.data.ogr.OGRFeatureSource.setLayerFilters(OGRFeatureSource.java:124)
at org.geotools.data.ogr.OGRFeatureSource.getReaderInternal(OGRFeatureSource.java:230)
at org.geotools.data.ogr.OGRFeatureSource.getReaderInternal(OGRFeatureSource.java:167)
at org.geotools.data.store.ContentFeatureSource.getReader(ContentFeatureSource.java:647)
at org.geotools.data.store.ContentFeatureCollection.features(ContentFeatureCollection.java:173)
at org.geotools.data.store.ContentFeatureCollection.features(ContentFeatureCollection.java:58)
at org.geotools.renderer.lite.StreamingRenderer.drawPlain(StreamingRenderer.java:2285)
at org.geotools.renderer.lite.StreamingRenderer.processStylers(StreamingRenderer.java:1920)
at org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:833)
at org.geotools.swing.RenderingTask.call(RenderingTask.java:106)
at org.geotools.swing.RenderingTask.call(RenderingTask.java:41)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
답변을 주셔서 감사합니다.하지만 gdal을 이미 설치했고 올바르게 작동하는 두 가지 enviourment 변수를 설정했습니다. 왜냐하면 SimpleFeatureSource를 사용하여 GeoFeatures를 반복 할 때 정확한 결과를 얻을 수 있지만 내 특정 오류가 발생할 때 내 오류가 발생하기 때문입니다. 레이어를 사용하면 렌더링 할 때 오류가 발생합니다. –
Geotools를 사용하여 Mapinfo TabFile을 열 수있는 솔루션이 있으면 붙어 있어야합니다. –