ImageVerifierCode 换一换
格式:DOCX , 页数:79 ,大小:136.45KB ,
资源ID:4912409      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4912409.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Skyline6开发整理源代码JavaScript.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Skyline6开发整理源代码JavaScript.docx

1、Skyline6开发整理源代码JavaScript一, 如何快速把Skyline控件嵌入到现有系统中一、 skyline提供了这样一个控件:二、 三、 我们在程序开发中,只要把它嵌入到现有的WEB页面中即可。四、 这个控件主要是用来装载三维场景的。五、 如果用户想要实现一些功能,比如说定位到某一个指定位置,则需要通过skyline提供的TerraExplorer里面的接口来实现:六、 七、 function CreateTE() var TEObj = document.createElement(object); document.appendChild(TEObj); TEObj.name

2、 = 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,myp

3、os.roll,0,0,0); 八、 九、 很多用过skylinesoft的人觉得:用skyline做二次开发确实很简单。二, 如何解决调试WEB页面时自动运行TERRAEXPLORER软件的问题大家在使用TerraExplorer Developer开发包进行二次开发的时候,特别是进行WEB开发的时候,经常会遇到这样一个问题,就是在WEB页面(html、aspx或者jsp等)中嵌入TerraExplorer Object对象,即,然后运行该WEB页面,在页面加载的过程中,会将TerraExplorer View或者TerraExplorer Pro软件运行起来,一般情况下,只要在当前页面中添

4、加另外一个用于三维场景显示的控件并且需要保证TerraExplorer3DWindow对象先于TE对象被初始化,即可消除前面提到的问题。但在有些时候,我们开发的系统中可能会嵌入许多WEB页面,而且在这些页面中也都会涉及到对TE接口的调用,这时运行我们的系统,也有可能把TerraExplorer软件运行起来,这是我们不想看到的,其实也可以说这就是一种逻辑错误,而消除这个错误的方法很简单,就是我们必须保证所有对TE接口的调用,都要放在TerraExplorer3DWindow对象加载之后。但是我们如何保证在复杂的系统中,理清他们之间的先后顺序呢?这里可以给大家介绍一个实用的解决方法。就是把TE对象

5、放到一个函数里面去初始化,而不是像原来那样直接嵌在页面里。例如:function _$SGCreateTEObj()var obj = window.document.getElementById(TE);if(obj= null)obj = document.createElement(object);document.body.appendChild(obj);obj.name = TE;obj.id= TE;obj.classid= CLSID:3a4f9191-65a8-11d5-85c1-0001023952c1;return obj;这样,在其他需要调用TE接口的时候,我们只需要重

6、新实例化一下TE对象即可。var TE=_$SGCreateTEObj(); var IPlane = TE.interface(IPlane5);这时,大家也许还会有疑问,就是对于TE里面的事件接口_ITerraExplorerEvents5该如何引用呢?在以前Skyline提供给大家的例子中,我们可以看到用javascript中的写法是function TE:OnLoadFinished()或者用vbscript的写法是sub TE_OnLoadFinished()end sub如果说对于TE的事件接口只能用上述固定的方式来实现的话,那么就又回到了最开始的状态,封装TE函数也就没有什么实际

7、意义了。其实在TE的ITerraExplorer51接口中,我们发现有AttachEvent和DetachEvent两个方法,这样就可以做到我们在需要调用TE的事件接口时Attach,不需要的时候Detach:function _$SGCreateEvent() var TE=_$SGCreateTEObj(); var ITerraExplorer = TE.interface(ITerraExplorer51); ITerraExplorer.AttachEvent(OnLButtonDown,_$SGEventOnLButtonDown); function _$SGDelEvent()

8、 var TE=_$SGCreateTEObj(); var ITerraExplorer = TE.interface(ITerraExplorer51); ITerraExplorer.DetachEvent(OnLButtonDown,_$SGEventOnLButtonDown); 如此,我们就可以更加灵活地使用TE的事件接口。希望上述文字能够给大家提供一些帮助或者启发,感谢大家对Skyline的支持。三, 共享一些可以通过网络访问的MPT地址skylinesoft官网上的:skylineglobe.tbpbhuvan.tbpbhuvan1.nrsc.gov.in(印度的)Macau_

9、v2.mpt62.28.57.114mine3D.mpttg.geoid.be四, 基于Skyline的TEP5.1.3实现对矢量SHP文件的加载和渲染我们知道在Skyline的TEP软件中可以添加多种矢量图层,对于常见的SHP文件,我们如何通过接口来开发实现呢?下面代码是基于C#开发的,供大家参考:string XMLLayerInfo = +/ 这里是要加载的shp文件所在的路径 Application.StartupPath + /shp/DC_FF_Parks.shp + shape01 + Name,County + /这里是设置要加载的shp文件的属性字段 1; iLyr = II

10、nfoTree.CreateLayer(point, XMLLayerInfo, 0); iLyr.Load(); iLyr.DisplayAs(ObjectTypeCode.OT_LABEL); iLyr.SetFeature(); iLyr.SetValue(Text, PropertyValueType.PROPERTY_CLASSIFICATION, NAME0); /=Appearance iLyr.SetProperty(Activation Action, 1); iLyr.SetProperty(Line to Ground, 0); iLyr.SetProperty(Line

11、 Length, 1000); iLyr.SetProperty(Line Color, 300); /=Text OptionsiLyr.SetProperty(Text Color, 255); iLyr.SetProperty(Text Size, 12); iLyr.SetProperty(Font, 宋体); iLyr.SetProperty(Bold, 1); iLyr.SetProperty(Underline, 1); iLyr.SetProperty(Italic, 1); iLyr.SetProperty(Multiline Justification, 0); iLyr.

