node-red-contrib-tak-registration 0.2.2 → 0.3.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 (1797) hide show
  1. package/README.md +3 -0
  2. package/node_modules/@turf/along/LICENSE +20 -0
  3. package/node_modules/@turf/along/README.md +69 -0
  4. package/node_modules/@turf/along/dist/es/index.js +50 -0
  5. package/node_modules/@turf/along/dist/es/package.json +1 -0
  6. package/node_modules/@turf/along/dist/js/index.d.ts +22 -0
  7. package/node_modules/@turf/along/dist/js/index.js +56 -0
  8. package/node_modules/@turf/along/package.json +95 -0
  9. package/node_modules/@turf/angle/LICENSE +20 -0
  10. package/node_modules/@turf/angle/README.md +64 -0
  11. package/node_modules/@turf/angle/dist/es/index.js +50 -0
  12. package/node_modules/@turf/angle/dist/es/package.json +1 -0
  13. package/node_modules/@turf/angle/dist/js/index.d.ts +22 -0
  14. package/node_modules/@turf/angle/dist/js/index.js +55 -0
  15. package/node_modules/@turf/angle/package.json +102 -0
  16. package/node_modules/@turf/area/LICENSE +20 -0
  17. package/node_modules/@turf/area/README.md +54 -0
  18. package/node_modules/@turf/area/dist/es/index.js +114 -0
  19. package/node_modules/@turf/area/dist/es/package.json +1 -0
  20. package/node_modules/@turf/area/dist/js/index.d.ts +17 -0
  21. package/node_modules/@turf/area/dist/js/index.js +117 -0
  22. package/node_modules/@turf/area/package.json +94 -0
  23. package/node_modules/@turf/bbox/LICENSE +20 -0
  24. package/node_modules/@turf/bbox/README.md +53 -0
  25. package/node_modules/@turf/bbox/dist/es/index.js +35 -0
  26. package/node_modules/@turf/bbox/dist/es/package.json +1 -0
  27. package/node_modules/@turf/bbox/dist/js/index.d.ts +17 -0
  28. package/node_modules/@turf/bbox/dist/js/index.js +37 -0
  29. package/node_modules/@turf/bbox/package.json +108 -0
  30. package/node_modules/@turf/bbox-clip/LICENSE +20 -0
  31. package/node_modules/@turf/bbox-clip/README.md +68 -0
  32. package/node_modules/@turf/bbox-clip/dist/es/index.js +68 -0
  33. package/node_modules/@turf/bbox-clip/dist/es/lib/lineclip.js +107 -0
  34. package/node_modules/@turf/bbox-clip/dist/es/package.json +1 -0
  35. package/node_modules/@turf/bbox-clip/dist/js/index.d.ts +20 -0
  36. package/node_modules/@turf/bbox-clip/dist/js/index.js +71 -0
  37. package/node_modules/@turf/bbox-clip/dist/js/lib/lineclip.d.ts +3 -0
  38. package/node_modules/@turf/bbox-clip/dist/js/lib/lineclip.js +111 -0
  39. package/node_modules/@turf/bbox-clip/package.json +108 -0
  40. package/node_modules/@turf/bbox-polygon/LICENSE +20 -0
  41. package/node_modules/@turf/bbox-polygon/README.md +66 -0
  42. package/node_modules/@turf/bbox-polygon/dist/es/index.js +36 -0
  43. package/node_modules/@turf/bbox-polygon/dist/es/package.json +1 -0
  44. package/node_modules/@turf/bbox-polygon/dist/js/index.d.ts +22 -0
  45. package/node_modules/@turf/bbox-polygon/dist/js/index.js +39 -0
  46. package/node_modules/@turf/bbox-polygon/package.json +92 -0
  47. package/node_modules/@turf/bearing/LICENSE +20 -0
  48. package/node_modules/@turf/bearing/README.md +67 -0
  49. package/node_modules/@turf/bearing/dist/es/index.js +57 -0
  50. package/node_modules/@turf/bearing/dist/es/package.json +1 -0
  51. package/node_modules/@turf/bearing/dist/js/index.d.ts +26 -0
  52. package/node_modules/@turf/bearing/dist/js/index.js +60 -0
  53. package/node_modules/@turf/bearing/package.json +96 -0
  54. package/node_modules/@turf/bezier-spline/LICENSE +20 -0
  55. package/node_modules/@turf/bezier-spline/README.md +79 -0
  56. package/node_modules/@turf/bezier-spline/dist/es/index.js +60 -0
  57. package/node_modules/@turf/bezier-spline/dist/es/lib/spline.js +158 -0
  58. package/node_modules/@turf/bezier-spline/dist/es/package.json +1 -0
  59. package/node_modules/@turf/bezier-spline/dist/js/index.d.ts +37 -0
  60. package/node_modules/@turf/bezier-spline/dist/js/index.js +65 -0
  61. package/node_modules/@turf/bezier-spline/dist/js/lib/spline.d.ts +62 -0
  62. package/node_modules/@turf/bezier-spline/dist/js/lib/spline.js +160 -0
  63. package/node_modules/@turf/bezier-spline/package.json +93 -0
  64. package/node_modules/@turf/boolean-clockwise/LICENSE +20 -0
  65. package/node_modules/@turf/boolean-clockwise/README.md +60 -0
  66. package/node_modules/@turf/boolean-clockwise/dist/es/index.js +30 -0
  67. package/node_modules/@turf/boolean-clockwise/dist/es/package.json +1 -0
  68. package/node_modules/@turf/boolean-clockwise/dist/js/index.d.ts +17 -0
  69. package/node_modules/@turf/boolean-clockwise/dist/js/index.js +33 -0
  70. package/node_modules/@turf/boolean-clockwise/package.json +110 -0
  71. package/node_modules/@turf/boolean-contains/LICENSE +20 -0
  72. package/node_modules/@turf/boolean-contains/README.md +63 -0
  73. package/node_modules/@turf/boolean-contains/dist/es/index.js +225 -0
  74. package/node_modules/@turf/boolean-contains/dist/es/package.json +1 -0
  75. package/node_modules/@turf/boolean-contains/dist/js/index.d.ts +46 -0
  76. package/node_modules/@turf/boolean-contains/dist/js/index.js +241 -0
  77. package/node_modules/@turf/boolean-contains/package.json +107 -0
  78. package/node_modules/@turf/boolean-crosses/LICENSE +20 -0
  79. package/node_modules/@turf/boolean-crosses/README.md +64 -0
  80. package/node_modules/@turf/boolean-crosses/dist/es/index.js +166 -0
  81. package/node_modules/@turf/boolean-crosses/dist/es/package.json +1 -0
  82. package/node_modules/@turf/boolean-crosses/dist/js/index.d.ts +21 -0
  83. package/node_modules/@turf/boolean-crosses/dist/js/index.js +171 -0
  84. package/node_modules/@turf/boolean-crosses/package.json +106 -0
  85. package/node_modules/@turf/boolean-disjoint/LICENSE +20 -0
  86. package/node_modules/@turf/boolean-disjoint/README.md +60 -0
  87. package/node_modules/@turf/boolean-disjoint/dist/es/index.js +168 -0
  88. package/node_modules/@turf/boolean-disjoint/dist/es/package.json +1 -0
  89. package/node_modules/@turf/boolean-disjoint/dist/js/index.d.ts +17 -0
  90. package/node_modules/@turf/boolean-disjoint/dist/js/index.js +173 -0
  91. package/node_modules/@turf/boolean-disjoint/package.json +106 -0
  92. package/node_modules/@turf/boolean-equal/LICENSE +20 -0
  93. package/node_modules/@turf/boolean-equal/README.md +66 -0
  94. package/node_modules/@turf/boolean-equal/dist/es/index.js +30 -0
  95. package/node_modules/@turf/boolean-equal/dist/es/package.json +1 -0
  96. package/node_modules/@turf/boolean-equal/dist/js/index.d.ts +21 -0
  97. package/node_modules/@turf/boolean-equal/dist/js/index.js +35 -0
  98. package/node_modules/@turf/boolean-equal/package.json +112 -0
  99. package/node_modules/@turf/boolean-intersects/LICENSE +20 -0
  100. package/node_modules/@turf/boolean-intersects/README.md +55 -0
  101. package/node_modules/@turf/boolean-intersects/dist/es/index.js +28 -0
  102. package/node_modules/@turf/boolean-intersects/dist/es/package.json +1 -0
  103. package/node_modules/@turf/boolean-intersects/dist/js/index.d.ts +16 -0
  104. package/node_modules/@turf/boolean-intersects/dist/js/index.js +34 -0
  105. package/node_modules/@turf/boolean-intersects/package.json +104 -0
  106. package/node_modules/@turf/boolean-overlap/LICENSE +20 -0
  107. package/node_modules/@turf/boolean-overlap/README.md +73 -0
  108. package/node_modules/@turf/boolean-overlap/dist/es/index.js +80 -0
  109. package/node_modules/@turf/boolean-overlap/dist/es/package.json +1 -0
  110. package/node_modules/@turf/boolean-overlap/dist/js/index.d.ts +23 -0
  111. package/node_modules/@turf/boolean-overlap/dist/js/index.js +86 -0
  112. package/node_modules/@turf/boolean-overlap/package.json +110 -0
  113. package/node_modules/@turf/boolean-parallel/LICENSE +20 -0
  114. package/node_modules/@turf/boolean-parallel/README.md +57 -0
  115. package/node_modules/@turf/boolean-parallel/dist/es/index.js +71 -0
  116. package/node_modules/@turf/boolean-parallel/dist/es/package.json +1 -0
  117. package/node_modules/@turf/boolean-parallel/dist/js/index.d.ts +17 -0
  118. package/node_modules/@turf/boolean-parallel/dist/js/index.js +76 -0
  119. package/node_modules/@turf/boolean-parallel/package.json +100 -0
  120. package/node_modules/@turf/boolean-point-in-polygon/LICENSE +20 -0
  121. package/node_modules/@turf/boolean-point-in-polygon/README.md +76 -0
  122. package/node_modules/@turf/boolean-point-in-polygon/dist/es/index.js +115 -0
  123. package/node_modules/@turf/boolean-point-in-polygon/dist/es/package.json +1 -0
  124. package/node_modules/@turf/boolean-point-in-polygon/dist/js/index.d.ts +28 -0
  125. package/node_modules/@turf/boolean-point-in-polygon/dist/js/index.js +118 -0
  126. package/node_modules/@turf/boolean-point-in-polygon/package.json +104 -0
  127. package/node_modules/@turf/boolean-point-on-line/LICENSE +20 -0
  128. package/node_modules/@turf/boolean-point-on-line/README.md +60 -0
  129. package/node_modules/@turf/boolean-point-on-line/dist/es/index.js +102 -0
  130. package/node_modules/@turf/boolean-point-on-line/dist/es/package.json +1 -0
  131. package/node_modules/@turf/boolean-point-on-line/dist/js/index.d.ts +23 -0
  132. package/node_modules/@turf/boolean-point-on-line/dist/js/index.js +104 -0
  133. package/node_modules/@turf/boolean-point-on-line/package.json +100 -0
  134. package/node_modules/@turf/boolean-within/LICENSE +20 -0
  135. package/node_modules/@turf/boolean-within/README.md +58 -0
  136. package/node_modules/@turf/boolean-within/dist/es/index.js +215 -0
  137. package/node_modules/@turf/boolean-within/dist/es/package.json +1 -0
  138. package/node_modules/@turf/boolean-within/dist/js/index.d.ts +20 -0
  139. package/node_modules/@turf/boolean-within/dist/js/index.js +220 -0
  140. package/node_modules/@turf/boolean-within/package.json +108 -0
  141. package/node_modules/@turf/buffer/LICENSE +20 -0
  142. package/node_modules/@turf/buffer/README.md +76 -0
  143. package/node_modules/@turf/buffer/dist/es/index.js +175 -0
  144. package/node_modules/@turf/buffer/dist/es/package.json +1 -0
  145. package/node_modules/@turf/buffer/dist/js/index.js +182 -0
  146. package/node_modules/@turf/buffer/index.d.ts +61 -0
  147. package/node_modules/@turf/buffer/package.json +112 -0
  148. package/node_modules/@turf/center/LICENSE +20 -0
  149. package/node_modules/@turf/center/README.md +71 -0
  150. package/node_modules/@turf/center/dist/es/index.js +34 -0
  151. package/node_modules/@turf/center/dist/es/package.json +1 -0
  152. package/node_modules/@turf/center/dist/js/index.d.ts +31 -0
  153. package/node_modules/@turf/center/dist/js/index.js +39 -0
  154. package/node_modules/@turf/center/package.json +101 -0
  155. package/node_modules/@turf/center-mean/LICENSE +20 -0
  156. package/node_modules/@turf/center-mean/README.md +75 -0
  157. package/node_modules/@turf/center-mean/dist/es/index.js +51 -0
  158. package/node_modules/@turf/center-mean/dist/es/package.json +1 -0
  159. package/node_modules/@turf/center-mean/dist/js/index.d.ts +35 -0
  160. package/node_modules/@turf/center-mean/dist/js/index.js +53 -0
  161. package/node_modules/@turf/center-mean/package.json +108 -0
  162. package/node_modules/@turf/center-median/LICENSE +20 -0
  163. package/node_modules/@turf/center-median/README.md +103 -0
  164. package/node_modules/@turf/center-median/dist/es/index.js +135 -0
  165. package/node_modules/@turf/center-median/dist/es/package.json +1 -0
  166. package/node_modules/@turf/center-median/dist/js/index.d.ts +62 -0
  167. package/node_modules/@turf/center-median/dist/js/index.js +140 -0
  168. package/node_modules/@turf/center-median/package.json +103 -0
  169. package/node_modules/@turf/center-of-mass/LICENSE +20 -0
  170. package/node_modules/@turf/center-of-mass/README.md +67 -0
  171. package/node_modules/@turf/center-of-mass/dist/es/index.js +81 -0
  172. package/node_modules/@turf/center-of-mass/dist/es/package.json +1 -0
  173. package/node_modules/@turf/center-of-mass/dist/js/index.d.ts +21 -0
  174. package/node_modules/@turf/center-of-mass/dist/js/index.js +86 -0
  175. package/node_modules/@turf/center-of-mass/package.json +95 -0
  176. package/node_modules/@turf/centroid/LICENSE +20 -0
  177. package/node_modules/@turf/centroid/README.md +62 -0
  178. package/node_modules/@turf/centroid/dist/es/index.js +32 -0
  179. package/node_modules/@turf/centroid/dist/es/package.json +1 -0
  180. package/node_modules/@turf/centroid/dist/js/index.d.ts +22 -0
  181. package/node_modules/@turf/centroid/dist/js/index.js +34 -0
  182. package/node_modules/@turf/centroid/package.json +101 -0
  183. package/node_modules/@turf/circle/LICENSE +20 -0
  184. package/node_modules/@turf/circle/README.md +71 -0
  185. package/node_modules/@turf/circle/dist/es/index.js +41 -0
  186. package/node_modules/@turf/circle/dist/es/package.json +1 -0
  187. package/node_modules/@turf/circle/dist/js/index.d.ts +27 -0
  188. package/node_modules/@turf/circle/dist/js/index.js +46 -0
  189. package/node_modules/@turf/circle/package.json +99 -0
  190. package/node_modules/@turf/clean-coords/LICENSE +20 -0
  191. package/node_modules/@turf/clean-coords/README.md +61 -0
  192. package/node_modules/@turf/clean-coords/dist/es/index.js +159 -0
  193. package/node_modules/@turf/clean-coords/dist/es/package.json +1 -0
  194. package/node_modules/@turf/clean-coords/dist/js/index.d.ts +22 -0
  195. package/node_modules/@turf/clean-coords/dist/js/index.js +161 -0
  196. package/node_modules/@turf/clean-coords/package.json +103 -0
  197. package/node_modules/@turf/clone/LICENSE +20 -0
  198. package/node_modules/@turf/clone/README.md +49 -0
  199. package/node_modules/@turf/clone/dist/es/index.js +157 -0
  200. package/node_modules/@turf/clone/dist/es/package.json +1 -0
  201. package/node_modules/@turf/clone/dist/js/index.d.ts +15 -0
  202. package/node_modules/@turf/clone/dist/js/index.js +159 -0
  203. package/node_modules/@turf/clone/package.json +109 -0
  204. package/node_modules/@turf/clusters/LICENSE +20 -0
  205. package/node_modules/@turf/clusters/README.md +208 -0
  206. package/node_modules/@turf/clusters/dist/es/index.js +294 -0
  207. package/node_modules/@turf/clusters/dist/es/package.json +1 -0
  208. package/node_modules/@turf/clusters/dist/js/index.d.ts +197 -0
  209. package/node_modules/@turf/clusters/dist/js/index.js +303 -0
  210. package/node_modules/@turf/clusters/package.json +98 -0
  211. package/node_modules/@turf/clusters-dbscan/LICENSE +20 -0
  212. package/node_modules/@turf/clusters-dbscan/README.md +73 -0
  213. package/node_modules/@turf/clusters-dbscan/dist/es/index.js +70 -0
  214. package/node_modules/@turf/clusters-dbscan/dist/es/package.json +1 -0
  215. package/node_modules/@turf/clusters-dbscan/dist/js/index.d.ts +35 -0
  216. package/node_modules/@turf/clusters-dbscan/dist/js/index.js +75 -0
  217. package/node_modules/@turf/clusters-dbscan/package.json +118 -0
  218. package/node_modules/@turf/clusters-kmeans/LICENSE +20 -0
  219. package/node_modules/@turf/clusters-kmeans/README.md +69 -0
  220. package/node_modules/@turf/clusters-kmeans/dist/es/index.js +57 -0
  221. package/node_modules/@turf/clusters-kmeans/dist/es/package.json +1 -0
  222. package/node_modules/@turf/clusters-kmeans/dist/js/index.d.ts +31 -0
  223. package/node_modules/@turf/clusters-kmeans/dist/js/index.js +62 -0
  224. package/node_modules/@turf/clusters-kmeans/package.json +119 -0
  225. package/node_modules/@turf/collect/LICENSE +20 -0
  226. package/node_modules/@turf/collect/README.md +73 -0
  227. package/node_modules/@turf/collect/dist/es/index.js +68 -0
  228. package/node_modules/@turf/collect/dist/es/package.json +1 -0
  229. package/node_modules/@turf/collect/dist/js/index.d.ts +33 -0
  230. package/node_modules/@turf/collect/dist/js/index.js +73 -0
  231. package/node_modules/@turf/collect/node_modules/quickselect/LICENSE +15 -0
  232. package/node_modules/@turf/collect/node_modules/quickselect/README.md +28 -0
  233. package/node_modules/@turf/collect/node_modules/quickselect/index.js +54 -0
  234. package/node_modules/@turf/collect/node_modules/quickselect/package.json +69 -0
  235. package/node_modules/@turf/collect/node_modules/quickselect/quickselect.js +63 -0
  236. package/node_modules/@turf/collect/node_modules/rbush/LICENSE +21 -0
  237. package/node_modules/@turf/collect/node_modules/rbush/README.md +291 -0
  238. package/node_modules/@turf/collect/node_modules/rbush/index.js +562 -0
  239. package/node_modules/@turf/collect/node_modules/rbush/package.json +85 -0
  240. package/node_modules/@turf/collect/node_modules/rbush/rbush.js +626 -0
  241. package/node_modules/@turf/collect/node_modules/rbush/rbush.min.js +1 -0
  242. package/node_modules/@turf/collect/package.json +101 -0
  243. package/node_modules/@turf/combine/LICENSE +20 -0
  244. package/node_modules/@turf/combine/README.md +81 -0
  245. package/node_modules/@turf/combine/dist/es/index.js +79 -0
  246. package/node_modules/@turf/combine/dist/es/package.json +1 -0
  247. package/node_modules/@turf/combine/dist/js/index.d.ts +27 -0
  248. package/node_modules/@turf/combine/dist/js/index.js +81 -0
  249. package/node_modules/@turf/combine/package.json +91 -0
  250. package/node_modules/@turf/concave/LICENSE +20 -0
  251. package/node_modules/@turf/concave/README.md +81 -0
  252. package/node_modules/@turf/concave/dist/es/index.js +83 -0
  253. package/node_modules/@turf/concave/dist/es/lib/turf-dissolve.js +71 -0
  254. package/node_modules/@turf/concave/dist/es/lib/turf-line-dissolve.js +105 -0
  255. package/node_modules/@turf/concave/dist/es/lib/turf-polygon-dissolve.js +36 -0
  256. package/node_modules/@turf/concave/dist/es/package.json +1 -0
  257. package/node_modules/@turf/concave/dist/js/index.d.ts +33 -0
  258. package/node_modules/@turf/concave/dist/js/index.js +88 -0
  259. package/node_modules/@turf/concave/dist/js/lib/turf-dissolve.d.ts +15 -0
  260. package/node_modules/@turf/concave/dist/js/lib/turf-dissolve.js +76 -0
  261. package/node_modules/@turf/concave/dist/js/lib/turf-line-dissolve.d.ts +14 -0
  262. package/node_modules/@turf/concave/dist/js/lib/turf-line-dissolve.js +110 -0
  263. package/node_modules/@turf/concave/dist/js/lib/turf-polygon-dissolve.d.ts +12 -0
  264. package/node_modules/@turf/concave/dist/js/lib/turf-polygon-dissolve.js +42 -0
  265. package/node_modules/@turf/concave/package.json +138 -0
  266. package/node_modules/@turf/convex/LICENSE +20 -0
  267. package/node_modules/@turf/convex/README.md +83 -0
  268. package/node_modules/@turf/convex/dist/es/index.js +51 -0
  269. package/node_modules/@turf/convex/dist/es/package.json +1 -0
  270. package/node_modules/@turf/convex/dist/js/index.d.ts +33 -0
  271. package/node_modules/@turf/convex/dist/js/index.js +57 -0
  272. package/node_modules/@turf/convex/package.json +94 -0
  273. package/node_modules/@turf/destination/LICENSE +20 -0
  274. package/node_modules/@turf/destination/README.md +75 -0
  275. package/node_modules/@turf/destination/dist/es/index.js +47 -0
  276. package/node_modules/@turf/destination/dist/es/package.json +1 -0
  277. package/node_modules/@turf/destination/dist/js/index.d.ts +31 -0
  278. package/node_modules/@turf/destination/dist/js/index.js +50 -0
  279. package/node_modules/@turf/destination/package.json +102 -0
  280. package/node_modules/@turf/difference/LICENSE +20 -0
  281. package/node_modules/@turf/difference/README.md +77 -0
  282. package/node_modules/@turf/difference/dist/es/index.js +53 -0
  283. package/node_modules/@turf/difference/dist/es/package.json +1 -0
  284. package/node_modules/@turf/difference/dist/js/index.js +60 -0
  285. package/node_modules/@turf/difference/index.d.ts +9 -0
  286. package/node_modules/@turf/difference/package.json +88 -0
  287. package/node_modules/@turf/dissolve/LICENSE +20 -0
  288. package/node_modules/@turf/dissolve/README.md +96 -0
  289. package/node_modules/@turf/dissolve/dist/es/index.js +81 -0
  290. package/node_modules/@turf/dissolve/dist/es/package.json +1 -0
  291. package/node_modules/@turf/dissolve/dist/js/index.js +89 -0
  292. package/node_modules/@turf/dissolve/index.d.ts +11 -0
  293. package/node_modules/@turf/dissolve/package.json +91 -0
  294. package/node_modules/@turf/distance/LICENSE +20 -0
  295. package/node_modules/@turf/distance/README.md +69 -0
  296. package/node_modules/@turf/distance/dist/es/index.js +39 -0
  297. package/node_modules/@turf/distance/dist/es/package.json +1 -0
  298. package/node_modules/@turf/distance/dist/js/index.d.ts +27 -0
  299. package/node_modules/@turf/distance/dist/js/index.js +41 -0
  300. package/node_modules/@turf/distance/package.json +109 -0
  301. package/node_modules/@turf/distance-weight/LICENSE +20 -0
  302. package/node_modules/@turf/distance-weight/README.md +64 -0
  303. package/node_modules/@turf/distance-weight/dist/es/index.js +105 -0
  304. package/node_modules/@turf/distance-weight/dist/es/package.json +1 -0
  305. package/node_modules/@turf/distance-weight/dist/js/index.d.ts +37 -0
  306. package/node_modules/@turf/distance-weight/dist/js/index.js +112 -0
  307. package/node_modules/@turf/distance-weight/package.json +99 -0
  308. package/node_modules/@turf/ellipse/LICENSE +20 -0
  309. package/node_modules/@turf/ellipse/README.md +72 -0
  310. package/node_modules/@turf/ellipse/dist/es/index.js +104 -0
  311. package/node_modules/@turf/ellipse/dist/es/package.json +1 -0
  312. package/node_modules/@turf/ellipse/dist/js/index.js +112 -0
  313. package/node_modules/@turf/ellipse/index.d.ts +15 -0
  314. package/node_modules/@turf/ellipse/package.json +101 -0
  315. package/node_modules/@turf/envelope/LICENSE +20 -0
  316. package/node_modules/@turf/envelope/README.md +61 -0
  317. package/node_modules/@turf/envelope/dist/es/index.js +26 -0
  318. package/node_modules/@turf/envelope/dist/es/package.json +1 -0
  319. package/node_modules/@turf/envelope/dist/js/index.js +34 -0
  320. package/node_modules/@turf/envelope/index.d.ts +6 -0
  321. package/node_modules/@turf/envelope/package.json +90 -0
  322. package/node_modules/@turf/explode/LICENSE +20 -0
  323. package/node_modules/@turf/explode/README.md +59 -0
  324. package/node_modules/@turf/explode/dist/es/index.js +35 -0
  325. package/node_modules/@turf/explode/dist/es/package.json +1 -0
  326. package/node_modules/@turf/explode/dist/js/index.js +38 -0
  327. package/node_modules/@turf/explode/index.d.ts +6 -0
  328. package/node_modules/@turf/explode/package.json +92 -0
  329. package/node_modules/@turf/flatten/LICENSE +20 -0
  330. package/node_modules/@turf/flatten/README.md +63 -0
  331. package/node_modules/@turf/flatten/dist/es/index.js +32 -0
  332. package/node_modules/@turf/flatten/dist/es/package.json +1 -0
  333. package/node_modules/@turf/flatten/dist/js/index.js +35 -0
  334. package/node_modules/@turf/flatten/index.d.ts +27 -0
  335. package/node_modules/@turf/flatten/package.json +100 -0
  336. package/node_modules/@turf/flip/LICENSE +20 -0
  337. package/node_modules/@turf/flip/README.md +57 -0
  338. package/node_modules/@turf/flip/dist/es/index.js +42 -0
  339. package/node_modules/@turf/flip/dist/es/package.json +1 -0
  340. package/node_modules/@turf/flip/dist/js/index.js +49 -0
  341. package/node_modules/@turf/flip/index.d.ts +8 -0
  342. package/node_modules/@turf/flip/package.json +90 -0
  343. package/node_modules/@turf/great-circle/LICENSE +20 -0
  344. package/node_modules/@turf/great-circle/README.md +74 -0
  345. package/node_modules/@turf/great-circle/dist/es/index.js +333 -0
  346. package/node_modules/@turf/great-circle/dist/es/package.json +1 -0
  347. package/node_modules/@turf/great-circle/dist/js/index.js +336 -0
  348. package/node_modules/@turf/great-circle/index.d.ts +20 -0
  349. package/node_modules/@turf/great-circle/package.json +105 -0
  350. package/node_modules/@turf/helpers/LICENSE +20 -0
  351. package/node_modules/@turf/helpers/README.md +579 -0
  352. package/node_modules/@turf/helpers/dist/es/index.js +696 -0
  353. package/node_modules/@turf/helpers/dist/es/lib/geojson.js +7 -0
  354. package/node_modules/@turf/helpers/dist/es/package.json +1 -0
  355. package/node_modules/@turf/helpers/dist/js/index.d.ts +482 -0
  356. package/node_modules/@turf/helpers/dist/js/index.js +724 -0
  357. package/node_modules/@turf/helpers/dist/js/lib/geojson.d.ts +193 -0
  358. package/node_modules/@turf/helpers/dist/js/lib/geojson.js +9 -0
  359. package/node_modules/@turf/helpers/package.json +211 -0
  360. package/node_modules/@turf/hex-grid/LICENSE +20 -0
  361. package/node_modules/@turf/hex-grid/README.md +82 -0
  362. package/node_modules/@turf/hex-grid/dist/es/index.js +157 -0
  363. package/node_modules/@turf/hex-grid/dist/es/package.json +1 -0
  364. package/node_modules/@turf/hex-grid/dist/js/index.d.ts +33 -0
  365. package/node_modules/@turf/hex-grid/dist/js/index.js +162 -0
  366. package/node_modules/@turf/hex-grid/package.json +126 -0
  367. package/node_modules/@turf/interpolate/LICENSE +20 -0
  368. package/node_modules/@turf/interpolate/README.md +74 -0
  369. package/node_modules/@turf/interpolate/dist/es/index.js +107 -0
  370. package/node_modules/@turf/interpolate/dist/es/package.json +1 -0
  371. package/node_modules/@turf/interpolate/dist/js/index.js +121 -0
  372. package/node_modules/@turf/interpolate/index.d.ts +25 -0
  373. package/node_modules/@turf/interpolate/package.json +105 -0
  374. package/node_modules/@turf/intersect/LICENSE +20 -0
  375. package/node_modules/@turf/intersect/README.md +81 -0
  376. package/node_modules/@turf/intersect/dist/es/index.js +50 -0
  377. package/node_modules/@turf/intersect/dist/es/package.json +1 -0
  378. package/node_modules/@turf/intersect/dist/js/index.d.ts +40 -0
  379. package/node_modules/@turf/intersect/dist/js/index.js +56 -0
  380. package/node_modules/@turf/intersect/package.json +96 -0
  381. package/node_modules/@turf/invariant/LICENSE +20 -0
  382. package/node_modules/@turf/invariant/README.md +202 -0
  383. package/node_modules/@turf/invariant/dist/es/index.js +223 -0
  384. package/node_modules/@turf/invariant/dist/es/package.json +1 -0
  385. package/node_modules/@turf/invariant/dist/js/index.d.ts +105 -0
  386. package/node_modules/@turf/invariant/dist/js/index.js +233 -0
  387. package/node_modules/@turf/invariant/package.json +154 -0
  388. package/node_modules/@turf/isobands/LICENSE +20 -0
  389. package/node_modules/@turf/isobands/README.md +64 -0
  390. package/node_modules/@turf/isobands/dist/es/index.js +3793 -0
  391. package/node_modules/@turf/isobands/dist/es/package.json +1 -0
  392. package/node_modules/@turf/isobands/dist/js/index.js +3804 -0
  393. package/node_modules/@turf/isobands/index.d.ts +19 -0
  394. package/node_modules/@turf/isobands/package.json +110 -0
  395. package/node_modules/@turf/isolines/LICENSE +20 -0
  396. package/node_modules/@turf/isolines/README.md +86 -0
  397. package/node_modules/@turf/isolines/dist/es/index.js +647 -0
  398. package/node_modules/@turf/isolines/dist/es/package.json +1 -0
  399. package/node_modules/@turf/isolines/dist/js/index.js +655 -0
  400. package/node_modules/@turf/isolines/index.d.ts +19 -0
  401. package/node_modules/@turf/isolines/package.json +106 -0
  402. package/node_modules/@turf/kinks/LICENSE +20 -0
  403. package/node_modules/@turf/kinks/README.md +79 -0
  404. package/node_modules/@turf/kinks/dist/es/index.js +136 -0
  405. package/node_modules/@turf/kinks/dist/es/lib/sweepline-intersections.js +288 -0
  406. package/node_modules/@turf/kinks/dist/es/package.json +1 -0
  407. package/node_modules/@turf/kinks/dist/js/index.d.ts +24 -0
  408. package/node_modules/@turf/kinks/dist/js/index.js +139 -0
  409. package/node_modules/@turf/kinks/dist/js/lib/sweepline-intersections.d.ts +2 -0
  410. package/node_modules/@turf/kinks/dist/js/lib/sweepline-intersections.js +290 -0
  411. package/node_modules/@turf/kinks/package.json +90 -0
  412. package/node_modules/@turf/length/LICENSE +20 -0
  413. package/node_modules/@turf/length/README.md +67 -0
  414. package/node_modules/@turf/length/dist/es/index.js +26 -0
  415. package/node_modules/@turf/length/dist/es/package.json +1 -0
  416. package/node_modules/@turf/length/dist/js/index.d.ts +20 -0
  417. package/node_modules/@turf/length/dist/js/index.js +32 -0
  418. package/node_modules/@turf/length/package.json +106 -0
  419. package/node_modules/@turf/line-arc/LICENSE +20 -0
  420. package/node_modules/@turf/line-arc/README.md +71 -0
  421. package/node_modules/@turf/line-arc/dist/es/index.js +70 -0
  422. package/node_modules/@turf/line-arc/dist/es/package.json +1 -0
  423. package/node_modules/@turf/line-arc/dist/js/index.d.ts +29 -0
  424. package/node_modules/@turf/line-arc/dist/js/index.js +76 -0
  425. package/node_modules/@turf/line-arc/package.json +92 -0
  426. package/node_modules/@turf/line-chunk/LICENSE +20 -0
  427. package/node_modules/@turf/line-chunk/README.md +74 -0
  428. package/node_modules/@turf/line-chunk/dist/es/index.js +87 -0
  429. package/node_modules/@turf/line-chunk/dist/es/package.json +1 -0
  430. package/node_modules/@turf/line-chunk/dist/js/index.js +95 -0
  431. package/node_modules/@turf/line-chunk/index.d.ts +25 -0
  432. package/node_modules/@turf/line-chunk/package.json +111 -0
  433. package/node_modules/@turf/line-intersect/LICENSE +20 -0
  434. package/node_modules/@turf/line-intersect/README.md +66 -0
  435. package/node_modules/@turf/line-intersect/dist/es/index.js +107 -0
  436. package/node_modules/@turf/line-intersect/dist/es/package.json +1 -0
  437. package/node_modules/@turf/line-intersect/dist/js/index.d.ts +18 -0
  438. package/node_modules/@turf/line-intersect/dist/js/index.js +112 -0
  439. package/node_modules/@turf/line-intersect/package.json +112 -0
  440. package/node_modules/@turf/line-offset/LICENSE +20 -0
  441. package/node_modules/@turf/line-offset/README.md +69 -0
  442. package/node_modules/@turf/line-offset/dist/es/index.js +243 -0
  443. package/node_modules/@turf/line-offset/dist/es/package.json +1 -0
  444. package/node_modules/@turf/line-offset/dist/js/index.js +246 -0
  445. package/node_modules/@turf/line-offset/index.d.ts +12 -0
  446. package/node_modules/@turf/line-offset/package.json +105 -0
  447. package/node_modules/@turf/line-overlap/LICENSE +20 -0
  448. package/node_modules/@turf/line-overlap/README.md +71 -0
  449. package/node_modules/@turf/line-overlap/dist/es/index.js +128 -0
  450. package/node_modules/@turf/line-overlap/dist/es/package.json +1 -0
  451. package/node_modules/@turf/line-overlap/dist/js/index.d.ts +23 -0
  452. package/node_modules/@turf/line-overlap/dist/js/index.js +133 -0
  453. package/node_modules/@turf/line-overlap/package.json +108 -0
  454. package/node_modules/@turf/line-segment/LICENSE +20 -0
  455. package/node_modules/@turf/line-segment/README.md +68 -0
  456. package/node_modules/@turf/line-segment/dist/es/index.js +93 -0
  457. package/node_modules/@turf/line-segment/dist/es/package.json +1 -0
  458. package/node_modules/@turf/line-segment/dist/js/index.d.ts +17 -0
  459. package/node_modules/@turf/line-segment/dist/js/index.js +95 -0
  460. package/node_modules/@turf/line-segment/package.json +96 -0
  461. package/node_modules/@turf/line-slice/LICENSE +20 -0
  462. package/node_modules/@turf/line-slice/README.md +74 -0
  463. package/node_modules/@turf/line-slice/dist/es/index.js +60 -0
  464. package/node_modules/@turf/line-slice/dist/es/package.json +1 -0
  465. package/node_modules/@turf/line-slice/dist/js/index.js +67 -0
  466. package/node_modules/@turf/line-slice/index.d.ts +10 -0
  467. package/node_modules/@turf/line-slice/package.json +93 -0
  468. package/node_modules/@turf/line-slice-along/LICENSE +20 -0
  469. package/node_modules/@turf/line-slice-along/README.md +72 -0
  470. package/node_modules/@turf/line-slice-along/dist/es/index.js +87 -0
  471. package/node_modules/@turf/line-slice-along/dist/es/package.json +1 -0
  472. package/node_modules/@turf/line-slice-along/dist/js/index.js +96 -0
  473. package/node_modules/@turf/line-slice-along/index.d.ts +13 -0
  474. package/node_modules/@turf/line-slice-along/package.json +90 -0
  475. package/node_modules/@turf/line-split/LICENSE +20 -0
  476. package/node_modules/@turf/line-split/README.md +57 -0
  477. package/node_modules/@turf/line-split/dist/es/index.js +215 -0
  478. package/node_modules/@turf/line-split/dist/es/package.json +1 -0
  479. package/node_modules/@turf/line-split/dist/js/index.js +228 -0
  480. package/node_modules/@turf/line-split/index.d.ts +22 -0
  481. package/node_modules/@turf/line-split/package.json +103 -0
  482. package/node_modules/@turf/line-to-polygon/LICENSE +20 -0
  483. package/node_modules/@turf/line-to-polygon/README.md +69 -0
  484. package/node_modules/@turf/line-to-polygon/dist/es/index.js +130 -0
  485. package/node_modules/@turf/line-to-polygon/dist/es/package.json +1 -0
  486. package/node_modules/@turf/line-to-polygon/dist/js/index.d.ts +27 -0
  487. package/node_modules/@turf/line-to-polygon/dist/js/index.js +135 -0
  488. package/node_modules/@turf/line-to-polygon/package.json +102 -0
  489. package/node_modules/@turf/mask/LICENSE +20 -0
  490. package/node_modules/@turf/mask/README.md +74 -0
  491. package/node_modules/@turf/mask/dist/es/index.js +79 -0
  492. package/node_modules/@turf/mask/dist/es/package.json +1 -0
  493. package/node_modules/@turf/mask/dist/js/index.js +86 -0
  494. package/node_modules/@turf/mask/index.d.ts +14 -0
  495. package/node_modules/@turf/mask/package.json +89 -0
  496. package/node_modules/@turf/meta/LICENSE +20 -0
  497. package/node_modules/@turf/meta/README.md +858 -0
  498. package/node_modules/@turf/meta/dist/es/index.js +1401 -0
  499. package/node_modules/@turf/meta/dist/es/package.json +1 -0
  500. package/node_modules/@turf/meta/dist/js/index.js +1421 -0
  501. package/node_modules/@turf/meta/index.d.ts +301 -0
  502. package/node_modules/@turf/meta/package.json +169 -0
  503. package/node_modules/@turf/midpoint/LICENSE +20 -0
  504. package/node_modules/@turf/midpoint/README.md +61 -0
  505. package/node_modules/@turf/midpoint/dist/es/index.js +31 -0
  506. package/node_modules/@turf/midpoint/dist/es/package.json +1 -0
  507. package/node_modules/@turf/midpoint/dist/js/index.js +40 -0
  508. package/node_modules/@turf/midpoint/index.d.ts +6 -0
  509. package/node_modules/@turf/midpoint/package.json +89 -0
  510. package/node_modules/@turf/moran-index/LICENSE +20 -0
  511. package/node_modules/@turf/moran-index/README.md +107 -0
  512. package/node_modules/@turf/moran-index/dist/es/index.js +133 -0
  513. package/node_modules/@turf/moran-index/dist/es/package.json +1 -0
  514. package/node_modules/@turf/moran-index/dist/js/index.d.ts +63 -0
  515. package/node_modules/@turf/moran-index/dist/js/index.js +139 -0
  516. package/node_modules/@turf/moran-index/package.json +97 -0
  517. package/node_modules/@turf/nearest-point/LICENSE +20 -0
  518. package/node_modules/@turf/nearest-point/README.md +69 -0
  519. package/node_modules/@turf/nearest-point/dist/es/index.js +49 -0
  520. package/node_modules/@turf/nearest-point/dist/es/package.json +1 -0
  521. package/node_modules/@turf/nearest-point/dist/js/index.d.ts +34 -0
  522. package/node_modules/@turf/nearest-point/dist/js/index.js +54 -0
  523. package/node_modules/@turf/nearest-point/package.json +97 -0
  524. package/node_modules/@turf/nearest-point-on-line/LICENSE +20 -0
  525. package/node_modules/@turf/nearest-point-on-line/README.md +83 -0
  526. package/node_modules/@turf/nearest-point-on-line/dist/es/index.js +88 -0
  527. package/node_modules/@turf/nearest-point-on-line/dist/es/package.json +1 -0
  528. package/node_modules/@turf/nearest-point-on-line/dist/js/index.d.ts +39 -0
  529. package/node_modules/@turf/nearest-point-on-line/dist/js/index.js +93 -0
  530. package/node_modules/@turf/nearest-point-on-line/package.json +98 -0
  531. package/node_modules/@turf/nearest-point-to-line/LICENSE +20 -0
  532. package/node_modules/@turf/nearest-point-to-line/README.md +86 -0
  533. package/node_modules/@turf/nearest-point-to-line/dist/es/index.js +91 -0
  534. package/node_modules/@turf/nearest-point-to-line/dist/es/package.json +1 -0
  535. package/node_modules/@turf/nearest-point-to-line/dist/js/index.d.ts +32 -0
  536. package/node_modules/@turf/nearest-point-to-line/dist/js/index.js +96 -0
  537. package/node_modules/@turf/nearest-point-to-line/package.json +106 -0
  538. package/node_modules/@turf/planepoint/LICENSE +20 -0
  539. package/node_modules/@turf/planepoint/README.md +79 -0
  540. package/node_modules/@turf/planepoint/dist/es/index.js +77 -0
  541. package/node_modules/@turf/planepoint/dist/es/package.json +1 -0
  542. package/node_modules/@turf/planepoint/dist/js/index.js +80 -0
  543. package/node_modules/@turf/planepoint/index.d.ts +9 -0
  544. package/node_modules/@turf/planepoint/package.json +88 -0
  545. package/node_modules/@turf/point-grid/LICENSE +20 -0
  546. package/node_modules/@turf/point-grid/README.md +80 -0
  547. package/node_modules/@turf/point-grid/dist/es/index.js +72 -0
  548. package/node_modules/@turf/point-grid/dist/es/package.json +1 -0
  549. package/node_modules/@turf/point-grid/dist/js/index.d.ts +28 -0
  550. package/node_modules/@turf/point-grid/dist/js/index.js +77 -0
  551. package/node_modules/@turf/point-grid/package.json +108 -0
  552. package/node_modules/@turf/point-on-feature/LICENSE +20 -0
  553. package/node_modules/@turf/point-on-feature/README.md +73 -0
  554. package/node_modules/@turf/point-on-feature/dist/es/index.js +149 -0
  555. package/node_modules/@turf/point-on-feature/dist/es/package.json +1 -0
  556. package/node_modules/@turf/point-on-feature/dist/js/index.js +159 -0
  557. package/node_modules/@turf/point-on-feature/index.d.ts +6 -0
  558. package/node_modules/@turf/point-on-feature/package.json +93 -0
  559. package/node_modules/@turf/point-to-line-distance/LICENSE +20 -0
  560. package/node_modules/@turf/point-to-line-distance/README.md +71 -0
  561. package/node_modules/@turf/point-to-line-distance/dist/es/index.js +106 -0
  562. package/node_modules/@turf/point-to-line-distance/dist/es/package.json +1 -0
  563. package/node_modules/@turf/point-to-line-distance/dist/js/index.d.ts +26 -0
  564. package/node_modules/@turf/point-to-line-distance/dist/js/index.js +111 -0
  565. package/node_modules/@turf/point-to-line-distance/package.json +106 -0
  566. package/node_modules/@turf/points-within-polygon/LICENSE +20 -0
  567. package/node_modules/@turf/points-within-polygon/README.md +86 -0
  568. package/node_modules/@turf/points-within-polygon/dist/es/index.js +71 -0
  569. package/node_modules/@turf/points-within-polygon/dist/es/package.json +1 -0
  570. package/node_modules/@turf/points-within-polygon/dist/js/index.js +78 -0
  571. package/node_modules/@turf/points-within-polygon/index.d.ts +21 -0
  572. package/node_modules/@turf/points-within-polygon/package.json +90 -0
  573. package/node_modules/@turf/polygon-smooth/LICENSE +20 -0
  574. package/node_modules/@turf/polygon-smooth/README.md +70 -0
  575. package/node_modules/@turf/polygon-smooth/dist/es/index.js +162 -0
  576. package/node_modules/@turf/polygon-smooth/dist/es/package.json +1 -0
  577. package/node_modules/@turf/polygon-smooth/dist/js/index.js +165 -0
  578. package/node_modules/@turf/polygon-smooth/index.d.ts +16 -0
  579. package/node_modules/@turf/polygon-smooth/package.json +95 -0
  580. package/node_modules/@turf/polygon-tangents/LICENSE +20 -0
  581. package/node_modules/@turf/polygon-tangents/README.md +67 -0
  582. package/node_modules/@turf/polygon-tangents/dist/es/index.js +147 -0
  583. package/node_modules/@turf/polygon-tangents/dist/es/package.json +1 -0
  584. package/node_modules/@turf/polygon-tangents/dist/js/index.js +156 -0
  585. package/node_modules/@turf/polygon-tangents/index.d.ts +16 -0
  586. package/node_modules/@turf/polygon-tangents/package.json +104 -0
  587. package/node_modules/@turf/polygon-to-line/LICENSE +20 -0
  588. package/node_modules/@turf/polygon-to-line/README.md +71 -0
  589. package/node_modules/@turf/polygon-to-line/dist/es/index.js +75 -0
  590. package/node_modules/@turf/polygon-to-line/dist/es/package.json +1 -0
  591. package/node_modules/@turf/polygon-to-line/dist/js/index.d.ts +37 -0
  592. package/node_modules/@turf/polygon-to-line/dist/js/index.js +81 -0
  593. package/node_modules/@turf/polygon-to-line/package.json +95 -0
  594. package/node_modules/@turf/polygonize/LICENSE +20 -0
  595. package/node_modules/@turf/polygonize/README.md +69 -0
  596. package/node_modules/@turf/polygonize/dist/es/index.js +46 -0
  597. package/node_modules/@turf/polygonize/dist/es/lib/Edge.js +77 -0
  598. package/node_modules/@turf/polygonize/dist/es/lib/EdgeRing.js +199 -0
  599. package/node_modules/@turf/polygonize/dist/es/lib/Graph.js +302 -0
  600. package/node_modules/@turf/polygonize/dist/es/lib/Node.js +93 -0
  601. package/node_modules/@turf/polygonize/dist/es/lib/util.js +66 -0
  602. package/node_modules/@turf/polygonize/dist/es/package.json +1 -0
  603. package/node_modules/@turf/polygonize/dist/js/index.d.ts +20 -0
  604. package/node_modules/@turf/polygonize/dist/js/index.js +52 -0
  605. package/node_modules/@turf/polygonize/dist/js/lib/Edge.d.ts +55 -0
  606. package/node_modules/@turf/polygonize/dist/js/lib/Edge.js +79 -0
  607. package/node_modules/@turf/polygonize/dist/js/lib/EdgeRing.d.ts +122 -0
  608. package/node_modules/@turf/polygonize/dist/js/lib/EdgeRing.js +204 -0
  609. package/node_modules/@turf/polygonize/dist/js/lib/Graph.d.ts +124 -0
  610. package/node_modules/@turf/polygonize/dist/js/lib/Graph.js +307 -0
  611. package/node_modules/@turf/polygonize/dist/js/lib/Node.d.ts +40 -0
  612. package/node_modules/@turf/polygonize/dist/js/lib/Node.js +95 -0
  613. package/node_modules/@turf/polygonize/dist/js/lib/util.d.ts +46 -0
  614. package/node_modules/@turf/polygonize/dist/js/lib/util.js +75 -0
  615. package/node_modules/@turf/polygonize/package.json +105 -0
  616. package/node_modules/@turf/projection/LICENSE +20 -0
  617. package/node_modules/@turf/projection/README.md +78 -0
  618. package/node_modules/@turf/projection/dist/es/index.js +137 -0
  619. package/node_modules/@turf/projection/dist/es/package.json +1 -0
  620. package/node_modules/@turf/projection/dist/js/index.d.ts +37 -0
  621. package/node_modules/@turf/projection/dist/js/index.js +144 -0
  622. package/node_modules/@turf/projection/package.json +113 -0
  623. package/node_modules/@turf/random/LICENSE +20 -0
  624. package/node_modules/@turf/random/README.md +129 -0
  625. package/node_modules/@turf/random/dist/es/index.js +188 -0
  626. package/node_modules/@turf/random/dist/es/package.json +1 -0
  627. package/node_modules/@turf/random/dist/js/index.d.ts +72 -0
  628. package/node_modules/@turf/random/dist/js/index.js +194 -0
  629. package/node_modules/@turf/random/package.json +88 -0
  630. package/node_modules/@turf/rectangle-grid/LICENSE +20 -0
  631. package/node_modules/@turf/rectangle-grid/README.md +60 -0
  632. package/node_modules/@turf/rectangle-grid/dist/es/index.js +77 -0
  633. package/node_modules/@turf/rectangle-grid/dist/es/package.json +1 -0
  634. package/node_modules/@turf/rectangle-grid/dist/js/index.d.ts +32 -0
  635. package/node_modules/@turf/rectangle-grid/dist/js/index.js +82 -0
  636. package/node_modules/@turf/rectangle-grid/package.json +104 -0
  637. package/node_modules/@turf/rewind/LICENSE +20 -0
  638. package/node_modules/@turf/rewind/README.md +64 -0
  639. package/node_modules/@turf/rewind/dist/es/index.js +134 -0
  640. package/node_modules/@turf/rewind/dist/es/package.json +1 -0
  641. package/node_modules/@turf/rewind/dist/js/index.js +142 -0
  642. package/node_modules/@turf/rewind/index.d.ts +12 -0
  643. package/node_modules/@turf/rewind/package.json +110 -0
  644. package/node_modules/@turf/rhumb-bearing/LICENSE +20 -0
  645. package/node_modules/@turf/rhumb-bearing/README.md +66 -0
  646. package/node_modules/@turf/rhumb-bearing/dist/es/index.js +69 -0
  647. package/node_modules/@turf/rhumb-bearing/dist/es/package.json +1 -0
  648. package/node_modules/@turf/rhumb-bearing/dist/js/index.d.ts +26 -0
  649. package/node_modules/@turf/rhumb-bearing/dist/js/index.js +71 -0
  650. package/node_modules/@turf/rhumb-bearing/package.json +112 -0
  651. package/node_modules/@turf/rhumb-destination/LICENSE +20 -0
  652. package/node_modules/@turf/rhumb-destination/README.md +73 -0
  653. package/node_modules/@turf/rhumb-destination/dist/es/index.js +86 -0
  654. package/node_modules/@turf/rhumb-destination/dist/es/package.json +1 -0
  655. package/node_modules/@turf/rhumb-destination/dist/js/index.d.ts +30 -0
  656. package/node_modules/@turf/rhumb-destination/dist/js/index.js +88 -0
  657. package/node_modules/@turf/rhumb-destination/package.json +116 -0
  658. package/node_modules/@turf/rhumb-distance/LICENSE +20 -0
  659. package/node_modules/@turf/rhumb-distance/README.md +67 -0
  660. package/node_modules/@turf/rhumb-distance/dist/es/index.js +84 -0
  661. package/node_modules/@turf/rhumb-distance/dist/es/package.json +1 -0
  662. package/node_modules/@turf/rhumb-distance/dist/js/index.d.ts +27 -0
  663. package/node_modules/@turf/rhumb-distance/dist/js/index.js +86 -0
  664. package/node_modules/@turf/rhumb-distance/package.json +113 -0
  665. package/node_modules/@turf/sample/LICENSE +20 -0
  666. package/node_modules/@turf/sample/README.md +62 -0
  667. package/node_modules/@turf/sample/dist/es/index.js +50 -0
  668. package/node_modules/@turf/sample/dist/es/package.json +1 -0
  669. package/node_modules/@turf/sample/dist/js/index.js +53 -0
  670. package/node_modules/@turf/sample/index.d.ts +9 -0
  671. package/node_modules/@turf/sample/package.json +85 -0
  672. package/node_modules/@turf/sector/LICENSE +20 -0
  673. package/node_modules/@turf/sector/README.md +74 -0
  674. package/node_modules/@turf/sector/dist/es/index.js +75 -0
  675. package/node_modules/@turf/sector/dist/es/package.json +1 -0
  676. package/node_modules/@turf/sector/dist/js/index.js +83 -0
  677. package/node_modules/@turf/sector/index.d.ts +16 -0
  678. package/node_modules/@turf/sector/package.json +91 -0
  679. package/node_modules/@turf/shortest-path/LICENSE +20 -0
  680. package/node_modules/@turf/shortest-path/README.md +86 -0
  681. package/node_modules/@turf/shortest-path/dist/es/index.js +589 -0
  682. package/node_modules/@turf/shortest-path/dist/es/package.json +1 -0
  683. package/node_modules/@turf/shortest-path/dist/js/index.js +601 -0
  684. package/node_modules/@turf/shortest-path/index.d.ts +22 -0
  685. package/node_modules/@turf/shortest-path/package.json +106 -0
  686. package/node_modules/@turf/simplify/LICENSE +20 -0
  687. package/node_modules/@turf/simplify/README.md +87 -0
  688. package/node_modules/@turf/simplify/dist/es/index.js +300 -0
  689. package/node_modules/@turf/simplify/dist/es/package.json +1 -0
  690. package/node_modules/@turf/simplify/dist/js/index.js +308 -0
  691. package/node_modules/@turf/simplify/index.d.ts +13 -0
  692. package/node_modules/@turf/simplify/package.json +104 -0
  693. package/node_modules/@turf/square/LICENSE +20 -0
  694. package/node_modules/@turf/square/README.md +51 -0
  695. package/node_modules/@turf/square/dist/es/index.js +44 -0
  696. package/node_modules/@turf/square/dist/es/package.json +1 -0
  697. package/node_modules/@turf/square/dist/js/index.js +51 -0
  698. package/node_modules/@turf/square/index.d.ts +6 -0
  699. package/node_modules/@turf/square/package.json +87 -0
  700. package/node_modules/@turf/square-grid/LICENSE +20 -0
  701. package/node_modules/@turf/square-grid/README.md +58 -0
  702. package/node_modules/@turf/square-grid/dist/es/index.js +28 -0
  703. package/node_modules/@turf/square-grid/dist/es/package.json +1 -0
  704. package/node_modules/@turf/square-grid/dist/js/index.d.ts +29 -0
  705. package/node_modules/@turf/square-grid/dist/js/index.js +34 -0
  706. package/node_modules/@turf/square-grid/package.json +95 -0
  707. package/node_modules/@turf/standard-deviational-ellipse/LICENSE +20 -0
  708. package/node_modules/@turf/standard-deviational-ellipse/README.md +94 -0
  709. package/node_modules/@turf/standard-deviational-ellipse/dist/es/index.js +151 -0
  710. package/node_modules/@turf/standard-deviational-ellipse/dist/es/package.json +1 -0
  711. package/node_modules/@turf/standard-deviational-ellipse/dist/js/index.js +160 -0
  712. package/node_modules/@turf/standard-deviational-ellipse/index.d.ts +37 -0
  713. package/node_modules/@turf/standard-deviational-ellipse/package.json +101 -0
  714. package/node_modules/@turf/tag/LICENSE +20 -0
  715. package/node_modules/@turf/tag/README.md +70 -0
  716. package/node_modules/@turf/tag/dist/es/index.js +56 -0
  717. package/node_modules/@turf/tag/dist/es/package.json +1 -0
  718. package/node_modules/@turf/tag/dist/js/index.js +64 -0
  719. package/node_modules/@turf/tag/index.d.ts +11 -0
  720. package/node_modules/@turf/tag/package.json +93 -0
  721. package/node_modules/@turf/tesselate/LICENSE +20 -0
  722. package/node_modules/@turf/tesselate/README.md +61 -0
  723. package/node_modules/@turf/tesselate/dist/es/index.js +79 -0
  724. package/node_modules/@turf/tesselate/dist/es/package.json +1 -0
  725. package/node_modules/@turf/tesselate/dist/js/index.js +86 -0
  726. package/node_modules/@turf/tesselate/index.d.ts +6 -0
  727. package/node_modules/@turf/tesselate/package.json +106 -0
  728. package/node_modules/@turf/tin/LICENSE +20 -0
  729. package/node_modules/@turf/tin/README.md +79 -0
  730. package/node_modules/@turf/tin/dist/es/index.js +240 -0
  731. package/node_modules/@turf/tin/dist/es/package.json +1 -0
  732. package/node_modules/@turf/tin/dist/js/index.d.ts +44 -0
  733. package/node_modules/@turf/tin/dist/js/index.js +243 -0
  734. package/node_modules/@turf/tin/package.json +90 -0
  735. package/node_modules/@turf/transform-rotate/LICENSE +20 -0
  736. package/node_modules/@turf/transform-rotate/README.md +67 -0
  737. package/node_modules/@turf/transform-rotate/dist/es/index.js +62 -0
  738. package/node_modules/@turf/transform-rotate/dist/es/package.json +1 -0
  739. package/node_modules/@turf/transform-rotate/dist/js/index.js +73 -0
  740. package/node_modules/@turf/transform-rotate/index.d.ts +13 -0
  741. package/node_modules/@turf/transform-rotate/package.json +107 -0
  742. package/node_modules/@turf/transform-scale/LICENSE +20 -0
  743. package/node_modules/@turf/transform-scale/README.md +66 -0
  744. package/node_modules/@turf/transform-scale/dist/es/index.js +144 -0
  745. package/node_modules/@turf/transform-scale/dist/es/package.json +1 -0
  746. package/node_modules/@turf/transform-scale/dist/js/index.js +157 -0
  747. package/node_modules/@turf/transform-scale/index.d.ts +13 -0
  748. package/node_modules/@turf/transform-scale/package.json +115 -0
  749. package/node_modules/@turf/transform-translate/LICENSE +20 -0
  750. package/node_modules/@turf/transform-translate/README.md +66 -0
  751. package/node_modules/@turf/transform-translate/dist/es/index.js +72 -0
  752. package/node_modules/@turf/transform-translate/dist/es/package.json +1 -0
  753. package/node_modules/@turf/transform-translate/dist/js/index.js +80 -0
  754. package/node_modules/@turf/transform-translate/index.d.ts +15 -0
  755. package/node_modules/@turf/transform-translate/package.json +105 -0
  756. package/node_modules/@turf/triangle-grid/LICENSE +20 -0
  757. package/node_modules/@turf/triangle-grid/README.md +72 -0
  758. package/node_modules/@turf/triangle-grid/dist/es/index.js +139 -0
  759. package/node_modules/@turf/triangle-grid/dist/es/package.json +1 -0
  760. package/node_modules/@turf/triangle-grid/dist/js/index.d.ts +28 -0
  761. package/node_modules/@turf/triangle-grid/dist/js/index.js +144 -0
  762. package/node_modules/@turf/triangle-grid/package.json +99 -0
  763. package/node_modules/@turf/truncate/LICENSE +20 -0
  764. package/node_modules/@turf/truncate/README.md +66 -0
  765. package/node_modules/@turf/truncate/dist/es/index.js +76 -0
  766. package/node_modules/@turf/truncate/dist/es/package.json +1 -0
  767. package/node_modules/@turf/truncate/dist/js/index.d.ts +30 -0
  768. package/node_modules/@turf/truncate/dist/js/index.js +78 -0
  769. package/node_modules/@turf/truncate/package.json +100 -0
  770. package/node_modules/@turf/turf/LICENSE +20 -0
  771. package/node_modules/@turf/turf/README.md +31 -0
  772. package/node_modules/@turf/turf/dist/es/index.js +118 -0
  773. package/node_modules/@turf/turf/dist/es/package.json +1 -0
  774. package/node_modules/@turf/turf/dist/js/index.js +984 -0
  775. package/node_modules/@turf/turf/index.d.ts +146 -0
  776. package/node_modules/@turf/turf/package.json +216 -0
  777. package/node_modules/@turf/turf/turf.min.js +88 -0
  778. package/node_modules/@turf/union/LICENSE +20 -0
  779. package/node_modules/@turf/union/README.md +77 -0
  780. package/node_modules/@turf/union/dist/es/index.js +46 -0
  781. package/node_modules/@turf/union/dist/es/package.json +1 -0
  782. package/node_modules/@turf/union/dist/js/index.d.ts +35 -0
  783. package/node_modules/@turf/union/dist/js/index.js +51 -0
  784. package/node_modules/@turf/union/package.json +94 -0
  785. package/node_modules/@turf/unkink-polygon/LICENSE +20 -0
  786. package/node_modules/@turf/unkink-polygon/README.md +60 -0
  787. package/node_modules/@turf/unkink-polygon/dist/es/index.js +790 -0
  788. package/node_modules/@turf/unkink-polygon/dist/es/package.json +1 -0
  789. package/node_modules/@turf/unkink-polygon/dist/js/index.js +799 -0
  790. package/node_modules/@turf/unkink-polygon/index.d.ts +13 -0
  791. package/node_modules/@turf/unkink-polygon/node_modules/quickselect/LICENSE +15 -0
  792. package/node_modules/@turf/unkink-polygon/node_modules/quickselect/README.md +28 -0
  793. package/node_modules/@turf/unkink-polygon/node_modules/quickselect/index.js +54 -0
  794. package/node_modules/@turf/unkink-polygon/node_modules/quickselect/package.json +69 -0
  795. package/node_modules/@turf/unkink-polygon/node_modules/quickselect/quickselect.js +63 -0
  796. package/node_modules/@turf/unkink-polygon/node_modules/rbush/LICENSE +21 -0
  797. package/node_modules/@turf/unkink-polygon/node_modules/rbush/README.md +291 -0
  798. package/node_modules/@turf/unkink-polygon/node_modules/rbush/index.js +562 -0
  799. package/node_modules/@turf/unkink-polygon/node_modules/rbush/package.json +85 -0
  800. package/node_modules/@turf/unkink-polygon/node_modules/rbush/rbush.js +626 -0
  801. package/node_modules/@turf/unkink-polygon/node_modules/rbush/rbush.min.js +1 -0
  802. package/node_modules/@turf/unkink-polygon/package.json +94 -0
  803. package/node_modules/@turf/voronoi/LICENSE +20 -0
  804. package/node_modules/@turf/voronoi/README.md +68 -0
  805. package/node_modules/@turf/voronoi/dist/es/index.js +66 -0
  806. package/node_modules/@turf/voronoi/dist/es/package.json +1 -0
  807. package/node_modules/@turf/voronoi/dist/js/index.js +69 -0
  808. package/node_modules/@turf/voronoi/index.d.ts +9 -0
  809. package/node_modules/@turf/voronoi/package.json +109 -0
  810. package/node_modules/@types/geojson/LICENSE +21 -0
  811. package/node_modules/@types/geojson/README.md +16 -0
  812. package/node_modules/@types/geojson/index.d.ts +175 -0
  813. package/node_modules/@types/geojson/package.json +69 -0
  814. package/node_modules/call-bind/.eslintignore +1 -0
  815. package/node_modules/call-bind/.eslintrc +17 -0
  816. package/node_modules/call-bind/.github/FUNDING.yml +12 -0
  817. package/node_modules/call-bind/.nycrc +13 -0
  818. package/node_modules/call-bind/CHANGELOG.md +42 -0
  819. package/node_modules/call-bind/LICENSE +21 -0
  820. package/node_modules/call-bind/README.md +2 -0
  821. package/node_modules/call-bind/callBound.js +15 -0
  822. package/node_modules/call-bind/index.js +47 -0
  823. package/node_modules/call-bind/package.json +111 -0
  824. package/node_modules/call-bind/test/callBound.js +55 -0
  825. package/node_modules/call-bind/test/index.js +66 -0
  826. package/node_modules/commander/CHANGELOG.md +419 -0
  827. package/node_modules/commander/LICENSE +22 -0
  828. package/node_modules/commander/Readme.md +428 -0
  829. package/node_modules/commander/index.js +1224 -0
  830. package/node_modules/commander/package.json +71 -0
  831. package/node_modules/commander/typings/index.d.ts +310 -0
  832. package/node_modules/concaveman/.travis.yml +4 -0
  833. package/node_modules/concaveman/LICENSE +15 -0
  834. package/node_modules/concaveman/README.md +52 -0
  835. package/node_modules/concaveman/index.js +383 -0
  836. package/node_modules/concaveman/package.json +69 -0
  837. package/node_modules/d3-array/.eslintrc.json +15 -0
  838. package/node_modules/d3-array/LICENSE +27 -0
  839. package/node_modules/d3-array/README.md +382 -0
  840. package/node_modules/d3-array/dist/d3-array.js +590 -0
  841. package/node_modules/d3-array/dist/d3-array.min.js +2 -0
  842. package/node_modules/d3-array/package.json +70 -0
  843. package/node_modules/d3-array/rollup.config.js +36 -0
  844. package/node_modules/d3-array/src/array.js +4 -0
  845. package/node_modules/d3-array/src/ascending.js +3 -0
  846. package/node_modules/d3-array/src/bisect.js +7 -0
  847. package/node_modules/d3-array/src/bisector.js +33 -0
  848. package/node_modules/d3-array/src/constant.js +5 -0
  849. package/node_modules/d3-array/src/cross.js +21 -0
  850. package/node_modules/d3-array/src/descending.js +3 -0
  851. package/node_modules/d3-array/src/deviation.js +6 -0
  852. package/node_modules/d3-array/src/extent.js +37 -0
  853. package/node_modules/d3-array/src/histogram.js +75 -0
  854. package/node_modules/d3-array/src/identity.js +3 -0
  855. package/node_modules/d3-array/src/index.js +27 -0
  856. package/node_modules/d3-array/src/max.js +34 -0
  857. package/node_modules/d3-array/src/mean.js +25 -0
  858. package/node_modules/d3-array/src/median.js +28 -0
  859. package/node_modules/d3-array/src/merge.js +21 -0
  860. package/node_modules/d3-array/src/min.js +34 -0
  861. package/node_modules/d3-array/src/number.js +3 -0
  862. package/node_modules/d3-array/src/pairs.js +10 -0
  863. package/node_modules/d3-array/src/permute.js +5 -0
  864. package/node_modules/d3-array/src/quantile.js +14 -0
  865. package/node_modules/d3-array/src/range.js +13 -0
  866. package/node_modules/d3-array/src/scan.js +20 -0
  867. package/node_modules/d3-array/src/shuffle.js +14 -0
  868. package/node_modules/d3-array/src/sum.js +20 -0
  869. package/node_modules/d3-array/src/threshold/freedmanDiaconis.js +9 -0
  870. package/node_modules/d3-array/src/threshold/scott.js +5 -0
  871. package/node_modules/d3-array/src/threshold/sturges.js +3 -0
  872. package/node_modules/d3-array/src/ticks.js +51 -0
  873. package/node_modules/d3-array/src/transpose.js +15 -0
  874. package/node_modules/d3-array/src/variance.js +33 -0
  875. package/node_modules/d3-array/src/zip.js +5 -0
  876. package/node_modules/d3-array/yarn.lock +939 -0
  877. package/node_modules/d3-geo/.eslintrc +13 -0
  878. package/node_modules/d3-geo/LICENSE +48 -0
  879. package/node_modules/d3-geo/README.md +619 -0
  880. package/node_modules/d3-geo/build/d3-geo.js +2987 -0
  881. package/node_modules/d3-geo/build/d3-geo.min.js +2 -0
  882. package/node_modules/d3-geo/img/albers.png +0 -0
  883. package/node_modules/d3-geo/img/albersUsa-parameters.png +0 -0
  884. package/node_modules/d3-geo/img/albersUsa.png +0 -0
  885. package/node_modules/d3-geo/img/azimuthalEqualArea.png +0 -0
  886. package/node_modules/d3-geo/img/azimuthalEquidistant.png +0 -0
  887. package/node_modules/d3-geo/img/conicConformal.png +0 -0
  888. package/node_modules/d3-geo/img/conicEqualArea.png +0 -0
  889. package/node_modules/d3-geo/img/conicEquidistant.png +0 -0
  890. package/node_modules/d3-geo/img/equirectangular.png +0 -0
  891. package/node_modules/d3-geo/img/gnomonic.png +0 -0
  892. package/node_modules/d3-geo/img/graticule.png +0 -0
  893. package/node_modules/d3-geo/img/mercator.png +0 -0
  894. package/node_modules/d3-geo/img/naturalEarth1.png +0 -0
  895. package/node_modules/d3-geo/img/orthographic.png +0 -0
  896. package/node_modules/d3-geo/img/stereographic.png +0 -0
  897. package/node_modules/d3-geo/img/transverseMercator.png +0 -0
  898. package/node_modules/d3-geo/index.js +30 -0
  899. package/node_modules/d3-geo/package.json +72 -0
  900. package/node_modules/d3-geo/rollup.config.js +15 -0
  901. package/node_modules/d3-geo/src/adder.js +40 -0
  902. package/node_modules/d3-geo/src/area.js +74 -0
  903. package/node_modules/d3-geo/src/bounds.js +176 -0
  904. package/node_modules/d3-geo/src/cartesian.js +33 -0
  905. package/node_modules/d3-geo/src/centroid.js +140 -0
  906. package/node_modules/d3-geo/src/circle.js +72 -0
  907. package/node_modules/d3-geo/src/clip/antimeridian.js +92 -0
  908. package/node_modules/d3-geo/src/clip/buffer.js +24 -0
  909. package/node_modules/d3-geo/src/clip/circle.js +181 -0
  910. package/node_modules/d3-geo/src/clip/extent.js +187 -0
  911. package/node_modules/d3-geo/src/clip/index.js +135 -0
  912. package/node_modules/d3-geo/src/clip/line.js +59 -0
  913. package/node_modules/d3-geo/src/clip/polygon.js +101 -0
  914. package/node_modules/d3-geo/src/compose.js +12 -0
  915. package/node_modules/d3-geo/src/constant.js +5 -0
  916. package/node_modules/d3-geo/src/contains.js +84 -0
  917. package/node_modules/d3-geo/src/distance.js +10 -0
  918. package/node_modules/d3-geo/src/graticule.js +105 -0
  919. package/node_modules/d3-geo/src/identity.js +3 -0
  920. package/node_modules/d3-geo/src/interpolate.js +36 -0
  921. package/node_modules/d3-geo/src/length.js +53 -0
  922. package/node_modules/d3-geo/src/math.js +35 -0
  923. package/node_modules/d3-geo/src/noop.js +1 -0
  924. package/node_modules/d3-geo/src/path/area.js +50 -0
  925. package/node_modules/d3-geo/src/path/bounds.js +28 -0
  926. package/node_modules/d3-geo/src/path/centroid.js +100 -0
  927. package/node_modules/d3-geo/src/path/context.js +45 -0
  928. package/node_modules/d3-geo/src/path/index.js +61 -0
  929. package/node_modules/d3-geo/src/path/measure.js +45 -0
  930. package/node_modules/d3-geo/src/path/string.js +59 -0
  931. package/node_modules/d3-geo/src/pointEqual.js +5 -0
  932. package/node_modules/d3-geo/src/polygonContains.js +68 -0
  933. package/node_modules/d3-geo/src/projection/albers.js +10 -0
  934. package/node_modules/d3-geo/src/projection/albersUsa.js +103 -0
  935. package/node_modules/d3-geo/src/projection/azimuthal.js +26 -0
  936. package/node_modules/d3-geo/src/projection/azimuthalEqualArea.js +17 -0
  937. package/node_modules/d3-geo/src/projection/azimuthalEquidistant.js +17 -0
  938. package/node_modules/d3-geo/src/projection/conic.js +15 -0
  939. package/node_modules/d3-geo/src/projection/conicConformal.js +35 -0
  940. package/node_modules/d3-geo/src/projection/conicEqualArea.js +30 -0
  941. package/node_modules/d3-geo/src/projection/conicEquidistant.js +29 -0
  942. package/node_modules/d3-geo/src/projection/cylindricalEqualArea.js +15 -0
  943. package/node_modules/d3-geo/src/projection/equirectangular.js +12 -0
  944. package/node_modules/d3-geo/src/projection/fit.js +31 -0
  945. package/node_modules/d3-geo/src/projection/gnomonic.js +16 -0
  946. package/node_modules/d3-geo/src/projection/identity.js +52 -0
  947. package/node_modules/d3-geo/src/projection/index.js +106 -0
  948. package/node_modules/d3-geo/src/projection/mercator.js +52 -0
  949. package/node_modules/d3-geo/src/projection/naturalEarth1.js +28 -0
  950. package/node_modules/d3-geo/src/projection/orthographic.js +15 -0
  951. package/node_modules/d3-geo/src/projection/resample.js +102 -0
  952. package/node_modules/d3-geo/src/projection/stereographic.js +18 -0
  953. package/node_modules/d3-geo/src/projection/transverseMercator.js +27 -0
  954. package/node_modules/d3-geo/src/rotation.js +76 -0
  955. package/node_modules/d3-geo/src/stream.js +69 -0
  956. package/node_modules/d3-geo/src/transform.js +26 -0
  957. package/node_modules/d3-voronoi/.eslintrc +9 -0
  958. package/node_modules/d3-voronoi/.npmignore +3 -0
  959. package/node_modules/d3-voronoi/LICENSE +50 -0
  960. package/node_modules/d3-voronoi/README.md +160 -0
  961. package/node_modules/d3-voronoi/build/d3-voronoi.js +999 -0
  962. package/node_modules/d3-voronoi/build/d3-voronoi.min.js +2 -0
  963. package/node_modules/d3-voronoi/graph.png +0 -0
  964. package/node_modules/d3-voronoi/index.js +1 -0
  965. package/node_modules/d3-voronoi/package.json +65 -0
  966. package/node_modules/d3-voronoi/src/Beach.js +193 -0
  967. package/node_modules/d3-voronoi/src/Cell.js +126 -0
  968. package/node_modules/d3-voronoi/src/Circle.js +78 -0
  969. package/node_modules/d3-voronoi/src/Diagram.js +142 -0
  970. package/node_modules/d3-voronoi/src/Edge.js +168 -0
  971. package/node_modules/d3-voronoi/src/RedBlackTree.js +237 -0
  972. package/node_modules/d3-voronoi/src/constant.js +5 -0
  973. package/node_modules/d3-voronoi/src/point.js +7 -0
  974. package/node_modules/d3-voronoi/src/voronoi.js +48 -0
  975. package/node_modules/deep-equal/.eslintrc +22 -0
  976. package/node_modules/deep-equal/.travis.yml +12 -0
  977. package/node_modules/deep-equal/CHANGELOG.md +120 -0
  978. package/node_modules/deep-equal/LICENSE +21 -0
  979. package/node_modules/deep-equal/example/cmp.js +11 -0
  980. package/node_modules/deep-equal/index.js +112 -0
  981. package/node_modules/deep-equal/lib/is_arguments.js +1 -0
  982. package/node_modules/deep-equal/lib/keys.js +1 -0
  983. package/node_modules/deep-equal/package.json +117 -0
  984. package/node_modules/deep-equal/readme.markdown +57 -0
  985. package/node_modules/deep-equal/test/_tape.js +21 -0
  986. package/node_modules/deep-equal/test/cmp.js +344 -0
  987. package/node_modules/define-properties/.editorconfig +13 -0
  988. package/node_modules/define-properties/.eslintrc +12 -0
  989. package/node_modules/define-properties/.jscs.json +175 -0
  990. package/node_modules/define-properties/.travis.yml +233 -0
  991. package/node_modules/define-properties/CHANGELOG.md +44 -0
  992. package/node_modules/define-properties/LICENSE +21 -0
  993. package/node_modules/define-properties/README.md +86 -0
  994. package/node_modules/define-properties/index.js +58 -0
  995. package/node_modules/define-properties/package.json +97 -0
  996. package/node_modules/define-properties/test/index.js +125 -0
  997. package/node_modules/density-clustering/.jscsrc +64 -0
  998. package/node_modules/density-clustering/.jshintrc +5 -0
  999. package/node_modules/density-clustering/.remote-sync.json +13 -0
  1000. package/node_modules/density-clustering/CHANGELOG.md +11 -0
  1001. package/node_modules/density-clustering/LICENSE +22 -0
  1002. package/node_modules/density-clustering/README.md +171 -0
  1003. package/node_modules/density-clustering/bower.json +40 -0
  1004. package/node_modules/density-clustering/example/browser.html +20 -0
  1005. package/node_modules/density-clustering/example/dbscan.js +11 -0
  1006. package/node_modules/density-clustering/example/kmeans.js +11 -0
  1007. package/node_modules/density-clustering/example/optics.js +12 -0
  1008. package/node_modules/density-clustering/example/priorityQueue.js +12 -0
  1009. package/node_modules/density-clustering/gulpfile.js +30 -0
  1010. package/node_modules/density-clustering/lib/DBSCAN.js +236 -0
  1011. package/node_modules/density-clustering/lib/KMEANS.js +213 -0
  1012. package/node_modules/density-clustering/lib/OPTICS.js +269 -0
  1013. package/node_modules/density-clustering/lib/PriorityQueue.js +180 -0
  1014. package/node_modules/density-clustering/lib/Utils.js +37 -0
  1015. package/node_modules/density-clustering/lib/index.js +9 -0
  1016. package/node_modules/density-clustering/package.json +70 -0
  1017. package/node_modules/density-clustering/test/DBSCAN.test.js +73 -0
  1018. package/node_modules/density-clustering/test/KMEANS.test.js +70 -0
  1019. package/node_modules/density-clustering/test/OPTICS.test.js +98 -0
  1020. package/node_modules/density-clustering/test/PriorityQueue.test.js +27 -0
  1021. package/node_modules/earcut/LICENSE +15 -0
  1022. package/node_modules/earcut/README.md +246 -0
  1023. package/node_modules/earcut/dist/earcut.dev.js +690 -0
  1024. package/node_modules/earcut/dist/earcut.min.js +1 -0
  1025. package/node_modules/earcut/package.json +77 -0
  1026. package/node_modules/earcut/src/earcut.js +684 -0
  1027. package/node_modules/function-bind/.editorconfig +20 -0
  1028. package/node_modules/function-bind/.eslintrc +15 -0
  1029. package/node_modules/function-bind/.jscs.json +176 -0
  1030. package/node_modules/function-bind/.npmignore +22 -0
  1031. package/node_modules/function-bind/.travis.yml +168 -0
  1032. package/node_modules/function-bind/LICENSE +20 -0
  1033. package/node_modules/function-bind/README.md +48 -0
  1034. package/node_modules/function-bind/implementation.js +52 -0
  1035. package/node_modules/function-bind/index.js +5 -0
  1036. package/node_modules/function-bind/package.json +96 -0
  1037. package/node_modules/function-bind/test/.eslintrc +9 -0
  1038. package/node_modules/function-bind/test/index.js +252 -0
  1039. package/node_modules/geojson-equality/.npmignore +2 -0
  1040. package/node_modules/geojson-equality/LICENSE.md +22 -0
  1041. package/node_modules/geojson-equality/README.md +78 -0
  1042. package/node_modules/geojson-equality/dist/geojson-equality.js +295 -0
  1043. package/node_modules/geojson-equality/dist/geojson-equality.js.map +21 -0
  1044. package/node_modules/geojson-equality/dist/geojson-equality.min.js +1 -0
  1045. package/node_modules/geojson-equality/index.js +161 -0
  1046. package/node_modules/geojson-equality/package.json +74 -0
  1047. package/node_modules/geojson-equality/test/mocha.opts +1 -0
  1048. package/node_modules/geojson-equality/test/test.js +364 -0
  1049. package/node_modules/geojson-rbush/LICENSE +20 -0
  1050. package/node_modules/geojson-rbush/README.md +213 -0
  1051. package/node_modules/geojson-rbush/index.d.ts +19 -0
  1052. package/node_modules/geojson-rbush/index.js +208 -0
  1053. package/node_modules/geojson-rbush/package.json +89 -0
  1054. package/node_modules/get-intrinsic/.eslintignore +1 -0
  1055. package/node_modules/get-intrinsic/.eslintrc +43 -0
  1056. package/node_modules/get-intrinsic/.github/FUNDING.yml +12 -0
  1057. package/node_modules/get-intrinsic/.nycrc +13 -0
  1058. package/node_modules/get-intrinsic/CHANGELOG.md +64 -0
  1059. package/node_modules/get-intrinsic/LICENSE +21 -0
  1060. package/node_modules/get-intrinsic/README.md +65 -0
  1061. package/node_modules/get-intrinsic/index.js +330 -0
  1062. package/node_modules/get-intrinsic/package.json +106 -0
  1063. package/node_modules/get-intrinsic/test/GetIntrinsic.js +260 -0
  1064. package/node_modules/has/LICENSE-MIT +22 -0
  1065. package/node_modules/has/README.md +18 -0
  1066. package/node_modules/has/package.json +73 -0
  1067. package/node_modules/has/src/index.js +5 -0
  1068. package/node_modules/has/test/index.js +10 -0
  1069. package/node_modules/has-symbols/.eslintrc +11 -0
  1070. package/node_modules/has-symbols/.github/FUNDING.yml +12 -0
  1071. package/node_modules/has-symbols/.nycrc +9 -0
  1072. package/node_modules/has-symbols/CHANGELOG.md +75 -0
  1073. package/node_modules/has-symbols/LICENSE +21 -0
  1074. package/node_modules/has-symbols/README.md +46 -0
  1075. package/node_modules/has-symbols/index.js +13 -0
  1076. package/node_modules/has-symbols/package.json +127 -0
  1077. package/node_modules/has-symbols/shams.js +42 -0
  1078. package/node_modules/has-symbols/test/index.js +22 -0
  1079. package/node_modules/has-symbols/test/shams/core-js.js +28 -0
  1080. package/node_modules/has-symbols/test/shams/get-own-property-symbols.js +28 -0
  1081. package/node_modules/has-symbols/test/tests.js +56 -0
  1082. package/node_modules/has-tostringtag/.eslintrc +11 -0
  1083. package/node_modules/has-tostringtag/.github/FUNDING.yml +12 -0
  1084. package/node_modules/has-tostringtag/CHANGELOG.md +20 -0
  1085. package/node_modules/has-tostringtag/LICENSE +21 -0
  1086. package/node_modules/has-tostringtag/README.md +46 -0
  1087. package/node_modules/has-tostringtag/index.js +7 -0
  1088. package/node_modules/has-tostringtag/package.json +111 -0
  1089. package/node_modules/has-tostringtag/shams.js +7 -0
  1090. package/node_modules/has-tostringtag/test/index.js +21 -0
  1091. package/node_modules/has-tostringtag/test/shams/core-js.js +28 -0
  1092. package/node_modules/has-tostringtag/test/shams/get-own-property-symbols.js +28 -0
  1093. package/node_modules/has-tostringtag/test/tests.js +14 -0
  1094. package/node_modules/is-arguments/.editorconfig +20 -0
  1095. package/node_modules/is-arguments/.eslintignore +1 -0
  1096. package/node_modules/is-arguments/.eslintrc +10 -0
  1097. package/node_modules/is-arguments/.github/FUNDING.yml +12 -0
  1098. package/node_modules/is-arguments/.nycrc +9 -0
  1099. package/node_modules/is-arguments/CHANGELOG.md +179 -0
  1100. package/node_modules/is-arguments/LICENSE +20 -0
  1101. package/node_modules/is-arguments/README.md +47 -0
  1102. package/node_modules/is-arguments/index.js +33 -0
  1103. package/node_modules/is-arguments/package.json +116 -0
  1104. package/node_modules/is-arguments/test/index.js +44 -0
  1105. package/node_modules/is-date-object/.editorconfig +20 -0
  1106. package/node_modules/is-date-object/.eslintignore +1 -0
  1107. package/node_modules/is-date-object/.eslintrc +9 -0
  1108. package/node_modules/is-date-object/.github/FUNDING.yml +12 -0
  1109. package/node_modules/is-date-object/.nycrc +10 -0
  1110. package/node_modules/is-date-object/CHANGELOG.md +114 -0
  1111. package/node_modules/is-date-object/LICENSE +22 -0
  1112. package/node_modules/is-date-object/README.md +52 -0
  1113. package/node_modules/is-date-object/index.js +22 -0
  1114. package/node_modules/is-date-object/package.json +110 -0
  1115. package/node_modules/is-date-object/test/index.js +36 -0
  1116. package/node_modules/is-regex/.editorconfig +20 -0
  1117. package/node_modules/is-regex/.eslintignore +1 -0
  1118. package/node_modules/is-regex/.eslintrc +19 -0
  1119. package/node_modules/is-regex/.nycrc +10 -0
  1120. package/node_modules/is-regex/CHANGELOG.md +197 -0
  1121. package/node_modules/is-regex/LICENSE +20 -0
  1122. package/node_modules/is-regex/README.md +52 -0
  1123. package/node_modules/is-regex/index.js +58 -0
  1124. package/node_modules/is-regex/package.json +114 -0
  1125. package/node_modules/is-regex/test/index.js +104 -0
  1126. package/node_modules/object-assign/index.js +90 -0
  1127. package/node_modules/object-assign/license +21 -0
  1128. package/node_modules/object-assign/package.json +76 -0
  1129. package/node_modules/object-assign/readme.md +61 -0
  1130. package/node_modules/object-is/.eslintignore +1 -0
  1131. package/node_modules/object-is/.eslintrc +5 -0
  1132. package/node_modules/object-is/.nycrc +13 -0
  1133. package/node_modules/object-is/CHANGELOG.md +150 -0
  1134. package/node_modules/object-is/LICENSE +20 -0
  1135. package/node_modules/object-is/README.md +60 -0
  1136. package/node_modules/object-is/auto.js +3 -0
  1137. package/node_modules/object-is/implementation.js +19 -0
  1138. package/node_modules/object-is/index.js +18 -0
  1139. package/node_modules/object-is/package.json +114 -0
  1140. package/node_modules/object-is/polyfill.js +7 -0
  1141. package/node_modules/object-is/shim.js +14 -0
  1142. package/node_modules/object-is/test/implementation.js +12 -0
  1143. package/node_modules/object-is/test/index.js +12 -0
  1144. package/node_modules/object-is/test/shimmed.js +28 -0
  1145. package/node_modules/object-is/test/tests.js +57 -0
  1146. package/node_modules/object-keys/.editorconfig +13 -0
  1147. package/node_modules/object-keys/.eslintrc +17 -0
  1148. package/node_modules/object-keys/.travis.yml +277 -0
  1149. package/node_modules/object-keys/CHANGELOG.md +232 -0
  1150. package/node_modules/object-keys/LICENSE +21 -0
  1151. package/node_modules/object-keys/README.md +76 -0
  1152. package/node_modules/object-keys/implementation.js +122 -0
  1153. package/node_modules/object-keys/index.js +32 -0
  1154. package/node_modules/object-keys/isArguments.js +17 -0
  1155. package/node_modules/object-keys/package.json +118 -0
  1156. package/node_modules/object-keys/test/index.js +5 -0
  1157. package/node_modules/point-in-polygon/LICENSE +21 -0
  1158. package/node_modules/point-in-polygon/example/inside.js +6 -0
  1159. package/node_modules/point-in-polygon/flat.js +15 -0
  1160. package/node_modules/point-in-polygon/index.js +12 -0
  1161. package/node_modules/point-in-polygon/nested.js +18 -0
  1162. package/node_modules/point-in-polygon/package.json +61 -0
  1163. package/node_modules/point-in-polygon/readme.markdown +51 -0
  1164. package/node_modules/point-in-polygon/test/box-offset.js +24 -0
  1165. package/node_modules/point-in-polygon/test/box.js +34 -0
  1166. package/node_modules/point-in-polygon/test/flat-offset.js +24 -0
  1167. package/node_modules/point-in-polygon/test/flat.js +24 -0
  1168. package/node_modules/polygon-clipping/CHANGELOG.md +129 -0
  1169. package/node_modules/polygon-clipping/LICENSE.md +11 -0
  1170. package/node_modules/polygon-clipping/README.md +99 -0
  1171. package/node_modules/polygon-clipping/dist/polygon-clipping.cjs.js +1826 -0
  1172. package/node_modules/polygon-clipping/dist/polygon-clipping.d.ts +11 -0
  1173. package/node_modules/polygon-clipping/dist/polygon-clipping.esm.js +1820 -0
  1174. package/node_modules/polygon-clipping/dist/polygon-clipping.umd.js +2557 -0
  1175. package/node_modules/polygon-clipping/dist/polygon-clipping.umd.min.js +10 -0
  1176. package/node_modules/polygon-clipping/dist/polygon-clipping.umd.min.js.map +1 -0
  1177. package/node_modules/polygon-clipping/package.json +113 -0
  1178. package/node_modules/quickselect/LICENSE +15 -0
  1179. package/node_modules/quickselect/README.md +28 -0
  1180. package/node_modules/quickselect/index.js +54 -0
  1181. package/node_modules/quickselect/package.json +70 -0
  1182. package/node_modules/quickselect/quickselect.js +63 -0
  1183. package/node_modules/rbush/LICENSE +21 -0
  1184. package/node_modules/rbush/README.md +218 -0
  1185. package/node_modules/rbush/index.js +512 -0
  1186. package/node_modules/rbush/package.json +87 -0
  1187. package/node_modules/rbush/rbush.js +574 -0
  1188. package/node_modules/rbush/rbush.min.js +1 -0
  1189. package/node_modules/regexp.prototype.flags/.editorconfig +13 -0
  1190. package/node_modules/regexp.prototype.flags/.eslintrc +18 -0
  1191. package/node_modules/regexp.prototype.flags/.nycrc +9 -0
  1192. package/node_modules/regexp.prototype.flags/CHANGELOG.md +184 -0
  1193. package/node_modules/regexp.prototype.flags/LICENSE +22 -0
  1194. package/node_modules/regexp.prototype.flags/README.md +54 -0
  1195. package/node_modules/regexp.prototype.flags/auto.js +3 -0
  1196. package/node_modules/regexp.prototype.flags/implementation.js +33 -0
  1197. package/node_modules/regexp.prototype.flags/index.js +18 -0
  1198. package/node_modules/regexp.prototype.flags/package.json +124 -0
  1199. package/node_modules/regexp.prototype.flags/polyfill.js +36 -0
  1200. package/node_modules/regexp.prototype.flags/shim.js +26 -0
  1201. package/node_modules/regexp.prototype.flags/test/implementation.js +20 -0
  1202. package/node_modules/regexp.prototype.flags/test/index.js +17 -0
  1203. package/node_modules/regexp.prototype.flags/test/shimmed.js +47 -0
  1204. package/node_modules/regexp.prototype.flags/test/tests.js +141 -0
  1205. package/node_modules/robust-predicates/LICENSE +24 -0
  1206. package/node_modules/robust-predicates/README.md +82 -0
  1207. package/node_modules/robust-predicates/esm/incircle.js +765 -0
  1208. package/node_modules/robust-predicates/esm/insphere.js +775 -0
  1209. package/node_modules/robust-predicates/esm/orient2d.js +186 -0
  1210. package/node_modules/robust-predicates/esm/orient3d.js +462 -0
  1211. package/node_modules/robust-predicates/esm/util.js +138 -0
  1212. package/node_modules/robust-predicates/index.js +5 -0
  1213. package/node_modules/robust-predicates/package.json +95 -0
  1214. package/node_modules/robust-predicates/umd/incircle.js +910 -0
  1215. package/node_modules/robust-predicates/umd/incircle.min.js +1 -0
  1216. package/node_modules/robust-predicates/umd/insphere.js +925 -0
  1217. package/node_modules/robust-predicates/umd/insphere.min.js +1 -0
  1218. package/node_modules/robust-predicates/umd/orient2d.js +284 -0
  1219. package/node_modules/robust-predicates/umd/orient2d.min.js +1 -0
  1220. package/node_modules/robust-predicates/umd/orient3d.js +603 -0
  1221. package/node_modules/robust-predicates/umd/orient3d.min.js +1 -0
  1222. package/node_modules/robust-predicates/umd/predicates.js +2341 -0
  1223. package/node_modules/robust-predicates/umd/predicates.min.js +1 -0
  1224. package/node_modules/skmeans/.gitattributes +17 -0
  1225. package/node_modules/skmeans/.npmignore +52 -0
  1226. package/node_modules/skmeans/Gruntfile.js +49 -0
  1227. package/node_modules/skmeans/README.md +62 -0
  1228. package/node_modules/skmeans/browser.js +19 -0
  1229. package/node_modules/skmeans/dist/browser/skmeans.js +339 -0
  1230. package/node_modules/skmeans/dist/browser/skmeans.js.map +1 -0
  1231. package/node_modules/skmeans/dist/browser/skmeans.min.js +3 -0
  1232. package/node_modules/skmeans/dist/index.html +15 -0
  1233. package/node_modules/skmeans/dist/node/Gruntfile.js +49 -0
  1234. package/node_modules/skmeans/dist/node/Gruntfile.js.map +1 -0
  1235. package/node_modules/skmeans/dist/node/browser.js +19 -0
  1236. package/node_modules/skmeans/dist/node/browser.js.map +1 -0
  1237. package/node_modules/skmeans/dist/node/distance.js +39 -0
  1238. package/node_modules/skmeans/dist/node/distance.js.map +1 -0
  1239. package/node_modules/skmeans/dist/node/kinit.js +110 -0
  1240. package/node_modules/skmeans/dist/node/kinit.js.map +1 -0
  1241. package/node_modules/skmeans/dist/node/main.js +161 -0
  1242. package/node_modules/skmeans/dist/node/main.js.map +1 -0
  1243. package/node_modules/skmeans/distance.js +37 -0
  1244. package/node_modules/skmeans/kinit.js +102 -0
  1245. package/node_modules/skmeans/main.js +147 -0
  1246. package/node_modules/skmeans/package.json +68 -0
  1247. package/node_modules/skmeans/test/data/random_pts.js +1 -0
  1248. package/node_modules/skmeans/test/data/well-separated.js +1 -0
  1249. package/node_modules/skmeans/test/multi.js +15 -0
  1250. package/node_modules/skmeans/test/stats.js +65 -0
  1251. package/node_modules/skmeans/test/test.js +42 -0
  1252. package/node_modules/skmeans/test/test_rand.js +23 -0
  1253. package/node_modules/skmeans/test/test_ws.js +23 -0
  1254. package/node_modules/skmeans/test/uni.js +15 -0
  1255. package/node_modules/splaytree/Readme.md +221 -0
  1256. package/node_modules/splaytree/dist/splay.esm.js +673 -0
  1257. package/node_modules/splaytree/dist/splay.esm.js.map +1 -0
  1258. package/node_modules/splaytree/dist/splay.js +681 -0
  1259. package/node_modules/splaytree/dist/splay.js.map +1 -0
  1260. package/node_modules/splaytree/package.json +123 -0
  1261. package/node_modules/splaytree/src/index.ts +667 -0
  1262. package/node_modules/splaytree/src/node.ts +15 -0
  1263. package/node_modules/splaytree/src/types.ts +2 -0
  1264. package/node_modules/splaytree/typings/index.d.ts +82 -0
  1265. package/node_modules/splaytree/typings/node.d.ts +8 -0
  1266. package/node_modules/splaytree/typings/types.d.ts +2 -0
  1267. package/node_modules/tinyqueue/LICENSE +15 -0
  1268. package/node_modules/tinyqueue/README.md +59 -0
  1269. package/node_modules/tinyqueue/index.d.ts +11 -0
  1270. package/node_modules/tinyqueue/index.js +79 -0
  1271. package/node_modules/tinyqueue/package.json +78 -0
  1272. package/node_modules/tinyqueue/tinyqueue.js +93 -0
  1273. package/node_modules/tinyqueue/tinyqueue.min.js +1 -0
  1274. package/node_modules/topojson-client/LICENSE +13 -0
  1275. package/node_modules/topojson-client/README.md +242 -0
  1276. package/node_modules/topojson-client/bin/topo2geo +106 -0
  1277. package/node_modules/topojson-client/bin/topomerge +216 -0
  1278. package/node_modules/topojson-client/bin/topoquantize +74 -0
  1279. package/node_modules/topojson-client/dist/topojson-client.js +508 -0
  1280. package/node_modules/topojson-client/dist/topojson-client.min.js +2 -0
  1281. package/node_modules/topojson-client/package.json +77 -0
  1282. package/node_modules/topojson-client/src/bbox.js +39 -0
  1283. package/node_modules/topojson-client/src/bisect.js +9 -0
  1284. package/node_modules/topojson-client/src/feature.js +70 -0
  1285. package/node_modules/topojson-client/src/identity.js +3 -0
  1286. package/node_modules/topojson-client/src/index.js +8 -0
  1287. package/node_modules/topojson-client/src/merge.js +103 -0
  1288. package/node_modules/topojson-client/src/mesh.js +53 -0
  1289. package/node_modules/topojson-client/src/neighbors.js +45 -0
  1290. package/node_modules/topojson-client/src/quantize.js +54 -0
  1291. package/node_modules/topojson-client/src/reverse.js +4 -0
  1292. package/node_modules/topojson-client/src/stitch.js +73 -0
  1293. package/node_modules/topojson-client/src/transform.js +19 -0
  1294. package/node_modules/topojson-client/src/untransform.js +23 -0
  1295. package/node_modules/topojson-server/LICENSE +13 -0
  1296. package/node_modules/topojson-server/README.md +75 -0
  1297. package/node_modules/topojson-server/bin/geo2topo +125 -0
  1298. package/node_modules/topojson-server/dist/topojson-server.js +838 -0
  1299. package/node_modules/topojson-server/dist/topojson-server.min.js +2 -0
  1300. package/node_modules/topojson-server/package.json +75 -0
  1301. package/node_modules/topojson-server/src/bounds.js +46 -0
  1302. package/node_modules/topojson-server/src/cut.js +62 -0
  1303. package/node_modules/topojson-server/src/dedup.js +187 -0
  1304. package/node_modules/topojson-server/src/delta.js +30 -0
  1305. package/node_modules/topojson-server/src/extract.js +67 -0
  1306. package/node_modules/topojson-server/src/geometry.js +39 -0
  1307. package/node_modules/topojson-server/src/hash/hashmap.js +70 -0
  1308. package/node_modules/topojson-server/src/hash/hashset.js +53 -0
  1309. package/node_modules/topojson-server/src/hash/point-equal.js +3 -0
  1310. package/node_modules/topojson-server/src/hash/point-hash.js +13 -0
  1311. package/node_modules/topojson-server/src/index.js +1 -0
  1312. package/node_modules/topojson-server/src/join.js +116 -0
  1313. package/node_modules/topojson-server/src/object.js +1 -0
  1314. package/node_modules/topojson-server/src/prequantize.js +72 -0
  1315. package/node_modules/topojson-server/src/topology.js +80 -0
  1316. package/node_modules/turf-jsts/README.md +19 -0
  1317. package/node_modules/turf-jsts/jsts.js +18750 -0
  1318. package/node_modules/turf-jsts/jsts.min.js +1 -0
  1319. package/node_modules/turf-jsts/jsts.mjs +18742 -0
  1320. package/node_modules/turf-jsts/package.json +100 -0
  1321. package/node_modules/turf-jsts/src/Array.js +36 -0
  1322. package/node_modules/turf-jsts/src/Map.js +150 -0
  1323. package/node_modules/turf-jsts/src/Math.js +6 -0
  1324. package/node_modules/turf-jsts/src/Number.js +18 -0
  1325. package/node_modules/turf-jsts/src/extend.js +5 -0
  1326. package/node_modules/turf-jsts/src/hasInterface.js +3 -0
  1327. package/node_modules/turf-jsts/src/index.js +18 -0
  1328. package/node_modules/turf-jsts/src/inherits.js +4 -0
  1329. package/node_modules/turf-jsts/src/java/io/ByteArrayOutputStream.js +1 -0
  1330. package/node_modules/turf-jsts/src/java/io/IOException.js +1 -0
  1331. package/node_modules/turf-jsts/src/java/io/InputStream.js +1 -0
  1332. package/node_modules/turf-jsts/src/java/io/LineNumberReader.js +1 -0
  1333. package/node_modules/turf-jsts/src/java/io/OutputStream.js +1 -0
  1334. package/node_modules/turf-jsts/src/java/io/PrintStream.js +1 -0
  1335. package/node_modules/turf-jsts/src/java/io/Serializable.js +1 -0
  1336. package/node_modules/turf-jsts/src/java/io/StringReader.js +1 -0
  1337. package/node_modules/turf-jsts/src/java/io/StringWriter.js +1 -0
  1338. package/node_modules/turf-jsts/src/java/io/Writer.js +1 -0
  1339. package/node_modules/turf-jsts/src/java/lang/Character.js +4 -0
  1340. package/node_modules/turf-jsts/src/java/lang/Cloneable.js +1 -0
  1341. package/node_modules/turf-jsts/src/java/lang/Comparable.js +1 -0
  1342. package/node_modules/turf-jsts/src/java/lang/Double.js +7 -0
  1343. package/node_modules/turf-jsts/src/java/lang/Exception.js +1 -0
  1344. package/node_modules/turf-jsts/src/java/lang/IllegalArgumentException.js +8 -0
  1345. package/node_modules/turf-jsts/src/java/lang/Integer.js +14 -0
  1346. package/node_modules/turf-jsts/src/java/lang/RuntimeException.js +8 -0
  1347. package/node_modules/turf-jsts/src/java/lang/StringBuffer.js +16 -0
  1348. package/node_modules/turf-jsts/src/java/lang/System.js +15 -0
  1349. package/node_modules/turf-jsts/src/java/text/DecimalFormat.js +1 -0
  1350. package/node_modules/turf-jsts/src/java/text/DecimalFormatSymbols.js +1 -0
  1351. package/node_modules/turf-jsts/src/java/util/ArrayList.js +181 -0
  1352. package/node_modules/turf-jsts/src/java/util/Arrays.js +60 -0
  1353. package/node_modules/turf-jsts/src/java/util/Collection.js +58 -0
  1354. package/node_modules/turf-jsts/src/java/util/Collections.js +34 -0
  1355. package/node_modules/turf-jsts/src/java/util/Comparator.js +1 -0
  1356. package/node_modules/turf-jsts/src/java/util/EmptyStackException.js +15 -0
  1357. package/node_modules/turf-jsts/src/java/util/HashMap.js +61 -0
  1358. package/node_modules/turf-jsts/src/java/util/HashSet.js +151 -0
  1359. package/node_modules/turf-jsts/src/java/util/IndexOutOfBoundsException.js +15 -0
  1360. package/node_modules/turf-jsts/src/java/util/Iterator.js +24 -0
  1361. package/node_modules/turf-jsts/src/java/util/LinkedList.js +14 -0
  1362. package/node_modules/turf-jsts/src/java/util/List.js +32 -0
  1363. package/node_modules/turf-jsts/src/java/util/Map.js +53 -0
  1364. package/node_modules/turf-jsts/src/java/util/NoSuchElementException.js +15 -0
  1365. package/node_modules/turf-jsts/src/java/util/OperationNotSupported.js +15 -0
  1366. package/node_modules/turf-jsts/src/java/util/Set.js +21 -0
  1367. package/node_modules/turf-jsts/src/java/util/SortedMap.js +10 -0
  1368. package/node_modules/turf-jsts/src/java/util/SortedSet.js +11 -0
  1369. package/node_modules/turf-jsts/src/java/util/Stack.js +132 -0
  1370. package/node_modules/turf-jsts/src/java/util/TreeMap.js +246 -0
  1371. package/node_modules/turf-jsts/src/java/util/TreeSet.js +157 -0
  1372. package/node_modules/turf-jsts/src/org/locationtech/jts/JTSVersion.js +32 -0
  1373. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/Angle.js +105 -0
  1374. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/BoundaryNodeRule.js +66 -0
  1375. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/CGAlgorithms.js +194 -0
  1376. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/CGAlgorithms3D.js +65 -0
  1377. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/CGAlgorithmsDD.js +72 -0
  1378. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/Centroid.js +127 -0
  1379. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/ConvexHull.js +252 -0
  1380. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/HCoordinate.js +105 -0
  1381. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/InteriorPointArea.js +137 -0
  1382. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/InteriorPointLine.js +68 -0
  1383. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/InteriorPointPoint.js +45 -0
  1384. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/LineIntersector.js +156 -0
  1385. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/MCPointInRing.js +102 -0
  1386. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/MinimumBoundingCircle.js +170 -0
  1387. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/MinimumDiameter.js +165 -0
  1388. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/NonRobustCGAlgorithms.js +123 -0
  1389. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/NonRobustLineIntersector.js +147 -0
  1390. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/NotRepresentableException.js +13 -0
  1391. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/PointInRing.js +9 -0
  1392. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/PointLocator.js +120 -0
  1393. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/RayCrossingCounter.js +95 -0
  1394. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/RectangleLineIntersector.js +46 -0
  1395. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/RobustDeterminant.js +202 -0
  1396. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/RobustLineIntersector.js +231 -0
  1397. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/SimplePointInRing.js +19 -0
  1398. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/distance/DiscreteHausdorffDistance.js +139 -0
  1399. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/distance/DistanceToPoint.js +61 -0
  1400. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/distance/PointPairDistance.js +79 -0
  1401. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/locate/IndexedPointInAreaLocator.js +95 -0
  1402. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/locate/PointOnGeometryLocator.js +9 -0
  1403. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/locate/SimplePointInAreaLocator.js +54 -0
  1404. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/match/AreaSimilarityMeasure.js +15 -0
  1405. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/match/HausdorffSimilarityMeasure.js +27 -0
  1406. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/match/SimilarityMeasure.js +9 -0
  1407. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/match/SimilarityMeasureCombiner.js +11 -0
  1408. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm.js +42 -0
  1409. package/node_modules/turf-jsts/src/org/locationtech/jts/densify/Densifier.js +93 -0
  1410. package/node_modules/turf-jsts/src/org/locationtech/jts/densify.js +2 -0
  1411. package/node_modules/turf-jsts/src/org/locationtech/jts/dissolve/DissolveEdgeGraph.js +14 -0
  1412. package/node_modules/turf-jsts/src/org/locationtech/jts/dissolve/DissolveHalfEdge.js +21 -0
  1413. package/node_modules/turf-jsts/src/org/locationtech/jts/dissolve/LineDissolver.js +152 -0
  1414. package/node_modules/turf-jsts/src/org/locationtech/jts/dissolve.js +4 -0
  1415. package/node_modules/turf-jsts/src/org/locationtech/jts/edgegraph/EdgeGraph.js +63 -0
  1416. package/node_modules/turf-jsts/src/org/locationtech/jts/edgegraph/EdgeGraphBuilder.js +53 -0
  1417. package/node_modules/turf-jsts/src/org/locationtech/jts/edgegraph/HalfEdge.js +143 -0
  1418. package/node_modules/turf-jsts/src/org/locationtech/jts/edgegraph/MarkHalfEdge.js +41 -0
  1419. package/node_modules/turf-jsts/src/org/locationtech/jts/edgegraph.js +5 -0
  1420. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/Coordinate.js +202 -0
  1421. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/CoordinateArrays.js +247 -0
  1422. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/CoordinateFilter.js +9 -0
  1423. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/CoordinateList.js +127 -0
  1424. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/CoordinateSequence.js +26 -0
  1425. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/CoordinateSequenceComparator.js +67 -0
  1426. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/CoordinateSequenceFactory.js +23 -0
  1427. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/CoordinateSequenceFilter.js +11 -0
  1428. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/CoordinateSequences.js +104 -0
  1429. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/Dimension.js +60 -0
  1430. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/Envelope.js +347 -0
  1431. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/Geometry.js +209 -0
  1432. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/GeometryCollection.js +216 -0
  1433. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/GeometryCollectionIterator.js +68 -0
  1434. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/GeometryComponentFilter.js +9 -0
  1435. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/GeometryFactory.js +260 -0
  1436. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/GeometryFilter.js +9 -0
  1437. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/IntersectionMatrix.js +232 -0
  1438. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/LineSegment.js +276 -0
  1439. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/LineString.js +212 -0
  1440. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/Lineal.js +8 -0
  1441. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/LinearRing.js +57 -0
  1442. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/Location.js +28 -0
  1443. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/MultiLineString.js +69 -0
  1444. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/MultiPoint.js +55 -0
  1445. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/MultiPolygon.js +66 -0
  1446. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/OctagonalEnvelope.js +278 -0
  1447. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/Point.js +145 -0
  1448. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/Polygon.js +282 -0
  1449. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/Polygonal.js +8 -0
  1450. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/PrecisionModel.js +136 -0
  1451. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/Puntal.js +8 -0
  1452. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/TopologyException.js +23 -0
  1453. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/Triangle.js +143 -0
  1454. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/impl/CoordinateArraySequence.js +152 -0
  1455. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/impl/CoordinateArraySequenceFactory.js +40 -0
  1456. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/prep/AbstractPreparedPolygonContains.js +62 -0
  1457. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/prep/BasicPreparedGeometry.js +72 -0
  1458. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/prep/PreparedGeometry.js +19 -0
  1459. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/prep/PreparedGeometryFactory.js +26 -0
  1460. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/prep/PreparedLineString.js +25 -0
  1461. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/prep/PreparedLineStringIntersects.js +39 -0
  1462. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/prep/PreparedPoint.js +14 -0
  1463. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/prep/PreparedPolygon.js +59 -0
  1464. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/prep/PreparedPolygonContains.js +21 -0
  1465. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/prep/PreparedPolygonContainsProperly.js +29 -0
  1466. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/prep/PreparedPolygonCovers.js +25 -0
  1467. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/prep/PreparedPolygonIntersects.js +30 -0
  1468. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/prep/PreparedPolygonPredicate.js +63 -0
  1469. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/AffineTransformation.js +445 -0
  1470. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/AffineTransformationBuilder.js +49 -0
  1471. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/AffineTransformationFactory.js +72 -0
  1472. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/ComponentCoordinateExtracter.js +24 -0
  1473. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/GeometryCollectionMapper.js +26 -0
  1474. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/GeometryCombiner.js +80 -0
  1475. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/GeometryEditor.js +156 -0
  1476. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/GeometryExtracter.js +36 -0
  1477. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/GeometryMapper.js +36 -0
  1478. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/GeometryTransformer.js +127 -0
  1479. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/LineStringExtracter.js +37 -0
  1480. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/LinearComponentExtracter.js +98 -0
  1481. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/NoninvertibleTransformationException.js +10 -0
  1482. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/PointExtracter.js +38 -0
  1483. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/PolygonExtracter.js +34 -0
  1484. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/ShortCircuitedGeometryVisitor.js +25 -0
  1485. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/SineStarFactory.js +50 -0
  1486. package/node_modules/turf-jsts/src/org/locationtech/jts/geom.js +73 -0
  1487. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/Depth.js +92 -0
  1488. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/DirectedEdge.js +147 -0
  1489. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/DirectedEdgeStar.js +239 -0
  1490. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/Edge.js +193 -0
  1491. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/EdgeEnd.js +103 -0
  1492. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/EdgeEndStar.js +177 -0
  1493. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/EdgeIntersection.js +55 -0
  1494. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/EdgeIntersectionList.js +78 -0
  1495. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/EdgeList.js +61 -0
  1496. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/EdgeNodingValidator.js +32 -0
  1497. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/EdgeRing.js +163 -0
  1498. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/GeometryGraph.js +255 -0
  1499. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/GraphComponent.js +53 -0
  1500. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/Label.js +147 -0
  1501. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/Node.js +95 -0
  1502. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/NodeFactory.js +13 -0
  1503. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/NodeMap.js +68 -0
  1504. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/PlanarGraph.js +142 -0
  1505. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/Position.js +16 -0
  1506. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/Quadrant.js +60 -0
  1507. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/TopologyLocation.js +129 -0
  1508. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/index/EdgeSetIntersector.js +8 -0
  1509. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/index/MonotoneChain.js +19 -0
  1510. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/index/MonotoneChainEdge.js +83 -0
  1511. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/index/MonotoneChainIndexer.js +41 -0
  1512. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/index/SegmentIntersector.js +115 -0
  1513. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/index/SimpleEdgeSetIntersector.js +53 -0
  1514. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/index/SimpleMCSweepLineIntersector.js +101 -0
  1515. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/index/SimpleSweepLineIntersector.js +101 -0
  1516. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/index/SweepLineEvent.js +65 -0
  1517. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/index/SweepLineSegment.js +31 -0
  1518. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph.js +34 -0
  1519. package/node_modules/turf-jsts/src/org/locationtech/jts/index/ArrayListVisitor.js +20 -0
  1520. package/node_modules/turf-jsts/src/org/locationtech/jts/index/ItemVisitor.js +9 -0
  1521. package/node_modules/turf-jsts/src/org/locationtech/jts/index/SpatialIndex.js +18 -0
  1522. package/node_modules/turf-jsts/src/org/locationtech/jts/index/bintree/Bintree.js +74 -0
  1523. package/node_modules/turf-jsts/src/org/locationtech/jts/index/bintree/Interval.js +73 -0
  1524. package/node_modules/turf-jsts/src/org/locationtech/jts/index/bintree/Key.js +46 -0
  1525. package/node_modules/turf-jsts/src/org/locationtech/jts/index/bintree/Node.js +94 -0
  1526. package/node_modules/turf-jsts/src/org/locationtech/jts/index/bintree/NodeBase.js +97 -0
  1527. package/node_modules/turf-jsts/src/org/locationtech/jts/index/bintree/Root.js +37 -0
  1528. package/node_modules/turf-jsts/src/org/locationtech/jts/index/chain/MonotoneChain.js +107 -0
  1529. package/node_modules/turf-jsts/src/org/locationtech/jts/index/chain/MonotoneChainBuilder.js +67 -0
  1530. package/node_modules/turf-jsts/src/org/locationtech/jts/index/chain/MonotoneChainOverlapAction.js +31 -0
  1531. package/node_modules/turf-jsts/src/org/locationtech/jts/index/chain/MonotoneChainSelectAction.js +25 -0
  1532. package/node_modules/turf-jsts/src/org/locationtech/jts/index/intervalrtree/IntervalRTreeBranchNode.js +31 -0
  1533. package/node_modules/turf-jsts/src/org/locationtech/jts/index/intervalrtree/IntervalRTreeLeafNode.js +24 -0
  1534. package/node_modules/turf-jsts/src/org/locationtech/jts/index/intervalrtree/IntervalRTreeNode.js +49 -0
  1535. package/node_modules/turf-jsts/src/org/locationtech/jts/index/intervalrtree/SortedPackedIntervalRTree.js +68 -0
  1536. package/node_modules/turf-jsts/src/org/locationtech/jts/index/intervalrtree.js +5 -0
  1537. package/node_modules/turf-jsts/src/org/locationtech/jts/index/kdtree/KdNode.js +68 -0
  1538. package/node_modules/turf-jsts/src/org/locationtech/jts/index/kdtree/KdNodeVisitor.js +9 -0
  1539. package/node_modules/turf-jsts/src/org/locationtech/jts/index/kdtree/KdTree.js +201 -0
  1540. package/node_modules/turf-jsts/src/org/locationtech/jts/index/kdtree.js +4 -0
  1541. package/node_modules/turf-jsts/src/org/locationtech/jts/index/quadtree/DoubleBits.js +86 -0
  1542. package/node_modules/turf-jsts/src/org/locationtech/jts/index/quadtree/IntervalSize.js +19 -0
  1543. package/node_modules/turf-jsts/src/org/locationtech/jts/index/quadtree/Key.js +57 -0
  1544. package/node_modules/turf-jsts/src/org/locationtech/jts/index/quadtree/Node.js +114 -0
  1545. package/node_modules/turf-jsts/src/org/locationtech/jts/index/quadtree/NodeBase.js +131 -0
  1546. package/node_modules/turf-jsts/src/org/locationtech/jts/index/quadtree/Quadtree.js +81 -0
  1547. package/node_modules/turf-jsts/src/org/locationtech/jts/index/quadtree/Root.js +39 -0
  1548. package/node_modules/turf-jsts/src/org/locationtech/jts/index/quadtree.js +8 -0
  1549. package/node_modules/turf-jsts/src/org/locationtech/jts/index/strtree/AbstractNode.js +45 -0
  1550. package/node_modules/turf-jsts/src/org/locationtech/jts/index/strtree/AbstractSTRtree.js +296 -0
  1551. package/node_modules/turf-jsts/src/org/locationtech/jts/index/strtree/Boundable.js +9 -0
  1552. package/node_modules/turf-jsts/src/org/locationtech/jts/index/strtree/BoundablePair.js +83 -0
  1553. package/node_modules/turf-jsts/src/org/locationtech/jts/index/strtree/GeometryItemDistance.js +15 -0
  1554. package/node_modules/turf-jsts/src/org/locationtech/jts/index/strtree/Interval.js +46 -0
  1555. package/node_modules/turf-jsts/src/org/locationtech/jts/index/strtree/ItemBoundable.js +25 -0
  1556. package/node_modules/turf-jsts/src/org/locationtech/jts/index/strtree/ItemDistance.js +9 -0
  1557. package/node_modules/turf-jsts/src/org/locationtech/jts/index/strtree/SIRtree.js +88 -0
  1558. package/node_modules/turf-jsts/src/org/locationtech/jts/index/strtree/STRtree.js +234 -0
  1559. package/node_modules/turf-jsts/src/org/locationtech/jts/index/strtree.js +11 -0
  1560. package/node_modules/turf-jsts/src/org/locationtech/jts/index/sweepline/SweepLineEvent.js +53 -0
  1561. package/node_modules/turf-jsts/src/org/locationtech/jts/index/sweepline/SweepLineIndex.js +53 -0
  1562. package/node_modules/turf-jsts/src/org/locationtech/jts/index/sweepline/SweepLineInterval.js +34 -0
  1563. package/node_modules/turf-jsts/src/org/locationtech/jts/index/sweepline/SweepLineOverlapAction.js +9 -0
  1564. package/node_modules/turf-jsts/src/org/locationtech/jts/index/sweepline.js +5 -0
  1565. package/node_modules/turf-jsts/src/org/locationtech/jts/index.js +2 -0
  1566. package/node_modules/turf-jsts/src/org/locationtech/jts/io/GeoJSONParser.js +439 -0
  1567. package/node_modules/turf-jsts/src/org/locationtech/jts/io/GeoJSONReader.js +59 -0
  1568. package/node_modules/turf-jsts/src/org/locationtech/jts/io/GeoJSONWriter.js +36 -0
  1569. package/node_modules/turf-jsts/src/org/locationtech/jts/io/OL3Parser.js +181 -0
  1570. package/node_modules/turf-jsts/src/org/locationtech/jts/io/WKTParser.js +398 -0
  1571. package/node_modules/turf-jsts/src/org/locationtech/jts/io/WKTReader.js +62 -0
  1572. package/node_modules/turf-jsts/src/org/locationtech/jts/io/WKTWriter.js +53 -0
  1573. package/node_modules/turf-jsts/src/org/locationtech/jts/io.js +8 -0
  1574. package/node_modules/turf-jsts/src/org/locationtech/jts/linearref/ExtractLineByLocation.js +69 -0
  1575. package/node_modules/turf-jsts/src/org/locationtech/jts/linearref/LengthIndexOfPoint.js +65 -0
  1576. package/node_modules/turf-jsts/src/org/locationtech/jts/linearref/LengthIndexedLine.js +86 -0
  1577. package/node_modules/turf-jsts/src/org/locationtech/jts/linearref/LengthLocationMap.js +106 -0
  1578. package/node_modules/turf-jsts/src/org/locationtech/jts/linearref/LinearGeometryBuilder.js +74 -0
  1579. package/node_modules/turf-jsts/src/org/locationtech/jts/linearref/LinearIterator.js +88 -0
  1580. package/node_modules/turf-jsts/src/org/locationtech/jts/linearref/LinearLocation.js +207 -0
  1581. package/node_modules/turf-jsts/src/org/locationtech/jts/linearref/LocationIndexOfLine.js +33 -0
  1582. package/node_modules/turf-jsts/src/org/locationtech/jts/linearref/LocationIndexOfPoint.js +68 -0
  1583. package/node_modules/turf-jsts/src/org/locationtech/jts/linearref/LocationIndexedLine.js +65 -0
  1584. package/node_modules/turf-jsts/src/org/locationtech/jts/linearref.js +11 -0
  1585. package/node_modules/turf-jsts/src/org/locationtech/jts/math/DD.js +639 -0
  1586. package/node_modules/turf-jsts/src/org/locationtech/jts/math/MathUtil.js +71 -0
  1587. package/node_modules/turf-jsts/src/org/locationtech/jts/math/Matrix.js +54 -0
  1588. package/node_modules/turf-jsts/src/org/locationtech/jts/math/Plane3D.js +41 -0
  1589. package/node_modules/turf-jsts/src/org/locationtech/jts/math/Vector2D.js +180 -0
  1590. package/node_modules/turf-jsts/src/org/locationtech/jts/math/Vector3D.js +97 -0
  1591. package/node_modules/turf-jsts/src/org/locationtech/jts/monkey.js +167 -0
  1592. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/BasicSegmentString.js +46 -0
  1593. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/FastNodingValidator.js +64 -0
  1594. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/FastSegmentSetIntersectionFinder.js +31 -0
  1595. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/InteriorIntersectionFinder.js +96 -0
  1596. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/InteriorIntersectionFinderAdder.js +41 -0
  1597. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/IntersectionAdder.js +90 -0
  1598. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/IteratedNoder.js +54 -0
  1599. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/MCIndexNoder.js +91 -0
  1600. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/MCIndexSegmentSetMutualIntersector.js +88 -0
  1601. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/NodableSegmentString.js +11 -0
  1602. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/NodedSegmentString.js +103 -0
  1603. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/Noder.js +10 -0
  1604. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/NodingValidator.js +105 -0
  1605. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/Octant.js +40 -0
  1606. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/OrientedCoordinateArray.js +46 -0
  1607. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/ScaledNoder.js +99 -0
  1608. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/SegmentIntersectionDetector.js +81 -0
  1609. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/SegmentIntersector.js +10 -0
  1610. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/SegmentNode.js +50 -0
  1611. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/SegmentNodeList.js +210 -0
  1612. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/SegmentPointComparator.js +48 -0
  1613. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/SegmentSetMutualIntersector.js +9 -0
  1614. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/SegmentString.js +14 -0
  1615. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/SegmentStringDissolver.js +58 -0
  1616. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/SegmentStringUtil.js +49 -0
  1617. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/SimpleNoder.js +37 -0
  1618. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/SimpleSegmentSetMutualIntersector.js +35 -0
  1619. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/SinglePassNoder.js +20 -0
  1620. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/snapround/GeometryNoder.js +63 -0
  1621. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/snapround/HotPixel.js +126 -0
  1622. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/snapround/MCIndexPointSnapper.js +75 -0
  1623. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/snapround/MCIndexSnapRounder.js +90 -0
  1624. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/snapround/SimpleSnapRounder.js +109 -0
  1625. package/node_modules/turf-jsts/src/org/locationtech/jts/noding.js +3 -0
  1626. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/boundary/BoundaryOp.js +117 -0
  1627. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/boundary.js +2 -0
  1628. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/BufferBuilder.js +150 -0
  1629. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/BufferInputLineSimplifier.js +98 -0
  1630. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/BufferOp.js +139 -0
  1631. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/BufferParameters.js +95 -0
  1632. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/BufferSubgraph.js +151 -0
  1633. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/OffsetCurveBuilder.js +170 -0
  1634. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/OffsetCurveSetBuilder.js +122 -0
  1635. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/OffsetSegmentGenerator.js +289 -0
  1636. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/OffsetSegmentString.js +68 -0
  1637. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/RightmostEdgeFinder.js +95 -0
  1638. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/SubgraphDepthLocater.js +111 -0
  1639. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/validate/BufferCurveMaximumDistanceFinder.js +92 -0
  1640. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/validate/BufferDistanceValidator.js +107 -0
  1641. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/validate/BufferResultValidator.js +116 -0
  1642. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/validate/DistanceToPointFinder.js +61 -0
  1643. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/validate/PointPairDistance.js +75 -0
  1644. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer.js +19 -0
  1645. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/distance/ConnectedElementLocationFilter.js +28 -0
  1646. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/distance/ConnectedElementPointFilter.js +27 -0
  1647. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/distance/DistanceOp.js +239 -0
  1648. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/distance/FacetSequence.js +114 -0
  1649. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/distance/FacetSequenceTreeBuilder.js +57 -0
  1650. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/distance/GeometryLocation.js +38 -0
  1651. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/distance/IndexedFacetDistance.js +45 -0
  1652. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/distance.js +8 -0
  1653. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/distance3d/AxisPlaneCoordinateSequence.js +80 -0
  1654. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/distance3d/Distance3DOp.js +312 -0
  1655. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/distance3d/PlanarPolygon3D.js +117 -0
  1656. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/distance3d.js +4 -0
  1657. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/geometrygraph/GeometryGraphOp.js +46 -0
  1658. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/geometrygraph.js +2 -0
  1659. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/issimple/IsSimpleOp.js +164 -0
  1660. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/issimple.js +2 -0
  1661. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/linemerge/EdgeString.js +46 -0
  1662. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/linemerge/LineMergeDirectedEdge.js +28 -0
  1663. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/linemerge/LineMergeEdge.js +17 -0
  1664. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/linemerge/LineMergeGraph.js +38 -0
  1665. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/linemerge/LineMerger.js +116 -0
  1666. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/linemerge/LineSequencer.js +249 -0
  1667. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/linemerge.js +7 -0
  1668. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/ConsistentPolygonRingChecker.js +74 -0
  1669. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/EdgeSetNoder.js +32 -0
  1670. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/LineBuilder.js +96 -0
  1671. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/MaximalEdgeRing.js +43 -0
  1672. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/MinimalEdgeRing.js +21 -0
  1673. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/OverlayNodeFactory.js +15 -0
  1674. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/OverlayOp.js +332 -0
  1675. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/PointBuilder.js +45 -0
  1676. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/PolygonBuilder.js +152 -0
  1677. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/snap/GeometrySnapper.js +115 -0
  1678. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/snap/LineStringSnapper.js +93 -0
  1679. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/snap/SnapIfNeededOverlayOp.js +57 -0
  1680. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/snap/SnapOverlayOp.js +73 -0
  1681. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/validate/FuzzyPointLocator.js +77 -0
  1682. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/validate/OffsetPointGenerator.js +55 -0
  1683. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/validate/OverlayResultValidator.js +88 -0
  1684. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay.js +21 -0
  1685. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/polygonize/EdgeRing.js +232 -0
  1686. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/polygonize/PolygonizeDirectedEdge.js +41 -0
  1687. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/polygonize/PolygonizeEdge.js +17 -0
  1688. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/polygonize/PolygonizeGraph.js +249 -0
  1689. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/polygonize/Polygonizer.js +186 -0
  1690. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/polygonize.js +6 -0
  1691. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/predicate/RectangleContains.js +64 -0
  1692. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/predicate/RectangleIntersects.js +158 -0
  1693. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/predicate.js +3 -0
  1694. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/relate/EdgeEndBuilder.js +64 -0
  1695. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/relate/EdgeEndBundle.js +96 -0
  1696. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/relate/EdgeEndBundleStar.js +26 -0
  1697. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/relate/RelateComputer.js +172 -0
  1698. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/relate/RelateNode.js +21 -0
  1699. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/relate/RelateNodeFactory.js +15 -0
  1700. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/relate/RelateNodeGraph.js +52 -0
  1701. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/relate/RelateOp.js +109 -0
  1702. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/relate.js +9 -0
  1703. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/union/CascadedPolygonUnion.js +157 -0
  1704. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/union/PointGeometryUnion.js +47 -0
  1705. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/union/UnaryUnionOp.js +105 -0
  1706. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/union/UnionInteracting.js +75 -0
  1707. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/union/UnionOp.js +21 -0
  1708. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/union.js +6 -0
  1709. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/valid/ConnectedInteriorTester.js +121 -0
  1710. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/valid/ConsistentAreaTester.js +54 -0
  1711. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/valid/IndexedNestedRingTester.js +60 -0
  1712. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/valid/IsValidOp.js +324 -0
  1713. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/valid/QuadtreeNestedRingTester.js +61 -0
  1714. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/valid/RepeatedPointTester.js +56 -0
  1715. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/valid/SimpleNestedRingTester.js +46 -0
  1716. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/valid/SweeplineNestedRingTester.js +57 -0
  1717. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/valid/TopologyValidationError.js +48 -0
  1718. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/valid.js +10 -0
  1719. package/node_modules/turf-jsts/src/org/locationtech/jts/operation.js +4 -0
  1720. package/node_modules/turf-jsts/src/org/locationtech/jts/planargraph/DirectedEdge.js +101 -0
  1721. package/node_modules/turf-jsts/src/org/locationtech/jts/planargraph/DirectedEdgeStar.js +79 -0
  1722. package/node_modules/turf-jsts/src/org/locationtech/jts/planargraph/Edge.js +51 -0
  1723. package/node_modules/turf-jsts/src/org/locationtech/jts/planargraph/GraphComponent.js +56 -0
  1724. package/node_modules/turf-jsts/src/org/locationtech/jts/planargraph/Node.js +60 -0
  1725. package/node_modules/turf-jsts/src/org/locationtech/jts/planargraph/NodeMap.js +29 -0
  1726. package/node_modules/turf-jsts/src/org/locationtech/jts/planargraph/PlanarGraph.js +100 -0
  1727. package/node_modules/turf-jsts/src/org/locationtech/jts/planargraph/Subgraph.js +43 -0
  1728. package/node_modules/turf-jsts/src/org/locationtech/jts/planargraph/algorithm/ConnectedSubgraphFinder.js +52 -0
  1729. package/node_modules/turf-jsts/src/org/locationtech/jts/precision/CommonBits.js +67 -0
  1730. package/node_modules/turf-jsts/src/org/locationtech/jts/precision/CommonBitsOp.js +63 -0
  1731. package/node_modules/turf-jsts/src/org/locationtech/jts/precision/CommonBitsRemover.js +87 -0
  1732. package/node_modules/turf-jsts/src/org/locationtech/jts/precision/CoordinatePrecisionReducerFilter.js +25 -0
  1733. package/node_modules/turf-jsts/src/org/locationtech/jts/precision/EnhancedPrecisionOp.js +116 -0
  1734. package/node_modules/turf-jsts/src/org/locationtech/jts/precision/GeometryPrecisionReducer.js +82 -0
  1735. package/node_modules/turf-jsts/src/org/locationtech/jts/precision/MinimumClearance.js +132 -0
  1736. package/node_modules/turf-jsts/src/org/locationtech/jts/precision/PrecisionReducerCoordinateOperation.js +39 -0
  1737. package/node_modules/turf-jsts/src/org/locationtech/jts/precision/SimpleMinimumClearance.js +126 -0
  1738. package/node_modules/turf-jsts/src/org/locationtech/jts/precision.js +10 -0
  1739. package/node_modules/turf-jsts/src/org/locationtech/jts/shape/GeometricShapeBuilder.js +54 -0
  1740. package/node_modules/turf-jsts/src/org/locationtech/jts/shape/fractal/KochSnowflakeBuilder.js +66 -0
  1741. package/node_modules/turf-jsts/src/org/locationtech/jts/shape/fractal/SierpinskiCarpetBuilder.js +57 -0
  1742. package/node_modules/turf-jsts/src/org/locationtech/jts/shape/random/RandomPointsBuilder.js +56 -0
  1743. package/node_modules/turf-jsts/src/org/locationtech/jts/shape/random/RandomPointsInGridBuilder.js +70 -0
  1744. package/node_modules/turf-jsts/src/org/locationtech/jts/simplify/DouglasPeuckerLineSimplifier.js +64 -0
  1745. package/node_modules/turf-jsts/src/org/locationtech/jts/simplify/DouglasPeuckerSimplifier.js +90 -0
  1746. package/node_modules/turf-jsts/src/org/locationtech/jts/simplify/LineSegmentIndex.js +63 -0
  1747. package/node_modules/turf-jsts/src/org/locationtech/jts/simplify/TaggedLineSegment.js +36 -0
  1748. package/node_modules/turf-jsts/src/org/locationtech/jts/simplify/TaggedLineString.js +78 -0
  1749. package/node_modules/turf-jsts/src/org/locationtech/jts/simplify/TaggedLineStringSimplifier.js +129 -0
  1750. package/node_modules/turf-jsts/src/org/locationtech/jts/simplify/TaggedLinesSimplifier.js +29 -0
  1751. package/node_modules/turf-jsts/src/org/locationtech/jts/simplify/TopologyPreservingSimplifier.js +88 -0
  1752. package/node_modules/turf-jsts/src/org/locationtech/jts/simplify/VWLineSimplifier.js +135 -0
  1753. package/node_modules/turf-jsts/src/org/locationtech/jts/simplify/VWSimplifier.js +90 -0
  1754. package/node_modules/turf-jsts/src/org/locationtech/jts/simplify.js +11 -0
  1755. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/ConformingDelaunayTriangulationBuilder.js +95 -0
  1756. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/ConformingDelaunayTriangulator.js +216 -0
  1757. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/ConstraintEnforcementException.js +29 -0
  1758. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/ConstraintSplitPointFinder.js +9 -0
  1759. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/ConstraintVertex.js +34 -0
  1760. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/ConstraintVertexFactory.js +9 -0
  1761. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/DelaunayTriangulationBuilder.js +84 -0
  1762. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/IncrementalDelaunayTriangulator.js +50 -0
  1763. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/MidpointSplitPointFinder.js +16 -0
  1764. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/NonEncroachingSplitPointFinder.js +31 -0
  1765. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/Segment.js +96 -0
  1766. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/SplitSegment.js +56 -0
  1767. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/VertexTaggedGeometryDataMapper.js +48 -0
  1768. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/VoronoiDiagramBuilder.js +77 -0
  1769. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/quadedge/EdgeConnectedTriangleTraversal.js +39 -0
  1770. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/quadedge/LastFoundQuadEdgeLocator.js +32 -0
  1771. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/quadedge/LocateFailureException.js +32 -0
  1772. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/quadedge/QuadEdge.js +146 -0
  1773. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/quadedge/QuadEdgeLocator.js +9 -0
  1774. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/quadedge/QuadEdgeSubdivision.js +456 -0
  1775. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/quadedge/QuadEdgeTriangle.js +191 -0
  1776. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/quadedge/QuadEdgeUtil.js +19 -0
  1777. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/quadedge/TraversalVisitor.js +9 -0
  1778. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/quadedge/TrianglePredicate.js +113 -0
  1779. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/quadedge/TriangleVisitor.js +9 -0
  1780. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/quadedge/Vertex.js +210 -0
  1781. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/quadedge.js +5 -0
  1782. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate.js +15 -0
  1783. package/node_modules/turf-jsts/src/org/locationtech/jts/util/Assert.js +53 -0
  1784. package/node_modules/turf-jsts/src/org/locationtech/jts/util/AssertionFailedException.js +19 -0
  1785. package/node_modules/turf-jsts/src/org/locationtech/jts/util/CollectionUtil.js +35 -0
  1786. package/node_modules/turf-jsts/src/org/locationtech/jts/util/CoordinateArrayFilter.js +22 -0
  1787. package/node_modules/turf-jsts/src/org/locationtech/jts/util/CoordinateCountFilter.js +19 -0
  1788. package/node_modules/turf-jsts/src/org/locationtech/jts/util/GeometricShapeFactory.js +266 -0
  1789. package/node_modules/turf-jsts/src/org/locationtech/jts/util/Memory.js +47 -0
  1790. package/node_modules/turf-jsts/src/org/locationtech/jts/util/NumberUtil.js +11 -0
  1791. package/node_modules/turf-jsts/src/org/locationtech/jts/util/ObjectCounter.js +44 -0
  1792. package/node_modules/turf-jsts/src/org/locationtech/jts/util/PriorityQueue.js +55 -0
  1793. package/node_modules/turf-jsts/src/org/locationtech/jts/util/StringUtil.js +79 -0
  1794. package/node_modules/turf-jsts/src/org/locationtech/jts/util/UniqueCoordinateArrayFilter.js +33 -0
  1795. package/package.json +3 -1
  1796. package/tak-registration.html +3 -0
  1797. package/tak-registration.js +173 -22
