程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> GDAL的java環境配置以及將shp轉換為json的分析

GDAL的java環境配置以及將shp轉換為json的分析

編輯:JAVA綜合教程

GDAL的java環境配置以及將shp轉換為json的分析


概述:

前兩天,有位同仁再問我一個問題,問題大概是介個樣子的:打包shp數據位zip格式並上傳,上傳完成後再在web上展示出來。這個需求,以前在Arcgis Online上見過,所以還是比較熟悉的,所以我就給他說:先將zip解壓,再讀取shp數據並將之轉換為Geojson返回前台,並在web上展示出來。很慶幸的是,者為同仁很快就實現了shp到Geojson的轉換,就問我Arcgis for js 中怎麼展示Geojson,我截了個Arcgis for js的API給他他就實現了上述的功能。同時,我想他請教了如何實現的轉換,他告訴我說是GDAL實現的,並給了我關鍵代碼,因為代碼是C#的,所以,經過周末的折騰,在JAVA上實現了,在此分享給大家。

 

實現:

想要在java上用GDAL比較費勁,中間的嘗試過程在此略過,直接說結果。

首先是jdk,下載的GDAL的位數一定要與JDK的位數相符,我的JDK的位數是32位的,所以下載了32位的GDAL,為方便大家使用,並將此上傳到了百度網盤,下載地址為:鏈接:http://pan.baidu.com/s/1mhrywn2 密碼:lsch。將GDAL下載完成後,將所有的dll文件復制到jdk的安裝路徑“C:\Program Files (x86)\Java\jdk1.7.0_17\jre\bin”下即可。

接著,將JDAL.jar文件添加到你的Java lib引用中去。

最後,代碼實現。實現的關鍵代碼如下:

 

package com.lzugis.gdal;

import org.gdal.ogr.*;
import org.gdal.ogr.Driver;
import org.gdal.gdal.*;

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

 

\
 

 

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved