AshGeo: Tools for using Geo, Topo and PostGIS
I've noticed some chatter on here from folks working with geospatial, and decided to pull something out from under my umbrella:
ash_geo
.
It provides:
- All the st_*
functions that you would get with Geo.PostGIS
for use with Ash expr
, and more to come
- An Ash.Type
backed by each of Geo.JSON
, Geo.WKB
and Geo.WKT
which may
be used as argument
types in your Ash actions, and will automatically cast
input from GeoJSON, WKT and WKB encodings
- An Ash.Type
for Geo.PostGIS.Geometry
, for use with resource attributes
- All types may be overridden and narrowed with use
, allowing you to add
stricter constraints and storage types (e.g. geometry(Point,26918)
).
- Validations for Geo
types (such as is_point_zm(:arg)
for checking that
argument :arg
is a instance of Geo.PointZM
)
- Validations backed by Topo
, allowing checks of simple constraints such as
contains?
without needing to hit the database
v0.1.0
is released on Hex. Ideas and thoughts welcome! Feel free to open issues/PRs and to reply to this thread 🙂
Much love to the Ash community ♥️
Hoping it comes in handy.
https://github.com/bcksl/ash_geoGitHub
GitHub - bcksl/ash_geo: Tools for using Geo, Topo and PostGIS with Ash
Tools for using Geo, Topo and PostGIS with Ash. Contribute to bcksl/ash_geo development by creating an account on GitHub.
2 Replies
woah
This is awesome!
Going to show this to the team ❤️
Very excited about this, may get used on a project soon 😄
Awesome, glad to hear it mate!
The CI workflow might look a little bit familiar 😇