File Format

Poreia stores tracks in a custom .gpstrack format—zlib-compressed JSON for efficient storage.

Overview

Schema Version

The current schema version is 4. Older tracks are automatically migrated when opened.

JSON Structure

{
  "schemaVersion": 4,
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "name": "Morning Hike",
  "createdAt": "2026-02-02T10:30:00Z",
  "totalDistance": 1523.5,
  "duration": 3600.0,
  "elevationChange": 47.0,
  "startLocation": "Raleigh, NC",
  "notes": "Beautiful weather today.",
  "segments": [
    [
      {
        "latitude": 35.7796,
        "longitude": -78.6382,
        "altitude": 100.5,
        "timestamp": "2026-02-02T10:30:00Z",
        "horizontalAccuracy": 5.0,
        "speed": 1.2,
        "course": 45.0
      }
    ]
  ],
  "waypoints": [
    {
      "latitude": 35.7800,
      "longitude": -78.6380,
      "altitude": 102.0,
      "timestamp": "2026-02-02T10:45:00Z",
      "name": "Scenic Overlook",
      "description": "Feb 2, 2026 at 10:45:00 AM"
    }
  ]
}

Track Fields

FieldTypeDescription
schemaVersionIntFile format version (currently 4)
idUUIDUnique track identifier
nameStringUser-defined track name
createdAtISO 8601When the track was created
totalDistanceDoubleTotal distance in meters
durationDoubleElapsed time in seconds
elevationChangeDouble?Net elevation change in meters
startLocationString?Reverse-geocoded location name
notesString?User-defined notes (v4+)
segments[[Point]]Array of segments (new segment on pause)
waypoints[Waypoint]User-dropped pins

Track Point Fields

FieldTypeDescription
latitudeDoubleLatitude in degrees
longitudeDoubleLongitude in degrees
altitudeDoubleAltitude in meters
timestampISO 8601When the point was recorded
horizontalAccuracyDoubleGPS accuracy in meters
speedDoubleSpeed in m/s
courseDouble?Direction in degrees 0-359 (v4+)

Waypoint Fields

FieldTypeDescription
latitudeDoubleLatitude in degrees
longitudeDoubleLongitude in degrees
altitudeDoubleAltitude in meters
timestampISO 8601When the waypoint was dropped
nameString?User-defined name
descriptionString?Auto-generated description

Schema History

VersionChanges
1Initial format
2Added elevationChange
3Added averageSpeed, maxSpeed
4Added course per point, notes on track

File Location

Saved tracks are stored in the app's private documents folder. They're not directly accessible via the Files app. To share a track, use the export feature.