🌄 Get Horizon profile based on topography from a (latitude, longitude) point.
🙌🏻 This module is heavily based on node-hgt.
npm install sun-horizon
✅ 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});
{
lat: number;
lng: number;
}
{
azimuthOptions?: AzimuthOptions;
highestPointOptions?: HighestPointOptions;
}
{
azimuthStart?: number; // degree, 0 is North, 90 Eeast
azimuthEnd?: number; // degree
azimuthTick?: number; // degree
}
{
distanceMax?: number; // meter
distanceTick?: number; // meter
}
{
azimuth: number; // degree
angle: number; // degree, 0 is same elevation as origin
altitude: number; // meter
latLng?: LatLng;
}
{
origin: LatLng;
elevationProfile: HorizonPoint[];
}
{
bytes: number;
files: number;
}
init(cacheDirectory?: string): void
Initialize module and create the required cache directory (default is sun-horizon-data/
) + populate with a .gitignore
file.
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(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(latLng: LatLng): Promise<number>
const origin: LatLng = {
lat: 45.185739,
lng: 5.736236
}
const altitude = await getAltitude(origin); // in meter
Return number of files and total size in bytes
. (See CacheData)
getCacheData(): Promise<CacheData>
const cache = await getCacheData();
Delete all .hgt cache files and return number of deleted files.
cleanCache(): Promise<number>
const deletedFiles = await cleanCache();