@xyo-network/quadkey 2.37.3 → 2.37.5
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/cjs/Quadkey.d.ts +4 -3
- package/dist/cjs/Quadkey.d.ts.map +1 -1
- package/dist/cjs/Quadkey.js +26 -19
- package/dist/cjs/Quadkey.js.map +1 -1
- package/dist/docs.json +214 -182
- package/dist/esm/Quadkey.d.ts +4 -3
- package/dist/esm/Quadkey.d.ts.map +1 -1
- package/dist/esm/Quadkey.js +26 -19
- package/dist/esm/Quadkey.js.map +1 -1
- package/package.json +1 -1
- package/src/Quadkey.spec.ts +10 -0
- package/src/Quadkey.ts +27 -19
package/dist/esm/Quadkey.d.ts
CHANGED
|
@@ -23,7 +23,7 @@ export declare class Quadkey {
|
|
|
23
23
|
static fromLngLat(point: LngLatLike, zoom: number): Quadkey | undefined;
|
|
24
24
|
static fromTile(tile: MercatorTile): Quadkey | undefined;
|
|
25
25
|
isInBoundingBox(boundingBox: MercatorBoundingBox): boolean;
|
|
26
|
-
static fromBoundingBox(
|
|
26
|
+
static fromBoundingBox(boundingBox: MercatorBoundingBox, zoom: number): Quadkey[];
|
|
27
27
|
getGridBoundingBox(size: number): {
|
|
28
28
|
height: number;
|
|
29
29
|
left: number;
|
|
@@ -38,7 +38,7 @@ export declare class Quadkey {
|
|
|
38
38
|
children(): Quadkey[];
|
|
39
39
|
siblings(): Quadkey[];
|
|
40
40
|
clone(): Quadkey;
|
|
41
|
-
zoom(): number;
|
|
41
|
+
get zoom(): number;
|
|
42
42
|
private _geoJson?;
|
|
43
43
|
geoJson(): GeoJson;
|
|
44
44
|
setId(id: Buffer): this;
|
|
@@ -51,13 +51,14 @@ export declare class Quadkey {
|
|
|
51
51
|
zoom: number;
|
|
52
52
|
};
|
|
53
53
|
valid(): boolean;
|
|
54
|
-
id(): Buffer;
|
|
54
|
+
get id(): Buffer;
|
|
55
55
|
toBuffer(): Buffer;
|
|
56
56
|
toBigNumber(): BigNumber;
|
|
57
57
|
toString(): string;
|
|
58
58
|
toJSON(): string;
|
|
59
59
|
toBase10String(): string;
|
|
60
60
|
toBase4HashLabel(): string;
|
|
61
|
+
protected guessZoom(): void;
|
|
61
62
|
toBase4Hash(): string;
|
|
62
63
|
toHex(): string;
|
|
63
64
|
toShortString(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Quadkey.d.ts","sourceRoot":"","sources":["../../src/Quadkey.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAEvC,OAAO,EAEL,OAAO,EACP,mBAAmB,EACnB,YAAY,EAMb,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAI9C,cAAc,SAAS,CAAA;AAIvB,eAAO,MAAM,SAAS,QAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,YAA+B,CAAA;AAS9E,qBAAa,OAAO;IACX,IAAI,SAAe;IAE1B,OAAO,CAAC,GAAG,CAAmB;gBAElB,GAAG,SAAmB;
|
|
1
|
+
{"version":3,"file":"Quadkey.d.ts","sourceRoot":"","sources":["../../src/Quadkey.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAEvC,OAAO,EAEL,OAAO,EACP,mBAAmB,EACnB,YAAY,EAMb,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAI9C,cAAc,SAAS,CAAA;AAIvB,eAAO,MAAM,SAAS,QAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,YAA+B,CAAA;AAS9E,qBAAa,OAAO;IACX,IAAI,SAAe;IAE1B,OAAO,CAAC,GAAG,CAAmB;gBAElB,GAAG,SAAmB;IAK3B,MAAM,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAIpC,MAAM,CAAC,IAAI,UAAgB;IAE3B,MAAM,CAAC,IAAI,SAAY;IAEvB,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,MAAM;IAUrC,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM;IAIrC,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM;IAKrC,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM;IAI/B,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,SAAK;WAWvC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;WAI7B,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM;WAM1C,QAAQ,CAAC,IAAI,EAAE,YAAY;IAIlC,eAAe,CAAC,WAAW,EAAE,mBAAmB;WAUzC,eAAe,CAAC,WAAW,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM;IAUrE,kBAAkB,CAAC,IAAI,EAAE,MAAM;;;;;;IAiC/B,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IAM/B,OAAO,CAAC,IAAI,EAAE,MAAM;IAMpB,MAAM;IAMN,QAAQ,CAAC,SAAS,EAAE,MAAM;IAyB1B,cAAc,CAAC,IAAI,EAAE,MAAM;IAc3B,QAAQ;IAYR,QAAQ;IAOR,KAAK;IAIZ,IAAW,IAAI,WAEd;IAED,OAAO,CAAC,QAAQ,CAAC,CAAS;IAEnB,OAAO;IAKP,KAAK,CAAC,EAAE,EAAE,MAAM;IAKhB,MAAM,IAAI,YAAY;IAKtB,aAAa,IAAI,mBAAmB;IAIpC,QAAQ;IAKR,eAAe;;;;;IAUf,KAAK;IAcZ,IAAW,EAAE,WAEZ;IAEM,QAAQ;IAIR,WAAW;IAIX,QAAQ;IAIR,MAAM,IAAI,MAAM;IAIhB,cAAc;IAId,gBAAgB;IAKvB,SAAS,CAAC,SAAS;IAMZ,WAAW;IAaX,KAAK;IAIL,aAAa;IAOb,SAAS,CAAC,OAAO,EAAE,OAAO;IAIjC,OAAc,IAAI,UAAuC;CAC1D"}
|
package/dist/esm/Quadkey.js
CHANGED
|
@@ -18,6 +18,7 @@ export class Quadkey {
|
|
|
18
18
|
key = Buffer.alloc(32);
|
|
19
19
|
constructor(key = Buffer.alloc(32)) {
|
|
20
20
|
key.copy(this.key, this.key.length - key.length);
|
|
21
|
+
this.guessZoom();
|
|
21
22
|
}
|
|
22
23
|
equals(obj) {
|
|
23
24
|
return obj.toBase4HashLabel() == this.toBase4HashLabel();
|
|
@@ -71,8 +72,8 @@ export class Quadkey {
|
|
|
71
72
|
boundingBox.contains(tileBoundingBox.getSouthEast()) ||
|
|
72
73
|
boundingBox.contains(tileBoundingBox.getSouthWest()));
|
|
73
74
|
}
|
|
74
|
-
static fromBoundingBox(
|
|
75
|
-
const tiles = tilesFromBoundingBox(
|
|
75
|
+
static fromBoundingBox(boundingBox, zoom) {
|
|
76
|
+
const tiles = tilesFromBoundingBox(boundingBox, Math.floor(zoom));
|
|
76
77
|
const result = [];
|
|
77
78
|
for (const tile of tiles) {
|
|
78
79
|
result.push(assertEx(Quadkey.fromTile(tile), 'Bad Quadkey'));
|
|
@@ -118,12 +119,12 @@ export class Quadkey {
|
|
|
118
119
|
}
|
|
119
120
|
setZoom(zoom) {
|
|
120
121
|
assertEx(zoom < MAX_ZOOM, `Invalid zoom [${zoom}] max=${MAX_ZOOM}`);
|
|
121
|
-
this.setKey(zoom, this.id
|
|
122
|
+
this.setKey(zoom, this.id);
|
|
122
123
|
return this;
|
|
123
124
|
}
|
|
124
125
|
parent() {
|
|
125
|
-
if (this.zoom
|
|
126
|
-
return new Quadkey().setId(bitShiftRight(bitShiftRight(this.id
|
|
126
|
+
if (this.zoom > 0) {
|
|
127
|
+
return new Quadkey().setId(bitShiftRight(bitShiftRight(this.id))).setZoom(this.zoom - 1);
|
|
127
128
|
}
|
|
128
129
|
}
|
|
129
130
|
relative(direction) {
|
|
@@ -154,7 +155,7 @@ export class Quadkey {
|
|
|
154
155
|
}
|
|
155
156
|
childrenByZoom(zoom) {
|
|
156
157
|
// if we are limiting by zoom, and we are already at that limit, just return this quadkey
|
|
157
|
-
if (zoom && zoom === this.zoom
|
|
158
|
+
if (zoom && zoom === this.zoom) {
|
|
158
159
|
return [this];
|
|
159
160
|
}
|
|
160
161
|
// recursively get children
|
|
@@ -165,26 +166,26 @@ export class Quadkey {
|
|
|
165
166
|
return deepResult;
|
|
166
167
|
}
|
|
167
168
|
children() {
|
|
168
|
-
assertEx(this.zoom
|
|
169
|
+
assertEx(this.zoom < MAX_ZOOM - 1, 'Can not get children of bottom tiles');
|
|
169
170
|
const result = [];
|
|
170
|
-
const shiftedId = bitShiftLeft(bitShiftLeft(this.id
|
|
171
|
+
const shiftedId = bitShiftLeft(bitShiftLeft(this.id));
|
|
171
172
|
for (let i = 0; i < 4; i++) {
|
|
172
173
|
const currentLastByte = shiftedId.readUInt8(shiftedId.length - 1);
|
|
173
174
|
shiftedId.writeUInt8((currentLastByte & 0xfc) | i, shiftedId.length - 1);
|
|
174
|
-
result.push(new Quadkey().setId(shiftedId).setZoom(this.zoom
|
|
175
|
+
result.push(new Quadkey().setId(shiftedId).setZoom(this.zoom + 1));
|
|
175
176
|
}
|
|
176
177
|
return result;
|
|
177
178
|
}
|
|
178
179
|
siblings() {
|
|
179
180
|
const siblings = assertEx(this.parent()?.children(), `siblings: parentChildren ${this.toBase4Hash()}`);
|
|
180
|
-
const
|
|
181
|
-
assertEx(
|
|
182
|
-
return
|
|
181
|
+
const filteredSiblings = siblings.filter((quadkey) => this.compareTo(quadkey) !== 0);
|
|
182
|
+
assertEx(filteredSiblings.length === 3, `siblings: expected 3 [${filteredSiblings.length}]`);
|
|
183
|
+
return filteredSiblings;
|
|
183
184
|
}
|
|
184
185
|
clone() {
|
|
185
186
|
return Quadkey.fromBase10String(this.toBase10String());
|
|
186
187
|
}
|
|
187
|
-
zoom() {
|
|
188
|
+
get zoom() {
|
|
188
189
|
return this.toBuffer().readUInt8(0);
|
|
189
190
|
}
|
|
190
191
|
_geoJson;
|
|
@@ -193,10 +194,11 @@ export class Quadkey {
|
|
|
193
194
|
return this._geoJson;
|
|
194
195
|
}
|
|
195
196
|
setId(id) {
|
|
196
|
-
this.setKey(this.zoom
|
|
197
|
+
this.setKey(this.zoom, id);
|
|
197
198
|
return this;
|
|
198
199
|
}
|
|
199
200
|
toTile() {
|
|
201
|
+
console.log(`hash: ${this.toBase4Hash()}`);
|
|
200
202
|
return tileFromQuadkey(this.toBase4Hash());
|
|
201
203
|
}
|
|
202
204
|
toBoundingBox() {
|
|
@@ -215,9 +217,9 @@ export class Quadkey {
|
|
|
215
217
|
};
|
|
216
218
|
}
|
|
217
219
|
valid() {
|
|
218
|
-
const zoom = this.zoom
|
|
220
|
+
const zoom = this.zoom;
|
|
219
221
|
const shift = (MAX_ZOOM - zoom) * 2;
|
|
220
|
-
const id = this.id
|
|
222
|
+
const id = this.id;
|
|
221
223
|
let testId = id;
|
|
222
224
|
for (let i = 0; i < shift; i++) {
|
|
223
225
|
testId = bitShiftLeft(testId);
|
|
@@ -227,7 +229,7 @@ export class Quadkey {
|
|
|
227
229
|
}
|
|
228
230
|
return testId.compare(id) === 0;
|
|
229
231
|
}
|
|
230
|
-
id() {
|
|
232
|
+
get id() {
|
|
231
233
|
return this.toBuffer().slice(1);
|
|
232
234
|
}
|
|
233
235
|
toBuffer() {
|
|
@@ -249,9 +251,14 @@ export class Quadkey {
|
|
|
249
251
|
const hash = this.toBase4Hash();
|
|
250
252
|
return hash.length === 0 ? 'fhr' : hash;
|
|
251
253
|
}
|
|
254
|
+
guessZoom() {
|
|
255
|
+
const bn = new BigNumber(this.id.toString('hex'), 16);
|
|
256
|
+
const quadkeySimple = bn.toString(4);
|
|
257
|
+
this.setZoom(quadkeySimple.length);
|
|
258
|
+
}
|
|
252
259
|
toBase4Hash() {
|
|
253
|
-
const bn = new BigNumber(this.id
|
|
254
|
-
const zoom = this.zoom
|
|
260
|
+
const bn = new BigNumber(this.id.toString('hex'), 16);
|
|
261
|
+
const zoom = this.zoom;
|
|
255
262
|
if (zoom === 0) {
|
|
256
263
|
return '';
|
|
257
264
|
}
|
package/dist/esm/Quadkey.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Quadkey.js","sourceRoot":"","sources":["../../src/Quadkey.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Quadkey.js","sourceRoot":"","sources":["../../src/Quadkey.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/Quadkey.ts
CHANGED
|
@@ -36,6 +36,7 @@ export class Quadkey {
|
|
|
36
36
|
|
|
37
37
|
constructor(key = Buffer.alloc(32)) {
|
|
38
38
|
key.copy(this.key, this.key.length - key.length)
|
|
39
|
+
this.guessZoom()
|
|
39
40
|
}
|
|
40
41
|
|
|
41
42
|
public equals(obj: Quadkey): boolean {
|
|
@@ -104,8 +105,8 @@ export class Quadkey {
|
|
|
104
105
|
)
|
|
105
106
|
}
|
|
106
107
|
|
|
107
|
-
public static fromBoundingBox(
|
|
108
|
-
const tiles = tilesFromBoundingBox(
|
|
108
|
+
public static fromBoundingBox(boundingBox: MercatorBoundingBox, zoom: number) {
|
|
109
|
+
const tiles = tilesFromBoundingBox(boundingBox, Math.floor(zoom))
|
|
109
110
|
const result: Quadkey[] = []
|
|
110
111
|
for (const tile of tiles) {
|
|
111
112
|
result.push(assertEx(Quadkey.fromTile(tile), 'Bad Quadkey'))
|
|
@@ -155,13 +156,13 @@ export class Quadkey {
|
|
|
155
156
|
|
|
156
157
|
public setZoom(zoom: number) {
|
|
157
158
|
assertEx(zoom < MAX_ZOOM, `Invalid zoom [${zoom}] max=${MAX_ZOOM}`)
|
|
158
|
-
this.setKey(zoom, this.id
|
|
159
|
+
this.setKey(zoom, this.id)
|
|
159
160
|
return this
|
|
160
161
|
}
|
|
161
162
|
|
|
162
163
|
public parent() {
|
|
163
|
-
if (this.zoom
|
|
164
|
-
return new Quadkey().setId(bitShiftRight(bitShiftRight(this.id
|
|
164
|
+
if (this.zoom > 0) {
|
|
165
|
+
return new Quadkey().setId(bitShiftRight(bitShiftRight(this.id))).setZoom(this.zoom - 1)
|
|
165
166
|
}
|
|
166
167
|
}
|
|
167
168
|
|
|
@@ -192,7 +193,7 @@ export class Quadkey {
|
|
|
192
193
|
|
|
193
194
|
public childrenByZoom(zoom: number) {
|
|
194
195
|
// if we are limiting by zoom, and we are already at that limit, just return this quadkey
|
|
195
|
-
if (zoom && zoom === this.zoom
|
|
196
|
+
if (zoom && zoom === this.zoom) {
|
|
196
197
|
return [this]
|
|
197
198
|
}
|
|
198
199
|
|
|
@@ -205,29 +206,29 @@ export class Quadkey {
|
|
|
205
206
|
}
|
|
206
207
|
|
|
207
208
|
public children() {
|
|
208
|
-
assertEx(this.zoom
|
|
209
|
+
assertEx(this.zoom < MAX_ZOOM - 1, 'Can not get children of bottom tiles')
|
|
209
210
|
const result: Quadkey[] = []
|
|
210
|
-
const shiftedId = bitShiftLeft(bitShiftLeft(this.id
|
|
211
|
+
const shiftedId = bitShiftLeft(bitShiftLeft(this.id))
|
|
211
212
|
for (let i = 0; i < 4; i++) {
|
|
212
213
|
const currentLastByte = shiftedId.readUInt8(shiftedId.length - 1)
|
|
213
214
|
shiftedId.writeUInt8((currentLastByte & 0xfc) | i, shiftedId.length - 1)
|
|
214
|
-
result.push(new Quadkey().setId(shiftedId).setZoom(this.zoom
|
|
215
|
+
result.push(new Quadkey().setId(shiftedId).setZoom(this.zoom + 1))
|
|
215
216
|
}
|
|
216
217
|
return result
|
|
217
218
|
}
|
|
218
219
|
|
|
219
220
|
public siblings() {
|
|
220
221
|
const siblings = assertEx(this.parent()?.children(), `siblings: parentChildren ${this.toBase4Hash()}`)
|
|
221
|
-
const
|
|
222
|
-
assertEx(
|
|
223
|
-
return
|
|
222
|
+
const filteredSiblings = siblings.filter((quadkey) => this.compareTo(quadkey) !== 0)
|
|
223
|
+
assertEx(filteredSiblings.length === 3, `siblings: expected 3 [${filteredSiblings.length}]`)
|
|
224
|
+
return filteredSiblings
|
|
224
225
|
}
|
|
225
226
|
|
|
226
227
|
public clone() {
|
|
227
228
|
return Quadkey.fromBase10String(this.toBase10String())
|
|
228
229
|
}
|
|
229
230
|
|
|
230
|
-
public zoom() {
|
|
231
|
+
public get zoom() {
|
|
231
232
|
return this.toBuffer().readUInt8(0)
|
|
232
233
|
}
|
|
233
234
|
|
|
@@ -239,11 +240,12 @@ export class Quadkey {
|
|
|
239
240
|
}
|
|
240
241
|
|
|
241
242
|
public setId(id: Buffer) {
|
|
242
|
-
this.setKey(this.zoom
|
|
243
|
+
this.setKey(this.zoom, id)
|
|
243
244
|
return this
|
|
244
245
|
}
|
|
245
246
|
|
|
246
247
|
public toTile(): MercatorTile {
|
|
248
|
+
console.log(`hash: ${this.toBase4Hash()}`)
|
|
247
249
|
return tileFromQuadkey(this.toBase4Hash())
|
|
248
250
|
}
|
|
249
251
|
|
|
@@ -267,9 +269,9 @@ export class Quadkey {
|
|
|
267
269
|
}
|
|
268
270
|
|
|
269
271
|
public valid() {
|
|
270
|
-
const zoom = this.zoom
|
|
272
|
+
const zoom = this.zoom
|
|
271
273
|
const shift = (MAX_ZOOM - zoom) * 2
|
|
272
|
-
const id = this.id
|
|
274
|
+
const id = this.id
|
|
273
275
|
let testId = id
|
|
274
276
|
for (let i = 0; i < shift; i++) {
|
|
275
277
|
testId = bitShiftLeft(testId)
|
|
@@ -280,7 +282,7 @@ export class Quadkey {
|
|
|
280
282
|
return testId.compare(id) === 0
|
|
281
283
|
}
|
|
282
284
|
|
|
283
|
-
public id() {
|
|
285
|
+
public get id() {
|
|
284
286
|
return this.toBuffer().slice(1)
|
|
285
287
|
}
|
|
286
288
|
|
|
@@ -309,9 +311,15 @@ export class Quadkey {
|
|
|
309
311
|
return hash.length === 0 ? 'fhr' : hash
|
|
310
312
|
}
|
|
311
313
|
|
|
314
|
+
protected guessZoom() {
|
|
315
|
+
const bn = new BigNumber(this.id.toString('hex'), 16)
|
|
316
|
+
const quadkeySimple = bn.toString(4)
|
|
317
|
+
this.setZoom(quadkeySimple.length)
|
|
318
|
+
}
|
|
319
|
+
|
|
312
320
|
public toBase4Hash() {
|
|
313
|
-
const bn = new BigNumber(this.id
|
|
314
|
-
const zoom = this.zoom
|
|
321
|
+
const bn = new BigNumber(this.id.toString('hex'), 16)
|
|
322
|
+
const zoom = this.zoom
|
|
315
323
|
if (zoom === 0) {
|
|
316
324
|
return ''
|
|
317
325
|
}
|