skyline中文开发帮助
- 格式:doc
- 大小:185.00 KB
- 文档页数:31
Skyline平台旅游解决方案一、背景介绍Skyline平台是一款旅游解决方案,旨在为旅游行业提供全面的技术支持和服务。
本文将详细介绍Skyline平台的功能特点、应用场景以及解决方案的优势。
二、功能特点1. 旅游信息管理:Skyline平台提供了一个集中管理旅游信息的系统,包括景点介绍、酒店预订、交通信息等。
用户可以通过平台获取最新的旅游信息,方便行程规划和预订。
2. 个性化推荐:基于用户的偏好和历史行程,Skyline平台可以智能推荐适合用户的旅游线路和景点。
通过分析用户的喜好和行为数据,平台可以提供个性化的旅游建议,提高用户的旅游体验。
3. 在线预订和支付:Skyline平台支持在线预订和支付功能,用户可以通过平台直接预订酒店、机票、门票等服务,并进行安全、便捷的支付。
平台与各大旅游供应商合作,确保用户可以获得最优惠的价格。
4. 导航和定位:Skyline平台内置导航和定位功能,用户可以通过手机或导航设备获得准确的路线指引和位置信息。
无论是自驾游还是步行旅行,平台都能提供详细的导航服务,方便用户找到目的地。
5. 旅游攻略和游记分享:Skyline平台提供了丰富的旅游攻略和游记分享功能,用户可以浏览他人的游记,获取旅游经验和建议。
同时,用户也可以将自己的旅游经历分享给其他用户,为大家提供更多的参考和灵感。
三、应用场景1. 旅行社:旅行社可以利用Skyline平台提供的旅游信息管理功能,集中管理各类旅游资源和行程安排。
同时,平台还可以帮助旅行社提供个性化的旅游推荐,提高服务质量和用户满意度。
2. 酒店业:酒店可以通过Skyline平台提供的在线预订和支付功能,吸引更多的客户预订。
平台还可以帮助酒店提供周边景点和交通信息,增加客户的旅游体验。
3. 旅游景点:旅游景点可以通过Skyline平台提供的导航和定位功能,帮助游客找到目的地。
平台还可以提供景点介绍和推荐,吸引更多的游客前来参观。
四、解决方案的优势1. 全面的功能:Skyline平台提供了全面的旅游解决方案,包括信息管理、个性化推荐、在线预订和支付、导航定位等功能。
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软件开发接口分类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递增的数据。
OnInputModeChangedThis method is called when the TerraExplorer Input mode is changed (e.g., switching from free flight mode to measurements mode).当TerraExplorer输入模式被改变时调用这个方法(如由自由飞行方式到测量方式)语法OnInputModeChanged([in] MouseInputMode NewMode)参数NewMode–定义了输入模式的方式,这个参数含义o MI_FREE_FLIGHT = 0在3D视窗中自由飞行方式o MI_COM_CLIENT = 1通过一个COM自定义输入方式o MI_CONTROLLED_FLIGHT = 2通过一种行为控制相机(如 Fly to, Circle Pattern).o MI_EDIT = 3TerraExplorer正处于编辑输入方式o MI_MEASURAMENT = 4TerraExplorer 正处于测量输入方式.OnLButtonDown当按下鼠标左键被调用语法: OnLButtonDown([in] long Flags,[in] int X,[in] int Y,[in, out] VARIANT*pbHandled)参数:Flags–与其它键相配合的标识o MK_ LBUTTON = 1o MK_ RBUTTON = 2o MK_ SHIFT = 4o MK_CONTROL = 8o MK_ MBUTTON =16X–鼠标X坐标. 这个坐标是屏幕坐标,指的是左上方坐标的X坐标Y–鼠标Y坐标. 这个坐标是屏幕坐标,指的是左上方坐标的Y坐标PbHandled–当设为TURE TerraExplorer 可实现鼠标事件调用,如不希望鼠标响应事件可将值设为FALSE。
OnLButtonUp这个方法当用户抬起鼠标左键时被调用语法OnLButtonUp([in] long Flags,[in] int X,[in] int Y,[in, out] VARIANT*pbHandled)参数:Flags–与其它键相配合的标识o MK_ RBUTTON = 2o MK_ SHIFT = 4o MK_CONTROL = 8o MK_ MBUTTON =16X–鼠标X坐标. 这个坐标是屏幕坐标,指的是左上方坐标的X坐标Y–鼠标Y坐标. 这个坐标是屏幕坐标,指的是左上方坐标的Y坐标PbHandled–当设为TURE TerraExplorer 可实现鼠标事件调用,如不希望鼠标响应事件可将值设为FALSE。
OnMButtonDown这个方法当鼠标中键按下时触发这个对象语法OnMButtonDown([in] long Flags,[in] int X,[in] int Y,[in, out] VARIANT*pbHandled)参数:Flags–与其它键相配合的标识o MK_ LBUTTON = 1o MK_ RBUTTON = 2o MK_ SHIFT = 4o MK_CONTROL = 8o MK_ MBUTTON =16X–鼠标X坐标. 这个坐标是屏幕坐标,指的是左上方坐标的X坐标Y–鼠标Y坐标. 这个坐标是屏幕坐标,指的是左上方坐标的Y坐标PbHandled–当设为TURE TerraExplorer 可实现鼠标事件调用,如不希望鼠标响应事件可将值设为FALSE。
OnMButtonUp这个方法当鼠标中键抬起时触发这个对象语法OnMButtonUp([in] long Flags,[in] int X,[in] int Y,[in, out] VARIANT*pbHandled)参数:Flags–与其它键相配合的标识o MK_ LBUTTON = 1o MK_ RBUTTON = 2o MK_ SHIFT = 4o MK_CONTROL = 8o MK_ MBUTTON =16X–鼠标X坐标. 这个坐标是屏幕坐标,指的是左上方坐标的X坐标Y–鼠标Y坐标. 这个坐标是屏幕坐标,指的是左上方坐标的Y坐标PbHandled–当设为TURE TerraExplorer 可实现鼠标事件调用,如不希望鼠标响应事件可将值设为FALSE。
OnRButtonDown这个方法当鼠标右键按下时触发这个对象语法OnRButtonDown([in] long Flags,[in] int X,[in] int Y,[in, out] VARIANT*pbHandled)参数:Flags–与其它键相配合的标识o MK_ LBUTTON = 1o MK_ RBUTTON = 2o MK_ SHIFT = 4o MK_CONTROL = 8o MK_ MBUTTON =16X–鼠标X坐标. 这个坐标是屏幕坐标,指的是左上方坐标的X坐标Y–鼠标Y坐标. 这个坐标是屏幕坐标,指的是左上方坐标的Y坐标PbHandled–当设为TURE TerraExplorer 可实现鼠标事件调用,如不希望鼠标响应事件可将值设为FALSE。
OnRButtonUp这个方法当鼠标右键按下时触发这个对象语法OnRButtonUp([in] long Flags,[in] int X,[in] int Y,[in, out] VARIANT*pbHandled)参数:Flags–与其它键相配合的标识o MK_ LBUTTON = 1o MK_ RBUTTON = 2o MK_ SHIFT = 4o MK_CONTROL = 8o MK_ MBUTTON =16X–鼠标X坐标. 这个坐标是屏幕坐标,指的是左上方坐标的X坐标Y–鼠标Y坐标. 这个坐标是屏幕坐标,指的是左上方坐标的Y坐标PbHandled–当设为TURE TerraExplorer 可实现鼠标事件调用,如不希望鼠标响应事件可将值设为FALSE。
OnMouseWheel通过鼠标滑轮来对调用些方法语法:OnMouseWheel([in] long Flags,[in] short zDelta,[in] int X,[in] int Y,[in, out] VARIANT*pbHandled)参数Flags–与其它键相配合o MK_ LBUTTON = 1o MK_ RBUTTON = 2o MK_ SHIFT = 4o MK_CONTROL = 8o MK_ MBUTTON =16ZDelta–取得滚动的距离值.这个值是以正负为表达的各120.当值小于零时,需要向后滚(此时离用户近)当大于零时,需要前滚(此时离用户远)X–鼠标X坐标. 这个坐标是屏幕坐标,指的是左上方坐标的X坐标Y–鼠标Y坐标. 这个坐标是屏幕坐标,指的是左上方坐标的Y坐标PbHandled–当设为TURE TerraExplorer 可实现鼠标事件调用,如不希望鼠标响应事件可将值设为FALSE。