index.cjs 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. "use strict";Object.defineProperty(exports, "__esModule", {value: true});// index.ts
  2. var _distance = require('@turf/distance');
  3. var _intersect = require('@turf/intersect');
  4. var _helpers = require('@turf/helpers');
  5. function triangleGrid(bbox, cellSide, options = {}) {
  6. var results = [];
  7. var xFraction = cellSide / _distance.distance.call(void 0, [bbox[0], bbox[1]], [bbox[2], bbox[1]], options);
  8. var cellWidth = xFraction * (bbox[2] - bbox[0]);
  9. var yFraction = cellSide / _distance.distance.call(void 0, [bbox[0], bbox[1]], [bbox[0], bbox[3]], options);
  10. var cellHeight = yFraction * (bbox[3] - bbox[1]);
  11. var xi = 0;
  12. var currentX = bbox[0];
  13. while (currentX <= bbox[2]) {
  14. var yi = 0;
  15. var currentY = bbox[1];
  16. while (currentY <= bbox[3]) {
  17. var cellTriangle1 = null;
  18. var cellTriangle2 = null;
  19. if (xi % 2 === 0 && yi % 2 === 0) {
  20. cellTriangle1 = _helpers.polygon.call(void 0,
  21. [
  22. [
  23. [currentX, currentY],
  24. [currentX, currentY + cellHeight],
  25. [currentX + cellWidth, currentY],
  26. [currentX, currentY]
  27. ]
  28. ],
  29. options.properties
  30. );
  31. cellTriangle2 = _helpers.polygon.call(void 0,
  32. [
  33. [
  34. [currentX, currentY + cellHeight],
  35. [currentX + cellWidth, currentY + cellHeight],
  36. [currentX + cellWidth, currentY],
  37. [currentX, currentY + cellHeight]
  38. ]
  39. ],
  40. options.properties
  41. );
  42. } else if (xi % 2 === 0 && yi % 2 === 1) {
  43. cellTriangle1 = _helpers.polygon.call(void 0,
  44. [
  45. [
  46. [currentX, currentY],
  47. [currentX + cellWidth, currentY + cellHeight],
  48. [currentX + cellWidth, currentY],
  49. [currentX, currentY]
  50. ]
  51. ],
  52. options.properties
  53. );
  54. cellTriangle2 = _helpers.polygon.call(void 0,
  55. [
  56. [
  57. [currentX, currentY],
  58. [currentX, currentY + cellHeight],
  59. [currentX + cellWidth, currentY + cellHeight],
  60. [currentX, currentY]
  61. ]
  62. ],
  63. options.properties
  64. );
  65. } else if (yi % 2 === 0 && xi % 2 === 1) {
  66. cellTriangle1 = _helpers.polygon.call(void 0,
  67. [
  68. [
  69. [currentX, currentY],
  70. [currentX, currentY + cellHeight],
  71. [currentX + cellWidth, currentY + cellHeight],
  72. [currentX, currentY]
  73. ]
  74. ],
  75. options.properties
  76. );
  77. cellTriangle2 = _helpers.polygon.call(void 0,
  78. [
  79. [
  80. [currentX, currentY],
  81. [currentX + cellWidth, currentY + cellHeight],
  82. [currentX + cellWidth, currentY],
  83. [currentX, currentY]
  84. ]
  85. ],
  86. options.properties
  87. );
  88. } else if (yi % 2 === 1 && xi % 2 === 1) {
  89. cellTriangle1 = _helpers.polygon.call(void 0,
  90. [
  91. [
  92. [currentX, currentY],
  93. [currentX, currentY + cellHeight],
  94. [currentX + cellWidth, currentY],
  95. [currentX, currentY]
  96. ]
  97. ],
  98. options.properties
  99. );
  100. cellTriangle2 = _helpers.polygon.call(void 0,
  101. [
  102. [
  103. [currentX, currentY + cellHeight],
  104. [currentX + cellWidth, currentY + cellHeight],
  105. [currentX + cellWidth, currentY],
  106. [currentX, currentY + cellHeight]
  107. ]
  108. ],
  109. options.properties
  110. );
  111. }
  112. if (options.mask) {
  113. if (_intersect.intersect.call(void 0, _helpers.featureCollection.call(void 0, [options.mask, cellTriangle1])))
  114. results.push(cellTriangle1);
  115. if (_intersect.intersect.call(void 0, _helpers.featureCollection.call(void 0, [options.mask, cellTriangle2])))
  116. results.push(cellTriangle2);
  117. } else {
  118. results.push(cellTriangle1);
  119. results.push(cellTriangle2);
  120. }
  121. currentY += cellHeight;
  122. yi++;
  123. }
  124. xi++;
  125. currentX += cellWidth;
  126. }
  127. return _helpers.featureCollection.call(void 0, results);
  128. }
  129. var turf_triangle_grid_default = triangleGrid;
  130. exports.default = turf_triangle_grid_default; exports.triangleGrid = triangleGrid;
  131. //# sourceMappingURL=index.cjs.map