com.supermap.ui

类 SceneControl

  • 所有已实现的接口:
    IDisposable, ImageObserver, MenuContainer, Serializable, Accessible


    public class SceneControl
    extends Canvas
    implements IDisposable
    三维场景控件。

    一个三维场景窗口(SceneControl)对应一个三维场景(Scene),即一个三维场景窗口中只能显示一个三维场景。

    三维场景控件是通过对三维模型的可视化表达,即以视觉化的形式将它们表现出来,可以为用户提供一些二维地图数据无法直接提供的信息。三维可视化广泛应用于医学、军事、地质、勘探等领域。在三维GIS中,三维数据可视化可以真实地表现空间数据、逼真地模拟仿真地理信息现实,进而可以直观地展现用户感兴趣的数据。

    在三维窗口中,滚动鼠标滚轮,可以进行三维场景的放大或缩小的操作;按住鼠标滚轮进行上下拖动,可以对三维场景的进行倾斜操作,如果按住鼠标滚轮进行左右拖动,可以对三维场景进行旋转,另外,使用shift+光标键(上下光标键和左右光标键)也可以实现三维场景的倾斜和旋转操作。

    注意:当用户使用该三维场景控件对象进行编程时,如果将 Workspace 与 SceneControl 建立了关联,那么在进行对象的关闭时,一定需要注意关闭的顺序,如下:

    1、关闭scene 对象;

    2、关闭SceneControl对象;

    3、关闭Workspace对象。

    另请参阅:
    序列化表格
    • 构造器详细资料

      • SceneControl

        public SceneControl()
        默认构造函数,构造一个新的 SceneControl 对象。
      • SceneControl

        public SceneControl(SceneType sceneType)
        根据指定的sceneType构造一个新的SceneControl对象。
        参数:
        sceneType - 指定的场景类型。
    • 方法详细资料

      • get_mHandle

        public long get_mHandle()
      • isKeyboardNavigationEnabled

        public boolean isKeyboardNavigationEnabled()
        返回是否可以通过键盘进行导航漫游。
        返回:
        可以通过键盘进行导航漫游返回 true;否则返回 false。
        默认值:
        默认值为 true。
      • setKeyboardNavigationEnabled

        public void setKeyboardNavigationEnabled(boolean value)
        设置是否可以通过键盘进行导航漫游。
        参数:
        value - 一个布尔值指定是否可以通过键盘进行导航漫游。
      • isMouseNavigationEnabled

        public boolean isMouseNavigationEnabled()
        返回是否可以通过鼠标进行导航漫游。

        该方法决定了三维场景控件在运行的时候是否通过鼠标来进行导航漫游。当本方法返回值为 true 的时候,用户可以使用鼠标左键进行上下左右的导航显示,使用鼠标右键进行放大和缩小的漫游显示。

        返回:
        一个布尔值,可以通过鼠标进行导航漫游返回 true;否则返回 false。
        默认值:
        默认值为 false。
      • setMouseNavigationEnabled

        public void setMouseNavigationEnabled(boolean value)
        设置是否可以通过鼠标进行导航漫游。

        该方法决定了三维场景控件在运行的时候是否通过鼠标来进行导航漫游。当本方法返回值为 true 的时候,用户可以使用鼠标左键进行上下左右的导航显示,使用鼠标右键进行放大和缩小的漫游显示。

        参数:
        value - 一个布尔值指定是否可以通过鼠标进行导航漫游。
      • setInteractionMode

        public void setInteractionMode(InteractionMode3D value)
        设置当前三维场景控件的互操作模式。

        通过该方法,可以实现在自定义鼠标、键盘的模式下与当前场景控件的交换操作。

        参数:
        value - 当前三维场景控件的互操作模式。
      • getInteractionMode

        public InteractionMode3D getInteractionMode()
        返回当前三维场景控件的互操作模式。
        返回:
        当前三维场景控件的互操作模式。
      • isWaitCursorEnabled

        public boolean isWaitCursorEnabled()
        返回当前场景窗口的等待光标是否有效。为 true 时,在场景绘制等待时,系统会自动切换成等待光标,为 false 时,则不会自动切换等待光标。

        返回:
        一个布尔值,当前场景窗口的等待光标有效返回 true,否则返回 false。
      • setWaitCursorEnabled

        public void setWaitCursorEnabled(boolean waitCursorEnabled)
        设置当前场景窗口的等待光标是否有效。为 true 时,在场景绘制等待时,系统会自动切换成等待光标,为 false 时,则不会自动切换等待光标。

        参数:
        waitCursorEnabled - 当前场景窗口的等待光标是否有效。
      • isCursorCustomized

        public boolean isCursorCustomized()
        返回当前场景控件的光标变化是否自定义。为 true 时,控件的光标完全由用户来控制,为 false 时,光标的变换由控件自己负责。
        返回:
        一个布尔值,当前场景控件的光标变化自定义返回 true,否则返回 false。
      • setCursorCustomized

        public void setCursorCustomized(boolean cursorCustomized)
        设置当前场景控件的光标变化是否自定义。为 true 时,控件的光标完全由用户来控制,为 false 时,光标的变换由控件自己负责。
        参数:
        cursorCustomized - 当前场景控件的光标变化是否自定义。
      • isAlwaysUpdate

        public boolean isAlwaysUpdate()
        返回三维场景是否在失去焦点时停止更新数据。
        返回:
        一个布尔值,返回 true 时,表示失去焦点时不停止更新,返回 false时,表示失去焦时停止更新数据。
      • setAlwaysUpdate

        public void setAlwaysUpdate(boolean value)
        设置获三维场景是否在失去焦点时停止更新数据。
        参数:
        value - 一个布尔值,返回 true 时,表示失去焦点时不停止更新,返回 false时,表示失去焦时停止更新数据。
      • isStatusBarVisible

        public boolean isStatusBarVisible()
        返回状态条是否可见。
        返回:
        一个布尔值,状态条可见返回 true;否则返回 false。
        默认值:
        默认值为 true。
      • setStatusBarVisible

        public void setStatusBarVisible(boolean value)
        设置状态条是否可见。
        参数:
        value - 一个布尔值指定状态条是否可见。
      • isFPSVisible

        public boolean isFPSVisible()
        返回三维场景控件的帧率信息是否可见。其中帧率信息包括平均帧率、最好帧率、最差帧率和三角面数量。
        返回:
        三维场景控件的帧率信息是否可见。帧率信息可见返回true,不可见返回false。
        默认值:
        默认值为 false。
      • setFPSVisible

        public void setFPSVisible(boolean value)
        设置三维场景控件的帧率信息是否可见。其中帧率信息包括平均帧率、最好帧率、最差帧率和三角面数量。
        参数:
        value - 三维场景控件的帧率信息是否可见。
      • getLayerIDUnit

        public int getLayerIDUnit()
        获取场景图层选择的指数,默认为8,即场景最大支持256(2^8)个可选择图层。
        返回:
        场景图层选择的指数。
      • setLayerIDUnit

        public void setLayerIDUnit(int value)
        设置场景图层选择的指数。即场景最大支持2^n个可选择图层。
        参数:
        value - 2^value。
      • setCameraZoomFactor

        public void setCameraZoomFactor(double value)

        设置球面相机缩进倍率。支持用户自定义设置操作相机的缩放倍率,默认缩放倍率为1.0,相机缩进范围[0.1,8.0]。
        参数:
        value - 球面相机缩进倍率。
        抛出:
        IllegalStateException - 当前对象已被释放。
        从以下版本开始:
        @since 11.2.0。
      • getCameraZoomFactor

        public double getCameraZoomFactor()

        返回球面相机缩进倍率。默认缩放倍率为1.0。
        返回:
        球面相机缩进倍率。
        抛出:
        IllegalStateException - 当前对象已被释放。
        从以下版本开始:
        @since 11.2.0。
      • getAction

        public Action3D getAction()
        返回三维场景操作状态。有关三维场景的操作状态,请参见 Action3D
        返回:
        三维场景操作状态。
        默认值:
        默认值为 Action3D.PAN
      • setAction

        public void setAction(Action3D value)
        设置三维场景操作状态。有关三维场景的操作状态,请参见 Action3D
        参数:
        value - 三维场景操作状态。
      • setTrackMode3D

        public void setTrackMode3D(TrackMode3D mode3D)
      • getNavigationControl

        public NavigationControl getNavigationControl()
        返回三维场景导航对象。
        返回:
        三维场景导航对象。
        默认值:
        默认值为 NavigationControl 对象的默认值。
      • getScene

        public Scene getScene()
        返回三维地图场景(Scene)对象。
        返回:
        三维地图场景(Scene)对象。
        默认值:
        默认值为 Scene 对象的默认值。
      • getEditableLayers

        public Layer3D[] getEditableLayers()
        返回三维场景窗口中的所有可编辑图层。
        返回:
        三维场景窗口中的可编辑图层数组。
      • getActiveEditableLayer

        public Layer3D getActiveEditableLayer()
        返回当前可编辑的图层。如果当前是多图层编辑模式(即 MapControl.isMultiLayerEditEnabled() 的返回值为 true),则当前可编辑图层的默认值为可编辑图层的第一个图层,对对象的绘制和粘贴操作只作用在该图层上,而非所有的可编辑图层上。
        返回:
        当前可编辑的图层。
      • setActiveEditableLayer

        public void setActiveEditableLayer(Layer3D layer3D)
        设置当前可编辑的图层。如果当前是多图层编辑模式(即 MapControl.isMultiLayerEditEnabled() 的返回值为 true),则当前可编辑图层的默认值为可编辑图层的第一个图层,对对象的绘制和粘贴操作只作用在该图层上,而非所有的可编辑图层上。
        参数:
        layer3D - 设置当前可编辑的图层。
      • getPanDatumPlane

        public double getPanDatumPlane()
        返回漫游基准面。单位为米。

        漫游观察三维场景中高空物体时,物体偏移角度会随着其离地面的高度而增大,通过设置基准面,使其以基准面为参考平面进行漫游,可以减小这种偏移,便于观察。

        返回:
        漫游基准面。单位为米。
        默认值:
        默认值为0,单位为米。
      • setPanDatumPlane

        public void setPanDatumPlane(double value)
        设置漫游基准面。单位为米。

        漫游观察三维场景中高空物体时,物体偏移角度会随着其离地面的高度而增大,通过设置基准面,使其以基准面为参考平面进行漫游,可以减小这种偏移,便于观察。

        参数:
        value - 漫游基准面。单位为米。
      • dispose

        public void dispose()
        释放该对象所占用的资源。当调用该方法之后,此对象不再可用。
        指定者:
        dispose 在接口中 IDisposable
      • doKeyDown

        public void doKeyDown(KeyEvent e)
        当焦点在控件上按下键时执行 KeyDown 操作。
        参数:
        e - 执行操作需要的参数。
      • doKeyUp

        public void doKeyUp(KeyEvent e)
      • doMouseDown

        public void doMouseDown(MouseEvent e)
        当指针在三维场景控件上,用户按下鼠标按钮时,将执行 MouseDown 操作。
        参数:
        e - 执行操作需要的参数。
      • doMouseUp

        public void doMouseUp(MouseEvent e)
        当指针保持在控件上,用户释放鼠标按钮时,执行 MouseUp 操作。
        参数:
        e - 执行操作需要的参数。
      • doMouseMove

        public void doMouseMove(MouseEvent e)
        当用户移动鼠标指针经过三维场景控件时,将执行 MouseMove 操作。
        参数:
        e - 执行操作需要的参数。
      • doMouseWheel

        public void doMouseWheel(MouseWheelEvent e)
        在鼠标滚轮转动时执行 MouseWheel 操作。
        参数:
        e - 执行操作需要的参数。
      • isDynamicSelection

        public boolean isDynamicSelection()
        获取当鼠标滑动时,场景对象是否动态高亮显示。
        返回:
        是否动态高亮显示。
      • setDynamicSelection

        public void setDynamicSelection(boolean value)
        设置当鼠标滑动时,场景对象是否动态高亮显示。
        参数:
        value - 指定是否动态高亮显示。
      • isStatusBarShowAltitude

        public boolean isStatusBarShowAltitude()
        获取状态条是否显示高度。
        返回:
        是否显示高度。
      • setStatusBarShowAltitude

        public void setStatusBarShowAltitude(boolean value)
        设置状态条是否显示高度。
        参数:
        value - 指定是否显示高度。
      • getSnapMode

        public SnapMode3D getSnapMode()
        获取三维场景中的模型对象支持顶点捕捉。
        返回:
      • setSnapMode

        public void setSnapMode(SnapMode3D value)
        设置三维场景中的模型对象是否进行顶点捕捉。
      • isAlwaysActive

        public boolean isAlwaysActive()
        获取场景是否保持激活状态。
        返回:
      • setAlwaysActive

        public void setAlwaysActive(boolean alwaysActive)
        设置场景是否保持激活状态。
        参数:
        alwaysActive -
      • addTrackingListener

        public void addTrackingListener(Tracking3DListener l)
        添加一个用于接收三维场景窗口的跟踪图层中鼠标交互绘制事件(Tracking3DEvent)的监听器。

        在三维场景窗口的跟踪图层中鼠标交互绘制几何对象时触发该三维场景窗口跟踪事件。

        参数:
        l - 一个用于接收三维场景窗口的跟踪图层中鼠标交互绘制事件的监听器。
      • removeTrackingListener

        public void removeTrackingListener(Tracking3DListener l)
        移除一个用于接收三维场景窗口的跟踪图层中鼠标交互绘制事件(Tracking3DEvent)的监听器。

        在三维场景窗口的跟踪图层中鼠标交互绘制几何对象时触发该三维场景窗口跟踪事件。

        参数:
        l - 一个用于接收三维场景窗口的跟踪图层中鼠标交互绘制事件的监听器。
      • addTrackedListener

        public void addTrackedListener(Tracked3DListener l)
        添加一个用于接收三维场景窗口的跟踪图层中鼠标交互绘制结束事件(Tracked3DEvent)的监听器。

        在三维场景窗口的跟踪图层中鼠标交互绘制几何对象结束时触发该三维场景窗口跟踪事件。

        参数:
        l - 一个用于接收三维场景窗口的跟踪图层中鼠标交互绘制结束事件的监听器。
      • removeTrackedListener

        public void removeTrackedListener(Tracked3DListener l)
        移除一个用于接收三维场景窗口的跟踪图层中鼠标交互绘制结束事件(Tracked3DEvent)的监听器。

        在三维场景窗口的跟踪图层中鼠标交互绘制几何对象结束时触发该三维场景窗口跟踪事件。

        参数:
        l - 一个用于接收三维场景窗口的跟踪图层中鼠标交互绘制结束事件的监听器。
      • addObjectSelectedListener

        public void addObjectSelectedListener(ObjectSelectedListener l)
        添加一个用于接收对象被选中事件(ObjectSelectedEvent)的监听器。
        参数:
        l - 一个用于接收对象被选中事件的监听器。
      • removeObjectSelectedListener

        public void removeObjectSelectedListener(ObjectSelectedListener l)
        移除一个用于接收对象被选中事件(ObjectSelectedEvent)的监听器。
        参数:
        l - 一个用于接收对象被选中事件的监听器。
      • addmodelingObjectSelectdListener

        public void addmodelingObjectSelectdListener(ObjectSelectedListener l)
        添加一个用于接收对象被选中事件(ObjectSelectedEvent)的监听器。
        参数:
        l - 一个用于接收对象被选中事件的监听器。
      • removemodelingObjectSelectdListener

        public void removemodelingObjectSelectdListener(ObjectSelectedListener l)
        移除一个用于接收对象被选中事件(ObjectSelectedEvent)的监听器。
        参数:
        l - 一个用于接收对象被选中事件的监听器。
      • addmodelingObjectSelectChangedListener

        public void addmodelingObjectSelectChangedListener(ObjectSelectedListener l)
        添加一个用于接收对象被选中事件(ObjectSelectedEvent)的监听器。
        参数:
        l - 一个用于接收对象被选中事件的监听器。
      • removemodelingObjectSelectChangedListener

        public void removemodelingObjectSelectChangedListener(ObjectSelectedListener l)
        移除一个用于接收对象被选中事件(ObjectSelectedEvent)的监听器。
        参数:
        l - 一个用于接收对象被选中事件的监听器。
      • keyPressed

        public void keyPressed(KeyEvent e)
      • keyReleased

        public void keyReleased(KeyEvent e)
      • mouseDragged

        public void mouseDragged(MouseEvent e)
      • mousePressed

        public void mousePressed(MouseEvent e)
      • mouseReleased

        public void mouseReleased(MouseEvent e)
      • setActionGraphicObject3D

        public void setActionGraphicObject3D(ActionGraphicObject action3D)

Copyright © 2021–2024 SuperMap. All rights reserved.