在一些系統的開發中,方案對比等功能需要加載多個三維球,並實現三維球的聯動效果,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);
實現效果圖:
技術交流羣:665060698
微信公衆號: