类 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(sceneObject); fog.setEnable(true); 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); }
-
-
嵌套类概要
嵌套类 限定符和类型 类和说明 classScene.TerrainInfo场景中的地形信息类。
-
方法概要
所有方法 静态方法 实例方法 具体方法 已过时的方法 限定符和类型 方法和说明 voidaddFlownListener(FlownListener l)添加一个用于接收飞行结束事件(FlownEvent)的监听器。voidaddSceneClosedListener(SceneClosedListener l)添加一个用于接收三维场景关闭事件(SceneClosedEvent)的监听器。voidaddSceneOpenedListener(SceneOpenedListener l)添加一个用于接收三维场景打开事件(SceneOpenedEvent)的监听器。SlideraddSlider(String name)添加指定的滑块对象。SplitteraddSplitter(String name)添加分隔条对象。voidaddTokenInfo(String token)添加token信息。voidaddTokenInfo(String token, String url)添加token信息。voidaddTokenInfo(String token, String url, CredentialType credentialType)添加token信息。static Point3DcartesianToGeographical(Point3D point, SceneType sceneType)将指定场景类型的地理坐标转成笛卡尔坐标。static Rectangle2DceilBounds(Rectangle2D bounds, int level)根据指定层数,计算指定地理范围(bounds)所对应行列瓦片图片的外边框,该边框与三维瓦片图片分块划分的边线一致。voidclose()关闭三维场景。doublecomputeSphericalArea(Point2Ds points)计算由指定的点集合对象构成的多边形的球面面积。doublecomputeSphericalDistance(Point2D point1, Point2D point2)计算指定两点间的球面距离。voiddispose()释放该对象所占用的资源。voidensureVisible(Layer3D layer3d)根据合适的图层观察尺度来显示场景。voidensureVisible(Rectangle2D visibleBounds)根据给定的经纬度范围显示相应区域的场景。voidensureVisible(Rectangle2D visibleBounds, int milliseconds)根据指定的经纬度范围显示场景。voidensureVisible(Rectangle2D visibleBounds, int milliseconds, double altitude)根据给定的经纬度范围显示相应区域的场景,支持指定相机高度。static ArrayList<Point3D>ENUToLonLat(ArrayList<Point3D> ptList, Point3D lonlat)将以经纬度作为插入点的笛卡尔坐标系的模型转成经纬度坐标。static ArrayList<Point3D>ENUToLonLat(ArrayList<Point3D> ptList, Point3D lonlat, SceneType sceneType)将以经纬度作为插入点的笛卡尔坐标系的模型转成经纬度坐标,在指定场景的球体类型上加载。Selection3D[]findSelection(boolean hasObjectSelected)返回当前三维场景的选择集。voidfly(Camera camera)根据指定的目标相机对象进行飞行。voidfly(Camera camera, boolean isDirect)已过时。voidfly(Camera camera, int milliseconds)将相机对象按照指定的时间飞行到指定的目的地。voidfly(Camera camera, int milliseconds, boolean isDirect)已过时。voidfly(Geometry targetObject, FlyingMode flyingMode)已过时。voidfly(Geometry targetObject, int milliseconds)已过时。voidfly(LookAt lookAt)根据指定的目标相机对象进行飞行。voidfly(LookAt lookAt, int milliseconds)根据指定的目标相机对象和飞行时间进行飞行。voidflyCircle(Geometry geometry, double speedRatio)围绕指定地点旋转飞行模式,飞行过程中可以控制飞行的速度。voidflyCircle(Geometry geometry, double speedRatio, boolean isCycle)围绕指定地点旋转飞行(FlyingCircle模式),可以控制飞行速度以及设置是否循环旋转voidflyPlay(Geometry line, double speedRatio, double distance)已过时。booleanfromXML(String xml)通过 XML 数据创建三维场景对象。static Point3DgeographicalToCartesian(Point3D point, SceneType sceneType)将笛卡尔坐标转成指定场景类型的地理坐标。doublegetAltitude(double longitude, double latitude)返回地面上某点的海拔高度。AtmospheregetAtmosphere()返回大气环境对象。Point3DgetAutoLockOffset()返回相机相对于锁定对象的偏移量。BloomgetBloom()获取泛光对象。floatgetBrightness()获取场景的亮度。CameragetCamera()返回当前场景的相机对象。doublegetCameraFOV()返回场景相机的视角,单位为度,范围为0-180度。CameraFOVModeTypegetCameraFOVMode()返回视场角模式。DatasetgetClipRegionDataset()返回裁剪数据集。booleangetCollisionDetection()返回场景是否开启碰撞检测。doublegetCollisionDistanceThreshold()返回场景碰撞检测距离。floatgetConstrast()获取场景的对比度。static MatrixgetENUTransformMatrix(Point3D point)返回插入点经纬度矩阵。EnvironmentLightgetEnvironmentLight()获取环境光贴图。floatgetExposure()获取场景的曝光度。CameragetFirstPersonCamera()返回第一人称相机参数,区别于getCamera()方法。FlyManagergetFlyManager()返回三维场景的飞行管理对象。FoggetFog()已过时。doublegetFogVisibleAltitude()已过时。doublegetFPS()返回当前场景的帧率,即帧/秒。floatgetGamma()获取场景的明度。GlobalImagegetGlobalImage()返回 GlobalImage 对象。Graphics3DTypegetGraphics3DType()返回显示引擎类型。doublegetHeight(double longitude, double latitude)获取场景中地面和模型上指定点的海拔高度。doublegetHeight(double longitude, double latitude, boolean trackingLayerHeightAvailable)获取场景中地面和模型上指定点的海拔高度,设置跟踪图层是否参与拾取高度。floatgetHue()获取场景的色相。StringgetIServerCacheDirectory()返回iServer服务瓦片路径。LatLonGridgetLatLonGrid()返回经纬网对象。Layer3DsgetLayers()返回 3D 图层集合对象。LookAtgetLookAt()获取当前场景的相机对象。doublegetMaxCameraDistance()返回场景相机的最大距离,单位为米。doublegetMinCameraDistance()返回场景相机的最小距离,单位为米。ModelingObjectCollectiongetModelingObjectCollection()返回建模对象的集合。MultiViewportModegetMultiViewportMode()设置当前场景的多视口模式类型StringgetName()返回当前三维场景的名称。OceangetOcean()返回海洋对象。OceanEffectgetOceanEffect()获取海洋特效。ParallaxModegetParallaxMode()返回立体显示模式的视差模式。PrjCoordSysgetPrjCoordSys()返回在平面三维模式时的投影坐标系对象。Query3DgetQuery3D()返回空间查询对象。ClippingTypegetRegionClipType()获取裁剪类型。floatgetSaturation()获取场景的饱和度。SceneOverlapDisplayedOptionsgetSceneOverlapDisplayedOptions()返回场景压盖参数。SceneTypegetSceneType()返回场景类型。ScreenLayer3DgetScreenLayer()返回屏幕图层。floatgetShadowDarkness()已过时。floatgetShadowDepthBias()已过时。doublegetShadowDistance()已过时。doublegetShadowVisibleDistance()已过时。doublegetSkirtHeight()返回IN地形裙边高度,单位为米。SkygetSky()返回天空三维对象。SlidergetSlider(String name)获取指定的滑块对象。intgetSliderCount()获取场景中滑块对象的个数。SplittergetSplitter(String name)获取指定的分隔条对象。intgetSplitterCount()获取当前场景中分隔条的个数。SSAOgetSSAO()获取SSAO对象。doublegetStereoEyeAngle()返回立体显示模式时两摄像机的交叉角度,单位为度。doublegetStereoEyeSeparation()返回立体显示模式时两摄像机的距离,单位为米。StereoModegetStereoMode()返回立体显示的模式。SungetSun()返回太阳对象。floatgetSunLightCascadeShadowMapLamda()已过时。ColorgetSunLightColor()已过时。doublegetSunLightIntensity()已过时。floatgetSunLightShadowSharpness()已过时。doublegetTerrainExaggeration()返回地形所夸大的比例。Scene.TerrainInfogetTerrainInfo()获取场景中的地形信息,包括最大值,最小值。TerrainLayersgetTerrainLayers()返回三维场景中的地形图层集合。TimeControllergetTimeController()返回时间控制器对象。TimergetTimer()返回用于控制场景渲染的定时器,用户可以用来模拟场景飞行以及修改更新的速度,目前是20毫秒执行一次刷新。TrackGeometrygetTrackGeometry(int action)返回绘制跟踪类,支持对当前三维场景中绘制的几何对象(线、面)进行操作。TrackingLayer3DgetTrackingLayer()返回 3D 跟踪图层对象。UndergroundgetUnderground()返回 Underground 对象。Rectangle2DgetViewBounds()返回当前场景的可视范围(Rectangle2D)。VolumetricCloudsgetVolumetricClouds()返回体积云对象。WalkingModegetWalkMode()返回场景漫游时的行走模式。WorkspacegetWorkspace()返回三维场景所关联的工作空间。PointglobeToPixel(Point3D point)将三维点对象转换成屏幕点对象。booleanisCreateSkirt()获取场景是否创建地形裙边。booleanisCrossVisible()返回是否显示三维场景窗口中心位置标记。booleanisDepthPrecisionOptimization()返回场景是否开启深度优化,支持动态切换。StringiServerCacheDirectory()返回服务器瓦片文件路径。booleanisFirstPersonView()返回当前场景是否被设置为第一人称操作模式。booleanisFullScreen()已过时。booleanisHDREnabled()返回场景是否开启HDR。booleanisOverlapDisplayed()返回压盖时是否显示。booleanisReceiveShadow()已过时。booleanisScaleLegendVisible()返回比例尺是否可见。booleanisStereoEnabled()返回是否开启立体显示功能。booleanisStereoModeSupported(StereoMode mode)返回当前系统是否支持所传入的立体显示模式。booleanisSunLightCameraTrackingEnabled()已过时。booleanisTransparencyOptimization()返回场景是否开启透明优化,支持模型瓦片、模型数据集、跟踪层对象。booleanisZoomFlyPitching()获取场景是否放大至地表时执行俯仰操作。static ArrayList<Point3D>lonLatToENU(ArrayList<Point3D> ptList, Point3D lonlat)将经纬度的点转成以经纬度作为插入点的ENU坐标。static ArrayList<Point3D>lonLatToENU(ArrayList<Point3D> ptList, Point3D lonlat, SceneType sceneType)将经纬度的点转成以经纬度作为插入点的ENU坐标,在椭球上加载。booleanopen(String name)打开指定名称的三维场景。booleanopen(String iserverUrl, String strSceneName)通过iServer数据服务打开三维场景。booleanoutputScenePicture(String path, int xResolution, int yResolution)已过时。booleanoutputScenePicture(String path, int xResolution, int yResolution, boolean bHighPerformance)场景是否输出高分辨率图片。BufferedImageoutputSceneToBitmap()将三维场景输出为内存对象。voidpan(double offsetLongitude, double offsetLatitude)根据给定的经向平移距离和纬向平移距离,平移三维场景。voidpitch(double angle)根据给定的角度值,对三维场景进行倾斜,从而从不同角度观察三维场景中的对象。Point3DpixelToGlobe(Point point)将屏幕点对象转换成三维点对象,该三维点对象包含了经纬度和海拔高度信息。Point3DpixelToGlobe(Point point, PixelToGlobeMode mode)将屏幕点对象转换成三维点对象。booleanprojectionImagesToXML(String xmlPath)视频投放结果输出到xml文件static Point3DpseudoCartesianToSpherical(Point3D point)将伪直角坐标转换为经纬度坐标。Scene3DRayHitResultrayHit(Point screenPoint)射线求交 射线求交目前只支持美化的模型缓存数据进行求交voidrefresh()刷新三维场景。voidremoveFlownListener(FlownListener l)移除一个用于接收飞行结束事件(FlownEvent)的监听器。ModelingObjectCollectionremoveModelingObjectCollection()移除建模对象的集合。voidremoveSceneClosedListener(SceneClosedListener l)移除一个用于接收三维场景关闭事件(SceneClosedEvent)的监听器。voidremoveSceneOpenedListener(SceneOpenedListener l)移除一个用于接收三维场景打开事件(SceneOpenedEvent)的监听器。booleanremoveSlider(String name)移除指定的滑块对象。booleanremoveSplitter(String name)移除指定的分隔条对象。voidrender(Geometry geometry, Symbol symbol, GeoStyle3D geoStyle3D, Resources resources)用于Java桌面三维符号管理器使用voidroll(double angle)将三维场景绕场景中心进行一定角度的旋转。booleanroll(Point2D center, double angle)将三维场景绕某个中心点旋转。voidrollEye(double angle)将三维场景绕视点进行一定角度的旋转。voidsetAutoLockOffset(Point3D value)设置相机相对于锁定对象的偏移量 通过调用该方法,可以在锁定目标对象时,改变相机对象相对于锁定对象的x轴、y轴、z轴偏移量,该偏移量暂时只适用于z轴。voidsetAutoLockTarget(GeoModel value)设置被锁定对象 当场景不断变化时,通过锁定跟踪对象,可使相机相对于被锁定对象的相对位置保持不变。voidsetBrightness(float value)设置场景的亮度。voidsetCamera(Camera camera)设置当前场景的相机对象。voidsetCameraFOV(double value)设置场景相机的视角,单位为度,范围为 0-180 度。voidsetCameraFOVMode(CameraFOVModeType modeType)设置视场角模式。voidsetClipRegionDataset(Dataset dataset)设置裁剪数据集。voidsetClipRegionDataset(Dataset dataset, ClippingType clippingType)设置裁剪数据集。voidsetCollisionDetection(boolean value)设置场景是否开启碰撞检测。voidsetCollisionDistanceThreshold(double value)设置场景碰撞检测距离。voidsetConstrast(float value)设置场景的对比度。voidsetCreateSkirt(boolean value)设置场景是否创建地形裙边。voidsetCrossVisible(boolean value)设置是否显示三维场景窗口中心位置标记。voidsetDepthPrecisionOptimization(boolean isDepthPrecisionOptimization)设置场景是否开启深度优化,支持动态切换。voidsetExposure(float value)设置场景的曝光度。voidsetFirstPersonCamera(Camera camera)设置第一人称相机参数,区别于setCamera()方法。voidsetFirstPersonView(boolean value)设置当前场景是否被设置为第一人称操作模式。voidsetFog(Fog fog)已过时。voidsetFogVisibleAltitude(double value)已过时。voidsetFullScreen(boolean value)已过时。voidsetGamma(float value)设置场景的明度。voidsetHDREnabled(boolean value)设置场景是否开启HDR。voidsetHTCMoveSpeed(double speed)设置场景速度倍率。voidsetHue(float value)设置场景的色相。voidsetImagePath(String imagePath)设置图片路径。voidsetIServerCacheDirectory(String value)设置 iServer 服务瓦片路径。voidsetLookAt(LookAt lookAt)设置当前场景的相机对象。voidsetMaxCameraDistance(double value)设置场景相机的最大距离,单位为米。voidsetMinCameraDistance(double value)设置场景相机的最小距离,单位为米。voidsetModelingObjectCollection(ModelingObjectCollection modelingObjectCollection)设置建模对象的集合.voidsetMultiViewportMode(MultiViewportMode mode)设置当前场景的多视口模式类型voidsetName(String value)设置当前三维场景的名称。voidsetOverlapDisplayed(boolean value)设置压盖时是否显示。voidsetParallaxMode(ParallaxMode value)设置立体显示模式的视差模式。voidsetPrjCoordSys(PrjCoordSys tarPrjCoordSys)设置在平面三维模式时的投影坐标系对象。voidsetReceiveShadow(boolean value)已过时。voidsetRegionClipType(ClippingType clippingType)设置裁剪类型。voidsetSaturation(float value)设置场景的饱和度。voidsetScaleLegendVisible(boolean value)设置比例尺是否可见。voidsetSceneOverlapDisplayedOptions(SceneOverlapDisplayedOptions options)设置场景压盖参数。voidsetSceneType(SceneType value)设置三维场景的类型。voidsetServerCacheDirectory(String value)设置服务器瓦片文件路径。voidsetShadowDarkness(float shadowDarkness)已过时。voidsetShadowDepthBias(float depthBias)已过时。voidsetShadowDistance(double shadowDistance)已过时。voidsetShadowVisibleDistance(double value)已过时。voidsetSkirtHeight(double skirtHeight)设置TIN地形裙边高度,单位为米。voidsetStereoEnabled(boolean value)设置是否开启立体显示功能。voidsetStereoEyeAngle(double value)设置立体显示模式时两摄像机的交叉角度,单位为度。voidsetStereoEyeSeparation(double value)设置立体显示模式时两摄像机的距离,单位为米。voidsetStereoMode(StereoMode value)设置立体显示的模式。voidsetSunLightCameraTrackingEnabled(boolean sunLightCameraTrackingEnabled)已过时。voidsetSunLightCascadeShadowMapLamda(float sunLightCascadeShadowMapLamda)已过时。voidsetSunLightColor(Color value)已过时。voidsetSunLightIntensity(double value)已过时。voidsetSunLightShadowSharpness(float mainLightShadowSharpness)已过时。voidsetTerrainExaggeration(double value)设置地形所夸大的比例。voidsetTransparencyOptimization(boolean isTransparencyOptimization)设置场景是否开启透明优化,支持模型瓦片、模型数据集、跟踪层对象。voidsetWalkMode(WalkingMode walkMode)设置场景漫游时的行走模式。voidsetWorkspace(Workspace workspace)设置三维场景所关联的工作空间。voidsetZoomFlyPitching(boolean value)设置场景是否放大至地表时执行俯仰操作。static Point3DsphericalToCartesian(Point3D point)将经纬度坐标转换为球面笛卡尔坐标。static Point3DsphericalToPseudoCartesian(Point3D point)将经纬度坐标转换为伪直角坐标。voidstopFly()终止飞行操作,执行完后场景会处于静止状态。static Rectangle2DtoBounds(int level, int columnIndex, int rowIndex)根据瓦片层数,列索引和行索引返回对应的地理范围。StringtoXML()返回三维场景的的 XML 形式的描述。voidviewEntire()全幅显示三维场景。voidzoom(double ratio)根据给定的缩放比例,对三维场景进行缩放操作。
-
-
-
构造器详细资料
-
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()
返回大气环境对象。- 返回:
- 大气环境对象。
-
getVolumetricClouds
public VolumetricClouds getVolumetricClouds()
返回体积云对象。- 返回:
- 体积云对象。
- 从以下版本开始:
- 12.0.0。
-
getOcean
public Ocean getOcean()
返回海洋对象。- 返回:
- 海洋对象。
-
getSun
public Sun getSun()
返回太阳对象。通过设置场景中的 Sun 等对象,用来实现对三维场景效果的渲染。- 返回:
- 太阳对象。
-
getTimeController
public TimeController getTimeController()
返回时间控制器对象。用来实现对三维场景时间的控制。- 返回:
- 时间控制器对象。
- 从以下版本开始:
- 12.0.0。
-
getSky
public Sky getSky()
返回天空三维对象。- 返回:
- 天空
-
getOceanEffect
public OceanEffect getOceanEffect()
获取海洋特效。- 返回:
- 海洋特效。
-
getEnvironmentLight
public EnvironmentLight getEnvironmentLight()
获取环境光贴图。- 返回:
- 环境光贴图
-
getUnderground
public Underground getUnderground()
返回 Underground 对象。- 返回:
- Underground 对象。
-
getGlobalImage
public GlobalImage getGlobalImage()
返回 GlobalImage 对象。- 返回:
- GlobalImage 对象。
-
getSSAO
public SSAO getSSAO()
获取SSAO对象。- 返回:
- SSAO对象。
只支持渲染引擎V2上使用。
- 从以下版本开始:
- 12.0.0。
-
getBloom
public Bloom getBloom()
获取泛光对象。- 返回:
- 泛光对象。
-
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
@Deprecated public Fog getFog()
已过时。
-
setFog
@Deprecated public void setFog(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
@Deprecated public void setFogVisibleAltitude(double value)
已过时。
-
getFogVisibleAltitude
@Deprecated public double getFogVisibleAltitude()
已过时。
-
fly
@Deprecated public void fly(Geometry targetObject, FlyingMode flyingMode)
已过时。
-
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(Geometry targetObject, int milliseconds)
已过时。
-
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类的示例。
-
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
@Deprecated public double getShadowVisibleDistance()
已过时。
-
setShadowVisibleDistance
@Deprecated public void setShadowVisibleDistance(double 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- 指定的相机对象。
-
removeSplitter
public boolean removeSplitter(String name)
移除指定的分隔条对象。- 参数:
name- 指定的分隔条名称。- 返回:
- 布尔值,表示移除是否成功。
-
getSplitterCount
public int getSplitterCount()
获取当前场景中分隔条的个数。- 返回:
- 分隔条个数。
-
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- 指定的饱和度。
-
getExposure
public float getExposure()
获取场景的曝光度。- 返回:
- 场景的曝光度。范围[0.0-5.0],默认值1.0
-
setExposure
public void setExposure(float value)
设置场景的曝光度。- 参数:
value- 指定的曝光度,范围[0.0-5.0],默认值1.0
-
isCreateSkirt
public boolean isCreateSkirt()
获取场景是否创建地形裙边。当TIN地形存在裂缝时,创建裙边可避免显示裂缝,能够提升TIN地形效果。- 返回:
- 是否创建地形裙边.
-
setCreateSkirt
public void setCreateSkirt(boolean value)
设置场景是否创建地形裙边。当TIN地形存在裂缝时,创建裙边可避免显示裂缝,能够提升TIN地形效果。- 参数:
value- 是否创建地形裙边。
-
isReceiveShadow
@Deprecated public boolean isReceiveShadow()
已过时。
-
setReceiveShadow
@Deprecated public void setReceiveShadow(boolean 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
@Deprecated public boolean outputScenePicture(String path, int xResolution, int yResolution)
已过时。
-
outputScenePicture
public boolean outputScenePicture(String path, int xResolution, int yResolution, boolean bHighPerformance)
场景是否输出高分辨率图片。支持采用高性能模式出图,提升出图效率。
- 参数:
path- 图片存储路径。xResolution- 分辨率x值。yResolution- 分辨率y值。bHighPerformance- 是否采用高性能模式出图(占用内存显存高,出图快)- 返回:
- 场景是否输出高分辨率图片。返回true表示输出图片成功,返回false表示输出图片失败。
- 抛出:
IllegalStateException- 当前对象已被释放。- 从以下版本开始:
- 11.3.0。
-
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- 被裁剪的数据集。
-
setClipRegionDataset
public void setClipRegionDataset(Dataset dataset, ClippingType clippingType)
设置裁剪数据集。- 参数:
dataset- 被裁剪的数据集。clippingType- 裁剪类型。- 从以下版本开始:
- 12.0.0。
-
setRegionClipType
public void setRegionClipType(ClippingType clippingType)
设置裁剪类型。- 参数:
clippingType- 裁剪类型,默认保留内部。- 从以下版本开始:
- 12.0.0。
-
getRegionClipType
public ClippingType getRegionClipType()
获取裁剪类型。- 返回:
- 裁剪类型。
- 从以下版本开始:
- 12.0.0。
-
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
@Deprecated public float getShadowDarkness()
已过时。
-
setShadowDarkness
@Deprecated public void setShadowDarkness(float shadowDarkness)
已过时。
-
getShadowDistance
@Deprecated public double getShadowDistance()
已过时。
-
setShadowDistance
@Deprecated public void setShadowDistance(double shadowDistance)
已过时。
-
getSunLightCascadeShadowMapLamda
@Deprecated public float getSunLightCascadeShadowMapLamda()
已过时。
-
setSunLightCascadeShadowMapLamda
@Deprecated public void setSunLightCascadeShadowMapLamda(float sunLightCascadeShadowMapLamda)
已过时。
-
getSunLightShadowSharpness
@Deprecated public float getSunLightShadowSharpness()
已过时。
-
setSunLightShadowSharpness
@Deprecated public void setSunLightShadowSharpness(float mainLightShadowSharpness)
已过时。
-
isSunLightCameraTrackingEnabled
@Deprecated public boolean isSunLightCameraTrackingEnabled()
已过时。
-
setSunLightCameraTrackingEnabled
@Deprecated public void setSunLightCameraTrackingEnabled(boolean sunLightCameraTrackingEnabled)
已过时。
-
getSunLightColor
@Deprecated public Color getSunLightColor()
已过时。
-
setSunLightColor
@Deprecated public void setSunLightColor(Color value)
已过时。
-
getSunLightIntensity
@Deprecated public double getSunLightIntensity()
已过时。
-
setSunLightIntensity
@Deprecated public void setSunLightIntensity(double value)
已过时。
-
getShadowDepthBias
@Deprecated public float getShadowDepthBias()
已过时。
-
setShadowDepthBias
@Deprecated public void setShadowDepthBias(float depthBias)
已过时。
-
isHDREnabled
public boolean isHDREnabled()
返回场景是否开启HDR。默认为false,不开启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。
-
rayHit
public Scene3DRayHitResult rayHit(Point screenPoint)
射线求交射线求交目前只支持美化的模型缓存数据进行求交
- 参数:
screenPoint- 屏幕像素坐标
-
-
Copyright © 2021–2025 SuperMap. All rights reserved.