@math.gl/geospatial 5.0.0-alpha.19 → 5.0.0-alpha.20
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/GEOGRAPHICLIB-LICENSE.txt +27 -0
- package/LICENSE +264 -73
- package/README.md +6 -1
- package/THIRD-PARTY-NOTICES.md +95 -0
- package/dist/constants.js +1 -1
- package/dist/constants.js.map +1 -1
- package/dist/discontinuous/air-ocean-mesh.d.ts +15 -0
- package/dist/discontinuous/air-ocean-mesh.d.ts.map +1 -0
- package/dist/discontinuous/air-ocean-mesh.js +75 -0
- package/dist/discontinuous/air-ocean-mesh.js.map +1 -0
- package/dist/discontinuous/albers-usa.d.ts +9 -0
- package/dist/discontinuous/albers-usa.d.ts.map +1 -0
- package/dist/discontinuous/albers-usa.js +105 -0
- package/dist/discontinuous/albers-usa.js.map +1 -0
- package/dist/discontinuous/cap-map.d.ts +23 -0
- package/dist/discontinuous/cap-map.d.ts.map +1 -0
- package/dist/discontinuous/cap-map.js +314 -0
- package/dist/discontinuous/cap-map.js.map +1 -0
- package/dist/discontinuous/elastic/data.d.ts +26 -0
- package/dist/discontinuous/elastic/data.d.ts.map +1 -0
- package/dist/discontinuous/elastic/data.js +72 -0
- package/dist/discontinuous/elastic/data.js.map +1 -0
- package/dist/discontinuous/elastic/elasticI.d.ts +3 -0
- package/dist/discontinuous/elastic/elasticI.d.ts.map +1 -0
- package/dist/discontinuous/elastic/elasticI.js +5233 -0
- package/dist/discontinuous/elastic/elasticI.js.map +1 -0
- package/dist/discontinuous/elastic/elasticII.d.ts +3 -0
- package/dist/discontinuous/elastic/elasticII.d.ts.map +1 -0
- package/dist/discontinuous/elastic/elasticII.js +18162 -0
- package/dist/discontinuous/elastic/elasticII.js.map +1 -0
- package/dist/discontinuous/elastic/elasticIII.d.ts +3 -0
- package/dist/discontinuous/elastic/elasticIII.d.ts.map +1 -0
- package/dist/discontinuous/elastic/elasticIII.js +29566 -0
- package/dist/discontinuous/elastic/elasticIII.js.map +1 -0
- package/dist/discontinuous/elastic/geometry.d.ts +22 -0
- package/dist/discontinuous/elastic/geometry.d.ts.map +1 -0
- package/dist/discontinuous/elastic/geometry.js +131 -0
- package/dist/discontinuous/elastic/geometry.js.map +1 -0
- package/dist/discontinuous/elastic/grid.d.ts +15 -0
- package/dist/discontinuous/elastic/grid.d.ts.map +1 -0
- package/dist/discontinuous/elastic/grid.js +177 -0
- package/dist/discontinuous/elastic/grid.js.map +1 -0
- package/dist/discontinuous/elastic/map.d.ts +8 -0
- package/dist/discontinuous/elastic/map.d.ts.map +1 -0
- package/dist/discontinuous/elastic/map.js +260 -0
- package/dist/discontinuous/elastic/map.js.map +1 -0
- package/dist/discontinuous/gray-fuller.d.ts +5 -0
- package/dist/discontinuous/gray-fuller.d.ts.map +1 -0
- package/dist/discontinuous/gray-fuller.js +36 -0
- package/dist/discontinuous/gray-fuller.js.map +1 -0
- package/dist/discontinuous/gringorten-kernel.d.ts +5 -0
- package/dist/discontinuous/gringorten-kernel.d.ts.map +1 -0
- package/dist/discontinuous/gringorten-kernel.js +94 -0
- package/dist/discontinuous/gringorten-kernel.js.map +1 -0
- package/dist/discontinuous/healpix.d.ts +13 -0
- package/dist/discontinuous/healpix.d.ts.map +1 -0
- package/dist/discontinuous/healpix.js +61 -0
- package/dist/discontinuous/healpix.js.map +1 -0
- package/dist/discontinuous/layout.d.ts +72 -0
- package/dist/discontinuous/layout.d.ts.map +1 -0
- package/dist/discontinuous/layout.js +114 -0
- package/dist/discontinuous/layout.js.map +1 -0
- package/dist/discontinuous/map-engine.d.ts +197 -0
- package/dist/discontinuous/map-engine.d.ts.map +1 -0
- package/dist/discontinuous/map-engine.js +356 -0
- package/dist/discontinuous/map-engine.js.map +1 -0
- package/dist/discontinuous/map-layout.d.ts +93 -0
- package/dist/discontinuous/map-layout.d.ts.map +1 -0
- package/dist/discontinuous/map-layout.js +490 -0
- package/dist/discontinuous/map-layout.js.map +1 -0
- package/dist/discontinuous/map-transition.d.ts +42 -0
- package/dist/discontinuous/map-transition.d.ts.map +1 -0
- package/dist/discontinuous/map-transition.js +283 -0
- package/dist/discontinuous/map-transition.js.map +1 -0
- package/dist/discontinuous/math.d.ts +19 -0
- package/dist/discontinuous/math.d.ts.map +1 -0
- package/dist/discontinuous/math.js +65 -0
- package/dist/discontinuous/math.js.map +1 -0
- package/dist/discontinuous/mercator-map.d.ts +22 -0
- package/dist/discontinuous/mercator-map.d.ts.map +1 -0
- package/dist/discontinuous/mercator-map.js +130 -0
- package/dist/discontinuous/mercator-map.js.map +1 -0
- package/dist/discontinuous/myriahedral/graticule.d.ts +6 -0
- package/dist/discontinuous/myriahedral/graticule.d.ts.map +1 -0
- package/dist/discontinuous/myriahedral/graticule.js +37 -0
- package/dist/discontinuous/myriahedral/graticule.js.map +1 -0
- package/dist/discontinuous/myriahedral/mesh.d.ts +18 -0
- package/dist/discontinuous/myriahedral/mesh.d.ts.map +1 -0
- package/dist/discontinuous/myriahedral/mesh.js +131 -0
- package/dist/discontinuous/myriahedral/mesh.js.map +1 -0
- package/dist/discontinuous/myriahedral/unfold.d.ts +36 -0
- package/dist/discontinuous/myriahedral/unfold.d.ts.map +1 -0
- package/dist/discontinuous/myriahedral/unfold.js +172 -0
- package/dist/discontinuous/myriahedral/unfold.js.map +1 -0
- package/dist/discontinuous/myriahedral.d.ts +56 -0
- package/dist/discontinuous/myriahedral.d.ts.map +1 -0
- package/dist/discontinuous/myriahedral.js +204 -0
- package/dist/discontinuous/myriahedral.js.map +1 -0
- package/dist/discontinuous/petroff.d.ts +8 -0
- package/dist/discontinuous/petroff.d.ts.map +1 -0
- package/dist/discontinuous/petroff.js +159 -0
- package/dist/discontinuous/petroff.js.map +1 -0
- package/dist/discontinuous/polyhedral.d.ts +8 -0
- package/dist/discontinuous/polyhedral.d.ts.map +1 -0
- package/dist/discontinuous/polyhedral.js +117 -0
- package/dist/discontinuous/polyhedral.js.map +1 -0
- package/dist/discontinuous/prepare-features.d.ts +78 -0
- package/dist/discontinuous/prepare-features.d.ts.map +1 -0
- package/dist/discontinuous/prepare-features.js +146 -0
- package/dist/discontinuous/prepare-features.js.map +1 -0
- package/dist/discontinuous/presets.d.ts +71 -0
- package/dist/discontinuous/presets.d.ts.map +1 -0
- package/dist/discontinuous/presets.js +372 -0
- package/dist/discontinuous/presets.js.map +1 -0
- package/dist/discontinuous/projection-catalog.d.ts +33 -0
- package/dist/discontinuous/projection-catalog.d.ts.map +1 -0
- package/dist/discontinuous/projection-catalog.js +96 -0
- package/dist/discontinuous/projection-catalog.js.map +1 -0
- package/dist/discontinuous/quincuncial-kernel.d.ts +9 -0
- package/dist/discontinuous/quincuncial-kernel.d.ts.map +1 -0
- package/dist/discontinuous/quincuncial-kernel.js +139 -0
- package/dist/discontinuous/quincuncial-kernel.js.map +1 -0
- package/dist/discontinuous/quincuncial-star.d.ts +29 -0
- package/dist/discontinuous/quincuncial-star.d.ts.map +1 -0
- package/dist/discontinuous/quincuncial-star.js +307 -0
- package/dist/discontinuous/quincuncial-star.js.map +1 -0
- package/dist/discontinuous/regional-map.d.ts +18 -0
- package/dist/discontinuous/regional-map.d.ts.map +1 -0
- package/dist/discontinuous/regional-map.js +193 -0
- package/dist/discontinuous/regional-map.js.map +1 -0
- package/dist/discontinuous/retroazimuthal-map.d.ts +6 -0
- package/dist/discontinuous/retroazimuthal-map.d.ts.map +1 -0
- package/dist/discontinuous/retroazimuthal-map.js +52 -0
- package/dist/discontinuous/retroazimuthal-map.js.map +1 -0
- package/dist/discontinuous/rotated-map.d.ts +31 -0
- package/dist/discontinuous/rotated-map.d.ts.map +1 -0
- package/dist/discontinuous/rotated-map.js +66 -0
- package/dist/discontinuous/rotated-map.js.map +1 -0
- package/dist/discontinuous/snyder-mesh.d.ts +11 -0
- package/dist/discontinuous/snyder-mesh.d.ts.map +1 -0
- package/dist/discontinuous/snyder-mesh.js +88 -0
- package/dist/discontinuous/snyder-mesh.js.map +1 -0
- package/dist/discontinuous/snyder.d.ts +16 -0
- package/dist/discontinuous/snyder.d.ts.map +1 -0
- package/dist/discontinuous/snyder.js +153 -0
- package/dist/discontinuous/snyder.js.map +1 -0
- package/dist/discontinuous/spherical-clip/cartesian.d.ts +8 -0
- package/dist/discontinuous/spherical-clip/cartesian.d.ts.map +1 -0
- package/dist/discontinuous/spherical-clip/cartesian.js +34 -0
- package/dist/discontinuous/spherical-clip/cartesian.js.map +1 -0
- package/dist/discontinuous/spherical-clip/circle.d.ts +2 -0
- package/dist/discontinuous/spherical-clip/circle.d.ts.map +1 -0
- package/dist/discontinuous/spherical-clip/circle.js +34 -0
- package/dist/discontinuous/spherical-clip/circle.js.map +1 -0
- package/dist/discontinuous/spherical-clip/clip-buffer.d.ts +9 -0
- package/dist/discontinuous/spherical-clip/clip-buffer.d.ts.map +1 -0
- package/dist/discontinuous/spherical-clip/clip-buffer.js +28 -0
- package/dist/discontinuous/spherical-clip/clip-buffer.js.map +1 -0
- package/dist/discontinuous/spherical-clip/clip-circle.d.ts +9 -0
- package/dist/discontinuous/spherical-clip/clip-circle.d.ts.map +1 -0
- package/dist/discontinuous/spherical-clip/clip-circle.js +160 -0
- package/dist/discontinuous/spherical-clip/clip-circle.js.map +1 -0
- package/dist/discontinuous/spherical-clip/clip-index.d.ts +9 -0
- package/dist/discontinuous/spherical-clip/clip-index.d.ts.map +1 -0
- package/dist/discontinuous/spherical-clip/clip-index.js +117 -0
- package/dist/discontinuous/spherical-clip/clip-index.js.map +1 -0
- package/dist/discontinuous/spherical-clip/clip-rejoin.d.ts +2 -0
- package/dist/discontinuous/spherical-clip/clip-rejoin.d.ts.map +1 -0
- package/dist/discontinuous/spherical-clip/clip-rejoin.js +99 -0
- package/dist/discontinuous/spherical-clip/clip-rejoin.js.map +1 -0
- package/dist/discontinuous/spherical-clip/helpers.d.ts +8 -0
- package/dist/discontinuous/spherical-clip/helpers.d.ts.map +1 -0
- package/dist/discontinuous/spherical-clip/helpers.js +21 -0
- package/dist/discontinuous/spherical-clip/helpers.js.map +1 -0
- package/dist/discontinuous/spherical-clip/math.d.ts +26 -0
- package/dist/discontinuous/spherical-clip/math.d.ts.map +1 -0
- package/dist/discontinuous/spherical-clip/math.js +39 -0
- package/dist/discontinuous/spherical-clip/math.js.map +1 -0
- package/dist/discontinuous/spherical-clip/noop.d.ts +2 -0
- package/dist/discontinuous/spherical-clip/noop.d.ts.map +1 -0
- package/dist/discontinuous/spherical-clip/noop.js +6 -0
- package/dist/discontinuous/spherical-clip/noop.js.map +1 -0
- package/dist/discontinuous/spherical-clip/pointEqual.d.ts +2 -0
- package/dist/discontinuous/spherical-clip/pointEqual.d.ts.map +1 -0
- package/dist/discontinuous/spherical-clip/pointEqual.js +9 -0
- package/dist/discontinuous/spherical-clip/pointEqual.js.map +1 -0
- package/dist/discontinuous/spherical-clip/polygonContains.d.ts +2 -0
- package/dist/discontinuous/spherical-clip/polygonContains.d.ts.map +1 -0
- package/dist/discontinuous/spherical-clip/polygonContains.js +52 -0
- package/dist/discontinuous/spherical-clip/polygonContains.js.map +1 -0
- package/dist/discontinuous/world-composite-kernels.d.ts +11 -0
- package/dist/discontinuous/world-composite-kernels.d.ts.map +1 -0
- package/dist/discontinuous/world-composite-kernels.js +30 -0
- package/dist/discontinuous/world-composite-kernels.js.map +1 -0
- package/dist/discontinuous/world-kernels/airy.d.ts +5 -0
- package/dist/discontinuous/world-kernels/airy.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/airy.js +28 -0
- package/dist/discontinuous/world-kernels/airy.js.map +1 -0
- package/dist/discontinuous/world-kernels/aitoff.d.ts +5 -0
- package/dist/discontinuous/world-kernels/aitoff.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/aitoff.js +26 -0
- package/dist/discontinuous/world-kernels/aitoff.js.map +1 -0
- package/dist/discontinuous/world-kernels/armadillo.d.ts +5 -0
- package/dist/discontinuous/world-kernels/armadillo.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/armadillo.js +28 -0
- package/dist/discontinuous/world-kernels/armadillo.js.map +1 -0
- package/dist/discontinuous/world-kernels/august.d.ts +5 -0
- package/dist/discontinuous/world-kernels/august.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/august.js +21 -0
- package/dist/discontinuous/world-kernels/august.js.map +1 -0
- package/dist/discontinuous/world-kernels/baker.d.ts +5 -0
- package/dist/discontinuous/world-kernels/baker.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/baker.js +29 -0
- package/dist/discontinuous/world-kernels/baker.js.map +1 -0
- package/dist/discontinuous/world-kernels/bertin.d.ts +5 -0
- package/dist/discontinuous/world-kernels/bertin.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/bertin.js +32 -0
- package/dist/discontinuous/world-kernels/bertin.js.map +1 -0
- package/dist/discontinuous/world-kernels/boggs.d.ts +5 -0
- package/dist/discontinuous/world-kernels/boggs.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/boggs.js +24 -0
- package/dist/discontinuous/world-kernels/boggs.js.map +1 -0
- package/dist/discontinuous/world-kernels/bonne.d.ts +3 -0
- package/dist/discontinuous/world-kernels/bonne.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/bonne.js +22 -0
- package/dist/discontinuous/world-kernels/bonne.js.map +1 -0
- package/dist/discontinuous/world-kernels/bottomley.d.ts +5 -0
- package/dist/discontinuous/world-kernels/bottomley.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/bottomley.js +18 -0
- package/dist/discontinuous/world-kernels/bottomley.js.map +1 -0
- package/dist/discontinuous/world-kernels/bromley.d.ts +5 -0
- package/dist/discontinuous/world-kernels/bromley.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/bromley.js +9 -0
- package/dist/discontinuous/world-kernels/bromley.js.map +1 -0
- package/dist/discontinuous/world-kernels/chamberlin.d.ts +2 -0
- package/dist/discontinuous/world-kernels/chamberlin.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/chamberlin.js +81 -0
- package/dist/discontinuous/world-kernels/chamberlin.js.map +1 -0
- package/dist/discontinuous/world-kernels/collignon.d.ts +5 -0
- package/dist/discontinuous/world-kernels/collignon.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/collignon.js +15 -0
- package/dist/discontinuous/world-kernels/collignon.js.map +1 -0
- package/dist/discontinuous/world-kernels/craig.d.ts +5 -0
- package/dist/discontinuous/world-kernels/craig.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/craig.js +30 -0
- package/dist/discontinuous/world-kernels/craig.js.map +1 -0
- package/dist/discontinuous/world-kernels/craster.d.ts +5 -0
- package/dist/discontinuous/world-kernels/craster.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/craster.js +15 -0
- package/dist/discontinuous/world-kernels/craster.js.map +1 -0
- package/dist/discontinuous/world-kernels/cylindricalEqualArea.d.ts +5 -0
- package/dist/discontinuous/world-kernels/cylindricalEqualArea.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/cylindricalEqualArea.js +17 -0
- package/dist/discontinuous/world-kernels/cylindricalEqualArea.js.map +1 -0
- package/dist/discontinuous/world-kernels/cylindricalStereographic.d.ts +5 -0
- package/dist/discontinuous/world-kernels/cylindricalStereographic.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/cylindricalStereographic.js +17 -0
- package/dist/discontinuous/world-kernels/cylindricalStereographic.js.map +1 -0
- package/dist/discontinuous/world-kernels/d3-geo-raw.d.ts +9 -0
- package/dist/discontinuous/world-kernels/d3-geo-raw.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/d3-geo-raw.js +21 -0
- package/dist/discontinuous/world-kernels/d3-geo-raw.js.map +1 -0
- package/dist/discontinuous/world-kernels/eckert1.d.ts +5 -0
- package/dist/discontinuous/world-kernels/eckert1.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/eckert1.js +15 -0
- package/dist/discontinuous/world-kernels/eckert1.js.map +1 -0
- package/dist/discontinuous/world-kernels/eckert2.d.ts +5 -0
- package/dist/discontinuous/world-kernels/eckert2.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/eckert2.js +15 -0
- package/dist/discontinuous/world-kernels/eckert2.js.map +1 -0
- package/dist/discontinuous/world-kernels/eckert3.d.ts +5 -0
- package/dist/discontinuous/world-kernels/eckert3.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/eckert3.js +15 -0
- package/dist/discontinuous/world-kernels/eckert3.js.map +1 -0
- package/dist/discontinuous/world-kernels/eckert4.d.ts +5 -0
- package/dist/discontinuous/world-kernels/eckert4.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/eckert4.js +20 -0
- package/dist/discontinuous/world-kernels/eckert4.js.map +1 -0
- package/dist/discontinuous/world-kernels/eckert5.d.ts +5 -0
- package/dist/discontinuous/world-kernels/eckert5.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/eckert5.js +14 -0
- package/dist/discontinuous/world-kernels/eckert5.js.map +1 -0
- package/dist/discontinuous/world-kernels/eckert6.d.ts +5 -0
- package/dist/discontinuous/world-kernels/eckert6.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/eckert6.js +19 -0
- package/dist/discontinuous/world-kernels/eckert6.js.map +1 -0
- package/dist/discontinuous/world-kernels/eisenlohr.d.ts +5 -0
- package/dist/discontinuous/world-kernels/eisenlohr.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/eisenlohr.js +41 -0
- package/dist/discontinuous/world-kernels/eisenlohr.js.map +1 -0
- package/dist/discontinuous/world-kernels/fahey.d.ts +5 -0
- package/dist/discontinuous/world-kernels/fahey.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/fahey.js +16 -0
- package/dist/discontinuous/world-kernels/fahey.js.map +1 -0
- package/dist/discontinuous/world-kernels/foucaut.d.ts +5 -0
- package/dist/discontinuous/world-kernels/foucaut.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/foucaut.js +15 -0
- package/dist/discontinuous/world-kernels/foucaut.js.map +1 -0
- package/dist/discontinuous/world-kernels/foucautSinusoidal.d.ts +5 -0
- package/dist/discontinuous/world-kernels/foucautSinusoidal.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/foucautSinusoidal.js +27 -0
- package/dist/discontinuous/world-kernels/foucautSinusoidal.js.map +1 -0
- package/dist/discontinuous/world-kernels/ginzburg4.d.ts +5 -0
- package/dist/discontinuous/world-kernels/ginzburg4.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/ginzburg4.js +8 -0
- package/dist/discontinuous/world-kernels/ginzburg4.js.map +1 -0
- package/dist/discontinuous/world-kernels/ginzburg5.d.ts +5 -0
- package/dist/discontinuous/world-kernels/ginzburg5.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/ginzburg5.js +8 -0
- package/dist/discontinuous/world-kernels/ginzburg5.js.map +1 -0
- package/dist/discontinuous/world-kernels/ginzburg6.d.ts +5 -0
- package/dist/discontinuous/world-kernels/ginzburg6.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/ginzburg6.js +9 -0
- package/dist/discontinuous/world-kernels/ginzburg6.js.map +1 -0
- package/dist/discontinuous/world-kernels/ginzburg8.d.ts +5 -0
- package/dist/discontinuous/world-kernels/ginzburg8.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/ginzburg8.js +28 -0
- package/dist/discontinuous/world-kernels/ginzburg8.js.map +1 -0
- package/dist/discontinuous/world-kernels/ginzburg9.d.ts +5 -0
- package/dist/discontinuous/world-kernels/ginzburg9.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/ginzburg9.js +8 -0
- package/dist/discontinuous/world-kernels/ginzburg9.js.map +1 -0
- package/dist/discontinuous/world-kernels/ginzburgPolyconic.d.ts +5 -0
- package/dist/discontinuous/world-kernels/ginzburgPolyconic.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/ginzburgPolyconic.js +29 -0
- package/dist/discontinuous/world-kernels/ginzburgPolyconic.js.map +1 -0
- package/dist/discontinuous/world-kernels/hammer.d.ts +3 -0
- package/dist/discontinuous/world-kernels/hammer.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/hammer.js +34 -0
- package/dist/discontinuous/world-kernels/hammer.js.map +1 -0
- package/dist/discontinuous/world-kernels/hammerRetroazimuthal.d.ts +5 -0
- package/dist/discontinuous/world-kernels/hammerRetroazimuthal.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/hammerRetroazimuthal.js +37 -0
- package/dist/discontinuous/world-kernels/hammerRetroazimuthal.js.map +1 -0
- package/dist/discontinuous/world-kernels/hill.d.ts +5 -0
- package/dist/discontinuous/world-kernels/hill.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/hill.js +36 -0
- package/dist/discontinuous/world-kernels/hill.js.map +1 -0
- package/dist/discontinuous/world-kernels/homolosine.d.ts +5 -0
- package/dist/discontinuous/world-kernels/homolosine.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/homolosine.js +22 -0
- package/dist/discontinuous/world-kernels/homolosine.js.map +1 -0
- package/dist/discontinuous/world-kernels/hufnagel.d.ts +5 -0
- package/dist/discontinuous/world-kernels/hufnagel.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/hufnagel.js +53 -0
- package/dist/discontinuous/world-kernels/hufnagel.js.map +1 -0
- package/dist/discontinuous/world-kernels/hyperelliptical.d.ts +5 -0
- package/dist/discontinuous/world-kernels/hyperelliptical.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/hyperelliptical.js +47 -0
- package/dist/discontinuous/world-kernels/hyperelliptical.js.map +1 -0
- package/dist/discontinuous/world-kernels/integrate.d.ts +2 -0
- package/dist/discontinuous/world-kernels/integrate.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/integrate.js +82 -0
- package/dist/discontinuous/world-kernels/integrate.js.map +1 -0
- package/dist/discontinuous/world-kernels/kavrayskiy7.d.ts +5 -0
- package/dist/discontinuous/world-kernels/kavrayskiy7.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/kavrayskiy7.js +13 -0
- package/dist/discontinuous/world-kernels/kavrayskiy7.js.map +1 -0
- package/dist/discontinuous/world-kernels/lagrange.d.ts +5 -0
- package/dist/discontinuous/world-kernels/lagrange.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/lagrange.js +27 -0
- package/dist/discontinuous/world-kernels/lagrange.js.map +1 -0
- package/dist/discontinuous/world-kernels/larrivee.d.ts +5 -0
- package/dist/discontinuous/world-kernels/larrivee.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/larrivee.js +26 -0
- package/dist/discontinuous/world-kernels/larrivee.js.map +1 -0
- package/dist/discontinuous/world-kernels/laskowski.d.ts +5 -0
- package/dist/discontinuous/world-kernels/laskowski.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/laskowski.js +31 -0
- package/dist/discontinuous/world-kernels/laskowski.js.map +1 -0
- package/dist/discontinuous/world-kernels/littrow.d.ts +5 -0
- package/dist/discontinuous/world-kernels/littrow.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/littrow.js +13 -0
- package/dist/discontinuous/world-kernels/littrow.js.map +1 -0
- package/dist/discontinuous/world-kernels/loximuthal.d.ts +5 -0
- package/dist/discontinuous/world-kernels/loximuthal.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/loximuthal.js +30 -0
- package/dist/discontinuous/world-kernels/loximuthal.js.map +1 -0
- package/dist/discontinuous/world-kernels/math.d.ts +36 -0
- package/dist/discontinuous/world-kernels/math.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/math.js +63 -0
- package/dist/discontinuous/world-kernels/math.js.map +1 -0
- package/dist/discontinuous/world-kernels/miller.d.ts +5 -0
- package/dist/discontinuous/world-kernels/miller.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/miller.js +13 -0
- package/dist/discontinuous/world-kernels/miller.js.map +1 -0
- package/dist/discontinuous/world-kernels/modifiedStereographic.d.ts +18 -0
- package/dist/discontinuous/world-kernels/modifiedStereographic.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/modifiedStereographic.js +79 -0
- package/dist/discontinuous/world-kernels/modifiedStereographic.js.map +1 -0
- package/dist/discontinuous/world-kernels/mollweide.d.ts +10 -0
- package/dist/discontinuous/world-kernels/mollweide.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/mollweide.js +24 -0
- package/dist/discontinuous/world-kernels/mollweide.js.map +1 -0
- package/dist/discontinuous/world-kernels/mtFlatPolarParabolic.d.ts +5 -0
- package/dist/discontinuous/world-kernels/mtFlatPolarParabolic.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/mtFlatPolarParabolic.js +19 -0
- package/dist/discontinuous/world-kernels/mtFlatPolarParabolic.js.map +1 -0
- package/dist/discontinuous/world-kernels/mtFlatPolarQuartic.d.ts +5 -0
- package/dist/discontinuous/world-kernels/mtFlatPolarQuartic.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/mtFlatPolarQuartic.js +26 -0
- package/dist/discontinuous/world-kernels/mtFlatPolarQuartic.js.map +1 -0
- package/dist/discontinuous/world-kernels/mtFlatPolarSinusoidal.d.ts +5 -0
- package/dist/discontinuous/world-kernels/mtFlatPolarSinusoidal.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/mtFlatPolarSinusoidal.js +22 -0
- package/dist/discontinuous/world-kernels/mtFlatPolarSinusoidal.js.map +1 -0
- package/dist/discontinuous/world-kernels/naturalEarth2.d.ts +5 -0
- package/dist/discontinuous/world-kernels/naturalEarth2.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/naturalEarth2.js +37 -0
- package/dist/discontinuous/world-kernels/naturalEarth2.js.map +1 -0
- package/dist/discontinuous/world-kernels/nellHammer.d.ts +5 -0
- package/dist/discontinuous/world-kernels/nellHammer.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/nellHammer.js +18 -0
- package/dist/discontinuous/world-kernels/nellHammer.js.map +1 -0
- package/dist/discontinuous/world-kernels/newton.d.ts +3 -0
- package/dist/discontinuous/world-kernels/newton.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/newton.js +65 -0
- package/dist/discontinuous/world-kernels/newton.js.map +1 -0
- package/dist/discontinuous/world-kernels/nicolosi.d.ts +5 -0
- package/dist/discontinuous/world-kernels/nicolosi.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/nicolosi.js +38 -0
- package/dist/discontinuous/world-kernels/nicolosi.js.map +1 -0
- package/dist/discontinuous/world-kernels/patterson.d.ts +5 -0
- package/dist/discontinuous/world-kernels/patterson.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/patterson.js +32 -0
- package/dist/discontinuous/world-kernels/patterson.js.map +1 -0
- package/dist/discontinuous/world-kernels/polyconic.d.ts +5 -0
- package/dist/discontinuous/world-kernels/polyconic.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/polyconic.js +30 -0
- package/dist/discontinuous/world-kernels/polyconic.js.map +1 -0
- package/dist/discontinuous/world-kernels/rectangularPolyconic.d.ts +5 -0
- package/dist/discontinuous/world-kernels/rectangularPolyconic.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/rectangularPolyconic.js +31 -0
- package/dist/discontinuous/world-kernels/rectangularPolyconic.js.map +1 -0
- package/dist/discontinuous/world-kernels/robinson.d.ts +5 -0
- package/dist/discontinuous/world-kernels/robinson.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/robinson.js +63 -0
- package/dist/discontinuous/world-kernels/robinson.js.map +1 -0
- package/dist/discontinuous/world-kernels/satellite.d.ts +5 -0
- package/dist/discontinuous/world-kernels/satellite.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/satellite.js +32 -0
- package/dist/discontinuous/world-kernels/satellite.js.map +1 -0
- package/dist/discontinuous/world-kernels/sinuMollweide.d.ts +7 -0
- package/dist/discontinuous/world-kernels/sinuMollweide.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/sinuMollweide.js +20 -0
- package/dist/discontinuous/world-kernels/sinuMollweide.js.map +1 -0
- package/dist/discontinuous/world-kernels/sinusoidal.d.ts +5 -0
- package/dist/discontinuous/world-kernels/sinusoidal.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/sinusoidal.js +13 -0
- package/dist/discontinuous/world-kernels/sinusoidal.js.map +1 -0
- package/dist/discontinuous/world-kernels/times.d.ts +5 -0
- package/dist/discontinuous/world-kernels/times.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/times.js +15 -0
- package/dist/discontinuous/world-kernels/times.js.map +1 -0
- package/dist/discontinuous/world-kernels/twoPointEquidistant.d.ts +3 -0
- package/dist/discontinuous/world-kernels/twoPointEquidistant.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/twoPointEquidistant.js +28 -0
- package/dist/discontinuous/world-kernels/twoPointEquidistant.js.map +1 -0
- package/dist/discontinuous/world-kernels/vanDerGrinten.d.ts +5 -0
- package/dist/discontinuous/world-kernels/vanDerGrinten.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/vanDerGrinten.js +30 -0
- package/dist/discontinuous/world-kernels/vanDerGrinten.js.map +1 -0
- package/dist/discontinuous/world-kernels/vanDerGrinten2.d.ts +5 -0
- package/dist/discontinuous/world-kernels/vanDerGrinten2.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/vanDerGrinten2.js +25 -0
- package/dist/discontinuous/world-kernels/vanDerGrinten2.js.map +1 -0
- package/dist/discontinuous/world-kernels/vanDerGrinten3.d.ts +5 -0
- package/dist/discontinuous/world-kernels/vanDerGrinten3.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/vanDerGrinten3.js +22 -0
- package/dist/discontinuous/world-kernels/vanDerGrinten3.js.map +1 -0
- package/dist/discontinuous/world-kernels/vanDerGrinten4.d.ts +5 -0
- package/dist/discontinuous/world-kernels/vanDerGrinten4.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/vanDerGrinten4.js +38 -0
- package/dist/discontinuous/world-kernels/vanDerGrinten4.js.map +1 -0
- package/dist/discontinuous/world-kernels/wagner.d.ts +5 -0
- package/dist/discontinuous/world-kernels/wagner.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/wagner.js +44 -0
- package/dist/discontinuous/world-kernels/wagner.js.map +1 -0
- package/dist/discontinuous/world-kernels/wagner4.d.ts +5 -0
- package/dist/discontinuous/world-kernels/wagner4.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/wagner4.js +10 -0
- package/dist/discontinuous/world-kernels/wagner4.js.map +1 -0
- package/dist/discontinuous/world-kernels/wagner6.d.ts +5 -0
- package/dist/discontinuous/world-kernels/wagner6.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/wagner6.js +13 -0
- package/dist/discontinuous/world-kernels/wagner6.js.map +1 -0
- package/dist/discontinuous/world-kernels/wiechel.d.ts +5 -0
- package/dist/discontinuous/world-kernels/wiechel.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/wiechel.js +15 -0
- package/dist/discontinuous/world-kernels/wiechel.js.map +1 -0
- package/dist/discontinuous/world-kernels/winkel3.d.ts +5 -0
- package/dist/discontinuous/world-kernels/winkel3.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels/winkel3.js +20 -0
- package/dist/discontinuous/world-kernels/winkel3.js.map +1 -0
- package/dist/discontinuous/world-kernels.d.ts +150 -0
- package/dist/discontinuous/world-kernels.d.ts.map +1 -0
- package/dist/discontinuous/world-kernels.js +215 -0
- package/dist/discontinuous/world-kernels.js.map +1 -0
- package/dist/discontinuous/world-map.d.ts +25 -0
- package/dist/discontinuous/world-map.d.ts.map +1 -0
- package/dist/discontinuous/world-map.js +187 -0
- package/dist/discontinuous/world-map.js.map +1 -0
- package/dist/discontinuous.cjs +7037 -0
- package/dist/discontinuous.cjs.map +6 -0
- package/dist/discontinuous.d.ts +50 -0
- package/dist/discontinuous.d.ts.map +1 -0
- package/dist/discontinuous.js +35 -0
- package/dist/discontinuous.js.map +1 -0
- package/dist/elastic.cjs +52991 -0
- package/dist/elastic.cjs.map +6 -0
- package/dist/elastic.d.ts +5 -0
- package/dist/elastic.d.ts.map +1 -0
- package/dist/elastic.js +8 -0
- package/dist/elastic.js.map +1 -0
- package/dist/ellipsoid-geodesic.d.ts +62 -0
- package/dist/ellipsoid-geodesic.d.ts.map +1 -0
- package/dist/ellipsoid-geodesic.js +69 -0
- package/dist/ellipsoid-geodesic.js.map +1 -0
- package/dist/ellipsoid-helpers/ellipsoid-transform.d.ts.map +1 -1
- package/dist/ellipsoid-helpers/ellipsoid-transform.js +15 -5
- package/dist/ellipsoid-helpers/ellipsoid-transform.js.map +1 -1
- package/dist/ellipsoid-helpers/exact-nearest-surface.d.ts +16 -0
- package/dist/ellipsoid-helpers/exact-nearest-surface.d.ts.map +1 -0
- package/dist/ellipsoid-helpers/exact-nearest-surface.js +108 -0
- package/dist/ellipsoid-helpers/exact-nearest-surface.js.map +1 -0
- package/dist/ellipsoid-helpers/intersection-bounds.d.ts +18 -0
- package/dist/ellipsoid-helpers/intersection-bounds.d.ts.map +1 -0
- package/dist/ellipsoid-helpers/intersection-bounds.js +60 -0
- package/dist/ellipsoid-helpers/intersection-bounds.js.map +1 -0
- package/dist/ellipsoid-helpers/nearest-surface.d.ts +12 -0
- package/dist/ellipsoid-helpers/nearest-surface.d.ts.map +1 -0
- package/dist/ellipsoid-helpers/nearest-surface.js +127 -0
- package/dist/ellipsoid-helpers/nearest-surface.js.map +1 -0
- package/dist/ellipsoid-helpers/rhumb-pole-distance.d.ts +3 -0
- package/dist/ellipsoid-helpers/rhumb-pole-distance.d.ts.map +1 -0
- package/dist/ellipsoid-helpers/rhumb-pole-distance.js +63 -0
- package/dist/ellipsoid-helpers/rhumb-pole-distance.js.map +1 -0
- package/dist/ellipsoid-helpers/scale-to-geodetic-surface.d.ts.map +1 -1
- package/dist/ellipsoid-helpers/scale-to-geodetic-surface.js +14 -78
- package/dist/ellipsoid-helpers/scale-to-geodetic-surface.js.map +1 -1
- package/dist/ellipsoid-helpers/surface-polygon.d.ts +65 -0
- package/dist/ellipsoid-helpers/surface-polygon.d.ts.map +1 -0
- package/dist/ellipsoid-helpers/surface-polygon.js +159 -0
- package/dist/ellipsoid-helpers/surface-polygon.js.map +1 -0
- package/dist/ellipsoid-helpers/tangent-plane-numerics.d.ts +7 -0
- package/dist/ellipsoid-helpers/tangent-plane-numerics.d.ts.map +1 -0
- package/dist/ellipsoid-helpers/tangent-plane-numerics.js +88 -0
- package/dist/ellipsoid-helpers/tangent-plane-numerics.js.map +1 -0
- package/dist/ellipsoid-metrics.d.ts +31 -0
- package/dist/ellipsoid-metrics.d.ts.map +1 -0
- package/dist/ellipsoid-metrics.js +186 -0
- package/dist/ellipsoid-metrics.js.map +1 -0
- package/dist/ellipsoid-rhumb.d.ts +52 -0
- package/dist/ellipsoid-rhumb.d.ts.map +1 -0
- package/dist/ellipsoid-rhumb.js +321 -0
- package/dist/ellipsoid-rhumb.js.map +1 -0
- package/dist/ellipsoid-tangent-plane.d.ts +29 -7
- package/dist/ellipsoid-tangent-plane.d.ts.map +1 -1
- package/dist/ellipsoid-tangent-plane.js +177 -29
- package/dist/ellipsoid-tangent-plane.js.map +1 -1
- package/dist/ellipsoid-transforms.d.ts +12 -0
- package/dist/ellipsoid-transforms.d.ts.map +1 -0
- package/dist/ellipsoid-transforms.js +15 -0
- package/dist/ellipsoid-transforms.js.map +1 -0
- package/dist/ellipsoid.d.ts +2 -12
- package/dist/ellipsoid.d.ts.map +1 -1
- package/dist/ellipsoid.js +167 -73
- package/dist/ellipsoid.js.map +1 -1
- package/dist/entries/ellipsoid.cjs +3640 -302
- package/dist/entries/ellipsoid.cjs.map +3 -3
- package/dist/entries/ellipsoid.d.ts +21 -0
- package/dist/entries/ellipsoid.d.ts.map +1 -1
- package/dist/entries/ellipsoid.js +10 -0
- package/dist/entries/ellipsoid.js.map +1 -1
- package/dist/expressions.cjs +442 -244
- package/dist/expressions.cjs.map +3 -3
- package/dist/expressions.d.ts.map +1 -1
- package/dist/expressions.js +2 -1
- package/dist/expressions.js.map +1 -1
- package/dist/geoarrow/builder-entry.cjs.map +1 -1
- package/dist/geoarrow/codecs.d.ts.map +1 -1
- package/dist/geoarrow/codecs.js +3 -8
- package/dist/geoarrow/codecs.js.map +1 -1
- package/dist/geoarrow/index.cjs +34 -9
- package/dist/geoarrow/index.cjs.map +1 -1
- package/dist/geoarrow/index.d.ts +1 -1
- package/dist/geoarrow/index.d.ts.map +1 -1
- package/dist/geoarrow/index.js +1 -1
- package/dist/geoarrow/index.js.map +1 -1
- package/dist/geoarrow/tessellation-entry.cjs.map +1 -1
- package/dist/geoarrow/types.d.ts +8 -0
- package/dist/geoarrow/types.d.ts.map +1 -1
- package/dist/geoarrow/types.js +30 -0
- package/dist/geoarrow/types.js.map +1 -1
- package/dist/geoarrow/wkb-entry.cjs +14 -9
- package/dist/geoarrow/wkb-entry.cjs.map +1 -1
- package/dist/geodesic-exact/area.d.ts +5 -0
- package/dist/geodesic-exact/area.d.ts.map +1 -0
- package/dist/geodesic-exact/area.js +56 -0
- package/dist/geodesic-exact/area.js.map +1 -0
- package/dist/geodesic-exact/inverse-engine.d.ts +57 -0
- package/dist/geodesic-exact/inverse-engine.d.ts.map +1 -0
- package/dist/geodesic-exact/inverse-engine.js +56 -0
- package/dist/geodesic-exact/inverse-engine.js.map +1 -0
- package/dist/geodesic-exact/polygon.d.ts +12 -0
- package/dist/geodesic-exact/polygon.d.ts.map +1 -0
- package/dist/geodesic-exact/polygon.js +27 -0
- package/dist/geodesic-exact/polygon.js.map +1 -0
- package/dist/geodesic-exact/quadrature.d.ts +9 -0
- package/dist/geodesic-exact/quadrature.d.ts.map +1 -0
- package/dist/geodesic-exact/quadrature.js +62 -0
- package/dist/geodesic-exact/quadrature.js.map +1 -0
- package/dist/geodesic-exact.cjs +1871 -0
- package/dist/geodesic-exact.cjs.map +6 -0
- package/dist/geodesic-exact.d.ts +23 -0
- package/dist/geodesic-exact.d.ts.map +1 -0
- package/dist/geodesic-exact.js +210 -0
- package/dist/geodesic-exact.js.map +1 -0
- package/dist/geodesic-intersections.d.ts +83 -0
- package/dist/geodesic-intersections.d.ts.map +1 -0
- package/dist/geodesic-intersections.js +451 -0
- package/dist/geodesic-intersections.js.map +1 -0
- package/dist/geodesic-path.d.ts +28 -0
- package/dist/geodesic-path.d.ts.map +1 -0
- package/dist/geodesic-path.js +102 -0
- package/dist/geodesic-path.js.map +1 -0
- package/dist/geodesic-polygon.d.ts +11 -0
- package/dist/geodesic-polygon.d.ts.map +1 -0
- package/dist/geodesic-polygon.js +16 -0
- package/dist/geodesic-polygon.js.map +1 -0
- package/dist/geographic-seams/edge.d.ts +46 -0
- package/dist/geographic-seams/edge.d.ts.map +1 -0
- package/dist/geographic-seams/edge.js +362 -0
- package/dist/geographic-seams/edge.js.map +1 -0
- package/dist/geographic-seams/polygon.d.ts +8 -0
- package/dist/geographic-seams/polygon.d.ts.map +1 -0
- package/dist/geographic-seams/polygon.js +381 -0
- package/dist/geographic-seams/polygon.js.map +1 -0
- package/dist/geographic-seams/types.d.ts +59 -0
- package/dist/geographic-seams/types.d.ts.map +1 -0
- package/dist/geographic-seams/types.js +8 -0
- package/dist/geographic-seams/types.js.map +1 -0
- package/dist/geographic-seams.d.ts +12 -0
- package/dist/geographic-seams.d.ts.map +1 -0
- package/dist/geographic-seams.js +54 -0
- package/dist/geographic-seams.js.map +1 -0
- package/dist/globe.cjs +3520 -367
- package/dist/globe.cjs.map +3 -3
- package/dist/globe.d.ts +6 -0
- package/dist/globe.d.ts.map +1 -1
- package/dist/globe.js +3 -0
- package/dist/globe.js.map +1 -1
- package/dist/index.cjs +4495 -378
- package/dist/index.cjs.map +3 -3
- package/dist/lng-lat-rectangle.js +1 -1
- package/dist/lng-lat-rectangle.js.map +1 -1
- package/dist/local-reference-frame.d.ts +57 -0
- package/dist/local-reference-frame.d.ts.map +1 -0
- package/dist/local-reference-frame.js +247 -0
- package/dist/local-reference-frame.js.map +1 -0
- package/dist/make-obb-from-region.js +1 -1
- package/dist/make-obb-from-region.js.map +1 -1
- package/dist/projection/experimental/authalic-latitude.d.ts +7 -0
- package/dist/projection/experimental/authalic-latitude.d.ts.map +1 -0
- package/dist/projection/experimental/authalic-latitude.js +51 -0
- package/dist/projection/experimental/authalic-latitude.js.map +1 -0
- package/dist/projection/experimental/common/adjust_lat.js +2 -2
- package/dist/projection/experimental/common/adjust_lat.js.map +1 -1
- package/dist/projection/experimental/common/adjust_lon.js +1 -1
- package/dist/projection/experimental/common/adjust_lon.js.map +1 -1
- package/dist/projection/experimental/common/asinhy.js +1 -1
- package/dist/projection/experimental/common/asinhy.js.map +1 -1
- package/dist/projection/experimental/common/asinz.js +1 -1
- package/dist/projection/experimental/common/asinz.js.map +1 -1
- package/dist/projection/experimental/common/authlat.js +1 -1
- package/dist/projection/experimental/common/authlat.js.map +1 -1
- package/dist/projection/experimental/common/authset.js +1 -1
- package/dist/projection/experimental/common/authset.js.map +1 -1
- package/dist/projection/experimental/common/clens.js +1 -1
- package/dist/projection/experimental/common/clens.js.map +1 -1
- package/dist/projection/experimental/common/clens_cmplx.js +1 -1
- package/dist/projection/experimental/common/clens_cmplx.js.map +1 -1
- package/dist/projection/experimental/common/constants.js +1 -1
- package/dist/projection/experimental/common/constants.js.map +1 -1
- package/dist/projection/experimental/common/cosh.js +1 -1
- package/dist/projection/experimental/common/cosh.js.map +1 -1
- package/dist/projection/experimental/common/e0fn.js +1 -1
- package/dist/projection/experimental/common/e0fn.js.map +1 -1
- package/dist/projection/experimental/common/e1fn.js +1 -1
- package/dist/projection/experimental/common/e1fn.js.map +1 -1
- package/dist/projection/experimental/common/e2fn.js +1 -1
- package/dist/projection/experimental/common/e2fn.js.map +1 -1
- package/dist/projection/experimental/common/e3fn.js +1 -1
- package/dist/projection/experimental/common/e3fn.js.map +1 -1
- package/dist/projection/experimental/common/fL.js +1 -1
- package/dist/projection/experimental/common/fL.js.map +1 -1
- package/dist/projection/experimental/common/gN.js +1 -1
- package/dist/projection/experimental/common/gN.js.map +1 -1
- package/dist/projection/experimental/common/gatg.js +1 -1
- package/dist/projection/experimental/common/gatg.js.map +1 -1
- package/dist/projection/experimental/common/hypot.js +1 -1
- package/dist/projection/experimental/common/hypot.js.map +1 -1
- package/dist/projection/experimental/common/imlfn.js +1 -1
- package/dist/projection/experimental/common/imlfn.js.map +1 -1
- package/dist/projection/experimental/common/invlatiso.js +1 -1
- package/dist/projection/experimental/common/invlatiso.js.map +1 -1
- package/dist/projection/experimental/common/iqsfnz.js +1 -1
- package/dist/projection/experimental/common/iqsfnz.js.map +1 -1
- package/dist/projection/experimental/common/latiso.js +1 -1
- package/dist/projection/experimental/common/latiso.js.map +1 -1
- package/dist/projection/experimental/common/log1py.js +1 -1
- package/dist/projection/experimental/common/log1py.js.map +1 -1
- package/dist/projection/experimental/common/mlfn.js +1 -1
- package/dist/projection/experimental/common/mlfn.js.map +1 -1
- package/dist/projection/experimental/common/msfnz.js +1 -1
- package/dist/projection/experimental/common/msfnz.js.map +1 -1
- package/dist/projection/experimental/common/phi2z.js +1 -1
- package/dist/projection/experimental/common/phi2z.js.map +1 -1
- package/dist/projection/experimental/common/pj_enfn.js +1 -1
- package/dist/projection/experimental/common/pj_enfn.js.map +1 -1
- package/dist/projection/experimental/common/pj_inv_mlfn.js +1 -1
- package/dist/projection/experimental/common/pj_inv_mlfn.js.map +1 -1
- package/dist/projection/experimental/common/pj_mlfn.js +1 -1
- package/dist/projection/experimental/common/pj_mlfn.js.map +1 -1
- package/dist/projection/experimental/common/qsfnz.js +1 -1
- package/dist/projection/experimental/common/qsfnz.js.map +1 -1
- package/dist/projection/experimental/common/sign.js +1 -1
- package/dist/projection/experimental/common/sign.js.map +1 -1
- package/dist/projection/experimental/common/sinh.js +1 -1
- package/dist/projection/experimental/common/sinh.js.map +1 -1
- package/dist/projection/experimental/common/srat.js +1 -1
- package/dist/projection/experimental/common/srat.js.map +1 -1
- package/dist/projection/experimental/common/tsfnz.d.ts.map +1 -1
- package/dist/projection/experimental/common/tsfnz.js +6 -6
- package/dist/projection/experimental/common/tsfnz.js.map +1 -1
- package/dist/projection/experimental/common/vincenty.js +1 -1
- package/dist/projection/experimental/common/vincenty.js.map +1 -1
- package/dist/projection/experimental/crs/datum-table.js +1 -1
- package/dist/projection/experimental/crs/datum-table.js.map +1 -1
- package/dist/projection/experimental/crs/ellipsoid-table.js +1 -1
- package/dist/projection/experimental/crs/ellipsoid-table.js.map +1 -1
- package/dist/projection/experimental/crs/primemeridian-table.js +1 -1
- package/dist/projection/experimental/crs/primemeridian-table.js.map +1 -1
- package/dist/projection/experimental/crs/structured.js +1 -1
- package/dist/projection/experimental/crs/structured.js.map +1 -1
- package/dist/projection/experimental/crs/wkt.js +1 -1
- package/dist/projection/experimental/crs/wkt.js.map +1 -1
- package/dist/projection/experimental/datum.js +1 -1
- package/dist/projection/experimental/datum.js.map +1 -1
- package/dist/projection/experimental/ellipsoidal-gnomonic.d.ts +10 -0
- package/dist/projection/experimental/ellipsoidal-gnomonic.d.ts.map +1 -0
- package/dist/projection/experimental/ellipsoidal-gnomonic.js +59 -0
- package/dist/projection/experimental/ellipsoidal-gnomonic.js.map +1 -0
- package/dist/projection/experimental/entries/projections/aea.cjs +34 -27
- package/dist/projection/experimental/entries/projections/aea.cjs.map +2 -2
- package/dist/projection/experimental/entries/projections/aeqd.cjs +9 -9
- package/dist/projection/experimental/entries/projections/aeqd.cjs.map +3 -3
- package/dist/projection/experimental/entries/projections/bonne.cjs +1 -1
- package/dist/projection/experimental/entries/projections/bonne.cjs.map +1 -1
- package/dist/projection/experimental/entries/projections/cass.cjs +1 -1
- package/dist/projection/experimental/entries/projections/cass.cjs.map +1 -1
- package/dist/projection/experimental/entries/projections/eck6.cjs +5 -2
- package/dist/projection/experimental/entries/projections/eck6.cjs.map +1 -1
- package/dist/projection/experimental/entries/projections/eqdc.cjs +1 -1
- package/dist/projection/experimental/entries/projections/eqdc.cjs.map +1 -1
- package/dist/projection/experimental/entries/projections/eqearth.cjs +10 -1
- package/dist/projection/experimental/entries/projections/eqearth.cjs.map +1 -1
- package/dist/projection/experimental/entries/projections/equi.cjs +2 -0
- package/dist/projection/experimental/entries/projections/equi.cjs.map +1 -1
- package/dist/projection/experimental/entries/projections/gnom.cjs +1461 -4
- package/dist/projection/experimental/entries/projections/gnom.cjs.map +3 -3
- package/dist/projection/experimental/entries/projections/krovak.cjs +1 -1
- package/dist/projection/experimental/entries/projections/krovak.cjs.map +1 -1
- package/dist/projection/experimental/entries/projections/laea.cjs +82 -46
- package/dist/projection/experimental/entries/projections/laea.cjs.map +2 -2
- package/dist/projection/experimental/entries/projections/lcc.cjs +7 -12
- package/dist/projection/experimental/entries/projections/lcc.cjs.map +2 -2
- package/dist/projection/experimental/entries/projections/moll.cjs +46 -39
- package/dist/projection/experimental/entries/projections/moll.cjs.map +1 -1
- package/dist/projection/experimental/entries/projections/omerc.cjs +6 -8
- package/dist/projection/experimental/entries/projections/omerc.cjs.map +2 -2
- package/dist/projection/experimental/entries/projections/ortho.cjs +52 -106
- package/dist/projection/experimental/entries/projections/ortho.cjs.map +2 -2
- package/dist/projection/experimental/entries/projections/poly.cjs +83 -49
- package/dist/projection/experimental/entries/projections/poly.cjs.map +3 -3
- package/dist/projection/experimental/entries/projections/qsc.cjs +31 -50
- package/dist/projection/experimental/entries/projections/qsc.cjs.map +1 -1
- package/dist/projection/experimental/entries/projections/sinu.cjs +5 -2
- package/dist/projection/experimental/entries/projections/sinu.cjs.map +1 -1
- package/dist/projection/experimental/entries/projections/somerc.cjs +22 -29
- package/dist/projection/experimental/entries/projections/somerc.cjs.map +1 -1
- package/dist/projection/experimental/entries/projections/stere.cjs +19 -6
- package/dist/projection/experimental/entries/projections/stere.cjs.map +2 -2
- package/dist/projection/experimental/entries/projections/sterea.cjs +9 -1
- package/dist/projection/experimental/entries/projections/sterea.cjs.map +2 -2
- package/dist/projection/experimental/entries/projections/tpers.cjs.map +1 -1
- package/dist/projection/experimental/grids/geotiff.js +1 -1
- package/dist/projection/experimental/grids/geotiff.js.map +1 -1
- package/dist/projection/experimental/grids/ntv2.js +1 -1
- package/dist/projection/experimental/grids/ntv2.js.map +1 -1
- package/dist/projection/experimental/index.cjs +1870 -365
- package/dist/projection/experimental/index.cjs.map +3 -3
- package/dist/projection/experimental/inverse-spherical-latitude.d.ts +2 -0
- package/dist/projection/experimental/inverse-spherical-latitude.d.ts.map +1 -0
- package/dist/projection/experimental/inverse-spherical-latitude.js +11 -0
- package/dist/projection/experimental/inverse-spherical-latitude.js.map +1 -0
- package/dist/projection/experimental/kernels/aea.d.ts.map +1 -1
- package/dist/projection/experimental/kernels/aea.js +11 -29
- package/dist/projection/experimental/kernels/aea.js.map +1 -1
- package/dist/projection/experimental/kernels/aeqd.d.ts.map +1 -1
- package/dist/projection/experimental/kernels/aeqd.js +3 -3
- package/dist/projection/experimental/kernels/aeqd.js.map +1 -1
- package/dist/projection/experimental/kernels/bonne.js +1 -1
- package/dist/projection/experimental/kernels/bonne.js.map +1 -1
- package/dist/projection/experimental/kernels/cass.js +1 -1
- package/dist/projection/experimental/kernels/cass.js.map +1 -1
- package/dist/projection/experimental/kernels/cea.js +1 -1
- package/dist/projection/experimental/kernels/cea.js.map +1 -1
- package/dist/projection/experimental/kernels/eck6.js +1 -1
- package/dist/projection/experimental/kernels/eck6.js.map +1 -1
- package/dist/projection/experimental/kernels/eqdc.js +1 -1
- package/dist/projection/experimental/kernels/eqdc.js.map +1 -1
- package/dist/projection/experimental/kernels/eqearth.d.ts.map +1 -1
- package/dist/projection/experimental/kernels/eqearth.js +13 -2
- package/dist/projection/experimental/kernels/eqearth.js.map +1 -1
- package/dist/projection/experimental/kernels/equi.d.ts.map +1 -1
- package/dist/projection/experimental/kernels/equi.js +3 -1
- package/dist/projection/experimental/kernels/equi.js.map +1 -1
- package/dist/projection/experimental/kernels/etmerc.js +1 -1
- package/dist/projection/experimental/kernels/etmerc.js.map +1 -1
- package/dist/projection/experimental/kernels/gauss.js +1 -1
- package/dist/projection/experimental/kernels/gauss.js.map +1 -1
- package/dist/projection/experimental/kernels/geos.js +1 -1
- package/dist/projection/experimental/kernels/geos.js.map +1 -1
- package/dist/projection/experimental/kernels/gnom.d.ts +2 -0
- package/dist/projection/experimental/kernels/gnom.d.ts.map +1 -1
- package/dist/projection/experimental/kernels/gnom.js +8 -1
- package/dist/projection/experimental/kernels/gnom.js.map +1 -1
- package/dist/projection/experimental/kernels/gstmerc.js +1 -1
- package/dist/projection/experimental/kernels/gstmerc.js.map +1 -1
- package/dist/projection/experimental/kernels/krovak.js +2 -2
- package/dist/projection/experimental/kernels/krovak.js.map +1 -1
- package/dist/projection/experimental/kernels/laea.d.ts +0 -1
- package/dist/projection/experimental/kernels/laea.d.ts.map +1 -1
- package/dist/projection/experimental/kernels/laea.js +33 -15
- package/dist/projection/experimental/kernels/laea.js.map +1 -1
- package/dist/projection/experimental/kernels/lcc.d.ts.map +1 -1
- package/dist/projection/experimental/kernels/lcc.js +2 -7
- package/dist/projection/experimental/kernels/lcc.js.map +1 -1
- package/dist/projection/experimental/kernels/mill.js +1 -1
- package/dist/projection/experimental/kernels/mill.js.map +1 -1
- package/dist/projection/experimental/kernels/moll.d.ts.map +1 -1
- package/dist/projection/experimental/kernels/moll.js +65 -50
- package/dist/projection/experimental/kernels/moll.js.map +1 -1
- package/dist/projection/experimental/kernels/nzmg.js +1 -1
- package/dist/projection/experimental/kernels/nzmg.js.map +1 -1
- package/dist/projection/experimental/kernels/omerc.js +1 -1
- package/dist/projection/experimental/kernels/omerc.js.map +1 -1
- package/dist/projection/experimental/kernels/ortho.d.ts +6 -5
- package/dist/projection/experimental/kernels/ortho.d.ts.map +1 -1
- package/dist/projection/experimental/kernels/ortho.js +35 -83
- package/dist/projection/experimental/kernels/ortho.js.map +1 -1
- package/dist/projection/experimental/kernels/poly.d.ts +2 -5
- package/dist/projection/experimental/kernels/poly.d.ts.map +1 -1
- package/dist/projection/experimental/kernels/poly.js +83 -31
- package/dist/projection/experimental/kernels/poly.js.map +1 -1
- package/dist/projection/experimental/kernels/qsc.d.ts.map +1 -1
- package/dist/projection/experimental/kernels/qsc.js +37 -52
- package/dist/projection/experimental/kernels/qsc.js.map +1 -1
- package/dist/projection/experimental/kernels/robin.js +1 -1
- package/dist/projection/experimental/kernels/robin.js.map +1 -1
- package/dist/projection/experimental/kernels/sinu.d.ts.map +1 -1
- package/dist/projection/experimental/kernels/sinu.js +5 -2
- package/dist/projection/experimental/kernels/sinu.js.map +1 -1
- package/dist/projection/experimental/kernels/somerc.d.ts +2 -2
- package/dist/projection/experimental/kernels/somerc.d.ts.map +1 -1
- package/dist/projection/experimental/kernels/somerc.js +35 -37
- package/dist/projection/experimental/kernels/somerc.js.map +1 -1
- package/dist/projection/experimental/kernels/stere.d.ts.map +1 -1
- package/dist/projection/experimental/kernels/stere.js +15 -3
- package/dist/projection/experimental/kernels/stere.js.map +1 -1
- package/dist/projection/experimental/kernels/sterea.d.ts.map +1 -1
- package/dist/projection/experimental/kernels/sterea.js +4 -2
- package/dist/projection/experimental/kernels/sterea.js.map +1 -1
- package/dist/projection/experimental/kernels/tmerc.js +1 -1
- package/dist/projection/experimental/kernels/tmerc.js.map +1 -1
- package/dist/projection/experimental/kernels/tpers.js +1 -1
- package/dist/projection/experimental/kernels/tpers.js.map +1 -1
- package/dist/projection/experimental/kernels/vandg.js +1 -1
- package/dist/projection/experimental/kernels/vandg.js.map +1 -1
- package/dist/projection/experimental/kinematic-helmert.js +1 -1
- package/dist/projection/experimental/kinematic-helmert.js.map +1 -1
- package/dist/projection/experimental/projections/gnom.d.ts.map +1 -1
- package/dist/projection/experimental/projections/gnom.js +4 -2
- package/dist/projection/experimental/projections/gnom.js.map +1 -1
- package/dist/projection/experimental/projections/laea.js +3 -3
- package/dist/projection/experimental/projections/laea.js.map +1 -1
- package/dist/projection/experimental/projections/ortho.js +4 -4
- package/dist/projection/experimental/projections/ortho.js.map +1 -1
- package/dist/projection/experimental/rendering-profile/azimuthal-rendering-bounds.d.ts +7 -0
- package/dist/projection/experimental/rendering-profile/azimuthal-rendering-bounds.d.ts.map +1 -1
- package/dist/projection/experimental/rendering-profile/azimuthal-rendering-bounds.js +42 -2
- package/dist/projection/experimental/rendering-profile/azimuthal-rendering-bounds.js.map +1 -1
- package/dist/projection/index.cjs +1870 -365
- package/dist/projection/index.cjs.map +3 -3
- package/dist/rhumb-path.d.ts +28 -0
- package/dist/rhumb-path.d.ts.map +1 -0
- package/dist/rhumb-path.js +100 -0
- package/dist/rhumb-path.js.map +1 -0
- package/dist/rhumb-polygon.d.ts +11 -0
- package/dist/rhumb-polygon.d.ts.map +1 -0
- package/dist/rhumb-polygon.js +19 -0
- package/dist/rhumb-polygon.js.map +1 -0
- package/dist/subdivide-geodesic-polyline.d.ts +15 -0
- package/dist/subdivide-geodesic-polyline.d.ts.map +1 -0
- package/dist/subdivide-geodesic-polyline.js +52 -0
- package/dist/subdivide-geodesic-polyline.js.map +1 -0
- package/dist/subdivide-rhumb-polyline.d.ts +12 -0
- package/dist/subdivide-rhumb-polyline.d.ts.map +1 -0
- package/dist/subdivide-rhumb-polyline.js +82 -0
- package/dist/subdivide-rhumb-polyline.js.map +1 -0
- package/dist/triaxial/integrate.d.ts +2 -0
- package/dist/triaxial/integrate.d.ts.map +1 -0
- package/dist/triaxial/integrate.js +76 -0
- package/dist/triaxial/integrate.js.map +1 -0
- package/dist/triaxial.cjs +204 -0
- package/dist/triaxial.cjs.map +6 -0
- package/dist/triaxial.d.ts +38 -0
- package/dist/triaxial.d.ts.map +1 -0
- package/dist/triaxial.js +121 -0
- package/dist/triaxial.js.map +1 -0
- package/dist/vendor/geographiclib-geodesic/runtime.d.ts +9 -0
- package/dist/vendor/geographiclib-geodesic/runtime.d.ts.map +1 -0
- package/dist/vendor/geographiclib-geodesic/runtime.js +2244 -0
- package/dist/vendor/geographiclib-geodesic/runtime.js.map +1 -0
- package/dist/wkb/index.cjs +7 -2
- package/dist/wkb/index.cjs.map +1 -1
- package/dist/wkb/wkb-builder.d.ts.map +1 -1
- package/dist/wkb/wkb-builder.js +9 -2
- package/dist/wkb/wkb-builder.js.map +1 -1
- package/package.json +30 -6
- package/projection/THIRD-PARTY-NOTICES.md +58 -11
- package/src/constants.ts +1 -1
- package/src/discontinuous/AIR-OCEAN-LICENSE.txt +26 -0
- package/src/discontinuous/D3-LICENSE.txt +37 -0
- package/src/discontinuous/PETROFF-LICENSE.txt +55 -0
- package/src/discontinuous/PROJ-LICENSE.txt +34 -0
- package/src/discontinuous/air-ocean-mesh.ts +86 -0
- package/src/discontinuous/albers-usa.ts +181 -0
- package/src/discontinuous/cap-map.ts +406 -0
- package/src/discontinuous/elastic/README.md +20 -0
- package/src/discontinuous/elastic/UNLICENSE.txt +24 -0
- package/src/discontinuous/elastic/data.ts +86 -0
- package/src/discontinuous/elastic/elasticI.ts +5238 -0
- package/src/discontinuous/elastic/elasticII.ts +18167 -0
- package/src/discontinuous/elastic/elasticIII.ts +29571 -0
- package/src/discontinuous/elastic/geometry.ts +172 -0
- package/src/discontinuous/elastic/grid.ts +194 -0
- package/src/discontinuous/elastic/map.ts +317 -0
- package/src/discontinuous/gray-fuller.ts +38 -0
- package/src/discontinuous/gringorten-kernel.ts +160 -0
- package/src/discontinuous/healpix.ts +61 -0
- package/src/discontinuous/layout.ts +177 -0
- package/src/discontinuous/map-engine.ts +528 -0
- package/src/discontinuous/map-layout.ts +605 -0
- package/src/discontinuous/map-transition.ts +339 -0
- package/src/discontinuous/math.ts +67 -0
- package/src/discontinuous/mercator-map.ts +155 -0
- package/src/discontinuous/myriahedral/graticule.ts +40 -0
- package/src/discontinuous/myriahedral/mesh.ts +138 -0
- package/src/discontinuous/myriahedral/unfold.ts +208 -0
- package/src/discontinuous/myriahedral.ts +285 -0
- package/src/discontinuous/petroff.ts +178 -0
- package/src/discontinuous/polyhedral.ts +138 -0
- package/src/discontinuous/prepare-features.ts +239 -0
- package/src/discontinuous/presets.ts +450 -0
- package/src/discontinuous/projection-catalog.ts +132 -0
- package/src/discontinuous/quincuncial-kernel.ts +173 -0
- package/src/discontinuous/quincuncial-star.ts +328 -0
- package/src/discontinuous/regional-map.ts +228 -0
- package/src/discontinuous/retroazimuthal-map.ts +52 -0
- package/src/discontinuous/rotated-map.ts +86 -0
- package/src/discontinuous/snyder-mesh.ts +88 -0
- package/src/discontinuous/snyder.ts +171 -0
- package/src/discontinuous/spherical-clip/D3-GEO-LICENSE.txt +34 -0
- package/src/discontinuous/spherical-clip/README.md +16 -0
- package/src/discontinuous/spherical-clip/cartesian.js +43 -0
- package/src/discontinuous/spherical-clip/circle.js +35 -0
- package/src/discontinuous/spherical-clip/clip-buffer.js +29 -0
- package/src/discontinuous/spherical-clip/clip-circle.js +197 -0
- package/src/discontinuous/spherical-clip/clip-index.js +140 -0
- package/src/discontinuous/spherical-clip/clip-rejoin.js +111 -0
- package/src/discontinuous/spherical-clip/helpers.js +20 -0
- package/src/discontinuous/spherical-clip/math.js +45 -0
- package/src/discontinuous/spherical-clip/noop.js +6 -0
- package/src/discontinuous/spherical-clip/pointEqual.js +10 -0
- package/src/discontinuous/spherical-clip/polygonContains.js +96 -0
- package/src/discontinuous/world-composite-kernels.ts +30 -0
- package/src/discontinuous/world-kernels/INTEGRATE-LICENSE.txt +21 -0
- package/src/discontinuous/world-kernels/README.md +24 -0
- package/src/discontinuous/world-kernels/airy.js +43 -0
- package/src/discontinuous/world-kernels/aitoff.js +48 -0
- package/src/discontinuous/world-kernels/armadillo.js +51 -0
- package/src/discontinuous/world-kernels/august.js +36 -0
- package/src/discontinuous/world-kernels/baker.js +50 -0
- package/src/discontinuous/world-kernels/bertin.js +41 -0
- package/src/discontinuous/world-kernels/boggs.js +32 -0
- package/src/discontinuous/world-kernels/bonne.js +27 -0
- package/src/discontinuous/world-kernels/bottomley.js +25 -0
- package/src/discontinuous/world-kernels/bromley.js +10 -0
- package/src/discontinuous/world-kernels/chamberlin.js +97 -0
- package/src/discontinuous/world-kernels/collignon.js +17 -0
- package/src/discontinuous/world-kernels/craig.js +33 -0
- package/src/discontinuous/world-kernels/craster.js +18 -0
- package/src/discontinuous/world-kernels/cylindricalEqualArea.js +21 -0
- package/src/discontinuous/world-kernels/cylindricalStereographic.js +21 -0
- package/src/discontinuous/world-kernels/d3-geo-raw.js +26 -0
- package/src/discontinuous/world-kernels/eckert1.js +18 -0
- package/src/discontinuous/world-kernels/eckert2.js +17 -0
- package/src/discontinuous/world-kernels/eckert3.js +17 -0
- package/src/discontinuous/world-kernels/eckert4.js +24 -0
- package/src/discontinuous/world-kernels/eckert5.js +17 -0
- package/src/discontinuous/world-kernels/eckert6.js +22 -0
- package/src/discontinuous/world-kernels/eisenlohr.js +88 -0
- package/src/discontinuous/world-kernels/fahey.js +19 -0
- package/src/discontinuous/world-kernels/foucaut.js +20 -0
- package/src/discontinuous/world-kernels/foucautSinusoidal.js +38 -0
- package/src/discontinuous/world-kernels/ginzburg4.js +17 -0
- package/src/discontinuous/world-kernels/ginzburg5.js +17 -0
- package/src/discontinuous/world-kernels/ginzburg6.js +19 -0
- package/src/discontinuous/world-kernels/ginzburg8.js +34 -0
- package/src/discontinuous/world-kernels/ginzburg9.js +17 -0
- package/src/discontinuous/world-kernels/ginzburgPolyconic.js +64 -0
- package/src/discontinuous/world-kernels/hammer.js +37 -0
- package/src/discontinuous/world-kernels/hammerRetroazimuthal.js +63 -0
- package/src/discontinuous/world-kernels/hill.js +57 -0
- package/src/discontinuous/world-kernels/homolosine.js +24 -0
- package/src/discontinuous/world-kernels/hufnagel.js +68 -0
- package/src/discontinuous/world-kernels/hyperelliptical.js +56 -0
- package/src/discontinuous/world-kernels/integrate.js +99 -0
- package/src/discontinuous/world-kernels/kavrayskiy7.js +15 -0
- package/src/discontinuous/world-kernels/lagrange.js +32 -0
- package/src/discontinuous/world-kernels/larrivee.js +43 -0
- package/src/discontinuous/world-kernels/laskowski.js +50 -0
- package/src/discontinuous/world-kernels/littrow.js +19 -0
- package/src/discontinuous/world-kernels/loximuthal.js +38 -0
- package/src/discontinuous/world-kernels/math.js +98 -0
- package/src/discontinuous/world-kernels/miller.js +15 -0
- package/src/discontinuous/world-kernels/modifiedStereographic.js +112 -0
- package/src/discontinuous/world-kernels/mollweide.js +30 -0
- package/src/discontinuous/world-kernels/mtFlatPolarParabolic.js +23 -0
- package/src/discontinuous/world-kernels/mtFlatPolarQuartic.js +29 -0
- package/src/discontinuous/world-kernels/mtFlatPolarSinusoidal.js +25 -0
- package/src/discontinuous/world-kernels/naturalEarth2.js +46 -0
- package/src/discontinuous/world-kernels/nellHammer.js +20 -0
- package/src/discontinuous/world-kernels/newton.js +77 -0
- package/src/discontinuous/world-kernels/nicolosi.js +60 -0
- package/src/discontinuous/world-kernels/patterson.js +45 -0
- package/src/discontinuous/world-kernels/polyconic.js +36 -0
- package/src/discontinuous/world-kernels/rectangularPolyconic.js +41 -0
- package/src/discontinuous/world-kernels/robinson.js +88 -0
- package/src/discontinuous/world-kernels/satellite.js +44 -0
- package/src/discontinuous/world-kernels/sinuMollweide.js +24 -0
- package/src/discontinuous/world-kernels/sinusoidal.js +15 -0
- package/src/discontinuous/world-kernels/times.js +19 -0
- package/src/discontinuous/world-kernels/twoPointEquidistant.js +41 -0
- package/src/discontinuous/world-kernels/vanDerGrinten.js +48 -0
- package/src/discontinuous/world-kernels/vanDerGrinten2.js +32 -0
- package/src/discontinuous/world-kernels/vanDerGrinten3.js +24 -0
- package/src/discontinuous/world-kernels/vanDerGrinten4.js +70 -0
- package/src/discontinuous/world-kernels/wagner.js +61 -0
- package/src/discontinuous/world-kernels/wagner4.js +13 -0
- package/src/discontinuous/world-kernels/wagner6.js +15 -0
- package/src/discontinuous/world-kernels/wiechel.js +25 -0
- package/src/discontinuous/world-kernels/winkel3.js +45 -0
- package/src/discontinuous/world-kernels.ts +249 -0
- package/src/discontinuous/world-map.ts +257 -0
- package/src/discontinuous.ts +134 -0
- package/src/elastic.ts +7 -0
- package/src/ellipsoid-geodesic.ts +159 -0
- package/src/ellipsoid-helpers/ellipsoid-transform.ts +17 -5
- package/src/ellipsoid-helpers/exact-nearest-surface.ts +118 -0
- package/src/ellipsoid-helpers/intersection-bounds.ts +85 -0
- package/src/ellipsoid-helpers/nearest-surface.ts +157 -0
- package/src/ellipsoid-helpers/rhumb-pole-distance.ts +76 -0
- package/src/ellipsoid-helpers/scale-to-geodetic-surface.ts +14 -107
- package/src/ellipsoid-helpers/surface-polygon.ts +210 -0
- package/src/ellipsoid-helpers/tangent-plane-numerics.ts +124 -0
- package/src/ellipsoid-metrics.ts +225 -0
- package/src/ellipsoid-rhumb.ts +404 -0
- package/src/ellipsoid-tangent-plane.ts +232 -36
- package/src/ellipsoid-transforms.ts +61 -0
- package/src/ellipsoid.ts +210 -126
- package/src/entries/ellipsoid.ts +36 -0
- package/src/expressions.ts +2 -1
- package/src/geoarrow/codecs.ts +3 -9
- package/src/geoarrow/index.ts +3 -1
- package/src/geoarrow/types.ts +40 -0
- package/src/geodesic-exact/area.ts +70 -0
- package/src/geodesic-exact/inverse-engine.ts +166 -0
- package/src/geodesic-exact/polygon.ts +36 -0
- package/src/geodesic-exact/quadrature.ts +60 -0
- package/src/geodesic-exact.ts +290 -0
- package/src/geodesic-intersections.ts +598 -0
- package/src/geodesic-path.ts +128 -0
- package/src/geodesic-polygon.ts +19 -0
- package/src/geographic-seams/edge.ts +406 -0
- package/src/geographic-seams/polygon.ts +478 -0
- package/src/geographic-seams/types.ts +67 -0
- package/src/geographic-seams.ts +81 -0
- package/src/globe.ts +17 -0
- package/src/lng-lat-rectangle.ts +1 -1
- package/src/local-reference-frame.ts +320 -0
- package/src/make-obb-from-region.ts +1 -1
- package/src/projection/experimental/authalic-latitude.ts +49 -0
- package/src/projection/experimental/common/adjust_lat.ts +2 -2
- package/src/projection/experimental/common/adjust_lon.ts +1 -1
- package/src/projection/experimental/common/asinhy.ts +1 -1
- package/src/projection/experimental/common/asinz.ts +1 -1
- package/src/projection/experimental/common/authlat.ts +1 -1
- package/src/projection/experimental/common/authset.ts +1 -1
- package/src/projection/experimental/common/clens.ts +1 -1
- package/src/projection/experimental/common/clens_cmplx.ts +1 -1
- package/src/projection/experimental/common/constants.ts +1 -1
- package/src/projection/experimental/common/cosh.ts +1 -1
- package/src/projection/experimental/common/e0fn.ts +1 -1
- package/src/projection/experimental/common/e1fn.ts +1 -1
- package/src/projection/experimental/common/e2fn.ts +1 -1
- package/src/projection/experimental/common/e3fn.ts +1 -1
- package/src/projection/experimental/common/fL.ts +1 -1
- package/src/projection/experimental/common/gN.ts +1 -1
- package/src/projection/experimental/common/gatg.ts +1 -1
- package/src/projection/experimental/common/hypot.ts +1 -1
- package/src/projection/experimental/common/imlfn.ts +1 -1
- package/src/projection/experimental/common/invlatiso.ts +1 -1
- package/src/projection/experimental/common/iqsfnz.ts +1 -1
- package/src/projection/experimental/common/latiso.ts +1 -1
- package/src/projection/experimental/common/log1py.ts +1 -1
- package/src/projection/experimental/common/mlfn.ts +1 -1
- package/src/projection/experimental/common/msfnz.ts +1 -1
- package/src/projection/experimental/common/phi2z.ts +1 -1
- package/src/projection/experimental/common/pj_enfn.ts +1 -1
- package/src/projection/experimental/common/pj_inv_mlfn.ts +1 -1
- package/src/projection/experimental/common/pj_mlfn.ts +1 -1
- package/src/projection/experimental/common/qsfnz.ts +1 -1
- package/src/projection/experimental/common/sign.ts +1 -1
- package/src/projection/experimental/common/sinh.ts +1 -1
- package/src/projection/experimental/common/srat.ts +1 -1
- package/src/projection/experimental/common/tsfnz.ts +8 -7
- package/src/projection/experimental/common/vincenty.ts +1 -1
- package/src/projection/experimental/crs/datum-table.ts +1 -1
- package/src/projection/experimental/crs/ellipsoid-table.ts +1 -1
- package/src/projection/experimental/crs/primemeridian-table.ts +1 -1
- package/src/projection/experimental/crs/structured.ts +1 -1
- package/src/projection/experimental/crs/wkt.ts +1 -1
- package/src/projection/experimental/datum.ts +1 -1
- package/src/projection/experimental/ellipsoidal-gnomonic.ts +83 -0
- package/src/projection/experimental/exact-helmert.ts +1 -1
- package/src/projection/experimental/grids/geotiff.ts +1 -1
- package/src/projection/experimental/grids/grid.ts +1 -1
- package/src/projection/experimental/grids/ntv2.ts +1 -1
- package/src/projection/experimental/helmert-flat.ts +1 -1
- package/src/projection/experimental/inverse-spherical-latitude.ts +19 -0
- package/src/projection/experimental/kernels/aea.ts +10 -31
- package/src/projection/experimental/kernels/aeqd.ts +3 -3
- package/src/projection/experimental/kernels/bonne.ts +1 -1
- package/src/projection/experimental/kernels/cass.ts +1 -1
- package/src/projection/experimental/kernels/cea.ts +1 -1
- package/src/projection/experimental/kernels/eck6.ts +1 -1
- package/src/projection/experimental/kernels/eqdc.ts +1 -1
- package/src/projection/experimental/kernels/eqearth.ts +12 -2
- package/src/projection/experimental/kernels/equi.ts +3 -1
- package/src/projection/experimental/kernels/etmerc.ts +1 -1
- package/src/projection/experimental/kernels/gauss.ts +1 -1
- package/src/projection/experimental/kernels/geos.ts +1 -1
- package/src/projection/experimental/kernels/gnom.ts +11 -1
- package/src/projection/experimental/kernels/gstmerc.ts +1 -1
- package/src/projection/experimental/kernels/krovak.ts +2 -2
- package/src/projection/experimental/kernels/laea.ts +39 -16
- package/src/projection/experimental/kernels/lcc.ts +2 -8
- package/src/projection/experimental/kernels/mill.ts +1 -1
- package/src/projection/experimental/kernels/moll.ts +62 -58
- package/src/projection/experimental/kernels/nzmg.ts +1 -1
- package/src/projection/experimental/kernels/omerc.ts +1 -1
- package/src/projection/experimental/kernels/ortho.ts +38 -92
- package/src/projection/experimental/kernels/poly.ts +97 -36
- package/src/projection/experimental/kernels/qsc.ts +40 -50
- package/src/projection/experimental/kernels/robin.ts +1 -1
- package/src/projection/experimental/kernels/sinu.ts +4 -2
- package/src/projection/experimental/kernels/somerc.ts +45 -55
- package/src/projection/experimental/kernels/stere.ts +31 -3
- package/src/projection/experimental/kernels/sterea.ts +4 -2
- package/src/projection/experimental/kernels/tmerc.ts +1 -1
- package/src/projection/experimental/kernels/tpers.ts +1 -1
- package/src/projection/experimental/kernels/vandg.ts +1 -1
- package/src/projection/experimental/kinematic-helmert-flat.ts +1 -1
- package/src/projection/experimental/kinematic-helmert.ts +1 -1
- package/src/projection/experimental/projection-pipeline.ts +1 -1
- package/src/projection/experimental/projections/gnom.ts +22 -5
- package/src/projection/experimental/projections/laea.ts +3 -3
- package/src/projection/experimental/projections/ob-tran.ts +1 -1
- package/src/projection/experimental/projections/ortho.ts +4 -4
- package/src/projection/experimental/rendering-profile/azimuthal-rendering-bounds.ts +72 -2
- package/src/rhumb-path.ts +128 -0
- package/src/rhumb-polygon.ts +24 -0
- package/src/subdivide-geodesic-polyline.ts +74 -0
- package/src/subdivide-rhumb-polyline.ts +108 -0
- package/src/triaxial/integrate.ts +82 -0
- package/src/triaxial.ts +172 -0
- package/src/type-utils.ts +1 -1
- package/src/vendor/geographiclib-geodesic/README.md +21 -0
- package/src/vendor/geographiclib-geodesic/runtime.js +2338 -0
- package/src/wkb/wkb-builder.ts +11 -2
package/src/ellipsoid.ts
CHANGED
|
@@ -5,31 +5,30 @@
|
|
|
5
5
|
// SPDX-FileComment: Derived from Cesium. See the repository LICENSE for upstream attribution and Apache-2.0 terms. Original math.gl follow-up uses stable atan2 latitude and numeric cartographic output.
|
|
6
6
|
|
|
7
7
|
// This file is derived from the Cesium math library under Apache 2 license
|
|
8
|
-
// See LICENSE
|
|
8
|
+
// See ../LICENSE for the retained Cesium notice and Apache-2.0 terms.
|
|
9
9
|
|
|
10
10
|
/* eslint-disable */
|
|
11
|
-
import {Vector3,
|
|
11
|
+
import {Vector3, assert, _MathUtils, NumericArray, config} from '@math.gl/core';
|
|
12
12
|
import type {SpheroidParameters} from '@math.gl/core/types';
|
|
13
13
|
import {
|
|
14
14
|
spheroidToCartesian,
|
|
15
15
|
cartesianToSpheroid,
|
|
16
16
|
type SpheroidGeometry
|
|
17
17
|
} from '@math.gl/core/spheroid';
|
|
18
|
-
import * as vec3 from '@math.gl/core/vec3';
|
|
19
18
|
|
|
20
19
|
import {WGS84_RADIUS_X, WGS84_RADIUS_Y, WGS84_RADIUS_Z} from './constants';
|
|
21
|
-
import {
|
|
20
|
+
import {
|
|
21
|
+
fromCartographic,
|
|
22
|
+
fromCartographicToRadians,
|
|
23
|
+
toCartographicFromRadiansComponents
|
|
24
|
+
} from './type-utils';
|
|
22
25
|
|
|
23
|
-
import type {AxisDirection} from './ellipsoid-helpers/ellipsoid-transform';
|
|
24
|
-
import {localFrameToFixedFrame} from './ellipsoid-helpers/ellipsoid-transform';
|
|
25
26
|
import {scaleToGeodeticSurface, writeResult} from './ellipsoid-helpers/scale-to-geodetic-surface';
|
|
26
27
|
|
|
27
28
|
const spheroidScratch = {x: 0, y: 0, z: 0};
|
|
28
29
|
const scratchVector = new Vector3();
|
|
29
30
|
const scratchNormal = new Vector3();
|
|
30
|
-
const scratchK = new Vector3();
|
|
31
31
|
const scratchPosition = new Vector3();
|
|
32
|
-
const scratchHeight = new Vector3();
|
|
33
32
|
const scratchCartesian = new Vector3();
|
|
34
33
|
|
|
35
34
|
/**
|
|
@@ -66,9 +65,9 @@ export class Ellipsoid {
|
|
|
66
65
|
constructor();
|
|
67
66
|
|
|
68
67
|
constructor(x = 0.0, y = 0.0, z = 0.0) {
|
|
69
|
-
assert(x >= 0.0);
|
|
70
|
-
assert(y >= 0.0);
|
|
71
|
-
assert(z >= 0.0);
|
|
68
|
+
assert(Number.isFinite(x) && x >= 0.0);
|
|
69
|
+
assert(Number.isFinite(y) && y >= 0.0);
|
|
70
|
+
assert(Number.isFinite(z) && z >= 0.0);
|
|
72
71
|
|
|
73
72
|
this.radii = new Vector3(x, y, z);
|
|
74
73
|
|
|
@@ -92,8 +91,8 @@ export class Ellipsoid {
|
|
|
92
91
|
|
|
93
92
|
this.maximumRadius = Math.max(x, y, z);
|
|
94
93
|
|
|
95
|
-
if (
|
|
96
|
-
this.squaredXOverSquaredZ =
|
|
94
|
+
if (z !== 0) {
|
|
95
|
+
this.squaredXOverSquaredZ = (x / z) ** 2;
|
|
97
96
|
}
|
|
98
97
|
|
|
99
98
|
// Setup only: retain the three-radius path for unsupported/lossy shapes.
|
|
@@ -107,8 +106,15 @@ export class Ellipsoid {
|
|
|
107
106
|
this.spheroidGeometry = Object.freeze({
|
|
108
107
|
semiMajorAxis: x,
|
|
109
108
|
semiMinorAxis: z,
|
|
110
|
-
eccentricitySquared: 1 -
|
|
109
|
+
eccentricitySquared: 1 - (z / x) ** 2
|
|
111
110
|
});
|
|
111
|
+
// Geometry and all derived caches are one immutable snapshot. Mutating a
|
|
112
|
+
// public vector previously changed some algorithms while leaving others stale.
|
|
113
|
+
Object.freeze(this.radii);
|
|
114
|
+
Object.freeze(this.radiiSquared);
|
|
115
|
+
Object.freeze(this.radiiToTheFourth);
|
|
116
|
+
Object.freeze(this.oneOverRadii);
|
|
117
|
+
Object.freeze(this.oneOverRadiiSquared);
|
|
112
118
|
Object.freeze(this);
|
|
113
119
|
}
|
|
114
120
|
|
|
@@ -128,7 +134,7 @@ export class Ellipsoid {
|
|
|
128
134
|
return this === right || Boolean(right && this.radii.equals(right.radii));
|
|
129
135
|
}
|
|
130
136
|
|
|
131
|
-
/** Creates a string representing this Ellipsoid in the format '
|
|
137
|
+
/** Creates a string representing this Ellipsoid in the format '[radii.x, radii.y, radii.z]'. */
|
|
132
138
|
toString(): string {
|
|
133
139
|
return this.radii.toString();
|
|
134
140
|
}
|
|
@@ -141,29 +147,45 @@ export class Ellipsoid {
|
|
|
141
147
|
cartographicToCartesian(cartographic: number[], result?: number[]): number[];
|
|
142
148
|
|
|
143
149
|
cartographicToCartesian(cartographic: Readonly<NumericArray>, result = [0, 0, 0]) {
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
150
|
+
const llh = fromCartographicToRadians(cartographic, scratchCartesian);
|
|
151
|
+
const longitude = llh[0],
|
|
152
|
+
latitude = llh[1],
|
|
153
|
+
height = llh[2];
|
|
154
|
+
if (
|
|
155
|
+
!Number.isFinite(longitude) ||
|
|
156
|
+
!Number.isFinite(latitude) ||
|
|
157
|
+
!Number.isFinite(height) ||
|
|
158
|
+
!(this.minimumRadius > 0) ||
|
|
159
|
+
!Number.isFinite(this.maximumRadius * this.maximumRadius)
|
|
160
|
+
)
|
|
161
|
+
return undefined;
|
|
162
|
+
// Degree inputs near a pole retain their complement before conversion. A
|
|
163
|
+
// rounded radian latitude loses angle bits amplified by thin-shape curvature.
|
|
164
|
+
if (
|
|
165
|
+
this.spheroidGeometry &&
|
|
166
|
+
(config._cartographicRadians || Math.abs(latitude) <= Math.PI / 4)
|
|
167
|
+
) {
|
|
168
|
+
spheroidScratch.x = longitude;
|
|
169
|
+
spheroidScratch.y = latitude;
|
|
170
|
+
spheroidScratch.z = height;
|
|
149
171
|
if (!spheroidToCartesian(spheroidScratch, this.spheroidGeometry)) return undefined;
|
|
150
172
|
return writeResult(result, spheroidScratch.x, spheroidScratch.y, spheroidScratch.z);
|
|
151
173
|
}
|
|
152
174
|
const normal = scratchNormal;
|
|
153
|
-
const k = scratchK;
|
|
154
|
-
|
|
155
|
-
const [, , height] = cartographic;
|
|
156
175
|
this.geodeticSurfaceNormalCartographic(cartographic, normal);
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
176
|
+
const nx = normal.x,
|
|
177
|
+
ny = normal.y,
|
|
178
|
+
nz = normal.z;
|
|
179
|
+
const rx = this.radii.x,
|
|
180
|
+
ry = this.radii.y,
|
|
181
|
+
rz = this.radii.z;
|
|
182
|
+
// Form support from scaled axes, not rounded (possibly subnormal) squares.
|
|
183
|
+
const gamma = Math.hypot(rx * nx, ry * ny, rz * nz);
|
|
184
|
+
const x = rx * ((rx * nx) / gamma) + height * nx;
|
|
185
|
+
const y = ry * ((ry * ny) / gamma) + height * ny;
|
|
186
|
+
const z = rz * ((rz * nz) / gamma) + height * nz;
|
|
187
|
+
if (!Number.isFinite(x) || !Number.isFinite(y) || !Number.isFinite(z)) return undefined;
|
|
188
|
+
return writeResult(result, x, y, z);
|
|
167
189
|
}
|
|
168
190
|
|
|
169
191
|
/** Converts the provided Cartesian position to [longitude, latitude, height],
|
|
@@ -190,16 +212,33 @@ export class Ellipsoid {
|
|
|
190
212
|
spheroidScratch.x = x;
|
|
191
213
|
spheroidScratch.y = y;
|
|
192
214
|
spheroidScratch.z = z;
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
215
|
+
const shape = this.spheroidGeometry;
|
|
216
|
+
const nearBoundary =
|
|
217
|
+
z === 0 &&
|
|
218
|
+
shape.semiMinorAxis < shape.semiMajorAxis &&
|
|
219
|
+
Math.abs(Math.hypot(x, y) - shape.semiMajorAxis * shape.eccentricitySquared) <=
|
|
220
|
+
64 * Number.EPSILON * shape.semiMajorAxis;
|
|
221
|
+
// On the cusp plane classify exact axes/coordinates, not a rounded hypot.
|
|
222
|
+
if (!nearBoundary && cartesianToSpheroid(spheroidScratch, shape)) {
|
|
223
|
+
// Preserve signed-zero atan2 at exact poles rather than projection's canonical zero.
|
|
224
|
+
const longitude = x === 0 && y === 0 ? Math.atan2(y, x) : spheroidScratch.x;
|
|
225
|
+
return toCartographicFromRadiansComponents(
|
|
226
|
+
longitude,
|
|
227
|
+
spheroidScratch.y,
|
|
228
|
+
spheroidScratch.z,
|
|
229
|
+
result
|
|
230
|
+
);
|
|
231
|
+
}
|
|
232
|
+
// Exact three-axis fallback can recover a unique root when the shared
|
|
233
|
+
// bounded numeric solve cannot represent its intermediate scaling.
|
|
202
234
|
}
|
|
235
|
+
// Retain the legacy representable squared-axis domain for normal arithmetic.
|
|
236
|
+
if (
|
|
237
|
+
!(this.minimumRadius > 0) ||
|
|
238
|
+
!Number.isFinite(this.maximumRadius * this.maximumRadius) ||
|
|
239
|
+
!Number.isFinite(1 / (this.minimumRadius * this.minimumRadius))
|
|
240
|
+
)
|
|
241
|
+
return undefined;
|
|
203
242
|
scratchCartesian.set(x, y, z);
|
|
204
243
|
const point = this.scaleToGeodeticSurface(scratchCartesian, scratchPosition);
|
|
205
244
|
|
|
@@ -207,64 +246,31 @@ export class Ellipsoid {
|
|
|
207
246
|
return undefined;
|
|
208
247
|
}
|
|
209
248
|
|
|
210
|
-
const
|
|
211
|
-
|
|
212
|
-
const
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
const
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
const
|
|
249
|
+
const gx = point[0] * this.oneOverRadiiSquared.x;
|
|
250
|
+
const gy = point[1] * this.oneOverRadiiSquared.y;
|
|
251
|
+
const gz = point[2] * this.oneOverRadiiSquared.z;
|
|
252
|
+
const length = Math.hypot(gx, gy, gz);
|
|
253
|
+
if (!(length > 0) || !Number.isFinite(length)) return undefined;
|
|
254
|
+
const nx = gx / length,
|
|
255
|
+
ny = gy / length,
|
|
256
|
+
nz = gz / length;
|
|
257
|
+
const longitude = Math.atan2(ny, nx);
|
|
258
|
+
const latitude = Math.atan2(nz, Math.hypot(nx, ny));
|
|
259
|
+
// Project onto the unit normal. The former sign(h dot input) can underflow
|
|
260
|
+
// for a deep interior even when its signed height is representable.
|
|
261
|
+
const height = (x - point[0]) * nx + (y - point[1]) * ny + (z - point[2]) * nz;
|
|
219
262
|
|
|
220
263
|
return toCartographicFromRadiansComponents(longitude, latitude, height, result);
|
|
221
264
|
}
|
|
222
265
|
|
|
223
|
-
/** Computes a 4x4 transformation matrix from a reference frame with an east-north-up axes
|
|
224
|
-
* centered at the provided origin to the provided ellipsoid's fixed reference frame. */
|
|
225
|
-
eastNorthUpToFixedFrame(origin: Readonly<NumericArray>, result?: Matrix4): Matrix4;
|
|
226
|
-
eastNorthUpToFixedFrame(origin: Readonly<NumericArray>, result: number[]): number[];
|
|
227
|
-
|
|
228
|
-
eastNorthUpToFixedFrame(origin: Readonly<NumericArray>, result = new Matrix4()) {
|
|
229
|
-
return localFrameToFixedFrame(this, 'east', 'north', 'up', origin, result);
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
/** Computes a 4x4 transformation matrix from a reference frame centered at
|
|
233
|
-
* the provided origin to the ellipsoid's fixed reference frame.
|
|
234
|
-
*/
|
|
235
|
-
localFrameToFixedFrame(
|
|
236
|
-
firstAxis: AxisDirection,
|
|
237
|
-
secondAxis: AxisDirection,
|
|
238
|
-
thirdAxis: AxisDirection,
|
|
239
|
-
origin: Readonly<NumericArray>,
|
|
240
|
-
result?: Matrix4
|
|
241
|
-
): Matrix4;
|
|
242
|
-
localFrameToFixedFrame<_Matrix4T>(
|
|
243
|
-
firstAxis: AxisDirection,
|
|
244
|
-
secondAxis: AxisDirection,
|
|
245
|
-
thirdAxis: AxisDirection,
|
|
246
|
-
origin: Readonly<NumericArray>,
|
|
247
|
-
result: number[]
|
|
248
|
-
): number[];
|
|
249
|
-
|
|
250
|
-
// Computes a 4x4 transformation matrix from a reference frame centered at
|
|
251
|
-
// the provided origin to the ellipsoid's fixed reference frame.
|
|
252
|
-
localFrameToFixedFrame(
|
|
253
|
-
firstAxis: AxisDirection,
|
|
254
|
-
secondAxis: AxisDirection,
|
|
255
|
-
thirdAxis: AxisDirection,
|
|
256
|
-
origin: Readonly<NumericArray>,
|
|
257
|
-
result = new Matrix4()
|
|
258
|
-
) {
|
|
259
|
-
return localFrameToFixedFrame(this, firstAxis, secondAxis, thirdAxis, origin, result);
|
|
260
|
-
}
|
|
261
|
-
|
|
262
266
|
/** Computes the unit vector directed from the center of this ellipsoid toward
|
|
263
267
|
* the provided Cartesian position. */
|
|
264
268
|
geocentricSurfaceNormal(cartesian: number[], result?: number[]): number[];
|
|
265
269
|
geocentricSurfaceNormal<NumArray>(cartesian: number[], result: NumArray): NumArray;
|
|
266
270
|
geocentricSurfaceNormal(cartesian: Readonly<NumericArray>, result = [0, 0, 0]) {
|
|
267
|
-
|
|
271
|
+
fromCartographic(cartesian, scratchVector);
|
|
272
|
+
const point = scratchVector;
|
|
273
|
+
return normalResult(point.x, point.y, point.z, result);
|
|
268
274
|
}
|
|
269
275
|
|
|
270
276
|
/** Computes the normal of the plane tangent to the surface of the ellipsoid at the provided
|
|
@@ -276,25 +282,72 @@ export class Ellipsoid {
|
|
|
276
282
|
): NumArray;
|
|
277
283
|
geodeticSurfaceNormalCartographic(cartographic: number[]): number[];
|
|
278
284
|
geodeticSurfaceNormalCartographic(cartographic: Readonly<NumericArray>, result = [0, 0, 0]) {
|
|
279
|
-
const
|
|
280
|
-
|
|
281
|
-
const
|
|
282
|
-
const
|
|
283
|
-
|
|
284
|
-
const cosLatitude =
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
285
|
+
const point = fromCartographic(cartographic, scratchCartesian);
|
|
286
|
+
const longitude = config._cartographicRadians ? point[0] : (point[0] * Math.PI) / 180;
|
|
287
|
+
const latitude = config._cartographicRadians ? point[1] : (point[1] * Math.PI) / 180;
|
|
288
|
+
const polarDegrees = !config._cartographicRadians && Math.abs(point[1]) > 45;
|
|
289
|
+
const complement = ((90 - Math.abs(point[1])) * Math.PI) / 180;
|
|
290
|
+
const cosLatitude = polarDegrees
|
|
291
|
+
? Math.sin(complement)
|
|
292
|
+
: Math.abs(latitude) === Math.PI / 2
|
|
293
|
+
? 0
|
|
294
|
+
: Math.cos(latitude);
|
|
295
|
+
const sinLatitude = polarDegrees
|
|
296
|
+
? Math.sign(point[1]) * Math.cos(complement)
|
|
297
|
+
: Math.sin(latitude);
|
|
298
|
+
return normalResult(
|
|
299
|
+
cosLatitude * Math.cos(longitude),
|
|
300
|
+
cosLatitude * Math.sin(longitude),
|
|
301
|
+
sinLatitude,
|
|
302
|
+
result
|
|
303
|
+
);
|
|
291
304
|
}
|
|
292
305
|
|
|
293
306
|
/** Computes the normal of the plane tangent to the surface of the ellipsoid at the provided position. */
|
|
294
307
|
geodeticSurfaceNormal<NumArrayT>(cartesian: number[], result: NumArrayT): NumArrayT;
|
|
295
308
|
geodeticSurfaceNormal(cartesian: number[]): number[];
|
|
296
309
|
geodeticSurfaceNormal(cartesian: Readonly<NumericArray>, result = [0, 0, 0]) {
|
|
297
|
-
|
|
310
|
+
if (!(this.minimumRadius > 0)) return undefined;
|
|
311
|
+
fromCartographic(cartesian, scratchVector);
|
|
312
|
+
const point = scratchVector;
|
|
313
|
+
const scale = Math.max(Math.abs(point.x), Math.abs(point.y), Math.abs(point.z));
|
|
314
|
+
if (!(scale > 0) || !Number.isFinite(scale)) return undefined;
|
|
315
|
+
const nx = (point.x / scale) * (this.minimumRadius / this.radii.x) ** 2;
|
|
316
|
+
const ny = (point.y / scale) * (this.minimumRadius / this.radii.y) ** 2;
|
|
317
|
+
const nz = (point.z / scale) * (this.minimumRadius / this.radii.z) ** 2;
|
|
318
|
+
if (
|
|
319
|
+
(point.x === 0 || Math.abs(nx) >= 2 ** -1022) &&
|
|
320
|
+
(point.y === 0 || Math.abs(ny) >= 2 ** -1022) &&
|
|
321
|
+
(point.z === 0 || Math.abs(nz) >= 2 ** -1022)
|
|
322
|
+
)
|
|
323
|
+
return normalResult(nx, ny, nz, result);
|
|
324
|
+
|
|
325
|
+
// Original exponent-scaled gradient fallback: evaluate x/a² only after
|
|
326
|
+
// extracting exact powers of two. Squared radius ratios and scaled input
|
|
327
|
+
// coordinates can underflow independently before their weights compensate.
|
|
328
|
+
const ex = point.x === 0 ? 0 : Math.min(1023, Math.floor(Math.log2(Math.abs(point.x))));
|
|
329
|
+
const ey = point.y === 0 ? 0 : Math.min(1023, Math.floor(Math.log2(Math.abs(point.y))));
|
|
330
|
+
const ez = point.z === 0 ? 0 : Math.min(1023, Math.floor(Math.log2(Math.abs(point.z))));
|
|
331
|
+
const ax = Math.min(1023, Math.floor(Math.log2(this.radii.x)));
|
|
332
|
+
const ay = Math.min(1023, Math.floor(Math.log2(this.radii.y)));
|
|
333
|
+
const az = Math.min(1023, Math.floor(Math.log2(this.radii.z)));
|
|
334
|
+
const common = Math.max(
|
|
335
|
+
point.x === 0 ? -Infinity : ex - 2 * ax,
|
|
336
|
+
point.y === 0 ? -Infinity : ey - 2 * ay,
|
|
337
|
+
point.z === 0 ? -Infinity : ez - 2 * az
|
|
338
|
+
);
|
|
339
|
+
return normalResult(
|
|
340
|
+
point.x === 0
|
|
341
|
+
? point.x
|
|
342
|
+
: (point.x / 2 ** ex / (this.radii.x / 2 ** ax) ** 2) * 2 ** (ex - 2 * ax - common),
|
|
343
|
+
point.y === 0
|
|
344
|
+
? point.y
|
|
345
|
+
: (point.y / 2 ** ey / (this.radii.y / 2 ** ay) ** 2) * 2 ** (ey - 2 * ay - common),
|
|
346
|
+
point.z === 0
|
|
347
|
+
? point.z
|
|
348
|
+
: (point.z / 2 ** ez / (this.radii.z / 2 ** az) ** 2) * 2 ** (ez - 2 * az - common),
|
|
349
|
+
result
|
|
350
|
+
);
|
|
298
351
|
}
|
|
299
352
|
|
|
300
353
|
/** Scales the provided Cartesian position along the geodetic surface normal
|
|
@@ -307,34 +360,47 @@ export class Ellipsoid {
|
|
|
307
360
|
/** Scales the provided Cartesian position along the geocentric surface normal
|
|
308
361
|
* so that it is on the surface of this ellipsoid. */
|
|
309
362
|
scaleToGeocentricSurface(cartesian: number[], result: number[] = [0, 0, 0]): number[] {
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
const
|
|
313
|
-
|
|
314
|
-
const
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
363
|
+
fromCartographic(cartesian, scratchPosition);
|
|
364
|
+
const point = scratchPosition;
|
|
365
|
+
const scale = Math.max(Math.abs(point.x), Math.abs(point.y), Math.abs(point.z));
|
|
366
|
+
if (!(this.minimumRadius > 0) || !(scale > 0) || !Number.isFinite(scale)) return undefined;
|
|
367
|
+
const squared =
|
|
368
|
+
point.x * point.x * this.oneOverRadiiSquared.x +
|
|
369
|
+
point.y * point.y * this.oneOverRadiiSquared.y +
|
|
370
|
+
point.z * point.z * this.oneOverRadiiSquared.z;
|
|
371
|
+
// Preserve the ordinary path's established rounding; scale only when its
|
|
372
|
+
// squared intermediates are unsafe. Commit scalar snapshots in both paths.
|
|
373
|
+
if (
|
|
374
|
+
squared >= 2 ** -1022 &&
|
|
375
|
+
Number.isFinite(squared) &&
|
|
376
|
+
scale * scale >= 2 ** -1022 &&
|
|
377
|
+
Number.isFinite(scale * scale)
|
|
378
|
+
) {
|
|
379
|
+
const beta = 1 / Math.sqrt(squared);
|
|
380
|
+
return writeResult(result, point.x * beta, point.y * beta, point.z * beta);
|
|
381
|
+
}
|
|
382
|
+
const x = point.x / scale,
|
|
383
|
+
y = point.y / scale,
|
|
384
|
+
z = point.z / scale;
|
|
385
|
+
const norm = Math.hypot(x / this.radii.x, y / this.radii.y, z / this.radii.z);
|
|
386
|
+
if (!(norm > 0) || !Number.isFinite(norm)) return undefined;
|
|
387
|
+
return writeResult(result, x / norm, y / norm, z / norm);
|
|
326
388
|
}
|
|
327
389
|
|
|
328
390
|
/** Transforms a Cartesian X, Y, Z position to the ellipsoid-scaled space by multiplying
|
|
329
391
|
* its components by the result of `Ellipsoid#oneOverRadii` */
|
|
330
392
|
transformPositionToScaledSpace(position: number[], result: number[] = [0, 0, 0]): number[] {
|
|
331
|
-
|
|
393
|
+
fromCartographic(position, scratchPosition);
|
|
394
|
+
const point = scratchPosition.scale(this.oneOverRadii);
|
|
395
|
+
return writeResult(result, point.x, point.y, point.z);
|
|
332
396
|
}
|
|
333
397
|
|
|
334
398
|
/** Transforms a Cartesian X, Y, Z position from the ellipsoid-scaled space by multiplying
|
|
335
399
|
* its components by the result of `Ellipsoid#radii`. */
|
|
336
400
|
transformPositionFromScaledSpace(position: number[], result: number[] = [0, 0, 0]): number[] {
|
|
337
|
-
|
|
401
|
+
fromCartographic(position, scratchPosition);
|
|
402
|
+
const point = scratchPosition.scale(this.radii);
|
|
403
|
+
return writeResult(result, point.x, point.y, point.z);
|
|
338
404
|
}
|
|
339
405
|
|
|
340
406
|
/** Computes a point which is the intersection of the surface normal with the z-axis. */
|
|
@@ -344,17 +410,24 @@ export class Ellipsoid {
|
|
|
344
410
|
result: number[] = [0, 0, 0]
|
|
345
411
|
): number[] {
|
|
346
412
|
// Ellipsoid must be an ellipsoid of revolution (radii.x == radii.y)
|
|
347
|
-
assert(
|
|
348
|
-
assert(this.radii.z > 0);
|
|
413
|
+
assert(this.radii.x === this.radii.y && this.minimumRadius > 0);
|
|
349
414
|
|
|
350
|
-
|
|
415
|
+
fromCartographic(position, scratchPosition);
|
|
416
|
+
if (
|
|
417
|
+
!Number.isFinite(scratchPosition.x) ||
|
|
418
|
+
!Number.isFinite(scratchPosition.y) ||
|
|
419
|
+
!Number.isFinite(scratchPosition.z) ||
|
|
420
|
+
!Number.isFinite(buffer)
|
|
421
|
+
)
|
|
422
|
+
return undefined;
|
|
351
423
|
const z = scratchPosition.z * (1 - this.squaredXOverSquaredZ);
|
|
424
|
+
if (!Number.isFinite(z)) return undefined;
|
|
352
425
|
|
|
353
426
|
if (Math.abs(z) >= this.radii.z - buffer) {
|
|
354
427
|
return undefined;
|
|
355
428
|
}
|
|
356
429
|
|
|
357
|
-
return
|
|
430
|
+
return writeResult(result, 0, 0, z);
|
|
358
431
|
}
|
|
359
432
|
}
|
|
360
433
|
|
|
@@ -363,3 +436,14 @@ function validateSpheroid(a: number, b: number): void {
|
|
|
363
436
|
if (!Number.isFinite(a) || !Number.isFinite(b) || a <= 0 || b <= 0 || b > a)
|
|
364
437
|
throw new Error('Spheroid requires finite positive axes with semiMinorAxis <= semiMajorAxis');
|
|
365
438
|
}
|
|
439
|
+
|
|
440
|
+
/** Original scaled normalization and scalar commit; safe for tiny/huge rays and reentrant setters. */
|
|
441
|
+
function normalResult(x: number, y: number, z: number, result: number[]): number[] {
|
|
442
|
+
const scale = Math.max(Math.abs(x), Math.abs(y), Math.abs(z));
|
|
443
|
+
if (!(scale > 0) || !Number.isFinite(scale)) return undefined;
|
|
444
|
+
const nx = x / scale,
|
|
445
|
+
ny = y / scale,
|
|
446
|
+
nz = z / scale;
|
|
447
|
+
const length = Math.hypot(nx, ny, nz);
|
|
448
|
+
return writeResult(result, nx / length, ny / length, nz / length);
|
|
449
|
+
}
|
package/src/entries/ellipsoid.ts
CHANGED
|
@@ -6,3 +6,39 @@ export {Ellipsoid} from '../ellipsoid';
|
|
|
6
6
|
export {EllipsoidTangentPlane} from '../ellipsoid-tangent-plane';
|
|
7
7
|
export {isWGS84} from '../type-utils';
|
|
8
8
|
export type {SpheroidParameters} from '@math.gl/core/types';
|
|
9
|
+
export {EllipsoidGeodesic} from '../ellipsoid-geodesic';
|
|
10
|
+
export type {
|
|
11
|
+
GeodesicResult,
|
|
12
|
+
GeodesicLine,
|
|
13
|
+
GeodesicParameters,
|
|
14
|
+
GeodesicOptions
|
|
15
|
+
} from '../ellipsoid-geodesic';
|
|
16
|
+
export {LocalReferenceFrame} from '../local-reference-frame';
|
|
17
|
+
export type {LocalReferenceFrameOptions, HeadingPitchRoll} from '../local-reference-frame';
|
|
18
|
+
export type {TangentPlaneProjectionMode, TangentPlaneProjection} from '../ellipsoid-tangent-plane';
|
|
19
|
+
|
|
20
|
+
export {EllipsoidMetrics} from '../ellipsoid-metrics';
|
|
21
|
+
export type {AuxiliaryLatitude} from '../ellipsoid-metrics';
|
|
22
|
+
export {GeodesicPolygon} from '../geodesic-polygon';
|
|
23
|
+
export type {GeodesicPolygonResult, GeodesicPolygonOptions} from '../geodesic-polygon';
|
|
24
|
+
|
|
25
|
+
export {EllipsoidRhumb, RhumbDomainError} from '../ellipsoid-rhumb';
|
|
26
|
+
export type {RhumbOptions, RhumbResult, RhumbLine} from '../ellipsoid-rhumb';
|
|
27
|
+
export {RhumbPolygon} from '../rhumb-polygon';
|
|
28
|
+
export type {RhumbPolygonOptions, RhumbPolygonResult, RhumbPointOptions} from '../rhumb-polygon';
|
|
29
|
+
export {GeodesicIntersections} from '../geodesic-intersections';
|
|
30
|
+
export type {
|
|
31
|
+
GeodesicPath as GeodesicIntersectionPath,
|
|
32
|
+
IntersectionPoint,
|
|
33
|
+
IntersectionSearchOptions,
|
|
34
|
+
IntersectionSearch,
|
|
35
|
+
ClosestIntersection,
|
|
36
|
+
SegmentIntersection
|
|
37
|
+
} from '../geodesic-intersections';
|
|
38
|
+
export {GeodesicPath} from '../geodesic-path';
|
|
39
|
+
export type {GeodesicPathOptions} from '../geodesic-path';
|
|
40
|
+
export {RhumbPath} from '../rhumb-path';
|
|
41
|
+
export type {RhumbPathOptions} from '../rhumb-path';
|
|
42
|
+
|
|
43
|
+
export {eastNorthUpToFixedFrame, localFrameToFixedFrame} from '../ellipsoid-transforms';
|
|
44
|
+
export type {AxisDirection} from '../ellipsoid-transforms';
|
package/src/expressions.ts
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
|
|
4
4
|
/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-return */
|
|
5
5
|
|
|
6
|
+
import {eastNorthUpToFixedFrame} from './ellipsoid-transforms';
|
|
6
7
|
import {Ellipsoid} from './ellipsoid';
|
|
7
8
|
import {isWGS84} from './type-utils';
|
|
8
9
|
import {toDegrees, toRadians} from '@math.gl/core';
|
|
@@ -15,7 +16,7 @@ export const GEOSPATIAL_FUNCTION_LIBRARY: ExpressionFunctionLibrary = {
|
|
|
15
16
|
cartographicToCartesian: (cartographic: number[], result?: number[]) =>
|
|
16
17
|
Ellipsoid.WGS84.cartographicToCartesian(cartographic, result),
|
|
17
18
|
eastNorthUpToFixedFrame: (origin: number[], result?: number[]) =>
|
|
18
|
-
Ellipsoid.WGS84
|
|
19
|
+
eastNorthUpToFixedFrame(Ellipsoid.WGS84, origin, result),
|
|
19
20
|
geodeticSurfaceNormal: (cartesian: number[], result?: number[]) =>
|
|
20
21
|
Ellipsoid.WGS84.geodeticSurfaceNormal(cartesian, result),
|
|
21
22
|
geodeticSurfaceNormalCartographic: (cartographic: number[], result?: number[]) =>
|
package/src/geoarrow/codecs.ts
CHANGED
|
@@ -13,7 +13,7 @@ import type {
|
|
|
13
13
|
GeoArrowGeometryValue,
|
|
14
14
|
GeoArrowSerialized
|
|
15
15
|
} from './types';
|
|
16
|
-
import {getGeoArrowDimensionSize} from './types';
|
|
16
|
+
import {getGeoArrowDimensionSize, mergeGeoArrowDimensions} from './types';
|
|
17
17
|
import type {GeoArrowBuilderEncoding} from './builder';
|
|
18
18
|
import {GeoArrowBuilder, makeGeoArrowColumnFromGeometryRows} from './builder';
|
|
19
19
|
import {getGeoArrowOffset, isGeoArrowValueValid, materializeGeometryRow} from './layout';
|
|
@@ -82,7 +82,7 @@ export function decodeGeoArrowWKB(
|
|
|
82
82
|
bytes,
|
|
83
83
|
{
|
|
84
84
|
geometry: (header, _count, depth) => {
|
|
85
|
-
rowDimension =
|
|
85
|
+
rowDimension = mergeGeoArrowDimensions(rowDimension, header.dimension);
|
|
86
86
|
if (concreteRootDepth >= 0 && depth > concreteRootDepth) return;
|
|
87
87
|
concreteRootDepth = -1;
|
|
88
88
|
while (
|
|
@@ -112,7 +112,7 @@ export function decodeGeoArrowWKB(
|
|
|
112
112
|
dimensions[rowIndex] = getDimensionIndex(rowDimension);
|
|
113
113
|
rootFamilies.add(rootFamily);
|
|
114
114
|
schemaKeys.add(getGeometryTypeIdFromIndices(rootFamily, dimensions[rowIndex]));
|
|
115
|
-
inferredDimension =
|
|
115
|
+
inferredDimension = mergeGeoArrowDimensions(inferredDimension, rowDimension);
|
|
116
116
|
}
|
|
117
117
|
classifications.push({families, dimensions});
|
|
118
118
|
}
|
|
@@ -803,12 +803,6 @@ function getDimensionFromId(typeId: number): GeoArrowDimension {
|
|
|
803
803
|
return DIMENSIONS[(typeId - 1) % 4];
|
|
804
804
|
}
|
|
805
805
|
|
|
806
|
-
function mergeDimensions(left: GeoArrowDimension, right: GeoArrowDimension): GeoArrowDimension {
|
|
807
|
-
const hasZ = left === 'xyz' || left === 'xyzm' || right === 'xyz' || right === 'xyzm';
|
|
808
|
-
const hasM = left === 'xym' || left === 'xyzm' || right === 'xym' || right === 'xyzm';
|
|
809
|
-
return hasZ && hasM ? 'xyzm' : hasZ ? 'xyz' : hasM ? 'xym' : 'xy';
|
|
810
|
-
}
|
|
811
|
-
|
|
812
806
|
function resolveDecodeDimension(
|
|
813
807
|
requested: DecodeGeoArrowWKBOptions['dimension'],
|
|
814
808
|
declared: GeoArrowDimension,
|
package/src/geoarrow/index.ts
CHANGED
|
@@ -27,7 +27,9 @@ export type {
|
|
|
27
27
|
export {
|
|
28
28
|
getGeoArrowDimensionSize,
|
|
29
29
|
getGeoArrowEncodingForGeometry,
|
|
30
|
-
getGeoArrowGeometryType
|
|
30
|
+
getGeoArrowGeometryType,
|
|
31
|
+
inferGeoArrowGeometryDimension,
|
|
32
|
+
mergeGeoArrowDimensions
|
|
31
33
|
} from './types';
|
|
32
34
|
|
|
33
35
|
export type {GeoArrowBatchView, GeoArrowRowView} from './views';
|
package/src/geoarrow/types.ts
CHANGED
|
@@ -187,6 +187,46 @@ export function getGeoArrowDimensionSize(dimension: GeoArrowDimension): 2 | 3 |
|
|
|
187
187
|
}
|
|
188
188
|
}
|
|
189
189
|
|
|
190
|
+
/** Combines semantic dimensions without confusing a measure ordinate with elevation. */
|
|
191
|
+
export function mergeGeoArrowDimensions(
|
|
192
|
+
left: GeoArrowDimension,
|
|
193
|
+
right: GeoArrowDimension
|
|
194
|
+
): GeoArrowDimension {
|
|
195
|
+
const hasZ = left === 'xyz' || left === 'xyzm' || right === 'xyz' || right === 'xyzm';
|
|
196
|
+
const hasM = left === 'xym' || left === 'xyzm' || right === 'xym' || right === 'xyzm';
|
|
197
|
+
return hasZ && hasM ? 'xyzm' : hasZ ? 'xyz' : hasM ? 'xym' : 'xy';
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* Infers the dimensions present in coordinate arrays of a tagged geometry value.
|
|
202
|
+
* Three ordinates are interpreted as XYZ; callers with XYM data should supply that semantic
|
|
203
|
+
* dimension explicitly instead of inferring it from tuple length.
|
|
204
|
+
*/
|
|
205
|
+
export function inferGeoArrowGeometryDimension(geometry: GeoArrowGeometryValue): GeoArrowDimension {
|
|
206
|
+
if (geometry.type === 'GeometryCollection') {
|
|
207
|
+
return geometry.geometries.reduce(
|
|
208
|
+
(dimension, child) =>
|
|
209
|
+
mergeGeoArrowDimensions(dimension, inferGeoArrowGeometryDimension(child)),
|
|
210
|
+
'xy' as GeoArrowDimension
|
|
211
|
+
);
|
|
212
|
+
}
|
|
213
|
+
return inferCoordinateDimensions(geometry.coordinates);
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
/** Infers the combined dimensions of nested coordinate tuples. */
|
|
217
|
+
function inferCoordinateDimensions(coordinates: readonly unknown[]): GeoArrowDimension {
|
|
218
|
+
if (typeof coordinates[0] === 'number') {
|
|
219
|
+
return coordinates.length >= 4 ? 'xyzm' : coordinates.length === 3 ? 'xyz' : 'xy';
|
|
220
|
+
}
|
|
221
|
+
let dimension: GeoArrowDimension = 'xy';
|
|
222
|
+
for (const child of coordinates) {
|
|
223
|
+
if (Array.isArray(child)) {
|
|
224
|
+
dimension = mergeGeoArrowDimensions(dimension, inferCoordinateDimensions(child));
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
return dimension;
|
|
228
|
+
}
|
|
229
|
+
|
|
190
230
|
/** Returns the concrete geometry family associated with an encoding. */
|
|
191
231
|
export function getGeoArrowGeometryType(
|
|
192
232
|
encoding: GeoArrowEncoding
|