一、CIMPolygonSymbol常用构造方法
? ? ? 1、ConstructPolygonSymbol(CIMColor) 方法:
? ? ? ? ? ? 构造特定颜色的面符号,简单单色填充
? ? ? 2、ConstructPolygonSymbol(CIMColor,SimpleFillStyle) 方法:
? ? ? ? ? ? 构造特定颜色和面的填充样式的符号
? ? ? 3、ConstructPolygonSymbol(CIMColor,SimpleFillStyle,CIMStroke) 方法:
? ? ? ? ? ?构造特定颜色、填充样式和边线轮廓符号。
二、方法参数说明:CIMColor
1、CIMColor常用成员的列表:
分类 | 名字 | 描述 |
判断 | AreEqual | 确定两个?CIMColor?是否相等。 |
创建COLOR | CreateCMYKColor | 根据输入参数创建新的 CMYK 颜色。 |
CreateGrayColor | 根据输入参数创建新的灰色。 | |
CreateHSLColor | 根据输入参数创建新的 HSL 颜色。 | |
CreateHSVColor | 根据输入参数创建新的 HSV 颜色。 | |
CreateLABColor | 根据输入参数创建新的 RGB 颜色。 | |
CreateRGBColor | 根据输入参数创建新的 RGB 颜色。 | |
CreateSpotColor | 根据输入参数创建专色。 | |
CreateXYZColor | 根据输入参数创建新的 XYZ 颜色。 | |
NoColor | 创建完全透明的颜色。 | |
等于 | Equals | 重载。 |
颜色的 alpha 值 | GetAlphaValue | 获取颜色的 alpha 值。 |
SetAlphaValue | 设置颜色的 alpha 值。 | |
颜色分量 | GetColorComponent | 获取指定索引处的颜色分量。 |
SetColorComponent | 在指定的索引处设置颜色分量。 | |
其他 | GetColorObject | 从 XML 字符串创建颜色对象。 |
GetHashCode | 获取当前对象的哈希代码。 | |
GetSchema | 未实施,保留以备将来使用。 | |
ReadXml | 读取读取器中的元素。? | |
ToJson | 创建 CIMObject 及其当前状态的 JSON 编码。 | |
WriteXml | 在编写器中写入元素。? |
? ? ???public static CIMColor CreateRGBColor( double r, double g, double b, double alpha )
? ? ?如:CIMColor.CreateRGBColor(0, 0, 0, trans)
2、使用颜色工厂ColorFactory类创建
? ? ?1)公共方法
名字 | 描述 |
ConstructColorRamp | 重载。 |
ConvertToColorSpace | 将指定的 CIMColor 转换为提供的颜色空间。必须在 MCT 上调用此方法。使用 QueuedTask.Run。 |
ConvertToHSV | 将 CIMColor 颜色转换为 CIMHSVColor。必须在 MCT 上调用此方法。使用 QueuedTask.Run。 |
ConvertToRGB | 将输入 CIMColor 转换为 CIMRGBColor。必须在 MCT 上调用此方法。使用 QueuedTask.Run。 |
CreateColor | 创建指定的颜色。 |
CreateRGBColor | 创建指定的颜色。 |
GenerateColorsFromColorRamp | 从指定的色带生成 [count] 颜色列表。必须在 MCT 上调用此方法。使用 QueuedTask.Run。 |
GetColorRamp | 获取指定名称的色带。必须在 MCT 上调用此方法。使用 QueuedTask.Run。 |
GetColorRampCategories | 获取色带类别的列表。必须在 MCT 上调用此方法。使用 QueuedTask.Run。 |
GetColorRampNames | 获取特定类别的色带名称列表。必须在 MCT 上调用此方法。使用 QueuedTask.Run。 |
ReverseColorRamp | 反转色带。 |
2)属性
名字 | 描述 |
BlackRGB | 获取黑色。 |
BlueRGB | 获取蓝色。 |
GreenRGB | 获取绿色。 |
GreyRGB | 获取灰色。 |
Instance | 获取 IColorFactory 实例 |
RedRGB | 获取红色。 |
WhiteRGB | 获取白色。 |
? ? ? ?如:ColorFactory.Instance.GreenRGB
二、面图填充样式:SimpleFillStyle
???c+:剖面填充,对角线间距均匀,呈 45° 角。
CIMPolygonSymbol polySym = SymbolFactory.Instance.ConstructPolygonSymbol(
? ? ColorFactory.Instance.RedRGB, SimpleFillStyle.ForwardDiagonal, outline);
? vb
Dim polySym as CIMPolygonSymbol = SymbolFactory.Instance.ConstructPolygonSymbol(
? ? ColorFactory.Instance.RedRGB, SimpleFillStyle.ForwardDiagonal, outline)
? ? ? ? ? ? ? ? ? ?SimpleFillStyle 枚举:
成员 | 描述 |
BackwardDiagonal | 具有 -45° 角均匀分布的对角线的阴影填充。 |
Cross | 具有均匀间隔的水平线和垂直线的阴影填充。 |
DiagonalCross | 填充填充,具有均匀分布的对角线,以 90° 角相互交叉。 |
ForwardDiagonal | 剖面填充,对角线间距均匀,呈 45° 角。 |
Horizontal | 具有均匀间隔水平线的阴影填充。 |
Null | 不绘制的空填充。 |
Solid | 一种颜色的均匀纯色填充。 |
Vertical | 具有均匀分布的垂直线的阴影填充。 |
CIMStroke:表示一个描边,该描边定义如何绘制线几何图形或多边形几何图形的轮廓。
三、构造面的蓝色边线符号:CIMStroke
? ?c+ :
CIMStroke outline = SymbolFactory.Instance.ConstructStroke(
? ? ColorFactory.Instance.BlueRGB, 2.0, SimpleLineStyle.DashDotDot);
? vb
Dim outline as CIMStroke = SymbolFactory.Instance.ConstructStroke(
? ? ColorFactory.Instance.BlueRGB, 2.0, SimpleLineStyle.DashDotDot)
四、面层单一符号渲染:无填充色,边线为红线、边线线宽为?1.5
c+:? ??需要使用QueuedTask.Run。
CIMSimpleRenderer currentRenderer = pFeaturelayer.GetRenderer;
//获得层的渲染器
CIMStroke Outline = SymbolFactory.Instance.ConstructStroke(ColorFactory.Instance.RedRGB, 1.0, SimpleLineStyle.Solid);
CIMPolygonSymbol symbolToPOL = SymbolFactory.Instance.ConstructPolygonSymbol(CIMColor.NoColor, SimpleFillStyle.Solid, Outline);
//更新当前简单渲染器的符号引用
currentRenderer.Symbol = symbolToPOL.MakeSymbolReference();
//更新要素图层渲染器
pFeaturelayer.SetRenderer(currentRenderer)
vb+:??需要使用QueuedTask.Run。
Dim currentRenderer As CIMSimpleRenderer = pFeaturelayer.GetRenderer '获得层的渲染器
Dim Outline As CIMStroke = SymbolFactory.Instance.ConstructStroke(ColorFactory.Instance.RedRGB, 1.0, SimpleLineStyle.Solid)
Dim symbolToPOL As CIMPolygonSymbol = SymbolFactory.Instance.ConstructPolygonSymbol(CIMColor.NoColor, SimpleFillStyle.Solid, Outline)
'更新当前简单渲染器的符号引用
currentRenderer.Symbol = symbolToPOL.MakeSymbolReference()
'更新要素图层渲染器
pFeaturelayer.SetRenderer(currentRenderer)