在这里插入图片描述
private static R turn() {
gdal.AllRegister();
// 配置GDAL_DATA路径
gdal.SetConfigOption("GDAL_FILENAME_IS_UTF8", "YES");
// 属性表字段支持中文
gdal.SetConfigOption("SHAPE_ENCODING", "");
Driver mdDriver = null;
DataSource mdbDataSource = null;
Driver shapeDriver = null;
DataSource shapeDataSource = null;
try {
//Mdb文件路径
String path = "D:\\shp\\test.mdb";
//获取Mdb驱动
mdDriver = ogr.GetDriverByName("PGeo");
//获取数据
mdbDataSource = mdDriver.Open(path, 0);
if (mdbDataSource == null) {
log.info("数据库获取失败");
return R.error("获取图层失败!");
}
Layer layer = mdbDataSource.GetLayer(0);
if (layer == null) {
return R.error("获取图层失败!");
}
Vector<String> vector = new Vector();
vector.add("ENCODING=UTF-8");
//获取shp驱动
shapeDriver = ogr.GetDriverByName("ESRI Shapefile");
//创建文件
shapeDataSource = shapeDriver.CreateDataSource("D:\\shp\\" + "shp");
//写入图层
shapeDataSource.CopyLayer(layer, "test", vector);
}catch (Exception e){
e.printStackTrace();
}finally {
//释放资源
if (mdbDataSource != null){
mdbDataSource.delete();
mdDriver.delete();
}
if (shapeDataSource != null){
shapeDataSource.delete();
shapeDriver.delete();
}
}
return R.ok();
}