Swift Map Demo

Android User Guide

Table of Contents

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.

Source Settings Menu

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.

Map & Display Settings

Executing a Demo

  1. 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.

  2. Prepare the display

    • Choose map type.

    • Select a follow mode.

    • (Optional) enable camera overlay.

  3. Start recording

    • Tap Start (blue button) to begin logging.

    • (Optional) start an Android screen recording to capture the session.

  4. Run your route

    • Drive, bike, or walk around your test area.

    • The app will begin logging breadcrumbs and drawing your track line.

  5. 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.

Example: Importing Two Logs

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.