UNPKG

geohash-cli

Version:

CLI to find as much info as possible about today's (or any date's) geohashes.

108 lines (75 loc) 2.83 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _async = require('async'); var _debug = require('debug'); var _debug2 = _interopRequireDefault(_debug); var _partial = require('lodash/partial'); var _partial2 = _interopRequireDefault(_partial); var _transform = require('lodash/transform'); var _transform2 = _interopRequireDefault(_transform); var _assign = require('lodash/assign'); var _assign2 = _interopRequireDefault(_assign); var _geohashMap = require('./geohashMap'); var _geohashMap2 = _interopRequireDefault(_geohashMap); var _fillOptions = require('./fillOptions'); var _fillOptions2 = _interopRequireDefault(_fillOptions); var _getCoordinates = require('./getCoordinates'); var _getCoordinates2 = _interopRequireDefault(_getCoordinates); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var debug = (0, _debug2.default)('geohash:main'); var toGeoHash = function toGeoHash() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var cb = arguments[1]; if (typeof options === 'function') { cb = options; options = {}; } var _options = options, key = _options.key; var filledOptions = (0, _partial2.default)(_fillOptions2.default, options); (0, _async.waterfall)([filledOptions, _getCoordinates2.default], function (err, results) { if (err) return cb(err); var byDate = results.byDate, graticule = results.graticule, location = results.location; var milesFromLoc = function milesFromLoc(geo) { return { distance: location.milesFrom(geo) }; }; debug('Location: ' + location); debug('Graticule: ' + graticule); var dates = (0, _transform2.default)(byDate, function (result, hashes, date) { var global = hashes.global, geohashes = hashes.geohashes; debug('Global: ' + global); debug('Geohashes: ' + geohashes); var map = (0, _geohashMap2.default)({ key: key, location: location, geohashes: geohashes, center: graticule.graticuleCenter().join(','), drawGraticulePaths: true, zoom: 7 }); var globalMap = (0, _geohashMap2.default)({ key: key, location: location, geohashes: [global], center: location.toString(), drawGraticulePaths: false, zoom: null }); result[date] = { map: map, globalMap: globalMap, global: (0, _assign2.default)(milesFromLoc(global), global.toJSON()), geohashes: geohashes.map(function (hash) { return (0, _assign2.default)(milesFromLoc(hash), hash.toJSON()); }) }; }); cb(null, { dates: dates, location: location.toJSON() }); }); }; exports.default = toGeoHash;