读入与输出shp文件——Matlab

Matlab自带有mapping box工具箱,该工具箱具有很多与地图相关的功能,如下图,详情请访问Matlab官网帮助.
读入与输出shp文件——Matlab_第1张图片
读写shp文件也是非常容易的事情。shp文件在Matlab中被视为一个struct,每个字段的属性值则是struct的一个元胞。

读入shp文件

在命令行窗口输入:

Map = shaperead('Example.shp') 

结果如图:
读入与输出shp文件——Matlab_第2张图片

输出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如图所示,
读入与输出shp文件——Matlab_第3张图片

将Example.shp导入Arcmap:
读入与输出shp文件——Matlab_第4张图片

你可能感兴趣的:(Matlab)