Changelog
View SourceThis project adheres to Semantic Versioning.
[1.7.0] 14-02-2026
- Dependencies
- Bumped minimum Elixir dependency to 1.18 to be able to use the JSON module, as the
geometrylibrary is not fully compatible with:json - Updated the
geometrydependency to include key fixesgeo_sqlrelies on.
- Bumped minimum Elixir dependency to 1.18 to be able to use the JSON module, as the
- Improvements
- The PostGIS and SpatiaLite extensions now support using structs from the
geolibrary in mutations. This allows compatibility with other libraries and Ecto schemas using%Geo.*{}structs. All queries still return%Geometry.*{}structs.
- The PostGIS and SpatiaLite extensions now support using structs from the
[1.6.0] 21-12-2025
- Improvements
- Added
PostGIS.crossing_directionwhich translates the arcane integer return values PostGIS uses for crossing directions to a developer-friendly atom (e.g.:left) - Added
PostGIS.dimensionalitywhich translates the arcane integer return values PostGIS uses for dimension flags to a developer-friendly atom (e.g.:dim_3m) - Added support for encoding and decoding the Box2D PostGIS type via the %GeoSQL.PostGIS.Box2D{} struct
- Parameters are now optional on
PostGIS.make_valid PostGIS.scaleaccepts Ecto fragments as parameters (not only literal numbers)- Test coverage of GeoSQL.PostGIS functions is complete
- Added
- Fixes
- Correct the number of parameters passed to PostGIS in
PostGIS.swap_ordinates
- Correct the number of parameters passed to PostGIS in
[1.5.1] 21-12-2025
- Improvements
- Test coverage of GeoSQL.Common functions is complete
- Fixes
- Fix
GeoSQL.Common.unary_union - Fix
GeoSQL.Common.remove_point - Fix a possible math exception in
GeoSQL.Common.rotate - Allow fragments to be used for any parameter in the
GeoSQL.Commonmacros
- Fix
[1.5.0] 20-12-2025
- Improvements
- Expanded unit test coverage
- Fixes
Common.line_interpolate_pointssupports therepeat?parameter- Fix
Common.maximum_inscribed_circlewith SpatiaLite
[1.4.2] 05-12-2025
- Improvements
- Expanded unit test coverage
- SpatiaLit support expanded to include the following functions:
MM.gml_to_sqlMM.num_patchesMM.patch_n
- Fixes
Common.min_coord(geometry, :x, repo)works correctly now (:yand:zvariants were unaffected)- SpatiaLite documentation for the function behind
minimum_bounding_radiuswas wrong; adapted to the real names used in the SaptiaLite library rather than what their docs say - Fix typo in
Common.number_of_geometries
[1.4.1] 05-12-2025
- Improvements
- Expanded unit test coverage
- More documentation
- Style fixes suggested by
credo
- Fixes
GeoSQL.PostGIS.expandcan be called with more than two dimensionsGeoSQL.Common.ST_EstimatedExtentsupports{schema, table}and justtable_name
[1.4.0] 01-12-2025
- Improvements
- Degree<->radians conversion utilities in
Common.degrees/1andCommon.radians/1 - Expanded unit test coverage
- Degree<->radians conversion utilities in
- Fixes
- Affine transformations with z-values with PostGIS.affine/11 had wrong number of placeholders
[1.3.0] 21-07-2025
- Improvements
- Introduce the
GeoSQL.Geometry.GeopackageEcto type, allowing Ecto schemas to have geometry fields backed by Geopackage data. Currently only supported with SQLite3 databases, and relies on the Spatialite module being available.
- Introduce the
[1.2.0] 20-07-2025
- Improvements
- Support for SpatiaLite's Geopackage interoperability functions:
GeoSQL.SpatiaLite.as_gpb: convert a geometry to a Geopackage binaryGeoSQL.SpatiaLite.geom_from_gpb: convert a Geopackage binary to a geometryGeoSQL.SpatiaLite.is_valid_gpb: checks validity of a Geopackage blob
- More tests
- Support for SpatiaLite's Geopackage interoperability functions:
- Fixes
- Standardized on the proper spelling of SpatiaLite
[1.1.0] 09-07-2025
- Improvements
QueryUtils.decode_geometrynow supports tuples in addition to maps and lists.- Expanded unit test coverage.
- Fixes
MM.perimeterhad misleading parameter names.
[1.0.0] 09-07-2025
- Breaking changes
- All SQL/MM functions were collapsed into a single MM module.
Migration: Replace all instances of
MM2andMM3withMM.
- All SQL/MM functions were collapsed into a single MM module.
Migration: Replace all instances of
- Improvements
- Expanded unit test suite considerably, improved vector tile generation tests
- Fixes
MM.locate_alongwas missing a parameter placeholder
[0.1.0] 02-07-2025
First release.
- Spatial database support
- PostGIS
- Spatialite
- GIS SQL functions (290+)
- SQL/MM functions (part 2 and 3)
- Common, but non-standard functions
- Non-stanadard PostGIS functions
- Mapbox vector tile generation (PostGIS only)
- Eco Schema types
- GeoSQL.Geometry - supports any geometry
- GeoSQL.Geography - suports any geography
- GeoSQL.Geometry.<Type> - specific Geometry types (points, lines, polygons, etc.)
- GeoSQL.Int4