二、获取并加载场景服务
在上一节的内容中,我们实现了加载默认的场景。但是对于实际应用而言这是远远不够的,我们还需加载实际的数据。
客户端的数据主要来源于服务器,因此在本节内容中,我们以从服务器端获取所需要的场景为例说明如何加载场景及场景所有的图层,在下一节的内容中示范如何打开场景中的指定图层。
在三维系统中,场景就相当于二维系统的地图,而场景中的图层也就相当于二维系统中地图的图层。 三维场景类(Scene)的主要任务就是装载二维和三维地图数据。利用三维场景类(Scene)能够加载三维图层(Layer3D)和地形图层(TerrainLayer)。在一个三维场景对象中可以包含多个Layer3D类型的图层和地形图层TerrainLayer,它们分别由三维图层集合Layer3Ds和地形图层集合TerrainLayers管理。
在本节中我们介绍如何利用三维场景类(Scene)加载服务器端的场景服务。
接口 | 说明 | |
---|---|---|
![]() |
camera | 获取或设置当前场景的相机对象,相机相当于视点。 |
![]() |
currentScale | 获取当前场景的比例尺。 |
![]() |
flyingOperator | 获取当前场景的飞行操作对象。该属性主要用于设置场景的飞行状态,指定飞向下一个场景的方位、控制飞行方式以及飞行动画。 |
![]() |
layer3Ds | 获取三维图层集合对象。 |
![]() |
name | 获取或设置场景的名称。 |
![]() |
sceneOption | 获取场景中各种界面元素的可见性的集合,如经纬网、大气层等界面元素的可见性。 |
![]() |
screenLayer3D | 获取场景中的屏幕图层。 |
![]() |
terrainExaggeration | 获取或设置地形夸大的比例。地形夸大是将地形的高按一定比例进行拉伸。 |
![]() |
terrainLayers | 获取三维场景中的地形图层集合。 |
![]() |
trackingLayer3D | 获取场景中的跟踪图层。 |
接口 | 说明 | |
---|---|---|
![]() |
close | 关闭三维场景中加载的当前场景的所有图层。 |
![]() |
findSelection3Ds | 查找当前三维场景中图层的选择集。该方法返回的是Selection3D类对象的数组,每一个Selection3D类对象对应三维场景中一个图层中所有处于选中状态的对象集合,若没有对象处于选中状态,则数组为空。 |
![]() |
getAverageFPS | 获取渲染当前场景的平均帧数。 |
![]() |
open | 打开指定场景及场景中的所有图层。加载指定场景时,同时加载场景的环境变量包括环境光,背景光,地形夸张系数,相机,雾效,星空,大气层,经纬网等以及场景中的图层数据。 |
![]() |
refresh | 刷新三维场景。 |
![]() |
resetTerrain | 重置地形图层。对地形图层进行增、删、可见不可见设置时都需要调用此函数刷新地形显示。 |
![]() |
save | 保存当前场景配置为GML标准的XML文件,并上传到服务器。 |
![]() |
setRefreshRaster | 设置实时栅格化是否刷新。在三维系统中如果出现栅格数据显示问题,可以调用该函数仅刷新栅格数据的显示。 |
![]() |
viewEntire | 全幅显示三维地图场景。 |
接口 | 说明 | |
---|---|---|
![]() |
count | 获取场景列表中场景服务的总数。 |
![]() |
item | 获取场景列表中指定场景索引号(Nember类型)或者名称(String类型)的场景服务信息。 |
![]() |
serverAddress | 获取提供场景服务列表的服务器地址。 |
接口 | 说明 | |
---|---|---|
![]() |
load | 获取所有场景服务列表。 |
![]() |
removeAll | 删除场景服务列表中所有场景服务信息。 |
JavaScript |
![]() |
---|---|
<!--信息窗--> |
JavaScript |
|
---|---|
|
JavaScript |
![]() |
---|---|
|
JavaScript |
![]() |
---|---|
|
JavaScript |
![]() |
---|---|
|
图1 打开场景
图2 场景中的各种图层