
Gpx 是一个生成的 Swift 包。它提供了一个符合 Codable 协议的结构体。该实现构建于 Max Desiatov 提供的 XMLCoder 包之上。
这里仅描述 Swift Package Manager 的安装方式。
一旦你设置好了你的 Swift 包,将 Gpx 作为依赖项添加到你的 Package.swift 的 dependencies 值中。
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>
| 名称 |
类型 |
注释/文档 |
| 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 |
定义元素范围的两个纬度/经度对。 |
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 实例文档的创建者,该文档未能通过验证。 |
有关 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。 |
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 基准。 |
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 |
无界 |
路线点列表。 |
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。
| 名称 |
类型 |
最小出现次数 |
最大出现次数 |
注释/文档 |
轨迹段包含一个按逻辑顺序连接的轨迹点列表。 为了表示 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.) |
链接到包含附加信息的外部资源(网页、数码照片、视频剪辑等)。
| 名称 |
类型 |
最小出现次数 |
最大出现次数 |
注释/文档 |
| text |
xsd:string |
0 |
|
超链接的文本。 |
| type |
xsd:string |
0 |
|
内容的 MIME 类型 (image/jpeg) |
| 名称 |
类型 |
使用 |
固定 |
注释/文档 |
| href |
xsd:anyURI |
必需 |
|
超链接的 URL。 |
电子邮件地址。 分为两个部分(id 和 domain)以帮助防止电子邮件收集。
| 名称 |
类型 |
使用 |
固定 |
注释/文档 |
| id |
xsd:string |
必需 |
|
电子邮件地址的 id 部分 (billgates2004) |
| domain |
xsd:string |
必需 |
|
电子邮件地址的域部分 (hotmail.com) |
一个人或组织。
| 名称 |
类型 |
最小出现次数 |
最大出现次数 |
注释/文档 |
| name |
xsd:string |
0 |
|
人或组织的名称。 |
| email |
emailType |
0 |
|
电子邮件地址。 |
| link |
linkType |
0 |
|
链接到关于人的网站或其他外部信息。 |
具有可选海拔和时间的地理点。 可供其他模式使用。
| 名称 |
类型 |
最小出现次数 |
最大出现次数 |
注释/文档 |
| ele |
xsd:decimal |
0 |
|
该点的高程(以米为单位)。 |
| time |
xsd:dateTime |
0 |
|
记录该点的时间。 |
| 名称 |
类型 |
使用 |
固定 |
注释/文档 |
| lat |
latitudeType |
必需 |
|
该点的纬度。十进制角度,WGS84 基准。 |
| lon |
longitudeType |
必需 |
|
该点的纬度。十进制角度,WGS84 基准。 |
一个有序的点序列。 (例如,用于多边形或折线)。
| 名称 |
类型 |
最小出现次数 |
最大出现次数 |
注释/文档 |
| pt |
ptType |
0 |
无界 |
地理点的有序列表。 |
定义元素范围的两个纬度/经度对。
| 名称 |
类型 |
使用 |
固定 |
注释/文档 |
| minlat |
latitudeType |
必需 |
|
最小纬度。 |
| minlon |
longitudeType |
必需 |
|
最小经度。 |
| maxlat |
latitudeType |
必需 |
|
最大纬度。 |
| maxlon |
longitudeType |
必需 |
|
最大经度。 |