lat_lon_to_xyz.js 695 B

12345678910111213141516171819202122232425
  1. 'use strict'
  2. /* This is a utility to convert latitude/longitude into X,Y,Z coordinates as used by clustering. */
  3. if (process.argv.length !== 4) {
  4. console.log('Usage: node lat_lon_to_xyz.js <latitude> <longitude');
  5. process.exit(1);
  6. }
  7. var lat = parseFloat(process.argv[2])||0.0;
  8. var lon = parseFloat(process.argv[3])||0.0;
  9. var latRadians = lat * 0.01745329251994; // PI / 180
  10. var lonRadians = lon * 0.01745329251994; // PI / 180
  11. var cosLat = Math.cos(latRadians);
  12. console.log({
  13. lat: lat,
  14. lon: lon,
  15. x: Math.round((-6371.0) * cosLat * Math.cos(lonRadians)),
  16. y: Math.round(6371.0 * Math.sin(latRadians)),
  17. z: Math.round(6371.0 * cosLat * Math.sin(lonRadians))
  18. });
  19. process.exit(0);