ArcGIS Server Flex API的态势符号标绘插件

ArcGIS Server 及其提供的各个平台的API为Web GIS应用的开发提供了极大的便利。但这些API知识提供了一些基础的功能,遇到态势符号标绘这样比较专业的需求就无法得到满足。最近在做的一个项目就需要一些态势符号的标绘功能,如单箭头、双箭头等等。在ArcGIS Server Flex API的基础上,我设计并实现了态势符号标绘的插件,在这里分享一下主要的设计思路。

态势符号的定义

态势符号可以看做和多边形类似的Geometry,不同的是态势符号的边界由一些列的控制点来确定,比如一个箭头标记需要首尾两个控制点,双箭头需要至少四个控制点。每类态势符号有自己的一套由控制点生成边界的算法,里面主要是通过坐标偏移、曲线拟合等方法描绘符号的边界。

态势符号的绘制工具

态势符号的绘制工具实质上就是绘制控制点的工具,需要注意的是在控制点达到需要的数量后要自动停止绘制工具,然后根据控制点生成态势符号轮廓后才去进行显示,而不是去绘制控制点。

态势符号的编辑工具

同样,态势符号的编辑工具也就是编辑控制点的工具,当控制点被移动后需要重新计算态势符号的轮廓并重新显示。

态势符号的样式定义

态势符号的样式基本上可以沿用多边形的填充样式,除了渐变填充这种特殊的填充样式,因为ArcGIS Server Flex API本身并没有提供渐变填充。本插件中增加了渐变填充这种类型,并为不同的态势符号类型定义了渐变的方式,如渐变沿箭头方向。另外,本插件还提供了箭尾是否闭合的选项。

态势符号的保存

态势符号可作为多边形保存用ArcGIS Server的Feature Service进行保存,在保存态势标绘时需要将控制点和样式作为属性进行保存。本插件提供了从控制点和样式到文本属性的编码和解密方法。

态势标绘
态势标绘效果

在线演示

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Time limit is exhausted. Please reload CAPTCHA.