2016-09-28 3 views
0

이 문제에 아주 오래 참습니다. 나 우리가 이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) 

답변

0

GeoTools에 도움을 주시기 바랍니다 geotools 맵에서 맵 인포 파일 레이어를 추가 할 수있는 방법을 알려 당신의 GDAL 라이브러리를 찾을 수 없습니다 바랍니다. 확인해야 할 몇 가지 사항이 있습니다. 데이터 저장소 페이지에서 :

이 모듈을 사용하려면 GDAL/OGR 설치가 Java 지원과 함께 컴파일되어야합니다.

GDAL을 설치 한 경우에도 마찬가지입니까?

OGR 데이터 저장소에는 GDAL/OGR 기본 라이브러리가 필요합니다. 설치가 완료되면 Windows에서는 PATH, Mac에서는 DYLD_LIBRARY_PATH, Linux에서는 LD_LIBRARY_PATH에 위치를 추가해야합니다. gt-ogr-bridj를 사용하고 dll/dylib/so 파일의 이름이 gdal이 아닌 경우 GDAL_LIBRARY_NAME을 설정해야합니다. 종종 GDAL의 버전에 따라 gdal10과 비슷합니다. 또한 프로그램을 실행할 때 java.library.path를 GDAL의 위치로 설정해야합니다.

환경 변수를 설정 했습니까?

+0

답변을 주셔서 감사합니다.하지만 gdal을 이미 설치했고 올바르게 작동하는 두 가지 enviourment 변수를 설정했습니다. 왜냐하면 SimpleFeatureSource를 사용하여 GeoFeatures를 반복 할 때 정확한 결과를 얻을 수 있지만 내 특정 오류가 발생할 때 내 오류가 발생하기 때문입니다. 레이어를 사용하면 렌더링 할 때 오류가 발생합니다. –

+0

Geotools를 사용하여 Mapinfo TabFile을 열 수있는 솔루션이 있으면 붙어 있어야합니다. –