概述
借鉴:https://www.jianshu.com/p/6d9a65839f7f
话不多说,自觉上代码。
package gdal;
import org.gdal.gdal.Dataset;
import org.gdal.gdal.Driver;
import org.gdal.gdal.gdal;
import org.gdal.gdalconst.gdalconstConstants;
import org.gdal.ogr.DataSource;
import org.gdal.ogr.ogr;
import org.junit.Test;
public class switchEachOtherGeosionAndShp02 {
/**
* geosion转shp
* 驱动转换, 面的不可以转换。
* 线的和点的可以转换。因为面的点不够全面,导出来的是错误的信息。
*/
@Test
public void test02(){
// 注册所有的驱动
ogr.RegisterAll();
// 为了支持中文路径,请添加下面这句代码
gdal.SetConfigOption("GDAL_FILENAME_IS_UTF8","YES");
// 为了使属性表字段支持中文,请添加下面这句
gdal.SetConfigOption("SHAPE_ENCODING","");
String strVectorFile = "D:\TJFXshp\plant001.geojson";
//打开数据
DataSource ds = ogr.Open(strVectorFile,0);
if (ds == null)
{
System.out.println("打开文件失败!" );
return;
}
System.out.println("打开文件成功!" );
// GeoJSON shp转json的驱动
// 面的记录 ESRI Shapefile
// 线的记录 ESRI Shapefile
// 点的记录 ESRI Shapefile
String strDriverName = "ESRI Shapefile";
org.gdal.ogr.Driver dv = ogr.GetDriverByName(strDriverName);
if (dv == null)
{
System.out.println("打开驱动失败!" );
return;
}
System.out.println("打开驱动成功!" );
dv.CopyDataSource(ds, "D:\TJFXshp\1111118.shp");
System.out.println("转换成功!" );
}
/**
* shp转geosion
*/
@Test
public void test01(){
// 注册所有的驱动
ogr.RegisterAll();
// 为了支持中文路径,请添加下面这句代码
gdal.SetConfigOption("GDAL_FILENAME_IS_UTF8","YES");
// 为了使属性表字段支持中文,请添加下面这句
gdal.SetConfigOption("SHAPE_ENCODING","");
String strVectorFile = "D:\TJFXshp\PlaneShap001.shp";
//打开数据
DataSource ds = ogr.Open(strVectorFile,0);
if (ds == null)
{
System.out.println("打开文件失败!" );
return;
}
System.out.println("打开文件成功!" );
// GeoJSON shp转json的驱动
org.gdal.ogr.Driver dv = ogr.GetDriverByName("GeoJSON");
if (dv == null)
{
System.out.println("打开驱动失败!" );
return;
}
System.out.println("打开驱动成功!" );
dv.CopyDataSource(ds, "D:\TJFXshp\11111.geojson");
System.out.println("转换成功!" );
}
}
注意:文件转换必须得是规范的geoJson文件,如果对内容进行修改特定名称修改会报错。
最后
以上就是美好巨人为你收集整理的java 操作gdal shp文件和geoJson文件互相转换的全部内容,希望文章能够帮你解决java 操作gdal shp文件和geoJson文件互相转换所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复