当前位置:文档之家› 基于VC_的GoogleEarthKML地标文件的自动生成及应用

基于VC_的GoogleEarthKML地标文件的自动生成及应用

·北京测绘·2009年第2期基于VC++的Google Earth KML地标文件的

自动生成及应用

王艳,何凭宗

(中南大学信息物理工程学院,湖南长沙410083)

[摘要]利用谷歌地球实现测量控制点可视化管理的一种方法:首先将BJ-54坐标转换为Google Earth

支持的WGS-84坐标,然后用KML语言和VC++批量生成控制点地标并将其导入Google Earth中。与传统的利

用点之记的方法相比,这种方法更加简单方便,精度高,寻找测量控制点更加迅速;与手工单个标注的方法相比,批量标注的方法效率更高,更适合用于对整个测区控制点的标注和管理。

[关键词]VC++;Google Earth;KML;地标;测量控制点管理

[中图分类号]P231[文献标识码]B[文章编号]1007-3000(2009)02-3

在各种测量工作中,常常需要根据已知测量控制点的坐标,到现场去寻找该点的实际位置。寻找控制点的常用方法,一是先找到这些控制点的点之记,按照点之记的描述去找点;另一种方法是利用手持GPS 的导航功能找点。第一种方法的优点是投资少,但不直观,而且并不是每个点都有点之记;第二种方法是使用方便,找点的精度在10米左右,但找点之前对控制点周围的情况无从知晓,而且要投资数千元买手持GPS。本文介绍利用Google Earth进行测量控制点的可视化标记,投资少,可以从卫星图片上清楚了解测区内控制点的分布情况,使得找点之前对所寻找点位做到心中有数,大大加快了找点的速度。下面先回顾一下Google Earth的有关知识。

Google Earth(简称GE)是Google公司在2005年6月向全球推出的免费卫星影像软件。用户通过下载和安装全球卫星影像客户端软件,就可在线浏览和使用全球各地的高清晰度卫星图片。由于GE的图像均为较新的卫星影像图及航拍图片,其图像数据库处于不断的更新和完善中,因此,其数据信息的时效性较高,可以用于工程类项目中[1]。GE提供的图片分辨率在高清区域可以达到0.6~1米,如果将测量控制点制作成地标,那么可以在Google Earth直观了解整个测区内控制点的分布情况,由于卫星影像的分辨率高,可在Google Earth上清楚地看到某点的具体方位,比如位于哪个交叉路口,所以对于实地找点极为有用。

在Google Earth上,可以直接用手工标注的方法将单个控制点地标依次导入GE。这种方法简单易学,缺点是效率低,只适合用于在控制点比较少的场合,在控制点很多的情况下,采用手工单个标注的方法比较麻烦。为了克服单个标注的缺点,本文用VC++开发了相关的程序,实现了把测量控制点地标批量导入GE中,使标注的效率大大提高。

1KML简介

KML,是Keyhole标记语言(Keyhole Markup Lan-guage)的缩写,是一种采用XML语法与格式的语言,用于描述和保存地理信息(如点、线、图像、多边形和3D模型等),这些信息可以被Google Earth、Google Maps或微软的Virtual Earth识别并显示,从而可与其他Google Earth或Google Maps用户分享地标与信息。用户可以自己动手编写KML文件,也可以从Google Earth社区等相关网站获得有趣的KML文件。Google Earth处理KML文件的方式与网页浏览器处理HTML和XML文件的方式类似。像HTML一样,KML使用包含名称、属性的标签(tag)来确定显示方式。因此,可将Google Earth视为KML文件浏览器[2]。

KML是原先的Keyhole客户端进行读写的文件格式,是一种XML描述语言,并且是文本格式,这种格式的文件对于GE程序设计来说有极大的好处,程序员可以通过简单的几行代码读取出地标文件的内部信息,并且还可以通过程序自动生成KML文件,因此,使用KML格式的地标文件非常利于GE应用程序的开发。

KML文件的交流是广泛而又多元化的。用户可以通过访问专门的KML地标文件交流论坛来获取更多的资源。各种不同的用户都可以创建KML文件去标记他们的住址,去记录他们的航线。专业人员可以

[收稿日期]2008-10-15

[作者简介]王艳(1985—),女,安徽灵璧人,硕士,摄影测量与遥感专业。32

·北京测绘·2009年第2期

使用KML来提供更为详细的地图资源、模型和趋势。比如:火山爆发、气候类型、地震活动以及矿产分布。建筑师和规划师可以使用KML去做建筑物的结构以及未来规划的蓝图。学生和老师可以使用KML去探索古代和现代未知的世界[3]。

令人可喜的是,Google公司已经不在控制KML,国际标准化组织开放地理信息系统协会(Open GIS Consortium,简称OGC)宣布已经完成了KML的标准化进程。KML2.2已成为OGC的一个执行标准[4]。

2坐标转换及控制点地标文件的生成方法

2.1坐标转换

由于GE只支持WGS-84大地坐标,所以要制作测量控制点的地标,首先需要将其BJ-54高斯坐标转换为WGS-84大地坐标。BJ-54高斯坐标转换为WGS-84大地坐标的步骤为[5]:

