com.supermap.realspace

类 Theme3D

  • java.lang.Object
    • com.supermap.data.InternalHandle
      • com.supermap.data.InternalHandleDisposable
        • com.supermap.realspace.Theme3D
  • 所有已实现的接口:
    IDisposable
    直接已知子类:
    Theme3DCustom, Theme3DGraph, Theme3DLabel, Theme3DRange, Theme3DUnique


    public abstract class Theme3D
    extends com.supermap.data.InternalHandleDisposable
    三维专题图类,该类是所有三维专题图的基类。

    三维专题图包括三维单值专题图,三维标签专题图,三维分段专题图,三维统计专题图和三维自定义专题图。

    • 方法详细资料

      • getType

        public Theme3DType getType()
        返回三维专题图的类型。详细信息请参见 Theme3DType 类。
        返回:
        三维专题图的类型。
      • fromXML

        public boolean fromXML(String xml)
        从 XML 字符串中导入三维专题图信息。

        在 SuperMap 中,各种三维专题图的风格的设置都可以导出成 XML 格式的字符串,此 XML 格式的字符串中记录了关于这种三维专题图的所有设置,如对于三维标签专题图的 XML 格式字符串会记录三维专题图的类型,标签的风格,是否流动显示,是否自动避让、用来制作标签专题图的字段或表达式等等。这种 XML 格式的字符串可以用来导入,对三维专题图进行设置。

        参数:
        xml - 包含三维专题图信息的 XML 字符串。
        返回:
        导入成功返回 true;否则返回 false。
      • toXML

        public String toXML()
        导出三维单值专题图信息为 XML 字符串。

        在 SuperMap 中,各种三维专题图的风格的设置都可以导出成 XML 格式的字符串,此 XML 格式的字符串中记录了关于这种三维专题图的所有设置,如对于三维标签专题图的 XML 格式字符串会记录三维专题图的类型,标签的风格,是否流动显示,是否自动避让、用来制作标签专题图的字段或表达式等等。这种 XML 格式的字符串可以用来导入,对三维专题图进行设置。

        返回:
        包含三维专题图信息的 XML 字符串。
      • toString

        public abstract String toString()
        输出三维专题图格式化字符串。

        格式化字符串提供三维专题图的相关设置信息,与 XML 字符串不同的是,格式化字符串不可导入显示三维专题图,只用于提供三维专题图的相关信息。

        覆盖:
        toString 在类中 Object
        返回:
        三维专题图的格式化字符串。
      • getMemoryData

        public Map<String,String> getMemoryData()
        返回内存专题图数据。
        返回:
        内存专题图数据。
      • setMemoryData

        public void setMemoryData(Map<String,String> map)
        设置内存专题图数据。

        所设置的内存数据是一个 Map 对象,该 Map 对象的健值为用来制作专题的表达式对应的值,映射值根据专题图的种类而有所区别。其效果都相当于使用映射值代替专题值来制作相应的专题图。

        对于单值专题图,映射值为单值专题图子项的单值,即用映射值的单值专题图子项的风格代替键值对应的单值子项的风格,没有通过该对象赋值的单值子项的风格采用单值专题图的默认风格,通过setDefaultStyle() 方法可设置默认子项的风格。

        对于分段专题图,映射值为分段专题图的表达式对应的值,即用映射值所在的分段子项的风格设置键值字段值对应的对象,没有通过该对象赋值的对象的保持其所在分段子项的风格不变。

        对于标签专题图,映射值为任意字符串,没有通过该对象赋值的标签在三维场景中不显示。

        对于统计专题图,不通过该方法设置专题图数据,而是通过Theme3DGraph.setMemoryKeys() 方法设置键值,通过Theme3DGraphItem.setMemoryDoubleValues() 方法设置映射值。

        注意:

        由于Map对象的键不能重复,专题图的表达式的值不能相同。

        参数:
        map - 内存专题图数据。
        示范代码:
        以下代码示例了使用内存数据制作标签专题图。
         public void MemoryDataThemeLabel()
                {
                        Workspace workspace = new Workspace();
                        DatasourceConnectionInfo datasourceConnectInfo = new DatasourceConnectionInfo("../SampleData/World/World.udb", "world", "");
                        Datasource datasource = workspace.getDatasources().open(datasourceConnectInfo);
                        DatasetVector dataset = (DatasetVector)datasource.getDatasets().get("world");
                        
                        Theme3DLabel theme3DLabel = new Theme3DLabel();
                        // 使用全球国家名作为标签专题图的标签表达式
                        theme3DLabel.setLabelExpression("Name");
                         
                        Map memoryData = new HashMap();
                        // 设置数据,仅修改“北京”、“渥太华”和“莫斯科”三个国家的名称
                        memoryData.put("北京", "北京1");
                        memoryData.put("渥太华", "渥太华1");
                        memoryData.put("莫斯科", "莫斯科1");
                        // 设置标签专题图的内存数据
                        theme3DLabel.setMemoryData(memoryData);
                        
                        //设置标签文本风格
                        TextStyle style = new TextStyle();  
                        style.setForeColor(Color.WHITE);
                        style.setOutline(true);
                        style.setWeight(15);
                        style.setFontHeight(7);
                        theme3DLabel.setUniformStyle(style);
                        
                        //添加到场景中
                        m_sceneControl.Scene.Layers.Add(dataset, theme3DLabel, true, "layerThemeLabel");                                    
                        m_sceneControl.Scene.Refresh();  
                        
                        //释放占用的资源
                        m_sceneControl.dispose();
                        workspace.dispose();
                 }

Copyright © 2021–2024 SuperMap. All rights reserved.