All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
1.0.0 - 2026-04-12
- arc.js is now a pure ESM package (from @jgravois).
If you need to require() arc.js as CJS (CommonJS), or have a runtime older than Node.js 18, please use 0.1.4.
0.x syntax:
const arc = require('arc');
const gc = new arc.GreatCircle(/* */);1.x syntax:
import { GreatCircle } from 'arc';
const gc = new GreatCircle(/* */);- Antimeridian splitting in GreatCircle.Arc (from @thomas-hervey)
GreatCircle.Arc()now defaults tonpoints = 100— callinggc.Arc()with no arguments produces a smooth 100-point arc instead of a 2-point stub- Antimeridian splitting now uses analytical bisection (binary search on
interpolate()) instead of the GDAL-ported linear heuristic. This approach is more accurate, especially at high latitudes and lownpointsvalues ArcOptions.offsetis now a no-op (kept for backwards compatibility); antimeridian handling is fully automatic
- GDAL license file (
GDAL-LICENSE.md). No GDAL-derived code remains in the codebase
scripts/benchmark.mjsbenchmarks bisection vs. prior linear approach across npoints and route typesscripts/dump-fixtures.mjsexports all test routes as GeoJSON for use in visual verification (such as https://geojson.io or the index.html demo page)
0.2.0 - 2025-09-22
- Node.js 16 is now the minimum supported runtime
- TypeScript support with backwards compatibility (From @thomas-hervey)
0.1.4 - 2022-11-16
- Limit output precision to six decimal places
0.1.3 - 2022-05-09
- Fix bug when generating string for Antipodal error
0.1.2 - 2021-10-13
- Fix link to algorithm used in documentation (#40)
0.1.1 - 2018-06-20
- Support browserify (#26)
- Changed GreatCircle constructor to expect objects like
{x:-122,y:48}for start/end rather than arc.Coord objects
- Added mocha tests
- Fixed jshint strict errors