nad_cvt.js 616 B

12345678910111213141516171819202122232425262728293031
  1. var adjust_lon = require('./adjust_lon');
  2. var nad_intr = require('./nad_intr');
  3. var inverseNadCvt = require('./inverseNadCvt');
  4. module.exports = function(pin, inverse, ct) {
  5. var val = {
  6. "x": Number.NaN,
  7. "y": Number.NaN
  8. };
  9. if (isNaN(pin.x)) {
  10. return val;
  11. }
  12. var tb = {
  13. "x": pin.x,
  14. "y": pin.y
  15. };
  16. tb.x -= ct.ll[0];
  17. tb.y -= ct.ll[1];
  18. tb.x = adjust_lon(tb.x - Math.PI) + Math.PI;
  19. var t = nad_intr(tb, ct);
  20. if (inverse) {
  21. return inverseNadCvt(t, val, tb, ct);
  22. }
  23. else {
  24. if (!isNaN(t.x)) {
  25. val.x = pin.x - t.x;
  26. val.y = pin.y + t.y;
  27. }
  28. }
  29. return val;
  30. };