@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.
@@ -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(bbox: MercatorBoundingBox, zoom: number): Quadkey[];
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;IAI3B,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,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM;IAU9D,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;IAIL,IAAI;IAIX,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;IAcL,EAAE;IAIF,QAAQ;IAIR,WAAW;IAIX,QAAQ;IAIR,MAAM,IAAI,MAAM;IAIhB,cAAc;IAId,gBAAgB;IAKhB,WAAW;IAaX,KAAK;IAIL,aAAa;IAOb,SAAS,CAAC,OAAO,EAAE,OAAO;IAIjC,OAAc,IAAI,UAAuC;CAC1D"}
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"}
@@ -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(bbox, zoom) {
75
- const tiles = tilesFromBoundingBox(bbox, Math.floor(zoom));
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() > 0) {
126
- return new Quadkey().setId(bitShiftRight(bitShiftRight(this.id()))).setZoom(this.zoom() - 1);
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() < MAX_ZOOM - 1, 'Can not get children of bottom tiles');
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() + 1));
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 filteredeSiblinngs = siblings.filter((quadkey) => this.compareTo(quadkey) !== 0);
181
- assertEx(filteredeSiblinngs.length === 3, `siblings: expected 3 [${filteredeSiblinngs.length}]`);
182
- return filteredeSiblinngs;
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(), id);
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().toString('hex'), 16);
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
  }
@@ -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
@@ -53,5 +53,5 @@
53
53
  },
54
54
  "sideEffects": false,
55
55
  "types": "dist/esm/index.d.ts",
56
- "version": "2.37.4"
56
+ "version": "2.37.6"
57
57
  }
@@ -0,0 +1,10 @@
1
+ import { Quadkey } from './Quadkey'
2
+
3
+ describe('Quadkey', () => {
4
+ test('Valid Items', () => {
5
+ const qk = Quadkey.fromBase4String('0203')
6
+ const center = qk?.toCenter()
7
+ expect(center?.lat).toBe(48.378236)
8
+ expect(center?.lng).toBe(-146.25)
9
+ })
10
+ })
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(bbox: MercatorBoundingBox, zoom: number) {
108
- const tiles = tilesFromBoundingBox(bbox, Math.floor(zoom))
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() > 0) {
164
- return new Quadkey().setId(bitShiftRight(bitShiftRight(this.id()))).setZoom(this.zoom() - 1)
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() < MAX_ZOOM - 1, 'Can not get children of bottom tiles')
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() + 1))
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 filteredeSiblinngs = siblings.filter((quadkey) => this.compareTo(quadkey) !== 0)
222
- assertEx(filteredeSiblinngs.length === 3, `siblings: expected 3 [${filteredeSiblinngs.length}]`)
223
- return filteredeSiblinngs
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(), id)
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().toString('hex'), 16)
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
  }