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