Wondering what’s next for npm?Check out our public roadmap! »

    knex-postgis
    TypeScript icon, indicating that this package has built-in type declarations

    0.13.0 • Public • Published

    knex-postgis

    npm version npm downloads Build Status Dependencies Status License

    Extension for use postgis functions in knex SQL query builder.

    Example

    This example show the sql generated by the extension.

    const knex = require('knex');
    const knexPostgis = require('knex-postgis');
    
    const db = knex({
      client: 'postgres'
    });
    
    // install postgis functions in knex.postgis;
    const st = knexPostgis(db);
    /* or:
     * knexPostgis(db);
     * const st = db.postgis;
     */
    
    // insert a point
    const sql1 = db.insert({
      id: 1,
      geom: st.geomFromText('Point(0 0)', 4326)
    }).into('points').toString();
    console.log(sql1);
    // insert into "points" ("geom", "id") values (ST_geomFromText('Point(0 0)'), '1')
    
    // find all points return point in wkt format
    const sql2 = db.select('id', st.asText('geom')).from('points').toString();
    console.log(sql2);
    // select "id", ST_asText("geom") as "geom" from "points"
    
    // all methods support alias
    const sql3 = db.select('id', st.asText(st.centroid('geom')).as('centroid')).from('geometries').toString();
    console.log(sql3);
    // select "id", ST_asText(ST_centroid("geom")) as "centroid" from "geometries"

    Currently supported functions

    Define extra functions

    const knex = require('knex');
    const knexPostgis = require('knex-postgis');
    
    const db = knex({
      client: 'postgres'
    });
    
    knexPostgis(db);
    
    db.postgisDefineExtras((knex, formatter) => ({
      utmzone(geom) {
        return knex.raw('utmzone(?)', [formatter.wrapWKT(geom)]);
      }
    }));
    //now you can use st.utmzone function in the same way as predefined functions

    Install

    npm i knex-postgis

    DownloadsWeekly Downloads

    7,371

    Version

    0.13.0

    License

    MIT

    Unpacked Size

    62.3 kB

    Total Files

    16

    Last publish

    Collaborators

    • avatar