aviation-chart 0.1.20 → 0.1.22
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 +4 -4
- package/dist/index.cjs +4 -4
- package/dist/index.js +522 -527
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import jt from "maplibre-gl";
|
|
2
|
-
var vt, Rt,
|
|
3
|
-
function
|
|
2
|
+
var vt, Rt, Pt;
|
|
3
|
+
function Ot(o, r) {
|
|
4
4
|
if (!vt)
|
|
5
|
-
vt =
|
|
5
|
+
vt = r;
|
|
6
6
|
else if (!Rt)
|
|
7
|
-
Rt =
|
|
7
|
+
Rt = r;
|
|
8
8
|
else {
|
|
9
|
-
var
|
|
10
|
-
vt(
|
|
11
|
-
new Blob([
|
|
9
|
+
var d = "var sharedChunk = {}; (" + vt + ")(sharedChunk); (" + Rt + ")(sharedChunk);", y = {};
|
|
10
|
+
vt(y), Pt = r(y), typeof window < "u" && (Pt.workerUrl = window.URL.createObjectURL(
|
|
11
|
+
new Blob([d], { type: "text/javascript" })
|
|
12
12
|
));
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
|
-
|
|
16
|
-
class
|
|
15
|
+
Ot(["exports"], function(o) {
|
|
16
|
+
class r {
|
|
17
17
|
constructor(e, i) {
|
|
18
18
|
this.start = e, this.end = i, this.points = [], this.append = this.append.bind(this), this.prepend = this.prepend.bind(this);
|
|
19
19
|
}
|
|
@@ -36,7 +36,7 @@ Mt(["exports"], function(o) {
|
|
|
36
36
|
return this.points;
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
|
-
const
|
|
39
|
+
const d = [
|
|
40
40
|
[],
|
|
41
41
|
[
|
|
42
42
|
[
|
|
@@ -132,66 +132,66 @@ Mt(["exports"], function(o) {
|
|
|
132
132
|
],
|
|
133
133
|
[]
|
|
134
134
|
];
|
|
135
|
-
function
|
|
135
|
+
function y(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 g(t, e, i) {
|
|
139
139
|
return (e - t) / (i - t);
|
|
140
140
|
}
|
|
141
|
-
function
|
|
141
|
+
function w(t, e, i = 4096, n = 1) {
|
|
142
142
|
if (!t)
|
|
143
143
|
return {};
|
|
144
|
-
const
|
|
144
|
+
const a = i / (e.width - 1);
|
|
145
145
|
let l, s, c, m, f, h;
|
|
146
|
-
const
|
|
147
|
-
function P
|
|
148
|
-
|
|
146
|
+
const u = {}, _ = /* @__PURE__ */ new Map(), F = /* @__PURE__ */ new Map();
|
|
147
|
+
function M(P, I, R) {
|
|
148
|
+
P[0] === 0 ? R(a * (h - 1), a * (f - g(c, I, l))) : P[0] === 2 ? R(a * h, a * (f - g(m, I, s))) : P[1] === 0 ? R(a * (h - g(s, I, l)), a * (f - 1)) : R(a * (h - g(m, I, c)), a * f);
|
|
149
149
|
}
|
|
150
150
|
for (f = 1 - n; f < e.height + n; f++) {
|
|
151
151
|
s = e.get(0, f - 1), m = e.get(0, f);
|
|
152
|
-
let
|
|
152
|
+
let P = Math.min(s, m), I = Math.max(s, m);
|
|
153
153
|
for (h = 1 - n; h < e.width + n; h++) {
|
|
154
154
|
l = s, c = m, s = e.get(h, f - 1), m = e.get(h, f);
|
|
155
|
-
const R =
|
|
156
|
-
if (
|
|
155
|
+
const R = P, V = I;
|
|
156
|
+
if (P = Math.min(s, m), I = Math.max(s, m), isNaN(l) || isNaN(s) || isNaN(m) || isNaN(c))
|
|
157
157
|
continue;
|
|
158
|
-
const dt = Math.min(R,
|
|
158
|
+
const dt = Math.min(R, P), pt = Math.max(V, I), X = Math.ceil(dt / t) * t, ot = Math.floor(pt / t) * t;
|
|
159
159
|
for (let C = X; C <= ot; C += t) {
|
|
160
|
-
const
|
|
161
|
-
for (const bt of
|
|
162
|
-
let
|
|
163
|
-
|
|
160
|
+
const kt = l > C, q = s > C, nt = c > C, _t = m > C;
|
|
161
|
+
for (const bt of d[(kt ? 8 : 0) | (q ? 4 : 0) | (_t ? 2 : 0) | (nt ? 1 : 0)]) {
|
|
162
|
+
let H = _.get(C);
|
|
163
|
+
H || _.set(C, H = /* @__PURE__ */ new Map());
|
|
164
164
|
let lt = F.get(C);
|
|
165
165
|
lt || F.set(C, lt = /* @__PURE__ */ new Map());
|
|
166
|
-
const
|
|
167
|
-
let
|
|
168
|
-
if (
|
|
169
|
-
if (lt.delete(yt), Tt =
|
|
170
|
-
if (
|
|
171
|
-
if (
|
|
172
|
-
let rt =
|
|
173
|
-
rt || (
|
|
166
|
+
const At = bt[0], zt = bt[1], yt = y(e.width, h, f, At), st = y(e.width, h, f, zt);
|
|
167
|
+
let G, Tt;
|
|
168
|
+
if (G = lt.get(yt))
|
|
169
|
+
if (lt.delete(yt), Tt = H.get(st))
|
|
170
|
+
if (H.delete(st), G === Tt) {
|
|
171
|
+
if (M(zt, C, G.append), !G.isEmpty()) {
|
|
172
|
+
let rt = u[C];
|
|
173
|
+
rt || (u[C] = rt = []), rt.push(G.lineString());
|
|
174
174
|
}
|
|
175
175
|
} else
|
|
176
|
-
|
|
176
|
+
G.appendFragment(Tt), lt.set(G.end = Tt.end, G);
|
|
177
177
|
else
|
|
178
|
-
|
|
179
|
-
else if (
|
|
180
|
-
|
|
178
|
+
M(zt, C, G.append), lt.set(G.end = st, G);
|
|
179
|
+
else if (G = H.get(st))
|
|
180
|
+
H.delete(st), M(At, C, G.prepend), H.set(G.start = yt, G);
|
|
181
181
|
else {
|
|
182
|
-
const rt = new
|
|
183
|
-
|
|
182
|
+
const rt = new r(yt, st);
|
|
183
|
+
M(At, C, rt.append), M(zt, C, rt.append), H.set(yt, rt), lt.set(st, rt);
|
|
184
184
|
}
|
|
185
185
|
}
|
|
186
186
|
}
|
|
187
187
|
}
|
|
188
188
|
}
|
|
189
|
-
for (const [
|
|
189
|
+
for (const [P, I] of _.entries()) {
|
|
190
190
|
let R = null;
|
|
191
191
|
for (const V of I.values())
|
|
192
|
-
V.isEmpty() || (R == null && (R =
|
|
192
|
+
V.isEmpty() || (R == null && (R = u[P] || (u[P] = [])), R.push(V.lineString()));
|
|
193
193
|
}
|
|
194
|
-
return
|
|
194
|
+
return u;
|
|
195
195
|
}
|
|
196
196
|
function b(t) {
|
|
197
197
|
const e = Object.entries(t);
|
|
@@ -200,40 +200,40 @@ Mt(["exports"], function(o) {
|
|
|
200
200
|
function S(t) {
|
|
201
201
|
return b(t).map(([e, i]) => [e, ...typeof i == "number" ? [i] : i].join("*")).join("~");
|
|
202
202
|
}
|
|
203
|
-
function
|
|
203
|
+
function O(t) {
|
|
204
204
|
return Object.fromEntries(t.split("~").map((e) => e.split("*").map(Number)).map(([e, ...i]) => [e, i]));
|
|
205
205
|
}
|
|
206
|
-
function
|
|
206
|
+
function A({ thresholds: t, ...e }) {
|
|
207
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) => {
|
|
211
211
|
const i = e.split("=").map(decodeURIComponent), n = i[0];
|
|
212
|
-
let
|
|
212
|
+
let a = i[1];
|
|
213
213
|
switch (n) {
|
|
214
214
|
case "thresholds":
|
|
215
|
-
|
|
215
|
+
a = O(a);
|
|
216
216
|
break;
|
|
217
217
|
case "extent":
|
|
218
218
|
case "multiplier":
|
|
219
219
|
case "overzoom":
|
|
220
220
|
case "buffer":
|
|
221
|
-
|
|
221
|
+
a = Number(a);
|
|
222
222
|
}
|
|
223
|
-
return [n,
|
|
223
|
+
return [n, a];
|
|
224
224
|
}));
|
|
225
225
|
}
|
|
226
226
|
function p(t) {
|
|
227
227
|
return b(t).map(([e, i]) => `${encodeURIComponent(e)}=${encodeURIComponent(i)}`).join(",");
|
|
228
228
|
}
|
|
229
|
-
function
|
|
229
|
+
function x(t, e) {
|
|
230
230
|
const { thresholds: i, ...n } = t;
|
|
231
|
-
let
|
|
231
|
+
let a = [], l = -1 / 0;
|
|
232
232
|
return Object.entries(i).forEach(([s, c]) => {
|
|
233
233
|
const m = Number(s);
|
|
234
|
-
m <= e && m > l && (l = m,
|
|
234
|
+
m <= e && m > l && (l = m, a = typeof c == "number" ? [c] : c);
|
|
235
235
|
}), {
|
|
236
|
-
levels:
|
|
236
|
+
levels: a,
|
|
237
237
|
...n
|
|
238
238
|
};
|
|
239
239
|
}
|
|
@@ -243,11 +243,11 @@ Mt(["exports"], function(o) {
|
|
|
243
243
|
}
|
|
244
244
|
function D(t, e) {
|
|
245
245
|
return t.then(({ data: i, ...n }) => {
|
|
246
|
-
let
|
|
247
|
-
return e && (
|
|
246
|
+
let a = i;
|
|
247
|
+
return e && (a = new Float32Array(i.length), a.set(i)), { ...n, data: a, transferrables: [a.buffer] };
|
|
248
248
|
});
|
|
249
249
|
}
|
|
250
|
-
function
|
|
250
|
+
function k(t) {
|
|
251
251
|
return t.then(({ arrayBuffer: e }) => {
|
|
252
252
|
const i = T(e);
|
|
253
253
|
return {
|
|
@@ -261,17 +261,17 @@ Mt(["exports"], function(o) {
|
|
|
261
261
|
return j == null && (j = typeof OffscreenCanvas < "u" && new OffscreenCanvas(1, 1).getContext("2d") && typeof createImageBitmap == "function"), j || !1;
|
|
262
262
|
}
|
|
263
263
|
let tt = null;
|
|
264
|
-
function
|
|
264
|
+
function Y() {
|
|
265
265
|
if (tt == null && (tt = !1, ct() && typeof VideoFrame < "u")) {
|
|
266
266
|
const i = new OffscreenCanvas(5, 5).getContext("2d", { willReadFrequently: !0 });
|
|
267
267
|
if (i) {
|
|
268
|
-
for (let
|
|
269
|
-
const l =
|
|
270
|
-
i.fillStyle = `rgb(${l},${l + 1},${l + 2})`, i.fillRect(
|
|
268
|
+
for (let a = 0; a < 5 * 5; a++) {
|
|
269
|
+
const l = a * 4;
|
|
270
|
+
i.fillStyle = `rgb(${l},${l + 1},${l + 2})`, i.fillRect(a % 5, Math.floor(a / 5), 1, 1);
|
|
271
271
|
}
|
|
272
272
|
const n = i.getImageData(0, 0, 5, 5).data;
|
|
273
|
-
for (let
|
|
274
|
-
if (
|
|
273
|
+
for (let a = 0; a < 5 * 5 * 4; a++)
|
|
274
|
+
if (a % 4 !== 3 && n[a] !== a) {
|
|
275
275
|
tt = !0;
|
|
276
276
|
break;
|
|
277
277
|
}
|
|
@@ -279,21 +279,21 @@ Mt(["exports"], function(o) {
|
|
|
279
279
|
}
|
|
280
280
|
return tt || !1;
|
|
281
281
|
}
|
|
282
|
-
function
|
|
282
|
+
function L(t, e, i) {
|
|
283
283
|
let n = () => {
|
|
284
284
|
};
|
|
285
|
-
const
|
|
285
|
+
const a = setTimeout(() => {
|
|
286
286
|
n(new Error("timed out")), i == null || i.abort();
|
|
287
287
|
}, t);
|
|
288
288
|
U(i, () => {
|
|
289
|
-
n(new Error("aborted")), clearTimeout(
|
|
289
|
+
n(new Error("aborted")), clearTimeout(a);
|
|
290
290
|
});
|
|
291
291
|
const l = new Promise((s, c) => {
|
|
292
292
|
n = c;
|
|
293
293
|
});
|
|
294
294
|
return Promise.race([
|
|
295
295
|
l,
|
|
296
|
-
e.finally(() => clearTimeout(
|
|
296
|
+
e.finally(() => clearTimeout(a))
|
|
297
297
|
]);
|
|
298
298
|
}
|
|
299
299
|
function U(t, e) {
|
|
@@ -306,7 +306,7 @@ Mt(["exports"], function(o) {
|
|
|
306
306
|
let E = 0;
|
|
307
307
|
class Z {
|
|
308
308
|
constructor(e = 100) {
|
|
309
|
-
this.size = () => this.items.size, this.get = (i, n,
|
|
309
|
+
this.size = () => this.items.size, this.get = (i, n, a) => {
|
|
310
310
|
let l = this.items.get(i);
|
|
311
311
|
if (l)
|
|
312
312
|
l.lastUsed = ++E, l.waiting++;
|
|
@@ -321,7 +321,7 @@ Mt(["exports"], function(o) {
|
|
|
321
321
|
}
|
|
322
322
|
const s = this.items, c = l.item.then((f) => f, (f) => (s.delete(i), Promise.reject(f)));
|
|
323
323
|
let m = !1;
|
|
324
|
-
return U(
|
|
324
|
+
return U(a, () => {
|
|
325
325
|
var f;
|
|
326
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;
|
|
@@ -330,8 +330,8 @@ Mt(["exports"], function(o) {
|
|
|
330
330
|
prune() {
|
|
331
331
|
if (this.items.size > this.maxSize) {
|
|
332
332
|
let e, i = 1 / 0;
|
|
333
|
-
this.items.forEach((n,
|
|
334
|
-
n.lastUsed < i && (i = n.lastUsed, e =
|
|
333
|
+
this.items.forEach((n, a) => {
|
|
334
|
+
n.lastUsed < i && (i = n.lastUsed, e = a);
|
|
335
335
|
}), typeof e < "u" && this.items.delete(e);
|
|
336
336
|
}
|
|
337
337
|
}
|
|
@@ -344,24 +344,24 @@ Mt(["exports"], function(o) {
|
|
|
344
344
|
function W(t, e) {
|
|
345
345
|
return K || (K = new OffscreenCanvas(t.width, t.height), et = K.getContext("2d", {
|
|
346
346
|
willReadFrequently: !0
|
|
347
|
-
})),
|
|
347
|
+
})), Gt(t, e, K, et);
|
|
348
348
|
}
|
|
349
349
|
async function xt(t, e, i) {
|
|
350
|
-
var n,
|
|
350
|
+
var n, a, l;
|
|
351
351
|
const s = await createImageBitmap(t);
|
|
352
352
|
if (B(i))
|
|
353
353
|
return null;
|
|
354
354
|
const c = new VideoFrame(s, { timestamp: 0 });
|
|
355
355
|
try {
|
|
356
|
-
if (!(((n = c == null ? void 0 : c.format) === null || n === void 0 ? void 0 : n.startsWith("BGR")) || ((
|
|
356
|
+
if (!(((n = c == null ? void 0 : c.format) === null || n === void 0 ? void 0 : n.startsWith("BGR")) || ((a = c == null ? void 0 : c.format) === null || a === void 0 ? void 0 : a.startsWith("RGB"))))
|
|
357
357
|
throw new Error(`Unrecognized format: ${c == null ? void 0 : c.format}`);
|
|
358
|
-
const f = (l = c == null ? void 0 : c.format) === null || l === void 0 ? void 0 : l.startsWith("BGR"), h = c.allocationSize(),
|
|
359
|
-
if (await c.copyTo(
|
|
360
|
-
for (let _ = 0; _ <
|
|
361
|
-
const F =
|
|
362
|
-
|
|
358
|
+
const f = (l = c == null ? void 0 : c.format) === null || l === void 0 ? void 0 : l.startsWith("BGR"), h = c.allocationSize(), u = new Uint8ClampedArray(h);
|
|
359
|
+
if (await c.copyTo(u), f)
|
|
360
|
+
for (let _ = 0; _ < u.length; _ += 4) {
|
|
361
|
+
const F = u[_];
|
|
362
|
+
u[_] = u[_ + 2], u[_ + 2] = F;
|
|
363
363
|
}
|
|
364
|
-
return Dt(s.width, s.height, e,
|
|
364
|
+
return Dt(s.width, s.height, e, u);
|
|
365
365
|
} catch {
|
|
366
366
|
return B(i) ? null : W(s, e);
|
|
367
367
|
} finally {
|
|
@@ -374,12 +374,12 @@ Mt(["exports"], function(o) {
|
|
|
374
374
|
}));
|
|
375
375
|
const n = new Image();
|
|
376
376
|
U(i, () => n.src = "");
|
|
377
|
-
const
|
|
377
|
+
const a = await new Promise((l, s) => {
|
|
378
378
|
n.onload = () => {
|
|
379
379
|
B(i) || l(n), URL.revokeObjectURL(n.src), n.onload = null;
|
|
380
380
|
}, n.onerror = () => s(new Error("Could not load image.")), n.src = t.size ? URL.createObjectURL(t) : "";
|
|
381
381
|
});
|
|
382
|
-
return
|
|
382
|
+
return Gt(a, e, N, it);
|
|
383
383
|
}
|
|
384
384
|
function te(t, e, i) {
|
|
385
385
|
return self.actor.send("decodeImage", [], i, void 0, t, e);
|
|
@@ -391,18 +391,18 @@ Mt(["exports"], function(o) {
|
|
|
391
391
|
self instanceof WorkerGlobalScope
|
|
392
392
|
);
|
|
393
393
|
}
|
|
394
|
-
const It =
|
|
395
|
-
function
|
|
394
|
+
const It = Y() ? xt : ct() ? at : ee() ? te : qt;
|
|
395
|
+
function Gt(t, e, i, n) {
|
|
396
396
|
if (i.width = t.width, i.height = t.height, !n)
|
|
397
397
|
throw new Error("failed to get context");
|
|
398
398
|
n.drawImage(t, 0, 0, t.width, t.height);
|
|
399
|
-
const
|
|
400
|
-
return Dt(t.width, t.height, e,
|
|
399
|
+
const a = n.getImageData(0, 0, t.width, t.height).data;
|
|
400
|
+
return Dt(t.width, t.height, e, a);
|
|
401
401
|
}
|
|
402
402
|
function Dt(t, e, i, n) {
|
|
403
|
-
const
|
|
403
|
+
const a = i === "mapbox" ? (s, c, m) => -1e4 + (s * 256 * 256 + c * 256 + m) * 0.1 : (s, c, m) => s * 256 + c + m / 256 - 32768, l = new Float32Array(t * e);
|
|
404
404
|
for (let s = 0; s < n.length; s += 4)
|
|
405
|
-
l[s / 4] =
|
|
405
|
+
l[s / 4] = a(n[s], n[s + 1], n[s + 2]);
|
|
406
406
|
return { width: t, height: e, data: l };
|
|
407
407
|
}
|
|
408
408
|
const ie = -12e3, oe = 9e3;
|
|
@@ -411,40 +411,40 @@ Mt(["exports"], function(o) {
|
|
|
411
411
|
}
|
|
412
412
|
class $ {
|
|
413
413
|
constructor(e, i, n) {
|
|
414
|
-
this.split = (
|
|
415
|
-
if (
|
|
414
|
+
this.split = (a, l, s) => {
|
|
415
|
+
if (a === 0)
|
|
416
416
|
return this;
|
|
417
|
-
const c = 1 <<
|
|
418
|
-
return new $(this.width / c, this.height / c, (h,
|
|
419
|
-
}, this.subsamplePixelCenters = (
|
|
417
|
+
const c = 1 << a, m = l * this.width / c, f = s * this.height / c;
|
|
418
|
+
return new $(this.width / c, this.height / c, (h, u) => this.get(h + m, u + f));
|
|
419
|
+
}, this.subsamplePixelCenters = (a) => {
|
|
420
420
|
const l = (m, f, h) => isNaN(m) ? f : isNaN(f) ? m : m + (f - m) * h;
|
|
421
|
-
if (
|
|
421
|
+
if (a <= 1)
|
|
422
422
|
return this;
|
|
423
|
-
const s = 0.5 - 1 / (2 *
|
|
424
|
-
const h = m /
|
|
423
|
+
const s = 0.5 - 1 / (2 * a), c = (m, f) => {
|
|
424
|
+
const h = m / a - s, u = f / a - s, _ = Math.floor(h), F = Math.floor(u), M = this.get(_, F), P = this.get(_ + 1, F), I = this.get(_, F + 1), R = this.get(_ + 1, F + 1), V = h - _, dt = u - F, pt = l(M, P, V), X = l(I, R, V);
|
|
425
425
|
return l(pt, X, dt);
|
|
426
426
|
};
|
|
427
|
-
return new $(this.width *
|
|
428
|
-
}, this.averagePixelCentersToGrid = (
|
|
427
|
+
return new $(this.width * a, this.height * a, c);
|
|
428
|
+
}, this.averagePixelCentersToGrid = (a = 1) => new $(this.width + 1, this.height + 1, (l, s) => {
|
|
429
429
|
let c = 0, m = 0, f = 0;
|
|
430
|
-
for (let h = l -
|
|
431
|
-
for (let
|
|
432
|
-
isNaN(f = this.get(h,
|
|
430
|
+
for (let h = l - a; h < l + a; h++)
|
|
431
|
+
for (let u = s - a; u < s + a; u++)
|
|
432
|
+
isNaN(f = this.get(h, u)) || (m++, c += f);
|
|
433
433
|
return m === 0 ? NaN : c / m;
|
|
434
|
-
}), this.scaleElevation = (
|
|
435
|
-
const l = this.width + 2 *
|
|
434
|
+
}), this.scaleElevation = (a) => a === 1 ? this : new $(this.width, this.height, (l, s) => this.get(l, s) * a), this.materialize = (a = 2) => {
|
|
435
|
+
const l = this.width + 2 * a, s = new Float32Array(l * (this.height + 2 * a));
|
|
436
436
|
let c = 0;
|
|
437
|
-
for (let m = -
|
|
438
|
-
for (let f = -
|
|
437
|
+
for (let m = -a; m < this.height + a; m++)
|
|
438
|
+
for (let f = -a; f < this.width + a; f++)
|
|
439
439
|
s[c++] = this.get(f, m);
|
|
440
|
-
return new $(this.width, this.height, (m, f) => s[(f +
|
|
440
|
+
return new $(this.width, this.height, (m, f) => s[(f + a) * l + m + a]);
|
|
441
441
|
}, this.get = n, this.width = e, this.height = i;
|
|
442
442
|
}
|
|
443
443
|
/** Construct a height tile from raw DEM pixel values */
|
|
444
444
|
static fromRawDem(e) {
|
|
445
445
|
return new $(e.width, e.height, (i, n) => {
|
|
446
|
-
const
|
|
447
|
-
return re(
|
|
446
|
+
const a = e.data[n * e.width + i];
|
|
447
|
+
return re(a) ? a : NaN;
|
|
448
448
|
});
|
|
449
449
|
}
|
|
450
450
|
/**
|
|
@@ -459,10 +459,10 @@ Mt(["exports"], function(o) {
|
|
|
459
459
|
const i = e[4];
|
|
460
460
|
if (!i)
|
|
461
461
|
return;
|
|
462
|
-
const n = i.width,
|
|
463
|
-
return new $(n,
|
|
462
|
+
const n = i.width, a = i.height;
|
|
463
|
+
return new $(n, a, (l, s) => {
|
|
464
464
|
let c = 0;
|
|
465
|
-
s < 0 ? s +=
|
|
465
|
+
s < 0 ? s += a : s < a ? c += 3 : (s -= a, c += 6), l < 0 ? l += n : l < n ? c += 1 : (l -= n, c += 2);
|
|
466
466
|
const m = e[c];
|
|
467
467
|
return m ? m.get(l, s) : NaN;
|
|
468
468
|
});
|
|
@@ -473,11 +473,11 @@ Mt(["exports"], function(o) {
|
|
|
473
473
|
}
|
|
474
474
|
var Et = {};
|
|
475
475
|
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
|
476
|
-
Et.read = function(t, e, i, n,
|
|
477
|
-
var l, s, c =
|
|
478
|
-
for (
|
|
476
|
+
Et.read = function(t, e, i, n, a) {
|
|
477
|
+
var l, s, c = a * 8 - n - 1, m = (1 << c) - 1, f = m >> 1, h = -7, u = i ? a - 1 : 0, _ = i ? -1 : 1, F = t[e + u];
|
|
478
|
+
for (u += _, l = F & (1 << -h) - 1, F >>= -h, h += c; h > 0; l = l * 256 + t[e + u], u += _, h -= 8)
|
|
479
479
|
;
|
|
480
|
-
for (s = l & (1 << -h) - 1, l >>= -h, h += n; h > 0; s = s * 256 + t[e +
|
|
480
|
+
for (s = l & (1 << -h) - 1, l >>= -h, h += n; h > 0; s = s * 256 + t[e + u], u += _, h -= 8)
|
|
481
481
|
;
|
|
482
482
|
if (l === 0)
|
|
483
483
|
l = 1 - f;
|
|
@@ -487,20 +487,20 @@ Mt(["exports"], function(o) {
|
|
|
487
487
|
s = s + Math.pow(2, n), l = l - f;
|
|
488
488
|
}
|
|
489
489
|
return (F ? -1 : 1) * s * Math.pow(2, l - n);
|
|
490
|
-
}, Et.write = function(t, e, i, n,
|
|
491
|
-
var s, c, m, f = l * 8 -
|
|
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 +
|
|
490
|
+
}, Et.write = function(t, e, i, n, a, l) {
|
|
491
|
+
var s, c, m, f = l * 8 - a - 1, h = (1 << f) - 1, u = h >> 1, _ = a === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0, F = n ? 0 : l - 1, M = n ? 1 : -1, P = 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 + u >= 1 ? e += _ / m : e += _ * Math.pow(2, 1 - u), e * m >= 2 && (s++, m /= 2), s + u >= h ? (c = 0, s = h) : s + u >= 1 ? (c = (e * m - 1) * Math.pow(2, a), s = s + u) : (c = e * Math.pow(2, u - 1) * Math.pow(2, a), s = 0)); a >= 8; t[i + F] = c & 255, F += M, c /= 256, a -= 8)
|
|
493
493
|
;
|
|
494
|
-
for (s = s <<
|
|
494
|
+
for (s = s << a | c, f += a; f > 0; t[i + F] = s & 255, F += M, s /= 256, f -= 8)
|
|
495
495
|
;
|
|
496
|
-
t[i + F -
|
|
496
|
+
t[i + F - M] |= P * 128;
|
|
497
497
|
};
|
|
498
498
|
var ne = v, gt = Et;
|
|
499
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
|
-
var Ft = 65536 * 65536,
|
|
503
|
+
var Ft = 65536 * 65536, Lt = 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;
|
|
@@ -508,8 +508,8 @@ Mt(["exports"], function(o) {
|
|
|
508
508
|
// === READING =================================================================
|
|
509
509
|
readFields: function(t, e, i) {
|
|
510
510
|
for (i = i || this.length; this.pos < i; ) {
|
|
511
|
-
var n = this.readVarint(),
|
|
512
|
-
this.type = n & 7, t(
|
|
511
|
+
var n = this.readVarint(), a = n >> 3, l = this.pos;
|
|
512
|
+
this.type = n & 7, t(a, e, this), this.pos === l && this.skip(n);
|
|
513
513
|
}
|
|
514
514
|
return e;
|
|
515
515
|
},
|
|
@@ -648,10 +648,10 @@ Mt(["exports"], function(o) {
|
|
|
648
648
|
this.realloc(4), ft(this.buf, t, this.pos), this.pos += 4;
|
|
649
649
|
},
|
|
650
650
|
writeFixed64: function(t) {
|
|
651
|
-
this.realloc(8), ft(this.buf, t & -1, this.pos), ft(this.buf, Math.floor(t *
|
|
651
|
+
this.realloc(8), ft(this.buf, t & -1, this.pos), ft(this.buf, Math.floor(t * Lt), this.pos + 4), this.pos += 8;
|
|
652
652
|
},
|
|
653
653
|
writeSFixed64: function(t) {
|
|
654
|
-
this.realloc(8), ft(this.buf, t & -1, this.pos), ft(this.buf, Math.floor(t *
|
|
654
|
+
this.realloc(8), ft(this.buf, t & -1, this.pos), ft(this.buf, Math.floor(t * Lt), this.pos + 4), this.pos += 8;
|
|
655
655
|
},
|
|
656
656
|
writeVarint: function(t) {
|
|
657
657
|
if (t = +t || 0, t > 268435455 || t < 0) {
|
|
@@ -756,8 +756,8 @@ Mt(["exports"], function(o) {
|
|
|
756
756
|
}
|
|
757
757
|
};
|
|
758
758
|
function se(t, e, i) {
|
|
759
|
-
var n = i.buf,
|
|
760
|
-
if (l = n[i.pos++],
|
|
759
|
+
var n = i.buf, a, l;
|
|
760
|
+
if (l = n[i.pos++], a = (l & 112) >> 4, l < 128 || (l = n[i.pos++], a |= (l & 127) << 3, l < 128) || (l = n[i.pos++], a |= (l & 127) << 10, l < 128) || (l = n[i.pos++], a |= (l & 127) << 17, l < 128) || (l = n[i.pos++], a |= (l & 127) << 24, l < 128) || (l = n[i.pos++], a |= (l & 1) << 31, l < 128)) return mt(t, a, e);
|
|
761
761
|
throw new Error("Expected varint not more than 10 bytes");
|
|
762
762
|
}
|
|
763
763
|
function J(t) {
|
|
@@ -782,7 +782,7 @@ Mt(["exports"], function(o) {
|
|
|
782
782
|
function Xt(t, e, i) {
|
|
783
783
|
var n = e <= 16383 ? 1 : e <= 2097151 ? 2 : e <= 268435455 ? 3 : Math.floor(Math.log(e) / (Math.LN2 * 7));
|
|
784
784
|
i.realloc(n);
|
|
785
|
-
for (var
|
|
785
|
+
for (var a = i.pos - 1; a >= t; a--) i.buf[a + n] = i.buf[a];
|
|
786
786
|
}
|
|
787
787
|
function he(t, e) {
|
|
788
788
|
for (var i = 0; i < t.length; i++) e.writeVarint(t[i]);
|
|
@@ -821,11 +821,11 @@ Mt(["exports"], function(o) {
|
|
|
821
821
|
return (t[e] | t[e + 1] << 8 | t[e + 2] << 16) + (t[e + 3] << 24);
|
|
822
822
|
}
|
|
823
823
|
function be(t, e, i) {
|
|
824
|
-
for (var n = "",
|
|
825
|
-
var l = t[
|
|
826
|
-
if (
|
|
824
|
+
for (var n = "", a = e; a < i; ) {
|
|
825
|
+
var l = t[a], s = null, c = l > 239 ? 4 : l > 223 ? 3 : l > 191 ? 2 : 1;
|
|
826
|
+
if (a + c > i) break;
|
|
827
827
|
var m, f, h;
|
|
828
|
-
c === 1 ? l < 128 && (s = l) : c === 2 ? (m = t[
|
|
828
|
+
c === 1 ? l < 128 && (s = l) : c === 2 ? (m = t[a + 1], (m & 192) === 128 && (s = (l & 31) << 6 | m & 63, s <= 127 && (s = null))) : c === 3 ? (m = t[a + 1], f = t[a + 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[a + 1], f = t[a + 2], h = t[a + 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), a += c;
|
|
829
829
|
}
|
|
830
830
|
return n;
|
|
831
831
|
}
|
|
@@ -833,20 +833,20 @@ Mt(["exports"], function(o) {
|
|
|
833
833
|
return Bt.decode(t.subarray(e, i));
|
|
834
834
|
}
|
|
835
835
|
function Te(t, e, i) {
|
|
836
|
-
for (var n = 0,
|
|
837
|
-
if (
|
|
836
|
+
for (var n = 0, a, l; n < e.length; n++) {
|
|
837
|
+
if (a = e.charCodeAt(n), a > 55295 && a < 57344)
|
|
838
838
|
if (l)
|
|
839
|
-
if (
|
|
840
|
-
t[i++] = 239, t[i++] = 191, t[i++] = 189, l =
|
|
839
|
+
if (a < 56320) {
|
|
840
|
+
t[i++] = 239, t[i++] = 191, t[i++] = 189, l = a;
|
|
841
841
|
continue;
|
|
842
842
|
} else
|
|
843
|
-
|
|
843
|
+
a = l - 55296 << 10 | a - 56320 | 65536, l = null;
|
|
844
844
|
else {
|
|
845
|
-
|
|
845
|
+
a > 56319 || n + 1 === e.length ? (t[i++] = 239, t[i++] = 191, t[i++] = 189) : l = a;
|
|
846
846
|
continue;
|
|
847
847
|
}
|
|
848
848
|
else l && (t[i++] = 239, t[i++] = 191, t[i++] = 189, l = null);
|
|
849
|
-
|
|
849
|
+
a < 128 ? t[i++] = a : (a < 2048 ? t[i++] = a >> 6 | 192 : (a < 65536 ? t[i++] = a >> 12 | 224 : (t[i++] = a >> 18 | 240, t[i++] = a >> 12 & 63 | 128), t[i++] = a >> 6 & 63 | 128), t[i++] = a & 63 | 128);
|
|
850
850
|
}
|
|
851
851
|
return i;
|
|
852
852
|
}
|
|
@@ -877,19 +877,19 @@ Mt(["exports"], function(o) {
|
|
|
877
877
|
for (const n of i.keys)
|
|
878
878
|
e.writeStringField(3, n);
|
|
879
879
|
for (const n of i.values)
|
|
880
|
-
e.writeMessage(4,
|
|
880
|
+
e.writeMessage(4, Ae, n);
|
|
881
881
|
}
|
|
882
882
|
function Fe(t, e) {
|
|
883
883
|
const i = t.feature;
|
|
884
884
|
if (!i || !e)
|
|
885
885
|
throw new Error();
|
|
886
|
-
e.writeMessage(2, Se, t), e.writeVarintField(3, i.type), e.writeMessage(4,
|
|
886
|
+
e.writeMessage(2, Se, t), e.writeVarintField(3, i.type), e.writeMessage(4, ke, i);
|
|
887
887
|
}
|
|
888
888
|
function Se(t, e) {
|
|
889
889
|
const i = t.feature;
|
|
890
890
|
if (!i || !e)
|
|
891
891
|
throw new Error();
|
|
892
|
-
const n = t.keys,
|
|
892
|
+
const n = t.keys, a = t.values, l = t.keycache, s = t.valuecache;
|
|
893
893
|
for (const c in i.properties) {
|
|
894
894
|
let m = i.properties[c], f = l[c];
|
|
895
895
|
if (m === null)
|
|
@@ -897,9 +897,9 @@ Mt(["exports"], function(o) {
|
|
|
897
897
|
typeof f > "u" && (n.push(c), f = n.length - 1, l[c] = f), e.writeVarint(f);
|
|
898
898
|
const h = typeof m;
|
|
899
899
|
h !== "string" && h !== "boolean" && h !== "number" && (m = JSON.stringify(m));
|
|
900
|
-
const
|
|
901
|
-
let _ = s[
|
|
902
|
-
typeof _ > "u" && (
|
|
900
|
+
const u = `${h}:${m}`;
|
|
901
|
+
let _ = s[u];
|
|
902
|
+
typeof _ > "u" && (a.push(m), _ = a.length - 1, s[u] = _), e.writeVarint(_);
|
|
903
903
|
}
|
|
904
904
|
}
|
|
905
905
|
function St(t, e) {
|
|
@@ -908,42 +908,42 @@ Mt(["exports"], function(o) {
|
|
|
908
908
|
function Vt(t) {
|
|
909
909
|
return t << 1 ^ t >> 31;
|
|
910
910
|
}
|
|
911
|
-
function
|
|
911
|
+
function ke(t, e) {
|
|
912
912
|
if (!e)
|
|
913
913
|
throw new Error();
|
|
914
914
|
const i = t.geometry, n = t.type;
|
|
915
|
-
let
|
|
915
|
+
let a = 0, l = 0;
|
|
916
916
|
for (const s of i) {
|
|
917
917
|
let c = 1;
|
|
918
918
|
n === ht.POINT && (c = s.length / 2), e.writeVarint(St(1, c));
|
|
919
919
|
const m = s.length / 2, f = n === ht.POLYGON ? m - 1 : m;
|
|
920
920
|
for (let h = 0; h < f; h++) {
|
|
921
921
|
h === 1 && n !== 1 && e.writeVarint(St(2, f - 1));
|
|
922
|
-
const
|
|
923
|
-
e.writeVarint(Vt(
|
|
922
|
+
const u = s[h * 2] - a, _ = s[h * 2 + 1] - l;
|
|
923
|
+
e.writeVarint(Vt(u)), e.writeVarint(Vt(_)), a += u, l += _;
|
|
924
924
|
}
|
|
925
925
|
n === ht.POLYGON && e.writeVarint(St(7, 1));
|
|
926
926
|
}
|
|
927
927
|
}
|
|
928
|
-
function
|
|
928
|
+
function Ae(t, e) {
|
|
929
929
|
if (!e)
|
|
930
930
|
throw new Error();
|
|
931
931
|
typeof t == "string" ? e.writeStringField(1, t) : typeof t == "boolean" ? e.writeBooleanField(7, t) : typeof t == "number" && (t % 1 !== 0 ? e.writeDoubleField(3, t) : t < 0 ? e.writeSVarintField(6, t) : e.writeVarintField(5, t));
|
|
932
932
|
}
|
|
933
933
|
class Re {
|
|
934
|
-
constructor(e, i, n,
|
|
934
|
+
constructor(e, i, n, a, l) {
|
|
935
935
|
this.loaded = Promise.resolve(), this.decodeImage = It, this.fetchAndParseTile = (s, c, m, f, h) => {
|
|
936
|
-
const
|
|
937
|
-
return h == null || h.useTile(_), this.parsedCache.get(_, async (F,
|
|
938
|
-
const
|
|
939
|
-
if (B(
|
|
936
|
+
const u = 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, M) => {
|
|
938
|
+
const P = await u.fetchTile(s, c, m, M, h);
|
|
939
|
+
if (B(M))
|
|
940
940
|
throw new Error("canceled");
|
|
941
|
-
const I =
|
|
941
|
+
const I = u.decodeImage(P.data, u.encoding, M), R = h == null ? void 0 : h.marker("decode"), V = await I;
|
|
942
942
|
return R == null || R(), V;
|
|
943
943
|
}, f);
|
|
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 =
|
|
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 = a;
|
|
945
945
|
}
|
|
946
|
-
fetchTile(e, i, n,
|
|
946
|
+
fetchTile(e, i, n, a, 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
949
|
const f = {
|
|
@@ -951,48 +951,48 @@ Mt(["exports"], function(o) {
|
|
|
951
951
|
};
|
|
952
952
|
l == null || l.fetchTile(s);
|
|
953
953
|
const h = l == null ? void 0 : l.marker("fetch");
|
|
954
|
-
return
|
|
955
|
-
if (h == null || h(), !
|
|
956
|
-
throw new Error(`Bad response: ${
|
|
954
|
+
return L(this.timeoutMs, fetch(s, f).then(async (u) => {
|
|
955
|
+
if (h == null || h(), !u.ok)
|
|
956
|
+
throw new Error(`Bad response: ${u.status} for ${s}`);
|
|
957
957
|
return {
|
|
958
|
-
data: await
|
|
959
|
-
expires:
|
|
960
|
-
cacheControl:
|
|
958
|
+
data: await u.blob(),
|
|
959
|
+
expires: u.headers.get("expires") || void 0,
|
|
960
|
+
cacheControl: u.headers.get("cache-control") || void 0
|
|
961
961
|
};
|
|
962
962
|
}), m);
|
|
963
|
-
},
|
|
963
|
+
}, a);
|
|
964
964
|
}
|
|
965
|
-
async fetchDem(e, i, n,
|
|
966
|
-
const c = Math.min(e - (
|
|
965
|
+
async fetchDem(e, i, n, a, l, s) {
|
|
966
|
+
const c = Math.min(e - (a.overzoom || 0), this.maxzoom), m = e - c, f = 1 << m, h = Math.floor(i / f), u = Math.floor(n / f), _ = await this.fetchAndParseTile(c, h, u, l, s);
|
|
967
967
|
return $.fromRawDem(_).split(m, i % f, n % f);
|
|
968
968
|
}
|
|
969
|
-
fetchContourTile(e, i, n,
|
|
970
|
-
const { levels: c, multiplier: m = 1, buffer: f = 1, extent: h = 4096, contourLayer:
|
|
969
|
+
fetchContourTile(e, i, n, a, l, s) {
|
|
970
|
+
const { levels: c, multiplier: m = 1, buffer: f = 1, extent: h = 4096, contourLayer: u = "contours", elevationKey: _ = "ele", levelKey: F = "level", subsampleBelow: M = 100 } = a;
|
|
971
971
|
if (!c || c.length === 0)
|
|
972
972
|
return Promise.resolve({ arrayBuffer: new ArrayBuffer(0) });
|
|
973
|
-
const
|
|
974
|
-
return this.contourCache.get(
|
|
973
|
+
const P = [e, i, n, p(a)].join("/");
|
|
974
|
+
return this.contourCache.get(P, async (I, R) => {
|
|
975
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
|
-
dt.push(q < 0 || q >= V ? void 0 : this.fetchDem(e, (nt + V) % V, q,
|
|
978
|
+
dt.push(q < 0 || q >= V ? void 0 : this.fetchDem(e, (nt + V) % V, q, a, R, s));
|
|
979
979
|
const pt = await Promise.all(dt);
|
|
980
980
|
let X = $.combineNeighbors(pt);
|
|
981
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 >= M)
|
|
985
985
|
X = X.materialize(2);
|
|
986
986
|
else
|
|
987
|
-
for (; X.width <
|
|
987
|
+
for (; X.width < M; )
|
|
988
988
|
X = X.subsamplePixelCenters(2).materialize(2);
|
|
989
989
|
X = X.averagePixelCentersToGrid().scaleElevation(m).materialize(1);
|
|
990
|
-
const C =
|
|
990
|
+
const C = w(c[0], X, h, f);
|
|
991
991
|
ot == null || ot();
|
|
992
|
-
const
|
|
992
|
+
const kt = De({
|
|
993
993
|
extent: h,
|
|
994
994
|
layers: {
|
|
995
|
-
[
|
|
995
|
+
[u]: {
|
|
996
996
|
features: Object.entries(C).map(([q, nt]) => {
|
|
997
997
|
const _t = Number(q);
|
|
998
998
|
return {
|
|
@@ -1000,26 +1000,26 @@ Mt(["exports"], function(o) {
|
|
|
1000
1000
|
geometry: nt,
|
|
1001
1001
|
properties: {
|
|
1002
1002
|
[_]: _t,
|
|
1003
|
-
[F]: Math.max(...c.map((bt,
|
|
1003
|
+
[F]: Math.max(...c.map((bt, H) => _t % bt === 0 ? H : 0))
|
|
1004
1004
|
}
|
|
1005
1005
|
};
|
|
1006
1006
|
})
|
|
1007
1007
|
}
|
|
1008
1008
|
}
|
|
1009
1009
|
});
|
|
1010
|
-
return ot == null || ot(), { arrayBuffer:
|
|
1010
|
+
return ot == null || ot(), { arrayBuffer: kt.buffer };
|
|
1011
1011
|
}, l);
|
|
1012
1012
|
}
|
|
1013
1013
|
}
|
|
1014
1014
|
const Q = typeof performance < "u" ? performance : void 0, Ce = Q ? Q.timeOrigin || (/* @__PURE__ */ new Date()).getTime() - Q.now() : (/* @__PURE__ */ new Date()).getTime();
|
|
1015
|
-
function
|
|
1015
|
+
function Me(t) {
|
|
1016
1016
|
var e;
|
|
1017
1017
|
return JSON.parse(JSON.stringify(((e = Q == null ? void 0 : Q.getEntriesByName) === null || e === void 0 ? void 0 : e.call(Q, t)) || []));
|
|
1018
1018
|
}
|
|
1019
1019
|
function Ut() {
|
|
1020
1020
|
return Q ? Q.now() : (/* @__PURE__ */ new Date()).getTime();
|
|
1021
1021
|
}
|
|
1022
|
-
function
|
|
1022
|
+
function Pe(t) {
|
|
1023
1023
|
const e = [];
|
|
1024
1024
|
for (const i of t)
|
|
1025
1025
|
e.push(...i);
|
|
@@ -1030,9 +1030,9 @@ 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 f = this.marks[m] || [], h = Math.max(...f.map((_) => Math.max(..._))),
|
|
1034
|
-
return Number.isFinite(h) ? h -
|
|
1035
|
-
},
|
|
1033
|
+
const f = this.marks[m] || [], h = Math.max(...f.map((_) => Math.max(..._))), u = Math.min(...f.map((_) => Math.min(..._)));
|
|
1034
|
+
return Number.isFinite(h) ? h - u : void 0;
|
|
1035
|
+
}, a = n("main") || 0, l = n("fetch"), s = n("decode"), c = n("isoline");
|
|
1036
1036
|
return {
|
|
1037
1037
|
url: i,
|
|
1038
1038
|
tilesUsed: this.tilesFetched,
|
|
@@ -1040,19 +1040,19 @@ Mt(["exports"], function(o) {
|
|
|
1040
1040
|
marks: this.marks,
|
|
1041
1041
|
resources: [
|
|
1042
1042
|
...this.resources,
|
|
1043
|
-
...
|
|
1043
|
+
...Pe(this.fetched.map(Me))
|
|
1044
1044
|
],
|
|
1045
|
-
duration:
|
|
1045
|
+
duration: a,
|
|
1046
1046
|
fetch: l,
|
|
1047
1047
|
decode: s,
|
|
1048
1048
|
process: c,
|
|
1049
|
-
wait:
|
|
1049
|
+
wait: a - (l || 0) - (s || 0) - (c || 0)
|
|
1050
1050
|
};
|
|
1051
1051
|
}, this.error = (i) => ({ ...this.finish(i), error: !0 }), this.marker = (i) => {
|
|
1052
1052
|
var n;
|
|
1053
1053
|
this.marks[i] || (this.marks[i] = []);
|
|
1054
|
-
const
|
|
1055
|
-
return (n = this.marks[i]) === null || n === void 0 || n.push(
|
|
1054
|
+
const a = [Ut()];
|
|
1055
|
+
return (n = this.marks[i]) === null || n === void 0 || n.push(a), () => a.push(Ut());
|
|
1056
1056
|
}, this.useTile = (i) => {
|
|
1057
1057
|
this.urls.indexOf(i) < 0 && (this.urls.push(i), this.tilesFetched++);
|
|
1058
1058
|
}, this.fetchTile = (i) => {
|
|
@@ -1060,27 +1060,27 @@ Mt(["exports"], function(o) {
|
|
|
1060
1060
|
}, this.addAll = (i) => {
|
|
1061
1061
|
var n;
|
|
1062
1062
|
this.tilesFetched += i.tilesUsed;
|
|
1063
|
-
const
|
|
1063
|
+
const a = 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((f) => f +
|
|
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 + a))) || []);
|
|
1067
1067
|
}
|
|
1068
|
-
this.resources.push(...i.resources.map((l) => Ie(l,
|
|
1068
|
+
this.resources.push(...i.resources.map((l) => Ie(l, a)));
|
|
1069
1069
|
}, this.markFinish = this.marker(e);
|
|
1070
1070
|
}
|
|
1071
1071
|
}
|
|
1072
|
-
const
|
|
1072
|
+
const Oe = /(Start$|End$|^start|^end)/;
|
|
1073
1073
|
function Ie(t, e) {
|
|
1074
1074
|
const i = {};
|
|
1075
1075
|
for (const n in t)
|
|
1076
|
-
t[n] !== 0 &&
|
|
1076
|
+
t[n] !== 0 && Oe.test(n) ? i[n] = Number(t[n]) + e : i[n] = t[n];
|
|
1077
1077
|
return i;
|
|
1078
1078
|
}
|
|
1079
|
-
let
|
|
1080
|
-
class
|
|
1079
|
+
let Ge = 0;
|
|
1080
|
+
class Le {
|
|
1081
1081
|
constructor(e, i, n = 2e4) {
|
|
1082
|
-
this.callbacks = {}, this.cancels = {}, this.dest = e, this.timeoutMs = n, this.dest.onmessage = async ({ data:
|
|
1083
|
-
const l =
|
|
1082
|
+
this.callbacks = {}, this.cancels = {}, this.dest = e, this.timeoutMs = n, this.dest.onmessage = async ({ data: a }) => {
|
|
1083
|
+
const l = a;
|
|
1084
1084
|
if (l.type === "cancel") {
|
|
1085
1085
|
const s = this.cancels[l.id];
|
|
1086
1086
|
delete this.cancels[l.id], s == null || s.abort();
|
|
@@ -1096,18 +1096,18 @@ Mt(["exports"], function(o) {
|
|
|
1096
1096
|
if (l.id && f) {
|
|
1097
1097
|
this.cancels[l.id] = m;
|
|
1098
1098
|
try {
|
|
1099
|
-
const
|
|
1099
|
+
const u = await f, _ = u == null ? void 0 : u.transferrables;
|
|
1100
1100
|
this.postMessage({
|
|
1101
1101
|
id: l.id,
|
|
1102
1102
|
type: "response",
|
|
1103
|
-
response:
|
|
1103
|
+
response: u,
|
|
1104
1104
|
timings: s.finish(h)
|
|
1105
1105
|
}, _);
|
|
1106
|
-
} catch (
|
|
1106
|
+
} catch (u) {
|
|
1107
1107
|
this.postMessage({
|
|
1108
1108
|
id: l.id,
|
|
1109
1109
|
type: "response",
|
|
1110
|
-
error: (
|
|
1110
|
+
error: (u == null ? void 0 : u.toString()) || "error",
|
|
1111
1111
|
timings: s.finish(h)
|
|
1112
1112
|
});
|
|
1113
1113
|
}
|
|
@@ -1120,86 +1120,86 @@ Mt(["exports"], function(o) {
|
|
|
1120
1120
|
this.dest.postMessage(e, i || []);
|
|
1121
1121
|
}
|
|
1122
1122
|
/** Invokes a method by name with a set of arguments in the remote context. */
|
|
1123
|
-
send(e, i, n,
|
|
1124
|
-
const s = ++
|
|
1125
|
-
this.postMessage({ id: s, type: "request", name: e, args: l }, i), this.callbacks[s] = (h,
|
|
1126
|
-
|
|
1123
|
+
send(e, i, n, a, ...l) {
|
|
1124
|
+
const s = ++Ge, c = new Promise((m, f) => {
|
|
1125
|
+
this.postMessage({ id: s, type: "request", name: e, args: l }, i), this.callbacks[s] = (h, u, _) => {
|
|
1126
|
+
a == null || a.addAll(_), h ? f(h) : m(u);
|
|
1127
1127
|
};
|
|
1128
1128
|
});
|
|
1129
1129
|
return U(n, () => {
|
|
1130
1130
|
delete this.callbacks[s], this.postMessage({ id: s, type: "cancel" });
|
|
1131
|
-
}),
|
|
1131
|
+
}), L(this.timeoutMs, c, n);
|
|
1132
1132
|
}
|
|
1133
1133
|
}
|
|
1134
|
-
o.A =
|
|
1134
|
+
o.A = Le, o.H = $, o.L = Re, o.T = Wt, o.a = z, o.b = w, o.c = Dt, o.d = It, o.e = A, o.f = k, o.g = x, o.p = D;
|
|
1135
1135
|
});
|
|
1136
|
-
|
|
1137
|
-
const
|
|
1138
|
-
class
|
|
1136
|
+
Ot(["./shared"], function(o) {
|
|
1137
|
+
const r = (g) => Promise.reject(new Error(`No manager registered for ${g}`));
|
|
1138
|
+
class d {
|
|
1139
1139
|
constructor() {
|
|
1140
|
-
this.managers = {}, this.init = (
|
|
1140
|
+
this.managers = {}, this.init = (w, b) => (this.managers[w.managerId] = new o.L(w.demUrlPattern, w.cacheSize, w.encoding, w.maxzoom, w.timeoutMs), Promise.resolve()), this.fetchTile = (w, b, S, O, A, z) => {
|
|
1141
1141
|
var p;
|
|
1142
|
-
return ((p = this.managers[
|
|
1143
|
-
}, this.fetchAndParseTile = (
|
|
1142
|
+
return ((p = this.managers[w]) === null || p === void 0 ? void 0 : p.fetchTile(b, S, O, A, z)) || r(w);
|
|
1143
|
+
}, this.fetchAndParseTile = (w, b, S, O, A, z) => {
|
|
1144
1144
|
var p;
|
|
1145
|
-
return o.p(((p = this.managers[
|
|
1146
|
-
}, this.fetchContourTile = (
|
|
1147
|
-
var
|
|
1148
|
-
return o.f(((
|
|
1145
|
+
return o.p(((p = this.managers[w]) === null || p === void 0 ? void 0 : p.fetchAndParseTile(b, S, O, A, z)) || r(w), !0);
|
|
1146
|
+
}, this.fetchContourTile = (w, b, S, O, A, z, p) => {
|
|
1147
|
+
var x;
|
|
1148
|
+
return o.f(((x = this.managers[w]) === null || x === void 0 ? void 0 : x.fetchContourTile(b, S, O, A, z, p)) || r(w));
|
|
1149
1149
|
};
|
|
1150
1150
|
}
|
|
1151
1151
|
}
|
|
1152
|
-
const
|
|
1153
|
-
|
|
1152
|
+
const y = typeof self < "u" ? self : typeof window < "u" ? window : global;
|
|
1153
|
+
y.actor = new o.A(y, new d());
|
|
1154
1154
|
});
|
|
1155
|
-
|
|
1156
|
-
const
|
|
1157
|
-
let
|
|
1158
|
-
class
|
|
1155
|
+
Ot(["./shared"], function(o) {
|
|
1156
|
+
const r = { workerUrl: "" };
|
|
1157
|
+
let d, y = 0;
|
|
1158
|
+
class g {
|
|
1159
1159
|
constructor() {
|
|
1160
|
-
this.decodeImage = (
|
|
1160
|
+
this.decodeImage = (x, T, D) => o.p(o.d(x, T, D), !1);
|
|
1161
1161
|
}
|
|
1162
1162
|
}
|
|
1163
|
-
function
|
|
1164
|
-
if (!
|
|
1165
|
-
const p = new Worker(
|
|
1166
|
-
|
|
1163
|
+
function w() {
|
|
1164
|
+
if (!d) {
|
|
1165
|
+
const p = new Worker(r.workerUrl), x = new g();
|
|
1166
|
+
d = new o.A(p, x);
|
|
1167
1167
|
}
|
|
1168
|
-
return
|
|
1168
|
+
return d;
|
|
1169
1169
|
}
|
|
1170
1170
|
class b {
|
|
1171
|
-
constructor(
|
|
1172
|
-
this.fetchTile = (
|
|
1173
|
-
const tt = this.managerId = ++
|
|
1174
|
-
this.actor = ct ||
|
|
1171
|
+
constructor(x, T, D, k, j, ct) {
|
|
1172
|
+
this.fetchTile = (Y, L, U, B, E) => this.actor.send("fetchTile", [], B, E, this.managerId, Y, L, U), this.fetchAndParseTile = (Y, L, U, B, E) => this.actor.send("fetchAndParseTile", [], B, E, this.managerId, Y, L, U), this.fetchContourTile = (Y, L, U, B, E, Z) => this.actor.send("fetchContourTile", [], E, Z, this.managerId, Y, L, U, B);
|
|
1173
|
+
const tt = this.managerId = ++y;
|
|
1174
|
+
this.actor = ct || w(), this.loaded = this.actor.send("init", [], new AbortController(), void 0, {
|
|
1175
1175
|
cacheSize: T,
|
|
1176
|
-
demUrlPattern:
|
|
1176
|
+
demUrlPattern: x,
|
|
1177
1177
|
encoding: D,
|
|
1178
|
-
maxzoom:
|
|
1178
|
+
maxzoom: k,
|
|
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((
|
|
1185
|
+
return new Promise((x, T) => {
|
|
1186
1186
|
const D = new FileReader();
|
|
1187
|
-
D.onload = (
|
|
1187
|
+
D.onload = (k) => {
|
|
1188
1188
|
var j;
|
|
1189
|
-
return
|
|
1189
|
+
return x((j = k.target) === null || j === void 0 ? void 0 : j.result);
|
|
1190
1190
|
}, D.onerror = T, D.readAsArrayBuffer(this);
|
|
1191
1191
|
});
|
|
1192
1192
|
});
|
|
1193
|
-
const S = (p) => (
|
|
1193
|
+
const S = (p) => (x, T) => {
|
|
1194
1194
|
if (T instanceof AbortController)
|
|
1195
|
-
return p(
|
|
1195
|
+
return p(x, T);
|
|
1196
1196
|
{
|
|
1197
1197
|
const D = new AbortController();
|
|
1198
|
-
return p(
|
|
1198
|
+
return p(x, D).then((k) => T(void 0, k.data, k.cacheControl, k.expires), (k) => T(k)), { cancel: () => D.abort() };
|
|
1199
1199
|
}
|
|
1200
|
-
},
|
|
1201
|
-
class
|
|
1202
|
-
constructor({ url:
|
|
1200
|
+
}, O = /* @__PURE__ */ new Set();
|
|
1201
|
+
class A {
|
|
1202
|
+
constructor({ url: x, cacheSize: T = 100, id: D = "dem", encoding: k = "terrarium", maxzoom: j = 12, worker: ct = !0, timeoutMs: tt = 1e4, actor: Y }) {
|
|
1203
1203
|
this.timingCallbacks = [], this.onTiming = (E) => {
|
|
1204
1204
|
this.timingCallbacks.push(E);
|
|
1205
1205
|
}, this.setupMaplibre = (E) => {
|
|
@@ -1231,112 +1231,112 @@ Mt(["./shared"], function(o) {
|
|
|
1231
1231
|
this.timingCallbacks.forEach((N) => N(et));
|
|
1232
1232
|
}
|
|
1233
1233
|
}, this.contourProtocol = S(this.contourProtocolV4), this.sharedDemProtocol = S(this.sharedDemProtocolV4), this.contourProtocolUrl = (E) => `${this.contourProtocolUrlBase}?${o.e(E)}`;
|
|
1234
|
-
let
|
|
1235
|
-
for (;
|
|
1236
|
-
|
|
1237
|
-
|
|
1234
|
+
let L = D, U = 1;
|
|
1235
|
+
for (; O.has(L); )
|
|
1236
|
+
L = D + U++;
|
|
1237
|
+
O.add(L), this.sharedDemProtocolId = `${L}-shared`, this.contourProtocolId = `${L}-contour`, this.sharedDemProtocolUrl = `${this.sharedDemProtocolId}://{z}/{x}/{y}`, this.contourProtocolUrlBase = `${this.contourProtocolId}://{z}/{x}/{y}`;
|
|
1238
1238
|
const B = ct ? b : o.L;
|
|
1239
|
-
this.manager = new B(
|
|
1239
|
+
this.manager = new B(x, T, k, j, tt, Y);
|
|
1240
1240
|
}
|
|
1241
|
-
getDemTile(
|
|
1242
|
-
return this.manager.fetchAndParseTile(
|
|
1241
|
+
getDemTile(x, T, D, k) {
|
|
1242
|
+
return this.manager.fetchAndParseTile(x, T, D, k || new AbortController());
|
|
1243
1243
|
}
|
|
1244
|
-
parseUrl(
|
|
1245
|
-
const [, T, D,
|
|
1246
|
-
return [Number(T), Number(D), Number(
|
|
1244
|
+
parseUrl(x) {
|
|
1245
|
+
const [, T, D, k] = /\/\/(\d+)\/(\d+)\/(\d+)/.exec(x) || [];
|
|
1246
|
+
return [Number(T), Number(D), Number(k)];
|
|
1247
1247
|
}
|
|
1248
1248
|
}
|
|
1249
1249
|
return {
|
|
1250
1250
|
generateIsolines: o.b,
|
|
1251
|
-
DemSource:
|
|
1251
|
+
DemSource: A,
|
|
1252
1252
|
HeightTile: o.H,
|
|
1253
1253
|
LocalDemManager: o.L,
|
|
1254
1254
|
decodeParsedImage: o.c,
|
|
1255
1255
|
set workerUrl(p) {
|
|
1256
|
-
|
|
1256
|
+
r.workerUrl = p;
|
|
1257
1257
|
},
|
|
1258
1258
|
get workerUrl() {
|
|
1259
|
-
return
|
|
1259
|
+
return r.workerUrl;
|
|
1260
1260
|
}
|
|
1261
1261
|
};
|
|
1262
1262
|
});
|
|
1263
|
-
var Be =
|
|
1263
|
+
var Be = Pt;
|
|
1264
1264
|
function Xe(o) {
|
|
1265
1265
|
return o;
|
|
1266
1266
|
}
|
|
1267
1267
|
function Ne(o) {
|
|
1268
1268
|
if (o == null) return Xe;
|
|
1269
|
-
var
|
|
1270
|
-
return function(S,
|
|
1271
|
-
|
|
1272
|
-
var
|
|
1273
|
-
for (p[0] = (
|
|
1269
|
+
var r, d, y = o.scale[0], g = o.scale[1], w = o.translate[0], b = o.translate[1];
|
|
1270
|
+
return function(S, O) {
|
|
1271
|
+
O || (r = d = 0);
|
|
1272
|
+
var A = 2, z = S.length, p = new Array(z);
|
|
1273
|
+
for (p[0] = (r += S[0]) * y + w, p[1] = (d += S[1]) * g + b; A < z; ) p[A] = S[A], ++A;
|
|
1274
1274
|
return p;
|
|
1275
1275
|
};
|
|
1276
1276
|
}
|
|
1277
|
-
function Ve(o,
|
|
1278
|
-
for (var
|
|
1277
|
+
function Ve(o, r) {
|
|
1278
|
+
for (var d, y = o.length, g = y - r; g < --y; ) d = o[g], o[g++] = o[y], o[y] = d;
|
|
1279
1279
|
}
|
|
1280
|
-
function $t(o,
|
|
1281
|
-
return typeof
|
|
1282
|
-
return Kt(o,
|
|
1283
|
-
}) } : Kt(o,
|
|
1280
|
+
function $t(o, r) {
|
|
1281
|
+
return typeof r == "string" && (r = o.objects[r]), r.type === "GeometryCollection" ? { type: "FeatureCollection", features: r.geometries.map(function(d) {
|
|
1282
|
+
return Kt(o, d);
|
|
1283
|
+
}) } : Kt(o, r);
|
|
1284
1284
|
}
|
|
1285
|
-
function Kt(o,
|
|
1286
|
-
var
|
|
1287
|
-
return
|
|
1285
|
+
function Kt(o, r) {
|
|
1286
|
+
var d = r.id, y = r.bbox, g = r.properties == null ? {} : r.properties, w = Ue(o, r);
|
|
1287
|
+
return d == null && y == null ? { type: "Feature", properties: g, geometry: w } : y == null ? { type: "Feature", id: d, properties: g, geometry: w } : { type: "Feature", id: d, bbox: y, properties: g, geometry: w };
|
|
1288
1288
|
}
|
|
1289
|
-
function Ue(o,
|
|
1290
|
-
var
|
|
1291
|
-
function
|
|
1289
|
+
function Ue(o, r) {
|
|
1290
|
+
var d = Ne(o.transform), y = o.arcs;
|
|
1291
|
+
function g(z, p) {
|
|
1292
1292
|
p.length && p.pop();
|
|
1293
|
-
for (var
|
|
1294
|
-
p.push(
|
|
1293
|
+
for (var x = y[z < 0 ? ~z : z], T = 0, D = x.length; T < D; ++T)
|
|
1294
|
+
p.push(d(x[T], T));
|
|
1295
1295
|
z < 0 && Ve(p, D);
|
|
1296
1296
|
}
|
|
1297
|
-
function
|
|
1298
|
-
return
|
|
1297
|
+
function w(z) {
|
|
1298
|
+
return d(z);
|
|
1299
1299
|
}
|
|
1300
1300
|
function b(z) {
|
|
1301
|
-
for (var p = [],
|
|
1301
|
+
for (var p = [], x = 0, T = z.length; x < T; ++x) g(z[x], p);
|
|
1302
1302
|
return p.length < 2 && p.push(p[0]), p;
|
|
1303
1303
|
}
|
|
1304
1304
|
function S(z) {
|
|
1305
1305
|
for (var p = b(z); p.length < 4; ) p.push(p[0]);
|
|
1306
1306
|
return p;
|
|
1307
1307
|
}
|
|
1308
|
-
function
|
|
1308
|
+
function O(z) {
|
|
1309
1309
|
return z.map(S);
|
|
1310
1310
|
}
|
|
1311
|
-
function
|
|
1312
|
-
var p = z.type,
|
|
1311
|
+
function A(z) {
|
|
1312
|
+
var p = z.type, x;
|
|
1313
1313
|
switch (p) {
|
|
1314
1314
|
case "GeometryCollection":
|
|
1315
|
-
return { type: p, geometries: z.geometries.map(
|
|
1315
|
+
return { type: p, geometries: z.geometries.map(A) };
|
|
1316
1316
|
case "Point":
|
|
1317
|
-
|
|
1317
|
+
x = w(z.coordinates);
|
|
1318
1318
|
break;
|
|
1319
1319
|
case "MultiPoint":
|
|
1320
|
-
|
|
1320
|
+
x = z.coordinates.map(w);
|
|
1321
1321
|
break;
|
|
1322
1322
|
case "LineString":
|
|
1323
|
-
|
|
1323
|
+
x = b(z.arcs);
|
|
1324
1324
|
break;
|
|
1325
1325
|
case "MultiLineString":
|
|
1326
|
-
|
|
1326
|
+
x = z.arcs.map(b);
|
|
1327
1327
|
break;
|
|
1328
1328
|
case "Polygon":
|
|
1329
|
-
|
|
1329
|
+
x = O(z.arcs);
|
|
1330
1330
|
break;
|
|
1331
1331
|
case "MultiPolygon":
|
|
1332
|
-
|
|
1332
|
+
x = z.arcs.map(O);
|
|
1333
1333
|
break;
|
|
1334
1334
|
default:
|
|
1335
1335
|
return null;
|
|
1336
1336
|
}
|
|
1337
|
-
return { type: p, coordinates:
|
|
1337
|
+
return { type: p, coordinates: x };
|
|
1338
1338
|
}
|
|
1339
|
-
return
|
|
1339
|
+
return A(r);
|
|
1340
1340
|
}
|
|
1341
1341
|
const We = {
|
|
1342
1342
|
airspaceStroke: "#AAB7B8",
|
|
@@ -1351,7 +1351,7 @@ const We = {
|
|
|
1351
1351
|
runway: "#333333"
|
|
1352
1352
|
};
|
|
1353
1353
|
function je() {
|
|
1354
|
-
const o = "navdata",
|
|
1354
|
+
const o = "navdata", r = We;
|
|
1355
1355
|
return [
|
|
1356
1356
|
{
|
|
1357
1357
|
id: "landLaye",
|
|
@@ -1408,7 +1408,7 @@ function je() {
|
|
|
1408
1408
|
"source-layer": "fir",
|
|
1409
1409
|
minzoom: 2,
|
|
1410
1410
|
// layout: { "line-cap": "butt", "line-join": "miter", "line-miter-limit": 0 },
|
|
1411
|
-
paint: { "line-color":
|
|
1411
|
+
paint: { "line-color": r.airspaceStroke, "line-opacity": ["interpolate", ["linear"], ["zoom"], 2, 0, 2.7, 0.8, 9, 0.8, 10, 0.5], "line-width": 0.5, "line-dasharray": [4.2, 4] }
|
|
1412
1412
|
},
|
|
1413
1413
|
{
|
|
1414
1414
|
id: "fir_line_dash",
|
|
@@ -1417,7 +1417,7 @@ function je() {
|
|
|
1417
1417
|
"source-layer": "fir",
|
|
1418
1418
|
minzoom: 5,
|
|
1419
1419
|
layout: { "line-miter-limit": 0, "line-cap": "butt", "line-join": "miter" },
|
|
1420
|
-
paint: { "line-color":
|
|
1420
|
+
paint: { "line-color": r.airspaceStroke, "line-opacity": ["interpolate", ["linear"], ["zoom"], 5, 0, 5.5, 0.8, 9, 0.8, 10, 0.5], "line-width": 6, "line-dasharray": [0.2, 5] }
|
|
1421
1421
|
},
|
|
1422
1422
|
{
|
|
1423
1423
|
id: "fir-label-lineside",
|
|
@@ -1426,7 +1426,7 @@ function je() {
|
|
|
1426
1426
|
"source-layer": "fir",
|
|
1427
1427
|
minzoom: 4,
|
|
1428
1428
|
layout: { "text-field": ["concat", ["get", "TXT_NAME"], "/", ["get", "CODE_ID"], "/", ["get", "CODE_TYPE"]], "text-size": 10, "symbol-placement": "line", "text-max-width": 8, "text-offset": [0, 1], "text-letter-spacing": 0.05, "text-optional": !0 },
|
|
1429
|
-
paint: { "text-color":
|
|
1429
|
+
paint: { "text-color": r.airspaceStroke }
|
|
1430
1430
|
},
|
|
1431
1431
|
{
|
|
1432
1432
|
id: "fir-label",
|
|
@@ -1441,7 +1441,7 @@ function je() {
|
|
|
1441
1441
|
"text-max-width": 8
|
|
1442
1442
|
},
|
|
1443
1443
|
paint: {
|
|
1444
|
-
"text-color":
|
|
1444
|
+
"text-color": r.airspaceStroke,
|
|
1445
1445
|
"text-opacity": ["interpolate", ["linear"], ["zoom"], 3, 0.85, 8, 0.7, 12, 0.5]
|
|
1446
1446
|
}
|
|
1447
1447
|
},
|
|
@@ -1483,7 +1483,7 @@ function je() {
|
|
|
1483
1483
|
"source-layer": "restricted",
|
|
1484
1484
|
minzoom: 6,
|
|
1485
1485
|
layout: { "text-field": ["concat", ["get", "TXT_NAME"], "/", ["get", "CODE_ID"], "/", ["get", "CODE_TYPE"]], "text-letter-spacing": 0.1, "text-size": 10, "symbol-placement": "line", "text-max-width": 8, "text-offset": [0, 1] },
|
|
1486
|
-
paint: { "text-color":
|
|
1486
|
+
paint: { "text-color": r.restrictedStroke }
|
|
1487
1487
|
},
|
|
1488
1488
|
{
|
|
1489
1489
|
id: "controlled-fill",
|
|
@@ -1491,15 +1491,8 @@ function je() {
|
|
|
1491
1491
|
source: o,
|
|
1492
1492
|
"source-layer": "controlled-fill",
|
|
1493
1493
|
minzoom: 4,
|
|
1494
|
-
filter: [
|
|
1495
|
-
"all",
|
|
1496
|
-
["!=", ["get", "CODE_TYPE"], "CTA"],
|
|
1497
|
-
["!=", ["get", "CODE_TYPE"], "ARSA"],
|
|
1498
|
-
["!=", ["get", "CODE_TYPE"], "TCA"],
|
|
1499
|
-
["!=", ["get", "CODE_TYPE"], "TRSA"]
|
|
1500
|
-
],
|
|
1501
1494
|
paint: {
|
|
1502
|
-
"fill-color":
|
|
1495
|
+
"fill-color": r.controlledFill,
|
|
1503
1496
|
"fill-opacity": [
|
|
1504
1497
|
"interpolate",
|
|
1505
1498
|
[
|
|
@@ -1520,14 +1513,8 @@ function je() {
|
|
|
1520
1513
|
type: "line",
|
|
1521
1514
|
source: o,
|
|
1522
1515
|
"source-layer": "controlled",
|
|
1523
|
-
filter: [
|
|
1524
|
-
"all",
|
|
1525
|
-
["!=", ["get", "CODE_TYPE"], "ARSA"],
|
|
1526
|
-
["!=", ["get", "CODE_TYPE"], "TCA"],
|
|
1527
|
-
["!=", ["get", "CODE_TYPE"], "TRSA"]
|
|
1528
|
-
],
|
|
1529
1516
|
paint: {
|
|
1530
|
-
"line-color":
|
|
1517
|
+
"line-color": r.controlledStroke,
|
|
1531
1518
|
"line-width": 1,
|
|
1532
1519
|
"line-opacity": ["interpolate", ["linear"], ["zoom"], 4, 0.5, 8, 1],
|
|
1533
1520
|
"line-dasharray": [
|
|
@@ -1538,18 +1525,12 @@ function je() {
|
|
|
1538
1525
|
},
|
|
1539
1526
|
{
|
|
1540
1527
|
id: "controlled-label",
|
|
1541
|
-
filter: [
|
|
1542
|
-
"all",
|
|
1543
|
-
["!=", ["get", "CODE_TYPE"], "ARSA"],
|
|
1544
|
-
["!=", ["get", "CODE_TYPE"], "TCA"],
|
|
1545
|
-
["!=", ["get", "CODE_TYPE"], "TRSA"]
|
|
1546
|
-
],
|
|
1547
1528
|
type: "symbol",
|
|
1548
1529
|
source: o,
|
|
1549
1530
|
"source-layer": "controlled",
|
|
1550
1531
|
minzoom: 6,
|
|
1551
1532
|
layout: { "text-field": ["concat", ["get", "TXT_NAME"], "/", ["get", "CODE_ID"], "/", ["get", "CODE_TYPE"]], "text-size": 10, "symbol-placement": "line", "text-letter-spacing": 0.2, "text-max-width": 8, "text-offset": [0, 1] },
|
|
1552
|
-
paint: { "text-color":
|
|
1533
|
+
paint: { "text-color": r.controlledStroke }
|
|
1553
1534
|
},
|
|
1554
1535
|
{
|
|
1555
1536
|
id: "segment-line",
|
|
@@ -1558,7 +1539,7 @@ function je() {
|
|
|
1558
1539
|
"source-layer": "segment",
|
|
1559
1540
|
minzoom: 5,
|
|
1560
1541
|
paint: {
|
|
1561
|
-
"line-color": ["case", ["==", ["get", "HAS_REMARK"], 1], "#E8A020",
|
|
1542
|
+
"line-color": ["case", ["==", ["get", "HAS_REMARK"], 1], "#E8A020", r.segment],
|
|
1562
1543
|
"line-width": ["interpolate", ["linear"], ["zoom"], 5, 0.2, 8, 0.8],
|
|
1563
1544
|
"line-blur": 0,
|
|
1564
1545
|
"line-opacity": [
|
|
@@ -1634,7 +1615,7 @@ function je() {
|
|
|
1634
1615
|
paint: {
|
|
1635
1616
|
"text-halo-color": "#ffffff",
|
|
1636
1617
|
"text-halo-width": 0.1,
|
|
1637
|
-
"icon-color":
|
|
1618
|
+
"icon-color": r.segment,
|
|
1638
1619
|
"text-opacity": [
|
|
1639
1620
|
"interpolate",
|
|
1640
1621
|
[
|
|
@@ -1683,7 +1664,7 @@ function je() {
|
|
|
1683
1664
|
"text-offset": [0, -0.6],
|
|
1684
1665
|
"text-justify": "auto"
|
|
1685
1666
|
},
|
|
1686
|
-
paint: { "text-color":
|
|
1667
|
+
paint: { "text-color": r.segment }
|
|
1687
1668
|
},
|
|
1688
1669
|
{
|
|
1689
1670
|
id: "airport-circle",
|
|
@@ -1728,7 +1709,7 @@ function je() {
|
|
|
1728
1709
|
"case",
|
|
1729
1710
|
["has", "has_amm"],
|
|
1730
1711
|
"#4B2D6E",
|
|
1731
|
-
|
|
1712
|
+
r.airport
|
|
1732
1713
|
],
|
|
1733
1714
|
"icon-opacity": [
|
|
1734
1715
|
"interpolate",
|
|
@@ -1783,7 +1764,7 @@ function je() {
|
|
|
1783
1764
|
"case",
|
|
1784
1765
|
["has", "has_amm"],
|
|
1785
1766
|
"#4B2D6E",
|
|
1786
|
-
|
|
1767
|
+
r.airport
|
|
1787
1768
|
]
|
|
1788
1769
|
}
|
|
1789
1770
|
},
|
|
@@ -1796,7 +1777,7 @@ function je() {
|
|
|
1796
1777
|
minzoom: 4,
|
|
1797
1778
|
maxzoom: 11,
|
|
1798
1779
|
paint: {
|
|
1799
|
-
"line-color":
|
|
1780
|
+
"line-color": r.runway,
|
|
1800
1781
|
"line-width": ["interpolate", ["linear"], ["zoom"], 4, 1, 13, 10]
|
|
1801
1782
|
}
|
|
1802
1783
|
},
|
|
@@ -1809,7 +1790,7 @@ function je() {
|
|
|
1809
1790
|
minzoom: 4,
|
|
1810
1791
|
maxzoom: 11,
|
|
1811
1792
|
paint: {
|
|
1812
|
-
"line-color":
|
|
1793
|
+
"line-color": r.runway,
|
|
1813
1794
|
"line-width": ["interpolate", ["linear"], ["zoom"], 4, 1, 10, 4],
|
|
1814
1795
|
"line-opacity": ["interpolate", ["linear"], ["zoom"], 10.5, 1, 11, 0]
|
|
1815
1796
|
}
|
|
@@ -1828,7 +1809,7 @@ function je() {
|
|
|
1828
1809
|
"text-optional": !0
|
|
1829
1810
|
},
|
|
1830
1811
|
paint: {
|
|
1831
|
-
"text-color":
|
|
1812
|
+
"text-color": r.runway,
|
|
1832
1813
|
"text-halo-width": 1,
|
|
1833
1814
|
"text-opacity": ["interpolate", ["linear"], ["zoom"], 10.5, 1, 11, 0]
|
|
1834
1815
|
}
|
|
@@ -1880,7 +1861,7 @@ function je() {
|
|
|
1880
1861
|
"source-layer": "vor",
|
|
1881
1862
|
minzoom: 5,
|
|
1882
1863
|
layout: { "text-field": ["get", "CODE_ID"], "text-size": 10, "text-anchor": "bottom", "text-offset": [0, -0.8] },
|
|
1883
|
-
paint: { "text-color":
|
|
1864
|
+
paint: { "text-color": r.vor, "text-halo-color": "#ffffff", "text-halo-width": 1 }
|
|
1884
1865
|
},
|
|
1885
1866
|
{
|
|
1886
1867
|
id: "ndb-symbol",
|
|
@@ -1900,7 +1881,7 @@ function je() {
|
|
|
1900
1881
|
"CODE_ID"
|
|
1901
1882
|
],
|
|
1902
1883
|
{
|
|
1903
|
-
"text-color":
|
|
1884
|
+
"text-color": r.ndb,
|
|
1904
1885
|
"font-scale": 1.1
|
|
1905
1886
|
},
|
|
1906
1887
|
"",
|
|
@@ -1914,7 +1895,7 @@ function je() {
|
|
|
1914
1895
|
""
|
|
1915
1896
|
],
|
|
1916
1897
|
{
|
|
1917
|
-
"text-color":
|
|
1898
|
+
"text-color": r.ndb,
|
|
1918
1899
|
"font-scale": 0.95
|
|
1919
1900
|
}
|
|
1920
1901
|
],
|
|
@@ -1926,11 +1907,11 @@ function je() {
|
|
|
1926
1907
|
"text-anchor": "top"
|
|
1927
1908
|
},
|
|
1928
1909
|
paint: {
|
|
1929
|
-
"text-color":
|
|
1910
|
+
"text-color": r.ndb,
|
|
1930
1911
|
"text-halo-color": "#ffffff",
|
|
1931
1912
|
"text-halo-width": 0.5,
|
|
1932
1913
|
"text-halo-blur": 1,
|
|
1933
|
-
"icon-color":
|
|
1914
|
+
"icon-color": r.ndb,
|
|
1934
1915
|
"text-opacity": [
|
|
1935
1916
|
"interpolate",
|
|
1936
1917
|
[
|
|
@@ -1993,8 +1974,8 @@ function je() {
|
|
|
1993
1974
|
"text-justify": "auto"
|
|
1994
1975
|
},
|
|
1995
1976
|
paint: {
|
|
1996
|
-
"icon-color":
|
|
1997
|
-
"text-color":
|
|
1977
|
+
"icon-color": r.waypoint,
|
|
1978
|
+
"text-color": r.waypoint,
|
|
1998
1979
|
"text-halo-color": "#ffffff",
|
|
1999
1980
|
"text-halo-width": 1,
|
|
2000
1981
|
"icon-halo-color": "rgba(0,0,0,0)",
|
|
@@ -2041,8 +2022,8 @@ function je() {
|
|
|
2041
2022
|
minzoom: 7,
|
|
2042
2023
|
layout: { "icon-image": ["case", ["==", ["get", "report_type"], "C"], "designate_point_inway", "designate_point_notinway"], "icon-size": 0.6, "icon-allow-overlap": !0, "icon-ignore-placement": !0, "text-field": ["get", "CODE_ID"], "text-size": 9, "text-variable-anchor-offset": ["bottom", [0, -0.6], "top", [0, 0.6], "right", [-0.6, 0], "left", [0.6, 0], "bottom-right", [-0.4, -0.4], "bottom-left", [0.4, -0.4], "top-right", [-0.4, 0.4], "top-left", [0.4, 0.4]], "text-justify": "auto", "text-optional": !0 },
|
|
2043
2024
|
paint: {
|
|
2044
|
-
"icon-color":
|
|
2045
|
-
"text-color":
|
|
2025
|
+
"icon-color": r.waypoint,
|
|
2026
|
+
"text-color": r.waypoint,
|
|
2046
2027
|
"text-halo-color": "#ffffff",
|
|
2047
2028
|
"text-halo-width": 1,
|
|
2048
2029
|
"icon-opacity": [
|
|
@@ -2092,7 +2073,7 @@ const $e = {
|
|
|
2092
2073
|
runway: "#64748b"
|
|
2093
2074
|
};
|
|
2094
2075
|
function Ke() {
|
|
2095
|
-
const o = "navdata",
|
|
2076
|
+
const o = "navdata", r = $e;
|
|
2096
2077
|
return [
|
|
2097
2078
|
{
|
|
2098
2079
|
id: "landLaye",
|
|
@@ -2149,7 +2130,7 @@ function Ke() {
|
|
|
2149
2130
|
"source-layer": "fir",
|
|
2150
2131
|
minzoom: 2,
|
|
2151
2132
|
layout: { "line-cap": "butt", "line-join": "miter", "line-miter-limit": 0 },
|
|
2152
|
-
paint: { "line-color":
|
|
2133
|
+
paint: { "line-color": r.airspaceStroke, "line-opacity": ["interpolate", ["linear"], ["zoom"], 2, 0, 2.7, 0.8, 9, 0.8, 10, 0.5], "line-width": 0.8, "line-dasharray": [4.2, 4] }
|
|
2153
2134
|
},
|
|
2154
2135
|
{
|
|
2155
2136
|
id: "fir_line_dash",
|
|
@@ -2158,7 +2139,7 @@ function Ke() {
|
|
|
2158
2139
|
"source-layer": "fir",
|
|
2159
2140
|
minzoom: 5,
|
|
2160
2141
|
layout: { "line-miter-limit": 0, "line-cap": "butt", "line-join": "miter" },
|
|
2161
|
-
paint: { "line-color":
|
|
2142
|
+
paint: { "line-color": r.airspaceStroke, "line-opacity": ["interpolate", ["linear"], ["zoom"], 5, 0, 5.5, 0.8, 9, 0.8, 10, 0.5], "line-width": 5, "line-dasharray": [0.2, 5] }
|
|
2162
2143
|
},
|
|
2163
2144
|
{
|
|
2164
2145
|
id: "fir-label-lineside",
|
|
@@ -2167,7 +2148,7 @@ function Ke() {
|
|
|
2167
2148
|
"source-layer": "fir",
|
|
2168
2149
|
minzoom: 4,
|
|
2169
2150
|
layout: { "text-field": ["concat", ["get", "TXT_NAME"], "/", ["get", "CODE_ID"], "/", ["get", "CODE_TYPE"]], "text-size": 10, "symbol-placement": "line", "text-max-width": 8, "text-offset": [0, 1], "text-letter-spacing": 0.05, "text-optional": !0 },
|
|
2170
|
-
paint: { "text-color":
|
|
2151
|
+
paint: { "text-color": r.airspaceStroke, "text-halo-color": "#0f172a", "text-halo-width": 1 }
|
|
2171
2152
|
},
|
|
2172
2153
|
{
|
|
2173
2154
|
id: "fir-label",
|
|
@@ -2182,7 +2163,7 @@ function Ke() {
|
|
|
2182
2163
|
"text-max-width": 8
|
|
2183
2164
|
},
|
|
2184
2165
|
paint: {
|
|
2185
|
-
"text-color":
|
|
2166
|
+
"text-color": r.airspaceStroke,
|
|
2186
2167
|
"text-halo-color": "#0f172a",
|
|
2187
2168
|
"text-halo-width": 1.5,
|
|
2188
2169
|
"text-opacity": ["interpolate", ["linear"], ["zoom"], 3, 0.85, 8, 0.7, 12, 0.5]
|
|
@@ -2201,7 +2182,7 @@ function Ke() {
|
|
|
2201
2182
|
type: "line",
|
|
2202
2183
|
source: o,
|
|
2203
2184
|
"source-layer": "restricted",
|
|
2204
|
-
paint: { "line-color":
|
|
2185
|
+
paint: { "line-color": r.restrictedStroke, "line-width": 1, "line-dasharray": [2, 2], "line-opacity": ["interpolate", ["linear"], ["zoom"], 4, 0.6, 8, 1] }
|
|
2205
2186
|
},
|
|
2206
2187
|
{
|
|
2207
2188
|
id: "restricted-label",
|
|
@@ -2210,7 +2191,7 @@ function Ke() {
|
|
|
2210
2191
|
"source-layer": "restricted",
|
|
2211
2192
|
minzoom: 6,
|
|
2212
2193
|
layout: { "text-field": ["coalesce", ["get", "TXT_NAME"], ["get", "CODE_ID"]], "text-size": 10, "symbol-placement": "line", "text-max-width": 8, "text-offset": [0, 1] },
|
|
2213
|
-
paint: { "text-color":
|
|
2194
|
+
paint: { "text-color": r.restrictedStroke, "text-halo-color": "#0f172a", "text-halo-width": 1 }
|
|
2214
2195
|
},
|
|
2215
2196
|
{
|
|
2216
2197
|
id: "controlled-fill",
|
|
@@ -2218,14 +2199,14 @@ function Ke() {
|
|
|
2218
2199
|
source: o,
|
|
2219
2200
|
"source-layer": "controlled-fill",
|
|
2220
2201
|
minzoom: 4,
|
|
2221
|
-
paint: { "fill-color":
|
|
2202
|
+
paint: { "fill-color": r.controlledFill, "fill-opacity": 0.03 }
|
|
2222
2203
|
},
|
|
2223
2204
|
{
|
|
2224
2205
|
id: "controlled-stroke",
|
|
2225
2206
|
type: "line",
|
|
2226
2207
|
source: o,
|
|
2227
2208
|
"source-layer": "controlled",
|
|
2228
|
-
paint: { "line-color":
|
|
2209
|
+
paint: { "line-color": r.controlledStroke, "line-width": 1, "line-opacity": ["interpolate", ["linear"], ["zoom"], 4, 0.6, 8, 1], "line-dasharray": [2, 2] }
|
|
2229
2210
|
},
|
|
2230
2211
|
{
|
|
2231
2212
|
id: "controlled-label",
|
|
@@ -2234,7 +2215,7 @@ function Ke() {
|
|
|
2234
2215
|
"source-layer": "controlled",
|
|
2235
2216
|
minzoom: 6,
|
|
2236
2217
|
layout: { "text-field": ["coalesce", ["get", "TXT_NAME"], ["get", "CODE_ID"]], "text-size": 10, "symbol-placement": "point", "text-max-width": 8 },
|
|
2237
|
-
paint: { "text-color":
|
|
2218
|
+
paint: { "text-color": r.controlledStroke, "text-halo-color": "#0f172a", "text-halo-width": 1.5 }
|
|
2238
2219
|
},
|
|
2239
2220
|
{
|
|
2240
2221
|
id: "segment-line",
|
|
@@ -2243,7 +2224,7 @@ function Ke() {
|
|
|
2243
2224
|
"source-layer": "segment",
|
|
2244
2225
|
minzoom: 5,
|
|
2245
2226
|
paint: {
|
|
2246
|
-
"line-color": ["case", ["==", ["get", "HAS_REMARK"], 1], "#fbbf24",
|
|
2227
|
+
"line-color": ["case", ["==", ["get", "HAS_REMARK"], 1], "#fbbf24", r.segment],
|
|
2247
2228
|
"line-width": ["interpolate", ["linear"], ["zoom"], 5, 0.2, 8, 0.8],
|
|
2248
2229
|
"line-blur": 0,
|
|
2249
2230
|
"line-opacity": [
|
|
@@ -2315,7 +2296,7 @@ function Ke() {
|
|
|
2315
2296
|
"text-size": ["interpolate", ["linear"], ["zoom"], 6, 9, 10, 10],
|
|
2316
2297
|
"icon-text-fit-padding": [0, 3, 0, 3]
|
|
2317
2298
|
},
|
|
2318
|
-
paint: { "icon-color":
|
|
2299
|
+
paint: { "icon-color": r.segment }
|
|
2319
2300
|
},
|
|
2320
2301
|
{
|
|
2321
2302
|
id: "segment-radial",
|
|
@@ -2324,7 +2305,7 @@ function Ke() {
|
|
|
2324
2305
|
"source-layer": "segment-radial",
|
|
2325
2306
|
minzoom: 10,
|
|
2326
2307
|
layout: { "text-field": ["concat", ["get", "bearing"], "°"], "text-size": 9, "text-rotate": ["to-number", ["get", "line_angle"], 0], "text-rotation-alignment": "map", "text-allow-overlap": !0, "text-ignore-placement": !0, "text-offset": [0, -1] },
|
|
2327
|
-
paint: { "text-color":
|
|
2308
|
+
paint: { "text-color": r.segment, "text-halo-color": "#0f172a", "text-halo-width": 1 }
|
|
2328
2309
|
},
|
|
2329
2310
|
{
|
|
2330
2311
|
id: "airport-circle",
|
|
@@ -2369,7 +2350,7 @@ function Ke() {
|
|
|
2369
2350
|
"case",
|
|
2370
2351
|
["has", "has_amm"],
|
|
2371
2352
|
"#4B2D6E",
|
|
2372
|
-
|
|
2353
|
+
r.airport
|
|
2373
2354
|
],
|
|
2374
2355
|
"icon-opacity": [
|
|
2375
2356
|
"interpolate",
|
|
@@ -2435,7 +2416,7 @@ function Ke() {
|
|
|
2435
2416
|
"source-layer": "runway",
|
|
2436
2417
|
filter: ["!", ["has", "has_amm"]],
|
|
2437
2418
|
minzoom: 4,
|
|
2438
|
-
paint: { "line-color":
|
|
2419
|
+
paint: { "line-color": r.runway, "line-width": ["interpolate", ["linear"], ["zoom"], 4, 1, 10, 3] }
|
|
2439
2420
|
},
|
|
2440
2421
|
{
|
|
2441
2422
|
id: "runway-line-amm",
|
|
@@ -2444,7 +2425,7 @@ function Ke() {
|
|
|
2444
2425
|
"source-layer": "runway",
|
|
2445
2426
|
filter: ["has", "has_amm"],
|
|
2446
2427
|
minzoom: 4,
|
|
2447
|
-
paint: { "line-color":
|
|
2428
|
+
paint: { "line-color": r.runway, "line-width": ["interpolate", ["linear"], ["zoom"], 4, 1, 10, 3], "line-opacity": ["interpolate", ["linear"], ["zoom"], 10.5, 1, 11, 0] }
|
|
2448
2429
|
},
|
|
2449
2430
|
{
|
|
2450
2431
|
id: "runway-label",
|
|
@@ -2453,7 +2434,7 @@ function Ke() {
|
|
|
2453
2434
|
"source-layer": "runway",
|
|
2454
2435
|
minzoom: 10,
|
|
2455
2436
|
layout: { "text-field": ["concat", ["to-string", ["get", "VAL_LEN"]], "×", ["to-string", ["get", "VAL_WID"]], "m"], "text-size": 10, "text-font": ["Noto Sans Regular"], "symbol-placement": "line-center", "text-rotation-alignment": "map", "text-optional": !0 },
|
|
2456
|
-
paint: { "text-color":
|
|
2437
|
+
paint: { "text-color": r.runway, "text-halo-color": "#0f172a", "text-halo-width": 1, "text-opacity": ["interpolate", ["linear"], ["zoom"], 10.5, 1, 11, 0] }
|
|
2457
2438
|
},
|
|
2458
2439
|
{
|
|
2459
2440
|
id: "vor-symbol",
|
|
@@ -2470,7 +2451,7 @@ function Ke() {
|
|
|
2470
2451
|
"source-layer": "vor",
|
|
2471
2452
|
minzoom: 5,
|
|
2472
2453
|
layout: { "text-field": ["get", "CODE_ID"], "text-size": 10, "text-anchor": "bottom", "text-offset": [0, -0.8] },
|
|
2473
|
-
paint: { "text-color":
|
|
2454
|
+
paint: { "text-color": r.vor, "text-halo-color": "#0f172a", "text-halo-width": 1 }
|
|
2474
2455
|
},
|
|
2475
2456
|
{
|
|
2476
2457
|
id: "ndb-symbol",
|
|
@@ -2480,7 +2461,7 @@ function Ke() {
|
|
|
2480
2461
|
"source-layer": "ndb",
|
|
2481
2462
|
layout: { "icon-image": "ndb-inway", "icon-size": ["interpolate", ["linear"], ["zoom"], 6, 0.5, 10, 1], "symbol-z-order": "viewport-y", "text-field": ["concat", ["get", "CODE_ID"], `
|
|
2482
2463
|
`, ["get", "VAL_FREQ"], "kHz"], "text-size": 10, "text-offset": [0, 1.4], "text-letter-spacing": 0.05, "text-optional": !0, "icon-allow-overlap": !0 },
|
|
2483
|
-
paint: { "text-color":
|
|
2464
|
+
paint: { "text-color": r.ndb, "text-halo-color": "#0f172a", "text-halo-width": 1, "icon-color": r.ndb }
|
|
2484
2465
|
},
|
|
2485
2466
|
{
|
|
2486
2467
|
id: "waypoint-symbol",
|
|
@@ -2489,7 +2470,7 @@ function Ke() {
|
|
|
2489
2470
|
"source-layer": "waypoint",
|
|
2490
2471
|
minzoom: 5,
|
|
2491
2472
|
layout: { "icon-image": ["case", ["==", ["get", "report_type"], "C"], "waypoint-compusory", "waypoint"], "icon-size": 0.6, "icon-allow-overlap": !0, "icon-ignore-placement": !0, "text-field": ["get", "CODE_ID"], "text-size": 9, "text-variable-anchor-offset": ["bottom", [0, -0.6], "top", [0, 0.6], "right", [-0.6, 0], "left", [0.6, 0], "bottom-right", [-0.4, -0.4], "bottom-left", [0.4, -0.4], "top-right", [-0.4, 0.4], "top-left", [0.4, 0.4]], "text-justify": "auto", "text-optional": !0 },
|
|
2492
|
-
paint: { "icon-color":
|
|
2473
|
+
paint: { "icon-color": r.waypoint, "text-color": r.waypoint, "text-halo-color": "#0f172a", "text-halo-width": 1 }
|
|
2493
2474
|
},
|
|
2494
2475
|
{
|
|
2495
2476
|
id: "waypoint-off-airway-symbol",
|
|
@@ -2498,7 +2479,7 @@ function Ke() {
|
|
|
2498
2479
|
"source-layer": "waypoint-off-airway",
|
|
2499
2480
|
minzoom: 7,
|
|
2500
2481
|
layout: { "icon-image": ["case", ["==", ["get", "report_type"], "C"], "designate_point_inway", "designate_point_notinway"], "icon-size": 0.6, "icon-allow-overlap": !0, "icon-ignore-placement": !0, "text-field": ["get", "CODE_ID"], "text-size": 9, "text-variable-anchor-offset": ["bottom", [0, -0.6], "top", [0, 0.6], "right", [-0.6, 0], "left", [0.6, 0], "bottom-right", [-0.4, -0.4], "bottom-left", [0.4, -0.4], "top-right", [-0.4, 0.4], "top-left", [0.4, 0.4]], "text-justify": "auto", "text-optional": !0 },
|
|
2501
|
-
paint: { "icon-color":
|
|
2482
|
+
paint: { "icon-color": r.waypoint, "text-color": r.waypoint, "text-halo-color": "#0f172a", "text-halo-width": 1 }
|
|
2502
2483
|
}
|
|
2503
2484
|
];
|
|
2504
2485
|
}
|
|
@@ -2506,7 +2487,7 @@ const ut = {
|
|
|
2506
2487
|
light: { id: "light", label: "日间", background: "#EAF2F8", build: je },
|
|
2507
2488
|
dark: { id: "dark", label: "夜间", background: "#000000", build: Ke }
|
|
2508
2489
|
};
|
|
2509
|
-
function
|
|
2490
|
+
function Ht(o = "light") {
|
|
2510
2491
|
return (ut[o] ?? ut.light).build();
|
|
2511
2492
|
}
|
|
2512
2493
|
const Ct = {
|
|
@@ -2521,7 +2502,7 @@ const Ct = {
|
|
|
2521
2502
|
ndb: ["ndb-symbol"],
|
|
2522
2503
|
airport: ["airport-circle", "airport-label"],
|
|
2523
2504
|
runway: ["runway-line", "runway-line-amm", "runway-label"]
|
|
2524
|
-
},
|
|
2505
|
+
}, He = {
|
|
2525
2506
|
/** 机场边界(淡暖灰垫底,在纯白底上显现轮廓) */
|
|
2526
2507
|
airport: "#e2e8f0",
|
|
2527
2508
|
/** 跑道面(中深灰,作为白底上的绝对重心) */
|
|
@@ -2547,8 +2528,8 @@ const Ct = {
|
|
|
2547
2528
|
/** 事故易发区(深橙色) */
|
|
2548
2529
|
hotspot: "#ea580c"
|
|
2549
2530
|
};
|
|
2550
|
-
function
|
|
2551
|
-
const
|
|
2531
|
+
function Ye(o = "amm") {
|
|
2532
|
+
const r = He;
|
|
2552
2533
|
return [
|
|
2553
2534
|
// ── 机场边界轮廓(z11+)
|
|
2554
2535
|
{
|
|
@@ -2558,7 +2539,7 @@ function He(o = "amm") {
|
|
|
2558
2539
|
"source-layer": "amm-airport",
|
|
2559
2540
|
minzoom: 11,
|
|
2560
2541
|
paint: {
|
|
2561
|
-
"fill-color":
|
|
2542
|
+
"fill-color": r.airport,
|
|
2562
2543
|
"fill-opacity": 0.4
|
|
2563
2544
|
// 适当调高不透明度,确保白底可见
|
|
2564
2545
|
}
|
|
@@ -2570,7 +2551,7 @@ function He(o = "amm") {
|
|
|
2570
2551
|
"source-layer": "amm-airport",
|
|
2571
2552
|
minzoom: 11,
|
|
2572
2553
|
paint: {
|
|
2573
|
-
"line-color":
|
|
2554
|
+
"line-color": r.airport,
|
|
2574
2555
|
"line-width": 1
|
|
2575
2556
|
}
|
|
2576
2557
|
},
|
|
@@ -2582,7 +2563,7 @@ function He(o = "amm") {
|
|
|
2582
2563
|
"source-layer": "amm-runway",
|
|
2583
2564
|
minzoom: 11,
|
|
2584
2565
|
paint: {
|
|
2585
|
-
"fill-color":
|
|
2566
|
+
"fill-color": r.runway,
|
|
2586
2567
|
"fill-opacity": 0.9
|
|
2587
2568
|
}
|
|
2588
2569
|
},
|
|
@@ -2606,7 +2587,7 @@ function He(o = "amm") {
|
|
|
2606
2587
|
"source-layer": "amm-apron",
|
|
2607
2588
|
minzoom: 11,
|
|
2608
2589
|
paint: {
|
|
2609
|
-
"fill-color":
|
|
2590
|
+
"fill-color": r.apron,
|
|
2610
2591
|
"fill-opacity": 0.6
|
|
2611
2592
|
// 提高透明度浓度
|
|
2612
2593
|
}
|
|
@@ -2631,7 +2612,7 @@ function He(o = "amm") {
|
|
|
2631
2612
|
"source-layer": "amm-taxiway",
|
|
2632
2613
|
minzoom: 11,
|
|
2633
2614
|
paint: {
|
|
2634
|
-
"fill-color":
|
|
2615
|
+
"fill-color": r.taxiway,
|
|
2635
2616
|
"fill-opacity": 0.7
|
|
2636
2617
|
}
|
|
2637
2618
|
},
|
|
@@ -2643,7 +2624,7 @@ function He(o = "amm") {
|
|
|
2643
2624
|
"source-layer": "amm-taxiway-line",
|
|
2644
2625
|
minzoom: 11,
|
|
2645
2626
|
paint: {
|
|
2646
|
-
"line-color":
|
|
2627
|
+
"line-color": r.taxiwayLine,
|
|
2647
2628
|
"line-width": ["interpolate", ["linear"], ["zoom"], 15, 0.8, 18, 2]
|
|
2648
2629
|
}
|
|
2649
2630
|
},
|
|
@@ -2671,7 +2652,7 @@ function He(o = "amm") {
|
|
|
2671
2652
|
},
|
|
2672
2653
|
paint: {
|
|
2673
2654
|
"text-color": "#FFF",
|
|
2674
|
-
"icon-color":
|
|
2655
|
+
"icon-color": r.taxiwayLine
|
|
2675
2656
|
}
|
|
2676
2657
|
},
|
|
2677
2658
|
// ── 等待位(z11+)─────
|
|
@@ -2682,7 +2663,7 @@ function He(o = "amm") {
|
|
|
2682
2663
|
"source-layer": "amm-holding",
|
|
2683
2664
|
minzoom: 11,
|
|
2684
2665
|
paint: {
|
|
2685
|
-
"line-color":
|
|
2666
|
+
"line-color": r.holding,
|
|
2686
2667
|
"line-width": 1.5
|
|
2687
2668
|
}
|
|
2688
2669
|
},
|
|
@@ -2694,7 +2675,7 @@ function He(o = "amm") {
|
|
|
2694
2675
|
"source-layer": "amm-runway-marking",
|
|
2695
2676
|
minzoom: 13,
|
|
2696
2677
|
paint: {
|
|
2697
|
-
"fill-color":
|
|
2678
|
+
"fill-color": r.runwayMarking,
|
|
2698
2679
|
"fill-opacity": 0.9
|
|
2699
2680
|
}
|
|
2700
2681
|
},
|
|
@@ -2706,7 +2687,7 @@ function He(o = "amm") {
|
|
|
2706
2687
|
"source-layer": "amm-restricted",
|
|
2707
2688
|
minzoom: 11,
|
|
2708
2689
|
paint: {
|
|
2709
|
-
"fill-color":
|
|
2690
|
+
"fill-color": r.restricted,
|
|
2710
2691
|
"fill-opacity": 0.08
|
|
2711
2692
|
// 针对白底降低面纯度
|
|
2712
2693
|
}
|
|
@@ -2718,7 +2699,7 @@ function He(o = "amm") {
|
|
|
2718
2699
|
"source-layer": "amm-restricted",
|
|
2719
2700
|
minzoom: 11,
|
|
2720
2701
|
paint: {
|
|
2721
|
-
"line-color":
|
|
2702
|
+
"line-color": r.restricted,
|
|
2722
2703
|
"line-width": 1.5,
|
|
2723
2704
|
"line-dasharray": [4, 2]
|
|
2724
2705
|
}
|
|
@@ -2731,7 +2712,7 @@ function He(o = "amm") {
|
|
|
2731
2712
|
"source-layer": "amm-hotspot",
|
|
2732
2713
|
minzoom: 11,
|
|
2733
2714
|
paint: {
|
|
2734
|
-
"fill-color":
|
|
2715
|
+
"fill-color": r.hotspot,
|
|
2735
2716
|
"fill-opacity": 0.1
|
|
2736
2717
|
// 针对白底轻微淡化面
|
|
2737
2718
|
}
|
|
@@ -2743,7 +2724,7 @@ function He(o = "amm") {
|
|
|
2743
2724
|
"source-layer": "amm-hotspot",
|
|
2744
2725
|
minzoom: 11,
|
|
2745
2726
|
paint: {
|
|
2746
|
-
"line-color":
|
|
2727
|
+
"line-color": r.hotspot,
|
|
2747
2728
|
"line-width": 1.5
|
|
2748
2729
|
}
|
|
2749
2730
|
},
|
|
@@ -2755,7 +2736,7 @@ function He(o = "amm") {
|
|
|
2755
2736
|
"source-layer": "amm-runway-centerline",
|
|
2756
2737
|
minzoom: 11,
|
|
2757
2738
|
paint: {
|
|
2758
|
-
"line-color":
|
|
2739
|
+
"line-color": r.runwayCenterline,
|
|
2759
2740
|
"line-width": 1,
|
|
2760
2741
|
"line-dasharray": [6, 3]
|
|
2761
2742
|
}
|
|
@@ -2807,7 +2788,7 @@ function He(o = "amm") {
|
|
|
2807
2788
|
"source-layer": "amm-stand-line",
|
|
2808
2789
|
minzoom: 13,
|
|
2809
2790
|
paint: {
|
|
2810
|
-
"line-color":
|
|
2791
|
+
"line-color": r.standLine,
|
|
2811
2792
|
"line-width": 1
|
|
2812
2793
|
}
|
|
2813
2794
|
},
|
|
@@ -2846,7 +2827,7 @@ function He(o = "amm") {
|
|
|
2846
2827
|
"source-layer": "amm-stand",
|
|
2847
2828
|
minzoom: 12,
|
|
2848
2829
|
paint: {
|
|
2849
|
-
"circle-color":
|
|
2830
|
+
"circle-color": r.stand,
|
|
2850
2831
|
"circle-radius": 1.5
|
|
2851
2832
|
}
|
|
2852
2833
|
},
|
|
@@ -2865,7 +2846,7 @@ function He(o = "amm") {
|
|
|
2865
2846
|
"text-allow-overlap": !1
|
|
2866
2847
|
},
|
|
2867
2848
|
paint: {
|
|
2868
|
-
"text-color":
|
|
2849
|
+
"text-color": r.standLine
|
|
2869
2850
|
// 改为深墨绿字,白底/浅灰底上高可读
|
|
2870
2851
|
}
|
|
2871
2852
|
},
|
|
@@ -2987,16 +2968,16 @@ const Ze = {
|
|
|
2987
2968
|
hotspot: "#fb923c"
|
|
2988
2969
|
};
|
|
2989
2970
|
function Je(o = "amm") {
|
|
2990
|
-
const
|
|
2971
|
+
const r = Ze;
|
|
2991
2972
|
return [
|
|
2992
|
-
{ id: "amm-airport-fill", type: "fill", source: o, "source-layer": "amm-airport", minzoom: 11, paint: { "fill-color":
|
|
2973
|
+
{ id: "amm-airport-fill", type: "fill", source: o, "source-layer": "amm-airport", minzoom: 11, paint: { "fill-color": r.airport, "fill-opacity": 0.3 } },
|
|
2993
2974
|
{ id: "amm-airport-stroke", type: "line", source: o, "source-layer": "amm-airport", minzoom: 11, paint: { "line-color": "#475569", "line-width": 1 } },
|
|
2994
|
-
{ id: "amm-runway-fill", type: "fill", source: o, "source-layer": "amm-runway", minzoom: 11, paint: { "fill-color":
|
|
2975
|
+
{ id: "amm-runway-fill", type: "fill", source: o, "source-layer": "amm-runway", minzoom: 11, paint: { "fill-color": r.runway, "fill-opacity": 1 } },
|
|
2995
2976
|
{ id: "amm-runway-stroke", type: "line", source: o, "source-layer": "amm-runway", minzoom: 11, paint: { "line-color": "#64748b", "line-width": 0.5 } },
|
|
2996
|
-
{ id: "amm-apron-fill", type: "fill", source: o, "source-layer": "amm-apron", minzoom: 11, paint: { "fill-color":
|
|
2977
|
+
{ id: "amm-apron-fill", type: "fill", source: o, "source-layer": "amm-apron", minzoom: 11, paint: { "fill-color": r.apron, "fill-opacity": 1 } },
|
|
2997
2978
|
{ id: "amm-apron-stroke", type: "line", source: o, "source-layer": "amm-apron", minzoom: 11, paint: { "line-color": "#334155", "line-width": 0.5 } },
|
|
2998
|
-
{ id: "amm-taxiway-fill", type: "fill", source: o, "source-layer": "amm-taxiway", minzoom: 11, paint: { "fill-color":
|
|
2999
|
-
{ id: "amm-taxiway-line", type: "line", source: o, "source-layer": "amm-taxiway-line", minzoom: 11, paint: { "line-color":
|
|
2979
|
+
{ id: "amm-taxiway-fill", type: "fill", source: o, "source-layer": "amm-taxiway", minzoom: 11, paint: { "fill-color": r.taxiway, "fill-opacity": 0.8 } },
|
|
2980
|
+
{ id: "amm-taxiway-line", type: "line", source: o, "source-layer": "amm-taxiway-line", minzoom: 11, paint: { "line-color": r.taxiwayLine, "line-width": ["interpolate", ["linear"], ["zoom"], 15, 0.8, 18, 2] } },
|
|
3000
2981
|
{
|
|
3001
2982
|
id: "amm-taxiway-label",
|
|
3002
2983
|
type: "symbol",
|
|
@@ -3004,15 +2985,15 @@ function Je(o = "amm") {
|
|
|
3004
2985
|
"source-layer": "amm-taxiway-line",
|
|
3005
2986
|
minzoom: 14,
|
|
3006
2987
|
layout: { "text-field": ["get", "idlin"], "text-size": 10, "icon-image": "text_bg", "icon-text-fit": "both", "icon-text-fit-padding": [1, 2, 1, 2], "symbol-placement": "line", "text-keep-upright": !0, "text-allow-overlap": !1 },
|
|
3007
|
-
paint: { "text-color": "#0f172a", "icon-color":
|
|
2988
|
+
paint: { "text-color": "#0f172a", "icon-color": r.taxiwayLine }
|
|
3008
2989
|
},
|
|
3009
|
-
{ id: "amm-holding", type: "line", source: o, "source-layer": "amm-holding", minzoom: 11, paint: { "line-color":
|
|
3010
|
-
{ id: "amm-runway-marking", type: "fill", source: o, "source-layer": "amm-runway-marking", minzoom: 13, paint: { "fill-color":
|
|
3011
|
-
{ id: "amm-restricted-fill", type: "fill", source: o, "source-layer": "amm-restricted", minzoom: 11, paint: { "fill-color":
|
|
3012
|
-
{ id: "amm-restricted-stroke", type: "line", source: o, "source-layer": "amm-restricted", minzoom: 11, paint: { "line-color":
|
|
3013
|
-
{ id: "amm-hotspot-fill", type: "fill", source: o, "source-layer": "amm-hotspot", minzoom: 11, paint: { "fill-color":
|
|
3014
|
-
{ id: "amm-hotspot-stroke", type: "line", source: o, "source-layer": "amm-hotspot", minzoom: 11, paint: { "line-color":
|
|
3015
|
-
{ id: "amm-runway-centerline", type: "line", source: o, "source-layer": "amm-runway-centerline", minzoom: 11, paint: { "line-color":
|
|
2990
|
+
{ id: "amm-holding", type: "line", source: o, "source-layer": "amm-holding", minzoom: 11, paint: { "line-color": r.holding, "line-width": 1.5 } },
|
|
2991
|
+
{ id: "amm-runway-marking", type: "fill", source: o, "source-layer": "amm-runway-marking", minzoom: 13, paint: { "fill-color": r.runwayMarking, "fill-opacity": 0.8 } },
|
|
2992
|
+
{ id: "amm-restricted-fill", type: "fill", source: o, "source-layer": "amm-restricted", minzoom: 11, paint: { "fill-color": r.restricted, "fill-opacity": 0.12 } },
|
|
2993
|
+
{ id: "amm-restricted-stroke", type: "line", source: o, "source-layer": "amm-restricted", minzoom: 11, paint: { "line-color": r.restricted, "line-width": 1.2, "line-dasharray": [4, 2] } },
|
|
2994
|
+
{ id: "amm-hotspot-fill", type: "fill", source: o, "source-layer": "amm-hotspot", minzoom: 11, paint: { "fill-color": r.hotspot, "fill-opacity": 0.15 } },
|
|
2995
|
+
{ id: "amm-hotspot-stroke", type: "line", source: o, "source-layer": "amm-hotspot", minzoom: 11, paint: { "line-color": r.hotspot, "line-width": 1.2 } },
|
|
2996
|
+
{ id: "amm-runway-centerline", type: "line", source: o, "source-layer": "amm-runway-centerline", minzoom: 11, paint: { "line-color": r.runwayCenterline, "line-width": 1, "line-dasharray": [6, 3] } },
|
|
3016
2997
|
{
|
|
3017
2998
|
id: "amm-runway-info",
|
|
3018
2999
|
type: "symbol",
|
|
@@ -3022,7 +3003,7 @@ function Je(o = "amm") {
|
|
|
3022
3003
|
layout: { "text-field": ["concat", ["coalesce", ["get", "length"], ""], "×", ["coalesce", ["get", "width"], ""], "m"], "text-size": ["interpolate", ["exponential", 1.5], ["zoom"], 13, 10, 16, 13], "symbol-placement": "point", "text-rotate": ["coalesce", ["get", "bearing"], 0], "text-rotation-alignment": "map", "text-allow-overlap": !0, "text-ignore-placement": !0 },
|
|
3023
3004
|
paint: { "text-color": "#e2e8f0", "text-halo-color": "#0f172a", "text-halo-width": 2 }
|
|
3024
3005
|
},
|
|
3025
|
-
{ id: "amm-stand-line", type: "line", source: o, "source-layer": "amm-stand-line", minzoom: 13, paint: { "line-color":
|
|
3006
|
+
{ id: "amm-stand-line", type: "line", source: o, "source-layer": "amm-stand-line", minzoom: 13, paint: { "line-color": r.standLine, "line-width": 1 } },
|
|
3026
3007
|
{
|
|
3027
3008
|
id: "amm-runway-threshold-label",
|
|
3028
3009
|
type: "symbol",
|
|
@@ -3032,7 +3013,7 @@ function Je(o = "amm") {
|
|
|
3032
3013
|
layout: { "icon-image": "text_bg", "icon-text-fit": "both", "icon-text-fit-padding": [1, 2, 1, 2], "text-field": ["get", "idthr"], "text-size": 14, "text-allow-overlap": !0, "text-rotation-alignment": "map", "icon-rotation-alignment": "map" },
|
|
3033
3014
|
paint: { "text-color": "#ffffff", "icon-color": "#ef4444" }
|
|
3034
3015
|
},
|
|
3035
|
-
{ id: "amm-stand", type: "circle", source: o, "source-layer": "amm-stand", minzoom: 12, paint: { "circle-color":
|
|
3016
|
+
{ id: "amm-stand", type: "circle", source: o, "source-layer": "amm-stand", minzoom: 12, paint: { "circle-color": r.stand, "circle-radius": 1.5 } },
|
|
3036
3017
|
{
|
|
3037
3018
|
id: "amm-stand-label",
|
|
3038
3019
|
type: "symbol",
|
|
@@ -3040,7 +3021,7 @@ function Je(o = "amm") {
|
|
|
3040
3021
|
"source-layer": "amm-stand",
|
|
3041
3022
|
minzoom: 14,
|
|
3042
3023
|
layout: { "text-field": ["get", "idstd"], "text-size": 9, "text-anchor": "bottom", "text-offset": [0, -0.5], "text-allow-overlap": !1 },
|
|
3043
|
-
paint: { "text-color":
|
|
3024
|
+
paint: { "text-color": r.stand, "text-halo-color": "#0f172a", "text-halo-width": 1 }
|
|
3044
3025
|
},
|
|
3045
3026
|
{ id: "amm-obstacle-region-fill", type: "fill", source: o, "source-layer": "amm-obstacle-region", minzoom: 11, paint: { "fill-color": "#fef08a", "fill-opacity": 0.15 } },
|
|
3046
3027
|
{ id: "amm-obstacle-region-stroke", type: "line", source: o, "source-layer": "amm-obstacle-region", minzoom: 11, paint: { "line-color": "#eab308", "line-width": 1.2, "line-dasharray": [1.5, 1] } },
|
|
@@ -3083,16 +3064,16 @@ const Qe = {
|
|
|
3083
3064
|
hotspot: "#fb923c"
|
|
3084
3065
|
};
|
|
3085
3066
|
function qe(o = "amm") {
|
|
3086
|
-
const
|
|
3067
|
+
const r = Qe, d = "#1f1f23";
|
|
3087
3068
|
return [
|
|
3088
|
-
{ id: "amm-airport-fill", type: "fill", source: o, "source-layer": "amm-airport", minzoom: 11, paint: { "fill-color":
|
|
3069
|
+
{ id: "amm-airport-fill", type: "fill", source: o, "source-layer": "amm-airport", minzoom: 11, paint: { "fill-color": r.airport, "fill-opacity": 0.3 } },
|
|
3089
3070
|
{ id: "amm-airport-stroke", type: "line", source: o, "source-layer": "amm-airport", minzoom: 11, paint: { "line-color": "#52525b", "line-width": 1 } },
|
|
3090
|
-
{ id: "amm-runway-fill", type: "fill", source: o, "source-layer": "amm-runway", minzoom: 11, paint: { "fill-color":
|
|
3071
|
+
{ id: "amm-runway-fill", type: "fill", source: o, "source-layer": "amm-runway", minzoom: 11, paint: { "fill-color": r.runway, "fill-opacity": 1 } },
|
|
3091
3072
|
{ id: "amm-runway-stroke", type: "line", source: o, "source-layer": "amm-runway", minzoom: 11, paint: { "line-color": "#52525b", "line-width": 0.5 } },
|
|
3092
|
-
{ id: "amm-apron-fill", type: "fill", source: o, "source-layer": "amm-apron", minzoom: 11, paint: { "fill-color":
|
|
3073
|
+
{ id: "amm-apron-fill", type: "fill", source: o, "source-layer": "amm-apron", minzoom: 11, paint: { "fill-color": r.apron, "fill-opacity": 1 } },
|
|
3093
3074
|
{ id: "amm-apron-stroke", type: "line", source: o, "source-layer": "amm-apron", minzoom: 11, paint: { "line-color": "#3f3f46", "line-width": 0.5 } },
|
|
3094
|
-
{ id: "amm-taxiway-fill", type: "fill", source: o, "source-layer": "amm-taxiway", minzoom: 11, paint: { "fill-color":
|
|
3095
|
-
{ id: "amm-taxiway-line", type: "line", source: o, "source-layer": "amm-taxiway-line", minzoom: 11, paint: { "line-color":
|
|
3075
|
+
{ id: "amm-taxiway-fill", type: "fill", source: o, "source-layer": "amm-taxiway", minzoom: 11, paint: { "fill-color": r.taxiway, "fill-opacity": 0.9 } },
|
|
3076
|
+
{ id: "amm-taxiway-line", type: "line", source: o, "source-layer": "amm-taxiway-line", minzoom: 11, paint: { "line-color": r.taxiwayLine, "line-width": ["interpolate", ["linear"], ["zoom"], 15, 0.8, 18, 2] } },
|
|
3096
3077
|
{
|
|
3097
3078
|
id: "amm-taxiway-label",
|
|
3098
3079
|
type: "symbol",
|
|
@@ -3100,15 +3081,15 @@ function qe(o = "amm") {
|
|
|
3100
3081
|
"source-layer": "amm-taxiway-line",
|
|
3101
3082
|
minzoom: 14,
|
|
3102
3083
|
layout: { "text-field": ["get", "idlin"], "text-size": 10, "icon-image": "text_bg", "icon-text-fit": "both", "icon-text-fit-padding": [1, 2, 1, 2], "symbol-placement": "line", "text-keep-upright": !0, "text-allow-overlap": !1 },
|
|
3103
|
-
paint: { "text-color":
|
|
3084
|
+
paint: { "text-color": d, "icon-color": r.taxiwayLine }
|
|
3104
3085
|
},
|
|
3105
|
-
{ id: "amm-holding", type: "line", source: o, "source-layer": "amm-holding", minzoom: 11, paint: { "line-color":
|
|
3106
|
-
{ id: "amm-runway-marking", type: "fill", source: o, "source-layer": "amm-runway-marking", minzoom: 13, paint: { "fill-color":
|
|
3107
|
-
{ id: "amm-restricted-fill", type: "fill", source: o, "source-layer": "amm-restricted", minzoom: 11, paint: { "fill-color":
|
|
3108
|
-
{ id: "amm-restricted-stroke", type: "line", source: o, "source-layer": "amm-restricted", minzoom: 11, paint: { "line-color":
|
|
3109
|
-
{ id: "amm-hotspot-fill", type: "fill", source: o, "source-layer": "amm-hotspot", minzoom: 11, paint: { "fill-color":
|
|
3110
|
-
{ id: "amm-hotspot-stroke", type: "line", source: o, "source-layer": "amm-hotspot", minzoom: 11, paint: { "line-color":
|
|
3111
|
-
{ id: "amm-runway-centerline", type: "line", source: o, "source-layer": "amm-runway-centerline", minzoom: 11, paint: { "line-color":
|
|
3086
|
+
{ id: "amm-holding", type: "line", source: o, "source-layer": "amm-holding", minzoom: 11, paint: { "line-color": r.holding, "line-width": 1.5 } },
|
|
3087
|
+
{ id: "amm-runway-marking", type: "fill", source: o, "source-layer": "amm-runway-marking", minzoom: 13, paint: { "fill-color": r.runwayMarking, "fill-opacity": 0.85 } },
|
|
3088
|
+
{ id: "amm-restricted-fill", type: "fill", source: o, "source-layer": "amm-restricted", minzoom: 11, paint: { "fill-color": r.restricted, "fill-opacity": 0.1 } },
|
|
3089
|
+
{ id: "amm-restricted-stroke", type: "line", source: o, "source-layer": "amm-restricted", minzoom: 11, paint: { "line-color": r.restricted, "line-width": 1.2, "line-dasharray": [4, 2] } },
|
|
3090
|
+
{ id: "amm-hotspot-fill", type: "fill", source: o, "source-layer": "amm-hotspot", minzoom: 11, paint: { "fill-color": r.hotspot, "fill-opacity": 0.12 } },
|
|
3091
|
+
{ id: "amm-hotspot-stroke", type: "line", source: o, "source-layer": "amm-hotspot", minzoom: 11, paint: { "line-color": r.hotspot, "line-width": 1.2 } },
|
|
3092
|
+
{ id: "amm-runway-centerline", type: "line", source: o, "source-layer": "amm-runway-centerline", minzoom: 11, paint: { "line-color": r.runwayCenterline, "line-width": 1, "line-dasharray": [6, 3] } },
|
|
3112
3093
|
{
|
|
3113
3094
|
id: "amm-runway-info",
|
|
3114
3095
|
type: "symbol",
|
|
@@ -3116,9 +3097,9 @@ function qe(o = "amm") {
|
|
|
3116
3097
|
"source-layer": "amm-runway-label",
|
|
3117
3098
|
minzoom: 13,
|
|
3118
3099
|
layout: { "text-field": ["concat", ["coalesce", ["get", "length"], ""], "×", ["coalesce", ["get", "width"], ""], "m"], "text-size": ["interpolate", ["exponential", 1.5], ["zoom"], 13, 10, 16, 13], "symbol-placement": "point", "text-rotate": ["coalesce", ["get", "bearing"], 0], "text-rotation-alignment": "map", "text-allow-overlap": !0, "text-ignore-placement": !0 },
|
|
3119
|
-
paint: { "text-color": "#e4e4e7", "text-halo-color":
|
|
3100
|
+
paint: { "text-color": "#e4e4e7", "text-halo-color": d, "text-halo-width": 2 }
|
|
3120
3101
|
},
|
|
3121
|
-
{ id: "amm-stand-line", type: "line", source: o, "source-layer": "amm-stand-line", minzoom: 13, paint: { "line-color":
|
|
3102
|
+
{ id: "amm-stand-line", type: "line", source: o, "source-layer": "amm-stand-line", minzoom: 13, paint: { "line-color": r.standLine, "line-width": 1 } },
|
|
3122
3103
|
{
|
|
3123
3104
|
id: "amm-runway-threshold-label",
|
|
3124
3105
|
type: "symbol",
|
|
@@ -3126,9 +3107,9 @@ function qe(o = "amm") {
|
|
|
3126
3107
|
"source-layer": "amm-runway-threshold",
|
|
3127
3108
|
minzoom: 12,
|
|
3128
3109
|
layout: { "icon-image": "text_bg", "icon-text-fit": "both", "icon-text-fit-padding": [1, 2, 1, 2], "text-field": ["get", "idthr"], "text-size": 14, "text-allow-overlap": !0, "text-rotation-alignment": "map", "icon-rotation-alignment": "map" },
|
|
3129
|
-
paint: { "text-color": "#ffffff", "icon-color":
|
|
3110
|
+
paint: { "text-color": "#ffffff", "icon-color": r.threshold }
|
|
3130
3111
|
},
|
|
3131
|
-
{ id: "amm-stand", type: "circle", source: o, "source-layer": "amm-stand", minzoom: 12, paint: { "circle-color":
|
|
3112
|
+
{ id: "amm-stand", type: "circle", source: o, "source-layer": "amm-stand", minzoom: 12, paint: { "circle-color": r.stand, "circle-radius": 1.5 } },
|
|
3132
3113
|
{
|
|
3133
3114
|
id: "amm-stand-label",
|
|
3134
3115
|
type: "symbol",
|
|
@@ -3136,11 +3117,11 @@ function qe(o = "amm") {
|
|
|
3136
3117
|
"source-layer": "amm-stand",
|
|
3137
3118
|
minzoom: 14,
|
|
3138
3119
|
layout: { "text-field": ["get", "idstd"], "text-size": 9, "text-anchor": "bottom", "text-offset": [0, -0.5], "text-allow-overlap": !1 },
|
|
3139
|
-
paint: { "text-color":
|
|
3120
|
+
paint: { "text-color": r.stand, "text-halo-color": d, "text-halo-width": 1 }
|
|
3140
3121
|
},
|
|
3141
3122
|
{ id: "amm-obstacle-region-fill", type: "fill", source: o, "source-layer": "amm-obstacle-region", minzoom: 11, paint: { "fill-color": "#fef08a", "fill-opacity": 0.1 } },
|
|
3142
3123
|
{ id: "amm-obstacle-region-stroke", type: "line", source: o, "source-layer": "amm-obstacle-region", minzoom: 11, paint: { "line-color": "#eab308", "line-width": 1.2, "line-dasharray": [1.5, 1] } },
|
|
3143
|
-
{ id: "amm-obstacle-point", type: "circle", source: o, "source-layer": "amm-obstacle-point", minzoom: 11, paint: { "circle-color": "#f97316", "circle-radius": 4, "circle-stroke-color":
|
|
3124
|
+
{ id: "amm-obstacle-point", type: "circle", source: o, "source-layer": "amm-obstacle-point", minzoom: 11, paint: { "circle-color": "#f97316", "circle-radius": 4, "circle-stroke-color": d, "circle-stroke-width": 1 } },
|
|
3144
3125
|
{
|
|
3145
3126
|
id: "amm-obstacle-point-label",
|
|
3146
3127
|
type: "symbol",
|
|
@@ -3148,7 +3129,7 @@ function qe(o = "amm") {
|
|
|
3148
3129
|
"source-layer": "amm-obstacle-point",
|
|
3149
3130
|
minzoom: 14,
|
|
3150
3131
|
layout: { "text-field": ["coalesce", ["get", "ident"], ["get", "LABEL"]], "text-size": 9, "text-anchor": "bottom", "text-offset": [0, -0.5], "text-allow-overlap": !1 },
|
|
3151
|
-
paint: { "text-color": "#fdba74", "text-halo-color":
|
|
3132
|
+
paint: { "text-color": "#fdba74", "text-halo-color": d, "text-halo-width": 1.2 }
|
|
3152
3133
|
},
|
|
3153
3134
|
{ id: "amm-construction-fill", type: "fill", source: o, "source-layer": "amm-construction", minzoom: 11, paint: { "fill-pattern": "normal:passline", "fill-opacity": 0.6 } },
|
|
3154
3135
|
{ id: "amm-construction-stroke", type: "line", source: o, "source-layer": "amm-construction", minzoom: 11, paint: { "line-color": "#ea580c", "line-width": 1.2, "line-dasharray": [4, 2] } },
|
|
@@ -3159,12 +3140,12 @@ function qe(o = "amm") {
|
|
|
3159
3140
|
"source-layer": "amm-construction",
|
|
3160
3141
|
minzoom: 13,
|
|
3161
3142
|
layout: { "text-field": ["get", "text"], "text-size": 9, "text-anchor": "center", "symbol-placement": "point", "text-allow-overlap": !1 },
|
|
3162
|
-
paint: { "text-color": "#f97316", "text-halo-color":
|
|
3143
|
+
paint: { "text-color": "#f97316", "text-halo-color": d, "text-halo-width": 1 }
|
|
3163
3144
|
}
|
|
3164
3145
|
];
|
|
3165
3146
|
}
|
|
3166
|
-
function
|
|
3167
|
-
return
|
|
3147
|
+
function Yt(o = "amm", r = "light") {
|
|
3148
|
+
return r === "dark" ? Je(o) : r === "neutral" ? qe(o) : Ye(o);
|
|
3168
3149
|
}
|
|
3169
3150
|
const oi = {
|
|
3170
3151
|
ammAirport: ["amm-airport-fill", "amm-airport-stroke"],
|
|
@@ -3207,7 +3188,7 @@ const oi = {
|
|
|
3207
3188
|
"#9c6b3f",
|
|
3208
3189
|
4500,
|
|
3209
3190
|
"#f2efe9"
|
|
3210
|
-
],
|
|
3191
|
+
], Mt = [
|
|
3211
3192
|
"amm-airport-fill",
|
|
3212
3193
|
"amm-airport-stroke",
|
|
3213
3194
|
"amm-runway-fill",
|
|
@@ -3238,13 +3219,13 @@ const oi = {
|
|
|
3238
3219
|
"amm-construction-label"
|
|
3239
3220
|
], Zt = ["terrain-color", "terrain-hillshade"], Jt = ["contour-line", "contour-label"];
|
|
3240
3221
|
async function Qt(o) {
|
|
3241
|
-
const
|
|
3242
|
-
if (!
|
|
3243
|
-
const
|
|
3244
|
-
if (
|
|
3245
|
-
return
|
|
3246
|
-
const
|
|
3247
|
-
return new Response(
|
|
3222
|
+
const r = await fetch(o);
|
|
3223
|
+
if (!r.ok) throw new Error(`fetch ${o} → ${r.status}`);
|
|
3224
|
+
const d = r.headers.get("Content-Encoding"), y = r.headers.get("Content-Type") || "";
|
|
3225
|
+
if (d === "gzip" || y.includes("json"))
|
|
3226
|
+
return r.json();
|
|
3227
|
+
const g = r.body.pipeThrough(new DecompressionStream("gzip"));
|
|
3228
|
+
return new Response(g).json();
|
|
3248
3229
|
}
|
|
3249
3230
|
class ri {
|
|
3250
3231
|
/**
|
|
@@ -3259,19 +3240,19 @@ class ri {
|
|
|
3259
3240
|
* @param {number} [options.zoom] Initial zoom level (default 4)
|
|
3260
3241
|
* @param {string} [options.terrainUrl] Terrain DEM tile URL template (default internal server)
|
|
3261
3242
|
*/
|
|
3262
|
-
constructor(
|
|
3243
|
+
constructor(r = {}) {
|
|
3263
3244
|
const {
|
|
3264
|
-
container:
|
|
3265
|
-
theme:
|
|
3266
|
-
apiUrl:
|
|
3267
|
-
spriteUrl:
|
|
3245
|
+
container: d,
|
|
3246
|
+
theme: y = "light",
|
|
3247
|
+
apiUrl: g = ti,
|
|
3248
|
+
spriteUrl: w,
|
|
3268
3249
|
period: b = null,
|
|
3269
3250
|
layers: S = {},
|
|
3270
|
-
center:
|
|
3271
|
-
zoom:
|
|
3251
|
+
center: O = [104, 36],
|
|
3252
|
+
zoom: A = 4,
|
|
3272
3253
|
terrainUrl: z = null
|
|
3273
|
-
} =
|
|
3274
|
-
return this._apiUrl =
|
|
3254
|
+
} = r;
|
|
3255
|
+
return this._apiUrl = g.replace(/\/$/, ""), this._spriteUrl = (w ?? g).replace(/\/$/, ""), this._terrainUrl = z ?? `${this._apiUrl}/api/terrain/{z}/{x}/{y}.png`, this._theme = y, this._period = b, this._center = O, this._zoom = A, this._ready = !1, this._layerVisible = {
|
|
3275
3256
|
// aviation groups — all visible by default
|
|
3276
3257
|
adiz: !0,
|
|
3277
3258
|
fir: !0,
|
|
@@ -3290,30 +3271,30 @@ class ri {
|
|
|
3290
3271
|
contour: !1,
|
|
3291
3272
|
// user overrides
|
|
3292
3273
|
...S
|
|
3293
|
-
}, this._initMap(
|
|
3294
|
-
get(p,
|
|
3295
|
-
if (typeof
|
|
3296
|
-
const
|
|
3297
|
-
return typeof
|
|
3274
|
+
}, this._initMap(d), new Proxy(this, {
|
|
3275
|
+
get(p, x) {
|
|
3276
|
+
if (typeof x == "symbol" || Reflect.has(p, x)) {
|
|
3277
|
+
const k = p[x];
|
|
3278
|
+
return typeof k == "function" ? k.bind(p) : k;
|
|
3298
3279
|
}
|
|
3299
3280
|
const T = p._map;
|
|
3300
3281
|
if (!T) return;
|
|
3301
|
-
const D = T[
|
|
3282
|
+
const D = T[x];
|
|
3302
3283
|
return typeof D == "function" ? D.bind(T) : D;
|
|
3303
3284
|
},
|
|
3304
|
-
set(p,
|
|
3305
|
-
return typeof
|
|
3285
|
+
set(p, x, T) {
|
|
3286
|
+
return typeof x == "symbol" || Reflect.has(p, x) || !p._map ? p[x] = T : x in p._map ? p._map[x] = T : p[x] = T, !0;
|
|
3306
3287
|
},
|
|
3307
|
-
has(p,
|
|
3308
|
-
return Reflect.has(p,
|
|
3288
|
+
has(p, x) {
|
|
3289
|
+
return Reflect.has(p, x) || (p._map ? x in p._map : !1);
|
|
3309
3290
|
}
|
|
3310
3291
|
});
|
|
3311
3292
|
}
|
|
3312
3293
|
// ── Map initialization ────────────────────────────────────────────────────
|
|
3313
|
-
_initMap(
|
|
3314
|
-
const
|
|
3294
|
+
_initMap(r) {
|
|
3295
|
+
const d = ut[this._theme] ?? ut.light;
|
|
3315
3296
|
this._map = new jt.Map({
|
|
3316
|
-
container:
|
|
3297
|
+
container: r,
|
|
3317
3298
|
style: {
|
|
3318
3299
|
version: 8,
|
|
3319
3300
|
glyphs: "https://aips.siniswift.com/mapsdk/glyphs/{fontstack}/{range}.pbf",
|
|
@@ -3327,7 +3308,7 @@ class ri {
|
|
|
3327
3308
|
boundary: { type: "geojson", data: { type: "FeatureCollection", features: [] } }
|
|
3328
3309
|
},
|
|
3329
3310
|
layers: [
|
|
3330
|
-
{ id: "background", type: "background", paint: { "background-color":
|
|
3311
|
+
{ id: "background", type: "background", paint: { "background-color": d.background } }
|
|
3331
3312
|
]
|
|
3332
3313
|
},
|
|
3333
3314
|
center: this._center,
|
|
@@ -3346,10 +3327,10 @@ class ri {
|
|
|
3346
3327
|
async _initSources() {
|
|
3347
3328
|
if (!this._period)
|
|
3348
3329
|
try {
|
|
3349
|
-
const
|
|
3350
|
-
this._period =
|
|
3351
|
-
} catch (
|
|
3352
|
-
console.warn("[AviationChart] fetchPeriods failed:",
|
|
3330
|
+
const y = await (await fetch(`${this._apiUrl}/api/periods`)).json();
|
|
3331
|
+
this._period = y[y.length - 1];
|
|
3332
|
+
} catch (d) {
|
|
3333
|
+
console.warn("[AviationChart] fetchPeriods failed:", d), this._period = "latest";
|
|
3353
3334
|
}
|
|
3354
3335
|
this._map.addSource("navdata", {
|
|
3355
3336
|
type: "vector",
|
|
@@ -3368,15 +3349,15 @@ class ri {
|
|
|
3368
3349
|
encoding: "mapbox",
|
|
3369
3350
|
maxzoom: 8
|
|
3370
3351
|
});
|
|
3371
|
-
const
|
|
3352
|
+
const r = new Be.DemSource({
|
|
3372
3353
|
url: this._terrainUrl,
|
|
3373
3354
|
encoding: "mapbox",
|
|
3374
3355
|
maxzoom: 8,
|
|
3375
3356
|
worker: !0
|
|
3376
3357
|
});
|
|
3377
|
-
|
|
3358
|
+
r.setupMaplibre(jt), this._map.addSource("contour", {
|
|
3378
3359
|
type: "vector",
|
|
3379
|
-
tiles: [
|
|
3360
|
+
tiles: [r.contourProtocolUrl({
|
|
3380
3361
|
thresholds: {
|
|
3381
3362
|
5: [250, 1e3],
|
|
3382
3363
|
7: [125, 500],
|
|
@@ -3392,30 +3373,30 @@ class ri {
|
|
|
3392
3373
|
}), await this._loadBaseData();
|
|
3393
3374
|
}
|
|
3394
3375
|
async _loadBaseData() {
|
|
3395
|
-
var
|
|
3376
|
+
var r, d, y, g;
|
|
3396
3377
|
try {
|
|
3397
|
-
const [
|
|
3378
|
+
const [w, b] = await Promise.all([
|
|
3398
3379
|
Qt(`${this._apiUrl}/topjson/land.topojson.gz`),
|
|
3399
3380
|
Qt(`${this._apiUrl}/topjson/boundary.topojson.gz`)
|
|
3400
3381
|
]);
|
|
3401
|
-
(
|
|
3402
|
-
} catch (
|
|
3403
|
-
console.error("[AviationChart] loadBaseData failed:",
|
|
3382
|
+
(r = w == null ? void 0 : w.objects) != null && r.land ? (d = this._map.getSource("land")) == null || d.setData($t(w, w.objects.land)) : console.warn("[AviationChart] land topojson missing objects.land"), (y = b == null ? void 0 : b.objects) != null && y.boundary ? (g = this._map.getSource("boundary")) == null || g.setData($t(b, b.objects.boundary)) : console.warn("[AviationChart] boundary topojson missing objects.boundary");
|
|
3383
|
+
} catch (w) {
|
|
3384
|
+
console.error("[AviationChart] loadBaseData failed:", w);
|
|
3404
3385
|
}
|
|
3405
3386
|
}
|
|
3406
3387
|
_initLayers() {
|
|
3407
|
-
const
|
|
3388
|
+
const r = this._layerVisible.terrain ? "visible" : "none", d = this._layerVisible.contour ? "visible" : "none";
|
|
3408
3389
|
this._map.addLayer({
|
|
3409
3390
|
id: "terrain-color",
|
|
3410
3391
|
type: "color-relief",
|
|
3411
3392
|
source: "terrain",
|
|
3412
|
-
layout: { visibility:
|
|
3393
|
+
layout: { visibility: r },
|
|
3413
3394
|
paint: { "color-relief-color": ei }
|
|
3414
3395
|
}), this._map.addLayer({
|
|
3415
3396
|
id: "terrain-hillshade",
|
|
3416
3397
|
type: "hillshade",
|
|
3417
3398
|
source: "terrain",
|
|
3418
|
-
layout: { visibility:
|
|
3399
|
+
layout: { visibility: r },
|
|
3419
3400
|
paint: {
|
|
3420
3401
|
"hillshade-shadow-color": "rgba(74,59,42,0.35)",
|
|
3421
3402
|
"hillshade-highlight-color": "rgba(255,246,230,0.25)",
|
|
@@ -3429,7 +3410,7 @@ class ri {
|
|
|
3429
3410
|
type: "line",
|
|
3430
3411
|
source: "contour",
|
|
3431
3412
|
"source-layer": "contours",
|
|
3432
|
-
layout: { visibility:
|
|
3413
|
+
layout: { visibility: d },
|
|
3433
3414
|
paint: {
|
|
3434
3415
|
"line-color": ["case", ["==", ["get", "level"], 1], "rgba(100,70,40,0.40)", "rgba(120,90,60,0.18)"],
|
|
3435
3416
|
"line-width": ["case", ["==", ["get", "level"], 1], 1, 0.5]
|
|
@@ -3441,7 +3422,7 @@ class ri {
|
|
|
3441
3422
|
"source-layer": "contours",
|
|
3442
3423
|
filter: ["==", ["get", "level"], 1],
|
|
3443
3424
|
layout: {
|
|
3444
|
-
visibility:
|
|
3425
|
+
visibility: d,
|
|
3445
3426
|
"symbol-placement": "line",
|
|
3446
3427
|
"text-field": ["concat", ["to-string", ["get", "ele"]], "m"],
|
|
3447
3428
|
"text-size": 10,
|
|
@@ -3455,26 +3436,26 @@ class ri {
|
|
|
3455
3436
|
"text-halo-width": 1
|
|
3456
3437
|
}
|
|
3457
3438
|
}), this._layerVisible.terrain && this._map.setTerrain({ source: "terrain", exaggeration: 4 });
|
|
3458
|
-
for (const
|
|
3459
|
-
this._map.getLayer(
|
|
3460
|
-
for (const
|
|
3461
|
-
this._map.getLayer(
|
|
3439
|
+
for (const y of Ht(this._theme))
|
|
3440
|
+
this._map.getLayer(y.id) || this._map.addLayer(y);
|
|
3441
|
+
for (const y of Yt("amm", this._theme))
|
|
3442
|
+
this._map.getLayer(y.id) || this._map.addLayer(y, "fir-line");
|
|
3462
3443
|
}
|
|
3463
3444
|
_applyVisibility() {
|
|
3464
|
-
for (const [
|
|
3465
|
-
const b = this._layerVisible[
|
|
3466
|
-
for (const S of
|
|
3445
|
+
for (const [g, w] of Object.entries(Ct)) {
|
|
3446
|
+
const b = this._layerVisible[g] !== !1 ? "visible" : "none";
|
|
3447
|
+
for (const S of w)
|
|
3467
3448
|
this._map.getLayer(S) && this._map.setLayoutProperty(S, "visibility", b);
|
|
3468
3449
|
}
|
|
3469
|
-
const
|
|
3470
|
-
for (const
|
|
3471
|
-
this._map.getLayer(
|
|
3472
|
-
const
|
|
3473
|
-
for (const
|
|
3474
|
-
this._map.getLayer(
|
|
3475
|
-
const
|
|
3476
|
-
for (const
|
|
3477
|
-
this._map.getLayer(
|
|
3450
|
+
const r = this._layerVisible.amm !== !1 ? "visible" : "none";
|
|
3451
|
+
for (const g of Mt)
|
|
3452
|
+
this._map.getLayer(g) && this._map.setLayoutProperty(g, "visibility", r);
|
|
3453
|
+
const d = this._layerVisible.terrain ? "visible" : "none";
|
|
3454
|
+
for (const g of Zt)
|
|
3455
|
+
this._map.getLayer(g) && this._map.setLayoutProperty(g, "visibility", d);
|
|
3456
|
+
const y = this._layerVisible.contour ? "visible" : "none";
|
|
3457
|
+
for (const g of Jt)
|
|
3458
|
+
this._map.getLayer(g) && this._map.setLayoutProperty(g, "visibility", y);
|
|
3478
3459
|
}
|
|
3479
3460
|
// ── Public API ────────────────────────────────────────────────────────────
|
|
3480
3461
|
/** Raw MapLibre Map instance */
|
|
@@ -3493,23 +3474,23 @@ class ri {
|
|
|
3493
3474
|
* Switch the chart theme.
|
|
3494
3475
|
* @param {'light'|'dark'} theme
|
|
3495
3476
|
*/
|
|
3496
|
-
setTheme(
|
|
3497
|
-
if (
|
|
3498
|
-
this._theme =
|
|
3499
|
-
const
|
|
3500
|
-
this._map.setPaintProperty("background", "background-color",
|
|
3501
|
-
const
|
|
3477
|
+
setTheme(r) {
|
|
3478
|
+
if (r === this._theme) return;
|
|
3479
|
+
this._theme = r;
|
|
3480
|
+
const d = ut[r] ?? ut.light;
|
|
3481
|
+
this._map.setPaintProperty("background", "background-color", d.background);
|
|
3482
|
+
const y = [
|
|
3502
3483
|
"landLaye",
|
|
3503
3484
|
"boundary",
|
|
3504
3485
|
...Object.values(Ct).flat(),
|
|
3505
|
-
...
|
|
3486
|
+
...Mt
|
|
3506
3487
|
];
|
|
3507
|
-
for (const
|
|
3508
|
-
this._map.getLayer(
|
|
3509
|
-
for (const
|
|
3510
|
-
this._map.addLayer(
|
|
3511
|
-
for (const
|
|
3512
|
-
this._map.getLayer(
|
|
3488
|
+
for (const g of y)
|
|
3489
|
+
this._map.getLayer(g) && this._map.removeLayer(g);
|
|
3490
|
+
for (const g of Ht(this._theme))
|
|
3491
|
+
this._map.addLayer(g);
|
|
3492
|
+
for (const g of Yt("amm", this._theme))
|
|
3493
|
+
this._map.getLayer(g.id) || this._map.addLayer(g, "fir-line");
|
|
3513
3494
|
this._applyVisibility();
|
|
3514
3495
|
}
|
|
3515
3496
|
/**
|
|
@@ -3523,52 +3504,66 @@ class ri {
|
|
|
3523
3504
|
* @param {string} key
|
|
3524
3505
|
* @param {boolean} visible
|
|
3525
3506
|
*/
|
|
3526
|
-
setLayerVisible(
|
|
3527
|
-
if (this._layerVisible[
|
|
3528
|
-
const
|
|
3507
|
+
setLayerVisible(r, d) {
|
|
3508
|
+
if (this._layerVisible[r] = d, r === "terrain") {
|
|
3509
|
+
const w = d ? "visible" : "none";
|
|
3529
3510
|
for (const b of Zt)
|
|
3530
|
-
this._map.getLayer(b) && this._map.setLayoutProperty(b, "visibility",
|
|
3531
|
-
this._map.setTerrain(
|
|
3511
|
+
this._map.getLayer(b) && this._map.setLayoutProperty(b, "visibility", w);
|
|
3512
|
+
this._map.setTerrain(d ? { source: "terrain", exaggeration: 4 } : null);
|
|
3532
3513
|
return;
|
|
3533
3514
|
}
|
|
3534
|
-
if (
|
|
3535
|
-
const
|
|
3515
|
+
if (r === "contour") {
|
|
3516
|
+
const w = d ? "visible" : "none";
|
|
3536
3517
|
for (const b of Jt)
|
|
3537
|
-
this._map.getLayer(b) && this._map.setLayoutProperty(b, "visibility",
|
|
3518
|
+
this._map.getLayer(b) && this._map.setLayoutProperty(b, "visibility", w);
|
|
3538
3519
|
return;
|
|
3539
3520
|
}
|
|
3540
|
-
if (
|
|
3541
|
-
const
|
|
3542
|
-
for (const b of
|
|
3543
|
-
this._map.getLayer(b) && this._map.setLayoutProperty(b, "visibility",
|
|
3521
|
+
if (r === "amm") {
|
|
3522
|
+
const w = d ? "visible" : "none";
|
|
3523
|
+
for (const b of Mt)
|
|
3524
|
+
this._map.getLayer(b) && this._map.setLayoutProperty(b, "visibility", w);
|
|
3544
3525
|
return;
|
|
3545
3526
|
}
|
|
3546
|
-
const
|
|
3547
|
-
if (!
|
|
3548
|
-
console.warn(`[AviationChart] Unknown layer key: "${
|
|
3527
|
+
const y = Ct[r];
|
|
3528
|
+
if (!y) {
|
|
3529
|
+
console.warn(`[AviationChart] Unknown layer key: "${r}"`);
|
|
3549
3530
|
return;
|
|
3550
3531
|
}
|
|
3551
|
-
const
|
|
3552
|
-
for (const
|
|
3553
|
-
this._map.getLayer(
|
|
3532
|
+
const g = d ? "visible" : "none";
|
|
3533
|
+
for (const w of y)
|
|
3534
|
+
this._map.getLayer(w) && this._map.setLayoutProperty(w, "visibility", g);
|
|
3554
3535
|
}
|
|
3555
3536
|
/**
|
|
3556
3537
|
* Switch the navdata period. Fetches tiles for the new period immediately.
|
|
3557
3538
|
* @param {string} period
|
|
3558
3539
|
*/
|
|
3559
|
-
setPeriod(
|
|
3560
|
-
var
|
|
3561
|
-
this._period =
|
|
3562
|
-
const
|
|
3563
|
-
|
|
3564
|
-
}
|
|
3565
|
-
/**
|
|
3566
|
-
|
|
3567
|
-
|
|
3568
|
-
|
|
3569
|
-
|
|
3570
|
-
|
|
3571
|
-
|
|
3540
|
+
setPeriod(r) {
|
|
3541
|
+
var y;
|
|
3542
|
+
this._period = r;
|
|
3543
|
+
const d = (y = this._map) == null ? void 0 : y.getSource("navdata");
|
|
3544
|
+
d && d.setTiles([`${this._apiUrl}/api/tiles/${r}/{z}/{x}/{y}.pbf`]);
|
|
3545
|
+
}
|
|
3546
|
+
/**
|
|
3547
|
+
* Proxy to map.on. Supports both signatures:
|
|
3548
|
+
* on(event, listener)
|
|
3549
|
+
* on(event, layerId, listener) ← layer-delegated events
|
|
3550
|
+
* Returns `this` for chaining.
|
|
3551
|
+
*/
|
|
3552
|
+
on(r, d, y) {
|
|
3553
|
+
return typeof d == "string" ? this._map.on(r, d, y) : this._map.on(r, d ?? y), this;
|
|
3554
|
+
}
|
|
3555
|
+
/**
|
|
3556
|
+
* Proxy to map.off. Supports both signatures:
|
|
3557
|
+
* off(event, listener)
|
|
3558
|
+
* off(event, layerId, listener)
|
|
3559
|
+
* Returns `this` for chaining.
|
|
3560
|
+
*/
|
|
3561
|
+
off(r, d, y) {
|
|
3562
|
+
return typeof d == "string" ? this._map.off(r, d, y) : this._map.off(r, d ?? y), this;
|
|
3563
|
+
}
|
|
3564
|
+
/** Proxy to map.once — supports layer-delegated signature too. */
|
|
3565
|
+
once(r, d, y) {
|
|
3566
|
+
return typeof d == "string" ? this._map.once(r, d, y) : this._map.once(r, d ?? y), this;
|
|
3572
3567
|
}
|
|
3573
3568
|
/** Remove the map and release all resources */
|
|
3574
3569
|
destroy() {
|