1.1.4 ⢠Published 6 years ago
sun-horizon v1.1.4
sun-horizon š
š Get Horizon profile based on topography from a (latitude, longitude) point.
šš» This module is heavily based on node-hgt.
āļø Support
š Install
npm install sun-horizon
šāāļø Usage
ā Call init() function before any other operations.
š sun-horizon uses a cache directory of HGT files (default sun-horizon-data/).
š» This module supports javascript or typescirpt.
const sunHorizon = require('sun-horizon');
sunHorizon.init();
const horizon = await sunHorizon.getHorizon({"lat": 45, "lng": 5});or
import { getHorizon, init } from 'sun-horizon';
init();
const horizon = await getHorizon({lat: 45, lng: 5});Types
LatLng
{
lat: number;
lng: number;
}HorizonOptions
{
azimuthOptions?: AzimuthOptions;
highestPointOptions?: HighestPointOptions;
}AzimuthOptions
{
azimuthStart?: number; // degree, 0 is North, 90 Eeast
azimuthEnd?: number; // degree
azimuthTick?: number; // degree
}HighestPointOptions
{
distanceMax?: number; // meter
distanceTick?: number; // meter
}HorizonPoint
{
azimuth: number; // degree
angle: number; // degree, 0 is same elevation as origin
altitude: number; // meter
latLng?: LatLng;
}Horizon
{
origin: LatLng;
elevationProfile: HorizonPoint[];
}CacheData
{
bytes: number;
files: number;
}Functions
init
init(cacheDirectory?: string): voidInitialize module and create the required cache directory (default is sun-horizon-data/) + populate with a .gitignore file.
getHorizon
getHorizon(origin: LatLng, options?: HorizonOptions): Promise<Horizon>const grenoble: LatLng = {
lat: 45.185739,
lng: 5.736236
}
const horizon = await getHorizon(grenoble);
console.log(horizon.elevationProfile.map(point => point.altitude));highestPointInAzimuth
highestPointInAzimuth(origin: LatLng, azimuth: number, options?: HighestPointOptions): Promise<HorizonPoint>const origin: LatLng = {
lat: 45.185739,
lng: 5.736236
}
const azimuth = 90; // East
const point = await highestPointInAzimuth(origin, azimuth);getAltitude
getAltitude(latLng: LatLng): Promise<number>const origin: LatLng = {
lat: 45.185739,
lng: 5.736236
}
const altitude = await getAltitude(origin); // in metergetCacheData
Return number of files and total size in bytes. (See CacheData)
getCacheData(): Promise<CacheData>const cache = await getCacheData();cleanCache
Delete all .hgt cache files and return number of deleted files.
cleanCache(): Promise<number>const deletedFiles = await cleanCache();