node-red-contrib-tak-registration 0.13.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1151) hide show
  1. package/node_modules/@turf/along/README.md +3 -5
  2. package/node_modules/@turf/along/dist/cjs/index.cjs.map +1 -1
  3. package/node_modules/@turf/along/dist/cjs/index.d.cts +3 -3
  4. package/node_modules/@turf/along/dist/esm/index.d.ts +3 -3
  5. package/node_modules/@turf/along/dist/esm/index.js.map +1 -1
  6. package/node_modules/@turf/along/package.json +13 -13
  7. package/node_modules/@turf/angle/dist/cjs/index.cjs +10 -7
  8. package/node_modules/@turf/angle/dist/cjs/index.cjs.map +1 -1
  9. package/node_modules/@turf/angle/dist/cjs/index.d.cts +1 -1
  10. package/node_modules/@turf/angle/dist/esm/index.d.ts +1 -1
  11. package/node_modules/@turf/angle/dist/esm/index.js +10 -7
  12. package/node_modules/@turf/angle/dist/esm/index.js.map +1 -1
  13. package/node_modules/@turf/angle/package.json +15 -15
  14. package/node_modules/@turf/area/dist/cjs/index.cjs +1 -2
  15. package/node_modules/@turf/area/dist/cjs/index.cjs.map +1 -1
  16. package/node_modules/@turf/area/dist/cjs/index.d.cts +1 -1
  17. package/node_modules/@turf/area/dist/esm/index.d.ts +1 -1
  18. package/node_modules/@turf/area/dist/esm/index.js +1 -2
  19. package/node_modules/@turf/area/dist/esm/index.js.map +1 -1
  20. package/node_modules/@turf/area/package.json +10 -10
  21. package/node_modules/@turf/bbox/dist/cjs/index.cjs.map +1 -1
  22. package/node_modules/@turf/bbox/dist/cjs/index.d.cts +1 -1
  23. package/node_modules/@turf/bbox/dist/esm/index.d.ts +1 -1
  24. package/node_modules/@turf/bbox/dist/esm/index.js.map +1 -1
  25. package/node_modules/@turf/bbox/package.json +10 -10
  26. package/node_modules/@turf/bbox-clip/dist/cjs/index.cjs +9 -18
  27. package/node_modules/@turf/bbox-clip/dist/cjs/index.cjs.map +1 -1
  28. package/node_modules/@turf/bbox-clip/dist/cjs/index.d.cts +1 -1
  29. package/node_modules/@turf/bbox-clip/dist/esm/index.d.ts +1 -1
  30. package/node_modules/@turf/bbox-clip/dist/esm/index.js +9 -18
  31. package/node_modules/@turf/bbox-clip/dist/esm/index.js.map +1 -1
  32. package/node_modules/@turf/bbox-clip/package.json +11 -11
  33. package/node_modules/@turf/bbox-polygon/README.md +6 -6
  34. package/node_modules/@turf/bbox-polygon/dist/cjs/index.cjs.map +1 -1
  35. package/node_modules/@turf/bbox-polygon/dist/cjs/index.d.cts +2 -2
  36. package/node_modules/@turf/bbox-polygon/dist/esm/index.d.ts +2 -2
  37. package/node_modules/@turf/bbox-polygon/dist/esm/index.js.map +1 -1
  38. package/node_modules/@turf/bbox-polygon/package.json +9 -9
  39. package/node_modules/@turf/bearing/dist/cjs/index.cjs.map +1 -1
  40. package/node_modules/@turf/bearing/dist/cjs/index.d.cts +1 -1
  41. package/node_modules/@turf/bearing/dist/esm/index.d.ts +1 -1
  42. package/node_modules/@turf/bearing/dist/esm/index.js.map +1 -1
  43. package/node_modules/@turf/bearing/package.json +11 -11
  44. package/node_modules/@turf/bezier-spline/dist/cjs/index.cjs.map +1 -1
  45. package/node_modules/@turf/bezier-spline/dist/cjs/index.d.cts +1 -1
  46. package/node_modules/@turf/bezier-spline/dist/esm/index.d.ts +1 -1
  47. package/node_modules/@turf/bezier-spline/dist/esm/index.js.map +1 -1
  48. package/node_modules/@turf/bezier-spline/package.json +10 -10
  49. package/node_modules/@turf/boolean-clockwise/dist/cjs/index.cjs.map +1 -1
  50. package/node_modules/@turf/boolean-clockwise/dist/cjs/index.d.cts +1 -1
  51. package/node_modules/@turf/boolean-clockwise/dist/esm/index.d.ts +1 -1
  52. package/node_modules/@turf/boolean-clockwise/dist/esm/index.js.map +1 -1
  53. package/node_modules/@turf/boolean-clockwise/package.json +10 -10
  54. package/node_modules/@turf/boolean-concave/dist/cjs/index.cjs.map +1 -1
  55. package/node_modules/@turf/boolean-concave/dist/cjs/index.d.cts +1 -1
  56. package/node_modules/@turf/boolean-concave/dist/esm/index.d.ts +1 -1
  57. package/node_modules/@turf/boolean-concave/dist/esm/index.js.map +1 -1
  58. package/node_modules/@turf/boolean-concave/package.json +10 -10
  59. package/node_modules/@turf/boolean-contains/dist/cjs/index.cjs.map +1 -1
  60. package/node_modules/@turf/boolean-contains/dist/cjs/index.d.cts +1 -1
  61. package/node_modules/@turf/boolean-contains/dist/esm/index.d.ts +1 -1
  62. package/node_modules/@turf/boolean-contains/dist/esm/index.js.map +1 -1
  63. package/node_modules/@turf/boolean-contains/package.json +13 -13
  64. package/node_modules/@turf/boolean-crosses/dist/cjs/index.cjs.map +1 -1
  65. package/node_modules/@turf/boolean-crosses/dist/cjs/index.d.cts +1 -1
  66. package/node_modules/@turf/boolean-crosses/dist/esm/index.d.ts +1 -1
  67. package/node_modules/@turf/boolean-crosses/dist/esm/index.js.map +1 -1
  68. package/node_modules/@turf/boolean-crosses/package.json +13 -13
  69. package/node_modules/@turf/boolean-disjoint/README.md +1 -1
  70. package/node_modules/@turf/boolean-disjoint/dist/cjs/index.cjs +3 -3
  71. package/node_modules/@turf/boolean-disjoint/dist/cjs/index.cjs.map +1 -1
  72. package/node_modules/@turf/boolean-disjoint/dist/cjs/index.d.cts +3 -3
  73. package/node_modules/@turf/boolean-disjoint/dist/esm/index.d.ts +3 -3
  74. package/node_modules/@turf/boolean-disjoint/dist/esm/index.js +3 -3
  75. package/node_modules/@turf/boolean-disjoint/dist/esm/index.js.map +1 -1
  76. package/node_modules/@turf/boolean-disjoint/package.json +13 -13
  77. package/node_modules/@turf/boolean-equal/dist/cjs/index.cjs +1 -2
  78. package/node_modules/@turf/boolean-equal/dist/cjs/index.cjs.map +1 -1
  79. package/node_modules/@turf/boolean-equal/dist/cjs/index.d.cts +1 -1
  80. package/node_modules/@turf/boolean-equal/dist/esm/index.d.ts +1 -1
  81. package/node_modules/@turf/boolean-equal/dist/esm/index.js +1 -2
  82. package/node_modules/@turf/boolean-equal/dist/esm/index.js.map +1 -1
  83. package/node_modules/@turf/boolean-equal/package.json +11 -11
  84. package/node_modules/@turf/boolean-intersects/dist/cjs/index.cjs +3 -3
  85. package/node_modules/@turf/boolean-intersects/dist/cjs/index.cjs.map +1 -1
  86. package/node_modules/@turf/boolean-intersects/dist/cjs/index.d.cts +3 -3
  87. package/node_modules/@turf/boolean-intersects/dist/esm/index.d.ts +3 -3
  88. package/node_modules/@turf/boolean-intersects/dist/esm/index.js +3 -3
  89. package/node_modules/@turf/boolean-intersects/dist/esm/index.js.map +1 -1
  90. package/node_modules/@turf/boolean-intersects/package.json +11 -11
  91. package/node_modules/@turf/boolean-overlap/dist/cjs/index.cjs +3 -6
  92. package/node_modules/@turf/boolean-overlap/dist/cjs/index.cjs.map +1 -1
  93. package/node_modules/@turf/boolean-overlap/dist/cjs/index.d.cts +1 -1
  94. package/node_modules/@turf/boolean-overlap/dist/esm/index.d.ts +1 -1
  95. package/node_modules/@turf/boolean-overlap/dist/esm/index.js +3 -6
  96. package/node_modules/@turf/boolean-overlap/dist/esm/index.js.map +1 -1
  97. package/node_modules/@turf/boolean-overlap/package.json +13 -13
  98. package/node_modules/@turf/boolean-parallel/dist/cjs/index.cjs +7 -14
  99. package/node_modules/@turf/boolean-parallel/dist/cjs/index.cjs.map +1 -1
  100. package/node_modules/@turf/boolean-parallel/dist/cjs/index.d.cts +1 -1
  101. package/node_modules/@turf/boolean-parallel/dist/esm/index.d.ts +1 -1
  102. package/node_modules/@turf/boolean-parallel/dist/esm/index.js +7 -14
  103. package/node_modules/@turf/boolean-parallel/dist/esm/index.js.map +1 -1
  104. package/node_modules/@turf/boolean-parallel/package.json +12 -12
  105. package/node_modules/@turf/boolean-point-in-polygon/dist/cjs/index.cjs +2 -4
  106. package/node_modules/@turf/boolean-point-in-polygon/dist/cjs/index.cjs.map +1 -1
  107. package/node_modules/@turf/boolean-point-in-polygon/dist/cjs/index.d.cts +1 -1
  108. package/node_modules/@turf/boolean-point-in-polygon/dist/esm/index.d.ts +1 -1
  109. package/node_modules/@turf/boolean-point-in-polygon/dist/esm/index.js +2 -4
  110. package/node_modules/@turf/boolean-point-in-polygon/dist/esm/index.js.map +1 -1
  111. package/node_modules/@turf/boolean-point-in-polygon/package.json +10 -10
  112. package/node_modules/@turf/boolean-point-on-line/dist/cjs/index.cjs +10 -0
  113. package/node_modules/@turf/boolean-point-on-line/dist/cjs/index.cjs.map +1 -1
  114. package/node_modules/@turf/boolean-point-on-line/dist/cjs/index.d.cts +1 -1
  115. package/node_modules/@turf/boolean-point-on-line/dist/esm/index.d.ts +1 -1
  116. package/node_modules/@turf/boolean-point-on-line/dist/esm/index.js +10 -0
  117. package/node_modules/@turf/boolean-point-on-line/dist/esm/index.js.map +1 -1
  118. package/node_modules/@turf/boolean-point-on-line/package.json +10 -10
  119. package/node_modules/@turf/boolean-touches/dist/cjs/index.cjs +2 -4
  120. package/node_modules/@turf/boolean-touches/dist/cjs/index.cjs.map +1 -1
  121. package/node_modules/@turf/boolean-touches/dist/cjs/index.d.cts +2 -1
  122. package/node_modules/@turf/boolean-touches/dist/esm/index.d.ts +2 -1
  123. package/node_modules/@turf/boolean-touches/dist/esm/index.js +2 -4
  124. package/node_modules/@turf/boolean-touches/dist/esm/index.js.map +1 -1
  125. package/node_modules/@turf/boolean-touches/package.json +12 -12
  126. package/node_modules/@turf/boolean-valid/dist/cjs/index.cjs +14 -28
  127. package/node_modules/@turf/boolean-valid/dist/cjs/index.cjs.map +1 -1
  128. package/node_modules/@turf/boolean-valid/dist/cjs/index.d.cts +1 -1
  129. package/node_modules/@turf/boolean-valid/dist/esm/index.d.ts +1 -1
  130. package/node_modules/@turf/boolean-valid/dist/esm/index.js +14 -28
  131. package/node_modules/@turf/boolean-valid/dist/esm/index.js.map +1 -1
  132. package/node_modules/@turf/boolean-valid/package.json +17 -17
  133. package/node_modules/@turf/boolean-within/dist/cjs/index.cjs +4 -8
  134. package/node_modules/@turf/boolean-within/dist/cjs/index.cjs.map +1 -1
  135. package/node_modules/@turf/boolean-within/dist/cjs/index.d.cts +1 -1
  136. package/node_modules/@turf/boolean-within/dist/esm/index.d.ts +1 -1
  137. package/node_modules/@turf/boolean-within/dist/esm/index.js +4 -8
  138. package/node_modules/@turf/boolean-within/dist/esm/index.js.map +1 -1
  139. package/node_modules/@turf/boolean-within/package.json +13 -13
  140. package/node_modules/@turf/buffer/dist/cjs/index.cjs +12 -24
  141. package/node_modules/@turf/buffer/dist/cjs/index.cjs.map +1 -1
  142. package/node_modules/@turf/buffer/dist/esm/index.js +12 -24
  143. package/node_modules/@turf/buffer/dist/esm/index.js.map +1 -1
  144. package/node_modules/@turf/buffer/package.json +12 -12
  145. package/node_modules/@turf/center/dist/cjs/index.cjs.map +1 -1
  146. package/node_modules/@turf/center/dist/cjs/index.d.cts +1 -1
  147. package/node_modules/@turf/center/dist/esm/index.d.ts +1 -1
  148. package/node_modules/@turf/center/dist/esm/index.js.map +1 -1
  149. package/node_modules/@turf/center/package.json +12 -12
  150. package/node_modules/@turf/center-mean/dist/cjs/index.cjs.map +1 -1
  151. package/node_modules/@turf/center-mean/dist/cjs/index.d.cts +1 -1
  152. package/node_modules/@turf/center-mean/dist/esm/index.d.ts +1 -1
  153. package/node_modules/@turf/center-mean/dist/esm/index.js.map +1 -1
  154. package/node_modules/@turf/center-mean/package.json +13 -13
  155. package/node_modules/@turf/center-median/dist/cjs/index.cjs +5 -10
  156. package/node_modules/@turf/center-median/dist/cjs/index.cjs.map +1 -1
  157. package/node_modules/@turf/center-median/dist/cjs/index.d.cts +1 -1
  158. package/node_modules/@turf/center-median/dist/esm/index.d.ts +1 -1
  159. package/node_modules/@turf/center-median/dist/esm/index.js +5 -10
  160. package/node_modules/@turf/center-median/dist/esm/index.js.map +1 -1
  161. package/node_modules/@turf/center-median/package.json +17 -17
  162. package/node_modules/@turf/center-of-mass/dist/cjs/index.cjs +2 -4
  163. package/node_modules/@turf/center-of-mass/dist/cjs/index.cjs.map +1 -1
  164. package/node_modules/@turf/center-of-mass/dist/cjs/index.d.cts +1 -1
  165. package/node_modules/@turf/center-of-mass/dist/esm/index.d.ts +1 -1
  166. package/node_modules/@turf/center-of-mass/dist/esm/index.js +2 -4
  167. package/node_modules/@turf/center-of-mass/dist/esm/index.js.map +1 -1
  168. package/node_modules/@turf/center-of-mass/package.json +13 -13
  169. package/node_modules/@turf/centroid/dist/cjs/index.cjs.map +1 -1
  170. package/node_modules/@turf/centroid/dist/cjs/index.d.cts +1 -1
  171. package/node_modules/@turf/centroid/dist/esm/index.d.ts +1 -1
  172. package/node_modules/@turf/centroid/dist/esm/index.js.map +1 -1
  173. package/node_modules/@turf/centroid/package.json +10 -10
  174. package/node_modules/@turf/circle/dist/cjs/index.cjs.map +1 -1
  175. package/node_modules/@turf/circle/dist/cjs/index.d.cts +1 -1
  176. package/node_modules/@turf/circle/dist/esm/index.d.ts +1 -1
  177. package/node_modules/@turf/circle/dist/esm/index.js.map +1 -1
  178. package/node_modules/@turf/circle/package.json +11 -11
  179. package/node_modules/@turf/clean-coords/dist/cjs/index.cjs +4 -8
  180. package/node_modules/@turf/clean-coords/dist/cjs/index.cjs.map +1 -1
  181. package/node_modules/@turf/clean-coords/dist/cjs/index.d.cts +1 -1
  182. package/node_modules/@turf/clean-coords/dist/esm/index.d.ts +1 -1
  183. package/node_modules/@turf/clean-coords/dist/esm/index.js +4 -8
  184. package/node_modules/@turf/clean-coords/dist/esm/index.js.map +1 -1
  185. package/node_modules/@turf/clean-coords/package.json +11 -11
  186. package/node_modules/@turf/clone/dist/cjs/index.cjs.map +1 -1
  187. package/node_modules/@turf/clone/dist/cjs/index.d.cts +1 -1
  188. package/node_modules/@turf/clone/dist/esm/index.d.ts +1 -1
  189. package/node_modules/@turf/clone/dist/esm/index.js.map +1 -1
  190. package/node_modules/@turf/clone/package.json +10 -10
  191. package/node_modules/@turf/clusters/README.md +8 -2
  192. package/node_modules/@turf/clusters/dist/cjs/index.cjs +9 -18
  193. package/node_modules/@turf/clusters/dist/cjs/index.cjs.map +1 -1
  194. package/node_modules/@turf/clusters/dist/cjs/index.d.cts +9 -8
  195. package/node_modules/@turf/clusters/dist/esm/index.d.ts +9 -8
  196. package/node_modules/@turf/clusters/dist/esm/index.js +9 -18
  197. package/node_modules/@turf/clusters/dist/esm/index.js.map +1 -1
  198. package/node_modules/@turf/clusters/package.json +10 -10
  199. package/node_modules/@turf/clusters-dbscan/README.md +38 -15
  200. package/node_modules/@turf/clusters-dbscan/dist/cjs/index.cjs +2 -4
  201. package/node_modules/@turf/clusters-dbscan/dist/cjs/index.cjs.map +1 -1
  202. package/node_modules/@turf/clusters-dbscan/dist/cjs/index.d.cts +16 -3
  203. package/node_modules/@turf/clusters-dbscan/dist/esm/index.d.ts +16 -3
  204. package/node_modules/@turf/clusters-dbscan/dist/esm/index.js +2 -4
  205. package/node_modules/@turf/clusters-dbscan/dist/esm/index.js.map +1 -1
  206. package/node_modules/@turf/clusters-dbscan/package.json +14 -14
  207. package/node_modules/@turf/clusters-kmeans/dist/cjs/index.cjs +2 -4
  208. package/node_modules/@turf/clusters-kmeans/dist/cjs/index.cjs.map +1 -1
  209. package/node_modules/@turf/clusters-kmeans/dist/cjs/index.d.cts +1 -1
  210. package/node_modules/@turf/clusters-kmeans/dist/esm/index.d.ts +1 -1
  211. package/node_modules/@turf/clusters-kmeans/dist/esm/index.js +2 -4
  212. package/node_modules/@turf/clusters-kmeans/dist/esm/index.js.map +1 -1
  213. package/node_modules/@turf/clusters-kmeans/package.json +15 -15
  214. package/node_modules/@turf/collect/dist/cjs/index.cjs.map +1 -1
  215. package/node_modules/@turf/collect/dist/cjs/index.d.cts +1 -1
  216. package/node_modules/@turf/collect/dist/esm/index.d.ts +1 -1
  217. package/node_modules/@turf/collect/dist/esm/index.js.map +1 -1
  218. package/node_modules/@turf/collect/package.json +11 -11
  219. package/node_modules/@turf/combine/dist/cjs/index.cjs.map +1 -1
  220. package/node_modules/@turf/combine/dist/cjs/index.d.cts +1 -1
  221. package/node_modules/@turf/combine/dist/esm/index.d.ts +1 -1
  222. package/node_modules/@turf/combine/dist/esm/index.js.map +1 -1
  223. package/node_modules/@turf/combine/package.json +10 -10
  224. package/node_modules/@turf/concave/dist/cjs/index.cjs.map +1 -1
  225. package/node_modules/@turf/concave/dist/cjs/index.d.cts +1 -1
  226. package/node_modules/@turf/concave/dist/esm/index.d.ts +1 -1
  227. package/node_modules/@turf/concave/dist/esm/index.js.map +1 -1
  228. package/node_modules/@turf/concave/package.json +14 -14
  229. package/node_modules/@turf/convex/dist/cjs/index.cjs.map +1 -1
  230. package/node_modules/@turf/convex/dist/cjs/index.d.cts +1 -1
  231. package/node_modules/@turf/convex/dist/esm/index.d.ts +1 -1
  232. package/node_modules/@turf/convex/dist/esm/index.js.map +1 -1
  233. package/node_modules/@turf/convex/package.json +10 -10
  234. package/node_modules/@turf/destination/dist/cjs/index.cjs.map +1 -1
  235. package/node_modules/@turf/destination/dist/cjs/index.d.cts +1 -1
  236. package/node_modules/@turf/destination/dist/esm/index.d.ts +1 -1
  237. package/node_modules/@turf/destination/dist/esm/index.js.map +1 -1
  238. package/node_modules/@turf/destination/package.json +11 -11
  239. package/node_modules/@turf/difference/dist/cjs/index.cjs +8 -10
  240. package/node_modules/@turf/difference/dist/cjs/index.cjs.map +1 -1
  241. package/node_modules/@turf/difference/dist/cjs/index.d.cts +1 -1
  242. package/node_modules/@turf/difference/dist/esm/index.d.ts +1 -1
  243. package/node_modules/@turf/difference/dist/esm/index.js +7 -9
  244. package/node_modules/@turf/difference/dist/esm/index.js.map +1 -1
  245. package/node_modules/@turf/difference/package.json +11 -11
  246. package/node_modules/@turf/dissolve/README.md +11 -12
  247. package/node_modules/@turf/dissolve/dist/cjs/index.cjs +5 -6
  248. package/node_modules/@turf/dissolve/dist/cjs/index.cjs.map +1 -1
  249. package/node_modules/@turf/dissolve/dist/cjs/index.d.cts +3 -3
  250. package/node_modules/@turf/dissolve/dist/esm/index.d.ts +3 -3
  251. package/node_modules/@turf/dissolve/dist/esm/index.js +4 -5
  252. package/node_modules/@turf/dissolve/dist/esm/index.js.map +1 -1
  253. package/node_modules/@turf/dissolve/package.json +13 -13
  254. package/node_modules/@turf/distance/dist/cjs/index.cjs.map +1 -1
  255. package/node_modules/@turf/distance/dist/cjs/index.d.cts +1 -1
  256. package/node_modules/@turf/distance/dist/esm/index.d.ts +1 -1
  257. package/node_modules/@turf/distance/dist/esm/index.js.map +1 -1
  258. package/node_modules/@turf/distance/package.json +10 -10
  259. package/node_modules/@turf/distance-weight/dist/cjs/index.cjs.map +1 -1
  260. package/node_modules/@turf/distance-weight/dist/cjs/index.d.cts +3 -1
  261. package/node_modules/@turf/distance-weight/dist/esm/index.d.ts +3 -1
  262. package/node_modules/@turf/distance-weight/dist/esm/index.js.map +1 -1
  263. package/node_modules/@turf/distance-weight/package.json +12 -12
  264. package/node_modules/@turf/ellipse/dist/cjs/index.cjs +8 -16
  265. package/node_modules/@turf/ellipse/dist/cjs/index.cjs.map +1 -1
  266. package/node_modules/@turf/ellipse/dist/esm/index.js +8 -16
  267. package/node_modules/@turf/ellipse/dist/esm/index.js.map +1 -1
  268. package/node_modules/@turf/ellipse/package.json +16 -16
  269. package/node_modules/@turf/envelope/dist/cjs/index.cjs.map +1 -1
  270. package/node_modules/@turf/envelope/dist/cjs/index.d.cts +1 -1
  271. package/node_modules/@turf/envelope/dist/esm/index.d.ts +1 -1
  272. package/node_modules/@turf/envelope/dist/esm/index.js.map +1 -1
  273. package/node_modules/@turf/envelope/package.json +11 -11
  274. package/node_modules/@turf/explode/dist/cjs/index.cjs.map +1 -1
  275. package/node_modules/@turf/explode/dist/cjs/index.d.cts +1 -1
  276. package/node_modules/@turf/explode/dist/esm/index.d.ts +1 -1
  277. package/node_modules/@turf/explode/dist/esm/index.js.map +1 -1
  278. package/node_modules/@turf/explode/package.json +10 -10
  279. package/node_modules/@turf/flatten/dist/cjs/index.cjs +1 -2
  280. package/node_modules/@turf/flatten/dist/cjs/index.cjs.map +1 -1
  281. package/node_modules/@turf/flatten/dist/cjs/index.d.cts +1 -1
  282. package/node_modules/@turf/flatten/dist/esm/index.d.ts +1 -1
  283. package/node_modules/@turf/flatten/dist/esm/index.js +1 -2
  284. package/node_modules/@turf/flatten/dist/esm/index.js.map +1 -1
  285. package/node_modules/@turf/flatten/package.json +10 -10
  286. package/node_modules/@turf/flip/dist/cjs/index.cjs +3 -6
  287. package/node_modules/@turf/flip/dist/cjs/index.cjs.map +1 -1
  288. package/node_modules/@turf/flip/dist/cjs/index.d.cts +1 -1
  289. package/node_modules/@turf/flip/dist/esm/index.d.ts +1 -1
  290. package/node_modules/@turf/flip/dist/esm/index.js +3 -6
  291. package/node_modules/@turf/flip/dist/esm/index.js.map +1 -1
  292. package/node_modules/@turf/flip/package.json +11 -11
  293. package/node_modules/@turf/geojson-rbush/dist/cjs/index.cjs +9 -18
  294. package/node_modules/@turf/geojson-rbush/dist/cjs/index.cjs.map +1 -1
  295. package/node_modules/@turf/geojson-rbush/dist/esm/index.js +9 -18
  296. package/node_modules/@turf/geojson-rbush/dist/esm/index.js.map +1 -1
  297. package/node_modules/@turf/geojson-rbush/package.json +11 -11
  298. package/node_modules/@turf/great-circle/README.md +2 -1
  299. package/node_modules/@turf/great-circle/dist/cjs/index.cjs +7 -2
  300. package/node_modules/@turf/great-circle/dist/cjs/index.cjs.map +1 -1
  301. package/node_modules/@turf/great-circle/dist/esm/index.js +7 -2
  302. package/node_modules/@turf/great-circle/dist/esm/index.js.map +1 -1
  303. package/node_modules/@turf/great-circle/package.json +9 -9
  304. package/node_modules/@turf/helpers/README.md +199 -154
  305. package/node_modules/@turf/helpers/dist/cjs/index.cjs +10 -7
  306. package/node_modules/@turf/helpers/dist/cjs/index.cjs.map +1 -1
  307. package/node_modules/@turf/helpers/dist/cjs/index.d.cts +149 -110
  308. package/node_modules/@turf/helpers/dist/esm/index.d.ts +149 -110
  309. package/node_modules/@turf/helpers/dist/esm/index.js +10 -7
  310. package/node_modules/@turf/helpers/dist/esm/index.js.map +1 -1
  311. package/node_modules/@turf/helpers/package.json +8 -8
  312. package/node_modules/@turf/hex-grid/dist/cjs/index.cjs +2 -4
  313. package/node_modules/@turf/hex-grid/dist/cjs/index.cjs.map +1 -1
  314. package/node_modules/@turf/hex-grid/dist/cjs/index.d.cts +1 -1
  315. package/node_modules/@turf/hex-grid/dist/esm/index.d.ts +1 -1
  316. package/node_modules/@turf/hex-grid/dist/esm/index.js +2 -4
  317. package/node_modules/@turf/hex-grid/dist/esm/index.js.map +1 -1
  318. package/node_modules/@turf/hex-grid/package.json +14 -14
  319. package/node_modules/@turf/interpolate/README.md +5 -2
  320. package/node_modules/@turf/interpolate/dist/cjs/index.cjs +10 -15
  321. package/node_modules/@turf/interpolate/dist/cjs/index.cjs.map +1 -1
  322. package/node_modules/@turf/interpolate/dist/cjs/index.d.cts +3 -1
  323. package/node_modules/@turf/interpolate/dist/esm/index.d.ts +3 -1
  324. package/node_modules/@turf/interpolate/dist/esm/index.js +11 -16
  325. package/node_modules/@turf/interpolate/dist/esm/index.js.map +1 -1
  326. package/node_modules/@turf/interpolate/package.json +18 -18
  327. package/node_modules/@turf/intersect/dist/cjs/index.cjs +7 -11
  328. package/node_modules/@turf/intersect/dist/cjs/index.cjs.map +1 -1
  329. package/node_modules/@turf/intersect/dist/cjs/index.d.cts +1 -1
  330. package/node_modules/@turf/intersect/dist/esm/index.d.ts +1 -1
  331. package/node_modules/@turf/intersect/dist/esm/index.js +6 -10
  332. package/node_modules/@turf/intersect/dist/esm/index.js.map +1 -1
  333. package/node_modules/@turf/intersect/package.json +11 -11
  334. package/node_modules/@turf/invariant/README.md +4 -0
  335. package/node_modules/@turf/invariant/dist/cjs/index.cjs.map +1 -1
  336. package/node_modules/@turf/invariant/dist/cjs/index.d.cts +6 -6
  337. package/node_modules/@turf/invariant/dist/esm/index.d.ts +6 -6
  338. package/node_modules/@turf/invariant/dist/esm/index.js.map +1 -1
  339. package/node_modules/@turf/invariant/package.json +9 -9
  340. package/node_modules/@turf/isobands/dist/cjs/index.cjs +10 -20
  341. package/node_modules/@turf/isobands/dist/cjs/index.cjs.map +1 -1
  342. package/node_modules/@turf/isobands/dist/cjs/index.d.cts +1 -1
  343. package/node_modules/@turf/isobands/dist/esm/index.d.ts +1 -1
  344. package/node_modules/@turf/isobands/dist/esm/index.js +10 -20
  345. package/node_modules/@turf/isobands/dist/esm/index.js.map +1 -1
  346. package/node_modules/@turf/isobands/package.json +20 -20
  347. package/node_modules/@turf/isolines/dist/cjs/index.cjs +10 -20
  348. package/node_modules/@turf/isolines/dist/cjs/index.cjs.map +1 -1
  349. package/node_modules/@turf/isolines/dist/cjs/index.d.cts +1 -1
  350. package/node_modules/@turf/isolines/dist/esm/index.d.ts +1 -1
  351. package/node_modules/@turf/isolines/dist/esm/index.js +10 -20
  352. package/node_modules/@turf/isolines/dist/esm/index.js.map +1 -1
  353. package/node_modules/@turf/isolines/package.json +17 -17
  354. package/node_modules/@turf/jsts/dist/jsts.min.js +1 -1
  355. package/node_modules/@turf/jsts/dist/jsts.min.js.map +1 -0
  356. package/node_modules/@turf/jsts/package.json +17 -17
  357. package/node_modules/@turf/kinks/dist/cjs/index.cjs.map +1 -1
  358. package/node_modules/@turf/kinks/dist/cjs/index.d.cts +1 -1
  359. package/node_modules/@turf/kinks/dist/esm/index.d.ts +1 -1
  360. package/node_modules/@turf/kinks/dist/esm/index.js.map +1 -1
  361. package/node_modules/@turf/kinks/package.json +10 -10
  362. package/node_modules/@turf/length/dist/cjs/index.cjs.map +1 -1
  363. package/node_modules/@turf/length/dist/cjs/index.d.cts +1 -1
  364. package/node_modules/@turf/length/dist/esm/index.d.ts +1 -1
  365. package/node_modules/@turf/length/dist/esm/index.js.map +1 -1
  366. package/node_modules/@turf/length/package.json +11 -11
  367. package/node_modules/@turf/line-arc/dist/cjs/index.cjs.map +1 -1
  368. package/node_modules/@turf/line-arc/dist/cjs/index.d.cts +1 -1
  369. package/node_modules/@turf/line-arc/dist/esm/index.d.ts +1 -1
  370. package/node_modules/@turf/line-arc/dist/esm/index.js.map +1 -1
  371. package/node_modules/@turf/line-arc/package.json +12 -12
  372. package/node_modules/@turf/line-chunk/dist/cjs/index.cjs +3 -6
  373. package/node_modules/@turf/line-chunk/dist/cjs/index.cjs.map +1 -1
  374. package/node_modules/@turf/line-chunk/dist/esm/index.js +3 -6
  375. package/node_modules/@turf/line-chunk/dist/esm/index.js.map +1 -1
  376. package/node_modules/@turf/line-chunk/package.json +11 -11
  377. package/node_modules/@turf/line-intersect/README.md +1 -1
  378. package/node_modules/@turf/line-intersect/dist/cjs/index.cjs +3 -5
  379. package/node_modules/@turf/line-intersect/dist/cjs/index.cjs.map +1 -1
  380. package/node_modules/@turf/line-intersect/dist/cjs/index.d.cts +2 -2
  381. package/node_modules/@turf/line-intersect/dist/esm/index.d.ts +2 -2
  382. package/node_modules/@turf/line-intersect/dist/esm/index.js +3 -5
  383. package/node_modules/@turf/line-intersect/dist/esm/index.js.map +1 -1
  384. package/node_modules/@turf/line-intersect/package.json +10 -10
  385. package/node_modules/@turf/line-offset/dist/cjs/index.cjs +3 -6
  386. package/node_modules/@turf/line-offset/dist/cjs/index.cjs.map +1 -1
  387. package/node_modules/@turf/line-offset/dist/esm/index.js +3 -6
  388. package/node_modules/@turf/line-offset/dist/esm/index.js.map +1 -1
  389. package/node_modules/@turf/line-offset/package.json +10 -10
  390. package/node_modules/@turf/line-overlap/dist/cjs/index.cjs +10 -20
  391. package/node_modules/@turf/line-overlap/dist/cjs/index.cjs.map +1 -1
  392. package/node_modules/@turf/line-overlap/dist/cjs/index.d.cts +1 -1
  393. package/node_modules/@turf/line-overlap/dist/esm/index.d.ts +1 -1
  394. package/node_modules/@turf/line-overlap/dist/esm/index.js +10 -20
  395. package/node_modules/@turf/line-overlap/dist/esm/index.js.map +1 -1
  396. package/node_modules/@turf/line-overlap/package.json +15 -15
  397. package/node_modules/@turf/line-segment/dist/cjs/index.cjs.map +1 -1
  398. package/node_modules/@turf/line-segment/dist/cjs/index.d.cts +1 -1
  399. package/node_modules/@turf/line-segment/dist/esm/index.d.ts +1 -1
  400. package/node_modules/@turf/line-segment/dist/esm/index.js.map +1 -1
  401. package/node_modules/@turf/line-segment/package.json +11 -11
  402. package/node_modules/@turf/line-slice/dist/cjs/index.cjs.map +1 -1
  403. package/node_modules/@turf/line-slice/dist/esm/index.js.map +1 -1
  404. package/node_modules/@turf/line-slice/package.json +10 -10
  405. package/node_modules/@turf/line-slice-along/dist/cjs/index.cjs +5 -10
  406. package/node_modules/@turf/line-slice-along/dist/cjs/index.cjs.map +1 -1
  407. package/node_modules/@turf/line-slice-along/dist/esm/index.js +5 -10
  408. package/node_modules/@turf/line-slice-along/dist/esm/index.js.map +1 -1
  409. package/node_modules/@turf/line-slice-along/package.json +12 -12
  410. package/node_modules/@turf/line-split/dist/cjs/index.cjs +7 -14
  411. package/node_modules/@turf/line-split/dist/cjs/index.cjs.map +1 -1
  412. package/node_modules/@turf/line-split/dist/esm/index.js +7 -14
  413. package/node_modules/@turf/line-split/dist/esm/index.js.map +1 -1
  414. package/node_modules/@turf/line-split/package.json +16 -16
  415. package/node_modules/@turf/line-to-polygon/dist/cjs/index.cjs +4 -8
  416. package/node_modules/@turf/line-to-polygon/dist/cjs/index.cjs.map +1 -1
  417. package/node_modules/@turf/line-to-polygon/dist/cjs/index.d.cts +1 -1
  418. package/node_modules/@turf/line-to-polygon/dist/esm/index.d.ts +1 -1
  419. package/node_modules/@turf/line-to-polygon/dist/esm/index.js +4 -8
  420. package/node_modules/@turf/line-to-polygon/dist/esm/index.js.map +1 -1
  421. package/node_modules/@turf/line-to-polygon/package.json +12 -12
  422. package/node_modules/@turf/mask/dist/cjs/index.cjs +7 -7
  423. package/node_modules/@turf/mask/dist/cjs/index.cjs.map +1 -1
  424. package/node_modules/@turf/mask/dist/cjs/index.d.cts +1 -1
  425. package/node_modules/@turf/mask/dist/esm/index.d.ts +1 -1
  426. package/node_modules/@turf/mask/dist/esm/index.js +6 -6
  427. package/node_modules/@turf/mask/dist/esm/index.js.map +1 -1
  428. package/node_modules/@turf/mask/package.json +11 -11
  429. package/node_modules/@turf/meta/README.md +145 -93
  430. package/node_modules/@turf/meta/dist/cjs/index.cjs +22 -44
  431. package/node_modules/@turf/meta/dist/cjs/index.cjs.map +1 -1
  432. package/node_modules/@turf/meta/dist/esm/index.js +22 -44
  433. package/node_modules/@turf/meta/dist/esm/index.js.map +1 -1
  434. package/node_modules/@turf/meta/package.json +7 -7
  435. package/node_modules/@turf/midpoint/dist/cjs/index.cjs.map +1 -1
  436. package/node_modules/@turf/midpoint/dist/cjs/index.d.cts +1 -1
  437. package/node_modules/@turf/midpoint/dist/esm/index.d.ts +1 -1
  438. package/node_modules/@turf/midpoint/dist/esm/index.js.map +1 -1
  439. package/node_modules/@turf/midpoint/package.json +12 -12
  440. package/node_modules/@turf/moran-index/README.md +25 -47
  441. package/node_modules/@turf/moran-index/dist/cjs/index.cjs.map +1 -1
  442. package/node_modules/@turf/moran-index/dist/cjs/index.d.cts +16 -8
  443. package/node_modules/@turf/moran-index/dist/esm/index.d.ts +16 -8
  444. package/node_modules/@turf/moran-index/dist/esm/index.js.map +1 -1
  445. package/node_modules/@turf/moran-index/package.json +11 -11
  446. package/node_modules/@turf/nearest-neighbor-analysis/README.md +50 -21
  447. package/node_modules/@turf/nearest-neighbor-analysis/dist/cjs/index.cjs.map +1 -1
  448. package/node_modules/@turf/nearest-neighbor-analysis/dist/cjs/index.d.cts +25 -6
  449. package/node_modules/@turf/nearest-neighbor-analysis/dist/esm/index.d.ts +25 -6
  450. package/node_modules/@turf/nearest-neighbor-analysis/dist/esm/index.js.map +1 -1
  451. package/node_modules/@turf/nearest-neighbor-analysis/package.json +17 -17
  452. package/node_modules/@turf/nearest-point/dist/cjs/index.cjs +2 -4
  453. package/node_modules/@turf/nearest-point/dist/cjs/index.cjs.map +1 -1
  454. package/node_modules/@turf/nearest-point/dist/cjs/index.d.cts +1 -1
  455. package/node_modules/@turf/nearest-point/dist/esm/index.d.ts +1 -1
  456. package/node_modules/@turf/nearest-point/dist/esm/index.js +2 -4
  457. package/node_modules/@turf/nearest-point/dist/esm/index.js.map +1 -1
  458. package/node_modules/@turf/nearest-point/package.json +12 -12
  459. package/node_modules/@turf/nearest-point-on-line/README.md +9 -9
  460. package/node_modules/@turf/nearest-point-on-line/dist/cjs/index.cjs +97 -53
  461. package/node_modules/@turf/nearest-point-on-line/dist/cjs/index.cjs.map +1 -1
  462. package/node_modules/@turf/nearest-point-on-line/dist/cjs/index.d.cts +2 -2
  463. package/node_modules/@turf/nearest-point-on-line/dist/esm/index.d.ts +2 -2
  464. package/node_modules/@turf/nearest-point-on-line/dist/esm/index.js +99 -55
  465. package/node_modules/@turf/nearest-point-on-line/dist/esm/index.js.map +1 -1
  466. package/node_modules/@turf/nearest-point-on-line/package.json +15 -18
  467. package/node_modules/@turf/nearest-point-to-line/README.md +1 -9
  468. package/node_modules/@turf/nearest-point-to-line/dist/cjs/index.cjs.map +1 -1
  469. package/node_modules/@turf/nearest-point-to-line/dist/cjs/index.d.cts +1 -1
  470. package/node_modules/@turf/nearest-point-to-line/dist/esm/index.d.ts +1 -1
  471. package/node_modules/@turf/nearest-point-to-line/dist/esm/index.js.map +1 -1
  472. package/node_modules/@turf/nearest-point-to-line/package.json +14 -14
  473. package/node_modules/@turf/planepoint/dist/cjs/index.cjs.map +1 -1
  474. package/node_modules/@turf/planepoint/dist/cjs/index.d.cts +1 -1
  475. package/node_modules/@turf/planepoint/dist/esm/index.d.ts +1 -1
  476. package/node_modules/@turf/planepoint/dist/esm/index.js.map +1 -1
  477. package/node_modules/@turf/planepoint/package.json +10 -10
  478. package/node_modules/@turf/point-grid/dist/cjs/index.cjs +2 -4
  479. package/node_modules/@turf/point-grid/dist/cjs/index.cjs.map +1 -1
  480. package/node_modules/@turf/point-grid/dist/cjs/index.d.cts +1 -1
  481. package/node_modules/@turf/point-grid/dist/esm/index.d.ts +1 -1
  482. package/node_modules/@turf/point-grid/dist/esm/index.js +2 -4
  483. package/node_modules/@turf/point-grid/dist/esm/index.js.map +1 -1
  484. package/node_modules/@turf/point-grid/package.json +14 -14
  485. package/node_modules/@turf/point-on-feature/dist/cjs/index.cjs.map +1 -1
  486. package/node_modules/@turf/point-on-feature/dist/cjs/index.d.cts +1 -1
  487. package/node_modules/@turf/point-on-feature/dist/esm/index.d.ts +1 -1
  488. package/node_modules/@turf/point-on-feature/dist/esm/index.js.map +1 -1
  489. package/node_modules/@turf/point-on-feature/package.json +15 -15
  490. package/node_modules/@turf/point-to-line-distance/README.md +10 -10
  491. package/node_modules/@turf/point-to-line-distance/dist/cjs/index.cjs +21 -19
  492. package/node_modules/@turf/point-to-line-distance/dist/cjs/index.cjs.map +1 -1
  493. package/node_modules/@turf/point-to-line-distance/dist/cjs/index.d.cts +3 -3
  494. package/node_modules/@turf/point-to-line-distance/dist/esm/index.d.ts +3 -3
  495. package/node_modules/@turf/point-to-line-distance/dist/esm/index.js +22 -20
  496. package/node_modules/@turf/point-to-line-distance/dist/esm/index.js.map +1 -1
  497. package/node_modules/@turf/point-to-line-distance/package.json +18 -17
  498. package/node_modules/@turf/point-to-polygon-distance/LICENSE +20 -0
  499. package/node_modules/@turf/point-to-polygon-distance/README.md +61 -0
  500. package/node_modules/@turf/point-to-polygon-distance/dist/cjs/index.cjs +49 -0
  501. package/node_modules/@turf/point-to-polygon-distance/dist/cjs/index.cjs.map +1 -0
  502. package/node_modules/@turf/point-to-polygon-distance/dist/cjs/index.d.cts +23 -0
  503. package/node_modules/@turf/point-to-polygon-distance/dist/esm/index.d.ts +23 -0
  504. package/node_modules/@turf/point-to-polygon-distance/dist/esm/index.js +49 -0
  505. package/node_modules/@turf/point-to-polygon-distance/dist/esm/index.js.map +1 -0
  506. package/node_modules/@turf/point-to-polygon-distance/package.json +80 -0
  507. package/node_modules/@turf/points-within-polygon/dist/cjs/index.cjs.map +1 -1
  508. package/node_modules/@turf/points-within-polygon/dist/cjs/index.d.cts +1 -1
  509. package/node_modules/@turf/points-within-polygon/dist/esm/index.d.ts +1 -1
  510. package/node_modules/@turf/points-within-polygon/dist/esm/index.js.map +1 -1
  511. package/node_modules/@turf/points-within-polygon/package.json +11 -11
  512. package/node_modules/@turf/polygon-smooth/dist/cjs/index.cjs +1 -2
  513. package/node_modules/@turf/polygon-smooth/dist/cjs/index.cjs.map +1 -1
  514. package/node_modules/@turf/polygon-smooth/dist/cjs/index.d.cts +1 -1
  515. package/node_modules/@turf/polygon-smooth/dist/esm/index.d.ts +1 -1
  516. package/node_modules/@turf/polygon-smooth/dist/esm/index.js +1 -2
  517. package/node_modules/@turf/polygon-smooth/dist/esm/index.js.map +1 -1
  518. package/node_modules/@turf/polygon-smooth/package.json +10 -10
  519. package/node_modules/@turf/polygon-tangents/dist/cjs/index.cjs +1 -2
  520. package/node_modules/@turf/polygon-tangents/dist/cjs/index.cjs.map +1 -1
  521. package/node_modules/@turf/polygon-tangents/dist/cjs/index.d.cts +1 -1
  522. package/node_modules/@turf/polygon-tangents/dist/esm/index.d.ts +1 -1
  523. package/node_modules/@turf/polygon-tangents/dist/esm/index.js +1 -2
  524. package/node_modules/@turf/polygon-tangents/dist/esm/index.js.map +1 -1
  525. package/node_modules/@turf/polygon-tangents/package.json +14 -14
  526. package/node_modules/@turf/polygon-to-line/dist/cjs/index.cjs.map +1 -1
  527. package/node_modules/@turf/polygon-to-line/dist/cjs/index.d.cts +1 -1
  528. package/node_modules/@turf/polygon-to-line/dist/esm/index.d.ts +1 -1
  529. package/node_modules/@turf/polygon-to-line/dist/esm/index.js.map +1 -1
  530. package/node_modules/@turf/polygon-to-line/package.json +10 -10
  531. package/node_modules/@turf/polygonize/dist/cjs/index.cjs +20 -40
  532. package/node_modules/@turf/polygonize/dist/cjs/index.cjs.map +1 -1
  533. package/node_modules/@turf/polygonize/dist/cjs/index.d.cts +1 -1
  534. package/node_modules/@turf/polygonize/dist/esm/index.d.ts +1 -1
  535. package/node_modules/@turf/polygonize/dist/esm/index.js +20 -40
  536. package/node_modules/@turf/polygonize/dist/esm/index.js.map +1 -1
  537. package/node_modules/@turf/polygonize/package.json +13 -13
  538. package/node_modules/@turf/projection/README.md +2 -2
  539. package/node_modules/@turf/projection/dist/cjs/index.cjs +6 -12
  540. package/node_modules/@turf/projection/dist/cjs/index.cjs.map +1 -1
  541. package/node_modules/@turf/projection/dist/cjs/index.d.cts +2 -2
  542. package/node_modules/@turf/projection/dist/esm/index.d.ts +2 -2
  543. package/node_modules/@turf/projection/dist/esm/index.js +6 -12
  544. package/node_modules/@turf/projection/dist/esm/index.js.map +1 -1
  545. package/node_modules/@turf/projection/package.json +12 -12
  546. package/node_modules/@turf/quadrat-analysis/README.md +10 -10
  547. package/node_modules/@turf/quadrat-analysis/dist/cjs/index.cjs.map +1 -1
  548. package/node_modules/@turf/quadrat-analysis/dist/cjs/index.d.cts +4 -4
  549. package/node_modules/@turf/quadrat-analysis/dist/esm/index.d.ts +4 -4
  550. package/node_modules/@turf/quadrat-analysis/dist/esm/index.js.map +1 -1
  551. package/node_modules/@turf/quadrat-analysis/package.json +18 -18
  552. package/node_modules/@turf/random/README.md +27 -29
  553. package/node_modules/@turf/random/dist/cjs/index.cjs +1 -3
  554. package/node_modules/@turf/random/dist/cjs/index.cjs.map +1 -1
  555. package/node_modules/@turf/random/dist/cjs/index.d.cts +11 -11
  556. package/node_modules/@turf/random/dist/esm/index.d.ts +11 -11
  557. package/node_modules/@turf/random/dist/esm/index.js +1 -3
  558. package/node_modules/@turf/random/dist/esm/index.js.map +1 -1
  559. package/node_modules/@turf/random/package.json +9 -9
  560. package/node_modules/@turf/rectangle-grid/dist/cjs/index.cjs.map +1 -1
  561. package/node_modules/@turf/rectangle-grid/dist/cjs/index.d.cts +1 -1
  562. package/node_modules/@turf/rectangle-grid/dist/esm/index.d.ts +1 -1
  563. package/node_modules/@turf/rectangle-grid/dist/esm/index.js.map +1 -1
  564. package/node_modules/@turf/rectangle-grid/package.json +13 -13
  565. package/node_modules/@turf/rewind/dist/cjs/index.cjs +3 -6
  566. package/node_modules/@turf/rewind/dist/cjs/index.cjs.map +1 -1
  567. package/node_modules/@turf/rewind/dist/cjs/index.d.cts +1 -1
  568. package/node_modules/@turf/rewind/dist/esm/index.d.ts +1 -1
  569. package/node_modules/@turf/rewind/dist/esm/index.js +3 -6
  570. package/node_modules/@turf/rewind/dist/esm/index.js.map +1 -1
  571. package/node_modules/@turf/rewind/package.json +13 -13
  572. package/node_modules/@turf/rhumb-bearing/README.md +1 -1
  573. package/node_modules/@turf/rhumb-bearing/dist/cjs/index.cjs.map +1 -1
  574. package/node_modules/@turf/rhumb-bearing/dist/cjs/index.d.cts +1 -1
  575. package/node_modules/@turf/rhumb-bearing/dist/esm/index.d.ts +1 -1
  576. package/node_modules/@turf/rhumb-bearing/dist/esm/index.js.map +1 -1
  577. package/node_modules/@turf/rhumb-bearing/package.json +11 -11
  578. package/node_modules/@turf/rhumb-destination/dist/cjs/index.cjs +1 -2
  579. package/node_modules/@turf/rhumb-destination/dist/cjs/index.cjs.map +1 -1
  580. package/node_modules/@turf/rhumb-destination/dist/cjs/index.d.cts +1 -1
  581. package/node_modules/@turf/rhumb-destination/dist/esm/index.d.ts +1 -1
  582. package/node_modules/@turf/rhumb-destination/dist/esm/index.js +1 -2
  583. package/node_modules/@turf/rhumb-destination/dist/esm/index.js.map +1 -1
  584. package/node_modules/@turf/rhumb-destination/package.json +11 -11
  585. package/node_modules/@turf/rhumb-distance/README.md +1 -1
  586. package/node_modules/@turf/rhumb-distance/dist/cjs/index.cjs.map +1 -1
  587. package/node_modules/@turf/rhumb-distance/dist/cjs/index.d.cts +1 -1
  588. package/node_modules/@turf/rhumb-distance/dist/esm/index.d.ts +1 -1
  589. package/node_modules/@turf/rhumb-distance/dist/esm/index.js.map +1 -1
  590. package/node_modules/@turf/rhumb-distance/package.json +11 -11
  591. package/node_modules/@turf/sample/README.md +2 -1
  592. package/node_modules/@turf/sample/dist/cjs/index.cjs +3 -6
  593. package/node_modules/@turf/sample/dist/cjs/index.cjs.map +1 -1
  594. package/node_modules/@turf/sample/dist/cjs/index.d.cts +1 -1
  595. package/node_modules/@turf/sample/dist/esm/index.d.ts +1 -1
  596. package/node_modules/@turf/sample/dist/esm/index.js +3 -6
  597. package/node_modules/@turf/sample/dist/esm/index.js.map +1 -1
  598. package/node_modules/@turf/sample/package.json +9 -9
  599. package/node_modules/@turf/sector/dist/cjs/index.cjs +4 -8
  600. package/node_modules/@turf/sector/dist/cjs/index.cjs.map +1 -1
  601. package/node_modules/@turf/sector/dist/cjs/index.d.cts +1 -1
  602. package/node_modules/@turf/sector/dist/esm/index.d.ts +1 -1
  603. package/node_modules/@turf/sector/dist/esm/index.js +4 -8
  604. package/node_modules/@turf/sector/dist/esm/index.js.map +1 -1
  605. package/node_modules/@turf/sector/package.json +14 -14
  606. package/node_modules/@turf/shortest-path/README.md +13 -19
  607. package/node_modules/@turf/shortest-path/dist/cjs/index.cjs +3 -6
  608. package/node_modules/@turf/shortest-path/dist/cjs/index.cjs.map +1 -1
  609. package/node_modules/@turf/shortest-path/dist/cjs/index.d.cts +5 -5
  610. package/node_modules/@turf/shortest-path/dist/esm/index.d.ts +5 -5
  611. package/node_modules/@turf/shortest-path/dist/esm/index.js +3 -6
  612. package/node_modules/@turf/shortest-path/dist/esm/index.js.map +1 -1
  613. package/node_modules/@turf/shortest-path/package.json +18 -18
  614. package/node_modules/@turf/simplify/dist/cjs/index.cjs +8 -16
  615. package/node_modules/@turf/simplify/dist/cjs/index.cjs.map +1 -1
  616. package/node_modules/@turf/simplify/dist/cjs/index.d.cts +1 -1
  617. package/node_modules/@turf/simplify/dist/esm/index.d.ts +1 -1
  618. package/node_modules/@turf/simplify/dist/esm/index.js +8 -16
  619. package/node_modules/@turf/simplify/dist/esm/index.js.map +1 -1
  620. package/node_modules/@turf/simplify/package.json +13 -13
  621. package/node_modules/@turf/square/dist/cjs/index.cjs.map +1 -1
  622. package/node_modules/@turf/square/dist/cjs/index.d.cts +1 -1
  623. package/node_modules/@turf/square/dist/esm/index.d.ts +1 -1
  624. package/node_modules/@turf/square/dist/esm/index.js.map +1 -1
  625. package/node_modules/@turf/square/package.json +10 -10
  626. package/node_modules/@turf/square-grid/dist/cjs/index.cjs.map +1 -1
  627. package/node_modules/@turf/square-grid/dist/cjs/index.d.cts +1 -1
  628. package/node_modules/@turf/square-grid/dist/esm/index.d.ts +1 -1
  629. package/node_modules/@turf/square-grid/dist/esm/index.js.map +1 -1
  630. package/node_modules/@turf/square-grid/package.json +12 -12
  631. package/node_modules/@turf/standard-deviational-ellipse/dist/cjs/index.cjs +3 -6
  632. package/node_modules/@turf/standard-deviational-ellipse/dist/cjs/index.cjs.map +1 -1
  633. package/node_modules/@turf/standard-deviational-ellipse/dist/cjs/index.d.cts +1 -1
  634. package/node_modules/@turf/standard-deviational-ellipse/dist/esm/index.d.ts +1 -1
  635. package/node_modules/@turf/standard-deviational-ellipse/dist/esm/index.js +3 -6
  636. package/node_modules/@turf/standard-deviational-ellipse/dist/esm/index.js.map +1 -1
  637. package/node_modules/@turf/standard-deviational-ellipse/package.json +16 -16
  638. package/node_modules/@turf/tag/dist/cjs/index.cjs +1 -2
  639. package/node_modules/@turf/tag/dist/cjs/index.cjs.map +1 -1
  640. package/node_modules/@turf/tag/dist/cjs/index.d.cts +1 -1
  641. package/node_modules/@turf/tag/dist/esm/index.d.ts +1 -1
  642. package/node_modules/@turf/tag/dist/esm/index.js +1 -2
  643. package/node_modules/@turf/tag/dist/esm/index.js.map +1 -1
  644. package/node_modules/@turf/tag/package.json +12 -12
  645. package/node_modules/@turf/tesselate/dist/cjs/index.cjs +1 -2
  646. package/node_modules/@turf/tesselate/dist/cjs/index.cjs.map +1 -1
  647. package/node_modules/@turf/tesselate/dist/cjs/index.d.cts +1 -1
  648. package/node_modules/@turf/tesselate/dist/esm/index.d.ts +1 -1
  649. package/node_modules/@turf/tesselate/dist/esm/index.js +1 -2
  650. package/node_modules/@turf/tesselate/dist/esm/index.js.map +1 -1
  651. package/node_modules/@turf/tesselate/package.json +9 -9
  652. package/node_modules/@turf/tin/dist/cjs/index.cjs +13 -14
  653. package/node_modules/@turf/tin/dist/cjs/index.cjs.map +1 -1
  654. package/node_modules/@turf/tin/dist/cjs/index.d.cts +1 -1
  655. package/node_modules/@turf/tin/dist/esm/index.d.ts +1 -1
  656. package/node_modules/@turf/tin/dist/esm/index.js +13 -14
  657. package/node_modules/@turf/tin/dist/esm/index.js.map +1 -1
  658. package/node_modules/@turf/tin/package.json +9 -9
  659. package/node_modules/@turf/transform-rotate/dist/cjs/index.cjs +4 -8
  660. package/node_modules/@turf/transform-rotate/dist/cjs/index.cjs.map +1 -1
  661. package/node_modules/@turf/transform-rotate/dist/cjs/index.d.cts +1 -1
  662. package/node_modules/@turf/transform-rotate/dist/esm/index.d.ts +1 -1
  663. package/node_modules/@turf/transform-rotate/dist/esm/index.js +4 -8
  664. package/node_modules/@turf/transform-rotate/dist/esm/index.js.map +1 -1
  665. package/node_modules/@turf/transform-rotate/package.json +17 -17
  666. package/node_modules/@turf/transform-scale/dist/cjs/index.cjs +18 -12
  667. package/node_modules/@turf/transform-scale/dist/cjs/index.cjs.map +1 -1
  668. package/node_modules/@turf/transform-scale/dist/cjs/index.d.cts +1 -1
  669. package/node_modules/@turf/transform-scale/dist/esm/index.d.ts +1 -1
  670. package/node_modules/@turf/transform-scale/dist/esm/index.js +18 -12
  671. package/node_modules/@turf/transform-scale/dist/esm/index.js.map +1 -1
  672. package/node_modules/@turf/transform-scale/package.json +21 -21
  673. package/node_modules/@turf/transform-translate/dist/cjs/index.cjs +4 -8
  674. package/node_modules/@turf/transform-translate/dist/cjs/index.cjs.map +1 -1
  675. package/node_modules/@turf/transform-translate/dist/cjs/index.d.cts +1 -1
  676. package/node_modules/@turf/transform-translate/dist/esm/index.d.ts +1 -1
  677. package/node_modules/@turf/transform-translate/dist/esm/index.js +4 -8
  678. package/node_modules/@turf/transform-translate/dist/esm/index.js.map +1 -1
  679. package/node_modules/@turf/transform-translate/package.json +14 -14
  680. package/node_modules/@turf/triangle-grid/dist/cjs/index.cjs.map +1 -1
  681. package/node_modules/@turf/triangle-grid/dist/cjs/index.d.cts +1 -1
  682. package/node_modules/@turf/triangle-grid/dist/esm/index.d.ts +1 -1
  683. package/node_modules/@turf/triangle-grid/dist/esm/index.js.map +1 -1
  684. package/node_modules/@turf/triangle-grid/package.json +13 -13
  685. package/node_modules/@turf/truncate/dist/cjs/index.cjs +3 -6
  686. package/node_modules/@turf/truncate/dist/cjs/index.cjs.map +1 -1
  687. package/node_modules/@turf/truncate/dist/cjs/index.d.cts +1 -1
  688. package/node_modules/@turf/truncate/dist/esm/index.d.ts +1 -1
  689. package/node_modules/@turf/truncate/dist/esm/index.js +3 -6
  690. package/node_modules/@turf/truncate/dist/esm/index.js.map +1 -1
  691. package/node_modules/@turf/truncate/package.json +10 -10
  692. package/node_modules/@turf/turf/dist/cjs/index.cjs +3 -1
  693. package/node_modules/@turf/turf/dist/cjs/index.cjs.map +1 -1
  694. package/node_modules/@turf/turf/dist/cjs/index.d.cts +1 -0
  695. package/node_modules/@turf/turf/dist/esm/index.d.ts +1 -0
  696. package/node_modules/@turf/turf/dist/esm/index.js +2 -0
  697. package/node_modules/@turf/turf/dist/esm/index.js.map +1 -1
  698. package/node_modules/@turf/turf/package.json +126 -125
  699. package/node_modules/@turf/turf/turf.min.js +3 -26
  700. package/node_modules/@turf/union/README.md +44 -24
  701. package/node_modules/@turf/union/dist/cjs/index.cjs +9 -12
  702. package/node_modules/@turf/union/dist/cjs/index.cjs.map +1 -1
  703. package/node_modules/@turf/union/dist/cjs/index.d.cts +40 -21
  704. package/node_modules/@turf/union/dist/esm/index.d.ts +40 -21
  705. package/node_modules/@turf/union/dist/esm/index.js +8 -11
  706. package/node_modules/@turf/union/dist/esm/index.js.map +1 -1
  707. package/node_modules/@turf/union/package.json +11 -11
  708. package/node_modules/@turf/unkink-polygon/dist/cjs/index.cjs +14 -28
  709. package/node_modules/@turf/unkink-polygon/dist/cjs/index.cjs.map +1 -1
  710. package/node_modules/@turf/unkink-polygon/dist/cjs/index.d.cts +1 -1
  711. package/node_modules/@turf/unkink-polygon/dist/esm/index.d.ts +1 -1
  712. package/node_modules/@turf/unkink-polygon/dist/esm/index.js +14 -28
  713. package/node_modules/@turf/unkink-polygon/dist/esm/index.js.map +1 -1
  714. package/node_modules/@turf/unkink-polygon/package.json +13 -13
  715. package/node_modules/@turf/voronoi/dist/cjs/index.cjs +3 -6
  716. package/node_modules/@turf/voronoi/dist/cjs/index.cjs.map +1 -1
  717. package/node_modules/@turf/voronoi/dist/cjs/index.d.cts +1 -1
  718. package/node_modules/@turf/voronoi/dist/esm/index.d.ts +1 -1
  719. package/node_modules/@turf/voronoi/dist/esm/index.js +3 -6
  720. package/node_modules/@turf/voronoi/dist/esm/index.js.map +1 -1
  721. package/node_modules/@turf/voronoi/package.json +11 -11
  722. package/node_modules/@types/geojson/README.md +1 -1
  723. package/node_modules/@types/geojson/index.d.ts +4 -1
  724. package/node_modules/@types/geojson/package.json +4 -3
  725. package/node_modules/@types/node/README.md +2 -2
  726. package/node_modules/@types/node/assert.d.ts +2 -2
  727. package/node_modules/@types/node/compatibility/disposable.d.ts +16 -0
  728. package/node_modules/@types/node/compatibility/index.d.ts +9 -0
  729. package/node_modules/@types/node/compatibility/indexable.d.ts +23 -0
  730. package/node_modules/@types/node/compatibility/iterators.d.ts +21 -0
  731. package/node_modules/@types/node/crypto.d.ts +33 -9
  732. package/node_modules/@types/node/events.d.ts +3 -3
  733. package/node_modules/@types/node/fs/promises.d.ts +16 -5
  734. package/node_modules/@types/node/fs.d.ts +14 -8
  735. package/node_modules/@types/node/globals.d.ts +25 -54
  736. package/node_modules/@types/node/http.d.ts +38 -1
  737. package/node_modules/@types/node/http2.d.ts +4 -1
  738. package/node_modules/@types/node/https.d.ts +0 -1
  739. package/node_modules/@types/node/index.d.ts +8 -10
  740. package/node_modules/@types/node/module.d.ts +112 -4
  741. package/node_modules/@types/node/net.d.ts +3 -0
  742. package/node_modules/@types/node/package.json +5 -9
  743. package/node_modules/@types/node/perf_hooks.d.ts +24 -0
  744. package/node_modules/@types/node/process.d.ts +96 -12
  745. package/node_modules/@types/node/readline/promises.d.ts +14 -2
  746. package/node_modules/@types/node/readline.d.ts +58 -9
  747. package/node_modules/@types/node/sqlite.d.ts +30 -9
  748. package/node_modules/@types/node/stream/promises.d.ts +8 -1
  749. package/node_modules/@types/node/stream/web.d.ts +5 -2
  750. package/node_modules/@types/node/stream.d.ts +2 -2
  751. package/node_modules/@types/node/test.d.ts +155 -5
  752. package/node_modules/@types/node/timers/promises.d.ts +1 -1
  753. package/node_modules/@types/node/tls.d.ts +6 -0
  754. package/node_modules/@types/node/ts5.6/index.d.ts +8 -10
  755. package/node_modules/@types/node/url.d.ts +7 -4
  756. package/node_modules/@types/node/util.d.ts +80 -10
  757. package/node_modules/@types/node/v8.d.ts +1 -1
  758. package/node_modules/@types/node/vm.d.ts +81 -27
  759. package/node_modules/@types/node/worker_threads.d.ts +34 -1
  760. package/node_modules/axios/CHANGELOG.md +49 -0
  761. package/node_modules/axios/README.md +20 -8
  762. package/node_modules/axios/dist/axios.js +34 -63
  763. package/node_modules/axios/dist/axios.js.map +1 -1
  764. package/node_modules/axios/dist/axios.min.js +1 -1
  765. package/node_modules/axios/dist/axios.min.js.map +1 -1
  766. package/node_modules/axios/dist/browser/axios.cjs +40 -71
  767. package/node_modules/axios/dist/browser/axios.cjs.map +1 -1
  768. package/node_modules/axios/dist/esm/axios.js +40 -71
  769. package/node_modules/axios/dist/esm/axios.js.map +1 -1
  770. package/node_modules/axios/dist/esm/axios.min.js +1 -1
  771. package/node_modules/axios/dist/esm/axios.min.js.map +1 -1
  772. package/node_modules/axios/dist/node/axios.cjs +45 -75
  773. package/node_modules/axios/dist/node/axios.cjs.map +1 -1
  774. package/node_modules/axios/index.d.cts +5 -1
  775. package/node_modules/axios/index.d.ts +8 -1
  776. package/node_modules/axios/lib/adapters/http.js +4 -4
  777. package/node_modules/axios/lib/core/Axios.js +7 -2
  778. package/node_modules/axios/lib/core/mergeConfig.js +5 -5
  779. package/node_modules/axios/lib/env/data.js +1 -1
  780. package/node_modules/axios/lib/helpers/buildURL.js +7 -1
  781. package/node_modules/axios/lib/helpers/formDataToStream.js +2 -2
  782. package/node_modules/axios/lib/helpers/isURLSameOrigin.js +12 -65
  783. package/node_modules/axios/lib/helpers/validator.js +8 -0
  784. package/node_modules/axios/package.json +3 -3
  785. package/node_modules/bignumber.js/CHANGELOG.md +295 -0
  786. package/node_modules/bignumber.js/LICENCE.md +26 -0
  787. package/node_modules/bignumber.js/README.md +286 -0
  788. package/node_modules/bignumber.js/bignumber.d.ts +1831 -0
  789. package/node_modules/bignumber.js/bignumber.js +2922 -0
  790. package/node_modules/bignumber.js/bignumber.mjs +2907 -0
  791. package/node_modules/bignumber.js/doc/API.html +2249 -0
  792. package/node_modules/bignumber.js/package.json +50 -0
  793. package/node_modules/fast-xml-parser/CHANGELOG.md +4 -0
  794. package/node_modules/fast-xml-parser/README.md +3 -2
  795. package/node_modules/fast-xml-parser/package.json +1 -1
  796. package/node_modules/fast-xml-parser/src/v5/XmlPartReader.js +21 -17
  797. package/node_modules/fast-xml-parser/src/xmlparser/DocTypeReader.js +1 -0
  798. package/node_modules/long/index.d.ts +1 -456
  799. package/node_modules/long/package.json +1 -1
  800. package/node_modules/long/umd/index.d.ts +456 -1
  801. package/node_modules/point-in-polygon-hao/README.md +8 -7
  802. package/node_modules/point-in-polygon-hao/dist/cjs/index.cjs +322 -0
  803. package/node_modules/point-in-polygon-hao/dist/esm/index.d.ts +10 -0
  804. package/node_modules/point-in-polygon-hao/dist/esm/index.js +56 -0
  805. package/node_modules/point-in-polygon-hao/dist/pointInPolygon.js +286 -42
  806. package/node_modules/point-in-polygon-hao/dist/pointInPolygon.min.js +1 -1
  807. package/node_modules/point-in-polygon-hao/package.json +24 -20
  808. package/node_modules/polyclip-ts/LICENSE +21 -0
  809. package/node_modules/{polygon-clipping → polyclip-ts}/README.md +35 -36
  810. package/node_modules/polyclip-ts/dist/cjs/index.cjs +1179 -0
  811. package/node_modules/polyclip-ts/dist/cjs/index.cjs.map +1 -0
  812. package/node_modules/polyclip-ts/dist/cjs/index.d.cts +12 -0
  813. package/node_modules/polyclip-ts/dist/esm/index.d.ts +12 -0
  814. package/node_modules/polyclip-ts/dist/esm/index.js +1138 -0
  815. package/node_modules/polyclip-ts/dist/esm/index.js.map +1 -0
  816. package/node_modules/polyclip-ts/dist/polyclip-ts.umd.js +4811 -0
  817. package/node_modules/polyclip-ts/dist/polyclip-ts.umd.min.js +2 -0
  818. package/node_modules/polyclip-ts/package.json +72 -0
  819. package/node_modules/splaytree-ts/LICENSE +29 -0
  820. package/node_modules/splaytree-ts/README.md +296 -0
  821. package/node_modules/splaytree-ts/dist/cjs/index.cjs +714 -0
  822. package/node_modules/splaytree-ts/dist/cjs/index.cjs.map +1 -0
  823. package/node_modules/splaytree-ts/dist/cjs/index.d.cts +105 -0
  824. package/node_modules/splaytree-ts/dist/esm/index.d.ts +105 -0
  825. package/node_modules/splaytree-ts/dist/esm/index.js +688 -0
  826. package/node_modules/splaytree-ts/dist/esm/index.js.map +1 -0
  827. package/node_modules/splaytree-ts/dist/splaytree-ts.umd.js +736 -0
  828. package/node_modules/splaytree-ts/dist/splaytree-ts.umd.min.js +2 -0
  829. package/node_modules/splaytree-ts/package.json +59 -0
  830. package/node_modules/tslib/modules/index.d.ts +1 -0
  831. package/node_modules/tslib/modules/index.js +2 -0
  832. package/node_modules/tslib/package.json +1 -1
  833. package/node_modules/tslib/tslib.d.ts +7 -0
  834. package/node_modules/tslib/tslib.es6.js +24 -1
  835. package/node_modules/tslib/tslib.es6.mjs +24 -1
  836. package/node_modules/tslib/tslib.js +56 -1
  837. package/node_modules/undici-types/eventsource.d.ts +0 -2
  838. package/node_modules/undici-types/filereader.d.ts +1 -1
  839. package/node_modules/undici-types/interceptors.d.ts +3 -1
  840. package/node_modules/undici-types/package.json +1 -1
  841. package/node_modules/undici-types/patch.d.ts +0 -38
  842. package/node_modules/undici-types/websocket.d.ts +0 -2
  843. package/node_modules/uuid/README.md +82 -156
  844. package/node_modules/uuid/dist/cjs/index.d.ts +15 -0
  845. package/node_modules/uuid/dist/cjs/index.js +31 -0
  846. package/node_modules/uuid/dist/cjs/max.d.ts +2 -0
  847. package/node_modules/uuid/dist/cjs/max.js +3 -0
  848. package/node_modules/uuid/dist/cjs/md5.d.ts +4 -0
  849. package/node_modules/uuid/dist/cjs/md5.js +13 -0
  850. package/node_modules/uuid/dist/cjs/native.d.ts +6 -0
  851. package/node_modules/uuid/dist/cjs/native.js +4 -0
  852. package/node_modules/uuid/dist/cjs/nil.d.ts +2 -0
  853. package/node_modules/uuid/dist/cjs/nil.js +3 -0
  854. package/node_modules/uuid/dist/cjs/package.json +1 -0
  855. package/node_modules/uuid/dist/cjs/parse.d.ts +2 -0
  856. package/node_modules/uuid/dist/cjs/parse.js +11 -0
  857. package/node_modules/uuid/dist/cjs/regex.d.ts +2 -0
  858. package/node_modules/uuid/dist/cjs/regex.js +3 -0
  859. package/node_modules/uuid/dist/cjs/rng.d.ts +1 -0
  860. package/node_modules/uuid/dist/cjs/rng.js +13 -0
  861. package/node_modules/uuid/dist/cjs/sha1.d.ts +4 -0
  862. package/node_modules/uuid/dist/cjs/sha1.js +13 -0
  863. package/node_modules/uuid/dist/cjs/stringify.d.ts +3 -0
  864. package/node_modules/uuid/dist/cjs/stringify.js +39 -0
  865. package/node_modules/uuid/dist/cjs/types.d.ts +21 -0
  866. package/node_modules/uuid/dist/cjs/types.js +2 -0
  867. package/node_modules/uuid/dist/cjs/uuid-bin.d.ts +1 -0
  868. package/node_modules/uuid/dist/cjs/uuid-bin.js +72 -0
  869. package/node_modules/uuid/dist/cjs/v1.d.ts +11 -0
  870. package/node_modules/uuid/dist/cjs/v1.js +87 -0
  871. package/node_modules/uuid/dist/cjs/v1ToV6.d.ts +2 -0
  872. package/node_modules/uuid/dist/cjs/v1ToV6.js +13 -0
  873. package/node_modules/uuid/dist/cjs/v3.d.ts +9 -0
  874. package/node_modules/uuid/dist/cjs/v3.js +14 -0
  875. package/node_modules/uuid/dist/cjs/v35.d.ts +7 -0
  876. package/node_modules/uuid/dist/cjs/v35.js +41 -0
  877. package/node_modules/uuid/dist/cjs/v4.d.ts +4 -0
  878. package/node_modules/uuid/dist/cjs/v4.js +29 -0
  879. package/node_modules/uuid/dist/cjs/v5.d.ts +9 -0
  880. package/node_modules/uuid/dist/cjs/v5.js +14 -0
  881. package/node_modules/uuid/dist/cjs/v6.d.ts +4 -0
  882. package/node_modules/uuid/dist/cjs/v6.js +19 -0
  883. package/node_modules/uuid/dist/cjs/v6ToV1.d.ts +2 -0
  884. package/node_modules/uuid/dist/cjs/v6ToV1.js +13 -0
  885. package/node_modules/uuid/dist/cjs/v7.d.ts +9 -0
  886. package/node_modules/uuid/dist/cjs/v7.js +69 -0
  887. package/node_modules/uuid/dist/cjs/validate.d.ts +2 -0
  888. package/node_modules/uuid/dist/cjs/validate.js +7 -0
  889. package/node_modules/uuid/dist/cjs/version.d.ts +2 -0
  890. package/node_modules/uuid/dist/cjs/version.js +10 -0
  891. package/node_modules/uuid/dist/cjs-browser/index.d.ts +15 -0
  892. package/node_modules/uuid/dist/cjs-browser/index.js +31 -0
  893. package/node_modules/uuid/dist/cjs-browser/max.d.ts +2 -0
  894. package/node_modules/uuid/dist/cjs-browser/max.js +3 -0
  895. package/node_modules/uuid/dist/cjs-browser/md5.d.ts +2 -0
  896. package/node_modules/uuid/dist/cjs-browser/md5.js +137 -0
  897. package/node_modules/uuid/dist/cjs-browser/native.d.ts +4 -0
  898. package/node_modules/uuid/dist/cjs-browser/native.js +4 -0
  899. package/node_modules/uuid/dist/cjs-browser/nil.d.ts +2 -0
  900. package/node_modules/uuid/dist/cjs-browser/nil.js +3 -0
  901. package/node_modules/uuid/dist/cjs-browser/package.json +1 -0
  902. package/node_modules/uuid/dist/cjs-browser/parse.d.ts +2 -0
  903. package/node_modules/uuid/dist/cjs-browser/parse.js +11 -0
  904. package/node_modules/uuid/dist/cjs-browser/regex.d.ts +2 -0
  905. package/node_modules/uuid/dist/cjs-browser/regex.js +3 -0
  906. package/node_modules/uuid/dist/cjs-browser/rng.d.ts +1 -0
  907. package/node_modules/uuid/dist/cjs-browser/rng.js +14 -0
  908. package/node_modules/uuid/dist/cjs-browser/sha1.d.ts +2 -0
  909. package/node_modules/uuid/dist/cjs-browser/sha1.js +72 -0
  910. package/node_modules/uuid/dist/cjs-browser/stringify.d.ts +3 -0
  911. package/node_modules/uuid/dist/cjs-browser/stringify.js +39 -0
  912. package/node_modules/uuid/dist/cjs-browser/types.d.ts +21 -0
  913. package/node_modules/uuid/dist/cjs-browser/types.js +2 -0
  914. package/node_modules/uuid/dist/cjs-browser/uuid-bin.d.ts +1 -0
  915. package/node_modules/uuid/dist/cjs-browser/uuid-bin.js +72 -0
  916. package/node_modules/uuid/dist/cjs-browser/v1.d.ts +11 -0
  917. package/node_modules/uuid/dist/cjs-browser/v1.js +87 -0
  918. package/node_modules/uuid/dist/cjs-browser/v1ToV6.d.ts +2 -0
  919. package/node_modules/uuid/dist/cjs-browser/v1ToV6.js +13 -0
  920. package/node_modules/uuid/dist/cjs-browser/v3.d.ts +9 -0
  921. package/node_modules/uuid/dist/cjs-browser/v3.js +14 -0
  922. package/node_modules/uuid/dist/cjs-browser/v35.d.ts +7 -0
  923. package/node_modules/uuid/dist/cjs-browser/v35.js +41 -0
  924. package/node_modules/uuid/dist/cjs-browser/v4.d.ts +4 -0
  925. package/node_modules/uuid/dist/cjs-browser/v4.js +29 -0
  926. package/node_modules/uuid/dist/cjs-browser/v5.d.ts +9 -0
  927. package/node_modules/uuid/dist/cjs-browser/v5.js +14 -0
  928. package/node_modules/uuid/dist/cjs-browser/v6.d.ts +4 -0
  929. package/node_modules/uuid/dist/cjs-browser/v6.js +19 -0
  930. package/node_modules/uuid/dist/cjs-browser/v6ToV1.d.ts +2 -0
  931. package/node_modules/uuid/dist/cjs-browser/v6ToV1.js +13 -0
  932. package/node_modules/uuid/dist/cjs-browser/v7.d.ts +9 -0
  933. package/node_modules/uuid/dist/cjs-browser/v7.js +69 -0
  934. package/node_modules/uuid/dist/cjs-browser/validate.d.ts +2 -0
  935. package/node_modules/uuid/dist/cjs-browser/validate.js +7 -0
  936. package/node_modules/uuid/dist/cjs-browser/version.d.ts +2 -0
  937. package/node_modules/uuid/dist/cjs-browser/version.js +10 -0
  938. package/node_modules/uuid/dist/esm/bin/uuid +2 -0
  939. package/node_modules/uuid/dist/esm/index.d.ts +15 -0
  940. package/node_modules/uuid/dist/{esm-node → esm}/index.js +1 -1
  941. package/node_modules/uuid/dist/esm/max.d.ts +2 -0
  942. package/node_modules/uuid/dist/esm/max.js +1 -0
  943. package/node_modules/uuid/dist/esm/md5.d.ts +4 -0
  944. package/node_modules/uuid/dist/esm/md5.js +11 -0
  945. package/node_modules/uuid/dist/esm/native.d.ts +6 -0
  946. package/node_modules/uuid/dist/esm/native.js +2 -0
  947. package/node_modules/uuid/dist/esm/nil.d.ts +2 -0
  948. package/node_modules/uuid/dist/esm/nil.js +1 -0
  949. package/node_modules/uuid/dist/esm/parse.d.ts +2 -0
  950. package/node_modules/uuid/dist/esm/parse.js +9 -0
  951. package/node_modules/uuid/dist/esm/regex.d.ts +2 -0
  952. package/node_modules/uuid/dist/{esm-node → esm}/regex.js +1 -1
  953. package/node_modules/uuid/dist/esm/rng.d.ts +1 -0
  954. package/node_modules/uuid/dist/esm/rng.js +10 -0
  955. package/node_modules/uuid/dist/esm/sha1.d.ts +4 -0
  956. package/node_modules/uuid/dist/esm/sha1.js +11 -0
  957. package/node_modules/uuid/dist/esm/stringify.d.ts +3 -0
  958. package/node_modules/uuid/dist/esm/stringify.js +35 -0
  959. package/node_modules/uuid/dist/esm/types.d.ts +21 -0
  960. package/node_modules/uuid/dist/esm/types.js +1 -0
  961. package/node_modules/uuid/dist/esm/uuid-bin.d.ts +1 -0
  962. package/node_modules/uuid/dist/esm/uuid-bin.js +70 -0
  963. package/node_modules/uuid/dist/esm/v1.d.ts +11 -0
  964. package/node_modules/uuid/dist/esm/v1.js +83 -0
  965. package/node_modules/uuid/dist/esm/v1ToV6.d.ts +2 -0
  966. package/node_modules/uuid/dist/esm/v1ToV6.js +10 -0
  967. package/node_modules/uuid/dist/esm/v3.d.ts +9 -0
  968. package/node_modules/uuid/dist/esm/v3.js +9 -0
  969. package/node_modules/uuid/dist/esm/v35.d.ts +7 -0
  970. package/node_modules/uuid/dist/esm/v35.js +36 -0
  971. package/node_modules/uuid/dist/esm/v4.d.ts +4 -0
  972. package/node_modules/uuid/dist/esm/v4.js +27 -0
  973. package/node_modules/uuid/dist/esm/v5.d.ts +9 -0
  974. package/node_modules/uuid/dist/esm/v5.js +9 -0
  975. package/node_modules/uuid/dist/esm/v6.d.ts +4 -0
  976. package/node_modules/uuid/dist/esm/v6.js +17 -0
  977. package/node_modules/uuid/dist/esm/v6ToV1.d.ts +2 -0
  978. package/node_modules/uuid/dist/esm/v6ToV1.js +10 -0
  979. package/node_modules/uuid/dist/esm/v7.d.ts +9 -0
  980. package/node_modules/uuid/dist/esm/v7.js +65 -0
  981. package/node_modules/uuid/dist/esm/validate.d.ts +2 -0
  982. package/node_modules/uuid/dist/esm/validate.js +5 -0
  983. package/node_modules/uuid/dist/esm/version.d.ts +2 -0
  984. package/node_modules/uuid/dist/esm/version.js +8 -0
  985. package/node_modules/uuid/dist/esm-browser/index.d.ts +15 -0
  986. package/node_modules/uuid/dist/esm-browser/index.js +1 -1
  987. package/node_modules/uuid/dist/esm-browser/max.d.ts +2 -0
  988. package/node_modules/uuid/dist/esm-browser/max.js +1 -1
  989. package/node_modules/uuid/dist/esm-browser/md5.d.ts +2 -0
  990. package/node_modules/uuid/dist/esm-browser/md5.js +113 -172
  991. package/node_modules/uuid/dist/esm-browser/native.d.ts +4 -0
  992. package/node_modules/uuid/dist/esm-browser/native.js +2 -4
  993. package/node_modules/uuid/dist/esm-browser/nil.d.ts +2 -0
  994. package/node_modules/uuid/dist/esm-browser/nil.js +1 -1
  995. package/node_modules/uuid/dist/esm-browser/parse.d.ts +2 -0
  996. package/node_modules/uuid/dist/esm-browser/parse.js +6 -34
  997. package/node_modules/uuid/dist/esm-browser/regex.d.ts +2 -0
  998. package/node_modules/uuid/dist/esm-browser/regex.js +1 -1
  999. package/node_modules/uuid/dist/esm-browser/rng.d.ts +1 -0
  1000. package/node_modules/uuid/dist/esm-browser/rng.js +8 -14
  1001. package/node_modules/uuid/dist/esm-browser/sha1.d.ts +2 -0
  1002. package/node_modules/uuid/dist/esm-browser/sha1.js +62 -68
  1003. package/node_modules/uuid/dist/esm-browser/stringify.d.ts +3 -0
  1004. package/node_modules/uuid/dist/esm-browser/stringify.js +29 -25
  1005. package/node_modules/uuid/dist/esm-browser/types.d.ts +21 -0
  1006. package/node_modules/uuid/dist/esm-browser/types.js +1 -0
  1007. package/node_modules/uuid/dist/esm-browser/uuid-bin.d.ts +1 -0
  1008. package/node_modules/uuid/dist/esm-browser/uuid-bin.js +70 -0
  1009. package/node_modules/uuid/dist/esm-browser/v1.d.ts +11 -0
  1010. package/node_modules/uuid/dist/esm-browser/v1.js +75 -117
  1011. package/node_modules/uuid/dist/esm-browser/v1ToV6.d.ts +2 -0
  1012. package/node_modules/uuid/dist/esm-browser/v1ToV6.js +6 -16
  1013. package/node_modules/uuid/dist/esm-browser/v3.d.ts +9 -0
  1014. package/node_modules/uuid/dist/esm-browser/v3.js +8 -3
  1015. package/node_modules/uuid/dist/esm-browser/v35.d.ts +7 -0
  1016. package/node_modules/uuid/dist/esm-browser/v35.js +28 -47
  1017. package/node_modules/uuid/dist/esm-browser/v4.d.ts +4 -0
  1018. package/node_modules/uuid/dist/esm-browser/v4.js +21 -19
  1019. package/node_modules/uuid/dist/esm-browser/v5.d.ts +9 -0
  1020. package/node_modules/uuid/dist/esm-browser/v5.js +8 -3
  1021. package/node_modules/uuid/dist/esm-browser/v6.d.ts +4 -0
  1022. package/node_modules/uuid/dist/esm-browser/v6.js +13 -32
  1023. package/node_modules/uuid/dist/esm-browser/v6ToV1.d.ts +2 -0
  1024. package/node_modules/uuid/dist/esm-browser/v6ToV1.js +5 -15
  1025. package/node_modules/uuid/dist/esm-browser/v7.d.ts +9 -0
  1026. package/node_modules/uuid/dist/esm-browser/v7.js +58 -139
  1027. package/node_modules/uuid/dist/esm-browser/validate.d.ts +2 -0
  1028. package/node_modules/uuid/dist/esm-browser/validate.js +2 -2
  1029. package/node_modules/uuid/dist/esm-browser/version.d.ts +2 -0
  1030. package/node_modules/uuid/dist/esm-browser/version.js +5 -5
  1031. package/node_modules/uuid/package.json +65 -75
  1032. package/package.json +6 -6
  1033. package/tak-registration.js +1 -4
  1034. package/node_modules/@types/node/globals.global.d.ts +0 -1
  1035. package/node_modules/point-in-polygon-hao/.eslintrc +0 -10
  1036. package/node_modules/point-in-polygon-hao/CHANGES.md +0 -8
  1037. package/node_modules/point-in-polygon-hao/FUNDING.yml +0 -2
  1038. package/node_modules/point-in-polygon-hao/dist/pointInPolygon.mjs +0 -76
  1039. package/node_modules/point-in-polygon-hao/rollup.config.js +0 -19
  1040. package/node_modules/point-in-polygon-hao/src/index.js +0 -74
  1041. package/node_modules/polygon-clipping/LICENSE.md +0 -11
  1042. package/node_modules/polygon-clipping/dist/polygon-clipping.cjs.js +0 -1803
  1043. package/node_modules/polygon-clipping/dist/polygon-clipping.d.ts +0 -14
  1044. package/node_modules/polygon-clipping/dist/polygon-clipping.esm.js +0 -1532
  1045. package/node_modules/polygon-clipping/dist/polygon-clipping.umd.js +0 -2496
  1046. package/node_modules/polygon-clipping/dist/polygon-clipping.umd.min.js +0 -24
  1047. package/node_modules/polygon-clipping/dist/polygon-clipping.umd.min.js.map +0 -1
  1048. package/node_modules/polygon-clipping/package.json +0 -79
  1049. package/node_modules/splaytree/Readme.md +0 -222
  1050. package/node_modules/splaytree/dist/splay.esm.js +0 -686
  1051. package/node_modules/splaytree/dist/splay.esm.js.map +0 -1
  1052. package/node_modules/splaytree/dist/splay.js +0 -694
  1053. package/node_modules/splaytree/dist/splay.js.map +0 -1
  1054. package/node_modules/splaytree/package.json +0 -91
  1055. package/node_modules/splaytree/src/index.ts +0 -679
  1056. package/node_modules/splaytree/src/node.ts +0 -15
  1057. package/node_modules/splaytree/src/types.ts +0 -2
  1058. package/node_modules/splaytree/typings/index.d.ts +0 -82
  1059. package/node_modules/splaytree/typings/node.d.ts +0 -8
  1060. package/node_modules/splaytree/typings/types.d.ts +0 -2
  1061. package/node_modules/uuid/CHANGELOG.md +0 -292
  1062. package/node_modules/uuid/CONTRIBUTING.md +0 -18
  1063. package/node_modules/uuid/dist/bin/uuid +0 -2
  1064. package/node_modules/uuid/dist/commonjs-browser/index.js +0 -104
  1065. package/node_modules/uuid/dist/commonjs-browser/max.js +0 -7
  1066. package/node_modules/uuid/dist/commonjs-browser/md5.js +0 -200
  1067. package/node_modules/uuid/dist/commonjs-browser/native.js +0 -10
  1068. package/node_modules/uuid/dist/commonjs-browser/nil.js +0 -7
  1069. package/node_modules/uuid/dist/commonjs-browser/parse.js +0 -44
  1070. package/node_modules/uuid/dist/commonjs-browser/regex.js +0 -7
  1071. package/node_modules/uuid/dist/commonjs-browser/rng.js +0 -23
  1072. package/node_modules/uuid/dist/commonjs-browser/sha1.js +0 -82
  1073. package/node_modules/uuid/dist/commonjs-browser/stringify.js +0 -38
  1074. package/node_modules/uuid/dist/commonjs-browser/v1.js +0 -131
  1075. package/node_modules/uuid/dist/commonjs-browser/v1ToV6.js +0 -26
  1076. package/node_modules/uuid/dist/commonjs-browser/v3.js +0 -11
  1077. package/node_modules/uuid/dist/commonjs-browser/v35.js +0 -63
  1078. package/node_modules/uuid/dist/commonjs-browser/v4.js +0 -32
  1079. package/node_modules/uuid/dist/commonjs-browser/v5.js +0 -11
  1080. package/node_modules/uuid/dist/commonjs-browser/v6.js +0 -42
  1081. package/node_modules/uuid/dist/commonjs-browser/v6ToV1.js +0 -26
  1082. package/node_modules/uuid/dist/commonjs-browser/v7.js +0 -152
  1083. package/node_modules/uuid/dist/commonjs-browser/validate.js +0 -12
  1084. package/node_modules/uuid/dist/commonjs-browser/version.js +0 -15
  1085. package/node_modules/uuid/dist/esm-node/max.js +0 -1
  1086. package/node_modules/uuid/dist/esm-node/md5.js +0 -10
  1087. package/node_modules/uuid/dist/esm-node/native.js +0 -4
  1088. package/node_modules/uuid/dist/esm-node/nil.js +0 -1
  1089. package/node_modules/uuid/dist/esm-node/parse.js +0 -37
  1090. package/node_modules/uuid/dist/esm-node/rng.js +0 -10
  1091. package/node_modules/uuid/dist/esm-node/sha1.js +0 -10
  1092. package/node_modules/uuid/dist/esm-node/stringify.js +0 -31
  1093. package/node_modules/uuid/dist/esm-node/v1.js +0 -125
  1094. package/node_modules/uuid/dist/esm-node/v1ToV6.js +0 -20
  1095. package/node_modules/uuid/dist/esm-node/v3.js +0 -4
  1096. package/node_modules/uuid/dist/esm-node/v35.js +0 -55
  1097. package/node_modules/uuid/dist/esm-node/v4.js +0 -25
  1098. package/node_modules/uuid/dist/esm-node/v5.js +0 -4
  1099. package/node_modules/uuid/dist/esm-node/v6.js +0 -32
  1100. package/node_modules/uuid/dist/esm-node/v6ToV1.js +0 -20
  1101. package/node_modules/uuid/dist/esm-node/v7.js +0 -146
  1102. package/node_modules/uuid/dist/esm-node/validate.js +0 -5
  1103. package/node_modules/uuid/dist/esm-node/version.js +0 -8
  1104. package/node_modules/uuid/dist/index.js +0 -104
  1105. package/node_modules/uuid/dist/max.js +0 -7
  1106. package/node_modules/uuid/dist/md5-browser.js +0 -200
  1107. package/node_modules/uuid/dist/md5.js +0 -17
  1108. package/node_modules/uuid/dist/native-browser.js +0 -10
  1109. package/node_modules/uuid/dist/native.js +0 -11
  1110. package/node_modules/uuid/dist/nil.js +0 -7
  1111. package/node_modules/uuid/dist/parse.js +0 -44
  1112. package/node_modules/uuid/dist/regex.js +0 -7
  1113. package/node_modules/uuid/dist/rng-browser.js +0 -23
  1114. package/node_modules/uuid/dist/rng.js +0 -17
  1115. package/node_modules/uuid/dist/sha1-browser.js +0 -82
  1116. package/node_modules/uuid/dist/sha1.js +0 -17
  1117. package/node_modules/uuid/dist/stringify.js +0 -38
  1118. package/node_modules/uuid/dist/uuid-bin.js +0 -75
  1119. package/node_modules/uuid/dist/v1.js +0 -131
  1120. package/node_modules/uuid/dist/v1ToV6.js +0 -26
  1121. package/node_modules/uuid/dist/v3.js +0 -11
  1122. package/node_modules/uuid/dist/v35.js +0 -63
  1123. package/node_modules/uuid/dist/v4.js +0 -32
  1124. package/node_modules/uuid/dist/v5.js +0 -11
  1125. package/node_modules/uuid/dist/v6.js +0 -38
  1126. package/node_modules/uuid/dist/v6ToV1.js +0 -26
  1127. package/node_modules/uuid/dist/v7.js +0 -152
  1128. package/node_modules/uuid/dist/validate.js +0 -12
  1129. package/node_modules/uuid/dist/version.js +0 -15
  1130. package/node_modules/uuid/wrapper.mjs +0 -15
  1131. /package/node_modules/point-in-polygon-hao/{index.d.ts → dist/cjs/index.d.cts} +0 -0
  1132. /package/node_modules/{polygon-clipping → point-in-polygon-hao}/node_modules/robust-predicates/LICENSE +0 -0
  1133. /package/node_modules/{polygon-clipping → point-in-polygon-hao}/node_modules/robust-predicates/README.md +0 -0
  1134. /package/node_modules/{polygon-clipping → point-in-polygon-hao}/node_modules/robust-predicates/esm/incircle.js +0 -0
  1135. /package/node_modules/{polygon-clipping → point-in-polygon-hao}/node_modules/robust-predicates/esm/insphere.js +0 -0
  1136. /package/node_modules/{polygon-clipping → point-in-polygon-hao}/node_modules/robust-predicates/esm/orient2d.js +0 -0
  1137. /package/node_modules/{polygon-clipping → point-in-polygon-hao}/node_modules/robust-predicates/esm/orient3d.js +0 -0
  1138. /package/node_modules/{polygon-clipping → point-in-polygon-hao}/node_modules/robust-predicates/esm/util.js +0 -0
  1139. /package/node_modules/{polygon-clipping → point-in-polygon-hao}/node_modules/robust-predicates/index.d.ts +0 -0
  1140. /package/node_modules/{polygon-clipping → point-in-polygon-hao}/node_modules/robust-predicates/index.js +0 -0
  1141. /package/node_modules/{polygon-clipping → point-in-polygon-hao}/node_modules/robust-predicates/package.json +0 -0
  1142. /package/node_modules/{polygon-clipping → point-in-polygon-hao}/node_modules/robust-predicates/umd/incircle.js +0 -0
  1143. /package/node_modules/{polygon-clipping → point-in-polygon-hao}/node_modules/robust-predicates/umd/incircle.min.js +0 -0
  1144. /package/node_modules/{polygon-clipping → point-in-polygon-hao}/node_modules/robust-predicates/umd/insphere.js +0 -0
  1145. /package/node_modules/{polygon-clipping → point-in-polygon-hao}/node_modules/robust-predicates/umd/insphere.min.js +0 -0
  1146. /package/node_modules/{polygon-clipping → point-in-polygon-hao}/node_modules/robust-predicates/umd/orient2d.js +0 -0
  1147. /package/node_modules/{polygon-clipping → point-in-polygon-hao}/node_modules/robust-predicates/umd/orient2d.min.js +0 -0
  1148. /package/node_modules/{polygon-clipping → point-in-polygon-hao}/node_modules/robust-predicates/umd/orient3d.js +0 -0
  1149. /package/node_modules/{polygon-clipping → point-in-polygon-hao}/node_modules/robust-predicates/umd/orient3d.min.js +0 -0
  1150. /package/node_modules/{polygon-clipping → point-in-polygon-hao}/node_modules/robust-predicates/umd/predicates.js +0 -0
  1151. /package/node_modules/{polygon-clipping → point-in-polygon-hao}/node_modules/robust-predicates/umd/predicates.min.js +0 -0
