LogoLogo
UpdatesGPS trackersLoginFree trial
  • Welcome
  • Quick start guide
  • Provide live tracking
    • Features of visualization
    • Leaderboard
    • Monitor
    • Group and stages
    • Embed interactive content
    • Keys and passcode
    • Activity upload
    • Deep links on tracking app
    • Shadowtrack and mapping
  • Data APIs for live geodata
    • */current, location data
    • */distance and locations
    • */times, reads and raw data
    • */ranks, ranking and results
    • */starters, athlete data
    • */geo, geo elements
    • Tools to extract live data
  • Import participant data
    • Import with API, automatically
      • Generic import
      • RACE RESULT import
    • Import with CSV file
  • Tracker management
    • Add GPS trackers
    • Add RACE RESULT readers
    • Add devices to event
    • Send messages
    • Compose messages
    • User access to devices
    • Manage SIM cards
  • Hardware for live tracking
    • Configure GPS tracker
      • Remote configuration
      • Physical configuration
    • Update firmware of GPS tracker
    • Configuring trackers for increased autonomy
    • Track Box forwarding
    • Insiders GPS trackers
    • Prepare smartphone
    • Using GPS trackers On-Site
    • Debug tracking devices
  • Predictive tracking with reads from race timing
    • RACE RESULT
    • Other timing system
      • ChronoTrack forwarder
      • MyLaps forwarder
  • Integrations
    • Wiclax
  • Map settings
    • External map layer
  • Export data from RACEMAP
    • Hosted elevation service
    • Hosted loads information
    • Download leaderboard CSV
    • Download recorded GPX
Powered by GitBook
LogoLogo

Legacy

  • Contact
  • Terms of use
  • Privacy Policy
  • Imprint

About Racemap

  • Pricing
  • About Us
  • Apps
  • Events

Follow us

  • facebook
  • youtube
  • linkedin
  • github

Maps: ©Mapbox ©OpenStreetMap ©RACEMAP

On this page
  • HTTP Request
  • Examples
  • Response
  • Set readers' locations
  1. Predictive tracking with reads from race timing

Other timing system

Predictive live tracking with reads from any timing system.

PreviousRACE RESULTNextChronoTrack forwarder

Last updated 1 month ago

Your timing system provides the information of UTC timestamps, chip IDs (or transponder IDs), and ideally GEO locations and you can send this data to RACEMAP server.

When a participant passes a decoder, the timing system generates data including the timestamp and the ID. You can format this data as a JSON array (as shown below) and send it to our servers.

You can use any programming language that supports HTTPS-based POST requests with JSON bodies. To test the approach, follow the steps below or set up permanent forwarding within your timing system.

For this setup, a programmer or someone with technical expertise is recommended. However, if you need assistance, reach out to us — we support you build a reliable, and easy-to-use solution, similar to our solution with RACE RESULT.

Therr are two scenarios RACEMAP receives data from a timekeeping software.

  1. Recommended: Reads (detections) include the reader's GEO location.

  2. Reads without the GEO location. In that case, the map editor.

HTTP Request

URL https://racemap.com/services/trackping/api/v1/timing_input/pings

Method POST

Reads object

A read can have the following data fields. Some of them are required, some are optional.

Field
Description
Sample

timingId

Unique ID of the reader

"XF32098" or "_8nx7uoyun"

timingName *

Name of reader in timing software

"5K-split" or "Start II"

chipId

Transponder ID

"RRPing_ZDKAR32" or "RRPing_70761" or "HH32098"

timestamp

"2023-11-09T16:35:05.248Z"

lat **

Latitude of the reader

51.5074

lng **

Longitude of the reader

13.7276

(*) Optional parameter without impact on processing the reads in RACEMAP.

Examples

The examples demonstrate the process of

  • converting your timing data into RACEMAP-compatible reads,

  • sending the data to our server, and

  • testing access using the API token.

Once your timing data is successfully forwarded to RACEMAP, we can provide further support to help you build a reliable integration.

  • Install VS Code on your computer.

  • Save the below sample into a file with the name test.rest .

  • Open the file in VS Code.

  • Paste your API token.

  • Send the HTTP request to our server.

  • Check the prediction section of your event in RACEMAP for received reads.

In the 1st sample, the GEO locations of each reader are defined. The timingId identifies the reader and does not influence data processing in the RACEMAP backend. You can use these IDs to verify whether your data was correctly received by RACEMAP.

POST https://racemap.com/services/trackping/api/v1/timing_input/pings
Content-Type: application/json
api-token: [Place your API token here]

[
  {
    "timingId": "XF32098",
    "timingName": "Start",
    "chipId": "HH32097",
    "timestamp": "2023-11-09T16:31:07.248Z",
    "lat": 51.5074,
    "lng": 13.7386
  },
  {
    "timingId": "XF32099",
    "timingName": "Start II",
    "chipId": "HH32098",
    "timestamp": "2023-11-09T16:31:05.248Z",
    "lat": 51.5074,
    "lng": 13.7386
  },
  {
    "timingId": "XF32100",
    "chipId": "HH32099",
    "timestamp": "2023-11-09T16:32:04.248Z",
    "lat": 51.5074,
    "lng": 13.7386
  }
]

