UNPKG

postgis

Version:

A Node.js class for interacting with PostGIS-enabled PostgreSQL databases.

27 lines (23 loc) 712 B
module.exports = function (table, point, columns, geom_column, filter, limit) { const [x, y, srid] = point.match(/^((-?\d+\.?\d+)(,-?\d+\.?\d+)(,[0-9]{4}))/)[0].split(',') return ` SELECT ${columns}, ST_Distance( ST_Transform( st_setsrid( st_makepoint(${x}, ${y}), ${srid} ), (SELECT ST_SRID(${geom_column}) FROM ${table} LIMIT 1) ), ${geom_column} ) as distance FROM ${table} ${filter ? `WHERE ${filter}` : ''} ORDER BY ${geom_column} <-> ST_Transform( st_setsrid( st_makepoint(${x}, ${y}), ${srid} ), (SELECT ST_SRID(${geom_column}) FROM ${table} LIMIT 1) ) LIMIT ${limit} ` }