首页 > 编程知识 正文

地kml文件,kml文件格式讲解

时间:2023-05-04 09:54:37 阅读:261584 作者:1658

KML文件

KML,即Keynote markup language,最初为Google定义的文件格式,用以描述地图中的关键数据,如路径、标记位置、叠加图层等信息。因此,使用KML文件可以记录一个简单的只包含街道、路径、多边形、标记位置等信息的简单地图,不包含高程、地形地貌等复杂信息。KML文件最终被OGC组织采纳为国际通行标准。

KML文件本质上是一个XML文件,完全遵循XML文件格式。但是,KML文件定义了几个特殊的元素标签,常用标签为:

Placemark:标记或路径

Linestring:路劲的坐标点

Point:标记位置的坐标

Coordinates:经纬度坐标

一个KML文件如下所示:

<?xml version="1.0" encoding="utf-8" ?><kml xmlns="http://www.opengis.net/kml/2.2"><Document id="root_doc"><Folder><name>高速公路</name> <Placemark><name>卫岗隧道</name><Style><LineStyle><color>ffff0000</color></LineStyle><PolyStyle><fill>0</fill></PolyStyle></Style> <LineString><coordinates>118.8385657,32.0429378 118.8338431,32.0439411</coordinates></LineString> </Placemark> <Placemark><name>南京长江隧道</name><Style><LineStyle><color>ffff0000</color></LineStyle><PolyStyle><fill>0</fill></PolyStyle></Style> <LineString><coordinates>118.67057150000001,32.0543862 118.6921381,32.0428005 118.6931683,32.0420084 118.6942853,32.0410913 118.6954844,32.0399309 118.6978042,32.037811</coordinates></LineString> </Placemark></Folder><Folder><name>市级地名</name> <Placemark><name>南京市</name> <Point><coordinates>118.79126,32.06042</coordinates></Point> </Placemark> <Placemark><name>马鞍山市</name> <Point><coordinates>118.49952,31.69933</coordinates></Point> </Placemark></Folder> XML文件解析库TinyXML

既然KML文件是遵循XML文件格式的,因此可以使用XML解析器对KML文件进行解析。本文采用TinyXML。TinyXML是一款高效、高速的XML文件解析工具,TinyXML的说明文档为:

http://www.grinninglizard.com/tinyxmldocs/

由于后面均采用VS2010作为开发环境,建议对TinyXML进行编译生成其动态库Tinyxml.lib。编译时应选择/MD编译选项,否则会造成库冲突。

KML文件解析DLL封装·

KmlParser为封装的DLL,其类图如图所示。

使用KmlFile类的Open函数即可解析KML文件,解析的内容放在m_pKmlFolderVect中。

测试

使用KmlParser解析KML文件,测试结果如图。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。