GoogleEarth二次开发(资料一)
C调用GoogleEarthCOMAPI开发

C#调用GoogleEarth COM API开发一、准备Google Earth提供了个人免费版、Plus版、Pro版,个人开发只安装个人免费版就可以了,如果需要更多的功能,那么只有每年上交$400购买专业版了到目前为止,GoogleEarth的二次开发接口还比较少,功能太弱,仅仅提供了1.0的类库。
GoogleEarth COM API参考文档可以在这里找到:/index.htmlC#调用COM的参考资料多如牛毛,大家可以到网上搜一下二、例子这里提供一个利用VS2008 + Google Earth 5.0开发一个“Hello world”程序首先,确保已经正确安装GE,打开VS2008 ,新建一个Windows应用程序项目,在“项目”菜单中选择“添加引用…”,切换到“COM”选项卡,选择“Google Earth 1.0 Type Library”,其实就是Google Earth的主程序在项目的引用中你可以看到已经添加了一个EARTHLib的引用,然后我们就可以调用其中的接口进行开发了。
下面就是小例子的代码(功能很简单,只有三个,打开GE,然后让GE保存一张截图,然后可以打开这个截图看看。
呵呵)1://功能:GE实例2://描述:GE COM API网址:/index.html3://作者:温伟鹏4://日期:2008-01-205:6:using System;7:using;8:using ponentModel;9:using System.Data;10:using System.Drawing;11:using System.Text;12:using;13:using EARTHLib;14:using;15:using System.IO;16:using System.Diagnostics;17:18:namespace GEDemo19:{20:public partial class Form1:Form21:{22:///<summary>23:///标记GE是否已经启动24:///</summary>25:private bool isGeStarted=false;26:///<summary>27:///定义GE应用程序类28:///</summary>29:private ApplicationGEClass GeApp;30:31:public Form1()32:{33:InitializeComponent();34:}35:36:private void button1_Click(object sender,EventArgs e) 37:{38:StartGE();39:}40:41:///<summary>42:///启动GE43:///</summary>44:private void StartGE()45:{46:if(isGeStarted)47:{48:return;49:}50:51:try52:{53:GeApp= (ApplicationGEClass)Marshal.GetActiveObject("GoogleEarth.Application");54:55:isGeStarted=true;56:}57:catch58:{59:GeApp=new ApplicationGEClass();60:61:isGeStarted=true;62:}63:}64:65:private void button2_Click(object sender,EventArgs e)66:{67:string ssFile=bine(Application.StartupPath, "ScreenShot.jpg");68:69:try70:{71://quality的取值范围在(0,100)之间,质量越高,quality越大72:GeApp.SaveScreenShot(ssFile,100);73:74:MessageBox.Show("成功保存截屏图像:"+ssFile);75:}76:catch(Exception ex)77:{78:MessageBox.Show("保存截屏图像时发生错误:"+ ex.Message);79:}80:}81:82:private void button3_Click(object sender,EventArgs e)83:{84:string ssFile=bine(Application.StartupPath, "ScreenShot.jpg");85:86:if(!File.Exists(ssFile))87:{88:MessageBox.Show("未能找到保存的截屏图像!");89:return;90:}91:92:Process.Start(ssFile);93:}94:95:private void button4_Click(object sender,EventArgs e)96:{97:this.Close();98:Application.Exit();99:}100:101:}102:}继《C#调用GoogleEarth Com API开发(一)》,我Neil又带给大家第二篇文章。
阐述数字高程模型的高程提取方法

