三维开发学习skyline.docx

上传人:b****8 文档编号:8987103 上传时间:2023-05-16 格式:DOCX 页数:40 大小:31.77KB
下载 相关 举报
三维开发学习skyline.docx_第1页
第1页 / 共40页
三维开发学习skyline.docx_第2页
第2页 / 共40页
三维开发学习skyline.docx_第3页
第3页 / 共40页
三维开发学习skyline.docx_第4页
第4页 / 共40页
三维开发学习skyline.docx_第5页
第5页 / 共40页
三维开发学习skyline.docx_第6页
第6页 / 共40页
三维开发学习skyline.docx_第7页
第7页 / 共40页
三维开发学习skyline.docx_第8页
第8页 / 共40页
三维开发学习skyline.docx_第9页
第9页 / 共40页
三维开发学习skyline.docx_第10页
第10页 / 共40页
三维开发学习skyline.docx_第11页
第11页 / 共40页
三维开发学习skyline.docx_第12页
第12页 / 共40页
三维开发学习skyline.docx_第13页
第13页 / 共40页
三维开发学习skyline.docx_第14页
第14页 / 共40页
三维开发学习skyline.docx_第15页
第15页 / 共40页
三维开发学习skyline.docx_第16页
第16页 / 共40页
三维开发学习skyline.docx_第17页
第17页 / 共40页
三维开发学习skyline.docx_第18页
第18页 / 共40页
三维开发学习skyline.docx_第19页
第19页 / 共40页
三维开发学习skyline.docx_第20页
第20页 / 共40页
亲,该文档总共40页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

三维开发学习skyline.docx

《三维开发学习skyline.docx》由会员分享,可在线阅读,更多相关《三维开发学习skyline.docx(40页珍藏版)》请在冰点文库上搜索。

三维开发学习skyline.docx

三维开发学习skyline

三维开发学习(skyline)

 

1. 开发环境(B/S)

本地开发环境(IIS,TEPro,TEDEV,根据项目的要求具体选择服务器端的语言和客户端的脚本语言,如:

asp,,jsp,php…..,使用的开发工具用:

MicrosoftVisualStudio.NET2003/5,客户端脚本语言:

javascript/jscript,vbscript,使用的开发的工具:

UltraEdit,Editplus等等,根据自己爱好)

网络开发环境:

在服务器上进行开发和调试,但在服务器上必须安装internetlic+TerraGate的情况下,才能应用,本机只需安装TE即可;

2. 服务器的配置

服务器端必须要安装TerraGate3.0/3.5,的主要作用是进行mpt的网络发布,在TerraGate可以设置多个mpt,供fly工程文件调用。

(调用文档)

3. 客户端浏览

客户端需要安装TE(TerraExplorer)+IE60版本即可使用本系统。

4. 二次开发的概述

  TerraExplorePro提供了一整套的API,供二次开发使用,它提供了一些访问外部信息的方法,比如:

数据库或矢量数据的。

所有这些以COM协议为基础的界面都可以通过脚本语言管理,也可通过非脚本语言控制(如:

C++或VisualBasic)来开发(c/s)。

TerraExplorePro也可以设置ActiveX控件。

它作为ActiveX控件通常被应用在可视化界面的3D窗口、信息树、导航图的操作。

下面主要讨论TerraExplorePROAPI的功能:

用户接口API:

是对标准TerraExplorerProAPI的扩充。

利用其强大功能,开发人员可控制和激活大多数TerraExplorerPro的工具和函数。

如:

1 、控制飞行和视景

2、对象的创建

3、信息树和管理

4、层和对象管理

5、事件处理

6、在网页和windows应用程序中添加ActiveX控件

另外,TerraExplorerPro的API还允许常用的一些操作,比如控制容器中的内容,查询地形高度信息,获取快照,查找对象等更多操作。

5.  开发前的准备

 在网页中如何使用Activex控件

网页标题

/

--定义TerraExplorer的信息窗口对象-->

3a4f9193-65a8-11d5-85c1-0001023952c1"width="300"height="400">

--定义一个TerraExplorer3D窗口对象-->

3a4f9192-65a8-11d5-85c1-0001023952c1"width=650height="400">

--定义TerraExplorer对象-->

