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