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/S2CellUnion.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.S2CellUnion = void 0;
|
|
2
4
|
/*
|
|
3
5
|
* Copyright 2005 Google Inc.
|
|
4
6
|
*
|
|
@@ -14,14 +16,14 @@
|
|
|
14
16
|
* See the License for the specific language governing permissions and
|
|
15
17
|
* limitations under the License.
|
|
16
18
|
*/
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
19
|
+
const Long = require("long");
|
|
20
|
+
const S2CellId_1 = require("./S2CellId");
|
|
21
|
+
const S2Cell_1 = require("./S2Cell");
|
|
22
|
+
const S2Projections_1 = require("./S2Projections");
|
|
23
|
+
const S2LatLngRect_1 = require("./S2LatLngRect");
|
|
24
|
+
const S2Point_1 = require("./S2Point");
|
|
25
|
+
const S2Cap_1 = require("./S2Cap");
|
|
26
|
+
const S1ChordAngle_1 = require("./S1ChordAngle");
|
|
25
27
|
/**
|
|
26
28
|
* An S2CellUnion is a region consisting of cells of various sizes. Typically a
|
|
27
29
|
* cell union is used to approximate some other shape. There is a tradeoff
|
|
@@ -30,37 +32,39 @@ var S2Cap_1 = require("./S2Cap");
|
|
|
30
32
|
* suitable for optimizations based on preprocessing.
|
|
31
33
|
*
|
|
32
34
|
*/
|
|
33
|
-
|
|
34
|
-
|
|
35
|
+
class S2CellUnion {
|
|
36
|
+
constructor() {
|
|
35
37
|
/** The CellIds that form the Union */
|
|
36
38
|
this.cellIds = [];
|
|
37
39
|
}
|
|
38
|
-
S2CellUnion.prototype.S2CellUnion = function () {
|
|
39
|
-
};
|
|
40
40
|
/**
|
|
41
41
|
* Populates a cell union with the given S2CellIds or 64-bit cells ids, and
|
|
42
42
|
* then calls Normalize(). The InitSwap() version takes ownership of the
|
|
43
43
|
* vector data without copying and clears the given vector. These methods may
|
|
44
44
|
* be called multiple times.
|
|
45
45
|
*/
|
|
46
|
-
|
|
46
|
+
initFromIds(cellIds) {
|
|
47
47
|
this.initRawIds(cellIds);
|
|
48
48
|
this.normalize();
|
|
49
|
-
}
|
|
50
|
-
|
|
49
|
+
}
|
|
50
|
+
initFromCellIds(cellIds) {
|
|
51
|
+
this.initRawCellIds(cellIds);
|
|
52
|
+
this.normalize();
|
|
53
|
+
}
|
|
54
|
+
initSwap(cellIds) {
|
|
51
55
|
this.initRawSwap(cellIds);
|
|
52
56
|
this.normalize();
|
|
53
|
-
}
|
|
54
|
-
|
|
57
|
+
}
|
|
58
|
+
initRawCellIds(cellIds) {
|
|
55
59
|
this.cellIds = cellIds;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
|
|
60
|
+
}
|
|
61
|
+
initRawIds(cellIds) {
|
|
62
|
+
const size = cellIds.length;
|
|
59
63
|
this.cellIds = [];
|
|
60
|
-
for (
|
|
64
|
+
for (let i = 0; i < size; i++) {
|
|
61
65
|
this.cellIds.push(new S2CellId_1.S2CellId(cellIds[i]));
|
|
62
66
|
}
|
|
63
|
-
}
|
|
67
|
+
}
|
|
64
68
|
/**
|
|
65
69
|
* Like Init(), but does not call Normalize(). The cell union *must* be
|
|
66
70
|
* normalized before doing any calculations with it, so it is the caller's
|
|
@@ -68,19 +72,19 @@ var S2CellUnion = (function () {
|
|
|
68
72
|
* useful when converting cell unions to another representation and back.
|
|
69
73
|
* These methods may be called multiple times.
|
|
70
74
|
*/
|
|
71
|
-
|
|
75
|
+
initRawSwap(cellIds) {
|
|
72
76
|
this.cellIds = [].concat(cellIds);
|
|
73
|
-
}
|
|
74
|
-
|
|
77
|
+
}
|
|
78
|
+
size() {
|
|
75
79
|
return this.cellIds.length;
|
|
76
|
-
}
|
|
80
|
+
}
|
|
77
81
|
/** Convenience methods for accessing the individual cell ids. */
|
|
78
|
-
|
|
82
|
+
cellId(i) {
|
|
79
83
|
return this.cellIds[i];
|
|
80
|
-
}
|
|
81
|
-
|
|
84
|
+
}
|
|
85
|
+
getCellIds() {
|
|
82
86
|
return this.cellIds;
|
|
83
|
-
}
|
|
87
|
+
}
|
|
84
88
|
/**
|
|
85
89
|
* Replaces "output" with an expanded version of the cell union where any
|
|
86
90
|
* cells whose level is less than "min_level" or where (level - min_level) is
|
|
@@ -93,14 +97,14 @@ var S2CellUnion = (function () {
|
|
|
93
97
|
* converted back to the original list of cell ids that satisfies the desired
|
|
94
98
|
* constraints.
|
|
95
99
|
*/
|
|
96
|
-
|
|
100
|
+
denormalize(minLevel, levelMod) {
|
|
97
101
|
// assert (minLevel >= 0 && minLevel <= S2CellId.MAX_LEVEL);
|
|
98
102
|
// assert (levelMod >= 1 && levelMod <= 3);
|
|
99
|
-
|
|
100
|
-
for (
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
103
|
+
const output = [];
|
|
104
|
+
for (let i = 0; i < this.cellIds.length; i++) {
|
|
105
|
+
const id = this.cellIds[i];
|
|
106
|
+
const level = id.level();
|
|
107
|
+
let newLevel = Math.max(minLevel, level);
|
|
104
108
|
if (levelMod > 1) {
|
|
105
109
|
// Round up so that (new_level - min_level) is a multiple of level_mod.
|
|
106
110
|
// (Note that S2CellId::kMaxLevel is a multiple of 1, 2, and 3.)
|
|
@@ -111,36 +115,36 @@ var S2CellUnion = (function () {
|
|
|
111
115
|
output.push(id);
|
|
112
116
|
}
|
|
113
117
|
else {
|
|
114
|
-
|
|
115
|
-
for (
|
|
118
|
+
const end = id.childEndL(newLevel);
|
|
119
|
+
for (let iid = id.childBeginL(newLevel); !iid.equals(end); iid = iid.next()) {
|
|
116
120
|
output.push(iid);
|
|
117
121
|
}
|
|
118
122
|
}
|
|
119
123
|
}
|
|
120
124
|
return output;
|
|
121
|
-
}
|
|
125
|
+
}
|
|
122
126
|
/**
|
|
123
127
|
* If there are more than "excess" elements of the cell_ids() vector that are
|
|
124
128
|
* allocated but unused, reallocate the array to eliminate the excess space.
|
|
125
129
|
* This reduces memory usage when many cell unions need to be held in memory
|
|
126
130
|
* at once.
|
|
127
131
|
*/
|
|
128
|
-
|
|
132
|
+
pack() {
|
|
129
133
|
throw new Error('useless');
|
|
130
134
|
// this.cellIds.trimToSize();
|
|
131
|
-
}
|
|
132
|
-
|
|
135
|
+
}
|
|
136
|
+
containsC(cell) {
|
|
133
137
|
return this.containsCell(cell);
|
|
134
|
-
}
|
|
135
|
-
|
|
138
|
+
}
|
|
139
|
+
mayIntersectC(cell) {
|
|
136
140
|
return this.mayIntersectCell(cell);
|
|
137
|
-
}
|
|
141
|
+
}
|
|
138
142
|
/**
|
|
139
143
|
* Return true if the cell union contains the given cell id. Containment is
|
|
140
144
|
* defined with respect to regions, e.g. a cell contains its 4 children. This
|
|
141
145
|
* is a fast operation (logarithmic in the size of the cell union).
|
|
142
146
|
*/
|
|
143
|
-
|
|
147
|
+
contains(id) {
|
|
144
148
|
// This function requires that Normalize has been called first.
|
|
145
149
|
//
|
|
146
150
|
// This is an exact test. Each cell occupies a linear span of the S2
|
|
@@ -149,7 +153,7 @@ var S2CellUnion = (function () {
|
|
|
149
153
|
// the space-filling curve. So we simply find the pair of cell ids that
|
|
150
154
|
// surround the given cell id (using binary search). There is containment
|
|
151
155
|
// if and only if one of these two cell ids contains this cell.
|
|
152
|
-
|
|
156
|
+
let pos = S2CellId_1.S2CellId.binarySearch(this.cellIds, id.id);
|
|
153
157
|
if (pos < 0) {
|
|
154
158
|
pos = -pos - 1;
|
|
155
159
|
}
|
|
@@ -157,15 +161,15 @@ var S2CellUnion = (function () {
|
|
|
157
161
|
return true;
|
|
158
162
|
}
|
|
159
163
|
return pos != 0 && this.cellIds[pos - 1].rangeMax().greaterOrEquals(id);
|
|
160
|
-
}
|
|
164
|
+
}
|
|
161
165
|
/**
|
|
162
166
|
* Return true if the cell union intersects the given cell id. This is a fast
|
|
163
167
|
* operation (logarithmic in the size of the cell union).
|
|
164
168
|
*/
|
|
165
|
-
|
|
169
|
+
intersects(id) {
|
|
166
170
|
// This function requires that Normalize has been called first.
|
|
167
171
|
// This is an exact test; see the comments for Contains() above.
|
|
168
|
-
|
|
172
|
+
let pos = S2CellId_1.S2CellId.binarySearch(this.cellIds, id.id);
|
|
169
173
|
if (pos < 0) {
|
|
170
174
|
pos = -pos - 1;
|
|
171
175
|
}
|
|
@@ -173,78 +177,78 @@ var S2CellUnion = (function () {
|
|
|
173
177
|
return true;
|
|
174
178
|
}
|
|
175
179
|
return pos != 0 && this.cellIds[pos - 1].rangeMax().greaterOrEquals(id.rangeMin());
|
|
176
|
-
}
|
|
177
|
-
|
|
180
|
+
}
|
|
181
|
+
containsUnion(that) {
|
|
178
182
|
// A divide-and-conquer or alternating-skip-search approach
|
|
179
183
|
// may be significantly faster in both the average and worst case.
|
|
180
|
-
for (
|
|
184
|
+
for (let i = 0; i < that.cellIds.length; i++) {
|
|
181
185
|
if (!this.contains(that.cellIds[i])) {
|
|
182
186
|
return false;
|
|
183
187
|
}
|
|
184
188
|
}
|
|
185
189
|
return true;
|
|
186
|
-
}
|
|
190
|
+
}
|
|
187
191
|
/** This is a fast operation (logarithmic in the size of the cell union). */
|
|
188
|
-
|
|
192
|
+
containsCell(cell) {
|
|
189
193
|
return this.contains(cell.id);
|
|
190
|
-
}
|
|
194
|
+
}
|
|
191
195
|
/**
|
|
192
196
|
* Return true if this cell union contain/intersects the given other cell
|
|
193
197
|
* union.
|
|
194
198
|
*/
|
|
195
|
-
|
|
199
|
+
intersectsUnion(that) {
|
|
196
200
|
// A divide-and-conquer or alternating-skip-search approach
|
|
197
201
|
// may be significantly faster in both the average and worst case.
|
|
198
|
-
for (
|
|
202
|
+
for (let i = 0; i < that.cellIds.length; i++) {
|
|
199
203
|
if (!this.intersects(that.cellIds[i])) {
|
|
200
204
|
return false;
|
|
201
205
|
}
|
|
202
206
|
}
|
|
203
207
|
return true;
|
|
204
|
-
}
|
|
205
|
-
|
|
208
|
+
}
|
|
209
|
+
getUnion(x, y) {
|
|
206
210
|
// assert (x != this && y != this);
|
|
207
211
|
this.cellIds = [].concat(x.cellIds).concat(y.cellIds);
|
|
208
212
|
this.normalize();
|
|
209
|
-
}
|
|
213
|
+
}
|
|
210
214
|
/**
|
|
211
215
|
* Specialized version of GetIntersection() that gets the intersection of a
|
|
212
216
|
* cell union with the given cell id. This can be useful for "splitting" a
|
|
213
217
|
* cell union into chunks.
|
|
214
218
|
*/
|
|
215
|
-
|
|
219
|
+
getIntersection(x, id) {
|
|
216
220
|
// assert (x != this);
|
|
217
221
|
this.cellIds = [];
|
|
218
222
|
if (x.contains(id)) {
|
|
219
223
|
this.cellIds.push(id);
|
|
220
224
|
}
|
|
221
225
|
else {
|
|
222
|
-
|
|
226
|
+
let pos = S2CellId_1.S2CellId.binarySearch(x.cellIds, id.rangeMin().id);
|
|
223
227
|
if (pos < 0) {
|
|
224
228
|
pos = -pos - 1;
|
|
225
229
|
}
|
|
226
|
-
|
|
227
|
-
|
|
230
|
+
const idmax = id.rangeMax();
|
|
231
|
+
const size = x.cellIds.length;
|
|
228
232
|
while (pos < size && x.cellIds[pos].lessOrEquals(idmax)) {
|
|
229
233
|
this.cellIds.push(x.cellIds[(pos++)]);
|
|
230
234
|
}
|
|
231
235
|
}
|
|
232
|
-
}
|
|
236
|
+
}
|
|
233
237
|
/**
|
|
234
238
|
* Initialize this cell union to the union or intersection of the two given
|
|
235
239
|
* cell unions. Requires: x != this and y != this.
|
|
236
240
|
*/
|
|
237
|
-
|
|
241
|
+
getIntersectionUU(x, y) {
|
|
238
242
|
// assert (x != this && y != this);
|
|
239
243
|
// This is a fairly efficient calculation that uses binary search to skip
|
|
240
244
|
// over sections of both input vectors. It takes constant time if all the
|
|
241
245
|
// cells of "x" come before or after all the cells of "y" in S2CellId order.
|
|
242
246
|
this.cellIds = [];
|
|
243
|
-
|
|
244
|
-
|
|
247
|
+
let i = 0;
|
|
248
|
+
let j = 0;
|
|
245
249
|
while (i < x.cellIds.length && j < y.cellIds.length) {
|
|
246
|
-
|
|
247
|
-
|
|
250
|
+
const imin = x.cellId(i).rangeMin();
|
|
251
|
+
const jmin = y.cellId(j).rangeMin();
|
|
248
252
|
if (imin.greaterThan(jmin)) {
|
|
249
253
|
// Either j->contains(*i) or the two cells are disjoint.
|
|
250
254
|
if (x.cellId(i).lessOrEquals(y.cellId(j).rangeMax())) {
|
|
@@ -284,7 +288,7 @@ var S2CellUnion = (function () {
|
|
|
284
288
|
// The output is generated in sorted order, and there should not be any
|
|
285
289
|
// cells that can be merged (provided that both inputs were normalized).
|
|
286
290
|
// assert (!normalize());
|
|
287
|
-
}
|
|
291
|
+
}
|
|
288
292
|
/**
|
|
289
293
|
* Expands the cell union such that it contains all cells of the given level
|
|
290
294
|
* that are adjacent to any cell of the original union. Two cells are defined
|
|
@@ -296,12 +300,12 @@ var S2CellUnion = (function () {
|
|
|
296
300
|
* order of 4000 adjacent cells in the output. For most applications the
|
|
297
301
|
* Expand(min_fraction, min_distance) method below is easier to use.
|
|
298
302
|
*/
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
+
expand(level) {
|
|
304
|
+
let output = [];
|
|
305
|
+
const levelLsb = S2CellId_1.S2CellId.lowestOnBitForLevel(level);
|
|
306
|
+
let i = this.size() - 1;
|
|
303
307
|
do {
|
|
304
|
-
|
|
308
|
+
let id = this.cellId(i);
|
|
305
309
|
if (id.lowestOnBit().lessThan(levelLsb)) {
|
|
306
310
|
id = id.parentL(level);
|
|
307
311
|
// Optimization: skip over any cells contained by this one. This is
|
|
@@ -314,7 +318,7 @@ var S2CellUnion = (function () {
|
|
|
314
318
|
output = output.concat(id.getAllNeighbors(level));
|
|
315
319
|
} while (--i >= 0);
|
|
316
320
|
this.initSwap(output);
|
|
317
|
-
}
|
|
321
|
+
}
|
|
318
322
|
/**
|
|
319
323
|
* Expand the cell union such that it contains all points whose distance to
|
|
320
324
|
* the cell union is at most minRadius, but do not use cells that are more
|
|
@@ -328,35 +332,35 @@ var S2CellUnion = (function () {
|
|
|
328
332
|
* case, the number of cells in the output can be up to 4 * (1 + 2 **
|
|
329
333
|
* maxLevelDiff) times larger than the number of cells in the input.
|
|
330
334
|
*/
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
for (
|
|
334
|
-
|
|
335
|
+
expandA(minRadius, maxLevelDiff) {
|
|
336
|
+
let minLevel = S2CellId_1.S2CellId.MAX_LEVEL;
|
|
337
|
+
for (let i = 0; i < this.cellIds.length; i++) {
|
|
338
|
+
const id = this.cellId(i);
|
|
335
339
|
minLevel = Math.min(minLevel, id.level());
|
|
336
340
|
}
|
|
337
341
|
// Find the maximum level such that all cells are at least "min_radius"
|
|
338
342
|
// wide.
|
|
339
|
-
|
|
340
|
-
if (radiusLevel == 0 && minRadius.radians
|
|
343
|
+
const radiusLevel = S2Projections_1.S2Projections.MIN_WIDTH.getMaxLevel(minRadius.radians);
|
|
344
|
+
if (radiusLevel == 0 && minRadius.radians > (S2Projections_1.S2Projections.MIN_WIDTH.getValue(0))) {
|
|
341
345
|
// The requested expansion is greater than the width of a face cell.
|
|
342
346
|
// The easiest way to handle this is to expand twice.
|
|
343
347
|
this.expand(0);
|
|
344
348
|
}
|
|
345
349
|
this.expand(Math.min(minLevel + maxLevelDiff, radiusLevel));
|
|
346
|
-
}
|
|
347
|
-
|
|
350
|
+
}
|
|
351
|
+
getCapBound() {
|
|
348
352
|
// Compute the approximate centroid of the region. This won't produce the
|
|
349
353
|
// bounding cap of minimal area, but it should be close enough.
|
|
350
354
|
if (this.cellIds.length == 0) {
|
|
351
355
|
return S2Cap_1.S2Cap.empty();
|
|
352
356
|
}
|
|
353
|
-
|
|
354
|
-
this.cellIds.forEach(
|
|
355
|
-
|
|
357
|
+
let centroid = new S2Point_1.S2Point(0, 0, 0);
|
|
358
|
+
this.cellIds.forEach(id => {
|
|
359
|
+
const area = S2Cell_1.S2Cell.averageArea(id.level());
|
|
356
360
|
centroid = S2Point_1.S2Point.add(centroid, S2Point_1.S2Point.mul(id.toPoint(), area));
|
|
357
361
|
});
|
|
358
|
-
if (centroid.equals(
|
|
359
|
-
centroid =
|
|
362
|
+
if (centroid.equals(S2Point_1.S2Point.ORIGIN)) {
|
|
363
|
+
centroid = S2Point_1.S2Point.X_POS;
|
|
360
364
|
}
|
|
361
365
|
else {
|
|
362
366
|
centroid = S2Point_1.S2Point.normalize(centroid);
|
|
@@ -365,45 +369,45 @@ var S2CellUnion = (function () {
|
|
|
365
369
|
// contains the bounding caps of all the individual cells. Note that it is
|
|
366
370
|
// *not* sufficient to just bound all the cell vertices because the bounding
|
|
367
371
|
// cap may be concave (i.e. cover more than one hemisphere).
|
|
368
|
-
|
|
369
|
-
this.cellIds.forEach(
|
|
372
|
+
let cap = S2Cap_1.S2Cap.fromAxisChord(centroid, S1ChordAngle_1.S1ChordAngle.ZERO);
|
|
373
|
+
this.cellIds.forEach(id => {
|
|
370
374
|
cap = cap.addCap(new S2Cell_1.S2Cell(id).getCapBound());
|
|
371
375
|
});
|
|
372
376
|
return cap;
|
|
373
|
-
}
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
this.cellIds.forEach(
|
|
377
|
+
}
|
|
378
|
+
getRectBound() {
|
|
379
|
+
let bound = S2LatLngRect_1.S2LatLngRect.empty();
|
|
380
|
+
this.cellIds.forEach(id => {
|
|
377
381
|
bound = bound.union(new S2Cell_1.S2Cell(id).getRectBound());
|
|
378
382
|
});
|
|
379
383
|
return bound;
|
|
380
|
-
}
|
|
384
|
+
}
|
|
381
385
|
/** This is a fast operation (logarithmic in the size of the cell union). */
|
|
382
|
-
|
|
386
|
+
mayIntersectCell(cell) {
|
|
383
387
|
return this.intersects(cell.id);
|
|
384
|
-
}
|
|
388
|
+
}
|
|
385
389
|
/**
|
|
386
390
|
* The point 'p' does not need to be normalized. This is a fast operation
|
|
387
391
|
* (logarithmic in the size of the cell union).
|
|
388
392
|
*/
|
|
389
|
-
|
|
393
|
+
containsPoint(p) {
|
|
390
394
|
return this.contains(S2CellId_1.S2CellId.fromPoint(p));
|
|
391
|
-
}
|
|
395
|
+
}
|
|
392
396
|
/**
|
|
393
397
|
* The number of leaf cells covered by the union.
|
|
394
398
|
* This will be no more than 6*2^60 for the whole sphere.
|
|
395
399
|
*
|
|
396
400
|
* @return the number of leaf cells covered by the union
|
|
397
401
|
*/
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
this.cellIds.forEach(
|
|
401
|
-
|
|
402
|
+
leafCellsCovered() {
|
|
403
|
+
let numLeaves = new Long(0);
|
|
404
|
+
this.cellIds.forEach((id) => {
|
|
405
|
+
const invertedLevel = S2CellId_1.S2CellId.MAX_LEVEL - id.level();
|
|
402
406
|
numLeaves = numLeaves
|
|
403
407
|
.add(new Long(1).shiftLeft(invertedLevel << 1));
|
|
404
408
|
});
|
|
405
409
|
return numLeaves;
|
|
406
|
-
}
|
|
410
|
+
}
|
|
407
411
|
/**
|
|
408
412
|
* Approximate this cell union's area by summing the average area of
|
|
409
413
|
* each contained cell's average area, using {@link S2Cell#averageArea()}.
|
|
@@ -417,35 +421,35 @@ var S2CellUnion = (function () {
|
|
|
417
421
|
*
|
|
418
422
|
* @return the sum of the average area of each contained cell's average area
|
|
419
423
|
*/
|
|
420
|
-
|
|
421
|
-
return
|
|
422
|
-
}
|
|
424
|
+
averageBasedArea() {
|
|
425
|
+
return this.leafCellsCovered().mul(S2Projections_1.S2Projections.AVG_AREA.getValue(S2CellId_1.S2CellId.MAX_LEVEL)).toNumber();
|
|
426
|
+
}
|
|
423
427
|
/**
|
|
424
428
|
* Calculates this cell union's area by summing the approximate area for each
|
|
425
429
|
* contained cell, using {@link S2Cell#approxArea()}.
|
|
426
430
|
*
|
|
427
431
|
* @return approximate area of the cell union
|
|
428
432
|
*/
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
this.cellIds.forEach(
|
|
432
|
-
area = area
|
|
433
|
+
approxArea() {
|
|
434
|
+
let area = 0;
|
|
435
|
+
this.cellIds.forEach(id => {
|
|
436
|
+
area = area + (new S2Cell_1.S2Cell(id).approxArea());
|
|
433
437
|
});
|
|
434
|
-
return area
|
|
435
|
-
}
|
|
438
|
+
return area;
|
|
439
|
+
}
|
|
436
440
|
/**
|
|
437
441
|
* Calculates this cell union's area by summing the exact area for each
|
|
438
442
|
* contained cell, using the {@link S2Cell#exactArea()}.
|
|
439
443
|
*
|
|
440
444
|
* @return the exact area of the cell union
|
|
441
445
|
*/
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
this.cellIds.forEach(
|
|
445
|
-
area = area
|
|
446
|
+
exactArea() {
|
|
447
|
+
let area = 0;
|
|
448
|
+
this.cellIds.forEach(id => {
|
|
449
|
+
area = area + new S2Cell_1.S2Cell(id).exactArea();
|
|
446
450
|
});
|
|
447
|
-
return area
|
|
448
|
-
}
|
|
451
|
+
return area;
|
|
452
|
+
}
|
|
449
453
|
/**
|
|
450
454
|
* Normalizes the cell union by discarding cells that are contained by other
|
|
451
455
|
* cells, replacing groups of 4 child cells by their parent cell whenever
|
|
@@ -458,16 +462,16 @@ var S2CellUnion = (function () {
|
|
|
458
462
|
* @return true if the normalize operation had any effect on the cell union,
|
|
459
463
|
* false if the union was already normalized
|
|
460
464
|
*/
|
|
461
|
-
|
|
465
|
+
normalize() {
|
|
462
466
|
// Optimize the representation by looking for cases where all subcells
|
|
463
467
|
// of a parent cell are present.
|
|
464
|
-
|
|
468
|
+
const output = [];
|
|
465
469
|
// ArrayList<S2CellId> output = new ArrayList<>(this.cellIds.size());
|
|
466
470
|
// output.ensureCapacity(this.cellIds.size());
|
|
467
|
-
this.cellIds.sort(
|
|
471
|
+
this.cellIds.sort((a, b) => a.compareTo(b));
|
|
468
472
|
// Collections.sort(this.cellIds);
|
|
469
|
-
this.cellIds.forEach(
|
|
470
|
-
|
|
473
|
+
this.cellIds.forEach(id => {
|
|
474
|
+
let size = output.length;
|
|
471
475
|
// Check whether this cell is contained by the previous cell.
|
|
472
476
|
if (output.length !== 0 && output[size - 1].contains(id)) {
|
|
473
477
|
return;
|
|
@@ -475,6 +479,7 @@ var S2CellUnion = (function () {
|
|
|
475
479
|
// Discard any previous cells contained by this cell.
|
|
476
480
|
while (output.length !== 0 && id.contains(output[output.length - 1])) {
|
|
477
481
|
output.splice(output.length - 1, 1);
|
|
482
|
+
// output.remove(output.size() - 1);
|
|
478
483
|
}
|
|
479
484
|
// Check whether the last 3 elements of "output" plus "id" can be
|
|
480
485
|
// collapsed into a single parent cell.
|
|
@@ -482,17 +487,17 @@ var S2CellUnion = (function () {
|
|
|
482
487
|
size = output.length;
|
|
483
488
|
// A necessary (but not sufficient) condition is that the XOR of the
|
|
484
489
|
// four cells must be zero. This is also very fast to test.
|
|
485
|
-
if ((output[size - 3].id.
|
|
490
|
+
if ((output[size - 3].id.xor(output[size - 2].id).xor(output[size - 1].id)).notEquals(id.id)) {
|
|
486
491
|
break;
|
|
487
492
|
}
|
|
488
493
|
// Now we do a slightly more expensive but exact test. First, compute a
|
|
489
494
|
// mask that blocks out the two bits that encode the child position of
|
|
490
495
|
// "id" with respect to its parent, then check that the other three
|
|
491
496
|
// children all agree with "mask.
|
|
492
|
-
|
|
497
|
+
let mask = id.lowestOnBit().shiftLeft(1);
|
|
493
498
|
mask = mask.add(mask.shiftLeft(1)).not();
|
|
494
499
|
// mask = ~(mask + (mask << 1));
|
|
495
|
-
|
|
500
|
+
const idMasked = id.id.and(mask);
|
|
496
501
|
if ((output[size - 3].id.and(mask)).notEquals(idMasked)
|
|
497
502
|
|| (output[size - 2].id.and(mask)).notEquals(idMasked)
|
|
498
503
|
|| (output[size - 1].id.and(mask)).notEquals(idMasked) || id.isFace()) {
|
|
@@ -512,8 +517,7 @@ var S2CellUnion = (function () {
|
|
|
512
517
|
return true;
|
|
513
518
|
}
|
|
514
519
|
return false;
|
|
515
|
-
}
|
|
516
|
-
|
|
517
|
-
}());
|
|
520
|
+
}
|
|
521
|
+
}
|
|
518
522
|
exports.S2CellUnion = S2CellUnion;
|
|
519
523
|
//# sourceMappingURL=S2CellUnion.js.map
|
package/dist/S2CellUnion.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"S2CellUnion.js","sourceRoot":"","sources":["../src/S2CellUnion.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"S2CellUnion.js","sourceRoot":"","sources":["../src/S2CellUnion.ts"],"names":[],"mappings":"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"}
|