In the 2nd sample, the GEO locations of the readers are not defined. You can manually set them in RACEMAP. For each timingId, you can define a GEO location in the map editor section of your event. Our prediction algorithm will then use these manually assigned locations.

However, this method is not recommended, as errors may occur if incorrect locations are defined.

POST https://racemap.com/services/trackping/api/v1/timing_input/pings
Content-Type: application/json
api-token: [Place your API Token here]

[
  {
    "timingId": "XF32098",
    "timingName": "Start",
    "chipId": "HH32097",
    "timestamp": "2023-11-09T16:31:07.248Z"
  },
  {
    "timingId": "XF32099",
    "timingName": "Start II",
    "chipId": "HH32098",
    "timestamp": "2023-11-09T16:31:05.248Z",
  },
  {
    "timingId": "XF32100",
    "chipId": "HH32099",
    "timestamp": "2023-11-09T16:32:04.248Z",
  }
]

Python Code for Sending Timing Data (with GEO locations)

Setup Instructions:

  • Install the requests library if not already installed:

  • Save the content below as test.py.

  • Replace YOUR_API_TOKEN with your actual API token.

  • Run the script in VS Code.

  • On success response.status_code should be 200.

  • Check the prediction section of your event in Racemap for received reads.

import requests

# API Endpoint
url = "https://racemap.com/services/trackping/api/v1/timing_input/pings"

# API Token (Replace with your actual token)
api_token = "YOUR_API_TOKEN"

# Headers
headers = {
    "Content-Type": "application/json",
    "api-token": api_token
}

# Timing data with GEO locations
data_with_geo = [
    {
        "timingId": "XF32098",
        "timingName": "Start",
        "chipId": "HH32097",
        "timestamp": "2023-11-09T16:31:07.248Z",
        "lat": 51.5074,
        "lng": 13.7386
    },
    {
        "timingId": "XF32099",
        "timingName": "Start II",
        "chipId": "HH32098",
        "timestamp": "2023-11-09T16:31:05.248Z",
        "lat": 51.5074,
        "lng": 13.7386
    },
    {
        "timingId": "XF32100",
        "chipId": "HH32099",
        "timestamp": "2023-11-09T16:32:04.248Z",
        "lat": 51.5074,
        "lng": 13.7386
    }
]

# Sending request
response = requests.post(url, json=data_with_geo, headers=headers)

# Output response
print(f"Status Code: {response.status_code}")
print(f"Response: {response.text}")

Python Code for Sending Timing Data (without GEO locations)

import requests

# API Endpoint
url = "https://racemap.com/services/trackping/api/v1/timing_input/pings"

# API Token (Replace with your actual token)
api_token = "YOUR_API_TOKEN"

# Headers
headers = {
    "Content-Type": "application/json",
    "api-token": api_token
}

# Timing data without GEO locations
data_with_geo = [
    {
        "timingId": "XF32098",
        "timingName": "Start",
        "chipId": "HH32097",
        "timestamp": "2023-11-09T16:31:07.248Z"
    },
    {
        "timingId": "XF32099",
        "timingName": "Start II",
        "chipId": "HH32098",
        "timestamp": "2023-11-09T16:31:05.248Z"
    },
    {
        "timingId": "XF32100",
        "chipId": "HH32099",
        "timestamp": "2023-11-09T16:32:04.248Z"
    }
]

# Sending request
response = requests.post(url, json=data_with_geo, headers=headers)

# Output response
print(f"Status Code: {response.status_code}")
print(f"Response: {response.text}")

Response

If everything is correct the HTTP code 200 is returned.

Set readers' locations

  • Upload the race track.

  • Create a split representing the location of your reader at the race.

  • Check "Timekeeping"

  • Provide the unique timingId in the field "IDs of Timing Systems" of the split. You can add multiple timingId to a split, if you use multiple readers at the same location.

Note: If a single reader is used for multiple detections (e.g., timing a lap race at 5K and 10K), enter its location only once. There's no need to add the reader multiple times.

when the reader detects the transponder

(**) If unavailable you have to set GEO locations for each reader in the map editor

To test this example, use the editor.

Install the .

Install on your computer.

Install the in VS Code.

Case 2, if reads are sent without coordinates: Virtually define the locations of your readers in the of your tracking map.

Set this track as the .

RACEMAP
VS Code
Rest Client Extension
VS Code
Python extension
map settings
Timestamp in UTC
readers' locations must be set in RACEMAP
Split "CP-1" with the unique split id U078

API token The API token serves as a secure key that authenticates and directs your data to RACEMAP. Without a valid token, your submitted data will be rejected. Generate your API token in the settings of your RACEMAP account .

https://racemap.com/admin/account
Manage your token in your RACEMAP account
shadowtrack of the race