1)将所有点的BJ-54高斯平面直角坐标(x,y)化算为大地坐标(B,L);

2)顾及水准高h后将三维大地坐标(B,L,h)按克拉索夫斯基椭球参数化算为三维直角坐标(X,Y,Z);

3)根据公共点求转换七参数,并进行坐标转换;

4)将转换后的三维直角坐标WGS-84(X,Y,Z)化算为大地坐标WGS-84(B,L,H);

5)引入基于WGS-84椭球的高程异常值,由水准高求得基于WGS-84椭球的大地高H;

6)用大地高H代替第四步中获得的高程H。

2.2控制点地标文件的生成

2.2.1单个控制点地标文件的生成

下面是极其简单的单个KML地标文件(KML2.2版本)[6]:

Simple placemark

Longitude,Latitude,Alti-tude

其中,是复合标签,用来描述一个地名标注;是单一标签,用来显示一个标注的简单名称;是一个复合标签,定义地图上一个点的坐标;是单一标签,可以是任何几何形状的子元素,定义每一个点的经度(Longitude)、纬度(Latitude)和高度(Altitude)(按照严格的顺序),经纬

度按照WGS-84标准[7]。

将一个控制点的名称、经度、纬度和高度分别代入上述地标文件中的“地标名称”、“经度”、“纬度”和“高程”,即可得到该控制点的地标文件。

2.2.2多个控制点地标文件的生成

多个控制点地标文件的格式如下:

Folder1

Simple placemark1

Longitude1,Latitude1, Altitude1

……

Simple placemark n

Longitude n,Latitude n, Altitude n

……

Folder n

……

其中,标签为复合标签,表示一个文件夹。只要将多个控制点的相应信息填入上述多个控制点地标文件中,就可以生成批量的地标文件。

如果将多个控制点的坐标等信息依次输入上述地标文件来批量生成控制点地标文件,当测区有许多控制点的情况下,这将会是项很大的工作量。笔者发现可以用VC++来解决这个问题,利用VC++的输入输出函数和循环函数等可以批量生成控制点的地标文件。

3应用实例

将控制点导入GE本文采用了两种方法:

1)将控制点地标文件另存为.kml格式,然后在GE的File菜单中的Open子菜单中打开;

2)将控制点的地标文件直接复制,然后粘贴在GE Sidebar中的Places面板中。

33

·北京测绘·

2009年第2期

Autogeneration and Application of Google Earth KML Placemarks based on VC++

WANG Yan ,HE Ping-zong

(School of Info-physics and Geomatics Engineering,Central South University,Changsha,Hunan,410083,China)

Abstract:A method for visual managing the surveying control points using the Google Earth is introduced in the paper.At first the coordinates transformation between BJ-54coordinates and the WGS-84coordinates is being carried out;Then by using the Keyhole Markup Language and VC++,the placemarks of Control Points are made and induced into the Google https://www.doczj.com/doc/7410613263.html,pared with the traditional method of the description of station ,the method is more straightforward,more visual and more precise,so it is more easy to locate the desired control points.As the placemarks are being generated in patch automatically using VC++,the efficiency is much higher than the single placemark generated manually.

words:Earth ;Keyhole Language ;Placemark ;Surveying Control Points Management

通过上面介绍的自动生成大批量地标文件的方

法,笔者根据某市的部分控制点制作成地标文件导入GE 中,实现了控制点的可视化;对这些控制点,笔者没有参加测量,所以不知道其实地位置,但是将这些控制点导入GE 中后,我们根据GE 上的影像进行现场寻点,结果发现很容易就找到这些控制点实地位置。

4结论

1)与根据传统的点之记找点的方法相比,在GE

上进行测量控制点的标注更直观,根据GE 上的地标

可以快速准确地寻找到控制点。

2)与手工单个标注控制点的方法相比,批量标注控制点的方法效率更高。本文采用VC++编程的方法,通过程序批量自动生成地标文件,更适合用于对整个测区控制点的标注和管理。

3)值得指出的是,测量地标的标注,事关测绘信息的安全,所以标注的地标不能上传,不能与人共享,以防泄密。

参考文献

[1]

陆涛,孔令赏,呙贵春.基于Google Earth 的立交方案演示[J].交通与计算机,2007,25(2):146-148[2]KML [EB/OL].https://www.doczj.com/doc/7410613263.html,/apis/kml

[3]薛亚婷.基于Google Earth 及KML 的数字校园设计与

实现方法研究[D].兰州大学.2007

[4]KML[EB/OL].https://www.doczj.com/doc/7410613263.html,/standards/

kml/[5]

蔡昌盛,高井祥,郑南山等.北京54坐标转换至WGS-84坐标的方法[J].四川测绘,2005,28(3):125-127[6]KML [EB /OL ].http ://https://www.doczj.com/doc/7410613263.html, /apis /kml

/documentation /kml_tut .html#basic_kml

[7]Google Earth KML 中文说明[EB/OL].http://www.step1.

cn/googleapi/map/kml.htm#network_links.2005-12-09

图1某市的部分控制点地标在GE 的Places 面板

中的显示

图2某测区部分控制点地标在GE 影像图中的显示

图3某大学附近的控制点地标

34

相关主题
文本预览
相关文档 最新文档