3a4f9191-65a8-11d5-85c1-0001023952c1">

 

6.  接口的概述

当前的版本号:

TerraExplorerProversion5.0.0.f47

ITerraExplorer5(Partial)

IPlane5

ITerrain4

IContainer2

IRender4

ISnapShot2

IStartPosition

_ITerraExplorerEvents5

IInformationTree5(Partial)

IObjectManager5(Partial)

ITENavigationMap

_ITENavigationMapEvents

IMenu

7.接口的介绍:

ITerraExplorer5(第21章)

告诉你关于用户接口的细节,例如怎样加载一个工程文件,对加载的工程文件进行加密,设定3d窗口的模式(cpu是否处理),获得用户当前使用的版本的信息,单位的设置,还可以对当前的工程文件进行保存,也可以把服务器上的工程文件保存到本地中。

属性:

     Type:

获取版本

  FlyName:

工程的文件名

  DisplayErrorMessages:

错误的设置模式

  布尔型:

当设置为false/0时,TerraExplorer错误信息在com方法调用的时候不显示给用户,如果设置为true时,则显示,系统默认设置为true;错误处理在IErrorInfo接口中,目前没有公开。

方法:

  Load([in]BSTRURL):

加载工程文件:

          可以导入本地的工程文件或mpt文件,也可以导入网络的工程文件或地形文件,地形文件导入的方式:

文件名.mpt@ip:

端口

  SetCPUSavingMode([inbSavingMode]):

设置cpu的工作模式

  如果设置为1:

工作,0不工作

  GetUserUnits(

 [out]VARIANT*shortAltitude,海拔

[out]VARIANT*shortAltitudeType,海拔的类型

[out]VARIANT*shortLatLongType)经纬度类型

)   

  GetTEVersion:

获得当前TE的版本号;

  LoadEx:

加载加密的工程文件,同步或异步打开(MPT有关系)

 [in]BSTRURL,

 [in]BSTRUser,

 [in]BSTRPassword,

 [in,defaultvalue(0)]longAsynchronous)1为异步,0为同步

   Save:

保存工程文件

  SaveAs:

另存为工程文件

具体实现如下:

1定义对象

2初始化对象

3加载Activex

4浏览网页

代码如下:

html>

网页标题

--

td{

     font-family:

"宋体";

     font-size:

12px;

}

-->

 

--定义TerraExplorer的信息窗口对象-->

 

3a4f9193-65a8-11d5-85c1-0001023952c1"width="300"height="400">

 

 

--定义一个TerraExplorer3D窗口对象-->

 

3a4f9192-65a8-11d5-85c1-0001023952c1"width=650height="400">

 

 

--定义TerraExplorer对象-->

 

3a4f9191-65a8-11d5-85c1-0001023952c1">

 

     

     varITerraExplorer=null;

     varIPlane =null;

     varIMenu =null;

     varIObjectManager=null;

     //---------------------------------------------------------------

     functionInit()

     {

          vartemp;

          ITerraExplorer=TE.interface("ITerraExplorer5");

          ITerraExplorer.load("D:

\\Job\\test.fly");

          temp=ITerraExplorer.Type;

          alert(temp);

     }

IPlane5

IPlane5接口是对飞行方式、观看位置进行控制,能操作浏览对象的观察角度,方向、速度、放大,偏航,斜度,旋转…..,来产生复杂的移动。

属性:

Speed:

速度以米/秒为单位,在3dwindow上运行,根据设置的大小决定对象运行的快慢;

FieldOfView:

观看3dwindow的区域,在观看的程度上,对于球体,它的角度设置的范围在1-180度中间,1为放到最大程度,180为放到最小程度,对偏航的设置,此值必须设置为5-90度之间,默认的是53度。

方法:

FlyTo:

此方法是飞行的动作,根据得到x坐标,z坐标,,视景的高度设定,设置不同运动方式(偏航(Yaw),斜度(Pitch),运动的方式)的设置,飞到并定位到目的地,还可以对目的地进行距离的设置。

[in]doubleX,

 地形上的x坐标的位置

[in]doubleZ,

地形上的z坐标的位置

[in]doubleHeight,

飞行对象与地形的高度

[in]doubleDistance,

距离的远进,就像摄像机拉镜头一样。

[in]doubleYaw,

偏航的设定,对飞行对象偏航的角度进行控制。

[in]doublePitch,

对斜度进行控制

[in]BSTRPattern)运动的模式

