Skyline软件应用材料二次开发篇
- 格式:ppt
- 大小:3.55 MB
- 文档页数:36
基于Web的skylineTerraExplorerPro开发实例(源码)基于html和javascript脚本实现,把基本的TerraExplorer Pro⼆次开发的功能体现出来了。
能给skyline 开发的初学者⼀个很好的范例: <html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>lianxi</title></head><body OnLoad="Init();"><object id="TEInformationWindow" classid="CLSID:3a4f9193-65a8-11d5-85c1-0001023952c1" width="300" height="400"><embed width="300" height="400"></embed></object><object ID="TE3DWindow" classid="CLSID:3a4f9192-65a8-11d5-85c1-0001023952c1" width=650 height="400"></object><object ID="TE" CLASSId="CLSID:3a4f9191-65a8-11d5-85c1-0001023952c1"></object><hr/><br><table width="100%" height="133" border="1" align="center" bordercolor="#00FF33"><tr><td width="16%" height="29" align="center"><input type="button" name="createline" value="创建线" onClick="Createpolyline()"><input type="button" name="Container" value="弹新窗⼝" onClick="Container()"></td><td width="16%" align="center"><input type="button" name="ITerraExplorer" value="pro属性" onClick="ProInfo()"><input type="button" name="ITerraExplorer" value="pro⽅法" onClick="MethedInfo()"></td><td width="16%" align="center"><input type="button" name="typeInfo" value="ITerrain属性测试" onClick="ITerrainProInfo()"></td><td colspan="3" align="center"> <input type="button" name="typeInfo" value="IStartPosition的属性" onClick="IIStartPositionInfo()"><input type="button" name="typeInfo" value="IRender的属性" onClick="IRenderProInfo()"><input type="button" name="addprograme" value="添加⼯程⽂件" onClick="AddG()"></td></tr><tr><td height="25" colspan="2"><label>创建路径操作:</label><input type="button" name="createdynamic" value="创建" onClick="CreateDynamic()"><input type="button" name="dynamicPlay" value="播放" onClick="DynamicPlay()"><input type="button" name="dynamicstop" value="停⽌" onClick="DynamicStop()"><input type="button" name="dynamicP" value="暂停" onClick="DynamicP()"> </td><td colspan="2" align="center"> <input type="text" name="text" value="新建组" id="CG" width="120"><input type="button" name="createGroup" value="建⽤户组" id="GN" onClick="CreateGroup1()" ></td><td width="15%" align="center"><input type="button" name="kuaizhao" value="快照" onClick="Menu.Invoke(32783)"><input type="button" name="kzsaveas" value="⿏标模式" onClick="GetMouseMode()"></td><td width="20%"> <input type="checkbox" name="showlaler" checked id="chk1" onClick="LayerVis()"> <label>显⽰和隐藏层</label></td></tr><tr><td height="21" colspan="4">名称:<input name="Name" id="flyName" type="text" value="克拉玛依" size="12" width="100">经度:<input name="flyJD" id="flyJD" type="text" value="87" size="10" width="100">纬度:<input name="flyWD" id="flyWD" type="text" value="43" size="10" width="100"> <input type="button" value="起飞" name="FlyToSomeWhere" onClick="FlyToSomeWhere()"></td><td><input type="button" name="deleteobj" value="删除选定的对象" id="delobj" onClick="DelObj()"></td><td align="center"><input type="button" name="infortree" id="iftv" value="信息树的遍历" onClick="InformationTreeVist()"></td> </tr><tr><td height="19"><input type="button" name="createpolygon" value="创建棱锥"onClick="CreateP()"></td><td> </td><td> </td><td width="17%"> </td><td> </td><td><input type="button" name="loadsave" value="加载我的操作" onClick="LoadFromSaved()"></td></tr><tr><td height="25" colspan="3">经度:<span id="jd"></span>纬度:<span id="wd"></span></td><td colspan="3"> <input type="button" value="保存" name="save" onClick="SaveAs()"> <input type="file" value="E:\a.fly" name="saveas" id="adr" width="10"> <input type="button" value="fly另存为" name="save" onClick="SaveAsOther()"><label></label></td></tr></table></body><script language="javascript">var ITerraExplorer = null;var IInformationTree = null;var Polylineflag = false;var Dynamicflag = false;var IRender = null;var IPolyline = "";var isLine = false;var isRoute = false;var IObiectManager = null;var IStartPosition = null;var Route = "";var IContainer = null;var IPlane = null;var ITerrain = null;var IStartPosition = null;var ITerrain = null;var Menu = null;var ISnapShot = null;var ItemID = "";var curItemID = "";var groupID = "";var createpolygoyflag = false;var isPolygon = false;var IPolygon = "";function Init(){ITerraExplorer = TE.interface("ITerraExplorer5");IInformationTree = TE.interface("IInformationTree5");IRender = TE.interface("IRender5");IObjectManager = TE.interface("IObjectManager5");IStartPosition = TE.interface("IStartPosition");IContainer = TE.interface("IContainer2");IPlane = TE.interface("IPlane5");ITerrain = TE.interface("ITerrain4");IStartPosition = TE.interface("IStartPosition");IRender = TE.interface("IRender5");Menu = TE.interface("IMenu");ISnapShot = TE.interface("ISnapShot2");ITerraExplorer.load("c:\\a.fly");window.setTimeout("test()",800);}function test(){IInformationTree.LoadFlyLayerEx("[TE Application Data]\\本⼈上次的操作记录.fly",0);IInformationTree.LoadFlyLayerEx("[TE Application Data]\\本⼈上次创建的动态路径.fly",0);}function SaveAs(){ITerraExplorer.Save();alert("保存成功");}function SaveAsOther(){var txt = document.getElementById("adr").value;if(txt!=""){ITerraExplorer.SaveAs(txt);alert("保存成功");}elsealert("请输⼊要存储的位置!");}function Createpolyline(){Polylineflag = true;IRender.SetMouseInputMode(1);}function CreateDynamic(){Dynamicflag = true;IRender.SetMouseInputMode(1);}function TE::OnLButtonDown(flag,X,Y,Handled){if(Polylineflag)CreatePolylineVB(X,Y);if(Dynamicflag)CreateDynamicVB(X,Y);if(createpolygoyflag)CreatePolygonVB(X,Y)}function TE::OnRButtonDown(flag,X,Y,Handled){Polylineflag = false;Dynamicflag = false;isLine = false;isRoute = false;IRender.SetMouseInputMode(0);curItemID = "";createpolygoyflag = false;}function Container(){//欢迎使⽤本产品!!的地⽅也可使⽤ URL定位IContainer.HTMLPopup (0, 50,50,350,350,"容器窗⼝", "欢迎使⽤本产品!!" ,2, -1 ); }function ProInfo(){alert(ITerraExplorer.TYPE);alert(ITerraExplorer.FlyName);alert(ITerraExplorer.DisplayErrorMessages = 1);}function MethedInfo(){alert(ITerraExplorer.GetUserUnits(0,3,5,7));alert(ITerraExplorer.GetTEVersion("5","00","38"));}function ITerrainProInfo(){alert("mpt的⽂件名:"+ITerrain.MPTName);alert("SystemKey的⽂件名:"+ITerrain.SystemKey);alert("GroupKey的⽂件名:"+ITerrain.GroupKey);alert("DatumKey的⽂件名:"+ITerrain.DatumKey);alert("UnitKey的⽂件名:"+ ITerrain.UnitKey);alert("EPSG的⽂件名:"+ ITerrain.EPSG);alert("Description的⽂件名:"+ ITerrain.Description);}function IIStartPositionInfo(){alert("开始坐标X"+IStartPosition.StartX);alert("开始坐标Z"+IStartPosition.StartZ);}function IRenderProInfo(){alert(IRender.HudMode = 6);}function CreateGroup1(){var groupID = null;var GroupName = document.getElementById("CG").value;if(GroupName!="")groupID = IInformationTree.CreateGroup(GroupName,0);elsealert("请输⼊要创建组的名字!");}function TE::OnInfoTreeAction(ItemID,Action,ActionParam){curItemID = ItemID;}function LayerVis(){if (document.getElementById("chk1").checked)IInformationTree.SetGroupVisibility(IInformationTree.FindItem("0"),true); elseIInformationTree.SetGroupVisibility(IInformationTree.FindItem("0"),false); }function FlyToSomeWhere(){var tName,tX0,tZ0tName = document.getElementById("flyName").value;tX0 = document.getElementById("flyJD").value;tZ0 = document.getElementById("flyWD").value;CreateLabelFlyTo(tName,tX0,tZ0);}function CreateLabelFlyTo(txt,x1,z1){var LabelInfo = new Object();LabelInfo.Text = txt;LabelInfo.Scale = 1;LabelInfo.bgColor = 0xff00;IObjectManager.CreateLabel(LabelInfo,x1,z1,2000.0);IPlane.FlyTo(x1,z1,2000.0,117.98,0,-35,"Oval");}function DelObj(){if(curItemID ==""){alert("请选定你要删除的对象!");}else{IInformationTree.DeleteItem(curItemID);alert("删除成功!");curItemID ="";}}function InformationTreeVist(){var groupID = IInformationTree.GetNextItem(0, 11);if (groupID == 0){alert("信息树中⽆对象!");return 0;}elseInformationTreeAll(groupID);}function InformationTreeAll(groupID){var a,b,c;if (groupID == 0)return 0;else{b = confirm(IInformationTree.GetItemName(groupID)+"__ID:"+groupID); if(b == false){return 0;}a = groupID;groupID = IInformationTree.GetNextItem(groupID,11);if(groupID == 0){groupID = IInformationTree.GetNextItem(a,13);if(groupID == 0){groupID = IInformationTree.GetNextItem(a,15);c = groupID;groupID = IInformationTree.GetNextItem(c,13);groupIDwhile(groupID == 0 ){groupID = IInformationTree.GetNextItem(c,15);groupID = IInformationTree.GetNextItem(groupID,13);if (groupID == 0)return 0;}}}InformationTreeAll(groupID);}}function LoadFromSaved(){alert(IInformationTree.LoadFlyLayerEx("[TE Application Data]\\e.fly",0)); }/*function CreateP(){createpflag = true;IObjectManage.CreatePyramid(x,y,);}*/</script><script language="vbscript">function CreatePolylineVB(x,y)dim outX,outY,outH,ObjectIDIRender.ScreenToWorld x,y,63,outX,outH,outY,ObjectIDif curItemID<>"" thenif IInformationTree.IsGroup(curItemID) thenif isLine = false thenisLine = trueSet IPolyline = IObjectManager.CreatePolyline(0,16744555,2,curItemID,"创建线") elseIPolyline.AddVertex outX,outH,outY,0end ifIInformationTree.SaveFlyLayer "本⼈上次的操作记录.fly",curItemIDelsemsgbox "你选择的是对象不能容纳对象,请选择组!"end ifelsemsgbox "请选择容纳对象的组!"end ifend functionfunction CreateDynamicVB(x,y)IRender.ScreenToWorld X,Y,63,outX,outH,outY,ObjectIDif curItemID<>"" thenif IInformationTree.IsGroup(curItemID) thenif isRoute = false thenset Route = IObjectManager.CreateRoute (empty,0,curItemID,"动态路径")isRoute = trueelseRoute.AddWaypoint outX,outH,outY,0,-45,0,-45,0,100,""end ifIInformationTree.SaveFlyLayer "本⼈上次创建的动态路径.fly",curItemIDelsemsgbox "你选择的是对象不能容纳对象,请选择组!"end ifelsemsgbox "请选择容纳对象的组!"end ifend functionfunction DynamicPlay()Route.Playmsgbox "播放动态路径"end functionfunction DynamicP()Route.Pausemsgbox "暂停播放动态路径"end functionfunction GetMouseMode()msgbox IRender.GetMouseInputModeend functionfunction TE_OnFrame()dim x1,y1IRender.GetMouseInfo 1,x1,y1ObjType = 0IRender.ScreenToWorld x1,y1,ObjType,WorldX,WorldHeigth,WorldY,ObjectIDdocument.getElementById("jd").innerHTML = WorldXdocument.getElementById("wd").innerHTML = WorldYend function</script></html>。
Skyline软件⼆次开发初级——3如何在WEB页⾯中的三维地图上创建⼏何对象1.在地⾯上绘制⼀条折线:<html><head><title>Create Polyline</title><object id="SGWorld" classid="CLSID:3a4f91b1-65a8-11d5-85c1-0001023952c1" style="visibility:hidden;height:0 "></object><script type="text/javascript">function Init(){// geometry creator can work on WKT, WKB or array of x,z,y coordinatesvar geometry = SGWorld.Creator.GeometryCreator.CreateLineStringGeometry([-114.73656, 36.01659,0, -115.14515, 36.15498,0, -118.24834, 34.05090,0]);var color = SGWorld.Creator.CreateColor(255, 0, 0, 0.7);// 2 in AltitudeTypeCode means on terrain, 0 means add to rootvar line = SGWorld.Creator.CreatePolyline(geometry, color, 2, 0, "my poly on terrain");line.LineStyle.Width = 15000; // 15000m (15km)line.Position.Distance = 600000.0; // set max viewing distance in metersSGWorld.Navigate.FlyTo(line);}</script></head><body onload="Init();"></body></html>2. 在空中绘制⼀条折线:<html><head><title>Create Polyline</title><object id="SGWorld" classid="CLSID:3a4f91b1-65a8-11d5-85c1-0001023952c1" style="visibility:hidden;height:0 "></object><script type="text/javascript">function Init(){var geometry = SGWorld.Creator.GeometryCreator.CreateLineStringGeometry([-114.73656, 36.01659, 10000, -115.14515, 36.15498, 300000, -118.24834, 34.05090, 700000]);// 3 in AltitudeTypeCode means absolute, 0 means add to rootvar line = SGWorld.Creator.CreatePolyline(geometry, "#ff0000", 3, 0, "my poly");line.Position.Distance = 900000.0; // set max viewing distance in metersSGWorld.Navigate.FlyTo(line);}</script></head><body onload="Init();"></body></html>3.绘制多边形:<html><head><title>Create Polygons</title><object id="SGWorld" classid="CLSID:3a4f91b1-65a8-11d5-85c1-0001023952c1" style="visibility:hidden;height:0 "></object><script type="text/javascript">function Init(){var pointsUtah = SGWorld.Creator.GeometryCreator.CreateGeometryFromWKT("POLYGON((-114.03822 41.99547,-111.04795 41.99626,-111.05028 40.99663,-109.04763 40.99847,-109.04782 36.99664,-114.04313 36.99656,-114.03822 41.99547))");// 2 in AltitudeTypeCode means on terrain, 0 means add to rootvar polyUtah = SGWorld.Creator.CreatePolygon(pointsUtah, "#ff0000", SGWorld.Creator.CreateColor(0, 255, 255, 40), 2, 0, "Utah"); //polyUtah.LineStyle.Width = 5000; // 5000m (5km)var pointsWyoming = SGWorld.Creator.GeometryCreator.CreateGeometryFromWKT("POLYGON((-111.05265 44.99576,-104.05934 44.99734,-104.05120 41.00322,-111.05028 40.99663,-111.05265 44.99576))");// 2 in AltitudeTypeCode means on terrain, 0 means add to rootvar polyWyoming = SGWorld.Creator.CreatePolygon(pointsWyoming, SGWorld.Creator.CreateColor(255, 255, 0, 10), null,2,0, "Wyoming"); polyWyoming.LineStyle.Width = 20000; // 20000m (20km)polyWyoming.Position.Distance = 1600000;SGWorld.Navigate.FlyTo(polyWyoming);}</script></head><body onload="Init();"></body></html>4.绘制圆形:<html><head><title>Create Circle</title><object id="SGWorld" classid="CLSID:3a4f91b1-65a8-11d5-85c1-0001023952c1" style="visibility:hidden;height:0 "></object><script type="text/javascript">function Init(){var circle = SGWorld.Creator.CreateCircle(SGWorld.Creator.CreatePosition(-71.00864, 42.36229,0,2), // Pivot1000.0, // Radius (1000m)SGWorld.Creator.CreateColor(0, 0, 0, 0), // Outline color (in this sample, transparent/no outline)SGWorld.Creator.CreateColor(200, 50, 50, 128) // Fill color);circle.Position.Distance = 3000;SGWorld.Navigate.FlyTo(circle);}</script></head><body onload="Init();"></body></html>5.创建⽂本标签:<html><head><title>Create Basic Labels</title><object id="SGWorld" classid="CLSID:3a4f91b1-65a8-11d5-85c1-0001023952c1" style="visibility:hidden;height:0 "></object><script type="text/javascript">function Init(){var labelPos = SGWorld.Creator.CreatePosition(-122.41519, 37.74346, 100, 2);// Default labelvar label1 = SGWorld.Creator.CreateTextLabel(labelPos, "Default label",SGWorld.Creator.CreateLabelStyle());var labelStyle = SGWorld.Creator.CreateLabelStyle();labelStyle.Bold = true;labelStyle.LineToGround = true;labelStyle.TextColor = SGWorld.Creator.CreateColor(255, 0, 0);// Label 2labelPos.X += 0.001;var label2 = SGWorld.Creator.CreateTextLabel(labelPos, "Bold Red label\r\nwith line to ground", labelStyle);// Labe 3labelStyle.BackgroundColor = SGWorld.Creator.CreateColor(255, 255, 255);labelStyle.Italic = true;labelStyle.LineToGround = false;labelPos.x += 0.001;var label3 = SGWorld.Creator.CreateTextLabel(labelPos, "Red bold italic label\r\nwith white background", labelStyle);// Labe 4labelStyle.BackgroundColor = SGWorld.Creator.CreateColor(255, 255, 255, 0.5);labelStyle.Underline = true;labelPos.y += 0.001;var label4 = SGWorld.Creator.CreateTextLabel(labelPos, "Underlined italic with\r\nsemi transparent background", labelStyle);// Labe 5labelStyle.FontSize = 24;labelStyle.FontName = "Times New Roman";labelStyle.Bold = false;labelStyle.Italic = false;labelStyle.Underline = false;labelPos.x -= 0.002;var label5 = SGWorld.Creator.CreateTextLabel(labelPos, "Font:Times New Roman\r\nSize:24px", labelStyle);SGWorld.Navigate.FlyTo(label1);}</script></head><body onload="Init();"></body></html>6.创建带图⽚的⽂本标签:<html><head><title>Create Image Labels</title><object id="SGWorld" classid="CLSID:3a4f91b1-65a8-11d5-85c1-0001023952c1" style="visibility:hidden;height:0 "></object><script src="abspath.js" type="text/javascript"></script><script type="text/javascript">function Init(){var labelPos = SGWorld.Creator.CreatePosition(-122.46875, 37.72467, 10, 2);var label1 = SGWorld.Creator.CreateLabel(labelPos, "", toAbspath("data/Roundabout-large.gif"),SGWorld.Creator.CreateLabelStyle()); SGWorld.Navigate.FlyTo(label1);labelPos.X += 0.001;labelPos.Altitude += 60;var label2 = SGWorld.Creator.CreateLabel(labelPos,"Under Constructions.\r\nThis label will not be visible\r\nabove ~800000 meters",toAbspath("data/Underconstruction-2.gif"),SGWorld.Creator.CreateLabelStyle());label2.Style.TextOnImage = false;label2.Style.Bold = true;label2.Style.LineToGround = true;label2.Style.MultilineJustification = "left";label2.Style.TextAlignment = "right";label2.Visibility.MaxVisibilityDistance = 800000;}</script></head><body onload="Init();"></body></html>7.创建三维模型:<html><head><title>Create Model</title><object id="SGWorld" classid="CLSID:3a4f91b1-65a8-11d5-85c1-0001023952c1" style="visibility:hidden;height:0 "></object> <script src="abspath.js" type="text/javascript"></script><script type="text/javascript">function Init(){var pos = SGWorld.Creator.CreatePosition(-122.38050, // x37.62331, // y40.0, // height3, // absolute297.0, // yaw15.0); // pitchvar model = SGWorld.Creator.CreateModel(pos, toAbspath("data/747.xpc"), 0.2);SGWorld.Navigate.FlyTo(model);}</script></head><body onload="Init();"></body></html>。
一, 如何快速把Skyline控件嵌入到现有系统中一、s kyline提供了这样一个控件:二、<OBJECT ID="TerraExplorer3DWindow"CLASSID="CLSID:3a4f9192-65a8-11d5-85c1-0001023952c1" ></OBJEC T>三、我们在程序开发中,只要把它嵌入到现有的WEB页面中即可。
四、这个控件主要是用来装载三维场景的。
五、如果用户想要实现一些功能,比如说定位到某一个指定位置,则需要通过skyline提供的TerraExplorer里面的接口来实现:六、七、f unction CreateTE(){var TEObj = document.createElement("object");document.appendChild(TEObj); = "SGAPITEObj";TEObj.id = "SGAPITEObj";TEObj.classid = "clsid:3a4f9191-65a8-11d5-85c1-0001023952c1";return TEObj;}function test(){var TE= CreateTE();var IInformationTree = TE.interface("IInformationTree5");var IPlane = TE.interface("IPlane5");IPlane.SetPosition(mypos.x,mypos.y,mypos.h,mypos.yaw,-90,mypo s.roll,0,0,0);}八、九、很多用过skylinesoft的人觉得:用skyline做二次开发确实很简单。
天地图·XX市服务调用操作手册目录1天地图.XX市 (3)2瓦片地图切图参数 (3)2.1数据范围 (3)2.2电子地图分级 (4)2.3坐标系 (6)2.4瓦片大小 (6)2.5屏幕分辨率 (6)2.6切图原点 (6)2.7瓦片存储格式 (7)3网络地图瓦片服务接口(WMTS服务) (7)3.1服务描述 (7)3.2服务操作 (7)3.3G ET C APABILITIES操作 (8)3.3.1操作简介 (8)3.3.2参数说明 (8)3.3.3调用示例 (8)3.3.4返回结果示例 (8)3.4G ET T ILE操作 (9)3.4.1操作简介 (9)3.4.2参数说明 (9)3.4.3调用示例 (10)3.4.4返回结果示例 (10)3.5示例代码 (1)3.5.1平台API调用例子(JavaScript) (1)3.5.2ESRI ArcGIS Javascipt API调用例 (1)3.5.3C#-AE版 (1)4用户信息 (1)5用户服务信息 (1)5.1XX市市矢量电子地图 (1)5.2XX市市影像电子地图 (2)6技术对接联系人 (2)1天地图·XX市面向公众的“XX市之窗”是“天地图”市级节点,依据XX市市最新最权威的基础地理信息构建统一的在线地图服务平台,提供电子地图浏览、信息点分类搜索定位、XX市景点查看、距离和面积量算、兴趣点标注、公交路线规划等功能,主要包括电子地图、新闻公告、资源中心、我的空间、典型应用、标准规范、开发中心7个模块,以门户网站和服务接口两种形式提供24小时不间断的“一站式”地图服务,满足公众对位置查询等方面的需求,满足企业和专业用户基于地图服务和二次开发接口开展专业应用的需求。
天地图·XX市地址:平台用户可登录天地图·XX市,浏览电子地图模块,同时可在资源中心查看已有的服务资源,用户如有需要相关的服务,可在线进行申请,管理员审批同意后,即可获得服务资源地址。
Skyline软件开发接口分类ITerraExplorerIPlaneIObjectManagerIInformationTreeITerrainIContainerIRenderISnapShotIStartPositionITerraExplorerEventsICoordSys_ITerraExplorerEvents5_ITerraExplorerEvents5主要功能是为ITerraExplore提供事件信息处理功能. 这个开发接口代替了以前的_ITerraExplorerEvents, _ITerraExplorerEvents2,_ITerraExplorerEvents3,_ITerraExplorerEvents4接口, 并扩展了通用事件,双击事件及HUD事件。
什么是HUD?HUD是Head UP Display的英文缩写,又译成抬头显示器(Head Up Display),以下简称HUD,是目前普遍运用在航空器上的飞行辅助仪器。
抬头的意思是指飞行员不需要低头就能够看到他需要的重要资讯。
抬头显示器最早出现在军用飞机上,降低飞行员需要低头查看仪表的频率,避免注意力中断以及丧失对状态的控制。
在skyline软件中HUD指在应用软件时基于地形视窗监视飞行状态及视角图形及文字信息辅助工具。
OnLoadFinished 这种方法在TerraExplorer在加载完成Fly文件时被调用。
OnFileClosing, 这种方法在TerraExplorer关闭Fly文件前通知客户文件关闭前被调用。
OnFrame, 这种方法获取TerraExplorer在飞行时每一个Frame的状态。
OnTerraExplorerMessage 这种方法可以得到交互式触发带有massage对象massage中的内容。
OnObjectAction这种事件当特定对象某一种状态发生变化时被触发语法: OnObjectAction([in] BSTR ObjectID,[in] int Action)ObjectID指特定对象的唯一IDAction 指动态的状态标识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_FOLLOWFROMGROUND = 12以地面的位置观看对象o AC_STOP = 13The object was stopped being played (i.e., after a fly to operation).停止操作o AC_JUMP = 14Jump to the object operation was started.跳跃至对象o AC_DELETE = 15删除对象o AC_EDIT_FINISHED = 16对象完成编辑时o AC_OBJECT_ADDED = 17对象增加到视图中o AC_PLAY = 18运行执行对象o AC_EDIT_STARTED = 20对象开始编辑时OnFileSaveTerraExplorer 在fly文件保存进,执行这个文件语法:OnFileSave()附:用户在保存fly时更新相关信息的数据库可用些事件OnRenderQualityChanged实时地反馈用户浏览更新时地形效果质量值,一般用于loading功能语法OnRenderQualityChanged([in] int Quality)参数:Quality–用户浏览时地形效果质量值. 这个参数是0到100之间以10递增的数据。