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