2.15 功能提供类(Provider)

功能提供类主要为三维地图提供特效、进阶漫游、场景效果修改等功能。

Provider对象可以分为三大类:

特效类

特效类主要提供了基于粒子系统来实现的各种粒子特效,以及水面效果。

需要注意的是,粒子系统的各类对象,其不具有update方法,即其在创建时就确定了其效果,不能在途中改变,若要改变只能删除再重新创建。

水效对象(WaterProvider) 则是个例外,其实现原理与粒子系统截然不同,因此可正常的进行update

进阶漫游类

进阶漫游类主要提供了模型动画、动态路径漫游、漫游参数及热键修改等功能。

模型动画(AnimationProvider) 可以控制单个模型的运动轨迹、旋转朝向、比例大小等参数,用来实现较为逼真的模型动画演示,比如可以模拟飞机的起飞、转向、降落等效果,如图:

模型动画

动态路径漫游(DynamicPathProvider) 则提供了可自定义规划漫游路线的功能,通常通过创建路径关键点,播放模式、播放速度,播放视角等参数,来模拟人、车在路线上观察的效果。

常规用法通常是用来进行视频巡更,即设定一定的路线轨迹,当行进至关键点位,检测当前点位附近的摄像头,如存在,则暂停前进,同时播放其视频内容,播放完毕后,继续前进。通过这种方式能有效的代替人工的巡逻。

还有种特殊用法则是根据GPS信号返回的位置信息,在场景中实时显示对应的模型,比如根据汽车GPS,在场景中显示汽车的位置,这种方式偏重于实时演示物体位置,常用于实时数据移动路径的展示。

漫游参数及热键配置(RoamConfigProvider) 可控制鼠标、键盘漫游的速度,以及场景对鼠标、键盘的热键响应。通过该功能,可定制化的对漫游进行控制。

场景效果修改类

数据高亮(HighlightProvider) 可以通过数据的id或者坐标点,来进行数据的高亮,需要注意的是,高亮可以针对数据整体进行高亮,也可以针对单个对象(人工模型数据ModelData、矢量数据FeatureModelData),进行高亮,目前倾斜摄影数据OsgbData暂不支持对象化高亮。

光线照射(LightProvider) 目前仅能对人工模型数据(ModelData)、倾斜摄影数据(OsgbData)能产生效果,矢量的光照效果由LightSymbol进行实现。

场景系统操作(SystemProvider) 可以修改场景相机的透视角大小、视野距离、近截面距离和天空盒路径等。一般来说,无特殊需求,无需对其进行修改。

天空盒变换:

天空盒变换

关于天空盒,其制作流程可参考天空盒变换

天空盒资源文件制作完毕后,我们只需在代码中这么写,注意路径末尾要带上“/”或者“\”就行了:

var systemProvider = new CooSDK.SystemProvider({
    skyBoxImgPath: "x:/xxx/新建文件夹/"
});

地形影像透明(TerrainTransparencyProvider) 常用于地下管线、地下空间的展示功能,其能把地形影像做一定程度的透明化。

纹理替换(TextureReplacementProvider) 可将人工模型(ModelData)指定表面的纹理进行替换,常用于某些交通场景,如红绿灯的状态切换等等。

纹理替换

线框模式(WireframeProvider) 用线框的显示方法来重新渲染场景中的模型数据。目前提供线框+白膜和线框+纹理两种显示模式。

线框+白膜:

线框+白膜

线框+纹理:

线框+纹理

results matching ""

    No results matching ""