Gdal读取矢量文件
GDAL的Java调用
注意: 系统版本位数,jdk版本位数,gdal位数需一致
1. GDAL的下载
(1)下载GDAL的源码包(http://www.gisinternals.com/sdk/),本文档以release-1600-x64-dev.zip为例。将压缩包解压到指定目录。
2. GDAL的调用
(1) 动态链接库的添加
解压后的文件夹中目录Drelease-1600-x64-dev\release-1600-x64\bin下的所有dll文件以及目录release-1600-x64-dev\release-1600-x64\bin\gdal\java下的dll文件复制到JAVA_HOME/bin下面。其中找JAVA_HOME路径的方法为:右击【我的电脑】---【属性】-----【高级系统设置】---【环境变量】,在【系统变量】中找到JAVA_HOME,变量值即为JAVA_HOME的路径。
注意:要确定系统Path中包含JAVA_HOME/bin,检查的方法为右击【我的电脑】---【属性】-----【高级系统设置】---【环境变量】,在【系统变量】中找到Path(如果没有path要新建),变量值设为%JAVA_HOME%\bin;。
(2)新建一个java project来说明GDAL的调用方法
a) 打开eclipse 新建java project 为Test
b) 在Drelease-1600-x64-dev文件下,通过查找以下的目录 (release-1600-x64-dev\release-1600-x64\bin\gdal\java)找到gdal.jar。
c) 将gdal.jar复制到项目Test 的根目录下面。
d) 在项目中右键点击gdal.jar,选择【Build path】下面的【Add to build path】, 添加jar包成功后在项目下Referenced Libraries文件夹下可以看到gdal.jar,如图
至此,jar包导入成功,gdal环境搭配完成。
3. java程序调用
package atide.readShp;
import org.gdal.ogr.*;
import org.gdal.ogr.Driver;
import org.gdal.gdal.*;
import org.junit.Test;
public class ReadShp {
@Test
public void test() {
// 注册所有的驱动
ogr.RegisterAll();
// 为了支持中文路径,请添加下面这句代码
gdal.SetConfigOption("GDAL_FILENAME_IS_UTF8","YES");
// 为了使属性表字段支持中文,请添加下面这句
gdal.SetConfigOption("SHAPE_ENCODING","");
String strVectorFile = "E:\\tmp\\data\\贵阳市.shp";
//打开文件
DataSource ds = ogr.Open(strVectorFile,0);
if (ds == null)
{
System.out.println("打开文件失败!" );
return;
}
System.out.println("打开文件成功!" );
Driver dv = ogr.GetDriverByName("GeoJSON");
if (dv == null)
{
System.out.println("打开驱动失败!" );
return;
}
System.out.println("打开驱动成功!" );
dv.CopyDataSource(ds, "E:\\tmp\\data\\node.json");
System.out.println("转换成功!" );
}
}
转载自:https://blog.csdn.net/wt346326775/article/details/70574748