使用 gdal java 绑定时出错
Error in using gdal java binding
我正在使用 gdal 的 java 绑定,使用 gdal 的 CoordinateTransformation Class 将一组坐标点从 UTM 投影到 lat/log。我写的代码如下:
SpatialReference oUTM = new SpatialReference();
SpatialReference oLatLog = new SpatialReference();
oUTM.SetProjCS("UTM 44/ WGS84");
oUTM.SetWellKnownGeogCS("WGS84");
oUTM.SetUTM(44, 1);
oLatLog = oUTM.CloneGeogCS();
double[] arr = new double[2];
arr[0]=10;
arr[1]=10;
double x = arr[0] , y = arr[1];
CoordinateTransformation transform = new CoordinateTransformation(oUTM,oLatLog);
transform.TransformPoint(arr);
System.out.println("Before:"+x+" "+y+"\nAfter:"+arr[0]+" "+arr[1]);
但是当我在主函数中 运行 this 时,出现以下错误:
线程 "main" java.lang.UnsatisfiedLinkError 中的异常:
org.gdal.osr.osrJNI.new_SpatialReference__SWIG_1()J
at org.gdal.osr.osrJNI.new_SpatialReference__SWIG_1(Native Method)
at org.gdal.osr.SpatialReference.<init>(SpatialReference.java:117)
at controller.CrsConverterGDAL.main(CrsConverterGDAL.java:8)
有谁知道如何解决这个问题?
谢谢,
我尝试执行您的源代码,但出现错误
Native library load failed.
java.lang.UnsatisfiedLinkError: no osrjni in java.library.path
因此仅在您的项目构建路径中添加 gdal.jar
不足以执行您的程序。有一些外部本机库依赖项。
看看这个 link,https://trac.osgeo.org/gdal/ticket/3598。这里提到,
The gdaljni.dll, ogrjni.dll, gdalconstjni.dll and osrjni.dll as well
as gdal17.dll and other dependant libraries must be in your path.
并且为了为 windows OS 生成这些 dll 并将它们包含在构建路径中,这里提到了步骤,https://trac.osgeo.org/gdal/wiki/GdalOgrInJavaBuildInstructions
我没有尝试过上面提到的步骤 link,但它们看起来很简单。但是,如果您遇到一些问题,请告诉我们,我们会尽力而为。
希望这对您有所帮助。
我正在使用 gdal 的 java 绑定,使用 gdal 的 CoordinateTransformation Class 将一组坐标点从 UTM 投影到 lat/log。我写的代码如下:
SpatialReference oUTM = new SpatialReference();
SpatialReference oLatLog = new SpatialReference();
oUTM.SetProjCS("UTM 44/ WGS84");
oUTM.SetWellKnownGeogCS("WGS84");
oUTM.SetUTM(44, 1);
oLatLog = oUTM.CloneGeogCS();
double[] arr = new double[2];
arr[0]=10;
arr[1]=10;
double x = arr[0] , y = arr[1];
CoordinateTransformation transform = new CoordinateTransformation(oUTM,oLatLog);
transform.TransformPoint(arr);
System.out.println("Before:"+x+" "+y+"\nAfter:"+arr[0]+" "+arr[1]);
但是当我在主函数中 运行 this 时,出现以下错误: 线程 "main" java.lang.UnsatisfiedLinkError 中的异常:
org.gdal.osr.osrJNI.new_SpatialReference__SWIG_1()J
at org.gdal.osr.osrJNI.new_SpatialReference__SWIG_1(Native Method)
at org.gdal.osr.SpatialReference.<init>(SpatialReference.java:117)
at controller.CrsConverterGDAL.main(CrsConverterGDAL.java:8)
有谁知道如何解决这个问题? 谢谢,
我尝试执行您的源代码,但出现错误
Native library load failed. java.lang.UnsatisfiedLinkError: no osrjni in java.library.path
因此仅在您的项目构建路径中添加 gdal.jar
不足以执行您的程序。有一些外部本机库依赖项。
看看这个 link,https://trac.osgeo.org/gdal/ticket/3598。这里提到,
The gdaljni.dll, ogrjni.dll, gdalconstjni.dll and osrjni.dll as well as gdal17.dll and other dependant libraries must be in your path.
并且为了为 windows OS 生成这些 dll 并将它们包含在构建路径中,这里提到了步骤,https://trac.osgeo.org/gdal/wiki/GdalOgrInJavaBuildInstructions
我没有尝试过上面提到的步骤 link,但它们看起来很简单。但是,如果您遇到一些问题,请告诉我们,我们会尽力而为。
希望这对您有所帮助。