iflow-engine-base 4.0.15 → 4.0.18

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.
Files changed (148) hide show
  1. package/dist/bim-engine-sdk.es.js +33 -13
  2. package/dist/bim-engine-sdk.umd.js +2811 -342
  3. package/dist/chunks/EngineKernel-BucDRg23.js +20761 -0
  4. package/dist/chunks/engine-2d-BjtuYZUi.js +6119 -0
  5. package/dist/chunks/{engine-3d-DAEOqkkS.js → engine-3d-DnlK2vTK.js} +19422 -18597
  6. package/dist/chunks/engine-720-DJsweyG9.js +1565 -0
  7. package/dist/chunks/engine-gaussian-DklK6vdJ.js +8127 -0
  8. package/dist/chunks/gis-tiles-vendor-DIbUOKJM.js +11781 -0
  9. package/dist/chunks/index-BtsyaVm2.js +2640 -0
  10. package/dist/chunks/index-Ct7RfnLw.js +474 -0
  11. package/dist/chunks/index-Cyv0HpPm.js +438 -0
  12. package/dist/chunks/index-DZmXdy4v.js +717 -0
  13. package/dist/chunks/{sdk-assets-Eo-SBV02.js → sdk-assets-DtcFvuth.js} +10 -10
  14. package/dist/chunks/sdk-runtime-CFM9OAcx.js +1364 -0
  15. package/dist/chunks/sdk-vendor-6wYtfmXR.js +31826 -0
  16. package/dist/chunks/three-vendor-CGmeNMm5.js +81889 -0
  17. package/dist/gis-fixtures/terrain/0/0/0.terrain +0 -0
  18. package/dist/gis-fixtures/terrain/0/1/0.terrain +0 -0
  19. package/dist/gis-fixtures/terrain/1/2/0.terrain +0 -0
  20. package/dist/gis-fixtures/terrain/1/2/1.terrain +0 -0
  21. package/dist/gis-fixtures/terrain/1/3/0.terrain +0 -0
  22. package/dist/gis-fixtures/terrain/1/3/1.terrain +0 -0
  23. package/dist/gis-fixtures/terrain/10/1694/650.terrain +0 -0
  24. package/dist/gis-fixtures/terrain/10/1694/651.terrain +0 -0
  25. package/dist/gis-fixtures/terrain/10/1694/652.terrain +0 -0
  26. package/dist/gis-fixtures/terrain/10/1695/650.terrain +0 -0
  27. package/dist/gis-fixtures/terrain/10/1695/651.terrain +0 -0
  28. package/dist/gis-fixtures/terrain/10/1695/652.terrain +0 -0
  29. package/dist/gis-fixtures/terrain/10/1696/650.terrain +0 -0
  30. package/dist/gis-fixtures/terrain/10/1696/651.terrain +0 -0
  31. package/dist/gis-fixtures/terrain/10/1696/652.terrain +0 -0
  32. package/dist/gis-fixtures/terrain/11/3390/1301.terrain +0 -0
  33. package/dist/gis-fixtures/terrain/11/3390/1302.terrain +0 -0
  34. package/dist/gis-fixtures/terrain/11/3390/1303.terrain +0 -0
  35. package/dist/gis-fixtures/terrain/11/3391/1301.terrain +0 -0
  36. package/dist/gis-fixtures/terrain/11/3391/1302.terrain +0 -0
  37. package/dist/gis-fixtures/terrain/11/3391/1303.terrain +0 -0
  38. package/dist/gis-fixtures/terrain/11/3392/1301.terrain +0 -0
  39. package/dist/gis-fixtures/terrain/11/3392/1302.terrain +0 -0
  40. package/dist/gis-fixtures/terrain/11/3392/1303.terrain +0 -0
  41. package/dist/gis-fixtures/terrain/12/6782/2604.terrain +0 -0
  42. package/dist/gis-fixtures/terrain/12/6782/2605.terrain +0 -0
  43. package/dist/gis-fixtures/terrain/12/6782/2606.terrain +0 -0
  44. package/dist/gis-fixtures/terrain/12/6783/2604.terrain +0 -0
  45. package/dist/gis-fixtures/terrain/12/6783/2605.terrain +0 -0
  46. package/dist/gis-fixtures/terrain/12/6783/2606.terrain +0 -0
  47. package/dist/gis-fixtures/terrain/12/6784/2604.terrain +0 -0
  48. package/dist/gis-fixtures/terrain/12/6784/2605.terrain +0 -0
  49. package/dist/gis-fixtures/terrain/12/6784/2606.terrain +0 -0
  50. package/dist/gis-fixtures/terrain/13/13565/5209.terrain +0 -0
  51. package/dist/gis-fixtures/terrain/13/13565/5210.terrain +0 -0
  52. package/dist/gis-fixtures/terrain/13/13565/5211.terrain +0 -0
  53. package/dist/gis-fixtures/terrain/13/13566/5209.terrain +0 -0
  54. package/dist/gis-fixtures/terrain/13/13566/5210.terrain +0 -0
  55. package/dist/gis-fixtures/terrain/13/13566/5211.terrain +0 -0
  56. package/dist/gis-fixtures/terrain/13/13567/5209.terrain +0 -0
  57. package/dist/gis-fixtures/terrain/13/13567/5210.terrain +0 -0
  58. package/dist/gis-fixtures/terrain/13/13567/5211.terrain +0 -0
  59. package/dist/gis-fixtures/terrain/14/27131/10419.terrain +0 -0
  60. package/dist/gis-fixtures/terrain/14/27131/10420.terrain +0 -0
  61. package/dist/gis-fixtures/terrain/14/27131/10421.terrain +0 -0
  62. package/dist/gis-fixtures/terrain/14/27132/10419.terrain +0 -0
  63. package/dist/gis-fixtures/terrain/14/27132/10420.terrain +0 -0
  64. package/dist/gis-fixtures/terrain/14/27132/10421.terrain +0 -0
  65. package/dist/gis-fixtures/terrain/14/27133/10419.terrain +0 -0
  66. package/dist/gis-fixtures/terrain/14/27133/10420.terrain +0 -0
  67. package/dist/gis-fixtures/terrain/14/27133/10421.terrain +0 -0
  68. package/dist/gis-fixtures/terrain/2/5/1.terrain +0 -0
  69. package/dist/gis-fixtures/terrain/2/5/2.terrain +0 -0
  70. package/dist/gis-fixtures/terrain/2/5/3.terrain +0 -0
  71. package/dist/gis-fixtures/terrain/2/6/1.terrain +0 -0
  72. package/dist/gis-fixtures/terrain/2/6/2.terrain +0 -0
  73. package/dist/gis-fixtures/terrain/2/6/3.terrain +0 -0
  74. package/dist/gis-fixtures/terrain/2/7/1.terrain +0 -0
  75. package/dist/gis-fixtures/terrain/2/7/2.terrain +0 -0
  76. package/dist/gis-fixtures/terrain/2/7/3.terrain +0 -0
  77. package/dist/gis-fixtures/terrain/3/12/4.terrain +0 -0
  78. package/dist/gis-fixtures/terrain/3/12/5.terrain +0 -0
  79. package/dist/gis-fixtures/terrain/3/12/6.terrain +0 -0
  80. package/dist/gis-fixtures/terrain/3/13/4.terrain +0 -0
  81. package/dist/gis-fixtures/terrain/3/13/5.terrain +0 -0
  82. package/dist/gis-fixtures/terrain/3/13/6.terrain +0 -0
  83. package/dist/gis-fixtures/terrain/3/14/4.terrain +0 -0
  84. package/dist/gis-fixtures/terrain/3/14/5.terrain +0 -0
  85. package/dist/gis-fixtures/terrain/3/14/6.terrain +0 -0
  86. package/dist/gis-fixtures/terrain/4/25/10.terrain +0 -0
  87. package/dist/gis-fixtures/terrain/4/25/11.terrain +0 -0
  88. package/dist/gis-fixtures/terrain/4/25/9.terrain +0 -0
  89. package/dist/gis-fixtures/terrain/4/26/10.terrain +0 -0
  90. package/dist/gis-fixtures/terrain/4/26/11.terrain +0 -0
  91. package/dist/gis-fixtures/terrain/4/26/9.terrain +0 -0
  92. package/dist/gis-fixtures/terrain/4/27/10.terrain +0 -0
  93. package/dist/gis-fixtures/terrain/4/27/11.terrain +0 -0
  94. package/dist/gis-fixtures/terrain/4/27/9.terrain +0 -0
  95. package/dist/gis-fixtures/terrain/5/51/19.terrain +0 -0
  96. package/dist/gis-fixtures/terrain/5/51/20.terrain +0 -0
  97. package/dist/gis-fixtures/terrain/5/51/21.terrain +0 -0
  98. package/dist/gis-fixtures/terrain/5/52/19.terrain +0 -0
  99. package/dist/gis-fixtures/terrain/5/52/20.terrain +0 -0
  100. package/dist/gis-fixtures/terrain/5/52/21.terrain +0 -0
  101. package/dist/gis-fixtures/terrain/5/53/19.terrain +0 -0
  102. package/dist/gis-fixtures/terrain/5/53/20.terrain +0 -0
  103. package/dist/gis-fixtures/terrain/5/53/21.terrain +0 -0
  104. package/dist/gis-fixtures/terrain/6/104/39.terrain +0 -0
  105. package/dist/gis-fixtures/terrain/6/104/40.terrain +0 -0
  106. package/dist/gis-fixtures/terrain/6/104/41.terrain +0 -0
  107. package/dist/gis-fixtures/terrain/6/105/39.terrain +0 -0
  108. package/dist/gis-fixtures/terrain/6/105/40.terrain +0 -0
  109. package/dist/gis-fixtures/terrain/6/105/41.terrain +0 -0
  110. package/dist/gis-fixtures/terrain/6/106/39.terrain +0 -0
  111. package/dist/gis-fixtures/terrain/6/106/40.terrain +0 -0
  112. package/dist/gis-fixtures/terrain/6/106/41.terrain +0 -0
  113. package/dist/gis-fixtures/terrain/7/210/80.terrain +0 -0
  114. package/dist/gis-fixtures/terrain/7/210/81.terrain +0 -0
  115. package/dist/gis-fixtures/terrain/7/210/82.terrain +0 -0
  116. package/dist/gis-fixtures/terrain/7/211/80.terrain +0 -0
  117. package/dist/gis-fixtures/terrain/7/211/81.terrain +0 -0
  118. package/dist/gis-fixtures/terrain/7/211/82.terrain +0 -0
  119. package/dist/gis-fixtures/terrain/7/212/80.terrain +0 -0
  120. package/dist/gis-fixtures/terrain/7/212/81.terrain +0 -0
  121. package/dist/gis-fixtures/terrain/7/212/82.terrain +0 -0
  122. package/dist/gis-fixtures/terrain/8/422/161.terrain +0 -0
  123. package/dist/gis-fixtures/terrain/8/422/162.terrain +0 -0
  124. package/dist/gis-fixtures/terrain/8/422/163.terrain +0 -0
  125. package/dist/gis-fixtures/terrain/8/423/161.terrain +0 -0
  126. package/dist/gis-fixtures/terrain/8/423/162.terrain +0 -0
  127. package/dist/gis-fixtures/terrain/8/423/163.terrain +0 -0
  128. package/dist/gis-fixtures/terrain/8/424/161.terrain +0 -0
  129. package/dist/gis-fixtures/terrain/8/424/162.terrain +0 -0
  130. package/dist/gis-fixtures/terrain/8/424/163.terrain +0 -0
  131. package/dist/gis-fixtures/terrain/9/846/324.terrain +0 -0
  132. package/dist/gis-fixtures/terrain/9/846/325.terrain +0 -0
  133. package/dist/gis-fixtures/terrain/9/846/326.terrain +0 -0
  134. package/dist/gis-fixtures/terrain/9/847/324.terrain +0 -0
  135. package/dist/gis-fixtures/terrain/9/847/325.terrain +0 -0
  136. package/dist/gis-fixtures/terrain/9/847/326.terrain +0 -0
  137. package/dist/gis-fixtures/terrain/9/848/324.terrain +0 -0
  138. package/dist/gis-fixtures/terrain/9/848/325.terrain +0 -0
  139. package/dist/gis-fixtures/terrain/9/848/326.terrain +0 -0
  140. package/dist/gis-fixtures/terrain/layer.json +141 -0
  141. package/dist/gis-fixtures/tilesets/xiamen-local/scene.gltf +31 -0
  142. package/dist/gis-fixtures/tilesets/xiamen-local/tileset.json +12 -0
  143. package/dist/iflow-engine-base.css +1 -1
  144. package/dist/index.d.ts +13908 -68
  145. package/package.json +8 -18
  146. package/dist/chunks/sdk-runtime-CB2jwkGL.js +0 -1177
  147. package/dist/chunks/sdk-vendor-DtYOqJWo.js +0 -23208
  148. package/dist/chunks/three-vendor-rBTtPKhu.js +0 -44788
