com.supermap.realspace

类 Scene

  • java.lang.Object
    • com.supermap.data.InternalHandle
      • com.supermap.data.InternalHandleDisposable
        • com.supermap.realspace.Scene
  • 所有已实现的接口:
    IDisposable


    public class Scene
    extends com.supermap.data.InternalHandleDisposable
    三维场景类。

    SuperMap iObjects Java 三维场景的主体是一个模拟地球的三维球体(SuperMap Objects Java 以半径为6378137 米的球体来模拟地球),该球体具有地理参考,球体上的点采用经纬度进行定位,并且可以通过三维场景提供的球体上的经纬网格,方便地浏览;同时,使用全球的遥感影像图作为背景覆盖在球体表面,增强三维球体模拟的逼真性;除此之外,三维场景还模拟了地球所处的环境,包括:宇宙的星空,地球的大气环境,地球表面的雾环境等。三维场景还提供了相机的设置,相机可以用来控制对球体的观测角度、方位和观测范围,从而以不同的视角呈现球体的不同部位。

    各种三维数据将通过三维场景填加到三维场景的基本组织架构上,即三维数据会依据地理参考信息,填加到SuperMap Objects Java 提供的球体上。

    能够添加到三维场景中的数据包括:二维矢量数据集、三维几何对象、影像数据、地形数据、第三方三维模型数据以及KML文件。

    新建三维窗口中的默认存在的三维场景

    示范代码:
    以下代码示范了三维窗口的显示以及将二维数据显示在三维场景中, 假设 Space 数据源中存在一个名为 Capital_P 的矢量数据集。
     public void TestScene(DatasetVector targetDataset, Scene sceneObject) {
                    // 进行三维场景的设置
                    sceneObject.getAtmosphere().setVisible(true);
                    Camera camera = new Camera(102, 31, 10000,AltitudeMode.RELATIVE_TO_GROUND, 0, 0);
                    sceneObject.setCamera(camera);
                    Fog fog = new Fog();
                    fog.setFogMode(FogMode.LINEAR);
                    fog.setEnable(true);
                    sceneObject.setFog(fog);
                    sceneObject.setScaleLegendVisible(true);
                    sceneObject.setName("二维矢量数据的三维显示");
    
                    // 返回显示在三维场景中的矢量数据集,并按照设置的风格显示在三维场景中
                    Layer3DSettingVector layer3DSettingVector = new Layer3DSettingVector();
                    GeoStyle3D geoStyle3D = new GeoStyle3D();
                    geoStyle3D.setMarkerColor(Color.RED);
                    geoStyle3D.setMarkerSize(10);
                    layer3DSettingVector.setStyle(geoStyle3D);
                    Layer3DDataset layer3DDatasetPoint = sceneObject.getLayers().add(targetDataset, layer3DSettingVector, true);
                    layer3DDatasetPoint.updateData();
    
                    // 全幅显示三维场景
                    sceneObject.viewEntire();
                    sceneObject.refresh();
    
                    // 返回三维场景的XML形式的描述
                    String descriptionScene = sceneObject.toXML();
                    System.out.println("当前三维场景的信息:" + descriptionScene);
            }
    • 构造器详细资料

      • Scene

        public Scene()
        构造一个新的 Scene 对象。

        该构造函数创建的 Scene 对象,能够满足只需要解析场景的相关内容的使用。若需要进行显示,浏览等操作,请使用 SceneControl

      • Scene

        public Scene(Workspace workspace)
        根据指定的参数来构造一个 Scene 的新对象。

        该构造函数创建的 Scene 对象,能够满足只需要解析场景的相关内容的使用。若需要进行显示,浏览等操作,请使用 SceneControl

        参数:
        workspace - 指定的 workspace 对象。
    • 方法详细资料

      • getTrackGeometry

        public TrackGeometry getTrackGeometry(int action)
        返回绘制跟踪类,支持对当前三维场景中绘制的几何对象(线、面)进行操作。
        参数:
        action - Action3D中的枚举值
        返回:
        绘制跟踪类。Geometry仅在当前Action3D枚举为CREATE_POLYLINE时能获取成功。
        从以下版本开始:
        11.2.0。
      • isOverlapDisplayed

        public boolean isOverlapDisplayed()
        返回压盖时是否显示。

        这里的压盖,目前包含文本数据集、地标、专题图的文字的压盖。

        返回:
        压盖时是否显示。
      • setOverlapDisplayed

        public void setOverlapDisplayed(boolean value)
        设置压盖时是否显示。

        这里的压盖,目前包含文本数据集、地标、专题图的文字的压盖。

        参数:
        value - 压盖时是否显示。
      • getFPS

        public double getFPS()
        返回当前场景的帧率,即帧/秒。

        该数值通常用于判断三维场景的显示效率。

        注意:该值小于20时,场景就会出现延迟的现象。

        返回:
        当前场景的帧率,即帧/秒。
      • getTimer

        public Timer getTimer()
        返回用于控制场景渲染的定时器,用户可以用来模拟场景飞行以及修改更新的速度,目前是20毫秒执行一次刷新。
        返回:
        用于控制场景渲染的定时器。
      • getCamera

        public Camera getCamera()
        返回当前场景的相机对象。Camera 相当于视点。
        返回:
        当前场景的相机对象。
      • setCamera

        public void setCamera(Camera camera)
        设置当前场景的相机对象。Camera 相当于视点。
        参数:
        camera - 当前场景的相机对象。
      • getTerrainLayers

        public TerrainLayers getTerrainLayers()
        返回三维场景中的地形图层集合。
        返回:
        三维场景中的地形图层集合。
      • getTerrainExaggeration

        public double getTerrainExaggeration()
        返回地形所夸大的比例。
        返回:
        地形所夸大的比例。
        默认值:
        默认值为 1。
      • setTerrainExaggeration

        public void setTerrainExaggeration(double value)
        设置地形所夸大的比例。
        参数:
        value - 地形所夸大的比例。
      • getLatLonGrid

        public LatLonGrid getLatLonGrid()
        返回经纬网对象。
        返回:
        经纬网对象。
      • getAtmosphere

        public Atmosphere getAtmosphere()
        返回大气环境对象。
        返回:
        大气环境对象。
      • getOcean

        public Ocean getOcean()
        返回海洋对象。
        返回:
        海洋对象。
      • getSun

        public Sun getSun()
        返回太阳对象。通过设置场景中的 Sun 等对象,用来实现对三维场景效果的渲染。
        返回:
        太阳对象。
      • getSky

        public Sky getSky()
      • getOceanEffect

        public OceanEffect getOceanEffect()
        获取海洋特效。
        返回:
        海洋特效。
      • getEnvironmentLight

        public EnvironmentLight getEnvironmentLight()
        获取环境光贴图。
        返回:
        环境光贴图
      • getUnderground

        public Underground getUnderground()
        返回 Underground 对象。
        返回:
        Underground 对象。
      • getGlobalImage

        public GlobalImage getGlobalImage()
        返回 GlobalImage 对象。
        返回:
        GlobalImage 对象。
      • isScaleLegendVisible

        public boolean isScaleLegendVisible()
        返回比例尺是否可见。true 表示比例尺可见,false 表示不可见。
        返回:
        比例尺是否可见。
      • setScaleLegendVisible

        public void setScaleLegendVisible(boolean value)
        设置比例尺是否可见。true 表示比例尺可见,false 表示不可见。
        参数:
        value - 一个布尔值指定比例尺是否可见。
      • isCrossVisible

        public boolean isCrossVisible()
        返回是否显示三维场景窗口中心位置标记。
        返回:
        是否显示三维场景窗口中心位置标记。
      • setCrossVisible

        public void setCrossVisible(boolean value)
        设置是否显示三维场景窗口中心位置标记。
        参数:
        value - 是否显示三维场景窗口中心位置标记。
      • findSelection

        public Selection3D[] findSelection(boolean hasObjectSelected)
        返回当前三维场景的选择集。

        该方法返回的是 Selection3D 类对象的数组,每一个 Selection3D 类对象为三维场景中一个图层中所有处于选中状态的对象集合。

        参数:
        hasObjectSelected - 指定三维场景中是否有对象被选中。当设置为 true,该方法返回的是场景中有选择对象的图层的选择集;设置为 false 时,返回场景中所有图层的选择集。
        返回:
        Selection3D 类对象数组,其中,每一个 Selection3D 类对象为三维场景中一个图层中所有处于选中状态的对象集合。
      • getTrackingLayer

        public TrackingLayer3D getTrackingLayer()
        返回 3D 跟踪图层对象。
        返回:
        3D 跟踪图层对象。
      • setModelingObjectCollection

        public void setModelingObjectCollection(ModelingObjectCollection modelingObjectCollection)
        设置建模对象的集合.
        参数:
        modelingObjectCollection - 建模对象集合。
        抛出:
        IllegalStateException - 当前对象已被释放。
        从以下版本开始:
        11.2.0。
      • getModelingObjectCollection

        public ModelingObjectCollection getModelingObjectCollection()
        返回建模对象的集合。
        返回:
        建模对象集合。
        抛出:
        IllegalStateException - 当前对象已被释放。
        从以下版本开始:
        11.2.0。
      • removeModelingObjectCollection

        public ModelingObjectCollection removeModelingObjectCollection()
        移除建模对象的集合。
        返回:
        建模对象集合。
        抛出:
        IllegalStateException - 当前对象已被释放。
        从以下版本开始:
        11.2.0。
      • getWorkspace

        public Workspace getWorkspace()
        返回三维场景所关联的工作空间。
        返回:
        三维场景所关联的工作空间。
      • setWorkspace

        public void setWorkspace(Workspace workspace)
        设置三维场景所关联的工作空间。
        参数:
        workspace - 三维场景所关联的工作空间。
      • getLayers

        public Layer3Ds getLayers()
        返回 3D 图层集合对象。
        返回:
        3D 图层集合对象。
      • getScreenLayer

        public ScreenLayer3D getScreenLayer()
        返回屏幕图层。
        返回:
        屏幕图层。
      • getFog

        public Fog getFog()
        返回雾对象。通过设置场景中的 Fog 等对象,用来实现对三维场景效果的渲染。
        返回:
        雾对象。
      • setFog

        public void setFog(Fog fog)
        设置雾对象。
        参数:
        fog - 雾对象。
      • getAltitude

        public double getAltitude(double longitude,
                                  double latitude)
        返回地面上某点的海拔高度。单位为米。
        参数:
        longitude - 地面上某点的经度。单位为度。
        latitude - 地面上某点的纬度。单位为度。
        返回:
        如果有地形数据的情况下,返回地面上某点的海拔高度,否则没有地形数据时,返回0.0。不管地形拉伸倍数如何,返回的地形高度永远是实际的地形高度。
        示范代码:
        以下代码示范了如何返回地面上某点的海拔高度, 假设已有存在地形数据 GlobalTerrain.sct。
                public void TestSceneGetAltitude(Scene sceneObject) {
                        // 进行三维场景的设置
                        sceneObject.getAtmosphere().setVisible(true);
                        sceneObject.setTerrainExaggeration(3);
        
                        // 添加地形图层到三维场景中
                        TerrainLayers terrainLayers = sceneObject.getTerrainLayers();
                        TerrainLayer terrainLayer =terrainLayers.add("../../FrameData/GlobalTerrain/GlobalTerrain.sct", true);
                        terrainLayer.setVisible(true);
        
                        // 返回地面上某点的海拔高度
                        double altitudeValue = sceneObject.getAltitude(116, 39);
                        System.out.println("地面上东经116度,北纬39度的海拔高度为:" + altitudeValue);
                }
      • setFogVisibleAltitude

        public void setFogVisibleAltitude(double value)
        设置雾的可见高度,即离地球表面的海拔距离。单位为米。
        参数:
        value - 雾的可见高度。单位为米。
      • getFogVisibleAltitude

        public double getFogVisibleAltitude()
        返回雾的可见高度,即离地球表面的海拔距离。单位为米。
        返回:
        雾的可见高度。单位为米。
        默认值:
        默认值为 20000,单位为米。
      • fly

        public void fly(Camera camera)
        根据指定的目标相机对象进行飞行。
        参数:
        camera - 指定的目标相机对象。
        示范代码:
        以下代码示范了如何根据指定的目标相机对象进行飞行。
                public void TestSceneFly() {
                        // 显示三维窗口,构造一个相机对象,并飞行到该相机对象
                        SceneControl sceneControl = new SceneControl();
                        Scene sceneObject = sceneControl.getScene();
                        Camera camera = new Camera(102, 31, 10000,
                                        AltitudeMode.RELATIVE_TO_GROUND, 0, 0);
                        sceneObject.fly(camera);
        
                        // 释放占用的资源
                        sceneControl.dispose();
                }
             
      • fly

        public void fly(Camera camera,
                        int milliseconds)
        将相机对象按照指定的时间飞行到指定的目的地。
        参数:
        camera - 指定的目标相机对象。
        milliseconds - 相机飞行到指定目的地所耗费的时间。单位为毫秒。
        示范代码:
        以下代码示范了如何根据指定的目标相机对象在5秒的时间内飞行到该相机对象。
                public void TestSceneFly() {
                        // 显示三维窗口,构造一个相机对象,并以5秒的时间飞行到该相机对象
                        SceneControl sceneControl = new SceneControl();
                        Scene sceneObject = sceneControl.getScene();
                        Camera camera = new Camera(102, 31, 10000,
                                        AltitudeMode.RELATIVE_TO_GROUND, 0, 0);
                        sceneObject.fly(
            ,5000);
        
                        // 释放占用的资源
                        sceneControl.dispose();
                }
             
      • fly

        @Deprecated
        public void fly(Camera camera,
                                     boolean isDirect)
        已过时。 
      • fly

        @Deprecated
        public void fly(Camera camera,
                                     int milliseconds,
                                     boolean isDirect)
        已过时。 
      • flyPlay

        @Deprecated
        public void flyPlay(Geometry line,
                                         double speedRatio,
                                         double distance)
        已过时。 
      • flyCircle

        public void flyCircle(Geometry geometry,
                              double speedRatio)
        围绕指定地点旋转飞行模式,飞行过程中可以控制飞行的速度。

        下图为几何对象围绕指定地点旋转飞行的效果图:

        参数:
        geometry - 指定的目标几何对象
        speedRatio - 指定的默认飞行速度的倍数
        示范代码:
        以下代码示范了如何围绕指定的三维线几何对象以飞行速度的2倍进行飞行。
                public void TestSceneFly() {
                        // 显示三维窗口
                        SceneControl sceneControl = new SceneControl();
                        Scene sceneObject = sceneControl.getScene();
        
                                //构造两个三维点对象
                                Point3D point3DStart=new Point3D (-100,-100,-100);
                                Point3D point3DEnd=new Point3D (100,100,100);
        
                                //将两个三维点对象加入三维点对象集合
                                Point3Ds  points3D = new Point3Ds();
                                points3D.add(point3DStart);
                                points3D.add(point3DEnd);
        
                                //用三维点对象集合构造一条三维线几何对象
                                GeoLine3D line3D = new GeoLine3D(points3D);
                                //围绕指定的三维线几何对象以飞行速度的2倍进行飞行
                                sceneObject.flyCircle(line3D,2.0);
        
                        // 释放占用的资源
                        sceneControl.dispose();
                }
             
      • flyCircle

        public void flyCircle(Geometry geometry,
                              double speedRatio,
                              boolean isCycle)
        围绕指定地点旋转飞行(FlyingCircle模式),可以控制飞行速度以及设置是否循环旋转
        参数:
        geometry - 目标几何对象
        speedRatio - 飞行默认速度的倍数
        isCycle - 是否循环旋转
      • stopFly

        public void stopFly()
        终止飞行操作,执行完后场景会处于静止状态。除了飞行外,该方法还可终止惯性转到以及回归到正北方向的转动状态。
      • pixelToGlobe

        public Point3D pixelToGlobe(Point point)
        将屏幕点对象转换成三维点对象,该三维点对象包含了经纬度和海拔高度信息。

        若屏幕点不在地球范围内则返回的三维点经纬度和高度为 Double.NaN,即不是数字的值。

        参数:
        point - 将被转换的屏幕点对象。
        返回:
        转换后的三维点对象。
        示范代码:
        以下代码示范了如何将屏幕点对象转换成三维点对象, 假设已有存在地形数据 GlobalTerrain.sct。
                public void testPixelToGlobe(Scene sceneObject) {
                        // 进行三维场景的设置
                        sceneObject.getAtmosphere().setVisible(true);
                        sceneObject.setTerrainExaggeration(3);
        
                        // 地形图层到三维场景中
                        TerrainLayers terrainLayers = sceneObject.getTerrainLayers();
                        TerrainLayer terrainLayer =terrainLayers.add("../../FrameData/GlobalTerrain/GlobalTerrain.sct", true);
                        terrainLayer.setVisible(true);
        
                        // 将屏幕点对象转换成三维点对象
                        Point point = new Point(800, 600);
                        Point3D point3D = sceneObject.pixelToGlobe(point);
                        System.out.println("转换后的三维点对象为:" + point3D.toString());
                        sceneObject.refresh();
                }
      • pixelToGlobe

        public Point3D pixelToGlobe(Point point,
                                    PixelToGlobeMode mode)
        将屏幕点对象转换成三维点对象。该方法可以用于判断所选择点位于模型之上或是地形之上。
        参数:
        point - 指定的屏幕点对象。
        mode - 屏幕点对象转换为三维点对象的求交类型。
        返回:
        返回三维点对象。
      • globeToPixel

        public Point globeToPixel(Point3D point)
        将三维点对象转换成屏幕点对象。

        当指定的三维点对象不在当前相机范围内的时候,改方法将返回(-1,-1),表示此点不可见。

        参数:
        point - 将被转换的三维点坐标对象,该点对象包含了经纬度和海拔高度信息。
        返回:
        转换后的屏幕点对象。
        示范代码:
        以下代码示范了如何将三维点对象转换成二维点对象, 假设已有存在地形数据 GlobalTerrain.sct。
                public void TestGlobeToPixel(Scene sceneObject) {
                        // 进行三维地图景场景的设置
                        sceneObject.getAtmosphere().setVisible(true);
                        sceneObject.setTerrainExaggeration(3);
        
                        // 将地形图层添加到三维场景中
                        TerrainLayers terrainLayers = sceneObject.getTerrainLayers();
                        TerrainLayer terrainLayer =terrainLayers.add("../../FrameData/GlobalTerrain/GlobalTerrain.sct", true);
                        terrainLayer.setVisible(true);
        
                        // 将三维点对象转换成二维点对象
                        double altitudeValue = sceneObject.getAltitude(126, 31);
                        Point3D point3D = new Point3D(126, 31, altitudeValue);
                        Point point = sceneObject.globeToPixel(point3D);
                        System.out.println("转换后的屏幕点对象为:" + point.toString());
                        sceneObject.refresh();
                }
      • dispose

        public void dispose()
        释放该对象所占用的资源。当调用该方法之后,此对象不再可用。
      • pan

        public void pan(double offsetLongitude,
                        double offsetLatitude)
        根据给定的经向平移距离和纬向平移距离,平移三维场景。

        下图为对三维场景进行平移操作的效果图:

        参数:
        offsetLongitude - 经向平移距离。单位为度。
        offsetLatitude - 纬向平移距离。单位为度。
      • zoom

        public void zoom(double ratio)
        根据给定的缩放比例,对三维场景进行缩放操作。缩放比例的范围为负无穷大到1,其中当参数为(0,1)之间的数值时,场景按比例放大;参数为小于0数值时,场景按比例缩小,但在缩小到一定程度后不会再缩小。

        下图为对三维场景进行缩放操作的效果图:

        参数:
        ratio - 缩放比例。缩放比例的范围为负无穷大到1,其中当参数为(0,1)之间的数值时,场景按比例放大;参数为小于0数值时,场景按比例缩小,但在缩小到一定程度后不会再缩小。
        示范代码:
        以下代码示范了按照一定的比例缩放当前三维场景。
                public void TestSceneZoom(Scene sceneObject) {
                        // 按照一定的比例缩放当前三维场景
                        sceneObject.zoom(0.5);
                }
      • pitch

        public void pitch(double angle)
        根据给定的角度值,对三维场景进行倾斜,从而从不同角度观察三维场景中的对象。

        下图为对三维场景进行一定角度倾斜的效果图:

        参数:
        angle - 角度。单位为度。
      • viewEntire

        public void viewEntire()
        全幅显示三维场景。

        下图为对三维场景进行全幅显示操作的效果图:

        示范代码:
        参见 Scene 类的示例。
      • refresh

        public void refresh()
        刷新三维场景。
        示范代码:
        参见 Scene 类的示例。
      • toXML

        public String toXML()
        返回三维场景的的 XML 形式的描述。
        返回:
        三维场景的 XML 形式的描述。
        示范代码:
        参见 Scene 类的示例。
      • fromXML

        public boolean fromXML(String xml)
        通过 XML 数据创建三维场景对象。
        参数:
        xml - XML 数据。
        返回:
        创建成功则返回 true,否则返回 false。
      • getCameraFOV

        public double getCameraFOV()
        返回场景相机的视角,单位为度,范围为0-180度。
        返回:
        场景相机的视角。单位为度。
      • setCameraFOV

        public void setCameraFOV(double value)
        设置场景相机的视角,单位为度,范围为 0-180 度。
        参数:
        value - 场景相机的视角。单位为度。
        默认值:
        默认值为 45 度,单位为度。
      • getMaxCameraDistance

        public double getMaxCameraDistance()
        返回场景相机的最大距离,单位为米。
        返回:
        场景相机的最大距离。单位为米。
      • setMaxCameraDistance

        public void setMaxCameraDistance(double value)
        设置场景相机的最大距离,单位为米。
        参数:
        value - 场景相机的最大距离。单位为米。
      • getMinCameraDistance

        public double getMinCameraDistance()
        返回场景相机的最小距离,单位为米。
        返回:
        场景相机的最小距离。单位为米。
      • setMinCameraDistance

        public void setMinCameraDistance(double value)
        设置场景相机的最小距离,单位为米。
        参数:
        value - 场景相机的最小距离。单位为米。
      • open

        public boolean open(String name)
        打开指定名称的三维场景。
        参数:
        name - 指定的三维场景的名称。
        返回:
        成功返回 true,否则返回 false。
      • open

        public boolean open(String iserverUrl,
                            String strSceneName)
        通过iServer数据服务打开三维场景。
        参数:
        iserverUrl - iServer三维服务的URL。
        strSceneName - 指定的三维场景名称。
        返回:
        打开成功返回 true,否则返回 false。
      • close

        public void close()
        关闭三维场景。
      • setName

        public void setName(String value)
        设置当前三维场景的名称。
        参数:
        value - 当前三维场景的名称。
      • getName

        public String getName()
        返回当前三维场景的名称。
        返回:
        当前三维场景的名称。
      • roll

        public void roll(double angle)
        将三维场景绕场景中心进行一定角度的旋转。

        下图为三维场景绕场景中心进行一定角度旋转的效果图:

        参数:
        angle - 指定的角度。单位为度。
      • roll

        public boolean roll(Point2D center,
                            double angle)
        将三维场景绕某个中心点旋转。

        下图为三维场景绕场景中心(即某个中心点)进行一定角度旋转的效果图:

        参数:
        center - 指定的中心点,该点采用经纬度坐标来表示。
        angle - 三维场景的旋转角度。单位为度。
        返回:
        成功返回 true,否则返回 false。
      • rollEye

        public void rollEye(double angle)
        将三维场景绕视点进行一定角度的旋转。

        下图为三维场景绕视点进行一定角度旋转的效果图:

        参数:
        angle - 指定的角度。单位为度。
      • computeSphericalDistance

        public double computeSphericalDistance(Point2D point1,
                                               Point2D point2)
        计算指定两点间的球面距离。
        参数:
        point1 - 需要进行距离计算的一个点。
        point2 - 需要进行距离计算的另外一个点。
        返回:
        指定两点间的球面距离,单位为米。
      • computeSphericalArea

        public double computeSphericalArea(Point2Ds points)
        计算由指定的点集合对象构成的多边形的球面面积。
        参数:
        points - 构成需要进行计算面积的多边形的点集合对象。
        返回:
        由点集合对象构成的多边形的球面面积,单位为平方米。
      • ensureVisible

        public void ensureVisible(Rectangle2D visibleBounds)
        根据给定的经纬度范围显示相应区域的场景。
        参数:
        visibleBounds - 需要全幅显示的经纬度范围。
        示范代码:
        以下代码示范了如何根据给定的经纬度范围显示相应区域的场景
                public void TestSceneEnsureVisible(Scene sceneObject) {
                        // 根据给定的经纬度范围显示相应区域的三维场景
                        Rectangle2D viewRegion = new Rectangle2D(100, 20, 106, 36);
                        sceneObject.ensureVisible(viewRegion);
                }
      • ensureVisible

        public void ensureVisible(Rectangle2D visibleBounds,
                                  int milliseconds)
        根据指定的经纬度范围显示场景。
        参数:
        visibleBounds - 需要全副显示的经纬度范围。
        milliseconds - 到达指定目的地所耗费的时间。单位为毫秒。
      • ensureVisible

        public void ensureVisible(Rectangle2D visibleBounds,
                                  int milliseconds,
                                  double altitude)
        根据给定的经纬度范围显示相应区域的场景,支持指定相机高度。
        参数:
        visibleBounds - 需要全幅显示的经纬度范围。
        milliseconds - 到达指定目的地所耗费的时间。单位为毫秒。
        altitude - 停留的相机高度。
      • ensureVisible

        public void ensureVisible(Layer3D layer3d)
        根据合适的图层观察尺度来显示场景。
        参数:
        layer3d - 需要显示的图层。
      • outputSceneToBitmap

        public BufferedImage outputSceneToBitmap()
        将三维场景输出为内存对象。
        返回:
        BufferedImage 对象。
      • addFlownListener

        public void addFlownListener(FlownListener l)
        添加一个用于接收飞行结束事件(FlownEvent)的监听器。
        参数:
        l - 一个用于接收飞行结束事件的监听器。
      • removeFlownListener

        public void removeFlownListener(FlownListener l)
        移除一个用于接收飞行结束事件(FlownEvent)的监听器。
        参数:
        l - 一个用于接收飞行结束事件的监听器。
      • addSceneOpenedListener

        public void addSceneOpenedListener(SceneOpenedListener l)
        添加一个用于接收三维场景打开事件(SceneOpenedEvent)的监听器。
        参数:
        l - 一个用于接收三维场景打开事件的监听器。
      • removeSceneOpenedListener

        public void removeSceneOpenedListener(SceneOpenedListener l)
        移除一个用于接收三维场景打开事件(SceneOpenedEvent)的监听器。
        参数:
        l - 一个用于接收三维场景打开事件的监听器。
      • addSceneClosedListener

        public void addSceneClosedListener(SceneClosedListener l)
        添加一个用于接收三维场景关闭事件(SceneClosedEvent)的监听器。
        参数:
        l - 一个用于接收三维场景关闭事件(SceneClosedEvent)的监听器。
      • removeSceneClosedListener

        public void removeSceneClosedListener(SceneClosedListener l)
        移除一个用于接收三维场景关闭事件(SceneClosedEvent)的监听器。
        参数:
        l - 一个用于接收三维场景关闭事件的监听器。
      • toBounds

        public static Rectangle2D toBounds(int level,
                                           int columnIndex,
                                           int rowIndex)
        根据缓存层数,列索引和行索引返回对应的地理范围。
        参数:
        level - 指定的缓存层数。
        columnIndex - 指定的缓存图片的列索引。
        rowIndex - 指定的缓存图片的行索引。
        返回:
        某层数下指定行列缓存图片所对应的地理范围。
      • ceilBounds

        public static Rectangle2D ceilBounds(Rectangle2D bounds,
                                             int level)
        根据指定层数,计算指定地理范围(bounds)所对应行列缓存图片的外边框,该边框与三维缓存图片分块划分的边线一致。该方法主要用于规整需要生成缓存数据的范围。

        在手动生成局部缓存,然后结合 iServer 动态发布时,需要通过该方法对手动生成的缓存范围进行规整,以避免指定地理范围(bounds)的缓存图片的边界出现部分白图现象。

        参数:
        bounds - 某层数下指定的生成缓存的地理范围。
        level - 指定的层数。
        返回:
        某层数下指定地理范围所对应行列缓存图片的地理范围,即行列缓存图片块划分的外边界。
      • isStereoEnabled

        public boolean isStereoEnabled()
        返回是否开启立体显示功能。
        返回:
        是否开启立体显示功能。
        默认值:
        默认值为 false,即没有开启立体显示功能。
      • setStereoEnabled

        public void setStereoEnabled(boolean value)
        设置是否开启立体显示功能。只有将立体显示功能开启,所设置的立体显示效果才看通过场景进行观看。
        参数:
        value - 是否开启立体显示功能。
        示范代码:
        以下代码示范了如何设置场景的立体显示效果。
                 public void setStereoDisplay() {
                        // 显示三维窗口
                        SceneControl sceneControl = new SceneControl();
                        Scene sceneObject = sceneControl.getScene();
        
                                if(!sceneObject.isStereoEnabled())
                        {
                                        // 开启立体显示功能
                                        sceneObject.setStereoEnabled(true);
                        }
                                // 设置场景的立体显示模式为四缓存式立体
                                sceneObject.setStereoMode(StereoMode.QUAD_BUFFER);
        
                                // 设置场景的视差模式为正视差
                                sceneObject.setParallaxMode(ParallaxMode.POSITIVE_PARALLAX);
        
                                // 设置两摄像机的距离
                                sceneObject.setStereoEyeSeparation(0.06);
        
                                // 设置两摄像机的交叉角度
                                sceneObject.setStereoEyeAngle(-0.025);
                 }
             
      • getStereoMode

        public StereoMode getStereoMode()
        返回立体显示的模式。
        返回:
        立体显示的模式。
        默认值:
        默认值为 ANAGLYPHIC
      • setStereoMode

        public void setStereoMode(StereoMode value)
        设置立体显示的模式。
        参数:
        value - 立体显示的模式。
        示范代码:
        请参见 setStereoEnabled() 方法的示例。
      • getStereoEyeSeparation

        public double getStereoEyeSeparation()
        返回立体显示模式时两摄像机的距离,单位为米。
        返回:
        立体显示模式时两摄像机的距离。单位为米。
        默认值:
        默认值为 0.05,单位为米。
      • setStereoEyeSeparation

        public void setStereoEyeSeparation(double value)
        设置立体显示模式时两摄像机的距离,单位为米。

        两摄像机的距离在正视差模式(POSITIVE_PARALLAX)下的单位为厘米,因此正视差模式下,在大范围通过该方法设置两摄像机之间的距离没有效果。

        参数:
        value - 立体显示模式时两摄像机的距离。单位为米。
        示范代码:
        请参见 setStereoEnabled() 方法的示例。
      • getStereoEyeAngle

        public double getStereoEyeAngle()
        返回立体显示模式时两摄像机的交叉角度,单位为度。

        该方法仅在正视差模式下有效,表示两摄像机的交叉角度大小,其意义在于调整双目视线的交点位置,可以增加或减弱景物的景深感。

        返回:
        立体显示模式时两摄像机的交叉角度。单位为度。
        默认值:
        默认值为 -0.012。单位为度。
      • setStereoEyeAngle

        public void setStereoEyeAngle(double value)
        设置立体显示模式时两摄像机的交叉角度,单位为度。
        参数:
        value - 立体显示模式时两摄像机的交叉角度。单位为度。
        示范代码:
        请参见 setStereoEnabled() 方法的示例。
      • setParallaxMode

        public void setParallaxMode(ParallaxMode value)
        设置立体显示模式的视差模式。
        参数:
        value - 立体显示模式的视差模式。
      • getParallaxMode

        public ParallaxMode getParallaxMode()
        返回立体显示模式的视差模式。
        返回:
        立体显示模式的视差模式。
        默认值:
        默认值为 POSITIVE_PARALLAX
      • isFullScreen

        @Deprecated
        public boolean isFullScreen()
        已过时。 
      • setFullScreen

        @Deprecated
        public void setFullScreen(boolean value)
        已过时。 
      • isStereoModeSupported

        public boolean isStereoModeSupported(StereoMode mode)
        返回当前系统是否支持所传入的立体显示模式。
        参数:
        mode - 指定的需要判断的立体显示模式。
        返回:
        当前系统是否支持所传入的立体显示模式。
      • setIServerCacheDirectory

        public void setIServerCacheDirectory(String value)
        设置 iServer 服务缓存路径。
        参数:
        value - iServer服务缓存路径。
      • getIServerCacheDirectory

        public String getIServerCacheDirectory()
        返回iServer服务缓存路径。
        返回:
        返回iServer服务缓存路径。
      • setAutoLockTarget

        public void setAutoLockTarget(GeoModel value)
        设置被锁定对象

        当场景不断变化时,通过锁定跟踪对象,可使相机相对于被锁定对象的相对位置保持不变。

        参数:
        value - 锁定对象
      • setAutoLockOffset

        public void setAutoLockOffset(Point3D value)
        设置相机相对于锁定对象的偏移量

        通过调用该方法,可以在锁定目标对象时,改变相机对象相对于锁定对象的x轴、y轴、z轴偏移量,该偏移量暂时只适用于z轴。

        通过为point3D对象的x、y、z赋值来设置相机相对于锁定对象的偏移量。

        参数:
        value - 相机相对于锁定对象的偏移量。
      • getAutoLockOffset

        public Point3D getAutoLockOffset()
        返回相机相对于锁定对象的偏移量。

        通过调用该方法,可以在锁定目标对象时,改变相机相对于锁定对象的x轴、y轴和z轴偏移量,该偏移量暂时只适用于z轴。

        返回:
        相机相对于锁定对象的偏移量。
        默认值:
        该偏移量的默认值为x=0,y=0,z=0。
      • getFirstPersonCamera

        public Camera getFirstPersonCamera()
        返回第一人称相机参数,区别于 getCamera() 方法。

        getCamera() 方法返回的是以屏幕中心点作为基准点的场景位置。

        getFirstPersonCamera() 方法返回的是以当前场景的摄像机(即人眼观看的位置)为基准点操作,相对于前者该方法能够提供更加真实的操作感受,提供比前者更加广泛的可视范围。

        返回:
        当前场景的第一人称相机参数结构体。
      • setFirstPersonCamera

        public void setFirstPersonCamera(Camera camera)
        设置第一人称相机参数,区别于 setCamera() 方法。

        setCamera() 方法是以屏幕中心点作为基准点设置场景位置的。

        setFirstPersonCamera() 方法是以当前场景的摄像机(即人眼观看的位置)为基准点操作,相对于前者该方法能够提供更加真实的操作感受,提供比前者更加广泛的可视范围。

        参数:
        camera - 欲设置的第一人称相机参数结构体。
      • isFirstPersonView

        public boolean isFirstPersonView()
        返回当前场景是否被设置为第一人称操作模式。
        返回:
        当前场景是否被设置为第一人称操作模式。
      • setFirstPersonView

        public void setFirstPersonView(boolean value)
        设置当前场景是否被设置为第一人称操作模式。
        参数:
        value - 当前场景是否被设置为第一人称操作模式。
      • getFlyManager

        public FlyManager getFlyManager()
        返回三维场景的飞行管理对象。
        返回:
        三维场景的飞行管理对象。
      • getShadowVisibleDistance

        public double getShadowVisibleDistance()
        返回阴影的可见距离,单位为米。
        返回:
        阴影的可见距离。单位为米。
        默认值:
        默认值为2000,单位为米。
      • setShadowVisibleDistance

        public void setShadowVisibleDistance(double value)
        设置阴影的可见距离,单位为米。
        参数:
        value - 阴影的可见距离。单位为米。
      • getSceneType

        public SceneType getSceneType()
        返回场景类型。
        返回:
        返回场景类型。
      • setSceneType

        public void setSceneType(SceneType value)
        设置三维场景的类型。可以选择球体模式(Globe)和平面模式(Flat)两种。
        参数:
        value - 三维场景的类型。
      • sphericalToCartesian

        public static Point3D sphericalToCartesian(Point3D point)
        将经纬度坐标转换为球面笛卡尔坐标。
        参数:
        point - 待转换的坐标值。
        返回:
        笛卡尔坐标值。
      • sphericalToPseudoCartesian

        public static Point3D sphericalToPseudoCartesian(Point3D point)
        将经纬度坐标转换为伪直角坐标。
        参数:
        point - 待转换的坐标值。
        返回:
        伪直角坐标。
      • pseudoCartesianToSpherical

        public static Point3D pseudoCartesianToSpherical(Point3D point)
        将伪直角坐标转换为经纬度坐标。
        参数:
        point - 待转换的坐标值。
        返回:
        经纬度坐标。
      • setMultiViewportMode

        public void setMultiViewportMode(MultiViewportMode mode)
        设置当前场景的多视口模式类型
        参数:
        mode -
      • getMultiViewportMode

        public MultiViewportMode getMultiViewportMode()
        设置当前场景的多视口模式类型
        返回:
      • fly

        public void fly(LookAt lookAt)
        根据指定的目标相机对象进行飞行。
        参数:
        lookAt - 指定的LookAt相机对象。
      • fly

        public void fly(LookAt lookAt,
                        int milliseconds)
        根据指定的目标相机对象和飞行时间进行飞行。
        参数:
        lookAt - 指定的LookAt相机对象。
        milliseconds - 相机飞行到指定目的地所耗费的时间。单位为毫秒。
      • getLookAt

        public LookAt getLookAt()
        获取当前场景的相机对象。
        返回:
        当前场景的相机对象。
      • setLookAt

        public void setLookAt(LookAt lookAt)
        设置当前场景的相机对象。
        参数:
        lookAt - 指定的相机对象。
      • addSplitter

        public Splitter addSplitter(String name)
        添加分隔条对象。
        参数:
        name - 指定的分隔条名称。
        返回:
        添加成功的分隔条。
      • getSplitter

        public Splitter getSplitter(String name)
        获取指定的分隔条对象。
        参数:
        name - 指定的分隔条名称。
        返回:
        分隔条对象。
      • removeSplitter

        public boolean removeSplitter(String name)
        移除指定的分隔条对象。
        参数:
        name - 指定的分隔条名称。
        返回:
        布尔值,表示移除是否成功。
      • getSplitterCount

        public int getSplitterCount()
        获取当前场景中分隔条的个数。
        返回:
        分隔条个数。
      • addSlider

        public Slider addSlider(String name)
        添加指定的滑块对象。
        参数:
        name - 指定的滑块名称。
        返回:
        添加成功的滑块对象。
      • getSlider

        public Slider getSlider(String name)
        获取指定的滑块对象。
        参数:
        name - 指定的滑块名称。
        返回:
        滑块对象。
      • removeSlider

        public boolean removeSlider(String name)
        移除指定的滑块对象。
        参数:
        name - 指定的滑块名称。
        返回:
        一个布尔值,表示移除是否成功。
      • getSliderCount

        public int getSliderCount()
        获取场景中滑块对象的个数。
        返回:
        滑块对象的个数。
      • getHeight

        public double getHeight(double longitude,
                                double latitude)
        获取场景中地面和模型上指定点的海拔高度。
        参数:
        longitude - 指定点的经度。
        latitude - 指定点的纬度。
        返回:
        指定点的海拔高度。
      • getHeight

        public double getHeight(double longitude,
                                double latitude,
                                boolean trackingLayerHeightAvailable)
        获取场景中地面和模型上指定点的海拔高度,设置跟踪图层是否参与拾取高度。
        参数:
        longitude - 指定点的经度。
        latitude - 指定点的纬度。
        trackingLayerHeightAvailable - 指定跟踪图层是否参与拾取高度。
        返回:
        指定点的海拔高度。
      • getBrightness

        public float getBrightness()
        获取场景的亮度。
        返回:
        场景的亮度。
      • setBrightness

        public void setBrightness(float value)
        设置场景的亮度。
        参数:
        value - 指定的亮度。
      • getConstrast

        public float getConstrast()
        获取场景的对比度。
        返回:
        场景的对比度。
      • setConstrast

        public void setConstrast(float value)
        设置场景的对比度。
        参数:
        value - 指定的对比度。
      • getGamma

        public float getGamma()
        获取场景的明度。
        返回:
        场景的明度。
      • setGamma

        public void setGamma(float value)
        设置场景的明度。
        参数:
        value - 指定的明度。
      • getHue

        public float getHue()
        获取场景的色相。
        返回:
        场景的色相。
      • setHue

        public void setHue(float value)
        设置场景的色相。
        参数:
        value - 指定的色相。
      • getSaturation

        public float getSaturation()
        获取场景的饱和度。
        返回:
        场景的饱和度。
      • setSaturation

        public void setSaturation(float value)
        设置场景的饱和度。
        参数:
        value - 指定的饱和度。
      • isCreateSkirt

        public boolean isCreateSkirt()
        获取场景是否创建地形裙边。当TIN地形存在裂缝时,创建裙边可避免显示裂缝,能够提升TIN地形效果。
        返回:
        是否创建地形裙边.
      • setCreateSkirt

        public void setCreateSkirt(boolean value)
        设置场景是否创建地形裙边。当TIN地形存在裂缝时,创建裙边可避免显示裂缝,能够提升TIN地形效果。
        参数:
        value - 是否创建地形裙边。
      • isReceiveShadow

        public boolean isReceiveShadow()
        获取场景是否接收阴影。
        返回:
        是否接收阴影。
      • setReceiveShadow

        public void setReceiveShadow(boolean value)
        设置场景是否接收阴影。
        参数:
        value - 是否接收阴影。
      • isZoomFlyPitching

        public boolean isZoomFlyPitching()
        获取场景是否放大至地表时执行俯仰操作。
        返回:
        是否放大至地表时执行俯仰操作。
      • setZoomFlyPitching

        public void setZoomFlyPitching(boolean value)
        设置场景是否放大至地表时执行俯仰操作。
        参数:
        value - 是否放大至地表时执行俯仰操作。
      • getTerrainInfo

        public Scene.TerrainInfo getTerrainInfo()
        获取场景中的地形信息,包括最大值,最小值。
        返回:
        场景中的地形信息。
      • iServerCacheDirectory

        public String iServerCacheDirectory()
        返回服务器缓存文件路径。
        返回:
        服务器缓存文件路径。
      • setServerCacheDirectory

        public void setServerCacheDirectory(String value)
        设置服务器缓存文件路径。
        参数:
        value - 指定的服务器缓存文件路径。
      • outputScenePicture

        public boolean outputScenePicture(String path,
                                          int xResolution,
                                          int yResolution)
        场景是否输出高分辨率图片。
        参数:
        path - 指定的图片存放路径。
        xResolution - 指定的分辨率x值。
        yResolution - 指定的分辨率y值。
        返回:
        false表示出图失败,true表示成功。
      • outputScenePicture

        public boolean outputScenePicture(String path,
                                          int xResolution,
                                          int yResolution,
                                          boolean bHighPerformance)
        场景是否输出高分辨率图片。
        参数:
        path - 指定的图片存放路径。
        xResolution - 指定的分辨率x值。
        yResolution - 指定的分辨率y值。
        bIsHighPerformance - 是否采用高性能模式出图(占用内存显存高,出图快)
        返回:
        false表示出图失败,true表示成功。
      • getViewBounds

        public Rectangle2D getViewBounds()
        返回当前场景的可视范围(Rectangle2D)。
        返回:
        当前场景的可视范围
      • render

        public void render(Geometry geometry,
                           Symbol symbol,
                           GeoStyle3D geoStyle3D,
                           Resources resources)
        用于Java桌面三维符号管理器使用
        参数:
        geometry -
        symbol -
        geoStyle3D -
        resources -
      • setImagePath

        public void setImagePath(String imagePath)
        设置图片路径。
        参数:
        imagePath - 图片路径。
      • getPrjCoordSys

        public PrjCoordSys getPrjCoordSys()
        返回在平面三维模式时的投影坐标系对象。

        目前在平面三维模式下,投影坐标系对象中的投影类型只可以选择地理经纬坐标系和墨卡托投影坐标系。

        返回:
        在平面三维模式时的投影坐标系对象。
      • setPrjCoordSys

        public void setPrjCoordSys(PrjCoordSys tarPrjCoordSys)
        设置在平面三维模式时的投影坐标系对象。

        目前在平面三维模式下,投影坐标系对象中的投影类型只可以选择地理经纬坐标系和墨卡托投影坐标系。

        参数:
        tarPrjCoordSys - 在平面三维模式时的投影坐标系对象。
      • ENUToLonLat

        public static ArrayList<Point3D> ENUToLonLat(ArrayList<Point3D> ptList,
                                                     Point3D lonlat)
        将以经纬度作为插入点的笛卡尔坐标系的模型转成经纬度坐标。
        参数:
        ptList - 待转换的点列表。
        lonlat - 指定插入点坐标。
        返回:
        转换后的经纬度坐标列表。
      • lonLatToENU

        public static ArrayList<Point3D> lonLatToENU(ArrayList<Point3D> ptList,
                                                     Point3D lonlat)
        将经纬度的点转成以经纬度作为插入点的ENU坐标。
        参数:
        ptList - 经纬度的三维点集。
        lonlat - 输入一个经纬度的三维点作为插入点。
        返回:
        ENU坐标的三维点集。
      • isDepthPrecisionOptimization

        public boolean isDepthPrecisionOptimization()
        返回场景是否开启深度优化,支持动态切换。
        返回:
        是否开启深度优化。
      • setDepthPrecisionOptimization

        public void setDepthPrecisionOptimization(boolean isDepthPrecisionOptimization)
        设置场景是否开启深度优化,支持动态切换。
        参数:
        isDepthPrecisionOptimization - 是否开启深度优化。
      • isTransparencyOptimization

        public boolean isTransparencyOptimization()
        返回场景是否开启透明优化,支持模型缓存、模型数据集、跟踪层对象。
        返回:
        是否开启透明优化。
      • setTransparencyOptimization

        public void setTransparencyOptimization(boolean isTransparencyOptimization)
        设置场景是否开启透明优化,支持模型缓存、模型数据集、跟踪层对象。
        参数:
        isTransparencyOptimization - 是否开启透明优化
      • getCameraFOVMode

        public CameraFOVModeType getCameraFOVMode()
        返回视场角模式。
        返回:
        场景视场角模式。
      • setCameraFOVMode

        public void setCameraFOVMode(CameraFOVModeType modeType)
        设置视场角模式。
        参数:
        modeType - 场景视场角模式。
      • setHTCMoveSpeed

        public void setHTCMoveSpeed(double speed)
        设置场景速度倍率。
        参数:
        speed - 场景速度倍率。
      • projectionImagesToXML

        public boolean projectionImagesToXML(String xmlPath)
        视频投放的结果输出到xml文件
        参数:
        xmlPath - xml文件全路径。
        返回:
        一个bool值,返回true表示视频投放的结果输出到xml文件成功,返回false表示失败。
      • getClipRegionDataset

        public Dataset getClipRegionDataset()
        返回裁剪数据集。
        返回:
        被裁剪的数据集。
      • setClipRegionDataset

        public void setClipRegionDataset(Dataset dataset)
        设置裁剪数据集。
        参数:
        dataset - 被裁剪的数据集。
      • addTokenInfo

        public void addTokenInfo(String token)
        添加token信息。
        参数:
        token - token值。
      • addTokenInfo

        public void addTokenInfo(String token,
                                 String url)
        添加token信息。
        参数:
        token - token值。
        url - url地址。
      • addTokenInfo

        public void addTokenInfo(String token,
                                 String url,
                                 CredentialType credentialType)
        添加token信息。
        参数:
        token - token值。
        url - url地址。
        credentialType - 凭证类型。
      • getQuery3D

        public Query3D getQuery3D()
        返回空间查询对象。
        返回:
        三维空间查询。
      • ENUToLonLat

        public static ArrayList<Point3D> ENUToLonLat(ArrayList<Point3D> ptList,
                                                     Point3D lonlat,
                                                     SceneType sceneType)
        将以经纬度作为插入点的笛卡尔坐标系的模型转成经纬度坐标,在指定场景的球体类型上加载。
        参数:
        ptList - 待转换的点列表。
        lonlat - 指定插入点坐标。
        sceneType - 球体类型,包含圆球和椭球。
        返回:
        转换后的经纬度坐标列表。
      • lonLatToENU

        public static ArrayList<Point3D> lonLatToENU(ArrayList<Point3D> ptList,
                                                     Point3D lonlat,
                                                     SceneType sceneType)
        将经纬度的点转成以经纬度作为插入点的ENU坐标,在椭球上加载。
        参数:
        ptList - 经纬度的三维点集。
        lonlat - 输入一个经纬度的三维点作为插入点。
        sceneType - 球体类型,包含圆球和椭球。
        返回:
        ENU坐标的三维点集。
      • getENUTransformMatrix

        public static Matrix getENUTransformMatrix(Point3D point)
        返回插入点经纬度矩阵。
        参数:
        point - 椭球插入点的经纬度。
        返回:
        插入点的经纬度矩阵。
      • cartesianToGeographical

        public static Point3D cartesianToGeographical(Point3D point,
                                                      SceneType sceneType)
        将指定场景类型的地理坐标转成笛卡尔坐标。
        参数:
        point - 经纬度坐标
        sceneType - 球体类型,包含圆球(GLOBE)和椭球(ELLIPSOIDWGS84)。
        返回:
        笛卡尔坐标
      • geographicalToCartesian

        public static Point3D geographicalToCartesian(Point3D point,
                                                      SceneType sceneType)
        将笛卡尔坐标转成指定场景类型的地理坐标。
        参数:
        point - 待转换的笛卡尔坐标
        sceneType - 球体类型,包含圆球(GLOBE)和椭球(ELLIPSOIDWGS84)。
        返回:
        地理坐标
      • getSkirtHeight

        public double getSkirtHeight()
        返回IN地形裙边高度,单位为米。
        返回:
        IN地形裙边高度。
        抛出:
        IllegalStateException - 当前对象已被释放。
        从以下版本开始:
        11.2.0。
      • setSkirtHeight

        public void setSkirtHeight(double skirtHeight)
        设置TIN地形裙边高度,单位为米。
        参数:
        skirtHeight - TIN地形裙边高度。
        抛出:
        IllegalStateException - 当前对象已被释放。
        从以下版本开始:
        11.2.0。
      • getSceneOverlapDisplayedOptions

        public SceneOverlapDisplayedOptions getSceneOverlapDisplayedOptions()
        返回场景压盖参数。获取压盖重叠间距,单位为像素;图标是否随文字显隐等设置。
        返回:
        压盖参数。
        抛出:
        IllegalStateException - 当前对象已被释放。
        从以下版本开始:
        11.2.0。
      • setSceneOverlapDisplayedOptions

        public void setSceneOverlapDisplayedOptions(SceneOverlapDisplayedOptions options)
        设置场景压盖参数。支持设置压盖重叠间距,单位为像素;图标是否随文字显隐等设置。
        参数:
        options - 压盖参数。
        抛出:
        IllegalStateException - 当前对象已被释放。
        从以下版本开始:
        11.2.0。
      • getWalkMode

        public WalkingMode getWalkMode()
        返回场景漫游时的行走模式。
        返回:
        场景漫游时的行走模式。
        抛出:
        IllegalStateException - 当前对象已被释放。
        从以下版本开始:
        11.2.0。
      • setWalkMode

        public void setWalkMode(WalkingMode walkMode)
        设置场景漫游时的行走模式。
        参数:
        walkMode - 场景漫游行走模式。
        抛出:
        IllegalStateException - 当前对象已被释放。
        从以下版本开始:
        11.2.0。
      • getCollisionDetection

        public boolean getCollisionDetection()
        返回场景是否开启碰撞检测。
        返回:
        是否开启碰撞检测。返回true,表示开启碰撞检测,返回false;表示不开启碰撞检测。
        抛出:
        IllegalStateException - 当前对象已被释放。
        从以下版本开始:
        11.2.0。
      • setCollisionDetection

        public void setCollisionDetection(boolean value)
        设置场景是否开启碰撞检测。
        参数:
        value - 是否开启碰撞检测。
        抛出:
        IllegalStateException - 当前对象已被释放。
        从以下版本开始:
        11.2.0。
      • getCollisionDistanceThreshold

        public double getCollisionDistanceThreshold()
        返回场景碰撞检测距离。
        返回:
        碰撞检测距离。
        抛出:
        IllegalStateException - 当前对象已被释放。
        从以下版本开始:
        11.2.0。
      • setCollisionDistanceThreshold

        public void setCollisionDistanceThreshold(double value)
        设置场景碰撞检测距离。
        参数:
        value - 碰撞检测距离。
        抛出:
        IllegalStateException - 当前对象已被释放。
        从以下版本开始:
        11.2.0。
      • getGraphics3DType

        public Graphics3DType getGraphics3DType()
        返回显示引擎类型。
        返回:
        显示引擎类型。
      • getShadowDarkness

        public float getShadowDarkness()
        返回场景阴影浓度。
        返回:
        场景阴影浓度。
        抛出:
        IllegalStateException - 当前对象已被释放。
        从以下版本开始:
        11.2.0。
      • setShadowDarkness

        public void setShadowDarkness(float shadowDarkness)
        设置场景阴影浓度。
        参数:
        shadowDarkness - 场景阴影浓度。
        抛出:
        IllegalStateException - 当前对象已被释放。
        从以下版本开始:
        11.2.0。
      • getShadowDistance

        public double getShadowDistance()
        返回场景阴影可见距离。
        返回:
        场景阴影可见距离。
        抛出:
        IllegalStateException - 当前对象已被释放。
        从以下版本开始:
        11.2.0。
      • setShadowDistance

        public void setShadowDistance(double shadowDistance)
        设置场景阴影可见距离。
        参数:
        shadowDistance - 阴影可见距离。
        抛出:
        IllegalStateException - 当前对象已被释放。
        从以下版本开始:
        11.2.0。
      • getSunLightCascadeShadowMapLamda

        public float getSunLightCascadeShadowMapLamda()
        返回场景主光源的级联阴影的分割点lamda值。
        范围是0-1,默认值是0.5。0表示按等距离分割级联阴影(有利于较远距离的阴影清晰度);1表示指数分割级联阴影(有利于非常近的阴影清晰度)。介于两者之间为这两种分割方式的混合。
        返回:
        场景主光源的级联阴影的分割点lamda值。
        抛出:
        IllegalStateException - 当前对象已被释放。
        从以下版本开始:
        11.2.0。
      • setSunLightCascadeShadowMapLamda

        public void setSunLightCascadeShadowMapLamda(float sunLightCascadeShadowMapLamda)
        设置场景主光源的级联阴影的分割点lamda值。
        参数:
        sunLightCascadeShadowMapLamda - 场景主光源的级联阴影的分割点lamda值。
        抛出:
        IllegalStateException - 当前对象已被释放。
        从以下版本开始:
        11.2.0。
      • getSunLightShadowSharpness

        public float getSunLightShadowSharpness()
        返回主光源产生的阴影边缘的锐化程度。
        范围是0-1,0表示不进行锐化,1表示最大程度锐化。锐化会提高边界清晰度,但会降低柔和感并有微弱锯齿。默认值为0。
        返回:
        主光源产生的阴影边缘的锐化程度。
        抛出:
        IllegalStateException - 当前对象已被释放。
        从以下版本开始:
        11.2.0。
      • setSunLightShadowSharpness

        public void setSunLightShadowSharpness(float mainLightShadowSharpness)
        设置主光源产生的阴影边缘的锐化程度。
        参数:
        mainLightShadowSharpness - 主光源产生的阴影边缘的锐化程度。
        抛出:
        IllegalStateException - 当前对象已被释放。
        从以下版本开始:
        11.2.0。
      • isSunLightCameraTrackingEnabled

        public boolean isSunLightCameraTrackingEnabled()
        返回场景中模拟太阳光源使用时间的时区是否随着相机位置改变而相应修改。
        默认值为true,表示当相机漫游至全球任何位置时,都采用太阳轨迹轴上设置的时间,转换为相机位置当地时间,来模拟太阳光照。
        返回:
        场景中模拟太阳光源使用时间的时区是否随着相机位置改变而相应修改。
        抛出:
        IllegalStateException - 当前对象已被释放。
        从以下版本开始:
        11.2.0。
      • setSunLightCameraTrackingEnabled

        public void setSunLightCameraTrackingEnabled(boolean sunLightCameraTrackingEnabled)
        设置场景中模拟太阳光源使用时间的时区是否随着相机位置改变而相应修改。
        参数:
        sunLightCameraTrackingEnabled - 场景中模拟太阳光源使用时间的时区是否随着相机位置改变而相应修改。
        抛出:
        IllegalStateException - 当前对象已被释放。
        从以下版本开始:
        11.2.0。
      • getSunLightColor

        public Color getSunLightColor()
        返回场景太阳光颜色。
        返回:
        太阳光颜色。
        抛出:
        IllegalStateException - 当前对象已被释放。
        从以下版本开始:
        11.2.0。
      • setSunLightColor

        public void setSunLightColor(Color value)
        设置场景太阳光颜色。
        参数:
        value - 太阳光颜色。
        抛出:
        IllegalStateException - 当前对象已被释放。
        从以下版本开始:
        11.2.0。
      • getSunLightIntensity

        public double getSunLightIntensity()
        返回场景太阳光强度。
        返回:
        太阳光强度。
        抛出:
        IllegalStateException - 当前对象已被释放。
        从以下版本开始:
        11.2.0。
      • setSunLightIntensity

        public void setSunLightIntensity(double value)
        设置场景太阳光强度。
        参数:
        value - 太阳光强度。
        抛出:
        IllegalStateException - 当前对象已被释放。
        从以下版本开始:
        11.2.0。
      • getShadowDepthBias

        public float getShadowDepthBias()
        返回阴影深度偏移。
        返回:
        阴影深度偏移。
        抛出:
        IllegalStateException - 当前对象已被释放。
        从以下版本开始:
        11.2.0。
      • setShadowDepthBias

        public void setShadowDepthBias(float depthBias)
        设置阴影深度偏移。
        参数:
        depthBias - 阴影深度偏移。
        抛出:
        IllegalStateException - 当前对象已被释放。
        从以下版本开始:
        11.2.0。
      • isHDREnabled

        public boolean isHDREnabled()
        返回是否开启HDR。
        返回:
        是否开启HDR。返回true表示开启HDR;返回false表示不开启HDR。
        抛出:
        IllegalStateException - 当前对象已被释放。
        从以下版本开始:
        11.3.0。
      • setHDREnabled

        public void setHDREnabled(boolean value)
        设置是否开启HDR。
        默认值为false,表示默认不开启HDR。
        参数:
        value - 是否开启HDR。
        抛出:
        IllegalStateException - 当前对象已被释放。
        从以下版本开始:
        11.3.0。

Copyright © 2021–2024 SuperMap. All rights reserved.