Java 使用GDAL 讀寫 shapefile

2021-09-07 07:06:22 字數 2797 閱讀 7204

import org.gdal.ogr.*;

import

org.gdal.ogr.driver;

import org.gdal.gdal.*;

public

class

gdalshptest

system.out.println("開啟檔案成功!");

driver dv = ogr.getdriverbyname("geojson");

if (dv == null

)

system.out.println("開啟驅動成功!");

dv.copydatasource(ds, "d:\\test\\node.json");

system.out.println("轉換成功!");}}

import org.gdal.ogr.*;

import org.gdal.gdal.*;

class

writeshp2

static

void

writevectorfile()

datasource ods = odriver.createdatasource(strvectorfile, null

);

if (ods == null

) layer olayer = ods.createlayer("

testpolygon

", null, ogr.wkbpolygon, null

);

if (olayer == null

)

//下面建立屬性表

//先建立乙個叫fieldid的整型屬性

fielddefn ofieldid = new fielddefn("

fieldid

", ogr.oftinteger);

olayer.createfield(ofieldid);

//再建立乙個叫featurename的字元型屬性,字元長度為50

fielddefn ofieldname = new fielddefn("

fieldname

", ogr.oftstring);

ofieldname.setwidth(

100);

olayer.createfield(ofieldname);

featuredefn odefn =olayer.getlayerdefn();

//建立三角形要素

feature ofeature******** = new

feature(odefn);

ofeature********.setfield(

0, 0

); ofeature********.setfield(

1, "

三角形"

); geometry geom******** = geometry.createfromwkt("

polygon ((0 0,20 0,10 15,0 0))");

ofeature********.setgeometry(geom********);

olayer.createfeature(ofeature********);

//建立矩形要素

feature ofeaturerectangle = new

feature(odefn);

ofeaturerectangle.setfield(

0, 1

); ofeaturerectangle.setfield(

1, "矩形"

); geometry geomrectangle = geometry.createfromwkt("

polygon ((30 0,60 0,60 30,30 30,30 0))");

ofeaturerectangle.setgeometry(geomrectangle);

olayer.createfeature(ofeaturerectangle);

//建立五角形要素

feature ofeaturepentagon = new

feature(odefn);

ofeaturepentagon.setfield(

0, 2

); ofeaturepentagon.setfield(

1, "

五角形"

); geometry geompentagon = geometry.createfromwkt("

polygon ((70 0,85 0,90 15,80 30,65 15,70 0))");

ofeaturepentagon.setgeometry(geompentagon);

olayer.createfeature(ofeaturepentagon);

ods.synctodisk();

system.

out.println("

\n資料集建立完成!\n");}}

得到test.dbf, test.shp, test.shx。

test.dbf如下:

開啟形狀如下

GDAL讀寫向量檔案 C

在c 中使用ogr讀寫向量資料時,需要引用 using osgeo.ogr 同時為了處理中文路徑和中文字段,需要在開始設定下面兩個屬性,如下 為了支援中文路徑,請新增下面這句 大多數情況下不需要這句 gdal filename is utf8 no 為了使屬性表字段支援中文,請新增下面這句 osge...

如何使用java進行sha1加密

安全雜湊演算法 secure hash algorithm 主要適用於數字簽名 標準 digital signature standard dss 裡面定義的數字簽名演算法 digital signature algorithm dsa 在sha1演算法中,我們必須把原始訊息 字串,檔案等 轉換成位...

使用GDAL讀取影像

最近在學習gdal和opencv,gdal的強大功能我就不用說了,大家上網可以查到很多關於它的資料。opencv是乙個開源的計算機視覺庫,可以去opencv中文論壇具體了解它,說下我的構思吧,opencv庫里有很多關於數字影象處理的函式,但是它卻侷限於遙感影象的讀取,而gdal卻對遙感影像的讀取支援...