基于高德地图API加载kml文件的方法研究
2020-10-22
来源:汇智旅游网
科技创新与应用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.