Jetlag the App ✈️
MapCalipers is a flexible mapping toolkit built to help you defeat your friends in Jet Lag: The Game Hide and Seek Transit Game!
The iOS app helps you pinpoint your target’s location within defined boundaries, steadily shrinking the search area using interactive tools like “Radar” and “Thermometer”. Leveraging standard GTFS data, freely provided by many transit authorities, the app overlays precise transit lines and stops onto your play area. Use the built-in analysis features to determine which routes and stops your target might be hiding at, then use the dynamic mapping tools to track them down!
This app is free on the App Store!
App Features
Viable Search Area
Start off by drawing the bounds of your play area. This can be a city, neighborhood, or any other defined space. The app will then display just transit that is within this area, allowing you to focus on the most relevant routes and stops.
Tools
The app provides a suite of tools to help you analyze the map and your target’s location. Each tool is designed to answer specific questions about the target’s position relative to landmarks, transit routes, and other features. For example:
Use the Radar Tool to quickly drop a circle and ask if the target is inside or outside. The app creates an exclusion zone based on your answer.
Use the Thermometer Tool to pick two points and see which side of the line the target is on. Great for slicing the map in half.
Feel creative? Use the Custom Polygon tool to rule out complex shapes. Perfect for excluding irregular areas.
Inspect Transit
Analyze nearby bus and train routes or stops that are still within the viable search area.
Sync
Share your game state with friends or collaborate on a shared map. The app allows you to push and pull game state to/from a collaboration server using a secret passphase.
Timeline History
Every tool use is recorded in the timeline. Jump back to previous steps to fix any mistakes.
Self-hosting
I host a small instance of the control server. The server is not needed to use the app’s standard features, but provides (1) a way to share game state with others and (2) pre-processes GTFS transit data for the app to overlay on the map.
You are welcome to use the pre-configured instance without any guarantee of uptime or data integrity. If you want to run your own instance, you can do so with the following docker-compose.yml
file:
services:
mapcalipers:
image: ghcr.io/joshspicer/mapcalipers:latest
ports:
- "6001:6001"
restart: unless-stopped
volumes:
- ./collab_server/sessions:/app/sessions
- ./config:/app/config
environment:
- DATA_DIR=/app/sessions
- CONFIG_DIR=/app/config
- MAX_BACKUPS=5
- PORT=6001
- FLASK_DEBUG=False
# - ADMIN_PASSWORD=my-great-password
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:6001/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 5s
Then in ./config/gtfs_config.json
provide information for each city’s standardized GTFS zip URL.
If you encounter errors getting your city set up, please feel free to send me an email!
[
{
"city": "seattle",
"zipUrl": "https://www.soundtransit.org/GTFS-KCM/google_transit.zip"
},
{
"city": "boston",
"zipUrl": "https://cdn.mbta.com/MBTA_GTFS.zip"
}
]
You can then change the URL in the app to point to your instance, e.g. http://localhost:6001
.
Disclaimers
Terms of Use
This app is not affiliated with or endorsed by the creators of Jet Lag: The Game Hide and Seek Transit Game.
Use at your own risk. The app is provided “as is” without any warranties or guarantees of functionality. The developer is not responsible for any issues that arise from using the app, including but not limited to data loss, incorrect game state, or misinterpretation of transit data.
Check with your friends before using the app! Some groups may prefer the good old pen-and-paper method of tracking each other down.
Privacy
MapCalipers collects no personal data whatsoever. There is no use of telemetry or trackers employed by the app developer.
All application data resides on-device, unless you explicitly push game state to the collaboration server. You can choose to not use the collaboration features by disabling transit data and not pushing or pulling game state to/from the collaboration server.
The collaboration server does not collect any personal data, but it does store the game state in a session file on the server. This file is only accessible to the users who created it and is deleted when the session ends. The server does not log any user activity beyond what is necessary for its operation.
This page will be updated with any amendments to the privacy policy. We reserve the right to update this privacy policy with subsequent app updates.
Have a comment? Let me know
This post helpful? Buy me a coffee!