二、获取并加载场景服务


概述

在上一节的内容中,我们实现了加载默认的场景。但是对于实际应用而言这是远远不够的,我们还需加载实际的数据。

客户端的数据主要来源于服务器,因此在本节内容中,我们以从服务器端获取所需要的场景为例说明如何加载场景及场景所有的图层,在下一节的内容中示范如何打开场景中的指定图层。

在三维系统中,场景就相当于二维系统的地图,而场景中的图层也就相当于二维系统中地图的图层。 三维场景类(Scene)的主要任务就是装载二维和三维地图数据。利用三维场景类(Scene)能够加载三维图层(Layer3D)和地形图层(TerrainLayer)。在一个三维场景对象中可以包含多个Layer3D类型的图层和地形图层TerrainLayer,它们分别由三维图层集合Layer3Ds和地形图层集合TerrainLayers管理。

在本节中我们介绍如何利用三维场景类(Scene)加载服务器端的场景服务。

Scene 三维场景结构图图
Scene 三维场景结构图
Scene 常用属性
  接口 说明
公共属性 camera 获取或设置当前场景的相机对象,相机相当于视点。
公共属性 currentScale 获取当前场景的比例尺。
公共属性 flyingOperator 获取当前场景的飞行操作对象。该属性主要用于设置场景的飞行状态,指定飞向下一个场景的方位、控制飞行方式以及飞行动画。
公共属性 layer3Ds 获取三维图层集合对象。
公共属性 name 获取或设置场景的名称。
公共属性 sceneOption 获取场景中各种界面元素的可见性的集合,如经纬网、大气层等界面元素的可见性。
公共属性 screenLayer3D 获取场景中的屏幕图层。
公共属性 terrainExaggeration 获取或设置地形夸大的比例。地形夸大是将地形的高按一定比例进行拉伸。
公共属性 terrainLayers 获取三维场景中的地形图层集合。
公共属性 trackingLayer3D 获取场景中的跟踪图层。
Scene 常用方法
  接口 说明
公共方法 close 关闭三维场景中加载的当前场景的所有图层。
公共方法 findSelection3Ds 查找当前三维场景中图层的选择集。该方法返回的是Selection3D类对象的数组,每一个Selection3D类对象对应三维场景中一个图层中所有处于选中状态的对象集合,若没有对象处于选中状态,则数组为空。
公共方法 getAverageFPS 获取渲染当前场景的平均帧数。
公共方法 open 打开指定场景及场景中的所有图层。加载指定场景时,同时加载场景的环境变量包括环境光,背景光,地形夸张系数,相机,雾效,星空,大气层,经纬网等以及场景中的图层数据。
公共方法 refresh 刷新三维场景。
公共方法 resetTerrain 重置地形图层。对地形图层进行增、删、可见不可见设置时都需要调用此函数刷新地形显示。
公共方法 save 保存当前场景配置为GML标准的XML文件,并上传到服务器。
公共方法 setRefreshRaster 设置实时栅格化是否刷新。在三维系统中如果出现栅格数据显示问题,可以调用该函数仅刷新栅格数据的显示。
公共方法 viewEntire 全幅显示三维地图场景。
SceneServicesList 场景服务列表信息类结构图
SceneServicesList 场景服务列表信息类结构图
SceneServicesList 常用属性
  接口 说明
公共属性 count 获取场景列表中场景服务的总数。
公共属性 item 获取场景列表中指定场景索引号(Nember类型)或者名称(String类型)的场景服务信息。
公共属性 serverAddress 获取提供场景服务列表的服务器地址。
SceneServicesList 常用方法
  接口 说明
公共方法 load 获取所有场景服务列表。
公共方法 removeAll 删除场景服务列表中所有场景服务信息。

获取场景服务,添加场景服务中所有图层


版权所有© 2000-2016 北京超图软件股份有限公司 保留所有权利。