KML是基于XML的地理空间标记语言。它是XML的专用子集,遵循XML语法规则,定义了如Placemark、Point等地理语义标签,并需严格闭合、区分大小写;2008年成为OGC标准。

KML 文件是一种专用于表达地理空间信息的文本文件,本质是 XML 的一种具体应用形式。它不是独立于 XML 的新语言,而是严格遵循 XML 语法规则、针对地理数据定义的一套标签体系。
KML 是基于 XML 的专用标记语言
KML 全称 Keyhole Markup Language,由 Keyhole 公司(后被 Google 收购)设计,2008 年成为开放地理空间联盟(OGC)正式标准。它的所有结构都符合 XML 规范:有根元素(如
这意味着: - 你可以用任意文本编辑器打开 .kml 文件,看到清晰的层级结构; - 任何支持 XML 解析的程序(如 Python 的 xml.etree 或 JavaScript 的 DOMParser)都能读取 KML 内容,只是需要额外理解其地理语义; - 无效的 XML(比如标签未闭合、字符未转义)会导致 KML 在 Google 地球或 ArcGIS 中无法加载。
KML 用 XML 标签描述地理对象
XML 提供语法骨架,KML 在其上定义了地理语义标签。例如:
-
表示一个地理标注,可包含名称、描述、几何体和样式; -
、 、 gon> 分别定义点、线、面的位置坐标; -
和
控制图标颜色、大小、图标路径等可视化效果; -
利用 XML 的可扩展性,支持动态加载远程 KML 或实时更新数据。
这些标签本身没有地理含义,但 KML 规范赋予它们明确的空间解释——比如
KML 不是通用 XML,但完全兼容 XML 工具链
你不能把任意 XML 文件当作 KML 打开,反之亦然。KML 是 XML 的受限子集:它只允许特定元素和属性,且有严格的嵌套逻辑(如
- 可用 XSLT 转换 KML 结构(比如提取所有坐标生成 CSV);
- 可用 XPath 查询特定地标(如 //Placemark[name="北京站"]);
- 可用 XML Schema(.xsd)验证 KML 文件是否符合 KML 2.2 或 2.3 规范;
- 压缩为 KMZ 时,内部仍是 UTF-8 编码的 XML 文本,只是打包进了 ZIP 容器。
简单说:XML 是普通话,KML 是带地理口音的普通话——听得懂普通话的工具,稍加训练就能处理 KML。










