@loaders.gl/tiles 5.0.0-alpha.6 → 5.0.0-alpha.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/dist/dist.dev.js +5160 -2896
  2. package/dist/dist.min.js +4 -2
  3. package/dist/index.cjs +1509 -454
  4. package/dist/index.cjs.map +3 -3
  5. package/dist/index.d.ts +8 -1
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +3 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/spatial/format-spatial-reference.d.ts +1 -0
  10. package/dist/spatial/format-spatial-reference.d.ts.map +1 -1
  11. package/dist/spatial/format-spatial-reference.js +104 -46
  12. package/dist/spatial/format-spatial-reference.js.map +1 -1
  13. package/dist/spatial/get-spatial-coordinate-frame.d.ts +12 -1
  14. package/dist/spatial/get-spatial-coordinate-frame.d.ts.map +1 -1
  15. package/dist/spatial/get-spatial-coordinate-frame.js +105 -24
  16. package/dist/spatial/get-spatial-coordinate-frame.js.map +1 -1
  17. package/dist/spatial/normalize-crs-identifier.d.ts +15 -0
  18. package/dist/spatial/normalize-crs-identifier.d.ts.map +1 -0
  19. package/dist/spatial/normalize-crs-identifier.js +22 -0
  20. package/dist/spatial/normalize-crs-identifier.js.map +1 -0
  21. package/dist/spatial/spatial-coordinate-transformer.d.ts +4 -0
  22. package/dist/spatial/spatial-coordinate-transformer.d.ts.map +1 -1
  23. package/dist/spatial/spatial-coordinate-transformer.js +89 -12
  24. package/dist/spatial/spatial-coordinate-transformer.js.map +1 -1
  25. package/dist/spatial/tiles-3d-spatial-transformer.d.ts +32 -0
  26. package/dist/spatial/tiles-3d-spatial-transformer.d.ts.map +1 -0
  27. package/dist/spatial/tiles-3d-spatial-transformer.js +175 -0
  28. package/dist/spatial/tiles-3d-spatial-transformer.js.map +1 -0
  29. package/dist/tileset-3d/common/tile-3d-contracts.d.ts +63 -0
  30. package/dist/tileset-3d/common/tile-3d-contracts.d.ts.map +1 -0
  31. package/dist/tileset-3d/common/tile-3d-contracts.js +51 -0
  32. package/dist/tileset-3d/common/tile-3d-contracts.js.map +1 -0
  33. package/dist/tileset-3d/common/tile-3d.d.ts +29 -5
  34. package/dist/tileset-3d/common/tile-3d.d.ts.map +1 -1
  35. package/dist/tileset-3d/common/tile-3d.js +147 -18
  36. package/dist/tileset-3d/common/tile-3d.js.map +1 -1
  37. package/dist/tileset-3d/common/tileset-3d.d.ts +14 -0
  38. package/dist/tileset-3d/common/tileset-3d.d.ts.map +1 -1
  39. package/dist/tileset-3d/common/tileset-3d.js +27 -1
  40. package/dist/tileset-3d/common/tileset-3d.js.map +1 -1
  41. package/dist/tileset-3d/common/tileset-observability.d.ts +60 -0
  42. package/dist/tileset-3d/common/tileset-observability.d.ts.map +1 -0
  43. package/dist/tileset-3d/common/tileset-observability.js +39 -0
  44. package/dist/tileset-3d/common/tileset-observability.js.map +1 -0
  45. package/dist/tileset-3d/common/tileset-source.d.ts +3 -0
  46. package/dist/tileset-3d/common/tileset-source.d.ts.map +1 -1
  47. package/dist/tileset-3d/common/tileset-source.js.map +1 -1
  48. package/dist/tileset-3d/common/tileset-traverser.d.ts.map +1 -1
  49. package/dist/tileset-3d/common/tileset-traverser.js +4 -3
  50. package/dist/tileset-3d/common/tileset-traverser.js.map +1 -1
  51. package/dist/tileset-3d/format-3d-tiles/implicit-tiling.d.ts +47 -1
  52. package/dist/tileset-3d/format-3d-tiles/implicit-tiling.d.ts.map +1 -1
  53. package/dist/tileset-3d/format-3d-tiles/implicit-tiling.js +327 -30
  54. package/dist/tileset-3d/format-3d-tiles/implicit-tiling.js.map +1 -1
  55. package/dist/tileset-3d/format-3d-tiles/tiles-3d-source.d.ts +32 -0
  56. package/dist/tileset-3d/format-3d-tiles/tiles-3d-source.d.ts.map +1 -1
  57. package/dist/tileset-3d/format-3d-tiles/tiles-3d-source.js +265 -14
  58. package/dist/tileset-3d/format-3d-tiles/tiles-3d-source.js.map +1 -1
  59. package/dist/tileset-3d/format-3d-tiles/tileset-3d-traverser.d.ts +5 -3
  60. package/dist/tileset-3d/format-3d-tiles/tileset-3d-traverser.d.ts.map +1 -1
  61. package/dist/tileset-3d/format-3d-tiles/tileset-3d-traverser.js +7 -4
  62. package/dist/tileset-3d/format-3d-tiles/tileset-3d-traverser.js.map +1 -1
  63. package/dist/tileset-3d/helpers/bounding-volume.d.ts +7 -3
  64. package/dist/tileset-3d/helpers/bounding-volume.d.ts.map +1 -1
  65. package/dist/tileset-3d/helpers/bounding-volume.js +19 -61
  66. package/dist/tileset-3d/helpers/bounding-volume.js.map +1 -1
  67. package/dist/tileset-3d/helpers/frame-state.d.ts +4 -0
  68. package/dist/tileset-3d/helpers/frame-state.d.ts.map +1 -1
  69. package/dist/tileset-3d/helpers/frame-state.js +6 -1
  70. package/dist/tileset-3d/helpers/frame-state.js.map +1 -1
  71. package/dist/tileset-3d/helpers/s2-bounding-volume.d.ts +17 -0
  72. package/dist/tileset-3d/helpers/s2-bounding-volume.d.ts.map +1 -0
  73. package/dist/tileset-3d/helpers/s2-bounding-volume.js +20 -0
  74. package/dist/tileset-3d/helpers/s2-bounding-volume.js.map +1 -0
  75. package/dist/types.d.ts +2 -0
  76. package/dist/types.d.ts.map +1 -1
  77. package/package.json +13 -12
  78. package/src/index.ts +13 -1
  79. package/src/spatial/format-spatial-reference.ts +127 -53
  80. package/src/spatial/get-spatial-coordinate-frame.ts +126 -31
  81. package/src/spatial/normalize-crs-identifier.ts +26 -0
  82. package/src/spatial/spatial-coordinate-transformer.ts +106 -15
  83. package/src/spatial/tiles-3d-spatial-transformer.ts +206 -0
  84. package/src/tileset-3d/common/tile-3d-contracts.ts +115 -0
  85. package/src/tileset-3d/common/tile-3d.ts +172 -18
  86. package/src/tileset-3d/common/tileset-3d.ts +29 -1
  87. package/src/tileset-3d/common/tileset-observability.ts +100 -0
  88. package/src/tileset-3d/common/tileset-source.ts +3 -0
  89. package/src/tileset-3d/common/tileset-traverser.ts +4 -3
  90. package/src/tileset-3d/format-3d-tiles/implicit-tiling.ts +481 -34
  91. package/src/tileset-3d/format-3d-tiles/tiles-3d-source.ts +387 -14
  92. package/src/tileset-3d/format-3d-tiles/tileset-3d-traverser.ts +7 -4
  93. package/src/tileset-3d/helpers/bounding-volume.ts +29 -62
  94. package/src/tileset-3d/helpers/frame-state.ts +6 -1
  95. package/src/tileset-3d/helpers/s2-bounding-volume.ts +35 -0
  96. package/src/types.ts +2 -0