阐述数字高程模型的高程提取方法1 概述数字高程模型(Digital Elevation Model),简称DEM。
它是用一组有序数值阵列形式表示地面高程的一种实体地面模型,是数字地形模型(Digital Terrain Model,简称DTM)的一个分支,其他各种地形特征值均可由此派生。
由于DEM 描述的是地面高程信息,它在测绘、水文、气象、地貌、地质、土壤、工程建设、通讯、气象、军事等国民经济和国防建设以及人文和自然科学领域有着广泛的应用。
随着测绘技术的发展,人们获取DEM的手段进行不断的革新。
近年,随着以航天技术、传感器技术、计算机技术为代表的对地观测技术得到了飞速的发展,关于地形数据获取的研究也进入了一个新的阶段。
充分利用现在高科技手段获取的DEM数据,减少重复工作,是一个值得研究的方向。
GE共享了受许可的航空图片、卫星图片及经纬度高程信息,数据涵盖全球。
GE可查看全球每个角落的经纬度、高程、卫星影像等各种信息。
软件更是提供了二次开发的接口Google Earth COM API,可以对其进行简单的控制和信息的获取。
本文基于Google Earth COM API进行二次开发,实现了高程信息的提取,并简单介绍解决高程提取次数限制问题。
2 Google Earth简介及开发接口介绍2.1 软件简介GE是一款Google公司开发的虚拟地球仪软件,它把卫星照片、航空照相和GIS布置在一个地球的三维模型上。
软件功能强大,操作界面简单直观,而且其提供的地理信息完全免费。
GE可从球面到平面、从平面到立面进行多模式、多角度显示;可任意旋转、放大、缩小、漫游,可快捷地查询、导航、定位;既可宏观,也可以极致微观地对地球进行观察和研究;以图像方式直观显示各地区的真实地貌。
2.2 Google Earth的二次开发GE开发了对其进行二次开发的API,将GE的功能以COM组件形式,以一种支持COM开发环境的编程语言来构建具体的应用系统。
基于 Google Earth 的高速公路桩基施工可视化管理系统

基于 Google Earth 的高速公路桩基施工可视化管理系统韦伟;任高峰;侯立波;胡仲春【摘要】In view of the problem that highway has obvious geographical characteristics,and its pile foundation con-struction is of great uncertainty and high risks,using SQL server 2008 for database design and storage,a Visual Con-struction Management System for Pile Foundation of Highway Based on Google Earth has been developed by using C# on Visual Studio 2010.Then the Management System is used in the pile foundation construction management of the 14th section in Jiang-luo Highway.The visual,digital and informationalized management of construction quality,con-struction schedule and construction safety for pile foundation have come true.So it can enhance the level of information management of the construction enterprise.%针对高速公路具有明显的地理特征,其桥梁桩基施工存在较大不确定性和较高风险的问题,使用 SQL server 2008数据库进行数据表设计和存储,在 Visual Studio 2010平台上采用 C#语言开发了“基于Google Earth 的高速公路桩基施工可视化管理系统”。
03.MapGIS VirtualEarth二次开发技术篇

MAPGIS VirtualEarth 二次开发技术篇目录目录..............................................................................................................................................- 2 -1 概述..............................................................................................................................- 3 -2 开发环境介绍..............................................................................................................-3 -2.1开发环境................................................................................................................- 3 -2.2开发软件---Eclipse................................................................................................- 4 -3 MAPGIS VirtualEarth二次开发技术........................................................................- 14 -3.1 JavaScript脚本语言.............................................................................................- 14 -3.2 Java语言...............................................................................................................- 16 -3.3 HTML语言..........................................................................................................- 18 -3.4 JSP技术................................................................................................................- 19 -3.5 数据库(SQL Server/Oracle)..........................................................................- 20 -3.6 XML语言.............................................................................................................- 21 -1 概述MAPGIS VirtualEarth是中地数码拥有自主产权的一套显示三维地球的软件,它依托MapGIS平台为基础,基于Java applet技术和JOGL技术开发。
十九个国内外主流的三维GIS软件