对飞行动作模式进行控制

  共有7个参数

1、FlyToLocation

2、JumpToLocation

3、FlyToTerrain

4、Circle(圆)

5、Oval(椭圆)

6、Line(线形)

7、Arc(圆弧)

代码:

SetPosition

设定当前3dwindow的视角的位置,不同于MovePosition,此方法直接“jump“到某个位置。

用户可以从一个城市直接跳到另一个城市

[in]doubleX,

X坐标

[in]doubleY,

Y坐标

[in]doubleHeight,

高度

[in]doubleYaw,

偏航

[in]doublePitch,

斜度

[in]doubleRoll,

滚动

[in]doubleCameraDeltaYaw,

视角的偏航,与飞行到某个对象的偏航相同

[in]doubleCameraDeltaPitch,

视角的斜度。

[in,defaultvalue(0)]longFlags)

Flag共有13个参数,默认为0,每个参数都对应上面一个参数,使某个参数无效。

MovePosition

与setPosition相同。

GetPosition

这个方法重新得到setPosition的参数,来定义3dwindow的位置和方向

[out]VARIANT*doubleX,

[out]VARIANT*doubleY,

[out]VARIANT*doubleHeight,

[out]VARIANT*doubleYaw,

[out]VARIANT*doublePitch,

[out]VARIANT*doubleRoll,

[out]VARIANT*doubleCameraDeltaYaw,

[out]VARIANT*doubleCameraDeltaPitch)

应用:

自定义坐标转换IPlane.GetPositionCurrX,CurrY,CurrH,CurrDirection,CurrPitch,CurrRoll,CurrDeltaYaw,CurrDeltaPitch

FlyToObject

飞到具体的某个地形上的对象

[in]BSTRObjectID,

  DimItemID=IInformationTree.FindItem("浏览路径\2006北京国际马拉松赛")

  'msgboxItemI

  ifItemID<>0then

     ObjID=IInformationTree.GetTerraObjectID(ItemID)

     IPlane.FlyToObjectObjID,18

  els

     alert"Itemnotfound:

"&ItemName

  EndIf

[in]ActionCodeCode)

动作代码:

o       AC_FLYTO                  =0   //飞行到对象

o       AC_CIRCLEPATTERN                          =1//圆形

o       AC_OVALPATTERN                            =2//椭圆

o       AC_LINEPATTERN                               =3//线形

o       AC_ARCPATTERN                               =4//弧形

o       AC_FOLLOWBEHIND                          =5//后边

o       AC_FOLLOWABOVE                           =6 //上方

o       AC_FOLLOWBELOW                              =7下方

o       AC_FOLLOWRIGHT                             =8  //右边

o       AC_FOLLOWLEFT                                =9 //左边

o       AC_FOLLOWBEHINDANDABOVE   =10              //后上方    

o       AC_FOLLOWCOCKPIT                           =11 //坐在机舱

o       AC_JUMP                                    =14 //跳转

o       AC_PLAY                                   =18 //跳转并播放

SetSpeed

([in]doubleSpeed)

此方法设置视角的速度,以此设置的速度靠近某个对象

GetSpeed

[out,retval]double*Speed)

获得以速度的值

Zoom

此方法执行飞行到某个对象的时候进行放大

[in]doubleDistance,

在某个距离段执行的操作

GetPositionEx

重新获得setPosition的参数,定义视角的位置和方向,此方法多了一个

Flag,可以重新找到海拔高度的方法到地形数据上。

用于像地面剖析等。

例子:

 

IObjectManage5

这个对象负责在工程文件里创建对象,它的方法完成不同的对象,所有的对象都继承ITerraExplorerObject5接口,当创建对象后就可已获得这个接口的属性和方法。

CreatePolyline,

在3d窗口中创建线条

[in,defaultvalue(0)]VARIANTSafeArrayVertices,

  需要输入得是一个数组序列,两两出现,如:

第一个值为x坐标,第二个值为y坐标…….

在这里一般使用鼠标点击画线结合使用(作个案例);

[in,defaultvalue(0x0000ff00)]longLineColor,

  定义一个线形得颜色,用10进制得形式表示

