KML文件是什么 KML地理数据XML格式详解

KML是一种专为地理可视化设计的XML格式,用于在Google Earth等平台描述点、线、面等要素的位置、样式与交互;其文件须以XML声明和OGC命名空间开头,核心结构含,坐标顺序为经度,纬度,高度。

KML(Keyhole Markup Language)是一种专为地理空间数据设计的 XML 格式,本质是用结构化文本描述点、线、面、模型、图像叠加层等地理要素,并定义其位置、样式、交互信息和三维效果。它不是通用数据交换格式,而是面向“可视化表达”的轻量级地理标记语言,核心用途是在 Google Earth、图新地球、奥维地图等平台中快速呈现可交互的地图内容。

KML 文件的基本组成结构

一个合法 KML 文件必须满足 XML 语法规范,并以特定命名空间声明开头:

  • 第一行是标准 XML 声明:,不可有空格或换行前置
  • 第二行必须包含 OGC 官方命名空间:(KML 2.2 是当前主流支持版本)
  • 根元素 下通常嵌套一个 容器,用于组织地理要素
  • 所有地理对象都封装在 中,它是承载“一个可显示实体”的最小单位(如一个地标、一段路线、一块区域)
  • 每个 可包含 (标题)、(悬浮提示或弹窗内容)、几何体( 等)以及可选的

KML 支持的核心地理要素类型

KML 通过不同几何标签表达空间对象,坐标顺序统一为“经度,纬度,高度”,单位为十进制度(WGS84 坐标系):

  • 点(Point):用 116.4074,39.9042,0 表示单个位置,常配合图标与气泡说明使用
  • 线(LineString):多个坐标用空格分隔,如 116.4,39.9 116.5,39.95,适合路径、道路、轨迹
  • 面(Polygon):由闭合环构成,外环定义边界,内环可挖洞;支持 1 拉伸成三维体块
  • 图像叠加层(GroundOverlay):将 JPG/PNG 地图切片铺在地表指定经纬度范围内,适用于历史地图、遥感影像、规划图
  • 网络链接(NetworkLink):动态加载远程 KML,实现数据实时更新(如天气、地震热力图)

KML 的样式与交互能力

KML 不仅描述“在哪里”,还控制“长什么样”和“怎么互动”:

  • 可嵌入 内部或全局定义,通过 (图标)、(文字)、(线条)、(填充)设置视觉效果
  • 颜色值采用 AARRGGBB 十六进制格式(如 ff0000ff 表示不透明红色),A=Alpha(透明度),R/G/B=红绿蓝
  • 支持 HTML 片段,可嵌入图片、超链接、表格,点击地标时自动弹出富文本框
  • 支持时间动画(),配合 Google Earth 时间滑块展示动态过程

KML 与 KMZ 的关系和实用建议

KMZ 是 KML 的 ZIP 压缩包,不是另一种格式,而是打包方案:

  • KMZ 必须包含一个名为 doc.kml(或任意名但需在 ZIP 根目录)的主 KML 文件
  • 图片、图标、3D 模型(.dae)、字体等资源文件需放在 ZIP 内,且 KML 中引用路径必须为相对路径(如 images/marker.png
  • 压缩时务必用标准 ZIP 格式(Windows 自带压缩、7-Zip 默认 ZIP 即可),避免 RAR/7z 等非兼容归档
  • 实际分享时优先发 KMZ:体积更小、资源不丢失、打开即用;调试编辑时用 KML:方便文本编辑器直接修改