adjust_axis.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. export default function(crs, denorm, point) {
  2. var xin = point.x,
  3. yin = point.y,
  4. zin = point.z || 0.0;
  5. var v, t, i;
  6. var out = {};
  7. for (i = 0; i < 3; i++) {
  8. if (denorm && i === 2 && point.z === undefined) {
  9. continue;
  10. }
  11. if (i === 0) {
  12. v = xin;
  13. if ("ew".indexOf(crs.axis[i]) !== -1) {
  14. t = 'x';
  15. } else {
  16. t = 'y';
  17. }
  18. }
  19. else if (i === 1) {
  20. v = yin;
  21. if ("ns".indexOf(crs.axis[i]) !== -1) {
  22. t = 'y';
  23. } else {
  24. t = 'x';
  25. }
  26. }
  27. else {
  28. v = zin;
  29. t = 'z';
  30. }
  31. switch (crs.axis[i]) {
  32. case 'e':
  33. out[t] = v;
  34. break;
  35. case 'w':
  36. out[t] = -v;
  37. break;
  38. case 'n':
  39. out[t] = v;
  40. break;
  41. case 's':
  42. out[t] = -v;
  43. break;
  44. case 'u':
  45. if (point[t] !== undefined) {
  46. out.z = v;
  47. }
  48. break;
  49. case 'd':
  50. if (point[t] !== undefined) {
  51. out.z = -v;
  52. }
  53. break;
  54. default:
  55. //console.log("ERROR: unknow axis ("+crs.axis[i]+") - check definition of "+crs.projName);
  56. return null;
  57. }
  58. }
  59. return out;
  60. }