[in,defaultvalue(HSC_TERRAIN_RELATIVE)]HeightStyleCodeHeightStyle,

  设定高度得样式,

有3个选项

  每个线的置高点都与地形有关系

  

[in,defaultvalue(0)]longGroupID,

  所划得线条放在那个组里。

[in,defaultvalue("")]BSTRDescription,

  对所划得线进行相关得描述。

[out,retval]ITerrainPolyline5**pITerrainPolyline5)

  返回一个pITerrainPolyline5对象可以调用pITerrainPolyline5里面得对象和方法。

Create2DPolygon,

创建2的多边形,

HRESULTCreate2DPolygon(

[in,defaultvalue(0)]VARIANTSafeArrayVertices,

需要输入得是一个数组序列,两两出现,如:

第一个值为x坐标,第二个值为y坐标…….

[in,defaultvalue(0x0000ff00)]longLineColor,

  

   线形得颜色,用10进制得形式表示

[in,defaultvalue(FT_NONE)]doubleFillOpacity,

   对多边形的填充的颜色透明度的属性值进行控制。

   0-100%

[in,defaultvalue(0x00646464)]longFillColor,

   对多边形的颜色填充。

[in,defaultvalue(HSC_TERRAIN_RELATIVE)]HeightStyleCode

HeightStyle,

  在地形上的高度的呈现的形式;

[in,defaultvalue(0)]longGroupID,

所划得多边形放在那个组里。

[in,defaultvalue("")]BSTRDescription,

对所划得线进行相关得描述。

返回一个字符串

[out,retval]ITerrainPolyline5**pITerrainPolyline5)

返回pITerrainPolyline5对象,可以使用pITerrainPolyline5的所有属性和对象。

CreateRectangle,

  在窗口中创建一个矩形;

 [in]doubleX,

  地形的X坐标

[in]doubleY,

地形的y坐标

[in]doubleElevation,

  地形的海拔或高度。

[in]doubleObjectWidth,

   矩形对象的宽度

[in]doubleObjectDepth,

矩形对象的深度。

[in,defaultvalue(0x0000ff00)]longLineColor,

     线形的颜色设置

[in,defaultvalue(FT_NONE)]doubleFillOpacity,

    对象填充颜色的透明度;

[in,defaultvalue(0x00646464)]longFillColor,

对象填充颜色的颜色;

[in,defaultvalue(HSC_TERRAIN_RELATIVE)]HeightStyleCodeHeightStyle,

     在地形高度的显示的高度样式

[in,defaultvalue(0)]longGroupID,

  存入到那个组

[in,defaultvalue("")]BSTRDescription,

  对当前对象的描述

[out,retval]ITerrainRectangle5**pITerrainRectangle5)

返回ITerrainRectangle5对象,即可使用ITerrainRectangle5的所有对象和属性。

CreateRegularPolygon,

  创建正多边形

[in]doubleX,

当前的地形的x坐标

[in]doubleY,

当前的地形的Y坐标

[in]doubleElevation,

当前对象在地形中的海拔的属性值

[in]doubleRadius,

   多边形的半径属性值

[in]intNumOfSegments,

  设定多边形边数。

[in,defaultvalue(0x0000ff00)]longLineColor,

 

 设定线的颜色

[in,defaultvalue(FT_NONE)]doubleFillOpacity,

  设定填充的颜色的透明度

[in,defaultvalue(0x00646464)]longFillColor,

  设定填充的颜色

[in,defaultvalue(HSC_TERRAIN_RELATIVE)]HeightStyleCodeHeightStyle,

   对高度样式的设定

o       HSC_TERRAIN_RELATIVE=0

Eachofthepolygon’sverticeshasthesameheightabovetheterrain(determinedbytheElevationparameter).

o       HSC_PIVOT_RELATIVE=1

Theheightofthepolygon’spivot(thecenteroftheregularpolygon)isdeterminedbytheElevationparameter.Eachofthepolygon’sverticesliesonthesameplaneasthepolygon’spivot.

o       HSC_ON_TERRAIN=2

Thepolygon’sverticesareplacedontheterrain.

o       HSC_TERRAIN_ABSOLUTE=3

 

[in,defaultva

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2