The map generator's distance rings use a spherical Earth with a radius of 6,371 km. A 5,000 km ring represents a 5,000 km great-circle distance on that sphere. It does not necessarily represent a 5,000 km geodesic distance on the WGS84 ellipsoid.
The analysis compared spherical distances with WGS84 geodesic distances for 560 distinct combinations of center latitude, bearing, and distance, each repeated at three longitudes. Across the resulting 1,680 coordinate pairs, the median absolute difference was 2.79 km, the 95th percentile was 22.15 km, and the greatest observed absolute difference was 33.44 km. These are results for a designed test sample, not global accuracy limits.
What the Generator Calculates
The azimuthal equidistant generator uses D3's geoAzimuthalEquidistant() projection and defines EARTH_RADIUS_KM = 6371 in static/js/map-generator.js. It uses that radius to convert spherical angular separation into map scale and to position and label distance rings. It does not calculate ellipsoidal geodesics in the browser.
For angular separation $c$ in radians, the modeled center-to-point distance is:
$$d_{sphere} = 6371c\text{ km}$$
The comparison uses the same numeric latitude and longitude values on both models. The WGS84 coordinates are treated as geodetic latitude and longitude; no conversion to geocentric latitude is applied before the spherical calculation. The WGS84 ellipsoid parameters published by NOAA are a semi-major axis of 6,378,137 m and inverse flattening of 298.257223563. GeographicLib calculates the shortest surface geodesic between each pair on that ellipsoid.
The generator remains equidistant on its sphere. The error reported here comes from the difference between Earth models. It is separate from distortion when measuring between two points away from the map center. An azimuthal equidistant projection can also be implemented on an ellipsoid, as documented by PROJ; the spherical model is a choice of this generator, not a requirement of the projection family. The generator's Lambert equal-area tab does not preserve center-to-point distance even on the sphere.
Calculated Differences
Signed error is spherical distance minus WGS84 geodesic distance. A positive error means the spherical estimate is longer.
| Measure | Result |
|---|---|
| Coordinate pairs in principal sample | 1,680 (560 geometries at 3 longitudes) |
| Median signed error | −0.028 km |
| Signed error range | −22.29 to +33.44 km |
| Median absolute error | 2.79 km |
| 95th percentile absolute error | 22.15 km |
| Greatest absolute error | 33.44 km |
| Median absolute percentage error | 0.196% |
| 95th percentile absolute percentage error | 0.437% |
| Signed percentage error range | −0.438% to +0.561% |
For the sampled destinations 5,000 km away on WGS84, the generator's spherical distances ranged from 4,980.94 km to 5,024.77 km. At 10,000 km on WGS84, the corresponding spherical values ranged from 9,977.71 km to 10,033.44 km. Thus a destination lying on a WGS84 distance boundary may appear inside or outside the equivalent labeled spherical ring. These intervals are not bounds for other centers or routes.
The greatest absolute difference in the principal sample, +33.44 km, occurred on a 10,000 km WGS84 route from 60°S, 120°W, heading north toward approximately 30.233°N, 120°W. Its spherical distance was 10,033.44 km. The direction and size of the error depend on latitude, orientation, and route length.
Percentage and kilometer errors answer different questions. Across the tested 1 km routes, absolute differences were less than 0.006 km (6 m), although the largest percentage difference was approximately 0.561%. For a distance-ring decision, compare the difference in kilometers with the tolerance required by the task rather than relying on a single percentage.
Examples From Fixed Coordinates
These reference points make the calculations easy to repeat. The city coordinates are representative points, not surveyed locations.
| Center to destination | WGS84 distance | Spherical minus WGS84 |
|---|---|---|
| (0°, 0°) to (0°, 90°E) | 10,018.75 km | −11.21 km |
| (0°, 0°) to North Pole | 10,001.97 km | +5.58 km |
| New York (40.7128°N, 74.0060°W) to London (51.5074°N, 0.1278°W) | 5,585.23 km | −15.01 km |
| (0°, 0°) to (0°, 180°) | 20,003.93 km | +11.16 km |
The final row is an exact antipodal pair. Both Earth models have a shortest-distance value, but a unique initial bearing does not exist on the sphere at the antipode. The generator's circular outer edge should not be used to infer a precise direction there.
Route Selection and Limitations
The script chooses seven center latitudes (80°S, 60°S, 30°S, 0°, 30°N, 60°N, 80°N), eight initial bearings (0° to 315° in 45° increments), and ten WGS84 lengths: 1, 10, 100, 500, 1,000, 2,500, 5,000, 10,000, 15,000, and 19,000 km. GeographicLib's direct geodesic solver determines the destination for each combination. Its inverse solver then calculates the geodesic distance for the resulting coordinate pair. The spherical calculation uses the same coordinates.
Seven latitudes × eight bearings × ten lengths produce 560 distinct distance geometries. Each was evaluated from three center longitudes (120°W, 0°, and 120°E), yielding 1,680 route records. Because WGS84 is rotationally symmetric, changing longitude without changing latitude, bearing, or length repeats the geodesic geometry. Those replications exercise longitude wrapping; they are not independent observations. Removing them leaves the reported rounded medians, percentiles, and extremes unchanged.
The sample is deterministic, not random or weighted by actual visitor routes. The percentiles describe these chosen combinations and should not be interpreted as a global or probabilistic error distribution. Percentage error is calculated relative to WGS84 distance and is undefined for zero-length routes.
Separate checks covered 21 coincident pairs, 21 exact antipodal pairs, and 63 near-antipodal pairs. Coincident pairs produced zero distance on both models. For exact antipodes, spherical distance was 20,015.09 km and WGS84 shortest distance was 20,003.93 km, a difference of +11.16 km. These edge cases are excluded from the principal percentiles. Near-antipodal directions are particularly sensitive to small coordinate changes; this study does not evaluate bearing errors.
The calculations do not test coastline-data accuracy, user input accuracy, terrain elevation, pixel measurement, image-export fidelity, or the map's apparent distances between two off-center points.
Using the Results
The generator is suitable for illustrating spherical distances and bearings from a chosen center. If a decision depends on whether a place is just inside or outside a specified distance limit, calculate the WGS84 geodesic directly. The tested differences do not establish a universal safe tolerance for a distance ring.
This comparison does not justify changing the generator's projection or ring calculations without a separate design and compatibility review.
Data, Code, and Reproduction
The downloads contain synthetic route coordinates and numerical outputs, plus the representative public-coordinate examples above. They do not include visitor locations, analytics, credentials, or private data.
- Route-level CSV (1,785 records: 1,680 principal cases and 105 special cases).
- Summary JSON (overall and grouped statistics, selected route parameters, and source-check status).
- Python analysis script, dependency list, and methodology notes.
From an Azimuthal Map repository checkout, run:
python -m pip install -r static/research/requirements.txt
python static/research/compare-sphere-wgs84.py --out static/research
The script checks the source generator's radius and projection when that source is present. If run without the repository source, it records that the source could not be checked; it still reproduces the numerical comparison. An optional check compares 100 evenly selected principal cases against pyproj.Geod(ellps='WGS84'). In this review, its greatest difference from GeographicLib was below 0.000001 km. Run it with --verify-pyproj after installing pyproj==3.7.2. That cross-check does not validate D3's rendered pixels or the exported images.
For complementary explanations, see how to read an azimuthal equidistant map and choosing between equidistant and equal-area projections.