我是靠谱客的博主 美好巨人,最近开发中收集的这篇文章主要介绍java 操作gdal shp文件和geoJson文件互相转换,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

借鉴: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文件互相转换所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部