Skip to content
/ RCGPX Public

A library for reading/writing GPX files in Swift

License

Notifications You must be signed in to change notification settings

RCCoop/RCGPX

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RCGPX

GitHub

A simple library for reading & writing GPX tracks and waypoints in Swift, specifically designed for simplicity and ease of use.

Index

Installation

Swift Package Manager:

.package(url: "https://github.com/RCCoop/RCGPX.git", .upToNextMajor(from: "1.0.0"))

GPXDocument

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]
}

GPX Types

  • GPXTrack
    • .Segment
    • .Point
  • GPXRoute
    • .Point
  • GPXWaypoint

Reading GPX Files

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)

Writing GPX Files

let gpxDoc = GPXDocument(...)

let asData = gpxDoc.gpxData()
let asString = gpxDoc.gpxString()

Dependencies

  • AEXML for reading and writing XML files