一、             为什么要用三维地球?

三维地球是地理信息技术的一个重要发展方向,相比较二维地图技术,三维地球最大的特点是更直观更形象地表达地理信息和空间上的方位。我们可以在三维气象模拟、三维虚拟旅游等应用中体验到三维地球生动、形象以及具有良好互动性等特点。

但是从零开始开发实现三维地球需要大量专业知识,各种矩阵、射线跟踪等复杂算法令人头大,同时编程量巨大;三维软件开发的高复杂度极大的限制了软件厂商们在自己的产品中集成酷炫的三维地球功能。

随着国内互联网环境的大发展,很多公司把完备的SDK提供给开发者使用,选择合适、稳定的SDK服务并花费很少的精力即可用快速解决三维地球构建的需求。

二、             三维地球构建过程

LocaSpace是一个专业的三维地理信息平台,它为公共事业单位、企业和科研机构提供功能强大、性能稳定和性价比高的三维地理信息解决方案。LocaSpace 具备包括对地表、地下在内的全空间三维可视化能力,以数字地球方式对地球空间系统内的自然地物,人工设施、人类活动进行一体化显示。

使用LocaSpace SDK可以用最快捷的方式构建三维地球:

开发基础环境搭建:

1)         打开Microsoft Visual Studio 2012选择新建Windows Form Application。选择.NET FrameWork 4

2)         把【LSV-DotNet-SDK】文件夹下所有文件拷贝到项目的【Debug】或者【Release】文件夹中。

3)         在项目管理器的“ 引用”处右击,选择“添加引用”,然后浏览到Debug文件夹,选择GSGlobeDotNet.dll和GSToolTipDotNet.dll。

加载三维球:

1)         在Form1.cs中导入命名空间,加载三维球。

using GeoScene.Globe;

namespace HelloWord

{

public partial class Form1 : Form

{

//创建球对象

GSOGlobeControl globeControl1;

public Form1()

{

InitializeComponent();

//添加球

globeControl1 = new GSOGlobeControl();

this.Controls.Add(globeControl1);

globeControl1.Dock = DockStyle.Fill;

}

}

}

2)         点击【F5】运行,可以看到如下的界面:

3)         随后,对三维球的属性进行初始化,运行后效果如图:

三、             其他可以快速实现的三维GIS功能

除了构建三维地球,使用LocaSpace SDK可以利用的三维GIS功能还包括:加载高分辨率影像图(DOM)高精度三维地形(DEM)、支持真实地下三维场景、加载线划图KML,Shapefile,3ds,obj等数据格式、地球中支持各类几何体、海量的文字标注支持、方便的测量功能、三维模型的编辑功能等。

中科图新已将LocaSpace.SDK提交到GitHub(国外)、码云(国内)两大代码托管平台,两方会同步更新,关注公众号发送关键词“SDK”,即可获得链接。

