UNPKG

@maplat/tin

Version:

JavaScript library which performs homeomorphic conversion mutually between the coordinate systems of two planes based on the control points.

1,067 lines 147 kB
function Te(s, t, e = {}) { const n = { type: "Feature" }; return (e.id === 0 || e.id) && (n.id = e.id), e.bbox && (n.bbox = e.bbox), n.properties = t || {}, n.geometry = s, n; } function he(s, t, e = {}) { if (!s) throw new Error("coordinates is required"); if (!Array.isArray(s)) throw new Error("coordinates must be an Array"); if (s.length < 2) throw new Error("coordinates must be at least 2 numbers long"); if (!xn(s[0]) || !xn(s[1])) throw new Error("coordinates must contain numbers"); return Te({ type: "Point", coordinates: s }, t, e); } function Oe(s, t, e = {}) { for (const r of s) { if (r.length < 4) throw new Error( "Each LinearRing of a Polygon must have 4 or more Positions." ); if (r[r.length - 1].length !== r[0].length) throw new Error("First and last Position are not equivalent."); for (let i = 0; i < r[r.length - 1].length; i++) if (r[r.length - 1][i] !== r[0][i]) throw new Error("First and last Position are not equivalent."); } return Te({ type: "Polygon", coordinates: s }, t, e); } function yn(s, t, e = {}) { if (s.length < 2) throw new Error("coordinates must be an array of two or more positions"); return Te({ type: "LineString", coordinates: s }, t, e); } function Qt(s, t = {}) { const e = { type: "FeatureCollection" }; return t.id && (e.id = t.id), t.bbox && (e.bbox = t.bbox), e.features = s, e; } function xn(s) { return !isNaN(s) && s !== null && !Array.isArray(s); } function sr(s) { if (!s) throw new Error("coord is required"); if (!Array.isArray(s)) { if (s.type === "Feature" && s.geometry !== null && s.geometry.type === "Point") return [...s.geometry.coordinates]; if (s.type === "Point") return [...s.coordinates]; } if (Array.isArray(s) && s.length >= 2 && !Array.isArray(s[0]) && !Array.isArray(s[1])) return [...s]; throw new Error("coord must be GeoJSON Point or an Array of numbers"); } function ar(s) { return s.type === "Feature" ? s.geometry : s; } function dn(s, t, e) { if (s !== null) for (var n, r, i, o, a, c, f, l = 0, h = 0, d, b = s.type, k = b === "FeatureCollection", E = b === "Feature", F = k ? s.features.length : 1, L = 0; L < F; L++) { f = k ? s.features[L].geometry : E ? s.geometry : s, d = f ? f.type === "GeometryCollection" : !1, a = d ? f.geometries.length : 1; for (var g = 0; g < a; g++) { var x = 0, u = 0; if (o = d ? f.geometries[g] : f, o !== null) { c = o.coordinates; var w = o.type; switch (l = e && (w === "Polygon" || w === "MultiPolygon") ? 1 : 0, w) { case null: break; case "Point": if (t( c, h, L, x, u ) === !1) return !1; h++, x++; break; case "LineString": case "MultiPoint": for (n = 0; n < c.length; n++) { if (t( c[n], h, L, x, u ) === !1) return !1; h++, w === "MultiPoint" && x++; } w === "LineString" && x++; break; case "Polygon": case "MultiLineString": for (n = 0; n < c.length; n++) { for (r = 0; r < c[n].length - l; r++) { if (t( c[n][r], h, L, x, u ) === !1) return !1; h++; } w === "MultiLineString" && x++, w === "Polygon" && u++; } w === "Polygon" && x++; break; case "MultiPolygon": for (n = 0; n < c.length; n++) { for (u = 0, r = 0; r < c[n].length; r++) { for (i = 0; i < c[n][r].length - l; i++) { if (t( c[n][r][i], h, L, x, u ) === !1) return !1; h++; } u++; } x++; } break; case "GeometryCollection": for (n = 0; n < o.geometries.length; n++) if (dn(o.geometries[n], t, e) === !1) return !1; break; default: throw new Error("Unknown Geometry Type"); } } } } } const Rt = 11102230246251565e-32, st = 134217729, Wn = (3 + 8 * Rt) * Rt; function Dt(s, t, e, n, r) { let i, o, a, c, f = t[0], l = n[0], h = 0, d = 0; l > f == l > -f ? (i = f, f = t[++h]) : (i = l, l = n[++d]); let b = 0; if (h < s && d < e) for (l > f == l > -f ? (o = f + i, a = i - (o - f), f = t[++h]) : (o = l + i, a = i - (o - l), l = n[++d]), i = o, a !== 0 && (r[b++] = a); h < s && d < e; ) l > f == l > -f ? (o = i + f, c = o - i, a = i - (o - c) + (f - c), f = t[++h]) : (o = i + l, c = o - i, a = i - (o - c) + (l - c), l = n[++d]), i = o, a !== 0 && (r[b++] = a); for (; h < s; ) o = i + f, c = o - i, a = i - (o - c) + (f - c), f = t[++h], i = o, a !== 0 && (r[b++] = a); for (; d < e; ) o = i + l, c = o - i, a = i - (o - c) + (l - c), l = n[++d], i = o, a !== 0 && (r[b++] = a); return (i !== 0 || b === 0) && (r[b++] = i), b; } function zt(s, t, e, n, r, i, o, a) { return Dt(Dt(s, t, e, n, o), o, r, i, a); } function U(s, t, e, n) { let r, i, o, a, c, f, l, h, d, b, k; l = st * e, b = l - (l - e), k = e - b; let E = t[0]; r = E * e, l = st * E, h = l - (l - E), d = E - h, o = d * k - (r - h * b - d * b - h * k); let F = 0; o !== 0 && (n[F++] = o); for (let L = 1; L < s; L++) E = t[L], a = E * e, l = st * E, h = l - (l - E), d = E - h, c = d * k - (a - h * b - d * b - h * k), i = r + c, f = i - r, o = r - (i - f) + (c - f), o !== 0 && (n[F++] = o), r = a + i, o = i - (r - a), o !== 0 && (n[F++] = o); return (r !== 0 || F === 0) && (n[F++] = r), F; } function Gn(s, t) { let e = t[0]; for (let n = 1; n < s; n++) e += t[n]; return e; } function bt(s) { return new Float64Array(s); } const cr = (3 + 16 * Rt) * Rt, fr = (2 + 12 * Rt) * Rt, hr = (9 + 64 * Rt) * Rt * Rt, xe = bt(4), bn = bt(8), vn = bt(12), _n = bt(16), Yt = bt(4); function lr(s, t, e, n, r, i, o) { let a, c, f, l, h, d, b, k, E, F, L, g, x, u, w, m, T, O; const I = s - r, P = e - r, C = t - i, R = n - i; u = I * R, d = st * I, b = d - (d - I), k = I - b, d = st * R, E = d - (d - R), F = R - E, w = k * F - (u - b * E - k * E - b * F), m = C * P, d = st * C, b = d - (d - C), k = C - b, d = st * P, E = d - (d - P), F = P - E, T = k * F - (m - b * E - k * E - b * F), L = w - T, h = w - L, xe[0] = w - (L + h) + (h - T), g = u + L, h = g - u, x = u - (g - h) + (L - h), L = x - m, h = x - L, xe[1] = x - (L + h) + (h - m), O = g + L, h = O - g, xe[2] = g - (O - h) + (L - h), xe[3] = O; let G = Gn(4, xe), p = fr * o; if (G >= p || -G >= p || (h = s - I, a = s - (I + h) + (h - r), h = e - P, f = e - (P + h) + (h - r), h = t - C, c = t - (C + h) + (h - i), h = n - R, l = n - (R + h) + (h - i), a === 0 && c === 0 && f === 0 && l === 0) || (p = hr * o + Wn * Math.abs(G), G += I * l + R * a - (C * f + P * c), G >= p || -G >= p)) return G; u = a * R, d = st * a, b = d - (d - a), k = a - b, d = st * R, E = d - (d - R), F = R - E, w = k * F - (u - b * E - k * E - b * F), m = c * P, d = st * c, b = d - (d - c), k = c - b, d = st * P, E = d - (d - P), F = P - E, T = k * F - (m - b * E - k * E - b * F), L = w - T, h = w - L, Yt[0] = w - (L + h) + (h - T), g = u + L, h = g - u, x = u - (g - h) + (L - h), L = x - m, h = x - L, Yt[1] = x - (L + h) + (h - m), O = g + L, h = O - g, Yt[2] = g - (O - h) + (L - h), Yt[3] = O; const M = Dt(4, xe, 4, Yt, bn); u = I * l, d = st * I, b = d - (d - I), k = I - b, d = st * l, E = d - (d - l), F = l - E, w = k * F - (u - b * E - k * E - b * F), m = C * f, d = st * C, b = d - (d - C), k = C - b, d = st * f, E = d - (d - f), F = f - E, T = k * F - (m - b * E - k * E - b * F), L = w - T, h = w - L, Yt[0] = w - (L + h) + (h - T), g = u + L, h = g - u, x = u - (g - h) + (L - h), L = x - m, h = x - L, Yt[1] = x - (L + h) + (h - m), O = g + L, h = O - g, Yt[2] = g - (O - h) + (L - h), Yt[3] = O; const _ = Dt(M, bn, 4, Yt, vn); u = a * l, d = st * a, b = d - (d - a), k = a - b, d = st * l, E = d - (d - l), F = l - E, w = k * F - (u - b * E - k * E - b * F), m = c * f, d = st * c, b = d - (d - c), k = c - b, d = st * f, E = d - (d - f), F = f - E, T = k * F - (m - b * E - k * E - b * F), L = w - T, h = w - L, Yt[0] = w - (L + h) + (h - T), g = u + L, h = g - u, x = u - (g - h) + (L - h), L = x - m, h = x - L, Yt[1] = x - (L + h) + (h - m), O = g + L, h = O - g, Yt[2] = g - (O - h) + (L - h), Yt[3] = O; const X = Dt(_, vn, 4, Yt, _n); return _n[X - 1]; } function ne(s, t, e, n, r, i) { const o = (t - i) * (e - r), a = (s - r) * (n - i), c = o - a, f = Math.abs(o + a); return Math.abs(c) >= cr * f ? c : -lr(s, t, e, n, r, i, f); } const ur = (10 + 96 * Rt) * Rt, pr = (4 + 48 * Rt) * Rt, dr = (44 + 576 * Rt) * Rt * Rt, oe = bt(4), se = bt(4), ae = bt(4), Zt = bt(4), te = bt(4), ee = bt(4), Lt = bt(4), $t = bt(4), en = bt(8), nn = bt(8), rn = bt(8), on = bt(8), sn = bt(8), an = bt(8), De = bt(8), Ce = bt(8), Re = bt(8), de = bt(4), me = bt(4), ge = bt(4), ct = bt(8), pt = bt(16), kt = bt(16), Et = bt(16), vt = bt(32), ce = bt(32), Tt = bt(48), Vt = bt(64); let ve = bt(1152), cn = bt(1152); function Pt(s, t, e) { s = Dt(s, ve, t, e, cn); const n = ve; return ve = cn, cn = n, s; } function mr(s, t, e, n, r, i, o, a, c) { let f, l, h, d, b, k, E, F, L, g, x, u, w, m, T, O, I, P, C, R, G, p, M, _, X, B, Y, y, D, j, q, Q, H, rt, J; const lt = s - o, ht = e - o, ut = r - o, dt = t - a, gt = n - a, mt = i - a; q = ht * mt, M = st * ht, _ = M - (M - ht), X = ht - _, M = st * mt, B = M - (M - mt), Y = mt - B, Q = X * Y - (q - _ * B - X * B - _ * Y), H = ut * gt, M = st * ut, _ = M - (M - ut), X = ut - _, M = st * gt, B = M - (M - gt), Y = gt - B, rt = X * Y - (H - _ * B - X * B - _ * Y), y = Q - rt, p = Q - y, oe[0] = Q - (y + p) + (p - rt), D = q + y, p = D - q, j = q - (D - p) + (y - p), y = j - H, p = j - y, oe[1] = j - (y + p) + (p - H), J = D + y, p = J - D, oe[2] = D - (J - p) + (y - p), oe[3] = J, q = ut * dt, M = st * ut, _ = M - (M - ut), X = ut - _, M = st * dt, B = M - (M - dt), Y = dt - B, Q = X * Y - (q - _ * B - X * B - _ * Y), H = lt * mt, M = st * lt, _ = M - (M - lt), X = lt - _, M = st * mt, B = M - (M - mt), Y = mt - B, rt = X * Y - (H - _ * B - X * B - _ * Y), y = Q - rt, p = Q - y, se[0] = Q - (y + p) + (p - rt), D = q + y, p = D - q, j = q - (D - p) + (y - p), y = j - H, p = j - y, se[1] = j - (y + p) + (p - H), J = D + y, p = J - D, se[2] = D - (J - p) + (y - p), se[3] = J, q = lt * gt, M = st * lt, _ = M - (M - lt), X = lt - _, M = st * gt, B = M - (M - gt), Y = gt - B, Q = X * Y - (q - _ * B - X * B - _ * Y), H = ht * dt, M = st * ht, _ = M - (M - ht), X = ht - _, M = st * dt, B = M - (M - dt), Y = dt - B, rt = X * Y - (H - _ * B - X * B - _ * Y), y = Q - rt, p = Q - y, ae[0] = Q - (y + p) + (p - rt), D = q + y, p = D - q, j = q - (D - p) + (y - p), y = j - H, p = j - y, ae[1] = j - (y + p) + (p - H), J = D + y, p = J - D, ae[2] = D - (J - p) + (y - p), ae[3] = J, f = Dt( Dt( Dt( U(U(4, oe, lt, ct), ct, lt, pt), pt, U(U(4, oe, dt, ct), ct, dt, kt), kt, vt ), vt, Dt( U(U(4, se, ht, ct), ct, ht, pt), pt, U(U(4, se, gt, ct), ct, gt, kt), kt, ce ), ce, Vt ), Vt, Dt( U(U(4, ae, ut, ct), ct, ut, pt), pt, U(U(4, ae, mt, ct), ct, mt, kt), kt, vt ), vt, ve ); let It = Gn(f, ve), Nt = pr * c; if (It >= Nt || -It >= Nt || (p = s - lt, l = s - (lt + p) + (p - o), p = t - dt, b = t - (dt + p) + (p - a), p = e - ht, h = e - (ht + p) + (p - o), p = n - gt, k = n - (gt + p) + (p - a), p = r - ut, d = r - (ut + p) + (p - o), p = i - mt, E = i - (mt + p) + (p - a), l === 0 && h === 0 && d === 0 && b === 0 && k === 0 && E === 0) || (Nt = dr * c + Wn * Math.abs(It), It += (lt * lt + dt * dt) * (ht * E + mt * h - (gt * d + ut * k)) + 2 * (lt * l + dt * b) * (ht * mt - gt * ut) + ((ht * ht + gt * gt) * (ut * b + dt * d - (mt * l + lt * E)) + 2 * (ht * h + gt * k) * (ut * dt - mt * lt)) + ((ut * ut + mt * mt) * (lt * k + gt * l - (dt * h + ht * b)) + 2 * (ut * d + mt * E) * (lt * gt - dt * ht)), It >= Nt || -It >= Nt)) return It; if ((h !== 0 || k !== 0 || d !== 0 || E !== 0) && (q = lt * lt, M = st * lt, _ = M - (M - lt), X = lt - _, Q = X * X - (q - _ * _ - (_ + _) * X), H = dt * dt, M = st * dt, _ = M - (M - dt), X = dt - _, rt = X * X - (H - _ * _ - (_ + _) * X), y = Q + rt, p = y - Q, Zt[0] = Q - (y - p) + (rt - p), D = q + y, p = D - q, j = q - (D - p) + (y - p), y = j + H, p = y - j, Zt[1] = j - (y - p) + (H - p), J = D + y, p = J - D, Zt[2] = D - (J - p) + (y - p), Zt[3] = J), (d !== 0 || E !== 0 || l !== 0 || b !== 0) && (q = ht * ht, M = st * ht, _ = M - (M - ht), X = ht - _, Q = X * X - (q - _ * _ - (_ + _) * X), H = gt * gt, M = st * gt, _ = M - (M - gt), X = gt - _, rt = X * X - (H - _ * _ - (_ + _) * X), y = Q + rt, p = y - Q, te[0] = Q - (y - p) + (rt - p), D = q + y, p = D - q, j = q - (D - p) + (y - p), y = j + H, p = y - j, te[1] = j - (y - p) + (H - p), J = D + y, p = J - D, te[2] = D - (J - p) + (y - p), te[3] = J), (l !== 0 || b !== 0 || h !== 0 || k !== 0) && (q = ut * ut, M = st * ut, _ = M - (M - ut), X = ut - _, Q = X * X - (q - _ * _ - (_ + _) * X), H = mt * mt, M = st * mt, _ = M - (M - mt), X = mt - _, rt = X * X - (H - _ * _ - (_ + _) * X), y = Q + rt, p = y - Q, ee[0] = Q - (y - p) + (rt - p), D = q + y, p = D - q, j = q - (D - p) + (y - p), y = j + H, p = y - j, ee[1] = j - (y - p) + (H - p), J = D + y, p = J - D, ee[2] = D - (J - p) + (y - p), ee[3] = J), l !== 0 && (F = U(4, oe, l, en), f = Pt(f, zt( U(F, en, 2 * lt, pt), pt, U(U(4, ee, l, ct), ct, gt, kt), kt, U(U(4, te, l, ct), ct, -mt, Et), Et, vt, Tt ), Tt)), b !== 0 && (L = U(4, oe, b, nn), f = Pt(f, zt( U(L, nn, 2 * dt, pt), pt, U(U(4, te, b, ct), ct, ut, kt), kt, U(U(4, ee, b, ct), ct, -ht, Et), Et, vt, Tt ), Tt)), h !== 0 && (g = U(4, se, h, rn), f = Pt(f, zt( U(g, rn, 2 * ht, pt), pt, U(U(4, Zt, h, ct), ct, mt, kt), kt, U(U(4, ee, h, ct), ct, -dt, Et), Et, vt, Tt ), Tt)), k !== 0 && (x = U(4, se, k, on), f = Pt(f, zt( U(x, on, 2 * gt, pt), pt, U(U(4, ee, k, ct), ct, lt, kt), kt, U(U(4, Zt, k, ct), ct, -ut, Et), Et, vt, Tt ), Tt)), d !== 0 && (u = U(4, ae, d, sn), f = Pt(f, zt( U(u, sn, 2 * ut, pt), pt, U(U(4, te, d, ct), ct, dt, kt), kt, U(U(4, Zt, d, ct), ct, -gt, Et), Et, vt, Tt ), Tt)), E !== 0 && (w = U(4, ae, E, an), f = Pt(f, zt( U(w, an, 2 * mt, pt), pt, U(U(4, Zt, E, ct), ct, ht, kt), kt, U(U(4, te, E, ct), ct, -lt, Et), Et, vt, Tt ), Tt)), l !== 0 || b !== 0) { if (h !== 0 || k !== 0 || d !== 0 || E !== 0 ? (q = h * mt, M = st * h, _ = M - (M - h), X = h - _, M = st * mt, B = M - (M - mt), Y = mt - B, Q = X * Y - (q - _ * B - X * B - _ * Y), H = ht * E, M = st * ht, _ = M - (M - ht), X = ht - _, M = st * E, B = M - (M - E), Y = E - B, rt = X * Y - (H - _ * B - X * B - _ * Y), y = Q + rt, p = y - Q, Lt[0] = Q - (y - p) + (rt - p), D = q + y, p = D - q, j = q - (D - p) + (y - p), y = j + H, p = y - j, Lt[1] = j - (y - p) + (H - p), J = D + y, p = J - D, Lt[2] = D - (J - p) + (y - p), Lt[3] = J, q = d * -gt, M = st * d, _ = M - (M - d), X = d - _, M = st * -gt, B = M - (M - -gt), Y = -gt - B, Q = X * Y - (q - _ * B - X * B - _ * Y), H = ut * -k, M = st * ut, _ = M - (M - ut), X = ut - _, M = st * -k, B = M - (M - -k), Y = -k - B, rt = X * Y - (H - _ * B - X * B - _ * Y), y = Q + rt, p = y - Q, $t[0] = Q - (y - p) + (rt - p), D = q + y, p = D - q, j = q - (D - p) + (y - p), y = j + H, p = y - j, $t[1] = j - (y - p) + (H - p), J = D + y, p = J - D, $t[2] = D - (J - p) + (y - p), $t[3] = J, T = Dt(4, Lt, 4, $t, Ce), q = h * E, M = st * h, _ = M - (M - h), X = h - _, M = st * E, B = M - (M - E), Y = E - B, Q = X * Y - (q - _ * B - X * B - _ * Y), H = d * k, M = st * d, _ = M - (M - d), X = d - _, M = st * k, B = M - (M - k), Y = k - B, rt = X * Y - (H - _ * B - X * B - _ * Y), y = Q - rt, p = Q - y, me[0] = Q - (y + p) + (p - rt), D = q + y, p = D - q, j = q - (D - p) + (y - p), y = j - H, p = j - y, me[1] = j - (y + p) + (p - H), J = D + y, p = J - D, me[2] = D - (J - p) + (y - p), me[3] = J, P = 4) : (Ce[0] = 0, T = 1, me[0] = 0, P = 1), l !== 0) { const _t = U(T, Ce, l, Et); f = Pt(f, Dt( U(F, en, l, pt), pt, U(_t, Et, 2 * lt, vt), vt, Tt ), Tt); const Mt = U(P, me, l, ct); f = Pt(f, zt( U(Mt, ct, 2 * lt, pt), pt, U(Mt, ct, l, kt), kt, U(_t, Et, l, vt), vt, ce, Vt ), Vt), k !== 0 && (f = Pt(f, U(U(4, ee, l, ct), ct, k, pt), pt)), E !== 0 && (f = Pt(f, U(U(4, te, -l, ct), ct, E, pt), pt)); } if (b !== 0) { const _t = U(T, Ce, b, Et); f = Pt(f, Dt( U(L, nn, b, pt), pt, U(_t, Et, 2 * dt, vt), vt, Tt ), Tt); const Mt = U(P, me, b, ct); f = Pt(f, zt( U(Mt, ct, 2 * dt, pt), pt, U(Mt, ct, b, kt), kt, U(_t, Et, b, vt), vt, ce, Vt ), Vt); } } if (h !== 0 || k !== 0) { if (d !== 0 || E !== 0 || l !== 0 || b !== 0 ? (q = d * dt, M = st * d, _ = M - (M - d), X = d - _, M = st * dt, B = M - (M - dt), Y = dt - B, Q = X * Y - (q - _ * B - X * B - _ * Y), H = ut * b, M = st * ut, _ = M - (M - ut), X = ut - _, M = st * b, B = M - (M - b), Y = b - B, rt = X * Y - (H - _ * B - X * B - _ * Y), y = Q + rt, p = y - Q, Lt[0] = Q - (y - p) + (rt - p), D = q + y, p = D - q, j = q - (D - p) + (y - p), y = j + H, p = y - j, Lt[1] = j - (y - p) + (H - p), J = D + y, p = J - D, Lt[2] = D - (J - p) + (y - p), Lt[3] = J, R = -mt, G = -E, q = l * R, M = st * l, _ = M - (M - l), X = l - _, M = st * R, B = M - (M - R), Y = R - B, Q = X * Y - (q - _ * B - X * B - _ * Y), H = lt * G, M = st * lt, _ = M - (M - lt), X = lt - _, M = st * G, B = M - (M - G), Y = G - B, rt = X * Y - (H - _ * B - X * B - _ * Y), y = Q + rt, p = y - Q, $t[0] = Q - (y - p) + (rt - p), D = q + y, p = D - q, j = q - (D - p) + (y - p), y = j + H, p = y - j, $t[1] = j - (y - p) + (H - p), J = D + y, p = J - D, $t[2] = D - (J - p) + (y - p), $t[3] = J, O = Dt(4, Lt, 4, $t, Re), q = d * b, M = st * d, _ = M - (M - d), X = d - _, M = st * b, B = M - (M - b), Y = b - B, Q = X * Y - (q - _ * B - X * B - _ * Y), H = l * E, M = st * l, _ = M - (M - l), X = l - _, M = st * E, B = M - (M - E), Y = E - B, rt = X * Y - (H - _ * B - X * B - _ * Y), y = Q - rt, p = Q - y, ge[0] = Q - (y + p) + (p - rt), D = q + y, p = D - q, j = q - (D - p) + (y - p), y = j - H, p = j - y, ge[1] = j - (y + p) + (p - H), J = D + y, p = J - D, ge[2] = D - (J - p) + (y - p), ge[3] = J, C = 4) : (Re[0] = 0, O = 1, ge[0] = 0, C = 1), h !== 0) { const _t = U(O, Re, h, Et); f = Pt(f, Dt( U(g, rn, h, pt), pt, U(_t, Et, 2 * ht, vt), vt, Tt ), Tt); const Mt = U(C, ge, h, ct); f = Pt(f, zt( U(Mt, ct, 2 * ht, pt), pt, U(Mt, ct, h, kt), kt, U(_t, Et, h, vt), vt, ce, Vt ), Vt), E !== 0 && (f = Pt(f, U(U(4, Zt, h, ct), ct, E, pt), pt)), b !== 0 && (f = Pt(f, U(U(4, ee, -h, ct), ct, b, pt), pt)); } if (k !== 0) { const _t = U(O, Re, k, Et); f = Pt(f, Dt( U(x, on, k, pt), pt, U(_t, Et, 2 * gt, vt), vt, Tt ), Tt); const Mt = U(C, ge, k, ct); f = Pt(f, zt( U(Mt, ct, 2 * gt, pt), pt, U(Mt, ct, k, kt), kt, U(_t, Et, k, vt), vt, ce, Vt ), Vt); } } if (d !== 0 || E !== 0) { if (l !== 0 || b !== 0 || h !== 0 || k !== 0 ? (q = l * gt, M = st * l, _ = M - (M - l), X = l - _, M = st * gt, B = M - (M - gt), Y = gt - B, Q = X * Y - (q - _ * B - X * B - _ * Y), H = lt * k, M = st * lt, _ = M - (M - lt), X = lt - _, M = st * k, B = M - (M - k), Y = k - B, rt = X * Y - (H - _ * B - X * B - _ * Y), y = Q + rt, p = y - Q, Lt[0] = Q - (y - p) + (rt - p), D = q + y, p = D - q, j = q - (D - p) + (y - p), y = j + H, p = y - j, Lt[1] = j - (y - p) + (H - p), J = D + y, p = J - D, Lt[2] = D - (J - p) + (y - p), Lt[3] = J, R = -dt, G = -b, q = h * R, M = st * h, _ = M - (M - h), X = h - _, M = st * R, B = M - (M - R), Y = R - B, Q = X * Y - (q - _ * B - X * B - _ * Y), H = ht * G, M = st * ht, _ = M - (M - ht), X = ht - _, M = st * G, B = M - (M - G), Y = G - B, rt = X * Y - (H - _ * B - X * B - _ * Y), y = Q + rt, p = y - Q, $t[0] = Q - (y - p) + (rt - p), D = q + y, p = D - q, j = q - (D - p) + (y - p), y = j + H, p = y - j, $t[1] = j - (y - p) + (H - p), J = D + y, p = J - D, $t[2] = D - (J - p) + (y - p), $t[3] = J, m = Dt(4, Lt, 4, $t, De), q = l * k, M = st * l, _ = M - (M - l), X = l - _, M = st * k, B = M - (M - k), Y = k - B, Q = X * Y - (q - _ * B - X * B - _ * Y), H = h * b, M = st * h, _ = M - (M - h), X = h - _, M = st * b, B = M - (M - b), Y = b - B, rt = X * Y - (H - _ * B - X * B - _ * Y), y = Q - rt, p = Q - y, de[0] = Q - (y + p) + (p - rt), D = q + y, p = D - q, j = q - (D - p) + (y - p), y = j - H, p = j - y, de[1] = j - (y + p) + (p - H), J = D + y, p = J - D, de[2] = D - (J - p) + (y - p), de[3] = J, I = 4) : (De[0] = 0, m = 1, de[0] = 0, I = 1), d !== 0) { const _t = U(m, De, d, Et); f = Pt(f, Dt( U(u, sn, d, pt), pt, U(_t, Et, 2 * ut, vt), vt, Tt ), Tt); const Mt = U(I, de, d, ct); f = Pt(f, zt( U(Mt, ct, 2 * ut, pt), pt, U(Mt, ct, d, kt), kt, U(_t, Et, d, vt), vt, ce, Vt ), Vt), b !== 0 && (f = Pt(f, U(U(4, te, d, ct), ct, b, pt), pt)), k !== 0 && (f = Pt(f, U(U(4, Zt, -d, ct), ct, k, pt), pt)); } if (E !== 0) { const _t = U(m, De, E, Et); f = Pt(f, Dt( U(w, an, E, pt), pt, U(_t, Et, 2 * mt, vt), vt, Tt ), Tt); const Mt = U(I, de, E, ct); f = Pt(f, zt( U(Mt, ct, 2 * mt, pt), pt, U(Mt, ct, E, kt), kt, U(_t, Et, E, vt), vt, ce, Vt ), Vt); } } return ve[f - 1]; } function gr(s, t, e, n, r, i, o, a) { const c = s - o, f = e - o, l = r - o, h = t - a, d = n - a, b = i - a, k = f * b, E = l * d, F = c * c + h * h, L = l * h, g = c * b, x = f * f + d * d, u = c * d, w = f * h, m = l * l + b * b, T = F * (k - E) + x * (L - g) + m * (u - w), O = (Math.abs(k) + Math.abs(E)) * F + (Math.abs(L) + Math.abs(g)) * x + (Math.abs(u) + Math.abs(w)) * m, I = ur * O; return T > I || -T > I ? T : mr(s, t, e, n, r, i, o, a, O); } function wr(s, t) { var e, n, r = 0, i, o, a, c, f, l, h, d = s[0], b = s[1], k = t.length; for (e = 0; e < k; e++) { n = 0; var E = t[e], F = E.length - 1; if (l = E[0], l[0] !== E[F][0] && l[1] !== E[F][1]) throw new Error("First and last coordinates in a ring must be the same"); for (o = l[0] - d, a = l[1] - b, n; n < F; n++) { if (h = E[n + 1], c = h[0] - d, f = h[1] - b, a === 0 && f === 0) { if (c <= 0 && o >= 0 || o <= 0 && c >= 0) return 0; } else if (f >= 0 && a <= 0 || f <= 0 && a >= 0) { if (i = ne(o, c, a, f, 0, 0), i === 0) return 0; (i > 0 && f > 0 && a <= 0 || i < 0 && f <= 0 && a > 0) && r++; } l = h, a = f, o = c; } } return r % 2 !== 0; } function fn(s, t, e = {}) { if (!s) throw new Error("point is required"); if (!t) throw new Error("polygon is required"); const n = sr(s), r = ar(t), i = r.type, o = t.bbox; let a = r.coordinates; if (o && yr(n, o) === !1) return !1; i === "Polygon" && (a = [a]); let c = !1; for (var f = 0; f < a.length; ++f) { const l = wr(n, a[f]); if (l === 0) return !e.ignoreBoundary; l && (c = !0); } return c; } function yr(s, t) { return t[0] <= s[0] && t[1] <= s[1] && t[2] >= s[0] && t[3] >= s[1]; } let Jn = class { constructor(t = [], e = xr) { if (this.data = t, this.length = this.data.length, this.compare = e, this.length > 0) for (let n = (this.length >> 1) - 1; n >= 0; n--) this._down(n); } push(t) { this.data.push(t), this.length++, this._up(this.length - 1); } pop() { if (this.length === 0) return; const t = this.data[0], e = this.data.pop(); return this.length--, this.length > 0 && (this.data[0] = e, this._down(0)), t; } peek() { return this.data[0]; } _up(t) { const { data: e, compare: n } = this, r = e[t]; for (; t > 0; ) { const i = t - 1 >> 1, o = e[i]; if (n(r, o) >= 0) break; e[t] = o, t = i; } e[t] = r; } _down(t) { const { data: e, compare: n } = this, r = this.length >> 1, i = e[t]; for (; t < r; ) { let o = (t << 1) + 1, a = e[o]; const c = o + 1; if (c < this.length && n(e[c], a) < 0 && (o = c, a = e[c]), n(a, i) >= 0) break; e[t] = a, t = o; } e[t] = i; } }; function xr(s, t) { return s < t ? -1 : s > t ? 1 : 0; } function Kn(s, t) { return s.p.x > t.p.x ? 1 : s.p.x < t.p.x ? -1 : s.p.y !== t.p.y ? s.p.y > t.p.y ? 1 : -1 : 1; } function br(s, t) { return s.rightSweepEvent.p.x > t.rightSweepEvent.p.x ? 1 : s.rightSweepEvent.p.x < t.rightSweepEvent.p.x ? -1 : s.rightSweepEvent.p.y !== t.rightSweepEvent.p.y ? s.rightSweepEvent.p.y < t.rightSweepEvent.p.y ? 1 : -1 : 1; } class Mn { constructor(t, e, n, r) { this.p = { x: t[0], y: t[1] }, this.featureId = e, this.ringId = n, this.eventId = r, this.otherEvent = null, this.isLeftEndpoint = null; } isSamePoint(t) { return this.p.x === t.p.x && this.p.y === t.p.y; } } function vr(s, t) { if (s.type === "FeatureCollection") { const e = s.features; for (let n = 0; n < e.length; n++) Sn(e[n], t); } else Sn(s, t); } let Fe = 0, Ye = 0, Le = 0; function Sn(s, t) { const e = s.type === "Feature" ? s.geometry : s; let n = e.coordinates; (e.type === "Polygon" || e.type === "MultiLineString") && (n = [n]), e.type === "LineString" && (n = [[n]]); for (let r = 0; r < n.length; r++) for (let i = 0; i < n[r].length; i++) { let o = n[r][i][0], a = null; Ye = Ye + 1; for (let c = 0; c < n[r][i].length - 1; c++) { a = n[r][i][c + 1]; const f = new Mn(o, Fe, Ye, Le), l = new Mn(a, Fe, Ye, Le + 1); f.otherEvent = l, l.otherEvent = f, Kn(f, l) > 0 ? (l.isLeftEndpoint = !0, f.isLeftEndpoint = !1) : (f.isLeftEndpoint = !0, l.isLeftEndpoint = !1), t.push(f), t.push(l), o = a, Le = Le + 1; } } Fe = Fe + 1; } class _r { constructor(t) { this.leftSweepEvent = t, this.rightSweepEvent = t.otherEvent; } } function Mr(s, t) { if (s === null || t === null || s.leftSweepEvent.ringId === t.leftSweepEvent.ringId && (s.rightSweepEvent.isSamePoint(t.leftSweepEvent) || s.rightSweepEvent.isSamePoint(t.leftSweepEvent) || s.rightSweepEvent.isSamePoint(t.rightSweepEvent) || s.leftSweepEvent.isSamePoint(t.leftSweepEvent) || s.leftSweepEvent.isSamePoint(t.rightSweepEvent))) return !1; const e = s.leftSweepEvent.p.x, n = s.leftSweepEvent.p.y, r = s.rightSweepEvent.p.x, i = s.rightSweepEvent.p.y, o = t.leftSweepEvent.p.x, a = t.leftSweepEvent.p.y, c = t.rightSweepEvent.p.x, f = t.rightSweepEvent.p.y, l = (f - a) * (r - e) - (c - o) * (i - n), h = (c - o) * (n - a) - (f - a) * (e - o), d = (r - e) * (n - a) - (i - n) * (e - o); if (l === 0) return !1; const b = h / l, k = d / l; if (b >= 0 && b <= 1 && k >= 0 && k <= 1) { const E = e + b * (r - e), F = n + b * (i - n); return [E, F]; } return !1; } function Sr(s, t) { t = t || !1; const e = [], n = new Jn([], br); for (; s.length; ) { const r = s.pop(); if (r.isLeftEndpoint) { const i = new _r(r); for (let o = 0; o < n.data.length; o++) { const a = n.data[o]; if (t && a.leftSweepEvent.featureId === r.featureId) continue; const c = Mr(i, a); c !== !1 && e.push(c); } n.push(i); } else r.isLeftEndpoint === !1 && n.pop(); } return e; } function kr(s, t) { const e = new Jn([], Kn); return vr(s, e), Sr(e, t); } var Er = kr; function Ar(s, t, e = {}) { const { removeDuplicates: n = !0, ignoreSelfIntersections: r = !0 } = e; let i = []; s.type === "FeatureCollection" ? i = i.concat(s.features) : s.type === "Feature" ? i.push(s) : (s.type === "LineString" || s.type === "Polygon" || s.type === "MultiLineString" || s.type === "MultiPolygon") && i.push(Te(s)), t.type === "FeatureCollection" ? i = i.concat(t.features) : t.type === "Feature" ? i.push(t) : (t.type === "LineString" || t.type === "Polygon" || t.type === "MultiLineString" || t.type === "MultiPolygon") && i.push(Te(t)); const o = Er( Qt(i), r ); let a = []; if (n) { const c = {}; o.forEach((f) => { const l = f.join(","); c[l] || (c[l] = !0, a.push(f)); }); } else a = o; return Qt(a.map((c) => he(c))); } function Ir(s) { return s && s.__esModule && Object.prototype.hasOwnProperty.call(s, "default") ? s.default : s; } function Br(s) { if (Object.prototype.hasOwnProperty.call(s, "__esModule")) return s; var t = s.default; if (typeof t == "function") { var e = function n() { var r = !1; try { r = this instanceof n; } catch { } return r ? Reflect.construct(t, arguments, this.constructor) : t.apply(this, arguments); }; e.prototype = t.prototype; } else e = {}; return Object.defineProperty(e, "__esModule", { value: !0 }), Object.keys(s).forEach(function(n) { var r = Object.getOwnPropertyDescriptor(s, n); Object.defineProperty(e, n, r.get ? r : { enumerable: !0, get: function() { return s[n]; } }); }), e; } function Tr(s, t = {}) { let e = 0, n = 0, r = 0; return dn( s, function(i) { e += i[0], n += i[1], r++; }, !0 ), he([e / r, n / r], t.properties); } var $e = { exports: {} }, Je = { exports: {} }, Pr = Je.exports, kn; function Or() { return kn || (kn = 1, (function(s, t) { (function(e, n) { s.exports = n(); })(Pr, function() { function e(g, x, u, w, m) { (function T(O, I, P, C, R) { for (; C > P; ) { if (C - P > 600) { var G = C - P + 1, p = I - P + 1, M = Math.log(G), _ = 0.5 * Math.exp(2 * M / 3), X = 0.5 * Math.sqrt(M * _ * (G - _) / G) * (p - G / 2 < 0 ? -1 : 1), B = Math.max(P, Math.floor(I - p * _ / G + X)), Y = Math.min(C, Math.floor(I + (G - p) * _ / G + X)); T(O, I, B, Y, R); } var y = O[I], D = P, j = C; for (n(O, P, I), R(O[C], y) > 0 && n(O, P, C); D < j; ) { for (n(O, D, j), D++, j--; R(O[D], y) < 0; ) D++; for (; R(O[j], y) > 0; ) j--; } R(O[P], y) === 0 ? n(O, P, j) : n(O, ++j, C), j <= I && (P = j + 1), I <= j && (C = j - 1); } })(g, x, u || 0, w || g.length - 1, m || r); } function n(g, x, u) { var w = g[x]; g[x] = g[u], g[u] = w; } function r(g, x) { return g < x ? -1 : g > x ? 1 : 0; } var i = function(g) { g === void 0 && (g = 9), this._maxEntries = Math.max(4, g), this._minEntries = Math.max(2, Math.ceil(0.4 * this._maxEntries)), this.clear(); }; function o(g, x, u) { if (!u) return x.indexOf(g); for (var w = 0; w < x.length; w++) if (u(g, x[w])) return w; return -1; } function a(g, x) { c(g, 0, g.children.length, x, g); } function c(g, x, u, w, m) { m || (m = F(null)), m.minX = 1 / 0, m.minY = 1 / 0, m.maxX = -1 / 0, m.maxY = -1 / 0; for (var T = x; T < u; T++) { var O = g.children[T]; f(m, g.leaf ? w(O) : O); } return m; } function f(g, x) { return g.minX = Math.min(g.minX, x.minX), g.minY = Math.min(g.minY, x.minY), g.maxX = Math.max(g.maxX, x.maxX), g.maxY = Math.max(g.maxY, x.maxY), g; } function l(g, x) { return g.minX - x.minX; } function h(g, x) { return g.minY - x.minY; } function d(g) { return (g.maxX - g.minX) * (g.maxY - g.minY); } function b(g) { return g.maxX - g.minX + (g.maxY - g.minY); } function k(g, x) { return g.minX <= x.minX && g.minY <= x.minY && x.maxX <= g.maxX && x.maxY <= g.maxY; } function E(g, x) { return x.minX <= g.maxX && x.minY <= g.maxY && x.maxX >= g.minX && x.maxY >= g.minY; } function F(g) { return { children: g, height: 1, leaf: !0, minX: 1 / 0, minY: 1 / 0, maxX: -1 / 0, maxY: -1 / 0 }; } function L(g, x, u, w, m) { for (var T = [x, u]; T.length; ) if (!((u = T.pop()) - (x = T.pop()) <= w)) { var O = x + Math.ceil((u - x) / w / 2) * w; e(g, O, x, u, m), T.push(x, O, O, u); } } return i.prototype.all = function() { return this._all(this.data, []); }, i.prototype.search = function(g) { var x = this.data, u = []; if (!E(g, x)) return u; for (var w = this.toBBox, m = []; x; ) { for (var T = 0; T < x.children.length; T++) { var O = x.children[T], I = x.leaf ? w(O) : O; E(g, I) && (x.leaf ? u.push(O) : k(g, I) ? this._all(O, u) : m.push(O)); } x = m.pop(); } return u; }, i.prototype.collides = function(g) { var x = this.data; if (!E(g, x)) return !1; for (var u = []; x; ) { for (var w = 0; w < x.children.length; w++) { var m = x.children[w], T = x.leaf ? this.toBBox(m) : m; if (E(g, T)) { if (x.leaf || k(g, T)) return !0; u.push(m); } } x = u.pop(); } return !1; }, i.prototype.load = function(g) { if (!g || !g.length) return this; if (g.length < this._minEntries) { for (var x = 0; x < g.length; x++) this.insert(g[x]); return this; } var u = this._build(g.slice(), 0, g.length - 1, 0); if (this.data.children.length) if (this.data.height === u.height) this._splitRoot(this.data, u); else { if (this.data.height < u.height) { var w = this.data; this.data = u, u = w; } this._insert(u, this.data.height - u.height - 1, !0); } else this.data = u; return this; }, i.prototype.insert = function(g) { return g && this._insert(g, this.data.height - 1), this; }, i.prototype.clear = function() { return this.data = F([]), this; }, i.prototype.remove = function(g, x) { if (!g) return this; for (var u, w, m, T = this.data, O = this.toBBox(g), I = [], P = []; T || I.length; ) { if (T || (T = I.pop(), w = I[I.length - 1], u = P.pop(), m = !0), T.leaf) { var C = o(g, T.children, x); if (C !== -1) return T.children.splice(C, 1), I.push(T), this._condense(I), this; } m || T.leaf || !k(T, O) ? w ? (u++, T = w.children[u], m = !1) : T = null : (I.push(T), P.push(u), u = 0, w = T, T = T.children[0]); } return this; }, i.prototype.toBBox = function(g) { return g; }, i.prototype.compareMinX = function(g, x) { return g.minX - x.minX; }, i.prototype.compareMinY = function(g, x) { return g.minY - x.minY; }, i.prototype.toJSON = function() { return this.data; }, i.prototype.fromJSON = function(g) { return this.data = g, this; }, i.prototype._all = function(g, x) { for (var u = []; g; ) g.leaf ? x.push.apply(x, g.children) : u.push.apply(u, g.children), g = u.pop(); return x; }, i.prototype._build = function(g, x, u, w) { var m, T = u - x + 1, O = this._maxEntries; if (T <= O) return a(m = F(g.slice(x, u + 1)), this.toBBox), m; w || (w = Math.ceil(Math.log(T) / Math.log(O)), O = Math.ceil(T / Math.pow(O, w - 1))), (m = F([])).leaf = !1, m.height = w; var I = Math.ceil(T / O), P = I * Math.ceil(Math.sqrt(O)); L(g, x, u, P, this.compareMinX); for (var C = x; C <= u; C += P) { var R = Math.min(C + P - 1, u); L(g, C, R, I, this.compareMinY); for (var G = C; G <= R; G += I) { var p = Math.min(G + I - 1, R); m.children.push(this._build(g, G, p, w - 1)); } } return a(m, this.toBBox), m; }, i.prototype._chooseSubtree = function(g, x, u, w) { for (; w.push(x), !x.leaf && w.length - 1 !== u; ) { for (var m = 1 / 0, T = 1 / 0, O = void 0, I = 0; I < x.children.length; I++) { var P = x.children[I], C = d(P), R = (G = g, p = P, (Math.max(p.maxX, G.maxX) - Math.min(p.minX, G.minX)) * (Math.max(p.maxY, G.maxY) - Math.min(p.minY, G.minY)) - C); R < T ? (T = R, m = C < m ? C : m, O = P) : R === T && C < m && (m = C, O = P); } x = O || x.children[0]; } var G, p; return x; }, i.prototype._insert = function(g, x, u) { var w = u ? g : this.toBBox(g), m = [], T = this._chooseSubtree(w, this.data, x, m); for (T.children.push(g), f(T, w); x >= 0 && m[x].children.length > this._maxEntries; ) this._split(m, x), x--; this._adjustParentBBoxes(w, m, x); }, i.prototype._split = function(g, x) { var u = g[x], w = u.children.length, m = this._minEntries; this._chooseSplitAxis(u, m, w); var T = this._chooseSplitIndex(u, m, w), O = F(u.children.splice(T, u.children.length - T)); O.height = u.height, O.leaf = u.leaf, a(u, this.toBBox), a(O, this.toBBox), x ? g[x - 1].children.push(O) : this._splitRoot(u, O); }, i.prototype._splitRoot = function(g, x) { this.data = F([g, x]), this.data.height = g.height + 1, this.data.leaf = !1, a(this.data, this.toBBox); }, i.prototype._chooseSplitIndex = function(g, x, u) { for (var w, m, T, O, I, P, C, R = 1 / 0, G = 1 / 0, p = x; p <= u - x; p++) { var M = c(g, 0, p, this.toBBox), _ = c(g, p, u, this.toBBox), X = (m = M, T = _, O = void 0, I = void 0, P = void 0, C = void 0, O = Math.max(m.minX, T.minX), I = Math.max(m.minY, T.minY), P = Math.min(m.maxX, T.maxX), C = Math.min(m.maxY, T.maxY), Math.max(0, P - O) * Math.max(0, C - I)), B = d(M) + d(_); X < R ? (R = X, w = p, G = B < G ? B : G) : X === R && B < G && (G = B, w = p); } return w || u - x; }, i.prototype._chooseSplitAxis = function(g, x, u) { var w = g.leaf ? this.compareMinX : l, m = g.leaf ? this.compareMinY : h; this._allDistMargin(g, x, u, w) < this._allDistMargin(g, x, u, m) && g.children.sort(w); }, i.prototype._allDistMargin = function(g, x, u, w) { g.children.sort(w); for (var m = this.toBBox, T = c(g, 0, x, m), O = c(g, u - x, u, m), I = b(T) + b(O), P = x; P < u - x; P++) { var C = g.children[P]; f(T, g.leaf ? m(C) : C), I += b(T); } for (var R = u - x - 1; R >= x; R--) { var G = g.children[R]; f(O, g.leaf ? m(G) : G), I += b(O); } return I; }, i.prototype._adjustParentBBoxes = function(g, x, u) { for (var w = u; w >= 0; w--) f(x[w], g); }, i.prototype._condense = function(g) { for (var x = g.length - 1, u = void 0; x >= 0; x--) g[x].children.length === 0 ? x > 0 ? (u = g[x - 1].children).splice(u.indexOf(g[x]), 1) : this.clear() : a(g[x], this.toBBox); }, i; }); })(Je)), Je.exports; } class Nr { constructor(t = [], e = Xr) { if (this.data = t, this.length = this.data.length, this.compare = e, this.length > 0) for (let n = (this.length >> 1) - 1; n >= 0; n--) this._down(n); } push(t) { this.data.push(t), this.length++, this._up(this.length - 1); } pop() { if (this.length === 0) return; const t = this.data[0], e = this.data.pop(); return this.length--, this.length > 0 && (this.data[0] = e, this._down(0)), t; } peek() { return this.data[0]; } _up(t) { const { data: e, compare: n } = this, r = e[t]; for (; t > 0; ) { const i = t - 1 >> 1, o = e[i]; if (n(r, o) >= 0) break; e[t] = o, t = i; } e[t] = r; } _down(t) { const { data: e, compare: n } = this, r = this.length >> 1, i = e[t]; for (; t < r; ) { let o = (t << 1) + 1, a = e[o]; const c = o + 1; if (c < this.length && n(e[c], a) < 0 && (o = c, a = e[c]), n(a, i) >= 0) break; e[t] = a, t = o; } e[t] = i; } } function Xr(s, t) { return s < t ? -1 : s > t ? 1 : 0; } const Dr = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ __proto__: null, default: Nr }, Symbol.toStringTag, { value: "Module" })), Cr = /* @__PURE__ */ Br(Dr); var Se = { exports: {} }, hn, En; function Rr() { return En || (En = 1, hn = function(t, e, n, r) { var i = t[0], o = t[1], a = !1; n === void 0 && (n = 0), r === void 0 && (r = e.length); for (var c = (r - n) / 2, f = 0, l = c - 1; f < c; l = f++) { var h = e[n + f * 2 + 0], d = e[n + f * 2 + 1], b = e[n + l * 2 + 0], k = e[n + l * 2 + 1], E = d > o != k > o && i < (b - h) * (o - d) / (k - d) + h; E && (a = !a); } return a; }), hn; } var ln, An; function Fr() { return An || (An = 1, ln = function(t, e, n, r) { var i = t[0], o = t[1], a = !1; n === void 0 && (n = 0), r === void 0 && (r = e.length); for (var c = r - n, f = 0, l = c - 1; f < c; l = f++) { var h = e[f + n][0], d = e[f + n][1], b = e[l + n][0], k = e[l + n][1], E = d > o != k > o && i < (b - h) * (o - d) / (k - d) + h; E && (a = !a); } return a; }), ln; } var In; function Yr() { if (In) return Se.exports; In = 1; var s = Rr(), t = Fr(); return Se.exports = function(n, r, i, o) { return r.length > 0 && Array.isArray(r[0]) ? t(n, r, i, o) : s(n, r, i, o); }, Se.exports.nested = t, Se.exports.flat = s, Se.exports; } var Ee = { exports: {} }, Lr = Ee.exports, Bn; function $r() { return Bn || (Bn = 1, (function(s, t) { (function(e, n) { n(t); })(Lr, function(e) { const r = 33306690738754706e-32; function i(E, F, L, g, x) { let u, w, m, T, O = F[0], I = g[0], P = 0, C = 0; I > O == I > -O ? (u = O, O = F[++P]) : (u = I, I = g[++C]); let R = 0; if (P < E && C < L) for (I > O == I > -O ? (m = u - ((w = O + u) - O), O = F[++P]) : (m = u - ((w = I + u) - I), I = g[++C]), u = w, m !== 0 && (x[R++] = m); P < E && C < L; ) I > O == I > -O ? (m = u - ((w = u + O) - (T = w - u)) + (O - T), O = F[++P]) : (m = u - ((w = u + I) - (T = w - u)) + (I - T), I = g[++C]), u = w, m !== 0 && (x[R++] = m); for (; P < E; ) m = u - ((w = u + O) - (T = w - u)) + (O - T), O = F[++P], u = w, m !== 0 && (x[R++] = m); for (; C < L; ) m = u - ((w = u + I) - (T = w - u)) + (I - T), I = g[++C], u = w, m !== 0 && (x[R++] = m); return u === 0 && R !== 0 || (x[R++] = u), R; } function o(E) { return new Float64Array(E); } const a = 33306690738754716e-32, c = 22204460492503146e-32, f = 11093356479670487e-47, l = o(4), h = o(8), d = o(12), b = o(16), k = o(4); e.orient2d = function(E, F, L, g, x, u) { const w = (F - u) * (L - x), m = (E - x) * (g - u), T = w - m; if (w === 0 || m === 0 || w > 0 != m > 0) return T; const O = Math.abs(w + m); return Math.abs(T) >= a * O ? T : -(function(I, P, C, R, G, p, M) { let _, X, B, Y, y, D, j, q, Q, H, rt, J, lt, ht, ut, dt, gt, mt; const It = I - G, Nt = C - G, _t = P - p, Mt = R - p; y = (ut = (q = It - (j = (D = 134217729 * It) - (D - It))) * (H = Mt - (Q = (D = 134217729 * Mt) - (D - Mt))) - ((ht = It * Mt) - j * Q - q * Q - j * H)) - (rt = ut - (gt = (q = _t - (j = (D = 134217729 * _t) - (D - _t))) * (H = Nt - (Q = (D = 134217729 * Nt) - (D - Nt))) - ((dt = _t * Nt) - j * Q - q * Q - j * H))), l[0] = ut - (rt + y) + (y - gt), y = (lt = ht - ((J = ht + rt) - (y = J - ht)) + (rt - y)) - (rt = lt - dt), l[1] = lt - (rt + y) + (y - dt), y = (mt = J + rt) - J, l[2] = J - (mt - y) + (rt - y), l[3] = mt; let Ht = (function(Ne, ye) { let _e = ye[0]; for (let ue = 1; ue < Ne; ue++) _e += ye[ue]; return _e; })(4, l), le = c * M; if (Ht >= le || -Ht >= le || (_ = I - (It + (y = I - It)) + (y - G), B = C - (Nt + (y = C - Nt)) + (y - G), X = P - (_t + (y = P - _t)) + (y - p), Y = R - (Mt + (y = R - Mt)) + (y - p), _ === 0 && X === 0 && B === 0 && Y === 0) || (le = f * M + r * Math.abs(Ht), (Ht += It * Y + Mt * _ - (_t * B + Nt * X)) >= le || -Ht >= le)) return Ht; y = (ut = (q = _ - (j = (D = 134217729 * _) - (D - _))) * (H = Mt - (Q = (D = 134217729 * Mt) - (D - Mt))) - ((ht = _ * Mt) - j * Q - q * Q - j * H)) - (rt = ut - (gt = (q = X - (j = (D = 134217729 * X) - (D - X))) * (H = Nt - (Q = (D = 134217729 * Nt) - (D - Nt))) - ((dt = X * Nt) - j * Q - q * Q - j * H))), k[0] = ut - (rt + y) + (y - gt), y = (lt = ht - ((J = ht + rt) - (y = J - ht)) + (rt - y)) - (rt = lt - dt), k[1] = lt - (rt + y) + (y - dt), y = (mt = J + rt) - J, k[2] = J - (mt - y) + (rt - y), k[3] = mt; const Qe = i(4, l, 4, k, h); y = (ut = (q = It - (j = (D = 134217729 * It) - (D - It))) * (H = Y - (Q = (D = 134217729 * Y) - (D - Y))) - ((ht = It * Y) - j * Q - q * Q - j * H)) - (rt = ut - (gt = (q = _t - (j = (D = 134217729 * _t) - (D - _t))) * (H = B - (Q = (D = 134217729 * B) - (D - B))) - ((dt = _t * B) - j * Q - q * Q - j * H))), k[0] = ut - (rt + y) + (y - gt), y = (lt = ht - ((J = ht + rt) - (y = J - ht)) + (rt - y)) - (rt = lt - dt), k[1] = lt - (rt + y) + (y - dt), y = (mt = J + rt) - J, k[2] = J - (mt - y) + (rt - y), k[3] = mt; const Ft = i(Qe, h, 4, k, d); y = (ut = (q = _ - (j = (D = 134217729 * _) - (D - _))) * (H = Y - (Q = (D = 134217729 * Y) - (D - Y))) - ((ht = _ * Y) - j * Q - q * Q - j * H)) - (rt = ut - (gt = (q = X - (j = (D = 134217729 * X) - (D - X))) * (H = B - (Q = (D = 134217729 * B) - (D - B))) - ((dt = X * B) - j * Q - q * Q - j * H))), k[0] = ut - (rt + y) + (y - gt), y = (lt = ht - ((J = ht + rt) - (y = J - ht)) + (rt - y)) - (rt = lt - dt), k[1] = lt - (rt + y) + (y - dt), y = (mt = J + rt) - J, k[2] = J - (mt - y) + (rt - y), k[3] = mt; const qt = i(Ft, d, 4, k, b); return b[qt - 1]; })(E, F, L, g, x, u, O); }, e.orient2dfast = function(E, F, L, g, x, u) { return (F - u) * (L - x) - (E - x) * (g - u); }, Object.defineProperty(e, "__esModule", { value: !0 }); }); })(Ee, Ee.exports)), Ee.exports; } var Tn; function Vr() { if (Tn) return $e.exports; Tn = 1; var s = Or(), t = Cr, e = Yr(), n = $r().orient2d; t.default && (t = t.default), $e.exports = r, $e.exports.default = r; function r(u, w, m) { w = Math.max(0, w === void 0 ? 2 : w), m = m || 0; var T = b(u), O = new s(16); O.toBBox = function(j) { return { minX: j[0], minY: j[1], maxX: j[0], maxY: j[1] }; }, O.compareMinX = function(j, q) { return j[0] - q[0]; }, O.compareMinY = function(j, q) { return j[1] - q[1]; }, O.load(u); for (var I = [], P = 0, C; P < T.length; P++) { var R = T[P]; O.remove(R), C = k(R, C), I.push(C); } var G = new s(16); for (P = 0; P < I.length; P++) G.insert(d(I[P])); for (var p = w * w, M = m * m; I.length; ) { var _ = I.shift(), X = _.p, B = _.next.p, Y = E(X, B); if (!(Y < M)) { var y = Y / p; R = i(O, _.prev.p, X, B, _.next.next.p, y, G), R && Math.min(E(R, X), E(R, B)) <= y && (I.push(_), I.push(k(R, _)), O.remove(R), G.remove(_), G.insert(d(_)), G.insert(d(_.next))); } } _ = C; var D = []; do D.push(_.p), _ = _.next; while (_ !== C); return D.push(_.p), D; } function i(u, w, m, T, O, I, P) { for (var C = new t([], o), R = u.data; R; ) { for (var G = 0; G < R.children.length; G++) { var p = R.children[G], M = R.leaf ? F(p, m, T) : a(m, T, p); M > I || C.push({ node: p, dist: M }); } for (; C.length && !C.peek().node.children; ) { var _ = C.pop(), X = _.node, B = F(X, w, m), Y = F(X, T, O); if (_.dist < B && _.dist < Y && f(m, X, P) && f(T, X, P)) return X; } R = C.pop(), R && (R = R.node); } return null; } function o(u, w) { return u.dist - w.dist; } function a(u, w, m) { if (c(u, m) || c(w, m)) return 0; var T = L(u[0], u[1], w[0], w[1], m.minX, m.minY, m.maxX, m.minY); if (T === 0) return 0; var O = L(u[0], u[1], w[0], w[1], m.minX, m.minY