@deck.gl/geo-layers 9.3.0-alpha.6 → 9.3.0-beta.1
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/dist.dev.js +81 -26
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +2 -2
- package/dist/tileset-2d/utils.d.ts.map +1 -1
- package/dist/tileset-2d/utils.js +4 -2
- package/dist/tileset-2d/utils.js.map +1 -1
- package/dist.min.js +18 -18
- package/package.json +4 -4
- package/src/tileset-2d/utils.ts +5 -2
package/dist/dist.dev.js
CHANGED
|
@@ -2878,6 +2878,8 @@ var __exports__ = (() => {
|
|
|
2878
2878
|
var distanceToVertex = 3 - Math.sqrt(5);
|
|
2879
2879
|
var Rmidedge = Math.sqrt(3 - \u03C6);
|
|
2880
2880
|
var Rcircumscribed = Math.sqrt(3) * Rmidedge / \u03C6;
|
|
2881
|
+
var AUTHALIC_RADIUS_EARTH = 63710072e-1;
|
|
2882
|
+
var AUTHALIC_AREA_EARTH = 4 * Math.PI * AUTHALIC_RADIUS_EARTH * AUTHALIC_RADIUS_EARTH;
|
|
2881
2883
|
common_exports.setMatrixArrayType(Float64Array);
|
|
2882
2884
|
var PentagonShape = class _PentagonShape {
|
|
2883
2885
|
constructor(vertices) {
|
|
@@ -3579,12 +3581,13 @@ var __exports__ = (() => {
|
|
|
3579
3581
|
}
|
|
3580
3582
|
}
|
|
3581
3583
|
};
|
|
3582
|
-
common_exports.setMatrixArrayType(Float64Array);
|
|
3583
3584
|
var YES = -1;
|
|
3584
3585
|
var NO = 1;
|
|
3586
|
+
common_exports.setMatrixArrayType(Float64Array);
|
|
3585
3587
|
var KJToIJ = ([k, j]) => {
|
|
3586
3588
|
return vec2_exports.fromValues(k - j, j);
|
|
3587
3589
|
};
|
|
3590
|
+
common_exports.setMatrixArrayType(Float64Array);
|
|
3588
3591
|
var kPos = vec2_exports.fromValues(1, 0);
|
|
3589
3592
|
var jPos = vec2_exports.fromValues(0, 1);
|
|
3590
3593
|
var kNeg = vec2_exports.negate(vec2_exports.create(), kPos);
|
|
@@ -3622,7 +3625,6 @@ var __exports__ = (() => {
|
|
|
3622
3625
|
var quaternaryToFlips = (n) => {
|
|
3623
3626
|
return [[NO, NO], [NO, YES], [NO, NO], [YES, NO]][n];
|
|
3624
3627
|
};
|
|
3625
|
-
var FLIP_SHIFT = vec2_exports.fromValues(-1, 1);
|
|
3626
3628
|
function reversePattern(pattern) {
|
|
3627
3629
|
return Array.from({ length: pattern.length }, (_, i) => pattern.indexOf(i));
|
|
3628
3630
|
}
|
|
@@ -3630,7 +3632,7 @@ var __exports__ = (() => {
|
|
|
3630
3632
|
var PATTERN_FLIPPED = [0, 1, 2, 7, 3, 4, 5, 6];
|
|
3631
3633
|
var PATTERN_REVERSED = reversePattern(PATTERN);
|
|
3632
3634
|
var PATTERN_FLIPPED_REVERSED = reversePattern(PATTERN_FLIPPED);
|
|
3633
|
-
var
|
|
3635
|
+
var shiftDigits = (digits, i, flips, invertJ, pattern) => {
|
|
3634
3636
|
if (i <= 0)
|
|
3635
3637
|
return;
|
|
3636
3638
|
const parentK = digits[i] || 0;
|
|
@@ -3652,7 +3654,10 @@ var __exports__ = (() => {
|
|
|
3652
3654
|
digits[i - 1] = dst % 4;
|
|
3653
3655
|
digits[i] = (parentK + 4 + Math.floor(dst / 4) - Math.floor(src / 4)) % 4;
|
|
3654
3656
|
};
|
|
3655
|
-
|
|
3657
|
+
common_exports.setMatrixArrayType(Float64Array);
|
|
3658
|
+
var FLIP_SHIFT = vec2_exports.fromValues(-1, 1);
|
|
3659
|
+
var SHIFTDIGITS = true;
|
|
3660
|
+
var sToAnchor = (s, resolution, orientation, doShiftDigits = SHIFTDIGITS) => {
|
|
3656
3661
|
let input = BigInt(s);
|
|
3657
3662
|
const reverse = orientation === "vu" || orientation === "wu" || orientation === "vw";
|
|
3658
3663
|
const invertJ = orientation === "wv" || orientation === "vw";
|
|
@@ -3660,7 +3665,7 @@ var __exports__ = (() => {
|
|
|
3660
3665
|
if (reverse) {
|
|
3661
3666
|
input = (1n << BigInt(2 * resolution)) - input - 1n;
|
|
3662
3667
|
}
|
|
3663
|
-
const anchor = _sToAnchor(input, resolution, invertJ, flipIJ);
|
|
3668
|
+
const anchor = _sToAnchor(input, resolution, invertJ, flipIJ, doShiftDigits);
|
|
3664
3669
|
if (flipIJ) {
|
|
3665
3670
|
const { offset: [_i, _j], flips: [flipX, flipY] } = anchor;
|
|
3666
3671
|
anchor.offset = [_j, _i];
|
|
@@ -3678,7 +3683,7 @@ var __exports__ = (() => {
|
|
|
3678
3683
|
}
|
|
3679
3684
|
return anchor;
|
|
3680
3685
|
};
|
|
3681
|
-
var _sToAnchor = (s, resolution, invertJ, flipIJ) => {
|
|
3686
|
+
var _sToAnchor = (s, resolution, invertJ, flipIJ, doShiftDigits = SHIFTDIGITS) => {
|
|
3682
3687
|
const offset = vec2_exports.create();
|
|
3683
3688
|
const flips = [NO, NO];
|
|
3684
3689
|
let input = BigInt(s);
|
|
@@ -3689,7 +3694,9 @@ var __exports__ = (() => {
|
|
|
3689
3694
|
}
|
|
3690
3695
|
const pattern = flipIJ ? PATTERN_FLIPPED : PATTERN;
|
|
3691
3696
|
for (let i = digits.length - 1; i >= 0; i--) {
|
|
3692
|
-
|
|
3697
|
+
if (doShiftDigits) {
|
|
3698
|
+
shiftDigits(digits, i, flips, invertJ, pattern);
|
|
3699
|
+
}
|
|
3693
3700
|
vec2_exports.multiply(flips, flips, quaternaryToFlips(digits[i]));
|
|
3694
3701
|
}
|
|
3695
3702
|
flips[0] = NO;
|
|
@@ -3700,9 +3707,16 @@ var __exports__ = (() => {
|
|
|
3700
3707
|
vec2_exports.add(offset, offset, childOffset);
|
|
3701
3708
|
vec2_exports.multiply(flips, flips, quaternaryToFlips(digits[i]));
|
|
3702
3709
|
}
|
|
3703
|
-
const
|
|
3704
|
-
return {
|
|
3710
|
+
const q = digits[0] || 0;
|
|
3711
|
+
return { q, offset: KJToIJ(offset), flips };
|
|
3705
3712
|
};
|
|
3713
|
+
var PROBE_R = 0.1;
|
|
3714
|
+
var PROBE_OFFSETS = [
|
|
3715
|
+
[PROBE_R * Math.cos(45 * Math.PI / 180), PROBE_R * Math.sin(45 * Math.PI / 180)],
|
|
3716
|
+
[PROBE_R * Math.cos(113 * Math.PI / 180), PROBE_R * Math.sin(113 * Math.PI / 180)],
|
|
3717
|
+
[PROBE_R * Math.cos(293 * Math.PI / 180), PROBE_R * Math.sin(293 * Math.PI / 180)],
|
|
3718
|
+
[PROBE_R * Math.cos(225 * Math.PI / 180), PROBE_R * Math.sin(225 * Math.PI / 180)]
|
|
3719
|
+
];
|
|
3706
3720
|
common_exports.setMatrixArrayType(Float64Array);
|
|
3707
3721
|
var TRIANGLE_MODE = false;
|
|
3708
3722
|
var shiftRight = vec2_exports.clone(w);
|
|
@@ -3719,12 +3733,12 @@ var __exports__ = (() => {
|
|
|
3719
3733
|
if (anchor.flips[0] === NO && anchor.flips[1] === YES) {
|
|
3720
3734
|
pentagon.rotate180();
|
|
3721
3735
|
}
|
|
3722
|
-
const {
|
|
3736
|
+
const { q } = anchor;
|
|
3723
3737
|
const F2 = anchor.flips[0] + anchor.flips[1];
|
|
3724
3738
|
if (
|
|
3725
3739
|
// Orient last two pentagons when both or neither flips are YES
|
|
3726
|
-
(F2 === -2 || F2 === 2) &&
|
|
3727
|
-
F2 === 0 && (
|
|
3740
|
+
(F2 === -2 || F2 === 2) && q > 1 || // Orient first & last pentagons when only one of flips is YES
|
|
3741
|
+
F2 === 0 && (q === 0 || q === 3)
|
|
3728
3742
|
) {
|
|
3729
3743
|
pentagon.reflectY();
|
|
3730
3744
|
}
|
|
@@ -3958,13 +3972,40 @@ var __exports__ = (() => {
|
|
|
3958
3972
|
var FIRST_HILBERT_RESOLUTION = 2;
|
|
3959
3973
|
var MAX_RESOLUTION = 30;
|
|
3960
3974
|
var HILBERT_START_BIT = 58n;
|
|
3961
|
-
var
|
|
3975
|
+
var WORLD_CELL = 0n;
|
|
3962
3976
|
function getResolution(index) {
|
|
3977
|
+
if (index === 0n)
|
|
3978
|
+
return -1;
|
|
3979
|
+
if (index & 1n || (index & 0b111n) === 0b100n || (index & 0b11111n) === 0b10000n)
|
|
3980
|
+
return MAX_RESOLUTION;
|
|
3963
3981
|
let resolution = MAX_RESOLUTION - 1;
|
|
3964
3982
|
let shifted = index >> 1n;
|
|
3965
|
-
|
|
3983
|
+
if (shifted === 0n)
|
|
3984
|
+
return -1;
|
|
3985
|
+
let low32 = Number(shifted & 0xFFFFFFFFn);
|
|
3986
|
+
let remaining;
|
|
3987
|
+
if (low32 === 0) {
|
|
3988
|
+
shifted >>= 32n;
|
|
3989
|
+
resolution -= 16;
|
|
3990
|
+
remaining = Number(shifted);
|
|
3991
|
+
} else {
|
|
3992
|
+
remaining = low32;
|
|
3993
|
+
}
|
|
3994
|
+
if ((remaining & 65535) === 0) {
|
|
3995
|
+
remaining >>= 16;
|
|
3996
|
+
resolution -= 8;
|
|
3997
|
+
}
|
|
3998
|
+
if (resolution >= 6 && (remaining & 255) === 0) {
|
|
3999
|
+
remaining >>= 8;
|
|
4000
|
+
resolution -= 4;
|
|
4001
|
+
}
|
|
4002
|
+
if (resolution >= 4 && (remaining & 15) === 0) {
|
|
4003
|
+
remaining >>= 4;
|
|
4004
|
+
resolution -= 2;
|
|
4005
|
+
}
|
|
4006
|
+
while (resolution > -1 && (remaining & 1) === 0) {
|
|
3966
4007
|
resolution -= 1;
|
|
3967
|
-
|
|
4008
|
+
remaining = remaining >> (resolution < FIRST_HILBERT_RESOLUTION ? 1 : 2);
|
|
3968
4009
|
}
|
|
3969
4010
|
return resolution;
|
|
3970
4011
|
}
|
|
@@ -3973,27 +4014,33 @@ var __exports__ = (() => {
|
|
|
3973
4014
|
if (resolution === -1) {
|
|
3974
4015
|
return { origin: origins[0], segment: 0, S: 0n, resolution };
|
|
3975
4016
|
}
|
|
3976
|
-
|
|
4017
|
+
let quintantShift = HILBERT_START_BIT;
|
|
4018
|
+
let quintantOffset = 0;
|
|
4019
|
+
if (resolution === MAX_RESOLUTION) {
|
|
4020
|
+
const markerBits = index & 1n ? 1n : index & 0b100n ? 3n : 5n;
|
|
4021
|
+
quintantShift = HILBERT_START_BIT + markerBits;
|
|
4022
|
+
quintantOffset = markerBits === 1n ? 0 : markerBits === 3n ? 32 : 40;
|
|
4023
|
+
}
|
|
4024
|
+
const topBits = Number(index >> quintantShift) + quintantOffset;
|
|
3977
4025
|
let origin, segment;
|
|
3978
4026
|
if (resolution === 0) {
|
|
3979
|
-
|
|
3980
|
-
origin = origins[originId2];
|
|
4027
|
+
origin = origins[topBits];
|
|
3981
4028
|
segment = 0;
|
|
3982
4029
|
} else {
|
|
3983
|
-
const originId2 = Math.floor(
|
|
4030
|
+
const originId2 = Math.floor(topBits / 5);
|
|
3984
4031
|
origin = origins[originId2];
|
|
3985
|
-
segment = (
|
|
4032
|
+
segment = (topBits + origin.firstQuintant) % 5;
|
|
3986
4033
|
}
|
|
3987
4034
|
if (!origin) {
|
|
3988
|
-
throw new Error(`Could not parse origin: ${
|
|
4035
|
+
throw new Error(`Could not parse origin: ${topBits}`);
|
|
3989
4036
|
}
|
|
3990
4037
|
if (resolution < FIRST_HILBERT_RESOLUTION) {
|
|
3991
4038
|
return { origin, segment, S: 0n, resolution };
|
|
3992
4039
|
}
|
|
3993
4040
|
const hilbertLevels = resolution - FIRST_HILBERT_RESOLUTION + 1;
|
|
3994
4041
|
const hilbertBits = BigInt(2 * hilbertLevels);
|
|
3995
|
-
const
|
|
3996
|
-
const S = (index &
|
|
4042
|
+
const removalMask = (1n << quintantShift) - 1n;
|
|
4043
|
+
const S = (index & removalMask) >> quintantShift - hilbertBits;
|
|
3997
4044
|
return { origin, segment, S, resolution };
|
|
3998
4045
|
}
|
|
3999
4046
|
common_exports.setMatrixArrayType(Float64Array);
|
|
@@ -4012,6 +4059,9 @@ var __exports__ = (() => {
|
|
|
4012
4059
|
return getPentagonVertices(hilbertResolution, quintant, anchor);
|
|
4013
4060
|
}
|
|
4014
4061
|
function cellToBoundary(cellId, { closedRing = true, segments = "auto" } = { closedRing: true, segments: "auto" }) {
|
|
4062
|
+
if (cellId === WORLD_CELL) {
|
|
4063
|
+
return [];
|
|
4064
|
+
}
|
|
4015
4065
|
const { S, segment, origin, resolution } = deserialize(cellId);
|
|
4016
4066
|
if (segments === "auto") {
|
|
4017
4067
|
segments = Math.max(1, Math.pow(2, 6 - resolution));
|
|
@@ -4031,8 +4081,13 @@ var __exports__ = (() => {
|
|
|
4031
4081
|
function hexToU64(hex) {
|
|
4032
4082
|
return BigInt(`0x${hex}`);
|
|
4033
4083
|
}
|
|
4034
|
-
var
|
|
4035
|
-
var
|
|
4084
|
+
var CELL_RADIUS_SAFETY_FACTOR = 2;
|
|
4085
|
+
var BASE_CELL_RADIUS = CELL_RADIUS_SAFETY_FACTOR * AUTHALIC_RADIUS_EARTH / Math.sqrt(15);
|
|
4086
|
+
var _cellRadius = new Array(31);
|
|
4087
|
+
_cellRadius[0] = CELL_RADIUS_SAFETY_FACTOR * AUTHALIC_RADIUS_EARTH / Math.sqrt(3);
|
|
4088
|
+
for (let r = 1; r <= 30; r++) {
|
|
4089
|
+
_cellRadius[r] = BASE_CELL_RADIUS / (1 << r - 1);
|
|
4090
|
+
}
|
|
4036
4091
|
common_exports.setMatrixArrayType(Float64Array);
|
|
4037
4092
|
|
|
4038
4093
|
// src/h3-layers/h3-utils.ts
|
|
@@ -14503,7 +14558,7 @@ var __exports__ = (() => {
|
|
|
14503
14558
|
visibleMinZoom,
|
|
14504
14559
|
visibleMaxZoom
|
|
14505
14560
|
}) {
|
|
14506
|
-
let z = viewport.isGeospatial ? Math.round(viewport.zoom + Math.log2(TILE_SIZE4 / tileSize)
|
|
14561
|
+
let z = viewport.isGeospatial ? Math.round(viewport.zoom + Math.log2(TILE_SIZE4 / tileSize) + zoomOffset) : Math.ceil(viewport.zoom + zoomOffset);
|
|
14507
14562
|
if (typeof minZoom === "number" && Number.isFinite(minZoom) && z < minZoom) {
|
|
14508
14563
|
if (!extent) {
|
|
14509
14564
|
return [];
|
package/dist/index.cjs
CHANGED
|
@@ -1068,7 +1068,7 @@ function getIdentityTileIndices(viewport, z, tileSize, extent, modelMatrixInvers
|
|
|
1068
1068
|
return indices;
|
|
1069
1069
|
}
|
|
1070
1070
|
function getTileIndices({ viewport, maxZoom, minZoom, zRange, extent, tileSize = TILE_SIZE3, modelMatrix, modelMatrixInverse, zoomOffset = 0, visibleMinZoom, visibleMaxZoom }) {
|
|
1071
|
-
let z = viewport.isGeospatial ? Math.round(viewport.zoom + Math.log2(TILE_SIZE3 / tileSize)
|
|
1071
|
+
let z = viewport.isGeospatial ? Math.round(viewport.zoom + Math.log2(TILE_SIZE3 / tileSize) + zoomOffset) : Math.ceil(viewport.zoom + zoomOffset);
|
|
1072
1072
|
if (typeof minZoom === "number" && Number.isFinite(minZoom) && z < minZoom) {
|
|
1073
1073
|
if (!extent) {
|
|
1074
1074
|
return [];
|