Track simplification: projected tolerance, point and distance comparison
Simplify each segment independently with a local metric projection and iterative RDP, keeping endpoints and segment breaks while reporting the change in points and WGS84 distance. The original file is never modified.
Choose a local track and a simplification tolerance
GPX or GeoJSON only; up to 20 MB and 200,000 points. The file is not uploaded.
The file is read in this page only, is not uploaded and is not retained after a refresh.
1 to 100 metres, default 10. Tolerance is measured in a local equidistant projection, not as a geodesic distance.
Simplification result
- Original points
- —
- Simplified points
- —
- Points retained
- —
- Tolerance used
- —
- Original geodesic distance
- —
- Simplified geodesic distance
- —
- Distance change
- —
| Segment | Original | Simplified | Before | After |
|---|
The simplified version is generated at the projected tolerance and keeps the input format. The original file is not modified or overwritten.
This version refuses to simplify a segment that spans more than 500 km, crosses the antimeridian or reaches beyond 85 degrees latitude. You can still use the track viewer or converter on those files.
Formula and conditions
What this tool does
The simplifier reads a GPX or GeoJSON line, removes points that contribute little to its shape within a chosen tolerance, and produces a new simplified file for download. It reports the number of points before and after, the WGS84 geodesic distance before and after, and a per-segment comparison. It does not modify or overwrite the original file.
Simplification is lossy: removed points and their elevation values do not appear in the output; retained points keep their original coordinates and elevation. The tool does not smooth or resample the line and does not join separate segments.
Method
- For each segment, compute its mean latitude and project longitude and latitude to local metres around that latitude.
- Run an iterative Ramer–Douglas–Peucker (RDP) pass in the projected plane: keep the first and last points, repeatedly find the point farthest from the current chord, keep it when the distance exceeds the tolerance, and continue on both sides.
- Output the retained points in their original order and recompute the distance before and after using WGS84 geodesic inverse distances.
The tolerance is a number of projected metres, not a geodesic distance. Because the projection is a local approximation, the tolerance and ground distance can differ slightly away from the projection centre; the page reports the WGS84 distance change separately so you can judge whether the shape change is acceptable. RDP constrains the deviation of points from a chord; it does not guarantee that the total distance changes by the same amount.
Tolerance and refusal conditions
The tolerance is required, must be between 1 and 100 metres, and the page starts at 10 metres. Files are limited to 20 MB and 200,000 coordinate points. This version refuses to simplify a segment, and names the segment, when:
- its projected bounding-box diagonal exceeds 500 km;
- its longitude span exceeds 180 degrees, which may indicate an antimeridian crossing;
- any point lies beyond 85 degrees latitude.
These limits apply only to simplification. The same file can still be read with the track viewer or converted with the track converter. The output keeps the input format: GPX stays GPX and GeoJSON stays GeoJSON.
Verification case
Three points near the equator: [0, 0], [0.001, 0.00005], [0.002, 0], with a tolerance of 10 metres. The middle point deviates from the chord by about 0.00005 degrees of latitude, roughly 5.56 metres, which is below 10 metres, so it is removed and the endpoints remain. At a 1-metre tolerance the middle point is kept. This case was checked by independent arithmetic, not by the page script itself.
Privacy and limits
The file is read and processed only in your browser. It is not uploaded and is not retained after a refresh. The tool does not decide whether a track is an official course, safe or suitable for a race, and the simplified distance is not a certified measurement. Before sharing a file, check whether it reveals sensitive locations such as a home address.
Sources and scope
The RDP method follows Ramer (1972) and Douglas–Peucker (1973); coordinate and distance handling follow WGS84 and the GeographicLib implementation used by core. This article and tool were checked on 2026-10-27.
Implementation specification (English)
These fields support implementation and review. The article text explains them in the page language.
- Formula and conditions
- Simplify each segment independently. Project its coordinates to local metres using an equirectangular approximation around the segment's mean latitude, run an iterative Ramer–Douglas–Peucker pass with the entered tolerance, and keep the original first and last points. Separate segments are not joined. Distances before and after use WGS84 geodesic inverse distances. The output is written in the input format with original coordinates for retained points.
- Assumptions
- The tolerance is measured in the local projected plane, not as a geodesic distance; output distance change is reported separately in WGS84 metres.
- A segment is refused when its longitude span exceeds 180 degrees, any point lies beyond 85 degrees latitude, or its projected bounding-box diagonal exceeds 500 km.
- Only line geometry is accepted; unsupported geometry is rejected rather than discarded.
- Simplification removes points, including their elevation values; retained points keep their original coordinates and elevation.
- The simplified file is a new download. The original file is never modified or overwritten.
- Input files are limited to 20 MB and 200,000 coordinate points; larger files are rejected before simplification.
- Input files are limited to 20 MB and 200,000 coordinate points; larger files are rejected before processing.
- The page starts with a 10 m tolerance, but the value is required and must be between 1 and 100 m.
- Rounding
- Tolerance is used as entered (1 to 100 metres); point counts are whole numbers; distances are reported to the nearest whole metre; retained coordinates are not rounded by the tool.
Independent examples
Expected values come from independent arithmetic or verified algorithms, not from the page script.
case-track-simplify-offsetIndependent examples
Independent arithmetic: 0.00005 degrees of latitude is about 5.56 m. The middle point deviates from the straight chord by about 5.6 m, which is below the 10 m projected tolerance, so it is removed. Both endpoints remain.
{
"toleranceMeters": 10,
"coordinates": [
[
0,
0
],
[
0.001,
0.00005
],
[
0.002,
0
]
]
}{
"segmentCount": 1,
"originalPointCount": 3,
"simplifiedPointCount": 2
}Sources and evidence
GPX is an XML schema for exchanging GPS data. GPX 1.1 defines track, route and waypoint structures with latitude, longitude and optional elevation.
GeoJSON defines JSON-based geospatial objects including LineString coordinates. GeoJSON coordinates use longitude, latitude order and positions may include elevation.
The Douglas–Peucker procedure approximates a polyline by retaining points that lie beyond a chosen tolerance from a chord. Endpoints are retained and the approximation is refined iteratively between retained points.
Ramer described an iterative procedure for polygonal approximation of plane curves.
Version and review
Written by: RunMap editorial desk (AI-assisted draft and review)
Updated: 27 Oct 2026
Reviewed: 27 Oct 2026 · 1 review record(s)