package/dist/index.d.ts CHANGED
@@ -1,11 +1,14 @@
1
1
  export type { Tileset3DProps } from "./tileset-3d/common/tileset-3d.js";
2
2
  export type { FoveatedInterpolationCallback } from "./tileset-3d/helpers/tiles-3d-request-priority.js";
3
3
  export { Tileset3D } from "./tileset-3d/common/tileset-3d.js";
4
+ export { getTileset3DTraversalSnapshot } from "./tileset-3d/common/tileset-observability.js";
5
+ export type { Tileset3DTraversalSnapshot } from "./tileset-3d/common/tileset-observability.js";
4
6
  export type { TileContentLoadResult, TileChildrenLoadResult, TilesetContentFormats, TilesetJSON, TilesetSourceInput, TilesetSourceMetadata, TilesetSourceRequest, TilesetSourceResolver, Tileset3DSource, TilesetSourceViewState } from "./tileset-3d/common/tileset-source.js";
5
7
  export { isTileset3DSource } from "./tileset-3d/common/tileset-source.js";
6
8
  export type { IndexedArchiveTilesetSourceOptions } from "./tileset-3d/common/indexed-archive-tileset-source.js";
7
9
  export { IndexedArchiveTilesetSource } from "./tileset-3d/common/indexed-archive-tileset-source.js";
8
10
  export { Tile3D } from "./tileset-3d/common/tile-3d.js";
11
+ export type { Tile3DContent, Tile3DFeatureIdSet, Tile3DMetadataContext, Tile3DBoundingVolume } from "./tileset-3d/common/tile-3d-contracts.js";
9
12
  export type { TileChildrenState } from "./tileset-3d/common/tile-3d.js";
10
13
  export { Tiles3DSource } from "./tileset-3d/format-3d-tiles/tiles-3d-source.js";
11
14
  export type { ImplicitTilingStats } from "./tileset-3d/format-3d-tiles/tiles-3d-source.js";
@@ -28,16 +31,20 @@ export { PointCloudTileset } from "./point-cloud/point-cloud-tileset.js";
28
31
  export { PointCloudTile } from "./point-cloud/point-cloud-tile.js";
29
32
  export { createBoundingVolume } from "./tileset-3d/helpers/bounding-volume.js";
30
33
  export { calculateTransformProps } from "./tileset-3d/helpers/transform-utils.js";
34
+ export { convertS2BoundingVolumeToOBB } from "./tileset-3d/helpers/s2-bounding-volume.js";
35
+ export type { S2VolumeInfo } from "./tileset-3d/helpers/s2-bounding-volume.js";
31
36
  export type { CreateTilesetSpatialReferenceOptions, TilesetCoordinateFrame, TilesetElevationBounds, TilesetElevationMode, TilesetElevationProvider, TilesetElevationRange, TilesetElevationSample, TilesetHeightReference, TilesetOutputCoordinates, TilesetSpatialOptions, TilesetSpatialReference, TilesetSpatialReferenceProvenance, TilesetTargetHeightReference } from "./spatial/spatial-types.js";
32
37
  export { applyTilesetSpatialOptions, createTilesetSpatialReference, markTilesetSpatialReferenceTransformed } from "./spatial/spatial-types.js";
33
38
  export { get3DTilesSpatialReference, getI3SSpatialReference } from "./spatial/format-spatial-reference.js";
34
39
  export { SpatialCoordinateTransformer } from "./spatial/spatial-coordinate-transformer.js";
35
40
  export { getSpatialCoordinateFrame } from "./spatial/spatial-coordinate-transformer.js";
41
+ export { Tiles3DSpatialTransformer } from "./spatial/tiles-3d-spatial-transformer.js";
42
+ export type { Tiles3DSpatialBoundingVolume } from "./spatial/tiles-3d-spatial-transformer.js";
36
43
  export type { I3SSpatialBounds, I3SSpatialObb, I3STransformedPositions } from "./spatial/i3s-spatial-transformer.js";
37
44
  export { I3SSpatialTransformer } from "./spatial/i3s-spatial-transformer.js";
38
45
  export { getGeoidModel, registerGeoidModel, registerGeoidModelFromPgm, registerSpatialCrs, registerSpatialDatumGrid } from "./spatial/spatial-resource-registry.js";
39
46
  export { getFrameState } from "./tileset-3d/helpers/frame-state.js";
40
- export type { GetFrameStateOptions } from "./tileset-3d/helpers/frame-state.js";
47
+ export type { FrameState, GetFrameStateOptions } from "./tileset-3d/helpers/frame-state.js";
41
48
  export { getLodStatus } from "./tileset-3d/helpers/i3s-lod.js";
42
49
  export { TILE_CONTENT_STATE, TILE_REFINEMENT, TILE_TYPE, TILESET_TYPE, LOD_METRIC_TYPE } from "./constants.js";
43
50
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,YAAY,EAAC,cAAc,EAAC,0CAAuC;AACnE,YAAY,EAAC,6BAA6B,EAAC,0DAAuD;AAClG,OAAO,EAAC,SAAS,EAAC,0CAAuC;AACzD,YAAY,EACV,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,WAAW,EACX,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,sBAAsB,EACvB,8CAA2C;AAC5C,OAAO,EAAC,iBAAiB,EAAC,8CAA2C;AACrE,YAAY,EAAC,kCAAkC,EAAC,8DAA2D;AAC3G,OAAO,EAAC,2BAA2B,EAAC,8DAA2D;AAC/F,OAAO,EAAC,MAAM,EAAC,uCAAoC;AACnD,YAAY,EAAC,iBAAiB,EAAC,uCAAoC;AACnE,OAAO,EAAC,aAAa,EAAC,wDAAqD;AAC3E,YAAY,EAAC,mBAAmB,EAAC,wDAAqD;AACtF,YAAY,EACV,oBAAoB,EACpB,wBAAwB,EACxB,uBAAuB,EACvB,kBAAkB,EAClB,wBAAwB,EACxB,2BAA2B,EAC3B,qBAAqB,EACtB,wDAAqD;AACtD,OAAO,EACL,8BAA8B,EAC9B,0BAA0B,EAC1B,0BAA0B,EAC3B,wDAAqD;AACtD,OAAO,EAAC,SAAS,EAAC,8CAA2C;AAE7D,OAAO,EAAC,gBAAgB,EAAC,iDAA8C;AACvE,OAAO,EAAC,YAAY,EAAC,6CAA0C;AAE/D,YAAY,EACV,MAAM,EACN,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,SAAS,EACT,aAAa,EACb,MAAM,EACP,wBAAqB;AACtB,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,yBAAyB,EAC1B,wBAAqB;AACtB,YAAY,EACV,kBAAkB,EAClB,0BAA0B,EAC1B,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,mBAAmB,EACpB,wBAAqB;AACtB,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EACjB,wBAAqB;AACtB,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,eAAe,EAChB,uBAAoB;AACrB,OAAO,EAAC,QAAQ,EAAC,uBAAoB;AACrC,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,0BAA0B,EAC3B,wBAAqB;AACtB,OAAO,EAAC,SAAS,EAAC,wBAAqB;AACvC,YAAY,EACV,mBAAmB,EACnB,wBAAwB,EACxB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,0BAA0B,EAC1B,0BAA0B,EAC3B,+BAA4B;AAC7B,YAAY,EAAC,wBAAwB,EAAC,6CAA0C;AAChF,OAAO,EAAC,iBAAiB,EAAC,6CAA0C;AACpE,OAAO,EAAC,cAAc,EAAC,0CAAuC;AAC9D,OAAO,EAAC,oBAAoB,EAAC,gDAA6C;AAC1E,OAAO,EAAC,uBAAuB,EAAC,gDAA6C;AAE7E,YAAY,EACV,oCAAoC,EACpC,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,EACvB,iCAAiC,EACjC,4BAA4B,EAC7B,mCAAgC;AACjC,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,EAC7B,sCAAsC,EACvC,mCAAgC;AACjC,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACvB,8CAA2C;AAC5C,OAAO,EAAC,4BAA4B,EAAC,oDAAiD;AACtF,OAAO,EAAC,yBAAyB,EAAC,oDAAiD;AACnF,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,uBAAuB,EACxB,6CAA0C;AAC3C,OAAO,EAAC,qBAAqB,EAAC,6CAA0C;AACxE,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,yBAAyB,EACzB,kBAAkB,EAClB,wBAAwB,EACzB,+CAA4C;AAE7C,OAAO,EAAC,aAAa,EAAC,4CAAyC;AAC/D,YAAY,EAAC,oBAAoB,EAAC,4CAAyC;AAC3E,OAAO,EAAC,YAAY,EAAC,wCAAqC;AAE1D,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,SAAS,EACT,YAAY,EACZ,eAAe,EAChB,uBAAoB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -2,6 +2,7 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
  export { Tileset3D } from "./tileset-3d/common/tileset-3d.js";
5
+ export { getTileset3DTraversalSnapshot } from "./tileset-3d/common/tileset-observability.js";
5
6
  export { isTileset3DSource } from "./tileset-3d/common/tileset-source.js";
6
7
  export { IndexedArchiveTilesetSource } from "./tileset-3d/common/indexed-archive-tileset-source.js";
7
8
  export { Tile3D } from "./tileset-3d/common/tile-3d.js";
@@ -17,10 +18,12 @@ export { PointCloudTileset } from "./point-cloud/point-cloud-tileset.js";
17
18
  export { PointCloudTile } from "./point-cloud/point-cloud-tile.js";
18
19
  export { createBoundingVolume } from "./tileset-3d/helpers/bounding-volume.js";
19
20
  export { calculateTransformProps } from "./tileset-3d/helpers/transform-utils.js";
21
+ export { convertS2BoundingVolumeToOBB } from "./tileset-3d/helpers/s2-bounding-volume.js";
20
22
  export { applyTilesetSpatialOptions, createTilesetSpatialReference, markTilesetSpatialReferenceTransformed } from "./spatial/spatial-types.js";
21
23
  export { get3DTilesSpatialReference, getI3SSpatialReference } from "./spatial/format-spatial-reference.js";
22
24
  export { SpatialCoordinateTransformer } from "./spatial/spatial-coordinate-transformer.js";
23
25
  export { getSpatialCoordinateFrame } from "./spatial/spatial-coordinate-transformer.js";
26
+ export { Tiles3DSpatialTransformer } from "./spatial/tiles-3d-spatial-transformer.js";
24
27
  export { I3SSpatialTransformer } from "./spatial/i3s-spatial-transformer.js";
25
28
  export { getGeoidModel, registerGeoidModel, registerGeoidModelFromPgm, registerSpatialCrs, registerSpatialDatumGrid } from "./spatial/spatial-resource-registry.js";
26
29
  export { getFrameState } from "./tileset-3d/helpers/frame-state.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAIpC,OAAO,EAAC,SAAS,EAAC,0CAAuC;AAazD,OAAO,EAAC,iBAAiB,EAAC,8CAA2C;AAErE,OAAO,EAAC,2BAA2B,EAAC,8DAA2D;AAC/F,OAAO,EAAC,MAAM,EAAC,uCAAoC;AAEnD,OAAO,EAAC,aAAa,EAAC,wDAAqD;AAW3E,OAAO,EACL,8BAA8B,EAC9B,0BAA0B,EAC1B,0BAA0B,EAC3B,wDAAqD;AACtD,OAAO,EAAC,SAAS,EAAC,8CAA2C;AAE7D,OAAO,EAAC,gBAAgB,EAAC,iDAA8C;AACvE,OAAO,EAAC,YAAY,EAAC,6CAA0C;AAwB/D,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EACjB,wBAAqB;AAOtB,OAAO,EAAC,QAAQ,EAAC,uBAAoB;AAQrC,OAAO,EAAC,SAAS,EAAC,wBAAqB;AAWvC,OAAO,EAAC,iBAAiB,EAAC,6CAA0C;AACpE,OAAO,EAAC,cAAc,EAAC,0CAAuC;AAC9D,OAAO,EAAC,oBAAoB,EAAC,gDAA6C;AAC1E,OAAO,EAAC,uBAAuB,EAAC,gDAA6C;AAiB7E,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,EAC7B,sCAAsC,EACvC,mCAAgC;AACjC,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACvB,8CAA2C;AAC5C,OAAO,EAAC,4BAA4B,EAAC,oDAAiD;AACtF,OAAO,EAAC,yBAAyB,EAAC,oDAAiD;AAMnF,OAAO,EAAC,qBAAqB,EAAC,6CAA0C;AACxE,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,yBAAyB,EACzB,kBAAkB,EAClB,wBAAwB,EACzB,+CAA4C;AAE7C,OAAO,EAAC,aAAa,EAAC,4CAAyC;AAE/D,OAAO,EAAC,YAAY,EAAC,wCAAqC;AAE1D,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,SAAS,EACT,YAAY,EACZ,eAAe,EAChB,uBAAoB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAIpC,OAAO,EAAC,SAAS,EAAC,0CAAuC;AACzD,OAAO,EAAC,6BAA6B,EAAC,qDAAkD;AAcxF,OAAO,EAAC,iBAAiB,EAAC,8CAA2C;AAErE,OAAO,EAAC,2BAA2B,EAAC,8DAA2D;AAC/F,OAAO,EAAC,MAAM,EAAC,uCAAoC;AAQnD,OAAO,EAAC,aAAa,EAAC,wDAAqD;AAW3E,OAAO,EACL,8BAA8B,EAC9B,0BAA0B,EAC1B,0BAA0B,EAC3B,wDAAqD;AACtD,OAAO,EAAC,SAAS,EAAC,8CAA2C;AAE7D,OAAO,EAAC,gBAAgB,EAAC,iDAA8C;AACvE,OAAO,EAAC,YAAY,EAAC,6CAA0C;AAwB/D,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EACjB,wBAAqB;AAOtB,OAAO,EAAC,QAAQ,EAAC,uBAAoB;AAQrC,OAAO,EAAC,SAAS,EAAC,wBAAqB;AAWvC,OAAO,EAAC,iBAAiB,EAAC,6CAA0C;AACpE,OAAO,EAAC,cAAc,EAAC,0CAAuC;AAC9D,OAAO,EAAC,oBAAoB,EAAC,gDAA6C;AAC1E,OAAO,EAAC,uBAAuB,EAAC,gDAA6C;AAC7E,OAAO,EAAC,4BAA4B,EAAC,mDAAgD;AAkBrF,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,EAC7B,sCAAsC,EACvC,mCAAgC;AACjC,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACvB,8CAA2C;AAC5C,OAAO,EAAC,4BAA4B,EAAC,oDAAiD;AACtF,OAAO,EAAC,yBAAyB,EAAC,oDAAiD;AACnF,OAAO,EAAC,yBAAyB,EAAC,kDAA+C;AAOjF,OAAO,EAAC,qBAAqB,EAAC,6CAA0C;AACxE,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,yBAAyB,EACzB,kBAAkB,EAClB,wBAAwB,EACzB,+CAA4C;AAE7C,OAAO,EAAC,aAAa,EAAC,4CAAyC;AAE/D,OAAO,EAAC,YAAY,EAAC,wCAAqC;AAE1D,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,SAAS,EACT,YAAY,EACZ,eAAe,EAChB,uBAAoB"}
