aviation-chart 0.1.19 → 0.1.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/aviation-chart.umd.js +2 -2
- package/dist/index.cjs +2 -2
- package/dist/index.js +376 -359
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -6,8 +6,8 @@ function Mt(o, a) {
|
|
|
6
6
|
else if (!Rt)
|
|
7
7
|
Rt = a;
|
|
8
8
|
else {
|
|
9
|
-
var u = "var sharedChunk = {}; (" + vt + ")(sharedChunk); (" + Rt + ")(sharedChunk);",
|
|
10
|
-
vt(
|
|
9
|
+
var u = "var sharedChunk = {}; (" + vt + ")(sharedChunk); (" + Rt + ")(sharedChunk);", w = {};
|
|
10
|
+
vt(w), Ot = a(w), typeof window < "u" && (Ot.workerUrl = window.URL.createObjectURL(
|
|
11
11
|
new Blob([u], { type: "text/javascript" })
|
|
12
12
|
));
|
|
13
13
|
}
|
|
@@ -132,79 +132,79 @@ Mt(["exports"], function(o) {
|
|
|
132
132
|
],
|
|
133
133
|
[]
|
|
134
134
|
];
|
|
135
|
-
function
|
|
135
|
+
function w(t, e, i, n) {
|
|
136
136
|
return e = e * 2 + n[0], i = i * 2 + n[1], e + i * (t + 1) * 2;
|
|
137
137
|
}
|
|
138
|
-
function
|
|
138
|
+
function x(t, e, i) {
|
|
139
139
|
return (e - t) / (i - t);
|
|
140
140
|
}
|
|
141
|
-
function
|
|
141
|
+
function g(t, e, i = 4096, n = 1) {
|
|
142
142
|
if (!t)
|
|
143
143
|
return {};
|
|
144
144
|
const r = i / (e.width - 1);
|
|
145
|
-
let l, s, c, m,
|
|
146
|
-
const
|
|
147
|
-
function
|
|
148
|
-
|
|
145
|
+
let l, s, c, m, f, h;
|
|
146
|
+
const d = {}, _ = /* @__PURE__ */ new Map(), F = /* @__PURE__ */ new Map();
|
|
147
|
+
function P(O, I, R) {
|
|
148
|
+
O[0] === 0 ? R(r * (h - 1), r * (f - x(c, I, l))) : O[0] === 2 ? R(r * h, r * (f - x(m, I, s))) : O[1] === 0 ? R(r * (h - x(s, I, l)), r * (f - 1)) : R(r * (h - x(m, I, c)), r * f);
|
|
149
149
|
}
|
|
150
|
-
for (
|
|
151
|
-
s = e.get(0,
|
|
152
|
-
let
|
|
153
|
-
for (
|
|
154
|
-
l = s, c = m, s = e.get(
|
|
155
|
-
const
|
|
156
|
-
if (
|
|
150
|
+
for (f = 1 - n; f < e.height + n; f++) {
|
|
151
|
+
s = e.get(0, f - 1), m = e.get(0, f);
|
|
152
|
+
let O = Math.min(s, m), I = Math.max(s, m);
|
|
153
|
+
for (h = 1 - n; h < e.width + n; h++) {
|
|
154
|
+
l = s, c = m, s = e.get(h, f - 1), m = e.get(h, f);
|
|
155
|
+
const R = O, V = I;
|
|
156
|
+
if (O = Math.min(s, m), I = Math.max(s, m), isNaN(l) || isNaN(s) || isNaN(m) || isNaN(c))
|
|
157
157
|
continue;
|
|
158
|
-
const
|
|
159
|
-
for (let
|
|
160
|
-
const At = l >
|
|
158
|
+
const dt = Math.min(R, O), pt = Math.max(V, I), X = Math.ceil(dt / t) * t, ot = Math.floor(pt / t) * t;
|
|
159
|
+
for (let C = X; C <= ot; C += t) {
|
|
160
|
+
const At = l > C, q = s > C, nt = c > C, _t = m > C;
|
|
161
161
|
for (const bt of u[(At ? 8 : 0) | (q ? 4 : 0) | (_t ? 2 : 0) | (nt ? 1 : 0)]) {
|
|
162
|
-
let Y =
|
|
163
|
-
Y ||
|
|
164
|
-
let lt =
|
|
165
|
-
lt ||
|
|
166
|
-
const kt = bt[0], zt = bt[1], yt =
|
|
162
|
+
let Y = _.get(C);
|
|
163
|
+
Y || _.set(C, Y = /* @__PURE__ */ new Map());
|
|
164
|
+
let lt = F.get(C);
|
|
165
|
+
lt || F.set(C, lt = /* @__PURE__ */ new Map());
|
|
166
|
+
const kt = bt[0], zt = bt[1], yt = w(e.width, h, f, kt), st = w(e.width, h, f, zt);
|
|
167
167
|
let L, Tt;
|
|
168
168
|
if (L = lt.get(yt))
|
|
169
169
|
if (lt.delete(yt), Tt = Y.get(st))
|
|
170
170
|
if (Y.delete(st), L === Tt) {
|
|
171
|
-
if (
|
|
172
|
-
let rt =
|
|
173
|
-
rt || (
|
|
171
|
+
if (P(zt, C, L.append), !L.isEmpty()) {
|
|
172
|
+
let rt = d[C];
|
|
173
|
+
rt || (d[C] = rt = []), rt.push(L.lineString());
|
|
174
174
|
}
|
|
175
175
|
} else
|
|
176
176
|
L.appendFragment(Tt), lt.set(L.end = Tt.end, L);
|
|
177
177
|
else
|
|
178
|
-
|
|
178
|
+
P(zt, C, L.append), lt.set(L.end = st, L);
|
|
179
179
|
else if (L = Y.get(st))
|
|
180
|
-
Y.delete(st),
|
|
180
|
+
Y.delete(st), P(kt, C, L.prepend), Y.set(L.start = yt, L);
|
|
181
181
|
else {
|
|
182
182
|
const rt = new a(yt, st);
|
|
183
|
-
|
|
183
|
+
P(kt, C, rt.append), P(zt, C, rt.append), Y.set(yt, rt), lt.set(st, rt);
|
|
184
184
|
}
|
|
185
185
|
}
|
|
186
186
|
}
|
|
187
187
|
}
|
|
188
188
|
}
|
|
189
|
-
for (const [
|
|
190
|
-
let
|
|
189
|
+
for (const [O, I] of _.entries()) {
|
|
190
|
+
let R = null;
|
|
191
191
|
for (const V of I.values())
|
|
192
|
-
V.isEmpty() || (
|
|
192
|
+
V.isEmpty() || (R == null && (R = d[O] || (d[O] = [])), R.push(V.lineString()));
|
|
193
193
|
}
|
|
194
|
-
return
|
|
194
|
+
return d;
|
|
195
195
|
}
|
|
196
|
-
function
|
|
196
|
+
function b(t) {
|
|
197
197
|
const e = Object.entries(t);
|
|
198
198
|
return e.sort(([i], [n]) => i < n ? -1 : i > n ? 1 : 0), e;
|
|
199
199
|
}
|
|
200
|
-
function
|
|
201
|
-
return
|
|
200
|
+
function S(t) {
|
|
201
|
+
return b(t).map(([e, i]) => [e, ...typeof i == "number" ? [i] : i].join("*")).join("~");
|
|
202
202
|
}
|
|
203
|
-
function
|
|
203
|
+
function M(t) {
|
|
204
204
|
return Object.fromEntries(t.split("~").map((e) => e.split("*").map(Number)).map(([e, ...i]) => [e, i]));
|
|
205
205
|
}
|
|
206
|
-
function
|
|
207
|
-
return
|
|
206
|
+
function k({ thresholds: t, ...e }) {
|
|
207
|
+
return b({ thresholds: S(t), ...e }).map(([i, n]) => `${encodeURIComponent(i)}=${encodeURIComponent(n)}`).join("&");
|
|
208
208
|
}
|
|
209
209
|
function z(t) {
|
|
210
210
|
return Object.fromEntries(t.replace(/^.*\?/, "").split("&").map((e) => {
|
|
@@ -212,7 +212,7 @@ Mt(["exports"], function(o) {
|
|
|
212
212
|
let r = i[1];
|
|
213
213
|
switch (n) {
|
|
214
214
|
case "thresholds":
|
|
215
|
-
r =
|
|
215
|
+
r = M(r);
|
|
216
216
|
break;
|
|
217
217
|
case "extent":
|
|
218
218
|
case "multiplier":
|
|
@@ -223,10 +223,10 @@ Mt(["exports"], function(o) {
|
|
|
223
223
|
return [n, r];
|
|
224
224
|
}));
|
|
225
225
|
}
|
|
226
|
-
function
|
|
227
|
-
return
|
|
226
|
+
function p(t) {
|
|
227
|
+
return b(t).map(([e, i]) => `${encodeURIComponent(e)}=${encodeURIComponent(i)}`).join(",");
|
|
228
228
|
}
|
|
229
|
-
function
|
|
229
|
+
function y(t, e) {
|
|
230
230
|
const { thresholds: i, ...n } = t;
|
|
231
231
|
let r = [], l = -1 / 0;
|
|
232
232
|
return Object.entries(i).forEach(([s, c]) => {
|
|
@@ -237,19 +237,19 @@ Mt(["exports"], function(o) {
|
|
|
237
237
|
...n
|
|
238
238
|
};
|
|
239
239
|
}
|
|
240
|
-
function
|
|
240
|
+
function T(t) {
|
|
241
241
|
const e = new ArrayBuffer(t.byteLength);
|
|
242
242
|
return new Uint8Array(e).set(new Uint8Array(t)), e;
|
|
243
243
|
}
|
|
244
|
-
function
|
|
244
|
+
function D(t, e) {
|
|
245
245
|
return t.then(({ data: i, ...n }) => {
|
|
246
246
|
let r = i;
|
|
247
247
|
return e && (r = new Float32Array(i.length), r.set(i)), { ...n, data: r, transferrables: [r.buffer] };
|
|
248
248
|
});
|
|
249
249
|
}
|
|
250
|
-
function
|
|
250
|
+
function A(t) {
|
|
251
251
|
return t.then(({ arrayBuffer: e }) => {
|
|
252
|
-
const i =
|
|
252
|
+
const i = T(e);
|
|
253
253
|
return {
|
|
254
254
|
arrayBuffer: i,
|
|
255
255
|
transferrables: [i]
|
|
@@ -303,27 +303,27 @@ Mt(["exports"], function(o) {
|
|
|
303
303
|
var e;
|
|
304
304
|
return !!(!((e = t == null ? void 0 : t.signal) === null || e === void 0) && e.aborted);
|
|
305
305
|
}
|
|
306
|
-
let
|
|
306
|
+
let E = 0;
|
|
307
307
|
class Z {
|
|
308
308
|
constructor(e = 100) {
|
|
309
309
|
this.size = () => this.items.size, this.get = (i, n, r) => {
|
|
310
310
|
let l = this.items.get(i);
|
|
311
311
|
if (l)
|
|
312
|
-
l.lastUsed = ++
|
|
312
|
+
l.lastUsed = ++E, l.waiting++;
|
|
313
313
|
else {
|
|
314
|
-
const
|
|
314
|
+
const f = new AbortController(), h = n(i, f);
|
|
315
315
|
l = {
|
|
316
|
-
abortController:
|
|
317
|
-
item:
|
|
318
|
-
lastUsed: ++
|
|
316
|
+
abortController: f,
|
|
317
|
+
item: h,
|
|
318
|
+
lastUsed: ++E,
|
|
319
319
|
waiting: 1
|
|
320
320
|
}, this.items.set(i, l), this.prune();
|
|
321
321
|
}
|
|
322
|
-
const s = this.items, c = l.item.then((
|
|
322
|
+
const s = this.items, c = l.item.then((f) => f, (f) => (s.delete(i), Promise.reject(f)));
|
|
323
323
|
let m = !1;
|
|
324
324
|
return U(r, () => {
|
|
325
|
-
var
|
|
326
|
-
l && l.abortController && !m && (m = !0, --l.waiting <= 0 && ((
|
|
325
|
+
var f;
|
|
326
|
+
l && l.abortController && !m && (m = !0, --l.waiting <= 0 && ((f = l.abortController) === null || f === void 0 || f.abort(), s.delete(i)));
|
|
327
327
|
}), c;
|
|
328
328
|
}, this.clear = () => this.items.clear(), this.maxSize = e, this.items = /* @__PURE__ */ new Map();
|
|
329
329
|
}
|
|
@@ -355,13 +355,13 @@ Mt(["exports"], function(o) {
|
|
|
355
355
|
try {
|
|
356
356
|
if (!(((n = c == null ? void 0 : c.format) === null || n === void 0 ? void 0 : n.startsWith("BGR")) || ((r = c == null ? void 0 : c.format) === null || r === void 0 ? void 0 : r.startsWith("RGB"))))
|
|
357
357
|
throw new Error(`Unrecognized format: ${c == null ? void 0 : c.format}`);
|
|
358
|
-
const
|
|
359
|
-
if (await c.copyTo(
|
|
360
|
-
for (let
|
|
361
|
-
const
|
|
362
|
-
|
|
358
|
+
const f = (l = c == null ? void 0 : c.format) === null || l === void 0 ? void 0 : l.startsWith("BGR"), h = c.allocationSize(), d = new Uint8ClampedArray(h);
|
|
359
|
+
if (await c.copyTo(d), f)
|
|
360
|
+
for (let _ = 0; _ < d.length; _ += 4) {
|
|
361
|
+
const F = d[_];
|
|
362
|
+
d[_] = d[_ + 2], d[_ + 2] = F;
|
|
363
363
|
}
|
|
364
|
-
return Dt(s.width, s.height, e,
|
|
364
|
+
return Dt(s.width, s.height, e, d);
|
|
365
365
|
} catch {
|
|
366
366
|
return B(i) ? null : W(s, e);
|
|
367
367
|
} finally {
|
|
@@ -414,30 +414,30 @@ Mt(["exports"], function(o) {
|
|
|
414
414
|
this.split = (r, l, s) => {
|
|
415
415
|
if (r === 0)
|
|
416
416
|
return this;
|
|
417
|
-
const c = 1 << r, m = l * this.width / c,
|
|
418
|
-
return new $(this.width / c, this.height / c, (
|
|
417
|
+
const c = 1 << r, m = l * this.width / c, f = s * this.height / c;
|
|
418
|
+
return new $(this.width / c, this.height / c, (h, d) => this.get(h + m, d + f));
|
|
419
419
|
}, this.subsamplePixelCenters = (r) => {
|
|
420
|
-
const l = (m,
|
|
420
|
+
const l = (m, f, h) => isNaN(m) ? f : isNaN(f) ? m : m + (f - m) * h;
|
|
421
421
|
if (r <= 1)
|
|
422
422
|
return this;
|
|
423
|
-
const s = 0.5 - 1 / (2 * r), c = (m,
|
|
424
|
-
const
|
|
425
|
-
return l(pt, X,
|
|
423
|
+
const s = 0.5 - 1 / (2 * r), c = (m, f) => {
|
|
424
|
+
const h = m / r - s, d = f / r - s, _ = Math.floor(h), F = Math.floor(d), P = this.get(_, F), O = this.get(_ + 1, F), I = this.get(_, F + 1), R = this.get(_ + 1, F + 1), V = h - _, dt = d - F, pt = l(P, O, V), X = l(I, R, V);
|
|
425
|
+
return l(pt, X, dt);
|
|
426
426
|
};
|
|
427
427
|
return new $(this.width * r, this.height * r, c);
|
|
428
428
|
}, this.averagePixelCentersToGrid = (r = 1) => new $(this.width + 1, this.height + 1, (l, s) => {
|
|
429
|
-
let c = 0, m = 0,
|
|
430
|
-
for (let
|
|
431
|
-
for (let
|
|
432
|
-
isNaN(
|
|
429
|
+
let c = 0, m = 0, f = 0;
|
|
430
|
+
for (let h = l - r; h < l + r; h++)
|
|
431
|
+
for (let d = s - r; d < s + r; d++)
|
|
432
|
+
isNaN(f = this.get(h, d)) || (m++, c += f);
|
|
433
433
|
return m === 0 ? NaN : c / m;
|
|
434
434
|
}), this.scaleElevation = (r) => r === 1 ? this : new $(this.width, this.height, (l, s) => this.get(l, s) * r), this.materialize = (r = 2) => {
|
|
435
435
|
const l = this.width + 2 * r, s = new Float32Array(l * (this.height + 2 * r));
|
|
436
436
|
let c = 0;
|
|
437
437
|
for (let m = -r; m < this.height + r; m++)
|
|
438
|
-
for (let
|
|
439
|
-
s[c++] = this.get(
|
|
440
|
-
return new $(this.width, this.height, (m,
|
|
438
|
+
for (let f = -r; f < this.width + r; f++)
|
|
439
|
+
s[c++] = this.get(f, m);
|
|
440
|
+
return new $(this.width, this.height, (m, f) => s[(f + r) * l + m + r]);
|
|
441
441
|
}, this.get = n, this.width = e, this.height = i;
|
|
442
442
|
}
|
|
443
443
|
/** Construct a height tile from raw DEM pixel values */
|
|
@@ -474,34 +474,34 @@ Mt(["exports"], function(o) {
|
|
|
474
474
|
var Et = {};
|
|
475
475
|
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
|
476
476
|
Et.read = function(t, e, i, n, r) {
|
|
477
|
-
var l, s, c = r * 8 - n - 1, m = (1 << c) - 1,
|
|
478
|
-
for (
|
|
477
|
+
var l, s, c = r * 8 - n - 1, m = (1 << c) - 1, f = m >> 1, h = -7, d = i ? r - 1 : 0, _ = i ? -1 : 1, F = t[e + d];
|
|
478
|
+
for (d += _, l = F & (1 << -h) - 1, F >>= -h, h += c; h > 0; l = l * 256 + t[e + d], d += _, h -= 8)
|
|
479
479
|
;
|
|
480
|
-
for (s = l & (1 << -
|
|
480
|
+
for (s = l & (1 << -h) - 1, l >>= -h, h += n; h > 0; s = s * 256 + t[e + d], d += _, h -= 8)
|
|
481
481
|
;
|
|
482
482
|
if (l === 0)
|
|
483
|
-
l = 1 -
|
|
483
|
+
l = 1 - f;
|
|
484
484
|
else {
|
|
485
485
|
if (l === m)
|
|
486
|
-
return s ? NaN : (
|
|
487
|
-
s = s + Math.pow(2, n), l = l -
|
|
486
|
+
return s ? NaN : (F ? -1 : 1) * (1 / 0);
|
|
487
|
+
s = s + Math.pow(2, n), l = l - f;
|
|
488
488
|
}
|
|
489
|
-
return (
|
|
489
|
+
return (F ? -1 : 1) * s * Math.pow(2, l - n);
|
|
490
490
|
}, Et.write = function(t, e, i, n, r, l) {
|
|
491
|
-
var s, c, m,
|
|
492
|
-
for (e = Math.abs(e), isNaN(e) || e === 1 / 0 ? (c = isNaN(e) ? 1 : 0, s =
|
|
491
|
+
var s, c, m, f = l * 8 - r - 1, h = (1 << f) - 1, d = h >> 1, _ = r === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0, F = n ? 0 : l - 1, P = n ? 1 : -1, O = e < 0 || e === 0 && 1 / e < 0 ? 1 : 0;
|
|
492
|
+
for (e = Math.abs(e), isNaN(e) || e === 1 / 0 ? (c = isNaN(e) ? 1 : 0, s = h) : (s = Math.floor(Math.log(e) / Math.LN2), e * (m = Math.pow(2, -s)) < 1 && (s--, m *= 2), s + d >= 1 ? e += _ / m : e += _ * Math.pow(2, 1 - d), e * m >= 2 && (s++, m /= 2), s + d >= h ? (c = 0, s = h) : s + d >= 1 ? (c = (e * m - 1) * Math.pow(2, r), s = s + d) : (c = e * Math.pow(2, d - 1) * Math.pow(2, r), s = 0)); r >= 8; t[i + F] = c & 255, F += P, c /= 256, r -= 8)
|
|
493
493
|
;
|
|
494
|
-
for (s = s << r | c,
|
|
494
|
+
for (s = s << r | c, f += r; f > 0; t[i + F] = s & 255, F += P, s /= 256, f -= 8)
|
|
495
495
|
;
|
|
496
|
-
t[i +
|
|
496
|
+
t[i + F - P] |= O * 128;
|
|
497
497
|
};
|
|
498
|
-
var ne =
|
|
499
|
-
function
|
|
498
|
+
var ne = v, gt = Et;
|
|
499
|
+
function v(t) {
|
|
500
500
|
this.buf = ArrayBuffer.isView && ArrayBuffer.isView(t) ? t : new Uint8Array(t || 0), this.pos = 0, this.type = 0, this.length = this.buf.length;
|
|
501
501
|
}
|
|
502
|
-
|
|
502
|
+
v.Varint = 0, v.Fixed64 = 1, v.Bytes = 2, v.Fixed32 = 5;
|
|
503
503
|
var Ft = 65536 * 65536, Gt = 1 / Ft, le = 12, Bt = typeof TextDecoder > "u" ? null : new TextDecoder("utf8");
|
|
504
|
-
|
|
504
|
+
v.prototype = {
|
|
505
505
|
destroy: function() {
|
|
506
506
|
this.buf = null;
|
|
507
507
|
},
|
|
@@ -565,66 +565,66 @@ Mt(["exports"], function(o) {
|
|
|
565
565
|
},
|
|
566
566
|
// verbose for performance reasons; doesn't affect gzipped size
|
|
567
567
|
readPackedVarint: function(t, e) {
|
|
568
|
-
if (this.type !==
|
|
568
|
+
if (this.type !== v.Bytes) return t.push(this.readVarint(e));
|
|
569
569
|
var i = J(this);
|
|
570
570
|
for (t = t || []; this.pos < i; ) t.push(this.readVarint(e));
|
|
571
571
|
return t;
|
|
572
572
|
},
|
|
573
573
|
readPackedSVarint: function(t) {
|
|
574
|
-
if (this.type !==
|
|
574
|
+
if (this.type !== v.Bytes) return t.push(this.readSVarint());
|
|
575
575
|
var e = J(this);
|
|
576
576
|
for (t = t || []; this.pos < e; ) t.push(this.readSVarint());
|
|
577
577
|
return t;
|
|
578
578
|
},
|
|
579
579
|
readPackedBoolean: function(t) {
|
|
580
|
-
if (this.type !==
|
|
580
|
+
if (this.type !== v.Bytes) return t.push(this.readBoolean());
|
|
581
581
|
var e = J(this);
|
|
582
582
|
for (t = t || []; this.pos < e; ) t.push(this.readBoolean());
|
|
583
583
|
return t;
|
|
584
584
|
},
|
|
585
585
|
readPackedFloat: function(t) {
|
|
586
|
-
if (this.type !==
|
|
586
|
+
if (this.type !== v.Bytes) return t.push(this.readFloat());
|
|
587
587
|
var e = J(this);
|
|
588
588
|
for (t = t || []; this.pos < e; ) t.push(this.readFloat());
|
|
589
589
|
return t;
|
|
590
590
|
},
|
|
591
591
|
readPackedDouble: function(t) {
|
|
592
|
-
if (this.type !==
|
|
592
|
+
if (this.type !== v.Bytes) return t.push(this.readDouble());
|
|
593
593
|
var e = J(this);
|
|
594
594
|
for (t = t || []; this.pos < e; ) t.push(this.readDouble());
|
|
595
595
|
return t;
|
|
596
596
|
},
|
|
597
597
|
readPackedFixed32: function(t) {
|
|
598
|
-
if (this.type !==
|
|
598
|
+
if (this.type !== v.Bytes) return t.push(this.readFixed32());
|
|
599
599
|
var e = J(this);
|
|
600
600
|
for (t = t || []; this.pos < e; ) t.push(this.readFixed32());
|
|
601
601
|
return t;
|
|
602
602
|
},
|
|
603
603
|
readPackedSFixed32: function(t) {
|
|
604
|
-
if (this.type !==
|
|
604
|
+
if (this.type !== v.Bytes) return t.push(this.readSFixed32());
|
|
605
605
|
var e = J(this);
|
|
606
606
|
for (t = t || []; this.pos < e; ) t.push(this.readSFixed32());
|
|
607
607
|
return t;
|
|
608
608
|
},
|
|
609
609
|
readPackedFixed64: function(t) {
|
|
610
|
-
if (this.type !==
|
|
610
|
+
if (this.type !== v.Bytes) return t.push(this.readFixed64());
|
|
611
611
|
var e = J(this);
|
|
612
612
|
for (t = t || []; this.pos < e; ) t.push(this.readFixed64());
|
|
613
613
|
return t;
|
|
614
614
|
},
|
|
615
615
|
readPackedSFixed64: function(t) {
|
|
616
|
-
if (this.type !==
|
|
616
|
+
if (this.type !== v.Bytes) return t.push(this.readSFixed64());
|
|
617
617
|
var e = J(this);
|
|
618
618
|
for (t = t || []; this.pos < e; ) t.push(this.readSFixed64());
|
|
619
619
|
return t;
|
|
620
620
|
},
|
|
621
621
|
skip: function(t) {
|
|
622
622
|
var e = t & 7;
|
|
623
|
-
if (e ===
|
|
623
|
+
if (e === v.Varint) for (; this.buf[this.pos++] > 127; )
|
|
624
624
|
;
|
|
625
|
-
else if (e ===
|
|
626
|
-
else if (e ===
|
|
627
|
-
else if (e ===
|
|
625
|
+
else if (e === v.Bytes) this.pos = this.readVarint() + this.pos;
|
|
626
|
+
else if (e === v.Fixed32) this.pos += 4;
|
|
627
|
+
else if (e === v.Fixed64) this.pos += 8;
|
|
628
628
|
else throw new Error("Unimplemented type: " + e);
|
|
629
629
|
},
|
|
630
630
|
// === WRITING =================================================================
|
|
@@ -642,16 +642,16 @@ Mt(["exports"], function(o) {
|
|
|
642
642
|
return this.length = this.pos, this.pos = 0, this.buf.subarray(0, this.length);
|
|
643
643
|
},
|
|
644
644
|
writeFixed32: function(t) {
|
|
645
|
-
this.realloc(4),
|
|
645
|
+
this.realloc(4), ft(this.buf, t, this.pos), this.pos += 4;
|
|
646
646
|
},
|
|
647
647
|
writeSFixed32: function(t) {
|
|
648
|
-
this.realloc(4),
|
|
648
|
+
this.realloc(4), ft(this.buf, t, this.pos), this.pos += 4;
|
|
649
649
|
},
|
|
650
650
|
writeFixed64: function(t) {
|
|
651
|
-
this.realloc(8),
|
|
651
|
+
this.realloc(8), ft(this.buf, t & -1, this.pos), ft(this.buf, Math.floor(t * Gt), this.pos + 4), this.pos += 8;
|
|
652
652
|
},
|
|
653
653
|
writeSFixed64: function(t) {
|
|
654
|
-
this.realloc(8),
|
|
654
|
+
this.realloc(8), ft(this.buf, t & -1, this.pos), ft(this.buf, Math.floor(t * Gt), this.pos + 4), this.pos += 8;
|
|
655
655
|
},
|
|
656
656
|
writeVarint: function(t) {
|
|
657
657
|
if (t = +t || 0, t > 268435455 || t < 0) {
|
|
@@ -692,13 +692,13 @@ Mt(["exports"], function(o) {
|
|
|
692
692
|
n >= 128 && Xt(i, n, this), this.pos = i - 1, this.writeVarint(n), this.pos += n;
|
|
693
693
|
},
|
|
694
694
|
writeMessage: function(t, e, i) {
|
|
695
|
-
this.writeTag(t,
|
|
695
|
+
this.writeTag(t, v.Bytes), this.writeRawMessage(e, i);
|
|
696
696
|
},
|
|
697
697
|
writePackedVarint: function(t, e) {
|
|
698
|
-
e.length && this.writeMessage(t,
|
|
698
|
+
e.length && this.writeMessage(t, he, e);
|
|
699
699
|
},
|
|
700
700
|
writePackedSVarint: function(t, e) {
|
|
701
|
-
e.length && this.writeMessage(t,
|
|
701
|
+
e.length && this.writeMessage(t, de, e);
|
|
702
702
|
},
|
|
703
703
|
writePackedBoolean: function(t, e) {
|
|
704
704
|
e.length && this.writeMessage(t, ye, e);
|
|
@@ -722,34 +722,34 @@ Mt(["exports"], function(o) {
|
|
|
722
722
|
e.length && this.writeMessage(t, _e, e);
|
|
723
723
|
},
|
|
724
724
|
writeBytesField: function(t, e) {
|
|
725
|
-
this.writeTag(t,
|
|
725
|
+
this.writeTag(t, v.Bytes), this.writeBytes(e);
|
|
726
726
|
},
|
|
727
727
|
writeFixed32Field: function(t, e) {
|
|
728
|
-
this.writeTag(t,
|
|
728
|
+
this.writeTag(t, v.Fixed32), this.writeFixed32(e);
|
|
729
729
|
},
|
|
730
730
|
writeSFixed32Field: function(t, e) {
|
|
731
|
-
this.writeTag(t,
|
|
731
|
+
this.writeTag(t, v.Fixed32), this.writeSFixed32(e);
|
|
732
732
|
},
|
|
733
733
|
writeFixed64Field: function(t, e) {
|
|
734
|
-
this.writeTag(t,
|
|
734
|
+
this.writeTag(t, v.Fixed64), this.writeFixed64(e);
|
|
735
735
|
},
|
|
736
736
|
writeSFixed64Field: function(t, e) {
|
|
737
|
-
this.writeTag(t,
|
|
737
|
+
this.writeTag(t, v.Fixed64), this.writeSFixed64(e);
|
|
738
738
|
},
|
|
739
739
|
writeVarintField: function(t, e) {
|
|
740
|
-
this.writeTag(t,
|
|
740
|
+
this.writeTag(t, v.Varint), this.writeVarint(e);
|
|
741
741
|
},
|
|
742
742
|
writeSVarintField: function(t, e) {
|
|
743
|
-
this.writeTag(t,
|
|
743
|
+
this.writeTag(t, v.Varint), this.writeSVarint(e);
|
|
744
744
|
},
|
|
745
745
|
writeStringField: function(t, e) {
|
|
746
|
-
this.writeTag(t,
|
|
746
|
+
this.writeTag(t, v.Bytes), this.writeString(e);
|
|
747
747
|
},
|
|
748
748
|
writeFloatField: function(t, e) {
|
|
749
|
-
this.writeTag(t,
|
|
749
|
+
this.writeTag(t, v.Fixed32), this.writeFloat(e);
|
|
750
750
|
},
|
|
751
751
|
writeDoubleField: function(t, e) {
|
|
752
|
-
this.writeTag(t,
|
|
752
|
+
this.writeTag(t, v.Fixed64), this.writeDouble(e);
|
|
753
753
|
},
|
|
754
754
|
writeBooleanField: function(t, e) {
|
|
755
755
|
this.writeVarintField(t, !!e);
|
|
@@ -761,7 +761,7 @@ Mt(["exports"], function(o) {
|
|
|
761
761
|
throw new Error("Expected varint not more than 10 bytes");
|
|
762
762
|
}
|
|
763
763
|
function J(t) {
|
|
764
|
-
return t.type ===
|
|
764
|
+
return t.type === v.Bytes ? t.readVarint() + t.pos : t.pos + 1;
|
|
765
765
|
}
|
|
766
766
|
function mt(t, e, i) {
|
|
767
767
|
return i ? e * 4294967296 + (t >>> 0) : (e >>> 0) * 4294967296 + (t >>> 0);
|
|
@@ -770,12 +770,12 @@ Mt(["exports"], function(o) {
|
|
|
770
770
|
var i, n;
|
|
771
771
|
if (t >= 0 ? (i = t % 4294967296 | 0, n = t / 4294967296 | 0) : (i = ~(-t % 4294967296), n = ~(-t / 4294967296), i ^ 4294967295 ? i = i + 1 | 0 : (i = 0, n = n + 1 | 0)), t >= 18446744073709552e3 || t < -18446744073709552e3)
|
|
772
772
|
throw new Error("Given varint doesn't fit into 10 bytes");
|
|
773
|
-
e.realloc(10), me(i, n, e),
|
|
773
|
+
e.realloc(10), me(i, n, e), fe(n, e);
|
|
774
774
|
}
|
|
775
775
|
function me(t, e, i) {
|
|
776
776
|
i.buf[i.pos++] = t & 127 | 128, t >>>= 7, i.buf[i.pos++] = t & 127 | 128, t >>>= 7, i.buf[i.pos++] = t & 127 | 128, t >>>= 7, i.buf[i.pos++] = t & 127 | 128, t >>>= 7, i.buf[i.pos] = t & 127;
|
|
777
777
|
}
|
|
778
|
-
function
|
|
778
|
+
function fe(t, e) {
|
|
779
779
|
var i = (t & 7) << 4;
|
|
780
780
|
e.buf[e.pos++] |= i | ((t >>>= 3) ? 128 : 0), t && (e.buf[e.pos++] = t & 127 | ((t >>>= 7) ? 128 : 0), t && (e.buf[e.pos++] = t & 127 | ((t >>>= 7) ? 128 : 0), t && (e.buf[e.pos++] = t & 127 | ((t >>>= 7) ? 128 : 0), t && (e.buf[e.pos++] = t & 127 | ((t >>>= 7) ? 128 : 0), t && (e.buf[e.pos++] = t & 127)))));
|
|
781
781
|
}
|
|
@@ -784,10 +784,10 @@ Mt(["exports"], function(o) {
|
|
|
784
784
|
i.realloc(n);
|
|
785
785
|
for (var r = i.pos - 1; r >= t; r--) i.buf[r + n] = i.buf[r];
|
|
786
786
|
}
|
|
787
|
-
function
|
|
787
|
+
function he(t, e) {
|
|
788
788
|
for (var i = 0; i < t.length; i++) e.writeVarint(t[i]);
|
|
789
789
|
}
|
|
790
|
-
function
|
|
790
|
+
function de(t, e) {
|
|
791
791
|
for (var i = 0; i < t.length; i++) e.writeSVarint(t[i]);
|
|
792
792
|
}
|
|
793
793
|
function ue(t, e) {
|
|
@@ -814,7 +814,7 @@ Mt(["exports"], function(o) {
|
|
|
814
814
|
function wt(t, e) {
|
|
815
815
|
return (t[e] | t[e + 1] << 8 | t[e + 2] << 16) + t[e + 3] * 16777216;
|
|
816
816
|
}
|
|
817
|
-
function
|
|
817
|
+
function ft(t, e, i) {
|
|
818
818
|
t[i] = e, t[i + 1] = e >>> 8, t[i + 2] = e >>> 16, t[i + 3] = e >>> 24;
|
|
819
819
|
}
|
|
820
820
|
function Nt(t, e) {
|
|
@@ -824,8 +824,8 @@ Mt(["exports"], function(o) {
|
|
|
824
824
|
for (var n = "", r = e; r < i; ) {
|
|
825
825
|
var l = t[r], s = null, c = l > 239 ? 4 : l > 223 ? 3 : l > 191 ? 2 : 1;
|
|
826
826
|
if (r + c > i) break;
|
|
827
|
-
var m,
|
|
828
|
-
c === 1 ? l < 128 && (s = l) : c === 2 ? (m = t[r + 1], (m & 192) === 128 && (s = (l & 31) << 6 | m & 63, s <= 127 && (s = null))) : c === 3 ? (m = t[r + 1],
|
|
827
|
+
var m, f, h;
|
|
828
|
+
c === 1 ? l < 128 && (s = l) : c === 2 ? (m = t[r + 1], (m & 192) === 128 && (s = (l & 31) << 6 | m & 63, s <= 127 && (s = null))) : c === 3 ? (m = t[r + 1], f = t[r + 2], (m & 192) === 128 && (f & 192) === 128 && (s = (l & 15) << 12 | (m & 63) << 6 | f & 63, (s <= 2047 || s >= 55296 && s <= 57343) && (s = null))) : c === 4 && (m = t[r + 1], f = t[r + 2], h = t[r + 3], (m & 192) === 128 && (f & 192) === 128 && (h & 192) === 128 && (s = (l & 15) << 18 | (m & 63) << 12 | (f & 63) << 6 | h & 63, (s <= 65535 || s >= 1114112) && (s = null))), s === null ? (s = 65533, c = 1) : s > 65535 && (s -= 65536, n += String.fromCharCode(s >>> 10 & 1023 | 55296), s = 56320 | s & 1023), n += String.fromCharCode(s), r += c;
|
|
829
829
|
}
|
|
830
830
|
return n;
|
|
831
831
|
}
|
|
@@ -850,10 +850,10 @@ Mt(["exports"], function(o) {
|
|
|
850
850
|
}
|
|
851
851
|
return i;
|
|
852
852
|
}
|
|
853
|
-
var ve = /* @__PURE__ */ ae(ne),
|
|
853
|
+
var ve = /* @__PURE__ */ ae(ne), ht;
|
|
854
854
|
(function(t) {
|
|
855
855
|
t[t.UNKNOWN = 0] = "UNKNOWN", t[t.POINT = 1] = "POINT", t[t.LINESTRING = 2] = "LINESTRING", t[t.POLYGON = 3] = "POLYGON";
|
|
856
|
-
})(
|
|
856
|
+
})(ht || (ht = {}));
|
|
857
857
|
function De(t) {
|
|
858
858
|
const e = new ve();
|
|
859
859
|
for (const i in t.layers) {
|
|
@@ -891,15 +891,15 @@ Mt(["exports"], function(o) {
|
|
|
891
891
|
throw new Error();
|
|
892
892
|
const n = t.keys, r = t.values, l = t.keycache, s = t.valuecache;
|
|
893
893
|
for (const c in i.properties) {
|
|
894
|
-
let m = i.properties[c],
|
|
894
|
+
let m = i.properties[c], f = l[c];
|
|
895
895
|
if (m === null)
|
|
896
896
|
continue;
|
|
897
|
-
typeof
|
|
898
|
-
const
|
|
899
|
-
|
|
900
|
-
const
|
|
901
|
-
let
|
|
902
|
-
typeof
|
|
897
|
+
typeof f > "u" && (n.push(c), f = n.length - 1, l[c] = f), e.writeVarint(f);
|
|
898
|
+
const h = typeof m;
|
|
899
|
+
h !== "string" && h !== "boolean" && h !== "number" && (m = JSON.stringify(m));
|
|
900
|
+
const d = `${h}:${m}`;
|
|
901
|
+
let _ = s[d];
|
|
902
|
+
typeof _ > "u" && (r.push(m), _ = r.length - 1, s[d] = _), e.writeVarint(_);
|
|
903
903
|
}
|
|
904
904
|
}
|
|
905
905
|
function St(t, e) {
|
|
@@ -915,14 +915,14 @@ Mt(["exports"], function(o) {
|
|
|
915
915
|
let r = 0, l = 0;
|
|
916
916
|
for (const s of i) {
|
|
917
917
|
let c = 1;
|
|
918
|
-
n ===
|
|
919
|
-
const m = s.length / 2,
|
|
920
|
-
for (let
|
|
921
|
-
|
|
922
|
-
const
|
|
923
|
-
e.writeVarint(Vt(
|
|
918
|
+
n === ht.POINT && (c = s.length / 2), e.writeVarint(St(1, c));
|
|
919
|
+
const m = s.length / 2, f = n === ht.POLYGON ? m - 1 : m;
|
|
920
|
+
for (let h = 0; h < f; h++) {
|
|
921
|
+
h === 1 && n !== 1 && e.writeVarint(St(2, f - 1));
|
|
922
|
+
const d = s[h * 2] - r, _ = s[h * 2 + 1] - l;
|
|
923
|
+
e.writeVarint(Vt(d)), e.writeVarint(Vt(_)), r += d, l += _;
|
|
924
924
|
}
|
|
925
|
-
n ===
|
|
925
|
+
n === ht.POLYGON && e.writeVarint(St(7, 1));
|
|
926
926
|
}
|
|
927
927
|
}
|
|
928
928
|
function ke(t, e) {
|
|
@@ -932,75 +932,75 @@ Mt(["exports"], function(o) {
|
|
|
932
932
|
}
|
|
933
933
|
class Re {
|
|
934
934
|
constructor(e, i, n, r, l) {
|
|
935
|
-
this.loaded = Promise.resolve(), this.decodeImage = It, this.fetchAndParseTile = (s, c, m,
|
|
936
|
-
const
|
|
937
|
-
return
|
|
938
|
-
const
|
|
939
|
-
if (B(
|
|
935
|
+
this.loaded = Promise.resolve(), this.decodeImage = It, this.fetchAndParseTile = (s, c, m, f, h) => {
|
|
936
|
+
const d = this, _ = this.demUrlPattern.replace("{z}", s.toString()).replace("{x}", c.toString()).replace("{y}", m.toString());
|
|
937
|
+
return h == null || h.useTile(_), this.parsedCache.get(_, async (F, P) => {
|
|
938
|
+
const O = await d.fetchTile(s, c, m, P, h);
|
|
939
|
+
if (B(P))
|
|
940
940
|
throw new Error("canceled");
|
|
941
|
-
const I =
|
|
942
|
-
return
|
|
943
|
-
},
|
|
941
|
+
const I = d.decodeImage(O.data, d.encoding, P), R = h == null ? void 0 : h.marker("decode"), V = await I;
|
|
942
|
+
return R == null || R(), V;
|
|
943
|
+
}, f);
|
|
944
944
|
}, this.tileCache = new Z(i), this.parsedCache = new Z(i), this.contourCache = new Z(i), this.timeoutMs = l, this.demUrlPattern = e, this.encoding = n, this.maxzoom = r;
|
|
945
945
|
}
|
|
946
946
|
fetchTile(e, i, n, r, l) {
|
|
947
947
|
const s = this.demUrlPattern.replace("{z}", e.toString()).replace("{x}", i.toString()).replace("{y}", n.toString());
|
|
948
948
|
return l == null || l.useTile(s), this.tileCache.get(s, (c, m) => {
|
|
949
|
-
const
|
|
949
|
+
const f = {
|
|
950
950
|
signal: m.signal
|
|
951
951
|
};
|
|
952
952
|
l == null || l.fetchTile(s);
|
|
953
|
-
const
|
|
954
|
-
return G(this.timeoutMs, fetch(s,
|
|
955
|
-
if (
|
|
956
|
-
throw new Error(`Bad response: ${
|
|
953
|
+
const h = l == null ? void 0 : l.marker("fetch");
|
|
954
|
+
return G(this.timeoutMs, fetch(s, f).then(async (d) => {
|
|
955
|
+
if (h == null || h(), !d.ok)
|
|
956
|
+
throw new Error(`Bad response: ${d.status} for ${s}`);
|
|
957
957
|
return {
|
|
958
|
-
data: await
|
|
959
|
-
expires:
|
|
960
|
-
cacheControl:
|
|
958
|
+
data: await d.blob(),
|
|
959
|
+
expires: d.headers.get("expires") || void 0,
|
|
960
|
+
cacheControl: d.headers.get("cache-control") || void 0
|
|
961
961
|
};
|
|
962
962
|
}), m);
|
|
963
963
|
}, r);
|
|
964
964
|
}
|
|
965
965
|
async fetchDem(e, i, n, r, l, s) {
|
|
966
|
-
const c = Math.min(e - (r.overzoom || 0), this.maxzoom), m = e - c,
|
|
967
|
-
return $.fromRawDem(
|
|
966
|
+
const c = Math.min(e - (r.overzoom || 0), this.maxzoom), m = e - c, f = 1 << m, h = Math.floor(i / f), d = Math.floor(n / f), _ = await this.fetchAndParseTile(c, h, d, l, s);
|
|
967
|
+
return $.fromRawDem(_).split(m, i % f, n % f);
|
|
968
968
|
}
|
|
969
969
|
fetchContourTile(e, i, n, r, l, s) {
|
|
970
|
-
const { levels: c, multiplier: m = 1, buffer:
|
|
970
|
+
const { levels: c, multiplier: m = 1, buffer: f = 1, extent: h = 4096, contourLayer: d = "contours", elevationKey: _ = "ele", levelKey: F = "level", subsampleBelow: P = 100 } = r;
|
|
971
971
|
if (!c || c.length === 0)
|
|
972
972
|
return Promise.resolve({ arrayBuffer: new ArrayBuffer(0) });
|
|
973
|
-
const
|
|
974
|
-
return this.contourCache.get(
|
|
975
|
-
const V = 1 << e,
|
|
973
|
+
const O = [e, i, n, p(r)].join("/");
|
|
974
|
+
return this.contourCache.get(O, async (I, R) => {
|
|
975
|
+
const V = 1 << e, dt = [];
|
|
976
976
|
for (let q = n - 1; q <= n + 1; q++)
|
|
977
977
|
for (let nt = i - 1; nt <= i + 1; nt++)
|
|
978
|
-
|
|
979
|
-
const pt = await Promise.all(
|
|
978
|
+
dt.push(q < 0 || q >= V ? void 0 : this.fetchDem(e, (nt + V) % V, q, r, R, s));
|
|
979
|
+
const pt = await Promise.all(dt);
|
|
980
980
|
let X = $.combineNeighbors(pt);
|
|
981
|
-
if (!X || B(
|
|
981
|
+
if (!X || B(R))
|
|
982
982
|
return { arrayBuffer: new Uint8Array().buffer };
|
|
983
983
|
const ot = s == null ? void 0 : s.marker("isoline");
|
|
984
|
-
if (X.width >=
|
|
984
|
+
if (X.width >= P)
|
|
985
985
|
X = X.materialize(2);
|
|
986
986
|
else
|
|
987
|
-
for (; X.width <
|
|
987
|
+
for (; X.width < P; )
|
|
988
988
|
X = X.subsamplePixelCenters(2).materialize(2);
|
|
989
989
|
X = X.averagePixelCentersToGrid().scaleElevation(m).materialize(1);
|
|
990
|
-
const
|
|
990
|
+
const C = g(c[0], X, h, f);
|
|
991
991
|
ot == null || ot();
|
|
992
992
|
const At = De({
|
|
993
|
-
extent:
|
|
993
|
+
extent: h,
|
|
994
994
|
layers: {
|
|
995
|
-
[
|
|
996
|
-
features: Object.entries(
|
|
995
|
+
[d]: {
|
|
996
|
+
features: Object.entries(C).map(([q, nt]) => {
|
|
997
997
|
const _t = Number(q);
|
|
998
998
|
return {
|
|
999
|
-
type:
|
|
999
|
+
type: ht.LINESTRING,
|
|
1000
1000
|
geometry: nt,
|
|
1001
1001
|
properties: {
|
|
1002
|
-
[
|
|
1003
|
-
[
|
|
1002
|
+
[_]: _t,
|
|
1003
|
+
[F]: Math.max(...c.map((bt, Y) => _t % bt === 0 ? Y : 0))
|
|
1004
1004
|
}
|
|
1005
1005
|
};
|
|
1006
1006
|
})
|
|
@@ -1030,8 +1030,8 @@ Mt(["exports"], function(o) {
|
|
|
1030
1030
|
this.marks = {}, this.urls = [], this.fetched = [], this.resources = [], this.tilesFetched = 0, this.timeOrigin = Ce, this.finish = (i) => {
|
|
1031
1031
|
this.markFinish();
|
|
1032
1032
|
const n = (m) => {
|
|
1033
|
-
const
|
|
1034
|
-
return Number.isFinite(
|
|
1033
|
+
const f = this.marks[m] || [], h = Math.max(...f.map((_) => Math.max(..._))), d = Math.min(...f.map((_) => Math.min(..._)));
|
|
1034
|
+
return Number.isFinite(h) ? h - d : void 0;
|
|
1035
1035
|
}, r = n("main") || 0, l = n("fetch"), s = n("decode"), c = n("isoline");
|
|
1036
1036
|
return {
|
|
1037
1037
|
url: i,
|
|
@@ -1063,7 +1063,7 @@ Mt(["exports"], function(o) {
|
|
|
1063
1063
|
const r = i.origin - this.timeOrigin;
|
|
1064
1064
|
for (const l in i.marks) {
|
|
1065
1065
|
const s = l;
|
|
1066
|
-
(this.marks[s] || (this.marks[s] = [])).push(...((n = i.marks[s]) === null || n === void 0 ? void 0 : n.map((m) => m.map((
|
|
1066
|
+
(this.marks[s] || (this.marks[s] = [])).push(...((n = i.marks[s]) === null || n === void 0 ? void 0 : n.map((m) => m.map((f) => f + r))) || []);
|
|
1067
1067
|
}
|
|
1068
1068
|
this.resources.push(...i.resources.map((l) => Ie(l, r)));
|
|
1069
1069
|
}, this.markFinish = this.marker(e);
|
|
@@ -1088,27 +1088,27 @@ Mt(["exports"], function(o) {
|
|
|
1088
1088
|
const s = this.callbacks[l.id];
|
|
1089
1089
|
delete this.callbacks[l.id], s && s(l.error ? new Error(l.error) : void 0, l.response, l.timings);
|
|
1090
1090
|
} else if (l.type === "request") {
|
|
1091
|
-
const s = new Wt("worker"), c = i[l.name], m = new AbortController(),
|
|
1091
|
+
const s = new Wt("worker"), c = i[l.name], m = new AbortController(), f = c.apply(c, [
|
|
1092
1092
|
...l.args,
|
|
1093
1093
|
m,
|
|
1094
1094
|
s
|
|
1095
|
-
]),
|
|
1096
|
-
if (l.id &&
|
|
1095
|
+
]), h = `${l.name}_${l.id}`;
|
|
1096
|
+
if (l.id && f) {
|
|
1097
1097
|
this.cancels[l.id] = m;
|
|
1098
1098
|
try {
|
|
1099
|
-
const
|
|
1099
|
+
const d = await f, _ = d == null ? void 0 : d.transferrables;
|
|
1100
1100
|
this.postMessage({
|
|
1101
1101
|
id: l.id,
|
|
1102
1102
|
type: "response",
|
|
1103
|
-
response:
|
|
1104
|
-
timings: s.finish(
|
|
1105
|
-
},
|
|
1106
|
-
} catch (
|
|
1103
|
+
response: d,
|
|
1104
|
+
timings: s.finish(h)
|
|
1105
|
+
}, _);
|
|
1106
|
+
} catch (d) {
|
|
1107
1107
|
this.postMessage({
|
|
1108
1108
|
id: l.id,
|
|
1109
1109
|
type: "response",
|
|
1110
|
-
error: (
|
|
1111
|
-
timings: s.finish(
|
|
1110
|
+
error: (d == null ? void 0 : d.toString()) || "error",
|
|
1111
|
+
timings: s.finish(h)
|
|
1112
1112
|
});
|
|
1113
1113
|
}
|
|
1114
1114
|
delete this.cancels[l.id];
|
|
@@ -1121,9 +1121,9 @@ Mt(["exports"], function(o) {
|
|
|
1121
1121
|
}
|
|
1122
1122
|
/** Invokes a method by name with a set of arguments in the remote context. */
|
|
1123
1123
|
send(e, i, n, r, ...l) {
|
|
1124
|
-
const s = ++Le, c = new Promise((m,
|
|
1125
|
-
this.postMessage({ id: s, type: "request", name: e, args: l }, i), this.callbacks[s] = (
|
|
1126
|
-
r == null || r.addAll(
|
|
1124
|
+
const s = ++Le, c = new Promise((m, f) => {
|
|
1125
|
+
this.postMessage({ id: s, type: "request", name: e, args: l }, i), this.callbacks[s] = (h, d, _) => {
|
|
1126
|
+
r == null || r.addAll(_), h ? f(h) : m(d);
|
|
1127
1127
|
};
|
|
1128
1128
|
});
|
|
1129
1129
|
return U(n, () => {
|
|
@@ -1131,129 +1131,129 @@ Mt(["exports"], function(o) {
|
|
|
1131
1131
|
}), G(this.timeoutMs, c, n);
|
|
1132
1132
|
}
|
|
1133
1133
|
}
|
|
1134
|
-
o.A = Ge, o.H = $, o.L = Re, o.T = Wt, o.a = z, o.b =
|
|
1134
|
+
o.A = Ge, o.H = $, o.L = Re, o.T = Wt, o.a = z, o.b = g, o.c = Dt, o.d = It, o.e = k, o.f = A, o.g = y, o.p = D;
|
|
1135
1135
|
});
|
|
1136
1136
|
Mt(["./shared"], function(o) {
|
|
1137
|
-
const a = (
|
|
1137
|
+
const a = (x) => Promise.reject(new Error(`No manager registered for ${x}`));
|
|
1138
1138
|
class u {
|
|
1139
1139
|
constructor() {
|
|
1140
|
-
this.managers = {}, this.init = (
|
|
1141
|
-
var
|
|
1142
|
-
return ((
|
|
1143
|
-
}, this.fetchAndParseTile = (
|
|
1144
|
-
var
|
|
1145
|
-
return o.p(((
|
|
1146
|
-
}, this.fetchContourTile = (
|
|
1147
|
-
var
|
|
1148
|
-
return o.f(((
|
|
1140
|
+
this.managers = {}, this.init = (g, b) => (this.managers[g.managerId] = new o.L(g.demUrlPattern, g.cacheSize, g.encoding, g.maxzoom, g.timeoutMs), Promise.resolve()), this.fetchTile = (g, b, S, M, k, z) => {
|
|
1141
|
+
var p;
|
|
1142
|
+
return ((p = this.managers[g]) === null || p === void 0 ? void 0 : p.fetchTile(b, S, M, k, z)) || a(g);
|
|
1143
|
+
}, this.fetchAndParseTile = (g, b, S, M, k, z) => {
|
|
1144
|
+
var p;
|
|
1145
|
+
return o.p(((p = this.managers[g]) === null || p === void 0 ? void 0 : p.fetchAndParseTile(b, S, M, k, z)) || a(g), !0);
|
|
1146
|
+
}, this.fetchContourTile = (g, b, S, M, k, z, p) => {
|
|
1147
|
+
var y;
|
|
1148
|
+
return o.f(((y = this.managers[g]) === null || y === void 0 ? void 0 : y.fetchContourTile(b, S, M, k, z, p)) || a(g));
|
|
1149
1149
|
};
|
|
1150
1150
|
}
|
|
1151
1151
|
}
|
|
1152
|
-
const
|
|
1153
|
-
|
|
1152
|
+
const w = typeof self < "u" ? self : typeof window < "u" ? window : global;
|
|
1153
|
+
w.actor = new o.A(w, new u());
|
|
1154
1154
|
});
|
|
1155
1155
|
Mt(["./shared"], function(o) {
|
|
1156
1156
|
const a = { workerUrl: "" };
|
|
1157
|
-
let u,
|
|
1158
|
-
class
|
|
1157
|
+
let u, w = 0;
|
|
1158
|
+
class x {
|
|
1159
1159
|
constructor() {
|
|
1160
|
-
this.decodeImage = (
|
|
1160
|
+
this.decodeImage = (y, T, D) => o.p(o.d(y, T, D), !1);
|
|
1161
1161
|
}
|
|
1162
1162
|
}
|
|
1163
|
-
function
|
|
1163
|
+
function g() {
|
|
1164
1164
|
if (!u) {
|
|
1165
|
-
const
|
|
1166
|
-
u = new o.A(
|
|
1165
|
+
const p = new Worker(a.workerUrl), y = new x();
|
|
1166
|
+
u = new o.A(p, y);
|
|
1167
1167
|
}
|
|
1168
1168
|
return u;
|
|
1169
1169
|
}
|
|
1170
|
-
class
|
|
1171
|
-
constructor(
|
|
1172
|
-
this.fetchTile = (H, G, U, B,
|
|
1173
|
-
const tt = this.managerId = ++
|
|
1174
|
-
this.actor = ct ||
|
|
1175
|
-
cacheSize:
|
|
1176
|
-
demUrlPattern:
|
|
1177
|
-
encoding:
|
|
1178
|
-
maxzoom:
|
|
1170
|
+
class b {
|
|
1171
|
+
constructor(y, T, D, A, j, ct) {
|
|
1172
|
+
this.fetchTile = (H, G, U, B, E) => this.actor.send("fetchTile", [], B, E, this.managerId, H, G, U), this.fetchAndParseTile = (H, G, U, B, E) => this.actor.send("fetchAndParseTile", [], B, E, this.managerId, H, G, U), this.fetchContourTile = (H, G, U, B, E, Z) => this.actor.send("fetchContourTile", [], E, Z, this.managerId, H, G, U, B);
|
|
1173
|
+
const tt = this.managerId = ++w;
|
|
1174
|
+
this.actor = ct || g(), this.loaded = this.actor.send("init", [], new AbortController(), void 0, {
|
|
1175
|
+
cacheSize: T,
|
|
1176
|
+
demUrlPattern: y,
|
|
1177
|
+
encoding: D,
|
|
1178
|
+
maxzoom: A,
|
|
1179
1179
|
managerId: tt,
|
|
1180
1180
|
timeoutMs: j
|
|
1181
1181
|
});
|
|
1182
1182
|
}
|
|
1183
1183
|
}
|
|
1184
1184
|
Blob.prototype.arrayBuffer || (Blob.prototype.arrayBuffer = function() {
|
|
1185
|
-
return new Promise((
|
|
1186
|
-
const
|
|
1187
|
-
|
|
1185
|
+
return new Promise((y, T) => {
|
|
1186
|
+
const D = new FileReader();
|
|
1187
|
+
D.onload = (A) => {
|
|
1188
1188
|
var j;
|
|
1189
|
-
return
|
|
1190
|
-
},
|
|
1189
|
+
return y((j = A.target) === null || j === void 0 ? void 0 : j.result);
|
|
1190
|
+
}, D.onerror = T, D.readAsArrayBuffer(this);
|
|
1191
1191
|
});
|
|
1192
1192
|
});
|
|
1193
|
-
const
|
|
1194
|
-
if (
|
|
1195
|
-
return
|
|
1193
|
+
const S = (p) => (y, T) => {
|
|
1194
|
+
if (T instanceof AbortController)
|
|
1195
|
+
return p(y, T);
|
|
1196
1196
|
{
|
|
1197
|
-
const
|
|
1198
|
-
return
|
|
1197
|
+
const D = new AbortController();
|
|
1198
|
+
return p(y, D).then((A) => T(void 0, A.data, A.cacheControl, A.expires), (A) => T(A)), { cancel: () => D.abort() };
|
|
1199
1199
|
}
|
|
1200
|
-
},
|
|
1201
|
-
class
|
|
1202
|
-
constructor({ url:
|
|
1203
|
-
this.timingCallbacks = [], this.onTiming = (
|
|
1204
|
-
this.timingCallbacks.push(
|
|
1205
|
-
}, this.setupMaplibre = (
|
|
1206
|
-
|
|
1207
|
-
}, this.sharedDemProtocolV4 = async (
|
|
1208
|
-
const [K, et, N] = this.parseUrl(
|
|
1200
|
+
}, M = /* @__PURE__ */ new Set();
|
|
1201
|
+
class k {
|
|
1202
|
+
constructor({ url: y, cacheSize: T = 100, id: D = "dem", encoding: A = "terrarium", maxzoom: j = 12, worker: ct = !0, timeoutMs: tt = 1e4, actor: H }) {
|
|
1203
|
+
this.timingCallbacks = [], this.onTiming = (E) => {
|
|
1204
|
+
this.timingCallbacks.push(E);
|
|
1205
|
+
}, this.setupMaplibre = (E) => {
|
|
1206
|
+
E.addProtocol(this.sharedDemProtocolId, this.sharedDemProtocol), E.addProtocol(this.contourProtocolId, this.contourProtocol);
|
|
1207
|
+
}, this.sharedDemProtocolV4 = async (E, Z) => {
|
|
1208
|
+
const [K, et, N] = this.parseUrl(E.url), it = new o.T("main");
|
|
1209
1209
|
let at;
|
|
1210
1210
|
try {
|
|
1211
1211
|
const W = await this.manager.fetchTile(K, et, N, Z, it);
|
|
1212
|
-
return at = it.finish(
|
|
1212
|
+
return at = it.finish(E.url), {
|
|
1213
1213
|
data: await W.data.arrayBuffer(),
|
|
1214
1214
|
cacheControl: W.cacheControl,
|
|
1215
1215
|
expires: W.expires
|
|
1216
1216
|
};
|
|
1217
1217
|
} catch (W) {
|
|
1218
|
-
throw at = it.error(
|
|
1218
|
+
throw at = it.error(E.url), W;
|
|
1219
1219
|
} finally {
|
|
1220
1220
|
this.timingCallbacks.forEach((W) => W(at));
|
|
1221
1221
|
}
|
|
1222
|
-
}, this.contourProtocolV4 = async (
|
|
1222
|
+
}, this.contourProtocolV4 = async (E, Z) => {
|
|
1223
1223
|
const K = new o.T("main");
|
|
1224
1224
|
let et;
|
|
1225
1225
|
try {
|
|
1226
|
-
const [N, it, at] = this.parseUrl(
|
|
1227
|
-
return et = K.finish(
|
|
1226
|
+
const [N, it, at] = this.parseUrl(E.url), W = o.a(E.url), xt = await this.manager.fetchContourTile(N, it, at, o.g(W, N), Z, K);
|
|
1227
|
+
return et = K.finish(E.url), { data: xt.arrayBuffer };
|
|
1228
1228
|
} catch (N) {
|
|
1229
|
-
throw et = K.error(
|
|
1229
|
+
throw et = K.error(E.url), N;
|
|
1230
1230
|
} finally {
|
|
1231
1231
|
this.timingCallbacks.forEach((N) => N(et));
|
|
1232
1232
|
}
|
|
1233
|
-
}, this.contourProtocol =
|
|
1234
|
-
let G =
|
|
1235
|
-
for (;
|
|
1236
|
-
G =
|
|
1237
|
-
|
|
1238
|
-
const B = ct ?
|
|
1239
|
-
this.manager = new B(
|
|
1233
|
+
}, this.contourProtocol = S(this.contourProtocolV4), this.sharedDemProtocol = S(this.sharedDemProtocolV4), this.contourProtocolUrl = (E) => `${this.contourProtocolUrlBase}?${o.e(E)}`;
|
|
1234
|
+
let G = D, U = 1;
|
|
1235
|
+
for (; M.has(G); )
|
|
1236
|
+
G = D + U++;
|
|
1237
|
+
M.add(G), this.sharedDemProtocolId = `${G}-shared`, this.contourProtocolId = `${G}-contour`, this.sharedDemProtocolUrl = `${this.sharedDemProtocolId}://{z}/{x}/{y}`, this.contourProtocolUrlBase = `${this.contourProtocolId}://{z}/{x}/{y}`;
|
|
1238
|
+
const B = ct ? b : o.L;
|
|
1239
|
+
this.manager = new B(y, T, A, j, tt, H);
|
|
1240
1240
|
}
|
|
1241
|
-
getDemTile(
|
|
1242
|
-
return this.manager.fetchAndParseTile(
|
|
1241
|
+
getDemTile(y, T, D, A) {
|
|
1242
|
+
return this.manager.fetchAndParseTile(y, T, D, A || new AbortController());
|
|
1243
1243
|
}
|
|
1244
|
-
parseUrl(
|
|
1245
|
-
const [,
|
|
1246
|
-
return [Number(
|
|
1244
|
+
parseUrl(y) {
|
|
1245
|
+
const [, T, D, A] = /\/\/(\d+)\/(\d+)\/(\d+)/.exec(y) || [];
|
|
1246
|
+
return [Number(T), Number(D), Number(A)];
|
|
1247
1247
|
}
|
|
1248
1248
|
}
|
|
1249
1249
|
return {
|
|
1250
1250
|
generateIsolines: o.b,
|
|
1251
|
-
DemSource:
|
|
1251
|
+
DemSource: k,
|
|
1252
1252
|
HeightTile: o.H,
|
|
1253
1253
|
LocalDemManager: o.L,
|
|
1254
1254
|
decodeParsedImage: o.c,
|
|
1255
|
-
set workerUrl(
|
|
1256
|
-
a.workerUrl =
|
|
1255
|
+
set workerUrl(p) {
|
|
1256
|
+
a.workerUrl = p;
|
|
1257
1257
|
},
|
|
1258
1258
|
get workerUrl() {
|
|
1259
1259
|
return a.workerUrl;
|
|
@@ -1266,16 +1266,16 @@ function Xe(o) {
|
|
|
1266
1266
|
}
|
|
1267
1267
|
function Ne(o) {
|
|
1268
1268
|
if (o == null) return Xe;
|
|
1269
|
-
var a, u,
|
|
1270
|
-
return function(
|
|
1271
|
-
|
|
1272
|
-
var
|
|
1273
|
-
for (
|
|
1274
|
-
return
|
|
1269
|
+
var a, u, w = o.scale[0], x = o.scale[1], g = o.translate[0], b = o.translate[1];
|
|
1270
|
+
return function(S, M) {
|
|
1271
|
+
M || (a = u = 0);
|
|
1272
|
+
var k = 2, z = S.length, p = new Array(z);
|
|
1273
|
+
for (p[0] = (a += S[0]) * w + g, p[1] = (u += S[1]) * x + b; k < z; ) p[k] = S[k], ++k;
|
|
1274
|
+
return p;
|
|
1275
1275
|
};
|
|
1276
1276
|
}
|
|
1277
1277
|
function Ve(o, a) {
|
|
1278
|
-
for (var u,
|
|
1278
|
+
for (var u, w = o.length, x = w - a; x < --w; ) u = o[x], o[x++] = o[w], o[w] = u;
|
|
1279
1279
|
}
|
|
1280
1280
|
function $t(o, a) {
|
|
1281
1281
|
return typeof a == "string" && (a = o.objects[a]), a.type === "GeometryCollection" ? { type: "FeatureCollection", features: a.geometries.map(function(u) {
|
|
@@ -1283,60 +1283,60 @@ function $t(o, a) {
|
|
|
1283
1283
|
}) } : Kt(o, a);
|
|
1284
1284
|
}
|
|
1285
1285
|
function Kt(o, a) {
|
|
1286
|
-
var u = a.id,
|
|
1287
|
-
return u == null &&
|
|
1286
|
+
var u = a.id, w = a.bbox, x = a.properties == null ? {} : a.properties, g = Ue(o, a);
|
|
1287
|
+
return u == null && w == null ? { type: "Feature", properties: x, geometry: g } : w == null ? { type: "Feature", id: u, properties: x, geometry: g } : { type: "Feature", id: u, bbox: w, properties: x, geometry: g };
|
|
1288
1288
|
}
|
|
1289
1289
|
function Ue(o, a) {
|
|
1290
|
-
var u = Ne(o.transform),
|
|
1291
|
-
function
|
|
1292
|
-
|
|
1293
|
-
for (var
|
|
1294
|
-
|
|
1295
|
-
z < 0 && Ve(
|
|
1296
|
-
}
|
|
1297
|
-
function
|
|
1290
|
+
var u = Ne(o.transform), w = o.arcs;
|
|
1291
|
+
function x(z, p) {
|
|
1292
|
+
p.length && p.pop();
|
|
1293
|
+
for (var y = w[z < 0 ? ~z : z], T = 0, D = y.length; T < D; ++T)
|
|
1294
|
+
p.push(u(y[T], T));
|
|
1295
|
+
z < 0 && Ve(p, D);
|
|
1296
|
+
}
|
|
1297
|
+
function g(z) {
|
|
1298
1298
|
return u(z);
|
|
1299
1299
|
}
|
|
1300
|
-
function
|
|
1301
|
-
for (var
|
|
1302
|
-
return
|
|
1300
|
+
function b(z) {
|
|
1301
|
+
for (var p = [], y = 0, T = z.length; y < T; ++y) x(z[y], p);
|
|
1302
|
+
return p.length < 2 && p.push(p[0]), p;
|
|
1303
1303
|
}
|
|
1304
|
-
function
|
|
1305
|
-
for (var
|
|
1306
|
-
return
|
|
1304
|
+
function S(z) {
|
|
1305
|
+
for (var p = b(z); p.length < 4; ) p.push(p[0]);
|
|
1306
|
+
return p;
|
|
1307
1307
|
}
|
|
1308
|
-
function
|
|
1309
|
-
return z.map(
|
|
1308
|
+
function M(z) {
|
|
1309
|
+
return z.map(S);
|
|
1310
1310
|
}
|
|
1311
|
-
function
|
|
1312
|
-
var
|
|
1313
|
-
switch (
|
|
1311
|
+
function k(z) {
|
|
1312
|
+
var p = z.type, y;
|
|
1313
|
+
switch (p) {
|
|
1314
1314
|
case "GeometryCollection":
|
|
1315
|
-
return { type:
|
|
1315
|
+
return { type: p, geometries: z.geometries.map(k) };
|
|
1316
1316
|
case "Point":
|
|
1317
|
-
|
|
1317
|
+
y = g(z.coordinates);
|
|
1318
1318
|
break;
|
|
1319
1319
|
case "MultiPoint":
|
|
1320
|
-
|
|
1320
|
+
y = z.coordinates.map(g);
|
|
1321
1321
|
break;
|
|
1322
1322
|
case "LineString":
|
|
1323
|
-
|
|
1323
|
+
y = b(z.arcs);
|
|
1324
1324
|
break;
|
|
1325
1325
|
case "MultiLineString":
|
|
1326
|
-
|
|
1326
|
+
y = z.arcs.map(b);
|
|
1327
1327
|
break;
|
|
1328
1328
|
case "Polygon":
|
|
1329
|
-
|
|
1329
|
+
y = M(z.arcs);
|
|
1330
1330
|
break;
|
|
1331
1331
|
case "MultiPolygon":
|
|
1332
|
-
|
|
1332
|
+
y = z.arcs.map(M);
|
|
1333
1333
|
break;
|
|
1334
1334
|
default:
|
|
1335
1335
|
return null;
|
|
1336
1336
|
}
|
|
1337
|
-
return { type:
|
|
1337
|
+
return { type: p, coordinates: y };
|
|
1338
1338
|
}
|
|
1339
|
-
return
|
|
1339
|
+
return k(a);
|
|
1340
1340
|
}
|
|
1341
1341
|
const We = {
|
|
1342
1342
|
airspaceStroke: "#AAB7B8",
|
|
@@ -3240,11 +3240,11 @@ const oi = {
|
|
|
3240
3240
|
async function Qt(o) {
|
|
3241
3241
|
const a = await fetch(o);
|
|
3242
3242
|
if (!a.ok) throw new Error(`fetch ${o} → ${a.status}`);
|
|
3243
|
-
const u = a.headers.get("Content-Encoding"),
|
|
3244
|
-
if (u === "gzip" ||
|
|
3243
|
+
const u = a.headers.get("Content-Encoding"), w = a.headers.get("Content-Type") || "";
|
|
3244
|
+
if (u === "gzip" || w.includes("json"))
|
|
3245
3245
|
return a.json();
|
|
3246
|
-
const
|
|
3247
|
-
return new Response(
|
|
3246
|
+
const x = a.body.pipeThrough(new DecompressionStream("gzip"));
|
|
3247
|
+
return new Response(x).json();
|
|
3248
3248
|
}
|
|
3249
3249
|
class ri {
|
|
3250
3250
|
/**
|
|
@@ -3262,16 +3262,16 @@ class ri {
|
|
|
3262
3262
|
constructor(a = {}) {
|
|
3263
3263
|
const {
|
|
3264
3264
|
container: u,
|
|
3265
|
-
theme:
|
|
3266
|
-
apiUrl:
|
|
3267
|
-
spriteUrl:
|
|
3268
|
-
period:
|
|
3269
|
-
layers:
|
|
3270
|
-
center:
|
|
3271
|
-
zoom:
|
|
3265
|
+
theme: w = "light",
|
|
3266
|
+
apiUrl: x = ti,
|
|
3267
|
+
spriteUrl: g,
|
|
3268
|
+
period: b = null,
|
|
3269
|
+
layers: S = {},
|
|
3270
|
+
center: M = [104, 36],
|
|
3271
|
+
zoom: k = 4,
|
|
3272
3272
|
terrainUrl: z = null
|
|
3273
3273
|
} = a;
|
|
3274
|
-
this._apiUrl =
|
|
3274
|
+
return this._apiUrl = x.replace(/\/$/, ""), this._spriteUrl = (g ?? x).replace(/\/$/, ""), this._terrainUrl = z ?? `${this._apiUrl}/api/terrain/{z}/{x}/{y}.png`, this._theme = w, this._period = b, this._center = M, this._zoom = k, this._ready = !1, this._layerVisible = {
|
|
3275
3275
|
// aviation groups — all visible by default
|
|
3276
3276
|
adiz: !0,
|
|
3277
3277
|
fir: !0,
|
|
@@ -3289,8 +3289,25 @@ class ri {
|
|
|
3289
3289
|
terrain: !1,
|
|
3290
3290
|
contour: !1,
|
|
3291
3291
|
// user overrides
|
|
3292
|
-
...
|
|
3293
|
-
}, this._initMap(u)
|
|
3292
|
+
...S
|
|
3293
|
+
}, this._initMap(u), new Proxy(this, {
|
|
3294
|
+
get(p, y) {
|
|
3295
|
+
if (typeof y == "symbol" || Reflect.has(p, y)) {
|
|
3296
|
+
const A = p[y];
|
|
3297
|
+
return typeof A == "function" ? A.bind(p) : A;
|
|
3298
|
+
}
|
|
3299
|
+
const T = p._map;
|
|
3300
|
+
if (!T) return;
|
|
3301
|
+
const D = T[y];
|
|
3302
|
+
return typeof D == "function" ? D.bind(T) : D;
|
|
3303
|
+
},
|
|
3304
|
+
set(p, y, T) {
|
|
3305
|
+
return typeof y == "symbol" || Reflect.has(p, y) || !p._map ? p[y] = T : y in p._map ? p._map[y] = T : p[y] = T, !0;
|
|
3306
|
+
},
|
|
3307
|
+
has(p, y) {
|
|
3308
|
+
return Reflect.has(p, y) || (p._map ? y in p._map : !1);
|
|
3309
|
+
}
|
|
3310
|
+
});
|
|
3294
3311
|
}
|
|
3295
3312
|
// ── Map initialization ────────────────────────────────────────────────────
|
|
3296
3313
|
_initMap(a) {
|
|
@@ -3329,8 +3346,8 @@ class ri {
|
|
|
3329
3346
|
async _initSources() {
|
|
3330
3347
|
if (!this._period)
|
|
3331
3348
|
try {
|
|
3332
|
-
const
|
|
3333
|
-
this._period =
|
|
3349
|
+
const w = await (await fetch(`${this._apiUrl}/api/periods`)).json();
|
|
3350
|
+
this._period = w[w.length - 1];
|
|
3334
3351
|
} catch (u) {
|
|
3335
3352
|
console.warn("[AviationChart] fetchPeriods failed:", u), this._period = "latest";
|
|
3336
3353
|
}
|
|
@@ -3375,15 +3392,15 @@ class ri {
|
|
|
3375
3392
|
}), await this._loadBaseData();
|
|
3376
3393
|
}
|
|
3377
3394
|
async _loadBaseData() {
|
|
3378
|
-
var a, u,
|
|
3395
|
+
var a, u, w, x;
|
|
3379
3396
|
try {
|
|
3380
|
-
const [
|
|
3397
|
+
const [g, b] = await Promise.all([
|
|
3381
3398
|
Qt(`${this._apiUrl}/topjson/land.topojson.gz`),
|
|
3382
3399
|
Qt(`${this._apiUrl}/topjson/boundary.topojson.gz`)
|
|
3383
3400
|
]);
|
|
3384
|
-
(a =
|
|
3385
|
-
} catch (
|
|
3386
|
-
console.error("[AviationChart] loadBaseData failed:",
|
|
3401
|
+
(a = g == null ? void 0 : g.objects) != null && a.land ? (u = this._map.getSource("land")) == null || u.setData($t(g, g.objects.land)) : console.warn("[AviationChart] land topojson missing objects.land"), (w = b == null ? void 0 : b.objects) != null && w.boundary ? (x = this._map.getSource("boundary")) == null || x.setData($t(b, b.objects.boundary)) : console.warn("[AviationChart] boundary topojson missing objects.boundary");
|
|
3402
|
+
} catch (g) {
|
|
3403
|
+
console.error("[AviationChart] loadBaseData failed:", g);
|
|
3387
3404
|
}
|
|
3388
3405
|
}
|
|
3389
3406
|
_initLayers() {
|
|
@@ -3438,26 +3455,26 @@ class ri {
|
|
|
3438
3455
|
"text-halo-width": 1
|
|
3439
3456
|
}
|
|
3440
3457
|
}), this._layerVisible.terrain && this._map.setTerrain({ source: "terrain", exaggeration: 4 });
|
|
3441
|
-
for (const
|
|
3442
|
-
this._map.getLayer(
|
|
3443
|
-
for (const
|
|
3444
|
-
this._map.getLayer(
|
|
3458
|
+
for (const w of Yt(this._theme))
|
|
3459
|
+
this._map.getLayer(w.id) || this._map.addLayer(w);
|
|
3460
|
+
for (const w of Ht("amm", this._theme))
|
|
3461
|
+
this._map.getLayer(w.id) || this._map.addLayer(w, "fir-line");
|
|
3445
3462
|
}
|
|
3446
3463
|
_applyVisibility() {
|
|
3447
|
-
for (const [
|
|
3448
|
-
const
|
|
3449
|
-
for (const
|
|
3450
|
-
this._map.getLayer(
|
|
3464
|
+
for (const [x, g] of Object.entries(Ct)) {
|
|
3465
|
+
const b = this._layerVisible[x] !== !1 ? "visible" : "none";
|
|
3466
|
+
for (const S of g)
|
|
3467
|
+
this._map.getLayer(S) && this._map.setLayoutProperty(S, "visibility", b);
|
|
3451
3468
|
}
|
|
3452
3469
|
const a = this._layerVisible.amm !== !1 ? "visible" : "none";
|
|
3453
|
-
for (const
|
|
3454
|
-
this._map.getLayer(
|
|
3470
|
+
for (const x of Pt)
|
|
3471
|
+
this._map.getLayer(x) && this._map.setLayoutProperty(x, "visibility", a);
|
|
3455
3472
|
const u = this._layerVisible.terrain ? "visible" : "none";
|
|
3456
|
-
for (const
|
|
3457
|
-
this._map.getLayer(
|
|
3458
|
-
const
|
|
3459
|
-
for (const
|
|
3460
|
-
this._map.getLayer(
|
|
3473
|
+
for (const x of Zt)
|
|
3474
|
+
this._map.getLayer(x) && this._map.setLayoutProperty(x, "visibility", u);
|
|
3475
|
+
const w = this._layerVisible.contour ? "visible" : "none";
|
|
3476
|
+
for (const x of Jt)
|
|
3477
|
+
this._map.getLayer(x) && this._map.setLayoutProperty(x, "visibility", w);
|
|
3461
3478
|
}
|
|
3462
3479
|
// ── Public API ────────────────────────────────────────────────────────────
|
|
3463
3480
|
/** Raw MapLibre Map instance */
|
|
@@ -3481,18 +3498,18 @@ class ri {
|
|
|
3481
3498
|
this._theme = a;
|
|
3482
3499
|
const u = ut[a] ?? ut.light;
|
|
3483
3500
|
this._map.setPaintProperty("background", "background-color", u.background);
|
|
3484
|
-
const
|
|
3501
|
+
const w = [
|
|
3485
3502
|
"landLaye",
|
|
3486
3503
|
"boundary",
|
|
3487
3504
|
...Object.values(Ct).flat(),
|
|
3488
3505
|
...Pt
|
|
3489
3506
|
];
|
|
3490
|
-
for (const
|
|
3491
|
-
this._map.getLayer(
|
|
3492
|
-
for (const
|
|
3493
|
-
this._map.addLayer(
|
|
3494
|
-
for (const
|
|
3495
|
-
this._map.getLayer(
|
|
3507
|
+
for (const x of w)
|
|
3508
|
+
this._map.getLayer(x) && this._map.removeLayer(x);
|
|
3509
|
+
for (const x of Yt(this._theme))
|
|
3510
|
+
this._map.addLayer(x);
|
|
3511
|
+
for (const x of Ht("amm", this._theme))
|
|
3512
|
+
this._map.getLayer(x.id) || this._map.addLayer(x, "fir-line");
|
|
3496
3513
|
this._applyVisibility();
|
|
3497
3514
|
}
|
|
3498
3515
|
/**
|
|
@@ -3508,41 +3525,41 @@ class ri {
|
|
|
3508
3525
|
*/
|
|
3509
3526
|
setLayerVisible(a, u) {
|
|
3510
3527
|
if (this._layerVisible[a] = u, a === "terrain") {
|
|
3511
|
-
const
|
|
3512
|
-
for (const
|
|
3513
|
-
this._map.getLayer(
|
|
3528
|
+
const g = u ? "visible" : "none";
|
|
3529
|
+
for (const b of Zt)
|
|
3530
|
+
this._map.getLayer(b) && this._map.setLayoutProperty(b, "visibility", g);
|
|
3514
3531
|
this._map.setTerrain(u ? { source: "terrain", exaggeration: 4 } : null);
|
|
3515
3532
|
return;
|
|
3516
3533
|
}
|
|
3517
3534
|
if (a === "contour") {
|
|
3518
|
-
const
|
|
3519
|
-
for (const
|
|
3520
|
-
this._map.getLayer(
|
|
3535
|
+
const g = u ? "visible" : "none";
|
|
3536
|
+
for (const b of Jt)
|
|
3537
|
+
this._map.getLayer(b) && this._map.setLayoutProperty(b, "visibility", g);
|
|
3521
3538
|
return;
|
|
3522
3539
|
}
|
|
3523
3540
|
if (a === "amm") {
|
|
3524
|
-
const
|
|
3525
|
-
for (const
|
|
3526
|
-
this._map.getLayer(
|
|
3541
|
+
const g = u ? "visible" : "none";
|
|
3542
|
+
for (const b of Pt)
|
|
3543
|
+
this._map.getLayer(b) && this._map.setLayoutProperty(b, "visibility", g);
|
|
3527
3544
|
return;
|
|
3528
3545
|
}
|
|
3529
|
-
const
|
|
3530
|
-
if (!
|
|
3546
|
+
const w = Ct[a];
|
|
3547
|
+
if (!w) {
|
|
3531
3548
|
console.warn(`[AviationChart] Unknown layer key: "${a}"`);
|
|
3532
3549
|
return;
|
|
3533
3550
|
}
|
|
3534
|
-
const
|
|
3535
|
-
for (const
|
|
3536
|
-
this._map.getLayer(
|
|
3551
|
+
const x = u ? "visible" : "none";
|
|
3552
|
+
for (const g of w)
|
|
3553
|
+
this._map.getLayer(g) && this._map.setLayoutProperty(g, "visibility", x);
|
|
3537
3554
|
}
|
|
3538
3555
|
/**
|
|
3539
3556
|
* Switch the navdata period. Fetches tiles for the new period immediately.
|
|
3540
3557
|
* @param {string} period
|
|
3541
3558
|
*/
|
|
3542
3559
|
setPeriod(a) {
|
|
3543
|
-
var
|
|
3560
|
+
var w;
|
|
3544
3561
|
this._period = a;
|
|
3545
|
-
const u = (
|
|
3562
|
+
const u = (w = this._map) == null ? void 0 : w.getSource("navdata");
|
|
3546
3563
|
u && u.setTiles([`${this._apiUrl}/api/tiles/${a}/{z}/{x}/{y}.pbf`]);
|
|
3547
3564
|
}
|
|
3548
3565
|
/** Proxy to map.on — returns `this` for chaining */
|