google earth在铁路选线中应用探究

google earth在铁路选线中应用探究

ID:5597516

大小:28.50 KB

页数:7页

时间:2017-12-19

google earth在铁路选线中应用探究_第1页
google earth在铁路选线中应用探究_第2页
google earth在铁路选线中应用探究_第3页
google earth在铁路选线中应用探究_第4页
google earth在铁路选线中应用探究_第5页
资源描述:

《google earth在铁路选线中应用探究》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、GoogleEarth在铁路选线中应用探究  摘要:GoogleEarth由Google公司开发的一款三维可视化地球软件,具有成本低,数据开放和可视化等特点,可以满足铁路选线设计中可研阶段的要求,本文对GoogleEarth的数据进行了分析,通过与实测数据的对比计算GoogleEarth数据的中误差,编写程序实现了GoogleEarth的地形数据的提取,具有一定的实用价值。关键词:GoogleEarth;选线;可研阶段中图分类号:F293文献标识码:A1引言GoogleEarth是一个结合了卫星影像、航天摄影和地图数据而形成的三维交互式的地球虚拟软件,它正在改变着地理信息数据和科研

2、人员的交互方式。随着新的互联网科技及地理信息系统的迅速发展,传统的选线技术手段已经不能满足铁路勘察设计一体化发展的要求,而GoogleEarth具有较新的免费并且全面的地理信息数据,开放式的接口以及标准化的数据文件,将其作为选线设计的数据源和平台,具有很高的研究价值。2GE的二次开发GE拥有两种扩展接口——KML文件形式和组件COM7API形式,随着GE的应用逐渐广泛,它们也满足了用户们的不同需求。基于KML的开发主要是编写KML文件生成地理要素,实现数据的动态更新;开发人员可以使用支持COM的可视化编程语言工具如Delphi、VisualBasic、C#进行开发,主要是用来查询和

3、控制GE,包括获取当前视口、控制3D视角、提取各类信息、使用图层数据库、得到句柄、利用KML文件、三维选线、实现动画效果等以构建自己的程序,高级用户甚至可以使用Python来调用GE的COM接口[1]。2.1GoogleEarthCOMAPI二次开发GoogleEarthCOMAPI类库主要提供了11个类库,包括相机、视窗、时间、查询和控制等属性。应用于选线设计时,通过最主要的接口IApplicationGE可以让其他程序访问控制GE,如GE的开关、地图窗口的获取、操作主窗口句柄,还包括地图视角相机对象的获取、转换坐标等复杂操作[2]。调用GEAPI类库,首先需要在电脑中安装合适版

4、本的GoogleEarth,在visualC++中添加新的工程,建立类向导,选择AddClass,然后找到GoogleEarth的安装路径,添加开始主程序,即实现了GE类库的调用,如图2.1所示。图2.1引用GECOMAPI类库2.2实现GoogleEarth坐标数据提取7在设计提取坐标的程序是,主要用到三种坐标系:屏幕坐标系、GE客户端坐标系、工作区坐标系。Window窗体的坐标系是基于设备坐标,在Windows窗体中绘制时的基本度量单位是设备单位(通常为像素),也是像素坐标,如图2.2所示,Windows窗体应用程序用屏幕坐标指定窗口在屏幕上的位置,屏幕的左上角是原点,屏幕上的

5、点与通过x和y表达的坐标(x,y)一一对应,x坐标向右递增,y坐标往下递增。图2.2GoogleEarth屏幕坐标系示意图利用MouseHook.MouseDown获取的鼠标点击左键的坐标值为屏幕坐标,首先要实现的是,应用Control类中的函数PointToClient和PointToScreen可完成至关重要的屏幕坐标向客户端坐标的坐标转换,其中PointToClient可将指定屏幕点的位置计算成工作区坐标,该函数语法为:publicPointPointToClient(Pointp);参数p表示要转换的屏幕坐标Point,该函数返回的Point表示转换后的Point(以工作区

6、坐标表示)。调用函数获取当前工作区的宽度和高度,再依据两种坐标系之间的数学关系(如下)完成屏幕坐标到GE客户端坐标的转换。width=this.FindForm().Width;hight=this.FindForm().Height;x=(X-width/2)/width*2;y=(Y-hight/2)/hight*2;7其中width为当前工作区的宽度;hight为当前工作区高度;x、y为GE客户端坐标;X、Y为工作区的坐标。最后通过调用IApplication类的函数GetPointOnTerrainFromScreenCoords(),将屏幕坐标点转化为地理坐标形式。在获取

7、高程数据的过程中,为防止GE客户端无响应,不要进行其他操作;为了保证获取地面线的精度,利用SetCameraParams()函数时,在设定speed的值(0-5)时,不要取的太大,一般取为2,在进行程序设计中,读取点是做一个循环,应在每个读取高程操作过程中间设置合理的时间间隔来保证读取的精度和效率,这个时间间隔其实就是主进程休眠所耗用的时间。3GoogleEarth的数据精度分析将GoogleEarth应用于选线设计时,必须对其数据精度进行分析比较,确定其误差范围,根

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。