十九个国内外主流的三维GIS软件 介绍:Google Earth以三维地球的形式把大量卫星图片、航拍照片和模拟三维图像组织在一起,使用户从不同角度浏览地球。
Google Earth的数据来源于商业遥感卫星影像和航片,包括DigitalGlobe公司的QuickBird,IKOONOS及法国SPOTS。
特点:Google Earth凭借其强大的技术实力和经验,以其操作简单、用户体验超群的优势吸引了全球近十分之一的人口使用。
发展历程:Google于2004年10月收购了Keyhole公司,随之次年6月推出Google Earth系列软件。
产品形式:Google Earth客户端软件提供三个版本:个人免费版、Plus版、Pro版以及企业级解决方案,用于在企业内部部署Google Earth应用。
二重唱·美国国家航空和航天管理局(NASA):World Wind--最强大的开源地理科普软件介绍:World Wind是NASA发布的一个开放源代码的地理科普软件,由NASA Research 开发,NASA Learning Technologies来发展,它是一个可视化地球仪,将NASA、USGS以及其它WMS服务商提供的图像通过一个三维的地球模型展现,还包含了火星和月球的展现。
软件用C#编写,调用微软SQL Server影像库Terrain Server来进行全球地形三维显示。
它通过将遥感影像与SRTM高程(航天飞机雷达拓扑测绘)叠加生成三维地形。
特点:World Wind最大的特性是卫星数据的自动更新能力。
这种能力使得World Wind 具有在世界范围内跟踪近期事件、天气变化、火灾等情况的能力。
拥有NASA血统的World Wind可以利用Landsat 7、SRTM、MODIS、GLOBE , Landmark Set 等多颗卫星的数据,将Landsat卫星的图像和航天飞机雷达遥感数据结合在一起,让用户体验三维地球遨游的感觉。
(2021年整理)我的家乡

(完整)我的家乡编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整)我的家乡)的内容能够给您的工作和学习带来便利。
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整)我的家乡的全部内容。
Googl e earth在中学地理教学中的应用—以我的家乡为例李雅楠(山东师范大学人口·资源与环境学院地理科学2班)摘要:文章论证Google earth及其主要功能、运用Google earth实现计算机辅助中学地理教学的可能性,并举出实例说明Google earth在中学地理教学中的应用。
在中学地理教学中应用Google earth辅助教学,对于学生了解Google earth的内涵、基本功能及发展趋势,熟练操作Google earth软件,提高实践动手能力等方面均具有重要的推动作用。
Google earth在中学地理教学中具有重要的作用,并且具有广阔的前景。
关键词:Google earth;中学地理教学;应用前言:当前信息技术的突飞猛进,使教育观念正发生着重大变化。
在中学地理教学中,传统的地理图表、地理图像在调动学生学习的积极性、培养学生动手能力等方面已不能满足科技发展对地理教学提出的要求.传统的“粉笔+黑板”式的教学形式很难直观的讲解知识点,反而让学生觉得枯燥难懂。
在地理教学中妥善运用Google earth软件,可以有效地解决这一问题。
它将独立的知识点有机地结合于地球本身,并且可以形象地操作演练,不仅有利于学生掌握知识点,更可以激发学生学习地理的兴趣。
一、Google earth及其主要功能1 Google earth的内涵Google earth是一款虚拟地球的软件,以三维地球的形式把大量的卫星照片、航拍照片和三维图像组织在一起,实现从全新角度来浏览地球,就像一个立体的地球仪,通过地球缩放视野,大到海陆山川的分布,小到城市街道上的汽车都可以尽收眼底。
地方独立坐标系与WGS-84坐标系转换方法及应用

地方独立坐标系与WGS-84坐标系转换方法及应用蒋小军;宋占峰;吴清华【摘要】根据n(n≥3)个点的地方独立坐标及对应的WGS-84坐标,结合平面坐标转换模型、布尔莎模型和三维坐标差转换模型,完成了地方独立坐标系与WGS-84坐标系转换参数的计算.基于该转换模型,利用Google Earth COM API、LibKML 等开发接口,完成了AutoCAD数字地形图数据到Google Earth上的三维表示.【期刊名称】《铁道勘察》【年(卷),期】2010(036)004【总页数】4页(P8-10,13)【关键词】地方独立坐标系;WGS-84坐标系;坐标转换;Google Earth【作者】蒋小军;宋占峰;吴清华【作者单位】中南大学土木建筑学院,湖南长沙,410004;中南大学土木建筑学院,湖南长沙,410004;中南大学土木建筑学院,湖南长沙,410004【正文语种】中文【中图分类】U412.31 概述城市道路是城市社会活动、经济活动的纽带和动脉,是城市综合功能的重要组成部分,也是城市建设水平的集中体现。
最近几年,我国的城市化发展突飞猛进,城市基础设施建设力度加大,城市道路的建设迎来了黄金时期,给城市道路的设计工作者既带来了机遇,也提出了更新、更高的要求。
传统的城市道路设计理念或设计流程存在几个方面的局限性:①线路设计在二维的地形图上进行,地形地物的判别不直观;②地形图的范围有限,设计人员的视野较窄,难以综观全局;③二维地形图提供的信息有限,难以叠加区域三维建筑物、地质等重要信息。
近年来,随着数字摄影测量技术、GIS技术、虚拟现实等高新技术发展,数字地球技术取得重要突破,以GoogleEarth为代表的数字地球软件先后推出,为上述问题的解决提供了较好的途径。
GoogleEarth是拥有全球范围丰富卫星影像和地形数据的三维数字地球平台。
这些卫星影像分辨率较高,现势性较好,对道路规划、方案评审、环境评估具有重要意义。
GoogleEarth在大型活动无线通信保障中的应用研究

