读入与输出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: