产品概述

ConverseEarth二次开发工具包(SDK)提供了一套完整的二次开发架构,可以很容易将三维引擎嵌入到信息化系统中。可以采用B/S或C/S两种架构进行开发,支持各类主流开发语言:PHP、JSP、JavaScript、C++、VB、C#、或.net。提供大量的接口对场景进行控制,并可以接收三维GIS系统抛出的各类事件。我们的大量SDK客户来至于军工、石油、电力、水利等领域,SDK的价值在于对业务数据和三维模型数据的整合,使得三维场景成为生产或业务流程中最直观的数据呈现。

 

使用SDK提供的API,我们可以做到:1. 控制相机视图;2. 加载DEM、DOM及三维模型到地球表面;3. 图层及物体实时动态变化;4. 使用刚体及骨骼动画表现角色及机械运动;5. 事件触发与事件接收;6. 将ActiveX控件嵌入到网页或桌面程序;7. 连接常用数据库读写属性信息;8. 任意创建资源库对象,并提供基于时间轴的事态布局;9. 基本几何体、标注、箭头及流动线的绘制;10. 最优路径等信息分析功能;11. 右下角小地图的二三维一体化控制;12.矢量及栅格数据的动态加载。

接口分类
系统类(system)
提供三维引擎系统级别的控制:获取视图的宽高;切换操作模式;开启测量功能;开启屏幕快照功能;光照雾效等参数设置;获取指定点高程;屏蔽/开启鼠标键盘事件。
示例:
int systemGetScreenWidth(...)
double systemGetAltitude(...)
 
图层管理类(layer)
提供控制地理图层的功能:添加、删除KML图层;添加、删除影像图图层;添加WMS服务器图层;添加WFS服务器图层;添加TMS服务器图层。
示例:
int layerAddImageLayer(...)
int layerAddImageLayerFromWms(...)

 

 

相机控制类(camera)
提供关于相机类所有的功能:获取/设置相机位置与朝向;飞行到某个坐标位置或某个物体;设置相机前后左右上下运动速度;设置角色扮演模式下相机跟随各项参数。
示例:
int cameraSetLlh(...)
int cameraSetHeadPitchRoll(...)
三维模型控制类(mesh)
提供控制精细三维模型(Mesh物体)的各项功能:从模型库创建、删除三维模型;获取/设置相Mesh模型的地理位置、方位角、缩放比例;三维模型着色及半透明;播放模型动画。
示例:
int meshCreate(...)
int meshSetLlh(...)
场景管理类(scene)
对三维场景进行管理,接口包括:添加三维场景;获取三维场景中心地理位置;获取三维场景及所有Mesh物体名称;设置场景内所有模型的半透明度。
示例:
int sceneAdd3DScene(...)
int sceneGetObjectCount(...)
图形绘制类(painter)
提供绘制标注、线、多边形等的函数,包括:创建、删除标注;创建、删除线(包括纹理线);创建、删除多边形面;设置线、面的颜色及半透明度;多边形挤压成多面体。
示例:
int painterAddAnnotation(...)
int painterCreateLinesObject(...)
二维GIS类(gis2d)
提供2DGIS的控制,包括:在2DGIS上创建标注、线、圆形、多边形等。
示例:
int gis2dCreateMarker(...)
int gis2dCreateCircle(...)
三维地形类(terrain)
提供地下控制的各项功能:设置地形可见性;设置地形半透明度。
示例:
int terrainSetVisible(...)
bool terrainSetTransparence(...)
角色控制类(character)
提供角色(人物、设备、NPC等)的控制功能,主要包括:创建、删除角色;设置角色的目标点位置;设置角色的移动速度;播放角色的骨骼动画;获取角色的身高。
示例:
int characterCreate(...)
int characterSetTargetPosition(...)
图形用户界面类(gui)
提供常用三维GUI的创建与参数设置,可以操作的控件包括:按钮、静态文本框、输入文本框、列表框、组合框、单选框、复选框、菜单栏、滑动条、进度条等。可以控制所有控件的透明度、位置、可见性、出场动画效果。
示例:
int guiCreate(...)
int guiSetAlpha(...)
数学计算类(math)
提供常用的数学计算,比如:获取二维矢量(vector2d)的夹角;两点之间插值;获取线的长度;根据角度和旋转轴生成四元组。
示例:
string mathSlerpPosition(...)
double mathGetLineLength(...)

 

音频/视频类(audio/video)
提供音频与视频的播放控制,实现了音频的播放与音量设置;视频的播放控制。
示例:
void audioPlayAudio(...)
int videoDialogPlay(...)
视口管理类(viewport)
视口一般理解为浮动小窗口、画中画。视口类提供了:创建、删除视口;添加视口内可视对象;设置相机位置;设置视口可否被操作。
示例:
int viewportCreate(...)
int viewportAddChildToCamera(...)
资源布局器类(resourceLayout)
提供对ConversEarthBuilder内资源布局器的控制:播放、停止、复原资源布局方案;获取/设置资源布局方案内变量的值;载入新的方案;载入新的JavaScript脚本。
示例:
int rlPlay()
string rlGetVariableValue(...)
粒子特效类(fx)
提供常用粒子特效的创建、设置等。包括:创建/删除火、烟雾、雨、雪、喷水、爆炸等粒子特效;获取/设置各类粒子特效的生命值、速度、透明度等参数;获取/设置粒子的位置及可见性。用户可以根据火灾数学模型通过API动态模拟发展趋势。
示例:
int fxCreateFire(...)
int fxSsetLifeTime(...)
演练服务器类(server)
提供单人/多人演练时与演练服务器对接接口,学员每操作一步可以向服务器端上传操作步骤及各项变量,服务器端再进行评分及记录步骤。接口包括:服务器变量赋值;服务器工作流流程赋值。
示例:
int serverAssignVariable(...)
int serverAssignProcessStatus(...)
物理引擎类(physics)
提供构建动力学模型的框架,可以模拟地震、车辆行进、刚体碰撞等常见的物理现象。通过API可以:将三维模型和物理学模型绑定;设定物理引擎的各项参数:重力、摩擦力、阻尼系数等。
示例:
int physicsCreateRigidBodyFromMeshGroupObject(...)
int physicsRemoveRigidBody(...)
最优路径类(optimalPathCalculator)
提供基于自建路网的最优路径分析功能,添加路网节点;设置路网联通向量;输出最优路径的节点队列。
示例:
int optimalPathCalculatorAddPoint(...)
int optimalPathCalculatorAddRoad(...)
string optimalPathCalculatorFind(...)
触发事件类(event)
提供各种触发事件,将三维引擎内部产生的事件传递给外部主调语言,主调语言通过回调函数来接收这些事件。触发事件包括:鼠标事件:点击模型、点击标注、点击面、点击线;GUI事件;窗口Resize事件;地理图层添加/移除事件;角色到达目标点事件;相机到达目标点事件;服务器消息事件;布局器方案各类事件:打开、播放、复原。
示例:
void LBtnClickMeshObject(...)
void GuiEvent(...)
void ProjectOpened (...)
插件管理类(plugin)
提供独立动态链接库(DLL)插件的管理功能,用户可以创建自己的DLL,作为插件挂接到三维引擎。插件管理类提供的API包括:载入/卸载DLL;执行DLL内函数。
示例:
int pluginLoadLibrary(...)
string pluginCall(...)
关闭