java-gdal實現(xiàn)shp轉geojson

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

ogr2ogr命令

在控制臺執(zhí)行如下語句:

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

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

java-gdal代碼實現(xiàn)

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();
        // 為了支持中文路徑,請?zhí)砑酉旅孢@句代碼  
        gdal.SetConfigOption("GDAL_FILENAME_IS_UTF8","YES");  
        // 為了使屬性表字段支持中文,請?zhí)砑酉旅孢@句  
        gdal.SetConfigOption("SHAPE_ENCODING","");  
          
        String strVectorFile = "D:\\data\\fibercable.shp";  
        //打開數(shù)據(jù)  
        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("轉換成功!" );  
    }
}

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容