?`, (SELECT ST_SRID(${query.geom_column}) as srid FROM ${
params.table
} LIMIT 1) sq`
:''
}
-- Optional Filter
${query.filter||bounds?'WHERE':''}
${query.filter?`${query.filter}`:''}
${query.filter&&bounds?'AND':''}
${
bounds
?`
${query.geom_column} &&
ST_Transform(
ST_MakeEnvelope(${bounds.join()}, 4326),
srid
)
`
:''
}
) as q;
`
}
module.exports=function(app,pool){
/**
* @swagger
*
* /data/geobuf/{table}:
* get:
* description: return table as geobuf
* tags: ['geodata']
* produces:
* - application/x-protobuf
* parameters:
* - name: table
* description: name of table or view
* in: path
* required: true
* type: string
* - name: geom_column
* description: name of geometry column (default 'geom')
* in: query
* required: false
* - name: columns
* description: optional comma seperated list of attribute columns to be added to the mvt geometries
* in: query
* required: false
* type: string
* - name: filter
* description: 'Optional filter parameters for a SQL WHERE statement.'
* in: query
* type: string
* required: false
* - name: bounds
* description: 'Optionally limit output to features that intersect bounding box. Can be expressed as a bounding box (sw.lng, sw.lat, ne.lng, ne.lat) or a Z/X/Y tile (0,0,0).'