@math.gl/geospatial 5.0.0-alpha.17 → 5.0.0-alpha.19

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 (1666) hide show
  1. package/README.md +12 -0
  2. package/crs/README.md +84 -0
  3. package/crs/schemas/README.md +9 -0
  4. package/crs/schemas/projjson.schema.json +1174 -0
  5. package/dist/crs/crs-metadata.cjs +67 -0
  6. package/dist/crs/crs-metadata.cjs.map +6 -0
  7. package/dist/crs/crs-metadata.d.ts +43 -0
  8. package/dist/crs/crs-metadata.d.ts.map +1 -0
  9. package/dist/crs/crs-metadata.js +26 -0
  10. package/dist/crs/crs-metadata.js.map +1 -0
  11. package/dist/crs/crs.d.ts +22 -0
  12. package/dist/crs/crs.d.ts.map +1 -0
  13. package/dist/crs/crs.js +5 -0
  14. package/dist/crs/crs.js.map +1 -0
  15. package/dist/crs/index.cjs +916 -0
  16. package/dist/crs/index.cjs.map +6 -0
  17. package/dist/crs/index.d.ts +12 -0
  18. package/dist/crs/index.d.ts.map +1 -0
  19. package/dist/crs/index.js +10 -0
  20. package/dist/crs/index.js.map +1 -0
  21. package/dist/crs/proj-string.cjs +219 -0
  22. package/dist/crs/proj-string.cjs.map +6 -0
  23. package/dist/crs/proj-string.d.ts +32 -0
  24. package/dist/crs/proj-string.d.ts.map +1 -0
  25. package/dist/crs/proj-string.js +204 -0
  26. package/dist/crs/proj-string.js.map +1 -0
  27. package/dist/crs/projjson-schema-constants.d.ts +5 -0
  28. package/dist/crs/projjson-schema-constants.d.ts.map +1 -0
  29. package/dist/crs/projjson-schema-constants.js +8 -0
  30. package/dist/crs/projjson-schema-constants.js.map +1 -0
  31. package/dist/crs/projjson-types.d.ts +557 -0
  32. package/dist/crs/projjson-types.d.ts.map +1 -0
  33. package/dist/crs/projjson-types.js +5 -0
  34. package/dist/crs/projjson-types.js.map +1 -0
  35. package/dist/crs/spatial-reference.cjs +80 -0
  36. package/dist/crs/spatial-reference.cjs.map +6 -0
  37. package/dist/crs/spatial-reference.d.ts +104 -0
  38. package/dist/crs/spatial-reference.d.ts.map +1 -0
  39. package/dist/crs/spatial-reference.js +86 -0
  40. package/dist/crs/spatial-reference.js.map +1 -0
  41. package/dist/crs/units-table.d.ts +4 -0
  42. package/dist/crs/units-table.d.ts.map +1 -0
  43. package/dist/crs/units-table.js +29 -0
  44. package/dist/crs/units-table.js.map +1 -0
  45. package/dist/crs/wkt-crs.cjs +610 -0
  46. package/dist/crs/wkt-crs.cjs.map +6 -0
  47. package/dist/crs/wkt-crs.d.ts +86 -0
  48. package/dist/crs/wkt-crs.d.ts.map +1 -0
  49. package/dist/crs/wkt-crs.js +613 -0
  50. package/dist/crs/wkt-crs.js.map +1 -0
  51. package/dist/ellipsoid-helpers/ellipsoid-transform.d.ts +1 -1
  52. package/dist/ellipsoid-helpers/ellipsoid-transform.d.ts.map +1 -1
  53. package/dist/ellipsoid-tangent-plane.d.ts +1 -1
  54. package/dist/ellipsoid-tangent-plane.d.ts.map +1 -1
  55. package/dist/ellipsoid-tangent-plane.js +1 -1
  56. package/dist/ellipsoid-tangent-plane.js.map +1 -1
  57. package/dist/ellipsoid.d.ts +1 -1
  58. package/dist/ellipsoid.d.ts.map +1 -1
  59. package/dist/entries/ellipsoid.cjs +572 -0
  60. package/dist/entries/ellipsoid.cjs.map +6 -0
  61. package/dist/entries/ellipsoid.d.ts +5 -0
  62. package/dist/entries/ellipsoid.d.ts.map +1 -0
  63. package/dist/entries/ellipsoid.js +7 -0
  64. package/dist/entries/ellipsoid.js.map +1 -0
  65. package/dist/expressions.cjs +528 -0
  66. package/dist/expressions.cjs.map +6 -0
  67. package/dist/expressions.d.ts +4 -0
  68. package/dist/expressions.d.ts.map +1 -0
  69. package/dist/expressions.js +23 -0
  70. package/dist/expressions.js.map +1 -0
  71. package/dist/geoarrow/builder-entry.cjs +699 -0
  72. package/dist/geoarrow/builder-entry.cjs.map +6 -0
  73. package/dist/geoarrow/builder-entry.d.ts +4 -0
  74. package/dist/geoarrow/builder-entry.d.ts.map +1 -0
  75. package/dist/geoarrow/builder-entry.js +5 -0
  76. package/dist/geoarrow/builder-entry.js.map +1 -0
  77. package/dist/geoarrow/builder.d.ts +106 -0
  78. package/dist/geoarrow/builder.d.ts.map +1 -0
  79. package/dist/geoarrow/builder.js +668 -0
  80. package/dist/geoarrow/builder.js.map +1 -0
  81. package/dist/geoarrow/codecs.d.ts +24 -0
  82. package/dist/geoarrow/codecs.d.ts.map +1 -0
  83. package/dist/geoarrow/codecs.js +921 -0
  84. package/dist/geoarrow/codecs.js.map +1 -0
  85. package/dist/geoarrow/index.cjs +4089 -0
  86. package/dist/geoarrow/index.cjs.map +6 -0
  87. package/dist/geoarrow/index.d.ts +15 -0
  88. package/dist/geoarrow/index.d.ts.map +1 -0
  89. package/dist/geoarrow/index.js +11 -0
  90. package/dist/geoarrow/index.js.map +1 -0
  91. package/dist/geoarrow/kernels.d.ts +56 -0
  92. package/dist/geoarrow/kernels.d.ts.map +1 -0
  93. package/dist/geoarrow/kernels.js +982 -0
  94. package/dist/geoarrow/kernels.js.map +1 -0
  95. package/dist/geoarrow/layout.d.ts +64 -0
  96. package/dist/geoarrow/layout.d.ts.map +1 -0
  97. package/dist/geoarrow/layout.js +722 -0
  98. package/dist/geoarrow/layout.js.map +1 -0
  99. package/dist/geoarrow/tessellate.d.ts +31 -0
  100. package/dist/geoarrow/tessellate.d.ts.map +1 -0
  101. package/dist/geoarrow/tessellate.js +102 -0
  102. package/dist/geoarrow/tessellate.js.map +1 -0
  103. package/dist/geoarrow/tessellation-entry.cjs +431 -0
  104. package/dist/geoarrow/tessellation-entry.cjs.map +6 -0
  105. package/dist/geoarrow/tessellation-entry.d.ts +4 -0
  106. package/dist/geoarrow/tessellation-entry.d.ts.map +1 -0
  107. package/dist/geoarrow/tessellation-entry.js +5 -0
  108. package/dist/geoarrow/tessellation-entry.js.map +1 -0
  109. package/dist/geoarrow/types.d.ts +147 -0
  110. package/dist/geoarrow/types.d.ts.map +1 -0
  111. package/dist/geoarrow/types.js +41 -0
  112. package/dist/geoarrow/types.js.map +1 -0
  113. package/dist/geoarrow/views.d.ts +45 -0
  114. package/dist/geoarrow/views.d.ts.map +1 -0
  115. package/dist/geoarrow/views.js +114 -0
  116. package/dist/geoarrow/views.js.map +1 -0
  117. package/dist/geoarrow/wkb-entry.cjs +2467 -0
  118. package/dist/geoarrow/wkb-entry.cjs.map +6 -0
  119. package/dist/geoarrow/wkb-entry.d.ts +4 -0
  120. package/dist/geoarrow/wkb-entry.d.ts.map +1 -0
  121. package/dist/geoarrow/wkb-entry.js +6 -0
  122. package/dist/geoarrow/wkb-entry.js.map +1 -0
  123. package/dist/geoarrow/worker.cjs +77 -0
  124. package/dist/geoarrow/worker.cjs.map +6 -0
  125. package/dist/geoarrow/worker.d.ts +11 -0
  126. package/dist/geoarrow/worker.d.ts.map +1 -0
  127. package/dist/geoarrow/worker.js +10 -0
  128. package/dist/geoarrow/worker.js.map +1 -0
  129. package/dist/globe.cjs +1002 -0
  130. package/dist/globe.cjs.map +6 -0
  131. package/dist/globe.d.ts +10 -0
  132. package/dist/globe.d.ts.map +1 -0
  133. package/dist/globe.js +9 -0
  134. package/dist/globe.js.map +1 -0
  135. package/dist/index.cjs +154 -261
  136. package/dist/index.cjs.map +3 -3
  137. package/dist/index.d.ts +3 -15
  138. package/dist/index.d.ts.map +1 -1
  139. package/dist/index.js +3 -9
  140. package/dist/index.js.map +1 -1
  141. package/dist/make-obb-from-region.d.ts +1 -1
  142. package/dist/make-obb-from-region.d.ts.map +1 -1
  143. package/dist/make-obb-from-region.js +1 -1
  144. package/dist/make-obb-from-region.js.map +1 -1
  145. package/dist/projection/analysis.cjs +239 -0
  146. package/dist/projection/analysis.cjs.map +6 -0
  147. package/dist/projection/analysis.d.ts +72 -0
  148. package/dist/projection/analysis.d.ts.map +1 -0
  149. package/dist/projection/analysis.js +221 -0
  150. package/dist/projection/analysis.js.map +1 -0
  151. package/dist/projection/bulk.cjs +203 -0
  152. package/dist/projection/bulk.cjs.map +6 -0
  153. package/dist/projection/bulk.d.ts +51 -0
  154. package/dist/projection/bulk.d.ts.map +1 -0
  155. package/dist/projection/bulk.js +215 -0
  156. package/dist/projection/bulk.js.map +1 -0
  157. package/dist/projection/datums.cjs +1383 -0
  158. package/dist/projection/datums.cjs.map +6 -0
  159. package/dist/projection/datums.d.ts +5 -0
  160. package/dist/projection/datums.d.ts.map +1 -0
  161. package/dist/projection/datums.js +10 -0
  162. package/dist/projection/datums.js.map +1 -0
  163. package/dist/projection/deformation.cjs +134 -0
  164. package/dist/projection/deformation.cjs.map +6 -0
  165. package/dist/projection/deformation.d.ts +3 -0
  166. package/dist/projection/deformation.d.ts.map +1 -0
  167. package/dist/projection/deformation.js +5 -0
  168. package/dist/projection/deformation.js.map +1 -0
  169. package/dist/projection/experimental/catalogue-kernel.d.ts +9 -0
  170. package/dist/projection/experimental/catalogue-kernel.d.ts.map +1 -0
  171. package/dist/projection/experimental/catalogue-kernel.js +44 -0
  172. package/dist/projection/experimental/catalogue-kernel.js.map +1 -0
  173. package/dist/projection/experimental/common/adjust_lat.d.ts +2 -0
  174. package/dist/projection/experimental/common/adjust_lat.d.ts.map +1 -0
  175. package/dist/projection/experimental/common/adjust_lat.js +10 -0
  176. package/dist/projection/experimental/common/adjust_lat.js.map +1 -0
  177. package/dist/projection/experimental/common/adjust_lon.d.ts +2 -0
  178. package/dist/projection/experimental/common/adjust_lon.d.ts.map +1 -0
  179. package/dist/projection/experimental/common/adjust_lon.js +13 -0
  180. package/dist/projection/experimental/common/adjust_lon.js.map +1 -0
  181. package/dist/projection/experimental/common/asinhy.d.ts +2 -0
  182. package/dist/projection/experimental/common/asinhy.d.ts.map +1 -0
  183. package/dist/projection/experimental/common/asinhy.js +12 -0
  184. package/dist/projection/experimental/common/asinhy.js.map +1 -0
  185. package/dist/projection/experimental/common/asinz.d.ts +2 -0
  186. package/dist/projection/experimental/common/asinz.d.ts.map +1 -0
  187. package/dist/projection/experimental/common/asinz.js +11 -0
  188. package/dist/projection/experimental/common/asinz.js.map +1 -0
  189. package/dist/projection/experimental/common/authlat.d.ts +2 -0
  190. package/dist/projection/experimental/common/authlat.d.ts.map +1 -0
  191. package/dist/projection/experimental/common/authlat.js +9 -0
  192. package/dist/projection/experimental/common/authlat.js.map +1 -0
  193. package/dist/projection/experimental/common/authset.d.ts +2 -0
  194. package/dist/projection/experimental/common/authset.d.ts.map +1 -0
  195. package/dist/projection/experimental/common/authset.js +24 -0
  196. package/dist/projection/experimental/common/authset.js.map +1 -0
  197. package/dist/projection/experimental/common/clens.d.ts +2 -0
  198. package/dist/projection/experimental/common/clens.d.ts.map +1 -0
  199. package/dist/projection/experimental/common/clens.js +18 -0
  200. package/dist/projection/experimental/common/clens.js.map +1 -0
  201. package/dist/projection/experimental/common/clens_cmplx.d.ts +5 -0
  202. package/dist/projection/experimental/common/clens_cmplx.d.ts.map +1 -0
  203. package/dist/projection/experimental/common/clens_cmplx.js +34 -0
  204. package/dist/projection/experimental/common/clens_cmplx.js.map +1 -0
  205. package/dist/projection/experimental/common/constants.d.ts +9 -0
  206. package/dist/projection/experimental/common/constants.d.ts.map +1 -0
  207. package/dist/projection/experimental/common/constants.js +14 -0
  208. package/dist/projection/experimental/common/constants.js.map +1 -0
  209. package/dist/projection/experimental/common/cosh.d.ts +2 -0
  210. package/dist/projection/experimental/common/cosh.d.ts.map +1 -0
  211. package/dist/projection/experimental/common/cosh.js +10 -0
  212. package/dist/projection/experimental/common/cosh.js.map +1 -0
  213. package/dist/projection/experimental/common/e0fn.d.ts +2 -0
  214. package/dist/projection/experimental/common/e0fn.d.ts.map +1 -0
  215. package/dist/projection/experimental/common/e0fn.js +8 -0
  216. package/dist/projection/experimental/common/e0fn.js.map +1 -0
  217. package/dist/projection/experimental/common/e1fn.d.ts +2 -0
  218. package/dist/projection/experimental/common/e1fn.d.ts.map +1 -0
  219. package/dist/projection/experimental/common/e1fn.js +8 -0
  220. package/dist/projection/experimental/common/e1fn.js.map +1 -0
  221. package/dist/projection/experimental/common/e2fn.d.ts +2 -0
  222. package/dist/projection/experimental/common/e2fn.d.ts.map +1 -0
  223. package/dist/projection/experimental/common/e2fn.js +8 -0
  224. package/dist/projection/experimental/common/e2fn.js.map +1 -0
  225. package/dist/projection/experimental/common/e3fn.d.ts +2 -0
  226. package/dist/projection/experimental/common/e3fn.d.ts.map +1 -0
  227. package/dist/projection/experimental/common/e3fn.js +8 -0
  228. package/dist/projection/experimental/common/e3fn.js.map +1 -0
  229. package/dist/projection/experimental/common/fL.d.ts +2 -0
  230. package/dist/projection/experimental/common/fL.d.ts.map +1 -0
  231. package/dist/projection/experimental/common/fL.js +9 -0
  232. package/dist/projection/experimental/common/fL.js.map +1 -0
  233. package/dist/projection/experimental/common/gN.d.ts +2 -0
  234. package/dist/projection/experimental/common/gN.d.ts.map +1 -0
  235. package/dist/projection/experimental/common/gN.js +9 -0
  236. package/dist/projection/experimental/common/gN.js.map +1 -0
  237. package/dist/projection/experimental/common/gatg.d.ts +2 -0
  238. package/dist/projection/experimental/common/gatg.d.ts.map +1 -0
  239. package/dist/projection/experimental/common/gatg.js +18 -0
  240. package/dist/projection/experimental/common/gatg.js.map +1 -0
  241. package/dist/projection/experimental/common/hypot.d.ts +2 -0
  242. package/dist/projection/experimental/common/hypot.d.ts.map +1 -0
  243. package/dist/projection/experimental/common/hypot.js +12 -0
  244. package/dist/projection/experimental/common/hypot.js.map +1 -0
  245. package/dist/projection/experimental/common/imlfn.d.ts +2 -0
  246. package/dist/projection/experimental/common/imlfn.d.ts.map +1 -0
  247. package/dist/projection/experimental/common/imlfn.js +21 -0
  248. package/dist/projection/experimental/common/imlfn.js.map +1 -0
  249. package/dist/projection/experimental/common/invlatiso.d.ts +2 -0
  250. package/dist/projection/experimental/common/invlatiso.d.ts.map +1 -0
  251. package/dist/projection/experimental/common/invlatiso.js +20 -0
  252. package/dist/projection/experimental/common/invlatiso.js.map +1 -0
  253. package/dist/projection/experimental/common/iqsfnz.d.ts +2 -0
  254. package/dist/projection/experimental/common/iqsfnz.d.ts.map +1 -0
  255. package/dist/projection/experimental/common/iqsfnz.js +44 -0
  256. package/dist/projection/experimental/common/iqsfnz.js.map +1 -0
  257. package/dist/projection/experimental/common/latiso.d.ts +2 -0
  258. package/dist/projection/experimental/common/latiso.d.ts.map +1 -0
  259. package/dist/projection/experimental/common/latiso.js +19 -0
  260. package/dist/projection/experimental/common/latiso.js.map +1 -0
  261. package/dist/projection/experimental/common/log1py.d.ts +2 -0
  262. package/dist/projection/experimental/common/log1py.d.ts.map +1 -0
  263. package/dist/projection/experimental/common/log1py.js +10 -0
  264. package/dist/projection/experimental/common/log1py.js.map +1 -0
  265. package/dist/projection/experimental/common/meridian-distance.d.ts +5 -0
  266. package/dist/projection/experimental/common/meridian-distance.d.ts.map +1 -0
  267. package/dist/projection/experimental/common/meridian-distance.js +47 -0
  268. package/dist/projection/experimental/common/meridian-distance.js.map +1 -0
  269. package/dist/projection/experimental/common/mlfn.d.ts +2 -0
  270. package/dist/projection/experimental/common/mlfn.d.ts.map +1 -0
  271. package/dist/projection/experimental/common/mlfn.js +8 -0
  272. package/dist/projection/experimental/common/mlfn.js.map +1 -0
  273. package/dist/projection/experimental/common/msfnz.d.ts +2 -0
  274. package/dist/projection/experimental/common/msfnz.d.ts.map +1 -0
  275. package/dist/projection/experimental/common/msfnz.js +9 -0
  276. package/dist/projection/experimental/common/msfnz.js.map +1 -0
  277. package/dist/projection/experimental/common/phi2z.d.ts +2 -0
  278. package/dist/projection/experimental/common/phi2z.d.ts.map +1 -0
  279. package/dist/projection/experimental/common/phi2z.js +21 -0
  280. package/dist/projection/experimental/common/phi2z.js.map +1 -0
  281. package/dist/projection/experimental/common/pj_enfn.d.ts +2 -0
  282. package/dist/projection/experimental/common/pj_enfn.d.ts.map +1 -0
  283. package/dist/projection/experimental/common/pj_enfn.js +28 -0
  284. package/dist/projection/experimental/common/pj_enfn.js.map +1 -0
  285. package/dist/projection/experimental/common/pj_inv_mlfn.d.ts +2 -0
  286. package/dist/projection/experimental/common/pj_inv_mlfn.d.ts.map +1 -0
  287. package/dist/projection/experimental/common/pj_inv_mlfn.js +26 -0
  288. package/dist/projection/experimental/common/pj_inv_mlfn.js.map +1 -0
  289. package/dist/projection/experimental/common/pj_mlfn.d.ts +2 -0
  290. package/dist/projection/experimental/common/pj_mlfn.d.ts.map +1 -0
  291. package/dist/projection/experimental/common/pj_mlfn.js +10 -0
  292. package/dist/projection/experimental/common/pj_mlfn.js.map +1 -0
  293. package/dist/projection/experimental/common/qsfnz.d.ts +2 -0
  294. package/dist/projection/experimental/common/qsfnz.d.ts.map +1 -0
  295. package/dist/projection/experimental/common/qsfnz.js +16 -0
  296. package/dist/projection/experimental/common/qsfnz.js.map +1 -0
  297. package/dist/projection/experimental/common/sign.d.ts +2 -0
  298. package/dist/projection/experimental/common/sign.d.ts.map +1 -0
  299. package/dist/projection/experimental/common/sign.js +8 -0
  300. package/dist/projection/experimental/common/sign.js.map +1 -0
  301. package/dist/projection/experimental/common/sinh.d.ts +2 -0
  302. package/dist/projection/experimental/common/sinh.d.ts.map +1 -0
  303. package/dist/projection/experimental/common/sinh.js +10 -0
  304. package/dist/projection/experimental/common/sinh.js.map +1 -0
  305. package/dist/projection/experimental/common/srat.d.ts +2 -0
  306. package/dist/projection/experimental/common/srat.d.ts.map +1 -0
  307. package/dist/projection/experimental/common/srat.js +8 -0
  308. package/dist/projection/experimental/common/srat.js.map +1 -0
  309. package/dist/projection/experimental/common/tsfnz.d.ts +2 -0
  310. package/dist/projection/experimental/common/tsfnz.d.ts.map +1 -0
  311. package/dist/projection/experimental/common/tsfnz.js +12 -0
  312. package/dist/projection/experimental/common/tsfnz.js.map +1 -0
  313. package/dist/projection/experimental/common/vincenty.d.ts +29 -0
  314. package/dist/projection/experimental/common/vincenty.d.ts.map +1 -0
  315. package/dist/projection/experimental/common/vincenty.js +134 -0
  316. package/dist/projection/experimental/common/vincenty.js.map +1 -0
  317. package/dist/projection/experimental/core.cjs +1940 -0
  318. package/dist/projection/experimental/core.cjs.map +6 -0
  319. package/dist/projection/experimental/core.d.ts +16 -0
  320. package/dist/projection/experimental/core.d.ts.map +1 -0
  321. package/dist/projection/experimental/core.js +10 -0
  322. package/dist/projection/experimental/core.js.map +1 -0
  323. package/dist/projection/experimental/crs/datum-catalog.d.ts +5 -0
  324. package/dist/projection/experimental/crs/datum-catalog.d.ts.map +1 -0
  325. package/dist/projection/experimental/crs/datum-catalog.js +47 -0
  326. package/dist/projection/experimental/crs/datum-catalog.js.map +1 -0
  327. package/dist/projection/experimental/crs/datum-table.d.ts +8 -0
  328. package/dist/projection/experimental/crs/datum-table.d.ts.map +1 -0
  329. package/dist/projection/experimental/crs/datum-table.js +1355 -0
  330. package/dist/projection/experimental/crs/datum-table.js.map +1 -0
  331. package/dist/projection/experimental/crs/ellipsoid-table.d.ts +8 -0
  332. package/dist/projection/experimental/crs/ellipsoid-table.d.ts.map +1 -0
  333. package/dist/projection/experimental/crs/ellipsoid-table.js +229 -0
  334. package/dist/projection/experimental/crs/ellipsoid-table.js.map +1 -0
  335. package/dist/projection/experimental/crs/normalize.d.ts +8 -0
  336. package/dist/projection/experimental/crs/normalize.d.ts.map +1 -0
  337. package/dist/projection/experimental/crs/normalize.js +279 -0
  338. package/dist/projection/experimental/crs/normalize.js.map +1 -0
  339. package/dist/projection/experimental/crs/primemeridian-table.d.ts +3 -0
  340. package/dist/projection/experimental/crs/primemeridian-table.d.ts.map +1 -0
  341. package/dist/projection/experimental/crs/primemeridian-table.js +20 -0
  342. package/dist/projection/experimental/crs/primemeridian-table.js.map +1 -0
  343. package/dist/projection/experimental/crs/projjson.cjs +564 -0
  344. package/dist/projection/experimental/crs/projjson.cjs.map +6 -0
  345. package/dist/projection/experimental/crs/projjson.d.ts +4 -0
  346. package/dist/projection/experimental/crs/projjson.d.ts.map +1 -0
  347. package/dist/projection/experimental/crs/projjson.js +12 -0
  348. package/dist/projection/experimental/crs/projjson.js.map +1 -0
  349. package/dist/projection/experimental/crs/spatial-reference.d.ts +11 -0
  350. package/dist/projection/experimental/crs/spatial-reference.d.ts.map +1 -0
  351. package/dist/projection/experimental/crs/spatial-reference.js +91 -0
  352. package/dist/projection/experimental/crs/spatial-reference.js.map +1 -0
  353. package/dist/projection/experimental/crs/structured.d.ts +8 -0
  354. package/dist/projection/experimental/crs/structured.d.ts.map +1 -0
  355. package/dist/projection/experimental/crs/structured.js +534 -0
  356. package/dist/projection/experimental/crs/structured.js.map +1 -0
  357. package/dist/projection/experimental/crs/types.d.ts +73 -0
  358. package/dist/projection/experimental/crs/types.d.ts.map +1 -0
  359. package/dist/projection/experimental/crs/types.js +21 -0
  360. package/dist/projection/experimental/crs/types.js.map +1 -0
  361. package/dist/projection/experimental/crs/wkt.cjs +1229 -0
  362. package/dist/projection/experimental/crs/wkt.cjs.map +6 -0
  363. package/dist/projection/experimental/crs/wkt.d.ts +3 -0
  364. package/dist/projection/experimental/crs/wkt.d.ts.map +1 -0
  365. package/dist/projection/experimental/crs/wkt.js +190 -0
  366. package/dist/projection/experimental/crs/wkt.js.map +1 -0
  367. package/dist/projection/experimental/crs-descriptor.d.ts +10 -0
  368. package/dist/projection/experimental/crs-descriptor.d.ts.map +1 -0
  369. package/dist/projection/experimental/crs-descriptor.js +171 -0
  370. package/dist/projection/experimental/crs-descriptor.js.map +1 -0
  371. package/dist/projection/experimental/crs-rendering-scale.d.ts +5 -0
  372. package/dist/projection/experimental/crs-rendering-scale.d.ts.map +1 -0
  373. package/dist/projection/experimental/crs-rendering-scale.js +97 -0
  374. package/dist/projection/experimental/crs-rendering-scale.js.map +1 -0
  375. package/dist/projection/experimental/datum.d.ts +17 -0
  376. package/dist/projection/experimental/datum.d.ts.map +1 -0
  377. package/dist/projection/experimental/datum.js +160 -0
  378. package/dist/projection/experimental/datum.js.map +1 -0
  379. package/dist/projection/experimental/deformation-inverse.d.ts +5 -0
  380. package/dist/projection/experimental/deformation-inverse.d.ts.map +1 -0
  381. package/dist/projection/experimental/deformation-inverse.js +89 -0
  382. package/dist/projection/experimental/deformation-inverse.js.map +1 -0
  383. package/dist/projection/experimental/deformation.d.ts +23 -0
  384. package/dist/projection/experimental/deformation.d.ts.map +1 -0
  385. package/dist/projection/experimental/deformation.js +13 -0
  386. package/dist/projection/experimental/deformation.js.map +1 -0
  387. package/dist/projection/experimental/entries/projections/aea.cjs +642 -0
  388. package/dist/projection/experimental/entries/projections/aea.cjs.map +6 -0
  389. package/dist/projection/experimental/entries/projections/aea.d.ts +2 -0
  390. package/dist/projection/experimental/entries/projections/aea.d.ts.map +1 -0
  391. package/dist/projection/experimental/entries/projections/aea.js +5 -0
  392. package/dist/projection/experimental/entries/projections/aea.js.map +1 -0
  393. package/dist/projection/experimental/entries/projections/aeqd.cjs +718 -0
  394. package/dist/projection/experimental/entries/projections/aeqd.cjs.map +6 -0
  395. package/dist/projection/experimental/entries/projections/aeqd.d.ts +2 -0
  396. package/dist/projection/experimental/entries/projections/aeqd.d.ts.map +1 -0
  397. package/dist/projection/experimental/entries/projections/aeqd.js +5 -0
  398. package/dist/projection/experimental/entries/projections/aeqd.js.map +1 -0
  399. package/dist/projection/experimental/entries/projections/bonne.cjs +621 -0
  400. package/dist/projection/experimental/entries/projections/bonne.cjs.map +6 -0
  401. package/dist/projection/experimental/entries/projections/bonne.d.ts +2 -0
  402. package/dist/projection/experimental/entries/projections/bonne.d.ts.map +1 -0
  403. package/dist/projection/experimental/entries/projections/bonne.js +5 -0
  404. package/dist/projection/experimental/entries/projections/bonne.js.map +1 -0
  405. package/dist/projection/experimental/entries/projections/cass.cjs +610 -0
  406. package/dist/projection/experimental/entries/projections/cass.cjs.map +6 -0
  407. package/dist/projection/experimental/entries/projections/cass.d.ts +2 -0
  408. package/dist/projection/experimental/entries/projections/cass.d.ts.map +1 -0
  409. package/dist/projection/experimental/entries/projections/cass.js +5 -0
  410. package/dist/projection/experimental/entries/projections/cass.js.map +1 -0
  411. package/dist/projection/experimental/entries/projections/cea.cjs +536 -0
  412. package/dist/projection/experimental/entries/projections/cea.cjs.map +6 -0
  413. package/dist/projection/experimental/entries/projections/cea.d.ts +2 -0
  414. package/dist/projection/experimental/entries/projections/cea.d.ts.map +1 -0
  415. package/dist/projection/experimental/entries/projections/cea.js +5 -0
  416. package/dist/projection/experimental/entries/projections/cea.js.map +1 -0
  417. package/dist/projection/experimental/entries/projections/eck6.cjs +559 -0
  418. package/dist/projection/experimental/entries/projections/eck6.cjs.map +6 -0
  419. package/dist/projection/experimental/entries/projections/eck6.d.ts +2 -0
  420. package/dist/projection/experimental/entries/projections/eck6.d.ts.map +1 -0
  421. package/dist/projection/experimental/entries/projections/eck6.js +5 -0
  422. package/dist/projection/experimental/entries/projections/eck6.js.map +1 -0
  423. package/dist/projection/experimental/entries/projections/eqc.cjs +256 -0
  424. package/dist/projection/experimental/entries/projections/eqc.cjs.map +6 -0
  425. package/dist/projection/experimental/entries/projections/eqc.d.ts +2 -0
  426. package/dist/projection/experimental/entries/projections/eqc.d.ts.map +1 -0
  427. package/dist/projection/experimental/entries/projections/eqc.js +5 -0
  428. package/dist/projection/experimental/entries/projections/eqc.js.map +1 -0
  429. package/dist/projection/experimental/entries/projections/eqdc.cjs +650 -0
  430. package/dist/projection/experimental/entries/projections/eqdc.cjs.map +6 -0
  431. package/dist/projection/experimental/entries/projections/eqdc.d.ts +2 -0
  432. package/dist/projection/experimental/entries/projections/eqdc.d.ts.map +1 -0
  433. package/dist/projection/experimental/entries/projections/eqdc.js +5 -0
  434. package/dist/projection/experimental/entries/projections/eqdc.js.map +1 -0
  435. package/dist/projection/experimental/entries/projections/eqearth.cjs +451 -0
  436. package/dist/projection/experimental/entries/projections/eqearth.cjs.map +6 -0
  437. package/dist/projection/experimental/entries/projections/eqearth.d.ts +2 -0
  438. package/dist/projection/experimental/entries/projections/eqearth.d.ts.map +1 -0
  439. package/dist/projection/experimental/entries/projections/eqearth.js +5 -0
  440. package/dist/projection/experimental/entries/projections/eqearth.js.map +1 -0
  441. package/dist/projection/experimental/entries/projections/equi.cjs +475 -0
  442. package/dist/projection/experimental/entries/projections/equi.cjs.map +6 -0
  443. package/dist/projection/experimental/entries/projections/equi.d.ts +2 -0
  444. package/dist/projection/experimental/entries/projections/equi.d.ts.map +1 -0
  445. package/dist/projection/experimental/entries/projections/equi.js +5 -0
  446. package/dist/projection/experimental/entries/projections/equi.js.map +1 -0
  447. package/dist/projection/experimental/entries/projections/etmerc.cjs +887 -0
  448. package/dist/projection/experimental/entries/projections/etmerc.cjs.map +6 -0
  449. package/dist/projection/experimental/entries/projections/etmerc.d.ts +2 -0
  450. package/dist/projection/experimental/entries/projections/etmerc.d.ts.map +1 -0
  451. package/dist/projection/experimental/entries/projections/etmerc.js +5 -0
  452. package/dist/projection/experimental/entries/projections/etmerc.js.map +1 -0
  453. package/dist/projection/experimental/entries/projections/geocent.cjs +215 -0
  454. package/dist/projection/experimental/entries/projections/geocent.cjs.map +6 -0
  455. package/dist/projection/experimental/entries/projections/geocent.d.ts +2 -0
  456. package/dist/projection/experimental/entries/projections/geocent.d.ts.map +1 -0
  457. package/dist/projection/experimental/entries/projections/geocent.js +5 -0
  458. package/dist/projection/experimental/entries/projections/geocent.js.map +1 -0
  459. package/dist/projection/experimental/entries/projections/geos.cjs +703 -0
  460. package/dist/projection/experimental/entries/projections/geos.cjs.map +6 -0
  461. package/dist/projection/experimental/entries/projections/geos.d.ts +2 -0
  462. package/dist/projection/experimental/entries/projections/geos.d.ts.map +1 -0
  463. package/dist/projection/experimental/entries/projections/geos.js +5 -0
  464. package/dist/projection/experimental/entries/projections/geos.js.map +1 -0
  465. package/dist/projection/experimental/entries/projections/gnom.cjs +571 -0
  466. package/dist/projection/experimental/entries/projections/gnom.cjs.map +6 -0
  467. package/dist/projection/experimental/entries/projections/gnom.d.ts +2 -0
  468. package/dist/projection/experimental/entries/projections/gnom.d.ts.map +1 -0
  469. package/dist/projection/experimental/entries/projections/gnom.js +5 -0
  470. package/dist/projection/experimental/entries/projections/gnom.js.map +1 -0
  471. package/dist/projection/experimental/entries/projections/gstmerc.cjs +526 -0
  472. package/dist/projection/experimental/entries/projections/gstmerc.cjs.map +6 -0
  473. package/dist/projection/experimental/entries/projections/gstmerc.d.ts +2 -0
  474. package/dist/projection/experimental/entries/projections/gstmerc.d.ts.map +1 -0
  475. package/dist/projection/experimental/entries/projections/gstmerc.js +5 -0
  476. package/dist/projection/experimental/entries/projections/gstmerc.js.map +1 -0
  477. package/dist/projection/experimental/entries/projections/krovak.cjs +683 -0
  478. package/dist/projection/experimental/entries/projections/krovak.cjs.map +6 -0
  479. package/dist/projection/experimental/entries/projections/krovak.d.ts +2 -0
  480. package/dist/projection/experimental/entries/projections/krovak.d.ts.map +1 -0
  481. package/dist/projection/experimental/entries/projections/krovak.js +5 -0
  482. package/dist/projection/experimental/entries/projections/krovak.js.map +1 -0
  483. package/dist/projection/experimental/entries/projections/laea.cjs +761 -0
  484. package/dist/projection/experimental/entries/projections/laea.cjs.map +6 -0
  485. package/dist/projection/experimental/entries/projections/laea.d.ts +2 -0
  486. package/dist/projection/experimental/entries/projections/laea.d.ts.map +1 -0
  487. package/dist/projection/experimental/entries/projections/laea.js +5 -0
  488. package/dist/projection/experimental/entries/projections/laea.js.map +1 -0
  489. package/dist/projection/experimental/entries/projections/lcc.cjs +642 -0
  490. package/dist/projection/experimental/entries/projections/lcc.cjs.map +6 -0
  491. package/dist/projection/experimental/entries/projections/lcc.d.ts +2 -0
  492. package/dist/projection/experimental/entries/projections/lcc.d.ts.map +1 -0
  493. package/dist/projection/experimental/entries/projections/lcc.js +5 -0
  494. package/dist/projection/experimental/entries/projections/lcc.js.map +1 -0
  495. package/dist/projection/experimental/entries/projections/merc.cjs +354 -0
  496. package/dist/projection/experimental/entries/projections/merc.cjs.map +6 -0
  497. package/dist/projection/experimental/entries/projections/merc.d.ts +2 -0
  498. package/dist/projection/experimental/entries/projections/merc.d.ts.map +1 -0
  499. package/dist/projection/experimental/entries/projections/merc.js +5 -0
  500. package/dist/projection/experimental/entries/projections/merc.js.map +1 -0
  501. package/dist/projection/experimental/entries/projections/mill.cjs +470 -0
  502. package/dist/projection/experimental/entries/projections/mill.cjs.map +6 -0
  503. package/dist/projection/experimental/entries/projections/mill.d.ts +2 -0
  504. package/dist/projection/experimental/entries/projections/mill.d.ts.map +1 -0
  505. package/dist/projection/experimental/entries/projections/mill.js +5 -0
  506. package/dist/projection/experimental/entries/projections/mill.js.map +1 -0
  507. package/dist/projection/experimental/entries/projections/moll.cjs +510 -0
  508. package/dist/projection/experimental/entries/projections/moll.cjs.map +6 -0
  509. package/dist/projection/experimental/entries/projections/moll.d.ts +2 -0
  510. package/dist/projection/experimental/entries/projections/moll.d.ts.map +1 -0
  511. package/dist/projection/experimental/entries/projections/moll.js +5 -0
  512. package/dist/projection/experimental/entries/projections/moll.js.map +1 -0
  513. package/dist/projection/experimental/entries/projections/nzmg.cjs +623 -0
  514. package/dist/projection/experimental/entries/projections/nzmg.cjs.map +6 -0
  515. package/dist/projection/experimental/entries/projections/nzmg.d.ts +2 -0
  516. package/dist/projection/experimental/entries/projections/nzmg.d.ts.map +1 -0
  517. package/dist/projection/experimental/entries/projections/nzmg.js +5 -0
  518. package/dist/projection/experimental/entries/projections/nzmg.js.map +1 -0
  519. package/dist/projection/experimental/entries/projections/ob_tran.cjs +540 -0
  520. package/dist/projection/experimental/entries/projections/ob_tran.cjs.map +6 -0
  521. package/dist/projection/experimental/entries/projections/ob_tran.d.ts +2 -0
  522. package/dist/projection/experimental/entries/projections/ob_tran.d.ts.map +1 -0
  523. package/dist/projection/experimental/entries/projections/ob_tran.js +5 -0
  524. package/dist/projection/experimental/entries/projections/ob_tran.js.map +1 -0
  525. package/dist/projection/experimental/entries/projections/omerc.cjs +852 -0
  526. package/dist/projection/experimental/entries/projections/omerc.cjs.map +6 -0
  527. package/dist/projection/experimental/entries/projections/omerc.d.ts +2 -0
  528. package/dist/projection/experimental/entries/projections/omerc.d.ts.map +1 -0
  529. package/dist/projection/experimental/entries/projections/omerc.js +5 -0
  530. package/dist/projection/experimental/entries/projections/omerc.js.map +1 -0
  531. package/dist/projection/experimental/entries/projections/ortho.cjs +573 -0
  532. package/dist/projection/experimental/entries/projections/ortho.cjs.map +6 -0
  533. package/dist/projection/experimental/entries/projections/ortho.d.ts +2 -0
  534. package/dist/projection/experimental/entries/projections/ortho.d.ts.map +1 -0
  535. package/dist/projection/experimental/entries/projections/ortho.js +5 -0
  536. package/dist/projection/experimental/entries/projections/ortho.js.map +1 -0
  537. package/dist/projection/experimental/entries/projections/poly.cjs +588 -0
  538. package/dist/projection/experimental/entries/projections/poly.cjs.map +6 -0
  539. package/dist/projection/experimental/entries/projections/poly.d.ts +2 -0
  540. package/dist/projection/experimental/entries/projections/poly.d.ts.map +1 -0
  541. package/dist/projection/experimental/entries/projections/poly.js +5 -0
  542. package/dist/projection/experimental/entries/projections/poly.js.map +1 -0
  543. package/dist/projection/experimental/entries/projections/qsc.cjs +714 -0
  544. package/dist/projection/experimental/entries/projections/qsc.cjs.map +6 -0
  545. package/dist/projection/experimental/entries/projections/qsc.d.ts +2 -0
  546. package/dist/projection/experimental/entries/projections/qsc.d.ts.map +1 -0
  547. package/dist/projection/experimental/entries/projections/qsc.js +5 -0
  548. package/dist/projection/experimental/entries/projections/qsc.js.map +1 -0
  549. package/dist/projection/experimental/entries/projections/robin.cjs +584 -0
  550. package/dist/projection/experimental/entries/projections/robin.cjs.map +6 -0
  551. package/dist/projection/experimental/entries/projections/robin.d.ts +2 -0
  552. package/dist/projection/experimental/entries/projections/robin.d.ts.map +1 -0
  553. package/dist/projection/experimental/entries/projections/robin.js +5 -0
  554. package/dist/projection/experimental/entries/projections/robin.js.map +1 -0
  555. package/dist/projection/experimental/entries/projections/sinu.cjs +583 -0
  556. package/dist/projection/experimental/entries/projections/sinu.cjs.map +6 -0
  557. package/dist/projection/experimental/entries/projections/sinu.d.ts +2 -0
  558. package/dist/projection/experimental/entries/projections/sinu.d.ts.map +1 -0
  559. package/dist/projection/experimental/entries/projections/sinu.js +5 -0
  560. package/dist/projection/experimental/entries/projections/sinu.js.map +1 -0
  561. package/dist/projection/experimental/entries/projections/somerc.cjs +582 -0
  562. package/dist/projection/experimental/entries/projections/somerc.cjs.map +6 -0
  563. package/dist/projection/experimental/entries/projections/somerc.d.ts +2 -0
  564. package/dist/projection/experimental/entries/projections/somerc.d.ts.map +1 -0
  565. package/dist/projection/experimental/entries/projections/somerc.js +5 -0
  566. package/dist/projection/experimental/entries/projections/somerc.js.map +1 -0
  567. package/dist/projection/experimental/entries/projections/stere.cjs +684 -0
  568. package/dist/projection/experimental/entries/projections/stere.cjs.map +6 -0
  569. package/dist/projection/experimental/entries/projections/stere.d.ts +2 -0
  570. package/dist/projection/experimental/entries/projections/stere.d.ts.map +1 -0
  571. package/dist/projection/experimental/entries/projections/stere.js +5 -0
  572. package/dist/projection/experimental/entries/projections/stere.js.map +1 -0
  573. package/dist/projection/experimental/entries/projections/sterea.cjs +623 -0
  574. package/dist/projection/experimental/entries/projections/sterea.cjs.map +6 -0
  575. package/dist/projection/experimental/entries/projections/sterea.d.ts +2 -0
  576. package/dist/projection/experimental/entries/projections/sterea.d.ts.map +1 -0
  577. package/dist/projection/experimental/entries/projections/sterea.js +5 -0
  578. package/dist/projection/experimental/entries/projections/sterea.js.map +1 -0
  579. package/dist/projection/experimental/entries/projections/tmerc.cjs +887 -0
  580. package/dist/projection/experimental/entries/projections/tmerc.cjs.map +6 -0
  581. package/dist/projection/experimental/entries/projections/tmerc.d.ts +2 -0
  582. package/dist/projection/experimental/entries/projections/tmerc.d.ts.map +1 -0
  583. package/dist/projection/experimental/entries/projections/tmerc.js +5 -0
  584. package/dist/projection/experimental/entries/projections/tmerc.js.map +1 -0
  585. package/dist/projection/experimental/entries/projections/tpers.cjs +645 -0
  586. package/dist/projection/experimental/entries/projections/tpers.cjs.map +6 -0
  587. package/dist/projection/experimental/entries/projections/tpers.d.ts +2 -0
  588. package/dist/projection/experimental/entries/projections/tpers.d.ts.map +1 -0
  589. package/dist/projection/experimental/entries/projections/tpers.js +5 -0
  590. package/dist/projection/experimental/entries/projections/tpers.js.map +1 -0
  591. package/dist/projection/experimental/entries/projections/utm.cjs +915 -0
  592. package/dist/projection/experimental/entries/projections/utm.cjs.map +6 -0
  593. package/dist/projection/experimental/entries/projections/utm.d.ts +2 -0
  594. package/dist/projection/experimental/entries/projections/utm.d.ts.map +1 -0
  595. package/dist/projection/experimental/entries/projections/utm.js +5 -0
  596. package/dist/projection/experimental/entries/projections/utm.js.map +1 -0
  597. package/dist/projection/experimental/entries/projections/vandg.cjs +560 -0
  598. package/dist/projection/experimental/entries/projections/vandg.cjs.map +6 -0
  599. package/dist/projection/experimental/entries/projections/vandg.d.ts +2 -0
  600. package/dist/projection/experimental/entries/projections/vandg.d.ts.map +1 -0
  601. package/dist/projection/experimental/entries/projections/vandg.js +5 -0
  602. package/dist/projection/experimental/entries/projections/vandg.js.map +1 -0
  603. package/dist/projection/experimental/exact-helmert.d.ts +9 -0
  604. package/dist/projection/experimental/exact-helmert.d.ts.map +1 -0
  605. package/dist/projection/experimental/exact-helmert.js +32 -0
  606. package/dist/projection/experimental/exact-helmert.js.map +1 -0
  607. package/dist/projection/experimental/flat-projection.d.ts +15 -0
  608. package/dist/projection/experimental/flat-projection.d.ts.map +1 -0
  609. package/dist/projection/experimental/flat-projection.js +70 -0
  610. package/dist/projection/experimental/flat-projection.js.map +1 -0
  611. package/dist/projection/experimental/grids/geotiff.cjs +180 -0
  612. package/dist/projection/experimental/grids/geotiff.cjs.map +6 -0
  613. package/dist/projection/experimental/grids/geotiff.d.ts +23 -0
  614. package/dist/projection/experimental/grids/geotiff.d.ts.map +1 -0
  615. package/dist/projection/experimental/grids/geotiff.js +59 -0
  616. package/dist/projection/experimental/grids/geotiff.js.map +1 -0
  617. package/dist/projection/experimental/grids/grid.d.ts +4 -0
  618. package/dist/projection/experimental/grids/grid.d.ts.map +1 -0
  619. package/dist/projection/experimental/grids/grid.js +111 -0
  620. package/dist/projection/experimental/grids/grid.js.map +1 -0
  621. package/dist/projection/experimental/grids/gtx.cjs +91 -0
  622. package/dist/projection/experimental/grids/gtx.cjs.map +6 -0
  623. package/dist/projection/experimental/grids/gtx.d.ts +7 -0
  624. package/dist/projection/experimental/grids/gtx.d.ts.map +1 -0
  625. package/dist/projection/experimental/grids/gtx.js +30 -0
  626. package/dist/projection/experimental/grids/gtx.js.map +1 -0
  627. package/dist/projection/experimental/grids/ntv2.cjs +181 -0
  628. package/dist/projection/experimental/grids/ntv2.cjs.map +6 -0
  629. package/dist/projection/experimental/grids/ntv2.d.ts +8 -0
  630. package/dist/projection/experimental/grids/ntv2.d.ts.map +1 -0
  631. package/dist/projection/experimental/grids/ntv2.js +56 -0
  632. package/dist/projection/experimental/grids/ntv2.js.map +1 -0
  633. package/dist/projection/experimental/grids/scalar-geotiff.d.ts +58 -0
  634. package/dist/projection/experimental/grids/scalar-geotiff.d.ts.map +1 -0
  635. package/dist/projection/experimental/grids/scalar-geotiff.js +147 -0
  636. package/dist/projection/experimental/grids/scalar-geotiff.js.map +1 -0
  637. package/dist/projection/experimental/grids/types.d.ts +35 -0
  638. package/dist/projection/experimental/grids/types.d.ts.map +1 -0
  639. package/dist/projection/experimental/grids/types.js +2 -0
  640. package/dist/projection/experimental/grids/types.js.map +1 -0
  641. package/dist/projection/experimental/grids/velocity-geotiff.cjs +247 -0
  642. package/dist/projection/experimental/grids/velocity-geotiff.cjs.map +6 -0
  643. package/dist/projection/experimental/grids/velocity-geotiff.d.ts +11 -0
  644. package/dist/projection/experimental/grids/velocity-geotiff.d.ts.map +1 -0
  645. package/dist/projection/experimental/grids/velocity-geotiff.js +61 -0
  646. package/dist/projection/experimental/grids/velocity-geotiff.js.map +1 -0
  647. package/dist/projection/experimental/grids/velocity.d.ts +21 -0
  648. package/dist/projection/experimental/grids/velocity.d.ts.map +1 -0
  649. package/dist/projection/experimental/grids/velocity.js +29 -0
  650. package/dist/projection/experimental/grids/velocity.js.map +1 -0
  651. package/dist/projection/experimental/grids/vertical-geotiff.cjs +195 -0
  652. package/dist/projection/experimental/grids/vertical-geotiff.cjs.map +6 -0
  653. package/dist/projection/experimental/grids/vertical-geotiff.d.ts +6 -0
  654. package/dist/projection/experimental/grids/vertical-geotiff.d.ts.map +1 -0
  655. package/dist/projection/experimental/grids/vertical-geotiff.js +20 -0
  656. package/dist/projection/experimental/grids/vertical-geotiff.js.map +1 -0
  657. package/dist/projection/experimental/grids/vertical.cjs +80 -0
  658. package/dist/projection/experimental/grids/vertical.cjs.map +6 -0
  659. package/dist/projection/experimental/grids/vertical.d.ts +22 -0
  660. package/dist/projection/experimental/grids/vertical.d.ts.map +1 -0
  661. package/dist/projection/experimental/grids/vertical.js +73 -0
  662. package/dist/projection/experimental/grids/vertical.js.map +1 -0
  663. package/dist/projection/experimental/helmert-flat.d.ts +4 -0
  664. package/dist/projection/experimental/helmert-flat.d.ts.map +1 -0
  665. package/dist/projection/experimental/helmert-flat.js +53 -0
  666. package/dist/projection/experimental/helmert-flat.js.map +1 -0
  667. package/dist/projection/experimental/index.cjs +10047 -0
  668. package/dist/projection/experimental/index.cjs.map +6 -0
  669. package/dist/projection/experimental/index.d.ts +49 -0
  670. package/dist/projection/experimental/index.d.ts.map +1 -0
  671. package/dist/projection/experimental/index.js +48 -0
  672. package/dist/projection/experimental/index.js.map +1 -0
  673. package/dist/projection/experimental/kernel.d.ts +37 -0
  674. package/dist/projection/experimental/kernel.d.ts.map +1 -0
  675. package/dist/projection/experimental/kernel.js +81 -0
  676. package/dist/projection/experimental/kernel.js.map +1 -0
  677. package/dist/projection/experimental/kernels/aea.d.ts +25 -0
  678. package/dist/projection/experimental/kernels/aea.d.ts.map +1 -0
  679. package/dist/projection/experimental/kernels/aea.js +136 -0
  680. package/dist/projection/experimental/kernels/aea.js.map +1 -0
  681. package/dist/projection/experimental/kernels/aeqd.d.ts +10 -0
  682. package/dist/projection/experimental/kernels/aeqd.d.ts.map +1 -0
  683. package/dist/projection/experimental/kernels/aeqd.js +168 -0
  684. package/dist/projection/experimental/kernels/aeqd.js.map +1 -0
  685. package/dist/projection/experimental/kernels/bonne.d.ts +12 -0
  686. package/dist/projection/experimental/kernels/bonne.d.ts.map +1 -0
  687. package/dist/projection/experimental/kernels/bonne.js +128 -0
  688. package/dist/projection/experimental/kernels/bonne.js.map +1 -0
  689. package/dist/projection/experimental/kernels/cass.d.ts +10 -0
  690. package/dist/projection/experimental/kernels/cass.d.ts.map +1 -0
  691. package/dist/projection/experimental/kernels/cass.js +122 -0
  692. package/dist/projection/experimental/kernels/cass.js.map +1 -0
  693. package/dist/projection/experimental/kernels/cea.d.ts +6 -0
  694. package/dist/projection/experimental/kernels/cea.d.ts.map +1 -0
  695. package/dist/projection/experimental/kernels/cea.js +63 -0
  696. package/dist/projection/experimental/kernels/cea.js.map +1 -0
  697. package/dist/projection/experimental/kernels/eck6.d.ts +13 -0
  698. package/dist/projection/experimental/kernels/eck6.d.ts.map +1 -0
  699. package/dist/projection/experimental/kernels/eck6.js +23 -0
  700. package/dist/projection/experimental/kernels/eck6.js.map +1 -0
  701. package/dist/projection/experimental/kernels/eqdc.d.ts +19 -0
  702. package/dist/projection/experimental/kernels/eqdc.d.ts.map +1 -0
  703. package/dist/projection/experimental/kernels/eqdc.js +117 -0
  704. package/dist/projection/experimental/kernels/eqdc.js.map +1 -0
  705. package/dist/projection/experimental/kernels/eqearth.d.ts +10 -0
  706. package/dist/projection/experimental/kernels/eqearth.d.ts.map +1 -0
  707. package/dist/projection/experimental/kernels/eqearth.js +103 -0
  708. package/dist/projection/experimental/kernels/eqearth.js.map +1 -0
  709. package/dist/projection/experimental/kernels/equi.d.ts +9 -0
  710. package/dist/projection/experimental/kernels/equi.d.ts.map +1 -0
  711. package/dist/projection/experimental/kernels/equi.js +41 -0
  712. package/dist/projection/experimental/kernels/equi.js.map +1 -0
  713. package/dist/projection/experimental/kernels/etmerc.d.ts +13 -0
  714. package/dist/projection/experimental/kernels/etmerc.d.ts.map +1 -0
  715. package/dist/projection/experimental/kernels/etmerc.js +145 -0
  716. package/dist/projection/experimental/kernels/etmerc.js.map +1 -0
  717. package/dist/projection/experimental/kernels/gauss.d.ts +12 -0
  718. package/dist/projection/experimental/kernels/gauss.d.ts.map +1 -0
  719. package/dist/projection/experimental/kernels/gauss.js +64 -0
  720. package/dist/projection/experimental/kernels/gauss.js.map +1 -0
  721. package/dist/projection/experimental/kernels/geos.d.ts +17 -0
  722. package/dist/projection/experimental/kernels/geos.d.ts.map +1 -0
  723. package/dist/projection/experimental/kernels/geos.js +153 -0
  724. package/dist/projection/experimental/kernels/geos.js.map +1 -0
  725. package/dist/projection/experimental/kernels/gnom.d.ts +12 -0
  726. package/dist/projection/experimental/kernels/gnom.d.ts.map +1 -0
  727. package/dist/projection/experimental/kernels/gnom.js +95 -0
  728. package/dist/projection/experimental/kernels/gnom.js.map +1 -0
  729. package/dist/projection/experimental/kernels/gstmerc.d.ts +13 -0
  730. package/dist/projection/experimental/kernels/gstmerc.d.ts.map +1 -0
  731. package/dist/projection/experimental/kernels/gstmerc.js +57 -0
  732. package/dist/projection/experimental/kernels/gstmerc.js.map +1 -0
  733. package/dist/projection/experimental/kernels/krovak.d.ts +23 -0
  734. package/dist/projection/experimental/kernels/krovak.d.ts.map +1 -0
  735. package/dist/projection/experimental/kernels/krovak.js +128 -0
  736. package/dist/projection/experimental/kernels/krovak.js.map +1 -0
  737. package/dist/projection/experimental/kernels/laea.d.ts +23 -0
  738. package/dist/projection/experimental/kernels/laea.d.ts.map +1 -0
  739. package/dist/projection/experimental/kernels/laea.js +278 -0
  740. package/dist/projection/experimental/kernels/laea.js.map +1 -0
  741. package/dist/projection/experimental/kernels/lcc.d.ts +10 -0
  742. package/dist/projection/experimental/kernels/lcc.d.ts.map +1 -0
  743. package/dist/projection/experimental/kernels/lcc.js +131 -0
  744. package/dist/projection/experimental/kernels/lcc.js.map +1 -0
  745. package/dist/projection/experimental/kernels/mill.d.ts +6 -0
  746. package/dist/projection/experimental/kernels/mill.d.ts.map +1 -0
  747. package/dist/projection/experimental/kernels/mill.js +49 -0
  748. package/dist/projection/experimental/kernels/mill.js.map +1 -0
  749. package/dist/projection/experimental/kernels/moll.d.ts +6 -0
  750. package/dist/projection/experimental/kernels/moll.d.ts.map +1 -0
  751. package/dist/projection/experimental/kernels/moll.js +89 -0
  752. package/dist/projection/experimental/kernels/moll.js.map +1 -0
  753. package/dist/projection/experimental/kernels/nzmg.d.ts +28 -0
  754. package/dist/projection/experimental/kernels/nzmg.d.ts.map +1 -0
  755. package/dist/projection/experimental/kernels/nzmg.js +209 -0
  756. package/dist/projection/experimental/kernels/nzmg.js.map +1 -0
  757. package/dist/projection/experimental/kernels/omerc.d.ts +30 -0
  758. package/dist/projection/experimental/kernels/omerc.d.ts.map +1 -0
  759. package/dist/projection/experimental/kernels/omerc.js +260 -0
  760. package/dist/projection/experimental/kernels/omerc.js.map +1 -0
  761. package/dist/projection/experimental/kernels/ortho.d.ts +9 -0
  762. package/dist/projection/experimental/kernels/ortho.d.ts.map +1 -0
  763. package/dist/projection/experimental/kernels/ortho.js +91 -0
  764. package/dist/projection/experimental/kernels/ortho.js.map +1 -0
  765. package/dist/projection/experimental/kernels/poly.d.ts +13 -0
  766. package/dist/projection/experimental/kernels/poly.d.ts.map +1 -0
  767. package/dist/projection/experimental/kernels/poly.js +141 -0
  768. package/dist/projection/experimental/kernels/poly.js.map +1 -0
  769. package/dist/projection/experimental/kernels/qsc.d.ts +10 -0
  770. package/dist/projection/experimental/kernels/qsc.d.ts.map +1 -0
  771. package/dist/projection/experimental/kernels/qsc.js +379 -0
  772. package/dist/projection/experimental/kernels/qsc.js.map +1 -0
  773. package/dist/projection/experimental/kernels/robin.d.ts +6 -0
  774. package/dist/projection/experimental/kernels/robin.d.ts.map +1 -0
  775. package/dist/projection/experimental/kernels/robin.js +166 -0
  776. package/dist/projection/experimental/kernels/robin.js.map +1 -0
  777. package/dist/projection/experimental/kernels/sinu.d.ts +12 -0
  778. package/dist/projection/experimental/kernels/sinu.d.ts.map +1 -0
  779. package/dist/projection/experimental/kernels/sinu.js +104 -0
  780. package/dist/projection/experimental/kernels/sinu.js.map +1 -0
  781. package/dist/projection/experimental/kernels/somerc.d.ts +13 -0
  782. package/dist/projection/experimental/kernels/somerc.d.ts.map +1 -0
  783. package/dist/projection/experimental/kernels/somerc.js +81 -0
  784. package/dist/projection/experimental/kernels/somerc.js.map +1 -0
  785. package/dist/projection/experimental/kernels/stere.d.ts +15 -0
  786. package/dist/projection/experimental/kernels/stere.d.ts.map +1 -0
  787. package/dist/projection/experimental/kernels/stere.js +195 -0
  788. package/dist/projection/experimental/kernels/stere.js.map +1 -0
  789. package/dist/projection/experimental/kernels/sterea.d.ts +11 -0
  790. package/dist/projection/experimental/kernels/sterea.d.ts.map +1 -0
  791. package/dist/projection/experimental/kernels/sterea.js +65 -0
  792. package/dist/projection/experimental/kernels/sterea.js.map +1 -0
  793. package/dist/projection/experimental/kernels/tmerc.d.ts +9 -0
  794. package/dist/projection/experimental/kernels/tmerc.d.ts.map +1 -0
  795. package/dist/projection/experimental/kernels/tmerc.js +201 -0
  796. package/dist/projection/experimental/kernels/tmerc.js.map +1 -0
  797. package/dist/projection/experimental/kernels/tpers.d.ts +22 -0
  798. package/dist/projection/experimental/kernels/tpers.d.ts.map +1 -0
  799. package/dist/projection/experimental/kernels/tpers.js +156 -0
  800. package/dist/projection/experimental/kernels/tpers.js.map +1 -0
  801. package/dist/projection/experimental/kernels/vandg.d.ts +8 -0
  802. package/dist/projection/experimental/kernels/vandg.d.ts.map +1 -0
  803. package/dist/projection/experimental/kernels/vandg.js +133 -0
  804. package/dist/projection/experimental/kernels/vandg.js.map +1 -0
  805. package/dist/projection/experimental/kinematic-helmert-flat.d.ts +4 -0
  806. package/dist/projection/experimental/kinematic-helmert-flat.d.ts.map +1 -0
  807. package/dist/projection/experimental/kinematic-helmert-flat.js +60 -0
  808. package/dist/projection/experimental/kinematic-helmert-flat.js.map +1 -0
  809. package/dist/projection/experimental/kinematic-helmert.d.ts +11 -0
  810. package/dist/projection/experimental/kinematic-helmert.d.ts.map +1 -0
  811. package/dist/projection/experimental/kinematic-helmert.js +103 -0
  812. package/dist/projection/experimental/kinematic-helmert.js.map +1 -0
  813. package/dist/projection/experimental/lazy-projection.d.ts +17 -0
  814. package/dist/projection/experimental/lazy-projection.d.ts.map +1 -0
  815. package/dist/projection/experimental/lazy-projection.js +156 -0
  816. package/dist/projection/experimental/lazy-projection.js.map +1 -0
  817. package/dist/projection/experimental/lazy-projections/aea.cjs +79 -0
  818. package/dist/projection/experimental/lazy-projections/aea.cjs.map +6 -0
  819. package/dist/projection/experimental/lazy-projections/aea.d.ts +3 -0
  820. package/dist/projection/experimental/lazy-projections/aea.d.ts.map +1 -0
  821. package/dist/projection/experimental/lazy-projections/aea.js +7 -0
  822. package/dist/projection/experimental/lazy-projections/aea.js.map +1 -0
  823. package/dist/projection/experimental/lazy-projections/aeqd.cjs +79 -0
  824. package/dist/projection/experimental/lazy-projections/aeqd.cjs.map +6 -0
  825. package/dist/projection/experimental/lazy-projections/aeqd.d.ts +3 -0
  826. package/dist/projection/experimental/lazy-projections/aeqd.d.ts.map +1 -0
  827. package/dist/projection/experimental/lazy-projections/aeqd.js +8 -0
  828. package/dist/projection/experimental/lazy-projections/aeqd.js.map +1 -0
  829. package/dist/projection/experimental/lazy-projections/bonne.cjs +79 -0
  830. package/dist/projection/experimental/lazy-projections/bonne.cjs.map +6 -0
  831. package/dist/projection/experimental/lazy-projections/bonne.d.ts +3 -0
  832. package/dist/projection/experimental/lazy-projections/bonne.d.ts.map +1 -0
  833. package/dist/projection/experimental/lazy-projections/bonne.js +7 -0
  834. package/dist/projection/experimental/lazy-projections/bonne.js.map +1 -0
  835. package/dist/projection/experimental/lazy-projections/cass.cjs +79 -0
  836. package/dist/projection/experimental/lazy-projections/cass.cjs.map +6 -0
  837. package/dist/projection/experimental/lazy-projections/cass.d.ts +3 -0
  838. package/dist/projection/experimental/lazy-projections/cass.d.ts.map +1 -0
  839. package/dist/projection/experimental/lazy-projections/cass.js +7 -0
  840. package/dist/projection/experimental/lazy-projections/cass.js.map +1 -0
  841. package/dist/projection/experimental/lazy-projections/cea.cjs +79 -0
  842. package/dist/projection/experimental/lazy-projections/cea.cjs.map +6 -0
  843. package/dist/projection/experimental/lazy-projections/cea.d.ts +3 -0
  844. package/dist/projection/experimental/lazy-projections/cea.d.ts.map +1 -0
  845. package/dist/projection/experimental/lazy-projections/cea.js +8 -0
  846. package/dist/projection/experimental/lazy-projections/cea.js.map +1 -0
  847. package/dist/projection/experimental/lazy-projections/eck6.cjs +79 -0
  848. package/dist/projection/experimental/lazy-projections/eck6.cjs.map +6 -0
  849. package/dist/projection/experimental/lazy-projections/eck6.d.ts +3 -0
  850. package/dist/projection/experimental/lazy-projections/eck6.d.ts.map +1 -0
  851. package/dist/projection/experimental/lazy-projections/eck6.js +7 -0
  852. package/dist/projection/experimental/lazy-projections/eck6.js.map +1 -0
  853. package/dist/projection/experimental/lazy-projections/eqc.cjs +82 -0
  854. package/dist/projection/experimental/lazy-projections/eqc.cjs.map +6 -0
  855. package/dist/projection/experimental/lazy-projections/eqc.d.ts +3 -0
  856. package/dist/projection/experimental/lazy-projections/eqc.d.ts.map +1 -0
  857. package/dist/projection/experimental/lazy-projections/eqc.js +11 -0
  858. package/dist/projection/experimental/lazy-projections/eqc.js.map +1 -0
  859. package/dist/projection/experimental/lazy-projections/eqdc.cjs +79 -0
  860. package/dist/projection/experimental/lazy-projections/eqdc.cjs.map +6 -0
  861. package/dist/projection/experimental/lazy-projections/eqdc.d.ts +3 -0
  862. package/dist/projection/experimental/lazy-projections/eqdc.d.ts.map +1 -0
  863. package/dist/projection/experimental/lazy-projections/eqdc.js +8 -0
  864. package/dist/projection/experimental/lazy-projections/eqdc.js.map +1 -0
  865. package/dist/projection/experimental/lazy-projections/eqearth.cjs +79 -0
  866. package/dist/projection/experimental/lazy-projections/eqearth.cjs.map +6 -0
  867. package/dist/projection/experimental/lazy-projections/eqearth.d.ts +3 -0
  868. package/dist/projection/experimental/lazy-projections/eqearth.d.ts.map +1 -0
  869. package/dist/projection/experimental/lazy-projections/eqearth.js +7 -0
  870. package/dist/projection/experimental/lazy-projections/eqearth.js.map +1 -0
  871. package/dist/projection/experimental/lazy-projections/equi.cjs +79 -0
  872. package/dist/projection/experimental/lazy-projections/equi.cjs.map +6 -0
  873. package/dist/projection/experimental/lazy-projections/equi.d.ts +3 -0
  874. package/dist/projection/experimental/lazy-projections/equi.d.ts.map +1 -0
  875. package/dist/projection/experimental/lazy-projections/equi.js +7 -0
  876. package/dist/projection/experimental/lazy-projections/equi.js.map +1 -0
  877. package/dist/projection/experimental/lazy-projections/etmerc.cjs +79 -0
  878. package/dist/projection/experimental/lazy-projections/etmerc.cjs.map +6 -0
  879. package/dist/projection/experimental/lazy-projections/etmerc.d.ts +3 -0
  880. package/dist/projection/experimental/lazy-projections/etmerc.d.ts.map +1 -0
  881. package/dist/projection/experimental/lazy-projections/etmerc.js +8 -0
  882. package/dist/projection/experimental/lazy-projections/etmerc.js.map +1 -0
  883. package/dist/projection/experimental/lazy-projections/geocent.cjs +79 -0
  884. package/dist/projection/experimental/lazy-projections/geocent.cjs.map +6 -0
  885. package/dist/projection/experimental/lazy-projections/geocent.d.ts +3 -0
  886. package/dist/projection/experimental/lazy-projections/geocent.d.ts.map +1 -0
  887. package/dist/projection/experimental/lazy-projections/geocent.js +7 -0
  888. package/dist/projection/experimental/lazy-projections/geocent.js.map +1 -0
  889. package/dist/projection/experimental/lazy-projections/geos.cjs +79 -0
  890. package/dist/projection/experimental/lazy-projections/geos.cjs.map +6 -0
  891. package/dist/projection/experimental/lazy-projections/geos.d.ts +3 -0
  892. package/dist/projection/experimental/lazy-projections/geos.d.ts.map +1 -0
  893. package/dist/projection/experimental/lazy-projections/geos.js +7 -0
  894. package/dist/projection/experimental/lazy-projections/geos.js.map +1 -0
  895. package/dist/projection/experimental/lazy-projections/gnom.cjs +79 -0
  896. package/dist/projection/experimental/lazy-projections/gnom.cjs.map +6 -0
  897. package/dist/projection/experimental/lazy-projections/gnom.d.ts +3 -0
  898. package/dist/projection/experimental/lazy-projections/gnom.d.ts.map +1 -0
  899. package/dist/projection/experimental/lazy-projections/gnom.js +7 -0
  900. package/dist/projection/experimental/lazy-projections/gnom.js.map +1 -0
  901. package/dist/projection/experimental/lazy-projections/gstmerc.cjs +79 -0
  902. package/dist/projection/experimental/lazy-projections/gstmerc.cjs.map +6 -0
  903. package/dist/projection/experimental/lazy-projections/gstmerc.d.ts +3 -0
  904. package/dist/projection/experimental/lazy-projections/gstmerc.d.ts.map +1 -0
  905. package/dist/projection/experimental/lazy-projections/gstmerc.js +9 -0
  906. package/dist/projection/experimental/lazy-projections/gstmerc.js.map +1 -0
  907. package/dist/projection/experimental/lazy-projections/index.cjs +2243 -0
  908. package/dist/projection/experimental/lazy-projections/index.cjs.map +6 -0
  909. package/dist/projection/experimental/lazy-projections/index.d.ts +38 -0
  910. package/dist/projection/experimental/lazy-projections/index.d.ts.map +1 -0
  911. package/dist/projection/experimental/lazy-projections/index.js +41 -0
  912. package/dist/projection/experimental/lazy-projections/index.js.map +1 -0
  913. package/dist/projection/experimental/lazy-projections/krovak.cjs +87 -0
  914. package/dist/projection/experimental/lazy-projections/krovak.cjs.map +6 -0
  915. package/dist/projection/experimental/lazy-projections/krovak.d.ts +3 -0
  916. package/dist/projection/experimental/lazy-projections/krovak.d.ts.map +1 -0
  917. package/dist/projection/experimental/lazy-projections/krovak.js +15 -0
  918. package/dist/projection/experimental/lazy-projections/krovak.js.map +1 -0
  919. package/dist/projection/experimental/lazy-projections/laea.cjs +79 -0
  920. package/dist/projection/experimental/lazy-projections/laea.cjs.map +6 -0
  921. package/dist/projection/experimental/lazy-projections/laea.d.ts +3 -0
  922. package/dist/projection/experimental/lazy-projections/laea.d.ts.map +1 -0
  923. package/dist/projection/experimental/lazy-projections/laea.js +8 -0
  924. package/dist/projection/experimental/lazy-projections/laea.js.map +1 -0
  925. package/dist/projection/experimental/lazy-projections/lcc.cjs +89 -0
  926. package/dist/projection/experimental/lazy-projections/lcc.cjs.map +6 -0
  927. package/dist/projection/experimental/lazy-projections/lcc.d.ts +3 -0
  928. package/dist/projection/experimental/lazy-projections/lcc.d.ts.map +1 -0
  929. package/dist/projection/experimental/lazy-projections/lcc.js +18 -0
  930. package/dist/projection/experimental/lazy-projections/lcc.js.map +1 -0
  931. package/dist/projection/experimental/lazy-projections/merc.cjs +88 -0
  932. package/dist/projection/experimental/lazy-projections/merc.cjs.map +6 -0
  933. package/dist/projection/experimental/lazy-projections/merc.d.ts +3 -0
  934. package/dist/projection/experimental/lazy-projections/merc.d.ts.map +1 -0
  935. package/dist/projection/experimental/lazy-projections/merc.js +16 -0
  936. package/dist/projection/experimental/lazy-projections/merc.js.map +1 -0
  937. package/dist/projection/experimental/lazy-projections/mill.cjs +79 -0
  938. package/dist/projection/experimental/lazy-projections/mill.cjs.map +6 -0
  939. package/dist/projection/experimental/lazy-projections/mill.d.ts +3 -0
  940. package/dist/projection/experimental/lazy-projections/mill.d.ts.map +1 -0
  941. package/dist/projection/experimental/lazy-projections/mill.js +8 -0
  942. package/dist/projection/experimental/lazy-projections/mill.js.map +1 -0
  943. package/dist/projection/experimental/lazy-projections/moll.cjs +79 -0
  944. package/dist/projection/experimental/lazy-projections/moll.cjs.map +6 -0
  945. package/dist/projection/experimental/lazy-projections/moll.d.ts +3 -0
  946. package/dist/projection/experimental/lazy-projections/moll.d.ts.map +1 -0
  947. package/dist/projection/experimental/lazy-projections/moll.js +7 -0
  948. package/dist/projection/experimental/lazy-projections/moll.js.map +1 -0
  949. package/dist/projection/experimental/lazy-projections/nzmg.cjs +79 -0
  950. package/dist/projection/experimental/lazy-projections/nzmg.cjs.map +6 -0
  951. package/dist/projection/experimental/lazy-projections/nzmg.d.ts +3 -0
  952. package/dist/projection/experimental/lazy-projections/nzmg.d.ts.map +1 -0
  953. package/dist/projection/experimental/lazy-projections/nzmg.js +8 -0
  954. package/dist/projection/experimental/lazy-projections/nzmg.js.map +1 -0
  955. package/dist/projection/experimental/lazy-projections/ob_tran.cjs +90 -0
  956. package/dist/projection/experimental/lazy-projections/ob_tran.cjs.map +6 -0
  957. package/dist/projection/experimental/lazy-projections/ob_tran.d.ts +5 -0
  958. package/dist/projection/experimental/lazy-projections/ob_tran.d.ts.map +1 -0
  959. package/dist/projection/experimental/lazy-projections/ob_tran.js +18 -0
  960. package/dist/projection/experimental/lazy-projections/ob_tran.js.map +1 -0
  961. package/dist/projection/experimental/lazy-projections/omerc.cjs +91 -0
  962. package/dist/projection/experimental/lazy-projections/omerc.cjs.map +6 -0
  963. package/dist/projection/experimental/lazy-projections/omerc.d.ts +3 -0
  964. package/dist/projection/experimental/lazy-projections/omerc.d.ts.map +1 -0
  965. package/dist/projection/experimental/lazy-projections/omerc.js +19 -0
  966. package/dist/projection/experimental/lazy-projections/omerc.js.map +1 -0
  967. package/dist/projection/experimental/lazy-projections/ortho.cjs +79 -0
  968. package/dist/projection/experimental/lazy-projections/ortho.cjs.map +6 -0
  969. package/dist/projection/experimental/lazy-projections/ortho.d.ts +3 -0
  970. package/dist/projection/experimental/lazy-projections/ortho.d.ts.map +1 -0
  971. package/dist/projection/experimental/lazy-projections/ortho.js +7 -0
  972. package/dist/projection/experimental/lazy-projections/ortho.js.map +1 -0
  973. package/dist/projection/experimental/lazy-projections/poly.cjs +79 -0
  974. package/dist/projection/experimental/lazy-projections/poly.cjs.map +6 -0
  975. package/dist/projection/experimental/lazy-projections/poly.d.ts +3 -0
  976. package/dist/projection/experimental/lazy-projections/poly.d.ts.map +1 -0
  977. package/dist/projection/experimental/lazy-projections/poly.js +7 -0
  978. package/dist/projection/experimental/lazy-projections/poly.js.map +1 -0
  979. package/dist/projection/experimental/lazy-projections/qsc.cjs +82 -0
  980. package/dist/projection/experimental/lazy-projections/qsc.cjs.map +6 -0
  981. package/dist/projection/experimental/lazy-projections/qsc.d.ts +3 -0
  982. package/dist/projection/experimental/lazy-projections/qsc.d.ts.map +1 -0
  983. package/dist/projection/experimental/lazy-projections/qsc.js +12 -0
  984. package/dist/projection/experimental/lazy-projections/qsc.js.map +1 -0
  985. package/dist/projection/experimental/lazy-projections/robin.cjs +79 -0
  986. package/dist/projection/experimental/lazy-projections/robin.cjs.map +6 -0
  987. package/dist/projection/experimental/lazy-projections/robin.d.ts +3 -0
  988. package/dist/projection/experimental/lazy-projections/robin.d.ts.map +1 -0
  989. package/dist/projection/experimental/lazy-projections/robin.js +7 -0
  990. package/dist/projection/experimental/lazy-projections/robin.js.map +1 -0
  991. package/dist/projection/experimental/lazy-projections/sinu.cjs +79 -0
  992. package/dist/projection/experimental/lazy-projections/sinu.cjs.map +6 -0
  993. package/dist/projection/experimental/lazy-projections/sinu.d.ts +3 -0
  994. package/dist/projection/experimental/lazy-projections/sinu.d.ts.map +1 -0
  995. package/dist/projection/experimental/lazy-projections/sinu.js +7 -0
  996. package/dist/projection/experimental/lazy-projections/sinu.js.map +1 -0
  997. package/dist/projection/experimental/lazy-projections/somerc.cjs +79 -0
  998. package/dist/projection/experimental/lazy-projections/somerc.cjs.map +6 -0
  999. package/dist/projection/experimental/lazy-projections/somerc.d.ts +3 -0
  1000. package/dist/projection/experimental/lazy-projections/somerc.d.ts.map +1 -0
  1001. package/dist/projection/experimental/lazy-projections/somerc.js +8 -0
  1002. package/dist/projection/experimental/lazy-projections/somerc.js.map +1 -0
  1003. package/dist/projection/experimental/lazy-projections/stere.cjs +87 -0
  1004. package/dist/projection/experimental/lazy-projections/stere.cjs.map +6 -0
  1005. package/dist/projection/experimental/lazy-projections/stere.d.ts +3 -0
  1006. package/dist/projection/experimental/lazy-projections/stere.d.ts.map +1 -0
  1007. package/dist/projection/experimental/lazy-projections/stere.js +15 -0
  1008. package/dist/projection/experimental/lazy-projections/stere.js.map +1 -0
  1009. package/dist/projection/experimental/lazy-projections/sterea.cjs +87 -0
  1010. package/dist/projection/experimental/lazy-projections/sterea.cjs.map +6 -0
  1011. package/dist/projection/experimental/lazy-projections/sterea.d.ts +3 -0
  1012. package/dist/projection/experimental/lazy-projections/sterea.d.ts.map +1 -0
  1013. package/dist/projection/experimental/lazy-projections/sterea.js +16 -0
  1014. package/dist/projection/experimental/lazy-projections/sterea.js.map +1 -0
  1015. package/dist/projection/experimental/lazy-projections/tmerc.cjs +89 -0
  1016. package/dist/projection/experimental/lazy-projections/tmerc.cjs.map +6 -0
  1017. package/dist/projection/experimental/lazy-projections/tmerc.d.ts +3 -0
  1018. package/dist/projection/experimental/lazy-projections/tmerc.d.ts.map +1 -0
  1019. package/dist/projection/experimental/lazy-projections/tmerc.js +18 -0
  1020. package/dist/projection/experimental/lazy-projections/tmerc.js.map +1 -0
  1021. package/dist/projection/experimental/lazy-projections/tpers.cjs +79 -0
  1022. package/dist/projection/experimental/lazy-projections/tpers.cjs.map +6 -0
  1023. package/dist/projection/experimental/lazy-projections/tpers.d.ts +3 -0
  1024. package/dist/projection/experimental/lazy-projections/tpers.d.ts.map +1 -0
  1025. package/dist/projection/experimental/lazy-projections/tpers.js +8 -0
  1026. package/dist/projection/experimental/lazy-projections/tpers.js.map +1 -0
  1027. package/dist/projection/experimental/lazy-projections/utm.cjs +79 -0
  1028. package/dist/projection/experimental/lazy-projections/utm.cjs.map +6 -0
  1029. package/dist/projection/experimental/lazy-projections/utm.d.ts +3 -0
  1030. package/dist/projection/experimental/lazy-projections/utm.d.ts.map +1 -0
  1031. package/dist/projection/experimental/lazy-projections/utm.js +8 -0
  1032. package/dist/projection/experimental/lazy-projections/utm.js.map +1 -0
  1033. package/dist/projection/experimental/lazy-projections/vandg.cjs +79 -0
  1034. package/dist/projection/experimental/lazy-projections/vandg.cjs.map +6 -0
  1035. package/dist/projection/experimental/lazy-projections/vandg.d.ts +3 -0
  1036. package/dist/projection/experimental/lazy-projections/vandg.d.ts.map +1 -0
  1037. package/dist/projection/experimental/lazy-projections/vandg.js +7 -0
  1038. package/dist/projection/experimental/lazy-projections/vandg.js.map +1 -0
  1039. package/dist/projection/experimental/mutable-projection.d.ts +6 -0
  1040. package/dist/projection/experimental/mutable-projection.d.ts.map +1 -0
  1041. package/dist/projection/experimental/mutable-projection.js +53 -0
  1042. package/dist/projection/experimental/mutable-projection.js.map +1 -0
  1043. package/dist/projection/experimental/numeric-flat.d.ts +8 -0
  1044. package/dist/projection/experimental/numeric-flat.d.ts.map +1 -0
  1045. package/dist/projection/experimental/numeric-flat.js +54 -0
  1046. package/dist/projection/experimental/numeric-flat.js.map +1 -0
  1047. package/dist/projection/experimental/parameters.d.ts +8 -0
  1048. package/dist/projection/experimental/parameters.d.ts.map +1 -0
  1049. package/dist/projection/experimental/parameters.js +31 -0
  1050. package/dist/projection/experimental/parameters.js.map +1 -0
  1051. package/dist/projection/experimental/projection-descriptor.d.ts +13 -0
  1052. package/dist/projection/experimental/projection-descriptor.d.ts.map +1 -0
  1053. package/dist/projection/experimental/projection-descriptor.js +52 -0
  1054. package/dist/projection/experimental/projection-descriptor.js.map +1 -0
  1055. package/dist/projection/experimental/projection-engine.d.ts +27 -0
  1056. package/dist/projection/experimental/projection-engine.d.ts.map +1 -0
  1057. package/dist/projection/experimental/projection-engine.js +50 -0
  1058. package/dist/projection/experimental/projection-engine.js.map +1 -0
  1059. package/dist/projection/experimental/projection-pipeline.d.ts +142 -0
  1060. package/dist/projection/experimental/projection-pipeline.d.ts.map +1 -0
  1061. package/dist/projection/experimental/projection-pipeline.js +740 -0
  1062. package/dist/projection/experimental/projection-pipeline.js.map +1 -0
  1063. package/dist/projection/experimental/projection-scratch.d.ts +11 -0
  1064. package/dist/projection/experimental/projection-scratch.d.ts.map +1 -0
  1065. package/dist/projection/experimental/projection-scratch.js +25 -0
  1066. package/dist/projection/experimental/projection-scratch.js.map +1 -0
  1067. package/dist/projection/experimental/projections/aea.d.ts +3 -0
  1068. package/dist/projection/experimental/projections/aea.d.ts.map +1 -0
  1069. package/dist/projection/experimental/projections/aea.js +24 -0
  1070. package/dist/projection/experimental/projections/aea.js.map +1 -0
  1071. package/dist/projection/experimental/projections/aeqd.d.ts +3 -0
  1072. package/dist/projection/experimental/projections/aeqd.d.ts.map +1 -0
  1073. package/dist/projection/experimental/projections/aeqd.js +19 -0
  1074. package/dist/projection/experimental/projections/aeqd.js.map +1 -0
  1075. package/dist/projection/experimental/projections/bonne.d.ts +3 -0
  1076. package/dist/projection/experimental/projections/bonne.d.ts.map +1 -0
  1077. package/dist/projection/experimental/projections/bonne.js +25 -0
  1078. package/dist/projection/experimental/projections/bonne.js.map +1 -0
  1079. package/dist/projection/experimental/projections/cass.d.ts +3 -0
  1080. package/dist/projection/experimental/projections/cass.d.ts.map +1 -0
  1081. package/dist/projection/experimental/projections/cass.js +22 -0
  1082. package/dist/projection/experimental/projections/cass.js.map +1 -0
  1083. package/dist/projection/experimental/projections/cea.d.ts +3 -0
  1084. package/dist/projection/experimental/projections/cea.d.ts.map +1 -0
  1085. package/dist/projection/experimental/projections/cea.js +24 -0
  1086. package/dist/projection/experimental/projections/cea.js.map +1 -0
  1087. package/dist/projection/experimental/projections/eck6.d.ts +3 -0
  1088. package/dist/projection/experimental/projections/eck6.d.ts.map +1 -0
  1089. package/dist/projection/experimental/projections/eck6.js +22 -0
  1090. package/dist/projection/experimental/projections/eck6.js.map +1 -0
  1091. package/dist/projection/experimental/projections/eqdc.d.ts +3 -0
  1092. package/dist/projection/experimental/projections/eqdc.d.ts.map +1 -0
  1093. package/dist/projection/experimental/projections/eqdc.js +23 -0
  1094. package/dist/projection/experimental/projections/eqdc.js.map +1 -0
  1095. package/dist/projection/experimental/projections/eqearth.d.ts +3 -0
  1096. package/dist/projection/experimental/projections/eqearth.d.ts.map +1 -0
  1097. package/dist/projection/experimental/projections/eqearth.js +47 -0
  1098. package/dist/projection/experimental/projections/eqearth.js.map +1 -0
  1099. package/dist/projection/experimental/projections/equi.d.ts +3 -0
  1100. package/dist/projection/experimental/projections/equi.d.ts.map +1 -0
  1101. package/dist/projection/experimental/projections/equi.js +24 -0
  1102. package/dist/projection/experimental/projections/equi.js.map +1 -0
  1103. package/dist/projection/experimental/projections/equidistant-cylindrical.d.ts +4 -0
  1104. package/dist/projection/experimental/projections/equidistant-cylindrical.d.ts.map +1 -0
  1105. package/dist/projection/experimental/projections/equidistant-cylindrical.js +47 -0
  1106. package/dist/projection/experimental/projections/equidistant-cylindrical.js.map +1 -0
  1107. package/dist/projection/experimental/projections/geocentric.d.ts +3 -0
  1108. package/dist/projection/experimental/projections/geocentric.d.ts.map +1 -0
  1109. package/dist/projection/experimental/projections/geocentric.js +34 -0
  1110. package/dist/projection/experimental/projections/geocentric.js.map +1 -0
  1111. package/dist/projection/experimental/projections/geos.d.ts +3 -0
  1112. package/dist/projection/experimental/projections/geos.d.ts.map +1 -0
  1113. package/dist/projection/experimental/projections/geos.js +30 -0
  1114. package/dist/projection/experimental/projections/geos.js.map +1 -0
  1115. package/dist/projection/experimental/projections/gnom.d.ts +3 -0
  1116. package/dist/projection/experimental/projections/gnom.d.ts.map +1 -0
  1117. package/dist/projection/experimental/projections/gnom.js +20 -0
  1118. package/dist/projection/experimental/projections/gnom.js.map +1 -0
  1119. package/dist/projection/experimental/projections/gstmerc.d.ts +3 -0
  1120. package/dist/projection/experimental/projections/gstmerc.d.ts.map +1 -0
  1121. package/dist/projection/experimental/projections/gstmerc.js +23 -0
  1122. package/dist/projection/experimental/projections/gstmerc.js.map +1 -0
  1123. package/dist/projection/experimental/projections/krovak.d.ts +3 -0
  1124. package/dist/projection/experimental/projections/krovak.d.ts.map +1 -0
  1125. package/dist/projection/experimental/projections/krovak.js +41 -0
  1126. package/dist/projection/experimental/projections/krovak.js.map +1 -0
  1127. package/dist/projection/experimental/projections/laea.d.ts +3 -0
  1128. package/dist/projection/experimental/projections/laea.d.ts.map +1 -0
  1129. package/dist/projection/experimental/projections/laea.js +22 -0
  1130. package/dist/projection/experimental/projections/laea.js.map +1 -0
  1131. package/dist/projection/experimental/projections/lcc.d.ts +3 -0
  1132. package/dist/projection/experimental/projections/lcc.d.ts.map +1 -0
  1133. package/dist/projection/experimental/projections/lcc.js +39 -0
  1134. package/dist/projection/experimental/projections/lcc.js.map +1 -0
  1135. package/dist/projection/experimental/projections/mercator.d.ts +4 -0
  1136. package/dist/projection/experimental/projections/mercator.d.ts.map +1 -0
  1137. package/dist/projection/experimental/projections/mercator.js +106 -0
  1138. package/dist/projection/experimental/projections/mercator.js.map +1 -0
  1139. package/dist/projection/experimental/projections/mill.d.ts +3 -0
  1140. package/dist/projection/experimental/projections/mill.d.ts.map +1 -0
  1141. package/dist/projection/experimental/projections/mill.js +22 -0
  1142. package/dist/projection/experimental/projections/mill.js.map +1 -0
  1143. package/dist/projection/experimental/projections/moll.d.ts +3 -0
  1144. package/dist/projection/experimental/projections/moll.d.ts.map +1 -0
  1145. package/dist/projection/experimental/projections/moll.js +22 -0
  1146. package/dist/projection/experimental/projections/moll.js.map +1 -0
  1147. package/dist/projection/experimental/projections/nzmg.d.ts +3 -0
  1148. package/dist/projection/experimental/projections/nzmg.d.ts.map +1 -0
  1149. package/dist/projection/experimental/projections/nzmg.js +29 -0
  1150. package/dist/projection/experimental/projections/nzmg.js.map +1 -0
  1151. package/dist/projection/experimental/projections/ob-tran.d.ts +4 -0
  1152. package/dist/projection/experimental/projections/ob-tran.d.ts.map +1 -0
  1153. package/dist/projection/experimental/projections/ob-tran.js +194 -0
  1154. package/dist/projection/experimental/projections/ob-tran.js.map +1 -0
  1155. package/dist/projection/experimental/projections/omerc.d.ts +3 -0
  1156. package/dist/projection/experimental/projections/omerc.d.ts.map +1 -0
  1157. package/dist/projection/experimental/projections/omerc.js +69 -0
  1158. package/dist/projection/experimental/projections/omerc.js.map +1 -0
  1159. package/dist/projection/experimental/projections/ortho.d.ts +3 -0
  1160. package/dist/projection/experimental/projections/ortho.d.ts.map +1 -0
  1161. package/dist/projection/experimental/projections/ortho.js +20 -0
  1162. package/dist/projection/experimental/projections/ortho.js.map +1 -0
  1163. package/dist/projection/experimental/projections/poly.d.ts +3 -0
  1164. package/dist/projection/experimental/projections/poly.d.ts.map +1 -0
  1165. package/dist/projection/experimental/projections/poly.js +22 -0
  1166. package/dist/projection/experimental/projections/poly.js.map +1 -0
  1167. package/dist/projection/experimental/projections/qsc.d.ts +3 -0
  1168. package/dist/projection/experimental/projections/qsc.d.ts.map +1 -0
  1169. package/dist/projection/experimental/projections/qsc.js +64 -0
  1170. package/dist/projection/experimental/projections/qsc.js.map +1 -0
  1171. package/dist/projection/experimental/projections/robin.d.ts +3 -0
  1172. package/dist/projection/experimental/projections/robin.d.ts.map +1 -0
  1173. package/dist/projection/experimental/projections/robin.js +22 -0
  1174. package/dist/projection/experimental/projections/robin.js.map +1 -0
  1175. package/dist/projection/experimental/projections/sinu.d.ts +3 -0
  1176. package/dist/projection/experimental/projections/sinu.d.ts.map +1 -0
  1177. package/dist/projection/experimental/projections/sinu.js +22 -0
  1178. package/dist/projection/experimental/projections/sinu.js.map +1 -0
  1179. package/dist/projection/experimental/projections/somerc.d.ts +3 -0
  1180. package/dist/projection/experimental/projections/somerc.d.ts.map +1 -0
  1181. package/dist/projection/experimental/projections/somerc.js +22 -0
  1182. package/dist/projection/experimental/projections/somerc.js.map +1 -0
  1183. package/dist/projection/experimental/projections/stere.d.ts +3 -0
  1184. package/dist/projection/experimental/projections/stere.d.ts.map +1 -0
  1185. package/dist/projection/experimental/projections/stere.js +32 -0
  1186. package/dist/projection/experimental/projections/stere.js.map +1 -0
  1187. package/dist/projection/experimental/projections/sterea.d.ts +3 -0
  1188. package/dist/projection/experimental/projections/sterea.d.ts.map +1 -0
  1189. package/dist/projection/experimental/projections/sterea.js +32 -0
  1190. package/dist/projection/experimental/projections/sterea.js.map +1 -0
  1191. package/dist/projection/experimental/projections/tpers.d.ts +3 -0
  1192. package/dist/projection/experimental/projections/tpers.d.ts.map +1 -0
  1193. package/dist/projection/experimental/projections/tpers.js +31 -0
  1194. package/dist/projection/experimental/projections/tpers.js.map +1 -0
  1195. package/dist/projection/experimental/projections/transverse-mercator.d.ts +6 -0
  1196. package/dist/projection/experimental/projections/transverse-mercator.d.ts.map +1 -0
  1197. package/dist/projection/experimental/projections/transverse-mercator.js +48 -0
  1198. package/dist/projection/experimental/projections/transverse-mercator.js.map +1 -0
  1199. package/dist/projection/experimental/projections/utm.d.ts +3 -0
  1200. package/dist/projection/experimental/projections/utm.d.ts.map +1 -0
  1201. package/dist/projection/experimental/projections/utm.js +37 -0
  1202. package/dist/projection/experimental/projections/utm.js.map +1 -0
  1203. package/dist/projection/experimental/projections/vandg.d.ts +3 -0
  1204. package/dist/projection/experimental/projections/vandg.d.ts.map +1 -0
  1205. package/dist/projection/experimental/projections/vandg.js +22 -0
  1206. package/dist/projection/experimental/projections/vandg.js.map +1 -0
  1207. package/dist/projection/experimental/rendering-profile/angular-rendering-profile.d.ts +9 -0
  1208. package/dist/projection/experimental/rendering-profile/angular-rendering-profile.d.ts.map +1 -0
  1209. package/dist/projection/experimental/rendering-profile/angular-rendering-profile.js +79 -0
  1210. package/dist/projection/experimental/rendering-profile/angular-rendering-profile.js.map +1 -0
  1211. package/dist/projection/experimental/rendering-profile/azimuthal-rendering-bounds.d.ts +16 -0
  1212. package/dist/projection/experimental/rendering-profile/azimuthal-rendering-bounds.d.ts.map +1 -0
  1213. package/dist/projection/experimental/rendering-profile/azimuthal-rendering-bounds.js +91 -0
  1214. package/dist/projection/experimental/rendering-profile/azimuthal-rendering-bounds.js.map +1 -0
  1215. package/dist/projection/experimental/rendering-profile/geographic-bounds.d.ts +29 -0
  1216. package/dist/projection/experimental/rendering-profile/geographic-bounds.d.ts.map +1 -0
  1217. package/dist/projection/experimental/rendering-profile/geographic-bounds.js +127 -0
  1218. package/dist/projection/experimental/rendering-profile/geographic-bounds.js.map +1 -0
  1219. package/dist/projection/experimental/rendering-profile/geographic-rendering-profile.d.ts +4 -0
  1220. package/dist/projection/experimental/rendering-profile/geographic-rendering-profile.d.ts.map +1 -0
  1221. package/dist/projection/experimental/rendering-profile/geographic-rendering-profile.js +18 -0
  1222. package/dist/projection/experimental/rendering-profile/geographic-rendering-profile.js.map +1 -0
  1223. package/dist/projection/experimental/rendering-profile/geostationary-rendering-profile.d.ts +7 -0
  1224. package/dist/projection/experimental/rendering-profile/geostationary-rendering-profile.d.ts.map +1 -0
  1225. package/dist/projection/experimental/rendering-profile/geostationary-rendering-profile.js +86 -0
  1226. package/dist/projection/experimental/rendering-profile/geostationary-rendering-profile.js.map +1 -0
  1227. package/dist/projection/experimental/rendering-profile/identity-rendering-profile.d.ts +4 -0
  1228. package/dist/projection/experimental/rendering-profile/identity-rendering-profile.d.ts.map +1 -0
  1229. package/dist/projection/experimental/rendering-profile/identity-rendering-profile.js +13 -0
  1230. package/dist/projection/experimental/rendering-profile/identity-rendering-profile.js.map +1 -0
  1231. package/dist/projection/experimental/rendering-profile/rectangular-rendering-profile.d.ts +13 -0
  1232. package/dist/projection/experimental/rendering-profile/rectangular-rendering-profile.d.ts.map +1 -0
  1233. package/dist/projection/experimental/rendering-profile/rectangular-rendering-profile.js +76 -0
  1234. package/dist/projection/experimental/rendering-profile/rectangular-rendering-profile.js.map +1 -0
  1235. package/dist/projection/experimental/rendering-profile/regional-rendering-bounds.d.ts +29 -0
  1236. package/dist/projection/experimental/rendering-profile/regional-rendering-bounds.d.ts.map +1 -0
  1237. package/dist/projection/experimental/rendering-profile/regional-rendering-bounds.js +143 -0
  1238. package/dist/projection/experimental/rendering-profile/regional-rendering-bounds.js.map +1 -0
  1239. package/dist/projection/experimental/rendering-profile/rendering-bounds.d.ts +28 -0
  1240. package/dist/projection/experimental/rendering-profile/rendering-bounds.d.ts.map +1 -0
  1241. package/dist/projection/experimental/rendering-profile/rendering-bounds.js +111 -0
  1242. package/dist/projection/experimental/rendering-profile/rendering-bounds.js.map +1 -0
  1243. package/dist/projection/experimental/rendering-profile/rendering-profile.d.ts +11 -0
  1244. package/dist/projection/experimental/rendering-profile/rendering-profile.d.ts.map +1 -0
  1245. package/dist/projection/experimental/rendering-profile/rendering-profile.js +81 -0
  1246. package/dist/projection/experimental/rendering-profile/rendering-profile.js.map +1 -0
  1247. package/dist/projection/experimental/rendering-profile/spherical-rendering-domain.d.ts +24 -0
  1248. package/dist/projection/experimental/rendering-profile/spherical-rendering-domain.d.ts.map +1 -0
  1249. package/dist/projection/experimental/rendering-profile/spherical-rendering-domain.js +129 -0
  1250. package/dist/projection/experimental/rendering-profile/spherical-rendering-domain.js.map +1 -0
  1251. package/dist/projection/experimental/scalar-output.d.ts +8 -0
  1252. package/dist/projection/experimental/scalar-output.d.ts.map +1 -0
  1253. package/dist/projection/experimental/scalar-output.js +46 -0
  1254. package/dist/projection/experimental/scalar-output.js.map +1 -0
  1255. package/dist/projection/experimental/spatial-deformation.d.ts +6 -0
  1256. package/dist/projection/experimental/spatial-deformation.d.ts.map +1 -0
  1257. package/dist/projection/experimental/spatial-deformation.js +85 -0
  1258. package/dist/projection/experimental/spatial-deformation.js.map +1 -0
  1259. package/dist/projection/experimental/types.d.ts +156 -0
  1260. package/dist/projection/experimental/types.d.ts.map +1 -0
  1261. package/dist/projection/experimental/types.js +5 -0
  1262. package/dist/projection/experimental/types.js.map +1 -0
  1263. package/dist/projection/experimental/typescript-projection.d.ts +76 -0
  1264. package/dist/projection/experimental/typescript-projection.d.ts.map +1 -0
  1265. package/dist/projection/experimental/typescript-projection.js +459 -0
  1266. package/dist/projection/experimental/typescript-projection.js.map +1 -0
  1267. package/dist/projection/experimental/vertical-datum.d.ts +4 -0
  1268. package/dist/projection/experimental/vertical-datum.d.ts.map +1 -0
  1269. package/dist/projection/experimental/vertical-datum.js +43 -0
  1270. package/dist/projection/experimental/vertical-datum.js.map +1 -0
  1271. package/dist/projection/grids/velocity.cjs +92 -0
  1272. package/dist/projection/grids/velocity.cjs.map +6 -0
  1273. package/dist/projection/grids/velocity.d.ts +3 -0
  1274. package/dist/projection/grids/velocity.d.ts.map +1 -0
  1275. package/dist/projection/grids/velocity.js +5 -0
  1276. package/dist/projection/grids/velocity.js.map +1 -0
  1277. package/dist/projection/index.cjs +11504 -0
  1278. package/dist/projection/index.cjs.map +6 -0
  1279. package/dist/projection/index.d.ts +3 -0
  1280. package/dist/projection/index.d.ts.map +1 -0
  1281. package/dist/projection/index.js +6 -0
  1282. package/dist/projection/index.js.map +1 -0
  1283. package/dist/projection/lib/projection.d.ts +8 -0
  1284. package/dist/projection/lib/projection.d.ts.map +1 -0
  1285. package/dist/projection/lib/projection.js +115 -0
  1286. package/dist/projection/lib/projection.js.map +1 -0
  1287. package/dist/projection/numerical-derivative.d.ts +15 -0
  1288. package/dist/projection/numerical-derivative.d.ts.map +1 -0
  1289. package/dist/projection/numerical-derivative.js +47 -0
  1290. package/dist/projection/numerical-derivative.js.map +1 -0
  1291. package/dist/projection/operations.cjs +322 -0
  1292. package/dist/projection/operations.cjs.map +6 -0
  1293. package/dist/projection/operations.d.ts +89 -0
  1294. package/dist/projection/operations.d.ts.map +1 -0
  1295. package/dist/projection/operations.js +344 -0
  1296. package/dist/projection/operations.js.map +1 -0
  1297. package/dist/projection/pipeline.cjs +1961 -0
  1298. package/dist/projection/pipeline.cjs.map +6 -0
  1299. package/dist/projection/pipeline.d.ts +2 -0
  1300. package/dist/projection/pipeline.d.ts.map +1 -0
  1301. package/dist/projection/pipeline.js +5 -0
  1302. package/dist/projection/pipeline.js.map +1 -0
  1303. package/dist/projection/temporal.cjs +290 -0
  1304. package/dist/projection/temporal.cjs.map +6 -0
  1305. package/dist/projection/temporal.d.ts +31 -0
  1306. package/dist/projection/temporal.d.ts.map +1 -0
  1307. package/dist/projection/temporal.js +91 -0
  1308. package/dist/projection/temporal.js.map +1 -0
  1309. package/dist/projection/transform-analysis.cjs +1889 -0
  1310. package/dist/projection/transform-analysis.cjs.map +6 -0
  1311. package/dist/projection/transform-analysis.d.ts +43 -0
  1312. package/dist/projection/transform-analysis.d.ts.map +1 -0
  1313. package/dist/projection/transform-analysis.js +110 -0
  1314. package/dist/projection/transform-analysis.js.map +1 -0
  1315. package/dist/projection/types.cjs +18 -0
  1316. package/dist/projection/types.cjs.map +6 -0
  1317. package/dist/projection/types.d.ts +47 -0
  1318. package/dist/projection/types.d.ts.map +1 -0
  1319. package/dist/projection/types.js +5 -0
  1320. package/dist/projection/types.js.map +1 -0
  1321. package/dist/projection/web-mercator.cjs +171 -0
  1322. package/dist/projection/web-mercator.cjs.map +6 -0
  1323. package/dist/projection/web-mercator.d.ts +7 -0
  1324. package/dist/projection/web-mercator.d.ts.map +1 -0
  1325. package/dist/projection/web-mercator.js +113 -0
  1326. package/dist/projection/web-mercator.js.map +1 -0
  1327. package/dist/subdivide-globe-mesh.d.ts +20 -0
  1328. package/dist/subdivide-globe-mesh.d.ts.map +1 -0
  1329. package/dist/subdivide-globe-mesh.js +54 -0
  1330. package/dist/subdivide-globe-mesh.js.map +1 -0
  1331. package/dist/tile-matrix.cjs +94 -20
  1332. package/dist/tile-matrix.cjs.map +1 -1
  1333. package/dist/tile-matrix.d.ts +30 -8
  1334. package/dist/tile-matrix.d.ts.map +1 -1
  1335. package/dist/tile-matrix.js +125 -25
  1336. package/dist/tile-matrix.js.map +1 -1
  1337. package/dist/tiles.cjs +303 -0
  1338. package/dist/tiles.cjs.map +6 -0
  1339. package/dist/tiles.d.ts +5 -0
  1340. package/dist/tiles.d.ts.map +1 -0
  1341. package/dist/tiles.js +6 -0
  1342. package/dist/tiles.js.map +1 -0
  1343. package/dist/web-mercator.cjs +20 -0
  1344. package/dist/web-mercator.cjs.map +6 -0
  1345. package/dist/web-mercator.d.ts +2 -0
  1346. package/dist/web-mercator.d.ts.map +1 -0
  1347. package/dist/web-mercator.js +5 -0
  1348. package/dist/web-mercator.js.map +1 -0
  1349. package/dist/wkb/index.cjs +1050 -0
  1350. package/dist/wkb/index.cjs.map +6 -0
  1351. package/dist/wkb/index.d.ts +11 -0
  1352. package/dist/wkb/index.d.ts.map +1 -0
  1353. package/dist/wkb/index.js +9 -0
  1354. package/dist/wkb/index.js.map +1 -0
  1355. package/dist/wkb/types.d.ts +30 -0
  1356. package/dist/wkb/types.d.ts.map +1 -0
  1357. package/dist/wkb/types.js +34 -0
  1358. package/dist/wkb/types.js.map +1 -0
  1359. package/dist/wkb/wkb-builder.d.ts +91 -0
  1360. package/dist/wkb/wkb-builder.d.ts.map +1 -0
  1361. package/dist/wkb/wkb-builder.js +276 -0
  1362. package/dist/wkb/wkb-builder.js.map +1 -0
  1363. package/dist/wkb/wkb-reader.d.ts +74 -0
  1364. package/dist/wkb/wkb-reader.d.ts.map +1 -0
  1365. package/dist/wkb/wkb-reader.js +251 -0
  1366. package/dist/wkb/wkb-reader.js.map +1 -0
  1367. package/dist/wkb/wkb.d.ts +21 -0
  1368. package/dist/wkb/wkb.d.ts.map +1 -0
  1369. package/dist/wkb/wkb.js +204 -0
  1370. package/dist/wkb/wkb.js.map +1 -0
  1371. package/dist/wkb/wkt.d.ts +19 -0
  1372. package/dist/wkb/wkt.d.ts.map +1 -0
  1373. package/dist/wkb/wkt.js +321 -0
  1374. package/dist/wkb/wkt.js.map +1 -0
  1375. package/package.json +1053 -6
  1376. package/projection/APACHE-2.0-LICENSE.txt +55 -0
  1377. package/projection/PROJ-LICENSE.txt +37 -0
  1378. package/projection/PROJ4-LICENSE.md +29 -0
  1379. package/projection/THIRD-PARTY-NOTICES.md +163 -0
  1380. package/src/crs/crs-metadata.ts +63 -0
  1381. package/src/crs/crs.ts +36 -0
  1382. package/src/crs/index.ts +65 -0
  1383. package/src/crs/proj-string.ts +239 -0
  1384. package/src/crs/projjson-schema-constants.ts +9 -0
  1385. package/src/crs/projjson-types.ts +665 -0
  1386. package/src/crs/spatial-reference.ts +221 -0
  1387. package/src/crs/units-table.ts +51 -0
  1388. package/src/crs/wkt-crs.ts +790 -0
  1389. package/src/ellipsoid-helpers/ellipsoid-transform.ts +1 -1
  1390. package/src/ellipsoid-tangent-plane.ts +1 -1
  1391. package/src/ellipsoid.ts +1 -1
  1392. package/src/entries/ellipsoid.ts +8 -0
  1393. package/src/expressions.ts +34 -0
  1394. package/src/geoarrow/builder-entry.ts +18 -0
  1395. package/src/geoarrow/builder.ts +860 -0
  1396. package/src/geoarrow/codecs.ts +1274 -0
  1397. package/src/geoarrow/index.ts +100 -0
  1398. package/src/geoarrow/kernels.ts +1290 -0
  1399. package/src/geoarrow/layout.ts +899 -0
  1400. package/src/geoarrow/tessellate.ts +133 -0
  1401. package/src/geoarrow/tessellation-entry.ts +7 -0
  1402. package/src/geoarrow/types.ts +219 -0
  1403. package/src/geoarrow/views.ts +150 -0
  1404. package/src/geoarrow/wkb-entry.ts +13 -0
  1405. package/src/geoarrow/worker.ts +20 -0
  1406. package/src/globe.ts +14 -0
  1407. package/src/index.ts +3 -30
  1408. package/src/make-obb-from-region.ts +1 -1
  1409. package/src/projection/analysis.ts +284 -0
  1410. package/src/projection/bulk.ts +343 -0
  1411. package/src/projection/datums.ts +13 -0
  1412. package/src/projection/deformation.ts +5 -0
  1413. package/src/projection/experimental/catalogue-kernel.ts +65 -0
  1414. package/src/projection/experimental/common/adjust_lat.ts +11 -0
  1415. package/src/projection/experimental/common/adjust_lon.ts +14 -0
  1416. package/src/projection/experimental/common/asinhy.ts +14 -0
  1417. package/src/projection/experimental/common/asinz.ts +11 -0
  1418. package/src/projection/experimental/common/authlat.ts +9 -0
  1419. package/src/projection/experimental/common/authset.ts +25 -0
  1420. package/src/projection/experimental/common/clens.ts +20 -0
  1421. package/src/projection/experimental/common/clens_cmplx.ts +43 -0
  1422. package/src/projection/experimental/common/constants.ts +15 -0
  1423. package/src/projection/experimental/common/cosh.ts +10 -0
  1424. package/src/projection/experimental/common/e0fn.ts +8 -0
  1425. package/src/projection/experimental/common/e1fn.ts +8 -0
  1426. package/src/projection/experimental/common/e2fn.ts +8 -0
  1427. package/src/projection/experimental/common/e3fn.ts +8 -0
  1428. package/src/projection/experimental/common/fL.ts +10 -0
  1429. package/src/projection/experimental/common/gN.ts +9 -0
  1430. package/src/projection/experimental/common/gatg.ts +20 -0
  1431. package/src/projection/experimental/common/hypot.ts +13 -0
  1432. package/src/projection/experimental/common/imlfn.ts +23 -0
  1433. package/src/projection/experimental/common/invlatiso.ts +20 -0
  1434. package/src/projection/experimental/common/iqsfnz.ts +45 -0
  1435. package/src/projection/experimental/common/latiso.ts +21 -0
  1436. package/src/projection/experimental/common/log1py.ts +11 -0
  1437. package/src/projection/experimental/common/meridian-distance.ts +45 -0
  1438. package/src/projection/experimental/common/mlfn.ts +8 -0
  1439. package/src/projection/experimental/common/msfnz.ts +9 -0
  1440. package/src/projection/experimental/common/phi2z.ts +22 -0
  1441. package/src/projection/experimental/common/pj_enfn.ts +29 -0
  1442. package/src/projection/experimental/common/pj_inv_mlfn.ts +28 -0
  1443. package/src/projection/experimental/common/pj_mlfn.ts +10 -0
  1444. package/src/projection/experimental/common/qsfnz.ts +17 -0
  1445. package/src/projection/experimental/common/sign.ts +8 -0
  1446. package/src/projection/experimental/common/sinh.ts +10 -0
  1447. package/src/projection/experimental/common/srat.ts +8 -0
  1448. package/src/projection/experimental/common/tsfnz.ts +13 -0
  1449. package/src/projection/experimental/common/vincenty.ts +180 -0
  1450. package/src/projection/experimental/core.ts +77 -0
  1451. package/src/projection/experimental/crs/datum-catalog.ts +65 -0
  1452. package/src/projection/experimental/crs/datum-table.ts +1360 -0
  1453. package/src/projection/experimental/crs/ellipsoid-table.ts +230 -0
  1454. package/src/projection/experimental/crs/normalize.ts +306 -0
  1455. package/src/projection/experimental/crs/primemeridian-table.ts +22 -0
  1456. package/src/projection/experimental/crs/projjson.ts +12 -0
  1457. package/src/projection/experimental/crs/spatial-reference.ts +115 -0
  1458. package/src/projection/experimental/crs/structured.ts +580 -0
  1459. package/src/projection/experimental/crs/types.ts +97 -0
  1460. package/src/projection/experimental/crs/wkt.ts +201 -0
  1461. package/src/projection/experimental/crs-descriptor.ts +250 -0
  1462. package/src/projection/experimental/crs-rendering-scale.ts +115 -0
  1463. package/src/projection/experimental/datum.ts +185 -0
  1464. package/src/projection/experimental/deformation-inverse.ts +125 -0
  1465. package/src/projection/experimental/deformation.ts +30 -0
  1466. package/src/projection/experimental/entries/projections/aea.ts +5 -0
  1467. package/src/projection/experimental/entries/projections/aeqd.ts +5 -0
  1468. package/src/projection/experimental/entries/projections/bonne.ts +5 -0
  1469. package/src/projection/experimental/entries/projections/cass.ts +5 -0
  1470. package/src/projection/experimental/entries/projections/cea.ts +5 -0
  1471. package/src/projection/experimental/entries/projections/eck6.ts +5 -0
  1472. package/src/projection/experimental/entries/projections/eqc.ts +5 -0
  1473. package/src/projection/experimental/entries/projections/eqdc.ts +5 -0
  1474. package/src/projection/experimental/entries/projections/eqearth.ts +5 -0
  1475. package/src/projection/experimental/entries/projections/equi.ts +5 -0
  1476. package/src/projection/experimental/entries/projections/etmerc.ts +5 -0
  1477. package/src/projection/experimental/entries/projections/geocent.ts +5 -0
  1478. package/src/projection/experimental/entries/projections/geos.ts +5 -0
  1479. package/src/projection/experimental/entries/projections/gnom.ts +5 -0
  1480. package/src/projection/experimental/entries/projections/gstmerc.ts +5 -0
  1481. package/src/projection/experimental/entries/projections/krovak.ts +5 -0
  1482. package/src/projection/experimental/entries/projections/laea.ts +5 -0
  1483. package/src/projection/experimental/entries/projections/lcc.ts +5 -0
  1484. package/src/projection/experimental/entries/projections/merc.ts +5 -0
  1485. package/src/projection/experimental/entries/projections/mill.ts +5 -0
  1486. package/src/projection/experimental/entries/projections/moll.ts +5 -0
  1487. package/src/projection/experimental/entries/projections/nzmg.ts +5 -0
  1488. package/src/projection/experimental/entries/projections/ob_tran.ts +5 -0
  1489. package/src/projection/experimental/entries/projections/omerc.ts +5 -0
  1490. package/src/projection/experimental/entries/projections/ortho.ts +5 -0
  1491. package/src/projection/experimental/entries/projections/poly.ts +5 -0
  1492. package/src/projection/experimental/entries/projections/qsc.ts +5 -0
  1493. package/src/projection/experimental/entries/projections/robin.ts +5 -0
  1494. package/src/projection/experimental/entries/projections/sinu.ts +5 -0
  1495. package/src/projection/experimental/entries/projections/somerc.ts +5 -0
  1496. package/src/projection/experimental/entries/projections/stere.ts +5 -0
  1497. package/src/projection/experimental/entries/projections/sterea.ts +5 -0
  1498. package/src/projection/experimental/entries/projections/tmerc.ts +5 -0
  1499. package/src/projection/experimental/entries/projections/tpers.ts +5 -0
  1500. package/src/projection/experimental/entries/projections/utm.ts +5 -0
  1501. package/src/projection/experimental/entries/projections/vandg.ts +5 -0
  1502. package/src/projection/experimental/exact-helmert.ts +58 -0
  1503. package/src/projection/experimental/flat-projection.ts +80 -0
  1504. package/src/projection/experimental/grids/geotiff.ts +88 -0
  1505. package/src/projection/experimental/grids/grid.ts +141 -0
  1506. package/src/projection/experimental/grids/gtx.ts +31 -0
  1507. package/src/projection/experimental/grids/ntv2.ts +71 -0
  1508. package/src/projection/experimental/grids/scalar-geotiff.ts +231 -0
  1509. package/src/projection/experimental/grids/types.ts +35 -0
  1510. package/src/projection/experimental/grids/velocity-geotiff.ts +82 -0
  1511. package/src/projection/experimental/grids/velocity.ts +58 -0
  1512. package/src/projection/experimental/grids/vertical-geotiff.ts +28 -0
  1513. package/src/projection/experimental/grids/vertical.ts +99 -0
  1514. package/src/projection/experimental/helmert-flat.ts +76 -0
  1515. package/src/projection/experimental/index.ts +59 -0
  1516. package/src/projection/experimental/kernel.ts +142 -0
  1517. package/src/projection/experimental/kernels/aea.ts +170 -0
  1518. package/src/projection/experimental/kernels/aeqd.ts +171 -0
  1519. package/src/projection/experimental/kernels/bonne.ts +141 -0
  1520. package/src/projection/experimental/kernels/cass.ts +140 -0
  1521. package/src/projection/experimental/kernels/cea.ts +71 -0
  1522. package/src/projection/experimental/kernels/eck6.ts +36 -0
  1523. package/src/projection/experimental/kernels/eqdc.ts +137 -0
  1524. package/src/projection/experimental/kernels/eqearth.ts +136 -0
  1525. package/src/projection/experimental/kernels/equi.ts +53 -0
  1526. package/src/projection/experimental/kernels/etmerc.ts +190 -0
  1527. package/src/projection/experimental/kernels/gauss.ts +79 -0
  1528. package/src/projection/experimental/kernels/geos.ts +183 -0
  1529. package/src/projection/experimental/kernels/gnom.ts +113 -0
  1530. package/src/projection/experimental/kernels/gstmerc.ts +74 -0
  1531. package/src/projection/experimental/kernels/krovak.ts +166 -0
  1532. package/src/projection/experimental/kernels/laea.ts +297 -0
  1533. package/src/projection/experimental/kernels/lcc.ts +147 -0
  1534. package/src/projection/experimental/kernels/mill.ts +60 -0
  1535. package/src/projection/experimental/kernels/moll.ts +105 -0
  1536. package/src/projection/experimental/kernels/nzmg.ts +249 -0
  1537. package/src/projection/experimental/kernels/omerc.ts +343 -0
  1538. package/src/projection/experimental/kernels/ortho.ts +106 -0
  1539. package/src/projection/experimental/kernels/poly.ts +156 -0
  1540. package/src/projection/experimental/kernels/qsc.ts +369 -0
  1541. package/src/projection/experimental/kernels/robin.ts +189 -0
  1542. package/src/projection/experimental/kernels/sinu.ts +116 -0
  1543. package/src/projection/experimental/kernels/somerc.ts +112 -0
  1544. package/src/projection/experimental/kernels/stere.ts +221 -0
  1545. package/src/projection/experimental/kernels/sterea.ts +80 -0
  1546. package/src/projection/experimental/kernels/tmerc.ts +227 -0
  1547. package/src/projection/experimental/kernels/tpers.ts +187 -0
  1548. package/src/projection/experimental/kernels/vandg.ts +147 -0
  1549. package/src/projection/experimental/kinematic-helmert-flat.ts +85 -0
  1550. package/src/projection/experimental/kinematic-helmert.ts +132 -0
  1551. package/src/projection/experimental/lazy-projection.ts +179 -0
  1552. package/src/projection/experimental/lazy-projections/aea.ts +10 -0
  1553. package/src/projection/experimental/lazy-projections/aeqd.ts +12 -0
  1554. package/src/projection/experimental/lazy-projections/bonne.ts +10 -0
  1555. package/src/projection/experimental/lazy-projections/cass.ts +10 -0
  1556. package/src/projection/experimental/lazy-projections/cea.ts +12 -0
  1557. package/src/projection/experimental/lazy-projections/eck6.ts +10 -0
  1558. package/src/projection/experimental/lazy-projections/eqc.ts +15 -0
  1559. package/src/projection/experimental/lazy-projections/eqdc.ts +11 -0
  1560. package/src/projection/experimental/lazy-projections/eqearth.ts +10 -0
  1561. package/src/projection/experimental/lazy-projections/equi.ts +10 -0
  1562. package/src/projection/experimental/lazy-projections/etmerc.ts +12 -0
  1563. package/src/projection/experimental/lazy-projections/geocent.ts +10 -0
  1564. package/src/projection/experimental/lazy-projections/geos.ts +10 -0
  1565. package/src/projection/experimental/lazy-projections/gnom.ts +10 -0
  1566. package/src/projection/experimental/lazy-projections/gstmerc.ts +13 -0
  1567. package/src/projection/experimental/lazy-projections/index.ts +41 -0
  1568. package/src/projection/experimental/lazy-projections/krovak.ts +18 -0
  1569. package/src/projection/experimental/lazy-projections/laea.ts +12 -0
  1570. package/src/projection/experimental/lazy-projections/lcc.ts +22 -0
  1571. package/src/projection/experimental/lazy-projections/merc.ts +19 -0
  1572. package/src/projection/experimental/lazy-projections/mill.ts +11 -0
  1573. package/src/projection/experimental/lazy-projections/moll.ts +10 -0
  1574. package/src/projection/experimental/lazy-projections/nzmg.ts +11 -0
  1575. package/src/projection/experimental/lazy-projections/ob_tran.ts +25 -0
  1576. package/src/projection/experimental/lazy-projections/omerc.ts +22 -0
  1577. package/src/projection/experimental/lazy-projections/ortho.ts +10 -0
  1578. package/src/projection/experimental/lazy-projections/poly.ts +10 -0
  1579. package/src/projection/experimental/lazy-projections/qsc.ts +16 -0
  1580. package/src/projection/experimental/lazy-projections/robin.ts +10 -0
  1581. package/src/projection/experimental/lazy-projections/sinu.ts +10 -0
  1582. package/src/projection/experimental/lazy-projections/somerc.ts +12 -0
  1583. package/src/projection/experimental/lazy-projections/stere.ts +18 -0
  1584. package/src/projection/experimental/lazy-projections/sterea.ts +20 -0
  1585. package/src/projection/experimental/lazy-projections/tmerc.ts +22 -0
  1586. package/src/projection/experimental/lazy-projections/tpers.ts +11 -0
  1587. package/src/projection/experimental/lazy-projections/utm.ts +12 -0
  1588. package/src/projection/experimental/lazy-projections/vandg.ts +10 -0
  1589. package/src/projection/experimental/mutable-projection.ts +63 -0
  1590. package/src/projection/experimental/numeric-flat.ts +73 -0
  1591. package/src/projection/experimental/parameters.ts +36 -0
  1592. package/src/projection/experimental/projection-descriptor.ts +79 -0
  1593. package/src/projection/experimental/projection-engine.ts +81 -0
  1594. package/src/projection/experimental/projection-pipeline.ts +1047 -0
  1595. package/src/projection/experimental/projection-scratch.ts +26 -0
  1596. package/src/projection/experimental/projections/aea.ts +41 -0
  1597. package/src/projection/experimental/projections/aeqd.ts +27 -0
  1598. package/src/projection/experimental/projections/bonne.ts +38 -0
  1599. package/src/projection/experimental/projections/cass.ts +39 -0
  1600. package/src/projection/experimental/projections/cea.ts +31 -0
  1601. package/src/projection/experimental/projections/eck6.ts +30 -0
  1602. package/src/projection/experimental/projections/eqdc.ts +40 -0
  1603. package/src/projection/experimental/projections/eqearth.ts +72 -0
  1604. package/src/projection/experimental/projections/equi.ts +31 -0
  1605. package/src/projection/experimental/projections/equidistant-cylindrical.ts +79 -0
  1606. package/src/projection/experimental/projections/geocentric.ts +42 -0
  1607. package/src/projection/experimental/projections/geos.ts +46 -0
  1608. package/src/projection/experimental/projections/gnom.ts +34 -0
  1609. package/src/projection/experimental/projections/gstmerc.ts +43 -0
  1610. package/src/projection/experimental/projections/krovak.ts +61 -0
  1611. package/src/projection/experimental/projections/laea.ts +39 -0
  1612. package/src/projection/experimental/projections/lcc.ts +67 -0
  1613. package/src/projection/experimental/projections/mercator.ts +150 -0
  1614. package/src/projection/experimental/projections/mill.ts +30 -0
  1615. package/src/projection/experimental/projections/moll.ts +30 -0
  1616. package/src/projection/experimental/projections/nzmg.ts +47 -0
  1617. package/src/projection/experimental/projections/ob-tran.ts +279 -0
  1618. package/src/projection/experimental/projections/omerc.ts +86 -0
  1619. package/src/projection/experimental/projections/ortho.ts +34 -0
  1620. package/src/projection/experimental/projections/poly.ts +40 -0
  1621. package/src/projection/experimental/projections/qsc.ts +84 -0
  1622. package/src/projection/experimental/projections/robin.ts +30 -0
  1623. package/src/projection/experimental/projections/sinu.ts +30 -0
  1624. package/src/projection/experimental/projections/somerc.ts +39 -0
  1625. package/src/projection/experimental/projections/stere.ts +59 -0
  1626. package/src/projection/experimental/projections/sterea.ts +61 -0
  1627. package/src/projection/experimental/projections/tpers.ts +59 -0
  1628. package/src/projection/experimental/projections/transverse-mercator.ts +89 -0
  1629. package/src/projection/experimental/projections/utm.ts +50 -0
  1630. package/src/projection/experimental/projections/vandg.ts +30 -0
  1631. package/src/projection/experimental/rendering-profile/angular-rendering-profile.ts +117 -0
  1632. package/src/projection/experimental/rendering-profile/azimuthal-rendering-bounds.ts +181 -0
  1633. package/src/projection/experimental/rendering-profile/geographic-bounds.ts +190 -0
  1634. package/src/projection/experimental/rendering-profile/geographic-rendering-profile.ts +29 -0
  1635. package/src/projection/experimental/rendering-profile/geostationary-rendering-profile.ts +128 -0
  1636. package/src/projection/experimental/rendering-profile/identity-rendering-profile.ts +15 -0
  1637. package/src/projection/experimental/rendering-profile/rectangular-rendering-profile.ts +133 -0
  1638. package/src/projection/experimental/rendering-profile/regional-rendering-bounds.ts +252 -0
  1639. package/src/projection/experimental/rendering-profile/rendering-bounds.ts +163 -0
  1640. package/src/projection/experimental/rendering-profile/rendering-profile.ts +96 -0
  1641. package/src/projection/experimental/rendering-profile/spherical-rendering-domain.ts +175 -0
  1642. package/src/projection/experimental/scalar-output.ts +74 -0
  1643. package/src/projection/experimental/spatial-deformation.ts +115 -0
  1644. package/src/projection/experimental/types.ts +181 -0
  1645. package/src/projection/experimental/typescript-projection.ts +581 -0
  1646. package/src/projection/experimental/vertical-datum.ts +39 -0
  1647. package/src/projection/grids/velocity.ts +5 -0
  1648. package/src/projection/index.ts +6 -0
  1649. package/src/projection/lib/projection.ts +161 -0
  1650. package/src/projection/numerical-derivative.ts +50 -0
  1651. package/src/projection/operations.ts +479 -0
  1652. package/src/projection/pipeline.ts +4 -0
  1653. package/src/projection/temporal.ts +133 -0
  1654. package/src/projection/transform-analysis.ts +169 -0
  1655. package/src/projection/types.ts +79 -0
  1656. package/src/projection/web-mercator.ts +148 -0
  1657. package/src/subdivide-globe-mesh.ts +75 -0
  1658. package/src/tile-matrix.ts +205 -34
  1659. package/src/tiles.ts +28 -0
  1660. package/src/web-mercator.ts +5 -0
  1661. package/src/wkb/index.ts +38 -0
  1662. package/src/wkb/types.ts +54 -0
  1663. package/src/wkb/wkb-builder.ts +386 -0
  1664. package/src/wkb/wkb-reader.ts +401 -0
  1665. package/src/wkb/wkb.ts +255 -0
  1666. package/src/wkb/wkt.ts +375 -0