@@ -41,6 +41,7 @@ type Tiles3DLike = {
41
41
  region?: unknown;
42
42
  };
43
43
  };
44
+ extensions?: Record<string, unknown>;
44
45
  };
45
46
  /**
46
47
  * Discovers normalized spatial metadata from an I3S scene-layer document.
@@ -1 +1 @@
1
- {"version":3,"file":"format-spatial-reference.d.ts","sourceRoot":"","sources":["../../src/spatial/format-spatial-reference.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,cAAc,CAAC;AAGxD,OAAO,KAAK,EAAuB,uBAAuB,EAAC,2BAAwB;AAEnF,qFAAqF;AACrF,KAAK,uBAAuB,GAAG;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,8DAA8D;AAC9D,KAAK,YAAY,GAAG;IAClB,gBAAgB,CAAC,EAAE,uBAAuB,CAAC;IAC3C,UAAU,CAAC,EAAE;QAAC,gBAAgB,CAAC,EAAE,uBAAuB,CAAA;KAAC,CAAC;IAC1D,eAAe,CAAC,EAAE;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,qBAAqB,CAAC;QAChC,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC;CACjE,CAAC;AAKF,kEAAkE;AAClE,KAAK,WAAW,GAAG;IACjB,MAAM,CAAC,EAAE;QACP,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACnC,CAAC;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAC,CAAC;IAClE,IAAI,CAAC,EAAE;QAAC,cAAc,CAAC,EAAE;YAAC,MAAM,CAAC,EAAE,OAAO,CAAA;SAAC,CAAA;KAAC,CAAC;CAC9C,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,YAAY,GAAG,uBAAuB,CAmEnF;AA8BD;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,WAAW,GAAG,uBAAuB,CA0CxF"}
1
+ {"version":3,"file":"format-spatial-reference.d.ts","sourceRoot":"","sources":["../../src/spatial/format-spatial-reference.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,cAAc,CAAC;AAOxD,OAAO,KAAK,EAAuB,uBAAuB,EAAC,2BAAwB;AAEnF,qFAAqF;AACrF,KAAK,uBAAuB,GAAG;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,8DAA8D;AAC9D,KAAK,YAAY,GAAG;IAClB,gBAAgB,CAAC,EAAE,uBAAuB,CAAC;IAC3C,UAAU,CAAC,EAAE;QAAC,gBAAgB,CAAC,EAAE,uBAAuB,CAAA;KAAC,CAAC;IAC1D,eAAe,CAAC,EAAE;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,qBAAqB,CAAC;QAChC,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC;CACjE,CAAC;AAKF,kEAAkE;AAClE,KAAK,WAAW,GAAG;IACjB,MAAM,CAAC,EAAE;QACP,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACnC,CAAC;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAC,CAAC;IAClE,IAAI,CAAC,EAAE;QAAC,cAAc,CAAC,EAAE;YAAC,MAAM,CAAC,EAAE,OAAO,CAAA;SAAC,CAAA;KAAC,CAAC;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,YAAY,GAAG,uBAAuB,CAqEnF;AA8BD;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,WAAW,GAAG,uBAAuB,CA8CxF"}
@@ -2,6 +2,7 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
  import { getI3SLinearUnitScale, getI3SVerticalUnitScale } from "./i3s-elevation.js";
5
+ import { getKnownCrsIdentifierCoordinateFrame, getSpatialCoordinateFrame } from "./get-spatial-coordinate-frame.js";
5
6
  import { createTilesetSpatialReference } from "./spatial-types.js";
6
7
  /**
7
8
  * Discovers normalized spatial metadata from an I3S scene-layer document.
@@ -26,8 +27,10 @@ export function getI3SSpatialReference(layer) {
26
27
  : 'unknown';
27
28
  const sourceIdentifier = getCrsIdentifier(spatialReference);
28
29
  const coordinateFrame = sourceIdentifier === undefined
29
- ? getWktCoordinateFrame(spatialReference?.wkt)
30
- : getIdentifierCoordinateFrame(sourceIdentifier);
30
+ ? sourceCrs
31
+ ? getSpatialCoordinateFrame(sourceCrs)
32
+ : 'unknown'
33
+ : getSpatialCoordinateFrame(`EPSG:${sourceIdentifier}`);
31
34
  const units = getI3SCoordinateUnits(coordinateFrame, verticalUnit, layer.ZFactor);
32
35
  const warnings = [];
33
36
  const elevationMode = getI3SElevationMode(layer.elevationInfo?.mode);
@@ -102,6 +105,10 @@ function getI3SElevationMode(mode) {
102
105
  * @returns Normalized source spatial metadata.
103
106
  */
104
107
  export function get3DTilesSpatialReference(tileset) {
108
+ const draftSpatialReference = getDraft3DTilesSpatialReference(tileset);
109
+ if (draftSpatialReference) {
110
+ return draftSpatialReference;
111
+ }
105
112
  const geocentricCrs = getTilesetSemanticValue(tileset, 'TILESET_CRS_GEOCENTRIC');
106
113
  const coordinateEpoch = getTilesetSemanticValue(tileset, 'TILESET_CRS_COORDINATE_EPOCH');
107
114
  const warnings = [];
@@ -142,6 +149,101 @@ export function get3DTilesSpatialReference(tileset) {
142
149
  warnings
143
150
  });
144
151
  }
