UNPKG

@geonet/geohash

Version:
59 lines (51 loc) 1.4 kB
/** **************************************************************************************************** * File: toGeoJSON.js * Project: geohash * @author Nick Soggin <iSkore@users.noreply.github.com> on 19-Feb-2019 *******************************************************************************************************/ 'use strict'; const geohashToBBox = require( './geohashToBBox' ); /** * toGeoJSON * @description * convert geohash to GeoJSON * @param {string} hash - geohash to convert * @param {object} opts - geojson options * @param {boolean} [opts.includeGeohashAsProperty=false] * include geohash string as a property in the GeoJSON * @param {boolean} [opts.includeFeatureBBox=false] * include bbox as a property in the GeoJSON * @returns {*} geohash to geojson */ function toGeoJSON( hash, opts = { includeGeohashAsProperty: false, includeFeatureBBox: false } ) { const bbox = geohashToBBox( hash ); const data = { type: 'Feature', properties: {}, geometry: { type: 'Polygon', coordinates: [ [ [ bbox[ 0 ], bbox[ 1 ] ], [ bbox[ 2 ], bbox[ 1 ] ], [ bbox[ 2 ], bbox[ 3 ] ], [ bbox[ 0 ], bbox[ 3 ] ], [ bbox[ 0 ], bbox[ 1 ] ] ] ] } }; if ( opts.includeGeohashAsProperty ) { data.properties.geohash = hash; } if ( opts.includeFeatureBBox ) { data.bbox = bbox; } return data; } module.exports = toGeoJSON;