分段专题图类。
命名空间:
SuperMap.Mapping按照提供的分段方法对字段的属性值进行分段,并根据每个属性值所在的分段范围赋予相应对象的显示风格。
程序集: SuperMap.Mapping (in SuperMap.Mapping)
版本: dll
语法
C# |
---|
public class ThemeRange : Theme |
备注
注意:
1.如果通过连接(Join)或关联(Link)的方式与一个外部表建立了联系,当专题图的专题变量用到外部表的字段时,在显示专题图时,需要设置 DisplayFilter 属性,否则专题图将不能显示外部表的要素。
2.制作分段专题图,如果首尾区间没有设置风格,且没有设置默认风格,那么无论是采用addToTail还是addToHead方法,首尾区间默认采用用户所添加的第一个分段的风格,比如:总共分5段,addToTail方法依次添加 [0,1)、[1,2)、[2,4)三段,那么首区间(负无穷,0),尾区间[4,正无穷),采用[0,1)的风格。
示例
以下代码示范了如何通过新建一个分段专题图的实例,设置其属性来实现范围专题图的制作。
假设已经有MapControl1对象。假设打开了一个工作空间workspace对象,工作空间中存在名为 World 的数据源。
CopyC#
public void MakeThemeRangeMap() { //制作分段专题图 ThemeRange themeRangeMap = new ThemeRange(); themeRangeMap.RangeExpression = "Pop_1994"; //人口大于十二亿的分段专题图子项的设置 ThemeRangeItem themeRangeItem1 = new ThemeRangeItem(); themeRangeItem1.Caption = "小于一百万"; themeRangeItem1.End = 1000000; themeRangeItem1.Start = 0; themeRangeItem1.IsVisible = true; GeoStyle geostyle1 = new GeoStyle(); geostyle1.FillForeColor = Color.FromArgb(94, 53, 77); geostyle1.FillOpaqueRate = 60; geostyle1.LineWidth = 0.1; themeRangeItem1.Style = geostyle1; //人口大于一亿的分段专题图子项的设置 ThemeRangeItem themeRangeItem2 = new ThemeRangeItem(); themeRangeItem2.Caption = "大于一百万"; themeRangeItem2.End = 10000000; themeRangeItem2.Start = 1000000; themeRangeItem2.IsVisible = true; GeoStyle geostyle2 = new GeoStyle(); geostyle2.FillForeColor = Color.FromArgb(164, 97, 136); geostyle2.FillOpaqueRate = 60; geostyle2.LineWidth = 0.1; themeRangeItem2.Style = geostyle2; //人口大于一千万的分段专题图子项的设置 ThemeRangeItem themeRangeItem3 = new ThemeRangeItem(); themeRangeItem3.Caption = "大于一千万"; themeRangeItem3.End = 100000000; themeRangeItem3.Start = 10000000; themeRangeItem3.IsVisible = true; GeoStyle geostyle3 = new GeoStyle(); geostyle3.FillForeColor = Color.FromArgb(183, 128, 151); geostyle3.FillOpaqueRate = 60; geostyle3.LineWidth = 0.1; themeRangeItem3.Style = geostyle3; //人口大于一百万的分段专题图子项的设置 ThemeRangeItem themeRangeItem4 = new ThemeRangeItem(); themeRangeItem4.Caption = "大于一亿"; themeRangeItem4.End = 1200000000; themeRangeItem4.Start = 100000000; themeRangeItem4.IsVisible = true; GeoStyle geostyle4 = new GeoStyle(); geostyle4.FillForeColor = Color.FromArgb(205, 167, 183); geostyle4.FillOpaqueRate = 60; geostyle4.LineWidth = 0.1; themeRangeItem4.Style = geostyle4; //人口小于一百万的分段专题图子项的设置 ThemeRangeItem themeRangeItem5 = new ThemeRangeItem(); themeRangeItem5.Caption = "大于十二亿"; themeRangeItem5.End = Double.MaxValue; themeRangeItem5.Start = 120000000; themeRangeItem5.IsVisible = true; GeoStyle geostyle5 = new GeoStyle(); geostyle5.FillForeColor = Color.FromArgb(209, 182, 210); geostyle5.FillOpaqueRate = 60; geostyle5.LineWidth = 0.1; themeRangeItem5.Style = geostyle5; //添加专题图子项到分段专题图对象中 themeRangeMap.AddToHead(themeRangeItem1); themeRangeMap.AddToTail(themeRangeItem2); themeRangeMap.AddToTail(themeRangeItem3); themeRangeMap.AddToTail(themeRangeItem4); themeRangeMap.AddToTail(themeRangeItem5); //显示 mapControl1.Map.Workspace = workspace; Layer layerTheme = mapControl1.Map.Layers.Add(targetDataset, themeRangeMap, true); mapControl1.Map.Refresh(); }