Swift Map Demo
Android User Guide
The Swift Map Demo app makes it easy to demonstrate and evaluate GNSS location accuracy across multiple sources: an Android device’s built-in GPS, an external Bluetooth or USB GNSS receiver, or any NMEA receiver connected over IP.
Key features include:
-
Real-time tracking: View position live on a map.
-
Logging & replay: Record sessions and overlay previous logs for comparison.
-
Camera overlay: Add a live camera view to the map, making it simple to screen-record tests while capturing the real environment—ideal for drive testing with a dash-mounted device.
Getting Started
Installation
Requirements – Android 10 or later on device with GPS capability and Google Play Services.
Permissions – On first launch, the app will request:
Location access: choose Allow all the time for best tracking.
Camera access: required for the camera overlay.
File access: required to export/import CSV logs.
Settings
Location Sources
The app supports three ways of receiving location:
Built-In GNSS Receiver (default): Uses the Android device’s built-in GNSS receiver. Useful as a baseline “uncorrected” stream.
External Bluetooth or USB GNSS receiver: When paired to an external GNSS receiver and using its “mocked locations” (learn how), all apps—including Swift Map Demo—receive the injected positions. The status panel shows Fix: Mocked; the actual GNSS fix type (SPP/DGPS/RTK, etc.) isn’t available via mocks.
NMEA over IP: Connects to an external GNSS receiver that streams NMEA sentences over TCP/IP. The app connects as a TCP client and decodes:
GGA (required) → position and fix type.
VTG (optional) → course and speed.
GST or PQTMEPE (optional) → accuracy estimate.
Source Menu Options
Display Name: label shown on the map (e.g., “Skylark”, “Uncorrected”).
- IP:Port: For NMEA connections – defaults to Android device’s own WiFi IP address.
Live Track Color: choose a color for the current track.
Source Label Mode:
Off → hide label.
Basic → show display name.
Detailed → show fix type, estimated accuracy, update rate, and GGA timestamp.
Detailed Label Info
Fix type: Invalid, SPP, DGPS, RTK Fixed, RTK Float, etc.
2D accuracy: reported in meters (or cm when <1 m).
Update rate: shown in Hz.
Timestamps: GGA time in UTC.

Map & Display
Map types (Map button): switch between Standard and Satellite.
Follow modes (Arrow button):
Idle = free pan/zoom.
Follow (North-up) = keeps you centered.
Follow with Heading = rotates/tilts with travel direction.
Camera overlay (Camera button): adds live camera feed that can be dragged and scaled. Useful as source of truth when screen recording field tests.

Executing a Demo
Configure source and settings
Open Source → choose FusedLocation (if using built-in receiver or mocked locations) or NMEA.
Enter Display Name, IP:Port of NMEA receiver (if applicable), Live Track Color, Source Label Mode.
Prepare the display
Choose map type.
Select a follow mode.
(Optional) enable camera overlay.
Start recording
Tap Start (blue button) to begin logging.
(Optional) start an Android screen recording to capture the session.
Run your route
Drive, bike, or walk around your test area.
The app will begin logging breadcrumbs and drawing your track line.
Pause or stop
Tap Pause to pause logging.
⚠️
Tapping the Clear button will remove all tracks from the screen and memory and cannot be undone.
Logging
Exporting Logs
Tap Log → Export → Select destination.
CSV file includes:
GGA timestamp, Decoded timestamp, Latitude [deg], Longitude [deg]Filename is timestamped automatically.
💡
Logs’ default filenames use the Source Display Name as prefix, and timestamp as suffix (e.g., Skylark_20250905_0941
) to easily identify them.
Importing Logs
Tap Log → Import → Select track color → Choose CSV.
Multiple logs can be overlaid in different colors.

Troubleshooting
No location updates → confirm Location permission is granted and device Location is enabled.
External receiver not used → verify it’s paired and set as the mock location provider in Developer Options.
CSV import fails → ensure file format matches the export format.
Camera overlay not working → confirm Camera permission is granted.
Privacy & Data Handling
Location data stays on your device unless you export it.
CSV files are only saved when you explicitly export.
The app does not transmit your location to third parties.