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