postgis

Version, currently master branch1 version
  • master branchlatestJun 21, 2023

github.com/fujikawahiroaki/postgis

PostGIS extensions for the Crystal Postgres client

1 stars
2 dependents
License: MIT

Installation

# Add this to your shard.yml
dependencies:
  postgis:
    github: fujikawahiroaki/postgis
    branch: master

master is a branch, not a release, so this tracks it rather than pinning a version.

Then run:

shards install

shard.yml

Crystal
>= 0.36
License
MIT
Author
Jamie Gaskins

Dependencies

Runtime Dependencies

  • pg*github: will/crystal-pg

README

postgis

PostGIS data types and encoders/decoders for the Crystal Postgres driver.

Installation

  1. Add the dependency to your shard.yml:

    dependencies:
      postgis:
        github: jgaskins/postgis
  2. 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 TypeCrystal type
POINTPostGIS::Point2D, PostGIS::Point3D
POLYGONPostGIS::Polygon2D

More will be added in the future.

Contributing

  1. Fork it (https://github.com/jgaskins/postgis/fork)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors