
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 |
必需 |
|
最大经度。 |