A simple library for reading & writing GPX tracks and waypoints in Swift, specifically designed for simplicity and ease of use.
Swift Package Manager:
.package(url: "https://github.com/RCCoop/RCGPX.git", .upToNextMajor(from: "1.0.0"))
The root of a GPX file is represented by the GPXDocument
struct, which is used as a container for any number of waypoints and tracks.
When creating a GPXDocument from scratch (rather than reading from an existing file), you may optionally add a name for the person or program that created the file, as well as the arrays of tracks and waypoints.
public struct GPXDocument {
public var creator: String?
public var waypoints: [GPXWaypoint]
public var tracks: [GPXTrack]
public var routes: [GPXRoute]
}
- GPXTrack
- .Segment
- .Point
- GPXRoute
- .Point
- GPXWaypoint
let fileUrl = ...
let fileData = try Data(contentsOf: fileUrl)
let gpxString = try? String(contentsOf: fileUrl, encoding: .utf8)
let documentFromData = try? GPXDocument(fileData)
let documentFromFileUrl = try? GPXDocument(fileUrl)
let documentFromString = try? GPXDocument(gpxString)
let gpxDoc = GPXDocument(...)
let asData = gpxDoc.gpxData()
let asString = gpxDoc.gpxString()
- AEXML for reading and writing XML files