获取或设置内存专题图数据。
命名空间:
SuperMap.Mapping用内存数据制作专题图的方式与表达式制作专题图的方式互斥,前者优先级较高。
所设置的内存数据是一个 Dictionary 对象,该 Dictionary 对象的键为用来制作专题图的表达式对应的值,映射值根据专题图的种类而有所区别。其效果都相当于使用映射值代替专题值来制作相应的专题图。
对于单值专题图,映射值为单值专题图子项的单值,即用映射值对应的单值专题图子项的风格代替键值对应的单值子项的风格,没有通过该对象赋值的单值子项的风格采用单值专题图的默认风格,通过DefaultStyle属性可设置默认子项的风格。
对于分段专题图,映射值为分段专题图的表达式对应的值,即用映射值所在的分段子项的风格设置键值字段值对应的对象,没有通过该对象赋值的对象保持其所在分段子项的风格不变。
对于标签专题图,映射值为任意字符串,没有通过该对象赋值的标签在地图中不显示。
程序集: SuperMap.Mapping (in SuperMap.Mapping)
版本: dll
语法
C# |
---|
public Dictionary<string, string> MemoryData { get; set; } |
备注
由于 Dictionary 对象的键不能重复,专题图的表达式的值不能相同。
该接口对统计专题图无效。
示例
以下代码示例了使用内存数据制作标签专题图。
假设打开一个工作空间workspace,工作空间中存在一个数据源。
CopyC#
public void LabelThemeMemoryData() { Workspace workspace = new Workspace(); DatasourceConnectionInfo datasourceConnectInfo = new DatasourceConnectionInfo("../SampleData/World/World.udb", "world", ""); Datasource datasource = workspace.Datasources.Open(datasourceConnectInfo); DatasetVector dataset = (DatasetVector)datasource.Datasets["World"]; ThemeLabel themeLabel = new ThemeLabel(); // 设置标签专题图表达式 themeLabel.LabelExpression = "Name"; Dictionary<String, String> memoryData = new Dictionary<String, String>(); // 设置数据,仅修改“北京”、“渥太华”和“莫斯科”三个国家的名称 memoryData.Add("北京", "北京1"); memoryData.Add("渥太华", "渥太华1"); memoryData.Add("莫斯科", "莫斯科1"); // 设置标签专题图的内存数据 themeLabel.MemoryData= memoryData; TextStyle style = new TextStyle(); style.ForeColor = Color.White; style.Outline = true; style.Weight = 15; style.FontHeight = 7; theme3DLabel.UniformStyle = style; //添加到地图中 m_mapControl.Map.Layers.Add(dataset, themeLabel, true); m_mapControl.Map.Refresh(); m_mapControl.Dispose(); workspace.Dispose(); }