@xyo-network/quadkey 2.37.4 → 2.37.6
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 +25 -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 +25 -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 +26 -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;IAItB,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,7 +194,7 @@ 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() {
|
|
@@ -215,9 +216,9 @@ export class Quadkey {
|
|
|
215
216
|
};
|
|
216
217
|
}
|
|
217
218
|
valid() {
|
|
218
|
-
const zoom = this.zoom
|
|
219
|
+
const zoom = this.zoom;
|
|
219
220
|
const shift = (MAX_ZOOM - zoom) * 2;
|
|
220
|
-
const id = this.id
|
|
221
|
+
const id = this.id;
|
|
221
222
|
let testId = id;
|
|
222
223
|
for (let i = 0; i < shift; i++) {
|
|
223
224
|
testId = bitShiftLeft(testId);
|
|
@@ -227,7 +228,7 @@ export class Quadkey {
|
|
|
227
228
|
}
|
|
228
229
|
return testId.compare(id) === 0;
|
|
229
230
|
}
|
|
230
|
-
id() {
|
|
231
|
+
get id() {
|
|
231
232
|
return this.toBuffer().slice(1);
|
|
232
233
|
}
|
|
233
234
|
toBuffer() {
|
|
@@ -249,9 +250,14 @@ export class Quadkey {
|
|
|
249
250
|
const hash = this.toBase4Hash();
|
|
250
251
|
return hash.length === 0 ? 'fhr' : hash;
|
|
251
252
|
}
|
|
253
|
+
guessZoom() {
|
|
254
|
+
const bn = new BigNumber(this.id.toString('hex'), 16);
|
|
255
|
+
const quadkeySimple = bn.toString(4);
|
|
256
|
+
this.setZoom(quadkeySimple.length);
|
|
257
|
+
}
|
|
252
258
|
toBase4Hash() {
|
|
253
|
-
const bn = new BigNumber(this.id
|
|
254
|
-
const zoom = this.zoom
|
|
259
|
+
const bn = new BigNumber(this.id.toString('hex'), 16);
|
|
260
|
+
const zoom = this.zoom;
|
|
255
261
|
if (zoom === 0) {
|
|
256
262
|
return '';
|
|
257
263
|
}
|
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,7 +240,7 @@ 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
|
|
|
@@ -267,9 +268,9 @@ export class Quadkey {
|
|
|
267
268
|
}
|
|
268
269
|
|
|
269
270
|
public valid() {
|
|
270
|
-
const zoom = this.zoom
|
|
271
|
+
const zoom = this.zoom
|
|
271
272
|
const shift = (MAX_ZOOM - zoom) * 2
|
|
272
|
-
const id = this.id
|
|
273
|
+
const id = this.id
|
|
273
274
|
let testId = id
|
|
274
275
|
for (let i = 0; i < shift; i++) {
|
|
275
276
|
testId = bitShiftLeft(testId)
|
|
@@ -280,7 +281,7 @@ export class Quadkey {
|
|
|
280
281
|
return testId.compare(id) === 0
|
|
281
282
|
}
|
|
282
283
|
|
|
283
|
-
public id() {
|
|
284
|
+
public get id() {
|
|
284
285
|
return this.toBuffer().slice(1)
|
|
285
286
|
}
|
|
286
287
|
|
|
@@ -309,9 +310,15 @@ export class Quadkey {
|
|
|
309
310
|
return hash.length === 0 ? 'fhr' : hash
|
|
310
311
|
}
|
|
311
312
|
|
|
313
|
+
protected guessZoom() {
|
|
314
|
+
const bn = new BigNumber(this.id.toString('hex'), 16)
|
|
315
|
+
const quadkeySimple = bn.toString(4)
|
|
316
|
+
this.setZoom(quadkeySimple.length)
|
|
317
|
+
}
|
|
318
|
+
|
|
312
319
|
public toBase4Hash() {
|
|
313
|
-
const bn = new BigNumber(this.id
|
|
314
|
-
const zoom = this.zoom
|
|
320
|
+
const bn = new BigNumber(this.id.toString('hex'), 16)
|
|
321
|
+
const zoom = this.zoom
|
|
315
322
|
if (zoom === 0) {
|
|
316
323
|
return ''
|
|
317
324
|
}
|