skylineAPI详细使用说明手册.docx

上传人:b****3 文档编号:26421850 上传时间:2023-06-19 格式:DOCX 页数:161 大小:157.82KB
下载 相关 举报
skylineAPI详细使用说明手册.docx_第1页
第1页 / 共161页
skylineAPI详细使用说明手册.docx_第2页
第2页 / 共161页
skylineAPI详细使用说明手册.docx_第3页
第3页 / 共161页
skylineAPI详细使用说明手册.docx_第4页
第4页 / 共161页
skylineAPI详细使用说明手册.docx_第5页
第5页 / 共161页
点击查看更多>>
下载资源
资源描述

skylineAPI详细使用说明手册.docx

《skylineAPI详细使用说明手册.docx》由会员分享,可在线阅读,更多相关《skylineAPI详细使用说明手册.docx(161页珍藏版)》请在冰豆网上搜索。

skylineAPI详细使用说明手册.docx

skylineAPI详细使用说明手册

 

1TerraExplorerAPI简介

 

TerraExplorerAPI提供了一套强大的接口用来集成TerraExplorer、TerraExplorerPro和用户自定义应用。

它提供了一些访问外部信息扩展的方法,比如:

访问数据库或基础地理空间数据。

所有这些以COM协议为基础的API接口都可以通过脚本语言操作(例如Javascript),也可以通过非脚本语言来控制操作(例如:

C++、VB、delphi或者.net)。

TerraExplorer也提供了一套ActiveX控件,可将3D窗口、信息树和导航图以控件对象的方式嵌入到用户自定义的可视化界面中,其中,Runtime模块使得用户自定义的应用程序更易分发。

 

1.1ITerraExplorer5

描述用户接口的相关细节,例如当前用户使用的软件版本信息、单位参数(长度单位、速度单位等)、工程文件加载和保存等。

 

ITerraExplorer

属性:

Type,FlyName,DisplayErrorMessages

方法:

Load,SetCPUSavingMode,GetUserUnits,GetTEVersion,LoadEx,Save,SaveAs,SetParam,GetParam

(1)Load方法:

HRESULTLoad([in]BSTRURL)其中URL是fly或mpt文件的完整路径。

C#:

(第一次举例是完整代码,主要部分为粗体部分,以后的例子只写主要部分,下面接

口例子的其他代码与此例类似,其中加载保存路径读者可以自行设定)

usingSystem;

usingSystem.Windows.Forms;usingTerraExplorerX;namespaceLoad_Test

