Gpx

Gpx 是一个生成的 Swift 包。它提供了一个符合 Codable 协议的结构体。该实现构建于 Max Desiatov 提供的 XMLCoder 包之上。

安装

这里仅描述 Swift Package Manager 的安装方式。

在 Swift 包中包含 Gpx

一旦你设置好了你的 Swift 包,将 Gpx 作为依赖项添加到你的 Package.swiftdependencies 值中。

dependencies: [
    .package(url: "https://github.com/fjagerman/Gpx.git", from: "0.1.0")
]

如果你在用 Xcode 构建的应用程序中使用 XMLCoder,你也可以 使用 Xcode 的 GUI 将它添加为直接依赖项。

GPX 模式版本 1.1 - 有关 GPX 和此模式的更多信息,请访问 http://www.topografix.com/gpx.asp

GPX 使用以下约定:所有坐标都相对于 WGS84 基准。所有测量单位均为公制单位。

<style>th { text-align: left; }</style>

生成的 XML 模式 (.xsd) 文档

元素

名称 类型 注释/文档
gpx gpxType GPX 是 XML 文件中的根元素。

简单类型

名称 基础 约束 注释/文档
latitudeType xsd:decimal -90.0 <= x <= 90.0 该点的纬度。十进制角度,WGS84 基准。
longitudeType xsd:decimal -180.0 <= x 该点的经度。十进制角度,WGS84 基准。
degreesType xsd:decimal 0.0 <= x 用于方位、方向、航向。单位是十进制角度,真北(非磁北)。
fixType xsd:string 元素:none, 2d, 3d, dgps, pps GPS 定位的类型。 none 表示 GPS 没有定位。如果表示“定位信息未知”,请完全省略 fixType。 pps = 使用的军用信号
dgpsStationType xsd:integer 0 <= x <= 1023 表示一个差分 GPS 站。

复杂类型概述

名称 注释/文档
gpxType GPX 文档包含元数据头,后跟航点、路线和轨迹。 你可以将自己的元素添加到 GPX 文档的 extensions 部分。
metadataType 有关 GPX 文件、作者和版权限制的信息位于元数据部分。 提供关于你的 GPX 文件的丰富而有意义的信息,允许其他人搜索和使用你的 GPS 数据。
wptType wpt 表示航点、兴趣点或地图上命名的特征。
rteType rte 表示路线 - 一个有序的航点列表,表示通往目的地的的一系列转弯点。
trkType trk 表示轨迹 - 一个描述路径的有序点列表。
extensionsType 你可以通过从另一个模式添加你自己的元素来扩展 GPX。
trksegType 轨迹段包含一个按逻辑顺序连接的轨迹点列表。 为了表示 GPS 接收丢失或 GPS 接收器关闭的单个 GPS 轨迹,为每个连续的轨迹数据跨度启动一个新的轨迹段。
copyrightType 有关版权所有者和任何管理此文件使用的许可证的信息。 通过链接到适当的许可证,你可以将你的数据置于公共领域或授予其他使用权。
linkType 链接到包含附加信息的外部资源(网页、数码照片、视频剪辑等)。
emailType 电子邮件地址。 分为两个部分(id 和 domain)以帮助防止电子邮件收集。
personType 一个人或组织。
ptType 具有可选海拔和时间的地理点。 可供其他模式使用。
ptsegType 一个有序的点序列。 (例如,用于多边形或折线)。
boundsType 定义元素范围的两个纬度/经度对。

复杂类型的定义

Complextype gpxType

GPX 文档包含元数据头,后跟航点、路线和轨迹。 你可以将自己的元素添加到 GPX 文档的 extensions 部分。

元素
名称 类型 最小出现次数 最大出现次数 注释/文档
metadata metadataType 0 关于文件的元数据。
wpt wptType 0 无界 航点列表。
rte rteType 0 无界 路线列表。
trk trkType 0 无界 轨迹列表。
extensions extensionsType 0 你可以通过从另一个模式添加你自己的元素来扩展 GPX。
属性
名称 类型 使用 固定 注释/文档
version xsd:string 必需 1.1 你必须在你的 GPX 文档中包含版本号。
creator xsd:string 必需 你必须包含创建你的 GPX 文档的软件的名称或 URL。 这允许其他人通知 GPX 实例文档的创建者,该文档未能通过验证。

Complextype metadataType

