postgis
PostGIS data types and encoders/decoders for the Crystal Postgres driver.
Installation
-
Add the dependency to your
shard.yml:dependencies: postgis: github: jgaskins/postgis -
Run
shards install
Usage
Ensure that your database has the postgis extension enabled:
CREATE EXTENSION postgis
Load PostGIS into your application
require "postgis"
If you're writing raw SQL queries, you can specify the type of the result:
db.query_one "SELECT 'point(1 2 3)'::geography", as: PostGIS::Point3D
If you're using DB::Serializable, you can use PostGIS types for the models:
struct Address
include DB::Serializable
# ...
getter coordinates : PostGIS::Point2D
end
Currently supported GIS types:
| GIS Type | Crystal type |
|----------|--------------|
| POINT | PostGIS::Point2D, PostGIS::Point3D |
| POLYGON | PostGIS::Polygon2D |
More will be added in the future.
Contributing
- Fork it (https://github.com/jgaskins/postgis/fork)
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create a new Pull Request
Contributors
- Jamie Gaskins - creator and maintainer