@@ -0,0 +1,438 @@
1
+ function y(t, e) {
2
+ this.x = t, this.y = e;
3
+ }
4
+ y.prototype = {
5
+ /**
6
+ * Clone this point, returning a new point that can be modified
7
+ * without affecting the old one.
8
+ * @return {Point} the clone
9
+ */
10
+ clone() {
11
+ return new y(this.x, this.y);
12
+ },
13
+ /**
14
+ * Add this point's x & y coordinates to another point,
15
+ * yielding a new point.
16
+ * @param {Point} p the other point
17
+ * @return {Point} output point
18
+ */
19
+ add(t) {
20
+ return this.clone()._add(t);
21
+ },
22
+ /**
23
+ * Subtract this point's x & y coordinates to from point,
24
+ * yielding a new point.
25
+ * @param {Point} p the other point
26
+ * @return {Point} output point
27
+ */
28
+ sub(t) {
29
+ return this.clone()._sub(t);
30
+ },
31
+ /**
32
+ * Multiply this point's x & y coordinates by point,
33
+ * yielding a new point.
34
+ * @param {Point} p the other point
35
+ * @return {Point} output point
36
+ */
37
+ multByPoint(t) {
38
+ return this.clone()._multByPoint(t);
39
+ },
40
+ /**
41
+ * Divide this point's x & y coordinates by point,
42
+ * yielding a new point.
43
+ * @param {Point} p the other point
44
+ * @return {Point} output point
45
+ */
46
+ divByPoint(t) {
47
+ return this.clone()._divByPoint(t);
48
+ },
49
+ /**
50
+ * Multiply this point's x & y coordinates by a factor,
51
+ * yielding a new point.
52
+ * @param {number} k factor
53
+ * @return {Point} output point
54
+ */
55
+ mult(t) {
56
+ return this.clone()._mult(t);
57
+ },
58
+ /**
59
+ * Divide this point's x & y coordinates by a factor,
60
+ * yielding a new point.
61
+ * @param {number} k factor
62
+ * @return {Point} output point
63
+ */
64
+ div(t) {
65
+ return this.clone()._div(t);
66
+ },
67
+ /**
68
+ * Rotate this point around the 0, 0 origin by an angle a,
69
+ * given in radians
70
+ * @param {number} a angle to rotate around, in radians
71
+ * @return {Point} output point
72
+ */
73
+ rotate(t) {
74
+ return this.clone()._rotate(t);
75
+ },
76
+ /**
77
+ * Rotate this point around p point by an angle a,
78
+ * given in radians
79
+ * @param {number} a angle to rotate around, in radians
80
+ * @param {Point} p Point to rotate around
81
+ * @return {Point} output point
82
+ */
83
+ rotateAround(t, e) {
84
+ return this.clone()._rotateAround(t, e);
85
+ },
86
+ /**
87
+ * Multiply this point by a 4x1 transformation matrix
88
+ * @param {[number, number, number, number]} m transformation matrix
89
+ * @return {Point} output point
90
+ */
91
+ matMult(t) {
92
+ return this.clone()._matMult(t);
93
+ },
94
+ /**
95
+ * Calculate this point but as a unit vector from 0, 0, meaning
96
+ * that the distance from the resulting point to the 0, 0
97
+ * coordinate will be equal to 1 and the angle from the resulting
98
+ * point to the 0, 0 coordinate will be the same as before.
99
+ * @return {Point} unit vector point
100
+ */
101
+ unit() {
102
+ return this.clone()._unit();
103
+ },
104
+ /**
105
+ * Compute a perpendicular point, where the new y coordinate
106
+ * is the old x coordinate and the new x coordinate is the old y
107
+ * coordinate multiplied by -1
108
+ * @return {Point} perpendicular point
109
+ */
110
+ perp() {
111
+ return this.clone()._perp();
112
+ },
113
+ /**
114
+ * Return a version of this point with the x & y coordinates
115
+ * rounded to integers.
116
+ * @return {Point} rounded point
117
+ */
118
+ round() {
119
+ return this.clone()._round();
120
+ },
121
+ /**
122
+ * Return the magnitude of this point: this is the Euclidean
123
+ * distance from the 0, 0 coordinate to this point's x and y
124
+ * coordinates.
125
+ * @return {number} magnitude
126
+ */
127
+ mag() {
128
+ return Math.sqrt(this.x * this.x + this.y * this.y);
129
+ },
130
+ /**
131
+ * Judge whether this point is equal to another point, returning
132
+ * true or false.
133
+ * @param {Point} other the other point
134
+ * @return {boolean} whether the points are equal
135
+ */
136
+ equals(t) {
137
+ return this.x === t.x && this.y === t.y;
138
+ },
139
+ /**
140
+ * Calculate the distance from this point to another point
141
+ * @param {Point} p the other point
142
+ * @return {number} distance
143
+ */
144
+ dist(t) {
145
+ return Math.sqrt(this.distSqr(t));
146
+ },
147
+ /**
148
+ * Calculate the distance from this point to another point,
149
+ * without the square root step. Useful if you're comparing
150
+ * relative distances.
151
+ * @param {Point} p the other point
152
+ * @return {number} distance
153
+ */
154
+ distSqr(t) {
155
+ const e = t.x - this.x, n = t.y - this.y;
156
+ return e * e + n * n;
157
+ },
158
+ /**
159
+ * Get the angle from the 0, 0 coordinate to this point, in radians
160
+ * coordinates.
161
+ * @return {number} angle
162
+ */
163
+ angle() {
164
+ return Math.atan2(this.y, this.x);
165
+ },
166
+ /**
167
+ * Get the angle from this point to another point, in radians
168
+ * @param {Point} b the other point
169
+ * @return {number} angle
170
+ */
171
+ angleTo(t) {
172
+ return Math.atan2(this.y - t.y, this.x - t.x);
173
+ },
174
+ /**
175
+ * Get the angle between this point and another point, in radians
176
+ * @param {Point} b the other point
177
+ * @return {number} angle
178
+ */
179
+ angleWith(t) {
180
+ return this.angleWithSep(t.x, t.y);
181
+ },
182
+ /**
183
+ * Find the angle of the two vectors, solving the formula for
184
+ * the cross product a x b = |a||b|sin(θ) for θ.
185
+ * @param {number} x the x-coordinate
186
+ * @param {number} y the y-coordinate
187
+ * @return {number} the angle in radians
188
+ */
189
+ angleWithSep(t, e) {
190
+ return Math.atan2(
191
+ this.x * e - this.y * t,
192
+ this.x * t + this.y * e
193
+ );
194
+ },
195
+ /** @param {[number, number, number, number]} m */
196
+ _matMult(t) {
197
+ const e = t[0] * this.x + t[1] * this.y, n = t[2] * this.x + t[3] * this.y;
198
+ return this.x = e, this.y = n, this;
199
+ },
200
+ /** @param {Point} p */
201
+ _add(t) {
202
+ return this.x += t.x, this.y += t.y, this;
203
+ },
204
+ /** @param {Point} p */
205
+ _sub(t) {
206
+ return this.x -= t.x, this.y -= t.y, this;
207
+ },
208
+ /** @param {number} k */
209
+ _mult(t) {
210
+ return this.x *= t, this.y *= t, this;
211
+ },
212
+ /** @param {number} k */
213
+ _div(t) {
214
+ return this.x /= t, this.y /= t, this;
215
+ },
216
+ /** @param {Point} p */
217
+ _multByPoint(t) {
218
+ return this.x *= t.x, this.y *= t.y, this;
219
+ },
220
+ /** @param {Point} p */
221
+ _divByPoint(t) {
222
+ return this.x /= t.x, this.y /= t.y, this;
223
+ },
224
+ _unit() {
225
+ return this._div(this.mag()), this;
226
+ },
227
+ _perp() {
228
+ const t = this.y;
229
+ return this.y = this.x, this.x = -t, this;
230
+ },
231
+ /** @param {number} angle */
232
+ _rotate(t) {
233
+ const e = Math.cos(t), n = Math.sin(t), i = e * this.x - n * this.y, s = n * this.x + e * this.y;
234
+ return this.x = i, this.y = s, this;
235
+ },
236
+ /**
237
+ * @param {number} angle
238
+ * @param {Point} p
239
+ */
240
+ _rotateAround(t, e) {
241
+ const n = Math.cos(t), i = Math.sin(t), s = e.x + n * (this.x - e.x) - i * (this.y - e.y), r = e.y + i * (this.x - e.x) + n * (this.y - e.y);
242
+ return this.x = s, this.y = r, this;
243
+ },
244
+ _round() {
245
+ return this.x = Math.round(this.x), this.y = Math.round(this.y), this;
246
+ },
247
+ constructor: y
248
+ };
249
+ y.convert = function(t) {
250
+ if (t instanceof y)
251
+ return (
252
+ /** @type {Point} */
253
+ t
254
+ );
255
+ if (Array.isArray(t))
256
+ return new y(+t[0], +t[1]);
257
+ if (t.x !== void 0 && t.y !== void 0)
258
+ return new y(+t.x, +t.y);
259
+ throw new Error("Expected [x, y] or {x, y} point format");
260
+ };
261
+ class _ {
262
+ /**
263
+ * @param {Pbf} pbf
264
+ * @param {number} end
265
+ * @param {number} extent
266
+ * @param {string[]} keys
267
+ * @param {(number | string | boolean)[]} values
268
+ */
269
+ constructor(e, n, i, s, r) {
270
+ for (this.properties = /* @__PURE__ */ Object.create(null), this.extent = i, this.type = 0, this.id = void 0, this._pbf = e, this._geometry = -1, this._keys = s, this._values = r; e.pos < n; ) {
271
+ const o = e.readVarint();
272
+ if (o === 8) this.id = e.readVarint();
273
+ else if (o === 18) {
274
+ const h = e.readVarint() + e.pos;
275
+ for (; e.pos < h; ) {
276
+ const u = s[e.readVarint()], l = r[e.readVarint()];
277
+ this.properties[u] = l;
278
+ }
279
+ } else o === 24 ? this.type = /** @type {0 | 1 | 2 | 3} */
280
+ e.readVarint() : (o === 34 && (this._geometry = e.pos), e.skip(o));
281
+ }
282
+ }
283
+ loadGeometry() {
284
+ if (this._geometry < 0) throw new Error("feature has no geometry");
285
+ const e = this._pbf;
286
+ e.pos = this._geometry;
287
+ const n = e.readVarint() + e.pos, i = [];
288
+ let s, r = 1, o = 0, h = 0, u = 0;
289
+ for (; e.pos < n; ) {
290
+ if (o <= 0) {
291
+ const l = e.readVarint();
292
+ if (r = l & 7, o = l >> 3, o === 0) continue;
293
+ }
294
+ if (o--, r === 1)
295
+ h += e.readSVarint(), u += e.readSVarint(), s && i.push(s), s = [new y(h, u)];
296
+ else if (r === 2)
297
+ h += e.readSVarint(), u += e.readSVarint(), s && s.push(new y(h, u));
298
+ else if (r === 7)
299
+ s && s.push(s[0].clone());
300
+ else
301
+ throw new Error(`unknown command ${r}`);
302
+ }
303
+ return s && i.push(s), i;
304
+ }
305
+ bbox() {
306
+ if (this._geometry < 0) throw new Error("feature has no geometry");
307
+ const e = this._pbf;
308
+ e.pos = this._geometry;
309
+ const n = e.readVarint() + e.pos;
310
+ let i = 1, s = 0, r = 0, o = 0, h = 1 / 0, u = -1 / 0, l = 1 / 0, c = -1 / 0;
311
+ for (; e.pos < n; ) {
312
+ if (s <= 0) {
313
+ const x = e.readVarint();
314
+ if (i = x & 7, s = x >> 3, s === 0) continue;
315
+ }
316
+ if (s--, i === 1 || i === 2)
317
+ r += e.readSVarint(), o += e.readSVarint(), r < h && (h = r), r > u && (u = r), o < l && (l = o), o > c && (c = o);
318
+ else if (i !== 7)
319
+ throw new Error(`unknown command ${i}`);
320
+ }
321
+ return [h, l, u, c];
322
+ }
323
+ /**
324
+ * @param {number} x
325
+ * @param {number} y
326
+ * @param {number} z
327
+ * @return {Feature}
328
+ */
329
+ toGeoJSON(e, n, i) {
330
+ const s = this.extent * Math.pow(2, i), r = this.extent * e, o = this.extent * n, h = this.loadGeometry();
331
+ function u(a) {
332
+ return [
333
+ (a.x + r) * 360 / s - 180,
334
+ 360 / Math.PI * Math.atan(Math.exp((1 - (a.y + o) * 2 / s) * Math.PI)) - 90
335
+ ];
336
+ }
337
+ function l(a) {
338
+ return a.map(u);
339
+ }
340
+ let c;
341
+ if (this.type === 1) {
342
+ const a = [];
343
+ for (const f of h)
344
+ a.push(f[0]);
345
+ const d = l(a);
346
+ c = a.length === 1 ? { type: "Point", coordinates: d[0] } : { type: "MultiPoint", coordinates: d };
347
+ } else if (this.type === 2) {
348
+ const a = h.map(l);
349
+ c = a.length === 1 ? { type: "LineString", coordinates: a[0] } : { type: "MultiLineString", coordinates: a };
350
+ } else if (this.type === 3) {
351
+ const a = g(h), d = [];
352
+ for (const f of a)
353
+ d.push(f.map(l));
354
+ c = d.length === 1 ? { type: "Polygon", coordinates: d[0] } : { type: "MultiPolygon", coordinates: d };
355
+ } else
356
+ throw new Error("unknown feature type");
357
+ const x = {
358
+ type: "Feature",
359
+ geometry: c,
360
+ properties: this.properties
361
+ };
362
+ return this.id != null && (x.id = this.id), x;
363
+ }
364
+ }
365
+ _.types = ["Unknown", "Point", "LineString", "Polygon"];
366
+ function g(t) {
367
+ const e = t.length;
368
+ if (e <= 1) return [t];
369
+ const n = [];
370
+ let i, s;
371
+ for (let r = 0; r < e; r++) {
372
+ const o = w(t[r]);
373
+ o !== 0 && (s === void 0 && (s = o < 0), s === o < 0 ? (i && n.push(i), i = [t[r]]) : i && i.push(t[r]));
374
+ }
375
+ return i && n.push(i), n;
376
+ }
377
+ function w(t) {
378
+ let e = 0;
379
+ for (let n = 0, i = t.length, s = i - 1, r, o; n < i; s = n++)
380
+ r = t[n], o = t[s], e += (o.x - r.x) * (r.y + o.y);
381
+ return e;
382
+ }
383
+ class p {
384
+ /**
385
+ * @param {Pbf} pbf
386
+ * @param {number} [end]
387
+ */
388
+ constructor(e, n) {
389
+ for (this.version = 1, this.name = "", this.extent = 4096, this.length = 0, this._pbf = e, this._keys = [], this._values = [], this._features = [], n === void 0 && (n = e.length); e.pos < n; ) {
390
+ const i = e.readVarint();
391
+ i === 10 ? this.name = e.readString() : i === 18 ? (this._features.push(e.pos), e.skip(i)) : i === 26 ? this._keys.push(e.readString()) : i === 34 ? this._values.push(m(e)) : i === 40 ? this.extent = e.readVarint() : i === 120 ? this.version = e.readVarint() : e.skip(i);
392
+ }
393
+ this.length = this._features.length;
394
+ }
395
+ /** return feature `i` from this layer as a `VectorTileFeature`
396
+ * @param {number} i
397
+ */
398
+ feature(e) {
399
+ if (e < 0 || e >= this._features.length) throw new Error("feature index out of bounds");
400
+ this._pbf.pos = this._features[e];
401
+ const n = this._pbf.readVarint() + this._pbf.pos;
402
+ return new _(this._pbf, n, this.extent, this._keys, this._values);
403
+ }
404
+ }
405
+ function m(t) {
406
+ let e = null;
407
+ const n = t.readVarint() + t.pos;
408
+ for (; t.pos < n; ) {
409
+ const i = t.readVarint();
410
+ e = i === 10 ? t.readString() : i === 21 ? t.readFloat() : i === 25 ? t.readDouble() : i === 32 ? t.readVarint64() : i === 40 ? t.readVarint() : i === 48 ? t.readSVarint() : i === 56 ? t.readBoolean() : (t.skip(i), null);
411
+ }
412
+ if (e == null)
413
+ throw new Error("unknown feature value");
414
+ return e;
415
+ }
416
+ class V {
417
+ /**
418
+ * @param {Pbf} pbf
419
+ * @param {number} [end]
420
+ */
421
+ constructor(e, n = e.length) {
422
+ const i = /* @__PURE__ */ Object.create(null);
423
+ for (; e.pos < n; ) {
424
+ const s = e.readVarint();
425
+ if (s === 26) {
426
+ const r = new p(e, e.readVarint() + e.pos);
427
+ r.length && (i[r.name] = r);
428
+ } else e.skip(s);
429
+ }
430
+ this.layers = i;
431
+ }
432
+ }
433
+ export {
434
+ V as VectorTile,
435
+ _ as VectorTileFeature,
436
+ p as VectorTileLayer,
437
+ g as classifyRings
438
+ };