summaryrefslogtreecommitdiff
path: root/attic/lat_lon_to_xyz.js
blob: 692a368730d31d10c73b6b31d8b02727cffcbfe5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
'use strict'

/* This is a utility to convert latitude/longitude into X,Y,Z coordinates as used by clustering. */

if (process.argv.length !== 4) {
  console.log('Usage: node lat_lon_to_xyz.js <latitude> <longitude');
  process.exit(1);
}

var lat = parseFloat(process.argv[2])||0.0;
var lon = parseFloat(process.argv[3])||0.0;

var latRadians = lat * 0.01745329251994; // PI / 180
var lonRadians = lon * 0.01745329251994; // PI / 180
var cosLat = Math.cos(latRadians);

console.log({
  lat: lat,
  lon: lon,
  x: Math.round((-6371.0) * cosLat * Math.cos(lonRadians)),
  y: Math.round(6371.0 * Math.sin(latRadians)),
  z: Math.round(6371.0 * cosLat * Math.sin(lonRadians))
});

process.exit(0);