Skyline开发入门(C#)
- 格式:pdf
- 大小:148.11 KB
- 文档页数:5
Skyline产品综合概述(doc 7页)一、Skyline产品综述SkylineGlobe系列软件是一套基于网络的三维地理信息系统平台。
用户可以利用航空和卫星影像、地形高程数据和其他的二、三维地理空间和属性数据,创建自定义的虚拟现实三维可视化场景,进行浏览、查询、分析和网络发布,并开放所有的API,不论是在网络环境还是单机应用,用户能够根据自身的业务需求开发定制功能,建立个性化的三维地理信息系统。
SkylineGlobe系列软件通过TerraBuilder、TerraExplorer和TerraGate三个系列产品各司其职,简便而有序的实现了三维场景创建、展示和网络发布功能。
Skyline技术流程如下图所示:TerraBuilder技术流程如下所示:新建/加载工程数据数据编创建三维地表数据创建直连数据显示层次调整、颜色调整、数据裁切、背景值去除、高程调整高程影像矢量2 TerraExplorer系列产品TerraExplorer 系列产品,除浏览三维地形之外,进行编辑、分析、标注等操作,可以根据用户需求定制三维景观场景,包括一下几种产品:➢TerraExplorer Viewer➢TerraExplorer Pro➢TerraExplorer Plus➢TerraExplorer Run Time Pro TerraExplorer ViewerTerraExplorer Viewer是一款SkylineGlobe 出品的浏览器,用来浏览三维地形场景。
TerraExplorerViewer只具有浏览和简单的查询量测功能,是一款免费下载的软件。
TerraExplorer ProTerraExplorer Pro是TerraExplorer的专业版,它包含TerraExplorer中所有的实时三维地形可视化功能,同时还能够在三维场景上创建二维文本、图片对象和三维模型对象,从标准GIS 文件和空间数据库中读取各种地形叠加所需要的信息,甚至视频、动画,创建交互式应用系统,并且能将整合之后的三维虚拟数字地球场景发布到局域网或互联网上,使用户在任何地方都可以实现轻松快捷的三维交互式体验,以场景的独特视角展现地貌特征、视域、地物间关系等。
Skyline开发⼊门(C#)⼀、帮助⽂档介绍安装好skyline pro后,在安装⽬录下可以找到开发帮助⽂档ProgrammersGuide.chm我是把软件安装在C盘,C:\Program Files\Skyline\TerraExplorer Pro\Help。
帮助⽂档共有七个章节,skylin桌⾯开发主要是⽤到第三章和第四章。
1、TerraExplorer CoClass InterfacesTerraExplorerClass类是创建TerraExplorer组件类的⼊⼝,TerraExplorer CoClass Interfaces中所有的接⼝都实现了TerraExplorerClass类。
以获得IInformationTree5对象为例,代码如下:TerraExplorer terraExplorer = new TerraExplorerClass();IInformationTree5 iInformationTree5 = new TerraExplorerClass();以上两⾏代码,就可以得到iInformationTree5实例了,就可以调⽤iInformationTree5的⽅法。
其他组件类接⼝的使⽤⽅法都是类似的。
TerraExplorerClass除了能实现组件类接⼝,也能直接实例化。
TerraExplorerClass terraExplorerClass = new TerraExplorerClass();terraExplorerClass对象提供了丰富的⽅法,最常⽤的就是Invoke⽅法了,这个⽅法实际上是和IMenu接⼝的Invoke⽅法是⼀样的,只要传⼊菜单命令ID,就可以调⽤skyline已经封装好的很多功能了,菜单命令可以参考开发帮助IMenu接⼝的介绍。
2、ITerraExplorerObject5 Interfaces主要是介绍创建TerraExplorer各种对象的接⼝。
基于VC的skyline密文查询系统的设计与实现摘要随着物联网和移动互联网的迅速成长,人们的生活质量得到保证,日常生活中产生的数据也急剧增长。
大量的生活数据被转换成多维数的形式由数据拥有者集合存储,然后数据拥有者根据这些数据能够提供给用户一些可允许的查询服务,该类型的服务能给用户的外出、治疗服务、科学研究以及消费选择等提供有用的参考信息,因此,此类请求式的查询功能受到了社会各界的普遍关注。
然而,为用户提供查询服务会导致数据拥有者的存储和计算开销都变得巨大,并且数据拥有者也会知道用户的查询信息。
随着云计算技术的逐渐成熟,数据拥有者把数据存储到云服务器上,并由云服务器依照用户的请求提供查询服务己经变为一种新的主旋律。
数据拥有者并不希望自己的数据被云服务器得知是因为数据属于敏感资产,同时用户在查询时也希望自己查询的信息对云服务器和数据拥有者是守口如瓶的,因此,数据隐私安全保护变成一个不容忽略的问题。
隐私数据的保护有用手段是进行加密,研究者对于密文的查询早已做了许多的事情,但是这些方法只可以支持有限的查询计算。
同态加密是不对数据解密直接可以对密文进行相关计算操作,在理论上可以解决数据查询中的隐私安全问题。
正文研究如何利用加密技术做安全的skyline查询。
关键词:skyline查询,数据加密技术,TF_IDF1、绪论1.1 课题背景近一些年来,随着信息技术和因特网的高速成长,所以能够在各行业中普遍应用,数据的来源和产生方式变得多种多样,能被人们观察、搜集、存储和处理的数据数量以爆炸性的速度增长。
大量的数据有利有弊,利的方面是人们可以从海量的数据中发掘出潜在的知识以及规律,可以促进科技和日常生活的发展;另一方面,人们也察觉到,从这些结构各异、不可胜数、快速暴涨的数据中迅速而正确地得到能满足自己需求的资料,并且用户也希望在查询时自己的查询信息是不被服务端和数据拥有者知道的。
但是没有任何一种已知的数据库查询操作可以直接解决以上问题,尽管通过已有的各类操作的组合,只能勉强解决,但是效率也无法令人合意。
Skyline软件介绍Skyline软件介绍—、软件性能总览Skyline 软件是利用航空影像、卫星数据、数字高程模型和其它的2D或3D信息源,包括GIS数据集层等创建的一个交互式环境。
它能够允许用户快速的融合数据、更新数据库,并且有效地支持大型数据库和实时信息流通讯技术此系统还能够快速和实时地展现给用户3D地理空间影像。
Skyline 是独立于硬件之外、多平台、多功能一套软件系统。
Skyline软件系列产品为网络和非网络环境提供了一个三维交互世界的窗口。
以下的工作流程能够指导你在本地或网络环境下进行基本数据生成,数据传输,数据可视化和数据分析等。
产品能够分离开或根据用户霁求进行用户化的特殊走制。
初始化界面和在线帮助工具能够帮助你设走适合自己的三维世界窗口来解决你特殊的商业案例。
从生成飞行文件的地表数据集或从你的GIS投资在二维,三维的knowledgebase简单的传送地表数摇。
Skyline软件能够使你在一个新的视角又基于你已有的IT和GIS构架来观看你的商业案例。
二、Skyline软件系列产品(—)、TerraExplorer SuiteTerraExplorer ProTerraExplorer DeveloperTerraExplorer Run Time ProTerraExplorer Viewer(二)、TerraGate SuiteTerraGateInternet LicenseTerraPhoto3D Server(三)■ TerraBuilder SuiteTerraBuilderTerraBuilder Enterprise EditionTerraBuilder DirectConnect三、产品性能介绍(—)■ TerraBuilder——允许用户快速创建编辑和获得Skyline三维地表数据集。
1 TerraBuilder可以使用户为他们的地理参考的应用创建一个现实影像的、地理的、精确的地球三维模型。
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做二次开发确实很简单。