{

publicpartialclassForm1:

Form

{

privateTerraExplorerClassobjTerraExplorer;

publicForm1()

{

InitializeComponent();

}

privatevoidLoadbutton_Click(objectsender,EventArgse)

{

objTerraExplorer=newTerraExplorerClass();

objTerraExplorer.Load(@"E:

\SkylineProInterface\数据\数据

\Default.fly");

}

}

}

VBscript:

(其中黑体部分是主要部分)

Load

SubLoad()

setITerraExplorer5=TE.interface("ITerraExplorer5")ITerraExplorer5.load"E:

\SkylineProInterface\数据\数据\Default.fly"

endSub

3a4f9193-65a8-11d5-85c1-c1"width="200"height="760">

3a4f9192-65a8-11d5-85c1-c1"width=800height=760>

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

>

(2)Save方法:

只能保存fly工程,mpt工程不能保存

C#:

objTerraExplorer=newTerraExplorerClass();

objTerraExplorer.Save();

VBScript:

SubSave()

SetITerraExplorer=TE.interface("ITerraExplorer5")ITerraExplorer.Save

EndSub

(3)SaveAs方法:

HRESULTSaveAs([in]BSTRFileName)工程另存为

C#:

objTerraExplorer=newTerraExplorerClass();objTerraExplorer.SaveAs(@"E:

\SkylineProInterface\数据\数据\Default88.fly");VBScript:

SubSaveAs()

SetITerraExplorer=TE.interface("ITerraExplorer5")

ITerraExplorer.SaveAs"E:

\SkylineProInterface\数据\数据\Default88.fly"EndSub

 

1.2IPlane5

控制飞机和摄像机的操作,对于对象的飞行方式、观看视角、视野高度进行控制,可按照需求控制摄像机的方向、倾角产生复杂的运动,例如飞机起飞模拟。

IPlane5

属性:

Speed,FieldOfView

方法:

FlyTo,SetPosition,MovePosition,GetPosition,FlyToObject,SetSpeed,GetSpeed,Zoom,GetPositionEx

(1)FlyTo方法:

飞行到指定的位置

[in]doubleX,水平方向坐标[in]doubleZ,垂直方向坐标[in]doubleHeight,高度

[in]doubleDistance,飞行到后视点离位置的距离

[in]doubleYaw,方位角

[in]doublePitch,视角上下倾斜角度

[in]BSTRPattern视角飞行到固定位置的模式

C#:

privateTerraExplorerClassobjTerraExplorer;IPlane5objIPlane5=objTerraExplorerasIPlane5;objIPlane5.FlyTo(100.71729,36.,40000,100,0,0,"FlyToTerrain");

VBScript:

SubFlyTo()

SetIPlane5=TE.Interface("IPlane5")

IPlane5.FlyTo108,39,2000,50,0,0,"FlyToLocation"EndSub

(2)SetPosition方法:

设置跳转到视角的位置

[in]doubleX[in]doubleY

[in]doubleHeight

[in]doubleYaw

[in]doublePitch

[in]doubleRoll

[in]doubleCameraDeltaYaw,[in]doubleCameraDeltaPitch,[in,defaultvalue(0)]longFlags

C#:

IPlane5objIPlane5=objTerraExplorerasIPlane5;

objIPlane5.SetPosition(100.71729,36.,40000,100,0,0,0,0,1024);

VBScript:

SubSetPosition()

SetIPlane5=TE.interface("IPlane5")IPlane5.SetPosition108,39,2000,0,0,0,0,0,1

EndSub

(3)GetPosition方法:

[out]VARIANT*doubleX,输出视角所在的经度[out]VARIANT*doubleY,输出视角所在的经度[out]VARIANT*doubleHeight,输出视角所在的高度[out]VARIANT*doubleYaw,视角方位角

[out]VARIANT*doublePitch,视角上下倾斜角度

[out]VARIANT*doubleRoll,视角左右倾斜角度

[out]VARIANT*doubleCameraDeltaYaw,[out]VARIANT*doubleCameraDeltaPitch

C#:

objectx,y,h,yaw,pitch,roll,cdy,cdp;

IPlane5objIplane5=objTerraExporerasIPlane5;

objIplane5.GetPosition(outx,outy,outh,outyaw,outpitch,outroll,outcdy,outcdp);Xtext.Text=x.ToString();

Ytext.Text=y.ToString();Htext.Text=h.ToString();Yawtext.Text=yaw.ToString();Pitchtext.Text=pitch.ToString();Rolltext.Text=roll.ToString();CDYtext.Text=cdy.ToString();CDPtext.Text=cdp.ToString();

VBScript:

SubGetPosition()

IPlane5.GetPositionx,y,height,yaw,pitch,roll,camaraPicth,camaraRoll

XV.value=x

YV.value=y

HV.value=heightYAWV.value=yawPV.value=pitchRV.value=rollCPV.value=camaraPicthCRV.value=camaraRollEndSub

(4)MovePosition方法:

设置移动到视角的位置

[in]doubleX,水平方向坐标[in]doubleY,垂直方向坐标[in]doubleHeight,高度

[in]doubleYaw,视角方位角度

[in]doublePitch,视角上下倾斜角度

[in]doubleRoll,左右倾斜角度

[in]doubleCameraDeltaYaw,[in]doubleCameraDeltaPitch,[in,defaultvalue(0)]longFlags

C#:

IPlane5objIPlane5=objTerraExplorerasIPlane5;

objIPlane5.MovePosition(111,39,4000,0,0,0,0,0,1024);

VBScript:

SubMovePosition()

SetIPlane5=TE.Interface("IPlane5")IPlane5.MovePosition108,39,2000,0,0,0,0,0,1

EndSub

(5)FlyToObject方法:

飞行到物体

[in]BSTRObjectID输入物体ID[in]ActionCodeCode飞行到模式C#:

IInformationTree5objIInformationTree5=objTerraExplorerasIInformationTree5;

intItemID=objIInformationTree5.FindItem("TestGroup\\TestBuilding");

stringobjID=objIInformationTree5.GetTerraObjectID(ItemID);IPlane5objIPlane5=objTerraExplorerasIPlane5;objIPlane5.FlyToObject(objID,0);

VBScript:

SubFlyToObject()

SetIPlane5=TE.interface("IPlane5")

SetIInformationTree5=TE.interface("IInformationTree5")ItemID=IInformationTree5.FindItem("TestBuilding")

setObj=IInformationTree5.GetObject(ItemID)IPlane5.FlyToObjectObj.ID,0

EndSub

(6)Zoom方法:

对当前进行视野缩放

C#:

IPlane5objIPlane5=objTerraExplorerasIPlane5;

objIPlane5.Zoom(500,0);

VBScript:

SubZoom()

SetIPlane=TE.interface("IPlane5")IPlane.Zoom(50)

EndSub

 

1.3IObjectManager5接口

 

管理三维窗口中的所有对象,使用本接口用户可添加、删除、修改三维窗口中的所有对象,主要管理如下对象:

 创建二维对象–主要处理文本、图片标签和二维几何体,可创建如下对象:

Textlabel:

文本标签Imagelabel:

图片标签Polyline:

折线Polygon:

面Rectangle:

矩形

RegularPolygon:

正多边形

2DArrow:

二维箭头Circle:

圆Ellipse:

椭圆Arc:

圆弧

VideoOnTerrain:

在三维地形上创建视频

 创建三维对象–主要处理3D模型和三维几何体,可创建如下对象:

3DModel:

添加外部三维模型

PointCloudModel:

添加点云数据Building:

在pro中自定义创建建筑物

3DPolygon:

三维面Box:

长方体

Cylinder:

圆柱体

Sphere:

椭球体

Cone:

椎体Pyramid:

金字塔

3DArrow:

三维箭头

 创建Messages–创建对象Message,并可与相关对象相关联

 RasterLayers–创建栅格层,添加航片、卫片或高程数据

 Route–创建漫游路线,可获取、修改路线点位信息

 Location–创建视图,系统可直接获取视图范围,也可自定义范围

3.1CreatePolyline

语法

ITerrainPolyline5CreatePolyline(objectSafeArrayVertices,intLineColor,HeightStyleCode

HeightStyle,intGroupID,stringDescription)

参数类型描述

SageArrayVerticesobject一个数组节点包含三个double值,这三个double值由x纬度,h高度,y经度。

如果这个参数是零,将创建一个空的对象,用户可以获得对象添加节点。

LineColorint线颜色,RGB值,最小为255。

HeightStyleHeightStyleCode一个枚举值,主要决定对象在地形上以什么样的方式显示。

GroupIDint放置对象的组编号,如果为0表示对象将在根节点下产生。

Descriptionstring对象在Information窗体中显示的名称,如果为空字符串,TerraExplorer将自动为其设置一个唯一的名称。

说明

在三维窗口中创建多义线,返回ITerrainPolyline5对象。

例子

C#:

privatevoidCreatePolyline()

{

ITerrainPolyline5ITerrainPolyline=IOjbectManager.CreatePolyline(0,255,HeightStyleCode.HS_ON_TERRAIN,0,"创建线");

ITerrainPolyline.AddVertex(0,1,0,0);ITerrainPolyline.AddVertex(40,1,40,0);

}

 

vbScript:

 

3.2Create2DPolygon

参数

 

类型

 

描述

SageArrayVertices

object

一个数组节点包含三个double值,

这三个double值由x纬度,h高度,

y经度。

如果这个参数是零,将创

建一个空的对象,用户可以获得对

象添加节点。

LineColor

FillOpacity

intdouble

线颜色,RGB值,最小为255。

定义对象的透明度。

0为透明,1为不透明。

FillColor

HeightStyle

int

HeightStyleCode

对象的填充颜色,其值为RGB值。

一个枚举值,主要决定对象在地形上以什么样的方式显示。

GroupID

int

放置对象的组编号,如果为0表示

对象将在根节点下产生。

Description

string

对象在Information窗体中显示的

名称,如果为空字符串,

TerraExplorer将自动为其设置一

说明

个唯一的名称。

例子

C#:

privatevoidbtnCreateObject_Click(objectsender,EventArgse)

{

ITerrainPolyline=IOjbectManager.Create2DPolygon(0,255,0.4,

65525,HeightStyleCode.HS_ON_TERRAIN,0,"创建面");ITerrainPolyline.AddVertex(0,1,0,0);

ITerrainPolyline.AddVertex(10,1,10,0);

ITerrainPolyline.AddVertex(45,1,10,0);

}

vbScript:

 

3.3CreateRectangle

语法

参数

类型

描述

X

double

X坐标

ITerrainRectangle5CreateRectangle(doubleX,doubleY,doubleElevation,doubleObjectWidth,doubleObjectDepth,intLineColor,doubleFillOpacity,intFillColor,HeightStyleCodeHeightStyle,intGroupID,stringDescription)

 

YElevationObjectWidthLineColorFillOpacity

doubledoubledoubleintdouble

Y坐标高程矩形宽

线颜色,RGB值,最小为255。

定义对象的透明度。

0为透明,1为不透明。

FillColor

HeightStyle

int

HeightStyleCode

对象的填充颜色,其值为RGB值。

一个枚举值,主要决定对象在地形上以什么样的方式显示。

GroupID

int

放置对象的组编号,如果为0表示对

象将在根节点下产生。

Description

string

对象在Information窗体中显示的名

称,如果为空字符串,TerraExplorer

将自动为其设置一个唯一的名称。

说明

在三维窗口中创建矩形。

例子

C#:

 

vbScript:

 

3.4CreateRegularPolygon

语法

参数

X

类型

double

描述

X坐标

YElevationRadius

NumOfSegmentsLineColorFillOpacity

doubledoubledoubleint

intdouble

Y坐标

高程半径边数

线颜色,RGB值,最小为255。

定义对象的透明度。

0为透明,1为不透明。

FillColor

HeightStyle

int

HeightStyleCode

对象的填充颜色,其值为RGB值。

一个枚举值,主要决定对象在地形上以什么样的方式显示。

GroupID

int

放置对象的组编号,如果为0表示

对象将在根节点下产生。

Description

string

对象在Information窗体中显示的

ITerrainRegularPolygon5CreateRegularPolygon(doubleX,doubleY,doubleElevation,doubleRadius,intNumOfSegments,intLineColor,doubleFillOpacity,intFillColor,HeightStyleCodeHeightStyle,intGroupID,stringDescription)

 

说明在三维窗口中创建正多边形。

例子

C#:

vbScript:

名称,如果为空字符串,TerraExplorer将自动为其设置一个唯一的名称。

 

3.5CreateCircle

说明该方法能够在三维窗口中创建一个圆。

语法

voidCreateCircle([in]doubleX,

[in]doubleY,

[in]doubleElevation,[in]doubleRadius,

[in,defaultvalue(12)]intNumOfSegments,

[in,defaultvalue(0x0

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1