矩阵标签类,通过该类可以制作出复杂的标签来标注对象。
命名空间:
SuperMap.Mapping程序集: SuperMap.Mapping (in SuperMap.Mapping)
版本: dll
语法
C# |
---|
public class LabelMatrix : IDisposable |
备注
该类可以包含n*n个矩阵标签元素,矩阵标签元素的类型可以是图片,符号,标签专题图等。目前支持的矩阵标签元素类型为LabelMatrixImageCell,LabelMatrixSymbolCell,ThemeLabel,传入其他类型将会抛出异常。
另外,对于每一个矩阵标签元素还可以作为一个矩阵标签进行进一步的划分。矩阵标签不支持沿线标注,矩阵标签元素不支持特殊符号的表达式
示例
以下代码示范了如何通过 LabelMatrix 类制作复杂的标签来标注对象。
假设下面函数操作的矢量数据集为安装目录\SampleData\World\下的 world.udb 数据源中的名为 World 的数据集,该数据集中有一个 Path 字段存储了各个国家的国旗图片的全路径,Symbol字段存储了制作专题图的符号ID号。已存在地图控件 m_mapControl 。
CopyC#
public void labelMatrixExample(DatasetVector targetDataset) { // 实例化一个两行两列的LabelMatrix对象 LabelMatrix labelMatrix = new LabelMatrix(2, 2); //第一行第一个单元格显示国旗,为图片类型的标签元素 LabelMatrixImageCell labelMatrixImageCell = new LabelMatrixImageCell(); labelMatrixImageCell.PathField = "Path"; labelMatrixImageCell.IsSizeFixed = false; labelMatrixImageCell.Height = 5; labelMatrixImageCell.Width = 5; labelMatrix[0, 0] = labelMatrixImageCell; //第一行第二个单元格显示国家的名称 ThemeLabel themeLabelCellCountry = new ThemeLabel(); themeLabelCellCountry.LabelExpression = "Country"; labelMatrix[1, 0] = themeLabelCellCountry; //第二行第一个单元格显示符号,为符号类型的标签元素 LabelMatrixSymbolCell labelMatrixSymbolCell = new LabelMatrixSymbolCell(); labelMatrixSymbolCell.SymbolIDField = "Symbol"; //设置所显示的符号的风格 GeoStyle geostyleSymbol = new GeoStyle(); geostyleSymbol.MarkerSize = new Size2D(6, 6); geostyleSymbol.LineColor = Color.FromArgb(216, 144, 0); labelMatrixSymbolCell.Style = geostyleSymbol; labelMatrix[0, 1] = labelMatrixSymbolCell; //第二行的第二个单元格显示国家的首都名称 ThemeLabel themeLabelCellCapital = new ThemeLabel(); themeLabelCellCapital.LabelExpression = "Capital"; labelMatrix[1, 1] = themeLabelCellCapital; //设置标签专题图中的标签矩阵 ThemeLabel themeLabelMatrix = new ThemeLabel(); themeLabelMatrix.Labels = labelMatrix; // 将制作的复杂标签专题图作为图层添加到地图中 m_mapControl.map.Layers.Add(targetDataset, themeLabelMatrix, true); }
继承层次
System..::.Object
SuperMap.Mapping..::.LabelMatrix
SuperMap.Mapping..::.LabelMatrix