@math.gl/projection 0.0.0-stage → 5.0.0-alpha.12

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 (1297) hide show
  1. package/APACHE-2.0-LICENSE.txt +55 -0
  2. package/PROJ-LICENSE.txt +37 -0
  3. package/PROJ4-LICENSE.md +29 -0
  4. package/README.md +27 -2
  5. package/THIRD-PARTY-NOTICES.md +163 -0
  6. package/dist/deformation.cjs +189 -0
  7. package/dist/deformation.cjs.map +6 -0
  8. package/dist/deformation.d.ts +3 -0
  9. package/dist/deformation.d.ts.map +1 -0
  10. package/dist/deformation.js +5 -0
  11. package/dist/deformation.js.map +1 -0
  12. package/dist/experimental/catalogue-kernel.d.ts +7 -0
  13. package/dist/experimental/catalogue-kernel.d.ts.map +1 -0
  14. package/dist/experimental/catalogue-kernel.js +36 -0
  15. package/dist/experimental/catalogue-kernel.js.map +1 -0
  16. package/dist/experimental/common/adjust_lat.d.ts +2 -0
  17. package/dist/experimental/common/adjust_lat.d.ts.map +1 -0
  18. package/dist/experimental/common/adjust_lat.js +10 -0
  19. package/dist/experimental/common/adjust_lat.js.map +1 -0
  20. package/dist/experimental/common/adjust_lon.d.ts +2 -0
  21. package/dist/experimental/common/adjust_lon.d.ts.map +1 -0
  22. package/dist/experimental/common/adjust_lon.js +13 -0
  23. package/dist/experimental/common/adjust_lon.js.map +1 -0
  24. package/dist/experimental/common/asinhy.d.ts +2 -0
  25. package/dist/experimental/common/asinhy.d.ts.map +1 -0
  26. package/dist/experimental/common/asinhy.js +12 -0
  27. package/dist/experimental/common/asinhy.js.map +1 -0
  28. package/dist/experimental/common/asinz.d.ts +2 -0
  29. package/dist/experimental/common/asinz.d.ts.map +1 -0
  30. package/dist/experimental/common/asinz.js +11 -0
  31. package/dist/experimental/common/asinz.js.map +1 -0
  32. package/dist/experimental/common/authlat.d.ts +2 -0
  33. package/dist/experimental/common/authlat.d.ts.map +1 -0
  34. package/dist/experimental/common/authlat.js +9 -0
  35. package/dist/experimental/common/authlat.js.map +1 -0
  36. package/dist/experimental/common/authset.d.ts +2 -0
  37. package/dist/experimental/common/authset.d.ts.map +1 -0
  38. package/dist/experimental/common/authset.js +24 -0
  39. package/dist/experimental/common/authset.js.map +1 -0
  40. package/dist/experimental/common/clens.d.ts +2 -0
  41. package/dist/experimental/common/clens.d.ts.map +1 -0
  42. package/dist/experimental/common/clens.js +18 -0
  43. package/dist/experimental/common/clens.js.map +1 -0
  44. package/dist/experimental/common/clens_cmplx.d.ts +5 -0
  45. package/dist/experimental/common/clens_cmplx.d.ts.map +1 -0
  46. package/dist/experimental/common/clens_cmplx.js +34 -0
  47. package/dist/experimental/common/clens_cmplx.js.map +1 -0
  48. package/dist/experimental/common/constants.d.ts +9 -0
  49. package/dist/experimental/common/constants.d.ts.map +1 -0
  50. package/dist/experimental/common/constants.js +14 -0
  51. package/dist/experimental/common/constants.js.map +1 -0
  52. package/dist/experimental/common/cosh.d.ts +2 -0
  53. package/dist/experimental/common/cosh.d.ts.map +1 -0
  54. package/dist/experimental/common/cosh.js +10 -0
  55. package/dist/experimental/common/cosh.js.map +1 -0
  56. package/dist/experimental/common/e0fn.d.ts +2 -0
  57. package/dist/experimental/common/e0fn.d.ts.map +1 -0
  58. package/dist/experimental/common/e0fn.js +8 -0
  59. package/dist/experimental/common/e0fn.js.map +1 -0
  60. package/dist/experimental/common/e1fn.d.ts +2 -0
  61. package/dist/experimental/common/e1fn.d.ts.map +1 -0
  62. package/dist/experimental/common/e1fn.js +8 -0
  63. package/dist/experimental/common/e1fn.js.map +1 -0
  64. package/dist/experimental/common/e2fn.d.ts +2 -0
  65. package/dist/experimental/common/e2fn.d.ts.map +1 -0
  66. package/dist/experimental/common/e2fn.js +8 -0
  67. package/dist/experimental/common/e2fn.js.map +1 -0
  68. package/dist/experimental/common/e3fn.d.ts +2 -0
  69. package/dist/experimental/common/e3fn.d.ts.map +1 -0
  70. package/dist/experimental/common/e3fn.js +8 -0
  71. package/dist/experimental/common/e3fn.js.map +1 -0
  72. package/dist/experimental/common/fL.d.ts +2 -0
  73. package/dist/experimental/common/fL.d.ts.map +1 -0
  74. package/dist/experimental/common/fL.js +9 -0
  75. package/dist/experimental/common/fL.js.map +1 -0
  76. package/dist/experimental/common/gN.d.ts +2 -0
  77. package/dist/experimental/common/gN.d.ts.map +1 -0
  78. package/dist/experimental/common/gN.js +9 -0
  79. package/dist/experimental/common/gN.js.map +1 -0
  80. package/dist/experimental/common/gatg.d.ts +2 -0
  81. package/dist/experimental/common/gatg.d.ts.map +1 -0
  82. package/dist/experimental/common/gatg.js +18 -0
  83. package/dist/experimental/common/gatg.js.map +1 -0
  84. package/dist/experimental/common/hypot.d.ts +2 -0
  85. package/dist/experimental/common/hypot.d.ts.map +1 -0
  86. package/dist/experimental/common/hypot.js +12 -0
  87. package/dist/experimental/common/hypot.js.map +1 -0
  88. package/dist/experimental/common/imlfn.d.ts +2 -0
  89. package/dist/experimental/common/imlfn.d.ts.map +1 -0
  90. package/dist/experimental/common/imlfn.js +21 -0
  91. package/dist/experimental/common/imlfn.js.map +1 -0
  92. package/dist/experimental/common/invlatiso.d.ts +2 -0
  93. package/dist/experimental/common/invlatiso.d.ts.map +1 -0
  94. package/dist/experimental/common/invlatiso.js +20 -0
  95. package/dist/experimental/common/invlatiso.js.map +1 -0
  96. package/dist/experimental/common/iqsfnz.d.ts +2 -0
  97. package/dist/experimental/common/iqsfnz.d.ts.map +1 -0
  98. package/dist/experimental/common/iqsfnz.js +44 -0
  99. package/dist/experimental/common/iqsfnz.js.map +1 -0
  100. package/dist/experimental/common/latiso.d.ts +2 -0
  101. package/dist/experimental/common/latiso.d.ts.map +1 -0
  102. package/dist/experimental/common/latiso.js +19 -0
  103. package/dist/experimental/common/latiso.js.map +1 -0
  104. package/dist/experimental/common/log1py.d.ts +2 -0
  105. package/dist/experimental/common/log1py.d.ts.map +1 -0
  106. package/dist/experimental/common/log1py.js +10 -0
  107. package/dist/experimental/common/log1py.js.map +1 -0
  108. package/dist/experimental/common/mlfn.d.ts +2 -0
  109. package/dist/experimental/common/mlfn.d.ts.map +1 -0
  110. package/dist/experimental/common/mlfn.js +8 -0
  111. package/dist/experimental/common/mlfn.js.map +1 -0
  112. package/dist/experimental/common/msfnz.d.ts +2 -0
  113. package/dist/experimental/common/msfnz.d.ts.map +1 -0
  114. package/dist/experimental/common/msfnz.js +9 -0
  115. package/dist/experimental/common/msfnz.js.map +1 -0
  116. package/dist/experimental/common/phi2z.d.ts +2 -0
  117. package/dist/experimental/common/phi2z.d.ts.map +1 -0
  118. package/dist/experimental/common/phi2z.js +21 -0
  119. package/dist/experimental/common/phi2z.js.map +1 -0
  120. package/dist/experimental/common/pj_enfn.d.ts +2 -0
  121. package/dist/experimental/common/pj_enfn.d.ts.map +1 -0
  122. package/dist/experimental/common/pj_enfn.js +28 -0
  123. package/dist/experimental/common/pj_enfn.js.map +1 -0
  124. package/dist/experimental/common/pj_inv_mlfn.d.ts +2 -0
  125. package/dist/experimental/common/pj_inv_mlfn.d.ts.map +1 -0
  126. package/dist/experimental/common/pj_inv_mlfn.js +26 -0
  127. package/dist/experimental/common/pj_inv_mlfn.js.map +1 -0
  128. package/dist/experimental/common/pj_mlfn.d.ts +2 -0
  129. package/dist/experimental/common/pj_mlfn.d.ts.map +1 -0
  130. package/dist/experimental/common/pj_mlfn.js +10 -0
  131. package/dist/experimental/common/pj_mlfn.js.map +1 -0
  132. package/dist/experimental/common/qsfnz.d.ts +2 -0
  133. package/dist/experimental/common/qsfnz.d.ts.map +1 -0
  134. package/dist/experimental/common/qsfnz.js +16 -0
  135. package/dist/experimental/common/qsfnz.js.map +1 -0
  136. package/dist/experimental/common/sign.d.ts +2 -0
  137. package/dist/experimental/common/sign.d.ts.map +1 -0
  138. package/dist/experimental/common/sign.js +8 -0
  139. package/dist/experimental/common/sign.js.map +1 -0
  140. package/dist/experimental/common/sinh.d.ts +2 -0
  141. package/dist/experimental/common/sinh.d.ts.map +1 -0
  142. package/dist/experimental/common/sinh.js +10 -0
  143. package/dist/experimental/common/sinh.js.map +1 -0
  144. package/dist/experimental/common/srat.d.ts +2 -0
  145. package/dist/experimental/common/srat.d.ts.map +1 -0
  146. package/dist/experimental/common/srat.js +8 -0
  147. package/dist/experimental/common/srat.js.map +1 -0
  148. package/dist/experimental/common/tsfnz.d.ts +2 -0
  149. package/dist/experimental/common/tsfnz.d.ts.map +1 -0
  150. package/dist/experimental/common/tsfnz.js +12 -0
  151. package/dist/experimental/common/tsfnz.js.map +1 -0
  152. package/dist/experimental/common/vincenty.d.ts +29 -0
  153. package/dist/experimental/common/vincenty.d.ts.map +1 -0
  154. package/dist/experimental/common/vincenty.js +134 -0
  155. package/dist/experimental/common/vincenty.js.map +1 -0
  156. package/dist/experimental/core.cjs +2868 -0
  157. package/dist/experimental/core.cjs.map +6 -0
  158. package/dist/experimental/core.d.ts +13 -0
  159. package/dist/experimental/core.d.ts.map +1 -0
  160. package/dist/experimental/core.js +9 -0
  161. package/dist/experimental/core.js.map +1 -0
  162. package/dist/experimental/crs/datum-table.d.ts +8 -0
  163. package/dist/experimental/crs/datum-table.d.ts.map +1 -0
  164. package/dist/experimental/crs/datum-table.js +1365 -0
  165. package/dist/experimental/crs/datum-table.js.map +1 -0
  166. package/dist/experimental/crs/ellipsoid-table.d.ts +8 -0
  167. package/dist/experimental/crs/ellipsoid-table.d.ts.map +1 -0
  168. package/dist/experimental/crs/ellipsoid-table.js +229 -0
  169. package/dist/experimental/crs/ellipsoid-table.js.map +1 -0
  170. package/dist/experimental/crs/normalize.d.ts +8 -0
  171. package/dist/experimental/crs/normalize.d.ts.map +1 -0
  172. package/dist/experimental/crs/normalize.js +277 -0
  173. package/dist/experimental/crs/normalize.js.map +1 -0
  174. package/dist/experimental/crs/primemeridian-table.d.ts +3 -0
  175. package/dist/experimental/crs/primemeridian-table.d.ts.map +1 -0
  176. package/dist/experimental/crs/primemeridian-table.js +20 -0
  177. package/dist/experimental/crs/primemeridian-table.js.map +1 -0
  178. package/dist/experimental/crs/projjson.cjs +1847 -0
  179. package/dist/experimental/crs/projjson.cjs.map +6 -0
  180. package/dist/experimental/crs/projjson.d.ts +4 -0
  181. package/dist/experimental/crs/projjson.d.ts.map +1 -0
  182. package/dist/experimental/crs/projjson.js +12 -0
  183. package/dist/experimental/crs/projjson.js.map +1 -0
  184. package/dist/experimental/crs/spatial-reference.d.ts +11 -0
  185. package/dist/experimental/crs/spatial-reference.d.ts.map +1 -0
  186. package/dist/experimental/crs/spatial-reference.js +91 -0
  187. package/dist/experimental/crs/spatial-reference.js.map +1 -0
  188. package/dist/experimental/crs/structured.d.ts +8 -0
  189. package/dist/experimental/crs/structured.d.ts.map +1 -0
  190. package/dist/experimental/crs/structured.js +481 -0
  191. package/dist/experimental/crs/structured.js.map +1 -0
  192. package/dist/experimental/crs/types.d.ts +58 -0
  193. package/dist/experimental/crs/types.d.ts.map +1 -0
  194. package/dist/experimental/crs/types.js +21 -0
  195. package/dist/experimental/crs/types.js.map +1 -0
  196. package/dist/experimental/crs/units-table.d.ts +64 -0
  197. package/dist/experimental/crs/units-table.d.ts.map +1 -0
  198. package/dist/experimental/crs/units-table.js +27 -0
  199. package/dist/experimental/crs/units-table.js.map +1 -0
  200. package/dist/experimental/crs/wkt.cjs +2507 -0
  201. package/dist/experimental/crs/wkt.cjs.map +6 -0
  202. package/dist/experimental/crs/wkt.d.ts +3 -0
  203. package/dist/experimental/crs/wkt.d.ts.map +1 -0
  204. package/dist/experimental/crs/wkt.js +181 -0
  205. package/dist/experimental/crs/wkt.js.map +1 -0
  206. package/dist/experimental/datum.d.ts +17 -0
  207. package/dist/experimental/datum.d.ts.map +1 -0
  208. package/dist/experimental/datum.js +160 -0
  209. package/dist/experimental/datum.js.map +1 -0
  210. package/dist/experimental/deformation.d.ts +25 -0
  211. package/dist/experimental/deformation.d.ts.map +1 -0
  212. package/dist/experimental/deformation.js +98 -0
  213. package/dist/experimental/deformation.js.map +1 -0
  214. package/dist/experimental/entries/projections/aea.cjs +367 -0
  215. package/dist/experimental/entries/projections/aea.cjs.map +6 -0
  216. package/dist/experimental/entries/projections/aea.d.ts +2 -0
  217. package/dist/experimental/entries/projections/aea.d.ts.map +1 -0
  218. package/dist/experimental/entries/projections/aea.js +5 -0
  219. package/dist/experimental/entries/projections/aea.js.map +1 -0
  220. package/dist/experimental/entries/projections/aeqd.cjs +461 -0
  221. package/dist/experimental/entries/projections/aeqd.cjs.map +6 -0
  222. package/dist/experimental/entries/projections/aeqd.d.ts +2 -0
  223. package/dist/experimental/entries/projections/aeqd.d.ts.map +1 -0
  224. package/dist/experimental/entries/projections/aeqd.js +5 -0
  225. package/dist/experimental/entries/projections/aeqd.js.map +1 -0
  226. package/dist/experimental/entries/projections/bonne.cjs +359 -0
  227. package/dist/experimental/entries/projections/bonne.cjs.map +6 -0
  228. package/dist/experimental/entries/projections/bonne.d.ts +2 -0
  229. package/dist/experimental/entries/projections/bonne.d.ts.map +1 -0
  230. package/dist/experimental/entries/projections/bonne.js +5 -0
  231. package/dist/experimental/entries/projections/bonne.js.map +1 -0
  232. package/dist/experimental/entries/projections/cass.cjs +347 -0
  233. package/dist/experimental/entries/projections/cass.cjs.map +6 -0
  234. package/dist/experimental/entries/projections/cass.d.ts +2 -0
  235. package/dist/experimental/entries/projections/cass.d.ts.map +1 -0
  236. package/dist/experimental/entries/projections/cass.js +5 -0
  237. package/dist/experimental/entries/projections/cass.js.map +1 -0
  238. package/dist/experimental/entries/projections/cea.cjs +283 -0
  239. package/dist/experimental/entries/projections/cea.cjs.map +6 -0
  240. package/dist/experimental/entries/projections/cea.d.ts +2 -0
  241. package/dist/experimental/entries/projections/cea.d.ts.map +1 -0
  242. package/dist/experimental/entries/projections/cea.js +5 -0
  243. package/dist/experimental/entries/projections/cea.js.map +1 -0
  244. package/dist/experimental/entries/projections/eck6.cjs +306 -0
  245. package/dist/experimental/entries/projections/eck6.cjs.map +6 -0
  246. package/dist/experimental/entries/projections/eck6.d.ts +2 -0
  247. package/dist/experimental/entries/projections/eck6.d.ts.map +1 -0
  248. package/dist/experimental/entries/projections/eck6.js +5 -0
  249. package/dist/experimental/entries/projections/eck6.js.map +1 -0
  250. package/dist/experimental/entries/projections/eqc.cjs +119 -0
  251. package/dist/experimental/entries/projections/eqc.cjs.map +6 -0
  252. package/dist/experimental/entries/projections/eqc.d.ts +2 -0
  253. package/dist/experimental/entries/projections/eqc.d.ts.map +1 -0
  254. package/dist/experimental/entries/projections/eqc.js +5 -0
  255. package/dist/experimental/entries/projections/eqc.js.map +1 -0
  256. package/dist/experimental/entries/projections/eqdc.cjs +377 -0
  257. package/dist/experimental/entries/projections/eqdc.cjs.map +6 -0
  258. package/dist/experimental/entries/projections/eqdc.d.ts +2 -0
  259. package/dist/experimental/entries/projections/eqdc.d.ts.map +1 -0
  260. package/dist/experimental/entries/projections/eqdc.js +5 -0
  261. package/dist/experimental/entries/projections/eqdc.js.map +1 -0
  262. package/dist/experimental/entries/projections/eqearth.cjs +292 -0
  263. package/dist/experimental/entries/projections/eqearth.cjs.map +6 -0
  264. package/dist/experimental/entries/projections/eqearth.d.ts +2 -0
  265. package/dist/experimental/entries/projections/eqearth.d.ts.map +1 -0
  266. package/dist/experimental/entries/projections/eqearth.js +5 -0
  267. package/dist/experimental/entries/projections/eqearth.js.map +1 -0
  268. package/dist/experimental/entries/projections/equi.cjs +222 -0
  269. package/dist/experimental/entries/projections/equi.cjs.map +6 -0
  270. package/dist/experimental/entries/projections/equi.d.ts +2 -0
  271. package/dist/experimental/entries/projections/equi.d.ts.map +1 -0
  272. package/dist/experimental/entries/projections/equi.js +5 -0
  273. package/dist/experimental/entries/projections/equi.js.map +1 -0
  274. package/dist/experimental/entries/projections/etmerc.cjs +618 -0
  275. package/dist/experimental/entries/projections/etmerc.cjs.map +6 -0
  276. package/dist/experimental/entries/projections/etmerc.d.ts +2 -0
  277. package/dist/experimental/entries/projections/etmerc.d.ts.map +1 -0
  278. package/dist/experimental/entries/projections/etmerc.js +5 -0
  279. package/dist/experimental/entries/projections/etmerc.js.map +1 -0
  280. package/dist/experimental/entries/projections/geocent.cjs +161 -0
  281. package/dist/experimental/entries/projections/geocent.cjs.map +6 -0
  282. package/dist/experimental/entries/projections/geocent.d.ts +2 -0
  283. package/dist/experimental/entries/projections/geocent.d.ts.map +1 -0
  284. package/dist/experimental/entries/projections/geocent.js +5 -0
  285. package/dist/experimental/entries/projections/geocent.js.map +1 -0
  286. package/dist/experimental/entries/projections/geos.cjs +328 -0
  287. package/dist/experimental/entries/projections/geos.cjs.map +6 -0
  288. package/dist/experimental/entries/projections/geos.d.ts +2 -0
  289. package/dist/experimental/entries/projections/geos.d.ts.map +1 -0
  290. package/dist/experimental/entries/projections/geos.js +5 -0
  291. package/dist/experimental/entries/projections/geos.js.map +1 -0
  292. package/dist/experimental/entries/projections/gnom.cjs +274 -0
  293. package/dist/experimental/entries/projections/gnom.cjs.map +6 -0
  294. package/dist/experimental/entries/projections/gnom.d.ts +2 -0
  295. package/dist/experimental/entries/projections/gnom.d.ts.map +1 -0
  296. package/dist/experimental/entries/projections/gnom.js +5 -0
  297. package/dist/experimental/entries/projections/gnom.js.map +1 -0
  298. package/dist/experimental/entries/projections/gstmerc.cjs +266 -0
  299. package/dist/experimental/entries/projections/gstmerc.cjs.map +6 -0
  300. package/dist/experimental/entries/projections/gstmerc.d.ts +2 -0
  301. package/dist/experimental/entries/projections/gstmerc.d.ts.map +1 -0
  302. package/dist/experimental/entries/projections/gstmerc.js +5 -0
  303. package/dist/experimental/entries/projections/gstmerc.js.map +1 -0
  304. package/dist/experimental/entries/projections/krovak.cjs +301 -0
  305. package/dist/experimental/entries/projections/krovak.cjs.map +6 -0
  306. package/dist/experimental/entries/projections/krovak.d.ts +2 -0
  307. package/dist/experimental/entries/projections/krovak.d.ts.map +1 -0
  308. package/dist/experimental/entries/projections/krovak.js +5 -0
  309. package/dist/experimental/entries/projections/krovak.js.map +1 -0
  310. package/dist/experimental/entries/projections/laea.cjs +477 -0
  311. package/dist/experimental/entries/projections/laea.cjs.map +6 -0
  312. package/dist/experimental/entries/projections/laea.d.ts +2 -0
  313. package/dist/experimental/entries/projections/laea.d.ts.map +1 -0
  314. package/dist/experimental/entries/projections/laea.js +5 -0
  315. package/dist/experimental/entries/projections/laea.js.map +1 -0
  316. package/dist/experimental/entries/projections/lcc.cjs +368 -0
  317. package/dist/experimental/entries/projections/lcc.cjs.map +6 -0
  318. package/dist/experimental/entries/projections/lcc.d.ts +2 -0
  319. package/dist/experimental/entries/projections/lcc.d.ts.map +1 -0
  320. package/dist/experimental/entries/projections/lcc.js +5 -0
  321. package/dist/experimental/entries/projections/lcc.js.map +1 -0
  322. package/dist/experimental/entries/projections/merc.cjs +201 -0
  323. package/dist/experimental/entries/projections/merc.cjs.map +6 -0
  324. package/dist/experimental/entries/projections/merc.d.ts +2 -0
  325. package/dist/experimental/entries/projections/merc.d.ts.map +1 -0
  326. package/dist/experimental/entries/projections/merc.js +5 -0
  327. package/dist/experimental/entries/projections/merc.js.map +1 -0
  328. package/dist/experimental/entries/projections/mill.cjs +217 -0
  329. package/dist/experimental/entries/projections/mill.cjs.map +6 -0
  330. package/dist/experimental/entries/projections/mill.d.ts +2 -0
  331. package/dist/experimental/entries/projections/mill.d.ts.map +1 -0
  332. package/dist/experimental/entries/projections/mill.js +5 -0
  333. package/dist/experimental/entries/projections/mill.js.map +1 -0
  334. package/dist/experimental/entries/projections/moll.cjs +257 -0
  335. package/dist/experimental/entries/projections/moll.cjs.map +6 -0
  336. package/dist/experimental/entries/projections/moll.d.ts +2 -0
  337. package/dist/experimental/entries/projections/moll.d.ts.map +1 -0
  338. package/dist/experimental/entries/projections/moll.js +5 -0
  339. package/dist/experimental/entries/projections/moll.js.map +1 -0
  340. package/dist/experimental/entries/projections/nzmg.cjs +346 -0
  341. package/dist/experimental/entries/projections/nzmg.cjs.map +6 -0
  342. package/dist/experimental/entries/projections/nzmg.d.ts +2 -0
  343. package/dist/experimental/entries/projections/nzmg.d.ts.map +1 -0
  344. package/dist/experimental/entries/projections/nzmg.js +5 -0
  345. package/dist/experimental/entries/projections/nzmg.js.map +1 -0
  346. package/dist/experimental/entries/projections/ob_tran.cjs +233 -0
  347. package/dist/experimental/entries/projections/ob_tran.cjs.map +6 -0
  348. package/dist/experimental/entries/projections/ob_tran.d.ts +2 -0
  349. package/dist/experimental/entries/projections/ob_tran.d.ts.map +1 -0
  350. package/dist/experimental/entries/projections/ob_tran.js +5 -0
  351. package/dist/experimental/entries/projections/ob_tran.js.map +1 -0
  352. package/dist/experimental/entries/projections/omerc.cjs +479 -0
  353. package/dist/experimental/entries/projections/omerc.cjs.map +6 -0
  354. package/dist/experimental/entries/projections/omerc.d.ts +2 -0
  355. package/dist/experimental/entries/projections/omerc.d.ts.map +1 -0
  356. package/dist/experimental/entries/projections/omerc.js +5 -0
  357. package/dist/experimental/entries/projections/omerc.js.map +1 -0
  358. package/dist/experimental/entries/projections/ortho.cjs +276 -0
  359. package/dist/experimental/entries/projections/ortho.cjs.map +6 -0
  360. package/dist/experimental/entries/projections/ortho.d.ts +2 -0
  361. package/dist/experimental/entries/projections/ortho.d.ts.map +1 -0
  362. package/dist/experimental/entries/projections/ortho.js +5 -0
  363. package/dist/experimental/entries/projections/ortho.js.map +1 -0
  364. package/dist/experimental/entries/projections/poly.cjs +326 -0
  365. package/dist/experimental/entries/projections/poly.cjs.map +6 -0
  366. package/dist/experimental/entries/projections/poly.d.ts +2 -0
  367. package/dist/experimental/entries/projections/poly.d.ts.map +1 -0
  368. package/dist/experimental/entries/projections/poly.js +5 -0
  369. package/dist/experimental/entries/projections/poly.js.map +1 -0
  370. package/dist/experimental/entries/projections/qsc.cjs +455 -0
  371. package/dist/experimental/entries/projections/qsc.cjs.map +6 -0
  372. package/dist/experimental/entries/projections/qsc.d.ts +2 -0
  373. package/dist/experimental/entries/projections/qsc.d.ts.map +1 -0
  374. package/dist/experimental/entries/projections/qsc.js +5 -0
  375. package/dist/experimental/entries/projections/qsc.js.map +1 -0
  376. package/dist/experimental/entries/projections/robin.cjs +331 -0
  377. package/dist/experimental/entries/projections/robin.cjs.map +6 -0
  378. package/dist/experimental/entries/projections/robin.d.ts +2 -0
  379. package/dist/experimental/entries/projections/robin.d.ts.map +1 -0
  380. package/dist/experimental/entries/projections/robin.js +5 -0
  381. package/dist/experimental/entries/projections/robin.js.map +1 -0
  382. package/dist/experimental/entries/projections/sinu.cjs +330 -0
  383. package/dist/experimental/entries/projections/sinu.cjs.map +6 -0
  384. package/dist/experimental/entries/projections/sinu.d.ts +2 -0
  385. package/dist/experimental/entries/projections/sinu.d.ts.map +1 -0
  386. package/dist/experimental/entries/projections/sinu.js +5 -0
  387. package/dist/experimental/entries/projections/sinu.js.map +1 -0
  388. package/dist/experimental/entries/projections/somerc.cjs +228 -0
  389. package/dist/experimental/entries/projections/somerc.cjs.map +6 -0
  390. package/dist/experimental/entries/projections/somerc.d.ts +2 -0
  391. package/dist/experimental/entries/projections/somerc.d.ts.map +1 -0
  392. package/dist/experimental/entries/projections/somerc.js +5 -0
  393. package/dist/experimental/entries/projections/somerc.js.map +1 -0
  394. package/dist/experimental/entries/projections/stere.cjs +379 -0
  395. package/dist/experimental/entries/projections/stere.cjs.map +6 -0
  396. package/dist/experimental/entries/projections/stere.d.ts +2 -0
  397. package/dist/experimental/entries/projections/stere.d.ts.map +1 -0
  398. package/dist/experimental/entries/projections/stere.js +5 -0
  399. package/dist/experimental/entries/projections/stere.js.map +1 -0
  400. package/dist/experimental/entries/projections/sterea.cjs +328 -0
  401. package/dist/experimental/entries/projections/sterea.cjs.map +6 -0
  402. package/dist/experimental/entries/projections/sterea.d.ts +2 -0
  403. package/dist/experimental/entries/projections/sterea.d.ts.map +1 -0
  404. package/dist/experimental/entries/projections/sterea.js +5 -0
  405. package/dist/experimental/entries/projections/sterea.js.map +1 -0
  406. package/dist/experimental/entries/projections/tmerc.cjs +618 -0
  407. package/dist/experimental/entries/projections/tmerc.cjs.map +6 -0
  408. package/dist/experimental/entries/projections/tmerc.d.ts +2 -0
  409. package/dist/experimental/entries/projections/tmerc.d.ts.map +1 -0
  410. package/dist/experimental/entries/projections/tmerc.js +5 -0
  411. package/dist/experimental/entries/projections/tmerc.js.map +1 -0
  412. package/dist/experimental/entries/projections/tpers.cjs +340 -0
  413. package/dist/experimental/entries/projections/tpers.cjs.map +6 -0
  414. package/dist/experimental/entries/projections/tpers.d.ts +2 -0
  415. package/dist/experimental/entries/projections/tpers.d.ts.map +1 -0
  416. package/dist/experimental/entries/projections/tpers.js +5 -0
  417. package/dist/experimental/entries/projections/tpers.js.map +1 -0
  418. package/dist/experimental/entries/projections/utm.cjs +644 -0
  419. package/dist/experimental/entries/projections/utm.cjs.map +6 -0
  420. package/dist/experimental/entries/projections/utm.d.ts +2 -0
  421. package/dist/experimental/entries/projections/utm.d.ts.map +1 -0
  422. package/dist/experimental/entries/projections/utm.js +5 -0
  423. package/dist/experimental/entries/projections/utm.js.map +1 -0
  424. package/dist/experimental/entries/projections/vandg.cjs +301 -0
  425. package/dist/experimental/entries/projections/vandg.cjs.map +6 -0
  426. package/dist/experimental/entries/projections/vandg.d.ts +2 -0
  427. package/dist/experimental/entries/projections/vandg.d.ts.map +1 -0
  428. package/dist/experimental/entries/projections/vandg.js +5 -0
  429. package/dist/experimental/entries/projections/vandg.js.map +1 -0
  430. package/dist/experimental/exact-helmert.d.ts +9 -0
  431. package/dist/experimental/exact-helmert.d.ts.map +1 -0
  432. package/dist/experimental/exact-helmert.js +32 -0
  433. package/dist/experimental/exact-helmert.js.map +1 -0
  434. package/dist/experimental/flat-projection.d.ts +13 -0
  435. package/dist/experimental/flat-projection.d.ts.map +1 -0
  436. package/dist/experimental/flat-projection.js +61 -0
  437. package/dist/experimental/flat-projection.js.map +1 -0
  438. package/dist/experimental/grids/geotiff.cjs +180 -0
  439. package/dist/experimental/grids/geotiff.cjs.map +6 -0
  440. package/dist/experimental/grids/geotiff.d.ts +23 -0
  441. package/dist/experimental/grids/geotiff.d.ts.map +1 -0
  442. package/dist/experimental/grids/geotiff.js +59 -0
  443. package/dist/experimental/grids/geotiff.js.map +1 -0
  444. package/dist/experimental/grids/grid.d.ts +4 -0
  445. package/dist/experimental/grids/grid.d.ts.map +1 -0
  446. package/dist/experimental/grids/grid.js +111 -0
  447. package/dist/experimental/grids/grid.js.map +1 -0
  448. package/dist/experimental/grids/gtx.cjs +91 -0
  449. package/dist/experimental/grids/gtx.cjs.map +6 -0
  450. package/dist/experimental/grids/gtx.d.ts +7 -0
  451. package/dist/experimental/grids/gtx.d.ts.map +1 -0
  452. package/dist/experimental/grids/gtx.js +30 -0
  453. package/dist/experimental/grids/gtx.js.map +1 -0
  454. package/dist/experimental/grids/ntv2.cjs +181 -0
  455. package/dist/experimental/grids/ntv2.cjs.map +6 -0
  456. package/dist/experimental/grids/ntv2.d.ts +8 -0
  457. package/dist/experimental/grids/ntv2.d.ts.map +1 -0
  458. package/dist/experimental/grids/ntv2.js +56 -0
  459. package/dist/experimental/grids/ntv2.js.map +1 -0
  460. package/dist/experimental/grids/scalar-geotiff.d.ts +58 -0
  461. package/dist/experimental/grids/scalar-geotiff.d.ts.map +1 -0
  462. package/dist/experimental/grids/scalar-geotiff.js +147 -0
  463. package/dist/experimental/grids/scalar-geotiff.js.map +1 -0
  464. package/dist/experimental/grids/types.d.ts +35 -0
  465. package/dist/experimental/grids/types.d.ts.map +1 -0
  466. package/dist/experimental/grids/types.js +2 -0
  467. package/dist/experimental/grids/types.js.map +1 -0
  468. package/dist/experimental/grids/velocity-geotiff.cjs +247 -0
  469. package/dist/experimental/grids/velocity-geotiff.cjs.map +6 -0
  470. package/dist/experimental/grids/velocity-geotiff.d.ts +11 -0
  471. package/dist/experimental/grids/velocity-geotiff.d.ts.map +1 -0
  472. package/dist/experimental/grids/velocity-geotiff.js +61 -0
  473. package/dist/experimental/grids/velocity-geotiff.js.map +1 -0
  474. package/dist/experimental/grids/velocity.d.ts +21 -0
  475. package/dist/experimental/grids/velocity.d.ts.map +1 -0
  476. package/dist/experimental/grids/velocity.js +29 -0
  477. package/dist/experimental/grids/velocity.js.map +1 -0
  478. package/dist/experimental/grids/vertical-geotiff.cjs +195 -0
  479. package/dist/experimental/grids/vertical-geotiff.cjs.map +6 -0
  480. package/dist/experimental/grids/vertical-geotiff.d.ts +6 -0
  481. package/dist/experimental/grids/vertical-geotiff.d.ts.map +1 -0
  482. package/dist/experimental/grids/vertical-geotiff.js +20 -0
  483. package/dist/experimental/grids/vertical-geotiff.js.map +1 -0
  484. package/dist/experimental/grids/vertical.cjs +80 -0
  485. package/dist/experimental/grids/vertical.cjs.map +6 -0
  486. package/dist/experimental/grids/vertical.d.ts +22 -0
  487. package/dist/experimental/grids/vertical.d.ts.map +1 -0
  488. package/dist/experimental/grids/vertical.js +73 -0
  489. package/dist/experimental/grids/vertical.js.map +1 -0
  490. package/dist/experimental/helmert-flat.d.ts +4 -0
  491. package/dist/experimental/helmert-flat.d.ts.map +1 -0
  492. package/dist/experimental/helmert-flat.js +53 -0
  493. package/dist/experimental/helmert-flat.js.map +1 -0
  494. package/dist/experimental/index.cjs +10062 -0
  495. package/dist/experimental/index.cjs.map +6 -0
  496. package/dist/experimental/index.d.ts +49 -0
  497. package/dist/experimental/index.d.ts.map +1 -0
  498. package/dist/experimental/index.js +48 -0
  499. package/dist/experimental/index.js.map +1 -0
  500. package/dist/experimental/kernel.d.ts +36 -0
  501. package/dist/experimental/kernel.d.ts.map +1 -0
  502. package/dist/experimental/kernel.js +80 -0
  503. package/dist/experimental/kernel.js.map +1 -0
  504. package/dist/experimental/kernels/aea.d.ts +25 -0
  505. package/dist/experimental/kernels/aea.d.ts.map +1 -0
  506. package/dist/experimental/kernels/aea.js +136 -0
  507. package/dist/experimental/kernels/aea.js.map +1 -0
  508. package/dist/experimental/kernels/aeqd.d.ts +10 -0
  509. package/dist/experimental/kernels/aeqd.d.ts.map +1 -0
  510. package/dist/experimental/kernels/aeqd.js +176 -0
  511. package/dist/experimental/kernels/aeqd.js.map +1 -0
  512. package/dist/experimental/kernels/bonne.d.ts +12 -0
  513. package/dist/experimental/kernels/bonne.d.ts.map +1 -0
  514. package/dist/experimental/kernels/bonne.js +128 -0
  515. package/dist/experimental/kernels/bonne.js.map +1 -0
  516. package/dist/experimental/kernels/cass.d.ts +10 -0
  517. package/dist/experimental/kernels/cass.d.ts.map +1 -0
  518. package/dist/experimental/kernels/cass.js +122 -0
  519. package/dist/experimental/kernels/cass.js.map +1 -0
  520. package/dist/experimental/kernels/cea.d.ts +6 -0
  521. package/dist/experimental/kernels/cea.d.ts.map +1 -0
  522. package/dist/experimental/kernels/cea.js +63 -0
  523. package/dist/experimental/kernels/cea.js.map +1 -0
  524. package/dist/experimental/kernels/eck6.d.ts +13 -0
  525. package/dist/experimental/kernels/eck6.d.ts.map +1 -0
  526. package/dist/experimental/kernels/eck6.js +23 -0
  527. package/dist/experimental/kernels/eck6.js.map +1 -0
  528. package/dist/experimental/kernels/eqdc.d.ts +19 -0
  529. package/dist/experimental/kernels/eqdc.d.ts.map +1 -0
  530. package/dist/experimental/kernels/eqdc.js +117 -0
  531. package/dist/experimental/kernels/eqdc.js.map +1 -0
  532. package/dist/experimental/kernels/eqearth.d.ts +10 -0
  533. package/dist/experimental/kernels/eqearth.d.ts.map +1 -0
  534. package/dist/experimental/kernels/eqearth.js +103 -0
  535. package/dist/experimental/kernels/eqearth.js.map +1 -0
  536. package/dist/experimental/kernels/equi.d.ts +9 -0
  537. package/dist/experimental/kernels/equi.d.ts.map +1 -0
  538. package/dist/experimental/kernels/equi.js +41 -0
  539. package/dist/experimental/kernels/equi.js.map +1 -0
  540. package/dist/experimental/kernels/etmerc.d.ts +13 -0
  541. package/dist/experimental/kernels/etmerc.d.ts.map +1 -0
  542. package/dist/experimental/kernels/etmerc.js +145 -0
  543. package/dist/experimental/kernels/etmerc.js.map +1 -0
  544. package/dist/experimental/kernels/gauss.d.ts +12 -0
  545. package/dist/experimental/kernels/gauss.d.ts.map +1 -0
  546. package/dist/experimental/kernels/gauss.js +64 -0
  547. package/dist/experimental/kernels/gauss.js.map +1 -0
  548. package/dist/experimental/kernels/geos.d.ts +17 -0
  549. package/dist/experimental/kernels/geos.d.ts.map +1 -0
  550. package/dist/experimental/kernels/geos.js +153 -0
  551. package/dist/experimental/kernels/geos.js.map +1 -0
  552. package/dist/experimental/kernels/gnom.d.ts +12 -0
  553. package/dist/experimental/kernels/gnom.d.ts.map +1 -0
  554. package/dist/experimental/kernels/gnom.js +95 -0
  555. package/dist/experimental/kernels/gnom.js.map +1 -0
  556. package/dist/experimental/kernels/gstmerc.d.ts +13 -0
  557. package/dist/experimental/kernels/gstmerc.d.ts.map +1 -0
  558. package/dist/experimental/kernels/gstmerc.js +57 -0
  559. package/dist/experimental/kernels/gstmerc.js.map +1 -0
  560. package/dist/experimental/kernels/krovak.d.ts +23 -0
  561. package/dist/experimental/kernels/krovak.d.ts.map +1 -0
  562. package/dist/experimental/kernels/krovak.js +128 -0
  563. package/dist/experimental/kernels/krovak.js.map +1 -0
  564. package/dist/experimental/kernels/laea.d.ts +23 -0
  565. package/dist/experimental/kernels/laea.d.ts.map +1 -0
  566. package/dist/experimental/kernels/laea.js +278 -0
  567. package/dist/experimental/kernels/laea.js.map +1 -0
  568. package/dist/experimental/kernels/lcc.d.ts +10 -0
  569. package/dist/experimental/kernels/lcc.d.ts.map +1 -0
  570. package/dist/experimental/kernels/lcc.js +131 -0
  571. package/dist/experimental/kernels/lcc.js.map +1 -0
  572. package/dist/experimental/kernels/mill.d.ts +6 -0
  573. package/dist/experimental/kernels/mill.d.ts.map +1 -0
  574. package/dist/experimental/kernels/mill.js +49 -0
  575. package/dist/experimental/kernels/mill.js.map +1 -0
  576. package/dist/experimental/kernels/moll.d.ts +6 -0
  577. package/dist/experimental/kernels/moll.d.ts.map +1 -0
  578. package/dist/experimental/kernels/moll.js +89 -0
  579. package/dist/experimental/kernels/moll.js.map +1 -0
  580. package/dist/experimental/kernels/nzmg.d.ts +28 -0
  581. package/dist/experimental/kernels/nzmg.d.ts.map +1 -0
  582. package/dist/experimental/kernels/nzmg.js +209 -0
  583. package/dist/experimental/kernels/nzmg.js.map +1 -0
  584. package/dist/experimental/kernels/omerc.d.ts +30 -0
  585. package/dist/experimental/kernels/omerc.d.ts.map +1 -0
  586. package/dist/experimental/kernels/omerc.js +260 -0
  587. package/dist/experimental/kernels/omerc.js.map +1 -0
  588. package/dist/experimental/kernels/ortho.d.ts +9 -0
  589. package/dist/experimental/kernels/ortho.d.ts.map +1 -0
  590. package/dist/experimental/kernels/ortho.js +91 -0
  591. package/dist/experimental/kernels/ortho.js.map +1 -0
  592. package/dist/experimental/kernels/poly.d.ts +13 -0
  593. package/dist/experimental/kernels/poly.d.ts.map +1 -0
  594. package/dist/experimental/kernels/poly.js +141 -0
  595. package/dist/experimental/kernels/poly.js.map +1 -0
  596. package/dist/experimental/kernels/qsc.d.ts +10 -0
  597. package/dist/experimental/kernels/qsc.d.ts.map +1 -0
  598. package/dist/experimental/kernels/qsc.js +379 -0
  599. package/dist/experimental/kernels/qsc.js.map +1 -0
  600. package/dist/experimental/kernels/robin.d.ts +6 -0
  601. package/dist/experimental/kernels/robin.d.ts.map +1 -0
  602. package/dist/experimental/kernels/robin.js +166 -0
  603. package/dist/experimental/kernels/robin.js.map +1 -0
  604. package/dist/experimental/kernels/sinu.d.ts +12 -0
  605. package/dist/experimental/kernels/sinu.d.ts.map +1 -0
  606. package/dist/experimental/kernels/sinu.js +104 -0
  607. package/dist/experimental/kernels/sinu.js.map +1 -0
  608. package/dist/experimental/kernels/somerc.d.ts +13 -0
  609. package/dist/experimental/kernels/somerc.d.ts.map +1 -0
  610. package/dist/experimental/kernels/somerc.js +81 -0
  611. package/dist/experimental/kernels/somerc.js.map +1 -0
  612. package/dist/experimental/kernels/stere.d.ts +15 -0
  613. package/dist/experimental/kernels/stere.d.ts.map +1 -0
  614. package/dist/experimental/kernels/stere.js +195 -0
  615. package/dist/experimental/kernels/stere.js.map +1 -0
  616. package/dist/experimental/kernels/sterea.d.ts +11 -0
  617. package/dist/experimental/kernels/sterea.d.ts.map +1 -0
  618. package/dist/experimental/kernels/sterea.js +65 -0
  619. package/dist/experimental/kernels/sterea.js.map +1 -0
  620. package/dist/experimental/kernels/tmerc.d.ts +9 -0
  621. package/dist/experimental/kernels/tmerc.d.ts.map +1 -0
  622. package/dist/experimental/kernels/tmerc.js +201 -0
  623. package/dist/experimental/kernels/tmerc.js.map +1 -0
  624. package/dist/experimental/kernels/tpers.d.ts +22 -0
  625. package/dist/experimental/kernels/tpers.d.ts.map +1 -0
  626. package/dist/experimental/kernels/tpers.js +156 -0
  627. package/dist/experimental/kernels/tpers.js.map +1 -0
  628. package/dist/experimental/kernels/vandg.d.ts +8 -0
  629. package/dist/experimental/kernels/vandg.d.ts.map +1 -0
  630. package/dist/experimental/kernels/vandg.js +132 -0
  631. package/dist/experimental/kernels/vandg.js.map +1 -0
  632. package/dist/experimental/kinematic-helmert-flat.d.ts +4 -0
  633. package/dist/experimental/kinematic-helmert-flat.d.ts.map +1 -0
  634. package/dist/experimental/kinematic-helmert-flat.js +60 -0
  635. package/dist/experimental/kinematic-helmert-flat.js.map +1 -0
  636. package/dist/experimental/kinematic-helmert.d.ts +11 -0
  637. package/dist/experimental/kinematic-helmert.d.ts.map +1 -0
  638. package/dist/experimental/kinematic-helmert.js +103 -0
  639. package/dist/experimental/kinematic-helmert.js.map +1 -0
  640. package/dist/experimental/lazy-projection.d.ts +11 -0
  641. package/dist/experimental/lazy-projection.d.ts.map +1 -0
  642. package/dist/experimental/lazy-projection.js +138 -0
  643. package/dist/experimental/lazy-projection.js.map +1 -0
  644. package/dist/experimental/lazy-projections/aea.cjs +79 -0
  645. package/dist/experimental/lazy-projections/aea.cjs.map +6 -0
  646. package/dist/experimental/lazy-projections/aea.d.ts +3 -0
  647. package/dist/experimental/lazy-projections/aea.d.ts.map +1 -0
  648. package/dist/experimental/lazy-projections/aea.js +7 -0
  649. package/dist/experimental/lazy-projections/aea.js.map +1 -0
  650. package/dist/experimental/lazy-projections/aeqd.cjs +79 -0
  651. package/dist/experimental/lazy-projections/aeqd.cjs.map +6 -0
  652. package/dist/experimental/lazy-projections/aeqd.d.ts +3 -0
  653. package/dist/experimental/lazy-projections/aeqd.d.ts.map +1 -0
  654. package/dist/experimental/lazy-projections/aeqd.js +8 -0
  655. package/dist/experimental/lazy-projections/aeqd.js.map +1 -0
  656. package/dist/experimental/lazy-projections/bonne.cjs +79 -0
  657. package/dist/experimental/lazy-projections/bonne.cjs.map +6 -0
  658. package/dist/experimental/lazy-projections/bonne.d.ts +3 -0
  659. package/dist/experimental/lazy-projections/bonne.d.ts.map +1 -0
  660. package/dist/experimental/lazy-projections/bonne.js +7 -0
  661. package/dist/experimental/lazy-projections/bonne.js.map +1 -0
  662. package/dist/experimental/lazy-projections/cass.cjs +79 -0
  663. package/dist/experimental/lazy-projections/cass.cjs.map +6 -0
  664. package/dist/experimental/lazy-projections/cass.d.ts +3 -0
  665. package/dist/experimental/lazy-projections/cass.d.ts.map +1 -0
  666. package/dist/experimental/lazy-projections/cass.js +7 -0
  667. package/dist/experimental/lazy-projections/cass.js.map +1 -0
  668. package/dist/experimental/lazy-projections/cea.cjs +79 -0
  669. package/dist/experimental/lazy-projections/cea.cjs.map +6 -0
  670. package/dist/experimental/lazy-projections/cea.d.ts +3 -0
  671. package/dist/experimental/lazy-projections/cea.d.ts.map +1 -0
  672. package/dist/experimental/lazy-projections/cea.js +8 -0
  673. package/dist/experimental/lazy-projections/cea.js.map +1 -0
  674. package/dist/experimental/lazy-projections/eck6.cjs +79 -0
  675. package/dist/experimental/lazy-projections/eck6.cjs.map +6 -0
  676. package/dist/experimental/lazy-projections/eck6.d.ts +3 -0
  677. package/dist/experimental/lazy-projections/eck6.d.ts.map +1 -0
  678. package/dist/experimental/lazy-projections/eck6.js +7 -0
  679. package/dist/experimental/lazy-projections/eck6.js.map +1 -0
  680. package/dist/experimental/lazy-projections/eqc.cjs +82 -0
  681. package/dist/experimental/lazy-projections/eqc.cjs.map +6 -0
  682. package/dist/experimental/lazy-projections/eqc.d.ts +3 -0
  683. package/dist/experimental/lazy-projections/eqc.d.ts.map +1 -0
  684. package/dist/experimental/lazy-projections/eqc.js +11 -0
  685. package/dist/experimental/lazy-projections/eqc.js.map +1 -0
  686. package/dist/experimental/lazy-projections/eqdc.cjs +79 -0
  687. package/dist/experimental/lazy-projections/eqdc.cjs.map +6 -0
  688. package/dist/experimental/lazy-projections/eqdc.d.ts +3 -0
  689. package/dist/experimental/lazy-projections/eqdc.d.ts.map +1 -0
  690. package/dist/experimental/lazy-projections/eqdc.js +8 -0
  691. package/dist/experimental/lazy-projections/eqdc.js.map +1 -0
  692. package/dist/experimental/lazy-projections/eqearth.cjs +79 -0
  693. package/dist/experimental/lazy-projections/eqearth.cjs.map +6 -0
  694. package/dist/experimental/lazy-projections/eqearth.d.ts +3 -0
  695. package/dist/experimental/lazy-projections/eqearth.d.ts.map +1 -0
  696. package/dist/experimental/lazy-projections/eqearth.js +7 -0
  697. package/dist/experimental/lazy-projections/eqearth.js.map +1 -0
  698. package/dist/experimental/lazy-projections/equi.cjs +79 -0
  699. package/dist/experimental/lazy-projections/equi.cjs.map +6 -0
  700. package/dist/experimental/lazy-projections/equi.d.ts +3 -0
  701. package/dist/experimental/lazy-projections/equi.d.ts.map +1 -0
  702. package/dist/experimental/lazy-projections/equi.js +7 -0
  703. package/dist/experimental/lazy-projections/equi.js.map +1 -0
  704. package/dist/experimental/lazy-projections/etmerc.cjs +79 -0
  705. package/dist/experimental/lazy-projections/etmerc.cjs.map +6 -0
  706. package/dist/experimental/lazy-projections/etmerc.d.ts +3 -0
  707. package/dist/experimental/lazy-projections/etmerc.d.ts.map +1 -0
  708. package/dist/experimental/lazy-projections/etmerc.js +8 -0
  709. package/dist/experimental/lazy-projections/etmerc.js.map +1 -0
  710. package/dist/experimental/lazy-projections/geocent.cjs +79 -0
  711. package/dist/experimental/lazy-projections/geocent.cjs.map +6 -0
  712. package/dist/experimental/lazy-projections/geocent.d.ts +3 -0
  713. package/dist/experimental/lazy-projections/geocent.d.ts.map +1 -0
  714. package/dist/experimental/lazy-projections/geocent.js +7 -0
  715. package/dist/experimental/lazy-projections/geocent.js.map +1 -0
  716. package/dist/experimental/lazy-projections/geos.cjs +79 -0
  717. package/dist/experimental/lazy-projections/geos.cjs.map +6 -0
  718. package/dist/experimental/lazy-projections/geos.d.ts +3 -0
  719. package/dist/experimental/lazy-projections/geos.d.ts.map +1 -0
  720. package/dist/experimental/lazy-projections/geos.js +7 -0
  721. package/dist/experimental/lazy-projections/geos.js.map +1 -0
  722. package/dist/experimental/lazy-projections/gnom.cjs +79 -0
  723. package/dist/experimental/lazy-projections/gnom.cjs.map +6 -0
  724. package/dist/experimental/lazy-projections/gnom.d.ts +3 -0
  725. package/dist/experimental/lazy-projections/gnom.d.ts.map +1 -0
  726. package/dist/experimental/lazy-projections/gnom.js +7 -0
  727. package/dist/experimental/lazy-projections/gnom.js.map +1 -0
  728. package/dist/experimental/lazy-projections/gstmerc.cjs +79 -0
  729. package/dist/experimental/lazy-projections/gstmerc.cjs.map +6 -0
  730. package/dist/experimental/lazy-projections/gstmerc.d.ts +3 -0
  731. package/dist/experimental/lazy-projections/gstmerc.d.ts.map +1 -0
  732. package/dist/experimental/lazy-projections/gstmerc.js +8 -0
  733. package/dist/experimental/lazy-projections/gstmerc.js.map +1 -0
  734. package/dist/experimental/lazy-projections/index.cjs +3177 -0
  735. package/dist/experimental/lazy-projections/index.cjs.map +6 -0
  736. package/dist/experimental/lazy-projections/index.d.ts +39 -0
  737. package/dist/experimental/lazy-projections/index.d.ts.map +1 -0
  738. package/dist/experimental/lazy-projections/index.js +41 -0
  739. package/dist/experimental/lazy-projections/index.js.map +1 -0
  740. package/dist/experimental/lazy-projections/krovak.cjs +87 -0
  741. package/dist/experimental/lazy-projections/krovak.cjs.map +6 -0
  742. package/dist/experimental/lazy-projections/krovak.d.ts +3 -0
  743. package/dist/experimental/lazy-projections/krovak.d.ts.map +1 -0
  744. package/dist/experimental/lazy-projections/krovak.js +15 -0
  745. package/dist/experimental/lazy-projections/krovak.js.map +1 -0
  746. package/dist/experimental/lazy-projections/laea.cjs +79 -0
  747. package/dist/experimental/lazy-projections/laea.cjs.map +6 -0
  748. package/dist/experimental/lazy-projections/laea.d.ts +3 -0
  749. package/dist/experimental/lazy-projections/laea.d.ts.map +1 -0
  750. package/dist/experimental/lazy-projections/laea.js +8 -0
  751. package/dist/experimental/lazy-projections/laea.js.map +1 -0
  752. package/dist/experimental/lazy-projections/lcc.cjs +89 -0
  753. package/dist/experimental/lazy-projections/lcc.cjs.map +6 -0
  754. package/dist/experimental/lazy-projections/lcc.d.ts +3 -0
  755. package/dist/experimental/lazy-projections/lcc.d.ts.map +1 -0
  756. package/dist/experimental/lazy-projections/lcc.js +18 -0
  757. package/dist/experimental/lazy-projections/lcc.js.map +1 -0
  758. package/dist/experimental/lazy-projections/merc.cjs +88 -0
  759. package/dist/experimental/lazy-projections/merc.cjs.map +6 -0
  760. package/dist/experimental/lazy-projections/merc.d.ts +3 -0
  761. package/dist/experimental/lazy-projections/merc.d.ts.map +1 -0
  762. package/dist/experimental/lazy-projections/merc.js +16 -0
  763. package/dist/experimental/lazy-projections/merc.js.map +1 -0
  764. package/dist/experimental/lazy-projections/mill.cjs +79 -0
  765. package/dist/experimental/lazy-projections/mill.cjs.map +6 -0
  766. package/dist/experimental/lazy-projections/mill.d.ts +3 -0
  767. package/dist/experimental/lazy-projections/mill.d.ts.map +1 -0
  768. package/dist/experimental/lazy-projections/mill.js +8 -0
  769. package/dist/experimental/lazy-projections/mill.js.map +1 -0
  770. package/dist/experimental/lazy-projections/moll.cjs +79 -0
  771. package/dist/experimental/lazy-projections/moll.cjs.map +6 -0
  772. package/dist/experimental/lazy-projections/moll.d.ts +3 -0
  773. package/dist/experimental/lazy-projections/moll.d.ts.map +1 -0
  774. package/dist/experimental/lazy-projections/moll.js +7 -0
  775. package/dist/experimental/lazy-projections/moll.js.map +1 -0
  776. package/dist/experimental/lazy-projections/nzmg.cjs +79 -0
  777. package/dist/experimental/lazy-projections/nzmg.cjs.map +6 -0
  778. package/dist/experimental/lazy-projections/nzmg.d.ts +3 -0
  779. package/dist/experimental/lazy-projections/nzmg.d.ts.map +1 -0
  780. package/dist/experimental/lazy-projections/nzmg.js +8 -0
  781. package/dist/experimental/lazy-projections/nzmg.js.map +1 -0
  782. package/dist/experimental/lazy-projections/ob_tran.cjs +90 -0
  783. package/dist/experimental/lazy-projections/ob_tran.cjs.map +6 -0
  784. package/dist/experimental/lazy-projections/ob_tran.d.ts +5 -0
  785. package/dist/experimental/lazy-projections/ob_tran.d.ts.map +1 -0
  786. package/dist/experimental/lazy-projections/ob_tran.js +18 -0
  787. package/dist/experimental/lazy-projections/ob_tran.js.map +1 -0
  788. package/dist/experimental/lazy-projections/omerc.cjs +91 -0
  789. package/dist/experimental/lazy-projections/omerc.cjs.map +6 -0
  790. package/dist/experimental/lazy-projections/omerc.d.ts +3 -0
  791. package/dist/experimental/lazy-projections/omerc.d.ts.map +1 -0
  792. package/dist/experimental/lazy-projections/omerc.js +19 -0
  793. package/dist/experimental/lazy-projections/omerc.js.map +1 -0
  794. package/dist/experimental/lazy-projections/ortho.cjs +79 -0
  795. package/dist/experimental/lazy-projections/ortho.cjs.map +6 -0
  796. package/dist/experimental/lazy-projections/ortho.d.ts +3 -0
  797. package/dist/experimental/lazy-projections/ortho.d.ts.map +1 -0
  798. package/dist/experimental/lazy-projections/ortho.js +7 -0
  799. package/dist/experimental/lazy-projections/ortho.js.map +1 -0
  800. package/dist/experimental/lazy-projections/poly.cjs +79 -0
  801. package/dist/experimental/lazy-projections/poly.cjs.map +6 -0
  802. package/dist/experimental/lazy-projections/poly.d.ts +3 -0
  803. package/dist/experimental/lazy-projections/poly.d.ts.map +1 -0
  804. package/dist/experimental/lazy-projections/poly.js +7 -0
  805. package/dist/experimental/lazy-projections/poly.js.map +1 -0
  806. package/dist/experimental/lazy-projections/qsc.cjs +82 -0
  807. package/dist/experimental/lazy-projections/qsc.cjs.map +6 -0
  808. package/dist/experimental/lazy-projections/qsc.d.ts +3 -0
  809. package/dist/experimental/lazy-projections/qsc.d.ts.map +1 -0
  810. package/dist/experimental/lazy-projections/qsc.js +11 -0
  811. package/dist/experimental/lazy-projections/qsc.js.map +1 -0
  812. package/dist/experimental/lazy-projections/robin.cjs +79 -0
  813. package/dist/experimental/lazy-projections/robin.cjs.map +6 -0
  814. package/dist/experimental/lazy-projections/robin.d.ts +3 -0
  815. package/dist/experimental/lazy-projections/robin.d.ts.map +1 -0
  816. package/dist/experimental/lazy-projections/robin.js +7 -0
  817. package/dist/experimental/lazy-projections/robin.js.map +1 -0
  818. package/dist/experimental/lazy-projections/sinu.cjs +79 -0
  819. package/dist/experimental/lazy-projections/sinu.cjs.map +6 -0
  820. package/dist/experimental/lazy-projections/sinu.d.ts +3 -0
  821. package/dist/experimental/lazy-projections/sinu.d.ts.map +1 -0
  822. package/dist/experimental/lazy-projections/sinu.js +7 -0
  823. package/dist/experimental/lazy-projections/sinu.js.map +1 -0
  824. package/dist/experimental/lazy-projections/somerc.cjs +79 -0
  825. package/dist/experimental/lazy-projections/somerc.cjs.map +6 -0
  826. package/dist/experimental/lazy-projections/somerc.d.ts +3 -0
  827. package/dist/experimental/lazy-projections/somerc.d.ts.map +1 -0
  828. package/dist/experimental/lazy-projections/somerc.js +8 -0
  829. package/dist/experimental/lazy-projections/somerc.js.map +1 -0
  830. package/dist/experimental/lazy-projections/stere.cjs +87 -0
  831. package/dist/experimental/lazy-projections/stere.cjs.map +6 -0
  832. package/dist/experimental/lazy-projections/stere.d.ts +3 -0
  833. package/dist/experimental/lazy-projections/stere.d.ts.map +1 -0
  834. package/dist/experimental/lazy-projections/stere.js +15 -0
  835. package/dist/experimental/lazy-projections/stere.js.map +1 -0
  836. package/dist/experimental/lazy-projections/sterea.cjs +87 -0
  837. package/dist/experimental/lazy-projections/sterea.cjs.map +6 -0
  838. package/dist/experimental/lazy-projections/sterea.d.ts +3 -0
  839. package/dist/experimental/lazy-projections/sterea.d.ts.map +1 -0
  840. package/dist/experimental/lazy-projections/sterea.js +16 -0
  841. package/dist/experimental/lazy-projections/sterea.js.map +1 -0
  842. package/dist/experimental/lazy-projections/tmerc.cjs +89 -0
  843. package/dist/experimental/lazy-projections/tmerc.cjs.map +6 -0
  844. package/dist/experimental/lazy-projections/tmerc.d.ts +3 -0
  845. package/dist/experimental/lazy-projections/tmerc.d.ts.map +1 -0
  846. package/dist/experimental/lazy-projections/tmerc.js +18 -0
  847. package/dist/experimental/lazy-projections/tmerc.js.map +1 -0
  848. package/dist/experimental/lazy-projections/tpers.cjs +79 -0
  849. package/dist/experimental/lazy-projections/tpers.cjs.map +6 -0
  850. package/dist/experimental/lazy-projections/tpers.d.ts +3 -0
  851. package/dist/experimental/lazy-projections/tpers.d.ts.map +1 -0
  852. package/dist/experimental/lazy-projections/tpers.js +8 -0
  853. package/dist/experimental/lazy-projections/tpers.js.map +1 -0
  854. package/dist/experimental/lazy-projections/utm.cjs +79 -0
  855. package/dist/experimental/lazy-projections/utm.cjs.map +6 -0
  856. package/dist/experimental/lazy-projections/utm.d.ts +3 -0
  857. package/dist/experimental/lazy-projections/utm.d.ts.map +1 -0
  858. package/dist/experimental/lazy-projections/utm.js +8 -0
  859. package/dist/experimental/lazy-projections/utm.js.map +1 -0
  860. package/dist/experimental/lazy-projections/vandg.cjs +79 -0
  861. package/dist/experimental/lazy-projections/vandg.cjs.map +6 -0
  862. package/dist/experimental/lazy-projections/vandg.d.ts +3 -0
  863. package/dist/experimental/lazy-projections/vandg.d.ts.map +1 -0
  864. package/dist/experimental/lazy-projections/vandg.js +7 -0
  865. package/dist/experimental/lazy-projections/vandg.js.map +1 -0
  866. package/dist/experimental/mutable-projection.d.ts +6 -0
  867. package/dist/experimental/mutable-projection.d.ts.map +1 -0
  868. package/dist/experimental/mutable-projection.js +53 -0
  869. package/dist/experimental/mutable-projection.js.map +1 -0
  870. package/dist/experimental/numeric-flat.d.ts +8 -0
  871. package/dist/experimental/numeric-flat.d.ts.map +1 -0
  872. package/dist/experimental/numeric-flat.js +54 -0
  873. package/dist/experimental/numeric-flat.js.map +1 -0
  874. package/dist/experimental/parameters.d.ts +7 -0
  875. package/dist/experimental/parameters.d.ts.map +1 -0
  876. package/dist/experimental/parameters.js +30 -0
  877. package/dist/experimental/parameters.js.map +1 -0
  878. package/dist/experimental/projection-descriptor.d.ts +13 -0
  879. package/dist/experimental/projection-descriptor.d.ts.map +1 -0
  880. package/dist/experimental/projection-descriptor.js +52 -0
  881. package/dist/experimental/projection-descriptor.js.map +1 -0
  882. package/dist/experimental/projection-pipeline.d.ts +142 -0
  883. package/dist/experimental/projection-pipeline.d.ts.map +1 -0
  884. package/dist/experimental/projection-pipeline.js +746 -0
  885. package/dist/experimental/projection-pipeline.js.map +1 -0
  886. package/dist/experimental/projection-scratch.d.ts +9 -0
  887. package/dist/experimental/projection-scratch.d.ts.map +1 -0
  888. package/dist/experimental/projection-scratch.js +18 -0
  889. package/dist/experimental/projection-scratch.js.map +1 -0
  890. package/dist/experimental/projections/aea.d.ts +3 -0
  891. package/dist/experimental/projections/aea.d.ts.map +1 -0
  892. package/dist/experimental/projections/aea.js +17 -0
  893. package/dist/experimental/projections/aea.js.map +1 -0
  894. package/dist/experimental/projections/aeqd.d.ts +3 -0
  895. package/dist/experimental/projections/aeqd.d.ts.map +1 -0
  896. package/dist/experimental/projections/aeqd.js +15 -0
  897. package/dist/experimental/projections/aeqd.js.map +1 -0
  898. package/dist/experimental/projections/bonne.d.ts +3 -0
  899. package/dist/experimental/projections/bonne.d.ts.map +1 -0
  900. package/dist/experimental/projections/bonne.js +16 -0
  901. package/dist/experimental/projections/bonne.js.map +1 -0
  902. package/dist/experimental/projections/cass.d.ts +3 -0
  903. package/dist/experimental/projections/cass.d.ts.map +1 -0
  904. package/dist/experimental/projections/cass.js +13 -0
  905. package/dist/experimental/projections/cass.js.map +1 -0
  906. package/dist/experimental/projections/cea.d.ts +3 -0
  907. package/dist/experimental/projections/cea.d.ts.map +1 -0
  908. package/dist/experimental/projections/cea.js +15 -0
  909. package/dist/experimental/projections/cea.js.map +1 -0
  910. package/dist/experimental/projections/eck6.d.ts +3 -0
  911. package/dist/experimental/projections/eck6.d.ts.map +1 -0
  912. package/dist/experimental/projections/eck6.js +13 -0
  913. package/dist/experimental/projections/eck6.js.map +1 -0
  914. package/dist/experimental/projections/eqdc.d.ts +3 -0
  915. package/dist/experimental/projections/eqdc.d.ts.map +1 -0
  916. package/dist/experimental/projections/eqdc.js +17 -0
  917. package/dist/experimental/projections/eqdc.js.map +1 -0
  918. package/dist/experimental/projections/eqearth.d.ts +3 -0
  919. package/dist/experimental/projections/eqearth.d.ts.map +1 -0
  920. package/dist/experimental/projections/eqearth.js +13 -0
  921. package/dist/experimental/projections/eqearth.js.map +1 -0
  922. package/dist/experimental/projections/equi.d.ts +3 -0
  923. package/dist/experimental/projections/equi.d.ts.map +1 -0
  924. package/dist/experimental/projections/equi.js +15 -0
  925. package/dist/experimental/projections/equi.js.map +1 -0
  926. package/dist/experimental/projections/equidistant-cylindrical.d.ts +4 -0
  927. package/dist/experimental/projections/equidistant-cylindrical.d.ts.map +1 -0
  928. package/dist/experimental/projections/equidistant-cylindrical.js +30 -0
  929. package/dist/experimental/projections/equidistant-cylindrical.js.map +1 -0
  930. package/dist/experimental/projections/geocentric.d.ts +3 -0
  931. package/dist/experimental/projections/geocentric.d.ts.map +1 -0
  932. package/dist/experimental/projections/geocentric.js +26 -0
  933. package/dist/experimental/projections/geocentric.js.map +1 -0
  934. package/dist/experimental/projections/geos.d.ts +3 -0
  935. package/dist/experimental/projections/geos.d.ts.map +1 -0
  936. package/dist/experimental/projections/geos.js +20 -0
  937. package/dist/experimental/projections/geos.js.map +1 -0
  938. package/dist/experimental/projections/gnom.d.ts +3 -0
  939. package/dist/experimental/projections/gnom.d.ts.map +1 -0
  940. package/dist/experimental/projections/gnom.js +13 -0
  941. package/dist/experimental/projections/gnom.js.map +1 -0
  942. package/dist/experimental/projections/gstmerc.d.ts +3 -0
  943. package/dist/experimental/projections/gstmerc.d.ts.map +1 -0
  944. package/dist/experimental/projections/gstmerc.js +13 -0
  945. package/dist/experimental/projections/gstmerc.js.map +1 -0
  946. package/dist/experimental/projections/krovak.d.ts +3 -0
  947. package/dist/experimental/projections/krovak.d.ts.map +1 -0
  948. package/dist/experimental/projections/krovak.js +32 -0
  949. package/dist/experimental/projections/krovak.js.map +1 -0
  950. package/dist/experimental/projections/laea.d.ts +3 -0
  951. package/dist/experimental/projections/laea.d.ts.map +1 -0
  952. package/dist/experimental/projections/laea.js +15 -0
  953. package/dist/experimental/projections/laea.js.map +1 -0
  954. package/dist/experimental/projections/lcc.d.ts +3 -0
  955. package/dist/experimental/projections/lcc.d.ts.map +1 -0
  956. package/dist/experimental/projections/lcc.js +32 -0
  957. package/dist/experimental/projections/lcc.js.map +1 -0
  958. package/dist/experimental/projections/mercator.d.ts +4 -0
  959. package/dist/experimental/projections/mercator.d.ts.map +1 -0
  960. package/dist/experimental/projections/mercator.js +71 -0
  961. package/dist/experimental/projections/mercator.js.map +1 -0
  962. package/dist/experimental/projections/mill.d.ts +3 -0
  963. package/dist/experimental/projections/mill.d.ts.map +1 -0
  964. package/dist/experimental/projections/mill.js +13 -0
  965. package/dist/experimental/projections/mill.js.map +1 -0
  966. package/dist/experimental/projections/moll.d.ts +3 -0
  967. package/dist/experimental/projections/moll.d.ts.map +1 -0
  968. package/dist/experimental/projections/moll.js +13 -0
  969. package/dist/experimental/projections/moll.js.map +1 -0
  970. package/dist/experimental/projections/nzmg.d.ts +3 -0
  971. package/dist/experimental/projections/nzmg.d.ts.map +1 -0
  972. package/dist/experimental/projections/nzmg.js +20 -0
  973. package/dist/experimental/projections/nzmg.js.map +1 -0
  974. package/dist/experimental/projections/ob-tran.d.ts +4 -0
  975. package/dist/experimental/projections/ob-tran.d.ts.map +1 -0
  976. package/dist/experimental/projections/ob-tran.js +119 -0
  977. package/dist/experimental/projections/ob-tran.js.map +1 -0
  978. package/dist/experimental/projections/omerc.d.ts +3 -0
  979. package/dist/experimental/projections/omerc.d.ts.map +1 -0
  980. package/dist/experimental/projections/omerc.js +60 -0
  981. package/dist/experimental/projections/omerc.js.map +1 -0
  982. package/dist/experimental/projections/ortho.d.ts +3 -0
  983. package/dist/experimental/projections/ortho.d.ts.map +1 -0
  984. package/dist/experimental/projections/ortho.js +13 -0
  985. package/dist/experimental/projections/ortho.js.map +1 -0
  986. package/dist/experimental/projections/poly.d.ts +3 -0
  987. package/dist/experimental/projections/poly.d.ts.map +1 -0
  988. package/dist/experimental/projections/poly.js +13 -0
  989. package/dist/experimental/projections/poly.js.map +1 -0
  990. package/dist/experimental/projections/qsc.d.ts +3 -0
  991. package/dist/experimental/projections/qsc.d.ts.map +1 -0
  992. package/dist/experimental/projections/qsc.js +13 -0
  993. package/dist/experimental/projections/qsc.js.map +1 -0
  994. package/dist/experimental/projections/robin.d.ts +3 -0
  995. package/dist/experimental/projections/robin.d.ts.map +1 -0
  996. package/dist/experimental/projections/robin.js +13 -0
  997. package/dist/experimental/projections/robin.js.map +1 -0
  998. package/dist/experimental/projections/sinu.d.ts +3 -0
  999. package/dist/experimental/projections/sinu.d.ts.map +1 -0
  1000. package/dist/experimental/projections/sinu.js +13 -0
  1001. package/dist/experimental/projections/sinu.js.map +1 -0
  1002. package/dist/experimental/projections/somerc.d.ts +3 -0
  1003. package/dist/experimental/projections/somerc.d.ts.map +1 -0
  1004. package/dist/experimental/projections/somerc.js +13 -0
  1005. package/dist/experimental/projections/somerc.js.map +1 -0
  1006. package/dist/experimental/projections/stere.d.ts +3 -0
  1007. package/dist/experimental/projections/stere.d.ts.map +1 -0
  1008. package/dist/experimental/projections/stere.js +20 -0
  1009. package/dist/experimental/projections/stere.js.map +1 -0
  1010. package/dist/experimental/projections/sterea.d.ts +3 -0
  1011. package/dist/experimental/projections/sterea.d.ts.map +1 -0
  1012. package/dist/experimental/projections/sterea.js +22 -0
  1013. package/dist/experimental/projections/sterea.js.map +1 -0
  1014. package/dist/experimental/projections/tpers.d.ts +3 -0
  1015. package/dist/experimental/projections/tpers.d.ts.map +1 -0
  1016. package/dist/experimental/projections/tpers.js +19 -0
  1017. package/dist/experimental/projections/tpers.js.map +1 -0
  1018. package/dist/experimental/projections/transverse-mercator.d.ts +6 -0
  1019. package/dist/experimental/projections/transverse-mercator.d.ts.map +1 -0
  1020. package/dist/experimental/projections/transverse-mercator.js +39 -0
  1021. package/dist/experimental/projections/transverse-mercator.js.map +1 -0
  1022. package/dist/experimental/projections/utm.d.ts +3 -0
  1023. package/dist/experimental/projections/utm.d.ts.map +1 -0
  1024. package/dist/experimental/projections/utm.js +31 -0
  1025. package/dist/experimental/projections/utm.js.map +1 -0
  1026. package/dist/experimental/projections/vandg.d.ts +3 -0
  1027. package/dist/experimental/projections/vandg.d.ts.map +1 -0
  1028. package/dist/experimental/projections/vandg.js +13 -0
  1029. package/dist/experimental/projections/vandg.js.map +1 -0
  1030. package/dist/experimental/scalar-output.d.ts +8 -0
  1031. package/dist/experimental/scalar-output.d.ts.map +1 -0
  1032. package/dist/experimental/scalar-output.js +46 -0
  1033. package/dist/experimental/scalar-output.js.map +1 -0
  1034. package/dist/experimental/types.d.ts +54 -0
  1035. package/dist/experimental/types.d.ts.map +1 -0
  1036. package/dist/experimental/types.js +5 -0
  1037. package/dist/experimental/types.js.map +1 -0
  1038. package/dist/experimental/typescript-projection.d.ts +67 -0
  1039. package/dist/experimental/typescript-projection.d.ts.map +1 -0
  1040. package/dist/experimental/typescript-projection.js +429 -0
  1041. package/dist/experimental/typescript-projection.js.map +1 -0
  1042. package/dist/experimental/vertical-datum.d.ts +4 -0
  1043. package/dist/experimental/vertical-datum.d.ts.map +1 -0
  1044. package/dist/experimental/vertical-datum.js +43 -0
  1045. package/dist/experimental/vertical-datum.js.map +1 -0
  1046. package/dist/grids/velocity.cjs +92 -0
  1047. package/dist/grids/velocity.cjs.map +6 -0
  1048. package/dist/grids/velocity.d.ts +3 -0
  1049. package/dist/grids/velocity.d.ts.map +1 -0
  1050. package/dist/grids/velocity.js +5 -0
  1051. package/dist/grids/velocity.js.map +1 -0
  1052. package/dist/index.cjs +10158 -0
  1053. package/dist/index.cjs.map +6 -0
  1054. package/dist/index.d.ts +4 -0
  1055. package/dist/index.d.ts.map +1 -0
  1056. package/dist/index.js +6 -0
  1057. package/dist/index.js.map +1 -0
  1058. package/dist/lib/projection.d.ts +24 -0
  1059. package/dist/lib/projection.d.ts.map +1 -0
  1060. package/dist/lib/projection.js +107 -0
  1061. package/dist/lib/projection.js.map +1 -0
  1062. package/dist/operations.cjs +255 -0
  1063. package/dist/operations.cjs.map +6 -0
  1064. package/dist/operations.d.ts +67 -0
  1065. package/dist/operations.d.ts.map +1 -0
  1066. package/dist/operations.js +272 -0
  1067. package/dist/operations.js.map +1 -0
  1068. package/dist/pipeline.cjs +3347 -0
  1069. package/dist/pipeline.cjs.map +6 -0
  1070. package/dist/pipeline.d.ts +2 -0
  1071. package/dist/pipeline.d.ts.map +1 -0
  1072. package/dist/pipeline.js +5 -0
  1073. package/dist/pipeline.js.map +1 -0
  1074. package/package.json +970 -3
  1075. package/src/deformation.ts +5 -0
  1076. package/src/experimental/catalogue-kernel.ts +54 -0
  1077. package/src/experimental/common/adjust_lat.ts +11 -0
  1078. package/src/experimental/common/adjust_lon.ts +14 -0
  1079. package/src/experimental/common/asinhy.ts +14 -0
  1080. package/src/experimental/common/asinz.ts +11 -0
  1081. package/src/experimental/common/authlat.ts +9 -0
  1082. package/src/experimental/common/authset.ts +25 -0
  1083. package/src/experimental/common/clens.ts +20 -0
  1084. package/src/experimental/common/clens_cmplx.ts +43 -0
  1085. package/src/experimental/common/constants.ts +15 -0
  1086. package/src/experimental/common/cosh.ts +10 -0
  1087. package/src/experimental/common/e0fn.ts +8 -0
  1088. package/src/experimental/common/e1fn.ts +8 -0
  1089. package/src/experimental/common/e2fn.ts +8 -0
  1090. package/src/experimental/common/e3fn.ts +8 -0
  1091. package/src/experimental/common/fL.ts +10 -0
  1092. package/src/experimental/common/gN.ts +9 -0
  1093. package/src/experimental/common/gatg.ts +20 -0
  1094. package/src/experimental/common/hypot.ts +13 -0
  1095. package/src/experimental/common/imlfn.ts +23 -0
  1096. package/src/experimental/common/invlatiso.ts +20 -0
  1097. package/src/experimental/common/iqsfnz.ts +45 -0
  1098. package/src/experimental/common/latiso.ts +21 -0
  1099. package/src/experimental/common/log1py.ts +11 -0
  1100. package/src/experimental/common/mlfn.ts +8 -0
  1101. package/src/experimental/common/msfnz.ts +9 -0
  1102. package/src/experimental/common/phi2z.ts +22 -0
  1103. package/src/experimental/common/pj_enfn.ts +29 -0
  1104. package/src/experimental/common/pj_inv_mlfn.ts +28 -0
  1105. package/src/experimental/common/pj_mlfn.ts +10 -0
  1106. package/src/experimental/common/qsfnz.ts +17 -0
  1107. package/src/experimental/common/sign.ts +8 -0
  1108. package/src/experimental/common/sinh.ts +10 -0
  1109. package/src/experimental/common/srat.ts +8 -0
  1110. package/src/experimental/common/tsfnz.ts +13 -0
  1111. package/src/experimental/common/vincenty.ts +180 -0
  1112. package/src/experimental/core.ts +48 -0
  1113. package/src/experimental/crs/datum-table.ts +1370 -0
  1114. package/src/experimental/crs/ellipsoid-table.ts +230 -0
  1115. package/src/experimental/crs/normalize.ts +303 -0
  1116. package/src/experimental/crs/primemeridian-table.ts +22 -0
  1117. package/src/experimental/crs/projjson.ts +12 -0
  1118. package/src/experimental/crs/spatial-reference.ts +115 -0
  1119. package/src/experimental/crs/structured.ts +521 -0
  1120. package/src/experimental/crs/types.ts +80 -0
  1121. package/src/experimental/crs/units-table.ts +27 -0
  1122. package/src/experimental/crs/wkt.ts +192 -0
  1123. package/src/experimental/datum.ts +185 -0
  1124. package/src/experimental/deformation.ts +134 -0
  1125. package/src/experimental/entries/projections/aea.ts +5 -0
  1126. package/src/experimental/entries/projections/aeqd.ts +5 -0
  1127. package/src/experimental/entries/projections/bonne.ts +5 -0
  1128. package/src/experimental/entries/projections/cass.ts +5 -0
  1129. package/src/experimental/entries/projections/cea.ts +5 -0
  1130. package/src/experimental/entries/projections/eck6.ts +5 -0
  1131. package/src/experimental/entries/projections/eqc.ts +5 -0
  1132. package/src/experimental/entries/projections/eqdc.ts +5 -0
  1133. package/src/experimental/entries/projections/eqearth.ts +5 -0
  1134. package/src/experimental/entries/projections/equi.ts +5 -0
  1135. package/src/experimental/entries/projections/etmerc.ts +5 -0
  1136. package/src/experimental/entries/projections/geocent.ts +5 -0
  1137. package/src/experimental/entries/projections/geos.ts +5 -0
  1138. package/src/experimental/entries/projections/gnom.ts +5 -0
  1139. package/src/experimental/entries/projections/gstmerc.ts +5 -0
  1140. package/src/experimental/entries/projections/krovak.ts +5 -0
  1141. package/src/experimental/entries/projections/laea.ts +5 -0
  1142. package/src/experimental/entries/projections/lcc.ts +5 -0
  1143. package/src/experimental/entries/projections/merc.ts +5 -0
  1144. package/src/experimental/entries/projections/mill.ts +5 -0
  1145. package/src/experimental/entries/projections/moll.ts +5 -0
  1146. package/src/experimental/entries/projections/nzmg.ts +5 -0
  1147. package/src/experimental/entries/projections/ob_tran.ts +5 -0
  1148. package/src/experimental/entries/projections/omerc.ts +5 -0
  1149. package/src/experimental/entries/projections/ortho.ts +5 -0
  1150. package/src/experimental/entries/projections/poly.ts +5 -0
  1151. package/src/experimental/entries/projections/qsc.ts +5 -0
  1152. package/src/experimental/entries/projections/robin.ts +5 -0
  1153. package/src/experimental/entries/projections/sinu.ts +5 -0
  1154. package/src/experimental/entries/projections/somerc.ts +5 -0
  1155. package/src/experimental/entries/projections/stere.ts +5 -0
  1156. package/src/experimental/entries/projections/sterea.ts +5 -0
  1157. package/src/experimental/entries/projections/tmerc.ts +5 -0
  1158. package/src/experimental/entries/projections/tpers.ts +5 -0
  1159. package/src/experimental/entries/projections/utm.ts +5 -0
  1160. package/src/experimental/entries/projections/vandg.ts +5 -0
  1161. package/src/experimental/exact-helmert.ts +58 -0
  1162. package/src/experimental/flat-projection.ts +70 -0
  1163. package/src/experimental/grids/geotiff.ts +88 -0
  1164. package/src/experimental/grids/grid.ts +141 -0
  1165. package/src/experimental/grids/gtx.ts +31 -0
  1166. package/src/experimental/grids/ntv2.ts +71 -0
  1167. package/src/experimental/grids/scalar-geotiff.ts +231 -0
  1168. package/src/experimental/grids/types.ts +35 -0
  1169. package/src/experimental/grids/velocity-geotiff.ts +82 -0
  1170. package/src/experimental/grids/velocity.ts +58 -0
  1171. package/src/experimental/grids/vertical-geotiff.ts +28 -0
  1172. package/src/experimental/grids/vertical.ts +99 -0
  1173. package/src/experimental/helmert-flat.ts +76 -0
  1174. package/src/experimental/index.ts +59 -0
  1175. package/src/experimental/kernel.ts +139 -0
  1176. package/src/experimental/kernels/aea.ts +170 -0
  1177. package/src/experimental/kernels/aeqd.ts +182 -0
  1178. package/src/experimental/kernels/bonne.ts +141 -0
  1179. package/src/experimental/kernels/cass.ts +140 -0
  1180. package/src/experimental/kernels/cea.ts +71 -0
  1181. package/src/experimental/kernels/eck6.ts +36 -0
  1182. package/src/experimental/kernels/eqdc.ts +137 -0
  1183. package/src/experimental/kernels/eqearth.ts +136 -0
  1184. package/src/experimental/kernels/equi.ts +53 -0
  1185. package/src/experimental/kernels/etmerc.ts +190 -0
  1186. package/src/experimental/kernels/gauss.ts +79 -0
  1187. package/src/experimental/kernels/geos.ts +183 -0
  1188. package/src/experimental/kernels/gnom.ts +113 -0
  1189. package/src/experimental/kernels/gstmerc.ts +74 -0
  1190. package/src/experimental/kernels/krovak.ts +166 -0
  1191. package/src/experimental/kernels/laea.ts +297 -0
  1192. package/src/experimental/kernels/lcc.ts +147 -0
  1193. package/src/experimental/kernels/mill.ts +60 -0
  1194. package/src/experimental/kernels/moll.ts +105 -0
  1195. package/src/experimental/kernels/nzmg.ts +249 -0
  1196. package/src/experimental/kernels/omerc.ts +343 -0
  1197. package/src/experimental/kernels/ortho.ts +106 -0
  1198. package/src/experimental/kernels/poly.ts +156 -0
  1199. package/src/experimental/kernels/qsc.ts +369 -0
  1200. package/src/experimental/kernels/robin.ts +189 -0
  1201. package/src/experimental/kernels/sinu.ts +116 -0
  1202. package/src/experimental/kernels/somerc.ts +112 -0
  1203. package/src/experimental/kernels/stere.ts +221 -0
  1204. package/src/experimental/kernels/sterea.ts +80 -0
  1205. package/src/experimental/kernels/tmerc.ts +227 -0
  1206. package/src/experimental/kernels/tpers.ts +187 -0
  1207. package/src/experimental/kernels/vandg.ts +147 -0
  1208. package/src/experimental/kinematic-helmert-flat.ts +85 -0
  1209. package/src/experimental/kinematic-helmert.ts +132 -0
  1210. package/src/experimental/lazy-projection.ts +146 -0
  1211. package/src/experimental/lazy-projections/aea.ts +10 -0
  1212. package/src/experimental/lazy-projections/aeqd.ts +11 -0
  1213. package/src/experimental/lazy-projections/bonne.ts +10 -0
  1214. package/src/experimental/lazy-projections/cass.ts +10 -0
  1215. package/src/experimental/lazy-projections/cea.ts +11 -0
  1216. package/src/experimental/lazy-projections/eck6.ts +10 -0
  1217. package/src/experimental/lazy-projections/eqc.ts +14 -0
  1218. package/src/experimental/lazy-projections/eqdc.ts +11 -0
  1219. package/src/experimental/lazy-projections/eqearth.ts +10 -0
  1220. package/src/experimental/lazy-projections/equi.ts +10 -0
  1221. package/src/experimental/lazy-projections/etmerc.ts +11 -0
  1222. package/src/experimental/lazy-projections/geocent.ts +10 -0
  1223. package/src/experimental/lazy-projections/geos.ts +10 -0
  1224. package/src/experimental/lazy-projections/gnom.ts +10 -0
  1225. package/src/experimental/lazy-projections/gstmerc.ts +12 -0
  1226. package/src/experimental/lazy-projections/index.ts +42 -0
  1227. package/src/experimental/lazy-projections/krovak.ts +18 -0
  1228. package/src/experimental/lazy-projections/laea.ts +11 -0
  1229. package/src/experimental/lazy-projections/lcc.ts +21 -0
  1230. package/src/experimental/lazy-projections/merc.ts +19 -0
  1231. package/src/experimental/lazy-projections/mill.ts +11 -0
  1232. package/src/experimental/lazy-projections/moll.ts +10 -0
  1233. package/src/experimental/lazy-projections/nzmg.ts +11 -0
  1234. package/src/experimental/lazy-projections/ob_tran.ts +25 -0
  1235. package/src/experimental/lazy-projections/omerc.ts +22 -0
  1236. package/src/experimental/lazy-projections/ortho.ts +10 -0
  1237. package/src/experimental/lazy-projections/poly.ts +10 -0
  1238. package/src/experimental/lazy-projections/qsc.ts +14 -0
  1239. package/src/experimental/lazy-projections/robin.ts +10 -0
  1240. package/src/experimental/lazy-projections/sinu.ts +10 -0
  1241. package/src/experimental/lazy-projections/somerc.ts +11 -0
  1242. package/src/experimental/lazy-projections/stere.ts +18 -0
  1243. package/src/experimental/lazy-projections/sterea.ts +19 -0
  1244. package/src/experimental/lazy-projections/tmerc.ts +21 -0
  1245. package/src/experimental/lazy-projections/tpers.ts +11 -0
  1246. package/src/experimental/lazy-projections/utm.ts +11 -0
  1247. package/src/experimental/lazy-projections/vandg.ts +10 -0
  1248. package/src/experimental/mutable-projection.ts +63 -0
  1249. package/src/experimental/numeric-flat.ts +73 -0
  1250. package/src/experimental/parameters.ts +35 -0
  1251. package/src/experimental/projection-descriptor.ts +79 -0
  1252. package/src/experimental/projection-pipeline.ts +1053 -0
  1253. package/src/experimental/projection-scratch.ts +19 -0
  1254. package/src/experimental/projections/aea.ts +19 -0
  1255. package/src/experimental/projections/aeqd.ts +18 -0
  1256. package/src/experimental/projections/bonne.ts +23 -0
  1257. package/src/experimental/projections/cass.ts +19 -0
  1258. package/src/experimental/projections/cea.ts +20 -0
  1259. package/src/experimental/projections/eck6.ts +19 -0
  1260. package/src/experimental/projections/eqdc.ts +19 -0
  1261. package/src/experimental/projections/eqearth.ts +19 -0
  1262. package/src/experimental/projections/equi.ts +20 -0
  1263. package/src/experimental/projections/equidistant-cylindrical.ts +35 -0
  1264. package/src/experimental/projections/geocentric.ts +34 -0
  1265. package/src/experimental/projections/geos.ts +31 -0
  1266. package/src/experimental/projections/gnom.ts +19 -0
  1267. package/src/experimental/projections/gstmerc.ts +19 -0
  1268. package/src/experimental/projections/krovak.ts +41 -0
  1269. package/src/experimental/projections/laea.ts +18 -0
  1270. package/src/experimental/projections/lcc.ts +40 -0
  1271. package/src/experimental/projections/mercator.ts +79 -0
  1272. package/src/experimental/projections/mill.ts +19 -0
  1273. package/src/experimental/projections/moll.ts +19 -0
  1274. package/src/experimental/projections/nzmg.ts +27 -0
  1275. package/src/experimental/projections/ob-tran.ts +161 -0
  1276. package/src/experimental/projections/omerc.ts +66 -0
  1277. package/src/experimental/projections/ortho.ts +26 -0
  1278. package/src/experimental/projections/poly.ts +19 -0
  1279. package/src/experimental/projections/qsc.ts +19 -0
  1280. package/src/experimental/projections/robin.ts +19 -0
  1281. package/src/experimental/projections/sinu.ts +19 -0
  1282. package/src/experimental/projections/somerc.ts +19 -0
  1283. package/src/experimental/projections/stere.ts +29 -0
  1284. package/src/experimental/projections/sterea.ts +30 -0
  1285. package/src/experimental/projections/tpers.ts +31 -0
  1286. package/src/experimental/projections/transverse-mercator.ts +68 -0
  1287. package/src/experimental/projections/utm.ts +33 -0
  1288. package/src/experimental/projections/vandg.ts +19 -0
  1289. package/src/experimental/scalar-output.ts +74 -0
  1290. package/src/experimental/types.ts +61 -0
  1291. package/src/experimental/typescript-projection.ts +545 -0
  1292. package/src/experimental/vertical-datum.ts +39 -0
  1293. package/src/grids/velocity.ts +5 -0
  1294. package/src/index.ts +7 -0
  1295. package/src/lib/projection.ts +167 -0
  1296. package/src/operations.ts +358 -0
  1297. package/src/pipeline.ts +4 -0
