1. 程式人生 > >讀入與輸出shp檔案——Matlab

讀入與輸出shp檔案——Matlab

Matlab自帶有mapping box工具箱,該工具箱具有很多與地圖相關的功能,如下圖,詳情請訪問Matlab官網幫助. 在這裡插入圖片描述 讀寫shp檔案也是非常容易的事情。shp檔案在Matlab中被視為一個struct,每個欄位的屬性值則是struct的一個元胞。

讀入shp檔案

在命令列視窗輸入:

Map = shaperead('Example.shp') 

結果如圖: 在這裡插入圖片描述

輸出shp檔案

與讀入shp相比,輸出shp檔案相比麻煩一些,需要自己建立一個struct,然後利用shapewrite函式將struct寫入shp檔案中。 主要包含步驟為:

%前面的部分為必要的欄位
Map.Geometry = '';%元素型別,Point,Line,Polygon等
Map.BoundingBox = [minx,miny,maxx,maxy];
Map.X = [];%座標X
Map.Y = [];%座標Y

%儲存相關欄位,至少需要一個,如果沒有其他欄位值的話,
%在輸出時不會輸出dbf檔案,導致shp檔案不完整,沒辦法使用.
Map.Id = ;
Map.Location = ;
……

shapewrite(Map,filename); %生成shp,dbf,shx三個檔案

例如:

for i=1:5
	Map(i).Geometry = 'Polygon';
	Map(i).BoundingBox = [100*i,100*i;100*i+100,100*i+100];
	Map(i).X = [100*i,100*i+100,100*i+100,100*i,NaN];
	Map(i).Y = [100*i,100*i,100*i+100,100*i+100,NaN];
	Map(i).Id = i;
end
shapewrite(Map,'Example.shp');

儲存的struct如圖所示, 在這裡插入圖片描述

將Example.shp匯入Arcmap: 在這裡插入圖片描述