152
+ /** Resolves the draft glTF EXT_geospatial_crs WKID or WKT2 declaration. */
153
+ function getDraft3DTilesSpatialReference(tileset) {
154
+ const extension = tileset.extensions?.EXT_geospatial_crs;
155
+ if (!extension) {
156
+ return undefined;
157
+ }
158
+ const warnings = [];
159
+ let sourceCrs;
160
+ let verticalCrs;
161
+ let epoch;
162
+ let representation;
163
+ if (extension.format === 'wkid') {
164
+ const wkidExtension = extension.extensions?.EXT_geospatial_crs_wkid;
165
+ if (typeof wkidExtension?.authority === 'string' && Number.isInteger(wkidExtension.wkid)) {
166
+ sourceCrs = `${wkidExtension.authority}:${wkidExtension.wkid}`;
167
+ representation = 'identifier';
168
+ if (Number.isInteger(wkidExtension.vcsWkid)) {
169
+ verticalCrs = `${wkidExtension.authority}:${wkidExtension.vcsWkid}`;
170
+ }
171
+ epoch = parseCoordinateEpoch(wkidExtension.epoch);
172
+ if (wkidExtension.epoch !== undefined && epoch === undefined) {
173
+ warnings.push('EXT_geospatial_crs_wkid epoch is not a finite decimal year');
174
+ }
175
+ }
176
+ else {
177
+ warnings.push('EXT_geospatial_crs_wkid requires string authority and integer wkid');
178
+ }
179
+ }
180
+ else if (extension.format === 'wkt2') {
181
+ const wktExtension = extension.extensions?.EXT_geospatial_crs_wkt2;
182
+ if (typeof wktExtension?.wkt2 === 'string' && wktExtension.wkt2.trim()) {
183
+ sourceCrs = wktExtension.wkt2;
184
+ representation = 'wkt';
185
+ }
186
+ else {
187
+ warnings.push('EXT_geospatial_crs_wkt2 requires a nonempty wkt2 string');
188
+ }
189
+ }
190
+ else {
191
+ warnings.push(`Unsupported EXT_geospatial_crs format ${String(extension.format)}`);
192
+ }
193
+ const coordinateFrame = representation === 'wkt'
194
+ ? getSpatialCoordinateFrame(sourceCrs)
195
+ : getKnownCrsIdentifierCoordinateFrame(sourceCrs) || 'unknown';
196
+ const verticalSemantics = getDraftVerticalCrsSemantics(verticalCrs);
197
+ if (verticalCrs && !verticalSemantics) {
198
+ warnings.push(`Unsupported vertical CRS ${String(verticalCrs)}; vertical unit and height reference are unknown`);
199
+ }
200
+ const verticalUnit = verticalCrs ? verticalSemantics?.unit : 'meter';
201
+ return createTilesetSpatialReference({
202
+ sourceCrs,
203
+ sourceCrsState: sourceCrs ? 'explicit' : 'unknown',
204
+ sourceCrsRepresentation: representation,
205
+ verticalCrs,
206
+ coordinateEpoch: epoch,
207
+ units: coordinateFrame === 'geocentric'
208
+ ? ['meter', 'meter', 'meter']
209
+ : coordinateFrame === 'geographic' && verticalUnit
210
+ ? ['degree', 'degree', verticalUnit]
211
+ : undefined,
212
+ verticalUnitScale: verticalCrs ? (verticalSemantics?.verticalUnitScale ?? Number.NaN) : 1,
213
+ heightReference: verticalCrs
214
+ ? (verticalSemantics?.heightReference ?? 'unknown')
215
+ : sourceCrs
216
+ ? 'ellipsoidal'
217
+ : 'unknown',
218
+ coordinateFrame,
219
+ axisOrder: sourceCrs ? 'xyz' : 'unknown',
220
+ provenance: 'metadata',
221
+ warnings
222
+ });
223
+ }
224
+ /** Resolves vertical units and height interpretation for known EPSG vertical CRSs. */
225
+ function getDraftVerticalCrsSemantics(verticalCrs) {
226
+ if (typeof verticalCrs !== 'string') {
227
+ return undefined;
228
+ }
229
+ const epsgMatch = /^EPSG:(\d+)$/i.exec(verticalCrs);
230
+ if (!epsgMatch) {
231
+ return undefined;
232
+ }
233
+ switch (Number(epsgMatch[1])) {
234
+ case 5702: // NGVD29 height (ftUS)
235
+ case 6360: // NAVD88 height (ftUS)
236
+ return {
237
+ unit: 'us-foot',
238
+ verticalUnitScale: 1200 / 3937,
239
+ heightReference: 'orthometric'
240
+ };
241
+ case 5703: // NAVD88 height
242
+ return { unit: 'meter', verticalUnitScale: 1, heightReference: 'orthometric' };
243
+ default:
244
+ return undefined;
245
+ }
246
+ }
145
247
  /** Parse the 3D Tiles decimal-year string while tolerating legacy numeric producer output. */
