UNPKG

node-hgt

Version:

Query hgt files (typically SRTM elevation data) with performance.

65 lines (48 loc) 2.02 kB
node-hgt ======== [![Greenkeeper badge](https://badges.greenkeeper.io/perliedman/node-hgt.svg)](https://greenkeeper.io/) [![npm version](https://img.shields.io/npm/v/node-hgt.svg)](https://www.npmjs.com/package/node-hgt) [![Build status](https://travis-ci.org/perliedman/node-hgt.png)](https://travis-ci.org/perliedman/node-hgt) Read and query HGT files, for example from SRTM, for elevation data with high performance. Optionally, this module can also use cached and automatically download HGT files as required. node-hgt tries to be reasonably performant. A rough benchmark shows it can do 1.8M elevation calculations per second on my years old laptop. ## Install ``` npm install --save node-hgt ``` ## Usage Load and query a HGT file: ```js var hgt = new Hgt(__dirname + '/data/N57E011.hgt', [57, 11]); // Return elevation in meters above sea level. // By default, elevation is interpolated bilinearly. hgt.getElevation([57, 11]) ``` Use a cache directory of HGT files for querying. Missing data will be downloaded using the elevation data index from [imagico.de](http://www.imagico.de/map/demsearch.php), by default. ```js var tileset = new TileSet('./data/'); tileset.getElevation([57.7, 11.9], function(err, elevation) { if (err) { console.log('getElevation failed: ' + err.message); } else { console.log(elevation); } }); ``` There's also a synchronous tile set, if you know before hand which area you will query: ```js var tileset = new SyncTileSet('./data/', [57, 11], [58, 12], function(err) { if (err) { console.log(err); return; } // All tiles are loaded (or downloaded, if they were not already on disk) // and queries can be made synchronous. var elevation = tileset.getElevation([57.7, 11.9]); console.log(elevation); } }); }); ```