Bookshelf plugin for parsing & serializing PostGIS geography/geometry columns
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.eslintrc
.gitignore
.travis.yml
LICENSE
README.md
index.js
package.json
yarn.lock

README.md

bookshelf-postgis

NPM Version Build Status Dependency Status Dev Dependency Status

Bookshelf plugin for PostGIS to automatically parse and serialize geometry/geography columns on fetch and save, respectively. Geography columns are parsed to specified attributes (e.g. [lon, lat] results in a lon and a lat attribute on the model), and geometry columns are parsed to GeoJSON.

NOTE: Geography columns must already be WGS 84 lon lat (SRID:4326)!

Installation

npm install bookshelf-postgis --save

Usage

Apply the plugin:

const postgis = require('bookshelf-postgis');

bookshelf.plugin(postgis);

And add geography or geometry columns to your model:

const User = bookshelf.Model.extend({
  tableName: 'users',
  geography: {
    location: ['lon', 'lat'],
    // Use dot notation to specify deeper nesting
    geo: ['address.lon', 'address.lat'],
    geo2: ['location[0]', 'location[1]'],
  },
  geometry: ['geometry']
});