基于GoogleEarth原生COMAPI的二次开发(762.5KB).docVIP

基于GoogleEarth原生COMAPI的二次开发(762.5KB).doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于GoogleEarth原生COMAPI的二次开发(762.5KB)

基于Google Earth 3D原生COM API的二次开发 【摘要】 本文给出了Google Earth原生COM API调用的步骤和基本方法,实现了Google Earth的登录、漫游、绘图、查找、UI控制等基本的功能,突破了Google Earth API只能通过Javascript API调用的限制,并给出了Google Earth API Javascript API翻译为通用语言的一般方法。 【关键字】:Google Earth , GEPlugin, COM, API, GIS, Delphi 前言 Google Earth是谷歌公司出品的一款卫星地图软件,其发布的时候,给人以惊艳的感觉,开启了GIS的新时代,从此世界上有无数的人,乐此不疲地以“上帝之眼”俯瞰、探索整个地球。谷歌提供了地图的两种版本:Google Maps和Google Earth。其中Google Maps是数字地图、2D卫星图,主要在网页上应用较多;Google Earth是客户端软件,是3D实景地图。 作为一个GIS系统,是需要为第三方软件开发者使用的,基于这个GIS平台系统,我们可以开发出各种应用。目前应用最广泛的GIS系统,包括MapInfo, ArcGIS, SuperMap等等,这些GIS系统都提供了完整的二次开发接口,开发者可以很好地调用这些开发接口实现自己的功能,但遗憾的是Google仅提供了基于浏览器的Javascript API接口,对Google Earth 3D(GE3D)的开发,Google语焉不详,文档也极其匮乏,官方并不鼓励使用Google Earth 3D COM接口,但Google Earth 3D在程序中实际上有着良好的应用效果:无需浏览器支持,直接操控COM API,性能好;不通过浏览器插件方式加载,稳定性好,适用性好;直接嵌入程序内部,占用资源少,对大数据量有较好的支持,可控性好,对用户比较友好,实用性较强。 Google 官方网站提供了大量的Javascript API接口和例子,同时网络上有一些Google Earth OLE API的文档,但他们实际上都是基于Google Earth的OLE接口(GoogleEarth.ApplicationGE)来做的,并不是针对GE3D的本身的编程,GE OLE控制只能做到控制菜单,视图显示等主界面的一些控制,只能进行简单的标记控制等等,而且调用后会后台启动Google Earth主程序。本文提出的二次开发是完全基于Google Earth 原生的COM API,研究了其GE3D COM API接口,并给出了Google Earth 3D COM API的基本应用方法。 Google自Google Earth 5.2之后,未公开GE3D的开发接口和Typelib,本文将对基于GE3D的二次开发有重大的促进作用。 Google Earth客户端的机制 Google提供了Google Earth这个客户端程序,可以连接Google Earth服务器,用户利用GE可以做一些非常有趣的操作和探索,然而许多开发者并不想要一个GE,而是希望自己能够实现类似GE的功能,嵌入自己的程序当中。要实现类似的功能,我们可以从Google Earth客户端开始入手研究。 GE(Google Earth)客户端,本质是基于GE3D做的开发,封装了主程序界面框架、绘图机制等,形成一个完整的程序的。其核心还是GE3D,因此,只要我们研究好了GE3D,我们完全可以实现一个类似GE客户端的程序,本文将重点研究GE3D这个核心部件。 GE OLE Google提供了OLE接口,开发者可以用OLE方式启动Google Earth客户端,并控制Google Earth客户端进行部分操作。OLE必须依赖于Google Earth 客户端主程序的存在,也就是说,以OLE方式运行的时候,会后台启动Google Earth客户端主程序,这显然不是我们所期望的那种无缝嵌入我们的程序的方式。 GE OLE的方式非常简单,例如以下代码片段: // 请在Delphi中创建一个空的Application,然后放置一个Button到主窗体 // 双击Button1,然后编写下述代码 procedure TFrmMain.Button1Click(Sender: TObject); var gei, render, mainhwnd: HWND; begin // 创建 GE OLE 主对象 gei := CreateOleObject(GoogleEarth.ApplicationGE); // 获取渲染窗口,即显示3D地球的区域,并设定其窗口嵌入到我们自己程序的窗口 render := gei.G

文档评论(0)

18273502 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档