nodes2ts 1.1.9 → 3.0.0
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/.eslintignore +3 -0
- package/.eslintrc.cjs +11 -0
- package/.github/workflows/lint.js.yml +22 -0
- package/.github/workflows/node.js.yml +22 -0
- package/.mocharc.js +7 -0
- package/README.md +22 -5
- package/dist/Interval.d.ts +7 -8
- package/dist/Interval.js +12 -12
- package/dist/Interval.js.map +1 -1
- package/dist/MutableInteger.js +5 -4
- package/dist/MutableInteger.js.map +1 -1
- package/dist/Platform.d.ts +15 -0
- package/dist/Platform.js +53 -0
- package/dist/Platform.js.map +1 -0
- package/dist/R1Interval.d.ts +8 -9
- package/dist/R1Interval.js +59 -78
- package/dist/R1Interval.js.map +1 -1
- package/dist/R2Vector.d.ts +12 -13
- package/dist/R2Vector.js +65 -85
- package/dist/R2Vector.js.map +1 -1
- package/dist/S1Angle.d.ts +38 -5
- package/dist/S1Angle.js +89 -37
- package/dist/S1Angle.js.map +1 -1
- package/dist/S1ChordAngle.d.ts +166 -0
- package/dist/S1ChordAngle.js +318 -0
- package/dist/S1ChordAngle.js.map +1 -0
- package/dist/S1Interval.d.ts +11 -12
- package/dist/S1Interval.js +134 -140
- package/dist/S1Interval.js.map +1 -1
- package/dist/S2.d.ts +8 -5
- package/dist/S2.js +91 -108
- package/dist/S2.js.map +1 -1
- package/dist/S2Cap.d.ts +33 -25
- package/dist/S2Cap.js +199 -203
- package/dist/S2Cap.js.map +1 -1
- package/dist/S2Cell.d.ts +15 -13
- package/dist/S2Cell.js +196 -206
- package/dist/S2Cell.js.map +1 -1
- package/dist/S2CellId.d.ts +37 -14
- package/dist/S2CellId.js +407 -359
- package/dist/S2CellId.js.map +1 -1
- package/dist/S2CellUnion.d.ts +1 -2
- package/dist/S2CellUnion.js +137 -133
- package/dist/S2CellUnion.js.map +1 -1
- package/dist/S2EdgeUtil.js +14 -17
- package/dist/S2EdgeUtil.js.map +1 -1
- package/dist/S2LatLng.d.ts +15 -11
- package/dist/S2LatLng.js +100 -114
- package/dist/S2LatLng.js.map +1 -1
- package/dist/S2LatLngRect.d.ts +8 -4
- package/dist/S2LatLngRect.js +215 -197
- package/dist/S2LatLngRect.js.map +1 -1
- package/dist/S2Metric.d.ts +4 -5
- package/dist/S2Metric.js +30 -27
- package/dist/S2Metric.js.map +1 -1
- package/dist/S2Point.d.ts +48 -14
- package/dist/S2Point.js +156 -109
- package/dist/S2Point.js.map +1 -1
- package/dist/S2Projections.d.ts +43 -9
- package/dist/S2Projections.js +226 -47
- package/dist/S2Projections.js.map +1 -1
- package/dist/S2Region.js +2 -1
- package/dist/S2Region.js.map +1 -1
- package/dist/S2RegionCoverer.d.ts +21 -6
- package/dist/S2RegionCoverer.js +144 -109
- package/dist/S2RegionCoverer.js.map +1 -1
- package/dist/export.d.ts +0 -1
- package/dist/export.js +42 -32
- package/dist/export.js.map +1 -1
- package/dist/utils/preconditions.d.ts +2 -0
- package/dist/utils/preconditions.js +16 -0
- package/dist/utils/preconditions.js.map +1 -0
- package/package.json +28 -34
- package/.npmignore +0 -8
- package/.nyc_output/1eb1f420a13c15f529aac41a40bcaa21.json +0 -1
- package/.nyc_output/5ff62256eb1c111254ba0b469fb547da.json +0 -1
- package/.nyc_output/949d6e8c2061067f3bdfd27dfff5ba83.json +0 -1
- package/coverage/Interval.ts.html +0 -203
- package/coverage/MutableInteger.ts.html +0 -77
- package/coverage/R1Interval.ts.html +0 -647
- package/coverage/R2Vector.ts.html +0 -587
- package/coverage/S1Angle.ts.html +0 -344
- package/coverage/S1Interval.ts.html +0 -1349
- package/coverage/S2.ts.html +0 -1178
- package/coverage/S2Cap.ts.html +0 -1433
- package/coverage/S2Cell.ts.html +0 -1415
- package/coverage/S2CellId.ts.html +0 -3329
- package/coverage/S2EdgeUtil.ts.html +0 -2534
- package/coverage/S2LatLng.ts.html +0 -848
- package/coverage/S2LatLngRect.ts.html +0 -2222
- package/coverage/S2Point.ts.html +0 -758
- package/coverage/S2Projections.ts.html +0 -518
- package/coverage/base.css +0 -212
- package/coverage/decimal.ts.html +0 -68
- package/coverage/index.html +0 -288
- package/coverage/prettify.css +0 -1
- package/coverage/prettify.js +0 -1
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +0 -158
- package/dist/decimal.d.ts +0 -3
- package/dist/decimal.js +0 -4
- package/dist/decimal.js.map +0 -1
- package/dist/decimal_augmentation.d.ts +0 -24
- package/dist/decimal_augmentation.js +0 -2
- package/dist/decimal_augmentation.js.map +0 -1
package/dist/S2RegionCoverer.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/*
|
|
2
3
|
* Copyright 2005 Google Inc.
|
|
3
4
|
*
|
|
@@ -13,12 +14,12 @@
|
|
|
13
14
|
* See the License for the specific language governing permissions and
|
|
14
15
|
* limitations under the License.
|
|
15
16
|
*/
|
|
16
|
-
"
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.S2RegionCoverer = void 0;
|
|
19
|
+
const S2Cell_1 = require("./S2Cell");
|
|
20
|
+
const S2CellId_1 = require("./S2CellId");
|
|
21
|
+
const S2CellUnion_1 = require("./S2CellUnion");
|
|
22
|
+
const S2Projections_1 = require("./S2Projections");
|
|
22
23
|
/**
|
|
23
24
|
* An S2RegionCoverer is a class that allows arbitrary regions to be
|
|
24
25
|
* approximated as unions of cells (S2CellUnion). This is useful for
|
|
@@ -50,11 +51,11 @@ var decimal_1 = require('./decimal');
|
|
|
50
51
|
* methods will conflict and produce unpredictable results.
|
|
51
52
|
*
|
|
52
53
|
*/
|
|
53
|
-
|
|
54
|
+
class S2RegionCoverer {
|
|
54
55
|
/**
|
|
55
56
|
* Default constructor, sets all fields to default values.
|
|
56
57
|
*/
|
|
57
|
-
|
|
58
|
+
constructor() {
|
|
58
59
|
this.minLevel = 0;
|
|
59
60
|
this.maxLevel = S2CellId_1.S2CellId.MAX_LEVEL;
|
|
60
61
|
this.levelMod = 1;
|
|
@@ -79,19 +80,19 @@ var S2RegionCoverer = (function () {
|
|
|
79
80
|
/**
|
|
80
81
|
* Sets the minimum level to be used.
|
|
81
82
|
*/
|
|
82
|
-
|
|
83
|
+
setMinLevel(minLevel) {
|
|
83
84
|
// assert (minLevel >= 0 && minLevel <= S2CellId.MAX_LEVEL);
|
|
84
85
|
this.minLevel = Math.max(0, Math.min(S2CellId_1.S2CellId.MAX_LEVEL, minLevel));
|
|
85
86
|
return this;
|
|
86
|
-
}
|
|
87
|
+
}
|
|
87
88
|
/**
|
|
88
89
|
* Sets the maximum level to be used.
|
|
89
90
|
*/
|
|
90
|
-
|
|
91
|
+
setMaxLevel(maxLevel) {
|
|
91
92
|
// assert (maxLevel >= 0 && maxLevel <= S2CellId.MAX_LEVEL);
|
|
92
93
|
this.maxLevel = Math.max(0, Math.min(S2CellId_1.S2CellId.MAX_LEVEL, maxLevel));
|
|
93
94
|
return this;
|
|
94
|
-
}
|
|
95
|
+
}
|
|
95
96
|
/**
|
|
96
97
|
* If specified, then only cells where (level - min_level) is a multiple of
|
|
97
98
|
* "level_mod" will be used (default 1). This effectively allows the branching
|
|
@@ -99,11 +100,11 @@ var S2RegionCoverer = (function () {
|
|
|
99
100
|
* parameter values allowed are 1, 2, or 3, corresponding to branching factors
|
|
100
101
|
* of 4, 16, and 64 respectively.
|
|
101
102
|
*/
|
|
102
|
-
|
|
103
|
+
setLevelMod(levelMod) {
|
|
103
104
|
// assert (levelMod >= 1 && levelMod <= 3);
|
|
104
105
|
this.levelMod = Math.max(1, Math.min(3, levelMod));
|
|
105
106
|
return this;
|
|
106
|
-
}
|
|
107
|
+
}
|
|
107
108
|
/**
|
|
108
109
|
* Sets the maximum desired number of cells in the approximation (defaults to
|
|
109
110
|
* kDefaultMaxCells). Note the following:
|
|
@@ -134,10 +135,22 @@ var S2RegionCoverer = (function () {
|
|
|
134
135
|
* worst case: 215518 14.41 9.72 5.26 3.91 2.75 1.92 1.20 1.02
|
|
135
136
|
* </pre>
|
|
136
137
|
*/
|
|
137
|
-
|
|
138
|
+
setMaxCells(maxCells) {
|
|
138
139
|
this.maxCells = maxCells;
|
|
139
140
|
return this;
|
|
140
|
-
}
|
|
141
|
+
}
|
|
142
|
+
getMinLevel() {
|
|
143
|
+
return this.minLevel;
|
|
144
|
+
}
|
|
145
|
+
getMaxLevel() {
|
|
146
|
+
return this.maxLevel;
|
|
147
|
+
}
|
|
148
|
+
getMaxCells() {
|
|
149
|
+
return this.maxCells;
|
|
150
|
+
}
|
|
151
|
+
getLevelMod() {
|
|
152
|
+
return this.levelMod;
|
|
153
|
+
}
|
|
141
154
|
/**
|
|
142
155
|
* Computes a list of cell ids that covers the given region and satisfies the
|
|
143
156
|
* various restrictions specified above.
|
|
@@ -145,7 +158,7 @@ var S2RegionCoverer = (function () {
|
|
|
145
158
|
* @param region The region to cover
|
|
146
159
|
* @param covering The list filled in by this method
|
|
147
160
|
*/
|
|
148
|
-
|
|
161
|
+
getCoveringCells(region) {
|
|
149
162
|
// Rather than just returning the raw list of cell ids generated by
|
|
150
163
|
// GetCoveringInternal(), we construct a cell union and then denormalize it.
|
|
151
164
|
// This has the effect of replacing four child cells with their parent
|
|
@@ -153,9 +166,9 @@ var S2RegionCoverer = (function () {
|
|
|
153
166
|
// (min_level, level_mod, etc). This strategy significantly reduces the
|
|
154
167
|
// number of cells returned in many cases, and it is cheap compared to
|
|
155
168
|
// computing the covering in the first place.
|
|
156
|
-
|
|
169
|
+
const tmp = this.getCoveringUnion(region);
|
|
157
170
|
return tmp.denormalize(this.minLevel, this.levelMod);
|
|
158
|
-
}
|
|
171
|
+
}
|
|
159
172
|
/**
|
|
160
173
|
* Computes a list of cell ids that is contained within the given region and
|
|
161
174
|
* satisfies the various restrictions specified above.
|
|
@@ -163,10 +176,10 @@ var S2RegionCoverer = (function () {
|
|
|
163
176
|
* @param region The region to fill
|
|
164
177
|
* @param interior The list filled in by this method
|
|
165
178
|
*/
|
|
166
|
-
|
|
167
|
-
|
|
179
|
+
getInteriorCoveringCells(region) {
|
|
180
|
+
const tmp = this.getInteriorCoveringUnion(region);
|
|
168
181
|
return tmp.denormalize(this.minLevel, this.levelMod);
|
|
169
|
-
}
|
|
182
|
+
}
|
|
170
183
|
/**
|
|
171
184
|
* Return a normalized cell union that covers the given region and satisfies
|
|
172
185
|
* the restrictions *EXCEPT* for min_level() and level_mod(). These criteria
|
|
@@ -175,43 +188,41 @@ var S2RegionCoverer = (function () {
|
|
|
175
188
|
* whenever possible. (Note that the list of cell ids passed to the cell union
|
|
176
189
|
* constructor does in fact satisfy all the given restrictions.)
|
|
177
190
|
*/
|
|
178
|
-
|
|
179
|
-
if (covering === void 0) { covering = new S2CellUnion_1.S2CellUnion(); }
|
|
191
|
+
getCoveringUnion(region, covering = new S2CellUnion_1.S2CellUnion()) {
|
|
180
192
|
this.interiorCovering = false;
|
|
181
193
|
this.getCoveringInternal(region);
|
|
182
194
|
covering.initSwap(this.result);
|
|
195
|
+
this.result = [];
|
|
183
196
|
return covering;
|
|
184
|
-
}
|
|
197
|
+
}
|
|
185
198
|
/**
|
|
186
199
|
* Return a normalized cell union that is contained within the given region
|
|
187
200
|
* and satisfies the restrictions *EXCEPT* for min_level() and level_mod().
|
|
188
201
|
*/
|
|
189
|
-
|
|
190
|
-
if (covering === void 0) { covering = new S2CellUnion_1.S2CellUnion(); }
|
|
202
|
+
getInteriorCoveringUnion(region, covering = new S2CellUnion_1.S2CellUnion()) {
|
|
191
203
|
this.interiorCovering = true;
|
|
192
204
|
this.getCoveringInternal(region);
|
|
193
205
|
covering.initSwap(this.result);
|
|
206
|
+
this.result = [];
|
|
194
207
|
return covering;
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
// }
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Given a connected region and a starting point, return a set of cells at the given level that
|
|
211
|
+
* cover the region.
|
|
212
|
+
*/
|
|
213
|
+
static getSimpleCovering(region, start, level) {
|
|
214
|
+
return this.floodFill(region, S2CellId_1.S2CellId.fromPoint(start).parentL(level));
|
|
215
|
+
}
|
|
204
216
|
/**
|
|
205
217
|
* If the cell intersects the given region, return a new candidate with no
|
|
206
218
|
* children, otherwise return null. Also marks the candidate as "terminal" if
|
|
207
219
|
* it should not be expanded further.
|
|
208
220
|
*/
|
|
209
|
-
|
|
221
|
+
newCandidate(cell) {
|
|
210
222
|
if (!this.region.mayIntersectC(cell)) {
|
|
211
|
-
// console.log("NOT INTERSECTING",this.region);
|
|
212
223
|
return null;
|
|
213
224
|
}
|
|
214
|
-
|
|
225
|
+
let isTerminal = false;
|
|
215
226
|
if (cell.level >= this.minLevel) {
|
|
216
227
|
if (this.interiorCovering) {
|
|
217
228
|
if (this.region.containsC(cell)) {
|
|
@@ -227,26 +238,30 @@ var S2RegionCoverer = (function () {
|
|
|
227
238
|
}
|
|
228
239
|
}
|
|
229
240
|
}
|
|
230
|
-
|
|
241
|
+
const candidate = new Candidate();
|
|
231
242
|
candidate.cell = cell;
|
|
232
243
|
candidate.isTerminal = isTerminal;
|
|
233
244
|
candidate.numChildren = 0;
|
|
234
245
|
if (!isTerminal) {
|
|
235
|
-
candidate.children =
|
|
246
|
+
candidate.children = [];
|
|
247
|
+
const numOfChildren = 1 << this.maxChildrenShift();
|
|
248
|
+
for (let i = 0; i < numOfChildren; i++) {
|
|
249
|
+
candidate.children.push(new Candidate());
|
|
250
|
+
}
|
|
236
251
|
}
|
|
237
252
|
this.candidatesCreatedCounter++;
|
|
238
253
|
return candidate;
|
|
239
|
-
}
|
|
254
|
+
}
|
|
240
255
|
/** Return the log base 2 of the maximum number of children of a candidate. */
|
|
241
|
-
|
|
256
|
+
maxChildrenShift() {
|
|
242
257
|
return 2 * this.levelMod;
|
|
243
|
-
}
|
|
258
|
+
}
|
|
244
259
|
/**
|
|
245
260
|
* Process a candidate by either adding it to the result list or expanding its
|
|
246
261
|
* children and inserting it into the priority queue. Passing an argument of
|
|
247
262
|
* NULL does nothing.
|
|
248
263
|
*/
|
|
249
|
-
|
|
264
|
+
addCandidate(candidate) {
|
|
250
265
|
if (candidate == null) {
|
|
251
266
|
return;
|
|
252
267
|
}
|
|
@@ -257,9 +272,10 @@ var S2RegionCoverer = (function () {
|
|
|
257
272
|
// assert (candidate.numChildren == 0);
|
|
258
273
|
// Expand one level at a time until we hit min_level_ to ensure that
|
|
259
274
|
// we don't skip over it.
|
|
260
|
-
|
|
261
|
-
|
|
275
|
+
const numLevels = (candidate.cell.level < this.minLevel) ? 1 : this.levelMod;
|
|
276
|
+
const numTerminals = this.expandChildren(candidate, candidate.cell, numLevels);
|
|
262
277
|
if (candidate.numChildren == 0) {
|
|
278
|
+
// Do nothing
|
|
263
279
|
}
|
|
264
280
|
else if (!this.interiorCovering && numTerminals == 1 << this.maxChildrenShift()
|
|
265
281
|
&& candidate.cell.level >= this.minLevel) {
|
|
@@ -277,28 +293,29 @@ var S2RegionCoverer = (function () {
|
|
|
277
293
|
// at the same level, we prefer the cells with the smallest number of
|
|
278
294
|
// intersecting children. Finally, we prefer cells that have the smallest
|
|
279
295
|
// number of children that cannot be refined any further.
|
|
280
|
-
|
|
296
|
+
const priority = -((((candidate.cell.level << this.maxChildrenShift()) + candidate.numChildren)
|
|
281
297
|
<< this.maxChildrenShift()) + numTerminals);
|
|
282
298
|
this.candidateQueue.add(new QueueEntry(priority, candidate));
|
|
299
|
+
// logger.info("Push: " + candidate.cell.id() + " (" + priority + ") ");
|
|
283
300
|
}
|
|
284
|
-
}
|
|
301
|
+
}
|
|
285
302
|
/**
|
|
286
303
|
* Populate the children of "candidate" by expanding the given number of
|
|
287
304
|
* levels from the given cell. Returns the number of children that were marked
|
|
288
305
|
* "terminal".
|
|
289
306
|
*/
|
|
290
|
-
|
|
307
|
+
expandChildren(candidate, cell, numLevels) {
|
|
291
308
|
numLevels--;
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
for (
|
|
309
|
+
const childCells = cell.subdivide();
|
|
310
|
+
let numTerminals = 0;
|
|
311
|
+
for (let i = 0; i < 4; ++i) {
|
|
295
312
|
if (numLevels > 0) {
|
|
296
313
|
if (this.region.mayIntersectC(childCells[i])) {
|
|
297
314
|
numTerminals += this.expandChildren(candidate, childCells[i], numLevels);
|
|
298
315
|
}
|
|
299
316
|
continue;
|
|
300
317
|
}
|
|
301
|
-
|
|
318
|
+
const child = this.newCandidate(childCells[i]);
|
|
302
319
|
if (child != null) {
|
|
303
320
|
candidate.children[candidate.numChildren++] = child;
|
|
304
321
|
if (child.isTerminal) {
|
|
@@ -307,9 +324,9 @@ var S2RegionCoverer = (function () {
|
|
|
307
324
|
}
|
|
308
325
|
}
|
|
309
326
|
return numTerminals;
|
|
310
|
-
}
|
|
327
|
+
}
|
|
311
328
|
/** Computes a set of initial candidates that cover the given region. */
|
|
312
|
-
|
|
329
|
+
getInitialCandidates() {
|
|
313
330
|
// Optimization: if at least 4 cells are desired (the normal case),
|
|
314
331
|
// start with a 4-cell covering of the region's bounding cap. This
|
|
315
332
|
// lets us skip quite a few levels of refinement when the region to
|
|
@@ -317,8 +334,8 @@ var S2RegionCoverer = (function () {
|
|
|
317
334
|
if (this.maxCells >= 4) {
|
|
318
335
|
// Find the maximum level such that the bounding cap contains at most one
|
|
319
336
|
// cell vertex at that level.
|
|
320
|
-
|
|
321
|
-
|
|
337
|
+
const cap = this.region.getCapBound();
|
|
338
|
+
let level = Math.min(S2Projections_1.S2Projections.MIN_WIDTH.getMaxLevel(2 * cap.angle().radians), Math.min(this.maxLevel, S2CellId_1.S2CellId.MAX_LEVEL - 1));
|
|
322
339
|
if (this.levelMod > 1 && level > this.minLevel) {
|
|
323
340
|
level -= (level - this.minLevel) % this.levelMod;
|
|
324
341
|
}
|
|
@@ -327,22 +344,21 @@ var S2RegionCoverer = (function () {
|
|
|
327
344
|
if (level > 0) {
|
|
328
345
|
// Find the leaf cell containing the cap axis, and determine which
|
|
329
346
|
// subcell of the parent cell contains it.
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
for (var i = 0; i < base.length; ++i) {
|
|
347
|
+
const id = S2CellId_1.S2CellId.fromPoint(cap.axis);
|
|
348
|
+
const base = id.getVertexNeighbors(level);
|
|
349
|
+
for (let i = 0; i < base.length; ++i) {
|
|
334
350
|
this.addCandidate(this.newCandidate(new S2Cell_1.S2Cell(base[i])));
|
|
335
351
|
}
|
|
336
352
|
return;
|
|
337
353
|
}
|
|
338
354
|
}
|
|
339
355
|
// Default: start with all six cube faces.
|
|
340
|
-
for (
|
|
356
|
+
for (let face = 0; face < 6; ++face) {
|
|
341
357
|
this.addCandidate(this.newCandidate(S2RegionCoverer.FACE_CELLS[face]));
|
|
342
358
|
}
|
|
343
|
-
}
|
|
359
|
+
}
|
|
344
360
|
/** Generates a covering and stores it in result. */
|
|
345
|
-
|
|
361
|
+
getCoveringInternal(region) {
|
|
346
362
|
// Strategy: Start with the 6 faces of the cube. Discard any
|
|
347
363
|
// that do not intersect the shape. Then repeatedly choose the
|
|
348
364
|
// largest cell that intersects the shape and subdivide it.
|
|
@@ -365,18 +381,16 @@ var S2RegionCoverer = (function () {
|
|
|
365
381
|
this.candidatesCreatedCounter = 0;
|
|
366
382
|
this.getInitialCandidates();
|
|
367
383
|
while (this.candidateQueue.size() !== 0 && (!this.interiorCovering || this.result.length < this.maxCells)) {
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|| this.result.length + (this.interiorCovering ? 0 : this.candidateQueue.size()) + candidate.numChildren
|
|
372
|
-
<= this.maxCells) {
|
|
384
|
+
const candidate = this.candidateQueue.poll().candidate;
|
|
385
|
+
if (this.interiorCovering || candidate.cell.level < this.minLevel || candidate.numChildren == 1
|
|
386
|
+
|| this.result.length + this.candidateQueue.size() + candidate.numChildren <= this.maxCells) {
|
|
373
387
|
// Expand this candidate into its children.
|
|
374
|
-
for (
|
|
375
|
-
this.
|
|
388
|
+
for (let i = 0; i < candidate.numChildren; ++i) {
|
|
389
|
+
if (!this.interiorCovering || this.result.length < this.maxCells) {
|
|
390
|
+
this.addCandidate(candidate.children[i]);
|
|
391
|
+
}
|
|
376
392
|
}
|
|
377
393
|
}
|
|
378
|
-
else if (this.interiorCovering) {
|
|
379
|
-
}
|
|
380
394
|
else {
|
|
381
395
|
candidate.isTerminal = true;
|
|
382
396
|
this.addCandidate(candidate);
|
|
@@ -384,53 +398,74 @@ var S2RegionCoverer = (function () {
|
|
|
384
398
|
}
|
|
385
399
|
this.candidateQueue.clear();
|
|
386
400
|
this.region = null;
|
|
387
|
-
}
|
|
401
|
+
}
|
|
388
402
|
/**
|
|
389
|
-
*
|
|
390
|
-
*
|
|
391
|
-
* the approximation (see table below).
|
|
403
|
+
* Given a region and a starting cell, return the set of all the edge-connected cells at the same
|
|
404
|
+
* level that intersect "region". The output cells are returned in arbitrary order.
|
|
392
405
|
*/
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
406
|
+
static floodFill(region, start) {
|
|
407
|
+
const all = new Set();
|
|
408
|
+
const frontier = [];
|
|
409
|
+
const output = [];
|
|
410
|
+
all.add(start.toToken());
|
|
411
|
+
frontier.push(start);
|
|
412
|
+
while (frontier.length !== 0) {
|
|
413
|
+
const id = frontier.pop();
|
|
414
|
+
if (!region.mayIntersectC(new S2Cell_1.S2Cell(id))) {
|
|
415
|
+
continue;
|
|
416
|
+
}
|
|
417
|
+
output.push(id);
|
|
418
|
+
const neighbors = id.getEdgeNeighbors();
|
|
419
|
+
for (let edge = 0; edge < 4; ++edge) {
|
|
420
|
+
const nbr = neighbors[edge];
|
|
421
|
+
if (!all.has(nbr.toToken())) {
|
|
422
|
+
frontier.push(nbr);
|
|
423
|
+
all.add(nbr.toToken());
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
return output;
|
|
400
428
|
}
|
|
429
|
+
}
|
|
430
|
+
exports.S2RegionCoverer = S2RegionCoverer;
|
|
431
|
+
/**
|
|
432
|
+
* By default, the covering uses at most 8 cells at any level. This gives a
|
|
433
|
+
* reasonable tradeoff between the number of cells used and the accuracy of
|
|
434
|
+
* the approximation (see table below).
|
|
435
|
+
*/
|
|
436
|
+
S2RegionCoverer.DEFAULT_MAX_CELLS = 8;
|
|
437
|
+
S2RegionCoverer.FACE_CELLS = [0, 1, 2, 3, 4, 5].map(face => S2Cell_1.S2Cell.fromFace(face));
|
|
438
|
+
class Candidate {
|
|
401
439
|
// elements.
|
|
402
|
-
|
|
403
|
-
return
|
|
404
|
-
}
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
function PriorityQueue() {
|
|
440
|
+
toString() {
|
|
441
|
+
return `isTerminal: ${this.isTerminal} - Cell: ${this.cell.toString()}`;
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
class PriorityQueue {
|
|
445
|
+
constructor() {
|
|
409
446
|
this.clear();
|
|
410
447
|
}
|
|
411
|
-
|
|
448
|
+
add(item) {
|
|
412
449
|
this.items.push(item);
|
|
413
|
-
this.items.sort(
|
|
414
|
-
}
|
|
415
|
-
|
|
450
|
+
this.items.sort((a, b) => a.compare(b));
|
|
451
|
+
}
|
|
452
|
+
clear() {
|
|
416
453
|
this.items = [];
|
|
417
|
-
}
|
|
418
|
-
|
|
454
|
+
}
|
|
455
|
+
size() {
|
|
419
456
|
return this.items.length;
|
|
420
|
-
}
|
|
421
|
-
|
|
457
|
+
}
|
|
458
|
+
poll() {
|
|
422
459
|
return this.items.splice(0, 1)[0];
|
|
423
|
-
}
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
function QueueEntry(id, candidate) {
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
class QueueEntry {
|
|
463
|
+
constructor(id, candidate) {
|
|
428
464
|
this.id = id;
|
|
429
465
|
this.candidate = candidate;
|
|
430
466
|
}
|
|
431
|
-
|
|
467
|
+
compare(other) {
|
|
432
468
|
return this.id < other.id ? 1 : (this.id > other.id ? -1 : 0);
|
|
433
|
-
}
|
|
434
|
-
|
|
435
|
-
}());
|
|
469
|
+
}
|
|
470
|
+
}
|
|
436
471
|
//# sourceMappingURL=S2RegionCoverer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"S2RegionCoverer.js","sourceRoot":"","sources":["../src/S2RegionCoverer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"S2RegionCoverer.js","sourceRoot":"","sources":["../src/S2RegionCoverer.ts"],"names":[],"mappings":"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"}
|
package/dist/export.d.ts
CHANGED
package/dist/export.js
CHANGED
|
@@ -1,30 +1,42 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
function
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.Utils = void 0;
|
|
18
|
+
const S2Cap_1 = require("./S2Cap");
|
|
19
|
+
__exportStar(require("./Interval"), exports);
|
|
20
|
+
__exportStar(require("./MutableInteger"), exports);
|
|
21
|
+
__exportStar(require("./R1Interval"), exports);
|
|
22
|
+
__exportStar(require("./R2Vector"), exports);
|
|
23
|
+
__exportStar(require("./S1Angle"), exports);
|
|
24
|
+
__exportStar(require("./S1Interval"), exports);
|
|
25
|
+
__exportStar(require("./S2"), exports);
|
|
26
|
+
__exportStar(require("./S2Cap"), exports);
|
|
27
|
+
__exportStar(require("./S2Cell"), exports);
|
|
28
|
+
__exportStar(require("./S2CellId"), exports);
|
|
29
|
+
__exportStar(require("./S2CellUnion"), exports);
|
|
17
30
|
// export * from './S2EdgeIndex';
|
|
18
31
|
// export * from './S2EdgeUtil';
|
|
19
|
-
|
|
20
|
-
|
|
32
|
+
__exportStar(require("./S2LatLng"), exports);
|
|
33
|
+
__exportStar(require("./S2LatLngRect"), exports);
|
|
21
34
|
// export * from './S2Loop';
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}
|
|
35
|
+
__exportStar(require("./S2Point"), exports);
|
|
36
|
+
__exportStar(require("./S2Projections"), exports);
|
|
37
|
+
__exportStar(require("./S2Region"), exports);
|
|
38
|
+
__exportStar(require("./S2RegionCoverer"), exports);
|
|
39
|
+
class Utils {
|
|
28
40
|
/**
|
|
29
41
|
* Calculates a region covering a circle
|
|
30
42
|
* NOTE: The current implementation uses S2Cap while S2Loop would be better (S2Loop is not implemented yet)
|
|
@@ -33,21 +45,19 @@ var Utils = (function () {
|
|
|
33
45
|
* @param points the number of points to calculate. The higher the better precision
|
|
34
46
|
* @returns {S2Region}
|
|
35
47
|
*/
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
var s2Cap = S2Cap_1.S2Cap.empty().addPoint(center.toPoint());
|
|
48
|
+
static calcRegionFromCenterRadius(center, radiusInKM, points = 16) {
|
|
49
|
+
const pointsAtDistance = center.pointsAtDistance(radiusInKM, points);
|
|
50
|
+
let s2Cap = S2Cap_1.S2Cap.empty().addPoint(center.toPoint());
|
|
40
51
|
// It would be probably enough to add one of the points/2 pair of opposite points in the circle such
|
|
41
52
|
// as (0, points/2). but since this is just a temporary solution lets stick with this as it
|
|
42
53
|
// will come handy when implementing S2Loop.
|
|
43
54
|
pointsAtDistance
|
|
44
|
-
.map(
|
|
45
|
-
.forEach(
|
|
55
|
+
.map(p => p.toPoint())
|
|
56
|
+
.forEach(p => {
|
|
46
57
|
s2Cap = s2Cap.addPoint(p);
|
|
47
58
|
});
|
|
48
59
|
return s2Cap;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
}());
|
|
60
|
+
}
|
|
61
|
+
}
|
|
52
62
|
exports.Utils = Utils;
|
|
53
63
|
//# sourceMappingURL=export.js.map
|
package/dist/export.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export.js","sourceRoot":"","sources":["../src/export.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"export.js","sourceRoot":"","sources":["../src/export.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAEA,mCAA8B;AAC9B,6CAA2B;AAC3B,mDAAiC;AACjC,+CAA6B;AAC7B,6CAA2B;AAC3B,4CAA0B;AAC1B,+CAA6B;AAC7B,uCAAqB;AACrB,0CAAwB;AACxB,2CAAyB;AACzB,6CAA2B;AAC3B,gDAA8B;AAC9B,iCAAiC;AACjC,gCAAgC;AAChC,6CAA2B;AAC3B,iDAA+B;AAC/B,4BAA4B;AAC5B,4CAA0B;AAC1B,kDAAgC;AAChC,6CAA2B;AAC3B,oDAAkC;AAElC,MAAa,KAAK;IAEhB;;;;;;;OAOG;IACH,MAAM,CAAC,0BAA0B,CAAC,MAAe,EAAE,UAAiB,EAAE,MAAM,GAAC,EAAE;QAC7E,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACrE,IAAI,KAAK,GAAG,aAAK,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QACrD,oGAAoG;QACpG,2FAA2F;QAC3F,4CAA4C;QAC5C,gBAAgB;aACX,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;aACrB,OAAO,CAAC,CAAC,CAAC,EAAE;YACX,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAvBD,sBAuBC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.checkState = exports.checkArgument = void 0;
|
|
4
|
+
function checkArgument(condition, message) {
|
|
5
|
+
if (!condition) {
|
|
6
|
+
throw Error('IllegalArgumentException: ' + (message || ''));
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
exports.checkArgument = checkArgument;
|
|
10
|
+
function checkState(condition, message) {
|
|
11
|
+
if (!condition) {
|
|
12
|
+
throw Error('IllegalStateException: ' + (message || ''));
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.checkState = checkState;
|
|
16
|
+
//# sourceMappingURL=preconditions.js.map
|