首页 > 范文大全 > 正文

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()函数时,在设定speed的值(0-5)时,不要取的太大,一般取为2,在进行程序设计中,读取点是做一个循环,应在每个读取高程操作过程中间设置合理的时间间隔来保证读取的精度和效率,这个时间间隔其实就是主进程休眠所耗用的时间。

3 Google Earth的数据精度分析

将Google Earth应用于选线设计时,必须对其数据精度进行分析比较,确定其误差范围,根据相关规范的规定,有选择性的应用于选线的不同阶段[3]。

Google Earth的数据主要来自于SRTM,数据由美国太空总署(NASA)和国防部国家测绘局(NIMA)联合测量,按精度可以分为SRTM1和SRTM3,分别对应的分辨率精度为30米和90米数据,影像数据部分主要来自于美国快鸟(Quick Bird)公司,Quick Bird黑白波段分辨率高达0.61米彩色的分辨率为2.44米,最新一代的Quick Bird卫星可分别提供分辨率0.5米的全色图像和2米的多光谱图像,GE上的全球地貌影像的有效分辨率至少为100米,通常为30米。

为了验证GE的高程精度,必须将其与实际测得数据进行统计分析。以兰州和平镇为例,使用RTK随机选取100个观测点测得其高程数据,测点分布位置如图3.3所示

点号 误差

1 -2.11

2 3.28

3 6.13

4 -3.32

5 -4.11

6 2.56

7 7.54

8 -3.26

9 -1.9

……

100 7.891

图3.3 和平镇观测点分布图表3.1 各测点误差表

Google Earth与RTK采用的不是同一个坐标系统,经过转换,实测高程与GE高程的误差值如表3-1。设100个测量误差分别为E1,E2……E100,则测量中误差的计算公式为:

,计算结果=8.782。由地形图航空摄影测量数字化测图规范可知,对于1:50000地形图高程中误差规定为14m,故Google Earth能够满足铁路选线设计预可行性研究和可行性研究阶段中部分设计工作的需要[4]。

4 结论

本文以铁路选线设计为背景目标,对Google Earth主要进行了以下两个方面的研究:

⑴分析了Google Earth的软件特点,数据来源,进行了数据精度对比,验证了Google Earth课用于铁路选线预可研和可研阶段的可行性;

⑵通过Google Earth提供的二次开发接口,在Visual C++平台上,实现了对其地理信息数据的提取,为实现数字化选线提供了基础。

参考文献

[1] 唐东跃, 熊助国, 王金丽. Google Earth及其应用展望[J]. 地理空间信息, 2008(04):110-113.

[2] 江宽, 龚小鹏等编著. GOOGLE API开发详解:GOOGLE MAPS与GOOGLE EARTH双剑合璧[M]. 2008.

[3] 王一波, 邵伟伟, 罗新宇. Google Earth数据精度分析及在铁路选线设计中的应用[J]. 铁道勘察, 2010(05):68-71.

[4] 国家测绘局测绘标准化研究所国家测绘局测绘标准化研究所. 1:5 000 1:10 000 地形图航空摄影测量外业规范[S]. (CN-GB).