@@ -34,8 +34,7 @@ var _meta = require('@turf/meta');
34
34
 
35
35
  function gridToMatrix(grid, options) {
36
36
  options = options || {};
37
- if (!_helpers.isObject.call(void 0, options))
38
- throw new Error("options is invalid");
37
+ if (!_helpers.isObject.call(void 0, options)) throw new Error("options is invalid");
39
38
  var zProperty = options.zProperty || "elevation";
40
39
  var flip = options.flip;
41
40
  var flags = options.flags;
@@ -47,12 +46,9 @@ function gridToMatrix(grid, options) {
47
46
  var row = [];
48
47
  for (var c = 0; c < pointRow.length; c++) {
49
48
  var point = pointRow[c];
50
- if (point.properties[zProperty])
51
- row.push(point.properties[zProperty]);
52
- else
53
- row.push(0);
54
- if (flags === true)
55
- point.properties.matrixPosition = [r, c];
49
+ if (point.properties[zProperty]) row.push(point.properties[zProperty]);
50
+ else row.push(0);
51
+ if (flags === true) point.properties.matrixPosition = [r, c];
56
52
  }
57
53
  matrix.push(row);
58
54
  }
@@ -62,8 +58,7 @@ function sortPointsByLatLng(points, flip) {
62
58
  var pointsByLatitude = {};
63
59
  _meta.featureEach.call(void 0, points, function(point) {
64
60
  var lat = _invariant.getCoords.call(void 0, point)[1];
65
- if (!pointsByLatitude[lat])
66
- pointsByLatitude[lat] = [];
61
+ if (!pointsByLatitude[lat]) pointsByLatitude[lat] = [];
67
62
  pointsByLatitude[lat].push(point);
68
63
  });
69
64
  var orderedRowsByLatitude = Object.keys(pointsByLatitude).map(function(lat) {
@@ -74,10 +69,8 @@ function sortPointsByLatLng(points, flip) {
74
69
  return rowOrderedByLongitude;
75
70
  });
76
71
  var pointMatrix = orderedRowsByLatitude.sort(function(a, b) {
77
- if (flip)
78
- return _invariant.getCoords.call(void 0, a[0])[1] - _invariant.getCoords.call(void 0, b[0])[1];
79
- else
80
- return _invariant.getCoords.call(void 0, b[0])[1] - _invariant.getCoords.call(void 0, a[0])[1];
72
+ if (flip) return _invariant.getCoords.call(void 0, a[0])[1] - _invariant.getCoords.call(void 0, b[0])[1];
73
+ else return _invariant.getCoords.call(void 0, b[0])[1] - _invariant.getCoords.call(void 0, a[0])[1];
81
74
  });
82
75
  return pointMatrix;
83
76
  }
@@ -86,16 +79,13 @@ function sortPointsByLatLng(points, flip) {
86
79
  var _marchingsquares = require('marchingsquares');
87
80
  function isobands(pointGrid, breaks, options) {
88
81
  options = options || {};
89
- if (!_helpers.isObject.call(void 0, options))
90
- throw new Error("options is invalid");
82
+ if (!_helpers.isObject.call(void 0, options)) throw new Error("options is invalid");
91
83
  const zProperty = options.zProperty || "elevation";
92
84
  const commonProperties = options.commonProperties || {};
93
85
  const breaksProperties = options.breaksProperties || [];
94
86
  _invariant.collectionOf.call(void 0, pointGrid, "Point", "Input must contain Points");
95
- if (!breaks)
96
- throw new Error("breaks is required");
97
- if (!Array.isArray(breaks))
98
- throw new Error("breaks is not an Array");
87
+ if (!breaks) throw new Error("breaks is required");
88
+ if (!Array.isArray(breaks)) throw new Error("breaks is not an Array");
99
89
  if (!_helpers.isObject.call(void 0, commonProperties))
100
90
  throw new Error("commonProperties is not an Object");
101
91
  if (!Array.isArray(breaksProperties))
@@ -1 +1 @@
1
- {"version":3,"sources":["../../index.ts","../../lib/grid-to-matrix.js"],"names":["collectionOf","isObject"],"mappings":"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","sourcesContent":["import { bbox } from \"@turf/bbox\";\nimport { area } from \"@turf/area\";\nimport { booleanPointInPolygon } from \"@turf/boolean-point-in-polygon\";\nimport { explode } from \"@turf/explode\";\nimport { collectionOf } from \"@turf/invariant\";\nimport {\n polygon,\n multiPolygon,\n featureCollection,\n isObject,\n} from \"@turf/helpers\";\n\nimport {\n FeatureCollection,\n Point,\n GeoJsonProperties,\n MultiPolygon,\n Position,\n Polygon,\n Feature,\n} from \"geojson\";\n\nimport { gridToMatrix } from \"./lib/grid-to-matrix.js\";\nimport { isoBands } from \"marchingsquares\";\n\ntype GroupRingProps = { [prop: string]: string };\ntype GroupedRings =\n | {\n groupedRings: Position[][][];\n }\n | GroupRingProps;\n\n/**\n * Takes a square or rectangular grid {@link FeatureCollection} of {@link Point} features with z-values and an array of\n * value breaks and generates filled contour isobands.\n *\n * @name isobands\n * @param {FeatureCollection<Point>} pointGrid input points - must be square or rectangular\n * @param {Array<number>} breaks where to draw contours\n * @param {Object} [options={}] options on output\n * @param {string} [options.zProperty='elevation'] the property name in `points` from which z-values will be pulled\n * @param {Object} [options.commonProperties={}] GeoJSON properties passed to ALL isobands\n * @param {Array<Object>} [options.breaksProperties=[]] GeoJSON properties passed, in order, to the correspondent isoband (order defined by breaks)\n * @returns {FeatureCollection<MultiPolygon>} a FeatureCollection of {@link MultiPolygon} features representing isobands\n */\nfunction isobands(\n pointGrid: FeatureCollection<Point>,\n breaks: number[],\n options?: {\n zProperty?: string;\n commonProperties?: GeoJsonProperties;\n breaksProperties?: GeoJsonProperties[];\n }\n): FeatureCollection<MultiPolygon> {\n // Optional parameters\n options = options || {};\n if (!isObject(options)) throw new Error(\"options is invalid\");\n const zProperty = options.zProperty || \"elevation\";\n const commonProperties = options.commonProperties || {};\n const breaksProperties = options.breaksProperties || [];\n\n // Validation\n collectionOf(pointGrid, \"Point\", \"Input must contain Points\");\n if (!breaks) throw new Error(\"breaks is required\");\n if (!Array.isArray(breaks)) throw new Error(\"breaks is not an Array\");\n if (!isObject(commonProperties))\n throw new Error(\"commonProperties is not an Object\");\n if (!Array.isArray(breaksProperties))\n throw new Error(\"breaksProperties is not an Array\");\n\n // Isoband methods\n const matrix = gridToMatrix(pointGrid, { zProperty: zProperty, flip: true });\n let contours = createContourLines(matrix, breaks, zProperty);\n contours = rescaleContours(contours, matrix, pointGrid);\n\n const multipolygons = contours.map((contour, index) => {\n if (breaksProperties[index] && !isObject(breaksProperties[index])) {\n throw new Error(\"Each mappedProperty is required to be an Object\");\n }\n // collect all properties\n const contourProperties = {\n ...commonProperties,\n ...breaksProperties[index],\n };\n\n contourProperties[zProperty] = (contour as GroupRingProps)[zProperty];\n\n const multiP = multiPolygon(\n contour.groupedRings as Position[][][],\n contourProperties\n );\n return multiP;\n });\n\n return featureCollection(multipolygons);\n}\n\n/**\n * Creates the contours lines (featuresCollection of polygon features) from the 2D data grid\n *\n * Marchingsquares process the grid data as a 3D representation of a function on a 2D plane, therefore it\n * assumes the points (x-y coordinates) are one 'unit' distance. The result of the IsoBands function needs to be\n * rescaled, with turfjs, to the original area and proportions on the map\n *\n * @private\n * @param {Array<Array<number>>} matrix Grid Data\n * @param {Array<number>} breaks Breaks\n * @param {string} [property='elevation'] Property\n * @returns {Array<any>} contours\n */\nfunction createContourLines(\n matrix: number[][],\n breaks: number[],\n property: string\n): GroupedRings[] {\n const contours: GroupedRings[] = [];\n for (let i = 1; i < breaks.length; i++) {\n const lowerBand = +breaks[i - 1]; // make sure the breaks value is a number\n const upperBand = +breaks[i];\n\n const isobandsCoords = isoBands(matrix, lowerBand, upperBand - lowerBand);\n // as per GeoJson rules for creating a Polygon, make sure the first element\n // in the array of LinearRings represents the exterior ring (i.e. biggest area),\n // and any subsequent elements represent interior rings (i.e. smaller area);\n // this avoids rendering issues of the MultiPolygons on the map\n const nestedRings = orderByArea(isobandsCoords);\n const groupedRings = groupNestedRings(nestedRings);\n\n contours.push({\n groupedRings: groupedRings as Position[][][],\n [property]: lowerBand + \"-\" + upperBand,\n });\n }\n return contours;\n}\n\n/**\n * Transform isobands of 2D grid to polygons for the map\n *\n * @private\n * @param {Array<any>} contours Contours\n * @param {Array<Array<number>>} matrix Grid Data\n * @param {Object} points Points by Latitude\n * @returns {Array<any>} contours\n */\nfunction rescaleContours(\n contours: GroupedRings[],\n matrix: number[][],\n points: FeatureCollection<Point>\n): GroupedRings[] {\n // get dimensions (on the map) of the original grid\n const gridBbox = bbox(points); // [ minX, minY, maxX, maxY ]\n const originalWidth = gridBbox[2] - gridBbox[0];\n const originalHeigth = gridBbox[3] - gridBbox[1];\n\n // get origin, which is the first point of the last row on the rectangular data on the map\n const x0 = gridBbox[0];\n const y0 = gridBbox[1];\n // get number of cells per side\n const matrixWidth = matrix[0].length - 1;\n const matrixHeight = matrix.length - 1;\n // calculate the scaling factor between matrix and rectangular grid on the map\n const scaleX = originalWidth / matrixWidth;\n const scaleY = originalHeigth / matrixHeight;\n\n // resize and shift each point/line of the isobands\n return contours.map(function (contour) {\n contour.groupedRings = (contour.groupedRings as Position[][][]).map(\n function (lineRingSet) {\n return lineRingSet.map(function (lineRing) {\n return lineRing.map((point: Position) => [\n point[0] * scaleX + x0,\n point[1] * scaleY + y0,\n ]);\n });\n }\n );\n\n return contour;\n });\n}\n\n/* utility functions */\n\n/**\n * Returns an array of coordinates (of LinearRings) in descending order by area\n *\n * @private\n * @param {Array<LineString>} ringsCoords array of closed LineString\n * @returns {Array} array of the input LineString ordered by area\n */\nfunction orderByArea(ringsCoords: Position[][]): Position[][] {\n const ringsWithArea = ringsCoords.map(function (coords) {\n // associate each lineRing with its area\n return { ring: coords, area: area(polygon([coords])) };\n });\n ringsWithArea.sort(function (a, b) {\n // bigger --> smaller\n return b.area - a.area;\n });\n // create a new array of linearRings coordinates ordered by their area\n return ringsWithArea.map(function (x) {\n return x.ring;\n });\n}\n\n/**\n * Returns an array of arrays of coordinates, each representing\n * a set of (coordinates of) nested LinearRings,\n * i.e. the first ring contains all the others\n *\n * @private\n * @param {Array} orderedLinearRings array of coordinates (of LinearRings) in descending order by area\n * @returns {Array<Array>} Array of coordinates of nested LinearRings\n */\nfunction groupNestedRings(orderedLinearRings: Position[][]): Position[][][] {\n // create a list of the (coordinates of) LinearRings\n const lrList = orderedLinearRings.map((lr) => {\n return { lrCoordinates: lr, grouped: false };\n });\n const groupedLinearRingsCoords: Position[][][] = [];\n\n while (!allGrouped(lrList)) {\n for (let i = 0; i < lrList.length; i++) {\n if (!lrList[i].grouped) {\n // create new group starting with the larger not already grouped ring\n const group: Position[][] = [];\n group.push(lrList[i].lrCoordinates);\n lrList[i].grouped = true;\n const outerMostPoly = polygon([lrList[i].lrCoordinates]);\n // group all the rings contained by the outermost ring\n for (let j = i + 1; j < lrList.length; j++) {\n if (!lrList[j].grouped) {\n const lrPoly = polygon([lrList[j].lrCoordinates]);\n if (isInside(lrPoly, outerMostPoly)) {\n group.push(lrList[j].lrCoordinates);\n lrList[j].grouped = true;\n }\n }\n }\n // insert the new group\n groupedLinearRingsCoords.push(group);\n }\n }\n }\n return groupedLinearRingsCoords;\n}\n\n/**\n * @private\n * @param {Polygon} testPolygon polygon of interest\n * @param {Polygon} targetPolygon polygon you want to compare with\n * @returns {boolean} true if test-Polygon is inside target-Polygon\n */\nfunction isInside(\n testPolygon: Feature<Polygon>,\n targetPolygon: Feature<Polygon>\n): boolean {\n const points = explode(testPolygon);\n for (let i = 0; i < points.features.length; i++) {\n if (!booleanPointInPolygon(points.features[i], targetPolygon)) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * @private\n * @param {Array<Object>} list list of objects which might contain the 'group' attribute\n * @returns {boolean} true if all the objects in the list are marked as grouped\n */\nfunction allGrouped(\n list: { grouped: boolean; lrCoordinates: Position[] }[]\n): boolean {\n for (let i = 0; i < list.length; i++) {\n if (list[i].grouped === false) {\n return false;\n }\n }\n return true;\n}\n\nexport { isobands };\nexport default isobands;\n","import { getCoords, collectionOf } from \"@turf/invariant\";\nimport { featureEach } from \"@turf/meta\";\nimport { isObject } from \"@turf/helpers\";\n\n/**\n * Takes a {@link Point} grid and returns a correspondent matrix {Array<Array<number>>}\n * of the 'property' values\n *\n * @name gridToMatrix\n * @param {FeatureCollection<Point>} grid of points\n * @param {Object} [options={}] Optional parameters\n * @param {string} [options.zProperty='elevation'] the property name in `points` from which z-values will be pulled\n * @param {boolean} [options.flip=false] returns the matrix upside-down\n * @param {boolean} [options.flags=false] flags, adding a `matrixPosition` array field ([row, column]) to its properties,\n * the grid points with coordinates on the matrix\n * @returns {Array<Array<number>>} matrix of property values\n * @example\n * var extent = [-70.823364, -33.553984, -70.473175, -33.302986];\n * var cellSize = 3;\n * var grid = turf.pointGrid(extent, cellSize);\n * // add a random property to each point between 0 and 60\n * for (var i = 0; i < grid.features.length; i++) {\n * grid.features[i].properties.elevation = (Math.random() * 60);\n * }\n * gridToMatrix(grid);\n * //= [\n * [ 1, 13, 10, 9, 10, 13, 18],\n * [34, 8, 5, 4, 5, 8, 13],\n * [10, 5, 2, 1, 2, 5, 4],\n * [ 0, 4, 56, 19, 1, 4, 9],\n * [10, 5, 2, 1, 2, 5, 10],\n * [57, 8, 5, 4, 5, 0, 57],\n * [ 3, 13, 10, 9, 5, 13, 18],\n * [18, 13, 10, 9, 78, 13, 18]\n * ]\n */\nfunction gridToMatrix(grid, options) {\n // Optional parameters\n options = options || {};\n if (!isObject(options)) throw new Error(\"options is invalid\");\n var zProperty = options.zProperty || \"elevation\";\n var flip = options.flip;\n var flags = options.flags;\n\n // validation\n collectionOf(grid, \"Point\", \"input must contain Points\");\n\n var pointsMatrix = sortPointsByLatLng(grid, flip);\n\n var matrix = [];\n // create property matrix from sorted points\n // looping order matters here\n for (var r = 0; r < pointsMatrix.length; r++) {\n var pointRow = pointsMatrix[r];\n var row = [];\n for (var c = 0; c < pointRow.length; c++) {\n var point = pointRow[c];\n // Check if zProperty exist\n if (point.properties[zProperty]) row.push(point.properties[zProperty]);\n else row.push(0);\n // add flags\n if (flags === true) point.properties.matrixPosition = [r, c];\n }\n matrix.push(row);\n }\n\n return matrix;\n}\n\n/**\n * Sorts points by latitude and longitude, creating a 2-dimensional array of points\n *\n * @private\n * @param {FeatureCollection<Point>} points GeoJSON Point features\n * @param {boolean} [flip=false] returns the matrix upside-down\n * @returns {Array<Array<Point>>} points ordered by latitude and longitude\n */\nfunction sortPointsByLatLng(points, flip) {\n var pointsByLatitude = {};\n\n // divide points by rows with the same latitude\n featureEach(points, function (point) {\n var lat = getCoords(point)[1];\n if (!pointsByLatitude[lat]) pointsByLatitude[lat] = [];\n pointsByLatitude[lat].push(point);\n });\n\n // sort points (with the same latitude) by longitude\n var orderedRowsByLatitude = Object.keys(pointsByLatitude).map(function (lat) {\n var row = pointsByLatitude[lat];\n var rowOrderedByLongitude = row.sort(function (a, b) {\n return getCoords(a)[0] - getCoords(b)[0];\n });\n return rowOrderedByLongitude;\n });\n\n // sort rows (of points with the same latitude) by latitude\n var pointMatrix = orderedRowsByLatitude.sort(function (a, b) {\n if (flip) return getCoords(a[0])[1] - getCoords(b[0])[1];\n else return getCoords(b[0])[1] - getCoords(a[0])[1];\n });\n\n return pointMatrix;\n}\n\nexport { gridToMatrix };\nexport default gridToMatrix;\n"]}
1
+ {"version":3,"sources":["/home/runner/work/turf/turf/packages/turf-isobands/dist/cjs/index.cjs","../../index.ts","../../lib/grid-to-matrix.js"],"names":["isObject","collectionOf"],"mappings":"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","file":"/home/runner/work/turf/turf/packages/turf-isobands/dist/cjs/index.cjs","sourcesContent":[null,"import { bbox } from \"@turf/bbox\";\nimport { area } from \"@turf/area\";\nimport { booleanPointInPolygon } from \"@turf/boolean-point-in-polygon\";\nimport { explode } from \"@turf/explode\";\nimport { collectionOf } from \"@turf/invariant\";\nimport {\n polygon,\n multiPolygon,\n featureCollection,\n isObject,\n} from \"@turf/helpers\";\n\nimport {\n FeatureCollection,\n Point,\n GeoJsonProperties,\n MultiPolygon,\n Position,\n Polygon,\n Feature,\n} from \"geojson\";\n\nimport { gridToMatrix } from \"./lib/grid-to-matrix.js\";\nimport { isoBands } from \"marchingsquares\";\n\ntype GroupRingProps = { [prop: string]: string };\ntype GroupedRings =\n | {\n groupedRings: Position[][][];\n }\n | GroupRingProps;\n\n/**\n * Takes a square or rectangular grid {@link FeatureCollection} of {@link Point} features with z-values and an array of\n * value breaks and generates filled contour isobands.\n *\n * @function\n * @param {FeatureCollection<Point>} pointGrid input points - must be square or rectangular\n * @param {Array<number>} breaks where to draw contours\n * @param {Object} [options={}] options on output\n * @param {string} [options.zProperty='elevation'] the property name in `points` from which z-values will be pulled\n * @param {Object} [options.commonProperties={}] GeoJSON properties passed to ALL isobands\n * @param {Array<Object>} [options.breaksProperties=[]] GeoJSON properties passed, in order, to the correspondent isoband (order defined by breaks)\n * @returns {FeatureCollection<MultiPolygon>} a FeatureCollection of {@link MultiPolygon} features representing isobands\n */\nfunction isobands(\n pointGrid: FeatureCollection<Point>,\n breaks: number[],\n options?: {\n zProperty?: string;\n commonProperties?: GeoJsonProperties;\n breaksProperties?: GeoJsonProperties[];\n }\n): FeatureCollection<MultiPolygon> {\n // Optional parameters\n options = options || {};\n if (!isObject(options)) throw new Error(\"options is invalid\");\n const zProperty = options.zProperty || \"elevation\";\n const commonProperties = options.commonProperties || {};\n const breaksProperties = options.breaksProperties || [];\n\n // Validation\n collectionOf(pointGrid, \"Point\", \"Input must contain Points\");\n if (!breaks) throw new Error(\"breaks is required\");\n if (!Array.isArray(breaks)) throw new Error(\"breaks is not an Array\");\n if (!isObject(commonProperties))\n throw new Error(\"commonProperties is not an Object\");\n if (!Array.isArray(breaksProperties))\n throw new Error(\"breaksProperties is not an Array\");\n\n // Isoband methods\n const matrix = gridToMatrix(pointGrid, { zProperty: zProperty, flip: true });\n let contours = createContourLines(matrix, breaks, zProperty);\n contours = rescaleContours(contours, matrix, pointGrid);\n\n const multipolygons = contours.map((contour, index) => {\n if (breaksProperties[index] && !isObject(breaksProperties[index])) {\n throw new Error(\"Each mappedProperty is required to be an Object\");\n }\n // collect all properties\n const contourProperties = {\n ...commonProperties,\n ...breaksProperties[index],\n };\n\n contourProperties[zProperty] = (contour as GroupRingProps)[zProperty];\n\n const multiP = multiPolygon(\n contour.groupedRings as Position[][][],\n contourProperties\n );\n return multiP;\n });\n\n return featureCollection(multipolygons);\n}\n\n/**\n * Creates the contours lines (featuresCollection of polygon features) from the 2D data grid\n *\n * Marchingsquares process the grid data as a 3D representation of a function on a 2D plane, therefore it\n * assumes the points (x-y coordinates) are one 'unit' distance. The result of the IsoBands function needs to be\n * rescaled, with turfjs, to the original area and proportions on the map\n *\n * @private\n * @param {Array<Array<number>>} matrix Grid Data\n * @param {Array<number>} breaks Breaks\n * @param {string} [property='elevation'] Property\n * @returns {Array<any>} contours\n */\nfunction createContourLines(\n matrix: number[][],\n breaks: number[],\n property: string\n): GroupedRings[] {\n const contours: GroupedRings[] = [];\n for (let i = 1; i < breaks.length; i++) {\n const lowerBand = +breaks[i - 1]; // make sure the breaks value is a number\n const upperBand = +breaks[i];\n\n const isobandsCoords = isoBands(matrix, lowerBand, upperBand - lowerBand);\n // as per GeoJson rules for creating a Polygon, make sure the first element\n // in the array of LinearRings represents the exterior ring (i.e. biggest area),\n // and any subsequent elements represent interior rings (i.e. smaller area);\n // this avoids rendering issues of the MultiPolygons on the map\n const nestedRings = orderByArea(isobandsCoords);\n const groupedRings = groupNestedRings(nestedRings);\n\n contours.push({\n groupedRings: groupedRings as Position[][][],\n [property]: lowerBand + \"-\" + upperBand,\n });\n }\n return contours;\n}\n\n/**\n * Transform isobands of 2D grid to polygons for the map\n *\n * @private\n * @param {Array<any>} contours Contours\n * @param {Array<Array<number>>} matrix Grid Data\n * @param {Object} points Points by Latitude\n * @returns {Array<any>} contours\n */\nfunction rescaleContours(\n contours: GroupedRings[],\n matrix: number[][],\n points: FeatureCollection<Point>\n): GroupedRings[] {\n // get dimensions (on the map) of the original grid\n const gridBbox = bbox(points); // [ minX, minY, maxX, maxY ]\n const originalWidth = gridBbox[2] - gridBbox[0];\n const originalHeigth = gridBbox[3] - gridBbox[1];\n\n // get origin, which is the first point of the last row on the rectangular data on the map\n const x0 = gridBbox[0];\n const y0 = gridBbox[1];\n // get number of cells per side\n const matrixWidth = matrix[0].length - 1;\n const matrixHeight = matrix.length - 1;\n // calculate the scaling factor between matrix and rectangular grid on the map\n const scaleX = originalWidth / matrixWidth;\n const scaleY = originalHeigth / matrixHeight;\n\n // resize and shift each point/line of the isobands\n return contours.map(function (contour) {\n contour.groupedRings = (contour.groupedRings as Position[][][]).map(\n function (lineRingSet) {\n return lineRingSet.map(function (lineRing) {\n return lineRing.map((point: Position) => [\n point[0] * scaleX + x0,\n point[1] * scaleY + y0,\n ]);\n });\n }\n );\n\n return contour;\n });\n}\n\n/* utility functions */\n\n/**\n * Returns an array of coordinates (of LinearRings) in descending order by area\n *\n * @private\n * @param {Array<LineString>} ringsCoords array of closed LineString\n * @returns {Array} array of the input LineString ordered by area\n */\nfunction orderByArea(ringsCoords: Position[][]): Position[][] {\n const ringsWithArea = ringsCoords.map(function (coords) {\n // associate each lineRing with its area\n return { ring: coords, area: area(polygon([coords])) };\n });\n ringsWithArea.sort(function (a, b) {\n // bigger --> smaller\n return b.area - a.area;\n });\n // create a new array of linearRings coordinates ordered by their area\n return ringsWithArea.map(function (x) {\n return x.ring;\n });\n}\n\n/**\n * Returns an array of arrays of coordinates, each representing\n * a set of (coordinates of) nested LinearRings,\n * i.e. the first ring contains all the others\n *\n * @private\n * @param {Array} orderedLinearRings array of coordinates (of LinearRings) in descending order by area\n * @returns {Array<Array>} Array of coordinates of nested LinearRings\n */\nfunction groupNestedRings(orderedLinearRings: Position[][]): Position[][][] {\n // create a list of the (coordinates of) LinearRings\n const lrList = orderedLinearRings.map((lr) => {\n return { lrCoordinates: lr, grouped: false };\n });\n const groupedLinearRingsCoords: Position[][][] = [];\n\n while (!allGrouped(lrList)) {\n for (let i = 0; i < lrList.length; i++) {\n if (!lrList[i].grouped) {\n // create new group starting with the larger not already grouped ring\n const group: Position[][] = [];\n group.push(lrList[i].lrCoordinates);\n lrList[i].grouped = true;\n const outerMostPoly = polygon([lrList[i].lrCoordinates]);\n // group all the rings contained by the outermost ring\n for (let j = i + 1; j < lrList.length; j++) {\n if (!lrList[j].grouped) {\n const lrPoly = polygon([lrList[j].lrCoordinates]);\n if (isInside(lrPoly, outerMostPoly)) {\n group.push(lrList[j].lrCoordinates);\n lrList[j].grouped = true;\n }\n }\n }\n // insert the new group\n groupedLinearRingsCoords.push(group);\n }\n }\n }\n return groupedLinearRingsCoords;\n}\n\n/**\n * @private\n * @param {Polygon} testPolygon polygon of interest\n * @param {Polygon} targetPolygon polygon you want to compare with\n * @returns {boolean} true if test-Polygon is inside target-Polygon\n */\nfunction isInside(\n testPolygon: Feature<Polygon>,\n targetPolygon: Feature<Polygon>\n): boolean {\n const points = explode(testPolygon);\n for (let i = 0; i < points.features.length; i++) {\n if (!booleanPointInPolygon(points.features[i], targetPolygon)) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * @private\n * @param {Array<Object>} list list of objects which might contain the 'group' attribute\n * @returns {boolean} true if all the objects in the list are marked as grouped\n */\nfunction allGrouped(\n list: { grouped: boolean; lrCoordinates: Position[] }[]\n): boolean {\n for (let i = 0; i < list.length; i++) {\n if (list[i].grouped === false) {\n return false;\n }\n }\n return true;\n}\n\nexport { isobands };\nexport default isobands;\n","import { getCoords, collectionOf } from \"@turf/invariant\";\nimport { featureEach } from \"@turf/meta\";\nimport { isObject } from \"@turf/helpers\";\n\n/**\n * Takes a {@link Point} grid and returns a correspondent matrix {Array<Array<number>>}\n * of the 'property' values\n *\n * @name gridToMatrix\n * @param {FeatureCollection<Point>} grid of points\n * @param {Object} [options={}] Optional parameters\n * @param {string} [options.zProperty='elevation'] the property name in `points` from which z-values will be pulled\n * @param {boolean} [options.flip=false] returns the matrix upside-down\n * @param {boolean} [options.flags=false] flags, adding a `matrixPosition` array field ([row, column]) to its properties,\n * the grid points with coordinates on the matrix\n * @returns {Array<Array<number>>} matrix of property values\n * @example\n * var extent = [-70.823364, -33.553984, -70.473175, -33.302986];\n * var cellSize = 3;\n * var grid = turf.pointGrid(extent, cellSize);\n * // add a random property to each point between 0 and 60\n * for (var i = 0; i < grid.features.length; i++) {\n * grid.features[i].properties.elevation = (Math.random() * 60);\n * }\n * gridToMatrix(grid);\n * //= [\n * [ 1, 13, 10, 9, 10, 13, 18],\n * [34, 8, 5, 4, 5, 8, 13],\n * [10, 5, 2, 1, 2, 5, 4],\n * [ 0, 4, 56, 19, 1, 4, 9],\n * [10, 5, 2, 1, 2, 5, 10],\n * [57, 8, 5, 4, 5, 0, 57],\n * [ 3, 13, 10, 9, 5, 13, 18],\n * [18, 13, 10, 9, 78, 13, 18]\n * ]\n */\nfunction gridToMatrix(grid, options) {\n // Optional parameters\n options = options || {};\n if (!isObject(options)) throw new Error(\"options is invalid\");\n var zProperty = options.zProperty || \"elevation\";\n var flip = options.flip;\n var flags = options.flags;\n\n // validation\n collectionOf(grid, \"Point\", \"input must contain Points\");\n\n var pointsMatrix = sortPointsByLatLng(grid, flip);\n\n var matrix = [];\n // create property matrix from sorted points\n // looping order matters here\n for (var r = 0; r < pointsMatrix.length; r++) {\n var pointRow = pointsMatrix[r];\n var row = [];\n for (var c = 0; c < pointRow.length; c++) {\n var point = pointRow[c];\n // Check if zProperty exist\n if (point.properties[zProperty]) row.push(point.properties[zProperty]);\n else row.push(0);\n // add flags\n if (flags === true) point.properties.matrixPosition = [r, c];\n }\n matrix.push(row);\n }\n\n return matrix;\n}\n\n/**\n * Sorts points by latitude and longitude, creating a 2-dimensional array of points\n *\n * @private\n * @param {FeatureCollection<Point>} points GeoJSON Point features\n * @param {boolean} [flip=false] returns the matrix upside-down\n * @returns {Array<Array<Point>>} points ordered by latitude and longitude\n */\nfunction sortPointsByLatLng(points, flip) {\n var pointsByLatitude = {};\n\n // divide points by rows with the same latitude\n featureEach(points, function (point) {\n var lat = getCoords(point)[1];\n if (!pointsByLatitude[lat]) pointsByLatitude[lat] = [];\n pointsByLatitude[lat].push(point);\n });\n\n // sort points (with the same latitude) by longitude\n var orderedRowsByLatitude = Object.keys(pointsByLatitude).map(function (lat) {\n var row = pointsByLatitude[lat];\n var rowOrderedByLongitude = row.sort(function (a, b) {\n return getCoords(a)[0] - getCoords(b)[0];\n });\n return rowOrderedByLongitude;\n });\n\n // sort rows (of points with the same latitude) by latitude\n var pointMatrix = orderedRowsByLatitude.sort(function (a, b) {\n if (flip) return getCoords(a[0])[1] - getCoords(b[0])[1];\n else return getCoords(b[0])[1] - getCoords(a[0])[1];\n });\n\n return pointMatrix;\n}\n\nexport { gridToMatrix };\nexport default gridToMatrix;\n"]}
@@ -4,7 +4,7 @@ import { FeatureCollection, Point, GeoJsonProperties, MultiPolygon } from 'geojs
4
4
  * Takes a square or rectangular grid {@link FeatureCollection} of {@link Point} features with z-values and an array of
5
5
  * value breaks and generates filled contour isobands.
6
6
  *
7
- * @name isobands
7
+ * @function
8
8
  * @param {FeatureCollection<Point>} pointGrid input points - must be square or rectangular
9
9
  * @param {Array<number>} breaks where to draw contours
10
10
  * @param {Object} [options={}] options on output
@@ -4,7 +4,7 @@ import { FeatureCollection, Point, GeoJsonProperties, MultiPolygon } from 'geojs
4
4
  * Takes a square or rectangular grid {@link FeatureCollection} of {@link Point} features with z-values and an array of
5
5
  * value breaks and generates filled contour isobands.
6
6
  *
7
- * @name isobands
7
+ * @function
8
8
  * @param {FeatureCollection<Point>} pointGrid input points - must be square or rectangular
9
9
  * @param {Array<number>} breaks where to draw contours
10
10
  * @param {Object} [options={}] options on output
@@ -34,8 +34,7 @@ import { featureEach } from "@turf/meta";
34
34
  import { isObject } from "@turf/helpers";
35
35
  function gridToMatrix(grid, options) {
36
36
  options = options || {};
37
- if (!isObject(options))
38
- throw new Error("options is invalid");
37
+ if (!isObject(options)) throw new Error("options is invalid");
39
38
  var zProperty = options.zProperty || "elevation";
40
39
  var flip = options.flip;
41
40
  var flags = options.flags;
@@ -47,12 +46,9 @@ function gridToMatrix(grid, options) {
47
46
  var row = [];
48
47
  for (var c = 0; c < pointRow.length; c++) {
49
48
  var point = pointRow[c];
50
- if (point.properties[zProperty])
51
- row.push(point.properties[zProperty]);
52
- else
53
- row.push(0);
54
- if (flags === true)
55
- point.properties.matrixPosition = [r, c];
49
+ if (point.properties[zProperty]) row.push(point.properties[zProperty]);
50
+ else row.push(0);
51
+ if (flags === true) point.properties.matrixPosition = [r, c];
56
52
  }
57
53
  matrix.push(row);
58
54
  }
@@ -62,8 +58,7 @@ function sortPointsByLatLng(points, flip) {
62
58
  var pointsByLatitude = {};
63
59
  featureEach(points, function(point) {
64
60
  var lat = getCoords(point)[1];
65
- if (!pointsByLatitude[lat])
66
- pointsByLatitude[lat] = [];
61
+ if (!pointsByLatitude[lat]) pointsByLatitude[lat] = [];
67
62
  pointsByLatitude[lat].push(point);
68
63
  });
69
64
  var orderedRowsByLatitude = Object.keys(pointsByLatitude).map(function(lat) {
@@ -74,10 +69,8 @@ function sortPointsByLatLng(points, flip) {
74
69
  return rowOrderedByLongitude;
75
70
  });
76
71
  var pointMatrix = orderedRowsByLatitude.sort(function(a, b) {
77
- if (flip)
78
- return getCoords(a[0])[1] - getCoords(b[0])[1];
79
- else
80
- return getCoords(b[0])[1] - getCoords(a[0])[1];
72
+ if (flip) return getCoords(a[0])[1] - getCoords(b[0])[1];
73
+ else return getCoords(b[0])[1] - getCoords(a[0])[1];
81
74
  });
82
75
  return pointMatrix;
83
76
  }
@@ -86,16 +79,13 @@ function sortPointsByLatLng(points, flip) {
86
79
  import { isoBands } from "marchingsquares";
87
80
  function isobands(pointGrid, breaks, options) {
88
81
  options = options || {};
89
- if (!isObject2(options))
90
- throw new Error("options is invalid");
82
+ if (!isObject2(options)) throw new Error("options is invalid");
91
83
  const zProperty = options.zProperty || "elevation";
92
84
  const commonProperties = options.commonProperties || {};
93
85
  const breaksProperties = options.breaksProperties || [];
94
86
  collectionOf2(pointGrid, "Point", "Input must contain Points");
95
- if (!breaks)
96
- throw new Error("breaks is required");
97
- if (!Array.isArray(breaks))
98
- throw new Error("breaks is not an Array");
87
+ if (!breaks) throw new Error("breaks is required");
88
+ if (!Array.isArray(breaks)) throw new Error("breaks is not an Array");
99
89
  if (!isObject2(commonProperties))
100
90
  throw new Error("commonProperties is not an Object");
101
91
  if (!Array.isArray(breaksProperties))
@@ -1 +1 @@
1
- {"version":3,"sources":["../../index.ts","../../lib/grid-to-matrix.js"],"sourcesContent":["import { bbox } from \"@turf/bbox\";\nimport { area } from \"@turf/area\";\nimport { booleanPointInPolygon } from \"@turf/boolean-point-in-polygon\";\nimport { explode } from \"@turf/explode\";\nimport { collectionOf } from \"@turf/invariant\";\nimport {\n polygon,\n multiPolygon,\n featureCollection,\n isObject,\n} from \"@turf/helpers\";\n\nimport {\n FeatureCollection,\n Point,\n GeoJsonProperties,\n MultiPolygon,\n Position,\n Polygon,\n Feature,\n} from \"geojson\";\n\nimport { gridToMatrix } from \"./lib/grid-to-matrix.js\";\nimport { isoBands } from \"marchingsquares\";\n\ntype GroupRingProps = { [prop: string]: string };\ntype GroupedRings =\n | {\n groupedRings: Position[][][];\n }\n | GroupRingProps;\n\n/**\n * Takes a square or rectangular grid {@link FeatureCollection} of {@link Point} features with z-values and an array of\n * value breaks and generates filled contour isobands.\n *\n * @name isobands\n * @param {FeatureCollection<Point>} pointGrid input points - must be square or rectangular\n * @param {Array<number>} breaks where to draw contours\n * @param {Object} [options={}] options on output\n * @param {string} [options.zProperty='elevation'] the property name in `points` from which z-values will be pulled\n * @param {Object} [options.commonProperties={}] GeoJSON properties passed to ALL isobands\n * @param {Array<Object>} [options.breaksProperties=[]] GeoJSON properties passed, in order, to the correspondent isoband (order defined by breaks)\n * @returns {FeatureCollection<MultiPolygon>} a FeatureCollection of {@link MultiPolygon} features representing isobands\n */\nfunction isobands(\n pointGrid: FeatureCollection<Point>,\n breaks: number[],\n options?: {\n zProperty?: string;\n commonProperties?: GeoJsonProperties;\n breaksProperties?: GeoJsonProperties[];\n }\n): FeatureCollection<MultiPolygon> {\n // Optional parameters\n options = options || {};\n if (!isObject(options)) throw new Error(\"options is invalid\");\n const zProperty = options.zProperty || \"elevation\";\n const commonProperties = options.commonProperties || {};\n const breaksProperties = options.breaksProperties || [];\n\n // Validation\n collectionOf(pointGrid, \"Point\", \"Input must contain Points\");\n if (!breaks) throw new Error(\"breaks is required\");\n if (!Array.isArray(breaks)) throw new Error(\"breaks is not an Array\");\n if (!isObject(commonProperties))\n throw new Error(\"commonProperties is not an Object\");\n if (!Array.isArray(breaksProperties))\n throw new Error(\"breaksProperties is not an Array\");\n\n // Isoband methods\n const matrix = gridToMatrix(pointGrid, { zProperty: zProperty, flip: true });\n let contours = createContourLines(matrix, breaks, zProperty);\n contours = rescaleContours(contours, matrix, pointGrid);\n\n const multipolygons = contours.map((contour, index) => {\n if (breaksProperties[index] && !isObject(breaksProperties[index])) {\n throw new Error(\"Each mappedProperty is required to be an Object\");\n }\n // collect all properties\n const contourProperties = {\n ...commonProperties,\n ...breaksProperties[index],\n };\n\n contourProperties[zProperty] = (contour as GroupRingProps)[zProperty];\n\n const multiP = multiPolygon(\n contour.groupedRings as Position[][][],\n contourProperties\n );\n return multiP;\n });\n\n return featureCollection(multipolygons);\n}\n\n/**\n * Creates the contours lines (featuresCollection of polygon features) from the 2D data grid\n *\n * Marchingsquares process the grid data as a 3D representation of a function on a 2D plane, therefore it\n * assumes the points (x-y coordinates) are one 'unit' distance. The result of the IsoBands function needs to be\n * rescaled, with turfjs, to the original area and proportions on the map\n *\n * @private\n * @param {Array<Array<number>>} matrix Grid Data\n * @param {Array<number>} breaks Breaks\n * @param {string} [property='elevation'] Property\n * @returns {Array<any>} contours\n */\nfunction createContourLines(\n matrix: number[][],\n breaks: number[],\n property: string\n): GroupedRings[] {\n const contours: GroupedRings[] = [];\n for (let i = 1; i < breaks.length; i++) {\n const lowerBand = +breaks[i - 1]; // make sure the breaks value is a number\n const upperBand = +breaks[i];\n\n const isobandsCoords = isoBands(matrix, lowerBand, upperBand - lowerBand);\n // as per GeoJson rules for creating a Polygon, make sure the first element\n // in the array of LinearRings represents the exterior ring (i.e. biggest area),\n // and any subsequent elements represent interior rings (i.e. smaller area);\n // this avoids rendering issues of the MultiPolygons on the map\n const nestedRings = orderByArea(isobandsCoords);\n const groupedRings = groupNestedRings(nestedRings);\n\n contours.push({\n groupedRings: groupedRings as Position[][][],\n [property]: lowerBand + \"-\" + upperBand,\n });\n }\n return contours;\n}\n\n/**\n * Transform isobands of 2D grid to polygons for the map\n *\n * @private\n * @param {Array<any>} contours Contours\n * @param {Array<Array<number>>} matrix Grid Data\n * @param {Object} points Points by Latitude\n * @returns {Array<any>} contours\n */\nfunction rescaleContours(\n contours: GroupedRings[],\n matrix: number[][],\n points: FeatureCollection<Point>\n): GroupedRings[] {\n // get dimensions (on the map) of the original grid\n const gridBbox = bbox(points); // [ minX, minY, maxX, maxY ]\n const originalWidth = gridBbox[2] - gridBbox[0];\n const originalHeigth = gridBbox[3] - gridBbox[1];\n\n // get origin, which is the first point of the last row on the rectangular data on the map\n const x0 = gridBbox[0];\n const y0 = gridBbox[1];\n // get number of cells per side\n const matrixWidth = matrix[0].length - 1;\n const matrixHeight = matrix.length - 1;\n // calculate the scaling factor between matrix and rectangular grid on the map\n const scaleX = originalWidth / matrixWidth;\n const scaleY = originalHeigth / matrixHeight;\n\n // resize and shift each point/line of the isobands\n return contours.map(function (contour) {\n contour.groupedRings = (contour.groupedRings as Position[][][]).map(\n function (lineRingSet) {\n return lineRingSet.map(function (lineRing) {\n return lineRing.map((point: Position) => [\n point[0] * scaleX + x0,\n point[1] * scaleY + y0,\n ]);\n });\n }\n );\n\n return contour;\n });\n}\n\n/* utility functions */\n\n/**\n * Returns an array of coordinates (of LinearRings) in descending order by area\n *\n * @private\n * @param {Array<LineString>} ringsCoords array of closed LineString\n * @returns {Array} array of the input LineString ordered by area\n */\nfunction orderByArea(ringsCoords: Position[][]): Position[][] {\n const ringsWithArea = ringsCoords.map(function (coords) {\n // associate each lineRing with its area\n return { ring: coords, area: area(polygon([coords])) };\n });\n ringsWithArea.sort(function (a, b) {\n // bigger --> smaller\n return b.area - a.area;\n });\n // create a new array of linearRings coordinates ordered by their area\n return ringsWithArea.map(function (x) {\n return x.ring;\n });\n}\n\n/**\n * Returns an array of arrays of coordinates, each representing\n * a set of (coordinates of) nested LinearRings,\n * i.e. the first ring contains all the others\n *\n * @private\n * @param {Array} orderedLinearRings array of coordinates (of LinearRings) in descending order by area\n * @returns {Array<Array>} Array of coordinates of nested LinearRings\n */\nfunction groupNestedRings(orderedLinearRings: Position[][]): Position[][][] {\n // create a list of the (coordinates of) LinearRings\n const lrList = orderedLinearRings.map((lr) => {\n return { lrCoordinates: lr, grouped: false };\n });\n const groupedLinearRingsCoords: Position[][][] = [];\n\n while (!allGrouped(lrList)) {\n for (let i = 0; i < lrList.length; i++) {\n if (!lrList[i].grouped) {\n // create new group starting with the larger not already grouped ring\n const group: Position[][] = [];\n group.push(lrList[i].lrCoordinates);\n lrList[i].grouped = true;\n const outerMostPoly = polygon([lrList[i].lrCoordinates]);\n // group all the rings contained by the outermost ring\n for (let j = i + 1; j < lrList.length; j++) {\n if (!lrList[j].grouped) {\n const lrPoly = polygon([lrList[j].lrCoordinates]);\n if (isInside(lrPoly, outerMostPoly)) {\n group.push(lrList[j].lrCoordinates);\n lrList[j].grouped = true;\n }\n }\n }\n // insert the new group\n groupedLinearRingsCoords.push(group);\n }\n }\n }\n return groupedLinearRingsCoords;\n}\n\n/**\n * @private\n * @param {Polygon} testPolygon polygon of interest\n * @param {Polygon} targetPolygon polygon you want to compare with\n * @returns {boolean} true if test-Polygon is inside target-Polygon\n */\nfunction isInside(\n testPolygon: Feature<Polygon>,\n targetPolygon: Feature<Polygon>\n): boolean {\n const points = explode(testPolygon);\n for (let i = 0; i < points.features.length; i++) {\n if (!booleanPointInPolygon(points.features[i], targetPolygon)) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * @private\n * @param {Array<Object>} list list of objects which might contain the 'group' attribute\n * @returns {boolean} true if all the objects in the list are marked as grouped\n */\nfunction allGrouped(\n list: { grouped: boolean; lrCoordinates: Position[] }[]\n): boolean {\n for (let i = 0; i < list.length; i++) {\n if (list[i].grouped === false) {\n return false;\n }\n }\n return true;\n}\n\nexport { isobands };\nexport default isobands;\n","import { getCoords, collectionOf } from \"@turf/invariant\";\nimport { featureEach } from \"@turf/meta\";\nimport { isObject } from \"@turf/helpers\";\n\n/**\n * Takes a {@link Point} grid and returns a correspondent matrix {Array<Array<number>>}\n * of the 'property' values\n *\n * @name gridToMatrix\n * @param {FeatureCollection<Point>} grid of points\n * @param {Object} [options={}] Optional parameters\n * @param {string} [options.zProperty='elevation'] the property name in `points` from which z-values will be pulled\n * @param {boolean} [options.flip=false] returns the matrix upside-down\n * @param {boolean} [options.flags=false] flags, adding a `matrixPosition` array field ([row, column]) to its properties,\n * the grid points with coordinates on the matrix\n * @returns {Array<Array<number>>} matrix of property values\n * @example\n * var extent = [-70.823364, -33.553984, -70.473175, -33.302986];\n * var cellSize = 3;\n * var grid = turf.pointGrid(extent, cellSize);\n * // add a random property to each point between 0 and 60\n * for (var i = 0; i < grid.features.length; i++) {\n * grid.features[i].properties.elevation = (Math.random() * 60);\n * }\n * gridToMatrix(grid);\n * //= [\n * [ 1, 13, 10, 9, 10, 13, 18],\n * [34, 8, 5, 4, 5, 8, 13],\n * [10, 5, 2, 1, 2, 5, 4],\n * [ 0, 4, 56, 19, 1, 4, 9],\n * [10, 5, 2, 1, 2, 5, 10],\n * [57, 8, 5, 4, 5, 0, 57],\n * [ 3, 13, 10, 9, 5, 13, 18],\n * [18, 13, 10, 9, 78, 13, 18]\n * ]\n */\nfunction gridToMatrix(grid, options) {\n // Optional parameters\n options = options || {};\n if (!isObject(options)) throw new Error(\"options is invalid\");\n var zProperty = options.zProperty || \"elevation\";\n var flip = options.flip;\n var flags = options.flags;\n\n // validation\n collectionOf(grid, \"Point\", \"input must contain Points\");\n\n var pointsMatrix = sortPointsByLatLng(grid, flip);\n\n var matrix = [];\n // create property matrix from sorted points\n // looping order matters here\n for (var r = 0; r < pointsMatrix.length; r++) {\n var pointRow = pointsMatrix[r];\n var row = [];\n for (var c = 0; c < pointRow.length; c++) {\n var point = pointRow[c];\n // Check if zProperty exist\n if (point.properties[zProperty]) row.push(point.properties[zProperty]);\n else row.push(0);\n // add flags\n if (flags === true) point.properties.matrixPosition = [r, c];\n }\n matrix.push(row);\n }\n\n return matrix;\n}\n\n/**\n * Sorts points by latitude and longitude, creating a 2-dimensional array of points\n *\n * @private\n * @param {FeatureCollection<Point>} points GeoJSON Point features\n * @param {boolean} [flip=false] returns the matrix upside-down\n * @returns {Array<Array<Point>>} points ordered by latitude and longitude\n */\nfunction sortPointsByLatLng(points, flip) {\n var pointsByLatitude = {};\n\n // divide points by rows with the same latitude\n featureEach(points, function (point) {\n var lat = getCoords(point)[1];\n if (!pointsByLatitude[lat]) pointsByLatitude[lat] = [];\n pointsByLatitude[lat].push(point);\n });\n\n // sort points (with the same latitude) by longitude\n var orderedRowsByLatitude = Object.keys(pointsByLatitude).map(function (lat) {\n var row = pointsByLatitude[lat];\n var rowOrderedByLongitude = row.sort(function (a, b) {\n return getCoords(a)[0] - getCoords(b)[0];\n });\n return rowOrderedByLongitude;\n });\n\n // sort rows (of points with the same latitude) by latitude\n var pointMatrix = orderedRowsByLatitude.sort(function (a, b) {\n if (flip) return getCoords(a[0])[1] - getCoords(b[0])[1];\n else return getCoords(b[0])[1] - getCoords(a[0])[1];\n });\n\n return pointMatrix;\n}\n\nexport { gridToMatrix };\nexport default gridToMatrix;\n"],"mappings":"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","names":["collectionOf","isObject","isObject","collectionOf"]}
1
+ {"version":3,"sources":["../../index.ts","../../lib/grid-to-matrix.js"],"sourcesContent":["import { bbox } from \"@turf/bbox\";\nimport { area } from \"@turf/area\";\nimport { booleanPointInPolygon } from \"@turf/boolean-point-in-polygon\";\nimport { explode } from \"@turf/explode\";\nimport { collectionOf } from \"@turf/invariant\";\nimport {\n polygon,\n multiPolygon,\n featureCollection,\n isObject,\n} from \"@turf/helpers\";\n\nimport {\n FeatureCollection,\n Point,\n GeoJsonProperties,\n MultiPolygon,\n Position,\n Polygon,\n Feature,\n} from \"geojson\";\n\nimport { gridToMatrix } from \"./lib/grid-to-matrix.js\";\nimport { isoBands } from \"marchingsquares\";\n\ntype GroupRingProps = { [prop: string]: string };\ntype GroupedRings =\n | {\n groupedRings: Position[][][];\n }\n | GroupRingProps;\n\n/**\n * Takes a square or rectangular grid {@link FeatureCollection} of {@link Point} features with z-values and an array of\n * value breaks and generates filled contour isobands.\n *\n * @function\n * @param {FeatureCollection<Point>} pointGrid input points - must be square or rectangular\n * @param {Array<number>} breaks where to draw contours\n * @param {Object} [options={}] options on output\n * @param {string} [options.zProperty='elevation'] the property name in `points` from which z-values will be pulled\n * @param {Object} [options.commonProperties={}] GeoJSON properties passed to ALL isobands\n * @param {Array<Object>} [options.breaksProperties=[]] GeoJSON properties passed, in order, to the correspondent isoband (order defined by breaks)\n * @returns {FeatureCollection<MultiPolygon>} a FeatureCollection of {@link MultiPolygon} features representing isobands\n */\nfunction isobands(\n pointGrid: FeatureCollection<Point>,\n breaks: number[],\n options?: {\n zProperty?: string;\n commonProperties?: GeoJsonProperties;\n breaksProperties?: GeoJsonProperties[];\n }\n): FeatureCollection<MultiPolygon> {\n // Optional parameters\n options = options || {};\n if (!isObject(options)) throw new Error(\"options is invalid\");\n const zProperty = options.zProperty || \"elevation\";\n const commonProperties = options.commonProperties || {};\n const breaksProperties = options.breaksProperties || [];\n\n // Validation\n collectionOf(pointGrid, \"Point\", \"Input must contain Points\");\n if (!breaks) throw new Error(\"breaks is required\");\n if (!Array.isArray(breaks)) throw new Error(\"breaks is not an Array\");\n if (!isObject(commonProperties))\n throw new Error(\"commonProperties is not an Object\");\n if (!Array.isArray(breaksProperties))\n throw new Error(\"breaksProperties is not an Array\");\n\n // Isoband methods\n const matrix = gridToMatrix(pointGrid, { zProperty: zProperty, flip: true });\n let contours = createContourLines(matrix, breaks, zProperty);\n contours = rescaleContours(contours, matrix, pointGrid);\n\n const multipolygons = contours.map((contour, index) => {\n if (breaksProperties[index] && !isObject(breaksProperties[index])) {\n throw new Error(\"Each mappedProperty is required to be an Object\");\n }\n // collect all properties\n const contourProperties = {\n ...commonProperties,\n ...breaksProperties[index],\n };\n\n contourProperties[zProperty] = (contour as GroupRingProps)[zProperty];\n\n const multiP = multiPolygon(\n contour.groupedRings as Position[][][],\n contourProperties\n );\n return multiP;\n });\n\n return featureCollection(multipolygons);\n}\n\n/**\n * Creates the contours lines (featuresCollection of polygon features) from the 2D data grid\n *\n * Marchingsquares process the grid data as a 3D representation of a function on a 2D plane, therefore it\n * assumes the points (x-y coordinates) are one 'unit' distance. The result of the IsoBands function needs to be\n * rescaled, with turfjs, to the original area and proportions on the map\n *\n * @private\n * @param {Array<Array<number>>} matrix Grid Data\n * @param {Array<number>} breaks Breaks\n * @param {string} [property='elevation'] Property\n * @returns {Array<any>} contours\n */\nfunction createContourLines(\n matrix: number[][],\n breaks: number[],\n property: string\n): GroupedRings[] {\n const contours: GroupedRings[] = [];\n for (let i = 1; i < breaks.length; i++) {\n const lowerBand = +breaks[i - 1]; // make sure the breaks value is a number\n const upperBand = +breaks[i];\n\n const isobandsCoords = isoBands(matrix, lowerBand, upperBand - lowerBand);\n // as per GeoJson rules for creating a Polygon, make sure the first element\n // in the array of LinearRings represents the exterior ring (i.e. biggest area),\n // and any subsequent elements represent interior rings (i.e. smaller area);\n // this avoids rendering issues of the MultiPolygons on the map\n const nestedRings = orderByArea(isobandsCoords);\n const groupedRings = groupNestedRings(nestedRings);\n\n contours.push({\n groupedRings: groupedRings as Position[][][],\n [property]: lowerBand + \"-\" + upperBand,\n });\n }\n return contours;\n}\n\n/**\n * Transform isobands of 2D grid to polygons for the map\n *\n * @private\n * @param {Array<any>} contours Contours\n * @param {Array<Array<number>>} matrix Grid Data\n * @param {Object} points Points by Latitude\n * @returns {Array<any>} contours\n */\nfunction rescaleContours(\n contours: GroupedRings[],\n matrix: number[][],\n points: FeatureCollection<Point>\n): GroupedRings[] {\n // get dimensions (on the map) of the original grid\n const gridBbox = bbox(points); // [ minX, minY, maxX, maxY ]\n const originalWidth = gridBbox[2] - gridBbox[0];\n const originalHeigth = gridBbox[3] - gridBbox[1];\n\n // get origin, which is the first point of the last row on the rectangular data on the map\n const x0 = gridBbox[0];\n const y0 = gridBbox[1];\n // get number of cells per side\n const matrixWidth = matrix[0].length - 1;\n const matrixHeight = matrix.length - 1;\n // calculate the scaling factor between matrix and rectangular grid on the map\n const scaleX = originalWidth / matrixWidth;\n const scaleY = originalHeigth / matrixHeight;\n\n // resize and shift each point/line of the isobands\n return contours.map(function (contour) {\n contour.groupedRings = (contour.groupedRings as Position[][][]).map(\n function (lineRingSet) {\n return lineRingSet.map(function (lineRing) {\n return lineRing.map((point: Position) => [\n point[0] * scaleX + x0,\n point[1] * scaleY + y0,\n ]);\n });\n }\n );\n\n return contour;\n });\n}\n\n/* utility functions */\n\n/**\n * Returns an array of coordinates (of LinearRings) in descending order by area\n *\n * @private\n * @param {Array<LineString>} ringsCoords array of closed LineString\n * @returns {Array} array of the input LineString ordered by area\n */\nfunction orderByArea(ringsCoords: Position[][]): Position[][] {\n const ringsWithArea = ringsCoords.map(function (coords) {\n // associate each lineRing with its area\n return { ring: coords, area: area(polygon([coords])) };\n });\n ringsWithArea.sort(function (a, b) {\n // bigger --> smaller\n return b.area - a.area;\n });\n // create a new array of linearRings coordinates ordered by their area\n return ringsWithArea.map(function (x) {\n return x.ring;\n });\n}\n\n/**\n * Returns an array of arrays of coordinates, each representing\n * a set of (coordinates of) nested LinearRings,\n * i.e. the first ring contains all the others\n *\n * @private\n * @param {Array} orderedLinearRings array of coordinates (of LinearRings) in descending order by area\n * @returns {Array<Array>} Array of coordinates of nested LinearRings\n */\nfunction groupNestedRings(orderedLinearRings: Position[][]): Position[][][] {\n // create a list of the (coordinates of) LinearRings\n const lrList = orderedLinearRings.map((lr) => {\n return { lrCoordinates: lr, grouped: false };\n });\n const groupedLinearRingsCoords: Position[][][] = [];\n\n while (!allGrouped(lrList)) {\n for (let i = 0; i < lrList.length; i++) {\n if (!lrList[i].grouped) {\n // create new group starting with the larger not already grouped ring\n const group: Position[][] = [];\n group.push(lrList[i].lrCoordinates);\n lrList[i].grouped = true;\n const outerMostPoly = polygon([lrList[i].lrCoordinates]);\n // group all the rings contained by the outermost ring\n for (let j = i + 1; j < lrList.length; j++) {\n if (!lrList[j].grouped) {\n const lrPoly = polygon([lrList[j].lrCoordinates]);\n if (isInside(lrPoly, outerMostPoly)) {\n group.push(lrList[j].lrCoordinates);\n lrList[j].grouped = true;\n }\n }\n }\n // insert the new group\n groupedLinearRingsCoords.push(group);\n }\n }\n }\n return groupedLinearRingsCoords;\n}\n\n/**\n * @private\n * @param {Polygon} testPolygon polygon of interest\n * @param {Polygon} targetPolygon polygon you want to compare with\n * @returns {boolean} true if test-Polygon is inside target-Polygon\n */\nfunction isInside(\n testPolygon: Feature<Polygon>,\n targetPolygon: Feature<Polygon>\n): boolean {\n const points = explode(testPolygon);\n for (let i = 0; i < points.features.length; i++) {\n if (!booleanPointInPolygon(points.features[i], targetPolygon)) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * @private\n * @param {Array<Object>} list list of objects which might contain the 'group' attribute\n * @returns {boolean} true if all the objects in the list are marked as grouped\n */\nfunction allGrouped(\n list: { grouped: boolean; lrCoordinates: Position[] }[]\n): boolean {\n for (let i = 0; i < list.length; i++) {\n if (list[i].grouped === false) {\n return false;\n }\n }\n return true;\n}\n\nexport { isobands };\nexport default isobands;\n","import { getCoords, collectionOf } from \"@turf/invariant\";\nimport { featureEach } from \"@turf/meta\";\nimport { isObject } from \"@turf/helpers\";\n\n/**\n * Takes a {@link Point} grid and returns a correspondent matrix {Array<Array<number>>}\n * of the 'property' values\n *\n * @name gridToMatrix\n * @param {FeatureCollection<Point>} grid of points\n * @param {Object} [options={}] Optional parameters\n * @param {string} [options.zProperty='elevation'] the property name in `points` from which z-values will be pulled\n * @param {boolean} [options.flip=false] returns the matrix upside-down\n * @param {boolean} [options.flags=false] flags, adding a `matrixPosition` array field ([row, column]) to its properties,\n * the grid points with coordinates on the matrix\n * @returns {Array<Array<number>>} matrix of property values\n * @example\n * var extent = [-70.823364, -33.553984, -70.473175, -33.302986];\n * var cellSize = 3;\n * var grid = turf.pointGrid(extent, cellSize);\n * // add a random property to each point between 0 and 60\n * for (var i = 0; i < grid.features.length; i++) {\n * grid.features[i].properties.elevation = (Math.random() * 60);\n * }\n * gridToMatrix(grid);\n * //= [\n * [ 1, 13, 10, 9, 10, 13, 18],\n * [34, 8, 5, 4, 5, 8, 13],\n * [10, 5, 2, 1, 2, 5, 4],\n * [ 0, 4, 56, 19, 1, 4, 9],\n * [10, 5, 2, 1, 2, 5, 10],\n * [57, 8, 5, 4, 5, 0, 57],\n * [ 3, 13, 10, 9, 5, 13, 18],\n * [18, 13, 10, 9, 78, 13, 18]\n * ]\n */\nfunction gridToMatrix(grid, options) {\n // Optional parameters\n options = options || {};\n if (!isObject(options)) throw new Error(\"options is invalid\");\n var zProperty = options.zProperty || \"elevation\";\n var flip = options.flip;\n var flags = options.flags;\n\n // validation\n collectionOf(grid, \"Point\", \"input must contain Points\");\n\n var pointsMatrix = sortPointsByLatLng(grid, flip);\n\n var matrix = [];\n // create property matrix from sorted points\n // looping order matters here\n for (var r = 0; r < pointsMatrix.length; r++) {\n var pointRow = pointsMatrix[r];\n var row = [];\n for (var c = 0; c < pointRow.length; c++) {\n var point = pointRow[c];\n // Check if zProperty exist\n if (point.properties[zProperty]) row.push(point.properties[zProperty]);\n else row.push(0);\n // add flags\n if (flags === true) point.properties.matrixPosition = [r, c];\n }\n matrix.push(row);\n }\n\n return matrix;\n}\n\n/**\n * Sorts points by latitude and longitude, creating a 2-dimensional array of points\n *\n * @private\n * @param {FeatureCollection<Point>} points GeoJSON Point features\n * @param {boolean} [flip=false] returns the matrix upside-down\n * @returns {Array<Array<Point>>} points ordered by latitude and longitude\n */\nfunction sortPointsByLatLng(points, flip) {\n var pointsByLatitude = {};\n\n // divide points by rows with the same latitude\n featureEach(points, function (point) {\n var lat = getCoords(point)[1];\n if (!pointsByLatitude[lat]) pointsByLatitude[lat] = [];\n pointsByLatitude[lat].push(point);\n });\n\n // sort points (with the same latitude) by longitude\n var orderedRowsByLatitude = Object.keys(pointsByLatitude).map(function (lat) {\n var row = pointsByLatitude[lat];\n var rowOrderedByLongitude = row.sort(function (a, b) {\n return getCoords(a)[0] - getCoords(b)[0];\n });\n return rowOrderedByLongitude;\n });\n\n // sort rows (of points with the same latitude) by latitude\n var pointMatrix = orderedRowsByLatitude.sort(function (a, b) {\n if (flip) return getCoords(a[0])[1] - getCoords(b[0])[1];\n else return getCoords(b[0])[1] - getCoords(a[0])[1];\n });\n\n return pointMatrix;\n}\n\nexport { gridToMatrix };\nexport default gridToMatrix;\n"],"mappings":"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","names":["collectionOf","isObject","isObject","collectionOf"]}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@turf/isobands",
3
- "version": "7.1.0",
3
+ "version": "7.2.0",
4
4
  "description": "turf isobands module",
5
5
  "author": "Turf Authors",
6
6
  "contributors": [
@@ -57,33 +57,33 @@
57
57
  "test:tape": "tsx test.ts"
58
58
  },
59
59
  "devDependencies": {
60
- "@turf/envelope": "^7.1.0",
61
- "@turf/point-grid": "^7.1.0",
62
- "@turf/random": "^7.1.0",
63
- "@turf/rhumb-destination": "^7.1.0",
64
- "@turf/truncate": "^7.1.0",
60
+ "@turf/envelope": "^7.2.0",
61
+ "@turf/point-grid": "^7.2.0",
62
+ "@turf/random": "^7.2.0",
63
+ "@turf/rhumb-destination": "^7.2.0",
64
+ "@turf/truncate": "^7.2.0",
65
65
  "@types/benchmark": "^2.1.5",
66
- "@types/tape": "^4.2.32",
66
+ "@types/tape": "^4.13.4",
67
67
  "benchmark": "^2.1.4",
68
68
  "load-json-file": "^7.0.1",
69
69
  "npm-run-all": "^4.1.5",
70
- "tape": "^5.7.2",
71
- "tsup": "^8.0.1",
72
- "tsx": "^4.6.2",
73
- "typescript": "^5.2.2",
70
+ "tape": "^5.9.0",
71
+ "tsup": "^8.3.5",
72
+ "tsx": "^4.19.2",
73
+ "typescript": "^5.5.4",
74
74
  "write-json-file": "^5.0.0"
75
75
  },
76
76
  "dependencies": {
77
- "@turf/area": "^7.1.0",
78
- "@turf/bbox": "^7.1.0",
79
- "@turf/boolean-point-in-polygon": "^7.1.0",
80
- "@turf/explode": "^7.1.0",
81
- "@turf/helpers": "^7.1.0",
82
- "@turf/invariant": "^7.1.0",
83
- "@turf/meta": "^7.1.0",
77
+ "@turf/area": "^7.2.0",
78
+ "@turf/bbox": "^7.2.0",
79
+ "@turf/boolean-point-in-polygon": "^7.2.0",
80
+ "@turf/explode": "^7.2.0",
81
+ "@turf/helpers": "^7.2.0",
82
+ "@turf/invariant": "^7.2.0",
83
+ "@turf/meta": "^7.2.0",
84
84
  "@types/geojson": "^7946.0.10",
85
85
  "marchingsquares": "^1.3.3",
86
- "tslib": "^2.6.2"
86
+ "tslib": "^2.8.1"
87
87
  },
88
- "gitHead": "68915eeebc9278bb40dec3f1034499698a0561ef"
88
+ "gitHead": "7b0f0374c4668cd569f8904c71e2ae7d941be867"
89
89
  }
@@ -28,8 +28,7 @@ var _marchingsquares = require('marchingsquares');
28
28
 
29
29
  function gridToMatrix(grid, options) {
30
30
  options = options || {};
31
- if (!_helpers.isObject.call(void 0, options))
32
- throw new Error("options is invalid");
31
+ if (!_helpers.isObject.call(void 0, options)) throw new Error("options is invalid");
33
32
  var zProperty = options.zProperty || "elevation";
34
33
  var flip = options.flip;
35
34
  var flags = options.flags;
@@ -41,12 +40,9 @@ function gridToMatrix(grid, options) {
41
40
  var row = [];
42
41
  for (var c = 0; c < pointRow.length; c++) {
43
42
  var point = pointRow[c];
44
- if (point.properties[zProperty])
45
- row.push(point.properties[zProperty]);
46
- else
47
- row.push(0);
48
- if (flags === true)
49
- point.properties.matrixPosition = [r, c];
43
+ if (point.properties[zProperty]) row.push(point.properties[zProperty]);
44
+ else row.push(0);
45
+ if (flags === true) point.properties.matrixPosition = [r, c];
50
46
  }
51
47
  matrix.push(row);
52
48
  }
@@ -56,8 +52,7 @@ function sortPointsByLatLng(points, flip) {
56
52
  var pointsByLatitude = {};
57
53
  _meta.featureEach.call(void 0, points, function(point) {
58
54
  var lat = _invariant.getCoords.call(void 0, point)[1];
59
- if (!pointsByLatitude[lat])
60
- pointsByLatitude[lat] = [];
55
+ if (!pointsByLatitude[lat]) pointsByLatitude[lat] = [];
61
56
  pointsByLatitude[lat].push(point);
62
57
  });
63
58
  var orderedRowsByLatitude = Object.keys(pointsByLatitude).map(function(lat) {
@@ -68,10 +63,8 @@ function sortPointsByLatLng(points, flip) {
68
63
  return rowOrderedByLongitude;
69
64
  });
70
65
  var pointMatrix = orderedRowsByLatitude.sort(function(a, b) {
71
- if (flip)
72
- return _invariant.getCoords.call(void 0, a[0])[1] - _invariant.getCoords.call(void 0, b[0])[1];
73
- else
74
- return _invariant.getCoords.call(void 0, b[0])[1] - _invariant.getCoords.call(void 0, a[0])[1];
66
+ if (flip) return _invariant.getCoords.call(void 0, a[0])[1] - _invariant.getCoords.call(void 0, b[0])[1];
67
+ else return _invariant.getCoords.call(void 0, b[0])[1] - _invariant.getCoords.call(void 0, a[0])[1];
75
68
  });
76
69
  return pointMatrix;
77
70
  }
@@ -79,16 +72,13 @@ function sortPointsByLatLng(points, flip) {
79
72
  // index.ts
80
73
  function isolines(pointGrid, breaks, options) {
81
74
  options = options || {};
82
- if (!_helpers.isObject.call(void 0, options))
83
- throw new Error("options is invalid");
75
+ if (!_helpers.isObject.call(void 0, options)) throw new Error("options is invalid");
84
76
  const zProperty = options.zProperty || "elevation";
85
77
  const commonProperties = options.commonProperties || {};
86
78
  const breaksProperties = options.breaksProperties || [];
87
79
  _invariant.collectionOf.call(void 0, pointGrid, "Point", "Input must contain Points");
88
- if (!breaks)
89
- throw new Error("breaks is required");
90
- if (!Array.isArray(breaks))
91
- throw new Error("breaks must be an Array");
80
+ if (!breaks) throw new Error("breaks is required");
81
+ if (!Array.isArray(breaks)) throw new Error("breaks must be an Array");
92
82
  if (!_helpers.isObject.call(void 0, commonProperties))
93
83
  throw new Error("commonProperties must be an Object");
94
84
  if (!Array.isArray(breaksProperties))
@@ -1 +1 @@
1
- {"version":3,"sources":["../../index.ts","../../lib/grid-to-matrix.js"],"names":["collectionOf","isObject"],"mappings":"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","sourcesContent":["import { bbox } from \"@turf/bbox\";\nimport { coordEach } from \"@turf/meta\";\nimport { collectionOf } from \"@turf/invariant\";\nimport { multiLineString, featureCollection, isObject } from \"@turf/helpers\";\n// @ts-expect-error Legacy JS library with no types defined\nimport { isoContours } from \"marchingsquares\";\nimport { gridToMatrix } from \"./lib/grid-to-matrix.js\";\nimport {\n FeatureCollection,\n Point,\n MultiLineString,\n Feature,\n GeoJsonProperties,\n} from \"geojson\";\n\n/**\n * Takes a grid {@link FeatureCollection} of {@link Point} features with z-values and an array of\n * value breaks and generates [isolines](https://en.wikipedia.org/wiki/Contour_line).\n *\n * @name isolines\n * @param {FeatureCollection<Point>} pointGrid input points\n * @param {Array<number>} breaks values of `zProperty` where to draw isolines\n * @param {Object} [options={}] Optional parameters\n * @param {string} [options.zProperty='elevation'] the property name in `points` from which z-values will be pulled\n * @param {Object} [options.commonProperties={}] GeoJSON properties passed to ALL isolines\n * @param {Array<Object>} [options.breaksProperties=[]] GeoJSON properties passed, in order, to the correspondent isoline;\n * the breaks array will define the order in which the isolines are created\n * @returns {FeatureCollection<MultiLineString>} a FeatureCollection of {@link MultiLineString} features representing isolines\n * @example\n * // create a grid of points with random z-values in their properties\n * var extent = [0, 30, 20, 50];\n * var cellWidth = 100;\n * var pointGrid = turf.pointGrid(extent, cellWidth, {units: 'miles'});\n *\n * for (var i = 0; i < pointGrid.features.length; i++) {\n * pointGrid.features[i].properties.temperature = Math.random() * 10;\n * }\n * var breaks = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\n *\n * var lines = turf.isolines(pointGrid, breaks, {zProperty: 'temperature'});\n *\n * //addToMap\n * var addToMap = [lines];\n */\nfunction isolines(\n pointGrid: FeatureCollection<Point>,\n breaks: number[],\n options?: {\n zProperty?: string;\n commonProperties?: GeoJsonProperties;\n breaksProperties?: GeoJsonProperties[];\n }\n) {\n // Optional parameters\n options = options || {};\n if (!isObject(options)) throw new Error(\"options is invalid\");\n const zProperty = options.zProperty || \"elevation\";\n const commonProperties = options.commonProperties || {};\n const breaksProperties = options.breaksProperties || [];\n\n // Input validation\n collectionOf(pointGrid, \"Point\", \"Input must contain Points\");\n if (!breaks) throw new Error(\"breaks is required\");\n if (!Array.isArray(breaks)) throw new Error(\"breaks must be an Array\");\n if (!isObject(commonProperties))\n throw new Error(\"commonProperties must be an Object\");\n if (!Array.isArray(breaksProperties))\n throw new Error(\"breaksProperties must be an Array\");\n\n // Isoline methods\n const matrix = gridToMatrix(pointGrid, { zProperty: zProperty, flip: true });\n const createdIsoLines = createIsoLines(\n matrix,\n breaks,\n zProperty,\n commonProperties,\n breaksProperties\n );\n const scaledIsolines = rescaleIsolines(createdIsoLines, matrix, pointGrid);\n\n return featureCollection(scaledIsolines);\n}\n\n/**\n * Creates the isolines lines (featuresCollection of MultiLineString features) from the 2D data grid\n *\n * Marchingsquares process the grid data as a 3D representation of a function on a 2D plane, therefore it\n * assumes the points (x-y coordinates) are one 'unit' distance. The result of the isolines function needs to be\n * rescaled, with turfjs, to the original area and proportions on the map\n *\n * @private\n * @param {Array<Array<number>>} matrix Grid Data\n * @param {Array<number>} breaks BreakProps\n * @param {string} zProperty name of the z-values property\n * @param {Object} [commonProperties={}] GeoJSON properties passed to ALL isolines\n * @param {Object} [breaksProperties=[]] GeoJSON properties passed to the correspondent isoline\n * @returns {Array<MultiLineString>} isolines\n */\nfunction createIsoLines(\n matrix: number[][],\n breaks: number[],\n zProperty: string,\n commonProperties: GeoJsonProperties,\n breaksProperties: GeoJsonProperties[]\n): Feature<MultiLineString>[] {\n const results = [];\n for (let i = 0; i < breaks.length; i++) {\n const threshold = +breaks[i]; // make sure it's a number\n\n const properties = { ...commonProperties, ...breaksProperties[i] };\n properties[zProperty] = threshold;\n // Pass options to marchingsquares lib to reproduce historical turf\n // behaviour.\n const isoline = multiLineString(\n isoContours(matrix, threshold, { linearRing: false, noFrame: true }),\n properties\n );\n\n results.push(isoline);\n }\n return results;\n}\n\n/**\n * Translates and scales isolines\n *\n * @private\n * @param {Array<MultiLineString>} createdIsoLines to be rescaled\n * @param {Array<Array<number>>} matrix Grid Data\n * @param {Object} points Points by Latitude\n * @returns {Array<MultiLineString>} isolines\n */\nfunction rescaleIsolines(\n createdIsoLines: Feature<MultiLineString>[],\n matrix: number[][],\n points: FeatureCollection<Point>\n) {\n // get dimensions (on the map) of the original grid\n const gridBbox = bbox(points); // [ minX, minY, maxX, maxY ]\n const originalWidth = gridBbox[2] - gridBbox[0];\n const originalHeigth = gridBbox[3] - gridBbox[1];\n\n // get origin, which is the first point of the last row on the rectangular data on the map\n const x0 = gridBbox[0];\n const y0 = gridBbox[1];\n\n // get number of cells per side\n const matrixWidth = matrix[0].length - 1;\n const matrixHeight = matrix.length - 1;\n\n // calculate the scaling factor between matrix and rectangular grid on the map\n const scaleX = originalWidth / matrixWidth;\n const scaleY = originalHeigth / matrixHeight;\n\n const resize = (point: number[]) => {\n point[0] = point[0] * scaleX + x0;\n point[1] = point[1] * scaleY + y0;\n };\n\n // resize and shift each point/line of the createdIsoLines\n createdIsoLines.forEach((isoline) => {\n coordEach(isoline, resize);\n });\n return createdIsoLines;\n}\n\nexport { isolines };\nexport default isolines;\n","import { getCoords, collectionOf } from \"@turf/invariant\";\nimport { featureEach } from \"@turf/meta\";\nimport { isObject } from \"@turf/helpers\";\n\n/**\n * Takes a {@link Point} grid and returns a correspondent matrix {Array<Array<number>>}\n * of the 'property' values\n *\n * @name gridToMatrix\n * @param {FeatureCollection<Point>} grid of points\n * @param {Object} [options={}] Optional parameters\n * @param {string} [options.zProperty='elevation'] the property name in `points` from which z-values will be pulled\n * @param {boolean} [options.flip=false] returns the matrix upside-down\n * @param {boolean} [options.flags=false] flags, adding a `matrixPosition` array field ([row, column]) to its properties,\n * the grid points with coordinates on the matrix\n * @returns {Array<Array<number>>} matrix of property values\n * @example\n * var extent = [-70.823364, -33.553984, -70.473175, -33.302986];\n * var cellSize = 3;\n * var grid = turf.pointGrid(extent, cellSize);\n * // add a random property to each point between 0 and 60\n * for (var i = 0; i < grid.features.length; i++) {\n * grid.features[i].properties.elevation = (Math.random() * 60);\n * }\n * gridToMatrix(grid);\n * //= [\n * [ 1, 13, 10, 9, 10, 13, 18],\n * [34, 8, 5, 4, 5, 8, 13],\n * [10, 5, 2, 1, 2, 5, 4],\n * [ 0, 4, 56, 19, 1, 4, 9],\n * [10, 5, 2, 1, 2, 5, 10],\n * [57, 8, 5, 4, 5, 0, 57],\n * [ 3, 13, 10, 9, 5, 13, 18],\n * [18, 13, 10, 9, 78, 13, 18]\n * ]\n */\nfunction gridToMatrix(grid, options) {\n // Optional parameters\n options = options || {};\n if (!isObject(options)) throw new Error(\"options is invalid\");\n var zProperty = options.zProperty || \"elevation\";\n var flip = options.flip;\n var flags = options.flags;\n\n // validation\n collectionOf(grid, \"Point\", \"input must contain Points\");\n\n var pointsMatrix = sortPointsByLatLng(grid, flip);\n\n var matrix = [];\n // create property matrix from sorted points\n // looping order matters here\n for (var r = 0; r < pointsMatrix.length; r++) {\n var pointRow = pointsMatrix[r];\n var row = [];\n for (var c = 0; c < pointRow.length; c++) {\n var point = pointRow[c];\n // Check if zProperty exist\n if (point.properties[zProperty]) row.push(point.properties[zProperty]);\n else row.push(0);\n // add flags\n if (flags === true) point.properties.matrixPosition = [r, c];\n }\n matrix.push(row);\n }\n\n return matrix;\n}\n\n/**\n * Sorts points by latitude and longitude, creating a 2-dimensional array of points\n *\n * @private\n * @param {FeatureCollection<Point>} points GeoJSON Point features\n * @param {boolean} [flip=false] returns the matrix upside-down\n * @returns {Array<Array<Point>>} points ordered by latitude and longitude\n */\nfunction sortPointsByLatLng(points, flip) {\n var pointsByLatitude = {};\n\n // divide points by rows with the same latitude\n featureEach(points, function (point) {\n var lat = getCoords(point)[1];\n if (!pointsByLatitude[lat]) pointsByLatitude[lat] = [];\n pointsByLatitude[lat].push(point);\n });\n\n // sort points (with the same latitude) by longitude\n var orderedRowsByLatitude = Object.keys(pointsByLatitude).map(function (lat) {\n var row = pointsByLatitude[lat];\n var rowOrderedByLongitude = row.sort(function (a, b) {\n return getCoords(a)[0] - getCoords(b)[0];\n });\n return rowOrderedByLongitude;\n });\n\n // sort rows (of points with the same latitude) by latitude\n var pointMatrix = orderedRowsByLatitude.sort(function (a, b) {\n if (flip) return getCoords(a[0])[1] - getCoords(b[0])[1];\n else return getCoords(b[0])[1] - getCoords(a[0])[1];\n });\n\n return pointMatrix;\n}\n\nexport { gridToMatrix };\nexport default gridToMatrix;\n"]}
1
+ {"version":3,"sources":["/home/runner/work/turf/turf/packages/turf-isolines/dist/cjs/index.cjs","../../index.ts","../../lib/grid-to-matrix.js"],"names":["isObject","collectionOf"],"mappings":"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","file":"/home/runner/work/turf/turf/packages/turf-isolines/dist/cjs/index.cjs","sourcesContent":[null,"import { bbox } from \"@turf/bbox\";\nimport { coordEach } from \"@turf/meta\";\nimport { collectionOf } from \"@turf/invariant\";\nimport { multiLineString, featureCollection, isObject } from \"@turf/helpers\";\n// @ts-expect-error Legacy JS library with no types defined\nimport { isoContours } from \"marchingsquares\";\nimport { gridToMatrix } from \"./lib/grid-to-matrix.js\";\nimport {\n FeatureCollection,\n Point,\n MultiLineString,\n Feature,\n GeoJsonProperties,\n} from \"geojson\";\n\n/**\n * Takes a grid {@link FeatureCollection} of {@link Point} features with z-values and an array of\n * value breaks and generates [isolines](https://en.wikipedia.org/wiki/Contour_line).\n *\n * @function\n * @param {FeatureCollection<Point>} pointGrid input points\n * @param {Array<number>} breaks values of `zProperty` where to draw isolines\n * @param {Object} [options={}] Optional parameters\n * @param {string} [options.zProperty='elevation'] the property name in `points` from which z-values will be pulled\n * @param {Object} [options.commonProperties={}] GeoJSON properties passed to ALL isolines\n * @param {Array<Object>} [options.breaksProperties=[]] GeoJSON properties passed, in order, to the correspondent isoline;\n * the breaks array will define the order in which the isolines are created\n * @returns {FeatureCollection<MultiLineString>} a FeatureCollection of {@link MultiLineString} features representing isolines\n * @example\n * // create a grid of points with random z-values in their properties\n * var extent = [0, 30, 20, 50];\n * var cellWidth = 100;\n * var pointGrid = turf.pointGrid(extent, cellWidth, {units: 'miles'});\n *\n * for (var i = 0; i < pointGrid.features.length; i++) {\n * pointGrid.features[i].properties.temperature = Math.random() * 10;\n * }\n * var breaks = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\n *\n * var lines = turf.isolines(pointGrid, breaks, {zProperty: 'temperature'});\n *\n * //addToMap\n * var addToMap = [lines];\n */\nfunction isolines(\n pointGrid: FeatureCollection<Point>,\n breaks: number[],\n options?: {\n zProperty?: string;\n commonProperties?: GeoJsonProperties;\n breaksProperties?: GeoJsonProperties[];\n }\n) {\n // Optional parameters\n options = options || {};\n if (!isObject(options)) throw new Error(\"options is invalid\");\n const zProperty = options.zProperty || \"elevation\";\n const commonProperties = options.commonProperties || {};\n const breaksProperties = options.breaksProperties || [];\n\n // Input validation\n collectionOf(pointGrid, \"Point\", \"Input must contain Points\");\n if (!breaks) throw new Error(\"breaks is required\");\n if (!Array.isArray(breaks)) throw new Error(\"breaks must be an Array\");\n if (!isObject(commonProperties))\n throw new Error(\"commonProperties must be an Object\");\n if (!Array.isArray(breaksProperties))\n throw new Error(\"breaksProperties must be an Array\");\n\n // Isoline methods\n const matrix = gridToMatrix(pointGrid, { zProperty: zProperty, flip: true });\n const createdIsoLines = createIsoLines(\n matrix,\n breaks,\n zProperty,\n commonProperties,\n breaksProperties\n );\n const scaledIsolines = rescaleIsolines(createdIsoLines, matrix, pointGrid);\n\n return featureCollection(scaledIsolines);\n}\n\n/**\n * Creates the isolines lines (featuresCollection of MultiLineString features) from the 2D data grid\n *\n * Marchingsquares process the grid data as a 3D representation of a function on a 2D plane, therefore it\n * assumes the points (x-y coordinates) are one 'unit' distance. The result of the isolines function needs to be\n * rescaled, with turfjs, to the original area and proportions on the map\n *\n * @private\n * @param {Array<Array<number>>} matrix Grid Data\n * @param {Array<number>} breaks BreakProps\n * @param {string} zProperty name of the z-values property\n * @param {Object} [commonProperties={}] GeoJSON properties passed to ALL isolines\n * @param {Object} [breaksProperties=[]] GeoJSON properties passed to the correspondent isoline\n * @returns {Array<MultiLineString>} isolines\n */\nfunction createIsoLines(\n matrix: number[][],\n breaks: number[],\n zProperty: string,\n commonProperties: GeoJsonProperties,\n breaksProperties: GeoJsonProperties[]\n): Feature<MultiLineString>[] {\n const results = [];\n for (let i = 0; i < breaks.length; i++) {\n const threshold = +breaks[i]; // make sure it's a number\n\n const properties = { ...commonProperties, ...breaksProperties[i] };\n properties[zProperty] = threshold;\n // Pass options to marchingsquares lib to reproduce historical turf\n // behaviour.\n const isoline = multiLineString(\n isoContours(matrix, threshold, { linearRing: false, noFrame: true }),\n properties\n );\n\n results.push(isoline);\n }\n return results;\n}\n\n/**\n * Translates and scales isolines\n *\n * @private\n * @param {Array<MultiLineString>} createdIsoLines to be rescaled\n * @param {Array<Array<number>>} matrix Grid Data\n * @param {Object} points Points by Latitude\n * @returns {Array<MultiLineString>} isolines\n */\nfunction rescaleIsolines(\n createdIsoLines: Feature<MultiLineString>[],\n matrix: number[][],\n points: FeatureCollection<Point>\n) {\n // get dimensions (on the map) of the original grid\n const gridBbox = bbox(points); // [ minX, minY, maxX, maxY ]\n const originalWidth = gridBbox[2] - gridBbox[0];\n const originalHeigth = gridBbox[3] - gridBbox[1];\n\n // get origin, which is the first point of the last row on the rectangular data on the map\n const x0 = gridBbox[0];\n const y0 = gridBbox[1];\n\n // get number of cells per side\n const matrixWidth = matrix[0].length - 1;\n const matrixHeight = matrix.length - 1;\n\n // calculate the scaling factor between matrix and rectangular grid on the map\n const scaleX = originalWidth / matrixWidth;\n const scaleY = originalHeigth / matrixHeight;\n\n const resize = (point: number[]) => {\n point[0] = point[0] * scaleX + x0;\n point[1] = point[1] * scaleY + y0;\n };\n\n // resize and shift each point/line of the createdIsoLines\n createdIsoLines.forEach((isoline) => {\n coordEach(isoline, resize);\n });\n return createdIsoLines;\n}\n\nexport { isolines };\nexport default isolines;\n","import { getCoords, collectionOf } from \"@turf/invariant\";\nimport { featureEach } from \"@turf/meta\";\nimport { isObject } from \"@turf/helpers\";\n\n/**\n * Takes a {@link Point} grid and returns a correspondent matrix {Array<Array<number>>}\n * of the 'property' values\n *\n * @name gridToMatrix\n * @param {FeatureCollection<Point>} grid of points\n * @param {Object} [options={}] Optional parameters\n * @param {string} [options.zProperty='elevation'] the property name in `points` from which z-values will be pulled\n * @param {boolean} [options.flip=false] returns the matrix upside-down\n * @param {boolean} [options.flags=false] flags, adding a `matrixPosition` array field ([row, column]) to its properties,\n * the grid points with coordinates on the matrix\n * @returns {Array<Array<number>>} matrix of property values\n * @example\n * var extent = [-70.823364, -33.553984, -70.473175, -33.302986];\n * var cellSize = 3;\n * var grid = turf.pointGrid(extent, cellSize);\n * // add a random property to each point between 0 and 60\n * for (var i = 0; i < grid.features.length; i++) {\n * grid.features[i].properties.elevation = (Math.random() * 60);\n * }\n * gridToMatrix(grid);\n * //= [\n * [ 1, 13, 10, 9, 10, 13, 18],\n * [34, 8, 5, 4, 5, 8, 13],\n * [10, 5, 2, 1, 2, 5, 4],\n * [ 0, 4, 56, 19, 1, 4, 9],\n * [10, 5, 2, 1, 2, 5, 10],\n * [57, 8, 5, 4, 5, 0, 57],\n * [ 3, 13, 10, 9, 5, 13, 18],\n * [18, 13, 10, 9, 78, 13, 18]\n * ]\n */\nfunction gridToMatrix(grid, options) {\n // Optional parameters\n options = options || {};\n if (!isObject(options)) throw new Error(\"options is invalid\");\n var zProperty = options.zProperty || \"elevation\";\n var flip = options.flip;\n var flags = options.flags;\n\n // validation\n collectionOf(grid, \"Point\", \"input must contain Points\");\n\n var pointsMatrix = sortPointsByLatLng(grid, flip);\n\n var matrix = [];\n // create property matrix from sorted points\n // looping order matters here\n for (var r = 0; r < pointsMatrix.length; r++) {\n var pointRow = pointsMatrix[r];\n var row = [];\n for (var c = 0; c < pointRow.length; c++) {\n var point = pointRow[c];\n // Check if zProperty exist\n if (point.properties[zProperty]) row.push(point.properties[zProperty]);\n else row.push(0);\n // add flags\n if (flags === true) point.properties.matrixPosition = [r, c];\n }\n matrix.push(row);\n }\n\n return matrix;\n}\n\n/**\n * Sorts points by latitude and longitude, creating a 2-dimensional array of points\n *\n * @private\n * @param {FeatureCollection<Point>} points GeoJSON Point features\n * @param {boolean} [flip=false] returns the matrix upside-down\n * @returns {Array<Array<Point>>} points ordered by latitude and longitude\n */\nfunction sortPointsByLatLng(points, flip) {\n var pointsByLatitude = {};\n\n // divide points by rows with the same latitude\n featureEach(points, function (point) {\n var lat = getCoords(point)[1];\n if (!pointsByLatitude[lat]) pointsByLatitude[lat] = [];\n pointsByLatitude[lat].push(point);\n });\n\n // sort points (with the same latitude) by longitude\n var orderedRowsByLatitude = Object.keys(pointsByLatitude).map(function (lat) {\n var row = pointsByLatitude[lat];\n var rowOrderedByLongitude = row.sort(function (a, b) {\n return getCoords(a)[0] - getCoords(b)[0];\n });\n return rowOrderedByLongitude;\n });\n\n // sort rows (of points with the same latitude) by latitude\n var pointMatrix = orderedRowsByLatitude.sort(function (a, b) {\n if (flip) return getCoords(a[0])[1] - getCoords(b[0])[1];\n else return getCoords(b[0])[1] - getCoords(a[0])[1];\n });\n\n return pointMatrix;\n}\n\nexport { gridToMatrix };\nexport default gridToMatrix;\n"]}
@@ -4,7 +4,7 @@ import { FeatureCollection, Point, GeoJsonProperties, MultiLineString } from 'ge
4
4
  * Takes a grid {@link FeatureCollection} of {@link Point} features with z-values and an array of
5
5
  * value breaks and generates [isolines](https://en.wikipedia.org/wiki/Contour_line).
6
6
  *
7
- * @name isolines
7
+ * @function
8
8
  * @param {FeatureCollection<Point>} pointGrid input points
9
9
  * @param {Array<number>} breaks values of `zProperty` where to draw isolines
10
10
  * @param {Object} [options={}] Optional parameters
@@ -4,7 +4,7 @@ import { FeatureCollection, Point, GeoJsonProperties, MultiLineString } from 'ge
4
4
  * Takes a grid {@link FeatureCollection} of {@link Point} features with z-values and an array of
5
5
  * value breaks and generates [isolines](https://en.wikipedia.org/wiki/Contour_line).
6
6
  *
7
- * @name isolines
7
+ * @function
8
8
  * @param {FeatureCollection<Point>} pointGrid input points
9
9
  * @param {Array<number>} breaks values of `zProperty` where to draw isolines
10
10
  * @param {Object} [options={}] Optional parameters