webdggrid 1.7.0 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/webdggrid.js +1 -1
- package/dist/webdggrid.js.map +1 -1
- package/dist/webdggrid.umd.js +1 -1
- package/dist/webdggrid.umd.js.map +1 -1
- package/lib-esm/libdggrid.wasm.js +1 -1
- package/lib-esm/tsconfig.tsbuildinfo +1 -1
- package/lib-esm/webdggrid.js +343 -19
- package/lib-esm/webdggrid.js.map +1 -1
- package/lib-wasm/CMakeCache.txt +3 -3
- package/lib-wasm/CMakeFiles/3.31.6/CMakeCCompiler.cmake +6 -6
- package/lib-wasm/CMakeFiles/3.31.6/CMakeCXXCompiler.cmake +6 -6
- package/lib-wasm/CMakeFiles/3.31.6/CMakeSystem.cmake +3 -3
- package/lib-wasm/CMakeFiles/CMakeConfigureLog.yaml +1 -1
- package/lib-wasm/CMakeFiles/Makefile.cmake +1 -1
- package/lib-wasm/CMakeFiles/libdggrid.dir/DependInfo.cmake +3 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/build.make +391 -343
- package/lib-wasm/CMakeFiles/libdggrid.dir/cmake_clean.cmake +6 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/flags.make +4 -4
- package/lib-wasm/CMakeFiles/libdggrid.dir/link.txt +1 -1
- package/lib-wasm/CMakeFiles/libdggrid.dir/progress.make +99 -96
- package/lib-wasm/CMakeFiles/libdggrid.dir/src-cpp/dggrid_transform.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/src-cpp/dggrid_transform.cpp.o.d +675 -676
- package/lib-wasm/CMakeFiles/libdggrid.dir/src-cpp/igeo7_bindings.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/src-cpp/igeo7_bindings.cpp.o.d +714 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/src-cpp/webdggrid.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/src-cpp/webdggrid.cpp.o.d +692 -693
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgAddressBase.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgAddressBase.cpp.o.d +662 -663
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgAddressType.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgAddressType.cpp.o.d +662 -663
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgApSeq.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgApSeq.cpp.o.d +669 -670
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgBase.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgBase.cpp.o.d +662 -663
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgBoundedHexC2RF2D.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgBoundedHexC2RF2D.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgBoundedHexC3C2RF2D.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgBoundedHexC3C2RF2D.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgBoundedHexC3RF2D.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgBoundedHexC3RF2D.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgBoundedIDGG.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgBoundedIDGG.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgBoundedIDGGS.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgBoundedIDGGS.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgBoundedRF2D.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgBoundedRF2D.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgBoundedRFBase0.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgBoundedRFBase0.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgBoundedRFS2D.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgBoundedRFS2D.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgCell.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgCell.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgColor.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgColor.cpp.o.d +669 -670
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgConverterBase.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgConverterBase.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgDVec2D.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgDVec2D.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgDVec3D.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgDVec3D.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgDataFieldBase.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgDataFieldBase.cpp.o.d +662 -663
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgDataList.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgDataList.cpp.o.d +662 -663
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgDiscRFS2D.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgDiscRFS2D.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgDistanceBase.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgDistanceBase.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgDmdD4Grid2D.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgDmdD4Grid2D.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgDmdD4Grid2DS.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgDmdD4Grid2DS.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgDmdD8Grid2D.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgDmdD8Grid2D.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgDmdD8Grid2DS.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgDmdD8Grid2DS.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgDmdIDGG.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgDmdIDGG.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgEllipsoidRF.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgEllipsoidRF.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgGeoSphRF.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgGeoSphRF.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgGridTopo.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgGridTopo.cpp.o.d +662 -663
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgHexC1Grid2D.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgHexC1Grid2D.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgHexC2Grid2D.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgHexC2Grid2D.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgHexC3Grid2D.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgHexC3Grid2D.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgHexGrid2DS.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgHexGrid2DS.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgHexIDGG.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgHexIDGG.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgHexIDGGS.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgHexIDGGS.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgIDGG.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgIDGG.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgIDGGBase.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgIDGGBase.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgIDGGS.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgIDGGS.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgIDGGS3H.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgIDGGS3H.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgIDGGS43H.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgIDGGS43H.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgIDGGS4D.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgIDGGS4D.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgIDGGS4H.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgIDGGS4H.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgIDGGS4T.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgIDGGS4T.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgIDGGS7H.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgIDGGS7H.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgIDGGSBase.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgIDGGSBase.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgIDGGutil.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgIDGGutil.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgIVec2D.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgIVec2D.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgIVec3D.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgIVec3D.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgIcosaMap.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgIcosaMap.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgInAIGenFile.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgInAIGenFile.cpp.o.d +691 -692
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgInGdalFile.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgInLocStreamFile.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgInLocStreamFile.cpp.o.d +682 -683
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgInLocTextFile.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgInLocTextFile.cpp.o.d +691 -692
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgInShapefile.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgInShapefile.cpp.o.d +691 -692
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgInShapefileAtt.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgInShapefileAtt.cpp.o.d +695 -696
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgInputStream.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgInputStream.cpp.o.d +682 -683
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgLocBase.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgLocBase.cpp.o.d +662 -663
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgLocList.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgLocList.cpp.o.d +672 -673
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgLocVector.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgLocVector.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgLocation.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgLocation.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgOutAIGenFile.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgOutAIGenFile.cpp.o.d +691 -692
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgOutChildrenFile.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgOutChildrenFile.cpp.o.d +690 -691
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgOutGdalFile.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgOutGeoJSONFile.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgOutGeoJSONFile.cpp.o.d +691 -692
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgOutKMLfile.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgOutKMLfile.cpp.o.d +691 -692
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgOutLocFile.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgOutLocFile.cpp.o.d +695 -696
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgOutLocTextFile.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgOutLocTextFile.cpp.o.d +689 -690
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgOutNeighborsFile.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgOutNeighborsFile.cpp.o.d +690 -691
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgOutPRCellsFile.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgOutPRCellsFile.cpp.o.d +691 -692
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgOutPRPtsFile.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgOutPRPtsFile.cpp.o.d +691 -692
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgOutPtsText.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgOutPtsText.cpp.o.d +691 -692
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgOutRandPtsText.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgOutRandPtsText.cpp.o.d +691 -692
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgOutShapefile.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgOutShapefile.cpp.o.d +698 -699
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgOutputStream.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgOutputStream.cpp.o.d +682 -683
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgPolygon.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgPolygon.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgProjFuller.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgProjFuller.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgProjGnomonicRF.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgProjGnomonicRF.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgProjISEA.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgProjISEA.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgProjTriRF.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgProjTriRF.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgRFBase.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgRFBase.cpp.o.d +672 -673
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgRFNetwork.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgRFNetwork.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgRandom.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgRandom.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgSeriesConverter.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgSeriesConverter.cpp.o.d +672 -673
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgSqrD4Grid2D.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgSqrD4Grid2D.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgSqrD4Grid2DS.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgSqrD4Grid2DS.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgSqrD8Grid2D.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgSqrD8Grid2D.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgSqrD8Grid2DS.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgSqrD8Grid2DS.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgSuperfund.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgSuperfund.cpp.o.d +662 -663
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgTriGrid2D.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgTriGrid2D.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgTriGrid2DS.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgTriGrid2DS.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgTriIDGG.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgTriIDGG.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgUtil.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgUtil.cpp.o.d +669 -670
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgZ3RF.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgZ3RF.cpp.o.d +674 -675
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgZ3StringRF.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgZ3StringRF.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgZ7RF.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgZ7RF.cpp.o.d +674 -675
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgZ7StringRF.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgZ7StringRF.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgZOrderRF.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgZOrderRF.cpp.o.d +674 -675
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgZOrderStringRF.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/dglib/lib/DgZOrderStringRF.cpp.o.d +671 -672
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/proj4lib/lib/adjlon.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/proj4lib/lib/adjlon.cpp.o.d +128 -129
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/proj4lib/lib/pj_auth.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/proj4lib/lib/pj_auth.cpp.o.d +132 -133
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/proj4lib/lib/pj_mlfn.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/proj4lib/lib/pj_mlfn.cpp.o.d +132 -133
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/proj4lib/lib/pj_msfn.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/proj4lib/lib/pj_msfn.cpp.o.d +131 -132
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/proj4lib/lib/pj_phi2.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/proj4lib/lib/pj_phi2.cpp.o.d +132 -133
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/proj4lib/lib/pj_qsfn.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/proj4lib/lib/pj_qsfn.cpp.o.d +128 -129
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/proj4lib/lib/pj_tsfn.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/proj4lib/lib/pj_tsfn.cpp.o.d +128 -129
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/shapelib/lib/dbfopen.c.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/shapelib/lib/dbfopen.c.o.d +24 -25
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/shapelib/lib/safileio.c.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/shapelib/lib/safileio.c.o.d +27 -28
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/shapelib/lib/sbnsearch.c.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/shapelib/lib/sbnsearch.c.o.d +24 -25
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/shapelib/lib/shpopen.c.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/shapelib/lib/shpopen.c.o.d +29 -30
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/shapelib/lib/shptree.c.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/shapelib/lib/shptree.c.o.d +27 -28
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/shapelib/lib/shputils.c.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/DGGRID/src/lib/shapelib/lib/shputils.c.o.d +21 -22
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/igeo7_duckdb/src/auth/authalic.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/igeo7_duckdb/src/auth/authalic.cpp.o.d +625 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/igeo7_duckdb/src/z7/library.cpp.o +0 -0
- package/lib-wasm/CMakeFiles/libdggrid.dir/submodules/igeo7_duckdb/src/z7/library.cpp.o.d +720 -0
- package/lib-wasm/Makefile +81 -0
- package/lib-wasm/cmake_install.cmake +1 -1
- package/lib-wasm/libdggrid.js +1 -1
- package/lib-wasm/libdggrid.wasm +0 -0
- package/package.json +1 -1
- package/src-ts/webdggrid.ts +369 -17
- package/types/webdggrid.d.ts +209 -7
- package/types/webdggrid.d.ts.map +1 -1
package/src-ts/webdggrid.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// @ts-ignore
|
|
2
2
|
import { loadWasm, unloadWasm } from './libdggrid.wasm.js';
|
|
3
|
-
import { Feature, FeatureCollection, GeoJsonProperties, Polygon, Position } from 'geojson';
|
|
3
|
+
import { Feature, FeatureCollection, GeoJSON, GeoJsonProperties, Polygon, Position } from 'geojson';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* The shape of each cell in the Discrete Global Grid System.
|
|
@@ -187,21 +187,31 @@ export interface IDGGSProps {
|
|
|
187
187
|
|
|
188
188
|
/**
|
|
189
189
|
* Rewraps a polygon ring that crosses the antimeridian so that all longitudes
|
|
190
|
-
* are in a contiguous range
|
|
191
|
-
*
|
|
192
|
-
*
|
|
193
|
-
*
|
|
190
|
+
* are in a contiguous range. The output longitudes may fall outside
|
|
191
|
+
* [-180, 180] — that's intentional, and is the format expected by MapLibre
|
|
192
|
+
* GL / Mapbox GL globe projection for antimeridian cells. For renderers that
|
|
193
|
+
* require standard [-180, 180] coordinates, run a final modulo step
|
|
194
|
+
* downstream.
|
|
195
|
+
*
|
|
196
|
+
* Walks consecutive vertices and accumulates a ±360 offset whenever the
|
|
197
|
+
* longitude delta between neighbours exceeds 180° (the only meaningful sign
|
|
198
|
+
* of an antimeridian crossing). This keeps the traversal direction faithful
|
|
199
|
+
* even for polar caps, which span a full 360° in lon and were broken by the
|
|
200
|
+
* previous "negative-to-positive" rewrite.
|
|
194
201
|
*/
|
|
195
202
|
export function unwrapAntimeridianRing(ring: Position[]): Position[] {
|
|
196
|
-
|
|
197
|
-
|
|
203
|
+
if (ring.length === 0) return ring;
|
|
204
|
+
const out: Position[] = [[ring[0][0], ring[0][1]]];
|
|
205
|
+
let offset = 0;
|
|
198
206
|
for (let i = 1; i < ring.length; i++) {
|
|
199
|
-
const
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
207
|
+
const prev = ring[i - 1][0];
|
|
208
|
+
const curr = ring[i][0];
|
|
209
|
+
const delta = curr - prev;
|
|
210
|
+
if (delta > 180) offset -= 360;
|
|
211
|
+
else if (delta < -180) offset += 360;
|
|
212
|
+
out.push([curr + offset, ring[i][1]]);
|
|
213
|
+
}
|
|
214
|
+
return out;
|
|
205
215
|
}
|
|
206
216
|
|
|
207
217
|
const DEFAULT_RESOLUTION = 1;
|
|
@@ -778,13 +788,22 @@ export class Webdggrid {
|
|
|
778
788
|
* retrieve.
|
|
779
789
|
* @param resolution - Resolution at which the IDs were generated. Defaults
|
|
780
790
|
* to the instance's current {@link resolution}.
|
|
791
|
+
* @param unwrap - When `true` (default), antimeridian-crossing rings are
|
|
792
|
+
* passed through {@link unwrapAntimeridianRing} so longitudes stay
|
|
793
|
+
* contiguous (lons may exceed 180°). Required by MapLibre GL / Mapbox
|
|
794
|
+
* GL globe projection. Set to `false` to receive the raw DGGRID output
|
|
795
|
+
* in `[-180, 180]` — required by Cesium's `GeoJsonDataSource` (which
|
|
796
|
+
* internally normalises lons and breaks polar caps under unwrap), and
|
|
797
|
+
* by any sphere-aware renderer that interpolates edges as great-circle
|
|
798
|
+
* arcs.
|
|
781
799
|
* @returns A 2-D array: `result[i]` is the vertex ring of `sequenceNum[i]`.
|
|
782
800
|
* Each vertex is a `[lng, lat]` position.
|
|
783
801
|
* @throws If the WASM module encounters an invalid cell ID.
|
|
784
802
|
*/
|
|
785
803
|
sequenceNumToGrid(
|
|
786
804
|
sequenceNum: bigint[],
|
|
787
|
-
resolution: number = DEFAULT_RESOLUTION
|
|
805
|
+
resolution: number = DEFAULT_RESOLUTION,
|
|
806
|
+
unwrap: boolean = true
|
|
788
807
|
): Position[][] {
|
|
789
808
|
const {
|
|
790
809
|
poleCoordinates: { lat, lng },
|
|
@@ -836,7 +855,7 @@ export class Webdggrid {
|
|
|
836
855
|
for (let j = 0; j < numVertexes; j += 1) {
|
|
837
856
|
coordinates.push([resultArray[xOffset + j], resultArray[yOffset + j]]);
|
|
838
857
|
}
|
|
839
|
-
featureSet.push(unwrapAntimeridianRing(coordinates));
|
|
858
|
+
featureSet.push(unwrap ? unwrapAntimeridianRing(coordinates) : coordinates);
|
|
840
859
|
xOffset += numVertexes;
|
|
841
860
|
yOffset += numVertexes;
|
|
842
861
|
}
|
|
@@ -874,15 +893,19 @@ export class Webdggrid {
|
|
|
874
893
|
* @param sequenceNum - Array of `BigInt` cell IDs to convert.
|
|
875
894
|
* @param resolution - Resolution at which the IDs were generated. Defaults
|
|
876
895
|
* to the instance's current {@link resolution}.
|
|
896
|
+
* @param unwrap - Forwarded to {@link sequenceNumToGrid}. Defaults to
|
|
897
|
+
* `true` (MapLibre-style unwrap). Pass `false` for Cesium and other
|
|
898
|
+
* great-circle-arc renderers.
|
|
877
899
|
* @returns A GeoJSON `FeatureCollection` of `Polygon` features, one per
|
|
878
900
|
* input cell ID.
|
|
879
901
|
*/
|
|
880
902
|
sequenceNumToGridFeatureCollection(
|
|
881
903
|
sequenceNum: bigint[],
|
|
882
|
-
resolution: number = DEFAULT_RESOLUTION
|
|
904
|
+
resolution: number = DEFAULT_RESOLUTION,
|
|
905
|
+
unwrap: boolean = true
|
|
883
906
|
): FeatureCollection<Polygon, DGGSGeoJsonProperty> {
|
|
884
907
|
|
|
885
|
-
const coordinatesArray = this.sequenceNumToGrid(sequenceNum, resolution);
|
|
908
|
+
const coordinatesArray = this.sequenceNumToGrid(sequenceNum, resolution, unwrap);
|
|
886
909
|
|
|
887
910
|
const features = coordinatesArray.map((coordinates, index) => {
|
|
888
911
|
const seqNum = sequenceNum[index];
|
|
@@ -2370,4 +2393,333 @@ export class Webdggrid {
|
|
|
2370
2393
|
// There are no PLANE_to_* transformations available.
|
|
2371
2394
|
// Use other coordinate systems (GEO, SEQNUM, Q2DI, Q2DD, PROJTRI) as input.
|
|
2372
2395
|
// -------------------------------------------------------------------------
|
|
2396
|
+
|
|
2397
|
+
// =========================================================================
|
|
2398
|
+
// IGEO7 / Z7 — hexagonal hierarchical index (packed UBIGINT)
|
|
2399
|
+
//
|
|
2400
|
+
// Wraps the upstream Z7 C++ core library (from allixender/igeo7_duckdb).
|
|
2401
|
+
// These are **stateless** bit-level operations on a packed 64-bit index —
|
|
2402
|
+
// they do **not** use the active DGGS configuration and can be called
|
|
2403
|
+
// without first invoking {@link setDggs}.
|
|
2404
|
+
//
|
|
2405
|
+
// Index layout (MSB → LSB):
|
|
2406
|
+
// [63:60] base cell (0-11)
|
|
2407
|
+
// [59:57] digit 1 (0-6; 7 = padding / unused slot)
|
|
2408
|
+
// [56:54] digit 2
|
|
2409
|
+
// ...
|
|
2410
|
+
// [ 2: 0] digit 20
|
|
2411
|
+
//
|
|
2412
|
+
// The "compact string" form from {@link igeo7ToString} is a 2-digit
|
|
2413
|
+
// zero-padded base cell followed by the non-padding digit characters —
|
|
2414
|
+
// e.g. `'0800432'` (base 08, digits 0,0,4,3,2, resolution 5).
|
|
2415
|
+
//
|
|
2416
|
+
// The invalid sentinel is `UINT64_MAX` (`0xFFFFFFFFFFFFFFFFn`), returned
|
|
2417
|
+
// by {@link igeo7Neighbours} for pentagon-excluded directions and by
|
|
2418
|
+
// {@link igeo7Neighbour} for out-of-range direction arguments.
|
|
2419
|
+
// =========================================================================
|
|
2420
|
+
|
|
2421
|
+
/**
|
|
2422
|
+
* Normalize a 64-bit integer (possibly returned as signed BigInt by the
|
|
2423
|
+
* WASM boundary when bit 63 is set) to its canonical unsigned form.
|
|
2424
|
+
* @internal
|
|
2425
|
+
*/
|
|
2426
|
+
private _u64(x: bigint): bigint {
|
|
2427
|
+
return BigInt.asUintN(64, x);
|
|
2428
|
+
}
|
|
2429
|
+
|
|
2430
|
+
/**
|
|
2431
|
+
* Parse a Z7 compact string into a packed 64-bit index.
|
|
2432
|
+
*
|
|
2433
|
+
* ```ts
|
|
2434
|
+
* const idx = dggs.igeo7FromString('0800432');
|
|
2435
|
+
* // idx is a BigInt packed index for base=8, digits=[0,0,4,3,2], res=5
|
|
2436
|
+
* ```
|
|
2437
|
+
*
|
|
2438
|
+
* @param s - Compact Z7 string (2-digit base + digit characters).
|
|
2439
|
+
* @returns Packed index as BigInt (unsigned).
|
|
2440
|
+
*/
|
|
2441
|
+
igeo7FromString(s: string): bigint {
|
|
2442
|
+
return this._u64(this._module.igeo7_from_string(s));
|
|
2443
|
+
}
|
|
2444
|
+
|
|
2445
|
+
/**
|
|
2446
|
+
* Render a packed Z7 index as its compact string form.
|
|
2447
|
+
*
|
|
2448
|
+
* Stops at the first padding digit (value 7), producing a string whose
|
|
2449
|
+
* length reflects the cell's resolution (`2 + resolution` characters).
|
|
2450
|
+
*
|
|
2451
|
+
* ```ts
|
|
2452
|
+
* dggs.igeo7ToString(dggs.igeo7FromString('0800432')); // '0800432'
|
|
2453
|
+
* ```
|
|
2454
|
+
*
|
|
2455
|
+
* @param index - Packed Z7 index.
|
|
2456
|
+
* @returns Compact Z7 string.
|
|
2457
|
+
*/
|
|
2458
|
+
igeo7ToString(index: bigint): string {
|
|
2459
|
+
return this._module.igeo7_to_string(index);
|
|
2460
|
+
}
|
|
2461
|
+
|
|
2462
|
+
/**
|
|
2463
|
+
* Pack a base cell and exactly 20 digit slots into a 64-bit Z7 index.
|
|
2464
|
+
*
|
|
2465
|
+
* Use digit value `7` for every slot beyond the desired resolution.
|
|
2466
|
+
* Field values are masked internally — no range-check is required.
|
|
2467
|
+
*
|
|
2468
|
+
* ```ts
|
|
2469
|
+
* // Reconstruct '0800432' — base=8, resolution=5
|
|
2470
|
+
* const idx = dggs.igeo7Encode(
|
|
2471
|
+
* 8, [0,0,4,3,2, 7,7,7,7,7, 7,7,7,7,7, 7,7,7,7,7]
|
|
2472
|
+
* );
|
|
2473
|
+
* // idx === dggs.igeo7FromString('0800432')
|
|
2474
|
+
* ```
|
|
2475
|
+
*
|
|
2476
|
+
* @param base - Base cell (0-11).
|
|
2477
|
+
* @param digits - Exactly 20 digit values (0-7 each).
|
|
2478
|
+
* @returns Packed Z7 index as BigInt.
|
|
2479
|
+
* @throws If `digits.length !== 20`.
|
|
2480
|
+
*/
|
|
2481
|
+
igeo7Encode(base: number, digits: number[]): bigint {
|
|
2482
|
+
if (digits.length !== 20) {
|
|
2483
|
+
throw new Error(`igeo7Encode requires exactly 20 digits, got ${digits.length}`);
|
|
2484
|
+
}
|
|
2485
|
+
return this._u64(this._module.igeo7_encode(
|
|
2486
|
+
base,
|
|
2487
|
+
digits[0], digits[1], digits[2], digits[3], digits[4],
|
|
2488
|
+
digits[5], digits[6], digits[7], digits[8], digits[9],
|
|
2489
|
+
digits[10], digits[11], digits[12], digits[13], digits[14],
|
|
2490
|
+
digits[15], digits[16], digits[17], digits[18], digits[19]
|
|
2491
|
+
));
|
|
2492
|
+
}
|
|
2493
|
+
|
|
2494
|
+
/**
|
|
2495
|
+
* Extract the resolution (0-20) of a packed Z7 index.
|
|
2496
|
+
*
|
|
2497
|
+
* @param index - Packed Z7 index.
|
|
2498
|
+
* @returns Resolution level.
|
|
2499
|
+
*/
|
|
2500
|
+
igeo7GetResolution(index: bigint): number {
|
|
2501
|
+
return this._module.igeo7_get_resolution(index);
|
|
2502
|
+
}
|
|
2503
|
+
|
|
2504
|
+
/**
|
|
2505
|
+
* Extract the base cell (0-11) of a packed Z7 index.
|
|
2506
|
+
*
|
|
2507
|
+
* @param index - Packed Z7 index.
|
|
2508
|
+
* @returns Base cell ID.
|
|
2509
|
+
*/
|
|
2510
|
+
igeo7GetBaseCell(index: bigint): number {
|
|
2511
|
+
return this._module.igeo7_get_base_cell(index);
|
|
2512
|
+
}
|
|
2513
|
+
|
|
2514
|
+
/**
|
|
2515
|
+
* Extract the `i`-th digit (1-20) of a packed Z7 index.
|
|
2516
|
+
* Positions outside `[1, 20]` return `7` (matches DuckDB extension).
|
|
2517
|
+
*
|
|
2518
|
+
* @param index - Packed Z7 index.
|
|
2519
|
+
* @param position - Digit position, 1-based.
|
|
2520
|
+
* @returns Digit value (0-7).
|
|
2521
|
+
*/
|
|
2522
|
+
igeo7GetDigit(index: bigint, position: number): number {
|
|
2523
|
+
return this._module.igeo7_get_digit(index, position);
|
|
2524
|
+
}
|
|
2525
|
+
|
|
2526
|
+
/**
|
|
2527
|
+
* Parent of a Z7 cell — one hierarchy level up.
|
|
2528
|
+
*
|
|
2529
|
+
* At resolution 0 the cell is its own parent (the result has resolution 0
|
|
2530
|
+
* and the same base cell).
|
|
2531
|
+
*
|
|
2532
|
+
* ```ts
|
|
2533
|
+
* const child = dggs.igeo7FromString('0800432');
|
|
2534
|
+
* dggs.igeo7ToString(dggs.igeo7Parent(child)); // '080043'
|
|
2535
|
+
* ```
|
|
2536
|
+
*
|
|
2537
|
+
* @param index - Packed Z7 index.
|
|
2538
|
+
* @returns Parent index as BigInt.
|
|
2539
|
+
*/
|
|
2540
|
+
igeo7Parent(index: bigint): bigint {
|
|
2541
|
+
return this._u64(this._module.igeo7_parent(index));
|
|
2542
|
+
}
|
|
2543
|
+
|
|
2544
|
+
/**
|
|
2545
|
+
* Ancestor of a Z7 cell at a specific resolution.
|
|
2546
|
+
*
|
|
2547
|
+
* Keeps digits `1..resolution` and fills the remainder with padding
|
|
2548
|
+
* (`7`). The argument is clamped to `[0, 20]`.
|
|
2549
|
+
*
|
|
2550
|
+
* ```ts
|
|
2551
|
+
* const cell = dggs.igeo7FromString('0800432');
|
|
2552
|
+
* dggs.igeo7ToString(dggs.igeo7ParentAt(cell, 3)); // '08004'
|
|
2553
|
+
* ```
|
|
2554
|
+
*
|
|
2555
|
+
* @param index - Packed Z7 index.
|
|
2556
|
+
* @param resolution - Target resolution (0-20).
|
|
2557
|
+
* @returns Ancestor index as BigInt.
|
|
2558
|
+
*/
|
|
2559
|
+
igeo7ParentAt(index: bigint, resolution: number): bigint {
|
|
2560
|
+
return this._u64(this._module.igeo7_parent_at(index, resolution));
|
|
2561
|
+
}
|
|
2562
|
+
|
|
2563
|
+
/**
|
|
2564
|
+
* Return all 6 neighbour indices of a Z7 cell, in GBT directions 1-6.
|
|
2565
|
+
*
|
|
2566
|
+
* Invalid neighbours (e.g. one direction on the 12 pentagons) are the
|
|
2567
|
+
* sentinel `UINT64_MAX` (`0xFFFFFFFFFFFFFFFFn`). Use {@link igeo7IsValid}
|
|
2568
|
+
* to filter them out.
|
|
2569
|
+
*
|
|
2570
|
+
* ```ts
|
|
2571
|
+
* const cell = dggs.igeo7FromString('0800432');
|
|
2572
|
+
* const ns = dggs.igeo7Neighbours(cell)
|
|
2573
|
+
* .filter(n => dggs.igeo7IsValid(n))
|
|
2574
|
+
* .map(n => dggs.igeo7ToString(n));
|
|
2575
|
+
* ```
|
|
2576
|
+
*
|
|
2577
|
+
* @param index - Packed Z7 index.
|
|
2578
|
+
* @returns Array of exactly 6 BigInt neighbour indices.
|
|
2579
|
+
*/
|
|
2580
|
+
igeo7Neighbours(index: bigint): bigint[] {
|
|
2581
|
+
const raw = this._module.igeo7_get_neighbours(index) as bigint[];
|
|
2582
|
+
return raw.map(n => this._u64(n));
|
|
2583
|
+
}
|
|
2584
|
+
|
|
2585
|
+
/**
|
|
2586
|
+
* Single neighbour of a Z7 cell by GBT direction (1-6).
|
|
2587
|
+
*
|
|
2588
|
+
* Returns the invalid sentinel (`UINT64_MAX`) when `direction` is outside
|
|
2589
|
+
* `[1, 6]` or when the requested neighbour is excluded (pentagons).
|
|
2590
|
+
*
|
|
2591
|
+
* @param index - Packed Z7 index.
|
|
2592
|
+
* @param direction - Direction number, 1-6.
|
|
2593
|
+
* @returns Neighbour index as BigInt.
|
|
2594
|
+
*/
|
|
2595
|
+
igeo7Neighbour(index: bigint, direction: number): bigint {
|
|
2596
|
+
return this._u64(this._module.igeo7_get_neighbour(index, direction));
|
|
2597
|
+
}
|
|
2598
|
+
|
|
2599
|
+
/**
|
|
2600
|
+
* Position (1-20) of the first non-zero digit slot in a Z7 index.
|
|
2601
|
+
* Returns `0` when no non-zero digit exists (centre of the base cell).
|
|
2602
|
+
*
|
|
2603
|
+
* @param index - Packed Z7 index.
|
|
2604
|
+
* @returns Position of first non-zero digit, or 0.
|
|
2605
|
+
*/
|
|
2606
|
+
igeo7FirstNonZero(index: bigint): number {
|
|
2607
|
+
return this._module.igeo7_first_non_zero(index);
|
|
2608
|
+
}
|
|
2609
|
+
|
|
2610
|
+
/**
|
|
2611
|
+
* Whether a packed Z7 index is valid (i.e. not the `UINT64_MAX` sentinel).
|
|
2612
|
+
*
|
|
2613
|
+
* @param index - Packed Z7 index.
|
|
2614
|
+
* @returns `true` if valid, `false` for the invalid sentinel.
|
|
2615
|
+
*/
|
|
2616
|
+
igeo7IsValid(index: bigint): boolean {
|
|
2617
|
+
return this._module.igeo7_is_valid(index);
|
|
2618
|
+
}
|
|
2619
|
+
|
|
2620
|
+
/**
|
|
2621
|
+
* Convert a geodetic latitude (WGS84 ellipsoid) to its authalic latitude
|
|
2622
|
+
* on the equal-area sphere. Implementation follows Karney (2022) — same
|
|
2623
|
+
* polynomial used by the `igeo7_geo_to_authalic` DuckDB scalar function.
|
|
2624
|
+
*
|
|
2625
|
+
* Longitude is unaffected; only latitude is transformed.
|
|
2626
|
+
*
|
|
2627
|
+
* @param latDeg - Geodetic latitude in degrees, range `[-90, 90]`.
|
|
2628
|
+
* @returns Authalic latitude in degrees.
|
|
2629
|
+
*/
|
|
2630
|
+
igeo7GeoToAuthalic(latDeg: number): number {
|
|
2631
|
+
return this._module.igeo7_geo_to_authalic(latDeg);
|
|
2632
|
+
}
|
|
2633
|
+
|
|
2634
|
+
/**
|
|
2635
|
+
* Inverse of {@link igeo7GeoToAuthalic} — convert an authalic latitude
|
|
2636
|
+
* back to geodetic.
|
|
2637
|
+
*
|
|
2638
|
+
* @param latDeg - Authalic latitude in degrees.
|
|
2639
|
+
* @returns Geodetic latitude (WGS84) in degrees.
|
|
2640
|
+
*/
|
|
2641
|
+
igeo7AuthalicToGeo(latDeg: number): number {
|
|
2642
|
+
return this._module.igeo7_authalic_to_geo(latDeg);
|
|
2643
|
+
}
|
|
2644
|
+
|
|
2645
|
+
/**
|
|
2646
|
+
* Apply {@link igeo7GeoToAuthalic} (or its inverse) to every coordinate of
|
|
2647
|
+
* a GeoJSON geometry, feature, or feature collection. Mirrors the
|
|
2648
|
+
* `igeo7_geo_to_authalic` / `igeo7_authalic_to_geo` DuckDB functions
|
|
2649
|
+
* (which take/return `GEOMETRY`); this is the WASM equivalent for
|
|
2650
|
+
* GeoJSON-shaped inputs.
|
|
2651
|
+
*
|
|
2652
|
+
* The input is **deep-cloned** — the source object is not mutated.
|
|
2653
|
+
* Geometries with `null` or unsupported types are returned unchanged.
|
|
2654
|
+
*
|
|
2655
|
+
* @param input - Any GeoJSON geometry, feature, or feature collection.
|
|
2656
|
+
* @param direction - `'geoToAuthalic'` (default) or `'authalicToGeo'`.
|
|
2657
|
+
* @returns A new GeoJSON object of the same shape with transformed lats.
|
|
2658
|
+
*/
|
|
2659
|
+
igeo7TransformGeoJson<T extends GeoJSON>(
|
|
2660
|
+
input: T,
|
|
2661
|
+
direction: 'geoToAuthalic' | 'authalicToGeo' = 'geoToAuthalic',
|
|
2662
|
+
): T {
|
|
2663
|
+
const fn = direction === 'authalicToGeo'
|
|
2664
|
+
? (lat: number) => this._module.igeo7_authalic_to_geo(lat)
|
|
2665
|
+
: (lat: number) => this._module.igeo7_geo_to_authalic(lat);
|
|
2666
|
+
return transformGeoJsonLatitudes(input, fn);
|
|
2667
|
+
}
|
|
2668
|
+
}
|
|
2669
|
+
|
|
2670
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
2671
|
+
// GeoJSON latitude transform helper (used by igeo7TransformGeoJson)
|
|
2672
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
2673
|
+
|
|
2674
|
+
type Pos = number[];
|
|
2675
|
+
|
|
2676
|
+
function transformPos(pos: Pos, fn: (lat: number) => number): Pos {
|
|
2677
|
+
// GeoJSON positions are [lng, lat, ...]; only lat (index 1) is touched,
|
|
2678
|
+
// any z/m values trail through untouched.
|
|
2679
|
+
const out = pos.slice();
|
|
2680
|
+
if (out.length >= 2) out[1] = fn(out[1]);
|
|
2681
|
+
return out;
|
|
2682
|
+
}
|
|
2683
|
+
|
|
2684
|
+
function transformCoords(coords: any, depth: number, fn: (lat: number) => number): any {
|
|
2685
|
+
if (depth === 0) return transformPos(coords as Pos, fn);
|
|
2686
|
+
return (coords as any[]).map(c => transformCoords(c, depth - 1, fn));
|
|
2687
|
+
}
|
|
2688
|
+
|
|
2689
|
+
const COORD_DEPTH: Record<string, number> = {
|
|
2690
|
+
Point: 0,
|
|
2691
|
+
LineString: 1,
|
|
2692
|
+
MultiPoint: 1,
|
|
2693
|
+
Polygon: 2,
|
|
2694
|
+
MultiLineString: 2,
|
|
2695
|
+
MultiPolygon: 3,
|
|
2696
|
+
};
|
|
2697
|
+
|
|
2698
|
+
function transformGeometry(geom: any, fn: (lat: number) => number): any {
|
|
2699
|
+
if (!geom || typeof geom.type !== 'string') return geom;
|
|
2700
|
+
if (geom.type === 'GeometryCollection') {
|
|
2701
|
+
return {
|
|
2702
|
+
...geom,
|
|
2703
|
+
geometries: (geom.geometries || []).map((g: any) => transformGeometry(g, fn)),
|
|
2704
|
+
};
|
|
2705
|
+
}
|
|
2706
|
+
const depth = COORD_DEPTH[geom.type];
|
|
2707
|
+
if (depth === undefined || !geom.coordinates) return geom;
|
|
2708
|
+
return { ...geom, coordinates: transformCoords(geom.coordinates, depth, fn) };
|
|
2709
|
+
}
|
|
2710
|
+
|
|
2711
|
+
function transformGeoJsonLatitudes<T>(input: T, fn: (lat: number) => number): T {
|
|
2712
|
+
const node = input as any;
|
|
2713
|
+
if (!node || typeof node.type !== 'string') return input;
|
|
2714
|
+
switch (node.type) {
|
|
2715
|
+
case 'FeatureCollection':
|
|
2716
|
+
return {
|
|
2717
|
+
...node,
|
|
2718
|
+
features: (node.features || []).map((f: any) => transformGeoJsonLatitudes(f, fn)),
|
|
2719
|
+
} as T;
|
|
2720
|
+
case 'Feature':
|
|
2721
|
+
return { ...node, geometry: transformGeometry(node.geometry, fn) } as T;
|
|
2722
|
+
default:
|
|
2723
|
+
return transformGeometry(node, fn) as T;
|
|
2724
|
+
}
|
|
2373
2725
|
}
|
package/types/webdggrid.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FeatureCollection, GeoJsonProperties, Polygon, Position } from 'geojson';
|
|
1
|
+
import { FeatureCollection, GeoJSON, GeoJsonProperties, Polygon, Position } from 'geojson';
|
|
2
2
|
/**
|
|
3
3
|
* The shape of each cell in the Discrete Global Grid System.
|
|
4
4
|
*
|
|
@@ -178,10 +178,17 @@ export interface IDGGSProps {
|
|
|
178
178
|
}
|
|
179
179
|
/**
|
|
180
180
|
* Rewraps a polygon ring that crosses the antimeridian so that all longitudes
|
|
181
|
-
* are in a contiguous range
|
|
182
|
-
*
|
|
183
|
-
*
|
|
184
|
-
*
|
|
181
|
+
* are in a contiguous range. The output longitudes may fall outside
|
|
182
|
+
* [-180, 180] — that's intentional, and is the format expected by MapLibre
|
|
183
|
+
* GL / Mapbox GL globe projection for antimeridian cells. For renderers that
|
|
184
|
+
* require standard [-180, 180] coordinates, run a final modulo step
|
|
185
|
+
* downstream.
|
|
186
|
+
*
|
|
187
|
+
* Walks consecutive vertices and accumulates a ±360 offset whenever the
|
|
188
|
+
* longitude delta between neighbours exceeds 180° (the only meaningful sign
|
|
189
|
+
* of an antimeridian crossing). This keeps the traversal direction faithful
|
|
190
|
+
* even for polar caps, which span a full 360° in lon and were broken by the
|
|
191
|
+
* previous "negative-to-positive" rewrite.
|
|
185
192
|
*/
|
|
186
193
|
export declare function unwrapAntimeridianRing(ring: Position[]): Position[];
|
|
187
194
|
/**
|
|
@@ -499,11 +506,19 @@ export declare class Webdggrid {
|
|
|
499
506
|
* retrieve.
|
|
500
507
|
* @param resolution - Resolution at which the IDs were generated. Defaults
|
|
501
508
|
* to the instance's current {@link resolution}.
|
|
509
|
+
* @param unwrap - When `true` (default), antimeridian-crossing rings are
|
|
510
|
+
* passed through {@link unwrapAntimeridianRing} so longitudes stay
|
|
511
|
+
* contiguous (lons may exceed 180°). Required by MapLibre GL / Mapbox
|
|
512
|
+
* GL globe projection. Set to `false` to receive the raw DGGRID output
|
|
513
|
+
* in `[-180, 180]` — required by Cesium's `GeoJsonDataSource` (which
|
|
514
|
+
* internally normalises lons and breaks polar caps under unwrap), and
|
|
515
|
+
* by any sphere-aware renderer that interpolates edges as great-circle
|
|
516
|
+
* arcs.
|
|
502
517
|
* @returns A 2-D array: `result[i]` is the vertex ring of `sequenceNum[i]`.
|
|
503
518
|
* Each vertex is a `[lng, lat]` position.
|
|
504
519
|
* @throws If the WASM module encounters an invalid cell ID.
|
|
505
520
|
*/
|
|
506
|
-
sequenceNumToGrid(sequenceNum: bigint[], resolution?: number): Position[][];
|
|
521
|
+
sequenceNumToGrid(sequenceNum: bigint[], resolution?: number, unwrap?: boolean): Position[][];
|
|
507
522
|
/**
|
|
508
523
|
* Converts an array of DGGS cell IDs into a GeoJSON `FeatureCollection`
|
|
509
524
|
* where each `Feature` is a `Polygon` representing the cell boundary.
|
|
@@ -534,10 +549,13 @@ export declare class Webdggrid {
|
|
|
534
549
|
* @param sequenceNum - Array of `BigInt` cell IDs to convert.
|
|
535
550
|
* @param resolution - Resolution at which the IDs were generated. Defaults
|
|
536
551
|
* to the instance's current {@link resolution}.
|
|
552
|
+
* @param unwrap - Forwarded to {@link sequenceNumToGrid}. Defaults to
|
|
553
|
+
* `true` (MapLibre-style unwrap). Pass `false` for Cesium and other
|
|
554
|
+
* great-circle-arc renderers.
|
|
537
555
|
* @returns A GeoJSON `FeatureCollection` of `Polygon` features, one per
|
|
538
556
|
* input cell ID.
|
|
539
557
|
*/
|
|
540
|
-
sequenceNumToGridFeatureCollection(sequenceNum: bigint[], resolution?: number): FeatureCollection<Polygon, DGGSGeoJsonProperty>;
|
|
558
|
+
sequenceNumToGridFeatureCollection(sequenceNum: bigint[], resolution?: number, unwrap?: boolean): FeatureCollection<Polygon, DGGSGeoJsonProperty>;
|
|
541
559
|
/**
|
|
542
560
|
* Returns all neighboring cells (sharing an edge) for each input cell.
|
|
543
561
|
*
|
|
@@ -1292,5 +1310,189 @@ export declare class Webdggrid {
|
|
|
1292
1310
|
i: bigint;
|
|
1293
1311
|
j: bigint;
|
|
1294
1312
|
}>;
|
|
1313
|
+
/**
|
|
1314
|
+
* Normalize a 64-bit integer (possibly returned as signed BigInt by the
|
|
1315
|
+
* WASM boundary when bit 63 is set) to its canonical unsigned form.
|
|
1316
|
+
* @internal
|
|
1317
|
+
*/
|
|
1318
|
+
private _u64;
|
|
1319
|
+
/**
|
|
1320
|
+
* Parse a Z7 compact string into a packed 64-bit index.
|
|
1321
|
+
*
|
|
1322
|
+
* ```ts
|
|
1323
|
+
* const idx = dggs.igeo7FromString('0800432');
|
|
1324
|
+
* // idx is a BigInt packed index for base=8, digits=[0,0,4,3,2], res=5
|
|
1325
|
+
* ```
|
|
1326
|
+
*
|
|
1327
|
+
* @param s - Compact Z7 string (2-digit base + digit characters).
|
|
1328
|
+
* @returns Packed index as BigInt (unsigned).
|
|
1329
|
+
*/
|
|
1330
|
+
igeo7FromString(s: string): bigint;
|
|
1331
|
+
/**
|
|
1332
|
+
* Render a packed Z7 index as its compact string form.
|
|
1333
|
+
*
|
|
1334
|
+
* Stops at the first padding digit (value 7), producing a string whose
|
|
1335
|
+
* length reflects the cell's resolution (`2 + resolution` characters).
|
|
1336
|
+
*
|
|
1337
|
+
* ```ts
|
|
1338
|
+
* dggs.igeo7ToString(dggs.igeo7FromString('0800432')); // '0800432'
|
|
1339
|
+
* ```
|
|
1340
|
+
*
|
|
1341
|
+
* @param index - Packed Z7 index.
|
|
1342
|
+
* @returns Compact Z7 string.
|
|
1343
|
+
*/
|
|
1344
|
+
igeo7ToString(index: bigint): string;
|
|
1345
|
+
/**
|
|
1346
|
+
* Pack a base cell and exactly 20 digit slots into a 64-bit Z7 index.
|
|
1347
|
+
*
|
|
1348
|
+
* Use digit value `7` for every slot beyond the desired resolution.
|
|
1349
|
+
* Field values are masked internally — no range-check is required.
|
|
1350
|
+
*
|
|
1351
|
+
* ```ts
|
|
1352
|
+
* // Reconstruct '0800432' — base=8, resolution=5
|
|
1353
|
+
* const idx = dggs.igeo7Encode(
|
|
1354
|
+
* 8, [0,0,4,3,2, 7,7,7,7,7, 7,7,7,7,7, 7,7,7,7,7]
|
|
1355
|
+
* );
|
|
1356
|
+
* // idx === dggs.igeo7FromString('0800432')
|
|
1357
|
+
* ```
|
|
1358
|
+
*
|
|
1359
|
+
* @param base - Base cell (0-11).
|
|
1360
|
+
* @param digits - Exactly 20 digit values (0-7 each).
|
|
1361
|
+
* @returns Packed Z7 index as BigInt.
|
|
1362
|
+
* @throws If `digits.length !== 20`.
|
|
1363
|
+
*/
|
|
1364
|
+
igeo7Encode(base: number, digits: number[]): bigint;
|
|
1365
|
+
/**
|
|
1366
|
+
* Extract the resolution (0-20) of a packed Z7 index.
|
|
1367
|
+
*
|
|
1368
|
+
* @param index - Packed Z7 index.
|
|
1369
|
+
* @returns Resolution level.
|
|
1370
|
+
*/
|
|
1371
|
+
igeo7GetResolution(index: bigint): number;
|
|
1372
|
+
/**
|
|
1373
|
+
* Extract the base cell (0-11) of a packed Z7 index.
|
|
1374
|
+
*
|
|
1375
|
+
* @param index - Packed Z7 index.
|
|
1376
|
+
* @returns Base cell ID.
|
|
1377
|
+
*/
|
|
1378
|
+
igeo7GetBaseCell(index: bigint): number;
|
|
1379
|
+
/**
|
|
1380
|
+
* Extract the `i`-th digit (1-20) of a packed Z7 index.
|
|
1381
|
+
* Positions outside `[1, 20]` return `7` (matches DuckDB extension).
|
|
1382
|
+
*
|
|
1383
|
+
* @param index - Packed Z7 index.
|
|
1384
|
+
* @param position - Digit position, 1-based.
|
|
1385
|
+
* @returns Digit value (0-7).
|
|
1386
|
+
*/
|
|
1387
|
+
igeo7GetDigit(index: bigint, position: number): number;
|
|
1388
|
+
/**
|
|
1389
|
+
* Parent of a Z7 cell — one hierarchy level up.
|
|
1390
|
+
*
|
|
1391
|
+
* At resolution 0 the cell is its own parent (the result has resolution 0
|
|
1392
|
+
* and the same base cell).
|
|
1393
|
+
*
|
|
1394
|
+
* ```ts
|
|
1395
|
+
* const child = dggs.igeo7FromString('0800432');
|
|
1396
|
+
* dggs.igeo7ToString(dggs.igeo7Parent(child)); // '080043'
|
|
1397
|
+
* ```
|
|
1398
|
+
*
|
|
1399
|
+
* @param index - Packed Z7 index.
|
|
1400
|
+
* @returns Parent index as BigInt.
|
|
1401
|
+
*/
|
|
1402
|
+
igeo7Parent(index: bigint): bigint;
|
|
1403
|
+
/**
|
|
1404
|
+
* Ancestor of a Z7 cell at a specific resolution.
|
|
1405
|
+
*
|
|
1406
|
+
* Keeps digits `1..resolution` and fills the remainder with padding
|
|
1407
|
+
* (`7`). The argument is clamped to `[0, 20]`.
|
|
1408
|
+
*
|
|
1409
|
+
* ```ts
|
|
1410
|
+
* const cell = dggs.igeo7FromString('0800432');
|
|
1411
|
+
* dggs.igeo7ToString(dggs.igeo7ParentAt(cell, 3)); // '08004'
|
|
1412
|
+
* ```
|
|
1413
|
+
*
|
|
1414
|
+
* @param index - Packed Z7 index.
|
|
1415
|
+
* @param resolution - Target resolution (0-20).
|
|
1416
|
+
* @returns Ancestor index as BigInt.
|
|
1417
|
+
*/
|
|
1418
|
+
igeo7ParentAt(index: bigint, resolution: number): bigint;
|
|
1419
|
+
/**
|
|
1420
|
+
* Return all 6 neighbour indices of a Z7 cell, in GBT directions 1-6.
|
|
1421
|
+
*
|
|
1422
|
+
* Invalid neighbours (e.g. one direction on the 12 pentagons) are the
|
|
1423
|
+
* sentinel `UINT64_MAX` (`0xFFFFFFFFFFFFFFFFn`). Use {@link igeo7IsValid}
|
|
1424
|
+
* to filter them out.
|
|
1425
|
+
*
|
|
1426
|
+
* ```ts
|
|
1427
|
+
* const cell = dggs.igeo7FromString('0800432');
|
|
1428
|
+
* const ns = dggs.igeo7Neighbours(cell)
|
|
1429
|
+
* .filter(n => dggs.igeo7IsValid(n))
|
|
1430
|
+
* .map(n => dggs.igeo7ToString(n));
|
|
1431
|
+
* ```
|
|
1432
|
+
*
|
|
1433
|
+
* @param index - Packed Z7 index.
|
|
1434
|
+
* @returns Array of exactly 6 BigInt neighbour indices.
|
|
1435
|
+
*/
|
|
1436
|
+
igeo7Neighbours(index: bigint): bigint[];
|
|
1437
|
+
/**
|
|
1438
|
+
* Single neighbour of a Z7 cell by GBT direction (1-6).
|
|
1439
|
+
*
|
|
1440
|
+
* Returns the invalid sentinel (`UINT64_MAX`) when `direction` is outside
|
|
1441
|
+
* `[1, 6]` or when the requested neighbour is excluded (pentagons).
|
|
1442
|
+
*
|
|
1443
|
+
* @param index - Packed Z7 index.
|
|
1444
|
+
* @param direction - Direction number, 1-6.
|
|
1445
|
+
* @returns Neighbour index as BigInt.
|
|
1446
|
+
*/
|
|
1447
|
+
igeo7Neighbour(index: bigint, direction: number): bigint;
|
|
1448
|
+
/**
|
|
1449
|
+
* Position (1-20) of the first non-zero digit slot in a Z7 index.
|
|
1450
|
+
* Returns `0` when no non-zero digit exists (centre of the base cell).
|
|
1451
|
+
*
|
|
1452
|
+
* @param index - Packed Z7 index.
|
|
1453
|
+
* @returns Position of first non-zero digit, or 0.
|
|
1454
|
+
*/
|
|
1455
|
+
igeo7FirstNonZero(index: bigint): number;
|
|
1456
|
+
/**
|
|
1457
|
+
* Whether a packed Z7 index is valid (i.e. not the `UINT64_MAX` sentinel).
|
|
1458
|
+
*
|
|
1459
|
+
* @param index - Packed Z7 index.
|
|
1460
|
+
* @returns `true` if valid, `false` for the invalid sentinel.
|
|
1461
|
+
*/
|
|
1462
|
+
igeo7IsValid(index: bigint): boolean;
|
|
1463
|
+
/**
|
|
1464
|
+
* Convert a geodetic latitude (WGS84 ellipsoid) to its authalic latitude
|
|
1465
|
+
* on the equal-area sphere. Implementation follows Karney (2022) — same
|
|
1466
|
+
* polynomial used by the `igeo7_geo_to_authalic` DuckDB scalar function.
|
|
1467
|
+
*
|
|
1468
|
+
* Longitude is unaffected; only latitude is transformed.
|
|
1469
|
+
*
|
|
1470
|
+
* @param latDeg - Geodetic latitude in degrees, range `[-90, 90]`.
|
|
1471
|
+
* @returns Authalic latitude in degrees.
|
|
1472
|
+
*/
|
|
1473
|
+
igeo7GeoToAuthalic(latDeg: number): number;
|
|
1474
|
+
/**
|
|
1475
|
+
* Inverse of {@link igeo7GeoToAuthalic} — convert an authalic latitude
|
|
1476
|
+
* back to geodetic.
|
|
1477
|
+
*
|
|
1478
|
+
* @param latDeg - Authalic latitude in degrees.
|
|
1479
|
+
* @returns Geodetic latitude (WGS84) in degrees.
|
|
1480
|
+
*/
|
|
1481
|
+
igeo7AuthalicToGeo(latDeg: number): number;
|
|
1482
|
+
/**
|
|
1483
|
+
* Apply {@link igeo7GeoToAuthalic} (or its inverse) to every coordinate of
|
|
1484
|
+
* a GeoJSON geometry, feature, or feature collection. Mirrors the
|
|
1485
|
+
* `igeo7_geo_to_authalic` / `igeo7_authalic_to_geo` DuckDB functions
|
|
1486
|
+
* (which take/return `GEOMETRY`); this is the WASM equivalent for
|
|
1487
|
+
* GeoJSON-shaped inputs.
|
|
1488
|
+
*
|
|
1489
|
+
* The input is **deep-cloned** — the source object is not mutated.
|
|
1490
|
+
* Geometries with `null` or unsupported types are returned unchanged.
|
|
1491
|
+
*
|
|
1492
|
+
* @param input - Any GeoJSON geometry, feature, or feature collection.
|
|
1493
|
+
* @param direction - `'geoToAuthalic'` (default) or `'authalicToGeo'`.
|
|
1494
|
+
* @returns A new GeoJSON object of the same shape with transformed lats.
|
|
1495
|
+
*/
|
|
1496
|
+
igeo7TransformGeoJson<T extends GeoJSON>(input: T, direction?: 'geoToAuthalic' | 'authalicToGeo'): T;
|
|
1295
1497
|
}
|
|
1296
1498
|
//# sourceMappingURL=webdggrid.d.ts.map
|