C#两行代码实现三维地球
一、 为什么要用三维地球?
三维地球是地理信息技术的一个重要发展方向,相比较二维地图技术,三维地球最大的特点是更直观更形象地表达地理信息和空间上的方位。我们可以在三维气象模拟、三维虚拟旅游等应用中体验到三维地球生动、形象以及具有良好互动性等特点。
但是从零开始开发实现三维地球需要大量专业知识,各种矩阵、射线跟踪等复杂算法令人头大,同时编程量巨大;三维软件开发的高复杂度极大的限制了软件厂商们在自己的产品中集成酷炫的三维地球功能。
随着国内互联网环境的大发展,很多公司把完备的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#两行代码实现三维地球的更多相关文章
- 开源三维地球GIS引擎Cesium常用功能的开发
Cesium是一个非常优秀的三维地球GIS引擎(开源且免费).能够加载各种符合标准的地图图层,瓦片图.矢量图等都支持.支持3DMax等建模软件生成的obj文件,支持通用的GIS计算:支持DEM高程图. ...
- iOS 两行代码解决数据持久化
在实际的iOS开发中,有些时候涉及到将程序的状态保存下来,以便下一次恢复,或者是记录用户的一些喜好和用户的登录信息等等. 这就需要涉及到数据的持久化了,所谓数据持久化就是数据的本地保存,将数据从内存中 ...
- 【转】Delphi+Halcon实战一:两行代码识别QR二维码
Delphi+Halcon实战一:两行代码识别QR二维码 感谢网友:绝代双椒( QQ号应原作者要求隐藏了:xxxx6348)的支持 本文是绝代双椒的作品,因为最近在忙zw量化培训,和ziwang.co ...
- gRaphael——JavaScript 矢量图表库:两行代码实现精美图表
gRaphael 是一个致力于帮助开发人员在网页中绘制各种精美图表的 Javascript 库,基于强大的 Raphael 矢量图形库.你只需要编写几行简单的代码就能创建出精美的条形图.饼图.点图和曲 ...
- javascript两行代码按指定格式输出日期时间
javascript两行代码按指定格式输出日期时间,具体看代码: function date2str(x,y) { var z ={y:x.getFullYear(),M:x.getMonth()+1 ...
- 漂浮广告代码兼容ie、firefox,多个漂浮不冲突,调用只需两行代码
原文:漂浮广告代码兼容ie.firefox,多个漂浮不冲突,调用只需两行代码 将广告内容放在div中,设置一个id,然后用下面方法调用var adcls=new AdMove("div的id ...
- 震惊!Vector两行代码求逆序对,六行代码过普通平衡树
Vector两行代码求逆序对 背景:济南集训Day7上午T2,出了一道逆序对的裸题,SB的我没看出是逆序对来,于是现场推了一个很刁钻的求逆序对的方法 首先我们想一下冒泡排序的过程,我们不难发现,对于每 ...
- HTML禁止右键复制【两行代码实现】
很多的站长朋友会考虑保护网站的内容不被人复制,或者是不被人轻易的复制,下面就来告诉如何用两行代码来做HTML禁止右键复制html的方法: document.oncontextmenu=new Func ...
- 【Java面试题】15 String s="Hello"; s=s+“world!”;这两行代码执行后,原始的String对象中的内容到底变了没有?String与StringBuffer的超详细讲解!!!!!
1.Java中哪些类是不能被继承的? 不能被继承的是那些用final关键字修饰的类.一般比较基本的类型或防止扩展类无意间破坏原来方法的实现的类型都应该是final的,在java中,System,Str ...
随机推荐
- PHP 下载七牛云的sdk
1,语法 composer require qiniu/php-sdk 2,出现以下图片内容就是下载七牛云的sdk成功
- 如何让程序像人一样的去批量下载歌曲?Python爬取付费歌曲
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 今天来教大家一个自动化爬虫的工具 selenium selenium Se ...
- BeetleX之webapi自定义响应内容
输出内容多样性在webapi服务中比较普遍的,有的情况使用json,xml,图片和二进制流下载等等:为了适应用不同情况的需要,组件支持自定义内容输出.接下来的主要描述组件在webapi如何定义各种内容 ...
- 微信小程序tabbar不显示2019.04.06
app.json中pages的第一项必须在tabBar中,且这一项需要在pages的list中(与顺序无关)否则无法显示tabBar app.json中pages数组中第一项(首页),必须在tabBa ...
- python算法常用技巧与内置库
python算法常用技巧与内置库 近些年随着python的越来越火,python也渐渐成为了很多程序员的喜爱.许多程序员已经开始使用python作为第一语言来刷题. 最近我在用python刷题的时候想 ...
- Selenium之自动化常遇问题
1.等待方式的选择 大家都知道Selenium中等待方式有三种,当在页面没有找到定位的元素抛出异常,那么加个等待,还有问题就换个等待方式 强制等待 time.sleep(10) 显式等待 driver ...
- 为什么说 Python 内置函数并不是万能的?
本文出自"Python为什么"系列,请查看全部文章 在Python猫的上一篇文章中,我们对比了两种创建列表的方法,即字面量用法 [] 与内置类型用法 list(),进而分析出它们在 ...
- 干货分享:在Windows下使用Visual Studio搭建C语言开发环境
前言:本文将教大家如何使用 VIsual Studio Code 搭建 C 语言开发环境,包括使用 VS Code 如何编译和调试 C 语言程序,需要 用到的工具有 Visual Studio Cod ...
- 【应用服务 App Service】如何移除App Service Response Header中包含的服务器敏感信息
问题描述 有些情况下,当应用部署到App Service上后,在有些Response Header中,可以看见关于服务器的一些信息,这样会导致隐藏的安全问题,所以可以在web.config中移除某些关 ...
- MySQL安装版本介绍
MySQL安装 源码安装 二进制格式的程序包 程序包管理器安装 yum dnf MySQL在CentOS上的情况 6上只有mySQL 7上只有mariadb 8上既有mysql也有mariadb Ce ...