第 3期
S C I E N C E&T E C H NO L O GY I N F OR MA T I ON
O I T论坛0
科技信息
G o o g l e E a r t h在大型活动无线通信 保障中的应用研究
陈 栋 ( 1 . 上海交通大学 信息安全工程学院。 中国 上海 2 0 0 2 4 0 ; 2 . 中国移动通信集 团公司 上海有限公司 , 中国 上海 2 0 0 0 0 3 )
【 Ke y w o r d s 】 R a d i i z a t i o n ; T r a f i c Mo n i t o i r n g ; Vi s u a l i z a t i o n ; G o o g l e E a r t h
【 关键词 】 无线 网络优化 ; 话 务监控 ; 可视化 ; G o o g l e E a r t h 【 A b s t r a c t ] T h i s s t u d y i s a b o u t h o w t o m e e t t h e t i m e l y a n d i n t u i t i v e n e e d s o f m o n i t o r i n g t h e s u d d e n l a r g e t r a f f i c l f o w i n r a d i o n e t w o r k
【 摘 要】 本文对如何满足突发大流量话务 时效性和 直观性 的监控 需求进 行 了深入研 究 , 通过 G o o g l e E a r t h 平 台二 次开发 , 设 计 实现 了大
型活动实时话务 可视化监控 系统 , 介绍 了系统构成及应 用价值 , 并对 GO 0 g 1 e E a r t h平 台二次开发 的通用模 式及后续扩展 进行 了展 望。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
GoogleEarth二次开发难点和技巧一、基本步骤1、安装GoogleEarth程序2、对GoogleEarth activex控件进行注册(googleearth.exe /regserver)3、在开发环境中引用googleearth activex二、开发方式针对GE的开发有两种方式,一种是基于GE的com API,一种是基于KML。
基于Com API的开发方式主要用来控制GE的视角、实现动画效果,而基于KML的开发方式主要用来生成地理要素,实现数据的动态更新等。
在实际应用中,需要结合这两种开发方式,这样才能得到比较理想的效果。
1、基于ComAPI的开发GE 公布的API目前是1.0a版,数量比较少,所能实现的功能也不多,在实际开发中主要用来加载KML数据、控制视角和实现动画播放。
A、加载KML数据IApplicationGE. OpenKmlFile(kmlFilePath),加载指定的kml文件到GE中;IApplicationGE.LoadKmlData(kmlData),加载kml文本流到GE中B、控制视角IApplicationGE. SetCamera(ICameraInfoGE,double ),设置GE当前的视角,第一个参数为视角参数,第二个参数为当前视角飞到这个视角的速度(取值范围为0--5);IApplicationGE .SetFeatureView(IFeatureGE,double),从当前视角飞到指定要素处的视角,第一个参数为指定的要素,这个要素的视角由KML中的<LookAt>标签来决定,第二个参数为飞行速度(取值范围为0—5)。
C、动画效果GE中实现动画效果有两种方法,第一种是通过KML中的<Annimation>标签来实现,这个标签内部放置的是每一帧所代表的视图,第二种方式是通过API来实现某个父要素下的所有子要素的视图的轮流切换。
ITimeIntervalGE.Play()开始播放<Annimation>标签中的帧ITourControllerGE. PlayOrPause ()播放某个父要素下的子要素,或暂停播放2、基于KML的开发GE实际上就是一个浏览器,被浏览的数据是KML,KML和GML、SVG等表示矢量图形的标准类似,不过他所描述的是三维的数据结构,可以认为KML是基于XML的一种三维矢量图形标准。
KML的结构组成可以参考(/apis/kml/documentation/kml_tags_beta1.html),从其结构图中可以看出,KML描述地物的方式和通用的GIS相类似,主要由要素、样式、视角、动画等部分组成。
下面我说明KML中几个比较有难度的技术。
A、LOD技术LOD(Level Of Detail)地图分级加载技术,利用LOD技术可以在PC机上浏览海量的影像地图数据。
有GIS平台使用经验的都知道,我们可以设置某个图层在某个比例尺范围之内显示,小于或者超过这个范围则不显示。
LOD技术非常类似,比如说,在视角高度很大的时候,我只加载1:5000W的影像数据,在视角高度很小的时候,我只加载1:1000的数据,这样的话,视角高度越低,我们所能看到的地物越详细。
在KML中用来实现LOD技术的是<Region>标签,这个标签定义了在什么范围内,在什么像素级别范围内显示某个要素。
B、动态数据更新技术在GPS车辆监控系统中,需要对实时数据进行更新。
利用KML中的<NetworkLink>和< refreshMode>标签可以实现数据的实时更新。
将refreshMode设置为onInterval模式,并在< refreshInterval >中设置间隔时间,那么GE 将间隔指定的时间来刷新一下<href>标签中的链接地址,这个链接地址可以是本地磁盘上的一个文件,也可以是一个网络链接。
(可以参照gpsrealtime.kml来理解)C、动画播放技术KML中的< TimeSpan >或者<TimeStamp >标签是用来控制动画播放的,< TimeSpan >或<TimeStamp >都必须包含在在一个要素标签内,表示的是在某个时间点上,GE的视图转到当前要素标签所规定的视图上,并完成相应的动作。
因此每一个包含时间戳标签的要素标签都表示动画过程中的一帧。
(可以参照trackreplay.kml来理解)D、三维建模技术KML中的几何对象都包含三个属性:longitude、latitude、altitude,利用基本的几何图形(如点、线、面),加上高程数据,我们可以构建一些简单的三维图形。
如果需要构建复杂的三维模型,可以借助三维建模工具,如3D max,google sketch,AutoCAD,然后将得到的三维模型转成dae格式即可,这样就可以直接在GE中调用这些三维模型了(利用<Model>标签来引用模型文件的位置)三、几个技巧1、如何将GE的地图控件引用到自定义的窗体中?在一般情况下,我们针对GE的开发都只能基于GE程序本身来进行,所有的操作都必须在GE本身的框架上进行,不能将GE的地图控件像一般可拖放的控件来操作。
怎么解决这个问题呢,这里要用到一下Win API,将GE中的地图部分hook过来。
this._GEMainHandler = (IntPtr)this._googleEarth.GetMainHwnd();//获取GE程序的句柄SetWindowPos((int)this._GEMainHandler, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOSIZE +SWP_HIDEWINDOW);//将GE窗体移到屏幕可视范围之外,使之不可见this._GEHrender = (IntPtr)_googleEarth.GetRenderHwnd();//获取GE的地图控件的句柄this._GEParentHrender = GetParent(this._GEHrender);//获取GE地图控件的父控件的句柄PostMessage((int)this._GEParentHrender, WM_HIDE, 0, 0);//发送消息到地图控件的父控件,使之不可见SetParent(this._GEHrender, customControl.Handle);//将GE地图控件的父控件设置为我们指定的控件使用上面的代码,我们就可以将GE中的地图控件抢夺到我们自己的winform中。
(参考utilities\GEHandler.cs)2、如何为GE提供动态数据?为GE提供动态数据,需要用到上面介绍的KML动态数据更新技术。
在这里提供一个比较好的解决方案,架构动态数据提供服务器。
这有点类似于B/S架构,browser就是GE,Server就是我们要架设的服务器,Server提供的是动态的符合KML规范的数据,GE间隔一定时间去服务器上获取一下数据。
3、如何得到GE中的指定要素?当我们需要对某个要素进行操作时,首先必须得到这个要素。
当KML文件被加载进入GE中后,这个文件也被当作一个要素看待,文件中的这个几何图形、图片、链接等都被当成这个要素的子要素看待。
在GE中获取某个要素只有两个途径:通过要素名称和通过要素的链接地址GetFeatureByName(name)通过要素名称来得到要素GetFeatureByHref(href)通过链接地址来得到要素(得到的是从链接地址中代表的内容)一、基本步骤1、安装GoogleEarth程序2、对GoogleEarth activex控件进行注册(googleearth.exe /regserver)3、在开发环境中引用googleearth activex二、开发方式针对GE的开发有两种方式,一种是基于GE的com API,一种是基于KML。
基于Com API的开发方式主要用来控制GE的视角、实现动画效果,而基于KML的开发方式主要用来生成地理要素,实现数据的动态更新等。
在实际应用中,需要结合这两种开发方式,这样才能得到比较理想的效果。
1、基于ComAPI的开发GE 公布的API目前是1.0a版,数量比较少,所能实现的功能也不多,在实际开发中主要用来加载KML数据、控制视角和实现动画播放。
A、加载KML数据IApplicationGE. OpenKmlFile(kmlFilePath),加载指定的kml文件到GE中;IApplicationGE.LoadKmlData(kmlData),加载kml文本流到GE中B、控制视角IApplicationGE. SetCamera(ICameraInfoGE ,double ),设置GE当前的视角,第一个参数为视角参数,第二个参数为当前视角飞到这个视角的速度(取值范围为0--5);IApplicationGE .SetFeatureView(IFeatureGE,double),从当前视角飞到指定要素处的视角,第一个参数为指定的要素,这个要素的视角由KML中的<LookAt>标签来决定,第二个参数为飞行速度(取值范围为0—5)。
C、动画效果GE中实现动画效果有两种方法,第一种是通过KML中的<Annimation>标签来实现,这个标签内部放置的是每一帧所代表的视图,第二种方式是通过API来实现某个父要素下的所有子要素的视图的轮流切换。
ITimeIntervalGE.Play()开始播放<Annimation>标签中的帧ITourControllerGE. PlayOrPause ()播放某个父要素下的子要素,或暂停播放2、基于KML的开发GE实际上就是一个浏览器,被浏览的数据是KML,KML和GML、SVG等表示矢量图形的标准类似,不过他所描述的是三维的数据结构,可以认为KML是基于XML的一种三维矢量图形标准。
KML的结构组成可以参考(/apis/kml/documentation/kml_tags_beta1.html),从其结构图中可以看出,KML描述地物的方式和通用的GIS相类似,主要由要素、样式、视角、动画等部分组成。
下面我说明KML中几个比较有难度的技术。
A、LOD技术LOD(Level Of Detail)地图分级加载技术,利用LOD技术可以在PC机上浏览海量的影像地图数据。
有GIS平台使用经验的都知道,我们可以设置某个图层在某个比例尺范围之内显示,小于或者超过这个范围则不显示。
LOD技术非常类似,比如说,在视角高度很大的时候,我只加载1:5000W的影像数据,在视角高度很小的时候,我只加载1:1000的数据,这样的话,视角高度越低,我们所能看到的地物越详细。