146
248
  function parseCoordinateEpoch(value) {
147
249
  if (typeof value !== 'string' && typeof value !== 'number') {
@@ -170,50 +272,6 @@ function getI3SVerticalCrsDefinition(spatialReference) {
170
272
  function getCrsIdentifier(spatialReference) {
171
273
  return spatialReference?.latestWkid ?? spatialReference?.wkid;
172
274
  }
173
- /** Classify common EPSG identifiers used by I3S into their coordinate frames. */
174
- function getIdentifierCoordinateFrame(identifier) {
175
- if (identifier === 4978) {
176
- return 'geocentric';
177
- }
178
- if (identifier === 4326 || identifier === 4490 || identifier === 4979) {
179
- return 'geographic';
180
- }
181
- return 'projected';
182
- }
183
- /**
184
- * Classify a WKT root coordinate system without guessing when the declaration is ambiguous.
185
- *
186
- * WKT2 uses `GEODCRS` for both geographic and geocentric systems, so its `CS` declaration is
187
- * inspected before assigning a frame.
188
- */
189
- function getWktCoordinateFrame(wkt) {
190
- if (!wkt) {
191
- return 'unknown';
192
- }
193
- const normalizedWkt = wkt.trim().toUpperCase();
194
- const rootKeyword = normalizedWkt.match(/^([A-Z][A-Z0-9_]*)\s*[\[(]/)?.[1];
195
- if (rootKeyword === 'GEOCCS') {
196
- return 'geocentric';
197
- }
198
- if (rootKeyword === 'GEOGCS' ||
199
- rootKeyword === 'GEOGRAPHICCRS' ||
200
- rootKeyword === 'GEOGRAPHIC2DCRS' ||
201
- rootKeyword === 'GEOGRAPHIC3DCRS') {
202
- return 'geographic';
203
- }
204
- if (rootKeyword === 'PROJCS' || rootKeyword === 'PROJCRS' || rootKeyword === 'PROJECTEDCRS') {
205
- return 'projected';
206
- }
207
- if (rootKeyword === 'GEODCRS' || rootKeyword === 'GEODETICCRS') {
208
- if (/\bCS\s*[\[(]\s*CARTESIAN\s*,\s*3\b/.test(normalizedWkt)) {
209
- return 'geocentric';
210
- }
211
- if (/\bCS\s*[\[(]\s*ELLIPSOIDAL\s*,\s*[23]\b/.test(normalizedWkt)) {
212
- return 'geographic';
213
- }
214
- }
215
- return 'unknown';
216
- }
217
275
  /** Resolve a tileset-wide structured metadata property by its standard semantic. */
218
276
  function getTilesetSemanticValue(tileset, semantic) {
219
277
  const classIdentifier = tileset.metadata?.class;
@@ -1 +1 @@
1
- {"version":3,"file":"format-spatial-reference.js","sourceRoot":"","sources":["../../src/spatial/format-spatial-reference.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"format-spatial-reference.js","sourceRoot":"","sources":["../../src/spatial/format-spatial-reference.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { ReadonlyCRSDefinition, SpatialReferenceCoordinateFrame } from '@math.gl/crs';
1
+ import { type ReadonlyCRSDefinition, type SpatialReferenceCoordinateFrame } from '@math.gl/crs';
2
2
  /**
3
3
  * Classify a CRS definition into the broad coordinate frame used by 3D format adapters.
4
4
  *
@@ -6,4 +6,15 @@ import type { ReadonlyCRSDefinition, SpatialReferenceCoordinateFrame } from '@ma
6
6
  * @returns The broad geographic, geocentric, projected, local, or unknown frame.
7
7
  */
8
8
  export declare function getSpatialCoordinateFrame(definition: ReadonlyCRSDefinition): SpatialReferenceCoordinateFrame;
9
+ /**
10
+ * Classifies authority identifiers for which the tiles runtime has explicit frame knowledge.
11
+ *
12
+ * Unlike {@link getSpatialCoordinateFrame}, this function does not assume that an unrecognized
13
+ * authority identifier is projected. Draft formats use this strict result to avoid inventing
14
+ * semantics for unknown authorities or registry codes.
15
+ *
16
+ * @param definition - Serialized CRS identifier.
17
+ * @returns A known frame, or `undefined` when registry semantics are unavailable.
18
+ */
19
+ export declare function getKnownCrsIdentifierCoordinateFrame(definition: ReadonlyCRSDefinition | undefined): SpatialReferenceCoordinateFrame | undefined;
9
20
  //# sourceMappingURL=get-spatial-coordinate-frame.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-spatial-coordinate-frame.d.ts","sourceRoot":"","sources":["../../src/spatial/get-spatial-coordinate-frame.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,qBAAqB,EAAE,+BAA+B,EAAC,MAAM,cAAc,CAAC;AAczF;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,qBAAqB,GAChC,+BAA+B,CA+CjC"}
1
+ {"version":3,"file":"get-spatial-coordinate-frame.d.ts","sourceRoot":"","sources":["../../src/spatial/get-spatial-coordinate-frame.ts"],"names":[],"mappings":"AAIA,OAAO,EAIL,KAAK,qBAAqB,EAC1B,KAAK,+BAA+B,EAErC,MAAM,cAAc,CAAC;AAOtB;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,qBAAqB,GAChC,+BAA+B,CAoCjC;AAED;;;;;;;;;GASG;AACH,wBAAgB,oCAAoC,CAClD,UAAU,EAAE,qBAAqB,GAAG,SAAS,GAC5C,+BAA+B,GAAG,SAAS,CA8B7C"}
@@ -1,14 +1,8 @@
1
1
  // loaders.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
- const GEOGRAPHIC_CRS = 'EPSG:4326';
5
- const GEOCENTRIC_CRS = 'EPSG:4978';
6
- /** Normalize common OGC URL and URN CRS spellings to authority identifiers. */
7
- function normalizeCrsIdentifier(identifier) {
8
- const normalizedIdentifier = identifier.trim().toUpperCase();
9
- const ogcMatch = normalizedIdentifier.match(/(?:\/DEF\/CRS\/|URN:OGC:DEF:CRS:)([A-Z0-9_-]+)(?:\/|::)(?:[^/:]*[/:])?([A-Z0-9_.-]+)$/);
10
- return ogcMatch ? `${ogcMatch[1]}:${ogcMatch[2]}` : normalizedIdentifier;
11
- }
4
+ import { inferCRSRepresentation, parsePROJString, parseWKTCRS } from '@math.gl/crs';
5
+ import { normalizeCrsIdentifier, WGS84_GEOCENTRIC_CRS, WGS84_GEOGRAPHIC_CRS } from "./normalize-crs-identifier.js";
12
6
  /**
13
7
  * Classify a CRS definition into the broad coordinate frame used by 3D format adapters.
14
8
  *
@@ -17,23 +11,14 @@ function normalizeCrsIdentifier(identifier) {
17
11
  */
18
12
  export function getSpatialCoordinateFrame(definition) {
19
13
  if (typeof definition === 'string') {
20
- const normalized = normalizeCrsIdentifier(definition);
21
- if (normalized === GEOCENTRIC_CRS || /^GEOCCS\s*[\[(]/.test(normalized)) {
22
- return 'geocentric';
23
- }
24
- if (normalized === GEOGRAPHIC_CRS ||
25
- normalized === 'EPSG:4490' ||
26
- normalized === 'EPSG:4979' ||
27
- normalized === 'OGC:CRS84' ||
28
- normalized.includes('+PROJ=LONGLAT') ||
29
- normalized.includes('+PROJ=LATLONG') ||
30
- /^(?:GEOGCS|GEOGCRS|GEOGRAPHICCRS|GEOGRAPHIC2DCRS|GEOGRAPHIC3DCRS)\s*[\[(]/.test(normalized)) {
31
- return 'geographic';
14
+ const representation = inferCRSRepresentation(definition);
15
+ if (representation === 'wkt') {
16
+ return getWktCoordinateFrame(definition);
32
17
  }
33
- if (/^(?:GEODCRS|GEODETICCRS)\s*[\[(]/.test(normalized)) {
34
- return /CS\s*[\[(]\s*CARTESIAN/.test(normalized) ? 'geocentric' : 'geographic';
18
+ if (representation === 'proj-string') {
19
+ return getProjStringCoordinateFrame(definition);
35
20
  }
36
- return 'projected';
21
+ return getKnownCrsIdentifierCoordinateFrame(definition) || 'projected';
37
22
  }
38
23
  const projJsonDefinition = definition;
39
24
  if (projJsonDefinition.type === 'BoundCRS' && projJsonDefinition.source_crs) {
@@ -53,6 +38,102 @@ export function getSpatialCoordinateFrame(definition) {
53
38
  ? 'geocentric'
54
39
  : 'geographic';
55
40
  }
56
- return 'projected';
41
+ return 'unknown';
42
+ }
43
+ /**
44
+ * Classifies authority identifiers for which the tiles runtime has explicit frame knowledge.
45
+ *
46
+ * Unlike {@link getSpatialCoordinateFrame}, this function does not assume that an unrecognized
47
+ * authority identifier is projected. Draft formats use this strict result to avoid inventing
48
+ * semantics for unknown authorities or registry codes.
49
+ *
50
+ * @param definition - Serialized CRS identifier.
51
+ * @returns A known frame, or `undefined` when registry semantics are unavailable.
52
+ */
53
+ export function getKnownCrsIdentifierCoordinateFrame(definition) {
54
+ if (typeof definition !== 'string') {
55
+ return undefined;
56
+ }
57
+ const normalized = normalizeCrsIdentifier(definition);
58
+ if (normalized === WGS84_GEOCENTRIC_CRS) {
59
+ return 'geocentric';
60
+ }
61
+ if (normalized === WGS84_GEOGRAPHIC_CRS || normalized === 'OGC:CRS84') {
62
+ return 'geographic';
63
+ }
64
+ const epsgMatch = /^EPSG:(\d+)$/.exec(normalized);
65
+ if (!epsgMatch) {
66
+ return undefined;
67
+ }
68
+ const identifier = Number(epsgMatch[1]);
69
+ if (identifier === 7789) {
70
+ return 'geocentric';
71
+ }
72
+ if (identifier === 4490 || identifier === 4979) {
73
+ return 'geographic';
74
+ }
75
+ if (identifier === 3857 ||
76
+ (identifier >= 32601 && identifier <= 32660) ||
77
+ (identifier >= 32701 && identifier <= 32760)) {
78
+ return 'projected';
79
+ }
80
+ return undefined;
81
+ }
82
+ /** Classifies a WKT definition using the syntax tree parsed by `@math.gl/crs`. */
83
+ function getWktCoordinateFrame(definition) {
84
+ let root;
85
+ try {
86
+ root = parseWKTCRS(definition).root;
87
+ }
88
+ catch {
89
+ return 'unknown';
90
+ }
91
+ switch (root.keyword.toUpperCase()) {
92
+ case 'GEOCCS':
93
+ return 'geocentric';
94
+ case 'GEOGCS':
95
+ case 'GEOGCRS':
96
+ case 'GEOGRAPHICCRS':
97
+ case 'GEOGRAPHIC2DCRS':
98
+ case 'GEOGRAPHIC3DCRS':
99
+ return 'geographic';
100
+ case 'PROJCS':
101
+ case 'PROJCRS':
102
+ case 'PROJECTEDCRS':
103
+ return 'projected';
104
+ case 'GEODCRS':
105
+ case 'GEODETICCRS': {
106
+ const coordinateSystem = root.values.find((value) => value.type === 'node' && value.keyword.toUpperCase() === 'CS');
107
+ const subtype = coordinateSystem?.values[0];
108
+ if (subtype?.type !== 'enumeration' && subtype?.type !== 'string') {
109
+ return 'unknown';
110
+ }
111
+ return subtype.value.toUpperCase() === 'CARTESIAN'
112
+ ? 'geocentric'
113
+ : subtype.value.toUpperCase() === 'ELLIPSOIDAL'
114
+ ? 'geographic'
115
+ : 'unknown';
116
+ }
117
+ default:
118
+ return 'unknown';
119
+ }
120
+ }
121
+ /** Classifies a PROJ string using the syntax tree parsed by `@math.gl/crs`. */
122
+ function getProjStringCoordinateFrame(definition) {
123
+ try {
124
+ const projection = parsePROJString(definition).parameters.find(parameter => parameter.name.toLowerCase() === 'proj')?.value;
125
+ switch (projection?.toLowerCase()) {
126
+ case 'longlat':
127
+ case 'latlong':
128
+ return 'geographic';
129
+ case 'geocent':
130
+ return 'geocentric';
131
+ default:
132
+ return projection ? 'projected' : 'unknown';
133
+ }
134
+ }
135
+ catch {
136
+ return 'unknown';
137
+ }
57
138
  }
58
139
  //# sourceMappingURL=get-spatial-coordinate-frame.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-spatial-coordinate-frame.js","sourceRoot":"","sources":["../../src/spatial/get-spatial-coordinate-frame.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAIpC,MAAM,cAAc,GAAG,WAAW,CAAC;AACnC,MAAM,cAAc,GAAG,WAAW,CAAC;AAEnC,+EAA+E;AAC/E,SAAS,sBAAsB,CAAC,UAAkB;IAChD,MAAM,oBAAoB,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC7D,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK,CACzC,uFAAuF,CACxF,CAAC;IACF,OAAO,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC;AAC3E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CACvC,UAAiC;IAEjC,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC;QACtD,IAAI,UAAU,KAAK,cAAc,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACxE,OAAO,YAAY,CAAC;QACtB,CAAC;QACD,IACE,UAAU,KAAK,cAAc;YAC7B,UAAU,KAAK,WAAW;YAC1B,UAAU,KAAK,WAAW;YAC1B,UAAU,KAAK,WAAW;YAC1B,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC;YACpC,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC;YACpC,2EAA2E,CAAC,IAAI,CAAC,UAAU,CAAC,EAC5F,CAAC;YACD,OAAO,YAAY,CAAC;QACtB,CAAC;QACD,IAAI,kCAAkC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACxD,OAAO,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;QACjF,CAAC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,MAAM,kBAAkB,GAAG,UAK1B,CAAC;IACF,IAAI,kBAAkB,CAAC,IAAI,KAAK,UAAU,IAAI,kBAAkB,CAAC,UAAU,EAAE,CAAC;QAC5E,OAAO,yBAAyB,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,kBAAkB,CAAC,IAAI,KAAK,aAAa,IAAI,kBAAkB,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpF,OAAO,yBAAyB,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC1D,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,IAAI,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QAC3D,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,IAAI,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACzD,OAAO,kBAAkB,CAAC,iBAAiB,EAAE,OAAO,KAAK,WAAW;YAClE,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,YAAY,CAAC;IACnB,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"get-spatial-coordinate-frame.js","sourceRoot":"","sources":["../../src/spatial/get-spatial-coordinate-frame.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EACL,sBAAsB,EACtB,eAAe,EACf,WAAW,EAIZ,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACrB,sCAAmC;AAEpC;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CACvC,UAAiC;IAEjC,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,cAAc,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAI,cAAc,KAAK,KAAK,EAAE,CAAC;YAC7B,OAAO,qBAAqB,CAAC,UAAU,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,cAAc,KAAK,aAAa,EAAE,CAAC;YACrC,OAAO,4BAA4B,CAAC,UAAU,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,oCAAoC,CAAC,UAAU,CAAC,IAAI,WAAW,CAAC;IACzE,CAAC;IAED,MAAM,kBAAkB,GAAG,UAK1B,CAAC;IACF,IAAI,kBAAkB,CAAC,IAAI,KAAK,UAAU,IAAI,kBAAkB,CAAC,UAAU,EAAE,CAAC;QAC5E,OAAO,yBAAyB,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,kBAAkB,CAAC,IAAI,KAAK,aAAa,IAAI,kBAAkB,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpF,OAAO,yBAAyB,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC1D,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,IAAI,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QAC3D,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,IAAI,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACzD,OAAO,kBAAkB,CAAC,iBAAiB,EAAE,OAAO,KAAK,WAAW;YAClE,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,YAAY,CAAC;IACnB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,oCAAoC,CAClD,UAA6C;IAE7C,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACnC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,UAAU,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC;IACtD,IAAI,UAAU,KAAK,oBAAoB,EAAE,CAAC;QACxC,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,IAAI,UAAU,KAAK,oBAAoB,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;QACtE,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAClD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QAC/C,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,IACE,UAAU,KAAK,IAAI;QACnB,CAAC,UAAU,IAAI,KAAK,IAAI,UAAU,IAAI,KAAK,CAAC;QAC5C,CAAC,UAAU,IAAI,KAAK,IAAI,UAAU,IAAI,KAAK,CAAC,EAC5C,CAAC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,kFAAkF;AAClF,SAAS,qBAAqB,CAAC,UAAkB;IAC/C,IAAI,IAAgB,CAAC;IACrB,IAAI,CAAC;QACH,IAAI,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,QAAQ,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;QACnC,KAAK,QAAQ;YACX,OAAO,YAAY,CAAC;QACtB,KAAK,QAAQ,CAAC;QACd,KAAK,SAAS,CAAC;QACf,KAAK,eAAe,CAAC;QACrB,KAAK,iBAAiB,CAAC;QACvB,KAAK,iBAAiB;YACpB,OAAO,YAAY,CAAC;QACtB,KAAK,QAAQ,CAAC;QACd,KAAK,SAAS,CAAC;QACf,KAAK,cAAc;YACjB,OAAO,WAAW,CAAC;QACrB,KAAK,SAAS,CAAC;QACf,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CACvC,CAAC,KAAK,EAAuB,EAAE,CAC7B,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,IAAI,CAChE,CAAC;YACF,MAAM,OAAO,GAAG,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;YAC5C,IAAI,OAAO,EAAE,IAAI,KAAK,aAAa,IAAI,OAAO,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAClE,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,OAAO,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,WAAW;gBAChD,CAAC,CAAC,YAAY;gBACd,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,aAAa;oBAC7C,CAAC,CAAC,YAAY;oBACd,CAAC,CAAC,SAAS,CAAC;QAClB,CAAC;QACD;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,SAAS,4BAA4B,CAAC,UAAkB;IACtD,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,IAAI,CAC5D,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,CACrD,EAAE,KAAK,CAAC;QACT,QAAQ,UAAU,EAAE,WAAW,EAAE,EAAE,CAAC;YAClC,KAAK,SAAS,CAAC;YACf,KAAK,SAAS;gBACZ,OAAO,YAAY,CAAC;YACtB,KAAK,SAAS;gBACZ,OAAO,YAAY,CAAC;YACtB;gBACE,OAAO,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;QAChD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
@@ -0,0 +1,15 @@
1
+ /** Compact identifier for conventional WGS84 longitude/latitude coordinates. */
2
+ export declare const WGS84_GEOGRAPHIC_CRS = "EPSG:4326";
3
+ /** Compact identifier for WGS84 Earth-centered, Earth-fixed coordinates. */
4
+ export declare const WGS84_GEOCENTRIC_CRS = "EPSG:4978";
5
+ /**
6
+ * Normalizes common OGC URL and URN CRS spellings to compact authority identifiers.
7
+ *
8
+ * This intentionally performs syntax normalization only. Authority lookup and semantic
9
+ * equivalence remain outside the scope of `@math.gl/crs` and the tiles runtime.
10
+ *
11
+ * @param identifier - Serialized CRS identifier.
12
+ * @returns Uppercase compact identifier when an OGC spelling is recognized.
13
+ */
14
+ export declare function normalizeCrsIdentifier(identifier: string): string;
15
+ //# sourceMappingURL=normalize-crs-identifier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize-crs-identifier.d.ts","sourceRoot":"","sources":["../../src/spatial/normalize-crs-identifier.ts"],"names":[],"mappings":"AAIA,gFAAgF;AAChF,eAAO,MAAM,oBAAoB,cAAc,CAAC;AAEhD,4EAA4E;AAC5E,eAAO,MAAM,oBAAoB,cAAc,CAAC;AAEhD;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAMjE"}
@@ -0,0 +1,22 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ /** Compact identifier for conventional WGS84 longitude/latitude coordinates. */
5
+ export const WGS84_GEOGRAPHIC_CRS = 'EPSG:4326';
6
+ /** Compact identifier for WGS84 Earth-centered, Earth-fixed coordinates. */
7
+ export const WGS84_GEOCENTRIC_CRS = 'EPSG:4978';
8
+ /**
9
+ * Normalizes common OGC URL and URN CRS spellings to compact authority identifiers.
10
+ *
11
+ * This intentionally performs syntax normalization only. Authority lookup and semantic
12
+ * equivalence remain outside the scope of `@math.gl/crs` and the tiles runtime.
13
+ *
14
+ * @param identifier - Serialized CRS identifier.
15
+ * @returns Uppercase compact identifier when an OGC spelling is recognized.
16
+ */
17
+ export function normalizeCrsIdentifier(identifier) {
18
+ const normalizedIdentifier = identifier.trim().toUpperCase();
19
+ const ogcMatch = normalizedIdentifier.match(/(?:\/DEF\/CRS\/|URN:OGC:DEF:CRS:)([A-Z0-9_-]+)(?:\/|::)(?:[^/:]*[/:])?([A-Z0-9_.-]+)$/);
20
+ return ogcMatch ? `${ogcMatch[1]}:${ogcMatch[2]}` : normalizedIdentifier;
21
+ }
22
+ //# sourceMappingURL=normalize-crs-identifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize-crs-identifier.js","sourceRoot":"","sources":["../../src/spatial/normalize-crs-identifier.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAEpC,gFAAgF;AAChF,MAAM,CAAC,MAAM,oBAAoB,GAAG,WAAW,CAAC;AAEhD,4EAA4E;AAC5E,MAAM,CAAC,MAAM,oBAAoB,GAAG,WAAW,CAAC;AAEhD;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CAAC,UAAkB;IACvD,MAAM,oBAAoB,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC7D,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK,CACzC,uFAAuF,CACxF,CAAC;IACF,OAAO,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC;AAC3E,CAAC"}
@@ -40,6 +40,10 @@ export declare class SpatialCoordinateTransformer {
40
40
  * @returns A new transformed coordinate array.
41
41
  */
42
42
  transformPosition(coordinate: readonly number[]): number[];
43
+ /** Transform a packed sequence of xyz positions, preserving the input array type only when safe. */
44
+ transformPositions(positions: ArrayLike<number>): Float64Array;
45
+ /** Transform packed xyz normals using a local finite-difference tangent approximation. */
46
+ transformNormals(normals: ArrayLike<number>, positions: ArrayLike<number>): Float32Array;
43
47
  /** Convert one source coordinate to conventional WGS84 longitude, latitude, and height. */
44
48
  private toGeographic;
45
49
  /** Convert one conventional WGS84 geographic coordinate to the selected output CRS. */
@@ -1 +1 @@
1
- {"version":3,"file":"spatial-coordinate-transformer.d.ts","sourceRoot":"","sources":["../../src/spatial/spatial-coordinate-transformer.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAEV,qBAAqB,EACrB,uBAAuB,EAExB,2BAAwB;AACzB,OAAO,EAAC,yBAAyB,EAAC,0CAAuC;AAKzE;;;;;;GAMG;AACH,qBAAa,4BAA4B;IACvC,kEAAkE;IAClE,QAAQ,CAAC,gBAAgB,EAAE,uBAAuB,CAAC;IAEnD,sFAAsF;IACtF,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAkB;IAExD,gGAAgG;IAChG,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAkB;IAExD,mFAAmF;IACnF,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAkB;IAE1D,oFAAoF;IACpF,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAU;IAE7C,oFAAoF;IACpF,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAU;IAE7C,0FAA0F;IAC1F,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAU;IAE7C,kFAAkF;IAClF,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAU;IAE7C,+EAA+E;IAC/E,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAQ;IAE/B;;;;;OAKG;gBACS,gBAAgB,EAAE,uBAAuB,EAAE,OAAO,GAAE,qBAA0B;IAuD1F;;;;;OAKG;IACH,iBAAiB,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE;IAoC1D,2FAA2F;IAC3F,OAAO,CAAC,YAAY;IAUpB,uFAAuF;IACvF,OAAO,CAAC,cAAc;CASvB"}
1
+ {"version":3,"file":"spatial-coordinate-transformer.d.ts","sourceRoot":"","sources":["../../src/spatial/spatial-coordinate-transformer.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAEV,qBAAqB,EACrB,uBAAuB,EAExB,2BAAwB;AACzB,OAAO,EAAC,yBAAyB,EAAC,0CAAuC;AAEzE;;;;;;GAMG;AACH,qBAAa,4BAA4B;IACvC,kEAAkE;IAClE,QAAQ,CAAC,gBAAgB,EAAE,uBAAuB,CAAC;IAEnD,sFAAsF;IACtF,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAkB;IAExD,gGAAgG;IAChG,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAkB;IAExD,mFAAmF;IACnF,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAkB;IAE1D,oFAAoF;IACpF,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAU;IAE7C,oFAAoF;IACpF,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAU;IAE7C,0FAA0F;IAC1F,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAU;IAE7C,kFAAkF;IAClF,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAU;IAE7C,+EAA+E;IAC/E,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAQ;IAE/B;;;;;OAKG;gBACS,gBAAgB,EAAE,uBAAuB,EAAE,OAAO,GAAE,qBAA0B;IAuD1F;;;;;OAKG;IACH,iBAAiB,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE;IAoC1D,oGAAoG;IACpG,kBAAkB,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,YAAY;IAkB9D,0FAA0F;IAC1F,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,YAAY;IAiCxF,2FAA2F;IAC3F,OAAO,CAAC,YAAY;IAUpB,uFAAuF;IACvF,OAAO,CAAC,cAAc;CASvB"}