summaryrefslogtreecommitdiff
path: root/attic
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2018-01-08 14:27:55 -0800
committerAdam Ierymenko <adam.ierymenko@gmail.com>2018-01-08 14:27:55 -0800
commite338c5f91d7724dcc16499a523089a31ab1f0a05 (patch)
treecb8cd87beea0f1c0ffc136e20db526fbcec24273 /attic
parent0b0b5da2402af9f3674121c7f71e8706b63f8f1a (diff)
downloadinfinitytier-e338c5f91d7724dcc16499a523089a31ab1f0a05.tar.gz
infinitytier-e338c5f91d7724dcc16499a523089a31ab1f0a05.zip
cleanup
Diffstat (limited to 'attic')
-rw-r--r--attic/lat_lon_to_xyz.js25
1 files changed, 25 insertions, 0 deletions
diff --git a/attic/lat_lon_to_xyz.js b/attic/lat_lon_to_xyz.js
new file mode 100644
index 00000000..692a3687
--- /dev/null
+++ b/attic/lat_lon_to_xyz.js
@@ -0,0 +1,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);