Human context
“NW of Trichy airport, 5 km” means something to a person. A string of random letters or three random words doesn't tell you where on Earth to start.
GATE A–L Open location code · spec v2.1
No word lists. No random letters. An AirportVector code tells you which airport, which direction and how far — before you even open a map.
Click anywhere — land, sea, even Antarctica. Or paste a code. Everything runs in your browser; nothing is sent to a server.
The map couldn't load. You can still paste a code or coordinates in the panel.
A code is an airport, one letter, and two distances. That's all.
Distance to the airport is √(4.2² + 3.55²) ≈ 5.5 km. Quick trick: the bigger number + half the smaller one.
Every 4 letters = 10× further, and one more digit per axis.
TRZ-D04031 kmTRZ-D042035100 mTRZ-D0420035510 mTRZ-D04203035541 mEach half of a short code is the start of the longer one — trimming digits just zooms out.
4,133 commercial airports anchor the whole planet. The farthest any point gets from its nearest airport is about 5,150 km — deep in Antarctica.
“NW of Trichy airport, 5 km” means something to a person. A string of random letters or three random words doesn't tell you where on Earth to start.
The grid is azimuthal-equidistant on the WGS84 ellipsoid, so √(X² + Y²) is the true ground distance to the airport.
A small anchor file and plain maths. No lookups, no accounts, no network — the demo above runs entirely in your browser.
Reference implementations in Python and JavaScript, tested against each other on 78,000+ cases.
import airportvector as av
av.encode(10.7950461, 78.6793020)
# 'TRZ-D04200355'
av.describe("TRZ-D04200355")
# '5.5 km NW of TRZ (Tiruchirappalli International Airport)'
av.decode("TRZ-D04200355")
# (10.795052, 78.679291)
OAVG.loadRegistry(await (await fetch("/anchors.json")).json());
OAVG.encode(51.5074, -0.1278); // "LCY-D12710024"
OAVG.describe("IPC-K104561248302"); // "2,694 km SSW of IPC (…)"
OAVG.move("TRZ-D04200355", 50, 0); // 500 m East