PIE二次开发(三)鼠标绘制创建矢量要素数据集SHP
通过鼠标绘制创建SHP文件,可以选择设定指定的字段等。
主要内容: ①几何元素绘制,②要素创建
0. 前言
1. 输出参数设置
2. 绘制形状
3. 设置属性信息
4. 创建要素添加显示
0.前言
创建一个SHP文件,主要是完成两种属性的设置。一个是几何信息,包括要素的类型(点线面)、空间参考等;第二个是属性信息,比如字段的设置和ID等。几何形状的话,采用元素绘制工具来完成;而字段设置就比较繁琐了,如果你需要很多字段的话可能会有大量重复代码,这边就写一个小的示例。
绘制形状,通过PIE的元素绘制工具实现。我们不需要从最底层的操作开始实现怎么在画布上由MouseDown、Up、Move这类事件绘制一个形状,而是采用一个完整的工具-Tool来帮助我们画自己想要的形状。这个工具和我们认识的大多数的GIS绘图工具类似,比如双击完成绘制这种操作。工具十分简单,两行代码就可以调用,但是对于更高级的操作比如:编辑节点这种,还需要自己进一步加工。不过,对于画我们想要的形状来说,足够了。
整理一下实现思路: ①输出参数设置,②绘制形状,③设置属性信息,④创建要素添加显示
2.输出参数设置
输出参数,按照我自己的逻辑是用户自定义的参数:输出位置、要素类型、空间参考系的选择。要素类型可以用一个下拉列表确定,我这边直接指定面类型。主要是空间参考的选择,PIE封装了一个完整的空间参考系选择的窗体(SpatialReferenceSelectorDialog)使用,用WTK编码作为唯一ID传输参数。
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Title = "待创建的矢量要素数据集";
saveFileDialog.Filter = "ShapeFile|*.shp";
if (saveFileDialog.ShowDialog() != DialogResult.OK) return;
//输出路径
string outPath = saveFileDialog.FileName;
//空间参考选择
//实例化空间参考窗口对象
PIE.AxControls.SpatialReferenceSelectorDialog sRSelectorDialog = new SpatialReferenceSelectorDialog();
if (sRSelectorDialog.ShowDialog() != 1) return;
//获取对应编码
string spatialWKT = sRSelectorDialog.SpatialReference.ExportToWkt