public class Scene
extends java.lang.Object
SuperMap iObjects Java 三维场景的主体是一个模拟地球的三维球体(SuperMap Objects Java 以半径为6378137 米的球体来模拟地球),该球体具有地理参考,球体上的点采用经纬度进行定位,并且可以通过三维场景提供的球体上的经纬网格,方便地浏览;同时,使用全球的遥感影像图作为背景覆盖在球体表面,增强三维球体模拟的逼真性;除此之外,三维场景还模拟了地球所处的环境,包括:宇宙的星空,地球的大气环境,地球表面的雾环境等。三维场景还提供了相机的设置,相机可以用来控制对球体的观测角度、方位和观测范围,从而以不同的视角呈现球体的不同部位。
各种三维数据将通过三维场景填加到三维场景的基本组织架构上,即三维数据会依据地理参考信息,填加到SuperMap Objects Java 提供的球体上。
构造器和说明 |
---|
Scene() |
限定符和类型 | 方法和说明 |
---|---|
void |
close()
关闭当前场景
|
void |
dispose()
释放该对象所占用的资源。
|
void |
ensureVisible(Layer3D layer3d)
根据图层的中心块的经纬度范围显示场景
|
void |
ensureVisible(Rectangle2D visibleBounds)
根据经纬度范围显示场景。
|
void |
fly(LookAt lookAt)
根据指定的目标相机对象进行飞行。
|
void |
fly(LookAt lookAt, int milliseconds, boolean isdrct)
根据指定的目标相机对象和飞行时间进行飞行。
|
void |
flyCircle(Geometry geometry, double speedRatio)
围绕指定地点旋转飞行,飞行过程中可以控制飞行的速度。
|
void |
flyToCamera(Camera camera, int milliseconds, boolean isDirect)
根据指定的目标对象和高度模式进行飞行。
|
void |
flyToCamera(Camera camera, int altitudeMode, int milliseconds)
根据指定的目标对象、高度模式及飞行时间进行飞行。
|
void |
flyToPoint(Point3D point)
飞到指定的三维点位置。
|
void |
flyToPoint(Point3D point, int milliseconds)
根据目标点位置和飞行时间进行飞行。
|
boolean |
getAtmosphereVisible()
获取大气状态的可见性。
|
Camera |
getCamera()
返回当前场景的相机对象。
|
boolean |
getCreateSkirt()
获取是否创建地形裙边。
|
Camera |
getFirstPersonCamera()
返回当前场景的第一人称视角相机参数。
|
FlyManager |
getFlyManager()
返回三维场景所关联的FlyManager 对象。
|
double |
getFPS()
获取当前场景的帧率,即帧/秒。
|
GlobalImage |
getGlobalImage()
返回全球底图对象。
|
Layer3Ds |
getLayers()
返回 3D 图层集合对象。
|
LookAt |
getLookAt()
获取当前场景的相机对象。
|
MultiViewportMode |
getMultiViewportMode()
获取当前场景的多视口模式。
|
java.lang.String |
getName()
获取当前三维场景名称。
|
TerrainLayers |
getTerrainLayers()
返回三维场景中的地形图层集合。
|
TrackingLayer3D |
getTrackingLayer()
返回三维场景中的屏幕图层集合。
|
java.lang.String |
getUrl()
返回三维场景所关联的三维服务url路径。
|
Workspace |
getWorkspace()
返回三维场景所关联的工作空间。
|
Point |
globeToPixel(Point3D point)
将三维点对象转换成屏幕点对象。
|
boolean |
isZoomFlyPitching()
获取场景放大至地表时是否进行俯仰操作。
|
boolean |
open(java.lang.String sceneName)
打开工作空间中指定名称的三维场景。
|
boolean |
open(java.lang.String iserverUrl, java.lang.String sceneName)
打开已经使用iServer发布的三维服务中指定名称的三维场景。
|
boolean |
open(java.lang.String iserverUrl, java.lang.String sceneName, java.lang.String passWord)
打开已经从iServer发布的三维服务中下载的离线三维场景。
|
boolean |
openPrivateSceneWithUrl(java.lang.String onlineprivateURL, java.lang.String sceneName)
在登录SuperMap Online后,通过online数据私有服务打开三维场景。
|
boolean |
openTokenService(java.lang.String iserverUrl, java.lang.String strSceneName, java.lang.String token)
打开带有token令牌加密认证的数据服务 。
|
android.graphics.Bitmap |
outputSceneToBitmap()
将三维场景输出为位图对象。
|
void |
pan(double offsetLongitude, double offsetLatitude)
平移三维场景。
|
Point3D |
pixelToGlobe(Point point)
将屏幕点对象转换成三维点对象,该三维点对象包含了经纬度和海拔高度信息。
|
Point3D |
pixelToGlobe(Point point, PixelToGlobeMode mode)
将屏幕点对象转换成三维点对象。
|
void |
refresh()
刷新三维地图场景。
|
void |
sceneReset()
场景重置。
|
void |
setAtmosphereVisible(boolean atmosphereVisible)
设置大气状态可见性,通过设置大气模拟可增强三维场景真实感。
|
void |
setCamera(Camera camera)
设置当前场景的相机对象。
|
void |
setCreateSkirt(boolean createSkirt)
设置是否创建地形裙边。
|
void |
setFirstPersonCamera(Camera camera)
设置当前场景的第一人称视角相机参数。
|
void |
setLookAt(LookAt lookAt)
设置当前场景的相机对象。
|
void |
setMultiViewportMode(MultiViewportMode multiViewportMode)
设置当前场景的多视口模式类型。
|
void |
SetOverlapDisplayed(boolean value)
设置压盖时是否显示。
|
void |
setPitch(double ratio)
以一定角度倾斜观察三维场景。
|
void |
setRollEye(double ratio)
三维场景绕视点旋转一定角度。
|
void |
setWorkspace(Workspace workspace)
设置三维场景所关联的工作空间。
|
void |
setZoomFlyPitching(boolean zoomFlyPitching)
设置场景放大至地表时是否开启俯仰操作。
|
void |
stopCameraInteria()
停止相机惯性。
|
void |
viewEntire()
全幅显示此场景。
|
void |
zoom(double ratio)
根据给定的缩放比例,对三维地图场景进行缩放操作。
|
void |
flytoVector(Point3D viewerPoint3D,Point3D targetPoint3D,int milliseconds)
定点观察,支持输入起始观察点和目标点,相机飞到观察点。
|
SceneType |
getScenType()
获取场景类型。
|
public Camera getCamera()
public void setCamera(Camera camera)
camera
- 当前场景的相机对象。public TerrainLayers getTerrainLayers()
public TrackingLayer3D getTrackingLayer()
public Workspace getWorkspace()
public void setWorkspace(Workspace workspace)
workspace
- 三维场景所关联的工作空间。public Layer3Ds getLayers()
public void flyToPoint(Point3D point)
point
- 目标点位置。public void flyToPoint(Point3D point, int milliseconds)
point
- 目标点位置。milliseconds
- 指定飞行到指定目标点位置所耗费的时间。单位为毫秒。public void flyToCamera(Camera camera, int milliseconds, boolean isDirect)
当目的地不在当前视野内时,isDirect 为 true 则直接飞过去,为 false 则先拉起再飞过去。
camera
- 指定的目标相机对象。milliseconds
- 指定的飞行时间。isDirect
- 决定是直接飞行过去还是先拉起再飞行过去。public void flyToCamera(Camera camera, int altitudeMode, int milliseconds)
camera
- 指定的目标相机对象。altitudeMode
- 指定的高度模式。milliseconds
- 指定相机飞行到指定目的地所耗费的时间。单位为毫秒。public void dispose()
public void ensureVisible(Layer3D layer3d)
layer3d
- 三维图层对象。public FlyManager getFlyManager()
public void ensureVisible(Rectangle2D visibleBounds)
visibleBounds
- 指定当前场景的可见范围。public java.lang.String getUrl()
public void close()
public boolean open(java.lang.String sceneName)
sceneName
- 场景名称。注意:打开工作空间中指定名称的三维场景需要配置许可。
public boolean open(java.lang.String iserverUrl, java.lang.String sceneName)
iserverUrl
- 三维服务URL地址(如:http://118.186.246.138:8091/iserver/services/realspace-Scene/rest/realspace)。sceneName
- 场景名称。public boolean open(java.lang.String iserverUrl, java.lang.String sceneName, java.lang.String passWord)
iserverUrl
- 三维服务URL地址(如:http://118.186.246.138:8091/iserver/services/realspace-Scene/rest/realspace)。sceneName
- 场景名称。passWord
- 场景密码,默认密码是“supermap”。注意:离线文件的存放位置 位于设备默认存储目录/SuperMap/LocalData/ 文件夹中。
public boolean openTokenService(java.lang.String iserverUrl, java.lang.String strSceneName, java.lang.String token)
iserverUrl
- 三维服务URL地址(如:http://118.186.246.138:8091/iserver/services/realspace-Scene/rest/realspace)。strSceneName
- 场景名称。token
- token令牌。public void viewEntire()
public Point3D pixelToGlobe(Point point)
point
- 指定的屏幕点对象。public Point3D pixelToGlobe(Point point, PixelToGlobeMode mode)
point
- 指定的屏幕点对象。mode
- 屏幕点对象转换为三维点对象的求交类型。public Point globeToPixel(Point3D point)
当指定的三维点对象不在当前相机范围内的时候,改方法将返回(-1,-1),表示此点不可见。
point
- 指定的三维点对象,该点对象包含了经纬度和海拔高度信息。public android.graphics.Bitmap outputSceneToBitmap()
public void refresh()
public java.lang.String getName()
public void zoom(double ratio)
缩放比例的范围为负无穷大到1。当参数为(0,1)之间的数值时,场景按比例放大;参数值小于0时,场景按比例缩小,但缩小到一定程度后将不会再缩小。
ratio
- 指定的缩放比例数值。public void stopCameraInteria()
public void flyCircle(Geometry geometry, double speedRatio)
geometry
- 指定的目标几何对象。speedRatio
- 基准飞行速度的倍数,默认为1 。public Camera getFirstPersonCamera()
public void setFirstPersonCamera(Camera camera)
camera
- 指定的第一人称相机参数。public void pan(double offsetLongitude, double offsetLatitude)
offsetLongitude
- 指定的经向平移距离。offsetLatitude
- 指定的纬向平移距离。public void sceneReset()
public boolean isZoomFlyPitching()
public void setZoomFlyPitching(boolean zoomFlyPitching)
zoomFlyPitching
- 指定是否开启俯仰。public void setMultiViewportMode(MultiViewportMode multiViewportMode)
multiViewportMode
- 指定多视口模式类型。public MultiViewportMode getMultiViewportMode()
public GlobalImage getGlobalImage()
public boolean getAtmosphereVisible()
public void setAtmosphereVisible(boolean atmosphereVisible)
atmosphereVisible
- 指定大气状态可见性。public void setCreateSkirt(boolean createSkirt)
createSkirt
- 指定是否创建地形裙边。public boolean getCreateSkirt()
public boolean openPrivateSceneWithUrl(java.lang.String onlineprivateURL, java.lang.String sceneName)
onlineprivateURL
- 指定登录后可获取的私有服务网址。sceneName
- 指定登录后可获取的私有服务场景名称。public void setPitch(double ratio)
ratio
- 指定倾斜的角度。public void setRollEye(double ratio)
ratio
- 指定旋转的角度。public void fly(LookAt lookAt)
lookAt
- 指定的目标LookAt相机。public void fly(LookAt lookAt, int milliseconds, boolean isdrct)
lookAt
- 指定的目标LookAt相机milliseconds
- 指定的飞行时间。isdrct
- 决定是直接飞行过去还是先拉起再飞行过去.public void setLookAt(LookAt lookAt)
lookAt
- 指定的LookAt相机。public LookAt getLookAt()
public void SetOverlapDisplayed(boolean value)
value
- 决定压盖时是否显示,一个boolean值。public double getFPS()
public void flytoVector(Point3D viewerPoint3D,Point3D targetPoint3D,int milliseconds)
viewerPoint3D
- 指定起始观察点。targetPoint3D
- 指定的目标点。milliseconds
- 指定的飞行时间。public ScenType getScenType()