Fix track offset: GCJ-02, WGS-84 and BD-09
Tracks exported from Amap, Baidu or Xingzhe are stored in GCJ-02, a shifted copy of the real coordinates that Chinese law requires. A Garmin device expects WGS-84, so an imported track is off by 300 to 700 metres: it looks plausible until you follow it. This page converts GPX or CSV coordinates between WGS-84, GCJ-02 and BD-09, changes nothing but the two coordinates, and tells you how far the track moved so you can see whether the direction was right.
Which coordinate system is which
- WGS-84: what GPS measures. Garmin devices, Garmin Connect, OpenStreetMap and most of the world use it.
- GCJ-02: WGS-84 shifted by a published algorithm. Amap, Tencent and most Chinese exports use it, and it is usually called 火星坐标.
- BD-09: GCJ-02 shifted again, by Baidu, for Baidu Maps only.
Known limits
- The in-China test is a coarse bounding box. Hong Kong, Macau, Taiwan and the border strips fall inside it, so the automatic mode shifts them too: choose Never shift, or pick WGS-84 as the source, when a track is already in the coordinate system you want.
- Only the coordinates change. Elevation, timestamps, heart rate, cadence and unknown extensions are copied through byte for byte, and no point is added, dropped or reordered.
- The reverse conversion iterates on the forward formula, so a round trip lands within about 10 centimetres. Converting twice with a wrong setting, not the arithmetic, is what moves a track.
- Neither GPX nor CSV can store which coordinate system a file is in, so the download name says it (track.wgs84.gpx) and the GPX description repeats it.
Where the file goes
Nowhere. The conversion runs in your browser, the file is never uploaded, and nothing is stored.
FIT file viewer, converter and repair · Export a summary for ChatGPT · All tools · Check which watches support it