Google Earth在铁路选线中应用探究.docVIP

  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文档。上传文档
查看更多
Google Earth在铁路选线中应用探究

Google Earth在铁路选线中应用探究   摘要:Google Earth由Google公司开发的一款三维可视化地球软件,具有成本低,数据开放和可视化等特点,可以满足铁路选线设计中可研阶段的要求,本文对Google Earth的数据进行了分析,通过与实测数据的对比计算Google Earth数据的中误差,编写程序实现了Google Earth的地形数据的提取,具有一定的实用价值。 关键词:Google Earth;选线;可研阶段 中图分类号: F293 文献标识码: A 1引言 Google Earth是一个结合了卫星影像、航天摄影和地图数据而形成的三维交互式的地球虚拟软件,它正在改变着地理信息数据和科研人员的交互方式。随着新的互联网科技及地理信息系统的迅速发展,传统的选线技术手段已经不能满足铁路勘察设计一体化发展的要求,而Google Earth具有较新的免费并且全面的地理信息数据,开放式的接口以及标准化的数据文件,将其作为选线设计的数据源和平台,具有很高的研究价值。 2 GE的二次开发 GE拥有两种扩展接口——KML文件形式和组件COM API形式,随着GE的应用逐渐广泛,它们也满足了用户们的不同需求。基于KML 的开发主要是编写KML 文件生成地理要素,实现数据的动态更新;开发人员可以使用支持COM的可视化编程语言工具如Delphi、Visual Basic、C#进行开发,主要是用来查询和控制GE,包括获取当前视口、控制3D 视角、提取各类信息、使用图层数据库、得到句柄、利用KML文件、三维选线、实现动画效果等以构建自己的程序,高级用户甚至可以使用Python来调用GE的COM接口[1]。 2.1 Google Earth COM API二次开发 Google Earth COM API类库主要提供了11个类库,包括相机、视窗、时间、查询和控制等属性。应用于选线设计时,通过最主要的接口IApplicationGE可以让其他程序访问控制GE,如GE的开关、地图窗口的获取、操作主窗口句柄,还包括地图视角相机对象的获取、转换坐标等复杂操作[2]。 调用GE API类库,首先需要在电脑中安装合适版本的Google Earth,在visual C++中添加新的工程,建立类向导,选择Add Class,然后找到Google Earth的安装路径,添加开始主程序,即实现了GE类库的调用,如图2.1所示。 图2.1引用GE COM API类库 2.2 实现Google Earth坐标数据提取 在设计提取坐标的程序是,主要用到三种坐标系:屏幕坐标系、GE客户端坐标系、工作区坐标系。Window窗体的坐标系是基于设备坐标,在 Windows 窗体中绘制时的基本度量单位是设备单位(通常为像素),也是像素坐标,如图2.2所示,Windows 窗体应用程序用屏幕坐标指定窗口在屏幕上的位置,屏幕的左上角是原点,屏幕上的点与通过 x 和 y 表达的坐标(x,y)一一对应,x 坐标向右递增,y 坐标往下递增。 图2.2 Google Earth屏幕坐标系示意图 利用MouseHook.MouseDown获取的鼠标点击左键的坐标值为屏幕坐标,首先要实现的是,应用Control 类中的函数 PointToClient 和 PointToScreen 可完成至关重要的屏幕坐标向客户端坐标的坐标转换,其中PointToClient可将指定屏幕点的位置计算成工作区坐标,该函数语法为: public Point PointToClient ( Point p );参数p表示要转换的屏幕坐标 Point,该函数返回的 Point表示转换后的 Point(以工作区坐标表示)。调用函数获取当前工作区的宽度和高度,再依据两种坐标系之间的数学关系(如下)完成屏幕坐标到GE客户端坐标的转换。 width = this.FindForm().Width; hight = this.FindForm().Height; x = (X - width / 2) / width*2; y = (Y - hight / 2) / hight*2; 其中width为当前工作区的宽度;hight为当前工作区高度;x、y为GE客户端坐标;X、Y为工作区的坐标。 最后通过调用IApplication类的函数GetPointOnTerrainFromScreenCoords(),将屏幕坐标点转化为地理坐标形式。 在获取高程数据的过程中,为防止GE客户端无响应,不要进行其他操作;为了保证获取地面线的精度,利用SetCameraParams()函数时,在设定spe

文档评论(0)

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

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

1亿VIP精品文档

相关文档