C#两行代码实现三维地球的更多相关文章

  1. 开源三维地球GIS引擎Cesium常用功能的开发

    Cesium是一个非常优秀的三维地球GIS引擎(开源且免费).能够加载各种符合标准的地图图层,瓦片图.矢量图等都支持.支持3DMax等建模软件生成的obj文件,支持通用的GIS计算:支持DEM高程图. ...

  2. iOS 两行代码解决数据持久化

    在实际的iOS开发中,有些时候涉及到将程序的状态保存下来,以便下一次恢复,或者是记录用户的一些喜好和用户的登录信息等等. 这就需要涉及到数据的持久化了,所谓数据持久化就是数据的本地保存,将数据从内存中 ...

  3. 【转】Delphi+Halcon实战一:两行代码识别QR二维码

    Delphi+Halcon实战一:两行代码识别QR二维码 感谢网友:绝代双椒( QQ号应原作者要求隐藏了:xxxx6348)的支持 本文是绝代双椒的作品,因为最近在忙zw量化培训,和ziwang.co ...

  4. gRaphael——JavaScript 矢量图表库:两行代码实现精美图表

    gRaphael 是一个致力于帮助开发人员在网页中绘制各种精美图表的 Javascript 库,基于强大的 Raphael 矢量图形库.你只需要编写几行简单的代码就能创建出精美的条形图.饼图.点图和曲 ...

  5. javascript两行代码按指定格式输出日期时间

    javascript两行代码按指定格式输出日期时间,具体看代码: function date2str(x,y) { var z ={y:x.getFullYear(),M:x.getMonth()+1 ...

  6. 漂浮广告代码兼容ie、firefox,多个漂浮不冲突,调用只需两行代码

    原文:漂浮广告代码兼容ie.firefox,多个漂浮不冲突,调用只需两行代码 将广告内容放在div中,设置一个id,然后用下面方法调用var adcls=new AdMove("div的id ...

  7. 震惊!Vector两行代码求逆序对,六行代码过普通平衡树

    Vector两行代码求逆序对 背景:济南集训Day7上午T2,出了一道逆序对的裸题,SB的我没看出是逆序对来,于是现场推了一个很刁钻的求逆序对的方法 首先我们想一下冒泡排序的过程,我们不难发现,对于每 ...

  8. HTML禁止右键复制【两行代码实现】

    很多的站长朋友会考虑保护网站的内容不被人复制,或者是不被人轻易的复制,下面就来告诉如何用两行代码来做HTML禁止右键复制html的方法: document.oncontextmenu=new Func ...

  9. 【Java面试题】15 String s="Hello"; s=s+“world!”;这两行代码执行后,原始的String对象中的内容到底变了没有?String与StringBuffer的超详细讲解!!!!!

    1.Java中哪些类是不能被继承的? 不能被继承的是那些用final关键字修饰的类.一般比较基本的类型或防止扩展类无意间破坏原来方法的实现的类型都应该是final的,在java中,System,Str ...

随机推荐

  1. php数据显示在html截取字符

    <?php    echo mb_subsrt($s['content'],0,20,'gbkj')?> gbk也可以是utf8根据实际情况来

  2. ansible-handlers变更执行操作

    1. ansible-handlers在变更执行操作  1) 编写playbook的handlers的配置文件 1 [root@test-1 bin]# vim /ansible/nginx/bin/ ...

  3. docker容器命令1

    docker容器命令 新建并启动容器命令 docker run INAME(镜像名字) 语法:docker run [OPTIONS] INAME [COMMAND] 例子:docker run -i ...

  4. FY2E HDF格式数据处理绘图

    圆盘标称投影数据时静止气象卫星常见的数据产品,比如FY2E静止气象卫星就有很多这样的产品(可以从国家卫星气象中心网站上下载).所谓的圆盘标称投影就是Geostationary投影,主要的投影参数有中央 ...

  5. Springboot配置excludePathPatterns不生效

    Springboot添加拦截器配置excludePathPatterns不生效 code: @Configurationpublic class ServiceConfig implements We ...

  6. centos8上配置openresty/nginx可访问php

    一,创建一个测试站的目录 [root@yjweb data]# mkdir dev [root@yjweb data]# cd dev [root@yjweb dev]# mkdir think_ww ...

  7. IDEA 半天卡住buid(编译)不动

    [号外号外!] 最终解决办法并不复杂,关键在于"遇见问题,怎么样层层分析,多条路径试错,最终解决问题的思路或者能力"--资深码农的核心竞争力之一 背景 今天结束完最近2个月的一个项 ...

  8. Vue留言 checked框案列

    在命令行窗口输入vue create "工程名"命令 来创建vue脚手架

  9. Python 从入门到精通:一个月就够了

    毫无疑问,Python 是当下最火的编程语言之一.对于许多未曾涉足计算机编程的领域「小白」来说,深入地掌握 Python 看似是一件十分困难的事.其实,只要掌握了科学的学习方法并制定了合理的学习计划, ...

  10. v s

    关键字volatile是线程同步的轻量级实现,所以volatile性能肯定比synchronized要好,并且只能修改变量,而synchronized可以修饰方法,以及代码块.             ...