有关 GPX 文件、作者和版权限制的信息位于元数据部分。 提供关于你的 GPX 文件的丰富而有意义的信息,允许其他人搜索和使用你的 GPS 数据。

元素
名称 类型 最小出现次数 最大出现次数 注释/文档
name xsd:string 0 GPX 文件的名称。
desc xsd:string 0 GPX 文件内容的描述。
author personType 0 创建 GPX 文件的人或组织。
copyright copyrightType 0 管理文件使用的版权和许可信息。
link linkType 0 无界 与文件中描述的位置相关联的 URL。
time xsd:dateTime 0 文件的创建日期。
keywords xsd:string 0 与文件关联的关键字。 搜索引擎或数据库可以使用此信息对数据进行分类。
bounds boundsType 0 描述文件中坐标范围的最小和最大坐标。
extensions extensionsType 0 你可以通过从另一个模式添加你自己的元素来扩展 GPX。
没有属性

Complextype wptType

wpt 表示航点、兴趣点或地图上命名的特征。

元素
名称 类型 最小出现次数 最大出现次数 注释/文档
ele xsd:decimal 0 该点的高程(以米为单位)。
time xsd:dateTime 0 元素的创建/修改时间戳。 日期和时间采用世界协调时间 (UTC),而不是当地时间! 符合 ISO 8601 日期/时间表示规范。 轨迹记录允许使用小数秒进行毫秒级计时。
magvar degreesType 0 该点的磁偏角(以度为单位)
geoidheight xsd:decimal 0 大地水准面(平均海平面)高于 WGS84 地球椭球体的高度(以米为单位)。 如 NMEA GGA 消息中所定义。
name xsd:string 0 name
GPS 航点的名称。 此字段将传输到 GPS 并从 GPS 传输。 GPX 不限制此字段的长度或其中包含的字符。 由接收应用程序验证该字段,然后再将其发送到 GPS。 xsd:string 0 cmt
desc xsd:string 0 元素的文本描述。 包含有关元素的附加信息,供用户使用,而不是 GPS 使用。
src xsd:string 0 数据源。 包括在内是为了让用户了解数据的可靠性和准确性。 例如,“Garmin eTrex”、“USGS quad Boston North”。
link linkType 0 无界 链接到有关航点的其他信息。
sym xsd:string 0 GPS 符号名称的文本。 为了与其他程序交换,请使用符号在 GPS 上显示的精确拼写。 如果 GPS 缩写单词,请拼写出来。
type xsd:string 0 航点的类型(分类)。
fix fixType 0 GPX 定位的类型。
sat xsd:nonNegativeInteger 0 用于计算 GPX 定位的卫星数量。
hdop xsd:decimal 0 水平精度稀释。
vdop xsd:decimal 0 垂直精度稀释。
pdop xsd:decimal 0 位置精度稀释。
ageofdgpsdata xsd:decimal 0 自上次 DGPS 更新以来的秒数。
dgpsid dgpsStationType 0 用于差分校正的 DGPS 站的 ID。
extensions extensionsType 0 你可以通过从另一个模式添加你自己的元素来扩展 GPX。
属性
名称 类型 使用 固定 注释/文档
lat latitudeType 必需 该点的纬度。 这始终是十进制角度,并且始终是 WGS84 基准。
lon longitudeType 必需 该点的经度。 这始终是十进制角度,并且始终是 WGS84 基准。

Complextype rteType

rte 表示路线 - 一个有序的航点列表,表示通往目的地的的一系列转弯点。

元素
名称 类型 最小出现次数 最大出现次数 注释/文档
name xsd:string 0 GPS 路线名称。
GPS 航点的名称。 此字段将传输到 GPS 并从 GPS 传输。 GPX 不限制此字段的长度或其中包含的字符。 由接收应用程序验证该字段,然后再将其发送到 GPS。 xsd:string 0 GPS 路线注释。
desc xsd:string 0 供用户使用的路线的文本描述。 不发送到 GPS。
src xsd:string 0 数据源。 包括在内是为了让用户了解数据的可靠性和准确性。
link linkType 0 无界 链接到有关路线的外部信息。
number xsd:nonNegativeInteger 0 GPS 路线编号。
type xsd:string 0 路线的类型(分类)。
extensions extensionsType 0 你可以通过从另一个模式添加你自己的元素来扩展 GPX。
rtept wptType 0 无界 路线点列表。
没有属性

Complextype trkType

trk 表示轨迹 - 一个描述路径的有序点列表。

