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.
npm install --save node-hgt
Load and query a HGT file:
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, by default.
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:
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);
});