12、SetProperty(Background Color, 100); iLyr.SetProperty(Background Opacity, 0); iLyr.SetProperty(Lock Mode, 0); /=Image Options iLyr.SetProperty(Image file, C:Program FilesSkylineTerraExplorer ProToolsData-LibraryIconsLettersLetter-a.gif); /=Position iLyr.SetProperty(Altitude Method, 1); iLyr.SetProper

13、ty(Altitude, 1000); iLyr.SetProperty(Yaw, 10); iLyr.SetProperty(Pitch, 10); iLyr.SetProperty(Roll, 10); string myStrings = new string9; myStrings0 = 0,0; iLyr.SetProperty(Pivot Alignment, myStrings0); /=Geometry iLyr.SetProperty(Scale, 100); iLyr.SetProperty(Limit Growth, 1); iLyr.SetProperty(Min. V

14、iewing Height, 100); iLyr.SetProperty(Smallest Visible Size, 10); /=Text&Image Alignment iLyr.SetProperty(Text Relative to Image, 0); iLyr.SetProperty(Text Alignment, myStrings0); /=General iLyr.SetProperty(Show In Basic, 0); /- ITerraExplorerMessage5 cMessage = null; string tMessage = Hello Skyline

15、; MsgType eMsgType = MsgType.TYPE_TEXT; cMessage = IObjectManager.CreateMessage(MsgClient.CLIENT_POPUP, tMessage, eMsgType, _HTML_POPUP_FLAGS.HTML_POPUP_ALLOW_RESIZE, 属性信息, -1, 0, 0, 300, 300, 0); iLyr.SetProperty(Message, cMessage.ID.Substring(cMessage.ID.IndexOf(_) + 1, (cMessage.ID.Length - cMess

16、age.ID.IndexOf(_) - 1); /- iLyr.SetProperty(Tool Tip, 公园); iLyr.SetProperty(Default Viewing Distance, 1000);说明:上面的代码实现了对点类型的SHP文件的加载和在三维场景中的渲染显示。五, 如何在WPF中嵌入Skyline提供的三维控件以VS2008开发工具以为:1、创建Visual C# .NET framework 3.0 Windows Application(WPF) 工程2、添加 reference 到 .NET 组件 WindowsFormsIntegration3、添加 re

17、ference 到 .NET 组件 System.Windows.Forms4、添加 reference 到 前面生成的Windows Form DLL5、WPF提供了一个WindowsFormsHost类( 需要添加using System.Windows.Forms.Integration;)用来做Windows Form的容器,我们要用到的Form控件就必须放进这个容器里。我们可以在InitializeComponent()后添加:WindowsFormsHost host = new WindowsFormsHost();AxTerraExplorerX.AxTE3DWindow ax

18、TE3DWindow1 = new AxTerraExplorerX.AxTE3DWindow();host.Child = axTE3DWindow1;this.TEWindow.Children.Add(host);以上代码创建一个Windows Form容器,创建Windows Form控件,将控件添加到容器里,再将容器添加到Grid里,这样界面上就可以看到Form控件了,其布局将受到Grid的控制。附后台完整代码:using System;using System.Collections.Generic;using System.Linq;using System.Text;using

19、 System.Windows;using System.Windows.Controls;using System.Windows.Data;using System.Windows.Documents;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Imaging;using System.Windows.Navigation;using System.Windows.Shapes;using System.Windows.Forms.Integration;/ 在WPF中使用

20、ActiveX控件需要引用的类using TerraExplorerX;/ Skyline提供的类namespace WPFA_DEMO / / Interaction logic for Window1.xaml / public partial class Window1 : Window public Window1() InitializeComponent(); WindowsFormsHost host = new WindowsFormsHost(); AxTerraExplorerX.AxTE3DWindow axTE3DWindow1 = new AxTerraExplore

21、rX.AxTE3DWindow(); host.Child = axTE3DWindow1; this.TEWindow.Children.Add(host); private TerraExplorer TE; private ITerraExplorer51 TE51; private void LoadFLY() this.TE = new TerraExplorerClass(); this.TE51 = (ITerraExplorer51)TE; this.TE51.Load(C:izhaoheskyline.fly); this.TE.OnLoadFinished += new _

22、ITerraExplorerEvents5_OnLoadFinishedEventHandler(TE_OnLoadFinished); private void Window_Loaded(object sender, RoutedEventArgs e) LoadFLY(); void TE_OnLoadFinished() /MessageBox.Show(ok); 六, Skyline TEPro6.0版本在二次开发方面的改进总结2011年4月,Skyline推出了最新版本的软件(version 6.0),相对于以前版本软件,新版本软件改善和增加了很多新能功能;同时,开放的APIs也进

23、行了很大的调整,变得更加丰富合理、简单易用。那么,新版本开放的APIs相对于早期的APIs都有哪些明显变化和改进呢?1. TerraExplorer与SGWorld的关系?在新版本的开发及运行环境中,保持了对以前版本APIs支持的兼容性,通过TerraExplorer接口依然可以调用早期版本的功能APIs;但如果使用新版本的APIs,则需要通过SGWorld接口来实现;不同时期的接口可以混合使用;2. 从软件UI上的变化对应IMenu到ICommand6的变化?在以前版本中,用户通过IMenu接口可以实现对TerraExplorer(包括View和Pro版本)软件菜单功能的快速调用,而新版本软件的界面风格上做了很大的改变,如果要实现对菜单功能的快速调用,则需要通过ICommand6接口来实现;3. 从ILayer5到ILayer6的变化?ILayer6相对ILayer5改进了很多,首先是调整了图层组织结构,增加了FeatureGroups6、FeatureGroup6、Features6 、Feature6、IFeatureAttributes6、IFeatureAttribut

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

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