com.supermap.realspace

类 ScreenLayer3D

  • java.lang.Object
    • com.supermap.data.InternalHandle
      • com.supermap.realspace.ScreenLayer3D


  • public class ScreenLayer3D
    extends com.supermap.data.InternalHandle
    三维屏幕图层类。

    SuperMap iObjects Java 三维地理信息系统提供了屏幕图层,这是一个特殊的图层,不同于三维图层、地形图层、影像图层和跟踪图层,屏幕图层中的对象并不是依据对象的坐标信息将其放到三维场景中的地球上,而是放在屏幕上(三维窗口表面),因此,屏幕图层上的几何对象不随三维场景中球体的旋转、倾斜等操作而变化,而是可以随着三维窗口的改变而变化,如随着三维窗口的放大、缩小而改变相应的位置,可以说屏幕图层上的对象是相对于三维窗口静止的,这样,可以通过屏幕图层,放置诸如 Logo、说明性的文字等需要静止显示在三维窗口中的内容。

    一个三维场景有且只有一个屏幕图层,可以向屏幕图层添加任何三维几何对象,可以设置几何对象的显示位置、大小,也可以删除不需要的几何对象。

    在三维场景中的屏幕图层添加图片

    示范代码:
    以下代码示范了如何向屏幕图层添加对象。
            public void TestScreenLayer() {
                    // 返回当前三维场景窗口的三维场景对象
                    SceneControl sceneControl = new SceneControl();
                    Scene sceneObject = sceneControl.getScene();
    
                    // 返回当前三维场景的屏幕图层
                    ScreenLayer3D screenLayer3D = sceneObject.getScreenLayer();
    
                    // 向屏幕图层中添加几何对象
                    GeoPicture3D geoPicture3d = new GeoPicture3D("G:\\Data\\logo.png",new Point3D(0.3,0.1,0), 287, 54, 0);
                    screenLayer3D.setXUnit(ScreenCoordinateUnit.PIXEL);
                    screenLayer3D.setYUnit(ScreenCoordinateUnit.PIXEL);
                    screenLayer3D.add(geoPicture3d, "logo");
                    sceneObject.refresh();
    
                    // 释放占用的资源
                    sceneControl.dispose();
            }
    • 方法详细资料

      • getCount

        public int getCount()
        返回该屏幕图层中对象的个数。
        返回:
        该屏幕图层中对象的个数。
      • isVisible

        public boolean isVisible()
        返回该屏幕图层是否可视。
        返回:
        屏幕图层是否可视返回 true;否则返回 false。
      • setVisible

        public void setVisible(boolean isVisible)
        设置该屏幕图层是否可视。
        参数:
        isVisible - 一个布尔值指定该屏幕图层是否可视。
      • add

        public int add(Geometry geometry,
                       String tag)
        向屏幕图层中添加几何对象。
        参数:
        geometry - 指定的待添加的几何对象。
        tag - 指定的待添加的几何对象的标签。
        返回:
        屏幕图层中几何对象的总数目。
      • remove

        public boolean remove(int index)
        从屏幕图层中删除指定序号的几何对象。
        参数:
        index - 指定的待删除几何对象的序号。
        返回:
        删除成功返回 true;否则返回 false。
      • get

        public Geometry get(int index)
        返回屏幕图层中指定序号的几何对象。
        参数:
        index - 指定的几何对象的序号。
        返回:
        屏幕图层中指定序号的几何对象。
      • set

        public boolean set(int index,
                           Geometry geometry)
        用指定的几何对象替换屏幕图层中指定序号的几何对象。
        参数:
        index - 指定的待替换的几何对象的序号。
        geometry - 指定的几何对象。
        返回:
        一个布尔值,表示是否替换成功,若成功,返回 true;否则返回 false。
      • getTag

        public String getTag(int index)
        返回屏幕图层中指定序号的几何对象的标签。
        参数:
        index - 指定的几何对象的序号。
        返回:
        屏幕图层中指定序号的几何对象标签的字符串。
      • setTag

        public boolean setTag(int index,
                              String tag)
        设置屏幕图层中指定序号的几何对象的标签。
        参数:
        index - 指定的几何对象的序号。
        tag - 指定的几何对象标签的字符串。
        返回:
        设置成功返回 true;否则返回 false。
      • clear

        public void clear()
        清空屏幕图层中的所有几何对象。
      • getXUnit

        public ScreenCoordinateUnit getXUnit()
        返回该屏幕图层 X 轴方向的坐标类型。

        通过坐标类型可以控制对象的位置,以及大小是否固定。

        返回:
        该屏幕图层 X 轴方向的坐标类型。
      • getYUnit

        public ScreenCoordinateUnit getYUnit()
        返回该屏幕图层 Y 轴方向的坐标类型。

        通过坐标类型可以控制对象的位置,以及大小是否固定。

        返回:
        该屏幕图层Y轴方向的坐标类型。
      • setXUnit

        public void setXUnit(ScreenCoordinateUnit unit)
        设置该屏幕图层 X 轴方向的坐标类型。

        通过坐标类型可以控制对象的位置,以及大小是否固定。

        参数:
        unit - 该屏幕图层 X 轴方向的坐标类型。
      • setYUnit

        public void setYUnit(ScreenCoordinateUnit unit)
        设置该屏幕图层 Y 轴方向的坐标类型。

        通过坐标类型可以控制对象的位置,以及大小是否固定。

        参数:
        unit - 该屏幕图层 Y 轴方向的坐标类型。
      • isSelected

        public boolean isSelected(int index)
        返回指定索引处的对象是否属于选中状态。要使一个对象属于选中状态需要通过 setSelected() 方法来指定。
        参数:
        index - 指定的索引
        返回:
        指定索引处的对象是否为选中状态。
      • setSelected

        public void setSelected(int index,
                                boolean isSelected)
        设置指定索引处的对象是否为选中状态。
        参数:
        index - 指定的索引。
        isSelected - 指定索引处的对象是否为选中状态。
      • addScreenLayer3DAddedListener

        public void addScreenLayer3DAddedListener(ScreenLayer3DAddedListener l)
        添加一个用于接收三维屏幕图层添加事件(ScreenLayer3DAddedEvent)的监听器。
        参数:
        l - 一个用于接收三维屏幕图层添加事件的监听器。
      • removeScreenLayer3DAddedListener

        public void removeScreenLayer3DAddedListener(ScreenLayer3DAddedListener l)
        移除一个用于接收三维屏幕图层添加事件(ScreenLayer3DAddedEvent)的监听器。
        参数:
        l - 一个用于接收三维屏幕图层添加事件的监听器。
      • addScreenLayer3DRemovedListener

        public void addScreenLayer3DRemovedListener(ScreenLayer3DRemovedListener l)
        添加一个用于接收三维屏幕图层添加事件(ScreenLayer3DRemovedEvent)的监听器。
        参数:
        l - 一个用于接收三维屏幕图层添加事件的监听器。
      • removeScreenLayer3DRemovedListener

        public void removeScreenLayer3DRemovedListener(ScreenLayer3DRemovedListener l)
        移除一个用于接收三维屏幕图层添加事件(ScreenLayer3DRemovedEvent)的监听器。
        参数:
        l - 一个用于接收三维屏幕图层添加事件的监听器。
      • addScreenLayer3DClearedListener

        public void addScreenLayer3DClearedListener(ScreenLayer3DClearedListener l)
        添加一个用于接收三维屏幕图层清除事件(ScreenLayer3DClearedEvent)的监听器。
        参数:
        l - 一个用于接收三维屏幕图层清除事件的监听器。
      • removeScreenLayer3DClearedListener

        public void removeScreenLayer3DClearedListener(ScreenLayer3DClearedListener l)
        移除一个用于接收三维屏幕图层清除事件(ScreenLayer3DClearedEvent)的监听器。
        参数:
        l - 一个用于接收三维屏幕图层清除事件的监听器。
      • addScreenLayer3DGeometryChangedListener

        public void addScreenLayer3DGeometryChangedListener(ScreenLayer3DGeometryChangedListener l)
        添加一个用于接收三维屏幕图层几何对象变化事件(ScreenLayer3DGeometryChangedEvent)的监听器。
        参数:
        l - 一个用于接收三维屏幕图层几何对象变化事件的监听器。
      • removeScreenLayer3DGeometryChangedListener

        public void removeScreenLayer3DGeometryChangedListener(ScreenLayer3DGeometryChangedListener l)
        移除一个用于接收三维屏幕图层几何对象变化事件(ScreenLayer3DGeometryChangedEvent)的监听器。
        参数:
        l - 一个用于接收三维屏幕图层几何对象变化事件的监听器。
      • addScreenLayer3DTagChangedListener

        public void addScreenLayer3DTagChangedListener(ScreenLayer3DTagChangedListener l)
        添加一个用于接收三维屏幕图层几何对象标签变化事件ScreenLayer3DTagChangedEvent的监听器。
        参数:
        l - 一个用于接收三维屏幕图层几何对象标签变化事件的监听器。
      • removeScreenLayer3DTagChangedListener

        public void removeScreenLayer3DTagChangedListener(ScreenLayer3DTagChangedListener l)
        移除一个用于接收三维屏幕图层几何对象标签变化事件ScreenLayer3DTagChangedEvent的监听器。
        参数:
        l - 一个用于接收三维屏幕图层几何对象标签变化事件的监听器。
      • setObjsVisibleInViewport

        public void setObjsVisibleInViewport(int[] objsVisible,
                                             boolean visible,
                                             short viewPortIndex)
      • getObjsVisibleInViewport

        public boolean getObjsVisibleInViewport(int objIndex,
                                                short viewPortIndex)

Copyright © 2021–2024 SuperMap. All rights reserved.