TE7多球联动开发

在一些系统的开发中,方案对比等功能需要加载多个三维球,并实现三维球的联动效果,skyline的三维开发支持多球一起进行加载,达到效果。

具体的功能实现,以BS的开发为例,CS开发中只是控件的加载方式不同:

在窗口上加载多个三维控件,每个控件设置的id不同,CLASSID都是相同的,以下是加载了3个地球窗口控件;

<OBJECT ID="TerraExplorer3DWindowEx" CLASSID="CLSID:3a4f9196-65a8-11d5-85c1-0001023952c1" width="800" height="500"> 

 </OBJECT>

 <OBJECT ID="TerraExplorer3DWindowEx1" CLASSID="CLSID:3a4f9196-65a8-11d5-85c1-0001023952c1" width="800" height="500"> 

</OBJECT>

<OBJECT ID="TerraExplorer3DWindowEx2" CLASSID="CLSID:3a4f9196-65a8-11d5-85c1-0001023952c1" width="800" height="500"> 

 </OBJECT>

在js代码中,定义sgworld对象接口,每个接口需要根据窗口不同的id进行初始化;

SGWorld = TerraExplorer3DWindowEx.CreateInstance("TerraExplorerX.SGWorld70");

SGWorld1 = TerraExplorer3DWindowEx1.CreateInstance("TerraExplorerX.SGWorld70");

SGWorld2 = TerraExplorer3DWindowEx2.CreateInstance("TerraExplorerX.SGWorld70");

接下来,根据TE的API打开3个窗口的fly文件即可;

SGWorld.Project.Open("fly文件地址",false,"",""); 

SGWorld1.Project.Open("fly1文件地址",false,"",""); 

SGWorld3.Project.Open("fly2文件地址",false,"",""); 

要想实现3个球联动的效果,需调用TE API中的以下方法,此方法也可以实现其中几个球有一定的位置差别,而不需要都完全一样;

SGWorld1.Application.Multiple3DWindows.LinkPosition(SGWorld,0,0,0,0,0,0);

SGWorld2.Application.Multiple3DWindows.LinkPosition(SGWorld,0,0,0,0,0,0);


实现效果图:

image.png


技术交流群:665060698

微信公众号:

image.png


猜你喜欢

转载自blog.51cto.com/speciallst/2165487
te
今日推荐