All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.5.0] - 2026-09-01
Added
Measure.final_bearing/2— computes the bearing at the destination point (as opposed tobearing/2which gives the initial bearing at the origin)Helpers.assert_wgs84!/1and guards on all public geodesic functions against non-WGS84 SRIDsMath.approx/2for rounding Point coordinates to a given precision
Changed
Measure.distance/3now returns raw geodesic values; callers can useMath.rounded/2for display roundingMeasure.close_to/4uses raw distance and includes points exactly at the maximum thresholdClassification.nearest_point/3ranks candidates by raw distance- Empty geometries now return zero for aggregate measurements,
:errorfor point-producing measurements, andfalsefor polygon containment - WGS84 validation now checks every member of geometry and point collections recursively
- Length and area APIs now reject unsupported units with explicit
ArgumentErrormessages - Newly constructed WGS84 geometry and measurement-derived points now carry
srid: 4326; coordinate-only transformations preserve the source SRID - Circle and destination options consistently use
:units; unknown option names now raise instead of silently using defaults - The supported runtime floor is now Elixir 1.15 / OTP 26, with CI coverage through Elixir 1.18 / OTP 28
- Non-WGS84 SRID errors now explain reprojection, the
nilassumption, and how to correct stale WGS84 metadata explicitly
Fixed
Measure.along/3now geodesically interpolates mid-segment points instead of snapping to the nearest vertexMeasure.length_of/2now measures independent geometry paths without adding fictitious segments between them
[0.4.0] - 2026-04-12
Added
Classification.point_in_polygon?/3Classification.points_within_polygon/2Classification.nearest_point/3Measure.centroid/1Helpers.bbox_polygon/1
[0.3.1] - 2025-08-19
Added
- Geo 0.4.x support
[0.3.0] - 2025-03-24
Added
Measure.destination/3Transformation.circle/3
[0.2.0] - 2024-03-05
Added
Measure.area/1Measure.bearing/2
Fixed
- Bad
mod/2error
Changed
- Library cleanup
[0.1.0] - 2019-05-01
First release.