XML 的全球定位

XML技术无处不在。如果您不相信,可以尝试连接一个GPS设备到电脑,然后查找任何以“.gpx”为扩展名的文件。我们很快在一个Garmin GPS设备上找到一个名为“Current.gpx”的2MB文件。使用XMLSpy打开该文件,可以看到其中包含XML数据,并且在文件顶部定义了XML模式。

浏览文件内容时,会看到大量的 标签,这些标签记录了经度和纬度,以及

无论您身在世界的哪个角落,XML技术都能告诉您您在哪里。

在 .gpx 文件的开头,我们可以复制 XML Schema 的 URL,然后在 XMLSpy 中直接从网页打开它。

GPX 模式文件在 XMLSpy 中以模式视图打开,我们可以看到它包含了详细的注释说明。双击根元素可以打开 XMLSpy 的内容模型视图。

此 XML 模式描述了一种专门的数据架构,它使用易于理解的标签,方便普通用户使用。 展开 元素,可以深入了解我们在 Current.gpx 文件中看到的 元素的定义。 这些元素也在 XML 模式中进行了详细说明,并提供了关于其用途的清晰解释。

在 XML 中,"X" 代表 "eXtensible",即可扩展。GPX XML 模式中的 "extensions" 元素表明,开发者意识到他们的设计可能无法满足所有可能的需求。在 "Current.gpx" 文件的开头,我们可以在第 2 行看到扩展模式的定义,而从第 3 行开始的元数据表明,Garmin International 为此文件创建了扩展。

Current.gpx 文件包含了 Garmin 的扩展功能,用于记录速度(以 gpxtpx:speed 格式)和方向(以 gpxtpx:course 格式)。

GPS Visualizer这样的网站允许您上传.gpx文件,并将这些文件中的数据在Google地图上进行可视化。但是,当我们上传了Current.gpx文件时,地图上显示出许多颜色线条交织在一起,显得非常混乱。网页上有一个图例,列出了近二十条独立的行程记录,每条记录都标有“ACTIVE LOG”(活动记录)以及一个日期。

所有“图例”条目看起来都非常像.gpx文件部分内容的截图中的第83731行。使用XMLSpy搜索“ACTIVE LOG”可以验证我们的文件确实包含大量自驾游的记录。与许多其他车载导航设备和便携式设备一样,佳明GPS会随着时间的推移,将数据累积到一个大型文件中,每个独立的行程都包含在 and 标签之间。

Altova MapForce 是一个方便的工具,可以用来将这些大型 .gpx 文件分割成更小的文件,每个文件对应一次旅行。 我们可以为映射的输入和输出端都指定 gpx.xsd XML 模式,并使用分组功能,根据 元素的每次出现来分割 Current.gpx 文件,如下面的红色连接线所示。 我们将位于 下方的 元素作为关键,用于标记每次分割点,并用于构建每个输出文件名,同时去除文件名中不允许使用的冒号 ":" 字符。

当我们点击“MapForce 输出”按钮来执行数据映射时,MapForce 会在输入流中每次遇到 "" 时生成一个新的输出文件。下图显示的是生成的 20 个文件中的第 14 个文件。请注意,每个输出文件中都包含了模式定义和元数据(第 2-8 行)。

现在,我们可以在 GPS Visualizer 网站上将任何单个文件映射出来,从而查看一次完整的行程

这类应用程序对于运动员,例如徒步者、登山者、自行车骑行者或跑步者,以及喜欢记录旅程的旅行爱好者来说,都非常实用。有关GPS交换格式、GPX结构以及相关支持资源的更多信息,请访问http://www.topografix.com/gpx.asp。如果您想试用XMLSpy、MapForce或其他Altova工具,您可以点击此处下载免费的30天试用版

编辑说明: 2012年4月10日,我们发布了一篇相关文章,标题为《为GPS XML数据创建优雅的报告》,该文章介绍了如何使用StyleVision样式表,以绘制GPS XML旅行日志中记录的 elevation(海拔)变化图,并以HTML、RTF、PDF和Microsoft Word格式生成报告。