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

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

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

随着国内互联网环境的大发展,很多公司把完备的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. RESTfull是什么

    经常做接口测试,会看很多接口文档,那怎么识别研发的接口设计是否足够规范,是否符合一些行业标准或准则.那认识了解RESTfull,可以让我们更具有专业性.让我们对接口文档的阅.接口合理性设计识别,做到有 ...

  2. ✅Vue选择图像

    下载 Vue选择图像Vue选择图像 Vue 2.用于从列表中选择图像的组件 演示 https://mazipan.github.io/vue-select-image/ 安装 #纱 纱添加vue-se ...

  3. Docker 开启非认证的2375端口,提供外部访问 Docker

    1.编辑 Docker 服务的配置文件 vi /usr/lib/systemd/system/docker.service 或者 vi /lib/systemd/system/docker.servi ...

  4. CDH5部署三部曲之一:准备工作

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  5. shell-变量的数值运算let内置命令

    1. let命令的用法 格式: let 赋值表达式 [注]let赋值表达式功能等同于:((赋值表达式))  范例1:给自变量i加8 [root@1-241 scripts]# i=2 [root@1- ...

  6. 2017-01-26--编译busybox总结

    错误一: ox@ubuntu:busybox-1.16.0$ make menuconfig Makefile:431: *** mixed implicit and normal rules: de ...

  7. C和C++区别——前置自增与后置自增

    一.先看下面两段完全一样的代码块 /* test.cpp */ int main() { int a = 5; ++a = 7; printf("%d\n", a); return ...

  8. PHP代码审计03之实例化任意对象漏洞

    前言 根据红日安全写的文章,学习PHP代码审计的第三节内容,题目均来自PHP SECURITY CALENDAR 2017,讲完相关知识点,会用一道CTF题目来加深巩固.之前分别学习讲解了in_arr ...

  9. MeteoInfoLab脚本示例:MERRA HDF数据

    MERRA是NOAA的一种再分析资料,HDF数据遵循COARDS协议,读取比较简单.脚本程序: #Add data file folder = 'D:/Temp/hdf/' fns = 'MERRA3 ...

  10. post 和php://input 转

    $_POST['paramName'] 获取通过表单(multipart/form-data)提交的数据.但有时客户端会直接将请求数据以字符串的形式都放到 body 里传递过来,那么服务端就需要使用  ...