@@ -0,0 +1,2987 @@
1
+ // https://d3js.org/d3-geo/ Version 1.7.1. Copyright 2017 Mike Bostock.
2
+ (function (global, factory) {
3
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3-array')) :
4
+ typeof define === 'function' && define.amd ? define(['exports', 'd3-array'], factory) :
5
+ (factory((global.d3 = global.d3 || {}),global.d3));
6
+ }(this, (function (exports,d3Array) { 'use strict';
7
+
8
+ // Adds floating point numbers with twice the normal precision.
9
+ // Reference: J. R. Shewchuk, Adaptive Precision Floating-Point Arithmetic and
10
+ // Fast Robust Geometric Predicates, Discrete & Computational Geometry 18(3)
11
+ // 305–363 (1997).
12
+ // Code adapted from GeographicLib by Charles F. F. Karney,
13
+ // http://geographiclib.sourceforge.net/
14
+
15
+ var adder = function() {
16
+ return new Adder;
17
+ };
18
+
19
+ function Adder() {
20
+ this.reset();
21
+ }
22
+
23
+ Adder.prototype = {
24
+ constructor: Adder,
25
+ reset: function() {
26
+ this.s = // rounded value
27
+ this.t = 0; // exact error
28
+ },
29
+ add: function(y) {
30
+ add(temp, y, this.t);
31
+ add(this, temp.s, this.s);
32
+ if (this.s) this.t += temp.t;
33
+ else this.s = temp.t;
34
+ },
35
+ valueOf: function() {
36
+ return this.s;
37
+ }
38
+ };
39
+
40
+ var temp = new Adder;
41
+
42
+ function add(adder, a, b) {
43
+ var x = adder.s = a + b,
44
+ bv = x - a,
45
+ av = x - bv;
46
+ adder.t = (a - av) + (b - bv);
47
+ }
48
+
49
+ var epsilon = 1e-6;
50
+ var epsilon2 = 1e-12;
51
+ var pi = Math.PI;
52
+ var halfPi = pi / 2;
53
+ var quarterPi = pi / 4;
54
+ var tau = pi * 2;
55
+
56
+ var degrees = 180 / pi;
57
+ var radians = pi / 180;
58
+
59
+ var abs = Math.abs;
60
+ var atan = Math.atan;
61
+ var atan2 = Math.atan2;
62
+ var cos = Math.cos;
63
+ var ceil = Math.ceil;
64
+ var exp = Math.exp;
65
+
66
+ var log = Math.log;
67
+ var pow = Math.pow;
68
+ var sin = Math.sin;
69
+ var sign = Math.sign || function(x) { return x > 0 ? 1 : x < 0 ? -1 : 0; };
70
+ var sqrt = Math.sqrt;
71
+ var tan = Math.tan;
72
+
73
+ function acos(x) {
74
+ return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);
75
+ }
76
+
77
+ function asin(x) {
78
+ return x > 1 ? halfPi : x < -1 ? -halfPi : Math.asin(x);
79
+ }
80
+
81
+ function haversin(x) {
82
+ return (x = sin(x / 2)) * x;
83
+ }
84
+
85
+ function noop() {}
86
+
87
+ function streamGeometry(geometry, stream) {
88
+ if (geometry && streamGeometryType.hasOwnProperty(geometry.type)) {
89
+ streamGeometryType[geometry.type](geometry, stream);
90
+ }
91
+ }
92
+
93
+ var streamObjectType = {
94
+ Feature: function(object, stream) {
95
+ streamGeometry(object.geometry, stream);
96
+ },
97
+ FeatureCollection: function(object, stream) {
98
+ var features = object.features, i = -1, n = features.length;
99
+ while (++i < n) streamGeometry(features[i].geometry, stream);
100
+ }
101
+ };
102
+
103
+ var streamGeometryType = {
104
+ Sphere: function(object, stream) {
105
+ stream.sphere();
106
+ },
107
+ Point: function(object, stream) {
108
+ object = object.coordinates;
109
+ stream.point(object[0], object[1], object[2]);
110
+ },
111
+ MultiPoint: function(object, stream) {
112
+ var coordinates = object.coordinates, i = -1, n = coordinates.length;
113
+ while (++i < n) object = coordinates[i], stream.point(object[0], object[1], object[2]);
114
+ },
115
+ LineString: function(object, stream) {
116
+ streamLine(object.coordinates, stream, 0);
117
+ },
118
+ MultiLineString: function(object, stream) {
119
+ var coordinates = object.coordinates, i = -1, n = coordinates.length;
120
+ while (++i < n) streamLine(coordinates[i], stream, 0);
121
+ },
122
+ Polygon: function(object, stream) {
123
+ streamPolygon(object.coordinates, stream);
124
+ },
125
+ MultiPolygon: function(object, stream) {
126
+ var coordinates = object.coordinates, i = -1, n = coordinates.length;
127
+ while (++i < n) streamPolygon(coordinates[i], stream);
128
+ },
129
+ GeometryCollection: function(object, stream) {
130
+ var geometries = object.geometries, i = -1, n = geometries.length;
131
+ while (++i < n) streamGeometry(geometries[i], stream);
132
+ }
133
+ };
134
+
135
+ function streamLine(coordinates, stream, closed) {
136
+ var i = -1, n = coordinates.length - closed, coordinate;
137
+ stream.lineStart();
138
+ while (++i < n) coordinate = coordinates[i], stream.point(coordinate[0], coordinate[1], coordinate[2]);
139
+ stream.lineEnd();
140
+ }
141
+
142
+ function streamPolygon(coordinates, stream) {
143
+ var i = -1, n = coordinates.length;
144
+ stream.polygonStart();
145
+ while (++i < n) streamLine(coordinates[i], stream, 1);
146
+ stream.polygonEnd();
147
+ }
148
+
149
+ var geoStream = function(object, stream) {
150
+ if (object && streamObjectType.hasOwnProperty(object.type)) {
151
+ streamObjectType[object.type](object, stream);
152
+ } else {
153
+ streamGeometry(object, stream);
154
+ }
155
+ };
156
+
157
+ var areaRingSum = adder();
158
+
159
+ var areaSum = adder();
160
+ var lambda00;
161
+ var phi00;
162
+ var lambda0;
163
+ var cosPhi0;
164
+ var sinPhi0;
165
+
166
+ var areaStream = {
167
+ point: noop,
168
+ lineStart: noop,
169
+ lineEnd: noop,
170
+ polygonStart: function() {
171
+ areaRingSum.reset();
172
+ areaStream.lineStart = areaRingStart;
173
+ areaStream.lineEnd = areaRingEnd;
174
+ },
175
+ polygonEnd: function() {
176
+ var areaRing = +areaRingSum;
177
+ areaSum.add(areaRing < 0 ? tau + areaRing : areaRing);
178
+ this.lineStart = this.lineEnd = this.point = noop;
179
+ },
180
+ sphere: function() {
181
+ areaSum.add(tau);
182
+ }
183
+ };
184
+
185
+ function areaRingStart() {
186
+ areaStream.point = areaPointFirst;
187
+ }
188
+
189
+ function areaRingEnd() {
190
+ areaPoint(lambda00, phi00);
191
+ }
192
+
193
+ function areaPointFirst(lambda, phi) {
194
+ areaStream.point = areaPoint;
195
+ lambda00 = lambda, phi00 = phi;
196
+ lambda *= radians, phi *= radians;
197
+ lambda0 = lambda, cosPhi0 = cos(phi = phi / 2 + quarterPi), sinPhi0 = sin(phi);
198
+ }
199
+
200
+ function areaPoint(lambda, phi) {
201
+ lambda *= radians, phi *= radians;
202
+ phi = phi / 2 + quarterPi; // half the angular distance from south pole
203
+
204
+ // Spherical excess E for a spherical triangle with vertices: south pole,
205
+ // previous point, current point. Uses a formula derived from Cagnoli’s
206
+ // theorem. See Todhunter, Spherical Trig. (1871), Sec. 103, Eq. (2).
207
+ var dLambda = lambda - lambda0,
208
+ sdLambda = dLambda >= 0 ? 1 : -1,
209
+ adLambda = sdLambda * dLambda,
210
+ cosPhi = cos(phi),
211
+ sinPhi = sin(phi),
212
+ k = sinPhi0 * sinPhi,
213
+ u = cosPhi0 * cosPhi + k * cos(adLambda),
214
+ v = k * sdLambda * sin(adLambda);
215
+ areaRingSum.add(atan2(v, u));
216
+
217
+ // Advance the previous points.
218
+ lambda0 = lambda, cosPhi0 = cosPhi, sinPhi0 = sinPhi;
219
+ }
220
+
221
+ var area = function(object) {
222
+ areaSum.reset();
223
+ geoStream(object, areaStream);
224
+ return areaSum * 2;
225
+ };
226
+
227
+ function spherical(cartesian) {
228
+ return [atan2(cartesian[1], cartesian[0]), asin(cartesian[2])];
229
+ }
230
+
231
+ function cartesian(spherical) {
232
+ var lambda = spherical[0], phi = spherical[1], cosPhi = cos(phi);
233
+ return [cosPhi * cos(lambda), cosPhi * sin(lambda), sin(phi)];
234
+ }
235
+
236
+ function cartesianDot(a, b) {
237
+ return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];
238
+ }
239
+
240
+ function cartesianCross(a, b) {
241
+ return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];
242
+ }
243
+
244
+ // TODO return a
245
+ function cartesianAddInPlace(a, b) {
246
+ a[0] += b[0], a[1] += b[1], a[2] += b[2];
247
+ }
248
+
249
+ function cartesianScale(vector, k) {
250
+ return [vector[0] * k, vector[1] * k, vector[2] * k];
251
+ }
252
+
253
+ // TODO return d
254
+ function cartesianNormalizeInPlace(d) {
255
+ var l = sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);
256
+ d[0] /= l, d[1] /= l, d[2] /= l;
257
+ }
258
+
259
+ var lambda0$1;
260
+ var phi0;
261
+ var lambda1;
262
+ var phi1;
263
+ var lambda2;
264
+ var lambda00$1;
265
+ var phi00$1;
266
+ var p0;
267
+ var deltaSum = adder();
268
+ var ranges;
269
+ var range$1;
270
+
271
+ var boundsStream = {
272
+ point: boundsPoint,
273
+ lineStart: boundsLineStart,
274
+ lineEnd: boundsLineEnd,
275
+ polygonStart: function() {
276
+ boundsStream.point = boundsRingPoint;
277
+ boundsStream.lineStart = boundsRingStart;
278
+ boundsStream.lineEnd = boundsRingEnd;
279
+ deltaSum.reset();
280
+ areaStream.polygonStart();
281
+ },
282
+ polygonEnd: function() {
283
+ areaStream.polygonEnd();
284
+ boundsStream.point = boundsPoint;
285
+ boundsStream.lineStart = boundsLineStart;
286
+ boundsStream.lineEnd = boundsLineEnd;
287
+ if (areaRingSum < 0) lambda0$1 = -(lambda1 = 180), phi0 = -(phi1 = 90);
288
+ else if (deltaSum > epsilon) phi1 = 90;
289
+ else if (deltaSum < -epsilon) phi0 = -90;
290
+ range$1[0] = lambda0$1, range$1[1] = lambda1;
291
+ }
292
+ };
293
+
294
+ function boundsPoint(lambda, phi) {
295
+ ranges.push(range$1 = [lambda0$1 = lambda, lambda1 = lambda]);
296
+ if (phi < phi0) phi0 = phi;
297
+ if (phi > phi1) phi1 = phi;
298
+ }
299
+
300
+ function linePoint(lambda, phi) {
301
+ var p = cartesian([lambda * radians, phi * radians]);
302
+ if (p0) {
303
+ var normal = cartesianCross(p0, p),
304
+ equatorial = [normal[1], -normal[0], 0],
305
+ inflection = cartesianCross(equatorial, normal);
306
+ cartesianNormalizeInPlace(inflection);
307
+ inflection = spherical(inflection);
308
+ var delta = lambda - lambda2,
309
+ sign$$1 = delta > 0 ? 1 : -1,
310
+ lambdai = inflection[0] * degrees * sign$$1,
311
+ phii,
312
+ antimeridian = abs(delta) > 180;
313
+ if (antimeridian ^ (sign$$1 * lambda2 < lambdai && lambdai < sign$$1 * lambda)) {
314
+ phii = inflection[1] * degrees;
315
+ if (phii > phi1) phi1 = phii;
316
+ } else if (lambdai = (lambdai + 360) % 360 - 180, antimeridian ^ (sign$$1 * lambda2 < lambdai && lambdai < sign$$1 * lambda)) {
317
+ phii = -inflection[1] * degrees;
318
+ if (phii < phi0) phi0 = phii;
319
+ } else {
320
+ if (phi < phi0) phi0 = phi;
321
+ if (phi > phi1) phi1 = phi;
322
+ }
323
+ if (antimeridian) {
324
+ if (lambda < lambda2) {
325
+ if (angle(lambda0$1, lambda) > angle(lambda0$1, lambda1)) lambda1 = lambda;
326
+ } else {
327
+ if (angle(lambda, lambda1) > angle(lambda0$1, lambda1)) lambda0$1 = lambda;
328
+ }
329
+ } else {
330
+ if (lambda1 >= lambda0$1) {
331
+ if (lambda < lambda0$1) lambda0$1 = lambda;
332
+ if (lambda > lambda1) lambda1 = lambda;
333
+ } else {
334
+ if (lambda > lambda2) {
335
+ if (angle(lambda0$1, lambda) > angle(lambda0$1, lambda1)) lambda1 = lambda;
336
+ } else {
337
+ if (angle(lambda, lambda1) > angle(lambda0$1, lambda1)) lambda0$1 = lambda;
338
+ }
339
+ }
340
+ }
341
+ } else {
342
+ ranges.push(range$1 = [lambda0$1 = lambda, lambda1 = lambda]);
343
+ }
344
+ if (phi < phi0) phi0 = phi;
345
+ if (phi > phi1) phi1 = phi;
346
+ p0 = p, lambda2 = lambda;
347
+ }
348
+
349
+ function boundsLineStart() {
350
+ boundsStream.point = linePoint;
351
+ }
352
+
353
+ function boundsLineEnd() {
354
+ range$1[0] = lambda0$1, range$1[1] = lambda1;
355
+ boundsStream.point = boundsPoint;
356
+ p0 = null;
357
+ }
358
+
359
+ function boundsRingPoint(lambda, phi) {
360
+ if (p0) {
361
+ var delta = lambda - lambda2;
362
+ deltaSum.add(abs(delta) > 180 ? delta + (delta > 0 ? 360 : -360) : delta);
363
+ } else {
364
+ lambda00$1 = lambda, phi00$1 = phi;
365
+ }
366
+ areaStream.point(lambda, phi);
367
+ linePoint(lambda, phi);
368
+ }
369
+
370
+ function boundsRingStart() {
371
+ areaStream.lineStart();
372
+ }
373
+
374
+ function boundsRingEnd() {
375
+ boundsRingPoint(lambda00$1, phi00$1);
376
+ areaStream.lineEnd();
377
+ if (abs(deltaSum) > epsilon) lambda0$1 = -(lambda1 = 180);
378
+ range$1[0] = lambda0$1, range$1[1] = lambda1;
379
+ p0 = null;
380
+ }
381
+
382
+ // Finds the left-right distance between two longitudes.
383
+ // This is almost the same as (lambda1 - lambda0 + 360°) % 360°, except that we want
384
+ // the distance between ±180° to be 360°.
385
+ function angle(lambda0, lambda1) {
386
+ return (lambda1 -= lambda0) < 0 ? lambda1 + 360 : lambda1;
387
+ }
388
+
389
+ function rangeCompare(a, b) {
390
+ return a[0] - b[0];
391
+ }
392
+
393
+ function rangeContains(range$$1, x) {
394
+ return range$$1[0] <= range$$1[1] ? range$$1[0] <= x && x <= range$$1[1] : x < range$$1[0] || range$$1[1] < x;
395
+ }
396
+
397
+ var bounds = function(feature) {
398
+ var i, n, a, b, merged, deltaMax, delta;
399
+
400
+ phi1 = lambda1 = -(lambda0$1 = phi0 = Infinity);
401
+ ranges = [];
402
+ geoStream(feature, boundsStream);
403
+
404
+ // First, sort ranges by their minimum longitudes.
405
+ if (n = ranges.length) {
406
+ ranges.sort(rangeCompare);
407
+
408
+ // Then, merge any ranges that overlap.
409
+ for (i = 1, a = ranges[0], merged = [a]; i < n; ++i) {
410
+ b = ranges[i];
411
+ if (rangeContains(a, b[0]) || rangeContains(a, b[1])) {
412
+ if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1];
413
+ if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0];
414
+ } else {
415
+ merged.push(a = b);
416
+ }
417
+ }
418
+
419
+ // Finally, find the largest gap between the merged ranges.
420
+ // The final bounding box will be the inverse of this gap.
421
+ for (deltaMax = -Infinity, n = merged.length - 1, i = 0, a = merged[n]; i <= n; a = b, ++i) {
422
+ b = merged[i];
423
+ if ((delta = angle(a[1], b[0])) > deltaMax) deltaMax = delta, lambda0$1 = b[0], lambda1 = a[1];
424
+ }
425
+ }
426
+
427
+ ranges = range$1 = null;
428
+
429
+ return lambda0$1 === Infinity || phi0 === Infinity
430
+ ? [[NaN, NaN], [NaN, NaN]]
431
+ : [[lambda0$1, phi0], [lambda1, phi1]];
432
+ };
433
+
434
+ var W0;
435
+ var W1;
436
+ var X0;
437
+ var Y0;
438
+ var Z0;
439
+ var X1;
440
+ var Y1;
441
+ var Z1;
442
+ var X2;
443
+ var Y2;
444
+ var Z2;
445
+ var lambda00$2;
446
+ var phi00$2;
447
+ var x0;
448
+ var y0;
449
+ var z0; // previous point
450
+
451
+ var centroidStream = {
452
+ sphere: noop,
453
+ point: centroidPoint,
454
+ lineStart: centroidLineStart,
455
+ lineEnd: centroidLineEnd,
456
+ polygonStart: function() {
457
+ centroidStream.lineStart = centroidRingStart;
458
+ centroidStream.lineEnd = centroidRingEnd;
459
+ },
460
+ polygonEnd: function() {
461
+ centroidStream.lineStart = centroidLineStart;
462
+ centroidStream.lineEnd = centroidLineEnd;
463
+ }
464
+ };
465
+
466
+ // Arithmetic mean of Cartesian vectors.
467
+ function centroidPoint(lambda, phi) {
468
+ lambda *= radians, phi *= radians;
469
+ var cosPhi = cos(phi);
470
+ centroidPointCartesian(cosPhi * cos(lambda), cosPhi * sin(lambda), sin(phi));
471
+ }
472
+
473
+ function centroidPointCartesian(x, y, z) {
474
+ ++W0;
475
+ X0 += (x - X0) / W0;
476
+ Y0 += (y - Y0) / W0;
477
+ Z0 += (z - Z0) / W0;
478
+ }
479
+
480
+ function centroidLineStart() {
481
+ centroidStream.point = centroidLinePointFirst;
482
+ }
483
+
484
+ function centroidLinePointFirst(lambda, phi) {
485
+ lambda *= radians, phi *= radians;
486
+ var cosPhi = cos(phi);
487
+ x0 = cosPhi * cos(lambda);
488
+ y0 = cosPhi * sin(lambda);
489
+ z0 = sin(phi);
490
+ centroidStream.point = centroidLinePoint;
491
+ centroidPointCartesian(x0, y0, z0);
492
+ }
493
+
494
+ function centroidLinePoint(lambda, phi) {
495
+ lambda *= radians, phi *= radians;
496
+ var cosPhi = cos(phi),
497
+ x = cosPhi * cos(lambda),
498
+ y = cosPhi * sin(lambda),
499
+ z = sin(phi),
500
+ w = atan2(sqrt((w = y0 * z - z0 * y) * w + (w = z0 * x - x0 * z) * w + (w = x0 * y - y0 * x) * w), x0 * x + y0 * y + z0 * z);
501
+ W1 += w;
502
+ X1 += w * (x0 + (x0 = x));
503
+ Y1 += w * (y0 + (y0 = y));
504
+ Z1 += w * (z0 + (z0 = z));
505
+ centroidPointCartesian(x0, y0, z0);
506
+ }
507
+
508
+ function centroidLineEnd() {
509
+ centroidStream.point = centroidPoint;
510
+ }
511
+
512
+ // See J. E. Brock, The Inertia Tensor for a Spherical Triangle,
513
+ // J. Applied Mechanics 42, 239 (1975).
514
+ function centroidRingStart() {
515
+ centroidStream.point = centroidRingPointFirst;
516
+ }
517
+
518
+ function centroidRingEnd() {
519
+ centroidRingPoint(lambda00$2, phi00$2);
520
+ centroidStream.point = centroidPoint;
521
+ }
522
+
523
+ function centroidRingPointFirst(lambda, phi) {
524
+ lambda00$2 = lambda, phi00$2 = phi;
525
+ lambda *= radians, phi *= radians;
526
+ centroidStream.point = centroidRingPoint;
527
+ var cosPhi = cos(phi);
528
+ x0 = cosPhi * cos(lambda);
529
+ y0 = cosPhi * sin(lambda);
530
+ z0 = sin(phi);
531
+ centroidPointCartesian(x0, y0, z0);
532
+ }
533
+
534
+ function centroidRingPoint(lambda, phi) {
535
+ lambda *= radians, phi *= radians;
536
+ var cosPhi = cos(phi),
537
+ x = cosPhi * cos(lambda),
538
+ y = cosPhi * sin(lambda),
539
+ z = sin(phi),
540
+ cx = y0 * z - z0 * y,
541
+ cy = z0 * x - x0 * z,
542
+ cz = x0 * y - y0 * x,
543
+ m = sqrt(cx * cx + cy * cy + cz * cz),
544
+ w = asin(m), // line weight = angle
545
+ v = m && -w / m; // area weight multiplier
546
+ X2 += v * cx;
547
+ Y2 += v * cy;
548
+ Z2 += v * cz;
549
+ W1 += w;
550
+ X1 += w * (x0 + (x0 = x));
551
+ Y1 += w * (y0 + (y0 = y));
552
+ Z1 += w * (z0 + (z0 = z));
553
+ centroidPointCartesian(x0, y0, z0);
554
+ }
555
+
556
+ var centroid = function(object) {
557
+ W0 = W1 =
558
+ X0 = Y0 = Z0 =
559
+ X1 = Y1 = Z1 =
560
+ X2 = Y2 = Z2 = 0;
561
+ geoStream(object, centroidStream);
562
+
563
+ var x = X2,
564
+ y = Y2,
565
+ z = Z2,
566
+ m = x * x + y * y + z * z;
567
+
568
+ // If the area-weighted ccentroid is undefined, fall back to length-weighted ccentroid.
569
+ if (m < epsilon2) {
570
+ x = X1, y = Y1, z = Z1;
571
+ // If the feature has zero length, fall back to arithmetic mean of point vectors.
572
+ if (W1 < epsilon) x = X0, y = Y0, z = Z0;
573
+ m = x * x + y * y + z * z;
574
+ // If the feature still has an undefined ccentroid, then return.
575
+ if (m < epsilon2) return [NaN, NaN];
576
+ }
577
+
578
+ return [atan2(y, x) * degrees, asin(z / sqrt(m)) * degrees];
579
+ };
580
+
581
+ var constant = function(x) {
582
+ return function() {
583
+ return x;
584
+ };
585
+ };
586
+
587
+ var compose = function(a, b) {
588
+
589
+ function compose(x, y) {
590
+ return x = a(x, y), b(x[0], x[1]);
591
+ }
592
+
593
+ if (a.invert && b.invert) compose.invert = function(x, y) {
594
+ return x = b.invert(x, y), x && a.invert(x[0], x[1]);
595
+ };
596
+
597
+ return compose;
598
+ };
599
+
600
+ function rotationIdentity(lambda, phi) {
601
+ return [lambda > pi ? lambda - tau : lambda < -pi ? lambda + tau : lambda, phi];
602
+ }
603
+
604
+ rotationIdentity.invert = rotationIdentity;
605
+
606
+ function rotateRadians(deltaLambda, deltaPhi, deltaGamma) {
607
+ return (deltaLambda %= tau) ? (deltaPhi || deltaGamma ? compose(rotationLambda(deltaLambda), rotationPhiGamma(deltaPhi, deltaGamma))
608
+ : rotationLambda(deltaLambda))
609
+ : (deltaPhi || deltaGamma ? rotationPhiGamma(deltaPhi, deltaGamma)
610
+ : rotationIdentity);
611
+ }
612
+
613
+ function forwardRotationLambda(deltaLambda) {
614
+ return function(lambda, phi) {
615
+ return lambda += deltaLambda, [lambda > pi ? lambda - tau : lambda < -pi ? lambda + tau : lambda, phi];
616
+ };
617
+ }
618
+
619
+ function rotationLambda(deltaLambda) {
620
+ var rotation = forwardRotationLambda(deltaLambda);
621
+ rotation.invert = forwardRotationLambda(-deltaLambda);
622
+ return rotation;
623
+ }
624
+
625
+ function rotationPhiGamma(deltaPhi, deltaGamma) {
626
+ var cosDeltaPhi = cos(deltaPhi),
627
+ sinDeltaPhi = sin(deltaPhi),
628
+ cosDeltaGamma = cos(deltaGamma),
629
+ sinDeltaGamma = sin(deltaGamma);
630
+
631
+ function rotation(lambda, phi) {
632
+ var cosPhi = cos(phi),
633
+ x = cos(lambda) * cosPhi,
634
+ y = sin(lambda) * cosPhi,
635
+ z = sin(phi),
636
+ k = z * cosDeltaPhi + x * sinDeltaPhi;
637
+ return [
638
+ atan2(y * cosDeltaGamma - k * sinDeltaGamma, x * cosDeltaPhi - z * sinDeltaPhi),
639
+ asin(k * cosDeltaGamma + y * sinDeltaGamma)
640
+ ];
641
+ }
642
+
643
+ rotation.invert = function(lambda, phi) {
644
+ var cosPhi = cos(phi),
645
+ x = cos(lambda) * cosPhi,
646
+ y = sin(lambda) * cosPhi,
647
+ z = sin(phi),
648
+ k = z * cosDeltaGamma - y * sinDeltaGamma;
649
+ return [
650
+ atan2(y * cosDeltaGamma + z * sinDeltaGamma, x * cosDeltaPhi + k * sinDeltaPhi),
651
+ asin(k * cosDeltaPhi - x * sinDeltaPhi)
652
+ ];
653
+ };
654
+
655
+ return rotation;
656
+ }
657
+
658
+ var rotation = function(rotate) {
659
+ rotate = rotateRadians(rotate[0] * radians, rotate[1] * radians, rotate.length > 2 ? rotate[2] * radians : 0);
660
+
661
+ function forward(coordinates) {
662
+ coordinates = rotate(coordinates[0] * radians, coordinates[1] * radians);
663
+ return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;
664
+ }
665
+
666
+ forward.invert = function(coordinates) {
667
+ coordinates = rotate.invert(coordinates[0] * radians, coordinates[1] * radians);
668
+ return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;
669
+ };
670
+
671
+ return forward;
672
+ };
673
+
674
+ // Generates a circle centered at [0°, 0°], with a given radius and precision.
675
+ function circleStream(stream, radius, delta, direction, t0, t1) {
676
+ if (!delta) return;
677
+ var cosRadius = cos(radius),
678
+ sinRadius = sin(radius),
679
+ step = direction * delta;
680
+ if (t0 == null) {
681
+ t0 = radius + direction * tau;
682
+ t1 = radius - step / 2;
683
+ } else {
684
+ t0 = circleRadius(cosRadius, t0);
685
+ t1 = circleRadius(cosRadius, t1);
686
+ if (direction > 0 ? t0 < t1 : t0 > t1) t0 += direction * tau;
687
+ }
688
+ for (var point, t = t0; direction > 0 ? t > t1 : t < t1; t -= step) {
689
+ point = spherical([cosRadius, -sinRadius * cos(t), -sinRadius * sin(t)]);
690
+ stream.point(point[0], point[1]);
691
+ }
692
+ }
693
+
694
+ // Returns the signed angle of a cartesian point relative to [cosRadius, 0, 0].
695
+ function circleRadius(cosRadius, point) {
696
+ point = cartesian(point), point[0] -= cosRadius;
697
+ cartesianNormalizeInPlace(point);
698
+ var radius = acos(-point[1]);
699
+ return ((-point[2] < 0 ? -radius : radius) + tau - epsilon) % tau;
700
+ }
701
+
702
+ var circle = function() {
703
+ var center = constant([0, 0]),
704
+ radius = constant(90),
705
+ precision = constant(6),
706
+ ring,
707
+ rotate,
708
+ stream = {point: point};
709
+
710
+ function point(x, y) {
711
+ ring.push(x = rotate(x, y));
712
+ x[0] *= degrees, x[1] *= degrees;
713
+ }
714
+
715
+ function circle() {
716
+ var c = center.apply(this, arguments),
717
+ r = radius.apply(this, arguments) * radians,
718
+ p = precision.apply(this, arguments) * radians;
719
+ ring = [];
720
+ rotate = rotateRadians(-c[0] * radians, -c[1] * radians, 0).invert;
721
+ circleStream(stream, r, p, 1);
722
+ c = {type: "Polygon", coordinates: [ring]};
723
+ ring = rotate = null;
724
+ return c;
725
+ }
726
+
727
+ circle.center = function(_) {
728
+ return arguments.length ? (center = typeof _ === "function" ? _ : constant([+_[0], +_[1]]), circle) : center;
729
+ };
730
+
731
+ circle.radius = function(_) {
732
+ return arguments.length ? (radius = typeof _ === "function" ? _ : constant(+_), circle) : radius;
733
+ };
734
+
735
+ circle.precision = function(_) {
736
+ return arguments.length ? (precision = typeof _ === "function" ? _ : constant(+_), circle) : precision;
737
+ };
738
+
739
+ return circle;
740
+ };
741
+
742
+ var clipBuffer = function() {
743
+ var lines = [],
744
+ line;
745
+ return {
746
+ point: function(x, y) {
747
+ line.push([x, y]);
748
+ },
749
+ lineStart: function() {
750
+ lines.push(line = []);
751
+ },
752
+ lineEnd: noop,
753
+ rejoin: function() {
754
+ if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));
755
+ },
756
+ result: function() {
757
+ var result = lines;
758
+ lines = [];
759
+ line = null;
760
+ return result;
761
+ }
762
+ };
763
+ };
764
+
765
+ var clipLine = function(a, b, x0, y0, x1, y1) {
766
+ var ax = a[0],
767
+ ay = a[1],
768
+ bx = b[0],
769
+ by = b[1],
770
+ t0 = 0,
771
+ t1 = 1,
772
+ dx = bx - ax,
773
+ dy = by - ay,
774
+ r;
775
+
776
+ r = x0 - ax;
777
+ if (!dx && r > 0) return;
778
+ r /= dx;
779
+ if (dx < 0) {
780
+ if (r < t0) return;
781
+ if (r < t1) t1 = r;
782
+ } else if (dx > 0) {
783
+ if (r > t1) return;
784
+ if (r > t0) t0 = r;
785
+ }
786
+
787
+ r = x1 - ax;
788
+ if (!dx && r < 0) return;
789
+ r /= dx;
790
+ if (dx < 0) {
791
+ if (r > t1) return;
792
+ if (r > t0) t0 = r;
793
+ } else if (dx > 0) {
794
+ if (r < t0) return;
795
+ if (r < t1) t1 = r;
796
+ }
797
+
798
+ r = y0 - ay;
799
+ if (!dy && r > 0) return;
800
+ r /= dy;
801
+ if (dy < 0) {
802
+ if (r < t0) return;
803
+ if (r < t1) t1 = r;
804
+ } else if (dy > 0) {
805
+ if (r > t1) return;
806
+ if (r > t0) t0 = r;
807
+ }
808
+
809
+ r = y1 - ay;
810
+ if (!dy && r < 0) return;
811
+ r /= dy;
812
+ if (dy < 0) {
813
+ if (r > t1) return;
814
+ if (r > t0) t0 = r;
815
+ } else if (dy > 0) {
816
+ if (r < t0) return;
817
+ if (r < t1) t1 = r;
818
+ }
819
+
820
+ if (t0 > 0) a[0] = ax + t0 * dx, a[1] = ay + t0 * dy;
821
+ if (t1 < 1) b[0] = ax + t1 * dx, b[1] = ay + t1 * dy;
822
+ return true;
823
+ };
824
+
825
+ var pointEqual = function(a, b) {
826
+ return abs(a[0] - b[0]) < epsilon && abs(a[1] - b[1]) < epsilon;
827
+ };
828
+
829
+ function Intersection(point, points, other, entry) {
830
+ this.x = point;
831
+ this.z = points;
832
+ this.o = other; // another intersection
833
+ this.e = entry; // is an entry?
834
+ this.v = false; // visited
835
+ this.n = this.p = null; // next & previous
836
+ }
837
+
838
+ // A generalized polygon clipping algorithm: given a polygon that has been cut
839
+ // into its visible line segments, and rejoins the segments by interpolating
840
+ // along the clip edge.
841
+ var clipPolygon = function(segments, compareIntersection, startInside, interpolate, stream) {
842
+ var subject = [],
843
+ clip = [],
844
+ i,
845
+ n;
846
+
847
+ segments.forEach(function(segment) {
848
+ if ((n = segment.length - 1) <= 0) return;
849
+ var n, p0 = segment[0], p1 = segment[n], x;
850
+
851
+ // If the first and last points of a segment are coincident, then treat as a
852
+ // closed ring. TODO if all rings are closed, then the winding order of the
853
+ // exterior ring should be checked.
854
+ if (pointEqual(p0, p1)) {
855
+ stream.lineStart();
856
+ for (i = 0; i < n; ++i) stream.point((p0 = segment[i])[0], p0[1]);
857
+ stream.lineEnd();
858
+ return;
859
+ }
860
+
861
+ subject.push(x = new Intersection(p0, segment, null, true));
862
+ clip.push(x.o = new Intersection(p0, null, x, false));
863
+ subject.push(x = new Intersection(p1, segment, null, false));
864
+ clip.push(x.o = new Intersection(p1, null, x, true));
865
+ });
866
+
867
+ if (!subject.length) return;
868
+
869
+ clip.sort(compareIntersection);
870
+ link(subject);
871
+ link(clip);
872
+
873
+ for (i = 0, n = clip.length; i < n; ++i) {
874
+ clip[i].e = startInside = !startInside;
875
+ }
876
+
877
+ var start = subject[0],
878
+ points,
879
+ point;
880
+
881
+ while (1) {
882
+ // Find first unvisited intersection.
883
+ var current = start,
884
+ isSubject = true;
885
+ while (current.v) if ((current = current.n) === start) return;
886
+ points = current.z;
887
+ stream.lineStart();
888
+ do {
889
+ current.v = current.o.v = true;
890
+ if (current.e) {
891
+ if (isSubject) {
892
+ for (i = 0, n = points.length; i < n; ++i) stream.point((point = points[i])[0], point[1]);
893
+ } else {
894
+ interpolate(current.x, current.n.x, 1, stream);
895
+ }
896
+ current = current.n;
897
+ } else {
898
+ if (isSubject) {
899
+ points = current.p.z;
900
+ for (i = points.length - 1; i >= 0; --i) stream.point((point = points[i])[0], point[1]);
901
+ } else {
902
+ interpolate(current.x, current.p.x, -1, stream);
903
+ }
904
+ current = current.p;
905
+ }
906
+ current = current.o;
907
+ points = current.z;
908
+ isSubject = !isSubject;
909
+ } while (!current.v);
910
+ stream.lineEnd();
911
+ }
912
+ };
913
+
914
+ function link(array) {
915
+ if (!(n = array.length)) return;
916
+ var n,
917
+ i = 0,
918
+ a = array[0],
919
+ b;
920
+ while (++i < n) {
921
+ a.n = b = array[i];
922
+ b.p = a;
923
+ a = b;
924
+ }
925
+ a.n = b = array[0];
926
+ b.p = a;
927
+ }
928
+
929
+ var clipMax = 1e9;
930
+ var clipMin = -clipMax;
931
+
932
+ // TODO Use d3-polygon’s polygonContains here for the ring check?
933
+ // TODO Eliminate duplicate buffering in clipBuffer and polygon.push?
934
+
935
+ function clipExtent(x0, y0, x1, y1) {
936
+
937
+ function visible(x, y) {
938
+ return x0 <= x && x <= x1 && y0 <= y && y <= y1;
939
+ }
940
+
941
+ function interpolate(from, to, direction, stream) {
942
+ var a = 0, a1 = 0;
943
+ if (from == null
944
+ || (a = corner(from, direction)) !== (a1 = corner(to, direction))
945
+ || comparePoint(from, to) < 0 ^ direction > 0) {
946
+ do stream.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);
947
+ while ((a = (a + direction + 4) % 4) !== a1);
948
+ } else {
949
+ stream.point(to[0], to[1]);
950
+ }
951
+ }
952
+
953
+ function corner(p, direction) {
954
+ return abs(p[0] - x0) < epsilon ? direction > 0 ? 0 : 3
955
+ : abs(p[0] - x1) < epsilon ? direction > 0 ? 2 : 1
956
+ : abs(p[1] - y0) < epsilon ? direction > 0 ? 1 : 0
957
+ : direction > 0 ? 3 : 2; // abs(p[1] - y1) < epsilon
958
+ }
959
+
960
+ function compareIntersection(a, b) {
961
+ return comparePoint(a.x, b.x);
962
+ }
963
+
964
+ function comparePoint(a, b) {
965
+ var ca = corner(a, 1),
966
+ cb = corner(b, 1);
967
+ return ca !== cb ? ca - cb
968
+ : ca === 0 ? b[1] - a[1]
969
+ : ca === 1 ? a[0] - b[0]
970
+ : ca === 2 ? a[1] - b[1]
971
+ : b[0] - a[0];
972
+ }
973
+
974
+ return function(stream) {
975
+ var activeStream = stream,
976
+ bufferStream = clipBuffer(),
977
+ segments,
978
+ polygon,
979
+ ring,
980
+ x__, y__, v__, // first point
981
+ x_, y_, v_, // previous point
982
+ first,
983
+ clean;
984
+
985
+ var clipStream = {
986
+ point: point,
987
+ lineStart: lineStart,
988
+ lineEnd: lineEnd,
989
+ polygonStart: polygonStart,
990
+ polygonEnd: polygonEnd
991
+ };
992
+
993
+ function point(x, y) {
994
+ if (visible(x, y)) activeStream.point(x, y);
995
+ }
996
+
997
+ function polygonInside() {
998
+ var winding = 0;
999
+
1000
+ for (var i = 0, n = polygon.length; i < n; ++i) {
1001
+ for (var ring = polygon[i], j = 1, m = ring.length, point = ring[0], a0, a1, b0 = point[0], b1 = point[1]; j < m; ++j) {
1002
+ a0 = b0, a1 = b1, point = ring[j], b0 = point[0], b1 = point[1];
1003
+ if (a1 <= y1) { if (b1 > y1 && (b0 - a0) * (y1 - a1) > (b1 - a1) * (x0 - a0)) ++winding; }
1004
+ else { if (b1 <= y1 && (b0 - a0) * (y1 - a1) < (b1 - a1) * (x0 - a0)) --winding; }
1005
+ }
1006
+ }
1007
+
1008
+ return winding;
1009
+ }
1010
+
1011
+ // Buffer geometry within a polygon and then clip it en masse.
1012
+ function polygonStart() {
1013
+ activeStream = bufferStream, segments = [], polygon = [], clean = true;
1014
+ }
1015
+
1016
+ function polygonEnd() {
1017
+ var startInside = polygonInside(),
1018
+ cleanInside = clean && startInside,
1019
+ visible = (segments = d3Array.merge(segments)).length;
1020
+ if (cleanInside || visible) {
1021
+ stream.polygonStart();
1022
+ if (cleanInside) {
1023
+ stream.lineStart();
1024
+ interpolate(null, null, 1, stream);
1025
+ stream.lineEnd();
1026
+ }
1027
+ if (visible) {
1028
+ clipPolygon(segments, compareIntersection, startInside, interpolate, stream);
1029
+ }
1030
+ stream.polygonEnd();
1031
+ }
1032
+ activeStream = stream, segments = polygon = ring = null;
1033
+ }
1034
+
1035
+ function lineStart() {
1036
+ clipStream.point = linePoint;
1037
+ if (polygon) polygon.push(ring = []);
1038
+ first = true;
1039
+ v_ = false;
1040
+ x_ = y_ = NaN;
1041
+ }
1042
+
1043
+ // TODO rather than special-case polygons, simply handle them separately.
1044
+ // Ideally, coincident intersection points should be jittered to avoid
1045
+ // clipping issues.
1046
+ function lineEnd() {
1047
+ if (segments) {
1048
+ linePoint(x__, y__);
1049
+ if (v__ && v_) bufferStream.rejoin();
1050
+ segments.push(bufferStream.result());
1051
+ }
1052
+ clipStream.point = point;
1053
+ if (v_) activeStream.lineEnd();
1054
+ }
1055
+
1056
+ function linePoint(x, y) {
1057
+ var v = visible(x, y);
1058
+ if (polygon) ring.push([x, y]);
1059
+ if (first) {
1060
+ x__ = x, y__ = y, v__ = v;
1061
+ first = false;
1062
+ if (v) {
1063
+ activeStream.lineStart();
1064
+ activeStream.point(x, y);
1065
+ }
1066
+ } else {
1067
+ if (v && v_) activeStream.point(x, y);
1068
+ else {
1069
+ var a = [x_ = Math.max(clipMin, Math.min(clipMax, x_)), y_ = Math.max(clipMin, Math.min(clipMax, y_))],
1070
+ b = [x = Math.max(clipMin, Math.min(clipMax, x)), y = Math.max(clipMin, Math.min(clipMax, y))];
1071
+ if (clipLine(a, b, x0, y0, x1, y1)) {
1072
+ if (!v_) {
1073
+ activeStream.lineStart();
1074
+ activeStream.point(a[0], a[1]);
1075
+ }
1076
+ activeStream.point(b[0], b[1]);
1077
+ if (!v) activeStream.lineEnd();
1078
+ clean = false;
1079
+ } else if (v) {
1080
+ activeStream.lineStart();
1081
+ activeStream.point(x, y);
1082
+ clean = false;
1083
+ }
1084
+ }
1085
+ }
1086
+ x_ = x, y_ = y, v_ = v;
1087
+ }
1088
+
1089
+ return clipStream;
1090
+ };
1091
+ }
1092
+
1093
+ var extent = function() {
1094
+ var x0 = 0,
1095
+ y0 = 0,
1096
+ x1 = 960,
1097
+ y1 = 500,
1098
+ cache,
1099
+ cacheStream,
1100
+ clip;
1101
+
1102
+ return clip = {
1103
+ stream: function(stream) {
1104
+ return cache && cacheStream === stream ? cache : cache = clipExtent(x0, y0, x1, y1)(cacheStream = stream);
1105
+ },
1106
+ extent: function(_) {
1107
+ return arguments.length ? (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1], cache = cacheStream = null, clip) : [[x0, y0], [x1, y1]];
1108
+ }
1109
+ };
1110
+ };
1111
+
1112
+ var sum = adder();
1113
+
1114
+ var polygonContains = function(polygon, point) {
1115
+ var lambda = point[0],
1116
+ phi = point[1],
1117
+ normal = [sin(lambda), -cos(lambda), 0],
1118
+ angle = 0,
1119
+ winding = 0;
1120
+
1121
+ sum.reset();
1122
+
1123
+ for (var i = 0, n = polygon.length; i < n; ++i) {
1124
+ if (!(m = (ring = polygon[i]).length)) continue;
1125
+ var ring,
1126
+ m,
1127
+ point0 = ring[m - 1],
1128
+ lambda0 = point0[0],
1129
+ phi0 = point0[1] / 2 + quarterPi,
1130
+ sinPhi0 = sin(phi0),
1131
+ cosPhi0 = cos(phi0);
1132
+
1133
+ for (var j = 0; j < m; ++j, lambda0 = lambda1, sinPhi0 = sinPhi1, cosPhi0 = cosPhi1, point0 = point1) {
1134
+ var point1 = ring[j],
1135
+ lambda1 = point1[0],
1136
+ phi1 = point1[1] / 2 + quarterPi,
1137
+ sinPhi1 = sin(phi1),
1138
+ cosPhi1 = cos(phi1),
1139
+ delta = lambda1 - lambda0,
1140
+ sign$$1 = delta >= 0 ? 1 : -1,
1141
+ absDelta = sign$$1 * delta,
1142
+ antimeridian = absDelta > pi,
1143
+ k = sinPhi0 * sinPhi1;
1144
+
1145
+ sum.add(atan2(k * sign$$1 * sin(absDelta), cosPhi0 * cosPhi1 + k * cos(absDelta)));
1146
+ angle += antimeridian ? delta + sign$$1 * tau : delta;
1147
+
1148
+ // Are the longitudes either side of the point’s meridian (lambda),
1149
+ // and are the latitudes smaller than the parallel (phi)?
1150
+ if (antimeridian ^ lambda0 >= lambda ^ lambda1 >= lambda) {
1151
+ var arc = cartesianCross(cartesian(point0), cartesian(point1));
1152
+ cartesianNormalizeInPlace(arc);
1153
+ var intersection = cartesianCross(normal, arc);
1154
+ cartesianNormalizeInPlace(intersection);
1155
+ var phiArc = (antimeridian ^ delta >= 0 ? -1 : 1) * asin(intersection[2]);
1156
+ if (phi > phiArc || phi === phiArc && (arc[0] || arc[1])) {
1157
+ winding += antimeridian ^ delta >= 0 ? 1 : -1;
1158
+ }
1159
+ }
1160
+ }
1161
+ }
1162
+
1163
+ // First, determine whether the South pole is inside or outside:
1164
+ //
1165
+ // It is inside if:
1166
+ // * the polygon winds around it in a clockwise direction.
1167
+ // * the polygon does not (cumulatively) wind around it, but has a negative
1168
+ // (counter-clockwise) area.
1169
+ //
1170
+ // Second, count the (signed) number of times a segment crosses a lambda
1171
+ // from the point to the South pole. If it is zero, then the point is the
1172
+ // same side as the South pole.
1173
+
1174
+ return (angle < -epsilon || angle < epsilon && sum < -epsilon) ^ (winding & 1);
1175
+ };
1176
+
1177
+ var lengthSum = adder();
1178
+ var lambda0$2;
1179
+ var sinPhi0$1;
1180
+ var cosPhi0$1;
1181
+
1182
+ var lengthStream = {
1183
+ sphere: noop,
1184
+ point: noop,
1185
+ lineStart: lengthLineStart,
1186
+ lineEnd: noop,
1187
+ polygonStart: noop,
1188
+ polygonEnd: noop
1189
+ };
1190
+
1191
+ function lengthLineStart() {
1192
+ lengthStream.point = lengthPointFirst;
1193
+ lengthStream.lineEnd = lengthLineEnd;
1194
+ }
1195
+
1196
+ function lengthLineEnd() {
1197
+ lengthStream.point = lengthStream.lineEnd = noop;
1198
+ }
1199
+
1200
+ function lengthPointFirst(lambda, phi) {
1201
+ lambda *= radians, phi *= radians;
1202
+ lambda0$2 = lambda, sinPhi0$1 = sin(phi), cosPhi0$1 = cos(phi);
1203
+ lengthStream.point = lengthPoint;
1204
+ }
1205
+
1206
+ function lengthPoint(lambda, phi) {
1207
+ lambda *= radians, phi *= radians;
1208
+ var sinPhi = sin(phi),
1209
+ cosPhi = cos(phi),
1210
+ delta = abs(lambda - lambda0$2),
1211
+ cosDelta = cos(delta),
1212
+ sinDelta = sin(delta),
1213
+ x = cosPhi * sinDelta,
1214
+ y = cosPhi0$1 * sinPhi - sinPhi0$1 * cosPhi * cosDelta,
1215
+ z = sinPhi0$1 * sinPhi + cosPhi0$1 * cosPhi * cosDelta;
1216
+ lengthSum.add(atan2(sqrt(x * x + y * y), z));
1217
+ lambda0$2 = lambda, sinPhi0$1 = sinPhi, cosPhi0$1 = cosPhi;
1218
+ }
1219
+
1220
+ var length = function(object) {
1221
+ lengthSum.reset();
1222
+ geoStream(object, lengthStream);
1223
+ return +lengthSum;
1224
+ };
1225
+
1226
+ var coordinates = [null, null];
1227
+ var object = {type: "LineString", coordinates: coordinates};
1228
+
1229
+ var distance = function(a, b) {
1230
+ coordinates[0] = a;
1231
+ coordinates[1] = b;
1232
+ return length(object);
1233
+ };
1234
+
1235
+ var containsObjectType = {
1236
+ Feature: function(object, point) {
1237
+ return containsGeometry(object.geometry, point);
1238
+ },
1239
+ FeatureCollection: function(object, point) {
1240
+ var features = object.features, i = -1, n = features.length;
1241
+ while (++i < n) if (containsGeometry(features[i].geometry, point)) return true;
1242
+ return false;
1243
+ }
1244
+ };
1245
+
1246
+ var containsGeometryType = {
1247
+ Sphere: function() {
1248
+ return true;
1249
+ },
1250
+ Point: function(object, point) {
1251
+ return containsPoint(object.coordinates, point);
1252
+ },
1253
+ MultiPoint: function(object, point) {
1254
+ var coordinates = object.coordinates, i = -1, n = coordinates.length;
1255
+ while (++i < n) if (containsPoint(coordinates[i], point)) return true;
1256
+ return false;
1257
+ },
1258
+ LineString: function(object, point) {
1259
+ return containsLine(object.coordinates, point);
1260
+ },
1261
+ MultiLineString: function(object, point) {
1262
+ var coordinates = object.coordinates, i = -1, n = coordinates.length;
1263
+ while (++i < n) if (containsLine(coordinates[i], point)) return true;
1264
+ return false;
1265
+ },
1266
+ Polygon: function(object, point) {
1267
+ return containsPolygon(object.coordinates, point);
1268
+ },
1269
+ MultiPolygon: function(object, point) {
1270
+ var coordinates = object.coordinates, i = -1, n = coordinates.length;
1271
+ while (++i < n) if (containsPolygon(coordinates[i], point)) return true;
1272
+ return false;
1273
+ },
1274
+ GeometryCollection: function(object, point) {
1275
+ var geometries = object.geometries, i = -1, n = geometries.length;
1276
+ while (++i < n) if (containsGeometry(geometries[i], point)) return true;
1277
+ return false;
1278
+ }
1279
+ };
1280
+
1281
+ function containsGeometry(geometry, point) {
1282
+ return geometry && containsGeometryType.hasOwnProperty(geometry.type)
1283
+ ? containsGeometryType[geometry.type](geometry, point)
1284
+ : false;
1285
+ }
1286
+
1287
+ function containsPoint(coordinates, point) {
1288
+ return distance(coordinates, point) === 0;
1289
+ }
1290
+
1291
+ function containsLine(coordinates, point) {
1292
+ var ab = distance(coordinates[0], coordinates[1]),
1293
+ ao = distance(coordinates[0], point),
1294
+ ob = distance(point, coordinates[1]);
1295
+ return ao + ob <= ab + epsilon;
1296
+ }
1297
+
1298
+ function containsPolygon(coordinates, point) {
1299
+ return !!polygonContains(coordinates.map(ringRadians), pointRadians(point));
1300
+ }
1301
+
1302
+ function ringRadians(ring) {
1303
+ return ring = ring.map(pointRadians), ring.pop(), ring;
1304
+ }
1305
+
1306
+ function pointRadians(point) {
1307
+ return [point[0] * radians, point[1] * radians];
1308
+ }
1309
+
1310
+ var contains = function(object, point) {
1311
+ return (object && containsObjectType.hasOwnProperty(object.type)
1312
+ ? containsObjectType[object.type]
1313
+ : containsGeometry)(object, point);
1314
+ };
1315
+
1316
+ function graticuleX(y0, y1, dy) {
1317
+ var y = d3Array.range(y0, y1 - epsilon, dy).concat(y1);
1318
+ return function(x) { return y.map(function(y) { return [x, y]; }); };
1319
+ }
1320
+
1321
+ function graticuleY(x0, x1, dx) {
1322
+ var x = d3Array.range(x0, x1 - epsilon, dx).concat(x1);
1323
+ return function(y) { return x.map(function(x) { return [x, y]; }); };
1324
+ }
1325
+
1326
+ function graticule() {
1327
+ var x1, x0, X1, X0,
1328
+ y1, y0, Y1, Y0,
1329
+ dx = 10, dy = dx, DX = 90, DY = 360,
1330
+ x, y, X, Y,
1331
+ precision = 2.5;
1332
+
1333
+ function graticule() {
1334
+ return {type: "MultiLineString", coordinates: lines()};
1335
+ }
1336
+
1337
+ function lines() {
1338
+ return d3Array.range(ceil(X0 / DX) * DX, X1, DX).map(X)
1339
+ .concat(d3Array.range(ceil(Y0 / DY) * DY, Y1, DY).map(Y))
1340
+ .concat(d3Array.range(ceil(x0 / dx) * dx, x1, dx).filter(function(x) { return abs(x % DX) > epsilon; }).map(x))
1341
+ .concat(d3Array.range(ceil(y0 / dy) * dy, y1, dy).filter(function(y) { return abs(y % DY) > epsilon; }).map(y));
1342
+ }
1343
+
1344
+ graticule.lines = function() {
1345
+ return lines().map(function(coordinates) { return {type: "LineString", coordinates: coordinates}; });
1346
+ };
1347
+
1348
+ graticule.outline = function() {
1349
+ return {
1350
+ type: "Polygon",
1351
+ coordinates: [
1352
+ X(X0).concat(
1353
+ Y(Y1).slice(1),
1354
+ X(X1).reverse().slice(1),
1355
+ Y(Y0).reverse().slice(1))
1356
+ ]
1357
+ };
1358
+ };
1359
+
1360
+ graticule.extent = function(_) {
1361
+ if (!arguments.length) return graticule.extentMinor();
1362
+ return graticule.extentMajor(_).extentMinor(_);
1363
+ };
1364
+
1365
+ graticule.extentMajor = function(_) {
1366
+ if (!arguments.length) return [[X0, Y0], [X1, Y1]];
1367
+ X0 = +_[0][0], X1 = +_[1][0];
1368
+ Y0 = +_[0][1], Y1 = +_[1][1];
1369
+ if (X0 > X1) _ = X0, X0 = X1, X1 = _;
1370
+ if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _;
1371
+ return graticule.precision(precision);
1372
+ };
1373
+
1374
+ graticule.extentMinor = function(_) {
1375
+ if (!arguments.length) return [[x0, y0], [x1, y1]];
1376
+ x0 = +_[0][0], x1 = +_[1][0];
1377
+ y0 = +_[0][1], y1 = +_[1][1];
1378
+ if (x0 > x1) _ = x0, x0 = x1, x1 = _;
1379
+ if (y0 > y1) _ = y0, y0 = y1, y1 = _;
1380
+ return graticule.precision(precision);
1381
+ };
1382
+
1383
+ graticule.step = function(_) {
1384
+ if (!arguments.length) return graticule.stepMinor();
1385
+ return graticule.stepMajor(_).stepMinor(_);
1386
+ };
1387
+
1388
+ graticule.stepMajor = function(_) {
1389
+ if (!arguments.length) return [DX, DY];
1390
+ DX = +_[0], DY = +_[1];
1391
+ return graticule;
1392
+ };
1393
+
1394
+ graticule.stepMinor = function(_) {
1395
+ if (!arguments.length) return [dx, dy];
1396
+ dx = +_[0], dy = +_[1];
1397
+ return graticule;
1398
+ };
1399
+
1400
+ graticule.precision = function(_) {
1401
+ if (!arguments.length) return precision;
1402
+ precision = +_;
1403
+ x = graticuleX(y0, y1, 90);
1404
+ y = graticuleY(x0, x1, precision);
1405
+ X = graticuleX(Y0, Y1, 90);
1406
+ Y = graticuleY(X0, X1, precision);
1407
+ return graticule;
1408
+ };
1409
+
1410
+ return graticule
1411
+ .extentMajor([[-180, -90 + epsilon], [180, 90 - epsilon]])
1412
+ .extentMinor([[-180, -80 - epsilon], [180, 80 + epsilon]]);
1413
+ }
1414
+
1415
+ function graticule10() {
1416
+ return graticule()();
1417
+ }
1418
+
1419
+ var interpolate = function(a, b) {
1420
+ var x0 = a[0] * radians,
1421
+ y0 = a[1] * radians,
1422
+ x1 = b[0] * radians,
1423
+ y1 = b[1] * radians,
1424
+ cy0 = cos(y0),
1425
+ sy0 = sin(y0),
1426
+ cy1 = cos(y1),
1427
+ sy1 = sin(y1),
1428
+ kx0 = cy0 * cos(x0),
1429
+ ky0 = cy0 * sin(x0),
1430
+ kx1 = cy1 * cos(x1),
1431
+ ky1 = cy1 * sin(x1),
1432
+ d = 2 * asin(sqrt(haversin(y1 - y0) + cy0 * cy1 * haversin(x1 - x0))),
1433
+ k = sin(d);
1434
+
1435
+ var interpolate = d ? function(t) {
1436
+ var B = sin(t *= d) / k,
1437
+ A = sin(d - t) / k,
1438
+ x = A * kx0 + B * kx1,
1439
+ y = A * ky0 + B * ky1,
1440
+ z = A * sy0 + B * sy1;
1441
+ return [
1442
+ atan2(y, x) * degrees,
1443
+ atan2(z, sqrt(x * x + y * y)) * degrees
1444
+ ];
1445
+ } : function() {
1446
+ return [x0 * degrees, y0 * degrees];
1447
+ };
1448
+
1449
+ interpolate.distance = d;
1450
+
1451
+ return interpolate;
1452
+ };
1453
+
1454
+ var identity = function(x) {
1455
+ return x;
1456
+ };
1457
+
1458
+ var areaSum$1 = adder();
1459
+ var areaRingSum$1 = adder();
1460
+ var x00;
1461
+ var y00;
1462
+ var x0$1;
1463
+ var y0$1;
1464
+
1465
+ var areaStream$1 = {
1466
+ point: noop,
1467
+ lineStart: noop,
1468
+ lineEnd: noop,
1469
+ polygonStart: function() {
1470
+ areaStream$1.lineStart = areaRingStart$1;
1471
+ areaStream$1.lineEnd = areaRingEnd$1;
1472
+ },
1473
+ polygonEnd: function() {
1474
+ areaStream$1.lineStart = areaStream$1.lineEnd = areaStream$1.point = noop;
1475
+ areaSum$1.add(abs(areaRingSum$1));
1476
+ areaRingSum$1.reset();
1477
+ },
1478
+ result: function() {
1479
+ var area = areaSum$1 / 2;
1480
+ areaSum$1.reset();
1481
+ return area;
1482
+ }
1483
+ };
1484
+
1485
+ function areaRingStart$1() {
1486
+ areaStream$1.point = areaPointFirst$1;
1487
+ }
1488
+
1489
+ function areaPointFirst$1(x, y) {
1490
+ areaStream$1.point = areaPoint$1;
1491
+ x00 = x0$1 = x, y00 = y0$1 = y;
1492
+ }
1493
+
1494
+ function areaPoint$1(x, y) {
1495
+ areaRingSum$1.add(y0$1 * x - x0$1 * y);
1496
+ x0$1 = x, y0$1 = y;
1497
+ }
1498
+
1499
+ function areaRingEnd$1() {
1500
+ areaPoint$1(x00, y00);
1501
+ }
1502
+
1503
+ var x0$2 = Infinity;
1504
+ var y0$2 = x0$2;
1505
+ var x1 = -x0$2;
1506
+ var y1 = x1;
1507
+
1508
+ var boundsStream$1 = {
1509
+ point: boundsPoint$1,
1510
+ lineStart: noop,
1511
+ lineEnd: noop,
1512
+ polygonStart: noop,
1513
+ polygonEnd: noop,
1514
+ result: function() {
1515
+ var bounds = [[x0$2, y0$2], [x1, y1]];
1516
+ x1 = y1 = -(y0$2 = x0$2 = Infinity);
1517
+ return bounds;
1518
+ }
1519
+ };
1520
+
1521
+ function boundsPoint$1(x, y) {
1522
+ if (x < x0$2) x0$2 = x;
1523
+ if (x > x1) x1 = x;
1524
+ if (y < y0$2) y0$2 = y;
1525
+ if (y > y1) y1 = y;
1526
+ }
1527
+
1528
+ // TODO Enforce positive area for exterior, negative area for interior?
1529
+
1530
+ var X0$1 = 0;
1531
+ var Y0$1 = 0;
1532
+ var Z0$1 = 0;
1533
+ var X1$1 = 0;
1534
+ var Y1$1 = 0;
1535
+ var Z1$1 = 0;
1536
+ var X2$1 = 0;
1537
+ var Y2$1 = 0;
1538
+ var Z2$1 = 0;
1539
+ var x00$1;
1540
+ var y00$1;
1541
+ var x0$3;
1542
+ var y0$3;
1543
+
1544
+ var centroidStream$1 = {
1545
+ point: centroidPoint$1,
1546
+ lineStart: centroidLineStart$1,
1547
+ lineEnd: centroidLineEnd$1,
1548
+ polygonStart: function() {
1549
+ centroidStream$1.lineStart = centroidRingStart$1;
1550
+ centroidStream$1.lineEnd = centroidRingEnd$1;
1551
+ },
1552
+ polygonEnd: function() {
1553
+ centroidStream$1.point = centroidPoint$1;
1554
+ centroidStream$1.lineStart = centroidLineStart$1;
1555
+ centroidStream$1.lineEnd = centroidLineEnd$1;
1556
+ },
1557
+ result: function() {
1558
+ var centroid = Z2$1 ? [X2$1 / Z2$1, Y2$1 / Z2$1]
1559
+ : Z1$1 ? [X1$1 / Z1$1, Y1$1 / Z1$1]
1560
+ : Z0$1 ? [X0$1 / Z0$1, Y0$1 / Z0$1]
1561
+ : [NaN, NaN];
1562
+ X0$1 = Y0$1 = Z0$1 =
1563
+ X1$1 = Y1$1 = Z1$1 =
1564
+ X2$1 = Y2$1 = Z2$1 = 0;
1565
+ return centroid;
1566
+ }
1567
+ };
1568
+
1569
+ function centroidPoint$1(x, y) {
1570
+ X0$1 += x;
1571
+ Y0$1 += y;
1572
+ ++Z0$1;
1573
+ }
1574
+
1575
+ function centroidLineStart$1() {
1576
+ centroidStream$1.point = centroidPointFirstLine;
1577
+ }
1578
+
1579
+ function centroidPointFirstLine(x, y) {
1580
+ centroidStream$1.point = centroidPointLine;
1581
+ centroidPoint$1(x0$3 = x, y0$3 = y);
1582
+ }
1583
+
1584
+ function centroidPointLine(x, y) {
1585
+ var dx = x - x0$3, dy = y - y0$3, z = sqrt(dx * dx + dy * dy);
1586
+ X1$1 += z * (x0$3 + x) / 2;
1587
+ Y1$1 += z * (y0$3 + y) / 2;
1588
+ Z1$1 += z;
1589
+ centroidPoint$1(x0$3 = x, y0$3 = y);
1590
+ }
1591
+
1592
+ function centroidLineEnd$1() {
1593
+ centroidStream$1.point = centroidPoint$1;
1594
+ }
1595
+
1596
+ function centroidRingStart$1() {
1597
+ centroidStream$1.point = centroidPointFirstRing;
1598
+ }
1599
+
1600
+ function centroidRingEnd$1() {
1601
+ centroidPointRing(x00$1, y00$1);
1602
+ }
1603
+
1604
+ function centroidPointFirstRing(x, y) {
1605
+ centroidStream$1.point = centroidPointRing;
1606
+ centroidPoint$1(x00$1 = x0$3 = x, y00$1 = y0$3 = y);
1607
+ }
1608
+
1609
+ function centroidPointRing(x, y) {
1610
+ var dx = x - x0$3,
1611
+ dy = y - y0$3,
1612
+ z = sqrt(dx * dx + dy * dy);
1613
+
1614
+ X1$1 += z * (x0$3 + x) / 2;
1615
+ Y1$1 += z * (y0$3 + y) / 2;
1616
+ Z1$1 += z;
1617
+
1618
+ z = y0$3 * x - x0$3 * y;
1619
+ X2$1 += z * (x0$3 + x);
1620
+ Y2$1 += z * (y0$3 + y);
1621
+ Z2$1 += z * 3;
1622
+ centroidPoint$1(x0$3 = x, y0$3 = y);
1623
+ }
1624
+
1625
+ function PathContext(context) {
1626
+ this._context = context;
1627
+ }
1628
+
1629
+ PathContext.prototype = {
1630
+ _radius: 4.5,
1631
+ pointRadius: function(_) {
1632
+ return this._radius = _, this;
1633
+ },
1634
+ polygonStart: function() {
1635
+ this._line = 0;
1636
+ },
1637
+ polygonEnd: function() {
1638
+ this._line = NaN;
1639
+ },
1640
+ lineStart: function() {
1641
+ this._point = 0;
1642
+ },
1643
+ lineEnd: function() {
1644
+ if (this._line === 0) this._context.closePath();
1645
+ this._point = NaN;
1646
+ },
1647
+ point: function(x, y) {
1648
+ switch (this._point) {
1649
+ case 0: {
1650
+ this._context.moveTo(x, y);
1651
+ this._point = 1;
1652
+ break;
1653
+ }
1654
+ case 1: {
1655
+ this._context.lineTo(x, y);
1656
+ break;
1657
+ }
1658
+ default: {
1659
+ this._context.moveTo(x + this._radius, y);
1660
+ this._context.arc(x, y, this._radius, 0, tau);
1661
+ break;
1662
+ }
1663
+ }
1664
+ },
1665
+ result: noop
1666
+ };
1667
+
1668
+ var lengthSum$1 = adder();
1669
+ var lengthRing;
1670
+ var x00$2;
1671
+ var y00$2;
1672
+ var x0$4;
1673
+ var y0$4;
1674
+
1675
+ var lengthStream$1 = {
1676
+ point: noop,
1677
+ lineStart: function() {
1678
+ lengthStream$1.point = lengthPointFirst$1;
1679
+ },
1680
+ lineEnd: function() {
1681
+ if (lengthRing) lengthPoint$1(x00$2, y00$2);
1682
+ lengthStream$1.point = noop;
1683
+ },
1684
+ polygonStart: function() {
1685
+ lengthRing = true;
1686
+ },
1687
+ polygonEnd: function() {
1688
+ lengthRing = null;
1689
+ },
1690
+ result: function() {
1691
+ var length = +lengthSum$1;
1692
+ lengthSum$1.reset();
1693
+ return length;
1694
+ }
1695
+ };
1696
+
1697
+ function lengthPointFirst$1(x, y) {
1698
+ lengthStream$1.point = lengthPoint$1;
1699
+ x00$2 = x0$4 = x, y00$2 = y0$4 = y;
1700
+ }
1701
+
1702
+ function lengthPoint$1(x, y) {
1703
+ x0$4 -= x, y0$4 -= y;
1704
+ lengthSum$1.add(sqrt(x0$4 * x0$4 + y0$4 * y0$4));
1705
+ x0$4 = x, y0$4 = y;
1706
+ }
1707
+
1708
+ function PathString() {
1709
+ this._string = [];
1710
+ }
1711
+
1712
+ PathString.prototype = {
1713
+ _radius: 4.5,
1714
+ _circle: circle$1(4.5),
1715
+ pointRadius: function(_) {
1716
+ if ((_ = +_) !== this._radius) this._radius = _, this._circle = null;
1717
+ return this;
1718
+ },
1719
+ polygonStart: function() {
1720
+ this._line = 0;
1721
+ },
1722
+ polygonEnd: function() {
1723
+ this._line = NaN;
1724
+ },
1725
+ lineStart: function() {
1726
+ this._point = 0;
1727
+ },
1728
+ lineEnd: function() {
1729
+ if (this._line === 0) this._string.push("Z");
1730
+ this._point = NaN;
1731
+ },
1732
+ point: function(x, y) {
1733
+ switch (this._point) {
1734
+ case 0: {
1735
+ this._string.push("M", x, ",", y);
1736
+ this._point = 1;
1737
+ break;
1738
+ }
1739
+ case 1: {
1740
+ this._string.push("L", x, ",", y);
1741
+ break;
1742
+ }
1743
+ default: {
1744
+ if (this._circle == null) this._circle = circle$1(this._radius);
1745
+ this._string.push("M", x, ",", y, this._circle);
1746
+ break;
1747
+ }
1748
+ }
1749
+ },
1750
+ result: function() {
1751
+ if (this._string.length) {
1752
+ var result = this._string.join("");
1753
+ this._string = [];
1754
+ return result;
1755
+ } else {
1756
+ return null;
1757
+ }
1758
+ }
1759
+ };
1760
+
1761
+ function circle$1(radius) {
1762
+ return "m0," + radius
1763
+ + "a" + radius + "," + radius + " 0 1,1 0," + -2 * radius
1764
+ + "a" + radius + "," + radius + " 0 1,1 0," + 2 * radius
1765
+ + "z";
1766
+ }
1767
+
1768
+ var index = function(projection, context) {
1769
+ var pointRadius = 4.5,
1770
+ projectionStream,
1771
+ contextStream;
1772
+
1773
+ function path(object) {
1774
+ if (object) {
1775
+ if (typeof pointRadius === "function") contextStream.pointRadius(+pointRadius.apply(this, arguments));
1776
+ geoStream(object, projectionStream(contextStream));
1777
+ }
1778
+ return contextStream.result();
1779
+ }
1780
+
1781
+ path.area = function(object) {
1782
+ geoStream(object, projectionStream(areaStream$1));
1783
+ return areaStream$1.result();
1784
+ };
1785
+
1786
+ path.measure = function(object) {
1787
+ geoStream(object, projectionStream(lengthStream$1));
1788
+ return lengthStream$1.result();
1789
+ };
1790
+
1791
+ path.bounds = function(object) {
1792
+ geoStream(object, projectionStream(boundsStream$1));
1793
+ return boundsStream$1.result();
1794
+ };
1795
+
1796
+ path.centroid = function(object) {
1797
+ geoStream(object, projectionStream(centroidStream$1));
1798
+ return centroidStream$1.result();
1799
+ };
1800
+
1801
+ path.projection = function(_) {
1802
+ return arguments.length ? (projectionStream = _ == null ? (projection = null, identity) : (projection = _).stream, path) : projection;
1803
+ };
1804
+
1805
+ path.context = function(_) {
1806
+ if (!arguments.length) return context;
1807
+ contextStream = _ == null ? (context = null, new PathString) : new PathContext(context = _);
1808
+ if (typeof pointRadius !== "function") contextStream.pointRadius(pointRadius);
1809
+ return path;
1810
+ };
1811
+
1812
+ path.pointRadius = function(_) {
1813
+ if (!arguments.length) return pointRadius;
1814
+ pointRadius = typeof _ === "function" ? _ : (contextStream.pointRadius(+_), +_);
1815
+ return path;
1816
+ };
1817
+
1818
+ return path.projection(projection).context(context);
1819
+ };
1820
+
1821
+ var clip = function(pointVisible, clipLine, interpolate, start) {
1822
+ return function(rotate, sink) {
1823
+ var line = clipLine(sink),
1824
+ rotatedStart = rotate.invert(start[0], start[1]),
1825
+ ringBuffer = clipBuffer(),
1826
+ ringSink = clipLine(ringBuffer),
1827
+ polygonStarted = false,
1828
+ polygon,
1829
+ segments,
1830
+ ring;
1831
+
1832
+ var clip = {
1833
+ point: point,
1834
+ lineStart: lineStart,
1835
+ lineEnd: lineEnd,
1836
+ polygonStart: function() {
1837
+ clip.point = pointRing;
1838
+ clip.lineStart = ringStart;
1839
+ clip.lineEnd = ringEnd;
1840
+ segments = [];
1841
+ polygon = [];
1842
+ },
1843
+ polygonEnd: function() {
1844
+ clip.point = point;
1845
+ clip.lineStart = lineStart;
1846
+ clip.lineEnd = lineEnd;
1847
+ segments = d3Array.merge(segments);
1848
+ var startInside = polygonContains(polygon, rotatedStart);
1849
+ if (segments.length) {
1850
+ if (!polygonStarted) sink.polygonStart(), polygonStarted = true;
1851
+ clipPolygon(segments, compareIntersection, startInside, interpolate, sink);
1852
+ } else if (startInside) {
1853
+ if (!polygonStarted) sink.polygonStart(), polygonStarted = true;
1854
+ sink.lineStart();
1855
+ interpolate(null, null, 1, sink);
1856
+ sink.lineEnd();
1857
+ }
1858
+ if (polygonStarted) sink.polygonEnd(), polygonStarted = false;
1859
+ segments = polygon = null;
1860
+ },
1861
+ sphere: function() {
1862
+ sink.polygonStart();
1863
+ sink.lineStart();
1864
+ interpolate(null, null, 1, sink);
1865
+ sink.lineEnd();
1866
+ sink.polygonEnd();
1867
+ }
1868
+ };
1869
+
1870
+ function point(lambda, phi) {
1871
+ var point = rotate(lambda, phi);
1872
+ if (pointVisible(lambda = point[0], phi = point[1])) sink.point(lambda, phi);
1873
+ }
1874
+
1875
+ function pointLine(lambda, phi) {
1876
+ var point = rotate(lambda, phi);
1877
+ line.point(point[0], point[1]);
1878
+ }
1879
+
1880
+ function lineStart() {
1881
+ clip.point = pointLine;
1882
+ line.lineStart();
1883
+ }
1884
+
1885
+ function lineEnd() {
1886
+ clip.point = point;
1887
+ line.lineEnd();
1888
+ }
1889
+
1890
+ function pointRing(lambda, phi) {
1891
+ ring.push([lambda, phi]);
1892
+ var point = rotate(lambda, phi);
1893
+ ringSink.point(point[0], point[1]);
1894
+ }
1895
+
1896
+ function ringStart() {
1897
+ ringSink.lineStart();
1898
+ ring = [];
1899
+ }
1900
+
1901
+ function ringEnd() {
1902
+ pointRing(ring[0][0], ring[0][1]);
1903
+ ringSink.lineEnd();
1904
+
1905
+ var clean = ringSink.clean(),
1906
+ ringSegments = ringBuffer.result(),
1907
+ i, n = ringSegments.length, m,
1908
+ segment,
1909
+ point;
1910
+
1911
+ ring.pop();
1912
+ polygon.push(ring);
1913
+ ring = null;
1914
+
1915
+ if (!n) return;
1916
+
1917
+ // No intersections.
1918
+ if (clean & 1) {
1919
+ segment = ringSegments[0];
1920
+ if ((m = segment.length - 1) > 0) {
1921
+ if (!polygonStarted) sink.polygonStart(), polygonStarted = true;
1922
+ sink.lineStart();
1923
+ for (i = 0; i < m; ++i) sink.point((point = segment[i])[0], point[1]);
1924
+ sink.lineEnd();
1925
+ }
1926
+ return;
1927
+ }
1928
+
1929
+ // Rejoin connected segments.
1930
+ // TODO reuse ringBuffer.rejoin()?
1931
+ if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));
1932
+
1933
+ segments.push(ringSegments.filter(validSegment));
1934
+ }
1935
+
1936
+ return clip;
1937
+ };
1938
+ };
1939
+
1940
+ function validSegment(segment) {
1941
+ return segment.length > 1;
1942
+ }
1943
+
1944
+ // Intersections are sorted along the clip edge. For both antimeridian cutting
1945
+ // and circle clipping, the same comparison is used.
1946
+ function compareIntersection(a, b) {
1947
+ return ((a = a.x)[0] < 0 ? a[1] - halfPi - epsilon : halfPi - a[1])
1948
+ - ((b = b.x)[0] < 0 ? b[1] - halfPi - epsilon : halfPi - b[1]);
1949
+ }
1950
+
1951
+ var clipAntimeridian = clip(
1952
+ function() { return true; },
1953
+ clipAntimeridianLine,
1954
+ clipAntimeridianInterpolate,
1955
+ [-pi, -halfPi]
1956
+ );
1957
+
1958
+ // Takes a line and cuts into visible segments. Return values: 0 - there were
1959
+ // intersections or the line was empty; 1 - no intersections; 2 - there were
1960
+ // intersections, and the first and last segments should be rejoined.
1961
+ function clipAntimeridianLine(stream) {
1962
+ var lambda0 = NaN,
1963
+ phi0 = NaN,
1964
+ sign0 = NaN,
1965
+ clean; // no intersections
1966
+
1967
+ return {
1968
+ lineStart: function() {
1969
+ stream.lineStart();
1970
+ clean = 1;
1971
+ },
1972
+ point: function(lambda1, phi1) {
1973
+ var sign1 = lambda1 > 0 ? pi : -pi,
1974
+ delta = abs(lambda1 - lambda0);
1975
+ if (abs(delta - pi) < epsilon) { // line crosses a pole
1976
+ stream.point(lambda0, phi0 = (phi0 + phi1) / 2 > 0 ? halfPi : -halfPi);
1977
+ stream.point(sign0, phi0);
1978
+ stream.lineEnd();
1979
+ stream.lineStart();
1980
+ stream.point(sign1, phi0);
1981
+ stream.point(lambda1, phi0);
1982
+ clean = 0;
1983
+ } else if (sign0 !== sign1 && delta >= pi) { // line crosses antimeridian
1984
+ if (abs(lambda0 - sign0) < epsilon) lambda0 -= sign0 * epsilon; // handle degeneracies
1985
+ if (abs(lambda1 - sign1) < epsilon) lambda1 -= sign1 * epsilon;
1986
+ phi0 = clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1);
1987
+ stream.point(sign0, phi0);
1988
+ stream.lineEnd();
1989
+ stream.lineStart();
1990
+ stream.point(sign1, phi0);
1991
+ clean = 0;
1992
+ }
1993
+ stream.point(lambda0 = lambda1, phi0 = phi1);
1994
+ sign0 = sign1;
1995
+ },
1996
+ lineEnd: function() {
1997
+ stream.lineEnd();
1998
+ lambda0 = phi0 = NaN;
1999
+ },
2000
+ clean: function() {
2001
+ return 2 - clean; // if intersections, rejoin first and last segments
2002
+ }
2003
+ };
2004
+ }
2005
+
2006
+ function clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1) {
2007
+ var cosPhi0,
2008
+ cosPhi1,
2009
+ sinLambda0Lambda1 = sin(lambda0 - lambda1);
2010
+ return abs(sinLambda0Lambda1) > epsilon
2011
+ ? atan((sin(phi0) * (cosPhi1 = cos(phi1)) * sin(lambda1)
2012
+ - sin(phi1) * (cosPhi0 = cos(phi0)) * sin(lambda0))
2013
+ / (cosPhi0 * cosPhi1 * sinLambda0Lambda1))
2014
+ : (phi0 + phi1) / 2;
2015
+ }
2016
+
2017
+ function clipAntimeridianInterpolate(from, to, direction, stream) {
2018
+ var phi;
2019
+ if (from == null) {
2020
+ phi = direction * halfPi;
2021
+ stream.point(-pi, phi);
2022
+ stream.point(0, phi);
2023
+ stream.point(pi, phi);
2024
+ stream.point(pi, 0);
2025
+ stream.point(pi, -phi);
2026
+ stream.point(0, -phi);
2027
+ stream.point(-pi, -phi);
2028
+ stream.point(-pi, 0);
2029
+ stream.point(-pi, phi);
2030
+ } else if (abs(from[0] - to[0]) > epsilon) {
2031
+ var lambda = from[0] < to[0] ? pi : -pi;
2032
+ phi = direction * lambda / 2;
2033
+ stream.point(-lambda, phi);
2034
+ stream.point(0, phi);
2035
+ stream.point(lambda, phi);
2036
+ } else {
2037
+ stream.point(to[0], to[1]);
2038
+ }
2039
+ }
2040
+
2041
+ var clipCircle = function(radius, delta) {
2042
+ var cr = cos(radius),
2043
+ smallRadius = cr > 0,
2044
+ notHemisphere = abs(cr) > epsilon; // TODO optimise for this common case
2045
+
2046
+ function interpolate(from, to, direction, stream) {
2047
+ circleStream(stream, radius, delta, direction, from, to);
2048
+ }
2049
+
2050
+ function visible(lambda, phi) {
2051
+ return cos(lambda) * cos(phi) > cr;
2052
+ }
2053
+
2054
+ // Takes a line and cuts into visible segments. Return values used for polygon
2055
+ // clipping: 0 - there were intersections or the line was empty; 1 - no
2056
+ // intersections 2 - there were intersections, and the first and last segments
2057
+ // should be rejoined.
2058
+ function clipLine(stream) {
2059
+ var point0, // previous point
2060
+ c0, // code for previous point
2061
+ v0, // visibility of previous point
2062
+ v00, // visibility of first point
2063
+ clean; // no intersections
2064
+ return {
2065
+ lineStart: function() {
2066
+ v00 = v0 = false;
2067
+ clean = 1;
2068
+ },
2069
+ point: function(lambda, phi) {
2070
+ var point1 = [lambda, phi],
2071
+ point2,
2072
+ v = visible(lambda, phi),
2073
+ c = smallRadius
2074
+ ? v ? 0 : code(lambda, phi)
2075
+ : v ? code(lambda + (lambda < 0 ? pi : -pi), phi) : 0;
2076
+ if (!point0 && (v00 = v0 = v)) stream.lineStart();
2077
+ // Handle degeneracies.
2078
+ // TODO ignore if not clipping polygons.
2079
+ if (v !== v0) {
2080
+ point2 = intersect(point0, point1);
2081
+ if (!point2 || pointEqual(point0, point2) || pointEqual(point1, point2)) {
2082
+ point1[0] += epsilon;
2083
+ point1[1] += epsilon;
2084
+ v = visible(point1[0], point1[1]);
2085
+ }
2086
+ }
2087
+ if (v !== v0) {
2088
+ clean = 0;
2089
+ if (v) {
2090
+ // outside going in
2091
+ stream.lineStart();
2092
+ point2 = intersect(point1, point0);
2093
+ stream.point(point2[0], point2[1]);
2094
+ } else {
2095
+ // inside going out
2096
+ point2 = intersect(point0, point1);
2097
+ stream.point(point2[0], point2[1]);
2098
+ stream.lineEnd();
2099
+ }
2100
+ point0 = point2;
2101
+ } else if (notHemisphere && point0 && smallRadius ^ v) {
2102
+ var t;
2103
+ // If the codes for two points are different, or are both zero,
2104
+ // and there this segment intersects with the small circle.
2105
+ if (!(c & c0) && (t = intersect(point1, point0, true))) {
2106
+ clean = 0;
2107
+ if (smallRadius) {
2108
+ stream.lineStart();
2109
+ stream.point(t[0][0], t[0][1]);
2110
+ stream.point(t[1][0], t[1][1]);
2111
+ stream.lineEnd();
2112
+ } else {
2113
+ stream.point(t[1][0], t[1][1]);
2114
+ stream.lineEnd();
2115
+ stream.lineStart();
2116
+ stream.point(t[0][0], t[0][1]);
2117
+ }
2118
+ }
2119
+ }
2120
+ if (v && (!point0 || !pointEqual(point0, point1))) {
2121
+ stream.point(point1[0], point1[1]);
2122
+ }
2123
+ point0 = point1, v0 = v, c0 = c;
2124
+ },
2125
+ lineEnd: function() {
2126
+ if (v0) stream.lineEnd();
2127
+ point0 = null;
2128
+ },
2129
+ // Rejoin first and last segments if there were intersections and the first
2130
+ // and last points were visible.
2131
+ clean: function() {
2132
+ return clean | ((v00 && v0) << 1);
2133
+ }
2134
+ };
2135
+ }
2136
+
2137
+ // Intersects the great circle between a and b with the clip circle.
2138
+ function intersect(a, b, two) {
2139
+ var pa = cartesian(a),
2140
+ pb = cartesian(b);
2141
+
2142
+ // We have two planes, n1.p = d1 and n2.p = d2.
2143
+ // Find intersection line p(t) = c1 n1 + c2 n2 + t (n1 ⨯ n2).
2144
+ var n1 = [1, 0, 0], // normal
2145
+ n2 = cartesianCross(pa, pb),
2146
+ n2n2 = cartesianDot(n2, n2),
2147
+ n1n2 = n2[0], // cartesianDot(n1, n2),
2148
+ determinant = n2n2 - n1n2 * n1n2;
2149
+
2150
+ // Two polar points.
2151
+ if (!determinant) return !two && a;
2152
+
2153
+ var c1 = cr * n2n2 / determinant,
2154
+ c2 = -cr * n1n2 / determinant,
2155
+ n1xn2 = cartesianCross(n1, n2),
2156
+ A = cartesianScale(n1, c1),
2157
+ B = cartesianScale(n2, c2);
2158
+ cartesianAddInPlace(A, B);
2159
+
2160
+ // Solve |p(t)|^2 = 1.
2161
+ var u = n1xn2,
2162
+ w = cartesianDot(A, u),
2163
+ uu = cartesianDot(u, u),
2164
+ t2 = w * w - uu * (cartesianDot(A, A) - 1);
2165
+
2166
+ if (t2 < 0) return;
2167
+
2168
+ var t = sqrt(t2),
2169
+ q = cartesianScale(u, (-w - t) / uu);
2170
+ cartesianAddInPlace(q, A);
2171
+ q = spherical(q);
2172
+
2173
+ if (!two) return q;
2174
+
2175
+ // Two intersection points.
2176
+ var lambda0 = a[0],
2177
+ lambda1 = b[0],
2178
+ phi0 = a[1],
2179
+ phi1 = b[1],
2180
+ z;
2181
+
2182
+ if (lambda1 < lambda0) z = lambda0, lambda0 = lambda1, lambda1 = z;
2183
+
2184
+ var delta = lambda1 - lambda0,
2185
+ polar = abs(delta - pi) < epsilon,
2186
+ meridian = polar || delta < epsilon;
2187
+
2188
+ if (!polar && phi1 < phi0) z = phi0, phi0 = phi1, phi1 = z;
2189
+
2190
+ // Check that the first point is between a and b.
2191
+ if (meridian
2192
+ ? polar
2193
+ ? phi0 + phi1 > 0 ^ q[1] < (abs(q[0] - lambda0) < epsilon ? phi0 : phi1)
2194
+ : phi0 <= q[1] && q[1] <= phi1
2195
+ : delta > pi ^ (lambda0 <= q[0] && q[0] <= lambda1)) {
2196
+ var q1 = cartesianScale(u, (-w + t) / uu);
2197
+ cartesianAddInPlace(q1, A);
2198
+ return [q, spherical(q1)];
2199
+ }
2200
+ }
2201
+
2202
+ // Generates a 4-bit vector representing the location of a point relative to
2203
+ // the small circle's bounding box.
2204
+ function code(lambda, phi) {
2205
+ var r = smallRadius ? radius : pi - radius,
2206
+ code = 0;
2207
+ if (lambda < -r) code |= 1; // left
2208
+ else if (lambda > r) code |= 2; // right
2209
+ if (phi < -r) code |= 4; // below
2210
+ else if (phi > r) code |= 8; // above
2211
+ return code;
2212
+ }
2213
+
2214
+ return clip(visible, clipLine, interpolate, smallRadius ? [0, -radius] : [-pi, radius - pi]);
2215
+ };
2216
+
2217
+ var transform = function(methods) {
2218
+ return {
2219
+ stream: transformer(methods)
2220
+ };
2221
+ };
2222
+
2223
+ function transformer(methods) {
2224
+ return function(stream) {
2225
+ var s = new TransformStream;
2226
+ for (var key in methods) s[key] = methods[key];
2227
+ s.stream = stream;
2228
+ return s;
2229
+ };
2230
+ }
2231
+
2232
+ function TransformStream() {}
2233
+
2234
+ TransformStream.prototype = {
2235
+ constructor: TransformStream,
2236
+ point: function(x, y) { this.stream.point(x, y); },
2237
+ sphere: function() { this.stream.sphere(); },
2238
+ lineStart: function() { this.stream.lineStart(); },
2239
+ lineEnd: function() { this.stream.lineEnd(); },
2240
+ polygonStart: function() { this.stream.polygonStart(); },
2241
+ polygonEnd: function() { this.stream.polygonEnd(); }
2242
+ };
2243
+
2244
+ function fitExtent(projection, extent, object) {
2245
+ var w = extent[1][0] - extent[0][0],
2246
+ h = extent[1][1] - extent[0][1],
2247
+ clip = projection.clipExtent && projection.clipExtent();
2248
+
2249
+ projection
2250
+ .scale(150)
2251
+ .translate([0, 0]);
2252
+
2253
+ if (clip != null) projection.clipExtent(null);
2254
+
2255
+ geoStream(object, projection.stream(boundsStream$1));
2256
+
2257
+ var b = boundsStream$1.result(),
2258
+ k = Math.min(w / (b[1][0] - b[0][0]), h / (b[1][1] - b[0][1])),
2259
+ x = +extent[0][0] + (w - k * (b[1][0] + b[0][0])) / 2,
2260
+ y = +extent[0][1] + (h - k * (b[1][1] + b[0][1])) / 2;
2261
+
2262
+ if (clip != null) projection.clipExtent(clip);
2263
+
2264
+ return projection
2265
+ .scale(k * 150)
2266
+ .translate([x, y]);
2267
+ }
2268
+
2269
+ function fitSize(projection, size, object) {
2270
+ return fitExtent(projection, [[0, 0], size], object);
2271
+ }
2272
+
2273
+ var maxDepth = 16;
2274
+ var cosMinDistance = cos(30 * radians); // cos(minimum angular distance)
2275
+
2276
+ var resample = function(project, delta2) {
2277
+ return +delta2 ? resample$1(project, delta2) : resampleNone(project);
2278
+ };
2279
+
2280
+ function resampleNone(project) {
2281
+ return transformer({
2282
+ point: function(x, y) {
2283
+ x = project(x, y);
2284
+ this.stream.point(x[0], x[1]);
2285
+ }
2286
+ });
2287
+ }
2288
+
2289
+ function resample$1(project, delta2) {
2290
+
2291
+ function resampleLineTo(x0, y0, lambda0, a0, b0, c0, x1, y1, lambda1, a1, b1, c1, depth, stream) {
2292
+ var dx = x1 - x0,
2293
+ dy = y1 - y0,
2294
+ d2 = dx * dx + dy * dy;
2295
+ if (d2 > 4 * delta2 && depth--) {
2296
+ var a = a0 + a1,
2297
+ b = b0 + b1,
2298
+ c = c0 + c1,
2299
+ m = sqrt(a * a + b * b + c * c),
2300
+ phi2 = asin(c /= m),
2301
+ lambda2 = abs(abs(c) - 1) < epsilon || abs(lambda0 - lambda1) < epsilon ? (lambda0 + lambda1) / 2 : atan2(b, a),
2302
+ p = project(lambda2, phi2),
2303
+ x2 = p[0],
2304
+ y2 = p[1],
2305
+ dx2 = x2 - x0,
2306
+ dy2 = y2 - y0,
2307
+ dz = dy * dx2 - dx * dy2;
2308
+ if (dz * dz / d2 > delta2 // perpendicular projected distance
2309
+ || abs((dx * dx2 + dy * dy2) / d2 - 0.5) > 0.3 // midpoint close to an end
2310
+ || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) { // angular distance
2311
+ resampleLineTo(x0, y0, lambda0, a0, b0, c0, x2, y2, lambda2, a /= m, b /= m, c, depth, stream);
2312
+ stream.point(x2, y2);
2313
+ resampleLineTo(x2, y2, lambda2, a, b, c, x1, y1, lambda1, a1, b1, c1, depth, stream);
2314
+ }
2315
+ }
2316
+ }
2317
+ return function(stream) {
2318
+ var lambda00, x00, y00, a00, b00, c00, // first point
2319
+ lambda0, x0, y0, a0, b0, c0; // previous point
2320
+
2321
+ var resampleStream = {
2322
+ point: point,
2323
+ lineStart: lineStart,
2324
+ lineEnd: lineEnd,
2325
+ polygonStart: function() { stream.polygonStart(); resampleStream.lineStart = ringStart; },
2326
+ polygonEnd: function() { stream.polygonEnd(); resampleStream.lineStart = lineStart; }
2327
+ };
2328
+
2329
+ function point(x, y) {
2330
+ x = project(x, y);
2331
+ stream.point(x[0], x[1]);
2332
+ }
2333
+
2334
+ function lineStart() {
2335
+ x0 = NaN;
2336
+ resampleStream.point = linePoint;
2337
+ stream.lineStart();
2338
+ }
2339
+
2340
+ function linePoint(lambda, phi) {
2341
+ var c = cartesian([lambda, phi]), p = project(lambda, phi);
2342
+ resampleLineTo(x0, y0, lambda0, a0, b0, c0, x0 = p[0], y0 = p[1], lambda0 = lambda, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);
2343
+ stream.point(x0, y0);
2344
+ }
2345
+
2346
+ function lineEnd() {
2347
+ resampleStream.point = point;
2348
+ stream.lineEnd();
2349
+ }
2350
+
2351
+ function ringStart() {
2352
+ lineStart();
2353
+ resampleStream.point = ringPoint;
2354
+ resampleStream.lineEnd = ringEnd;
2355
+ }
2356
+
2357
+ function ringPoint(lambda, phi) {
2358
+ linePoint(lambda00 = lambda, phi), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;
2359
+ resampleStream.point = linePoint;
2360
+ }
2361
+
2362
+ function ringEnd() {
2363
+ resampleLineTo(x0, y0, lambda0, a0, b0, c0, x00, y00, lambda00, a00, b00, c00, maxDepth, stream);
2364
+ resampleStream.lineEnd = lineEnd;
2365
+ lineEnd();
2366
+ }
2367
+
2368
+ return resampleStream;
2369
+ };
2370
+ }
2371
+
2372
+ var transformRadians = transformer({
2373
+ point: function(x, y) {
2374
+ this.stream.point(x * radians, y * radians);
2375
+ }
2376
+ });
2377
+
2378
+ function projection(project) {
2379
+ return projectionMutator(function() { return project; })();
2380
+ }
2381
+
2382
+ function projectionMutator(projectAt) {
2383
+ var project,
2384
+ k = 150, // scale
2385
+ x = 480, y = 250, // translate
2386
+ dx, dy, lambda = 0, phi = 0, // center
2387
+ deltaLambda = 0, deltaPhi = 0, deltaGamma = 0, rotate, projectRotate, // rotate
2388
+ theta = null, preclip = clipAntimeridian, // clip angle
2389
+ x0 = null, y0, x1, y1, postclip = identity, // clip extent
2390
+ delta2 = 0.5, projectResample = resample(projectTransform, delta2), // precision
2391
+ cache,
2392
+ cacheStream;
2393
+
2394
+ function projection(point) {
2395
+ point = projectRotate(point[0] * radians, point[1] * radians);
2396
+ return [point[0] * k + dx, dy - point[1] * k];
2397
+ }
2398
+
2399
+ function invert(point) {
2400
+ point = projectRotate.invert((point[0] - dx) / k, (dy - point[1]) / k);
2401
+ return point && [point[0] * degrees, point[1] * degrees];
2402
+ }
2403
+
2404
+ function projectTransform(x, y) {
2405
+ return x = project(x, y), [x[0] * k + dx, dy - x[1] * k];
2406
+ }
2407
+
2408
+ projection.stream = function(stream) {
2409
+ return cache && cacheStream === stream ? cache : cache = transformRadians(preclip(rotate, projectResample(postclip(cacheStream = stream))));
2410
+ };
2411
+
2412
+ projection.clipAngle = function(_) {
2413
+ return arguments.length ? (preclip = +_ ? clipCircle(theta = _ * radians, 6 * radians) : (theta = null, clipAntimeridian), reset()) : theta * degrees;
2414
+ };
2415
+
2416
+ projection.clipExtent = function(_) {
2417
+ return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity) : clipExtent(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];
2418
+ };
2419
+
2420
+ projection.scale = function(_) {
2421
+ return arguments.length ? (k = +_, recenter()) : k;
2422
+ };
2423
+
2424
+ projection.translate = function(_) {
2425
+ return arguments.length ? (x = +_[0], y = +_[1], recenter()) : [x, y];
2426
+ };
2427
+
2428
+ projection.center = function(_) {
2429
+ return arguments.length ? (lambda = _[0] % 360 * radians, phi = _[1] % 360 * radians, recenter()) : [lambda * degrees, phi * degrees];
2430
+ };
2431
+
2432
+ projection.rotate = function(_) {
2433
+ return arguments.length ? (deltaLambda = _[0] % 360 * radians, deltaPhi = _[1] % 360 * radians, deltaGamma = _.length > 2 ? _[2] % 360 * radians : 0, recenter()) : [deltaLambda * degrees, deltaPhi * degrees, deltaGamma * degrees];
2434
+ };
2435
+
2436
+ projection.precision = function(_) {
2437
+ return arguments.length ? (projectResample = resample(projectTransform, delta2 = _ * _), reset()) : sqrt(delta2);
2438
+ };
2439
+
2440
+ projection.fitExtent = function(extent$$1, object) {
2441
+ return fitExtent(projection, extent$$1, object);
2442
+ };
2443
+
2444
+ projection.fitSize = function(size, object) {
2445
+ return fitSize(projection, size, object);
2446
+ };
2447
+
2448
+ function recenter() {
2449
+ projectRotate = compose(rotate = rotateRadians(deltaLambda, deltaPhi, deltaGamma), project);
2450
+ var center = project(lambda, phi);
2451
+ dx = x - center[0] * k;
2452
+ dy = y + center[1] * k;
2453
+ return reset();
2454
+ }
2455
+
2456
+ function reset() {
2457
+ cache = cacheStream = null;
2458
+ return projection;
2459
+ }
2460
+
2461
+ return function() {
2462
+ project = projectAt.apply(this, arguments);
2463
+ projection.invert = project.invert && invert;
2464
+ return recenter();
2465
+ };
2466
+ }
2467
+
2468
+ function conicProjection(projectAt) {
2469
+ var phi0 = 0,
2470
+ phi1 = pi / 3,
2471
+ m = projectionMutator(projectAt),
2472
+ p = m(phi0, phi1);
2473
+
2474
+ p.parallels = function(_) {
2475
+ return arguments.length ? m(phi0 = _[0] * radians, phi1 = _[1] * radians) : [phi0 * degrees, phi1 * degrees];
2476
+ };
2477
+
2478
+ return p;
2479
+ }
2480
+
2481
+ function cylindricalEqualAreaRaw(phi0) {
2482
+ var cosPhi0 = cos(phi0);
2483
+
2484
+ function forward(lambda, phi) {
2485
+ return [lambda * cosPhi0, sin(phi) / cosPhi0];
2486
+ }
2487
+
2488
+ forward.invert = function(x, y) {
2489
+ return [x / cosPhi0, asin(y * cosPhi0)];
2490
+ };
2491
+
2492
+ return forward;
2493
+ }
2494
+
2495
+ function conicEqualAreaRaw(y0, y1) {
2496
+ var sy0 = sin(y0), n = (sy0 + sin(y1)) / 2;
2497
+
2498
+ // Are the parallels symmetrical around the Equator?
2499
+ if (abs(n) < epsilon) return cylindricalEqualAreaRaw(y0);
2500
+
2501
+ var c = 1 + sy0 * (2 * n - sy0), r0 = sqrt(c) / n;
2502
+
2503
+ function project(x, y) {
2504
+ var r = sqrt(c - 2 * n * sin(y)) / n;
2505
+ return [r * sin(x *= n), r0 - r * cos(x)];
2506
+ }
2507
+
2508
+ project.invert = function(x, y) {
2509
+ var r0y = r0 - y;
2510
+ return [atan2(x, abs(r0y)) / n * sign(r0y), asin((c - (x * x + r0y * r0y) * n * n) / (2 * n))];
2511
+ };
2512
+
2513
+ return project;
2514
+ }
2515
+
2516
+ var conicEqualArea = function() {
2517
+ return conicProjection(conicEqualAreaRaw)
2518
+ .scale(155.424)
2519
+ .center([0, 33.6442]);
2520
+ };
2521
+
2522
+ var albers = function() {
2523
+ return conicEqualArea()
2524
+ .parallels([29.5, 45.5])
2525
+ .scale(1070)
2526
+ .translate([480, 250])
2527
+ .rotate([96, 0])
2528
+ .center([-0.6, 38.7]);
2529
+ };
2530
+
2531
+ // The projections must have mutually exclusive clip regions on the sphere,
2532
+ // as this will avoid emitting interleaving lines and polygons.
2533
+ function multiplex(streams) {
2534
+ var n = streams.length;
2535
+ return {
2536
+ point: function(x, y) { var i = -1; while (++i < n) streams[i].point(x, y); },
2537
+ sphere: function() { var i = -1; while (++i < n) streams[i].sphere(); },
2538
+ lineStart: function() { var i = -1; while (++i < n) streams[i].lineStart(); },
2539
+ lineEnd: function() { var i = -1; while (++i < n) streams[i].lineEnd(); },
2540
+ polygonStart: function() { var i = -1; while (++i < n) streams[i].polygonStart(); },
2541
+ polygonEnd: function() { var i = -1; while (++i < n) streams[i].polygonEnd(); }
2542
+ };
2543
+ }
2544
+
2545
+ // A composite projection for the United States, configured by default for
2546
+ // 960×500. The projection also works quite well at 960×600 if you change the
2547
+ // scale to 1285 and adjust the translate accordingly. The set of standard
2548
+ // parallels for each region comes from USGS, which is published here:
2549
+ // http://egsc.usgs.gov/isb/pubs/MapProjections/projections.html#albers
2550
+ var albersUsa = function() {
2551
+ var cache,
2552
+ cacheStream,
2553
+ lower48 = albers(), lower48Point,
2554
+ alaska = conicEqualArea().rotate([154, 0]).center([-2, 58.5]).parallels([55, 65]), alaskaPoint, // EPSG:3338
2555
+ hawaii = conicEqualArea().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]), hawaiiPoint, // ESRI:102007
2556
+ point, pointStream = {point: function(x, y) { point = [x, y]; }};
2557
+
2558
+ function albersUsa(coordinates) {
2559
+ var x = coordinates[0], y = coordinates[1];
2560
+ return point = null,
2561
+ (lower48Point.point(x, y), point)
2562
+ || (alaskaPoint.point(x, y), point)
2563
+ || (hawaiiPoint.point(x, y), point);
2564
+ }
2565
+
2566
+ albersUsa.invert = function(coordinates) {
2567
+ var k = lower48.scale(),
2568
+ t = lower48.translate(),
2569
+ x = (coordinates[0] - t[0]) / k,
2570
+ y = (coordinates[1] - t[1]) / k;
2571
+ return (y >= 0.120 && y < 0.234 && x >= -0.425 && x < -0.214 ? alaska
2572
+ : y >= 0.166 && y < 0.234 && x >= -0.214 && x < -0.115 ? hawaii
2573
+ : lower48).invert(coordinates);
2574
+ };
2575
+
2576
+ albersUsa.stream = function(stream) {
2577
+ return cache && cacheStream === stream ? cache : cache = multiplex([lower48.stream(cacheStream = stream), alaska.stream(stream), hawaii.stream(stream)]);
2578
+ };
2579
+
2580
+ albersUsa.precision = function(_) {
2581
+ if (!arguments.length) return lower48.precision();
2582
+ lower48.precision(_), alaska.precision(_), hawaii.precision(_);
2583
+ return reset();
2584
+ };
2585
+
2586
+ albersUsa.scale = function(_) {
2587
+ if (!arguments.length) return lower48.scale();
2588
+ lower48.scale(_), alaska.scale(_ * 0.35), hawaii.scale(_);
2589
+ return albersUsa.translate(lower48.translate());
2590
+ };
2591
+
2592
+ albersUsa.translate = function(_) {
2593
+ if (!arguments.length) return lower48.translate();
2594
+ var k = lower48.scale(), x = +_[0], y = +_[1];
2595
+
2596
+ lower48Point = lower48
2597
+ .translate(_)
2598
+ .clipExtent([[x - 0.455 * k, y - 0.238 * k], [x + 0.455 * k, y + 0.238 * k]])
2599
+ .stream(pointStream);
2600
+
2601
+ alaskaPoint = alaska
2602
+ .translate([x - 0.307 * k, y + 0.201 * k])
2603
+ .clipExtent([[x - 0.425 * k + epsilon, y + 0.120 * k + epsilon], [x - 0.214 * k - epsilon, y + 0.234 * k - epsilon]])
2604
+ .stream(pointStream);
2605
+
2606
+ hawaiiPoint = hawaii
2607
+ .translate([x - 0.205 * k, y + 0.212 * k])
2608
+ .clipExtent([[x - 0.214 * k + epsilon, y + 0.166 * k + epsilon], [x - 0.115 * k - epsilon, y + 0.234 * k - epsilon]])
2609
+ .stream(pointStream);
2610
+
2611
+ return reset();
2612
+ };
2613
+
2614
+ albersUsa.fitExtent = function(extent, object) {
2615
+ return fitExtent(albersUsa, extent, object);
2616
+ };
2617
+
2618
+ albersUsa.fitSize = function(size, object) {
2619
+ return fitSize(albersUsa, size, object);
2620
+ };
2621
+
2622
+ function reset() {
2623
+ cache = cacheStream = null;
2624
+ return albersUsa;
2625
+ }
2626
+
2627
+ return albersUsa.scale(1070);
2628
+ };
2629
+
2630
+ function azimuthalRaw(scale) {
2631
+ return function(x, y) {
2632
+ var cx = cos(x),
2633
+ cy = cos(y),
2634
+ k = scale(cx * cy);
2635
+ return [
2636
+ k * cy * sin(x),
2637
+ k * sin(y)
2638
+ ];
2639
+ }
2640
+ }
2641
+
2642
+ function azimuthalInvert(angle) {
2643
+ return function(x, y) {
2644
+ var z = sqrt(x * x + y * y),
2645
+ c = angle(z),
2646
+ sc = sin(c),
2647
+ cc = cos(c);
2648
+ return [
2649
+ atan2(x * sc, z * cc),
2650
+ asin(z && y * sc / z)
2651
+ ];
2652
+ }
2653
+ }
2654
+
2655
+ var azimuthalEqualAreaRaw = azimuthalRaw(function(cxcy) {
2656
+ return sqrt(2 / (1 + cxcy));
2657
+ });
2658
+
2659
+ azimuthalEqualAreaRaw.invert = azimuthalInvert(function(z) {
2660
+ return 2 * asin(z / 2);
2661
+ });
2662
+
2663
+ var azimuthalEqualArea = function() {
2664
+ return projection(azimuthalEqualAreaRaw)
2665
+ .scale(124.75)
2666
+ .clipAngle(180 - 1e-3);
2667
+ };
2668
+
2669
+ var azimuthalEquidistantRaw = azimuthalRaw(function(c) {
2670
+ return (c = acos(c)) && c / sin(c);
2671
+ });
2672
+
2673
+ azimuthalEquidistantRaw.invert = azimuthalInvert(function(z) {
2674
+ return z;
2675
+ });
2676
+
2677
+ var azimuthalEquidistant = function() {
2678
+ return projection(azimuthalEquidistantRaw)
2679
+ .scale(79.4188)
2680
+ .clipAngle(180 - 1e-3);
2681
+ };
2682
+
2683
+ function mercatorRaw(lambda, phi) {
2684
+ return [lambda, log(tan((halfPi + phi) / 2))];
2685
+ }
2686
+
2687
+ mercatorRaw.invert = function(x, y) {
2688
+ return [x, 2 * atan(exp(y)) - halfPi];
2689
+ };
2690
+
2691
+ var mercator = function() {
2692
+ return mercatorProjection(mercatorRaw)
2693
+ .scale(961 / tau);
2694
+ };
2695
+
2696
+ function mercatorProjection(project) {
2697
+ var m = projection(project),
2698
+ center = m.center,
2699
+ scale = m.scale,
2700
+ translate = m.translate,
2701
+ clipExtent = m.clipExtent,
2702
+ x0 = null, y0, x1, y1; // clip extent
2703
+
2704
+ m.scale = function(_) {
2705
+ return arguments.length ? (scale(_), reclip()) : scale();
2706
+ };
2707
+
2708
+ m.translate = function(_) {
2709
+ return arguments.length ? (translate(_), reclip()) : translate();
2710
+ };
2711
+
2712
+ m.center = function(_) {
2713
+ return arguments.length ? (center(_), reclip()) : center();
2714
+ };
2715
+
2716
+ m.clipExtent = function(_) {
2717
+ return arguments.length ? ((_ == null ? x0 = y0 = x1 = y1 = null : (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1])), reclip()) : x0 == null ? null : [[x0, y0], [x1, y1]];
2718
+ };
2719
+
2720
+ function reclip() {
2721
+ var k = pi * scale(),
2722
+ t = m(rotation(m.rotate()).invert([0, 0]));
2723
+ return clipExtent(x0 == null
2724
+ ? [[t[0] - k, t[1] - k], [t[0] + k, t[1] + k]] : project === mercatorRaw
2725
+ ? [[Math.max(t[0] - k, x0), y0], [Math.min(t[0] + k, x1), y1]]
2726
+ : [[x0, Math.max(t[1] - k, y0)], [x1, Math.min(t[1] + k, y1)]]);
2727
+ }
2728
+
2729
+ return reclip();
2730
+ }
2731
+
2732
+ function tany(y) {
2733
+ return tan((halfPi + y) / 2);
2734
+ }
2735
+
2736
+ function conicConformalRaw(y0, y1) {
2737
+ var cy0 = cos(y0),
2738
+ n = y0 === y1 ? sin(y0) : log(cy0 / cos(y1)) / log(tany(y1) / tany(y0)),
2739
+ f = cy0 * pow(tany(y0), n) / n;
2740
+
2741
+ if (!n) return mercatorRaw;
2742
+
2743
+ function project(x, y) {
2744
+ if (f > 0) { if (y < -halfPi + epsilon) y = -halfPi + epsilon; }
2745
+ else { if (y > halfPi - epsilon) y = halfPi - epsilon; }
2746
+ var r = f / pow(tany(y), n);
2747
+ return [r * sin(n * x), f - r * cos(n * x)];
2748
+ }
2749
+
2750
+ project.invert = function(x, y) {
2751
+ var fy = f - y, r = sign(n) * sqrt(x * x + fy * fy);
2752
+ return [atan2(x, abs(fy)) / n * sign(fy), 2 * atan(pow(f / r, 1 / n)) - halfPi];
2753
+ };
2754
+
2755
+ return project;
2756
+ }
2757
+
2758
+ var conicConformal = function() {
2759
+ return conicProjection(conicConformalRaw)
2760
+ .scale(109.5)
2761
+ .parallels([30, 30]);
2762
+ };
2763
+
2764
+ function equirectangularRaw(lambda, phi) {
2765
+ return [lambda, phi];
2766
+ }
2767
+
2768
+ equirectangularRaw.invert = equirectangularRaw;
2769
+
2770
+ var equirectangular = function() {
2771
+ return projection(equirectangularRaw)
2772
+ .scale(152.63);
2773
+ };
2774
+
2775
+ function conicEquidistantRaw(y0, y1) {
2776
+ var cy0 = cos(y0),
2777
+ n = y0 === y1 ? sin(y0) : (cy0 - cos(y1)) / (y1 - y0),
2778
+ g = cy0 / n + y0;
2779
+
2780
+ if (abs(n) < epsilon) return equirectangularRaw;
2781
+
2782
+ function project(x, y) {
2783
+ var gy = g - y, nx = n * x;
2784
+ return [gy * sin(nx), g - gy * cos(nx)];
2785
+ }
2786
+
2787
+ project.invert = function(x, y) {
2788
+ var gy = g - y;
2789
+ return [atan2(x, abs(gy)) / n * sign(gy), g - sign(n) * sqrt(x * x + gy * gy)];
2790
+ };
2791
+
2792
+ return project;
2793
+ }
2794
+
2795
+ var conicEquidistant = function() {
2796
+ return conicProjection(conicEquidistantRaw)
2797
+ .scale(131.154)
2798
+ .center([0, 13.9389]);
2799
+ };
2800
+
2801
+ function gnomonicRaw(x, y) {
2802
+ var cy = cos(y), k = cos(x) * cy;
2803
+ return [cy * sin(x) / k, sin(y) / k];
2804
+ }
2805
+
2806
+ gnomonicRaw.invert = azimuthalInvert(atan);
2807
+
2808
+ var gnomonic = function() {
2809
+ return projection(gnomonicRaw)
2810
+ .scale(144.049)
2811
+ .clipAngle(60);
2812
+ };
2813
+
2814
+ function scaleTranslate(kx, ky, tx, ty) {
2815
+ return kx === 1 && ky === 1 && tx === 0 && ty === 0 ? identity : transformer({
2816
+ point: function(x, y) {
2817
+ this.stream.point(x * kx + tx, y * ky + ty);
2818
+ }
2819
+ });
2820
+ }
2821
+
2822
+ var identity$1 = function() {
2823
+ var k = 1, tx = 0, ty = 0, sx = 1, sy = 1, transform$$1 = identity, // scale, translate and reflect
2824
+ x0 = null, y0, x1, y1, clip = identity, // clip extent
2825
+ cache,
2826
+ cacheStream,
2827
+ projection;
2828
+
2829
+ function reset() {
2830
+ cache = cacheStream = null;
2831
+ return projection;
2832
+ }
2833
+
2834
+ return projection = {
2835
+ stream: function(stream) {
2836
+ return cache && cacheStream === stream ? cache : cache = transform$$1(clip(cacheStream = stream));
2837
+ },
2838
+ clipExtent: function(_) {
2839
+ return arguments.length ? (clip = _ == null ? (x0 = y0 = x1 = y1 = null, identity) : clipExtent(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];
2840
+ },
2841
+ scale: function(_) {
2842
+ return arguments.length ? (transform$$1 = scaleTranslate((k = +_) * sx, k * sy, tx, ty), reset()) : k;
2843
+ },
2844
+ translate: function(_) {
2845
+ return arguments.length ? (transform$$1 = scaleTranslate(k * sx, k * sy, tx = +_[0], ty = +_[1]), reset()) : [tx, ty];
2846
+ },
2847
+ reflectX: function(_) {
2848
+ return arguments.length ? (transform$$1 = scaleTranslate(k * (sx = _ ? -1 : 1), k * sy, tx, ty), reset()) : sx < 0;
2849
+ },
2850
+ reflectY: function(_) {
2851
+ return arguments.length ? (transform$$1 = scaleTranslate(k * sx, k * (sy = _ ? -1 : 1), tx, ty), reset()) : sy < 0;
2852
+ },
2853
+ fitExtent: function(extent$$1, object) {
2854
+ return fitExtent(projection, extent$$1, object);
2855
+ },
2856
+ fitSize: function(size, object) {
2857
+ return fitSize(projection, size, object);
2858
+ }
2859
+ };
2860
+ };
2861
+
2862
+ function naturalEarth1Raw(lambda, phi) {
2863
+ var phi2 = phi * phi, phi4 = phi2 * phi2;
2864
+ return [
2865
+ lambda * (0.8707 - 0.131979 * phi2 + phi4 * (-0.013791 + phi4 * (0.003971 * phi2 - 0.001529 * phi4))),
2866
+ phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4)))
2867
+ ];
2868
+ }
2869
+
2870
+ naturalEarth1Raw.invert = function(x, y) {
2871
+ var phi = y, i = 25, delta;
2872
+ do {
2873
+ var phi2 = phi * phi, phi4 = phi2 * phi2;
2874
+ phi -= delta = (phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4))) - y) /
2875
+ (1.007226 + phi2 * (0.015085 * 3 + phi4 * (-0.044475 * 7 + 0.028874 * 9 * phi2 - 0.005916 * 11 * phi4)));
2876
+ } while (abs(delta) > epsilon && --i > 0);
2877
+ return [
2878
+ x / (0.8707 + (phi2 = phi * phi) * (-0.131979 + phi2 * (-0.013791 + phi2 * phi2 * phi2 * (0.003971 - 0.001529 * phi2)))),
2879
+ phi
2880
+ ];
2881
+ };
2882
+
2883
+ var naturalEarth1 = function() {
2884
+ return projection(naturalEarth1Raw)
2885
+ .scale(175.295);
2886
+ };
2887
+
2888
+ function orthographicRaw(x, y) {
2889
+ return [cos(y) * sin(x), sin(y)];
2890
+ }
2891
+
2892
+ orthographicRaw.invert = azimuthalInvert(asin);
2893
+
2894
+ var orthographic = function() {
2895
+ return projection(orthographicRaw)
2896
+ .scale(249.5)
2897
+ .clipAngle(90 + epsilon);
2898
+ };
2899
+
2900
+ function stereographicRaw(x, y) {
2901
+ var cy = cos(y), k = 1 + cos(x) * cy;
2902
+ return [cy * sin(x) / k, sin(y) / k];
2903
+ }
2904
+
2905
+ stereographicRaw.invert = azimuthalInvert(function(z) {
2906
+ return 2 * atan(z);
2907
+ });
2908
+
2909
+ var stereographic = function() {
2910
+ return projection(stereographicRaw)
2911
+ .scale(250)
2912
+ .clipAngle(142);
2913
+ };
2914
+
2915
+ function transverseMercatorRaw(lambda, phi) {
2916
+ return [log(tan((halfPi + phi) / 2)), -lambda];
2917
+ }
2918
+
2919
+ transverseMercatorRaw.invert = function(x, y) {
2920
+ return [-y, 2 * atan(exp(x)) - halfPi];
2921
+ };
2922
+
2923
+ var transverseMercator = function() {
2924
+ var m = mercatorProjection(transverseMercatorRaw),
2925
+ center = m.center,
2926
+ rotate = m.rotate;
2927
+
2928
+ m.center = function(_) {
2929
+ return arguments.length ? center([-_[1], _[0]]) : (_ = center(), [_[1], -_[0]]);
2930
+ };
2931
+
2932
+ m.rotate = function(_) {
2933
+ return arguments.length ? rotate([_[0], _[1], _.length > 2 ? _[2] + 90 : 90]) : (_ = rotate(), [_[0], _[1], _[2] - 90]);
2934
+ };
2935
+
2936
+ return rotate([0, 0, 90])
2937
+ .scale(159.155);
2938
+ };
2939
+
2940
+ exports.geoArea = area;
2941
+ exports.geoBounds = bounds;
2942
+ exports.geoCentroid = centroid;
2943
+ exports.geoCircle = circle;
2944
+ exports.geoClipExtent = extent;
2945
+ exports.geoContains = contains;
2946
+ exports.geoDistance = distance;
2947
+ exports.geoGraticule = graticule;
2948
+ exports.geoGraticule10 = graticule10;
2949
+ exports.geoInterpolate = interpolate;
2950
+ exports.geoLength = length;
2951
+ exports.geoPath = index;
2952
+ exports.geoAlbers = albers;
2953
+ exports.geoAlbersUsa = albersUsa;
2954
+ exports.geoAzimuthalEqualArea = azimuthalEqualArea;
2955
+ exports.geoAzimuthalEqualAreaRaw = azimuthalEqualAreaRaw;
2956
+ exports.geoAzimuthalEquidistant = azimuthalEquidistant;
2957
+ exports.geoAzimuthalEquidistantRaw = azimuthalEquidistantRaw;
2958
+ exports.geoConicConformal = conicConformal;
2959
+ exports.geoConicConformalRaw = conicConformalRaw;
2960
+ exports.geoConicEqualArea = conicEqualArea;
2961
+ exports.geoConicEqualAreaRaw = conicEqualAreaRaw;
2962
+ exports.geoConicEquidistant = conicEquidistant;
2963
+ exports.geoConicEquidistantRaw = conicEquidistantRaw;
2964
+ exports.geoEquirectangular = equirectangular;
2965
+ exports.geoEquirectangularRaw = equirectangularRaw;
2966
+ exports.geoGnomonic = gnomonic;
2967
+ exports.geoGnomonicRaw = gnomonicRaw;
2968
+ exports.geoIdentity = identity$1;
2969
+ exports.geoProjection = projection;
2970
+ exports.geoProjectionMutator = projectionMutator;
2971
+ exports.geoMercator = mercator;
2972
+ exports.geoMercatorRaw = mercatorRaw;
2973
+ exports.geoNaturalEarth1 = naturalEarth1;
2974
+ exports.geoNaturalEarth1Raw = naturalEarth1Raw;
2975
+ exports.geoOrthographic = orthographic;
2976
+ exports.geoOrthographicRaw = orthographicRaw;
2977
+ exports.geoStereographic = stereographic;
2978
+ exports.geoStereographicRaw = stereographicRaw;
2979
+ exports.geoTransverseMercator = transverseMercator;
2980
+ exports.geoTransverseMercatorRaw = transverseMercatorRaw;
2981
+ exports.geoRotation = rotation;
2982
+ exports.geoStream = geoStream;
2983
+ exports.geoTransform = transform;
2984
+
2985
+ Object.defineProperty(exports, '__esModule', { value: true });
2986
+
2987
+ })));