@@ -0,0 +1,1940 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // dist/projection/experimental/core.js
20
+ var core_exports = {};
21
+ __export(core_exports, {
22
+ ConfigurableProjectionEngine: () => ConfigurableProjectionEngine,
23
+ ProjectionTransform: () => ProjectionTransform,
24
+ TypeScriptCRSError: () => TypeScriptCRSError,
25
+ checkProjectionCompatibility: () => checkProjectionCompatibility,
26
+ createProjectionDescriptor: () => createProjectionDescriptor,
27
+ createProjectionEngine: () => createProjectionEngine,
28
+ getLoadedProjection: () => getLoadedProjection,
29
+ normalizeCRS: () => normalizeCRS,
30
+ preloadProjection: () => preloadProjection
31
+ });
32
+ module.exports = __toCommonJS(core_exports);
33
+
34
+ // dist/projection/experimental/rendering-profile/geographic-bounds.js
35
+ var RADIANS = Math.PI / 180;
36
+ function createAngularRanges(west, south, east, north) {
37
+ return [
38
+ [west, south],
39
+ [east, north]
40
+ ];
41
+ }
42
+ function normalizeLongitude(longitude) {
43
+ return longitude >= -180 && longitude < 180 ? longitude : ((longitude + 180) % 360 + 360) % 360 - 180;
44
+ }
45
+ function getLongitudeSpan(bounds) {
46
+ const span = bounds[2] - bounds[0];
47
+ return span < 0 ? span + 360 : span;
48
+ }
49
+ function containsGeographicPoint(bounds, point) {
50
+ const [west, south, east, north] = bounds;
51
+ const longitude = normalizeLongitude(point[0]);
52
+ return point[1] >= south && point[1] <= north && (west <= east ? longitude >= west && longitude <= east || longitude === -180 && east === 180 : longitude >= west || longitude <= east);
53
+ }
54
+ function clampGeographicPoint(bounds, point) {
55
+ let longitude = normalizeLongitude(point[0]);
56
+ const latitude = Math.max(bounds[1], Math.min(bounds[3], point[1]));
57
+ if (!containsGeographicPoint(bounds, [longitude, latitude])) {
58
+ const westDistance = Math.abs(normalizeLongitude(longitude - bounds[0]));
59
+ const eastDistance = Math.abs(normalizeLongitude(longitude - bounds[2]));
60
+ longitude = westDistance <= eastDistance ? bounds[0] : bounds[2];
61
+ }
62
+ return [longitude, latitude];
63
+ }
64
+ function getAngularRanges(bounds, primeMeridian2 = 0, origin = 0) {
65
+ const width = getLongitudeSpan(bounds);
66
+ const west = bounds[0] * RADIANS - primeMeridian2;
67
+ const middle = west + width * RADIANS / 2;
68
+ const shift = Math.round((origin - middle) / (2 * Math.PI)) * 2 * Math.PI;
69
+ return createAngularRanges(width === 360 ? origin - Math.PI : west + shift, bounds[1] * RADIANS, width === 360 ? origin + Math.PI : west + shift + width * RADIANS, bounds[3] * RADIANS);
70
+ }
71
+
72
+ // dist/projection/experimental/rendering-profile/rendering-profile.js
73
+ function resolveRenderingProfile(getRenderingProfile, coverage) {
74
+ if (coverage) {
75
+ try {
76
+ const profile2 = getRenderingProfile(coverage);
77
+ return resolveBounds(profile2);
78
+ } catch {
79
+ }
80
+ }
81
+ const profile = getRenderingProfile();
82
+ return resolveBounds(profile);
83
+ }
84
+ function resolveBounds(profile) {
85
+ var _a2;
86
+ const bounds = profile.bounds;
87
+ if (bounds.some((corner) => corner.some((value) => !Number.isFinite(value))))
88
+ throw new Error("Projection rendering bounds must be finite");
89
+ return { bounds, normalize: (_a2 = profile.normalize) == null ? void 0 : _a2.bind(profile) };
90
+ }
91
+
92
+ // dist/projection/experimental/rendering-profile/identity-rendering-profile.js
93
+ function getIdentityRenderingProfile() {
94
+ return {
95
+ bounds: [
96
+ [-1, -1, 0],
97
+ [1, 1, 0]
98
+ ]
99
+ };
100
+ }
101
+
102
+ // dist/projection/experimental/projection-descriptor.js
103
+ var CACHE_KEY = /* @__PURE__ */ Symbol.for("@math.gl/projection/projection-implementations");
104
+ function cache() {
105
+ const scope = globalThis;
106
+ scope[CACHE_KEY] || (scope[CACHE_KEY] = /* @__PURE__ */ new WeakMap());
107
+ return scope[CACHE_KEY];
108
+ }
109
+ function getLoadedProjection(projection) {
110
+ var _a2;
111
+ return "create" in projection ? projection : (_a2 = cache().get(projection)) == null ? void 0 : _a2.implementation;
112
+ }
113
+ function preloadProjection(projection) {
114
+ if ("create" in projection)
115
+ return Promise.resolve(projection);
116
+ let state = cache().get(projection);
117
+ if (!state) {
118
+ state = { load: () => projection.preload() };
119
+ cache().set(projection, state);
120
+ }
121
+ if (state.implementation)
122
+ return Promise.resolve(state.implementation);
123
+ const entry = state;
124
+ entry.pending || (entry.pending = Promise.resolve().then(entry.load).then((plugin) => {
125
+ const key = (value) => value.toLowerCase().replace(/[\s_-]/g, "");
126
+ const supported = new Set([plugin.name, ...plugin.aliases || []].map(key));
127
+ if (typeof plugin.create !== "function" || ![projection.name, ...projection.aliases || []].every((name) => supported.has(key(name))))
128
+ throw new Error("Loaded projection does not match descriptor: " + projection.name);
129
+ entry.implementation = plugin;
130
+ return plugin;
131
+ }).catch((error) => {
132
+ entry.pending = void 0;
133
+ throw error;
134
+ }));
135
+ return entry.pending;
136
+ }
137
+ function createProjectionDescriptor(metadata, load) {
138
+ const descriptor = Object.freeze({
139
+ name: metadata.name,
140
+ aliases: metadata.aliases && Object.freeze([...metadata.aliases]),
141
+ preload: () => preloadProjection(descriptor)
142
+ });
143
+ cache().set(descriptor, { load });
144
+ return descriptor;
145
+ }
146
+
147
+ // dist/projection/experimental/projection-scratch.js
148
+ function createPoint() {
149
+ return { x: 0, y: 0, z: 0 };
150
+ }
151
+ var ProjectionScratch = class {
152
+ constructor() {
153
+ this.point = createPoint();
154
+ this.points = [this.point];
155
+ this.active = 0;
156
+ }
157
+ get depth() {
158
+ return this.active;
159
+ }
160
+ acquire() {
161
+ var _a2;
162
+ const index = this.active++;
163
+ (_a2 = this.points)[index] || (_a2[index] = createPoint());
164
+ return this.points[index];
165
+ }
166
+ release(point) {
167
+ if (this.active > 0 && this.points[this.active - 1] === point)
168
+ this.active--;
169
+ }
170
+ };
171
+
172
+ // dist/projection/experimental/mutable-projection.js
173
+ function projectionOperation(implementation, inverse, geocentric = false) {
174
+ const mutable = inverse ? implementation.inverseInPlace : implementation.forwardInPlace;
175
+ if (mutable)
176
+ return mutable.bind(implementation);
177
+ if (geocentric) {
178
+ const operation2 = inverse ? implementation.inverse3D : implementation.forward3D;
179
+ return (point) => {
180
+ const output = operation2.call(implementation, [point.x, point.y, point.z]);
181
+ point.x = output[0];
182
+ point.y = output[1];
183
+ point.z = output[2];
184
+ };
185
+ }
186
+ const operation = inverse ? implementation.inverse : implementation.forward;
187
+ return (point) => {
188
+ const output = operation.call(implementation, point.x, point.y);
189
+ point.x = output[0];
190
+ point.y = output[1];
191
+ };
192
+ }
193
+
194
+ // dist/projection/experimental/scalar-output.js
195
+ var FLOAT32_MAX = 34028234663852886e22;
196
+ function validateScalarOutput(coordinate, output, length) {
197
+ if (!(Array.isArray(coordinate) || coordinate instanceof Float32Array || coordinate instanceof Float64Array))
198
+ throw new Error("Scalar input requires a number array, Float32Array or Float64Array");
199
+ if (!(Array.isArray(output) || output instanceof Float32Array || output instanceof Float64Array) || output.length < length)
200
+ throw new Error("Scalar output requires a preallocated number array, Float32Array or Float64Array with sufficient capacity");
201
+ if (coordinate === output || Array.isArray(coordinate) || Array.isArray(output))
202
+ return;
203
+ const input = coordinate;
204
+ const result = output;
205
+ const shared = typeof SharedArrayBuffer !== "undefined" && input.buffer instanceof SharedArrayBuffer && result.buffer instanceof SharedArrayBuffer;
206
+ if ((input.buffer === result.buffer || shared) && input.byteOffset < result.byteOffset + length * result.BYTES_PER_ELEMENT && result.byteOffset < input.byteOffset + input.byteLength)
207
+ throw new Error("Scalar input/output views overlap; use the same view for in-place projection");
208
+ }
209
+ function writeScalarOutput(coordinate, output, point, length) {
210
+ if (output instanceof Float32Array) {
211
+ if (Math.abs(point.x) > FLOAT32_MAX || Math.abs(point.y) > FLOAT32_MAX || length >= 3 && Math.abs(point.z) > FLOAT32_MAX)
212
+ throw new Error("Projected coordinate exceeds Float32 range");
213
+ for (let i = 3; i < coordinate.length; i++) {
214
+ const value = coordinate[i];
215
+ if (Number.isFinite(value) && Math.abs(value) > FLOAT32_MAX)
216
+ throw new Error("Trailing ordinate exceeds Float32 range");
217
+ }
218
+ }
219
+ for (let i = 3; i < coordinate.length; i++)
220
+ output[i] = coordinate[i];
221
+ output[0] = point.x;
222
+ output[1] = point.y;
223
+ if (length >= 3)
224
+ output[2] = point.z;
225
+ return output;
226
+ }
227
+
228
+ // dist/crs/spatial-reference.js
229
+ function inferCRSRepresentation(definition) {
230
+ if (typeof definition === "object") {
231
+ return "projjson";
232
+ }
233
+ const text = definition.trim();
234
+ if (/^[A-Z][A-Z0-9_]*\s*[\[(]/i.test(text)) {
235
+ return "wkt";
236
+ }
237
+ if (/(?:^|\s)\+?proj=/i.test(text)) {
238
+ return "proj-string";
239
+ }
240
+ if (/^[A-Z][A-Z0-9._-]*(?::[A-Z0-9._-]+)+$/i.test(text) || /^urn:ogc:def:crs:/i.test(text) || /^https?:\/\//i.test(text) || /^[A-Z][A-Z0-9._-]*$/i.test(text)) {
241
+ return "identifier";
242
+ }
243
+ return "opaque";
244
+ }
245
+
246
+ // dist/crs/proj-string.js
247
+ var PROJStringSyntaxError = class extends SyntaxError {
248
+ /** Create a PROJ string syntax error at a source location. */
249
+ constructor(message, source, offset) {
250
+ const location = getSourceLocation(source, offset);
251
+ super(`${message} at ${location.line}:${location.column}`);
252
+ this.name = "PROJStringSyntaxError";
253
+ this.offset = offset;
254
+ this.line = location.line;
255
+ this.column = location.column;
256
+ }
257
+ };
258
+ function parsePROJString(text) {
259
+ const tokens = tokenizePROJString(text);
260
+ if (tokens.length === 0) {
261
+ throw new PROJStringSyntaxError("PROJ string is empty", text, 0);
262
+ }
263
+ const parameters = tokens.map((token) => parseParameter(token.raw, token.offset, text));
264
+ return { type: "proj-string", parameters };
265
+ }
266
+ var DMS_VALUE = /^[+-]?\d+(?:\.\d*)?d(?:\d+(?:\.\d*)?'(?:\d+(?:\.\d*)?")?)?[NSEW]?$/i;
267
+ function parseParameter(rawToken, offset, source) {
268
+ const token = rawToken.startsWith("+") ? rawToken.slice(1) : rawToken;
269
+ if (!token) {
270
+ throw new PROJStringSyntaxError("Expected a parameter after '+'", source, offset);
271
+ }
272
+ const equalsIndex = token.indexOf("=");
273
+ const name = equalsIndex < 0 ? token : token.slice(0, equalsIndex);
274
+ if (!name || /[\s+=]/.test(name)) {
275
+ throw new PROJStringSyntaxError(`Invalid PROJ parameter name '${name}'`, source, offset);
276
+ }
277
+ if (equalsIndex < 0) {
278
+ return { type: "parameter", name };
279
+ }
280
+ const rawValue = token.slice(equalsIndex + 1);
281
+ const value = decodeParameterValue(rawValue, source, offset + equalsIndex + 1);
282
+ return { type: "parameter", name, value, rawValue };
283
+ }
284
+ function tokenizePROJString(source) {
285
+ const tokens = [];
286
+ let offset = 0;
287
+ while (offset < source.length) {
288
+ while (offset < source.length && /\s/.test(source[offset])) {
289
+ offset++;
290
+ }
291
+ if (offset >= source.length) {
292
+ break;
293
+ }
294
+ const start = offset;
295
+ let quote = null;
296
+ let escaped = false;
297
+ while (offset < source.length) {
298
+ const character = source[offset];
299
+ if (escaped) {
300
+ escaped = false;
301
+ offset++;
302
+ continue;
303
+ }
304
+ if (character === "\\" && quote) {
305
+ escaped = true;
306
+ offset++;
307
+ continue;
308
+ }
309
+ if (quote) {
310
+ if (character === quote) {
311
+ quote = null;
312
+ }
313
+ offset++;
314
+ continue;
315
+ }
316
+ if ((character === '"' || character === "'") && source[offset - 1] === "=") {
317
+ quote = character;
318
+ offset++;
319
+ continue;
320
+ }
321
+ if (/\s/.test(character)) {
322
+ break;
323
+ }
324
+ offset++;
325
+ }
326
+ if (quote) {
327
+ throw new PROJStringSyntaxError("Unterminated quoted PROJ value", source, start);
328
+ }
329
+ tokens.push({ raw: source.slice(start, offset), offset: start });
330
+ }
331
+ return tokens;
332
+ }
333
+ function decodeParameterValue(rawValue, source, offset) {
334
+ if (!rawValue) {
335
+ return "";
336
+ }
337
+ const first = rawValue[0];
338
+ if (first !== '"' && first !== "'") {
339
+ if ((rawValue.includes('"') || rawValue.includes("'")) && !DMS_VALUE.test(rawValue)) {
340
+ throw new PROJStringSyntaxError("Quote must begin a PROJ parameter value", source, offset);
341
+ }
342
+ return rawValue;
343
+ }
344
+ if (rawValue[rawValue.length - 1] !== first) {
345
+ throw new PROJStringSyntaxError("Unterminated quoted PROJ value", source, offset);
346
+ }
347
+ let value = "";
348
+ for (let index = 1; index < rawValue.length - 1; index++) {
349
+ const character = rawValue[index];
350
+ if (character === "\\" && index + 1 < rawValue.length - 1) {
351
+ value += rawValue[++index];
352
+ } else {
353
+ value += character;
354
+ }
355
+ }
356
+ return value;
357
+ }
358
+ function getSourceLocation(source, offset) {
359
+ let line = 1;
360
+ let column = 1;
361
+ for (let index = 0; index < offset && index < source.length; index++) {
362
+ if (source[index] === "\n") {
363
+ line++;
364
+ column = 1;
365
+ } else {
366
+ column++;
367
+ }
368
+ }
369
+ return { line, column };
370
+ }
371
+
372
+ // dist/projection/experimental/crs/types.js
373
+ var _a;
374
+ var CRS_ERROR = /* @__PURE__ */ Symbol.for("@math.gl/projection/TypeScriptCRSError");
375
+ var TypeScriptCRSError = class _TypeScriptCRSError extends Error {
376
+ static [(_a = CRS_ERROR, Symbol.hasInstance)](value) {
377
+ if (this !== _TypeScriptCRSError)
378
+ return Function.prototype[Symbol.hasInstance].call(this, value);
379
+ return value instanceof Error && value[CRS_ERROR] === true;
380
+ }
381
+ constructor(reason, message) {
382
+ super(message);
383
+ this.reason = reason;
384
+ this[_a] = true;
385
+ this.name = "TypeScriptCRSError";
386
+ }
387
+ };
388
+ function unsupportedStage(message) {
389
+ throw new TypeScriptCRSError("missing-transform-stage", message);
390
+ }
391
+
392
+ // dist/projection/experimental/crs/spatial-reference.js
393
+ function resolveCRSInput(input, options) {
394
+ if (typeof input === "string" || "type" in input)
395
+ return { definition: input, lossy: false };
396
+ const metadata = input;
397
+ const spatialReference = "crs" in metadata ? metadata : void 0;
398
+ const reference = "crs" in metadata ? metadata.crs : metadata;
399
+ if (reference.state !== "explicit" && reference.state !== "default")
400
+ throw new TypeScriptCRSError("unknown-syntax", "Cannot transform an " + reference.state + " CRS reference");
401
+ let lossy = false;
402
+ if ((spatialReference == null ? void 0 : spatialReference.coordinateEpoch) !== void 0)
403
+ unsupportedStage("Coordinate epochs require a time-dependent transformation");
404
+ if ((spatialReference == null ? void 0 : spatialReference.vertical) && spatialReference.vertical.state !== "absent") {
405
+ if (options.mode !== "horizontal")
406
+ unsupportedStage("A separately declared vertical CRS requires explicit horizontal extraction");
407
+ lossy = true;
408
+ }
409
+ return { definition: reference.definition, spatialReference, lossy };
410
+ }
411
+ function applySpatialReference(crs, reference) {
412
+ var _a2;
413
+ if (!reference)
414
+ return crs;
415
+ if (reference.coordinateFrame !== "unknown" && reference.coordinateFrame !== crs.kind)
416
+ throw new Error("SpatialReference coordinate frame disagrees with its CRS");
417
+ const order = reference.coordinateOrder;
418
+ const names = crs.kind === "geocentric" ? { x: "e", y: "n", z: "u" } : {
419
+ longitude: "e",
420
+ lon: "e",
421
+ latitude: "n",
422
+ lat: "n",
423
+ easting: "e",
424
+ northing: "n",
425
+ height: "u",
426
+ altitude: "u",
427
+ x: "e",
428
+ y: "n",
429
+ z: "u"
430
+ };
431
+ let storedAxis;
432
+ if (order.length) {
433
+ storedAxis = order.slice(0, 3).map((name) => names[name.toLowerCase()] || "?").join("");
434
+ if (storedAxis.length === 2)
435
+ storedAxis += "u";
436
+ if (storedAxis.length !== 3 || !storedAxis.includes("e") || !storedAxis.includes("n") || !storedAxis.includes("u"))
437
+ unsupportedStage("Unsupported SpatialReference coordinate order");
438
+ if (order.length > 4 || order.length > 3 && !["m", "measure"].includes(order[3]))
439
+ unsupportedStage("Unsupported fourth coordinate component");
440
+ }
441
+ if ((_a2 = reference.units) == null ? void 0 : _a2.length) {
442
+ const units = {
443
+ m: 1,
444
+ meter: 1,
445
+ metre: 1,
446
+ meters: 1,
447
+ metres: 1,
448
+ km: 1e3,
449
+ ft: 0.3048,
450
+ "us-ft": 1200 / 3937,
451
+ degree: Math.PI / 180,
452
+ degrees: Math.PI / 180,
453
+ radian: 1,
454
+ radians: 1,
455
+ grad: Math.PI / 200
456
+ };
457
+ for (let i = 0; i < Math.min(reference.units.length, 3); i++) {
458
+ const vertical = (storedAxis || "enu")[i] === "u";
459
+ const expected = crs.kind === "geocentric" ? crs.toMeter : vertical ? crs.verticalUnit : crs.kind === "geographic" ? crs.angularUnit : crs.toMeter;
460
+ if (Math.abs((units[reference.units[i]] ?? NaN) - expected) > 1e-12 || units[reference.units[i]] === void 0)
461
+ unsupportedStage("SpatialReference units disagree with its CRS");
462
+ }
463
+ }
464
+ return Object.freeze({ ...crs, storedAxis });
465
+ }
466
+
467
+ // dist/projection/experimental/parameters.js
468
+ var DEGREES_TO_RADIANS = Math.PI / 180;
469
+ function numberParameter(parameters, name, fallback) {
470
+ if (!Object.prototype.hasOwnProperty.call(parameters, name))
471
+ return fallback;
472
+ const value = parameters[name];
473
+ if (typeof value !== "string" || !/^[+-]?(?:\d+\.?\d*|\.\d+)(?:e[+-]?\d+)?$/i.test(value)) {
474
+ throw new Error(`Invalid numeric PROJ parameter: +${name}`);
475
+ }
476
+ const number = Number(value);
477
+ if (!Number.isFinite(number))
478
+ throw new Error(`Invalid numeric PROJ parameter: +${name}`);
479
+ return number;
480
+ }
481
+ function wrapLongitude(longitude, over = false) {
482
+ if (over || Math.abs(longitude) <= Math.PI)
483
+ return longitude;
484
+ const circle = 2 * Math.PI;
485
+ return ((longitude + Math.PI) % circle + circle) % circle - Math.PI;
486
+ }
487
+
488
+ // dist/projection/experimental/crs/datum-catalog.js
489
+ var wgs84 = { towgs84: "0,0,0", ellipse: "WGS84" };
490
+ var nad83 = { towgs84: "0,0,0", ellipse: "GRS80" };
491
+ var builtins = {
492
+ wgs84,
493
+ WGS84: wgs84,
494
+ nad83,
495
+ North_American_Datum_1983: nad83
496
+ };
497
+ var resolved = /* @__PURE__ */ new WeakMap();
498
+ var datumNameKey = (name) => name.toLowerCase().replace(/[\s_-]/g, "");
499
+ function getDatumDefinitions(options) {
500
+ var _a2;
501
+ if (!((_a2 = options.datumCatalogs) == null ? void 0 : _a2.length))
502
+ return builtins;
503
+ const cached = resolved.get(options);
504
+ if ((cached == null ? void 0 : cached.catalogs) === options.datumCatalogs)
505
+ return cached.definitions;
506
+ const definitions = Object.assign(/* @__PURE__ */ Object.create(null), builtins);
507
+ const names = new Map(Object.entries(builtins).map(([name, definition]) => [
508
+ datumNameKey(name),
509
+ { definition, owner: -1 }
510
+ ]));
511
+ options.datumCatalogs.forEach((catalog, owner) => {
512
+ if (!catalog.name || !catalog.datums)
513
+ throw new Error("Invalid datum catalogue plugin");
514
+ for (const [name, definition] of Object.entries(catalog.datums)) {
515
+ const key = datumNameKey(name);
516
+ if (!key || key === "none" || !definition || ["ellipse", "towgs84", "nadgrids"].some((field) => definition[field] !== void 0 && typeof definition[field] !== "string"))
517
+ throw new Error("Invalid datum definition: " + name);
518
+ const previous = names.get(key);
519
+ if (previous && (previous.owner !== owner || previous.definition.ellipse !== definition.ellipse || previous.definition.towgs84 !== definition.towgs84 || previous.definition.nadgrids !== definition.nadgrids))
520
+ throw new Error("Conflicting datum registration: " + name);
521
+ names.set(key, { definition, owner });
522
+ definitions[name] = definition;
523
+ }
524
+ });
525
+ resolved.set(options, { catalogs: options.datumCatalogs, definitions });
526
+ return definitions;
527
+ }
528
+
529
+ // dist/projection/experimental/crs/ellipsoid-table.js
530
+ var ellipsoids = {
531
+ MERIT: {
532
+ a: 6378137,
533
+ rf: 298.257,
534
+ ellipseName: "MERIT 1983"
535
+ },
536
+ SGS85: {
537
+ a: 6378136,
538
+ rf: 298.257,
539
+ ellipseName: "Soviet Geodetic System 85"
540
+ },
541
+ GRS80: {
542
+ a: 6378137,
543
+ rf: 298.257222101,
544
+ ellipseName: "GRS 1980(IUGG, 1980)"
545
+ },
546
+ IAU76: {
547
+ a: 6378140,
548
+ rf: 298.257,
549
+ ellipseName: "IAU 1976"
550
+ },
551
+ airy: {
552
+ a: 6377563396e-3,
553
+ b: 635625691e-2,
554
+ ellipseName: "Airy 1830"
555
+ },
556
+ APL4: {
557
+ a: 6378137,
558
+ rf: 298.25,
559
+ ellipseName: "Appl. Physics. 1965"
560
+ },
561
+ NWL9D: {
562
+ a: 6378145,
563
+ rf: 298.25,
564
+ ellipseName: "Naval Weapons Lab., 1965"
565
+ },
566
+ mod_airy: {
567
+ a: 6377340189e-3,
568
+ b: 6356034446e-3,
569
+ ellipseName: "Modified Airy"
570
+ },
571
+ andrae: {
572
+ a: 637710443e-2,
573
+ rf: 300,
574
+ ellipseName: "Andrae 1876 (Den., Iclnd.)"
575
+ },
576
+ aust_SA: {
577
+ a: 6378160,
578
+ rf: 298.25,
579
+ ellipseName: "Australian Natl & S. Amer. 1969"
580
+ },
581
+ GRS67: {
582
+ a: 6378160,
583
+ rf: 298.247167427,
584
+ ellipseName: "GRS 67(IUGG 1967)"
585
+ },
586
+ bessel: {
587
+ a: 6377397155e-3,
588
+ rf: 299.1528128,
589
+ ellipseName: "Bessel 1841"
590
+ },
591
+ bess_nam: {
592
+ a: 6377483865e-3,
593
+ rf: 299.1528128,
594
+ ellipseName: "Bessel 1841 (Namibia)"
595
+ },
596
+ clrk66: {
597
+ a: 63782064e-1,
598
+ b: 63565838e-1,
599
+ ellipseName: "Clarke 1866"
600
+ },
601
+ clrk80: {
602
+ a: 6378249145e-3,
603
+ rf: 293.4663,
604
+ ellipseName: "Clarke 1880 mod."
605
+ },
606
+ clrk80ign: {
607
+ a: 63782492e-1,
608
+ b: 6356515,
609
+ rf: 293.4660213,
610
+ ellipseName: "Clarke 1880 (IGN)"
611
+ },
612
+ clrk58: {
613
+ a: 6378293645208759e-9,
614
+ rf: 294.2606763692654,
615
+ ellipseName: "Clarke 1858"
616
+ },
617
+ CPM: {
618
+ a: 63757387e-1,
619
+ rf: 334.29,
620
+ ellipseName: "Comm. des Poids et Mesures 1799"
621
+ },
622
+ delmbr: {
623
+ a: 6376428,
624
+ rf: 311.5,
625
+ ellipseName: "Delambre 1810 (Belgium)"
626
+ },
627
+ engelis: {
628
+ a: 637813605e-2,
629
+ rf: 298.2566,
630
+ ellipseName: "Engelis 1985"
631
+ },
632
+ evrst30: {
633
+ a: 6377276345e-3,
634
+ rf: 300.8017,
635
+ ellipseName: "Everest 1830"
636
+ },
637
+ evrst48: {
638
+ a: 6377304063e-3,
639
+ rf: 300.8017,
640
+ ellipseName: "Everest 1948"
641
+ },
642
+ evrst56: {
643
+ a: 6377301243e-3,
644
+ rf: 300.8017,
645
+ ellipseName: "Everest 1956"
646
+ },
647
+ evrst69: {
648
+ a: 6377295664e-3,
649
+ rf: 300.8017,
650
+ ellipseName: "Everest 1969"
651
+ },
652
+ evrstSS: {
653
+ a: 6377298556e-3,
654
+ rf: 300.8017,
655
+ ellipseName: "Everest (Sabah & Sarawak)"
656
+ },
657
+ fschr60: {
658
+ a: 6378166,
659
+ rf: 298.3,
660
+ ellipseName: "Fischer (Mercury Datum) 1960"
661
+ },
662
+ fschr60m: {
663
+ a: 6378155,
664
+ rf: 298.3,
665
+ ellipseName: "Fischer 1960"
666
+ },
667
+ fschr68: {
668
+ a: 6378150,
669
+ rf: 298.3,
670
+ ellipseName: "Fischer 1968"
671
+ },
672
+ helmert: {
673
+ a: 6378200,
674
+ rf: 298.3,
675
+ ellipseName: "Helmert 1906"
676
+ },
677
+ hough: {
678
+ a: 6378270,
679
+ rf: 297,
680
+ ellipseName: "Hough"
681
+ },
682
+ intl: {
683
+ a: 6378388,
684
+ rf: 297,
685
+ ellipseName: "International 1909 (Hayford)"
686
+ },
687
+ kaula: {
688
+ a: 6378163,
689
+ rf: 298.24,
690
+ ellipseName: "Kaula 1961"
691
+ },
692
+ lerch: {
693
+ a: 6378139,
694
+ rf: 298.257,
695
+ ellipseName: "Lerch 1979"
696
+ },
697
+ mprts: {
698
+ a: 6397300,
699
+ rf: 191,
700
+ ellipseName: "Maupertius 1738"
701
+ },
702
+ new_intl: {
703
+ a: 63781575e-1,
704
+ b: 63567722e-1,
705
+ ellipseName: "New International 1967"
706
+ },
707
+ plessis: {
708
+ a: 6376523,
709
+ b: 6355863,
710
+ ellipseName: "Plessis 1817 (France)"
711
+ },
712
+ krass: {
713
+ a: 6378245,
714
+ rf: 298.3,
715
+ ellipseName: "Krassovsky, 1942"
716
+ },
717
+ SEasia: {
718
+ a: 6378155,
719
+ b: 63567733205e-4,
720
+ ellipseName: "Southeast Asia"
721
+ },
722
+ walbeck: {
723
+ a: 6376896,
724
+ b: 63558348467e-4,
725
+ ellipseName: "Walbeck"
726
+ },
727
+ WGS60: {
728
+ a: 6378165,
729
+ rf: 298.3,
730
+ ellipseName: "WGS 60"
731
+ },
732
+ WGS66: {
733
+ a: 6378145,
734
+ rf: 298.25,
735
+ ellipseName: "WGS 66"
736
+ },
737
+ WGS72: {
738
+ a: 6378135,
739
+ rf: 298.26,
740
+ ellipseName: "WGS 72"
741
+ },
742
+ WGS84: {
743
+ a: 6378137,
744
+ rf: 298.257223563,
745
+ ellipseName: "WGS 84"
746
+ },
747
+ sphere: {
748
+ a: 6370997,
749
+ b: 6370997,
750
+ ellipseName: "Normal Sphere (r=6370997)"
751
+ }
752
+ };
753
+ var ellipsoid_table_default = ellipsoids;
754
+
755
+ // dist/projection/experimental/crs/primemeridian-table.js
756
+ var primeMeridian = {};
757
+ primeMeridian["greenwich"] = 0;
758
+ primeMeridian["lisbon"] = -9.131906111111;
759
+ primeMeridian["paris"] = 2.337229166667;
760
+ primeMeridian["bogota"] = -74.080916666667;
761
+ primeMeridian["madrid"] = -3.687938888889;
762
+ primeMeridian["rome"] = 12.452333333333;
763
+ primeMeridian["bern"] = 7.439583333333;
764
+ primeMeridian["jakarta"] = 106.807719444444;
765
+ primeMeridian["ferro"] = -17.666666666667;
766
+ primeMeridian["brussels"] = 4.367975;
767
+ primeMeridian["stockholm"] = 18.058277777778;
768
+ primeMeridian["athens"] = 23.7163375;
769
+ primeMeridian["oslo"] = 10.722916666667;
770
+ var primemeridian_table_default = primeMeridian;
771
+
772
+ // dist/crs/units-table.js
773
+ var linearUnits = {
774
+ m: { name: "meters", metersPerUnit: 1 },
775
+ mm: { name: "millimeters", metersPerUnit: 1e-3 },
776
+ cm: { name: "centimeters", metersPerUnit: 0.01 },
777
+ ft: { name: "feet", metersPerUnit: 0.3048 },
778
+ "us-ft": { name: "us-survey-feet", metersPerUnit: 1200 / 3937 },
779
+ fath: { name: "fathoms", metersPerUnit: 1.8288 },
780
+ kmi: { name: "nautical-miles", metersPerUnit: 1852 },
781
+ "us-ch": { name: "us-survey-chains", metersPerUnit: 20.1168402336805 },
782
+ "us-mi": { name: "us-survey-miles", metersPerUnit: 1609.34721869444 },
783
+ km: { name: "kilometers", metersPerUnit: 1e3 },
784
+ "ind-ft": { name: "indian-feet", metersPerUnit: 0.30479841 },
785
+ "ind-yd": { name: "indian-yards", metersPerUnit: 0.91439523 },
786
+ mi: { name: "miles", metersPerUnit: 1609.344 },
787
+ yd: { name: "yards", metersPerUnit: 0.9144 },
788
+ ch: { name: "chains", metersPerUnit: 20.1168 },
789
+ link: { name: "links", metersPerUnit: 0.201168 },
790
+ dm: { name: "decimeters", metersPerUnit: 0.1 },
791
+ in: { name: "inches", metersPerUnit: 0.0254 },
792
+ "ind-ch": { name: "indian-chains", metersPerUnit: 20.11669506 },
793
+ "us-in": { name: "us-survey-inches", metersPerUnit: 0.025400050800101 },
794
+ "us-yd": { name: "us-survey-yards", metersPerUnit: 0.914401828803658 }
795
+ };
796
+
797
+ // dist/crs/crs-metadata.js
798
+ function getCRSSignature(crs) {
799
+ return JSON.stringify([
800
+ crs.coordinateFrame,
801
+ crs.projection,
802
+ Object.keys(crs.parameters).sort().map((key) => [key, crs.parameters[key]]),
803
+ [crs.ellipsoid.semiMajorAxis, crs.ellipsoid.semiMinorAxis],
804
+ crs.axis,
805
+ [crs.xUnit.name, crs.xUnit.metersPerUnit, crs.xUnit.degreesPerUnit],
806
+ [crs.yUnit.name, crs.yUnit.metersPerUnit, crs.yUnit.degreesPerUnit],
807
+ [crs.zUnit.name, crs.zUnit.metersPerUnit, crs.zUnit.degreesPerUnit],
808
+ crs.lossy,
809
+ crs.areaOfUse
810
+ ]);
811
+ }
812
+
813
+ // dist/projection/experimental/crs/normalize.js
814
+ var ALIASES = {
815
+ WGS84: "+proj=longlat +datum=WGS84",
816
+ "EPSG:4326": "+proj=longlat +datum=WGS84",
817
+ "EPSG:4269": "+proj=longlat +datum=NAD83",
818
+ "EPSG:4978": "+proj=geocent +datum=WGS84",
819
+ "EPSG:4979": "+proj=longlat +datum=WGS84",
820
+ "EPSG:3857": "+proj=merc +a=6378137 +b=6378137 +nadgrids=@null +units=m",
821
+ "EPSG:3785": "EPSG:3857",
822
+ GOOGLE: "EPSG:3857",
823
+ "EPSG:900913": "EPSG:3857",
824
+ "EPSG:102113": "EPSG:3857"
825
+ };
826
+ var CORE_PARAMETERS = [
827
+ "proj",
828
+ "datum",
829
+ "ellps",
830
+ "a",
831
+ "b",
832
+ "rf",
833
+ "f",
834
+ "R",
835
+ "units",
836
+ "to_meter",
837
+ "vunits",
838
+ "vto_meter",
839
+ "no_defs",
840
+ "type",
841
+ "title",
842
+ "towgs84",
843
+ "nadgrids",
844
+ "geoidgrids",
845
+ "axis",
846
+ "pm",
847
+ "over",
848
+ "lon_wrap"
849
+ ];
850
+ var CORE_FLAGS = ["no_defs", "over"];
851
+ var own = (object, key) => Object.prototype.hasOwnProperty.call(object, key);
852
+ var keyOf = (value) => value.toLowerCase().replace(/[\s_-]/g, "");
853
+ function lookup(table, name) {
854
+ const key = Object.keys(table).find((key2) => keyOf(key2) === keyOf(name));
855
+ return key === void 0 ? void 0 : table[key];
856
+ }
857
+ function parseAngle(text) {
858
+ if (/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i.test(text)) {
859
+ const value = Number(text);
860
+ if (Number.isFinite(value))
861
+ return value;
862
+ }
863
+ if (/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?r$/i.test(text)) {
864
+ const value = Number(text.slice(0, -1)) / DEGREES_TO_RADIANS;
865
+ if (Number.isFinite(value))
866
+ return value;
867
+ }
868
+ const dms = /^([+-]?)(\d+(?:\.\d*)?)(?:d(?:(\d+(?:\.\d*)?)'(?:(\d+(?:\.\d*)?)")?)?)?([NSEW])?$/i.exec(text);
869
+ if (dms && (/d/i.test(text) || dms[5])) {
870
+ const minutes = Number(dms[3] || 0), seconds = Number(dms[4] || 0);
871
+ if (minutes < 60 && seconds < 60) {
872
+ const sign = dms[1] === "-" ? -1 : 1;
873
+ const direction = /[SW]/i.test(dms[5] || "") ? -1 : 1;
874
+ const value = sign * direction * (Number(dms[2]) + minutes / 60 + seconds / 3600);
875
+ if (Number.isFinite(value))
876
+ return value;
877
+ }
878
+ }
879
+ throw new Error("Invalid angular parameter: " + text);
880
+ }
881
+ function normalizeCRS(input, options = {}) {
882
+ var _a2;
883
+ const datums = getDatumDefinitions(options);
884
+ const resolved2 = resolveCRSInput(input, options);
885
+ let definition = resolved2.definition;
886
+ const aliases = options.aliases || {};
887
+ const visited = /* @__PURE__ */ new Set();
888
+ while (typeof definition === "string" && (own(aliases, definition) || own(ALIASES, definition))) {
889
+ if (visited.has(definition))
890
+ throw new Error("Circular CRS alias: " + definition);
891
+ visited.add(definition);
892
+ definition = own(aliases, definition) ? aliases[definition] : ALIASES[definition];
893
+ }
894
+ if (typeof definition === "string") {
895
+ const utm = /^EPSG:(326|327)(\d{2})$/.exec(definition);
896
+ if (utm && Number(utm[2]) >= 1 && Number(utm[2]) <= 60) {
897
+ definition = "+proj=utm +datum=WGS84 +zone=" + Number(utm[2]) + (utm[1] === "327" ? " +south" : "");
898
+ }
899
+ if (definition === "EPSG:5041" || definition === "EPSG:5042") {
900
+ definition = "+proj=stere +datum=WGS84 +lat_0=" + (definition === "EPSG:5041" ? 90 : -90) + " +k_0=0.994 +x_0=2000000 +y_0=2000000";
901
+ }
902
+ }
903
+ let parsed;
904
+ if (inferCRSRepresentation(definition) === "proj-string" && typeof definition === "string") {
905
+ const parameters2 = /* @__PURE__ */ Object.create(null);
906
+ for (const parameter of parsePROJString(definition).parameters) {
907
+ if (own(parameters2, parameter.name))
908
+ throw new Error("Duplicate PROJ parameter: +" + parameter.name);
909
+ parameters2[parameter.name] = parameter.value;
910
+ }
911
+ parsed = { parameters: parameters2 };
912
+ } else {
913
+ const parser = (_a2 = options.parsers) == null ? void 0 : _a2.find((candidate) => candidate.canParse(definition));
914
+ if (!parser) {
915
+ const serialized = ["wkt", "projjson"].includes(inferCRSRepresentation(definition));
916
+ throw new TypeScriptCRSError(serialized ? "missing-parser" : "unknown-syntax", "Unsupported CRS definition; register a WKT or PROJJSON parser for structured definitions");
917
+ }
918
+ parsed = parser.parse(definition, options);
919
+ }
920
+ const parameters = { ...parsed.parameters };
921
+ for (const name2 of [
922
+ "lon_0",
923
+ "lat_0",
924
+ "lat_1",
925
+ "lat_2",
926
+ "lat_ts",
927
+ "lon_wrap",
928
+ "lon_1",
929
+ "lon_2",
930
+ "lonc",
931
+ "alpha",
932
+ "gamma",
933
+ "tilt",
934
+ "azi",
935
+ "o_alpha",
936
+ "o_lon_c",
937
+ "o_lat_c",
938
+ "o_lon_p",
939
+ "o_lat_p",
940
+ "o_lon_1",
941
+ "o_lat_1",
942
+ "o_lon_2",
943
+ "o_lat_2"
944
+ ]) {
945
+ if (parameters[name2] !== void 0)
946
+ parameters[name2] = String(parseAngle(parameters[name2]));
947
+ }
948
+ const suppliedName = parameters["proj"];
949
+ const lowerName = suppliedName == null ? void 0 : suppliedName.toLowerCase();
950
+ const name = lowerName === "geocentric" ? "geocent" : ["longlat", "latlong", "latlon", "lonlat", "identity", "geocent"].includes(lowerName) ? lowerName : suppliedName;
951
+ if (!name)
952
+ throw new Error("CRS requires +proj");
953
+ const kind = ["longlat", "latlong", "latlon", "lonlat"].includes(name) ? "geographic" : name === "geocent" ? "geocentric" : name === "identity" ? "identity" : "projected";
954
+ const datumName = parameters["datum"];
955
+ const datum = datumName && datumName !== "none" ? lookup(datums, datumName) : void 0;
956
+ if (datumName && datumName !== "none" && !datum)
957
+ unsupportedStage("Unknown datum: " + datumName + "; register a datumCatalogs plugin");
958
+ const ellipsoid = getEllipsoid(parameters, datum == null ? void 0 : datum.ellipse);
959
+ const grids = parameters["nadgrids"] ?? (datum == null ? void 0 : datum.nadgrids);
960
+ const gridReferences = grids === void 0 ? void 0 : grids.split(",").map((entry) => {
961
+ const optional = entry.startsWith("@");
962
+ const name2 = optional ? entry.slice(1) : entry;
963
+ if (!name2 || /\s/.test(name2))
964
+ throw new Error("Invalid datum grid name");
965
+ return Object.freeze({ name: name2, optional });
966
+ });
967
+ const rawShift = parameters["towgs84"] ?? (datum == null ? void 0 : datum.towgs84);
968
+ let shift;
969
+ if (rawShift !== void 0) {
970
+ shift = rawShift.split(",").map((value) => numberParameter({ value }, "value", NaN));
971
+ if (![3, 7].includes(shift.length) || shift.some((value) => !Number.isFinite(value)) || shift.length === 7 && shift[6] <= -1e6) {
972
+ throw new Error("+towgs84 requires three or seven finite values and positive scale");
973
+ }
974
+ }
975
+ if (datumName === "none")
976
+ shift = void 0;
977
+ if (gridReferences && datumName !== "none")
978
+ shift = [0, 0, 0];
979
+ const datumEllipsoid = grids === "@null" || grids === "null" ? getEllipsoid({ ellps: "WGS84" }) : ellipsoid;
980
+ const axis = parameters["axis"] || "enu";
981
+ if (axis.length !== 3 || !/[ew]/.test(axis) || !/[ns]/.test(axis) || !/[ud]/.test(axis))
982
+ throw new Error("Invalid axis: " + axis);
983
+ const angularUnit = parsed.angularUnit ?? DEGREES_TO_RADIANS;
984
+ if (kind === "geographic" && (parameters["units"] && parameters["units"] !== "degrees" || own(parameters, "to_meter")))
985
+ throw new Error("Geographic coordinates must use angular units");
986
+ if (kind !== "geographic" && parameters["units"] === "degrees")
987
+ throw new Error("Linear coordinates require linear units");
988
+ const toMeter = unitFactor(parameters, "units", "to_meter");
989
+ const verticalUnit = parsed.verticalUnit ?? unitFactor(parameters, "vunits", "vto_meter");
990
+ if (!(verticalUnit > 0) || !Number.isFinite(verticalUnit))
991
+ throw new Error("Invalid vertical unit");
992
+ if (!(angularUnit > 0) || !Number.isFinite(angularUnit))
993
+ throw new Error("Invalid angular unit");
994
+ const pm = parameters["pm"];
995
+ const primeMeridian2 = pm === void 0 ? 0 : (lookup(primemeridian_table_default, pm) ?? parseAngle(pm)) * DEGREES_TO_RADIANS;
996
+ return applySpatialReference(Object.freeze({
997
+ kind,
998
+ projection: name,
999
+ parameters: Object.freeze(parameters),
1000
+ ellipsoid,
1001
+ datum: Object.freeze({
1002
+ ellipsoid: datumEllipsoid,
1003
+ towgs84: shift && Object.freeze(shift),
1004
+ grids: datumName === "none" || grids === "@null" || grids === "null" ? void 0 : gridReferences && Object.freeze(gridReferences)
1005
+ }),
1006
+ areaOfUse: parsed.areaOfUse,
1007
+ angularUnit,
1008
+ toMeter,
1009
+ verticalUnit,
1010
+ primeMeridian: primeMeridian2,
1011
+ axis,
1012
+ longitudeWrap: parameters["lon_wrap"] === void 0 ? void 0 : Number(parameters["lon_wrap"]) * DEGREES_TO_RADIANS,
1013
+ lossy: Boolean(parsed.lossy || resolved2.lossy)
1014
+ }), resolved2.spatialReference);
1015
+ }
1016
+ function unitFactor(parameters, unitKey, factorKey) {
1017
+ const unit = parameters[unitKey];
1018
+ const table = linearUnits;
1019
+ if (unitKey === "vunits" && unit === "degrees")
1020
+ throw new Error("Height requires linear units");
1021
+ if (unit && !["m", "degrees"].includes(unit) && !own(table, unit))
1022
+ throw new Error("Unsupported units: " + unit);
1023
+ const factor = numberParameter(parameters, factorKey, unit && table[unit] ? table[unit].metersPerUnit : 1);
1024
+ if (!(factor > 0))
1025
+ throw new Error("+" + factorKey + " must be positive");
1026
+ return factor;
1027
+ }
1028
+ function getEllipsoid(parameters, datumEllipsoid) {
1029
+ const name = datumEllipsoid || parameters["ellps"] || "WGS84";
1030
+ const definition = lookup(ellipsoid_table_default, name);
1031
+ if (!definition)
1032
+ throw new Error("Unsupported ellipsoid: " + name);
1033
+ const a = numberParameter(parameters, "a", definition.a);
1034
+ const f = numberParameter(parameters, "f", NaN);
1035
+ const rf = numberParameter(parameters, "rf", Number.isNaN(f) ? definition.rf || 0 : f === 0 ? 0 : 1 / f);
1036
+ const b = numberParameter(parameters, "b", rf ? a * (1 - 1 / rf) : own(parameters, "f") || own(parameters, "rf") || own(parameters, "a") ? a : definition.b || a);
1037
+ const radius = numberParameter(parameters, "R", 0);
1038
+ if (a <= 0 || b <= 0 || b > a || rf < 0 || rf > 0 && rf <= 1 || own(parameters, "R") && radius <= 0 || !Number.isNaN(f) && (f < 0 || f >= 1))
1039
+ throw new Error("Invalid ellipsoid dimensions");
1040
+ return Object.freeze({
1041
+ semiMajorAxis: radius || a,
1042
+ semiMinorAxis: radius || b,
1043
+ eccentricitySquared: radius ? 0 : 1 - (b / a) ** 2
1044
+ });
1045
+ }
1046
+
1047
+ // dist/projection/experimental/datum.js
1048
+ var import_spheroid = require("@math.gl/core/spheroid");
1049
+ var ARC_SECOND = Math.PI / (180 * 3600);
1050
+ var WGS84 = {
1051
+ ellipsoid: {
1052
+ semiMajorAxis: 6378137,
1053
+ semiMinorAxis: 6356752314245179e-9,
1054
+ eccentricitySquared: 0.0066943799901413165
1055
+ },
1056
+ towgs84: [0, 0, 0]
1057
+ };
1058
+ function geodeticToGeocentricInPlace(point, ellipsoid) {
1059
+ if (Math.abs(point.y) > Math.PI / 2)
1060
+ throw new Error("Latitude outside geocentric domain");
1061
+ if (!(0, import_spheroid.spheroidToCartesian)(point, ellipsoid))
1062
+ throw new Error("Geocentric coordinate must be finite");
1063
+ }
1064
+ function geocentricToGeodeticInPlace(point, ellipsoid) {
1065
+ const x = point.x, y = point.y, z = point.z;
1066
+ const { semiMajorAxis: a, semiMinorAxis: b, eccentricitySquared: es } = ellipsoid;
1067
+ if (x === 0 && y === 0 && z === 0)
1068
+ throw new Error("Geodetic coordinates are undefined at the Earth center");
1069
+ if (es !== 0 && Math.abs(x) < 1e-12 * a && Math.abs(y) < 1e-12 * a && Math.hypot(x, y) < 1e-12 * a) {
1070
+ if (!Number.isFinite(Math.hypot(x, y, z)))
1071
+ throw new Error("Geocentric radius must be finite");
1072
+ point.x = 0;
1073
+ point.y = Math.sign(z) * Math.PI / 2;
1074
+ point.z = Math.abs(z) - b;
1075
+ return;
1076
+ }
1077
+ if (!(0, import_spheroid.cartesianToSpheroid)(point, ellipsoid)) {
1078
+ if (!Number.isFinite(Math.hypot(x, y, z)))
1079
+ throw new Error("Geocentric radius must be finite");
1080
+ throw new Error("Geocentric inverse did not converge");
1081
+ }
1082
+ }
1083
+ function createHelmert(values, inverse) {
1084
+ const dx = values[0], dy = values[1], dz = values[2];
1085
+ const rx = (values[3] || 0) * ARC_SECOND, ry = (values[4] || 0) * ARC_SECOND, rz = (values[5] || 0) * ARC_SECOND;
1086
+ const scale = 1 + (values[6] || 0) / 1e6;
1087
+ return inverse ? (point) => {
1088
+ const x = (point.x - dx) / scale, y = (point.y - dy) / scale, z = (point.z - dz) / scale;
1089
+ point.x = x + rz * y - ry * z;
1090
+ point.y = -rz * x + y + rx * z;
1091
+ point.z = ry * x - rx * y + z;
1092
+ } : (point) => {
1093
+ const x = point.x, y = point.y, z = point.z;
1094
+ point.x = scale * (x - rz * y + ry * z) + dx;
1095
+ point.y = scale * (rz * x + y - rx * z) + dy;
1096
+ point.z = scale * (-ry * x + rx * y + z) + dz;
1097
+ };
1098
+ }
1099
+ function shifted(datum) {
1100
+ var _a2;
1101
+ return Boolean((_a2 = datum.towgs84) == null ? void 0 : _a2.some((value) => value !== 0));
1102
+ }
1103
+ function createDatumTransform(source, destination) {
1104
+ if (!source.towgs84 || !destination.towgs84)
1105
+ return void 0;
1106
+ if (source.grids || destination.grids) {
1107
+ if (source.grids && destination.grids && source.ellipsoid.semiMajorAxis === destination.ellipsoid.semiMajorAxis && source.ellipsoid.eccentricitySquared === destination.ellipsoid.eccentricitySquared && source.grids.length === destination.grids.length && source.grids.every((entry, i) => entry.name === destination.grids[i].name && entry.optional === destination.grids[i].optional && entry.grid === destination.grids[i].grid))
1108
+ return void 0;
1109
+ const middle = createDatumTransform(source.grids ? WGS84 : source, destination.grids ? WGS84 : destination);
1110
+ return (point) => {
1111
+ if (source.grids)
1112
+ applyDatumGrids(point, source, false);
1113
+ middle == null ? void 0 : middle(point);
1114
+ if (destination.grids)
1115
+ applyDatumGrids(point, destination, true);
1116
+ };
1117
+ }
1118
+ if (shifted(source) || shifted(destination)) {
1119
+ const first = convertDatum(source, WGS84), second = convertDatum(WGS84, destination);
1120
+ return (point) => {
1121
+ first == null ? void 0 : first(point);
1122
+ second == null ? void 0 : second(point);
1123
+ };
1124
+ }
1125
+ return convertDatum(source, destination);
1126
+ }
1127
+ function convertDatum(from, to) {
1128
+ if (!from.towgs84 || !to.towgs84)
1129
+ return void 0;
1130
+ const a = from.ellipsoid, b = to.ellipsoid;
1131
+ let sameParameters = true;
1132
+ for (let i = 0; i < 7; i++)
1133
+ if ((from.towgs84[i] || 0) !== (to.towgs84[i] || 0))
1134
+ sameParameters = false;
1135
+ if (a.semiMajorAxis === b.semiMajorAxis && Math.abs(a.eccentricitySquared - b.eccentricitySquared) <= 5e-11 && sameParameters)
1136
+ return void 0;
1137
+ const sourceShift = shifted(from) ? createHelmert(from.towgs84, false) : void 0, targetShift = shifted(to) ? createHelmert(to.towgs84, true) : void 0;
1138
+ return (point) => {
1139
+ geodeticToGeocentricInPlace(point, a);
1140
+ sourceShift == null ? void 0 : sourceShift(point);
1141
+ targetShift == null ? void 0 : targetShift(point);
1142
+ geocentricToGeodeticInPlace(point, b);
1143
+ };
1144
+ }
1145
+ function applyDatumGrids(point, datum, inverse) {
1146
+ for (const reference of datum.grids) {
1147
+ if (reference.name === "null")
1148
+ return;
1149
+ if (!reference.grid) {
1150
+ if (reference.optional)
1151
+ continue;
1152
+ throw new Error("Required datum grid is not registered: " + reference.name);
1153
+ }
1154
+ let found = false;
1155
+ if (reference.grid.shiftInPlace)
1156
+ found = reference.grid.shiftInPlace(point, inverse);
1157
+ else {
1158
+ const output = reference.grid.shift(point.x, point.y, inverse);
1159
+ if (output) {
1160
+ point.x = output[0];
1161
+ point.y = output[1];
1162
+ found = true;
1163
+ }
1164
+ }
1165
+ if (found) {
1166
+ if (!Number.isFinite(point.x) || !Number.isFinite(point.y) || Math.abs(point.y) > Math.PI / 2)
1167
+ throw new Error("Datum grid produced a coordinate outside the geographic domain");
1168
+ return;
1169
+ }
1170
+ }
1171
+ throw new Error("No datum grid covers coordinate: " + datum.grids.map((grid) => grid.name).join(","));
1172
+ }
1173
+
1174
+ // dist/projection/experimental/rendering-profile/rectangular-rendering-profile.js
1175
+ function normalizeCoverage(point, coverage, center = 0, over = false) {
1176
+ const span = getLongitudeSpan(coverage);
1177
+ const west = span === 360 ? center - 180 : coverage[0] + Math.round((center - coverage[0] - span / 2) / 360) * 360;
1178
+ const east = west + span;
1179
+ if (over) {
1180
+ point.x = Math.max(west, Math.min(east, point.x));
1181
+ point.y = Math.max(coverage[1], Math.min(coverage[3], point.y));
1182
+ return;
1183
+ }
1184
+ const best = clampGeographicPoint(coverage, [point.x, point.y]);
1185
+ let longitude = best[0];
1186
+ if (best[0] === normalizeLongitude(point.x) && point.x >= west && point.x <= east)
1187
+ longitude = point.x;
1188
+ else if (longitude < west || longitude > east)
1189
+ longitude += Math.round(((west + east) / 2 - longitude) / 360) * 360;
1190
+ const offset = longitude - center;
1191
+ point.x = Math.abs(offset) <= 180 ? longitude : center + normalizeLongitude(offset);
1192
+ point.y = best[1];
1193
+ }
1194
+ function createRectangleRenderingProfile(resolveBounds2, coverage, origin = 0, primeMeridian2 = 0, over = false) {
1195
+ const center = (origin + primeMeridian2) * 180 / Math.PI;
1196
+ return {
1197
+ get bounds() {
1198
+ return resolveBounds2(getAngularRanges(coverage, primeMeridian2, origin));
1199
+ },
1200
+ normalize(point) {
1201
+ normalizeCoverage(point, coverage, center, over);
1202
+ }
1203
+ };
1204
+ }
1205
+
1206
+ // dist/projection/experimental/rendering-profile/rendering-bounds.js
1207
+ function longitudeRange(parameters, origin, over = false) {
1208
+ const low = parameters[0][0] - origin, high = parameters[1][0] - origin;
1209
+ if (over)
1210
+ return [low, high];
1211
+ const span = high - low;
1212
+ if (span >= 2 * Math.PI - 1e-12)
1213
+ return [-Math.PI, Math.PI];
1214
+ let west = wrapLongitude(low);
1215
+ if (span > 0 && Math.abs(west - Math.PI) < 1e-12)
1216
+ west = -Math.PI;
1217
+ const east = west + span;
1218
+ return east > Math.PI + 1e-12 ? [-Math.PI, Math.PI] : [west, Math.min(east, Math.PI)];
1219
+ }
1220
+
1221
+ // dist/projection/experimental/rendering-profile/geographic-rendering-profile.js
1222
+ function createGeographicProfile(parameters, primeMeridian2 = 0) {
1223
+ const center = numberParameter(parameters, "lon_wrap", 0) * DEGREES_TO_RADIANS;
1224
+ return (coverage) => createRectangleRenderingProfile((ranges) => {
1225
+ const longitude = longitudeRange(ranges, center);
1226
+ return [
1227
+ [center + longitude[0], ranges[0][1], 0],
1228
+ [center + longitude[1], ranges[1][1], 0]
1229
+ ];
1230
+ }, coverage ?? [-180, -90, 180, 90], center, primeMeridian2);
1231
+ }
1232
+
1233
+ // dist/projection/experimental/vertical-datum.js
1234
+ function compileVerticalGrid(names, grids = {}) {
1235
+ if (names === void 0)
1236
+ return void 0;
1237
+ const entries = [];
1238
+ for (const entry of names.split(",")) {
1239
+ const optional = entry.startsWith("@");
1240
+ const name = optional ? entry.slice(1) : entry;
1241
+ if (!name || /\s/.test(name))
1242
+ throw new Error("Invalid vertical grid name");
1243
+ if (name === "null") {
1244
+ entries.push(null);
1245
+ break;
1246
+ }
1247
+ const grid = Object.prototype.hasOwnProperty.call(grids, name) ? grids[name] : void 0;
1248
+ if (grid) {
1249
+ if (typeof grid.getOffset !== "function")
1250
+ throw new Error("Invalid vertical grid: " + name);
1251
+ entries.push(grid.getOffset.bind(grid));
1252
+ } else if (!optional)
1253
+ unsupportedStage("Required vertical grid is not registered: " + name);
1254
+ }
1255
+ return (longitude, latitude) => {
1256
+ for (const sample of entries) {
1257
+ if (!sample)
1258
+ return 0;
1259
+ const offset = sample(longitude, latitude);
1260
+ if (offset === void 0)
1261
+ continue;
1262
+ if (!Number.isFinite(offset))
1263
+ throw new Error("Vertical grid returned a non-finite offset");
1264
+ return offset;
1265
+ }
1266
+ throw new Error("No vertical grid covers this coordinate");
1267
+ };
1268
+ }
1269
+
1270
+ // dist/projection/experimental/typescript-projection.js
1271
+ var ProjectionTransform = class _ProjectionTransform {
1272
+ /** Resolve required descriptors once, then return an ordinary synchronous instance. */
1273
+ static async create(options = {}) {
1274
+ const projections = await Promise.all(requiredProjections(options).map(preloadProjection));
1275
+ return new _ProjectionTransform({ ...options, projections });
1276
+ }
1277
+ get targetProfile() {
1278
+ return this.getTargetRenderingProfile(this.targetCoverage);
1279
+ }
1280
+ /** Resolve target rendering policy independently from coordinate conversion. @internal */
1281
+ getTargetRenderingProfile(coverage) {
1282
+ return this.targetRenderingProfile && resolveRenderingProfile(this.targetRenderingProfile, coverage);
1283
+ }
1284
+ constructor(options = {}) {
1285
+ var _a2, _b, _c;
1286
+ this.coordinateScratch = new ProjectionScratch();
1287
+ this.targetLongitudeOrigin = 0;
1288
+ const registrations = options.projections || [];
1289
+ const plugins = registry(registrations);
1290
+ if (registrations.some((projection) => !("create" in projection))) {
1291
+ const from = normalizeCRS(options.from ?? "WGS84", options);
1292
+ const to = normalizeCRS(options.to ?? "WGS84", options);
1293
+ this.lossy = from.lossy || to.lossy;
1294
+ this.deferred = { options: { ...options, projections: [...registrations] } };
1295
+ } else {
1296
+ const eager = options;
1297
+ const eagerPlugins = plugins;
1298
+ const from = compileCRS(eager.from ?? "WGS84", eagerPlugins, eager);
1299
+ const to = compileCRS(eager.to ?? "WGS84", eagerPlugins, eager);
1300
+ this.targetRenderingProfile = ((_b = (_a2 = to.implementation) == null ? void 0 : _a2.getRenderingProfile) == null ? void 0 : _b.bind(to.implementation)) ?? (to.kind === "geographic" ? createGeographicProfile(to.parameters, to.primeMeridian) : to.kind === "identity" ? getIdentityRenderingProfile : void 0);
1301
+ this.targetCoverage = to.areaOfUse;
1302
+ this.targetLongitudeOrigin = ((_c = to.implementation) == null ? void 0 : _c.longitudeOrigin) ?? (to.kind === "geographic" ? to.longitudeWrap ?? 0 : 0);
1303
+ this.lossy = from.lossy || to.lossy;
1304
+ if (this.lossy && (from.kind === "geocentric" || to.kind === "geocentric"))
1305
+ unsupportedStage("Horizontal extraction cannot supply ellipsoidal height for geocentric coordinates");
1306
+ if (this.lossy && (from.verticalGrid || to.verticalGrid))
1307
+ unsupportedStage("Horizontal extraction cannot be combined with vertical grids");
1308
+ this.forwardTransform = compileTransform(from, to, Boolean(options.enforceAxis));
1309
+ this.inverseTransform = compileTransform(to, from, Boolean(options.enforceAxis));
1310
+ }
1311
+ this.project = this.project.bind(this);
1312
+ this.unproject = this.unproject.bind(this);
1313
+ this.projectTo = this.projectTo.bind(this);
1314
+ this.unprojectTo = this.unprojectTo.bind(this);
1315
+ this.projectToSync = this.projectToSync.bind(this);
1316
+ this.unprojectToSync = this.unprojectToSync.bind(this);
1317
+ this.projectFlat = this.projectFlat.bind(this);
1318
+ this.unprojectFlat = this.unprojectFlat.bind(this);
1319
+ this.projectSync = this.projectSync.bind(this);
1320
+ this.unprojectSync = this.unprojectSync.bind(this);
1321
+ this.projectFlatSync = this.projectFlatSync.bind(this);
1322
+ this.unprojectFlatSync = this.unprojectFlatSync.bind(this);
1323
+ }
1324
+ load() {
1325
+ const state = this.deferred;
1326
+ if (!state)
1327
+ return Promise.resolve(this);
1328
+ if (state.implementation)
1329
+ return Promise.resolve(state.implementation);
1330
+ state.pending || (state.pending = _ProjectionTransform.create(state.options).then((projection) => {
1331
+ state.implementation = projection;
1332
+ return projection;
1333
+ }).catch((error) => {
1334
+ state.pending = void 0;
1335
+ throw error;
1336
+ }));
1337
+ return state.pending;
1338
+ }
1339
+ loadSync() {
1340
+ const state = this.deferred;
1341
+ if (!state)
1342
+ return this;
1343
+ if (!state.implementation) {
1344
+ const projections = requiredProjections(state.options).map((descriptor) => {
1345
+ const plugin = getLoadedProjection(descriptor);
1346
+ if (!plugin)
1347
+ throw new Error("Projection is not preloaded: " + descriptor.name + ". Call preload() first.");
1348
+ return plugin;
1349
+ });
1350
+ state.implementation = new _ProjectionTransform({ ...state.options, projections });
1351
+ }
1352
+ return state.implementation;
1353
+ }
1354
+ /** Synchronous variants never import algorithms; descriptors must be preloaded. */
1355
+ projectSync(coordinate) {
1356
+ return this.deferred ? this.loadSync().project(coordinate) : transformScalar(coordinate, this.forwardTransform, this.coordinateScratch);
1357
+ }
1358
+ unprojectSync(coordinate) {
1359
+ return this.deferred ? this.loadSync().unproject(coordinate) : transformScalar(coordinate, this.inverseTransform, this.coordinateScratch);
1360
+ }
1361
+ projectFlatSync(coordinates, dimension = 2) {
1362
+ return this.deferred ? this.loadSync().projectFlat(coordinates, dimension) : transformInPlace(coordinates, dimension, this.forwardTransform, this.coordinateScratch);
1363
+ }
1364
+ unprojectFlatSync(coordinates, dimension = 2) {
1365
+ return this.deferred ? this.loadSync().unprojectFlat(coordinates, dimension) : transformInPlace(coordinates, dimension, this.inverseTransform, this.coordinateScratch);
1366
+ }
1367
+ /** Optional warm-up. Coordinate methods also load automatically on first use. */
1368
+ async preload() {
1369
+ await this.load();
1370
+ }
1371
+ /** Eager plugins return arrays; descriptor-backed instances return promises. */
1372
+ project(coordinate) {
1373
+ const result = this.deferred ? this.projectLoaded(coordinate, false) : transformScalar(coordinate, this.forwardTransform, this.coordinateScratch);
1374
+ return result;
1375
+ }
1376
+ unproject(coordinate) {
1377
+ const result = this.deferred ? this.projectLoaded(coordinate, true) : transformScalar(coordinate, this.inverseTransform, this.coordinateScratch);
1378
+ return result;
1379
+ }
1380
+ /** Write one coordinate into caller-owned storage; return that same output. */
1381
+ projectTo(coordinate, output) {
1382
+ return this.deferred ? this.projectToLoaded(coordinate, output, false) : this.projectToSync(coordinate, output);
1383
+ }
1384
+ unprojectTo(coordinate, output) {
1385
+ return this.deferred ? this.projectToLoaded(coordinate, output, true) : this.unprojectToSync(coordinate, output);
1386
+ }
1387
+ projectToSync(coordinate, output) {
1388
+ if (this.deferred)
1389
+ return this.loadSync().projectTo(coordinate, output);
1390
+ validateScalarOutput(coordinate, output, Math.max(coordinate.length, this.forwardTransform.geocentricOutput ? 3 : 2));
1391
+ return transformScalar(coordinate, this.forwardTransform, this.coordinateScratch, output);
1392
+ }
1393
+ unprojectToSync(coordinate, output) {
1394
+ if (this.deferred)
1395
+ return this.loadSync().unprojectTo(coordinate, output);
1396
+ validateScalarOutput(coordinate, output, Math.max(coordinate.length, this.inverseTransform.geocentricOutput ? 3 : 2));
1397
+ return transformScalar(coordinate, this.inverseTransform, this.coordinateScratch, output);
1398
+ }
1399
+ projectToLoaded(coordinate, output, inverse) {
1400
+ validateScalarOutput(coordinate, output, coordinate.length);
1401
+ const input = coordinate.slice();
1402
+ return this.load().then((projection) => inverse ? projection.unprojectTo(input, output) : projection.projectTo(input, output));
1403
+ }
1404
+ projectLoaded(coordinate, inverse) {
1405
+ const input = coordinate.slice();
1406
+ return this.load().then((projection) => inverse ? projection.unproject(input) : projection.project(input));
1407
+ }
1408
+ /** In-place; descriptor callers must await completion before reusing the buffer. */
1409
+ projectFlat(coordinates, dimension = 2) {
1410
+ const result = this.deferred ? this.load().then((projection) => projection.projectFlat(coordinates, dimension)) : transformInPlace(coordinates, dimension, this.forwardTransform, this.coordinateScratch);
1411
+ return result;
1412
+ }
1413
+ unprojectFlat(coordinates, dimension = 2) {
1414
+ const result = this.deferred ? this.load().then((projection) => projection.unprojectFlat(coordinates, dimension)) : transformInPlace(coordinates, dimension, this.inverseTransform, this.coordinateScratch);
1415
+ return result;
1416
+ }
1417
+ };
1418
+ function requiredProjections(options) {
1419
+ const available = registry(options.projections || []);
1420
+ const required = /* @__PURE__ */ new Set();
1421
+ for (const definition of [options.from ?? "WGS84", options.to ?? "WGS84"]) {
1422
+ const crs = normalizeCRS(definition, options);
1423
+ if (["geographic", "identity"].includes(crs.kind))
1424
+ continue;
1425
+ const projection = available.get(pluginKey(crs.projection));
1426
+ if (!projection)
1427
+ throw new TypeScriptCRSError("missing-plugin", "Projection plugin is not registered: " + crs.projection);
1428
+ required.add(projection);
1429
+ }
1430
+ return [...required];
1431
+ }
1432
+ function checkProjectionCompatibility(definition, options = {}) {
1433
+ try {
1434
+ const crs = compileCRS(definition, registry(options.projections || []), options);
1435
+ return { status: "supported", lossy: crs.lossy };
1436
+ } catch (error) {
1437
+ const reason = error instanceof TypeScriptCRSError ? error.reason : "invalid-definition";
1438
+ return {
1439
+ status: reason === "unknown-syntax" ? "unknown" : "unsupported",
1440
+ lossy: false,
1441
+ reason,
1442
+ message: error instanceof Error ? error.message : String(error)
1443
+ };
1444
+ }
1445
+ }
1446
+ var pluginKey = (name) => name.toLowerCase().replace(/[\s_-]/g, "");
1447
+ function registry(projections) {
1448
+ const plugins = /* @__PURE__ */ new Map();
1449
+ for (const plugin of projections) {
1450
+ for (const name of new Set([plugin.name, ...plugin.aliases || []].map(pluginKey))) {
1451
+ if (!name || ["longlat", "latlong", "latlon", "lonlat", "identity"].includes(name) || plugins.has(name))
1452
+ throw new Error("Duplicate or reserved projection plugin: " + name);
1453
+ plugins.set(name, plugin);
1454
+ }
1455
+ }
1456
+ return plugins;
1457
+ }
1458
+ function compileCRS(definition, plugins, options) {
1459
+ var _a2;
1460
+ const crs = normalizeCRS(definition, options);
1461
+ const plugin = plugins.get(pluginKey(crs.projection));
1462
+ if (!["geographic", "identity"].includes(crs.kind) && !plugin)
1463
+ throw new TypeScriptCRSError("missing-plugin", "Projection plugin is not registered: " + crs.projection);
1464
+ const allowed = /* @__PURE__ */ new Set([...CORE_PARAMETERS, ...(plugin == null ? void 0 : plugin.parameters) || []]);
1465
+ for (const key of Object.keys(crs.parameters)) {
1466
+ if (!allowed.has(key))
1467
+ throw new TypeScriptCRSError("missing-transform-stage", "Unsupported PROJ parameter: +" + key);
1468
+ const flag = CORE_FLAGS.includes(key) || ((_a2 = plugin == null ? void 0 : plugin.flags) == null ? void 0 : _a2.includes(key));
1469
+ if (flag && crs.parameters[key] !== void 0)
1470
+ throw new Error("Expected a flag without a value: +" + key);
1471
+ if (!flag && !crs.parameters[key])
1472
+ throw new Error("PROJ parameter requires a value: +" + key);
1473
+ }
1474
+ if (crs.parameters["type"] && crs.parameters["type"] !== "crs")
1475
+ throw new Error("Only +type=crs is supported");
1476
+ const parameters = pluginKey(crs.projection) === "fasttransversemercator" ? Object.freeze({ ...crs.parameters, approx: void 0 }) : crs.parameters;
1477
+ const implementation = plugin == null ? void 0 : plugin.create({
1478
+ ...crs.ellipsoid,
1479
+ parameters,
1480
+ primeMeridian: crs.primeMeridian
1481
+ });
1482
+ if (crs.kind === "geocentric" && (!(implementation == null ? void 0 : implementation.forward3D) || !(implementation == null ? void 0 : implementation.inverse3D)))
1483
+ throw new Error("Geocentric plugin must implement 3D operations");
1484
+ const references = crs.datum.grids;
1485
+ const nullIndex = (references == null ? void 0 : references.findIndex((reference) => reference.name === "null")) ?? -1;
1486
+ const grids = references == null ? void 0 : references.slice(0, nullIndex < 0 ? void 0 : nullIndex + 1).map((reference) => {
1487
+ const grid = Object.prototype.hasOwnProperty.call(options.datumGrids || {}, reference.name) ? options.datumGrids[reference.name] : void 0;
1488
+ if (grid && typeof grid.shift !== "function")
1489
+ throw new Error("Invalid prepared datum grid: " + reference.name);
1490
+ return Object.freeze({ ...reference, grid });
1491
+ });
1492
+ for (const reference of grids || []) {
1493
+ if (reference.name === "null")
1494
+ break;
1495
+ if (!reference.optional && !reference.grid)
1496
+ unsupportedStage("Required datum grid is not registered: " + reference.name);
1497
+ }
1498
+ const datum = grids ? Object.freeze({ ...crs.datum, grids: Object.freeze(grids) }) : crs.datum;
1499
+ const verticalGrid = compileVerticalGrid(crs.parameters["geoidgrids"], options.verticalGrids);
1500
+ if (verticalGrid && (crs.kind === "geocentric" || crs.kind === "identity" || crs.lossy))
1501
+ unsupportedStage("Vertical grids require a non-lossy geographic or projected CRS");
1502
+ return { ...crs, datum, implementation, verticalGrid };
1503
+ }
1504
+ function finite(point) {
1505
+ return Number.isFinite(point.x) && Number.isFinite(point.y) && Number.isFinite(point.z);
1506
+ }
1507
+ function compileAxis(axis, inverse) {
1508
+ if (axis === "enu")
1509
+ return void 0;
1510
+ const indexes = [0, 0, 0], signs = [0, 0, 0];
1511
+ for (let i = 0; i < 3; i++) {
1512
+ const char = axis[i], component = "ew".includes(char) ? 0 : "ns".includes(char) ? 1 : 2;
1513
+ indexes[inverse ? i : component] = inverse ? component : i;
1514
+ signs[inverse ? i : component] = "wsd".includes(char) ? -1 : 1;
1515
+ }
1516
+ return (point) => {
1517
+ const x = point.x, y = point.y, z = point.z;
1518
+ point.x = signs[0] * (indexes[0] === 0 ? x : indexes[0] === 1 ? y : z);
1519
+ point.y = signs[1] * (indexes[1] === 0 ? x : indexes[1] === 1 ? y : z);
1520
+ point.z = signs[2] * (indexes[2] === 0 ? x : indexes[2] === 1 ? y : z);
1521
+ };
1522
+ }
1523
+ function compileTransform(from, to, enforceAxis) {
1524
+ var _a2, _b, _c, _d;
1525
+ const fromAxis = from.storedAxis || (enforceAxis ? from.axis : "enu");
1526
+ const toAxis = to.storedAxis || (enforceAxis ? to.axis : "enu");
1527
+ const inputAxis = compileAxis(fromAxis, false), outputAxis = compileAxis(toAxis, true);
1528
+ const source = from.implementation && projectionOperation(from.implementation, true, from.kind === "geocentric");
1529
+ const target = to.implementation && projectionOperation(to.implementation, false, to.kind === "geocentric");
1530
+ const datum = createDatumTransform(from.datum, to.datum);
1531
+ const horizontalOnly = from.lossy || to.lossy;
1532
+ const fromGeocentric = from.kind === "geocentric";
1533
+ const inputScale = from.kind === "geographic" ? from.angularUnit : from.toMeter;
1534
+ const outputScale = to.kind === "geographic" ? to.angularUnit : to.toMeter;
1535
+ const inputVerticalScale = fromGeocentric ? 1 : from.verticalUnit, outputVerticalScale = to.kind === "geocentric" ? outputScale : to.verticalUnit;
1536
+ const fromPrime = from.primeMeridian, toPrime = to.primeMeridian;
1537
+ const longitudeWrap = to.kind === "geographic" ? to.longitudeWrap : void 0;
1538
+ let flat;
1539
+ if (!datum && !from.verticalGrid && !to.verticalGrid && !horizontalOnly && !inputAxis && !outputAxis && !fromPrime && !toPrime && from.verticalUnit === 1 && to.verticalUnit === 1 && longitudeWrap === void 0) {
1540
+ const context = Object.freeze({ inputScale, outputScale });
1541
+ if (from.kind === "geographic" && to.kind === "projected")
1542
+ flat = (_b = (_a2 = to.implementation) == null ? void 0 : _a2.createForwardFlat) == null ? void 0 : _b.call(_a2, context);
1543
+ if (from.kind === "projected" && to.kind === "geographic")
1544
+ flat = (_d = (_c = from.implementation) == null ? void 0 : _c.createInverseFlat) == null ? void 0 : _d.call(_c, context);
1545
+ }
1546
+ return {
1547
+ flat,
1548
+ requiresInputZ: Boolean(from.verticalGrid || to.verticalGrid) || from.kind === "geocentric" || /[ud]/.test(fromAxis.slice(0, 2)) || /[ud]/.test(toAxis.slice(0, 2)),
1549
+ geocentricOutput: to.kind === "geocentric",
1550
+ run(point) {
1551
+ if (!finite(point))
1552
+ throw new Error("Coordinates must contain finite x, y and optional z values");
1553
+ inputAxis == null ? void 0 : inputAxis(point);
1554
+ const preservedHeight = point.z;
1555
+ if (horizontalOnly)
1556
+ point.z = 0;
1557
+ if (inputScale !== 1) {
1558
+ point.x *= inputScale;
1559
+ point.y *= inputScale;
1560
+ if (fromGeocentric)
1561
+ point.z *= inputScale;
1562
+ }
1563
+ source == null ? void 0 : source(point);
1564
+ if (inputVerticalScale !== 1)
1565
+ point.z *= inputVerticalScale;
1566
+ if (Math.abs(point.y) > Math.PI / 2 || !finite(point))
1567
+ throw new Error("Coordinate is outside the geographic domain");
1568
+ point.x += fromPrime;
1569
+ if (from.verticalGrid)
1570
+ point.z += from.verticalGrid(point.x, point.y);
1571
+ datum == null ? void 0 : datum(point);
1572
+ if (to.verticalGrid)
1573
+ point.z -= to.verticalGrid(point.x, point.y);
1574
+ point.x -= toPrime;
1575
+ if (longitudeWrap !== void 0)
1576
+ point.x = longitudeWrap + wrapLongitude(point.x - longitudeWrap);
1577
+ target == null ? void 0 : target(point);
1578
+ if (outputScale !== 1) {
1579
+ point.x /= outputScale;
1580
+ point.y /= outputScale;
1581
+ }
1582
+ if (outputVerticalScale !== 1)
1583
+ point.z /= outputVerticalScale;
1584
+ if (horizontalOnly)
1585
+ point.z = preservedHeight;
1586
+ outputAxis == null ? void 0 : outputAxis(point);
1587
+ if (!finite(point))
1588
+ throw new Error("Projection produced non-finite coordinates");
1589
+ }
1590
+ };
1591
+ }
1592
+ function transformScalar(coordinate, operation, scratch, output) {
1593
+ if (coordinate.length < 2)
1594
+ throw new Error("Coordinates must contain finite x, y and optional z values");
1595
+ if (coordinate.length < 3 && operation.requiresInputZ)
1596
+ throw new Error("This transform requires three ordinates");
1597
+ const length = Math.max(coordinate.length, operation.geocentricOutput ? 3 : 2);
1598
+ const point = scratch.acquire();
1599
+ try {
1600
+ point.x = coordinate[0];
1601
+ point.y = coordinate[1];
1602
+ point.z = coordinate.length >= 3 ? coordinate[2] : 0;
1603
+ operation.run(point);
1604
+ if (output)
1605
+ return writeScalarOutput(coordinate, output, point, length);
1606
+ const result = coordinate.slice();
1607
+ result[0] = point.x;
1608
+ result[1] = point.y;
1609
+ if (coordinate.length >= 3 || operation.geocentricOutput)
1610
+ result[2] = point.z;
1611
+ return result;
1612
+ } finally {
1613
+ scratch.release(point);
1614
+ }
1615
+ }
1616
+ function transformInPlace(coordinates, dimension, operation, scratch) {
1617
+ if (!(coordinates instanceof Float32Array || coordinates instanceof Float64Array))
1618
+ throw new Error("In-place projection requires a Float32Array or Float64Array");
1619
+ if (!Number.isSafeInteger(dimension) || dimension < 2 || coordinates.length % dimension !== 0)
1620
+ throw new Error("Dimension must be an integer >= 2 and divide the typed array length");
1621
+ if (dimension < 3 && (operation.requiresInputZ || operation.geocentricOutput))
1622
+ throw new Error("This transform requires a dimension of at least 3");
1623
+ if (operation.flat) {
1624
+ operation.flat(coordinates, dimension);
1625
+ return coordinates;
1626
+ }
1627
+ const point = scratch.acquire();
1628
+ try {
1629
+ const float32 = coordinates instanceof Float32Array;
1630
+ for (let offset = 0; offset < coordinates.length; offset += dimension) {
1631
+ point.x = coordinates[offset];
1632
+ point.y = coordinates[offset + 1];
1633
+ point.z = dimension >= 3 ? coordinates[offset + 2] : 0;
1634
+ operation.run(point);
1635
+ if (float32 && (Math.abs(point.x) > 34028234663852886e22 || Math.abs(point.y) > 34028234663852886e22 || dimension >= 3 && Math.abs(point.z) > 34028234663852886e22))
1636
+ throw new Error("Projected coordinate exceeds Float32 range");
1637
+ coordinates[offset] = point.x;
1638
+ coordinates[offset + 1] = point.y;
1639
+ if (dimension >= 3)
1640
+ coordinates[offset + 2] = point.z;
1641
+ }
1642
+ return coordinates;
1643
+ } finally {
1644
+ scratch.release(point);
1645
+ }
1646
+ }
1647
+
1648
+ // dist/projection/numerical-derivative.js
1649
+ var NumericalDerivative = class {
1650
+ constructor(sample) {
1651
+ this.sample = sample;
1652
+ this.result = [0, 0, 0];
1653
+ this.samples = Array.from({ length: 4 }, () => [0, 0, 0]);
1654
+ this.coarse = [0, 0, 0];
1655
+ this.fine = [0, 0, 0];
1656
+ }
1657
+ evaluate(step, referenceScale, tolerance = 1e-6) {
1658
+ if (!this.difference(step, this.coarse) || !this.difference(step / 2, this.fine))
1659
+ return false;
1660
+ const bound = tolerance * Math.max(referenceScale, Math.abs(this.fine[0]), Math.abs(this.fine[1]), Math.abs(this.fine[2]));
1661
+ for (let i = 0; i < 3; i++) {
1662
+ if (Math.abs(this.coarse[i] - this.fine[i]) > bound)
1663
+ return false;
1664
+ this.fine[i] += (this.fine[i] - this.coarse[i]) / 15;
1665
+ if (!Number.isFinite(this.fine[i]))
1666
+ return false;
1667
+ }
1668
+ for (let i = 0; i < 3; i++)
1669
+ this.result[i] = this.fine[i];
1670
+ return true;
1671
+ }
1672
+ difference(step, output) {
1673
+ const [a, b, c, d] = this.samples;
1674
+ if (!this.sample(-2 * step, a) || !this.sample(-step, b) || !this.sample(step, c) || !this.sample(2 * step, d))
1675
+ return false;
1676
+ for (let i = 0; i < 3; i++) {
1677
+ output[i] = (a[i] - d[i] + 8 * (c[i] - b[i])) / (12 * step);
1678
+ if (!Number.isFinite(output[i]))
1679
+ return false;
1680
+ }
1681
+ return true;
1682
+ }
1683
+ };
1684
+
1685
+ // dist/projection/experimental/crs-rendering-scale.js
1686
+ var RADIANS2 = Math.PI / 180;
1687
+ var WGS842 = normalizeCRS("WGS84").ellipsoid;
1688
+ function validateScale(scale) {
1689
+ if (scale.length !== 3 || scale.some((value) => !Number.isFinite(value) || value <= 0))
1690
+ throw new Error("Invalid CRS rendering scale");
1691
+ return scale;
1692
+ }
1693
+ function createRenderingScale(crs, projection, axis, center) {
1694
+ if (crs.kind === "geocentric")
1695
+ return validateScale([crs.toMeter, crs.toMeter, crs.toMeter]);
1696
+ if (crs.kind === "identity") {
1697
+ return validateScale([...axis].map((direction) => /[ud]/.test(direction) ? crs.verticalUnit : crs.toMeter));
1698
+ }
1699
+ const anchor = [0, 0, 0], input = [0, 0, 0], geographic = [0, 0, 0], sample = [0, 0, 0];
1700
+ const derivatives = Array.from({ length: 3 }, () => [0, 0, 0]);
1701
+ let component = 0, longitudeMeters = 0, latitudeMeters = 0, busy = false;
1702
+ const numerical = new NumericalDerivative((offset, output) => {
1703
+ for (let i = 0; i < 3; i++)
1704
+ input[i] = anchor[i];
1705
+ input[component] += offset;
1706
+ projection.unprojectTo(input, sample);
1707
+ const rawDelta = sample[0] - geographic[0];
1708
+ const delta = Math.abs(rawDelta) <= 180 ? rawDelta : ((rawDelta + 180) % 360 + 360) % 360 - 180;
1709
+ if (Math.abs(sample[1]) >= 90)
1710
+ return false;
1711
+ output[0] = delta * longitudeMeters;
1712
+ output[1] = (sample[1] - geographic[1]) * latitudeMeters;
1713
+ output[2] = sample[2] - geographic[2];
1714
+ return output.every(Number.isFinite);
1715
+ });
1716
+ return (coordinate) => {
1717
+ if (busy || coordinate.length < 2)
1718
+ return null;
1719
+ busy = true;
1720
+ let scale;
1721
+ try {
1722
+ anchor[0] = coordinate[0];
1723
+ anchor[1] = coordinate[1];
1724
+ anchor[2] = coordinate[2] ?? 0;
1725
+ if (!anchor.every(Number.isFinite))
1726
+ return null;
1727
+ projection.unprojectTo(anchor, geographic);
1728
+ const latitude = geographic[1] * RADIANS2;
1729
+ const a = WGS842.semiMajorAxis, es = WGS842.eccentricitySquared;
1730
+ const denominator = 1 - es * Math.sin(latitude) ** 2;
1731
+ longitudeMeters = a * Math.cos(latitude) / Math.sqrt(denominator) * RADIANS2;
1732
+ latitudeMeters = a * (1 - es) / denominator ** 1.5 * RADIANS2;
1733
+ if (!(longitudeMeters > a * RADIANS2 * 1e-8) || !(latitudeMeters > 0))
1734
+ return null;
1735
+ const offset = ((geographic[0] - center + 180) % 360 + 360) % 360 - 180;
1736
+ const hasLongitudeSeam = crs.kind === "geographic" ? crs.longitudeWrap !== void 0 : !Object.prototype.hasOwnProperty.call(crs.parameters, "over");
1737
+ if (hasLongitudeSeam && Math.abs(offset) + 2 / longitudeMeters >= 180 || Math.abs(geographic[1]) + 2 / latitudeMeters >= 90)
1738
+ return null;
1739
+ for (component = 0; component < 3; component++) {
1740
+ const direction = axis[component];
1741
+ const nominalMeters = /[ud]/.test(direction) ? crs.verticalUnit : crs.kind === "geographic" ? (/[ew]/.test(direction) ? longitudeMeters : latitudeMeters) * crs.angularUnit / RADIANS2 : crs.toMeter;
1742
+ if (!numerical.evaluate(1 / nominalMeters, nominalMeters))
1743
+ return null;
1744
+ for (let i = 0; i < 3; i++)
1745
+ derivatives[component][i] = numerical.result[i];
1746
+ }
1747
+ scale = derivatives.map((derivative) => Math.hypot(...derivative));
1748
+ if (crs.kind === "projected") {
1749
+ const east = derivatives[axis.search(/[ew]/)];
1750
+ const north = derivatives[axis.search(/[ns]/)];
1751
+ const inverseArea = Math.abs(east[0] * north[1] - east[1] * north[0]) / crs.toMeter ** 2;
1752
+ scale[axis.search(/[ud]/)] = crs.verticalUnit * Math.sqrt(inverseArea);
1753
+ }
1754
+ } catch {
1755
+ return null;
1756
+ } finally {
1757
+ busy = false;
1758
+ }
1759
+ return validateScale(scale);
1760
+ };
1761
+ }
1762
+
1763
+ // dist/projection/experimental/crs-descriptor.js
1764
+ var ANGULAR_UNITS = {
1765
+ degrees: Math.PI / 180,
1766
+ radians: 1,
1767
+ gradians: Math.PI / 200
1768
+ };
1769
+ var LINEAR_UNITS = {
1770
+ ...Object.fromEntries(Object.values(linearUnits).map((unit) => [unit.name, unit.metersPerUnit]))
1771
+ };
1772
+ async function resolveCRSDescriptor(engine, definition, normalization, options = {}, useDefinitionSignature = false) {
1773
+ const input = typeof definition === "string" ? definition : JSON.parse(JSON.stringify(definition));
1774
+ const conventions = {
1775
+ enforceAxis: normalization.enforceAxis,
1776
+ mode: normalization.mode,
1777
+ ...options,
1778
+ converters: options.converters && [...options.converters]
1779
+ };
1780
+ const crs = normalizeCRS(input, { ...normalization, ...conventions });
1781
+ const projection = await engine.createProjectionAsync({
1782
+ ...conventions,
1783
+ from: "WGS84",
1784
+ to: input
1785
+ });
1786
+ const axis = crs.storedAxis || (conventions.enforceAxis ? crs.axis : "enu");
1787
+ const horizontalUnit = getUnit(crs.kind === "geographic" ? crs.angularUnit : crs.toMeter, crs.kind === "geographic");
1788
+ const heightUnit = getUnit(crs.verticalUnit, false);
1789
+ const units = [...axis].map((direction) => crs.kind !== "geocentric" && /[ud]/.test(direction) ? heightUnit : horizontalUnit);
1790
+ const profile = projection.targetProfile;
1791
+ if (!profile)
1792
+ throw new Error("Projection must define a rendering profile for CRS retrieval");
1793
+ const center = (projection.targetLongitudeOrigin + crs.primeMeridian) * 180 / Math.PI;
1794
+ const bounds = adaptBounds(profile, crs, axis);
1795
+ const normalizeWGS84 = createNormalization(profile.normalize);
1796
+ const renderingScale = createRenderingScale(crs, projection, axis, center);
1797
+ const sources = [.../* @__PURE__ */ new Set(["WGS84", ...conventions.converters || []])];
1798
+ if (sources.some((source) => typeof source !== "string" || !source.trim()))
1799
+ throw new Error("Converter source CRS must be a nonempty string");
1800
+ const entries = await Promise.all(sources.map(async (source) => {
1801
+ if (source === "WGS84")
1802
+ return [source, createConverter(projection, normalizeWGS84)];
1803
+ const [pair, geographic] = await Promise.all([
1804
+ engine.createProjectionAsync({ ...conventions, from: source, to: input }),
1805
+ engine.createProjectionAsync({ ...conventions, from: "WGS84", to: source })
1806
+ ]);
1807
+ return [
1808
+ source,
1809
+ createConverter(pair, createSourceNormalization(geographic, normalizeWGS84))
1810
+ ];
1811
+ }));
1812
+ const converter = Object.assign(/* @__PURE__ */ Object.create(null), Object.fromEntries(entries));
1813
+ const metadata = {
1814
+ coordinateFrame: crs.kind,
1815
+ projection: crs.projection,
1816
+ parameters: crs.parameters,
1817
+ ellipsoid: {
1818
+ semiMajorAxis: crs.ellipsoid.semiMajorAxis,
1819
+ semiMinorAxis: crs.ellipsoid.semiMinorAxis
1820
+ },
1821
+ axis,
1822
+ xUnit: units[0],
1823
+ yUnit: units[1],
1824
+ zUnit: units[2],
1825
+ areaOfUse: crs.areaOfUse,
1826
+ lossy: crs.lossy
1827
+ };
1828
+ return {
1829
+ ...metadata,
1830
+ // Exact caller identity is sufficient under default execution conventions.
1831
+ // Additional source converters do not change the target CRS.
1832
+ signature: useDefinitionSignature && typeof input === "string" && !conventions.enforceAxis && !crs.lossy ? input : getCRSSignature(metadata),
1833
+ renderingBounds: bounds,
1834
+ renderingScale,
1835
+ getRenderingScale: (coordinate) => typeof renderingScale === "function" ? renderingScale(coordinate) : renderingScale,
1836
+ converter
1837
+ };
1838
+ }
1839
+ function createConverter(projection, normalize) {
1840
+ return {
1841
+ from: createConversion(projection.project.bind(projection), projection.projectTo.bind(projection)),
1842
+ to: createConversion(projection.unproject.bind(projection), projection.unprojectTo.bind(projection)),
1843
+ normalize
1844
+ };
1845
+ }
1846
+ function createSourceNormalization(geographic, normalizeWGS84) {
1847
+ function normalize(coordinate, output) {
1848
+ if (output !== void 0)
1849
+ validateScalarOutput(coordinate, output, coordinate.length);
1850
+ const wgs842 = geographic.unproject(Array.from(coordinate));
1851
+ const [longitude, latitude, altitude] = wgs842;
1852
+ normalizeWGS84(wgs842, wgs842);
1853
+ if (wgs842[0] === longitude && wgs842[1] === latitude && wgs842[2] === altitude) {
1854
+ return output === void 0 ? Array.from(coordinate) : writeScalarOutput(coordinate, output, { x: coordinate[0], y: coordinate[1], z: coordinate[2] ?? 0 }, coordinate.length);
1855
+ }
1856
+ return output === void 0 ? geographic.project(wgs842) : geographic.projectTo(wgs842, output);
1857
+ }
1858
+ return normalize;
1859
+ }
1860
+ function createConversion(allocate, write) {
1861
+ function convert(coordinate, output) {
1862
+ return output === void 0 ? allocate(Array.isArray(coordinate) ? coordinate : Array.from(coordinate)) : write(coordinate, output);
1863
+ }
1864
+ return convert;
1865
+ }
1866
+ function createNormalization(normalizeDomain) {
1867
+ function normalize(coordinate, output) {
1868
+ const result = output ?? new Array(coordinate.length);
1869
+ validateScalarOutput(coordinate, result, coordinate.length);
1870
+ const longitude = coordinate[0], latitude = coordinate[1], altitude = coordinate[2] ?? 0;
1871
+ if (coordinate.length < 2 || !Number.isFinite(longitude) || !Number.isFinite(latitude) || !Number.isFinite(altitude))
1872
+ throw new Error("Normalization requires finite longitude, latitude and altitude");
1873
+ const point = { x: longitude, y: latitude, z: altitude };
1874
+ normalizeDomain == null ? void 0 : normalizeDomain(point);
1875
+ return writeScalarOutput(coordinate, result, point, coordinate.length);
1876
+ }
1877
+ return normalize;
1878
+ }
1879
+ function adaptBounds(profile, crs, axis) {
1880
+ const horizontalUnit = crs.kind === "geographic" ? crs.angularUnit : crs.toMeter;
1881
+ const units = [
1882
+ horizontalUnit,
1883
+ horizontalUnit,
1884
+ crs.kind === "geocentric" ? crs.toMeter : crs.verticalUnit
1885
+ ];
1886
+ const bounds = profile.bounds;
1887
+ const limits = [...axis].map((direction) => {
1888
+ const index = /[ew]/.test(direction) ? 0 : /[ns]/.test(direction) ? 1 : 2;
1889
+ const minimum = bounds[0][index] / units[index];
1890
+ const maximum = bounds[1][index] / units[index];
1891
+ return /[wsd]/.test(direction) ? [-maximum, -minimum] : [minimum, maximum];
1892
+ });
1893
+ return [
1894
+ [limits[0][0], limits[1][0], limits[2][0]],
1895
+ [limits[0][1], limits[1][1], limits[2][1]]
1896
+ ];
1897
+ }
1898
+ function getUnit(factor, angular) {
1899
+ const units = angular ? ANGULAR_UNITS : LINEAR_UNITS;
1900
+ const name = Object.keys(units).find((candidate) => units[candidate] === factor) || "custom";
1901
+ return angular ? { name, degreesPerUnit: factor / ANGULAR_UNITS["degrees"] } : { name, metersPerUnit: factor };
1902
+ }
1903
+
1904
+ // dist/projection/experimental/projection-engine.js
1905
+ var ConfigurableProjectionEngine = class {
1906
+ constructor(options = {}) {
1907
+ this.options = snapshotEngineOptions(options);
1908
+ this.useDefinitionSignature = !hasCRSOverrides(options);
1909
+ }
1910
+ /** Resolve a CRS and load only its required algorithms before exposing sync conversions. */
1911
+ getCRS(definition, options = {}) {
1912
+ return resolveCRSDescriptor(this, definition, this.options, options, this.useDefinitionSignature);
1913
+ }
1914
+ /** Compile a CRS pair. Lazy descriptors remain unloaded until the transform is used. */
1915
+ createProjection(options = {}) {
1916
+ return new ProjectionTransform({ ...this.options, ...options });
1917
+ }
1918
+ /** Load only the algorithms required by this CRS pair and return a synchronous transform. */
1919
+ async createProjectionAsync(options = {}) {
1920
+ return ProjectionTransform.create({ ...this.options, ...options });
1921
+ }
1922
+ };
1923
+ function createProjectionEngine(options = {}) {
1924
+ return new ConfigurableProjectionEngine(options);
1925
+ }
1926
+ function snapshotEngineOptions(options) {
1927
+ return {
1928
+ ...options,
1929
+ projections: options.projections && [...options.projections],
1930
+ parsers: options.parsers && [...options.parsers],
1931
+ datumCatalogs: options.datumCatalogs && [...options.datumCatalogs],
1932
+ aliases: options.aliases && JSON.parse(JSON.stringify(options.aliases)),
1933
+ datumGrids: options.datumGrids && { ...options.datumGrids },
1934
+ verticalGrids: options.verticalGrids && { ...options.verticalGrids }
1935
+ };
1936
+ }
1937
+ function hasCRSOverrides(options) {
1938
+ return Boolean(options.projections || options.parsers || options.datumCatalogs || options.aliases || options.datumGrids || options.verticalGrids);
1939
+ }
1940
+ //# sourceMappingURL=core.cjs.map