@@ -0,0 +1,3177 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key2 of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key2) && key2 !== except)
15
+ __defProp(to, key2, { get: () => from[key2], enumerable: !(desc = __getOwnPropDesc(from, key2)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // dist/experimental/lazy-projections/index.js
30
+ var index_exports = {};
31
+ __export(index_exports, {
32
+ LazyProjection: () => LazyProjection,
33
+ lazyAlbersEqualArea: () => lazyAlbersEqualArea,
34
+ lazyAzimuthalEquidistant: () => lazyAzimuthalEquidistant,
35
+ lazyBonne: () => lazyBonne,
36
+ lazyCassiniSoldner: () => lazyCassiniSoldner,
37
+ lazyCylindricalEqualArea: () => lazyCylindricalEqualArea,
38
+ lazyEckertVI: () => lazyEckertVI,
39
+ lazyEqualEarth: () => lazyEqualEarth,
40
+ lazyEquidistantConic: () => lazyEquidistantConic,
41
+ lazyEquidistantCylindrical: () => lazyEquidistantCylindrical,
42
+ lazyEquirectangular: () => lazyEquirectangular,
43
+ lazyExtendedTransverseMercator: () => lazyExtendedTransverseMercator,
44
+ lazyGaussSchreiberTransverseMercator: () => lazyGaussSchreiberTransverseMercator,
45
+ lazyGeocentric: () => lazyGeocentric,
46
+ lazyGeostationary: () => lazyGeostationary,
47
+ lazyGnomonic: () => lazyGnomonic,
48
+ lazyKrovak: () => lazyKrovak,
49
+ lazyLambertAzimuthalEqualArea: () => lazyLambertAzimuthalEqualArea,
50
+ lazyLambertConformalConic: () => lazyLambertConformalConic,
51
+ lazyMercator: () => lazyMercator,
52
+ lazyMillerCylindrical: () => lazyMillerCylindrical,
53
+ lazyMollweide: () => lazyMollweide,
54
+ lazyNewZealandMapGrid: () => lazyNewZealandMapGrid,
55
+ lazyObliqueMercator: () => lazyObliqueMercator,
56
+ lazyObliqueStereographic: () => lazyObliqueStereographic,
57
+ lazyObliqueTransformation: () => lazyObliqueTransformation,
58
+ lazyOrthographic: () => lazyOrthographic,
59
+ lazyPolyconic: () => lazyPolyconic,
60
+ lazyQuadrilateralizedSphericalCube: () => lazyQuadrilateralizedSphericalCube,
61
+ lazyRobinson: () => lazyRobinson,
62
+ lazySinusoidal: () => lazySinusoidal,
63
+ lazyStereographic: () => lazyStereographic,
64
+ lazySwissObliqueMercator: () => lazySwissObliqueMercator,
65
+ lazyTiltedPerspective: () => lazyTiltedPerspective,
66
+ lazyTransverseMercator: () => lazyTransverseMercator,
67
+ lazyUniversalTransverseMercator: () => lazyUniversalTransverseMercator,
68
+ lazyVanDerGrinten: () => lazyVanDerGrinten
69
+ });
70
+ module.exports = __toCommonJS(index_exports);
71
+
72
+ // dist/experimental/projection-descriptor.js
73
+ var CACHE_KEY = /* @__PURE__ */ Symbol.for("@math.gl/projection/projection-implementations");
74
+ function cache() {
75
+ const scope = globalThis;
76
+ scope[CACHE_KEY] || (scope[CACHE_KEY] = /* @__PURE__ */ new WeakMap());
77
+ return scope[CACHE_KEY];
78
+ }
79
+ function getLoadedProjection(projection) {
80
+ var _a2;
81
+ return "create" in projection ? projection : (_a2 = cache().get(projection)) == null ? void 0 : _a2.implementation;
82
+ }
83
+ function preloadProjection(projection) {
84
+ if ("create" in projection)
85
+ return Promise.resolve(projection);
86
+ let state = cache().get(projection);
87
+ if (!state) {
88
+ state = { load: () => projection.preload() };
89
+ cache().set(projection, state);
90
+ }
91
+ if (state.implementation)
92
+ return Promise.resolve(state.implementation);
93
+ const entry = state;
94
+ entry.pending || (entry.pending = Promise.resolve().then(entry.load).then((plugin) => {
95
+ const key2 = (value) => value.toLowerCase().replace(/[\s_-]/g, "");
96
+ const supported = new Set([plugin.name, ...plugin.aliases || []].map(key2));
97
+ if (typeof plugin.create !== "function" || ![projection.name, ...projection.aliases || []].every((name) => supported.has(key2(name))))
98
+ throw new Error("Loaded projection does not match descriptor: " + projection.name);
99
+ entry.implementation = plugin;
100
+ return plugin;
101
+ }).catch((error) => {
102
+ entry.pending = void 0;
103
+ throw error;
104
+ }));
105
+ return entry.pending;
106
+ }
107
+ function createProjectionDescriptor(metadata, load) {
108
+ const descriptor = Object.freeze({
109
+ name: metadata.name,
110
+ aliases: metadata.aliases && Object.freeze([...metadata.aliases]),
111
+ preload: () => preloadProjection(descriptor)
112
+ });
113
+ cache().set(descriptor, { load });
114
+ return descriptor;
115
+ }
116
+
117
+ // dist/experimental/lazy-projections/merc.js
118
+ var lazyMercator = /* @__PURE__ */ createProjectionDescriptor({
119
+ name: "merc",
120
+ aliases: [
121
+ "Mercator",
122
+ "Popular Visualisation Pseudo Mercator",
123
+ "Mercator_1SP",
124
+ "Mercator_Auxiliary_Sphere",
125
+ "Mercator_Variant_A"
126
+ ]
127
+ }, async () => (await import("@math.gl/projection/projections/merc")).mercator);
128
+
129
+ // dist/experimental/lazy-projections/eqc.js
130
+ var lazyEquidistantCylindrical = /* @__PURE__ */ createProjectionDescriptor({
131
+ name: "eqc",
132
+ aliases: ["Equirectangular", "Equidistant_Cylindrical", "Equidistant_Cylindrical_Spherical"]
133
+ }, async () => (await import("@math.gl/projection/projections/eqc")).equidistantCylindrical);
134
+
135
+ // dist/experimental/lazy-projections/lcc.js
136
+ var lazyLambertConformalConic = /* @__PURE__ */ createProjectionDescriptor({
137
+ name: "lcc",
138
+ aliases: [
139
+ "Lambert Tangential Conformal Conic Projection",
140
+ "Lambert_Conformal_Conic",
141
+ "Lambert_Conformal_Conic_1SP",
142
+ "Lambert_Conformal_Conic_2SP",
143
+ "Lambert Conic Conformal (1SP)",
144
+ "Lambert Conic Conformal (2SP)"
145
+ ]
146
+ }, async () => (await import("@math.gl/projection/projections/lcc")).lambertConformalConic);
147
+
148
+ // dist/experimental/lazy-projections/aea.js
149
+ var lazyAlbersEqualArea = /* @__PURE__ */ createProjectionDescriptor({ name: "aea", aliases: ["Albers_Conic_Equal_Area", "Albers_Equal_Area", "Albers"] }, async () => (await import("@math.gl/projection/projections/aea")).albersEqualArea);
150
+
151
+ // dist/experimental/lazy-projections/eqdc.js
152
+ var lazyEquidistantConic = /* @__PURE__ */ createProjectionDescriptor({ name: "eqdc", aliases: ["Equidistant_Conic"] }, async () => (await import("@math.gl/projection/projections/eqdc")).equidistantConic);
153
+
154
+ // dist/experimental/lazy-projections/laea.js
155
+ var lazyLambertAzimuthalEqualArea = /* @__PURE__ */ createProjectionDescriptor({ name: "laea", aliases: ["Lambert Azimuthal Equal Area", "Lambert_Azimuthal_Equal_Area"] }, async () => (await import("@math.gl/projection/projections/laea")).lambertAzimuthalEqualArea);
156
+
157
+ // dist/experimental/lazy-projections/stere.js
158
+ var lazyStereographic = /* @__PURE__ */ createProjectionDescriptor({
159
+ name: "stere",
160
+ aliases: [
161
+ "Stereographic_South_Pole",
162
+ "Polar_Stereographic_variant_A",
163
+ "Polar_Stereographic_variant_B",
164
+ "Polar_Stereographic"
165
+ ]
166
+ }, async () => (await import("@math.gl/projection/projections/stere")).stereographic);
167
+
168
+ // dist/experimental/lazy-projections/sterea.js
169
+ var lazyObliqueStereographic = /* @__PURE__ */ createProjectionDescriptor({
170
+ name: "sterea",
171
+ aliases: [
172
+ "Stereographic_North_Pole",
173
+ "Oblique_Stereographic",
174
+ "Oblique Stereographic Alternative",
175
+ "Double_Stereographic"
176
+ ]
177
+ }, async () => (await import("@math.gl/projection/projections/sterea")).obliqueStereographic);
178
+
179
+ // dist/experimental/lazy-projections/aeqd.js
180
+ var lazyAzimuthalEquidistant = /* @__PURE__ */ createProjectionDescriptor({ name: "aeqd", aliases: ["Azimuthal_Equidistant"] }, async () => (await import("@math.gl/projection/projections/aeqd")).azimuthalEquidistant);
181
+
182
+ // dist/experimental/lazy-projections/tmerc.js
183
+ var lazyTransverseMercator = /* @__PURE__ */ createProjectionDescriptor({
184
+ name: "tmerc",
185
+ aliases: [
186
+ "Fast_Transverse_Mercator",
187
+ "Fast Transverse Mercator",
188
+ "Transverse_Mercator",
189
+ "Transverse Mercator",
190
+ "Gauss Kruger",
191
+ "Gauss_Kruger"
192
+ ]
193
+ }, async () => (await import("@math.gl/projection/projections/tmerc")).transverseMercator);
194
+
195
+ // dist/experimental/lazy-projections/etmerc.js
196
+ var lazyExtendedTransverseMercator = /* @__PURE__ */ createProjectionDescriptor({ name: "etmerc", aliases: ["Extended_Transverse_Mercator", "Extended Transverse Mercator"] }, async () => (await import("@math.gl/projection/projections/etmerc")).extendedTransverseMercator);
197
+
198
+ // dist/experimental/lazy-projections/utm.js
199
+ var lazyUniversalTransverseMercator = /* @__PURE__ */ createProjectionDescriptor({ name: "utm", aliases: ["Universal Transverse Mercator System"] }, async () => (await import("@math.gl/projection/projections/utm")).universalTransverseMercator);
200
+
201
+ // dist/experimental/lazy-projections/geocent.js
202
+ var lazyGeocentric = /* @__PURE__ */ createProjectionDescriptor({ name: "geocent", aliases: ["Geocentric", "geocentric", "Geocent"] }, async () => (await import("@math.gl/projection/projections/geocent")).geocentric);
203
+
204
+ // dist/experimental/lazy-projections/bonne.js
205
+ var lazyBonne = /* @__PURE__ */ createProjectionDescriptor({ name: "bonne", aliases: ["Bonne (Werner lat_1=90)"] }, async () => (await import("@math.gl/projection/projections/bonne")).bonne);
206
+
207
+ // dist/experimental/lazy-projections/cass.js
208
+ var lazyCassiniSoldner = /* @__PURE__ */ createProjectionDescriptor({ name: "cass", aliases: ["Cassini", "Cassini_Soldner"] }, async () => (await import("@math.gl/projection/projections/cass")).cassiniSoldner);
209
+
210
+ // dist/experimental/lazy-projections/cea.js
211
+ var lazyCylindricalEqualArea = /* @__PURE__ */ createProjectionDescriptor({ name: "cea", aliases: [] }, async () => (await import("@math.gl/projection/projections/cea")).cylindricalEqualArea);
212
+
213
+ // dist/experimental/lazy-projections/eck6.js
214
+ var lazyEckertVI = /* @__PURE__ */ createProjectionDescriptor({ name: "eck6", aliases: ["Eckert_VI"] }, async () => (await import("@math.gl/projection/projections/eck6")).eckertVI);
215
+
216
+ // dist/experimental/lazy-projections/eqearth.js
217
+ var lazyEqualEarth = /* @__PURE__ */ createProjectionDescriptor({ name: "eqearth", aliases: ["Equal Earth", "Equal_Earth"] }, async () => (await import("@math.gl/projection/projections/eqearth")).equalEarth);
218
+
219
+ // dist/experimental/lazy-projections/equi.js
220
+ var lazyEquirectangular = /* @__PURE__ */ createProjectionDescriptor({ name: "equi", aliases: [] }, async () => (await import("@math.gl/projection/projections/equi")).equirectangular);
221
+
222
+ // dist/experimental/lazy-projections/geos.js
223
+ var lazyGeostationary = /* @__PURE__ */ createProjectionDescriptor({ name: "geos", aliases: ["Geostationary Satellite View", "Geostationary_Satellite"] }, async () => (await import("@math.gl/projection/projections/geos")).geostationary);
224
+
225
+ // dist/experimental/lazy-projections/gnom.js
226
+ var lazyGnomonic = /* @__PURE__ */ createProjectionDescriptor({ name: "gnom", aliases: [] }, async () => (await import("@math.gl/projection/projections/gnom")).gnomonic);
227
+
228
+ // dist/experimental/lazy-projections/gstmerc.js
229
+ var lazyGaussSchreiberTransverseMercator = /* @__PURE__ */ createProjectionDescriptor({ name: "gstmerc", aliases: ["gstmerg"] }, async () => (await import("@math.gl/projection/projections/gstmerc")).gaussSchreiberTransverseMercator);
230
+
231
+ // dist/experimental/lazy-projections/krovak.js
232
+ var lazyKrovak = /* @__PURE__ */ createProjectionDescriptor({
233
+ name: "krovak",
234
+ aliases: [
235
+ "Krovak",
236
+ "Krovak Modified",
237
+ "Krovak (North Orientated)",
238
+ "Krovak Modified (North Orientated)"
239
+ ]
240
+ }, async () => (await import("@math.gl/projection/projections/krovak")).krovak);
241
+
242
+ // dist/experimental/lazy-projections/mill.js
243
+ var lazyMillerCylindrical = /* @__PURE__ */ createProjectionDescriptor({ name: "mill", aliases: ["Miller_Cylindrical"] }, async () => (await import("@math.gl/projection/projections/mill")).millerCylindrical);
244
+
245
+ // dist/experimental/lazy-projections/moll.js
246
+ var lazyMollweide = /* @__PURE__ */ createProjectionDescriptor({ name: "moll", aliases: ["Mollweide"] }, async () => (await import("@math.gl/projection/projections/moll")).mollweide);
247
+
248
+ // dist/experimental/lazy-projections/nzmg.js
249
+ var lazyNewZealandMapGrid = /* @__PURE__ */ createProjectionDescriptor({ name: "nzmg", aliases: ["New_Zealand_Map_Grid"] }, async () => (await import("@math.gl/projection/projections/nzmg")).newZealandMapGrid);
250
+
251
+ // dist/experimental/lazy-projections/omerc.js
252
+ var lazyObliqueMercator = /* @__PURE__ */ createProjectionDescriptor({
253
+ name: "omerc",
254
+ aliases: [
255
+ "Hotine_Oblique_Mercator",
256
+ "Hotine Oblique Mercator",
257
+ "Hotine_Oblique_Mercator_variant_A",
258
+ "Hotine_Oblique_Mercator_Variant_B",
259
+ "Hotine_Oblique_Mercator_Azimuth_Natural_Origin",
260
+ "Hotine_Oblique_Mercator_Two_Point_Natural_Origin",
261
+ "Hotine_Oblique_Mercator_Azimuth_Center",
262
+ "Oblique_Mercator"
263
+ ]
264
+ }, async () => (await import("@math.gl/projection/projections/omerc")).obliqueMercator);
265
+
266
+ // dist/experimental/lazy-projections/ortho.js
267
+ var lazyOrthographic = /* @__PURE__ */ createProjectionDescriptor({ name: "ortho", aliases: [] }, async () => (await import("@math.gl/projection/projections/ortho")).orthographic);
268
+
269
+ // dist/experimental/lazy-projections/poly.js
270
+ var lazyPolyconic = /* @__PURE__ */ createProjectionDescriptor({ name: "poly", aliases: ["Polyconic", "American_Polyconic"] }, async () => (await import("@math.gl/projection/projections/poly")).polyconic);
271
+
272
+ // dist/experimental/lazy-projections/qsc.js
273
+ var lazyQuadrilateralizedSphericalCube = /* @__PURE__ */ createProjectionDescriptor({
274
+ name: "qsc",
275
+ aliases: ["Quadrilateralized Spherical Cube", "Quadrilateralized_Spherical_Cube"]
276
+ }, async () => (await import("@math.gl/projection/projections/qsc")).quadrilateralizedSphericalCube);
277
+
278
+ // dist/experimental/lazy-projections/robin.js
279
+ var lazyRobinson = /* @__PURE__ */ createProjectionDescriptor({ name: "robin", aliases: ["Robinson"] }, async () => (await import("@math.gl/projection/projections/robin")).robinson);
280
+
281
+ // dist/experimental/lazy-projections/sinu.js
282
+ var lazySinusoidal = /* @__PURE__ */ createProjectionDescriptor({ name: "sinu", aliases: ["Sinusoidal"] }, async () => (await import("@math.gl/projection/projections/sinu")).sinusoidal);
283
+
284
+ // dist/experimental/lazy-projections/somerc.js
285
+ var lazySwissObliqueMercator = /* @__PURE__ */ createProjectionDescriptor({ name: "somerc", aliases: [] }, async () => (await import("@math.gl/projection/projections/somerc")).swissObliqueMercator);
286
+
287
+ // dist/experimental/lazy-projections/tpers.js
288
+ var lazyTiltedPerspective = /* @__PURE__ */ createProjectionDescriptor({ name: "tpers", aliases: ["Tilted_Perspective"] }, async () => (await import("@math.gl/projection/projections/tpers")).tiltedPerspective);
289
+
290
+ // dist/experimental/lazy-projections/vandg.js
291
+ var lazyVanDerGrinten = /* @__PURE__ */ createProjectionDescriptor({ name: "vandg", aliases: ["Van_der_Grinten_I", "VanDerGrinten", "Van_der_Grinten"] }, async () => (await import("@math.gl/projection/projections/vandg")).vanDerGrinten);
292
+
293
+ // dist/experimental/lazy-projections/ob_tran.js
294
+ function lazyObliqueTransformation(wrapped) {
295
+ return createProjectionDescriptor({
296
+ name: "ob_tran",
297
+ aliases: ["General Oblique Transformation", "General_Oblique_Transformation"]
298
+ }, async () => {
299
+ const [{ obliqueTransformation }, child] = await Promise.all([
300
+ import("@math.gl/projection/projections/ob_tran"),
301
+ typeof wrapped === "string" || "create" in wrapped ? wrapped : wrapped.preload()
302
+ ]);
303
+ return obliqueTransformation(child);
304
+ });
305
+ }
306
+
307
+ // dist/experimental/projection-scratch.js
308
+ var ProjectionScratch = class {
309
+ constructor() {
310
+ this.point = { x: 0, y: 0, z: 0 };
311
+ this.busy = false;
312
+ }
313
+ acquire() {
314
+ if (this.busy)
315
+ return { x: 0, y: 0, z: 0 };
316
+ this.busy = true;
317
+ return this.point;
318
+ }
319
+ release(point) {
320
+ if (point === this.point)
321
+ this.busy = false;
322
+ }
323
+ };
324
+
325
+ // dist/experimental/mutable-projection.js
326
+ function projectionOperation(implementation, inverse, geocentric = false) {
327
+ const mutable = inverse ? implementation.inverseInPlace : implementation.forwardInPlace;
328
+ if (mutable)
329
+ return mutable.bind(implementation);
330
+ if (geocentric) {
331
+ const operation2 = inverse ? implementation.inverse3D : implementation.forward3D;
332
+ return (point) => {
333
+ const output = operation2.call(implementation, [point.x, point.y, point.z]);
334
+ point.x = output[0];
335
+ point.y = output[1];
336
+ point.z = output[2];
337
+ };
338
+ }
339
+ const operation = inverse ? implementation.inverse : implementation.forward;
340
+ return (point) => {
341
+ const output = operation.call(implementation, point.x, point.y);
342
+ point.x = output[0];
343
+ point.y = output[1];
344
+ };
345
+ }
346
+
347
+ // dist/experimental/scalar-output.js
348
+ var FLOAT32_MAX = 34028234663852886e22;
349
+ function validateScalarOutput(coordinate, output, length) {
350
+ if (!(Array.isArray(coordinate) || coordinate instanceof Float32Array || coordinate instanceof Float64Array))
351
+ throw new Error("Scalar input requires a number array, Float32Array or Float64Array");
352
+ if (!(Array.isArray(output) || output instanceof Float32Array || output instanceof Float64Array) || output.length < length)
353
+ throw new Error("Scalar output requires a preallocated number array, Float32Array or Float64Array with sufficient capacity");
354
+ if (coordinate === output || Array.isArray(coordinate) || Array.isArray(output))
355
+ return;
356
+ const input = coordinate;
357
+ const result = output;
358
+ const shared = typeof SharedArrayBuffer !== "undefined" && input.buffer instanceof SharedArrayBuffer && result.buffer instanceof SharedArrayBuffer;
359
+ if ((input.buffer === result.buffer || shared) && input.byteOffset < result.byteOffset + length * result.BYTES_PER_ELEMENT && result.byteOffset < input.byteOffset + input.byteLength)
360
+ throw new Error("Scalar input/output views overlap; use the same view for in-place projection");
361
+ }
362
+ function writeScalarOutput(coordinate, output, point, length) {
363
+ if (output instanceof Float32Array) {
364
+ if (Math.abs(point.x) > FLOAT32_MAX || Math.abs(point.y) > FLOAT32_MAX || length >= 3 && Math.abs(point.z) > FLOAT32_MAX)
365
+ throw new Error("Projected coordinate exceeds Float32 range");
366
+ for (let i = 3; i < coordinate.length; i++) {
367
+ const value = coordinate[i];
368
+ if (Number.isFinite(value) && Math.abs(value) > FLOAT32_MAX)
369
+ throw new Error("Trailing ordinate exceeds Float32 range");
370
+ }
371
+ }
372
+ for (let i = 3; i < coordinate.length; i++)
373
+ output[i] = coordinate[i];
374
+ output[0] = point.x;
375
+ output[1] = point.y;
376
+ if (length >= 3)
377
+ output[2] = point.z;
378
+ return output;
379
+ }
380
+
381
+ // ../crs/src/spatial-reference.ts
382
+ function inferCRSRepresentation(definition) {
383
+ if (typeof definition === "object") {
384
+ return "projjson";
385
+ }
386
+ const text = definition.trim();
387
+ if (/^[A-Z][A-Z0-9_]*\s*[\[(]/i.test(text)) {
388
+ return "wkt";
389
+ }
390
+ if (/(?:^|\s)\+?proj=/i.test(text)) {
391
+ return "proj-string";
392
+ }
393
+ 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)) {
394
+ return "identifier";
395
+ }
396
+ return "opaque";
397
+ }
398
+
399
+ // ../crs/src/proj-string.ts
400
+ var PROJStringSyntaxError = class extends SyntaxError {
401
+ /** Create a PROJ string syntax error at a source location. */
402
+ constructor(message, source, offset) {
403
+ const location = getSourceLocation(source, offset);
404
+ super(`${message} at ${location.line}:${location.column}`);
405
+ this.name = "PROJStringSyntaxError";
406
+ this.offset = offset;
407
+ this.line = location.line;
408
+ this.column = location.column;
409
+ }
410
+ };
411
+ function parsePROJString(text) {
412
+ const tokens = tokenizePROJString(text);
413
+ if (tokens.length === 0) {
414
+ throw new PROJStringSyntaxError("PROJ string is empty", text, 0);
415
+ }
416
+ const parameters = tokens.map((token) => parseParameter(token.raw, token.offset, text));
417
+ return { type: "proj-string", parameters };
418
+ }
419
+ var DMS_VALUE = /^[+-]?\d+(?:\.\d*)?d(?:\d+(?:\.\d*)?'(?:\d+(?:\.\d*)?")?)?[NSEW]?$/i;
420
+ function parseParameter(rawToken, offset, source) {
421
+ const token = rawToken.startsWith("+") ? rawToken.slice(1) : rawToken;
422
+ if (!token) {
423
+ throw new PROJStringSyntaxError("Expected a parameter after '+'", source, offset);
424
+ }
425
+ const equalsIndex = token.indexOf("=");
426
+ const name = equalsIndex < 0 ? token : token.slice(0, equalsIndex);
427
+ if (!name || /[\s+=]/.test(name)) {
428
+ throw new PROJStringSyntaxError(`Invalid PROJ parameter name '${name}'`, source, offset);
429
+ }
430
+ if (equalsIndex < 0) {
431
+ return { type: "parameter", name };
432
+ }
433
+ const rawValue = token.slice(equalsIndex + 1);
434
+ const value = decodeParameterValue(rawValue, source, offset + equalsIndex + 1);
435
+ return { type: "parameter", name, value, rawValue };
436
+ }
437
+ function tokenizePROJString(source) {
438
+ const tokens = [];
439
+ let offset = 0;
440
+ while (offset < source.length) {
441
+ while (offset < source.length && /\s/.test(source[offset])) {
442
+ offset++;
443
+ }
444
+ if (offset >= source.length) {
445
+ break;
446
+ }
447
+ const start = offset;
448
+ let quote = null;
449
+ let escaped = false;
450
+ while (offset < source.length) {
451
+ const character = source[offset];
452
+ if (escaped) {
453
+ escaped = false;
454
+ offset++;
455
+ continue;
456
+ }
457
+ if (character === "\\" && quote) {
458
+ escaped = true;
459
+ offset++;
460
+ continue;
461
+ }
462
+ if (quote) {
463
+ if (character === quote) {
464
+ quote = null;
465
+ }
466
+ offset++;
467
+ continue;
468
+ }
469
+ if ((character === '"' || character === "'") && source[offset - 1] === "=") {
470
+ quote = character;
471
+ offset++;
472
+ continue;
473
+ }
474
+ if (/\s/.test(character)) {
475
+ break;
476
+ }
477
+ offset++;
478
+ }
479
+ if (quote) {
480
+ throw new PROJStringSyntaxError("Unterminated quoted PROJ value", source, start);
481
+ }
482
+ tokens.push({ raw: source.slice(start, offset), offset: start });
483
+ }
484
+ return tokens;
485
+ }
486
+ function decodeParameterValue(rawValue, source, offset) {
487
+ if (!rawValue) {
488
+ return "";
489
+ }
490
+ const first = rawValue[0];
491
+ if (first !== '"' && first !== "'") {
492
+ if ((rawValue.includes('"') || rawValue.includes("'")) && !DMS_VALUE.test(rawValue)) {
493
+ throw new PROJStringSyntaxError("Quote must begin a PROJ parameter value", source, offset);
494
+ }
495
+ return rawValue;
496
+ }
497
+ if (rawValue[rawValue.length - 1] !== first) {
498
+ throw new PROJStringSyntaxError("Unterminated quoted PROJ value", source, offset);
499
+ }
500
+ let value = "";
501
+ for (let index = 1; index < rawValue.length - 1; index++) {
502
+ const character = rawValue[index];
503
+ if (character === "\\" && index + 1 < rawValue.length - 1) {
504
+ value += rawValue[++index];
505
+ } else {
506
+ value += character;
507
+ }
508
+ }
509
+ return value;
510
+ }
511
+ function getSourceLocation(source, offset) {
512
+ let line = 1;
513
+ let column = 1;
514
+ for (let index = 0; index < offset && index < source.length; index++) {
515
+ if (source[index] === "\n") {
516
+ line++;
517
+ column = 1;
518
+ } else {
519
+ column++;
520
+ }
521
+ }
522
+ return { line, column };
523
+ }
524
+
525
+ // dist/experimental/crs/types.js
526
+ var _a;
527
+ var CRS_ERROR = /* @__PURE__ */ Symbol.for("@math.gl/projection/TypeScriptCRSError");
528
+ var TypeScriptCRSError = class _TypeScriptCRSError extends Error {
529
+ static [(_a = CRS_ERROR, Symbol.hasInstance)](value) {
530
+ if (this !== _TypeScriptCRSError)
531
+ return Function.prototype[Symbol.hasInstance].call(this, value);
532
+ return value instanceof Error && value[CRS_ERROR] === true;
533
+ }
534
+ constructor(reason, message) {
535
+ super(message);
536
+ this.reason = reason;
537
+ this[_a] = true;
538
+ this.name = "TypeScriptCRSError";
539
+ }
540
+ };
541
+ function unsupportedStage(message) {
542
+ throw new TypeScriptCRSError("missing-transform-stage", message);
543
+ }
544
+
545
+ // dist/experimental/crs/spatial-reference.js
546
+ function resolveCRSInput(input, options) {
547
+ if (typeof input === "string" || "type" in input)
548
+ return { definition: input, lossy: false };
549
+ const metadata = input;
550
+ const spatialReference = "crs" in metadata ? metadata : void 0;
551
+ const reference = "crs" in metadata ? metadata.crs : metadata;
552
+ if (reference.state !== "explicit" && reference.state !== "default")
553
+ throw new TypeScriptCRSError("unknown-syntax", "Cannot transform an " + reference.state + " CRS reference");
554
+ let lossy = false;
555
+ if ((spatialReference == null ? void 0 : spatialReference.coordinateEpoch) !== void 0)
556
+ unsupportedStage("Coordinate epochs require a time-dependent transformation");
557
+ if ((spatialReference == null ? void 0 : spatialReference.vertical) && spatialReference.vertical.state !== "absent") {
558
+ if (options.mode !== "horizontal")
559
+ unsupportedStage("A separately declared vertical CRS requires explicit horizontal extraction");
560
+ lossy = true;
561
+ }
562
+ return { definition: reference.definition, spatialReference, lossy };
563
+ }
564
+ function applySpatialReference(crs, reference) {
565
+ var _a2;
566
+ if (!reference)
567
+ return crs;
568
+ if (reference.coordinateFrame !== "unknown" && reference.coordinateFrame !== crs.kind)
569
+ throw new Error("SpatialReference coordinate frame disagrees with its CRS");
570
+ const order = reference.coordinateOrder;
571
+ const names = crs.kind === "geocentric" ? { x: "e", y: "n", z: "u" } : {
572
+ longitude: "e",
573
+ lon: "e",
574
+ latitude: "n",
575
+ lat: "n",
576
+ easting: "e",
577
+ northing: "n",
578
+ height: "u",
579
+ altitude: "u",
580
+ x: "e",
581
+ y: "n",
582
+ z: "u"
583
+ };
584
+ let storedAxis;
585
+ if (order.length) {
586
+ storedAxis = order.slice(0, 3).map((name) => names[name.toLowerCase()] || "?").join("");
587
+ if (storedAxis.length === 2)
588
+ storedAxis += "u";
589
+ if (storedAxis.length !== 3 || !storedAxis.includes("e") || !storedAxis.includes("n") || !storedAxis.includes("u"))
590
+ unsupportedStage("Unsupported SpatialReference coordinate order");
591
+ if (order.length > 4 || order.length > 3 && !["m", "measure"].includes(order[3]))
592
+ unsupportedStage("Unsupported fourth coordinate component");
593
+ }
594
+ if ((_a2 = reference.units) == null ? void 0 : _a2.length) {
595
+ const units = {
596
+ m: 1,
597
+ meter: 1,
598
+ metre: 1,
599
+ meters: 1,
600
+ metres: 1,
601
+ km: 1e3,
602
+ ft: 0.3048,
603
+ "us-ft": 1200 / 3937,
604
+ degree: Math.PI / 180,
605
+ degrees: Math.PI / 180,
606
+ radian: 1,
607
+ radians: 1,
608
+ grad: Math.PI / 200
609
+ };
610
+ for (let i = 0; i < Math.min(reference.units.length, 3); i++) {
611
+ const vertical = (storedAxis || "enu")[i] === "u";
612
+ const expected = crs.kind === "geocentric" ? crs.toMeter : vertical ? crs.verticalUnit : crs.kind === "geographic" ? crs.angularUnit : crs.toMeter;
613
+ if (Math.abs((units[reference.units[i]] ?? NaN) - expected) > 1e-12 || units[reference.units[i]] === void 0)
614
+ unsupportedStage("SpatialReference units disagree with its CRS");
615
+ }
616
+ }
617
+ return Object.freeze({ ...crs, storedAxis });
618
+ }
619
+
620
+ // dist/experimental/parameters.js
621
+ var DEGREES_TO_RADIANS = Math.PI / 180;
622
+ function numberParameter(parameters, name, fallback) {
623
+ if (!Object.prototype.hasOwnProperty.call(parameters, name))
624
+ return fallback;
625
+ const value = parameters[name];
626
+ if (typeof value !== "string" || !/^[+-]?(?:\d+\.?\d*|\.\d+)(?:e[+-]?\d+)?$/i.test(value)) {
627
+ throw new Error(`Invalid numeric PROJ parameter: +${name}`);
628
+ }
629
+ const number = Number(value);
630
+ if (!Number.isFinite(number))
631
+ throw new Error(`Invalid numeric PROJ parameter: +${name}`);
632
+ return number;
633
+ }
634
+ function wrapLongitude(longitude) {
635
+ if (Math.abs(longitude) <= Math.PI)
636
+ return longitude;
637
+ const circle = 2 * Math.PI;
638
+ return ((longitude + Math.PI) % circle + circle) % circle - Math.PI;
639
+ }
640
+
641
+ // dist/experimental/crs/datum-table.js
642
+ var datums = {
643
+ wgs84: {
644
+ towgs84: "0,0,0",
645
+ ellipse: "WGS84",
646
+ datumName: "WGS84"
647
+ },
648
+ ch1903: {
649
+ towgs84: "674.374,15.056,405.346",
650
+ ellipse: "bessel",
651
+ datumName: "swiss"
652
+ },
653
+ ggrs87: {
654
+ towgs84: "-199.87,74.79,246.62",
655
+ ellipse: "GRS80",
656
+ datumName: "Greek_Geodetic_Reference_System_1987"
657
+ },
658
+ nad83: {
659
+ towgs84: "0,0,0",
660
+ ellipse: "GRS80",
661
+ datumName: "North_American_Datum_1983"
662
+ },
663
+ nad27: {
664
+ nadgrids: "@conus,@alaska,@ntv2_0.gsb,@ntv1_can.dat",
665
+ ellipse: "clrk66",
666
+ datumName: "North_American_Datum_1927"
667
+ },
668
+ potsdam: {
669
+ towgs84: "598.1,73.7,418.2,0.202,0.045,-2.455,6.7",
670
+ ellipse: "bessel",
671
+ datumName: "Potsdam Rauenberg 1950 DHDN"
672
+ },
673
+ carthage: {
674
+ towgs84: "-263.0,6.0,431.0",
675
+ ellipse: "clrk80ign",
676
+ datumName: "Carthage 1934 Tunisia"
677
+ },
678
+ hermannskogel: {
679
+ towgs84: "577.326,90.129,463.919,5.137,1.474,5.297,2.4232",
680
+ ellipse: "bessel",
681
+ datumName: "Hermannskogel"
682
+ },
683
+ mgi: {
684
+ towgs84: "577.326,90.129,463.919,5.137,1.474,5.297,2.4232",
685
+ ellipse: "bessel",
686
+ datumName: "Militar-Geographische Institut"
687
+ },
688
+ osni52: {
689
+ towgs84: "482.530,-130.596,564.557,-1.042,-0.214,-0.631,8.15",
690
+ ellipse: "airy",
691
+ datumName: "Irish National"
692
+ },
693
+ ire65: {
694
+ towgs84: "482.530,-130.596,564.557,-1.042,-0.214,-0.631,8.15",
695
+ ellipse: "mod_airy",
696
+ datumName: "Ireland 1965"
697
+ },
698
+ rassadiran: {
699
+ towgs84: "-133.63,-157.5,-158.62",
700
+ ellipse: "intl",
701
+ datumName: "Rassadiran"
702
+ },
703
+ nzgd49: {
704
+ towgs84: "59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993",
705
+ ellipse: "intl",
706
+ datumName: "New Zealand Geodetic Datum 1949"
707
+ },
708
+ osgb36: {
709
+ towgs84: "446.448,-125.157,542.060,0.1502,0.2470,0.8421,-20.4894",
710
+ ellipse: "airy",
711
+ datumName: "Ordnance Survey of Great Britain 1936"
712
+ },
713
+ s_jtsk: {
714
+ towgs84: "589,76,480",
715
+ ellipse: "bessel",
716
+ datumName: "S-JTSK (Ferro)"
717
+ },
718
+ beduaram: {
719
+ towgs84: "-106,-87,188",
720
+ ellipse: "clrk80",
721
+ datumName: "Beduaram"
722
+ },
723
+ gunung_segara: {
724
+ towgs84: "-403,684,41",
725
+ ellipse: "bessel",
726
+ datumName: "Gunung Segara Jakarta"
727
+ },
728
+ rnb72: {
729
+ towgs84: "106.869,-52.2978,103.724,-0.33657,0.456955,-1.84218,1",
730
+ ellipse: "intl",
731
+ datumName: "Reseau National Belge 1972"
732
+ },
733
+ EPSG_5451: {
734
+ towgs84: "6.41,-49.05,-11.28,1.5657,0.5242,6.9718,-5.7649"
735
+ },
736
+ IGNF_LURESG: {
737
+ towgs84: "-192.986,13.673,-39.309,-0.4099,-2.9332,2.6881,0.43"
738
+ },
739
+ EPSG_4614: {
740
+ towgs84: "-119.4248,-303.65872,-11.00061,1.164298,0.174458,1.096259,3.657065"
741
+ },
742
+ EPSG_4615: {
743
+ towgs84: "-494.088,-312.129,279.877,-1.423,-1.013,1.59,-0.748"
744
+ },
745
+ ESRI_37241: {
746
+ towgs84: "-76.822,257.457,-12.817,2.136,-0.033,-2.392,-0.031"
747
+ },
748
+ ESRI_37249: {
749
+ towgs84: "-440.296,58.548,296.265,1.128,10.202,4.559,-0.438"
750
+ },
751
+ ESRI_37245: {
752
+ towgs84: "-511.151,-181.269,139.609,1.05,2.703,1.798,3.071"
753
+ },
754
+ EPSG_4178: {
755
+ towgs84: "24.9,-126.4,-93.2,-0.063,-0.247,-0.041,1.01"
756
+ },
757
+ EPSG_4622: {
758
+ towgs84: "-472.29,-5.63,-304.12,0.4362,-0.8374,0.2563,1.8984"
759
+ },
760
+ EPSG_4625: {
761
+ towgs84: "126.93,547.94,130.41,-2.7867,5.1612,-0.8584,13.8227"
762
+ },
763
+ EPSG_5252: {
764
+ towgs84: "0.023,0.036,-0.068,0.00176,0.00912,-0.01136,0.00439"
765
+ },
766
+ EPSG_4314: {
767
+ towgs84: "597.1,71.4,412.1,0.894,0.068,-1.563,7.58"
768
+ },
769
+ EPSG_4282: {
770
+ towgs84: "-178.3,-316.7,-131.5,5.278,6.077,10.979,19.166"
771
+ },
772
+ EPSG_4231: {
773
+ towgs84: "-83.11,-97.38,-117.22,0.005693,-0.044698,0.044285,0.1218"
774
+ },
775
+ EPSG_4274: {
776
+ towgs84: "-230.994,102.591,25.199,0.633,-0.239,0.9,1.95"
777
+ },
778
+ EPSG_4134: {
779
+ towgs84: "-180.624,-225.516,173.919,-0.81,-1.898,8.336,16.71006"
780
+ },
781
+ EPSG_4254: {
782
+ towgs84: "18.38,192.45,96.82,0.056,-0.142,-0.2,-0.0013"
783
+ },
784
+ EPSG_4159: {
785
+ towgs84: "-194.513,-63.978,-25.759,-3.4027,3.756,-3.352,-0.9175"
786
+ },
787
+ EPSG_4687: {
788
+ towgs84: "0.072,-0.507,-0.245,0.0183,-0.0003,0.007,-0.0093"
789
+ },
790
+ EPSG_4227: {
791
+ towgs84: "-83.58,-397.54,458.78,-17.595,-2.847,4.256,3.225"
792
+ },
793
+ EPSG_4746: {
794
+ towgs84: "599.4,72.4,419.2,-0.062,-0.022,-2.723,6.46"
795
+ },
796
+ EPSG_4745: {
797
+ towgs84: "612.4,77,440.2,-0.054,0.057,-2.797,2.55"
798
+ },
799
+ EPSG_6311: {
800
+ towgs84: "8.846,-4.394,-1.122,-0.00237,-0.146528,0.130428,0.783926"
801
+ },
802
+ EPSG_4289: {
803
+ towgs84: "565.7381,50.4018,465.2904,-0.395026,0.330772,-1.876073,4.07244"
804
+ },
805
+ EPSG_4230: {
806
+ towgs84: "-68.863,-134.888,-111.49,-0.53,-0.14,0.57,-3.4"
807
+ },
808
+ EPSG_4154: {
809
+ towgs84: "-123.02,-158.95,-168.47"
810
+ },
811
+ EPSG_4156: {
812
+ towgs84: "570.8,85.7,462.8,4.998,1.587,5.261,3.56"
813
+ },
814
+ EPSG_4299: {
815
+ towgs84: "482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15"
816
+ },
817
+ EPSG_4179: {
818
+ towgs84: "33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84"
819
+ },
820
+ EPSG_4313: {
821
+ towgs84: "-106.8686,52.2978,-103.7239,0.3366,-0.457,1.8422,-1.2747"
822
+ },
823
+ EPSG_4194: {
824
+ towgs84: "163.511,127.533,-159.789"
825
+ },
826
+ EPSG_4195: {
827
+ towgs84: "105,326,-102.5"
828
+ },
829
+ EPSG_4196: {
830
+ towgs84: "-45,417,-3.5"
831
+ },
832
+ EPSG_4611: {
833
+ towgs84: "-162.619,-276.959,-161.764,0.067753,-2.243648,-1.158828,-1.094246"
834
+ },
835
+ EPSG_4633: {
836
+ towgs84: "137.092,131.66,91.475,-1.9436,-11.5993,-4.3321,-7.4824"
837
+ },
838
+ EPSG_4641: {
839
+ towgs84: "-408.809,366.856,-412.987,1.8842,-0.5308,2.1655,-121.0993"
840
+ },
841
+ EPSG_4643: {
842
+ towgs84: "-480.26,-438.32,-643.429,16.3119,20.1721,-4.0349,-111.7002"
843
+ },
844
+ EPSG_4300: {
845
+ towgs84: "482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15"
846
+ },
847
+ EPSG_4188: {
848
+ towgs84: "482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15"
849
+ },
850
+ EPSG_4660: {
851
+ towgs84: "982.6087,552.753,-540.873,6.681627,-31.611492,-19.848161,16.805"
852
+ },
853
+ EPSG_4662: {
854
+ towgs84: "97.295,-263.247,310.882,-1.5999,0.8386,3.1409,13.3259"
855
+ },
856
+ EPSG_3906: {
857
+ towgs84: "577.88891,165.22205,391.18289,4.9145,-0.94729,-13.05098,7.78664"
858
+ },
859
+ EPSG_4307: {
860
+ towgs84: "-209.3622,-87.8162,404.6198,0.0046,3.4784,0.5805,-1.4547"
861
+ },
862
+ EPSG_6892: {
863
+ towgs84: "-76.269,-16.683,68.562,-6.275,10.536,-4.286,-13.686"
864
+ },
865
+ EPSG_4690: {
866
+ towgs84: "221.597,152.441,176.523,2.403,1.3893,0.884,11.4648"
867
+ },
868
+ EPSG_4691: {
869
+ towgs84: "218.769,150.75,176.75,3.5231,2.0037,1.288,10.9817"
870
+ },
871
+ EPSG_4629: {
872
+ towgs84: "72.51,345.411,79.241,-1.5862,-0.8826,-0.5495,1.3653"
873
+ },
874
+ EPSG_4630: {
875
+ towgs84: "165.804,216.213,180.26,-0.6251,-0.4515,-0.0721,7.4111"
876
+ },
877
+ EPSG_4692: {
878
+ towgs84: "217.109,86.452,23.711,0.0183,-0.0003,0.007,-0.0093"
879
+ },
880
+ EPSG_9333: {
881
+ towgs84: "0,0,0,-0.008393,0.000749,-0.010276,0"
882
+ },
883
+ EPSG_9059: {
884
+ towgs84: "0,0,0"
885
+ },
886
+ EPSG_4312: {
887
+ towgs84: "601.705,84.263,485.227,4.7354,1.3145,5.393,-2.3887"
888
+ },
889
+ EPSG_4123: {
890
+ towgs84: "-96.062,-82.428,-121.753,4.801,0.345,-1.376,1.496"
891
+ },
892
+ EPSG_4309: {
893
+ towgs84: "-124.45,183.74,44.64,-0.4384,0.5446,-0.9706,-2.1365"
894
+ },
895
+ ESRI_104106: {
896
+ towgs84: "-283.088,-70.693,117.445,-1.157,0.059,-0.652,-4.058"
897
+ },
898
+ EPSG_4281: {
899
+ towgs84: "-219.247,-73.802,269.529"
900
+ },
901
+ EPSG_4322: {
902
+ towgs84: "0,0,4.5"
903
+ },
904
+ EPSG_4324: {
905
+ towgs84: "0,0,1.9"
906
+ },
907
+ EPSG_4284: {
908
+ towgs84: "43.822,-108.842,-119.585,1.455,-0.761,0.737,0.549"
909
+ },
910
+ EPSG_4277: {
911
+ towgs84: "446.448,-125.157,542.06,0.15,0.247,0.842,-20.489"
912
+ },
913
+ EPSG_4207: {
914
+ towgs84: "-282.1,-72.2,120,-1.529,0.145,-0.89,-4.46"
915
+ },
916
+ EPSG_4688: {
917
+ towgs84: "347.175,1077.618,2623.677,33.9058,-70.6776,9.4013,186.0647"
918
+ },
919
+ EPSG_4689: {
920
+ towgs84: "410.793,54.542,80.501,-2.5596,-2.3517,-0.6594,17.3218"
921
+ },
922
+ EPSG_4720: {
923
+ towgs84: "0,0,4.5"
924
+ },
925
+ EPSG_4273: {
926
+ towgs84: "278.3,93,474.5,7.889,0.05,-6.61,6.21"
927
+ },
928
+ EPSG_4240: {
929
+ towgs84: "204.64,834.74,293.8"
930
+ },
931
+ EPSG_4817: {
932
+ towgs84: "278.3,93,474.5,7.889,0.05,-6.61,6.21"
933
+ },
934
+ ESRI_104131: {
935
+ towgs84: "426.62,142.62,460.09,4.98,4.49,-12.42,-17.1"
936
+ },
937
+ EPSG_4265: {
938
+ towgs84: "-104.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68"
939
+ },
940
+ EPSG_4263: {
941
+ towgs84: "-111.92,-87.85,114.5,1.875,0.202,0.219,0.032"
942
+ },
943
+ EPSG_4298: {
944
+ towgs84: "-689.5937,623.84046,-65.93566,-0.02331,1.17094,-0.80054,5.88536"
945
+ },
946
+ EPSG_4270: {
947
+ towgs84: "-253.4392,-148.452,386.5267,0.15605,0.43,-0.1013,-0.0424"
948
+ },
949
+ EPSG_4229: {
950
+ towgs84: "-121.8,98.1,-10.7"
951
+ },
952
+ EPSG_4220: {
953
+ towgs84: "-55.5,-348,-229.2"
954
+ },
955
+ EPSG_4214: {
956
+ towgs84: "12.646,-155.176,-80.863"
957
+ },
958
+ EPSG_4232: {
959
+ towgs84: "-345,3,223"
960
+ },
961
+ EPSG_4238: {
962
+ towgs84: "-1.977,-13.06,-9.993,0.364,0.254,0.689,-1.037"
963
+ },
964
+ EPSG_4168: {
965
+ towgs84: "-170,33,326"
966
+ },
967
+ EPSG_4131: {
968
+ towgs84: "199,931,318.9"
969
+ },
970
+ EPSG_4152: {
971
+ towgs84: "-0.9102,2.0141,0.5602,0.029039,0.010065,0.010101,0"
972
+ },
973
+ EPSG_5228: {
974
+ towgs84: "572.213,85.334,461.94,4.9732,1.529,5.2484,3.5378"
975
+ },
976
+ EPSG_8351: {
977
+ towgs84: "485.021,169.465,483.839,7.786342,4.397554,4.102655,0"
978
+ },
979
+ EPSG_4683: {
980
+ towgs84: "-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06"
981
+ },
982
+ EPSG_4133: {
983
+ towgs84: "0,0,0"
984
+ },
985
+ EPSG_7373: {
986
+ towgs84: "0.819,-0.5762,-1.6446,-0.00378,-0.03317,0.00318,0.0693"
987
+ },
988
+ EPSG_9075: {
989
+ towgs84: "-0.9102,2.0141,0.5602,0.029039,0.010065,0.010101,0"
990
+ },
991
+ EPSG_9072: {
992
+ towgs84: "-0.9102,2.0141,0.5602,0.029039,0.010065,0.010101,0"
993
+ },
994
+ EPSG_9294: {
995
+ towgs84: "1.16835,-1.42001,-2.24431,-0.00822,-0.05508,0.01818,0.23388"
996
+ },
997
+ EPSG_4212: {
998
+ towgs84: "-267.434,173.496,181.814,-13.4704,8.7154,7.3926,14.7492"
999
+ },
1000
+ EPSG_4191: {
1001
+ towgs84: "-44.183,-0.58,-38.489,2.3867,2.7072,-3.5196,-8.2703"
1002
+ },
1003
+ EPSG_4237: {
1004
+ towgs84: "52.684,-71.194,-13.975,-0.312,-0.1063,-0.3729,1.0191"
1005
+ },
1006
+ EPSG_4740: {
1007
+ towgs84: "-1.08,-0.27,-0.9"
1008
+ },
1009
+ EPSG_4124: {
1010
+ towgs84: "419.3836,99.3335,591.3451,0.850389,1.817277,-7.862238,-0.99496"
1011
+ },
1012
+ EPSG_5681: {
1013
+ towgs84: "584.9636,107.7175,413.8067,1.1155,0.2824,-3.1384,7.9922"
1014
+ },
1015
+ EPSG_4141: {
1016
+ towgs84: "23.772,17.49,17.859,-0.3132,-1.85274,1.67299,-5.4262"
1017
+ },
1018
+ EPSG_4204: {
1019
+ towgs84: "-85.645,-273.077,-79.708,2.289,-1.421,2.532,3.194"
1020
+ },
1021
+ EPSG_4319: {
1022
+ towgs84: "226.702,-193.337,-35.371,-2.229,-4.391,9.238,0.9798"
1023
+ },
1024
+ EPSG_4200: {
1025
+ towgs84: "24.82,-131.21,-82.66"
1026
+ },
1027
+ EPSG_4130: {
1028
+ towgs84: "0,0,0"
1029
+ },
1030
+ EPSG_4127: {
1031
+ towgs84: "-82.875,-57.097,-156.768,-2.158,1.524,-0.982,-0.359"
1032
+ },
1033
+ EPSG_4149: {
1034
+ towgs84: "674.374,15.056,405.346"
1035
+ },
1036
+ EPSG_4617: {
1037
+ towgs84: "-0.991,1.9072,0.5129,0.02579,0.00965,0.01166,0"
1038
+ },
1039
+ EPSG_4663: {
1040
+ towgs84: "-210.502,-66.902,-48.476,2.094,-15.067,-5.817,0.485"
1041
+ },
1042
+ EPSG_4664: {
1043
+ towgs84: "-211.939,137.626,58.3,-0.089,0.251,0.079,0.384"
1044
+ },
1045
+ EPSG_4665: {
1046
+ towgs84: "-105.854,165.589,-38.312,-0.003,-0.026,0.024,-0.048"
1047
+ },
1048
+ EPSG_4666: {
1049
+ towgs84: "631.392,-66.551,481.442,1.09,-4.445,-4.487,-4.43"
1050
+ },
1051
+ EPSG_4756: {
1052
+ towgs84: "-192.873,-39.382,-111.202,-0.00205,-0.0005,0.00335,0.0188"
1053
+ },
1054
+ EPSG_4723: {
1055
+ towgs84: "-179.483,-69.379,-27.584,-7.862,8.163,6.042,-13.925"
1056
+ },
1057
+ EPSG_4726: {
1058
+ towgs84: "8.853,-52.644,180.304,-0.393,-2.323,2.96,-24.081"
1059
+ },
1060
+ EPSG_4267: {
1061
+ towgs84: "-8.0,160.0,176.0"
1062
+ },
1063
+ EPSG_5365: {
1064
+ towgs84: "-0.16959,0.35312,0.51846,0.03385,-0.16325,0.03446,0.03693"
1065
+ },
1066
+ EPSG_4218: {
1067
+ towgs84: "304.5,306.5,-318.1"
1068
+ },
1069
+ EPSG_4242: {
1070
+ towgs84: "-33.722,153.789,94.959,-8.581,-4.478,4.54,8.95"
1071
+ },
1072
+ EPSG_4216: {
1073
+ towgs84: "-292.295,248.758,429.447,4.9971,2.99,6.6906,1.0289"
1074
+ },
1075
+ ESRI_104105: {
1076
+ towgs84: "631.392,-66.551,481.442,1.09,-4.445,-4.487,-4.43"
1077
+ },
1078
+ ESRI_104129: {
1079
+ towgs84: "0,0,0"
1080
+ },
1081
+ EPSG_4673: {
1082
+ towgs84: "174.05,-25.49,112.57"
1083
+ },
1084
+ EPSG_4202: {
1085
+ towgs84: "-124,-60,154"
1086
+ },
1087
+ EPSG_4203: {
1088
+ towgs84: "-117.763,-51.51,139.061,0.292,0.443,0.277,-0.191"
1089
+ },
1090
+ EPSG_3819: {
1091
+ towgs84: "595.48,121.69,515.35,4.115,-2.9383,0.853,-3.408"
1092
+ },
1093
+ EPSG_8694: {
1094
+ towgs84: "-93.799,-132.737,-219.073,-1.844,0.648,-6.37,-0.169"
1095
+ },
1096
+ EPSG_4145: {
1097
+ towgs84: "275.57,676.78,229.6"
1098
+ },
1099
+ EPSG_4283: {
1100
+ towgs84: "0.06155,-0.01087,-0.04019,0.039492,0.032722,0.032898,-0.009994"
1101
+ },
1102
+ EPSG_4317: {
1103
+ towgs84: "2.3287,-147.0425,-92.0802,-0.309248,0.324822,0.497299,5.689063"
1104
+ },
1105
+ EPSG_4272: {
1106
+ towgs84: "59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993"
1107
+ },
1108
+ EPSG_4248: {
1109
+ towgs84: "-307.7,265.3,-363.5"
1110
+ },
1111
+ EPSG_5561: {
1112
+ towgs84: "24,-121,-76"
1113
+ },
1114
+ EPSG_5233: {
1115
+ towgs84: "-0.293,766.95,87.713,0.195704,1.695068,3.473016,-0.039338"
1116
+ },
1117
+ ESRI_104130: {
1118
+ towgs84: "-86,-98,-119"
1119
+ },
1120
+ ESRI_104102: {
1121
+ towgs84: "682,-203,480"
1122
+ },
1123
+ ESRI_37207: {
1124
+ towgs84: "7,-10,-26"
1125
+ },
1126
+ EPSG_4675: {
1127
+ towgs84: "59.935,118.4,-10.871"
1128
+ },
1129
+ ESRI_104109: {
1130
+ towgs84: "-89.121,-348.182,260.871"
1131
+ },
1132
+ ESRI_104112: {
1133
+ towgs84: "-185.583,-230.096,281.361"
1134
+ },
1135
+ ESRI_104113: {
1136
+ towgs84: "25.1,-275.6,222.6"
1137
+ },
1138
+ IGNF_WGS72G: {
1139
+ towgs84: "0,12,6"
1140
+ },
1141
+ IGNF_NTFG: {
1142
+ towgs84: "-168,-60,320"
1143
+ },
1144
+ IGNF_EFATE57G: {
1145
+ towgs84: "-127,-769,472"
1146
+ },
1147
+ IGNF_PGP50G: {
1148
+ towgs84: "324.8,153.6,172.1"
1149
+ },
1150
+ IGNF_REUN47G: {
1151
+ towgs84: "94,-948,-1262"
1152
+ },
1153
+ IGNF_CSG67G: {
1154
+ towgs84: "-186,230,110"
1155
+ },
1156
+ IGNF_GUAD48G: {
1157
+ towgs84: "-467,-16,-300"
1158
+ },
1159
+ IGNF_TAHI51G: {
1160
+ towgs84: "162,117,154"
1161
+ },
1162
+ IGNF_TAHAAG: {
1163
+ towgs84: "65,342,77"
1164
+ },
1165
+ IGNF_NUKU72G: {
1166
+ towgs84: "84,274,65"
1167
+ },
1168
+ IGNF_PETRELS72G: {
1169
+ towgs84: "365,194,166"
1170
+ },
1171
+ IGNF_WALL78G: {
1172
+ towgs84: "253,-133,-127"
1173
+ },
1174
+ IGNF_MAYO50G: {
1175
+ towgs84: "-382,-59,-262"
1176
+ },
1177
+ IGNF_TANNAG: {
1178
+ towgs84: "-139,-967,436"
1179
+ },
1180
+ IGNF_IGN72G: {
1181
+ towgs84: "-13,-348,292"
1182
+ },
1183
+ IGNF_ATIGG: {
1184
+ towgs84: "1118,23,66"
1185
+ },
1186
+ IGNF_FANGA84G: {
1187
+ towgs84: "150.57,158.33,118.32"
1188
+ },
1189
+ IGNF_RUSAT84G: {
1190
+ towgs84: "202.13,174.6,-15.74"
1191
+ },
1192
+ IGNF_KAUE70G: {
1193
+ towgs84: "126.74,300.1,-75.49"
1194
+ },
1195
+ IGNF_MOP90G: {
1196
+ towgs84: "-10.8,-1.8,12.77"
1197
+ },
1198
+ IGNF_MHPF67G: {
1199
+ towgs84: "338.08,212.58,-296.17"
1200
+ },
1201
+ IGNF_TAHI79G: {
1202
+ towgs84: "160.61,116.05,153.69"
1203
+ },
1204
+ IGNF_ANAA92G: {
1205
+ towgs84: "1.5,3.84,4.81"
1206
+ },
1207
+ IGNF_MARQUI72G: {
1208
+ towgs84: "330.91,-13.92,58.56"
1209
+ },
1210
+ IGNF_APAT86G: {
1211
+ towgs84: "143.6,197.82,74.05"
1212
+ },
1213
+ IGNF_TUBU69G: {
1214
+ towgs84: "237.17,171.61,-77.84"
1215
+ },
1216
+ IGNF_STPM50G: {
1217
+ towgs84: "11.363,424.148,373.13"
1218
+ },
1219
+ EPSG_4150: {
1220
+ towgs84: "674.374,15.056,405.346"
1221
+ },
1222
+ EPSG_4754: {
1223
+ towgs84: "-208.4058,-109.8777,-2.5764"
1224
+ },
1225
+ ESRI_104101: {
1226
+ towgs84: "372.87,149.23,585.29"
1227
+ },
1228
+ EPSG_4693: {
1229
+ towgs84: "0,-0.15,0.68"
1230
+ },
1231
+ EPSG_6207: {
1232
+ towgs84: "293.17,726.18,245.36"
1233
+ },
1234
+ EPSG_4153: {
1235
+ towgs84: "-133.63,-157.5,-158.62"
1236
+ },
1237
+ EPSG_4132: {
1238
+ towgs84: "-241.54,-163.64,396.06"
1239
+ },
1240
+ EPSG_4221: {
1241
+ towgs84: "-154.5,150.7,100.4"
1242
+ },
1243
+ EPSG_4266: {
1244
+ towgs84: "-80.7,-132.5,41.1"
1245
+ },
1246
+ EPSG_4193: {
1247
+ towgs84: "-70.9,-151.8,-41.4"
1248
+ },
1249
+ EPSG_5340: {
1250
+ towgs84: "-0.41,0.46,-0.35"
1251
+ },
1252
+ EPSG_4246: {
1253
+ towgs84: "-294.7,-200.1,525.5"
1254
+ },
1255
+ EPSG_4318: {
1256
+ towgs84: "-3.2,-5.7,2.8"
1257
+ },
1258
+ EPSG_4121: {
1259
+ towgs84: "-199.87,74.79,246.62"
1260
+ },
1261
+ EPSG_4223: {
1262
+ towgs84: "-260.1,5.5,432.2"
1263
+ },
1264
+ EPSG_4158: {
1265
+ towgs84: "-0.465,372.095,171.736"
1266
+ },
1267
+ EPSG_4285: {
1268
+ towgs84: "-128.16,-282.42,21.93"
1269
+ },
1270
+ EPSG_4613: {
1271
+ towgs84: "-404.78,685.68,45.47"
1272
+ },
1273
+ EPSG_4607: {
1274
+ towgs84: "195.671,332.517,274.607"
1275
+ },
1276
+ EPSG_4475: {
1277
+ towgs84: "-381.788,-57.501,-256.673"
1278
+ },
1279
+ EPSG_4208: {
1280
+ towgs84: "-157.84,308.54,-146.6"
1281
+ },
1282
+ EPSG_4743: {
1283
+ towgs84: "70.995,-335.916,262.898"
1284
+ },
1285
+ EPSG_4710: {
1286
+ towgs84: "-323.65,551.39,-491.22"
1287
+ },
1288
+ EPSG_7881: {
1289
+ towgs84: "-0.077,0.079,0.086"
1290
+ },
1291
+ EPSG_4682: {
1292
+ towgs84: "283.729,735.942,261.143"
1293
+ },
1294
+ EPSG_4739: {
1295
+ towgs84: "-156,-271,-189"
1296
+ },
1297
+ EPSG_4679: {
1298
+ towgs84: "-80.01,253.26,291.19"
1299
+ },
1300
+ EPSG_4750: {
1301
+ towgs84: "-56.263,16.136,-22.856"
1302
+ },
1303
+ EPSG_4644: {
1304
+ towgs84: "-10.18,-350.43,291.37"
1305
+ },
1306
+ EPSG_4695: {
1307
+ towgs84: "-103.746,-9.614,-255.95"
1308
+ },
1309
+ EPSG_4292: {
1310
+ towgs84: "-355,21,72"
1311
+ },
1312
+ EPSG_4302: {
1313
+ towgs84: "-61.702,284.488,472.052"
1314
+ },
1315
+ EPSG_4143: {
1316
+ towgs84: "-124.76,53,466.79"
1317
+ },
1318
+ EPSG_4606: {
1319
+ towgs84: "-153,153,307"
1320
+ },
1321
+ EPSG_4699: {
1322
+ towgs84: "-770.1,158.4,-498.2"
1323
+ },
1324
+ EPSG_4247: {
1325
+ towgs84: "-273.5,110.6,-357.9"
1326
+ },
1327
+ EPSG_4160: {
1328
+ towgs84: "8.88,184.86,106.69"
1329
+ },
1330
+ EPSG_4161: {
1331
+ towgs84: "-233.43,6.65,173.64"
1332
+ },
1333
+ EPSG_9251: {
1334
+ towgs84: "-9.5,122.9,138.2"
1335
+ },
1336
+ EPSG_9253: {
1337
+ towgs84: "-78.1,101.6,133.3"
1338
+ },
1339
+ EPSG_4297: {
1340
+ towgs84: "-198.383,-240.517,-107.909"
1341
+ },
1342
+ EPSG_4269: {
1343
+ towgs84: "0,0,0"
1344
+ },
1345
+ EPSG_4301: {
1346
+ towgs84: "-147,506,687"
1347
+ },
1348
+ EPSG_4618: {
1349
+ towgs84: "-59,-11,-52"
1350
+ },
1351
+ EPSG_4612: {
1352
+ towgs84: "0,0,0"
1353
+ },
1354
+ EPSG_4678: {
1355
+ towgs84: "44.585,-131.212,-39.544"
1356
+ },
1357
+ EPSG_4250: {
1358
+ towgs84: "-130,29,364"
1359
+ },
1360
+ EPSG_4144: {
1361
+ towgs84: "214,804,268"
1362
+ },
1363
+ EPSG_4147: {
1364
+ towgs84: "-17.51,-108.32,-62.39"
1365
+ },
1366
+ EPSG_4259: {
1367
+ towgs84: "-254.1,-5.36,-100.29"
1368
+ },
1369
+ EPSG_4164: {
1370
+ towgs84: "-76,-138,67"
1371
+ },
1372
+ EPSG_4211: {
1373
+ towgs84: "-378.873,676.002,-46.255"
1374
+ },
1375
+ EPSG_4182: {
1376
+ towgs84: "-422.651,-172.995,84.02"
1377
+ },
1378
+ EPSG_4224: {
1379
+ towgs84: "-143.87,243.37,-33.52"
1380
+ },
1381
+ EPSG_4225: {
1382
+ towgs84: "-205.57,168.77,-4.12"
1383
+ },
1384
+ EPSG_5527: {
1385
+ towgs84: "-67.35,3.88,-38.22"
1386
+ },
1387
+ EPSG_4752: {
1388
+ towgs84: "98,390,-22"
1389
+ },
1390
+ EPSG_4310: {
1391
+ towgs84: "-30,190,89"
1392
+ },
1393
+ EPSG_9248: {
1394
+ towgs84: "-192.26,65.72,132.08"
1395
+ },
1396
+ EPSG_4680: {
1397
+ towgs84: "124.5,-63.5,-281"
1398
+ },
1399
+ EPSG_4701: {
1400
+ towgs84: "-79.9,-158,-168.9"
1401
+ },
1402
+ EPSG_4706: {
1403
+ towgs84: "-146.21,112.63,4.05"
1404
+ },
1405
+ EPSG_4805: {
1406
+ towgs84: "682,-203,480"
1407
+ },
1408
+ EPSG_4201: {
1409
+ towgs84: "-165,-11,206"
1410
+ },
1411
+ EPSG_4210: {
1412
+ towgs84: "-157,-2,-299"
1413
+ },
1414
+ EPSG_4183: {
1415
+ towgs84: "-104,167,-38"
1416
+ },
1417
+ EPSG_4139: {
1418
+ towgs84: "11,72,-101"
1419
+ },
1420
+ EPSG_4668: {
1421
+ towgs84: "-86,-98,-119"
1422
+ },
1423
+ EPSG_4717: {
1424
+ towgs84: "-2,151,181"
1425
+ },
1426
+ EPSG_4732: {
1427
+ towgs84: "102,52,-38"
1428
+ },
1429
+ EPSG_4280: {
1430
+ towgs84: "-377,681,-50"
1431
+ },
1432
+ EPSG_4209: {
1433
+ towgs84: "-138,-105,-289"
1434
+ },
1435
+ EPSG_4261: {
1436
+ towgs84: "31,146,47"
1437
+ },
1438
+ EPSG_4658: {
1439
+ towgs84: "-73,46,-86"
1440
+ },
1441
+ EPSG_4721: {
1442
+ towgs84: "265.025,384.929,-194.046"
1443
+ },
1444
+ EPSG_4222: {
1445
+ towgs84: "-136,-108,-292"
1446
+ },
1447
+ EPSG_4601: {
1448
+ towgs84: "-255,-15,71"
1449
+ },
1450
+ EPSG_4602: {
1451
+ towgs84: "725,685,536"
1452
+ },
1453
+ EPSG_4603: {
1454
+ towgs84: "72,213.7,93"
1455
+ },
1456
+ EPSG_4605: {
1457
+ towgs84: "9,183,236"
1458
+ },
1459
+ EPSG_4621: {
1460
+ towgs84: "137,248,-430"
1461
+ },
1462
+ EPSG_4657: {
1463
+ towgs84: "-28,199,5"
1464
+ },
1465
+ EPSG_4316: {
1466
+ towgs84: "103.25,-100.4,-307.19"
1467
+ },
1468
+ EPSG_4642: {
1469
+ towgs84: "-13,-348,292"
1470
+ },
1471
+ EPSG_4698: {
1472
+ towgs84: "145,-187,103"
1473
+ },
1474
+ EPSG_4192: {
1475
+ towgs84: "-206.1,-174.7,-87.7"
1476
+ },
1477
+ EPSG_4311: {
1478
+ towgs84: "-265,120,-358"
1479
+ },
1480
+ EPSG_4135: {
1481
+ towgs84: "58,-283,-182"
1482
+ },
1483
+ ESRI_104138: {
1484
+ towgs84: "198,-226,-347"
1485
+ },
1486
+ EPSG_4245: {
1487
+ towgs84: "-11,851,5"
1488
+ },
1489
+ EPSG_4142: {
1490
+ towgs84: "-125,53,467"
1491
+ },
1492
+ EPSG_4213: {
1493
+ towgs84: "-106,-87,188"
1494
+ },
1495
+ EPSG_4253: {
1496
+ towgs84: "-133,-77,-51"
1497
+ },
1498
+ EPSG_4129: {
1499
+ towgs84: "-132,-110,-335"
1500
+ },
1501
+ EPSG_4713: {
1502
+ towgs84: "-77,-128,142"
1503
+ },
1504
+ EPSG_4239: {
1505
+ towgs84: "217,823,299"
1506
+ },
1507
+ EPSG_4146: {
1508
+ towgs84: "295,736,257"
1509
+ },
1510
+ EPSG_4155: {
1511
+ towgs84: "-83,37,124"
1512
+ },
1513
+ EPSG_4165: {
1514
+ towgs84: "-173,253,27"
1515
+ },
1516
+ EPSG_4672: {
1517
+ towgs84: "175,-38,113"
1518
+ },
1519
+ EPSG_4236: {
1520
+ towgs84: "-637,-549,-203"
1521
+ },
1522
+ EPSG_4251: {
1523
+ towgs84: "-90,40,88"
1524
+ },
1525
+ EPSG_4271: {
1526
+ towgs84: "-2,374,172"
1527
+ },
1528
+ EPSG_4175: {
1529
+ towgs84: "-88,4,101"
1530
+ },
1531
+ EPSG_4716: {
1532
+ towgs84: "298,-304,-375"
1533
+ },
1534
+ EPSG_4315: {
1535
+ towgs84: "-23,259,-9"
1536
+ },
1537
+ EPSG_4744: {
1538
+ towgs84: "-242.2,-144.9,370.3"
1539
+ },
1540
+ EPSG_4244: {
1541
+ towgs84: "-97,787,86"
1542
+ },
1543
+ EPSG_4293: {
1544
+ towgs84: "616,97,-251"
1545
+ },
1546
+ EPSG_4714: {
1547
+ towgs84: "-127,-769,472"
1548
+ },
1549
+ EPSG_4736: {
1550
+ towgs84: "260,12,-147"
1551
+ },
1552
+ EPSG_6883: {
1553
+ towgs84: "-235,-110,393"
1554
+ },
1555
+ EPSG_6894: {
1556
+ towgs84: "-63,176,185"
1557
+ },
1558
+ EPSG_4205: {
1559
+ towgs84: "-43,-163,45"
1560
+ },
1561
+ EPSG_4256: {
1562
+ towgs84: "41,-220,-134"
1563
+ },
1564
+ EPSG_4262: {
1565
+ towgs84: "639,405,60"
1566
+ },
1567
+ EPSG_4604: {
1568
+ towgs84: "174,359,365"
1569
+ },
1570
+ EPSG_4169: {
1571
+ towgs84: "-115,118,426"
1572
+ },
1573
+ EPSG_4620: {
1574
+ towgs84: "-106,-129,165"
1575
+ },
1576
+ EPSG_4184: {
1577
+ towgs84: "-203,141,53"
1578
+ },
1579
+ EPSG_4616: {
1580
+ towgs84: "-289,-124,60"
1581
+ },
1582
+ EPSG_9403: {
1583
+ towgs84: "-307,-92,127"
1584
+ },
1585
+ EPSG_4684: {
1586
+ towgs84: "-133,-321,50"
1587
+ },
1588
+ EPSG_4708: {
1589
+ towgs84: "-491,-22,435"
1590
+ },
1591
+ EPSG_4707: {
1592
+ towgs84: "114,-116,-333"
1593
+ },
1594
+ EPSG_4709: {
1595
+ towgs84: "145,75,-272"
1596
+ },
1597
+ EPSG_4712: {
1598
+ towgs84: "-205,107,53"
1599
+ },
1600
+ EPSG_4711: {
1601
+ towgs84: "124,-234,-25"
1602
+ },
1603
+ EPSG_4718: {
1604
+ towgs84: "230,-199,-752"
1605
+ },
1606
+ EPSG_4719: {
1607
+ towgs84: "211,147,111"
1608
+ },
1609
+ EPSG_4724: {
1610
+ towgs84: "208,-435,-229"
1611
+ },
1612
+ EPSG_4725: {
1613
+ towgs84: "189,-79,-202"
1614
+ },
1615
+ EPSG_4735: {
1616
+ towgs84: "647,1777,-1124"
1617
+ },
1618
+ EPSG_4722: {
1619
+ towgs84: "-794,119,-298"
1620
+ },
1621
+ EPSG_4728: {
1622
+ towgs84: "-307,-92,127"
1623
+ },
1624
+ EPSG_4734: {
1625
+ towgs84: "-632,438,-609"
1626
+ },
1627
+ EPSG_4727: {
1628
+ towgs84: "912,-58,1227"
1629
+ },
1630
+ EPSG_4729: {
1631
+ towgs84: "185,165,42"
1632
+ },
1633
+ EPSG_4730: {
1634
+ towgs84: "170,42,84"
1635
+ },
1636
+ EPSG_4733: {
1637
+ towgs84: "276,-57,149"
1638
+ },
1639
+ ESRI_37218: {
1640
+ towgs84: "230,-199,-752"
1641
+ },
1642
+ ESRI_37240: {
1643
+ towgs84: "-7,215,225"
1644
+ },
1645
+ ESRI_37221: {
1646
+ towgs84: "252,-209,-751"
1647
+ },
1648
+ ESRI_4305: {
1649
+ towgs84: "-123,-206,219"
1650
+ },
1651
+ ESRI_104139: {
1652
+ towgs84: "-73,-247,227"
1653
+ },
1654
+ EPSG_4748: {
1655
+ towgs84: "51,391,-36"
1656
+ },
1657
+ EPSG_4219: {
1658
+ towgs84: "-384,664,-48"
1659
+ },
1660
+ EPSG_4255: {
1661
+ towgs84: "-333,-222,114"
1662
+ },
1663
+ EPSG_4257: {
1664
+ towgs84: "-587.8,519.75,145.76"
1665
+ },
1666
+ EPSG_4646: {
1667
+ towgs84: "-963,510,-359"
1668
+ },
1669
+ EPSG_6881: {
1670
+ towgs84: "-24,-203,268"
1671
+ },
1672
+ EPSG_6882: {
1673
+ towgs84: "-183,-15,273"
1674
+ },
1675
+ EPSG_4715: {
1676
+ towgs84: "-104,-129,239"
1677
+ },
1678
+ IGNF_RGF93GDD: {
1679
+ towgs84: "0,0,0"
1680
+ },
1681
+ IGNF_RGM04GDD: {
1682
+ towgs84: "0,0,0"
1683
+ },
1684
+ IGNF_RGSPM06GDD: {
1685
+ towgs84: "0,0,0"
1686
+ },
1687
+ IGNF_RGTAAF07GDD: {
1688
+ towgs84: "0,0,0"
1689
+ },
1690
+ IGNF_RGFG95GDD: {
1691
+ towgs84: "0,0,0"
1692
+ },
1693
+ IGNF_RGNCG: {
1694
+ towgs84: "0,0,0"
1695
+ },
1696
+ IGNF_RGPFGDD: {
1697
+ towgs84: "0,0,0"
1698
+ },
1699
+ IGNF_ETRS89G: {
1700
+ towgs84: "0,0,0"
1701
+ },
1702
+ IGNF_RGR92GDD: {
1703
+ towgs84: "0,0,0"
1704
+ },
1705
+ EPSG_4173: {
1706
+ towgs84: "0,0,0"
1707
+ },
1708
+ EPSG_4180: {
1709
+ towgs84: "0,0,0"
1710
+ },
1711
+ EPSG_4619: {
1712
+ towgs84: "0,0,0"
1713
+ },
1714
+ EPSG_4667: {
1715
+ towgs84: "0,0,0"
1716
+ },
1717
+ EPSG_4075: {
1718
+ towgs84: "0,0,0"
1719
+ },
1720
+ EPSG_6706: {
1721
+ towgs84: "0,0,0"
1722
+ },
1723
+ EPSG_7798: {
1724
+ towgs84: "0,0,0"
1725
+ },
1726
+ EPSG_4661: {
1727
+ towgs84: "0,0,0"
1728
+ },
1729
+ EPSG_4669: {
1730
+ towgs84: "0,0,0"
1731
+ },
1732
+ EPSG_8685: {
1733
+ towgs84: "0,0,0"
1734
+ },
1735
+ EPSG_4151: {
1736
+ towgs84: "0,0,0"
1737
+ },
1738
+ EPSG_9702: {
1739
+ towgs84: "0,0,0"
1740
+ },
1741
+ EPSG_4758: {
1742
+ towgs84: "0,0,0"
1743
+ },
1744
+ EPSG_4761: {
1745
+ towgs84: "0,0,0"
1746
+ },
1747
+ EPSG_4765: {
1748
+ towgs84: "0,0,0"
1749
+ },
1750
+ EPSG_8997: {
1751
+ towgs84: "0,0,0"
1752
+ },
1753
+ EPSG_4023: {
1754
+ towgs84: "0,0,0"
1755
+ },
1756
+ EPSG_4670: {
1757
+ towgs84: "0,0,0"
1758
+ },
1759
+ EPSG_4694: {
1760
+ towgs84: "0,0,0"
1761
+ },
1762
+ EPSG_4148: {
1763
+ towgs84: "0,0,0"
1764
+ },
1765
+ EPSG_4163: {
1766
+ towgs84: "0,0,0"
1767
+ },
1768
+ EPSG_4167: {
1769
+ towgs84: "0,0,0"
1770
+ },
1771
+ EPSG_4189: {
1772
+ towgs84: "0,0,0"
1773
+ },
1774
+ EPSG_4190: {
1775
+ towgs84: "0,0,0"
1776
+ },
1777
+ EPSG_4176: {
1778
+ towgs84: "0,0,0"
1779
+ },
1780
+ EPSG_4659: {
1781
+ towgs84: "0,0,0"
1782
+ },
1783
+ EPSG_3824: {
1784
+ towgs84: "0,0,0"
1785
+ },
1786
+ EPSG_3889: {
1787
+ towgs84: "0,0,0"
1788
+ },
1789
+ EPSG_4046: {
1790
+ towgs84: "0,0,0"
1791
+ },
1792
+ EPSG_4081: {
1793
+ towgs84: "0,0,0"
1794
+ },
1795
+ EPSG_4558: {
1796
+ towgs84: "0,0,0"
1797
+ },
1798
+ EPSG_4483: {
1799
+ towgs84: "0,0,0"
1800
+ },
1801
+ EPSG_5013: {
1802
+ towgs84: "0,0,0"
1803
+ },
1804
+ EPSG_5264: {
1805
+ towgs84: "0,0,0"
1806
+ },
1807
+ EPSG_5324: {
1808
+ towgs84: "0,0,0"
1809
+ },
1810
+ EPSG_5354: {
1811
+ towgs84: "0,0,0"
1812
+ },
1813
+ EPSG_5371: {
1814
+ towgs84: "0,0,0"
1815
+ },
1816
+ EPSG_5373: {
1817
+ towgs84: "0,0,0"
1818
+ },
1819
+ EPSG_5381: {
1820
+ towgs84: "0,0,0"
1821
+ },
1822
+ EPSG_5393: {
1823
+ towgs84: "0,0,0"
1824
+ },
1825
+ EPSG_5489: {
1826
+ towgs84: "0,0,0"
1827
+ },
1828
+ EPSG_5593: {
1829
+ towgs84: "0,0,0"
1830
+ },
1831
+ EPSG_6135: {
1832
+ towgs84: "0,0,0"
1833
+ },
1834
+ EPSG_6365: {
1835
+ towgs84: "0,0,0"
1836
+ },
1837
+ EPSG_5246: {
1838
+ towgs84: "0,0,0"
1839
+ },
1840
+ EPSG_7886: {
1841
+ towgs84: "0,0,0"
1842
+ },
1843
+ EPSG_8431: {
1844
+ towgs84: "0,0,0"
1845
+ },
1846
+ EPSG_8427: {
1847
+ towgs84: "0,0,0"
1848
+ },
1849
+ EPSG_8699: {
1850
+ towgs84: "0,0,0"
1851
+ },
1852
+ EPSG_8818: {
1853
+ towgs84: "0,0,0"
1854
+ },
1855
+ EPSG_4757: {
1856
+ towgs84: "0,0,0"
1857
+ },
1858
+ EPSG_9140: {
1859
+ towgs84: "0,0,0"
1860
+ },
1861
+ EPSG_8086: {
1862
+ towgs84: "0,0,0"
1863
+ },
1864
+ EPSG_4686: {
1865
+ towgs84: "0,0,0"
1866
+ },
1867
+ EPSG_4737: {
1868
+ towgs84: "0,0,0"
1869
+ },
1870
+ EPSG_4702: {
1871
+ towgs84: "0,0,0"
1872
+ },
1873
+ EPSG_4747: {
1874
+ towgs84: "0,0,0"
1875
+ },
1876
+ EPSG_4749: {
1877
+ towgs84: "0,0,0"
1878
+ },
1879
+ EPSG_4674: {
1880
+ towgs84: "0,0,0"
1881
+ },
1882
+ EPSG_4755: {
1883
+ towgs84: "0,0,0"
1884
+ },
1885
+ EPSG_4759: {
1886
+ towgs84: "0,0,0"
1887
+ },
1888
+ EPSG_4762: {
1889
+ towgs84: "0,0,0"
1890
+ },
1891
+ EPSG_4763: {
1892
+ towgs84: "0,0,0"
1893
+ },
1894
+ EPSG_4764: {
1895
+ towgs84: "0,0,0"
1896
+ },
1897
+ EPSG_4166: {
1898
+ towgs84: "0,0,0"
1899
+ },
1900
+ EPSG_4170: {
1901
+ towgs84: "0,0,0"
1902
+ },
1903
+ EPSG_5546: {
1904
+ towgs84: "0,0,0"
1905
+ },
1906
+ EPSG_7844: {
1907
+ towgs84: "0,0,0"
1908
+ },
1909
+ EPSG_4818: {
1910
+ towgs84: "589,76,480"
1911
+ },
1912
+ EPSG_10328: {
1913
+ towgs84: "0,0,0"
1914
+ },
1915
+ EPSG_9782: {
1916
+ towgs84: "0,0,0"
1917
+ },
1918
+ EPSG_9777: {
1919
+ towgs84: "0,0,0"
1920
+ },
1921
+ EPSG_10690: {
1922
+ towgs84: "0,0,0"
1923
+ },
1924
+ EPSG_10639: {
1925
+ towgs84: "0,0,0"
1926
+ },
1927
+ EPSG_10739: {
1928
+ towgs84: "0,0,0"
1929
+ },
1930
+ EPSG_7686: {
1931
+ towgs84: "0,0,0"
1932
+ },
1933
+ EPSG_8900: {
1934
+ towgs84: "0,0,0"
1935
+ },
1936
+ EPSG_5886: {
1937
+ towgs84: "0,0,0"
1938
+ },
1939
+ EPSG_7683: {
1940
+ towgs84: "0,0,0"
1941
+ },
1942
+ EPSG_6668: {
1943
+ towgs84: "0,0,0"
1944
+ },
1945
+ EPSG_20046: {
1946
+ towgs84: "0,0,0"
1947
+ },
1948
+ EPSG_10299: {
1949
+ towgs84: "0,0,0"
1950
+ },
1951
+ EPSG_10310: {
1952
+ towgs84: "0,0,0"
1953
+ },
1954
+ EPSG_10475: {
1955
+ towgs84: "0,0,0"
1956
+ },
1957
+ EPSG_4742: {
1958
+ towgs84: "0,0,0"
1959
+ },
1960
+ EPSG_10671: {
1961
+ towgs84: "0,0,0"
1962
+ },
1963
+ EPSG_10762: {
1964
+ towgs84: "0,0,0"
1965
+ },
1966
+ EPSG_10725: {
1967
+ towgs84: "0,0,0"
1968
+ },
1969
+ EPSG_10791: {
1970
+ towgs84: "0,0,0"
1971
+ },
1972
+ EPSG_10800: {
1973
+ towgs84: "0,0,0"
1974
+ },
1975
+ EPSG_10305: {
1976
+ towgs84: "0,0,0"
1977
+ },
1978
+ EPSG_10941: {
1979
+ towgs84: "0,0,0"
1980
+ },
1981
+ EPSG_10968: {
1982
+ towgs84: "0,0,0"
1983
+ },
1984
+ EPSG_10875: {
1985
+ towgs84: "0,0,0"
1986
+ },
1987
+ EPSG_6318: {
1988
+ towgs84: "0,0,0"
1989
+ },
1990
+ EPSG_10910: {
1991
+ towgs84: "0,0,0"
1992
+ }
1993
+ };
1994
+ for (const key2 in datums) {
1995
+ const datum = datums[key2];
1996
+ if (!datum.datumName) {
1997
+ continue;
1998
+ }
1999
+ datums[datum.datumName] = datum;
2000
+ }
2001
+ var datum_table_default = datums;
2002
+
2003
+ // dist/experimental/crs/ellipsoid-table.js
2004
+ var ellipsoids = {
2005
+ MERIT: {
2006
+ a: 6378137,
2007
+ rf: 298.257,
2008
+ ellipseName: "MERIT 1983"
2009
+ },
2010
+ SGS85: {
2011
+ a: 6378136,
2012
+ rf: 298.257,
2013
+ ellipseName: "Soviet Geodetic System 85"
2014
+ },
2015
+ GRS80: {
2016
+ a: 6378137,
2017
+ rf: 298.257222101,
2018
+ ellipseName: "GRS 1980(IUGG, 1980)"
2019
+ },
2020
+ IAU76: {
2021
+ a: 6378140,
2022
+ rf: 298.257,
2023
+ ellipseName: "IAU 1976"
2024
+ },
2025
+ airy: {
2026
+ a: 6377563396e-3,
2027
+ b: 635625691e-2,
2028
+ ellipseName: "Airy 1830"
2029
+ },
2030
+ APL4: {
2031
+ a: 6378137,
2032
+ rf: 298.25,
2033
+ ellipseName: "Appl. Physics. 1965"
2034
+ },
2035
+ NWL9D: {
2036
+ a: 6378145,
2037
+ rf: 298.25,
2038
+ ellipseName: "Naval Weapons Lab., 1965"
2039
+ },
2040
+ mod_airy: {
2041
+ a: 6377340189e-3,
2042
+ b: 6356034446e-3,
2043
+ ellipseName: "Modified Airy"
2044
+ },
2045
+ andrae: {
2046
+ a: 637710443e-2,
2047
+ rf: 300,
2048
+ ellipseName: "Andrae 1876 (Den., Iclnd.)"
2049
+ },
2050
+ aust_SA: {
2051
+ a: 6378160,
2052
+ rf: 298.25,
2053
+ ellipseName: "Australian Natl & S. Amer. 1969"
2054
+ },
2055
+ GRS67: {
2056
+ a: 6378160,
2057
+ rf: 298.247167427,
2058
+ ellipseName: "GRS 67(IUGG 1967)"
2059
+ },
2060
+ bessel: {
2061
+ a: 6377397155e-3,
2062
+ rf: 299.1528128,
2063
+ ellipseName: "Bessel 1841"
2064
+ },
2065
+ bess_nam: {
2066
+ a: 6377483865e-3,
2067
+ rf: 299.1528128,
2068
+ ellipseName: "Bessel 1841 (Namibia)"
2069
+ },
2070
+ clrk66: {
2071
+ a: 63782064e-1,
2072
+ b: 63565838e-1,
2073
+ ellipseName: "Clarke 1866"
2074
+ },
2075
+ clrk80: {
2076
+ a: 6378249145e-3,
2077
+ rf: 293.4663,
2078
+ ellipseName: "Clarke 1880 mod."
2079
+ },
2080
+ clrk80ign: {
2081
+ a: 63782492e-1,
2082
+ b: 6356515,
2083
+ rf: 293.4660213,
2084
+ ellipseName: "Clarke 1880 (IGN)"
2085
+ },
2086
+ clrk58: {
2087
+ a: 6378293645208759e-9,
2088
+ rf: 294.2606763692654,
2089
+ ellipseName: "Clarke 1858"
2090
+ },
2091
+ CPM: {
2092
+ a: 63757387e-1,
2093
+ rf: 334.29,
2094
+ ellipseName: "Comm. des Poids et Mesures 1799"
2095
+ },
2096
+ delmbr: {
2097
+ a: 6376428,
2098
+ rf: 311.5,
2099
+ ellipseName: "Delambre 1810 (Belgium)"
2100
+ },
2101
+ engelis: {
2102
+ a: 637813605e-2,
2103
+ rf: 298.2566,
2104
+ ellipseName: "Engelis 1985"
2105
+ },
2106
+ evrst30: {
2107
+ a: 6377276345e-3,
2108
+ rf: 300.8017,
2109
+ ellipseName: "Everest 1830"
2110
+ },
2111
+ evrst48: {
2112
+ a: 6377304063e-3,
2113
+ rf: 300.8017,
2114
+ ellipseName: "Everest 1948"
2115
+ },
2116
+ evrst56: {
2117
+ a: 6377301243e-3,
2118
+ rf: 300.8017,
2119
+ ellipseName: "Everest 1956"
2120
+ },
2121
+ evrst69: {
2122
+ a: 6377295664e-3,
2123
+ rf: 300.8017,
2124
+ ellipseName: "Everest 1969"
2125
+ },
2126
+ evrstSS: {
2127
+ a: 6377298556e-3,
2128
+ rf: 300.8017,
2129
+ ellipseName: "Everest (Sabah & Sarawak)"
2130
+ },
2131
+ fschr60: {
2132
+ a: 6378166,
2133
+ rf: 298.3,
2134
+ ellipseName: "Fischer (Mercury Datum) 1960"
2135
+ },
2136
+ fschr60m: {
2137
+ a: 6378155,
2138
+ rf: 298.3,
2139
+ ellipseName: "Fischer 1960"
2140
+ },
2141
+ fschr68: {
2142
+ a: 6378150,
2143
+ rf: 298.3,
2144
+ ellipseName: "Fischer 1968"
2145
+ },
2146
+ helmert: {
2147
+ a: 6378200,
2148
+ rf: 298.3,
2149
+ ellipseName: "Helmert 1906"
2150
+ },
2151
+ hough: {
2152
+ a: 6378270,
2153
+ rf: 297,
2154
+ ellipseName: "Hough"
2155
+ },
2156
+ intl: {
2157
+ a: 6378388,
2158
+ rf: 297,
2159
+ ellipseName: "International 1909 (Hayford)"
2160
+ },
2161
+ kaula: {
2162
+ a: 6378163,
2163
+ rf: 298.24,
2164
+ ellipseName: "Kaula 1961"
2165
+ },
2166
+ lerch: {
2167
+ a: 6378139,
2168
+ rf: 298.257,
2169
+ ellipseName: "Lerch 1979"
2170
+ },
2171
+ mprts: {
2172
+ a: 6397300,
2173
+ rf: 191,
2174
+ ellipseName: "Maupertius 1738"
2175
+ },
2176
+ new_intl: {
2177
+ a: 63781575e-1,
2178
+ b: 63567722e-1,
2179
+ ellipseName: "New International 1967"
2180
+ },
2181
+ plessis: {
2182
+ a: 6376523,
2183
+ b: 6355863,
2184
+ ellipseName: "Plessis 1817 (France)"
2185
+ },
2186
+ krass: {
2187
+ a: 6378245,
2188
+ rf: 298.3,
2189
+ ellipseName: "Krassovsky, 1942"
2190
+ },
2191
+ SEasia: {
2192
+ a: 6378155,
2193
+ b: 63567733205e-4,
2194
+ ellipseName: "Southeast Asia"
2195
+ },
2196
+ walbeck: {
2197
+ a: 6376896,
2198
+ b: 63558348467e-4,
2199
+ ellipseName: "Walbeck"
2200
+ },
2201
+ WGS60: {
2202
+ a: 6378165,
2203
+ rf: 298.3,
2204
+ ellipseName: "WGS 60"
2205
+ },
2206
+ WGS66: {
2207
+ a: 6378145,
2208
+ rf: 298.25,
2209
+ ellipseName: "WGS 66"
2210
+ },
2211
+ WGS72: {
2212
+ a: 6378135,
2213
+ rf: 298.26,
2214
+ ellipseName: "WGS 72"
2215
+ },
2216
+ WGS84: {
2217
+ a: 6378137,
2218
+ rf: 298.257223563,
2219
+ ellipseName: "WGS 84"
2220
+ },
2221
+ sphere: {
2222
+ a: 6370997,
2223
+ b: 6370997,
2224
+ ellipseName: "Normal Sphere (r=6370997)"
2225
+ }
2226
+ };
2227
+ var ellipsoid_table_default = ellipsoids;
2228
+
2229
+ // dist/experimental/crs/primemeridian-table.js
2230
+ var primeMeridian = {};
2231
+ primeMeridian["greenwich"] = 0;
2232
+ primeMeridian["lisbon"] = -9.131906111111;
2233
+ primeMeridian["paris"] = 2.337229166667;
2234
+ primeMeridian["bogota"] = -74.080916666667;
2235
+ primeMeridian["madrid"] = -3.687938888889;
2236
+ primeMeridian["rome"] = 12.452333333333;
2237
+ primeMeridian["bern"] = 7.439583333333;
2238
+ primeMeridian["jakarta"] = 106.807719444444;
2239
+ primeMeridian["ferro"] = -17.666666666667;
2240
+ primeMeridian["brussels"] = 4.367975;
2241
+ primeMeridian["stockholm"] = 18.058277777778;
2242
+ primeMeridian["athens"] = 23.7163375;
2243
+ primeMeridian["oslo"] = 10.722916666667;
2244
+ var primemeridian_table_default = primeMeridian;
2245
+
2246
+ // dist/experimental/crs/units-table.js
2247
+ var units_table_default = {
2248
+ mm: { to_meter: 1e-3 },
2249
+ cm: { to_meter: 0.01 },
2250
+ ft: { to_meter: 0.3048 },
2251
+ "us-ft": { to_meter: 1200 / 3937 },
2252
+ fath: { to_meter: 1.8288 },
2253
+ kmi: { to_meter: 1852 },
2254
+ "us-ch": { to_meter: 20.1168402336805 },
2255
+ "us-mi": { to_meter: 1609.34721869444 },
2256
+ km: { to_meter: 1e3 },
2257
+ "ind-ft": { to_meter: 0.30479841 },
2258
+ "ind-yd": { to_meter: 0.91439523 },
2259
+ mi: { to_meter: 1609.344 },
2260
+ yd: { to_meter: 0.9144 },
2261
+ ch: { to_meter: 20.1168 },
2262
+ link: { to_meter: 0.201168 },
2263
+ dm: { to_meter: 0.1 },
2264
+ in: { to_meter: 0.0254 },
2265
+ "ind-ch": { to_meter: 20.11669506 },
2266
+ "us-in": { to_meter: 0.025400050800101 },
2267
+ "us-yd": { to_meter: 0.914401828803658 }
2268
+ };
2269
+
2270
+ // dist/experimental/crs/normalize.js
2271
+ var ALIASES = {
2272
+ WGS84: "+proj=longlat +datum=WGS84",
2273
+ "EPSG:4326": "+proj=longlat +datum=WGS84",
2274
+ "EPSG:4269": "+proj=longlat +datum=NAD83",
2275
+ "EPSG:4978": "+proj=geocent +datum=WGS84",
2276
+ "EPSG:4979": "+proj=longlat +datum=WGS84",
2277
+ "EPSG:3857": "+proj=merc +a=6378137 +b=6378137 +nadgrids=@null +units=m",
2278
+ "EPSG:3785": "EPSG:3857",
2279
+ GOOGLE: "EPSG:3857",
2280
+ "EPSG:900913": "EPSG:3857",
2281
+ "EPSG:102113": "EPSG:3857"
2282
+ };
2283
+ var CORE_PARAMETERS = [
2284
+ "proj",
2285
+ "datum",
2286
+ "ellps",
2287
+ "a",
2288
+ "b",
2289
+ "rf",
2290
+ "f",
2291
+ "R",
2292
+ "units",
2293
+ "to_meter",
2294
+ "vunits",
2295
+ "vto_meter",
2296
+ "no_defs",
2297
+ "type",
2298
+ "title",
2299
+ "towgs84",
2300
+ "nadgrids",
2301
+ "geoidgrids",
2302
+ "axis",
2303
+ "pm",
2304
+ "over",
2305
+ "lon_wrap"
2306
+ ];
2307
+ var CORE_FLAGS = ["no_defs", "over"];
2308
+ var own = (object, key2) => Object.prototype.hasOwnProperty.call(object, key2);
2309
+ var keyOf = (value) => value.toLowerCase().replace(/[\s_-]/g, "");
2310
+ function lookup(table, name) {
2311
+ const key2 = Object.keys(table).find((key3) => keyOf(key3) === keyOf(name));
2312
+ return key2 === void 0 ? void 0 : table[key2];
2313
+ }
2314
+ function parseAngle(text) {
2315
+ if (/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i.test(text)) {
2316
+ const value = Number(text);
2317
+ if (Number.isFinite(value))
2318
+ return value;
2319
+ }
2320
+ if (/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?r$/i.test(text)) {
2321
+ const value = Number(text.slice(0, -1)) / DEGREES_TO_RADIANS;
2322
+ if (Number.isFinite(value))
2323
+ return value;
2324
+ }
2325
+ const dms = /^([+-]?)(\d+(?:\.\d*)?)(?:d(?:(\d+(?:\.\d*)?)'(?:(\d+(?:\.\d*)?)")?)?)?([NSEW])?$/i.exec(text);
2326
+ if (dms && (/d/i.test(text) || dms[5])) {
2327
+ const minutes = Number(dms[3] || 0), seconds = Number(dms[4] || 0);
2328
+ if (minutes < 60 && seconds < 60) {
2329
+ const sign = dms[1] === "-" ? -1 : 1;
2330
+ const direction = /[SW]/i.test(dms[5] || "") ? -1 : 1;
2331
+ const value = sign * direction * (Number(dms[2]) + minutes / 60 + seconds / 3600);
2332
+ if (Number.isFinite(value))
2333
+ return value;
2334
+ }
2335
+ }
2336
+ throw new Error("Invalid angular parameter: " + text);
2337
+ }
2338
+ function normalizeCRS(input, options = {}) {
2339
+ var _a2;
2340
+ const resolved = resolveCRSInput(input, options);
2341
+ let definition = resolved.definition;
2342
+ const aliases = options.aliases || {};
2343
+ const visited = /* @__PURE__ */ new Set();
2344
+ while (typeof definition === "string" && (own(aliases, definition) || own(ALIASES, definition))) {
2345
+ if (visited.has(definition))
2346
+ throw new Error("Circular CRS alias: " + definition);
2347
+ visited.add(definition);
2348
+ definition = own(aliases, definition) ? aliases[definition] : ALIASES[definition];
2349
+ }
2350
+ if (typeof definition === "string") {
2351
+ const utm = /^EPSG:(326|327)(\d{2})$/.exec(definition);
2352
+ if (utm && Number(utm[2]) >= 1 && Number(utm[2]) <= 60) {
2353
+ definition = "+proj=utm +datum=WGS84 +zone=" + Number(utm[2]) + (utm[1] === "327" ? " +south" : "");
2354
+ }
2355
+ if (definition === "EPSG:5041" || definition === "EPSG:5042") {
2356
+ definition = "+proj=stere +datum=WGS84 +lat_0=" + (definition === "EPSG:5041" ? 90 : -90) + " +k_0=0.994 +x_0=2000000 +y_0=2000000";
2357
+ }
2358
+ }
2359
+ let parsed;
2360
+ if (inferCRSRepresentation(definition) === "proj-string" && typeof definition === "string") {
2361
+ const parameters2 = /* @__PURE__ */ Object.create(null);
2362
+ for (const parameter of parsePROJString(definition).parameters) {
2363
+ if (own(parameters2, parameter.name))
2364
+ throw new Error("Duplicate PROJ parameter: +" + parameter.name);
2365
+ parameters2[parameter.name] = parameter.value;
2366
+ }
2367
+ parsed = { parameters: parameters2 };
2368
+ } else {
2369
+ const parser = (_a2 = options.parsers) == null ? void 0 : _a2.find((candidate) => candidate.canParse(definition));
2370
+ if (!parser) {
2371
+ const serialized = ["wkt", "projjson"].includes(inferCRSRepresentation(definition));
2372
+ throw new TypeScriptCRSError(serialized ? "missing-parser" : "unknown-syntax", "Unsupported CRS definition; register a WKT or PROJJSON parser for structured definitions");
2373
+ }
2374
+ parsed = parser.parse(definition, options);
2375
+ }
2376
+ const parameters = { ...parsed.parameters };
2377
+ for (const name2 of [
2378
+ "lon_0",
2379
+ "lat_0",
2380
+ "lat_1",
2381
+ "lat_2",
2382
+ "lat_ts",
2383
+ "lon_wrap",
2384
+ "lon_1",
2385
+ "lon_2",
2386
+ "lonc",
2387
+ "alpha",
2388
+ "gamma",
2389
+ "tilt",
2390
+ "azi",
2391
+ "o_alpha",
2392
+ "o_lon_c",
2393
+ "o_lat_c",
2394
+ "o_lon_p",
2395
+ "o_lat_p",
2396
+ "o_lon_1",
2397
+ "o_lat_1",
2398
+ "o_lon_2",
2399
+ "o_lat_2"
2400
+ ]) {
2401
+ if (parameters[name2] !== void 0)
2402
+ parameters[name2] = String(parseAngle(parameters[name2]));
2403
+ }
2404
+ const suppliedName = parameters["proj"];
2405
+ const lowerName = suppliedName == null ? void 0 : suppliedName.toLowerCase();
2406
+ const name = lowerName === "geocentric" ? "geocent" : ["longlat", "latlong", "latlon", "lonlat", "identity", "geocent"].includes(lowerName) ? lowerName : suppliedName;
2407
+ if (!name)
2408
+ throw new Error("CRS requires +proj");
2409
+ const kind = ["longlat", "latlong", "latlon", "lonlat"].includes(name) ? "geographic" : name === "geocent" ? "geocentric" : name === "identity" ? "identity" : "projected";
2410
+ const datumName = parameters["datum"];
2411
+ const datum = datumName && datumName !== "none" ? lookup(datum_table_default, datumName) : void 0;
2412
+ if (datumName && datumName !== "none" && !datum)
2413
+ unsupportedStage("Unknown datum: " + datumName);
2414
+ const ellipsoid = getEllipsoid(parameters, datum == null ? void 0 : datum.ellipse);
2415
+ const grids = parameters["nadgrids"] ?? (datum == null ? void 0 : datum.nadgrids);
2416
+ const gridReferences = grids === void 0 ? void 0 : grids.split(",").map((entry) => {
2417
+ const optional = entry.startsWith("@");
2418
+ const name2 = optional ? entry.slice(1) : entry;
2419
+ if (!name2 || /\s/.test(name2))
2420
+ throw new Error("Invalid datum grid name");
2421
+ return Object.freeze({ name: name2, optional });
2422
+ });
2423
+ const rawShift = parameters["towgs84"] ?? (datum == null ? void 0 : datum.towgs84);
2424
+ let shift;
2425
+ if (rawShift !== void 0) {
2426
+ shift = rawShift.split(",").map((value) => numberParameter({ value }, "value", NaN));
2427
+ if (![3, 7].includes(shift.length) || shift.some((value) => !Number.isFinite(value)) || shift.length === 7 && shift[6] <= -1e6) {
2428
+ throw new Error("+towgs84 requires three or seven finite values and positive scale");
2429
+ }
2430
+ }
2431
+ if (datumName === "none")
2432
+ shift = void 0;
2433
+ if (gridReferences && datumName !== "none")
2434
+ shift = [0, 0, 0];
2435
+ const datumEllipsoid = grids === "@null" || grids === "null" ? getEllipsoid({ ellps: "WGS84" }) : ellipsoid;
2436
+ const axis = parameters["axis"] || "enu";
2437
+ if (axis.length !== 3 || !/[ew]/.test(axis) || !/[ns]/.test(axis) || !/[ud]/.test(axis))
2438
+ throw new Error("Invalid axis: " + axis);
2439
+ const angularUnit = parsed.angularUnit ?? DEGREES_TO_RADIANS;
2440
+ if (kind === "geographic" && (parameters["units"] && parameters["units"] !== "degrees" || own(parameters, "to_meter")))
2441
+ throw new Error("Geographic coordinates must use angular units");
2442
+ if (kind !== "geographic" && parameters["units"] === "degrees")
2443
+ throw new Error("Linear coordinates require linear units");
2444
+ const toMeter = unitFactor(parameters, "units", "to_meter");
2445
+ const verticalUnit = parsed.verticalUnit ?? unitFactor(parameters, "vunits", "vto_meter");
2446
+ if (!(verticalUnit > 0) || !Number.isFinite(verticalUnit))
2447
+ throw new Error("Invalid vertical unit");
2448
+ if (!(angularUnit > 0) || !Number.isFinite(angularUnit))
2449
+ throw new Error("Invalid angular unit");
2450
+ const pm = parameters["pm"];
2451
+ const primeMeridian2 = pm === void 0 ? 0 : (lookup(primemeridian_table_default, pm) ?? parseAngle(pm)) * DEGREES_TO_RADIANS;
2452
+ return applySpatialReference(Object.freeze({
2453
+ kind,
2454
+ projection: name,
2455
+ parameters: Object.freeze(parameters),
2456
+ ellipsoid,
2457
+ datum: Object.freeze({
2458
+ ellipsoid: datumEllipsoid,
2459
+ towgs84: shift && Object.freeze(shift),
2460
+ grids: datumName === "none" || grids === "@null" || grids === "null" ? void 0 : gridReferences && Object.freeze(gridReferences)
2461
+ }),
2462
+ angularUnit,
2463
+ toMeter,
2464
+ verticalUnit,
2465
+ primeMeridian: primeMeridian2,
2466
+ axis,
2467
+ longitudeWrap: parameters["lon_wrap"] === void 0 ? void 0 : Number(parameters["lon_wrap"]) * DEGREES_TO_RADIANS,
2468
+ lossy: Boolean(parsed.lossy || resolved.lossy)
2469
+ }), resolved.spatialReference);
2470
+ }
2471
+ function unitFactor(parameters, unitKey, factorKey) {
2472
+ const unit = parameters[unitKey];
2473
+ const table = units_table_default;
2474
+ if (unitKey === "vunits" && unit === "degrees")
2475
+ throw new Error("Height requires linear units");
2476
+ if (unit && !["m", "degrees"].includes(unit) && !own(table, unit))
2477
+ throw new Error("Unsupported units: " + unit);
2478
+ const factor = numberParameter(parameters, factorKey, unit && table[unit] ? table[unit].to_meter : 1);
2479
+ if (!(factor > 0))
2480
+ throw new Error("+" + factorKey + " must be positive");
2481
+ return factor;
2482
+ }
2483
+ function getEllipsoid(parameters, datumEllipsoid) {
2484
+ const name = datumEllipsoid || parameters["ellps"] || "WGS84";
2485
+ const definition = lookup(ellipsoid_table_default, name);
2486
+ if (!definition)
2487
+ throw new Error("Unsupported ellipsoid: " + name);
2488
+ const a = numberParameter(parameters, "a", definition.a);
2489
+ const f = numberParameter(parameters, "f", NaN);
2490
+ const rf = numberParameter(parameters, "rf", Number.isNaN(f) ? definition.rf || 0 : f === 0 ? 0 : 1 / f);
2491
+ const b = numberParameter(parameters, "b", rf ? a * (1 - 1 / rf) : own(parameters, "f") || own(parameters, "rf") || own(parameters, "a") ? a : definition.b || a);
2492
+ const radius = numberParameter(parameters, "R", 0);
2493
+ 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))
2494
+ throw new Error("Invalid ellipsoid dimensions");
2495
+ return Object.freeze({
2496
+ semiMajorAxis: radius || a,
2497
+ semiMinorAxis: radius || b,
2498
+ eccentricitySquared: radius ? 0 : 1 - (b / a) ** 2
2499
+ });
2500
+ }
2501
+
2502
+ // ../core/src/spheroid.ts
2503
+ function spheroidToCartesian(point, geometry, result = point) {
2504
+ const longitude = point.x, latitude = point.y, height = point.z;
2505
+ const { semiMajorAxis: a, semiMinorAxis: b, eccentricitySquared: es } = geometry;
2506
+ const sin = Math.sin(latitude), cos = Math.cos(latitude);
2507
+ const ratio = b / a;
2508
+ const radius = es < 0.9 ? a / Math.sqrt(1 - es * sin * sin) : a / Math.hypot(cos, ratio * sin);
2509
+ const x = (radius + height) * cos * Math.cos(longitude);
2510
+ const y = (radius + height) * cos * Math.sin(longitude);
2511
+ const z = (radius * (es < 0.9 ? 1 - es : ratio * ratio) + height) * sin;
2512
+ return commit(result, x, y, z);
2513
+ }
2514
+ function cartesianToSpheroid(point, geometry, result = point) {
2515
+ const x = point.x, y = point.y, z = point.z;
2516
+ const { semiMajorAxis: a, semiMinorAxis: b, eccentricitySquared: es } = geometry;
2517
+ const p = Math.hypot(x, y), rr = Math.hypot(x, y, z);
2518
+ if (!(rr > 0) || !Number.isFinite(rr)) return false;
2519
+ if (es === 0) return commit(result, p === 0 ? 0 : Math.atan2(y, x), Math.atan2(z, p), rr - a);
2520
+ if (p === 0) return commit(result, 0, Math.sign(z) * Math.PI / 2, Math.abs(z) - b);
2521
+ if (es >= 0.9) return exteriorInverse(x, y, z, p, a, b, result);
2522
+ const ct = z / rr, st = p / rr;
2523
+ let rx = 1 / Math.sqrt(1 - es * (2 - es) * st * st);
2524
+ let cos = st * (1 - es) * rx, sin = ct * rx;
2525
+ for (let i = 0; i < 30; i++) {
2526
+ const rn = a / Math.sqrt(1 - es * sin * sin);
2527
+ const height = p * cos + z * sin - rn * (1 - es * sin * sin);
2528
+ const rk = es * rn / (rn + height);
2529
+ rx = 1 / Math.sqrt(1 - rk * (2 - rk) * st * st);
2530
+ const nextCos = st * (1 - rk) * rx, nextSin = ct * rx;
2531
+ if (Math.abs(nextSin * cos - nextCos * sin) <= 1e-12) {
2532
+ if (!Number.isFinite(height) || !Number.isFinite(nextSin) || !Number.isFinite(nextCos)) break;
2533
+ return commit(result, Math.atan2(y, x), Math.atan2(nextSin, Math.abs(nextCos)), height);
2534
+ }
2535
+ cos = nextCos;
2536
+ sin = nextSin;
2537
+ }
2538
+ return exteriorInverse(x, y, z, p, a, b, result);
2539
+ }
2540
+ function exteriorInverse(x, y, z, p, a, b, result) {
2541
+ const ratio = b / a, ratio2 = ratio * ratio, horizontal = p / a, vertical = z / a;
2542
+ const norm = Math.hypot(horizontal, z / b);
2543
+ if (!Number.isFinite(norm) || norm < 1 - 8 * Number.EPSILON || !(ratio2 > 0)) return false;
2544
+ let lower = 0, upper = Math.hypot(horizontal, vertical * ratio);
2545
+ if (!Number.isFinite(upper)) return false;
2546
+ let multiplier = norm <= 1 + 8 * Number.EPSILON ? 0 : upper / 2;
2547
+ for (let i = 0; i < 96; i++) {
2548
+ const equatorial = 1 + multiplier, polar = ratio2 + multiplier;
2549
+ const u = horizontal / equatorial, v = vertical * ratio / polar;
2550
+ const length = Math.hypot(u, v);
2551
+ const residual = length - 1;
2552
+ if (Math.abs(residual) <= 4 * Number.EPSILON) {
2553
+ const latitude = Math.atan2(vertical / polar, horizontal / equatorial);
2554
+ const sin = Math.sin(latitude), cos = Math.cos(latitude);
2555
+ const height = p * cos + z * sin - a * Math.hypot(cos, ratio * sin);
2556
+ return commit(result, Math.atan2(y, x), latitude, height);
2557
+ }
2558
+ if (residual > 0) lower = multiplier;
2559
+ else upper = multiplier;
2560
+ const derivative = -(u * u / equatorial + v * v / polar) / length;
2561
+ const next = multiplier - residual / derivative;
2562
+ multiplier = Number.isFinite(next) && next > lower && next < upper ? next : (lower + upper) / 2;
2563
+ }
2564
+ return false;
2565
+ }
2566
+ function commit(result, x, y, z) {
2567
+ if (!Number.isFinite(x) || !Number.isFinite(y) || !Number.isFinite(z)) return false;
2568
+ result.x = x;
2569
+ result.y = y;
2570
+ result.z = z;
2571
+ return true;
2572
+ }
2573
+
2574
+ // dist/experimental/datum.js
2575
+ var ARC_SECOND = Math.PI / (180 * 3600);
2576
+ var WGS84 = {
2577
+ ellipsoid: {
2578
+ semiMajorAxis: 6378137,
2579
+ semiMinorAxis: 6356752314245179e-9,
2580
+ eccentricitySquared: 0.0066943799901413165
2581
+ },
2582
+ towgs84: [0, 0, 0]
2583
+ };
2584
+ function geodeticToGeocentricInPlace(point, ellipsoid) {
2585
+ if (Math.abs(point.y) > Math.PI / 2)
2586
+ throw new Error("Latitude outside geocentric domain");
2587
+ if (!spheroidToCartesian(point, ellipsoid))
2588
+ throw new Error("Geocentric coordinate must be finite");
2589
+ }
2590
+ function geocentricToGeodeticInPlace(point, ellipsoid) {
2591
+ const x = point.x, y = point.y, z = point.z;
2592
+ const { semiMajorAxis: a, semiMinorAxis: b, eccentricitySquared: es } = ellipsoid;
2593
+ if (x === 0 && y === 0 && z === 0)
2594
+ throw new Error("Geodetic coordinates are undefined at the Earth center");
2595
+ if (es !== 0 && Math.abs(x) < 1e-12 * a && Math.abs(y) < 1e-12 * a && Math.hypot(x, y) < 1e-12 * a) {
2596
+ if (!Number.isFinite(Math.hypot(x, y, z)))
2597
+ throw new Error("Geocentric radius must be finite");
2598
+ point.x = 0;
2599
+ point.y = Math.sign(z) * Math.PI / 2;
2600
+ point.z = Math.abs(z) - b;
2601
+ return;
2602
+ }
2603
+ if (!cartesianToSpheroid(point, ellipsoid)) {
2604
+ if (!Number.isFinite(Math.hypot(x, y, z)))
2605
+ throw new Error("Geocentric radius must be finite");
2606
+ throw new Error("Geocentric inverse did not converge");
2607
+ }
2608
+ }
2609
+ function createHelmert(values, inverse) {
2610
+ const dx = values[0], dy = values[1], dz = values[2];
2611
+ const rx = (values[3] || 0) * ARC_SECOND, ry = (values[4] || 0) * ARC_SECOND, rz = (values[5] || 0) * ARC_SECOND;
2612
+ const scale = 1 + (values[6] || 0) / 1e6;
2613
+ return inverse ? (point) => {
2614
+ const x = (point.x - dx) / scale, y = (point.y - dy) / scale, z = (point.z - dz) / scale;
2615
+ point.x = x + rz * y - ry * z;
2616
+ point.y = -rz * x + y + rx * z;
2617
+ point.z = ry * x - rx * y + z;
2618
+ } : (point) => {
2619
+ const x = point.x, y = point.y, z = point.z;
2620
+ point.x = scale * (x - rz * y + ry * z) + dx;
2621
+ point.y = scale * (rz * x + y - rx * z) + dy;
2622
+ point.z = scale * (-ry * x + rx * y + z) + dz;
2623
+ };
2624
+ }
2625
+ function shifted(datum) {
2626
+ var _a2;
2627
+ return Boolean((_a2 = datum.towgs84) == null ? void 0 : _a2.some((value) => value !== 0));
2628
+ }
2629
+ function createDatumTransform(source, destination) {
2630
+ if (!source.towgs84 || !destination.towgs84)
2631
+ return void 0;
2632
+ if (source.grids || destination.grids) {
2633
+ 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))
2634
+ return void 0;
2635
+ const middle = createDatumTransform(source.grids ? WGS84 : source, destination.grids ? WGS84 : destination);
2636
+ return (point) => {
2637
+ if (source.grids)
2638
+ applyDatumGrids(point, source, false);
2639
+ middle == null ? void 0 : middle(point);
2640
+ if (destination.grids)
2641
+ applyDatumGrids(point, destination, true);
2642
+ };
2643
+ }
2644
+ if (shifted(source) || shifted(destination)) {
2645
+ const first = convertDatum(source, WGS84), second = convertDatum(WGS84, destination);
2646
+ return (point) => {
2647
+ first == null ? void 0 : first(point);
2648
+ second == null ? void 0 : second(point);
2649
+ };
2650
+ }
2651
+ return convertDatum(source, destination);
2652
+ }
2653
+ function convertDatum(from, to) {
2654
+ if (!from.towgs84 || !to.towgs84)
2655
+ return void 0;
2656
+ const a = from.ellipsoid, b = to.ellipsoid;
2657
+ let sameParameters = true;
2658
+ for (let i = 0; i < 7; i++)
2659
+ if ((from.towgs84[i] || 0) !== (to.towgs84[i] || 0))
2660
+ sameParameters = false;
2661
+ if (a.semiMajorAxis === b.semiMajorAxis && Math.abs(a.eccentricitySquared - b.eccentricitySquared) <= 5e-11 && sameParameters)
2662
+ return void 0;
2663
+ const sourceShift = shifted(from) ? createHelmert(from.towgs84, false) : void 0, targetShift = shifted(to) ? createHelmert(to.towgs84, true) : void 0;
2664
+ return (point) => {
2665
+ geodeticToGeocentricInPlace(point, a);
2666
+ sourceShift == null ? void 0 : sourceShift(point);
2667
+ targetShift == null ? void 0 : targetShift(point);
2668
+ geocentricToGeodeticInPlace(point, b);
2669
+ };
2670
+ }
2671
+ function applyDatumGrids(point, datum, inverse) {
2672
+ for (const reference of datum.grids) {
2673
+ if (reference.name === "null")
2674
+ return;
2675
+ if (!reference.grid) {
2676
+ if (reference.optional)
2677
+ continue;
2678
+ throw new Error("Required datum grid is not registered: " + reference.name);
2679
+ }
2680
+ let found = false;
2681
+ if (reference.grid.shiftInPlace)
2682
+ found = reference.grid.shiftInPlace(point, inverse);
2683
+ else {
2684
+ const output = reference.grid.shift(point.x, point.y, inverse);
2685
+ if (output) {
2686
+ point.x = output[0];
2687
+ point.y = output[1];
2688
+ found = true;
2689
+ }
2690
+ }
2691
+ if (found) {
2692
+ if (!Number.isFinite(point.x) || !Number.isFinite(point.y) || Math.abs(point.y) > Math.PI / 2)
2693
+ throw new Error("Datum grid produced a coordinate outside the geographic domain");
2694
+ return;
2695
+ }
2696
+ }
2697
+ throw new Error("No datum grid covers coordinate: " + datum.grids.map((grid) => grid.name).join(","));
2698
+ }
2699
+
2700
+ // dist/experimental/vertical-datum.js
2701
+ function compileVerticalGrid(names, grids = {}) {
2702
+ if (names === void 0)
2703
+ return void 0;
2704
+ const entries = [];
2705
+ for (const entry of names.split(",")) {
2706
+ const optional = entry.startsWith("@");
2707
+ const name = optional ? entry.slice(1) : entry;
2708
+ if (!name || /\s/.test(name))
2709
+ throw new Error("Invalid vertical grid name");
2710
+ if (name === "null") {
2711
+ entries.push(null);
2712
+ break;
2713
+ }
2714
+ const grid = Object.prototype.hasOwnProperty.call(grids, name) ? grids[name] : void 0;
2715
+ if (grid) {
2716
+ if (typeof grid.getOffset !== "function")
2717
+ throw new Error("Invalid vertical grid: " + name);
2718
+ entries.push(grid.getOffset.bind(grid));
2719
+ } else if (!optional)
2720
+ unsupportedStage("Required vertical grid is not registered: " + name);
2721
+ }
2722
+ return (longitude, latitude) => {
2723
+ for (const sample of entries) {
2724
+ if (!sample)
2725
+ return 0;
2726
+ const offset = sample(longitude, latitude);
2727
+ if (offset === void 0)
2728
+ continue;
2729
+ if (!Number.isFinite(offset))
2730
+ throw new Error("Vertical grid returned a non-finite offset");
2731
+ return offset;
2732
+ }
2733
+ throw new Error("No vertical grid covers this coordinate");
2734
+ };
2735
+ }
2736
+
2737
+ // dist/experimental/typescript-projection.js
2738
+ var ProjectionEngine = class _ProjectionEngine {
2739
+ /** Resolve required descriptors once, then return an ordinary synchronous instance. */
2740
+ static async create(options = {}) {
2741
+ const projections = await Promise.all(requiredProjections(options).map(preloadProjection));
2742
+ return new _ProjectionEngine({ ...options, projections });
2743
+ }
2744
+ constructor(options = {}) {
2745
+ this.coordinateScratch = new ProjectionScratch();
2746
+ const registrations = options.projections || [];
2747
+ const plugins = registry(registrations);
2748
+ if (registrations.some((projection) => !("create" in projection))) {
2749
+ const from = normalizeCRS(options.from ?? "WGS84", options);
2750
+ const to = normalizeCRS(options.to ?? "WGS84", options);
2751
+ this.lossy = from.lossy || to.lossy;
2752
+ this.deferred = { options: { ...options, projections: [...registrations] } };
2753
+ } else {
2754
+ const eager = options;
2755
+ const eagerPlugins = plugins;
2756
+ const from = compileCRS(eager.from ?? "WGS84", eagerPlugins, eager);
2757
+ const to = compileCRS(eager.to ?? "WGS84", eagerPlugins, eager);
2758
+ this.lossy = from.lossy || to.lossy;
2759
+ if (this.lossy && (from.kind === "geocentric" || to.kind === "geocentric"))
2760
+ unsupportedStage("Horizontal extraction cannot supply ellipsoidal height for geocentric coordinates");
2761
+ if (this.lossy && (from.verticalGrid || to.verticalGrid))
2762
+ unsupportedStage("Horizontal extraction cannot be combined with vertical grids");
2763
+ this.forwardTransform = compileTransform(from, to, Boolean(options.enforceAxis));
2764
+ this.inverseTransform = compileTransform(to, from, Boolean(options.enforceAxis));
2765
+ }
2766
+ this.project = this.project.bind(this);
2767
+ this.unproject = this.unproject.bind(this);
2768
+ this.projectTo = this.projectTo.bind(this);
2769
+ this.unprojectTo = this.unprojectTo.bind(this);
2770
+ this.projectToSync = this.projectToSync.bind(this);
2771
+ this.unprojectToSync = this.unprojectToSync.bind(this);
2772
+ this.projectFlat = this.projectFlat.bind(this);
2773
+ this.unprojectFlat = this.unprojectFlat.bind(this);
2774
+ this.projectSync = this.projectSync.bind(this);
2775
+ this.unprojectSync = this.unprojectSync.bind(this);
2776
+ this.projectFlatSync = this.projectFlatSync.bind(this);
2777
+ this.unprojectFlatSync = this.unprojectFlatSync.bind(this);
2778
+ }
2779
+ load() {
2780
+ const state = this.deferred;
2781
+ if (!state)
2782
+ return Promise.resolve(this);
2783
+ if (state.implementation)
2784
+ return Promise.resolve(state.implementation);
2785
+ state.pending || (state.pending = _ProjectionEngine.create(state.options).then((projection) => {
2786
+ state.implementation = projection;
2787
+ return projection;
2788
+ }).catch((error) => {
2789
+ state.pending = void 0;
2790
+ throw error;
2791
+ }));
2792
+ return state.pending;
2793
+ }
2794
+ loadSync() {
2795
+ const state = this.deferred;
2796
+ if (!state)
2797
+ return this;
2798
+ if (!state.implementation) {
2799
+ const projections = requiredProjections(state.options).map((descriptor) => {
2800
+ const plugin = getLoadedProjection(descriptor);
2801
+ if (!plugin)
2802
+ throw new Error("Projection is not preloaded: " + descriptor.name + ". Call preload() first.");
2803
+ return plugin;
2804
+ });
2805
+ state.implementation = new _ProjectionEngine({ ...state.options, projections });
2806
+ }
2807
+ return state.implementation;
2808
+ }
2809
+ /** Synchronous variants never import algorithms; descriptors must be preloaded. */
2810
+ projectSync(coordinate) {
2811
+ return this.deferred ? this.loadSync().project(coordinate) : transformScalar(coordinate, this.forwardTransform, this.coordinateScratch);
2812
+ }
2813
+ unprojectSync(coordinate) {
2814
+ return this.deferred ? this.loadSync().unproject(coordinate) : transformScalar(coordinate, this.inverseTransform, this.coordinateScratch);
2815
+ }
2816
+ projectFlatSync(coordinates, dimension = 2) {
2817
+ return this.deferred ? this.loadSync().projectFlat(coordinates, dimension) : transformInPlace(coordinates, dimension, this.forwardTransform, this.coordinateScratch);
2818
+ }
2819
+ unprojectFlatSync(coordinates, dimension = 2) {
2820
+ return this.deferred ? this.loadSync().unprojectFlat(coordinates, dimension) : transformInPlace(coordinates, dimension, this.inverseTransform, this.coordinateScratch);
2821
+ }
2822
+ /** Optional warm-up. Coordinate methods also load automatically on first use. */
2823
+ async preload() {
2824
+ await this.load();
2825
+ }
2826
+ /** Eager plugins return arrays; descriptor-backed instances return promises. */
2827
+ project(coordinate) {
2828
+ const result = this.deferred ? this.projectLoaded(coordinate, false) : transformScalar(coordinate, this.forwardTransform, this.coordinateScratch);
2829
+ return result;
2830
+ }
2831
+ unproject(coordinate) {
2832
+ const result = this.deferred ? this.projectLoaded(coordinate, true) : transformScalar(coordinate, this.inverseTransform, this.coordinateScratch);
2833
+ return result;
2834
+ }
2835
+ /** Write one coordinate into caller-owned storage; return that same output. */
2836
+ projectTo(coordinate, output) {
2837
+ return this.deferred ? this.projectToLoaded(coordinate, output, false) : this.projectToSync(coordinate, output);
2838
+ }
2839
+ unprojectTo(coordinate, output) {
2840
+ return this.deferred ? this.projectToLoaded(coordinate, output, true) : this.unprojectToSync(coordinate, output);
2841
+ }
2842
+ projectToSync(coordinate, output) {
2843
+ if (this.deferred)
2844
+ return this.loadSync().projectTo(coordinate, output);
2845
+ validateScalarOutput(coordinate, output, Math.max(coordinate.length, this.forwardTransform.geocentricOutput ? 3 : 2));
2846
+ return transformScalar(coordinate, this.forwardTransform, this.coordinateScratch, output);
2847
+ }
2848
+ unprojectToSync(coordinate, output) {
2849
+ if (this.deferred)
2850
+ return this.loadSync().unprojectTo(coordinate, output);
2851
+ validateScalarOutput(coordinate, output, Math.max(coordinate.length, this.inverseTransform.geocentricOutput ? 3 : 2));
2852
+ return transformScalar(coordinate, this.inverseTransform, this.coordinateScratch, output);
2853
+ }
2854
+ projectToLoaded(coordinate, output, inverse) {
2855
+ validateScalarOutput(coordinate, output, coordinate.length);
2856
+ const input = coordinate.slice();
2857
+ return this.load().then((projection) => inverse ? projection.unprojectTo(input, output) : projection.projectTo(input, output));
2858
+ }
2859
+ projectLoaded(coordinate, inverse) {
2860
+ const input = coordinate.slice();
2861
+ return this.load().then((projection) => inverse ? projection.unproject(input) : projection.project(input));
2862
+ }
2863
+ /** In-place; descriptor callers must await completion before reusing the buffer. */
2864
+ projectFlat(coordinates, dimension = 2) {
2865
+ const result = this.deferred ? this.load().then((projection) => projection.projectFlat(coordinates, dimension)) : transformInPlace(coordinates, dimension, this.forwardTransform, this.coordinateScratch);
2866
+ return result;
2867
+ }
2868
+ unprojectFlat(coordinates, dimension = 2) {
2869
+ const result = this.deferred ? this.load().then((projection) => projection.unprojectFlat(coordinates, dimension)) : transformInPlace(coordinates, dimension, this.inverseTransform, this.coordinateScratch);
2870
+ return result;
2871
+ }
2872
+ };
2873
+ function requiredProjections(options) {
2874
+ const available = registry(options.projections || []);
2875
+ const required = /* @__PURE__ */ new Set();
2876
+ for (const definition of [options.from ?? "WGS84", options.to ?? "WGS84"]) {
2877
+ const crs = normalizeCRS(definition, options);
2878
+ if (["geographic", "identity"].includes(crs.kind))
2879
+ continue;
2880
+ const projection = available.get(pluginKey(crs.projection));
2881
+ if (!projection)
2882
+ throw new TypeScriptCRSError("missing-plugin", "Projection plugin is not registered: " + crs.projection);
2883
+ required.add(projection);
2884
+ }
2885
+ return [...required];
2886
+ }
2887
+ var pluginKey = (name) => name.toLowerCase().replace(/[\s_-]/g, "");
2888
+ function registry(projections) {
2889
+ const plugins = /* @__PURE__ */ new Map();
2890
+ for (const plugin of projections) {
2891
+ for (const name of new Set([plugin.name, ...plugin.aliases || []].map(pluginKey))) {
2892
+ if (!name || ["longlat", "latlong", "latlon", "lonlat", "identity"].includes(name) || plugins.has(name))
2893
+ throw new Error("Duplicate or reserved projection plugin: " + name);
2894
+ plugins.set(name, plugin);
2895
+ }
2896
+ }
2897
+ return plugins;
2898
+ }
2899
+ function compileCRS(definition, plugins, options) {
2900
+ var _a2;
2901
+ const crs = normalizeCRS(definition, options);
2902
+ const plugin = plugins.get(pluginKey(crs.projection));
2903
+ if (!["geographic", "identity"].includes(crs.kind) && !plugin)
2904
+ throw new TypeScriptCRSError("missing-plugin", "Projection plugin is not registered: " + crs.projection);
2905
+ const allowed = /* @__PURE__ */ new Set([...CORE_PARAMETERS, ...(plugin == null ? void 0 : plugin.parameters) || []]);
2906
+ for (const key2 of Object.keys(crs.parameters)) {
2907
+ if (!allowed.has(key2))
2908
+ throw new TypeScriptCRSError("missing-transform-stage", "Unsupported PROJ parameter: +" + key2);
2909
+ const flag = CORE_FLAGS.includes(key2) || ((_a2 = plugin == null ? void 0 : plugin.flags) == null ? void 0 : _a2.includes(key2));
2910
+ if (flag && crs.parameters[key2] !== void 0)
2911
+ throw new Error("Expected a flag without a value: +" + key2);
2912
+ if (!flag && !crs.parameters[key2])
2913
+ throw new Error("PROJ parameter requires a value: +" + key2);
2914
+ }
2915
+ if (crs.parameters["type"] && crs.parameters["type"] !== "crs")
2916
+ throw new Error("Only +type=crs is supported");
2917
+ const parameters = pluginKey(crs.projection) === "fasttransversemercator" ? Object.freeze({ ...crs.parameters, approx: void 0 }) : crs.parameters;
2918
+ const implementation = plugin == null ? void 0 : plugin.create({ ...crs.ellipsoid, parameters });
2919
+ if (crs.kind === "geocentric" && (!(implementation == null ? void 0 : implementation.forward3D) || !(implementation == null ? void 0 : implementation.inverse3D)))
2920
+ throw new Error("Geocentric plugin must implement 3D operations");
2921
+ const references = crs.datum.grids;
2922
+ const nullIndex = (references == null ? void 0 : references.findIndex((reference) => reference.name === "null")) ?? -1;
2923
+ const grids = references == null ? void 0 : references.slice(0, nullIndex < 0 ? void 0 : nullIndex + 1).map((reference) => {
2924
+ const grid = Object.prototype.hasOwnProperty.call(options.datumGrids || {}, reference.name) ? options.datumGrids[reference.name] : void 0;
2925
+ if (grid && typeof grid.shift !== "function")
2926
+ throw new Error("Invalid prepared datum grid: " + reference.name);
2927
+ return Object.freeze({ ...reference, grid });
2928
+ });
2929
+ for (const reference of grids || []) {
2930
+ if (reference.name === "null")
2931
+ break;
2932
+ if (!reference.optional && !reference.grid)
2933
+ unsupportedStage("Required datum grid is not registered: " + reference.name);
2934
+ }
2935
+ const datum = grids ? Object.freeze({ ...crs.datum, grids: Object.freeze(grids) }) : crs.datum;
2936
+ const verticalGrid = compileVerticalGrid(crs.parameters["geoidgrids"], options.verticalGrids);
2937
+ if (verticalGrid && (crs.kind === "geocentric" || crs.kind === "identity" || crs.lossy))
2938
+ unsupportedStage("Vertical grids require a non-lossy geographic or projected CRS");
2939
+ return { ...crs, datum, implementation, verticalGrid };
2940
+ }
2941
+ function finite(point) {
2942
+ return Number.isFinite(point.x) && Number.isFinite(point.y) && Number.isFinite(point.z);
2943
+ }
2944
+ function compileAxis(axis, inverse) {
2945
+ if (axis === "enu")
2946
+ return void 0;
2947
+ const indexes = [0, 0, 0], signs = [0, 0, 0];
2948
+ for (let i = 0; i < 3; i++) {
2949
+ const char = axis[i], component = "ew".includes(char) ? 0 : "ns".includes(char) ? 1 : 2;
2950
+ indexes[inverse ? i : component] = inverse ? component : i;
2951
+ signs[inverse ? i : component] = "wsd".includes(char) ? -1 : 1;
2952
+ }
2953
+ return (point) => {
2954
+ const x = point.x, y = point.y, z = point.z;
2955
+ point.x = signs[0] * (indexes[0] === 0 ? x : indexes[0] === 1 ? y : z);
2956
+ point.y = signs[1] * (indexes[1] === 0 ? x : indexes[1] === 1 ? y : z);
2957
+ point.z = signs[2] * (indexes[2] === 0 ? x : indexes[2] === 1 ? y : z);
2958
+ };
2959
+ }
2960
+ function compileTransform(from, to, enforceAxis) {
2961
+ var _a2, _b, _c, _d;
2962
+ const fromAxis = from.storedAxis || (enforceAxis ? from.axis : "enu");
2963
+ const toAxis = to.storedAxis || (enforceAxis ? to.axis : "enu");
2964
+ const inputAxis = compileAxis(fromAxis, false), outputAxis = compileAxis(toAxis, true);
2965
+ const source = from.implementation && projectionOperation(from.implementation, true, from.kind === "geocentric");
2966
+ const target = to.implementation && projectionOperation(to.implementation, false, to.kind === "geocentric");
2967
+ const datum = createDatumTransform(from.datum, to.datum);
2968
+ const horizontalOnly = from.lossy || to.lossy;
2969
+ const fromGeocentric = from.kind === "geocentric";
2970
+ const inputScale = from.kind === "geographic" ? from.angularUnit : from.toMeter;
2971
+ const outputScale = to.kind === "geographic" ? to.angularUnit : to.toMeter;
2972
+ const inputVerticalScale = fromGeocentric ? 1 : from.verticalUnit, outputVerticalScale = to.kind === "geocentric" ? outputScale : to.verticalUnit;
2973
+ const fromPrime = from.primeMeridian, toPrime = to.primeMeridian;
2974
+ const longitudeWrap = to.kind === "geographic" ? to.longitudeWrap : void 0;
2975
+ let flat;
2976
+ if (!datum && !from.verticalGrid && !to.verticalGrid && !horizontalOnly && !inputAxis && !outputAxis && !fromPrime && !toPrime && from.verticalUnit === 1 && to.verticalUnit === 1 && longitudeWrap === void 0) {
2977
+ const context = Object.freeze({ inputScale, outputScale });
2978
+ if (from.kind === "geographic" && to.kind === "projected")
2979
+ flat = (_b = (_a2 = to.implementation) == null ? void 0 : _a2.createForwardFlat) == null ? void 0 : _b.call(_a2, context);
2980
+ if (from.kind === "projected" && to.kind === "geographic")
2981
+ flat = (_d = (_c = from.implementation) == null ? void 0 : _c.createInverseFlat) == null ? void 0 : _d.call(_c, context);
2982
+ }
2983
+ return {
2984
+ flat,
2985
+ requiresInputZ: Boolean(from.verticalGrid || to.verticalGrid) || from.kind === "geocentric" || /[ud]/.test(fromAxis.slice(0, 2)) || /[ud]/.test(toAxis.slice(0, 2)),
2986
+ geocentricOutput: to.kind === "geocentric",
2987
+ run(point) {
2988
+ if (!finite(point))
2989
+ throw new Error("Coordinates must contain finite x, y and optional z values");
2990
+ inputAxis == null ? void 0 : inputAxis(point);
2991
+ const preservedHeight = point.z;
2992
+ if (horizontalOnly)
2993
+ point.z = 0;
2994
+ if (inputScale !== 1) {
2995
+ point.x *= inputScale;
2996
+ point.y *= inputScale;
2997
+ if (fromGeocentric)
2998
+ point.z *= inputScale;
2999
+ }
3000
+ source == null ? void 0 : source(point);
3001
+ if (inputVerticalScale !== 1)
3002
+ point.z *= inputVerticalScale;
3003
+ if (Math.abs(point.y) > Math.PI / 2 || !finite(point))
3004
+ throw new Error("Coordinate is outside the geographic domain");
3005
+ point.x += fromPrime;
3006
+ if (from.verticalGrid)
3007
+ point.z += from.verticalGrid(point.x, point.y);
3008
+ datum == null ? void 0 : datum(point);
3009
+ if (to.verticalGrid)
3010
+ point.z -= to.verticalGrid(point.x, point.y);
3011
+ point.x -= toPrime;
3012
+ if (longitudeWrap !== void 0)
3013
+ point.x = longitudeWrap + wrapLongitude(point.x - longitudeWrap);
3014
+ target == null ? void 0 : target(point);
3015
+ if (outputScale !== 1) {
3016
+ point.x /= outputScale;
3017
+ point.y /= outputScale;
3018
+ }
3019
+ if (outputVerticalScale !== 1)
3020
+ point.z /= outputVerticalScale;
3021
+ if (horizontalOnly)
3022
+ point.z = preservedHeight;
3023
+ outputAxis == null ? void 0 : outputAxis(point);
3024
+ if (!finite(point))
3025
+ throw new Error("Projection produced non-finite coordinates");
3026
+ }
3027
+ };
3028
+ }
3029
+ function transformScalar(coordinate, operation, scratch, output) {
3030
+ if (coordinate.length < 2)
3031
+ throw new Error("Coordinates must contain finite x, y and optional z values");
3032
+ if (coordinate.length < 3 && operation.requiresInputZ)
3033
+ throw new Error("This transform requires three ordinates");
3034
+ const length = Math.max(coordinate.length, operation.geocentricOutput ? 3 : 2);
3035
+ const point = scratch.acquire();
3036
+ try {
3037
+ point.x = coordinate[0];
3038
+ point.y = coordinate[1];
3039
+ point.z = coordinate.length >= 3 ? coordinate[2] : 0;
3040
+ operation.run(point);
3041
+ if (output)
3042
+ return writeScalarOutput(coordinate, output, point, length);
3043
+ const result = coordinate.slice();
3044
+ result[0] = point.x;
3045
+ result[1] = point.y;
3046
+ if (coordinate.length >= 3 || operation.geocentricOutput)
3047
+ result[2] = point.z;
3048
+ return result;
3049
+ } finally {
3050
+ scratch.release(point);
3051
+ }
3052
+ }
3053
+ function transformInPlace(coordinates, dimension, operation, scratch) {
3054
+ if (!(coordinates instanceof Float32Array || coordinates instanceof Float64Array))
3055
+ throw new Error("In-place projection requires a Float32Array or Float64Array");
3056
+ if (!Number.isSafeInteger(dimension) || dimension < 2 || coordinates.length % dimension !== 0)
3057
+ throw new Error("Dimension must be an integer >= 2 and divide the typed array length");
3058
+ if (dimension < 3 && (operation.requiresInputZ || operation.geocentricOutput))
3059
+ throw new Error("This transform requires a dimension of at least 3");
3060
+ if (operation.flat) {
3061
+ operation.flat(coordinates, dimension);
3062
+ return coordinates;
3063
+ }
3064
+ const point = scratch.acquire();
3065
+ try {
3066
+ const float32 = coordinates instanceof Float32Array;
3067
+ for (let offset = 0; offset < coordinates.length; offset += dimension) {
3068
+ point.x = coordinates[offset];
3069
+ point.y = coordinates[offset + 1];
3070
+ point.z = dimension >= 3 ? coordinates[offset + 2] : 0;
3071
+ operation.run(point);
3072
+ if (float32 && (Math.abs(point.x) > 34028234663852886e22 || Math.abs(point.y) > 34028234663852886e22 || dimension >= 3 && Math.abs(point.z) > 34028234663852886e22))
3073
+ throw new Error("Projected coordinate exceeds Float32 range");
3074
+ coordinates[offset] = point.x;
3075
+ coordinates[offset + 1] = point.y;
3076
+ if (dimension >= 3)
3077
+ coordinates[offset + 2] = point.z;
3078
+ }
3079
+ return coordinates;
3080
+ } finally {
3081
+ scratch.release(point);
3082
+ }
3083
+ }
3084
+
3085
+ // dist/experimental/lazy-projection.js
3086
+ var catalogue = [
3087
+ lazyAlbersEqualArea,
3088
+ lazyAzimuthalEquidistant,
3089
+ lazyBonne,
3090
+ lazyCassiniSoldner,
3091
+ lazyCylindricalEqualArea,
3092
+ lazyEckertVI,
3093
+ lazyEquidistantCylindrical,
3094
+ lazyEquidistantConic,
3095
+ lazyEqualEarth,
3096
+ lazyEquirectangular,
3097
+ lazyExtendedTransverseMercator,
3098
+ lazyGeocentric,
3099
+ lazyGeostationary,
3100
+ lazyGnomonic,
3101
+ lazyGaussSchreiberTransverseMercator,
3102
+ lazyKrovak,
3103
+ lazyLambertAzimuthalEqualArea,
3104
+ lazyLambertConformalConic,
3105
+ lazyMercator,
3106
+ lazyMillerCylindrical,
3107
+ lazyMollweide,
3108
+ lazyNewZealandMapGrid,
3109
+ lazyObliqueMercator,
3110
+ lazyOrthographic,
3111
+ lazyPolyconic,
3112
+ lazyQuadrilateralizedSphericalCube,
3113
+ lazyRobinson,
3114
+ lazySinusoidal,
3115
+ lazySwissObliqueMercator,
3116
+ lazyStereographic,
3117
+ lazyObliqueStereographic,
3118
+ lazyTransverseMercator,
3119
+ lazyTiltedPerspective,
3120
+ lazyUniversalTransverseMercator,
3121
+ lazyVanDerGrinten
3122
+ ];
3123
+ var key = (name) => name.toLowerCase().replace(/[\s_-]/g, "");
3124
+ var LazyProjection = class extends ProjectionEngine {
3125
+ constructor(options = {}) {
3126
+ super({ ...options, projections: configuredProjections(options) });
3127
+ }
3128
+ /** Resolve this catalogue into an ordinary synchronous engine instance. */
3129
+ static async create(options = {}) {
3130
+ return ProjectionEngine.create({ ...options, projections: configuredProjections(options) });
3131
+ }
3132
+ };
3133
+ function configuredProjections(options) {
3134
+ const children = /* @__PURE__ */ new Map();
3135
+ for (const definition of [options.from ?? "WGS84", options.to ?? "WGS84"]) {
3136
+ const crs = normalizeCRS(definition, options);
3137
+ if (key(crs.projection) !== "obtran")
3138
+ continue;
3139
+ const requested = crs.parameters["o_proj"];
3140
+ if (!requested)
3141
+ throw new Error("Oblique transformation requires +o_proj");
3142
+ const name = key(requested);
3143
+ if (children.has(name))
3144
+ continue;
3145
+ const child = ["longlat", "latlong", "latlon", "lonlat", "identity"].includes(name) ? "longlat" : catalogue.find((p) => [p.name, ...p.aliases || []].some((alias) => key(alias) === name));
3146
+ if (!child)
3147
+ throw new Error("Unknown oblique transformation projection: " + requested);
3148
+ children.set(name, lazyObliqueTransformation(child));
3149
+ }
3150
+ const projections = [...catalogue];
3151
+ if (children.size) {
3152
+ projections.push(createProjectionDescriptor({ name: "ob_tran" }, async () => {
3153
+ const plugins = /* @__PURE__ */ new Map();
3154
+ await Promise.all([...children].map(async ([name, descriptor]) => {
3155
+ plugins.set(name, await preloadProjection(descriptor));
3156
+ }));
3157
+ return {
3158
+ name: "ob_tran",
3159
+ parameters: [...new Set([...plugins.values()].flatMap((p) => p.parameters))],
3160
+ flags: [...new Set([...plugins.values()].flatMap((p) => p.flags || []))],
3161
+ create(context) {
3162
+ const plugin = plugins.get(key(context.parameters["o_proj"] || ""));
3163
+ if (!plugin)
3164
+ throw new Error("Unregistered oblique transformation child");
3165
+ const allowed = /* @__PURE__ */ new Set([...CORE_PARAMETERS, ...plugin.parameters]);
3166
+ for (const parameter of Object.keys(context.parameters)) {
3167
+ if (!allowed.has(parameter))
3168
+ throw new Error("Unsupported PROJ parameter: +" + parameter);
3169
+ }
3170
+ return plugin.create(context);
3171
+ }
3172
+ };
3173
+ }));
3174
+ }
3175
+ return projections;
3176
+ }
3177
+ //# sourceMappingURL=index.cjs.map