winnow
Version:
Apply sql-like filters to GeoJSON
17 lines (13 loc) • 549 B
JavaScript
const proj4 = require('proj4')
const _ = require('lodash')
const transformCoordinates = require('./transform-coordinates')
module.exports = function projectCoordinates (params) {
const { coordinates, fromSR = 'EPSG:4326', toSR } = params
if (!toSR || fromSR === toSR) return coordinates
return transformCoordinates(coordinates, { fromSR, toSR }, (coordinates, options) => {
if (_.isNumber(coordinates[0]) && _.isNumber(coordinates[1])) {
return proj4(options.fromSR, options.toSR, coordinates)
}
return coordinates
})
}