java-gdal實現shp轉geojson

安裝gdal的話,將shp轉geojson會非常簡單。本文因項目需要,以java-gdal講述如何實現。ps:當然只要裝有gdal就都可以實現功能。

ogr2ogr命令

在控制臺執行如下語句:

D:\PostgreSQL\9.5\bin> ogr2ogr -f GeoJson test.geojson test.shp

gdal中的ogr2ogr工具非常好用,很多開源工具都集成了該命令,所以雖然作者并未安裝gdal,但是由于postgresql的空間擴展postgis集成了ogr2ogr命令,所以我們直接使用即可。
參數說明:
-f:輸出格式,本文指定是GeoJson
dst_datasource_name:轉換目標數據源名稱,本文要求將shp轉儲為名稱為test.geojson
src_datasource_name:轉儲源數據,本文要轉的shp名稱

java-gdal代碼實現

java-gdal安裝配置

下載地址:https://yunpan.cn/cB2tdzVMQ3nLB 訪問密碼 d03f
1 將java-gdal文件夾中所有的dll復制到Java\jre7\bin文件夾中。
2 將java-gdal文件夾中的gdal.jar在java工程中引用即可完成配置。

轉換主要代碼

package GIS;
import org.gdal.*;
import org.gdal.ogr.DataSource;
import org.gdal.ogr.Driver;
import org.gdal.ogr.ogr;
import org.gdal.gdal.*;  
public class Test {
    public static void main(String[] args) {
         // 注冊所有的驅動  
        ogr.RegisterAll();
        // 為了支持中文路徑,請添加下面這句代碼  
        gdal.SetConfigOption("GDAL_FILENAME_IS_UTF8","YES");  
        // 為了使屬性表字段支持中文,請添加下面這句  
        gdal.SetConfigOption("SHAPE_ENCODING","");  
          
        String strVectorFile = "D:\\data\\fibercable.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, "D:\\data\\fibercable.geojson");  
        System.out.println("轉換成功!" );  
    }
}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容