制图表达对象类,用来构建制图表达对象,实现矢量数据集中相应的几何对象的制图表达显示,从而达到制图表达的目的。

命名空间:  SuperMap.Data
程序集:  SuperMap.Data (in SuperMap.Data)
版本: dll

语法

C#
public class RepresentationElement : IDisposable

备注

什么是制图表达?

制图表达是矢量数据集中几何对象所关联的信息,它可以使相应的几何对象在地图窗口中显示时,采用其他的表现方式,而原来的几何对象不再显示,注意原几何对象的数据并没有改变,只是显示方式有所变化。

制图表达对象(RepresentationElement类对象)定义了制图表达显示形式,制图表达对象中包含了几何对象以及几何对象的风格信息,另外,还有制图表达类型来控制一些显示,包括是否显示原几何对象、是否显示设置的风格和被制图表达的对象是否可见,详细信息请参见RepresentationType类。

设置矢量数据集中的几何对象的制图表达信息是通过Recordset类中的相关方法实现的,利用Recordset类中的相关方法可以将制图表达信息写入数据集中指定的用于存储制图表达信息的字段。

当矢量数据集作为图层显示在地图窗口中时,通过该矢量数据集所对应的Layer对象的RepresentationField属性指定存储制图表达信息的字段,那么在图层显示时,就会根据制图表达字段中存储的信息显示相应的几何对象,制图表达信息只是以另一种方式可视化显示数据集中的几何对象,并没有改变原几何对象的空间和属性信息 。

示例

以下代码示范如何实现矢量数据集中相应的几何对象的制图表达显示。

假设打开一个工作空间workspace,工作空间中存在一个数据源,该数据源中包含一个名为 World 的矢量数据集 dataset。

CopyC#
public void RepresentationElementSample()
{
    // 获取数据源中的数据集
    DatasetVector dataset = workspace.Datasources[0].Datasets["World"] as DatasetVector;

    // 获得 dataset 中 SmID 为101的记录
    Recordset recordset = dataset.Query("SmID=101", CursorType.Dynamic);

    // 构造一个面几何对象,该对象将用于取代 dataset 中 SmID=101 的几何对象进行显示
    GeoStyle geoStyle = new GeoStyle();
    geoStyle.FillForeColor = Color.Red;
    GeoRegion geoRegion = new GeoRegion(new Point2Ds(new Point2D[] { new Point2D(100, 100), new Point2D(200, 200), new Point2D(300, 300) }));
    geoRegion.Style = geoStyle;

    // 构造制图表达对象类并进行设置
    RepresentationElement representationElement = new RepresentationElement();
    Geometry geometry = recordset.GetGeometry();
    representationElement.CustomValue = "self";
    representationElement.Geometry = geoRegion;            
    representationElement.Type = RepresentationType.GeometryAndStyle;

    // 将制图表达对象结果保存至 Color 字段(假设含有此字段,且为二进制类型)
    recordset.Edit();
    recordset.SetRepresentationElement("Color", representationElement);
    recordset.Update();

    // 释放资源
    recordset.Dispose();
    dataset.Close();
}

继承层次

System..::.Object
  SuperMap.Data..::.RepresentationElement

请参见