元素
名称 类型 最小出现次数 最大出现次数 注释/文档
name xsd:string 0 GPS 轨迹名称。
GPS 航点的名称。 此字段将传输到 GPS 并从 GPS 传输。 GPX 不限制此字段的长度或其中包含的字符。 由接收应用程序验证该字段,然后再将其发送到 GPS。 xsd:string 0 GPS 轨迹注释。
desc xsd:string 0 用户对轨迹的描述。
src xsd:string 0 数据源。 包括在内是为了让用户了解数据的可靠性和准确性。
link linkType 0 无界 链接到有关轨迹的外部信息。
number xsd:nonNegativeInteger 0 GPS 轨迹编号。
type xsd:string 0 轨迹的类型(分类)。
extensions extensionsType 0 你可以通过从另一个模式添加你自己的元素来扩展 GPX。
trkseg trksegType 0 无界 轨迹段包含一个按逻辑顺序连接的轨迹点列表。 为了表示 GPS 接收丢失或 GPS 接收器关闭的单个 GPS 轨迹,为每个连续的轨迹数据跨度启动一个新的轨迹段。
没有属性

Complextype extensionsType

你可以通过从另一个模式添加你自己的元素来扩展 GPX。

元素
名称 类型 最小出现次数 最大出现次数 注释/文档
没有属性

Complextype trksegType

轨迹段包含一个按逻辑顺序连接的轨迹点列表。 为了表示 GPS 接收丢失或 GPS 接收器关闭的单个 GPS 轨迹,为每个连续的轨迹数据跨度启动一个新的轨迹段。

元素
名称 类型 最小出现次数 最大出现次数 注释/文档
trkpt wptType 0 无界 轨迹点包含轨迹中单个点的坐标、高程、时间戳和元数据。
extensions extensionsType 0 你可以通过从另一个模式添加你自己的元素来扩展 GPX。
没有属性

Complextype copyrightType

有关版权所有者和任何管理此文件使用的许可证的信息。 通过链接到适当的许可证,你可以将你的数据置于公共领域或授予其他使用权。

元素
名称 类型 最小出现次数 最大出现次数 注释/文档
year xsd:gYear 0 版权年份。
license xsd:anyURI 0 链接到包含许可文本的外部文件。
属性
名称 类型 使用 固定 注释/文档
author xsd:string 必需 版权所有者 (TopoSoft, Inc.)

Complextype linkType

链接到包含附加信息的外部资源(网页、数码照片、视频剪辑等)。

元素
名称 类型 最小出现次数 最大出现次数 注释/文档
text xsd:string 0 超链接的文本。
type xsd:string 0 内容的 MIME 类型 (image/jpeg)
属性
名称 类型 使用 固定 注释/文档
href xsd:anyURI 必需 超链接的 URL。

Complextype emailType

电子邮件地址。 分为两个部分(id 和 domain)以帮助防止电子邮件收集。

没有元素
属性
名称 类型 使用 固定 注释/文档
id xsd:string 必需 电子邮件地址的 id 部分 (billgates2004)
domain xsd:string 必需 电子邮件地址的域部分 (hotmail.com)

Complextype personType

一个人或组织。

元素
名称 类型 最小出现次数 最大出现次数 注释/文档
name xsd:string 0 人或组织的名称。
email emailType 0 电子邮件地址。
link linkType 0 链接到关于人的网站或其他外部信息。
没有属性

Complextype ptType

具有可选海拔和时间的地理点。 可供其他模式使用。

元素
名称 类型 最小出现次数 最大出现次数 注释/文档
ele xsd:decimal 0 该点的高程(以米为单位)。
time xsd:dateTime 0 记录该点的时间。
属性
名称 类型 使用 固定 注释/文档
lat latitudeType 必需 该点的纬度。十进制角度,WGS84 基准。
lon longitudeType 必需 该点的纬度。十进制角度,WGS84 基准。

Complextype ptsegType

一个有序的点序列。 (例如,用于多边形或折线)。

元素
名称 类型 最小出现次数 最大出现次数 注释/文档
pt ptType 0 无界 地理点的有序列表。
没有属性

Complextype boundsType

定义元素范围的两个纬度/经度对。

没有元素
属性
名称 类型 使用 固定 注释/文档
minlat latitudeType 必需 最小纬度。
minlon longitudeType 必需 最小经度。
maxlat latitudeType 必需 最大纬度。
maxlon longitudeType 必需 最大经度。