2024年5月5日发(作者:)

科技创新与应用l 2016年第13期 科技创·新 

基于高德地图API加载kml文件的方法研究 

武希涛 

(铁道第三勘察设计院集团有限公司,天津300000) 

摘 要:随着智能手机的发展和普及以及各种地图导航软件的发展,目前手机地图已经成为人们外出的重要工具之一。但是在 

铁路、公路、电力等线性工程的前期设计阶段,还没有专业的手机地图辅助软件。因此,有必要针对此类工程的前期需求进行相 

关研究。文章就提出了一种Android系统中高德地图加入kml文件的方法。 

关键词:高德地图API;铁路;kmt文件 

地图覆盖物的接口。所有叠加或覆盖到地图的内容,统称为地图覆 

矢量图形元素(包括:折线、多边形和圆)等。 

近年来随着铁路的跨越式发展,在现今的各类交通和运输的策 

盖物。如标记、

略中,铁路当之无愧成为运输成本低,效率高以及出行和货运的首 例如,绘制一个虚线三角形的代码如下: 

1概述 

选方式。根据“十三五”规划,到2020年,高铁运营里程达到3万公 

里,这意味着未来五年1万多公里的高铁需要开通。在铁路的前期 

规划设计阶段,外业勘测采集数据还难免的采用手写纸记的方式。 

同时随着智能手机的发展和普及以及各种地图导航软件的发展,导 

航软件逐渐成为大众不可或缺的手机软件。kml(Keyhole Makeup 

Language) ̄-采用扩展性的标记类型语法以及文件式的数据格式, 

能够实现地理数据的客户端展示_l_。kml目前已经成为各大地理信 

息平台通用的标准文件之一。如果铁路线路前期设计选线阶段能结 

合手机导航软件及kml文件,在外业测绘调查阶段实现智能化,必 

将达到事半功倍的效果。其中,kml文件作为数据转换的关键,将其 

融人目前主流的手机地图软件尤为重要。 

2 Android简介 

Android是一种基于Linux的自由及开放源代码的操作系统,主 

要使用于移动设备,如智能手机和平板电脑,由Google公司和开放 

手机联盟领导及开发。目前Android逐渐扩展到平板电脑及其他领 

域上,如电视、数码相机、游戏机等。在优势方面,Android平台首先 

就是其开发性,开发的平台允许任何移动终端厂商加入到Android 

联盟中来。Android平台提供给第三方开发商一个十分宽泛、自由的 

环境,不会受到各种条条框框的阻扰。Google服务如地图、邮件、搜 

索等已经成为连接用户和互联网的重要纽带,而作为Google公司旗 

下的Android平台手机将无缝结合这些优秀的Google服务。 

3解析kml文件的方法 

kml文件是一种特殊XML文件,其读取解析方式与网页浏览器 

处理HTML和XML文件的方式类似,此类文件具有的平台无关性, 

语言无关性,系统无关性,给数据集成与交互带来了极大的方便。目 

前已经成为各大地理信息系统统一的数据文件,因此采用kml文件 

作为数据文件,可以为将来结合其他平台数据提供基础。以下是一 

个简单的kml文件的内容: 

≮ x_l version=”1.0”encoding=“UTF一8” ' 

<kml xmlns=”http://earth.google.com/kml/2.1“’ 

‘Placem8rk' 

<name>Simple Dlacemark《/name> 

<description>Attached to the ground. 

《/description> 

<Point> 

<coordinates>一3,22.8822835425683.37.4222899814e251,e《/cOOrdinates> 

</Point> 

</Placemark></kml> 

目前基于JAVA语言的解析方法都已成熟,基本的解析方式有 

两种,一种叫SAX,另一种叫DOM。SAX是基于事件流的解析,D0M 

是基于XML文档树结构的解析。在此次的研究中,我们主要是提取 

kml文件中各标记点的坐标值, ̄lJ<coordinates>节点中的数值,并按 

照点、线、文字分类处理存储于数据库中。 

4高德地图API 

高德地图API中的Android SDK是一套地图开发调用接口, 

供开发者在自己的Android应用中加入地图相关的功能。开发者可 

以轻松地开发出地图显示与操作、室内外一体化地图查看、兴趣点 

搜索、地理编码、离线地图等功能。其中,高德地图提供了可以添加 

66一 

;/,绘制一个虚线三角形 

polyline=aMap.addpolyline((new Polylin ̄tlons() 

width(10).setDottedLine(true).ge0destc(true) 

color(Color.argb(2ss,1,1, ))); 

在高德地图提供的该类接口中,所有的覆盖物均由地理坐标来 

确定位置,此步可以按照类别读取从kml文件中解析得到的坐标, 

加载至高德地图上,从而实现加载kml文件的目的。 

5 WGS84坐标与高德地图坐标系统的转换 

目前将设计用北京54及西安80坐标系转为WGS84的方法均 

已成熟 但是结合实际情况,网络地图坐标均是经过加密后的坐 

标,因此直接使用由kml解析出来的WGS84坐标导入高德地图,将 

产生标注与地图不匹配的现象。针对,这一现象高德地图API提供 

了一个CoordinateConvert类,该类可以将常见的坐标类型转化为高 

德地图。转换代码如下: 

GeoPoint pos=CoordinateConvert.from6psToAmap(1atitude,longitude); ; 

LatLng location=new LatLng(pos.getLatltudeE60 1.E一6J pos..getLongitu l 

deE6() 1.E 6); 

这样,我们在将覆盖物加载之前需要将解析到的WGS84坐标 

转换成高德坐标后再加载,就可以处理坐标不统一的问题。 

6结论与展望 

文章介绍了一种简单可行的将kml文件加载于高德地图上的 

方法。该方法可以方便外业人员进行定位和寻找目的地。同时,也可 

以结合智能手机的交互操作及定位功能,将采集到的数据存储于数 

据库中并生成kml文件输出。可以大大的节省外业数据的处理时 

间,达到事半功倍的效果。 

参考文献 

Ⅲ蔡晓桦.云计算及其在地理信息系统中的应用【J】.江西测绘,2012 

(1):39—41. 

[2]许捍卫.移动式GIS发展的关键技术及应用前景[J].测绘工程, 

2003.12(1):34—36.