转自 华立电网北京研发中心 阿文
ArcGIS Engine二次开发一般需要通过桌面产品来制作这些符号,然后通过专门的转换工具转换以后供AE使用。电力GIS应用当中,电力设备种类繁多,设备状态比较复杂,需要用不同的符号来表现电力设备的不通状态,此外电力技术的更新速度很快,新设备种类也不断推陈出新,用户往往要求提供符号定义工具以满足这些需求。本文以配电变压器为例,介绍一种使用ArcGIS Engine + C#二次开发模式下,可以让用户自己定义设备符号的一种方法。
一、符号定义
配电变压器符号如下图所示:
可以将这个符号分解成四个图元,两段线段,两个圆(圆弧)。用以下结构来描述图元:
public struct MetaData { public int Typ; // 图形类型 3:圆弧,0:线段 public double Scale; // 缩放 public int OffsX ; // 偏移(x) public int OffsY; // 偏移(y) public double Angle; // 旋转 public int x1; // 图元的第一点位置(x) public int y1; // 图元的第一点位置(y) public int x2; // 图元的第二点位置(x) public int y2; // 图元的第二点位置(y) public int x3; // 图元的第三点位置(x) public int y3; // 图元的第三点位置(y) public int x4; // 图元的第四点位置(x) public int y4; // 图元的第四点位置(y) } // 线段:第一点:起点坐标, 第二点:终点坐标, 第三点, 第四点为空 // 圆弧:第一点:圆弧所在圆所属矩形的左上角, // 第二点:圆弧所在圆所属矩形的左右下角, // 第三点:圆弧起点 // 第四点:圆弧终点 // 圆弧方向为逆时针,对于圆x3,y3,x4,y4重合