This script should not be not be installed directly. It is a library for other scripts to include with the meta directive // @require https://update.greasyfork.org/scripts/483765/1413252/Leaflet.js
/* @preserve
* Leaflet 1.9.4, a JS library for interactive maps. https://leafletjs.com
* (c) 2010-2023 Vladimir Agafonkin, (c) 2010-2011 CloudMade
*/
!(function (global, factory) {
/**
* 不使用define
* typeof define === "function" && define.amd
* define(factory)
*/
if (typeof exports === "object" && typeof module !== "undefined") {
/* 适用于NodeJs或typeScript */
module.exports = factory();
} else {
global = typeof globalThis !== "undefined" ? globalThis : global || self;
/* 适用于浏览器中,且this对象是window,如果this是其它,那么会在其它对象下注册对象 */
global.leaflet = factory(global);
}
})(this, function (t) {
"use strict";
function l(t) {
for (var e, i, n = 1, o = arguments.length; n < o; n++)
for (e in (i = arguments[n])) t[e] = i[e];
return t;
}
var R =
Object.create ||
function (t) {
return (N.prototype = t), new N();
};
function N() {}
function a(t, e) {
var i,
n = Array.prototype.slice;
return t.bind
? t.bind.apply(t, n.call(arguments, 1))
: ((i = n.call(arguments, 2)),
function () {
return t.apply(e, i.length ? i.concat(n.call(arguments)) : arguments);
});
}
var D = 0;
function h(t) {
return "_leaflet_id" in t || (t._leaflet_id = ++D), t._leaflet_id;
}
function j(t, e, i) {
var n,
o,
s = function () {
(n = !1), o && (r.apply(i, o), (o = !1));
},
r = function () {
n
? (o = arguments)
: (t.apply(i, arguments), setTimeout(s, e), (n = !0));
};
return r;
}
function H(t, e, i) {
var n = e[1],
e = e[0],
o = n - e;
return t === n && i ? t : ((((t - e) % o) + o) % o) + e;
}
function u() {
return !1;
}
function i(t, e) {
return !1 === e
? t
: ((e = Math.pow(10, void 0 === e ? 6 : e)), Math.round(t * e) / e);
}
function W(t) {
return t.trim ? t.trim() : t.replace(/^\s+|\s+$/g, "");
}
function F(t) {
return W(t).split(/\s+/);
}
function c(t, e) {
for (var i in (Object.prototype.hasOwnProperty.call(t, "options") ||
(t.options = t.options ? R(t.options) : {}),
e))
t.options[i] = e[i];
return t.options;
}
function U(t, e, i) {
var n,
o = [];
for (n in t)
o.push(
encodeURIComponent(i ? n.toUpperCase() : n) +
"=" +
encodeURIComponent(t[n])
);
return (e && -1 !== e.indexOf("?") ? "&" : "?") + o.join("&");
}
var V = /\{ *([\w_ -]+) *\}/g;
function q(t, i) {
return t.replace(V, function (t, e) {
e = i[e];
if (void 0 === e) throw new Error("No value provided for variable " + t);
return (e = "function" == typeof e ? e(i) : e);
});
}
var d =
Array.isArray ||
function (t) {
return "[object Array]" === Object.prototype.toString.call(t);
};
function G(t, e) {
for (var i = 0; i < t.length; i++) if (t[i] === e) return i;
return -1;
}
var K = "data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=";
function Y(t) {
return window["webkit" + t] || window["moz" + t] || window["ms" + t];
}
var X = 0;
function J(t) {
var e = +new Date(),
i = Math.max(0, 16 - (e - X));
return (X = e + i), window.setTimeout(t, i);
}
var $ = window.requestAnimationFrame || Y("RequestAnimationFrame") || J,
Q =
window.cancelAnimationFrame ||
Y("CancelAnimationFrame") ||
Y("CancelRequestAnimationFrame") ||
function (t) {
window.clearTimeout(t);
};
function x(t, e, i) {
if (!i || $ !== J) return $.call(window, a(t, e));
t.call(e);
}
function r(t) {
t && Q.call(window, t);
}
var tt = {
__proto__: null,
extend: l,
create: R,
bind: a,
get lastId() {
return D;
},
stamp: h,
throttle: j,
wrapNum: H,
falseFn: u,
formatNum: i,
trim: W,
splitWords: F,
setOptions: c,
getParamString: U,
template: q,
isArray: d,
indexOf: G,
emptyImageUrl: K,
requestFn: $,
cancelFn: Q,
requestAnimFrame: x,
cancelAnimFrame: r,
};
function et() {}
(et.extend = function (t) {
function e() {
c(this),
this.initialize && this.initialize.apply(this, arguments),
this.callInitHooks();
}
var i,
n = (e.__super__ = this.prototype),
o = R(n);
for (i in (((o.constructor = e).prototype = o), this))
Object.prototype.hasOwnProperty.call(this, i) &&
"prototype" !== i &&
"__super__" !== i &&
(e[i] = this[i]);
if ((t.statics && l(e, t.statics), t.includes)) {
var s = t.includes;
if ("undefined" != typeof L && L && L.Mixin) {
s = d(s) ? s : [s];
for (var r = 0; r < s.length; r++)
s[r] === L.Mixin.Events &&
console.warn(
"Deprecated include of L.Mixin.Events: this property will be removed in future releases, please inherit from L.Evented instead.",
new Error().stack
);
}
l.apply(null, [o].concat(t.includes));
}
return (
l(o, t),
delete o.statics,
delete o.includes,
o.options &&
((o.options = n.options ? R(n.options) : {}), l(o.options, t.options)),
(o._initHooks = []),
(o.callInitHooks = function () {
if (!this._initHooksCalled) {
n.callInitHooks && n.callInitHooks.call(this),
(this._initHooksCalled = !0);
for (var t = 0, e = o._initHooks.length; t < e; t++)
o._initHooks[t].call(this);
}
}),
e
);
}),
(et.include = function (t) {
var e = this.prototype.options;
return (
l(this.prototype, t),
t.options &&
((this.prototype.options = e), this.mergeOptions(t.options)),
this
);
}),
(et.mergeOptions = function (t) {
return l(this.prototype.options, t), this;
}),
(et.addInitHook = function (t) {
var e = Array.prototype.slice.call(arguments, 1),
i =
"function" == typeof t
? t
: function () {
this[t].apply(this, e);
};
return (
(this.prototype._initHooks = this.prototype._initHooks || []),
this.prototype._initHooks.push(i),
this
);
});
var e = {
on: function (t, e, i) {
if ("object" == typeof t) for (var n in t) this._on(n, t[n], e);
else
for (var o = 0, s = (t = F(t)).length; o < s; o++)
this._on(t[o], e, i);
return this;
},
off: function (t, e, i) {
if (arguments.length)
if ("object" == typeof t) for (var n in t) this._off(n, t[n], e);
else {
t = F(t);
for (
var o = 1 === arguments.length, s = 0, r = t.length;
s < r;
s++
)
o ? this._off(t[s]) : this._off(t[s], e, i);
}
else delete this._events;
return this;
},
_on: function (t, e, i, n) {
"function" != typeof e
? console.warn("wrong listener type: " + typeof e)
: !1 === this._listens(t, e, i) &&
((e = { fn: e, ctx: (i = i === this ? void 0 : i) }),
n && (e.once = !0),
(this._events = this._events || {}),
(this._events[t] = this._events[t] || []),
this._events[t].push(e));
},
_off: function (t, e, i) {
var n, o, s;
if (this._events && (n = this._events[t]))
if (1 === arguments.length) {
if (this._firingCount)
for (o = 0, s = n.length; o < s; o++) n[o].fn = u;
delete this._events[t];
} else
"function" != typeof e
? console.warn("wrong listener type: " + typeof e)
: !1 !== (e = this._listens(t, e, i)) &&
((i = n[e]),
this._firingCount &&
((i.fn = u), (this._events[t] = n = n.slice())),
n.splice(e, 1));
},
fire: function (t, e, i) {
if (this.listens(t, i)) {
var n = l({}, e, {
type: t,
target: this,
sourceTarget: (e && e.sourceTarget) || this,
});
if (this._events) {
var o = this._events[t];
if (o) {
this._firingCount = this._firingCount + 1 || 1;
for (var s = 0, r = o.length; s < r; s++) {
var a = o[s],
h = a.fn;
a.once && this.off(t, h, a.ctx), h.call(a.ctx || this, n);
}
this._firingCount--;
}
}
i && this._propagateEvent(n);
}
return this;
},
listens: function (t, e, i, n) {
"string" != typeof t && console.warn('"string" type argument expected');
var o = e,
s =
("function" != typeof e && ((n = !!e), (i = o = void 0)),
this._events && this._events[t]);
if (s && s.length && !1 !== this._listens(t, o, i)) return !0;
if (n)
for (var r in this._eventParents)
if (this._eventParents[r].listens(t, e, i, n)) return !0;
return !1;
},
_listens: function (t, e, i) {
if (this._events) {
var n = this._events[t] || [];
if (!e) return !!n.length;
i === this && (i = void 0);
for (var o = 0, s = n.length; o < s; o++)
if (n[o].fn === e && n[o].ctx === i) return o;
}
return !1;
},
once: function (t, e, i) {
if ("object" == typeof t) for (var n in t) this._on(n, t[n], e, !0);
else
for (var o = 0, s = (t = F(t)).length; o < s; o++)
this._on(t[o], e, i, !0);
return this;
},
addEventParent: function (t) {
return (
(this._eventParents = this._eventParents || {}),
(this._eventParents[h(t)] = t),
this
);
},
removeEventParent: function (t) {
return this._eventParents && delete this._eventParents[h(t)], this;
},
_propagateEvent: function (t) {
for (var e in this._eventParents)
this._eventParents[e].fire(
t.type,
l({ layer: t.target, propagatedFrom: t.target }, t),
!0
);
},
},
it =
((e.addEventListener = e.on),
(e.removeEventListener = e.clearAllEventListeners = e.off),
(e.addOneTimeEventListener = e.once),
(e.fireEvent = e.fire),
(e.hasEventListeners = e.listens),
et.extend(e));
function p(t, e, i) {
(this.x = i ? Math.round(t) : t), (this.y = i ? Math.round(e) : e);
}
var nt =
Math.trunc ||
function (t) {
return 0 < t ? Math.floor(t) : Math.ceil(t);
};
function m(t, e, i) {
return t instanceof p
? t
: d(t)
? new p(t[0], t[1])
: null == t
? t
: "object" == typeof t && "x" in t && "y" in t
? new p(t.x, t.y)
: new p(t, e, i);
}
function f(t, e) {
if (t)
for (var i = e ? [t, e] : t, n = 0, o = i.length; n < o; n++)
this.extend(i[n]);
}
function _(t, e) {
return !t || t instanceof f ? t : new f(t, e);
}
function s(t, e) {
if (t)
for (var i = e ? [t, e] : t, n = 0, o = i.length; n < o; n++)
this.extend(i[n]);
}
function g(t, e) {
return t instanceof s ? t : new s(t, e);
}
function v(t, e, i) {
if (isNaN(t) || isNaN(e))
throw new Error("Invalid LatLng object: (" + t + ", " + e + ")");
(this.lat = +t), (this.lng = +e), void 0 !== i && (this.alt = +i);
}
function w(t, e, i) {
return t instanceof v
? t
: d(t) && "object" != typeof t[0]
? 3 === t.length
? new v(t[0], t[1], t[2])
: 2 === t.length
? new v(t[0], t[1])
: null
: null == t
? t
: "object" == typeof t && "lat" in t
? new v(t.lat, "lng" in t ? t.lng : t.lon, t.alt)
: void 0 === e
? null
: new v(t, e, i);
}
(p.prototype = {
clone: function () {
return new p(this.x, this.y);
},
add: function (t) {
return this.clone()._add(m(t));
},
_add: function (t) {
return (this.x += t.x), (this.y += t.y), this;
},
subtract: function (t) {
return this.clone()._subtract(m(t));
},
_subtract: function (t) {
return (this.x -= t.x), (this.y -= t.y), this;
},
divideBy: function (t) {
return this.clone()._divideBy(t);
},
_divideBy: function (t) {
return (this.x /= t), (this.y /= t), this;
},
multiplyBy: function (t) {
return this.clone()._multiplyBy(t);
},
_multiplyBy: function (t) {
return (this.x *= t), (this.y *= t), this;
},
scaleBy: function (t) {
return new p(this.x * t.x, this.y * t.y);
},
unscaleBy: function (t) {
return new p(this.x / t.x, this.y / t.y);
},
round: function () {
return this.clone()._round();
},
_round: function () {
return (this.x = Math.round(this.x)), (this.y = Math.round(this.y)), this;
},
floor: function () {
return this.clone()._floor();
},
_floor: function () {
return (this.x = Math.floor(this.x)), (this.y = Math.floor(this.y)), this;
},
ceil: function () {
return this.clone()._ceil();
},
_ceil: function () {
return (this.x = Math.ceil(this.x)), (this.y = Math.ceil(this.y)), this;
},
trunc: function () {
return this.clone()._trunc();
},
_trunc: function () {
return (this.x = nt(this.x)), (this.y = nt(this.y)), this;
},
distanceTo: function (t) {
var e = (t = m(t)).x - this.x,
t = t.y - this.y;
return Math.sqrt(e * e + t * t);
},
equals: function (t) {
return (t = m(t)).x === this.x && t.y === this.y;
},
contains: function (t) {
return (
(t = m(t)),
Math.abs(t.x) <= Math.abs(this.x) && Math.abs(t.y) <= Math.abs(this.y)
);
},
toString: function () {
return "Point(" + i(this.x) + ", " + i(this.y) + ")";
},
}),
(f.prototype = {
extend: function (t) {
var e, i;
if (t) {
if (t instanceof p || "number" == typeof t[0] || "x" in t)
e = i = m(t);
else if (((e = (t = _(t)).min), (i = t.max), !e || !i)) return this;
this.min || this.max
? ((this.min.x = Math.min(e.x, this.min.x)),
(this.max.x = Math.max(i.x, this.max.x)),
(this.min.y = Math.min(e.y, this.min.y)),
(this.max.y = Math.max(i.y, this.max.y)))
: ((this.min = e.clone()), (this.max = i.clone()));
}
return this;
},
getCenter: function (t) {
return m(
(this.min.x + this.max.x) / 2,
(this.min.y + this.max.y) / 2,
t
);
},
getBottomLeft: function () {
return m(this.min.x, this.max.y);
},
getTopRight: function () {
return m(this.max.x, this.min.y);
},
getTopLeft: function () {
return this.min;
},
getBottomRight: function () {
return this.max;
},
getSize: function () {
return this.max.subtract(this.min);
},
contains: function (t) {
var e, i;
return (
(t = ("number" == typeof t[0] || t instanceof p ? m : _)(
t
)) instanceof f
? ((e = t.min), (i = t.max))
: (e = i = t),
e.x >= this.min.x &&
i.x <= this.max.x &&
e.y >= this.min.y &&
i.y <= this.max.y
);
},
intersects: function (t) {
t = _(t);
var e = this.min,
i = this.max,
n = t.min,
t = t.max,
o = t.x >= e.x && n.x <= i.x,
t = t.y >= e.y && n.y <= i.y;
return o && t;
},
overlaps: function (t) {
t = _(t);
var e = this.min,
i = this.max,
n = t.min,
t = t.max,
o = t.x > e.x && n.x < i.x,
t = t.y > e.y && n.y < i.y;
return o && t;
},
isValid: function () {
return !(!this.min || !this.max);
},
pad: function (t) {
var e = this.min,
i = this.max,
n = Math.abs(e.x - i.x) * t,
t = Math.abs(e.y - i.y) * t;
return _(m(e.x - n, e.y - t), m(i.x + n, i.y + t));
},
equals: function (t) {
return (
!!t &&
((t = _(t)),
this.min.equals(t.getTopLeft()) &&
this.max.equals(t.getBottomRight()))
);
},
}),
(s.prototype = {
extend: function (t) {
var e,
i,
n = this._southWest,
o = this._northEast;
if (t instanceof v) i = e = t;
else {
if (!(t instanceof s)) return t ? this.extend(w(t) || g(t)) : this;
if (((e = t._southWest), (i = t._northEast), !e || !i)) return this;
}
return (
n || o
? ((n.lat = Math.min(e.lat, n.lat)),
(n.lng = Math.min(e.lng, n.lng)),
(o.lat = Math.max(i.lat, o.lat)),
(o.lng = Math.max(i.lng, o.lng)))
: ((this._southWest = new v(e.lat, e.lng)),
(this._northEast = new v(i.lat, i.lng))),
this
);
},
pad: function (t) {
var e = this._southWest,
i = this._northEast,
n = Math.abs(e.lat - i.lat) * t,
t = Math.abs(e.lng - i.lng) * t;
return new s(new v(e.lat - n, e.lng - t), new v(i.lat + n, i.lng + t));
},
getCenter: function () {
return new v(
(this._southWest.lat + this._northEast.lat) / 2,
(this._southWest.lng + this._northEast.lng) / 2
);
},
getSouthWest: function () {
return this._southWest;
},
getNorthEast: function () {
return this._northEast;
},
getNorthWest: function () {
return new v(this.getNorth(), this.getWest());
},
getSouthEast: function () {
return new v(this.getSouth(), this.getEast());
},
getWest: function () {
return this._southWest.lng;
},
getSouth: function () {
return this._southWest.lat;
},
getEast: function () {
return this._northEast.lng;
},
getNorth: function () {
return this._northEast.lat;
},
contains: function (t) {
t = ("number" == typeof t[0] || t instanceof v || "lat" in t ? w : g)(
t
);
var e,
i,
n = this._southWest,
o = this._northEast;
return (
t instanceof s
? ((e = t.getSouthWest()), (i = t.getNorthEast()))
: (e = i = t),
e.lat >= n.lat && i.lat <= o.lat && e.lng >= n.lng && i.lng <= o.lng
);
},
intersects: function (t) {
t = g(t);
var e = this._southWest,
i = this._northEast,
n = t.getSouthWest(),
t = t.getNorthEast(),
o = t.lat >= e.lat && n.lat <= i.lat,
t = t.lng >= e.lng && n.lng <= i.lng;
return o && t;
},
overlaps: function (t) {
t = g(t);
var e = this._southWest,
i = this._northEast,
n = t.getSouthWest(),
t = t.getNorthEast(),
o = t.lat > e.lat && n.lat < i.lat,
t = t.lng > e.lng && n.lng < i.lng;
return o && t;
},
toBBoxString: function () {
return [
this.getWest(),
this.getSouth(),
this.getEast(),
this.getNorth(),
].join(",");
},
equals: function (t, e) {
return (
!!t &&
((t = g(t)),
this._southWest.equals(t.getSouthWest(), e) &&
this._northEast.equals(t.getNorthEast(), e))
);
},
isValid: function () {
return !(!this._southWest || !this._northEast);
},
});
var ot = {
latLngToPoint: function (t, e) {
(t = this.projection.project(t)), (e = this.scale(e));
return this.transformation._transform(t, e);
},
pointToLatLng: function (t, e) {
(e = this.scale(e)), (t = this.transformation.untransform(t, e));
return this.projection.unproject(t);
},
project: function (t) {
return this.projection.project(t);
},
unproject: function (t) {
return this.projection.unproject(t);
},
scale: function (t) {
return 256 * Math.pow(2, t);
},
zoom: function (t) {
return Math.log(t / 256) / Math.LN2;
},
getProjectedBounds: function (t) {
var e;
return this.infinite
? null
: ((e = this.projection.bounds),
(t = this.scale(t)),
new f(
this.transformation.transform(e.min, t),
this.transformation.transform(e.max, t)
));
},
infinite: !(v.prototype = {
equals: function (t, e) {
return (
!!t &&
((t = w(t)),
Math.max(Math.abs(this.lat - t.lat), Math.abs(this.lng - t.lng)) <=
(void 0 === e ? 1e-9 : e))
);
},
toString: function (t) {
return "LatLng(" + i(this.lat, t) + ", " + i(this.lng, t) + ")";
},
distanceTo: function (t) {
return st.distance(this, w(t));
},
wrap: function () {
return st.wrapLatLng(this);
},
toBounds: function (t) {
var t = (180 * t) / 40075017,
e = t / Math.cos((Math.PI / 180) * this.lat);
return g([this.lat - t, this.lng - e], [this.lat + t, this.lng + e]);
},
clone: function () {
return new v(this.lat, this.lng, this.alt);
},
}),
wrapLatLng: function (t) {
var e = this.wrapLng ? H(t.lng, this.wrapLng, !0) : t.lng;
return new v(
this.wrapLat ? H(t.lat, this.wrapLat, !0) : t.lat,
e,
t.alt
);
},
wrapLatLngBounds: function (t) {
var e = t.getCenter(),
i = this.wrapLatLng(e),
n = e.lat - i.lat,
e = e.lng - i.lng;
return 0 == n && 0 == e
? t
: ((i = t.getSouthWest()),
(t = t.getNorthEast()),
new s(new v(i.lat - n, i.lng - e), new v(t.lat - n, t.lng - e)));
},
},
st = l({}, ot, {
wrapLng: [-180, 180],
R: 6371e3,
distance: function (t, e) {
var i = Math.PI / 180,
n = t.lat * i,
o = e.lat * i,
s = Math.sin(((e.lat - t.lat) * i) / 2),
e = Math.sin(((e.lng - t.lng) * i) / 2),
t = s * s + Math.cos(n) * Math.cos(o) * e * e,
i = 2 * Math.atan2(Math.sqrt(t), Math.sqrt(1 - t));
return this.R * i;
},
}),
rt = 6378137,
rt = {
R: rt,
MAX_LATITUDE: 85.0511287798,
project: function (t) {
var e = Math.PI / 180,
i = this.MAX_LATITUDE,
i = Math.max(Math.min(i, t.lat), -i),
i = Math.sin(i * e);
return new p(
this.R * t.lng * e,
(this.R * Math.log((1 + i) / (1 - i))) / 2
);
},
unproject: function (t) {
var e = 180 / Math.PI;
return new v(
(2 * Math.atan(Math.exp(t.y / this.R)) - Math.PI / 2) * e,
(t.x * e) / this.R
);
},
bounds: new f([-(rt = rt * Math.PI), -rt], [rt, rt]),
};
function at(t, e, i, n) {
d(t)
? ((this._a = t[0]), (this._b = t[1]), (this._c = t[2]), (this._d = t[3]))
: ((this._a = t), (this._b = e), (this._c = i), (this._d = n));
}
function ht(t, e, i, n) {
return new at(t, e, i, n);
}
at.prototype = {
transform: function (t, e) {
return this._transform(t.clone(), e);
},
_transform: function (t, e) {
return (
(t.x = (e = e || 1) * (this._a * t.x + this._b)),
(t.y = e * (this._c * t.y + this._d)),
t
);
},
untransform: function (t, e) {
return new p(
(t.x / (e = e || 1) - this._b) / this._a,
(t.y / e - this._d) / this._c
);
},
};
var lt = l({}, st, {
code: "EPSG:3857",
projection: rt,
transformation: ht((lt = 0.5 / (Math.PI * rt.R)), 0.5, -lt, 0.5),
}),
ut = l({}, lt, { code: "EPSG:900913" });
function ct(t) {
return document.createElementNS("http://www.w3.org/2000/svg", t);
}
function dt(t, e) {
for (var i, n, o, s, r = "", a = 0, h = t.length; a < h; a++) {
for (i = 0, n = (o = t[a]).length; i < n; i++)
r += (i ? "L" : "M") + (s = o[i]).x + " " + s.y;
r += e ? (b.svg ? "z" : "x") : "";
}
return r || "M0 0";
}
var _t = document.documentElement.style,
pt = "ActiveXObject" in window,
mt = pt && !document.addEventListener,
n = "msLaunchUri" in navigator && !("documentMode" in document),
ft = y("webkit"),
gt = y("android"),
vt = y("android 2") || y("android 3"),
yt = parseInt(/WebKit\/([0-9]+)|$/.exec(navigator.userAgent)[1], 10),
yt = gt && y("Google") && yt < 537 && !("AudioNode" in window),
xt = !!window.opera,
wt = !n && y("chrome"),
bt = y("gecko") && !ft && !xt && !pt,
Pt = !wt && y("safari"),
Lt = y("phantom"),
o = "OTransition" in _t,
Tt = 0 === navigator.platform.indexOf("Win"),
Mt = pt && "transition" in _t,
zt =
"WebKitCSSMatrix" in window &&
"m11" in new window.WebKitCSSMatrix() &&
!vt,
_t = "MozPerspective" in _t,
Ct = !window.L_DISABLE_3D && (Mt || zt || _t) && !o && !Lt,
Zt = "undefined" != typeof orientation || y("mobile"),
St = Zt && ft,
Et = Zt && zt,
kt = !window.PointerEvent && window.MSPointerEvent,
Ot = !(!window.PointerEvent && !kt),
At = "ontouchstart" in window || !!window.TouchEvent,
Bt = !window.L_NO_TOUCH && (At || Ot),
It = Zt && xt,
Rt = Zt && bt,
Nt =
1 <
(window.devicePixelRatio ||
window.screen.deviceXDPI / window.screen.logicalXDPI),
Dt = (function () {
var t = !1;
try {
var e = Object.defineProperty({}, "passive", {
get: function () {
t = !0;
},
});
window.addEventListener("testPassiveEventSupport", u, e),
window.removeEventListener("testPassiveEventSupport", u, e);
} catch (t) {}
return t;
})(),
jt = !!document.createElement("canvas").getContext,
Ht = !(!document.createElementNS || !ct("svg").createSVGRect),
Wt =
!!Ht &&
(((Wt = document.createElement("div")).innerHTML = "<svg/>"),
"http://www.w3.org/2000/svg" ===
(Wt.firstChild && Wt.firstChild.namespaceURI));
function y(t) {
return 0 <= navigator.userAgent.toLowerCase().indexOf(t);
}
var b = {
ie: pt,
ielt9: mt,
edge: n,
webkit: ft,
android: gt,
android23: vt,
androidStock: yt,
opera: xt,
chrome: wt,
gecko: bt,
safari: Pt,
phantom: Lt,
opera12: o,
win: Tt,
ie3d: Mt,
webkit3d: zt,
gecko3d: _t,
any3d: Ct,
mobile: Zt,
mobileWebkit: St,
mobileWebkit3d: Et,
msPointer: kt,
pointer: Ot,
touch: Bt,
touchNative: At,
mobileOpera: It,
mobileGecko: Rt,
retina: Nt,
passiveEvents: Dt,
canvas: jt,
svg: Ht,
vml:
!Ht &&
(function () {
try {
var t = document.createElement("div"),
e = ((t.innerHTML = '<v:shape adj="1"/>'), t.firstChild);
return (
(e.style.behavior = "url(#default#VML)"),
e && "object" == typeof e.adj
);
} catch (t) {
return !1;
}
})(),
inlineSvg: Wt,
mac: 0 === navigator.platform.indexOf("Mac"),
linux: 0 === navigator.platform.indexOf("Linux"),
},
Ft = b.msPointer ? "MSPointerDown" : "pointerdown",
Ut = b.msPointer ? "MSPointerMove" : "pointermove",
Vt = b.msPointer ? "MSPointerUp" : "pointerup",
qt = b.msPointer ? "MSPointerCancel" : "pointercancel",
Gt = { touchstart: Ft, touchmove: Ut, touchend: Vt, touchcancel: qt },
Kt = {
touchstart: function (t, e) {
e.MSPOINTER_TYPE_TOUCH &&
e.pointerType === e.MSPOINTER_TYPE_TOUCH &&
O(e);
ee(t, e);
},
touchmove: ee,
touchend: ee,
touchcancel: ee,
},
Yt = {},
Xt = !1;
function Jt(t, e, i) {
return (
"touchstart" !== e ||
Xt ||
(document.addEventListener(Ft, $t, !0),
document.addEventListener(Ut, Qt, !0),
document.addEventListener(Vt, te, !0),
document.addEventListener(qt, te, !0),
(Xt = !0)),
Kt[e]
? ((i = Kt[e].bind(this, i)), t.addEventListener(Gt[e], i, !1), i)
: (console.warn("wrong event specified:", e), u)
);
}
function $t(t) {
Yt[t.pointerId] = t;
}
function Qt(t) {
Yt[t.pointerId] && (Yt[t.pointerId] = t);
}
function te(t) {
delete Yt[t.pointerId];
}
function ee(t, e) {
if (e.pointerType !== (e.MSPOINTER_TYPE_MOUSE || "mouse")) {
for (var i in ((e.touches = []), Yt)) e.touches.push(Yt[i]);
(e.changedTouches = [e]), t(e);
}
}
var ie = 200;
function ne(t, i) {
t.addEventListener("dblclick", i);
var n,
o = 0;
function e(t) {
var e;
1 !== t.detail
? (n = t.detail)
: "mouse" === t.pointerType ||
(t.sourceCapabilities && !t.sourceCapabilities.firesTouchEvents) ||
((e = Ne(t)).some(function (t) {
return t instanceof HTMLLabelElement && t.attributes.for;
}) &&
!e.some(function (t) {
return (
t instanceof HTMLInputElement || t instanceof HTMLSelectElement
);
})) ||
((e = Date.now()) - o <= ie
? 2 === ++n &&
i(
(function (t) {
var e,
i,
n = {};
for (i in t) (e = t[i]), (n[i] = e && e.bind ? e.bind(t) : e);
return (
((t = n).type = "dblclick"),
(n.detail = 2),
(n.isTrusted = !1),
(n._simulated = !0),
n
);
})(t)
)
: (n = 1),
(o = e));
}
return t.addEventListener("click", e), { dblclick: i, simDblclick: e };
}
var oe,
se,
re,
ae,
he,
le,
ue = we([
"transform",
"webkitTransform",
"OTransform",
"MozTransform",
"msTransform",
]),
ce = we([
"webkitTransition",
"transition",
"OTransition",
"MozTransition",
"msTransition",
]),
de =
"webkitTransition" === ce || "OTransition" === ce
? ce + "End"
: "transitionend";
function _e(t) {
return "string" == typeof t ? document.getElementById(t) : t;
}
function pe(t, e) {
var i = t.style[e] || (t.currentStyle && t.currentStyle[e]);
return "auto" ===
(i =
(i && "auto" !== i) || !document.defaultView
? i
: (t = document.defaultView.getComputedStyle(t, null))
? t[e]
: null)
? null
: i;
}
function P(t, e, i) {
t = document.createElement(t);
return (t.className = e || ""), i && i.appendChild(t), t;
}
function T(t) {
var e = t.parentNode;
e && e.removeChild(t);
}
function me(t) {
for (; t.firstChild; ) t.removeChild(t.firstChild);
}
function fe(t) {
var e = t.parentNode;
e && e.lastChild !== t && e.appendChild(t);
}
function ge(t) {
var e = t.parentNode;
e && e.firstChild !== t && e.insertBefore(t, e.firstChild);
}
function ve(t, e) {
return void 0 !== t.classList
? t.classList.contains(e)
: 0 < (t = xe(t)).length && new RegExp("(^|\\s)" + e + "(\\s|$)").test(t);
}
function M(t, e) {
var i;
if (void 0 !== t.classList)
for (var n = F(e), o = 0, s = n.length; o < s; o++) t.classList.add(n[o]);
else ve(t, e) || ye(t, ((i = xe(t)) ? i + " " : "") + e);
}
function z(t, e) {
void 0 !== t.classList
? t.classList.remove(e)
: ye(t, W((" " + xe(t) + " ").replace(" " + e + " ", " ")));
}
function ye(t, e) {
void 0 === t.className.baseVal
? (t.className = e)
: (t.className.baseVal = e);
}
function xe(t) {
return void 0 ===
(t = t.correspondingElement ? t.correspondingElement : t).className
.baseVal
? t.className
: t.className.baseVal;
}
function C(t, e) {
if ("opacity" in t.style) t.style.opacity = e;
else if ("filter" in t.style) {
var i = !1,
n = "DXImageTransform.Microsoft.Alpha";
try {
i = t.filters.item(n);
} catch (t) {
if (1 === e) return;
}
(e = Math.round(100 * e)),
i
? ((i.Enabled = 100 !== e), (i.Opacity = e))
: (t.style.filter += " progid:" + n + "(opacity=" + e + ")");
}
}
function we(t) {
for (var e = document.documentElement.style, i = 0; i < t.length; i++)
if (t[i] in e) return t[i];
return !1;
}
function be(t, e, i) {
e = e || new p(0, 0);
t.style[ue] =
(b.ie3d
? "translate(" + e.x + "px," + e.y + "px)"
: "translate3d(" + e.x + "px," + e.y + "px,0)") +
(i ? " scale(" + i + ")" : "");
}
function Z(t, e) {
(t._leaflet_pos = e),
b.any3d
? be(t, e)
: ((t.style.left = e.x + "px"), (t.style.top = e.y + "px"));
}
function Pe(t) {
return t._leaflet_pos || new p(0, 0);
}
function Le() {
S(window, "dragstart", O);
}
function Te() {
k(window, "dragstart", O);
}
function Me(t) {
for (; -1 === t.tabIndex; ) t = t.parentNode;
t.style &&
(ze(),
(le = (he = t).style.outlineStyle),
(t.style.outlineStyle = "none"),
S(window, "keydown", ze));
}
function ze() {
he &&
((he.style.outlineStyle = le),
(le = he = void 0),
k(window, "keydown", ze));
}
function Ce(t) {
for (
;
!(
((t = t.parentNode).offsetWidth && t.offsetHeight) ||
t === document.body
);
);
return t;
}
function Ze(t) {
var e = t.getBoundingClientRect();
return {
x: e.width / t.offsetWidth || 1,
y: e.height / t.offsetHeight || 1,
boundingClientRect: e,
};
}
ae =
"onselectstart" in document
? ((re = function () {
S(window, "selectstart", O);
}),
function () {
k(window, "selectstart", O);
})
: ((se = we([
"userSelect",
"WebkitUserSelect",
"OUserSelect",
"MozUserSelect",
"msUserSelect",
])),
(re = function () {
var t;
se &&
((t = document.documentElement.style),
(oe = t[se]),
(t[se] = "none"));
}),
function () {
se && ((document.documentElement.style[se] = oe), (oe = void 0));
});
pt = {
__proto__: null,
TRANSFORM: ue,
TRANSITION: ce,
TRANSITION_END: de,
get: _e,
getStyle: pe,
create: P,
remove: T,
empty: me,
toFront: fe,
toBack: ge,
hasClass: ve,
addClass: M,
removeClass: z,
setClass: ye,
getClass: xe,
setOpacity: C,
testProp: we,
setTransform: be,
setPosition: Z,
getPosition: Pe,
get disableTextSelection() {
return re;
},
get enableTextSelection() {
return ae;
},
disableImageDrag: Le,
enableImageDrag: Te,
preventOutline: Me,
restoreOutline: ze,
getSizedParentNode: Ce,
getScale: Ze,
};
function S(t, e, i, n) {
if (e && "object" == typeof e) for (var o in e) ke(t, o, e[o], i);
else for (var s = 0, r = (e = F(e)).length; s < r; s++) ke(t, e[s], i, n);
return this;
}
var E = "_leaflet_events";
function k(t, e, i, n) {
if (1 === arguments.length) Se(t), delete t[E];
else if (e && "object" == typeof e) for (var o in e) Oe(t, o, e[o], i);
else if (((e = F(e)), 2 === arguments.length))
Se(t, function (t) {
return -1 !== G(e, t);
});
else for (var s = 0, r = e.length; s < r; s++) Oe(t, e[s], i, n);
return this;
}
function Se(t, e) {
for (var i in t[E]) {
var n = i.split(/\d/)[0];
(e && !e(n)) || Oe(t, n, null, null, i);
}
}
var Ee = {
mouseenter: "mouseover",
mouseleave: "mouseout",
wheel: !("onwheel" in window) && "mousewheel",
};
function ke(e, t, i, n) {
var o,
s,
r = t + h(i) + (n ? "_" + h(n) : "");
(e[E] && e[E][r]) ||
((s = o =
function (t) {
return i.call(n || e, t || window.event);
}),
!b.touchNative && b.pointer && 0 === t.indexOf("touch")
? (o = Jt(e, t, o))
: b.touch && "dblclick" === t
? (o = ne(e, o))
: "addEventListener" in e
? "touchstart" === t ||
"touchmove" === t ||
"wheel" === t ||
"mousewheel" === t
? e.addEventListener(
Ee[t] || t,
o,
!!b.passiveEvents && { passive: !1 }
)
: "mouseenter" === t || "mouseleave" === t
? e.addEventListener(
Ee[t],
(o = function (t) {
(t = t || window.event), We(e, t) && s(t);
}),
!1
)
: e.addEventListener(t, s, !1)
: e.attachEvent("on" + t, o),
(e[E] = e[E] || {}),
(e[E][r] = o));
}
function Oe(t, e, i, n, o) {
o = o || e + h(i) + (n ? "_" + h(n) : "");
var s,
r,
i = t[E] && t[E][o];
i &&
(!b.touchNative && b.pointer && 0 === e.indexOf("touch")
? ((n = t),
(r = i),
Gt[(s = e)]
? n.removeEventListener(Gt[s], r, !1)
: console.warn("wrong event specified:", s))
: b.touch && "dblclick" === e
? ((n = i),
(r = t).removeEventListener("dblclick", n.dblclick),
r.removeEventListener("click", n.simDblclick))
: "removeEventListener" in t
? t.removeEventListener(Ee[e] || e, i, !1)
: t.detachEvent("on" + e, i),
(t[E][o] = null));
}
function Ae(t) {
return (
t.stopPropagation
? t.stopPropagation()
: t.originalEvent
? (t.originalEvent._stopped = !0)
: (t.cancelBubble = !0),
this
);
}
function Be(t) {
return ke(t, "wheel", Ae), this;
}
function Ie(t) {
return (
S(t, "mousedown touchstart dblclick contextmenu", Ae),
(t._leaflet_disable_click = !0),
this
);
}
function O(t) {
return t.preventDefault ? t.preventDefault() : (t.returnValue = !1), this;
}
function Re(t) {
return O(t), Ae(t), this;
}
function Ne(t) {
if (t.composedPath) return t.composedPath();
for (var e = [], i = t.target; i; ) e.push(i), (i = i.parentNode);
return e;
}
function De(t, e) {
var i, n;
return e
? ((n = (i = Ze(e)).boundingClientRect),
new p(
(t.clientX - n.left) / i.x - e.clientLeft,
(t.clientY - n.top) / i.y - e.clientTop
))
: new p(t.clientX, t.clientY);
}
var je =
b.linux && b.chrome
? window.devicePixelRatio
: b.mac
? 3 * window.devicePixelRatio
: 0 < window.devicePixelRatio
? 2 * window.devicePixelRatio
: 1;
function He(t) {
return b.edge
? t.wheelDeltaY / 2
: t.deltaY && 0 === t.deltaMode
? -t.deltaY / je
: t.deltaY && 1 === t.deltaMode
? 20 * -t.deltaY
: t.deltaY && 2 === t.deltaMode
? 60 * -t.deltaY
: t.deltaX || t.deltaZ
? 0
: t.wheelDelta
? (t.wheelDeltaY || t.wheelDelta) / 2
: t.detail && Math.abs(t.detail) < 32765
? 20 * -t.detail
: t.detail
? (t.detail / -32765) * 60
: 0;
}
function We(t, e) {
var i = e.relatedTarget;
if (!i) return !0;
try {
for (; i && i !== t; ) i = i.parentNode;
} catch (t) {
return !1;
}
return i !== t;
}
var mt = {
__proto__: null,
on: S,
off: k,
stopPropagation: Ae,
disableScrollPropagation: Be,
disableClickPropagation: Ie,
preventDefault: O,
stop: Re,
getPropagationPath: Ne,
getMousePosition: De,
getWheelDelta: He,
isExternalTarget: We,
addListener: S,
removeListener: k,
},
Fe = it.extend({
run: function (t, e, i, n) {
this.stop(),
(this._el = t),
(this._inProgress = !0),
(this._duration = i || 0.25),
(this._easeOutPower = 1 / Math.max(n || 0.5, 0.2)),
(this._startPos = Pe(t)),
(this._offset = e.subtract(this._startPos)),
(this._startTime = +new Date()),
this.fire("start"),
this._animate();
},
stop: function () {
this._inProgress && (this._step(!0), this._complete());
},
_animate: function () {
(this._animId = x(this._animate, this)), this._step();
},
_step: function (t) {
var e = +new Date() - this._startTime,
i = 1e3 * this._duration;
e < i
? this._runFrame(this._easeOut(e / i), t)
: (this._runFrame(1), this._complete());
},
_runFrame: function (t, e) {
t = this._startPos.add(this._offset.multiplyBy(t));
e && t._round(), Z(this._el, t), this.fire("step");
},
_complete: function () {
r(this._animId), (this._inProgress = !1), this.fire("end");
},
_easeOut: function (t) {
return 1 - Math.pow(1 - t, this._easeOutPower);
},
}),
A = it.extend({
options: {
crs: lt,
center: void 0,
zoom: void 0,
minZoom: void 0,
maxZoom: void 0,
layers: [],
maxBounds: void 0,
renderer: void 0,
zoomAnimation: !0,
zoomAnimationThreshold: 4,
fadeAnimation: !0,
markerZoomAnimation: !0,
transform3DLimit: 8388608,
zoomSnap: 1,
zoomDelta: 1,
trackResize: !0,
},
initialize: function (t, e) {
(e = c(this, e)),
(this._handlers = []),
(this._layers = {}),
(this._zoomBoundLayers = {}),
(this._sizeChanged = !0),
this._initContainer(t),
this._initLayout(),
(this._onResize = a(this._onResize, this)),
this._initEvents(),
e.maxBounds && this.setMaxBounds(e.maxBounds),
void 0 !== e.zoom && (this._zoom = this._limitZoom(e.zoom)),
e.center &&
void 0 !== e.zoom &&
this.setView(w(e.center), e.zoom, { reset: !0 }),
this.callInitHooks(),
(this._zoomAnimated =
ce && b.any3d && !b.mobileOpera && this.options.zoomAnimation),
this._zoomAnimated &&
(this._createAnimProxy(),
S(this._proxy, de, this._catchTransitionEnd, this)),
this._addLayers(this.options.layers);
},
setView: function (t, e, i) {
if (
((e = void 0 === e ? this._zoom : this._limitZoom(e)),
(t = this._limitCenter(w(t), e, this.options.maxBounds)),
(i = i || {}),
this._stop(),
this._loaded && !i.reset && !0 !== i) &&
(void 0 !== i.animate &&
((i.zoom = l({ animate: i.animate }, i.zoom)),
(i.pan = l({ animate: i.animate, duration: i.duration }, i.pan))),
this._zoom !== e
? this._tryAnimatedZoom && this._tryAnimatedZoom(t, e, i.zoom)
: this._tryAnimatedPan(t, i.pan))
)
return clearTimeout(this._sizeTimer), this;
return this._resetView(t, e, i.pan && i.pan.noMoveStart), this;
},
setZoom: function (t, e) {
return this._loaded
? this.setView(this.getCenter(), t, { zoom: e })
: ((this._zoom = t), this);
},
zoomIn: function (t, e) {
return (
(t = t || (b.any3d ? this.options.zoomDelta : 1)),
this.setZoom(this._zoom + t, e)
);
},
zoomOut: function (t, e) {
return (
(t = t || (b.any3d ? this.options.zoomDelta : 1)),
this.setZoom(this._zoom - t, e)
);
},
setZoomAround: function (t, e, i) {
var n = this.getZoomScale(e),
o = this.getSize().divideBy(2),
t = (t instanceof p ? t : this.latLngToContainerPoint(t))
.subtract(o)
.multiplyBy(1 - 1 / n),
n = this.containerPointToLatLng(o.add(t));
return this.setView(n, e, { zoom: i });
},
_getBoundsCenterZoom: function (t, e) {
(e = e || {}), (t = t.getBounds ? t.getBounds() : g(t));
var i = m(e.paddingTopLeft || e.padding || [0, 0]),
n = m(e.paddingBottomRight || e.padding || [0, 0]),
o = this.getBoundsZoom(t, !1, i.add(n));
return (o =
"number" == typeof e.maxZoom ? Math.min(e.maxZoom, o) : o) ===
1 / 0
? { center: t.getCenter(), zoom: o }
: ((e = n.subtract(i).divideBy(2)),
(n = this.project(t.getSouthWest(), o)),
(i = this.project(t.getNorthEast(), o)),
{
center: this.unproject(n.add(i).divideBy(2).add(e), o),
zoom: o,
});
},
fitBounds: function (t, e) {
if ((t = g(t)).isValid())
return (
(t = this._getBoundsCenterZoom(t, e)),
this.setView(t.center, t.zoom, e)
);
throw new Error("Bounds are not valid.");
},
fitWorld: function (t) {
return this.fitBounds(
[
[-90, -180],
[90, 180],
],
t
);
},
panTo: function (t, e) {
return this.setView(t, this._zoom, { pan: e });
},
panBy: function (t, e) {
var i;
return (
(e = e || {}),
(t = m(t).round()).x || t.y
? (!0 === e.animate || this.getSize().contains(t)
? (this._panAnim ||
((this._panAnim = new Fe()),
this._panAnim.on(
{
step: this._onPanTransitionStep,
end: this._onPanTransitionEnd,
},
this
)),
e.noMoveStart || this.fire("movestart"),
!1 !== e.animate
? (M(this._mapPane, "leaflet-pan-anim"),
(i = this._getMapPanePos().subtract(t).round()),
this._panAnim.run(
this._mapPane,
i,
e.duration || 0.25,
e.easeLinearity
))
: (this._rawPanBy(t), this.fire("move").fire("moveend")))
: this._resetView(
this.unproject(this.project(this.getCenter()).add(t)),
this.getZoom()
),
this)
: this.fire("moveend")
);
},
flyTo: function (n, o, t) {
if (!1 === (t = t || {}).animate || !b.any3d)
return this.setView(n, o, t);
this._stop();
var s = this.project(this.getCenter()),
r = this.project(n),
e = this.getSize(),
a = this._zoom,
h = ((n = w(n)), (o = void 0 === o ? a : o), Math.max(e.x, e.y)),
i = h * this.getZoomScale(a, o),
l = r.distanceTo(s) || 1,
u = 1.42,
c = u * u;
function d(t) {
(t =
(i * i - h * h + (t ? -1 : 1) * c * c * l * l) /
(2 * (t ? i : h) * c * l)),
(t = Math.sqrt(t * t + 1) - t);
return t < 1e-9 ? -18 : Math.log(t);
}
function _(t) {
return (Math.exp(t) - Math.exp(-t)) / 2;
}
function p(t) {
return (Math.exp(t) + Math.exp(-t)) / 2;
}
var m = d(0);
function f(t) {
return (h * (p(m) * (_((t = m + u * t)) / p(t)) - _(m))) / c;
}
var g = Date.now(),
v = (d(1) - m) / u,
y = t.duration ? 1e3 * t.duration : 1e3 * v * 0.8;
return (
this._moveStart(!0, t.noMoveStart),
function t() {
var e = (Date.now() - g) / y,
i = (1 - Math.pow(1 - e, 1.5)) * v;
e <= 1
? ((this._flyToFrame = x(t, this)),
this._move(
this.unproject(s.add(r.subtract(s).multiplyBy(f(i) / l)), a),
this.getScaleZoom(
h / ((e = i), h * (p(m) / p(m + u * e))),
a
),
{ flyTo: !0 }
))
: this._move(n, o)._moveEnd(!0);
}.call(this),
this
);
},
flyToBounds: function (t, e) {
t = this._getBoundsCenterZoom(t, e);
return this.flyTo(t.center, t.zoom, e);
},
setMaxBounds: function (t) {
return (
(t = g(t)),
this.listens("moveend", this._panInsideMaxBounds) &&
this.off("moveend", this._panInsideMaxBounds),
t.isValid()
? ((this.options.maxBounds = t),
this._loaded && this._panInsideMaxBounds(),
this.on("moveend", this._panInsideMaxBounds))
: ((this.options.maxBounds = null), this)
);
},
setMinZoom: function (t) {
var e = this.options.minZoom;
return (
(this.options.minZoom = t),
this._loaded &&
e !== t &&
(this.fire("zoomlevelschange"), this.getZoom() < this.options.minZoom)
? this.setZoom(t)
: this
);
},
setMaxZoom: function (t) {
var e = this.options.maxZoom;
return (
(this.options.maxZoom = t),
this._loaded &&
e !== t &&
(this.fire("zoomlevelschange"), this.getZoom() > this.options.maxZoom)
? this.setZoom(t)
: this
);
},
panInsideBounds: function (t, e) {
this._enforcingBounds = !0;
var i = this.getCenter(),
t = this._limitCenter(i, this._zoom, g(t));
return (
i.equals(t) || this.panTo(t, e), (this._enforcingBounds = !1), this
);
},
panInside: function (t, e) {
var i = m((e = e || {}).paddingTopLeft || e.padding || [0, 0]),
n = m(e.paddingBottomRight || e.padding || [0, 0]),
o = this.project(this.getCenter()),
t = this.project(t),
s = this.getPixelBounds(),
i = _([s.min.add(i), s.max.subtract(n)]),
s = i.getSize();
return (
i.contains(t) ||
((this._enforcingBounds = !0),
(n = t.subtract(i.getCenter())),
(i = i.extend(t).getSize().subtract(s)),
(o.x += n.x < 0 ? -i.x : i.x),
(o.y += n.y < 0 ? -i.y : i.y),
this.panTo(this.unproject(o), e),
(this._enforcingBounds = !1)),
this
);
},
invalidateSize: function (t) {
if (!this._loaded) return this;
t = l({ animate: !1, pan: !0 }, !0 === t ? { animate: !0 } : t);
var e = this.getSize(),
i =
((this._sizeChanged = !0),
(this._lastCenter = null),
this.getSize()),
n = e.divideBy(2).round(),
o = i.divideBy(2).round(),
n = n.subtract(o);
return n.x || n.y
? (t.animate && t.pan
? this.panBy(n)
: (t.pan && this._rawPanBy(n),
this.fire("move"),
t.debounceMoveend
? (clearTimeout(this._sizeTimer),
(this._sizeTimer = setTimeout(
a(this.fire, this, "moveend"),
200
)))
: this.fire("moveend")),
this.fire("resize", { oldSize: e, newSize: i }))
: this;
},
stop: function () {
return (
this.setZoom(this._limitZoom(this._zoom)),
this.options.zoomSnap || this.fire("viewreset"),
this._stop()
);
},
locate: function (t) {
var e, i;
return (
(t = this._locateOptions = l({ timeout: 1e4, watch: !1 }, t)),
"geolocation" in navigator
? ((e = a(this._handleGeolocationResponse, this)),
(i = a(this._handleGeolocationError, this)),
t.watch
? (this._locationWatchId = navigator.geolocation.watchPosition(
e,
i,
t
))
: navigator.geolocation.getCurrentPosition(e, i, t))
: this._handleGeolocationError({
code: 0,
message: "Geolocation not supported.",
}),
this
);
},
stopLocate: function () {
return (
navigator.geolocation &&
navigator.geolocation.clearWatch &&
navigator.geolocation.clearWatch(this._locationWatchId),
this._locateOptions && (this._locateOptions.setView = !1),
this
);
},
_handleGeolocationError: function (t) {
var e;
this._container._leaflet_id &&
((e = t.code),
(t =
t.message ||
(1 === e
? "permission denied"
: 2 === e
? "position unavailable"
: "timeout")),
this._locateOptions.setView && !this._loaded && this.fitWorld(),
this.fire("locationerror", {
code: e,
message: "Geolocation error: " + t + ".",
}));
},
_handleGeolocationResponse: function (t) {
if (this._container._leaflet_id) {
var e,
i,
n = new v(t.coords.latitude, t.coords.longitude),
o = n.toBounds(2 * t.coords.accuracy),
s = this._locateOptions,
r =
(s.setView &&
((e = this.getBoundsZoom(o)),
this.setView(n, s.maxZoom ? Math.min(e, s.maxZoom) : e)),
{ latlng: n, bounds: o, timestamp: t.timestamp });
for (i in t.coords)
"number" == typeof t.coords[i] && (r[i] = t.coords[i]);
this.fire("locationfound", r);
}
},
addHandler: function (t, e) {
return (
e &&
((e = this[t] = new e(this)),
this._handlers.push(e),
this.options[t] && e.enable()),
this
);
},
remove: function () {
if (
(this._initEvents(!0),
this.options.maxBounds &&
this.off("moveend", this._panInsideMaxBounds),
this._containerId !== this._container._leaflet_id)
)
throw new Error("Map container is being reused by another instance");
try {
delete this._container._leaflet_id, delete this._containerId;
} catch (t) {
(this._container._leaflet_id = void 0), (this._containerId = void 0);
}
for (var t in (void 0 !== this._locationWatchId && this.stopLocate(),
this._stop(),
T(this._mapPane),
this._clearControlPos && this._clearControlPos(),
this._resizeRequest &&
(r(this._resizeRequest), (this._resizeRequest = null)),
this._clearHandlers(),
this._loaded && this.fire("unload"),
this._layers))
this._layers[t].remove();
for (t in this._panes) T(this._panes[t]);
return (
(this._layers = []),
(this._panes = []),
delete this._mapPane,
delete this._renderer,
this
);
},
createPane: function (t, e) {
e = P(
"div",
"leaflet-pane" +
(t ? " leaflet-" + t.replace("Pane", "") + "-pane" : ""),
e || this._mapPane
);
return t && (this._panes[t] = e), e;
},
getCenter: function () {
return (
this._checkIfLoaded(),
this._lastCenter && !this._moved()
? this._lastCenter.clone()
: this.layerPointToLatLng(this._getCenterLayerPoint())
);
},
getZoom: function () {
return this._zoom;
},
getBounds: function () {
var t = this.getPixelBounds();
return new s(
this.unproject(t.getBottomLeft()),
this.unproject(t.getTopRight())
);
},
getMinZoom: function () {
return void 0 === this.options.minZoom
? this._layersMinZoom || 0
: this.options.minZoom;
},
getMaxZoom: function () {
return void 0 === this.options.maxZoom
? void 0 === this._layersMaxZoom
? 1 / 0
: this._layersMaxZoom
: this.options.maxZoom;
},
getBoundsZoom: function (t, e, i) {
(t = g(t)), (i = m(i || [0, 0]));
var n = this.getZoom() || 0,
o = this.getMinZoom(),
s = this.getMaxZoom(),
r = t.getNorthWest(),
t = t.getSouthEast(),
i = this.getSize().subtract(i),
t = _(this.project(t, n), this.project(r, n)).getSize(),
r = b.any3d ? this.options.zoomSnap : 1,
a = i.x / t.x,
i = i.y / t.y,
t = e ? Math.max(a, i) : Math.min(a, i),
n = this.getScaleZoom(t, n);
return (
r &&
((n = Math.round(n / (r / 100)) * (r / 100)),
(n = e ? Math.ceil(n / r) * r : Math.floor(n / r) * r)),
Math.max(o, Math.min(s, n))
);
},
getSize: function () {
return (
(this._size && !this._sizeChanged) ||
((this._size = new p(
this._container.clientWidth || 0,
this._container.clientHeight || 0
)),
(this._sizeChanged = !1)),
this._size.clone()
);
},
getPixelBounds: function (t, e) {
t = this._getTopLeftPoint(t, e);
return new f(t, t.add(this.getSize()));
},
getPixelOrigin: function () {
return this._checkIfLoaded(), this._pixelOrigin;
},
getPixelWorldBounds: function (t) {
return this.options.crs.getProjectedBounds(
void 0 === t ? this.getZoom() : t
);
},
getPane: function (t) {
return "string" == typeof t ? this._panes[t] : t;
},
getPanes: function () {
return this._panes;
},
getContainer: function () {
return this._container;
},
getZoomScale: function (t, e) {
var i = this.options.crs;
return (e = void 0 === e ? this._zoom : e), i.scale(t) / i.scale(e);
},
getScaleZoom: function (t, e) {
var i = this.options.crs,
t = ((e = void 0 === e ? this._zoom : e), i.zoom(t * i.scale(e)));
return isNaN(t) ? 1 / 0 : t;
},
project: function (t, e) {
return (
(e = void 0 === e ? this._zoom : e),
this.options.crs.latLngToPoint(w(t), e)
);
},
unproject: function (t, e) {
return (
(e = void 0 === e ? this._zoom : e),
this.options.crs.pointToLatLng(m(t), e)
);
},
layerPointToLatLng: function (t) {
t = m(t).add(this.getPixelOrigin());
return this.unproject(t);
},
latLngToLayerPoint: function (t) {
return this.project(w(t))._round()._subtract(this.getPixelOrigin());
},
wrapLatLng: function (t) {
return this.options.crs.wrapLatLng(w(t));
},
wrapLatLngBounds: function (t) {
return this.options.crs.wrapLatLngBounds(g(t));
},
distance: function (t, e) {
return this.options.crs.distance(w(t), w(e));
},
containerPointToLayerPoint: function (t) {
return m(t).subtract(this._getMapPanePos());
},
layerPointToContainerPoint: function (t) {
return m(t).add(this._getMapPanePos());
},
containerPointToLatLng: function (t) {
t = this.containerPointToLayerPoint(m(t));
return this.layerPointToLatLng(t);
},
latLngToContainerPoint: function (t) {
return this.layerPointToContainerPoint(this.latLngToLayerPoint(w(t)));
},
mouseEventToContainerPoint: function (t) {
return De(t, this._container);
},
mouseEventToLayerPoint: function (t) {
return this.containerPointToLayerPoint(
this.mouseEventToContainerPoint(t)
);
},
mouseEventToLatLng: function (t) {
return this.layerPointToLatLng(this.mouseEventToLayerPoint(t));
},
_initContainer: function (t) {
t = this._container = _e(t);
if (!t) throw new Error("Map container not found.");
if (t._leaflet_id)
throw new Error("Map container is already initialized.");
S(t, "scroll", this._onScroll, this), (this._containerId = h(t));
},
_initLayout: function () {
var t = this._container,
e =
((this._fadeAnimated = this.options.fadeAnimation && b.any3d),
M(
t,
"leaflet-container" +
(b.touch ? " leaflet-touch" : "") +
(b.retina ? " leaflet-retina" : "") +
(b.ielt9 ? " leaflet-oldie" : "") +
(b.safari ? " leaflet-safari" : "") +
(this._fadeAnimated ? " leaflet-fade-anim" : "")
),
pe(t, "position"));
"absolute" !== e &&
"relative" !== e &&
"fixed" !== e &&
"sticky" !== e &&
(t.style.position = "relative"),
this._initPanes(),
this._initControlPos && this._initControlPos();
},
_initPanes: function () {
var t = (this._panes = {});
(this._paneRenderers = {}),
(this._mapPane = this.createPane("mapPane", this._container)),
Z(this._mapPane, new p(0, 0)),
this.createPane("tilePane"),
this.createPane("overlayPane"),
this.createPane("shadowPane"),
this.createPane("markerPane"),
this.createPane("tooltipPane"),
this.createPane("popupPane"),
this.options.markerZoomAnimation ||
(M(t.markerPane, "leaflet-zoom-hide"),
M(t.shadowPane, "leaflet-zoom-hide"));
},
_resetView: function (t, e, i) {
Z(this._mapPane, new p(0, 0));
var n = !this._loaded,
o =
((this._loaded = !0),
(e = this._limitZoom(e)),
this.fire("viewprereset"),
this._zoom !== e);
this._moveStart(o, i)._move(t, e)._moveEnd(o),
this.fire("viewreset"),
n && this.fire("load");
},
_moveStart: function (t, e) {
return t && this.fire("zoomstart"), e || this.fire("movestart"), this;
},
_move: function (t, e, i, n) {
void 0 === e && (e = this._zoom);
var o = this._zoom !== e;
return (
(this._zoom = e),
(this._lastCenter = t),
(this._pixelOrigin = this._getNewPixelOrigin(t)),
n
? i && i.pinch && this.fire("zoom", i)
: ((o || (i && i.pinch)) && this.fire("zoom", i),
this.fire("move", i)),
this
);
},
_moveEnd: function (t) {
return t && this.fire("zoomend"), this.fire("moveend");
},
_stop: function () {
return r(this._flyToFrame), this._panAnim && this._panAnim.stop(), this;
},
_rawPanBy: function (t) {
Z(this._mapPane, this._getMapPanePos().subtract(t));
},
_getZoomSpan: function () {
return this.getMaxZoom() - this.getMinZoom();
},
_panInsideMaxBounds: function () {
this._enforcingBounds || this.panInsideBounds(this.options.maxBounds);
},
_checkIfLoaded: function () {
if (!this._loaded) throw new Error("Set map center and zoom first.");
},
_initEvents: function (t) {
this._targets = {};
var e = t ? k : S;
e(
(this._targets[h(this._container)] = this)._container,
"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup",
this._handleDOMEvent,
this
),
this.options.trackResize && e(window, "resize", this._onResize, this),
b.any3d &&
this.options.transform3DLimit &&
(t ? this.off : this.on).call(this, "moveend", this._onMoveEnd);
},
_onResize: function () {
r(this._resizeRequest),
(this._resizeRequest = x(function () {
this.invalidateSize({ debounceMoveend: !0 });
}, this));
},
_onScroll: function () {
(this._container.scrollTop = 0), (this._container.scrollLeft = 0);
},
_onMoveEnd: function () {
var t = this._getMapPanePos();
Math.max(Math.abs(t.x), Math.abs(t.y)) >=
this.options.transform3DLimit &&
this._resetView(this.getCenter(), this.getZoom());
},
_findEventTargets: function (t, e) {
for (
var i,
n = [],
o = "mouseout" === e || "mouseover" === e,
s = t.target || t.srcElement,
r = !1;
s;
) {
if (
(i = this._targets[h(s)]) &&
("click" === e || "preclick" === e) &&
this._draggableMoved(i)
) {
r = !0;
break;
}
if (i && i.listens(e, !0)) {
if (o && !We(s, t)) break;
if ((n.push(i), o)) break;
}
if (s === this._container) break;
s = s.parentNode;
}
return (n = n.length || r || o || !this.listens(e, !0) ? n : [this]);
},
_isClickDisabled: function (t) {
for (; t && t !== this._container; ) {
if (t._leaflet_disable_click) return !0;
t = t.parentNode;
}
},
_handleDOMEvent: function (t) {
var e,
i = t.target || t.srcElement;
!this._loaded ||
i._leaflet_disable_events ||
("click" === t.type && this._isClickDisabled(i)) ||
("mousedown" === (e = t.type) && Me(i), this._fireDOMEvent(t, e));
},
_mouseEvents: [
"click",
"dblclick",
"mouseover",
"mouseout",
"contextmenu",
],
_fireDOMEvent: function (t, e, i) {
"click" === t.type &&
(((a = l({}, t)).type = "preclick"),
this._fireDOMEvent(a, a.type, i));
var n = this._findEventTargets(t, e);
if (i) {
for (var o = [], s = 0; s < i.length; s++)
i[s].listens(e, !0) && o.push(i[s]);
n = o.concat(n);
}
if (n.length) {
"contextmenu" === e && O(t);
var r,
a = n[0],
h = { originalEvent: t };
for (
"keypress" !== t.type &&
"keydown" !== t.type &&
"keyup" !== t.type &&
((r = a.getLatLng && (!a._radius || a._radius <= 10)),
(h.containerPoint = r
? this.latLngToContainerPoint(a.getLatLng())
: this.mouseEventToContainerPoint(t)),
(h.layerPoint = this.containerPointToLayerPoint(
h.containerPoint
)),
(h.latlng = r
? a.getLatLng()
: this.layerPointToLatLng(h.layerPoint))),
s = 0;
s < n.length;
s++
)
if (
(n[s].fire(e, h, !0),
h.originalEvent._stopped ||
(!1 === n[s].options.bubblingMouseEvents &&
-1 !== G(this._mouseEvents, e)))
)
return;
}
},
_draggableMoved: function (t) {
return (
((t = t.dragging && t.dragging.enabled() ? t : this).dragging &&
t.dragging.moved()) ||
(this.boxZoom && this.boxZoom.moved())
);
},
_clearHandlers: function () {
for (var t = 0, e = this._handlers.length; t < e; t++)
this._handlers[t].disable();
},
whenReady: function (t, e) {
return (
this._loaded
? t.call(e || this, { target: this })
: this.on("load", t, e),
this
);
},
_getMapPanePos: function () {
return Pe(this._mapPane) || new p(0, 0);
},
_moved: function () {
var t = this._getMapPanePos();
return t && !t.equals([0, 0]);
},
_getTopLeftPoint: function (t, e) {
return (
t && void 0 !== e
? this._getNewPixelOrigin(t, e)
: this.getPixelOrigin()
).subtract(this._getMapPanePos());
},
_getNewPixelOrigin: function (t, e) {
var i = this.getSize()._divideBy(2);
return this.project(t, e)
._subtract(i)
._add(this._getMapPanePos())
._round();
},
_latLngToNewLayerPoint: function (t, e, i) {
i = this._getNewPixelOrigin(i, e);
return this.project(t, e)._subtract(i);
},
_latLngBoundsToNewLayerBounds: function (t, e, i) {
i = this._getNewPixelOrigin(i, e);
return _([
this.project(t.getSouthWest(), e)._subtract(i),
this.project(t.getNorthWest(), e)._subtract(i),
this.project(t.getSouthEast(), e)._subtract(i),
this.project(t.getNorthEast(), e)._subtract(i),
]);
},
_getCenterLayerPoint: function () {
return this.containerPointToLayerPoint(this.getSize()._divideBy(2));
},
_getCenterOffset: function (t) {
return this.latLngToLayerPoint(t).subtract(this._getCenterLayerPoint());
},
_limitCenter: function (t, e, i) {
var n, o;
return !i ||
((n = this.project(t, e)),
(o = this.getSize().divideBy(2)),
(o = new f(n.subtract(o), n.add(o))),
(o = this._getBoundsOffset(o, i, e)),
Math.abs(o.x) <= 1 && Math.abs(o.y) <= 1)
? t
: this.unproject(n.add(o), e);
},
_limitOffset: function (t, e) {
var i;
return e
? ((i = new f((i = this.getPixelBounds()).min.add(t), i.max.add(t))),
t.add(this._getBoundsOffset(i, e)))
: t;
},
_getBoundsOffset: function (t, e, i) {
(e = _(
this.project(e.getNorthEast(), i),
this.project(e.getSouthWest(), i)
)),
(i = e.min.subtract(t.min)),
(e = e.max.subtract(t.max));
return new p(this._rebound(i.x, -e.x), this._rebound(i.y, -e.y));
},
_rebound: function (t, e) {
return 0 < t + e
? Math.round(t - e) / 2
: Math.max(0, Math.ceil(t)) - Math.max(0, Math.floor(e));
},
_limitZoom: function (t) {
var e = this.getMinZoom(),
i = this.getMaxZoom(),
n = b.any3d ? this.options.zoomSnap : 1;
return n && (t = Math.round(t / n) * n), Math.max(e, Math.min(i, t));
},
_onPanTransitionStep: function () {
this.fire("move");
},
_onPanTransitionEnd: function () {
z(this._mapPane, "leaflet-pan-anim"), this.fire("moveend");
},
_tryAnimatedPan: function (t, e) {
t = this._getCenterOffset(t)._trunc();
return (
!(!0 !== (e && e.animate) && !this.getSize().contains(t)) &&
(this.panBy(t, e), !0)
);
},
_createAnimProxy: function () {
var t = (this._proxy = P("div", "leaflet-proxy leaflet-zoom-animated"));
this._panes.mapPane.appendChild(t),
this.on(
"zoomanim",
function (t) {
var e = ue,
i = this._proxy.style[e];
be(
this._proxy,
this.project(t.center, t.zoom),
this.getZoomScale(t.zoom, 1)
),
i === this._proxy.style[e] &&
this._animatingZoom &&
this._onZoomTransitionEnd();
},
this
),
this.on("load moveend", this._animMoveEnd, this),
this._on("unload", this._destroyAnimProxy, this);
},
_destroyAnimProxy: function () {
T(this._proxy),
this.off("load moveend", this._animMoveEnd, this),
delete this._proxy;
},
_animMoveEnd: function () {
var t = this.getCenter(),
e = this.getZoom();
be(this._proxy, this.project(t, e), this.getZoomScale(e, 1));
},
_catchTransitionEnd: function (t) {
this._animatingZoom &&
0 <= t.propertyName.indexOf("transform") &&
this._onZoomTransitionEnd();
},
_nothingToAnimate: function () {
return !this._container.getElementsByClassName("leaflet-zoom-animated")
.length;
},
_tryAnimatedZoom: function (t, e, i) {
if (!this._animatingZoom) {
if (
((i = i || {}),
!this._zoomAnimated ||
!1 === i.animate ||
this._nothingToAnimate() ||
Math.abs(e - this._zoom) > this.options.zoomAnimationThreshold)
)
return !1;
var n = this.getZoomScale(e),
n = this._getCenterOffset(t)._divideBy(1 - 1 / n);
if (!0 !== i.animate && !this.getSize().contains(n)) return !1;
x(function () {
this._moveStart(!0, i.noMoveStart || !1)._animateZoom(t, e, !0);
}, this);
}
return !0;
},
_animateZoom: function (t, e, i, n) {
this._mapPane &&
(i &&
((this._animatingZoom = !0),
(this._animateToCenter = t),
(this._animateToZoom = e),
M(this._mapPane, "leaflet-zoom-anim")),
this.fire("zoomanim", { center: t, zoom: e, noUpdate: n }),
this._tempFireZoomEvent ||
(this._tempFireZoomEvent = this._zoom !== this._animateToZoom),
this._move(this._animateToCenter, this._animateToZoom, void 0, !0),
setTimeout(a(this._onZoomTransitionEnd, this), 250));
},
_onZoomTransitionEnd: function () {
this._animatingZoom &&
(this._mapPane && z(this._mapPane, "leaflet-zoom-anim"),
(this._animatingZoom = !1),
this._move(this._animateToCenter, this._animateToZoom, void 0, !0),
this._tempFireZoomEvent && this.fire("zoom"),
delete this._tempFireZoomEvent,
this.fire("move"),
this._moveEnd(!0));
},
});
function Ue(t) {
return new B(t);
}
var B = et.extend({
options: { position: "topright" },
initialize: function (t) {
c(this, t);
},
getPosition: function () {
return this.options.position;
},
setPosition: function (t) {
var e = this._map;
return (
e && e.removeControl(this),
(this.options.position = t),
e && e.addControl(this),
this
);
},
getContainer: function () {
return this._container;
},
addTo: function (t) {
this.remove(), (this._map = t);
var e = (this._container = this.onAdd(t)),
i = this.getPosition(),
t = t._controlCorners[i];
return (
M(e, "leaflet-control"),
-1 !== i.indexOf("bottom")
? t.insertBefore(e, t.firstChild)
: t.appendChild(e),
this._map.on("unload", this.remove, this),
this
);
},
remove: function () {
return (
this._map &&
(T(this._container),
this.onRemove && this.onRemove(this._map),
this._map.off("unload", this.remove, this),
(this._map = null)),
this
);
},
_refocusOnMap: function (t) {
this._map &&
t &&
0 < t.screenX &&
0 < t.screenY &&
this._map.getContainer().focus();
},
}),
Ve =
(A.include({
addControl: function (t) {
return t.addTo(this), this;
},
removeControl: function (t) {
return t.remove(), this;
},
_initControlPos: function () {
var i = (this._controlCorners = {}),
n = "leaflet-",
o = (this._controlContainer = P(
"div",
n + "control-container",
this._container
));
function t(t, e) {
i[t + e] = P("div", n + t + " " + n + e, o);
}
t("top", "left"),
t("top", "right"),
t("bottom", "left"),
t("bottom", "right");
},
_clearControlPos: function () {
for (var t in this._controlCorners) T(this._controlCorners[t]);
T(this._controlContainer),
delete this._controlCorners,
delete this._controlContainer;
},
}),
B.extend({
options: {
collapsed: !0,
position: "topright",
autoZIndex: !0,
hideSingleBase: !1,
sortLayers: !1,
sortFunction: function (t, e, i, n) {
return i < n ? -1 : n < i ? 1 : 0;
},
},
initialize: function (t, e, i) {
for (var n in (c(this, i),
(this._layerControlInputs = []),
(this._layers = []),
(this._lastZIndex = 0),
(this._handlingClick = !1),
(this._preventClick = !1),
t))
this._addLayer(t[n], n);
for (n in e) this._addLayer(e[n], n, !0);
},
onAdd: function (t) {
this._initLayout(),
this._update(),
(this._map = t).on("zoomend", this._checkDisabledLayers, this);
for (var e = 0; e < this._layers.length; e++)
this._layers[e].layer.on("add remove", this._onLayerChange, this);
return this._container;
},
addTo: function (t) {
return B.prototype.addTo.call(this, t), this._expandIfNotCollapsed();
},
onRemove: function () {
this._map.off("zoomend", this._checkDisabledLayers, this);
for (var t = 0; t < this._layers.length; t++)
this._layers[t].layer.off("add remove", this._onLayerChange, this);
},
addBaseLayer: function (t, e) {
return this._addLayer(t, e), this._map ? this._update() : this;
},
addOverlay: function (t, e) {
return this._addLayer(t, e, !0), this._map ? this._update() : this;
},
removeLayer: function (t) {
t.off("add remove", this._onLayerChange, this);
t = this._getLayer(h(t));
return (
t && this._layers.splice(this._layers.indexOf(t), 1),
this._map ? this._update() : this
);
},
expand: function () {
M(this._container, "leaflet-control-layers-expanded"),
(this._section.style.height = null);
var t = this._map.getSize().y - (this._container.offsetTop + 50);
return (
t < this._section.clientHeight
? (M(this._section, "leaflet-control-layers-scrollbar"),
(this._section.style.height = t + "px"))
: z(this._section, "leaflet-control-layers-scrollbar"),
this._checkDisabledLayers(),
this
);
},
collapse: function () {
return z(this._container, "leaflet-control-layers-expanded"), this;
},
_initLayout: function () {
var t = "leaflet-control-layers",
e = (this._container = P("div", t)),
i = this.options.collapsed,
n =
(e.setAttribute("aria-haspopup", !0),
Ie(e),
Be(e),
(this._section = P("section", t + "-list"))),
o =
(i &&
(this._map.on("click", this.collapse, this),
S(
e,
{ mouseenter: this._expandSafely, mouseleave: this.collapse },
this
)),
(this._layersLink = P("a", t + "-toggle", e)));
(o.href = "#"),
(o.title = "Layers"),
o.setAttribute("role", "button"),
S(
o,
{
keydown: function (t) {
13 === t.keyCode && this._expandSafely();
},
click: function (t) {
O(t), this._expandSafely();
},
},
this
),
i || this.expand(),
(this._baseLayersList = P("div", t + "-base", n)),
(this._separator = P("div", t + "-separator", n)),
(this._overlaysList = P("div", t + "-overlays", n)),
e.appendChild(n);
},
_getLayer: function (t) {
for (var e = 0; e < this._layers.length; e++)
if (this._layers[e] && h(this._layers[e].layer) === t)
return this._layers[e];
},
_addLayer: function (t, e, i) {
this._map && t.on("add remove", this._onLayerChange, this),
this._layers.push({ layer: t, name: e, overlay: i }),
this.options.sortLayers &&
this._layers.sort(
a(function (t, e) {
return this.options.sortFunction(
t.layer,
e.layer,
t.name,
e.name
);
}, this)
),
this.options.autoZIndex &&
t.setZIndex &&
(this._lastZIndex++, t.setZIndex(this._lastZIndex)),
this._expandIfNotCollapsed();
},
_update: function () {
if (this._container) {
me(this._baseLayersList),
me(this._overlaysList),
(this._layerControlInputs = []);
for (var t, e, i, n = 0, o = 0; o < this._layers.length; o++)
(i = this._layers[o]),
this._addItem(i),
(e = e || i.overlay),
(t = t || !i.overlay),
(n += i.overlay ? 0 : 1);
this.options.hideSingleBase &&
(this._baseLayersList.style.display = (t = t && 1 < n)
? ""
: "none"),
(this._separator.style.display = e && t ? "" : "none");
}
return this;
},
_onLayerChange: function (t) {
this._handlingClick || this._update();
var e = this._getLayer(h(t.target)),
t = e.overlay
? "add" === t.type
? "overlayadd"
: "overlayremove"
: "add" === t.type
? "baselayerchange"
: null;
t && this._map.fire(t, e);
},
_createRadioElement: function (t, e) {
(t =
'<input type="radio" class="leaflet-control-layers-selector" name="' +
t +
'"' +
(e ? ' checked="checked"' : "") +
"/>"),
(e = document.createElement("div"));
return (e.innerHTML = t), e.firstChild;
},
_addItem: function (t) {
var e,
i = document.createElement("label"),
n = this._map.hasLayer(t.layer),
n =
(t.overlay
? (((e = document.createElement("input")).type = "checkbox"),
(e.className = "leaflet-control-layers-selector"),
(e.defaultChecked = n))
: (e = this._createRadioElement(
"leaflet-base-layers_" + h(this),
n
)),
this._layerControlInputs.push(e),
(e.layerId = h(t.layer)),
S(e, "click", this._onInputClick, this),
document.createElement("span")),
o = ((n.innerHTML = " " + t.name), document.createElement("span"));
return (
i.appendChild(o),
o.appendChild(e),
o.appendChild(n),
(t.overlay ? this._overlaysList : this._baseLayersList).appendChild(
i
),
this._checkDisabledLayers(),
i
);
},
_onInputClick: function () {
if (!this._preventClick) {
var t,
e,
i = this._layerControlInputs,
n = [],
o = [];
this._handlingClick = !0;
for (var s = i.length - 1; 0 <= s; s--)
(t = i[s]),
(e = this._getLayer(t.layerId).layer),
t.checked ? n.push(e) : t.checked || o.push(e);
for (s = 0; s < o.length; s++)
this._map.hasLayer(o[s]) && this._map.removeLayer(o[s]);
for (s = 0; s < n.length; s++)
this._map.hasLayer(n[s]) || this._map.addLayer(n[s]);
(this._handlingClick = !1), this._refocusOnMap();
}
},
_checkDisabledLayers: function () {
for (
var t,
e,
i = this._layerControlInputs,
n = this._map.getZoom(),
o = i.length - 1;
0 <= o;
o--
)
(t = i[o]),
(e = this._getLayer(t.layerId).layer),
(t.disabled =
(void 0 !== e.options.minZoom && n < e.options.minZoom) ||
(void 0 !== e.options.maxZoom && n > e.options.maxZoom));
},
_expandIfNotCollapsed: function () {
return this._map && !this.options.collapsed && this.expand(), this;
},
_expandSafely: function () {
var t = this._section,
e =
((this._preventClick = !0),
S(t, "click", O),
this.expand(),
this);
setTimeout(function () {
k(t, "click", O), (e._preventClick = !1);
});
},
})),
qe = B.extend({
options: {
position: "topleft",
zoomInText: '<span aria-hidden="true">+</span>',
zoomInTitle: "Zoom in",
zoomOutText: '<span aria-hidden="true">−</span>',
zoomOutTitle: "Zoom out",
},
onAdd: function (t) {
var e = "leaflet-control-zoom",
i = P("div", e + " leaflet-bar"),
n = this.options;
return (
(this._zoomInButton = this._createButton(
n.zoomInText,
n.zoomInTitle,
e + "-in",
i,
this._zoomIn
)),
(this._zoomOutButton = this._createButton(
n.zoomOutText,
n.zoomOutTitle,
e + "-out",
i,
this._zoomOut
)),
this._updateDisabled(),
t.on("zoomend zoomlevelschange", this._updateDisabled, this),
i
);
},
onRemove: function (t) {
t.off("zoomend zoomlevelschange", this._updateDisabled, this);
},
disable: function () {
return (this._disabled = !0), this._updateDisabled(), this;
},
enable: function () {
return (this._disabled = !1), this._updateDisabled(), this;
},
_zoomIn: function (t) {
!this._disabled &&
this._map._zoom < this._map.getMaxZoom() &&
this._map.zoomIn(this._map.options.zoomDelta * (t.shiftKey ? 3 : 1));
},
_zoomOut: function (t) {
!this._disabled &&
this._map._zoom > this._map.getMinZoom() &&
this._map.zoomOut(this._map.options.zoomDelta * (t.shiftKey ? 3 : 1));
},
_createButton: function (t, e, i, n, o) {
i = P("a", i, n);
return (
(i.innerHTML = t),
(i.href = "#"),
(i.title = e),
i.setAttribute("role", "button"),
i.setAttribute("aria-label", e),
Ie(i),
S(i, "click", Re),
S(i, "click", o, this),
S(i, "click", this._refocusOnMap, this),
i
);
},
_updateDisabled: function () {
var t = this._map,
e = "leaflet-disabled";
z(this._zoomInButton, e),
z(this._zoomOutButton, e),
this._zoomInButton.setAttribute("aria-disabled", "false"),
this._zoomOutButton.setAttribute("aria-disabled", "false"),
(!this._disabled && t._zoom !== t.getMinZoom()) ||
(M(this._zoomOutButton, e),
this._zoomOutButton.setAttribute("aria-disabled", "true")),
(!this._disabled && t._zoom !== t.getMaxZoom()) ||
(M(this._zoomInButton, e),
this._zoomInButton.setAttribute("aria-disabled", "true"));
},
}),
Ge =
(A.mergeOptions({ zoomControl: !0 }),
A.addInitHook(function () {
this.options.zoomControl &&
((this.zoomControl = new qe()), this.addControl(this.zoomControl));
}),
B.extend({
options: {
position: "bottomleft",
maxWidth: 100,
metric: !0,
imperial: !0,
},
onAdd: function (t) {
var e = "leaflet-control-scale",
i = P("div", e),
n = this.options;
return (
this._addScales(n, e + "-line", i),
t.on(n.updateWhenIdle ? "moveend" : "move", this._update, this),
t.whenReady(this._update, this),
i
);
},
onRemove: function (t) {
t.off(
this.options.updateWhenIdle ? "moveend" : "move",
this._update,
this
);
},
_addScales: function (t, e, i) {
t.metric && (this._mScale = P("div", e, i)),
t.imperial && (this._iScale = P("div", e, i));
},
_update: function () {
var t = this._map,
e = t.getSize().y / 2,
t = t.distance(
t.containerPointToLatLng([0, e]),
t.containerPointToLatLng([this.options.maxWidth, e])
);
this._updateScales(t);
},
_updateScales: function (t) {
this.options.metric && t && this._updateMetric(t),
this.options.imperial && t && this._updateImperial(t);
},
_updateMetric: function (t) {
var e = this._getRoundNum(t);
this._updateScale(
this._mScale,
e < 1e3 ? e + " m" : e / 1e3 + " km",
e / t
);
},
_updateImperial: function (t) {
var e,
i,
t = 3.2808399 * t;
5280 < t
? ((i = this._getRoundNum((e = t / 5280))),
this._updateScale(this._iScale, i + " mi", i / e))
: ((i = this._getRoundNum(t)),
this._updateScale(this._iScale, i + " ft", i / t));
},
_updateScale: function (t, e, i) {
(t.style.width = Math.round(this.options.maxWidth * i) + "px"),
(t.innerHTML = e);
},
_getRoundNum: function (t) {
var e = Math.pow(10, (Math.floor(t) + "").length - 1),
t = t / e;
return (
e * (t = 10 <= t ? 10 : 5 <= t ? 5 : 3 <= t ? 3 : 2 <= t ? 2 : 1)
);
},
})),
Ke = B.extend({
options: {
position: "bottomright",
prefix:
'<a href="https://leafletjs.com" title="A JavaScript library for interactive maps">' +
(b.inlineSvg
? '<svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="12" height="8" viewBox="0 0 12 8" class="leaflet-attribution-flag"><path fill="#4C7BE1" d="M0 0h12v4H0z"/><path fill="#FFD500" d="M0 4h12v3H0z"/><path fill="#E0BC00" d="M0 7h12v1H0z"/></svg> '
: "") +
"Leaflet</a>",
},
initialize: function (t) {
c(this, t), (this._attributions = {});
},
onAdd: function (t) {
for (var e in (((t.attributionControl = this)._container = P(
"div",
"leaflet-control-attribution"
)),
Ie(this._container),
t._layers))
t._layers[e].getAttribution &&
this.addAttribution(t._layers[e].getAttribution());
return (
this._update(),
t.on("layeradd", this._addAttribution, this),
this._container
);
},
onRemove: function (t) {
t.off("layeradd", this._addAttribution, this);
},
_addAttribution: function (t) {
t.layer.getAttribution &&
(this.addAttribution(t.layer.getAttribution()),
t.layer.once(
"remove",
function () {
this.removeAttribution(t.layer.getAttribution());
},
this
));
},
setPrefix: function (t) {
return (this.options.prefix = t), this._update(), this;
},
addAttribution: function (t) {
return (
t &&
(this._attributions[t] || (this._attributions[t] = 0),
this._attributions[t]++,
this._update()),
this
);
},
removeAttribution: function (t) {
return (
t &&
this._attributions[t] &&
(this._attributions[t]--, this._update()),
this
);
},
_update: function () {
if (this._map) {
var t,
e = [];
for (t in this._attributions) this._attributions[t] && e.push(t);
var i = [];
this.options.prefix && i.push(this.options.prefix),
e.length && i.push(e.join(", ")),
(this._container.innerHTML = i.join(
' <span aria-hidden="true">|</span> '
));
}
},
}),
n =
(A.mergeOptions({ attributionControl: !0 }),
A.addInitHook(function () {
this.options.attributionControl && new Ke().addTo(this);
}),
(B.Layers = Ve),
(B.Zoom = qe),
(B.Scale = Ge),
(B.Attribution = Ke),
(Ue.layers = function (t, e, i) {
return new Ve(t, e, i);
}),
(Ue.zoom = function (t) {
return new qe(t);
}),
(Ue.scale = function (t) {
return new Ge(t);
}),
(Ue.attribution = function (t) {
return new Ke(t);
}),
et.extend({
initialize: function (t) {
this._map = t;
},
enable: function () {
return this._enabled || ((this._enabled = !0), this.addHooks()), this;
},
disable: function () {
return (
this._enabled && ((this._enabled = !1), this.removeHooks()), this
);
},
enabled: function () {
return !!this._enabled;
},
})),
ft =
((n.addTo = function (t, e) {
return t.addHandler(e, this), this;
}),
{ Events: e }),
Ye = b.touch ? "touchstart mousedown" : "mousedown",
Xe = it.extend({
options: { clickTolerance: 3 },
initialize: function (t, e, i, n) {
c(this, n),
(this._element = t),
(this._dragStartTarget = e || t),
(this._preventOutline = i);
},
enable: function () {
this._enabled ||
(S(this._dragStartTarget, Ye, this._onDown, this),
(this._enabled = !0));
},
disable: function () {
this._enabled &&
(Xe._dragging === this && this.finishDrag(!0),
k(this._dragStartTarget, Ye, this._onDown, this),
(this._enabled = !1),
(this._moved = !1));
},
_onDown: function (t) {
var e, i;
this._enabled &&
((this._moved = !1),
ve(this._element, "leaflet-zoom-anim") ||
(t.touches && 1 !== t.touches.length
? Xe._dragging === this && this.finishDrag()
: Xe._dragging ||
t.shiftKey ||
(1 !== t.which && 1 !== t.button && !t.touches) ||
((Xe._dragging = this)._preventOutline && Me(this._element),
Le(),
re(),
this._moving ||
(this.fire("down"),
(i = t.touches ? t.touches[0] : t),
(e = Ce(this._element)),
(this._startPoint = new p(i.clientX, i.clientY)),
(this._startPos = Pe(this._element)),
(this._parentScale = Ze(e)),
(i = "mousedown" === t.type),
S(
document,
i ? "mousemove" : "touchmove",
this._onMove,
this
),
S(
document,
i ? "mouseup" : "touchend touchcancel",
this._onUp,
this
)))));
},
_onMove: function (t) {
var e;
this._enabled &&
(t.touches && 1 < t.touches.length
? (this._moved = !0)
: (!(e = new p(
(e =
t.touches && 1 === t.touches.length
? t.touches[0]
: t).clientX,
e.clientY
)._subtract(this._startPoint)).x &&
!e.y) ||
Math.abs(e.x) + Math.abs(e.y) < this.options.clickTolerance ||
((e.x /= this._parentScale.x),
(e.y /= this._parentScale.y),
O(t),
this._moved ||
(this.fire("dragstart"),
(this._moved = !0),
M(document.body, "leaflet-dragging"),
(this._lastTarget = t.target || t.srcElement),
window.SVGElementInstance &&
this._lastTarget instanceof window.SVGElementInstance &&
(this._lastTarget = this._lastTarget.correspondingUseElement),
M(this._lastTarget, "leaflet-drag-target")),
(this._newPos = this._startPos.add(e)),
(this._moving = !0),
(this._lastEvent = t),
this._updatePosition()));
},
_updatePosition: function () {
var t = { originalEvent: this._lastEvent };
this.fire("predrag", t),
Z(this._element, this._newPos),
this.fire("drag", t);
},
_onUp: function () {
this._enabled && this.finishDrag();
},
finishDrag: function (t) {
z(document.body, "leaflet-dragging"),
this._lastTarget &&
(z(this._lastTarget, "leaflet-drag-target"),
(this._lastTarget = null)),
k(document, "mousemove touchmove", this._onMove, this),
k(document, "mouseup touchend touchcancel", this._onUp, this),
Te(),
ae();
var e = this._moved && this._moving;
(this._moving = !1),
(Xe._dragging = !1),
e &&
this.fire("dragend", {
noInertia: t,
distance: this._newPos.distanceTo(this._startPos),
});
},
});
function Je(t, e, i) {
for (
var n, o, s, r, a, h, l, u = [1, 4, 2, 8], c = 0, d = t.length;
c < d;
c++
)
t[c]._code = si(t[c], e);
for (s = 0; s < 4; s++) {
for (h = u[s], n = [], c = 0, o = (d = t.length) - 1; c < d; o = c++)
(r = t[c]),
(a = t[o]),
r._code & h
? a._code & h ||
(((l = oi(a, r, h, e, i))._code = si(l, e)), n.push(l))
: (a._code & h &&
(((l = oi(a, r, h, e, i))._code = si(l, e)), n.push(l)),
n.push(r));
t = n;
}
return t;
}
function $e(t, e) {
var i, n, o, s, r, a, h;
if (!t || 0 === t.length) throw new Error("latlngs not passed");
I(t) ||
(console.warn("latlngs are not flat! Only the first ring will be used"),
(t = t[0]));
for (
var l = w([0, 0]),
u = g(t),
c =
(u.getNorthWest().distanceTo(u.getSouthWest()) *
u.getNorthEast().distanceTo(u.getNorthWest()) <
1700 && (l = Qe(t)),
t.length),
d = [],
_ = 0;
_ < c;
_++
) {
var p = w(t[_]);
d.push(e.project(w([p.lat - l.lat, p.lng - l.lng])));
}
for (_ = r = a = h = 0, i = c - 1; _ < c; i = _++)
(n = d[_]),
(o = d[i]),
(s = n.y * o.x - o.y * n.x),
(a += (n.x + o.x) * s),
(h += (n.y + o.y) * s),
(r += 3 * s);
(u = 0 === r ? d[0] : [a / r, h / r]), (u = e.unproject(m(u)));
return w([u.lat + l.lat, u.lng + l.lng]);
}
function Qe(t) {
for (var e = 0, i = 0, n = 0, o = 0; o < t.length; o++) {
var s = w(t[o]);
(e += s.lat), (i += s.lng), n++;
}
return w([e / n, i / n]);
}
var ti,
gt = { __proto__: null, clipPolygon: Je, polygonCenter: $e, centroid: Qe };
function ei(t, e) {
if (e && t.length) {
var i = (t = (function (t, e) {
for (var i = [t[0]], n = 1, o = 0, s = t.length; n < s; n++)
(function (t, e) {
var i = e.x - t.x,
e = e.y - t.y;
return i * i + e * e;
})(t[n], t[o]) > e && (i.push(t[n]), (o = n));
o < s - 1 && i.push(t[s - 1]);
return i;
})(t, (e = e * e))),
n = i.length,
o = new (typeof Uint8Array != void 0 + "" ? Uint8Array : Array)(n);
(o[0] = o[n - 1] = 1),
(function t(e, i, n, o, s) {
var r,
a,
h,
l = 0;
for (a = o + 1; a <= s - 1; a++)
(h = ri(e[a], e[o], e[s], !0)), l < h && ((r = a), (l = h));
n < l && ((i[r] = 1), t(e, i, n, o, r), t(e, i, n, r, s));
})(i, o, e, 0, n - 1);
var s,
r = [];
for (s = 0; s < n; s++) o[s] && r.push(i[s]);
return r;
}
return t.slice();
}
function ii(t, e, i) {
return Math.sqrt(ri(t, e, i, !0));
}
function ni(t, e, i, n, o) {
var s,
r,
a,
h = n ? ti : si(t, i),
l = si(e, i);
for (ti = l; ; ) {
if (!(h | l)) return [t, e];
if (h & l) return !1;
(a = si((r = oi(t, e, (s = h || l), i, o)), i)),
s === h ? ((t = r), (h = a)) : ((e = r), (l = a));
}
}
function oi(t, e, i, n, o) {
var s,
r,
a = e.x - t.x,
e = e.y - t.y,
h = n.min,
n = n.max;
return (
8 & i
? ((s = t.x + (a * (n.y - t.y)) / e), (r = n.y))
: 4 & i
? ((s = t.x + (a * (h.y - t.y)) / e), (r = h.y))
: 2 & i
? ((s = n.x), (r = t.y + (e * (n.x - t.x)) / a))
: 1 & i && ((s = h.x), (r = t.y + (e * (h.x - t.x)) / a)),
new p(s, r, o)
);
}
function si(t, e) {
var i = 0;
return (
t.x < e.min.x ? (i |= 1) : t.x > e.max.x && (i |= 2),
t.y < e.min.y ? (i |= 4) : t.y > e.max.y && (i |= 8),
i
);
}
function ri(t, e, i, n) {
var o = e.x,
e = e.y,
s = i.x - o,
r = i.y - e,
a = s * s + r * r;
return (
0 < a &&
(1 < (a = ((t.x - o) * s + (t.y - e) * r) / a)
? ((o = i.x), (e = i.y))
: 0 < a && ((o += s * a), (e += r * a))),
(s = t.x - o),
(r = t.y - e),
n ? s * s + r * r : new p(o, e)
);
}
function I(t) {
return !d(t[0]) || ("object" != typeof t[0][0] && void 0 !== t[0][0]);
}
function ai(t) {
return (
console.warn(
"Deprecated use of _flat, please use L.LineUtil.isFlat instead."
),
I(t)
);
}
function hi(t, e) {
var i, n, o, s, r, a;
if (!t || 0 === t.length) throw new Error("latlngs not passed");
I(t) ||
(console.warn("latlngs are not flat! Only the first ring will be used"),
(t = t[0]));
for (
var h = w([0, 0]),
l = g(t),
u =
(l.getNorthWest().distanceTo(l.getSouthWest()) *
l.getNorthEast().distanceTo(l.getNorthWest()) <
1700 && (h = Qe(t)),
t.length),
c = [],
d = 0;
d < u;
d++
) {
var _ = w(t[d]);
c.push(e.project(w([_.lat - h.lat, _.lng - h.lng])));
}
for (i = d = 0; d < u - 1; d++) i += c[d].distanceTo(c[d + 1]) / 2;
if (0 === i) a = c[0];
else
for (n = d = 0; d < u - 1; d++)
if (((o = c[d]), (s = c[d + 1]), i < (n += r = o.distanceTo(s)))) {
a = [s.x - (r = (n - i) / r) * (s.x - o.x), s.y - r * (s.y - o.y)];
break;
}
l = e.unproject(m(a));
return w([l.lat + h.lat, l.lng + h.lng]);
}
var vt = {
__proto__: null,
simplify: ei,
pointToSegmentDistance: ii,
closestPointOnSegment: function (t, e, i) {
return ri(t, e, i);
},
clipSegment: ni,
_getEdgeIntersection: oi,
_getBitCode: si,
_sqClosestPointOnSegment: ri,
isFlat: I,
_flat: ai,
polylineCenter: hi,
},
yt = {
project: function (t) {
return new p(t.lng, t.lat);
},
unproject: function (t) {
return new v(t.y, t.x);
},
bounds: new f([-180, -90], [180, 90]),
},
xt = {
R: 6378137,
R_MINOR: 6356752.314245179,
bounds: new f(
[-20037508.34279, -15496570.73972],
[20037508.34279, 18764656.23138]
),
project: function (t) {
var e = Math.PI / 180,
i = this.R,
n = t.lat * e,
o = this.R_MINOR / i,
o = Math.sqrt(1 - o * o),
s = o * Math.sin(n),
s =
Math.tan(Math.PI / 4 - n / 2) / Math.pow((1 - s) / (1 + s), o / 2),
n = -i * Math.log(Math.max(s, 1e-10));
return new p(t.lng * e * i, n);
},
unproject: function (t) {
for (
var e,
i = 180 / Math.PI,
n = this.R,
o = this.R_MINOR / n,
s = Math.sqrt(1 - o * o),
r = Math.exp(-t.y / n),
a = Math.PI / 2 - 2 * Math.atan(r),
h = 0,
l = 0.1;
h < 15 && 1e-7 < Math.abs(l);
h++
)
(e = s * Math.sin(a)),
(e = Math.pow((1 - e) / (1 + e), s / 2)),
(a += l = Math.PI / 2 - 2 * Math.atan(r * e) - a);
return new v(a * i, (t.x * i) / n);
},
},
wt = { __proto__: null, LonLat: yt, Mercator: xt, SphericalMercator: rt },
Pt = l({}, st, {
code: "EPSG:3395",
projection: xt,
transformation: ht((bt = 0.5 / (Math.PI * xt.R)), 0.5, -bt, 0.5),
}),
li = l({}, st, {
code: "EPSG:4326",
projection: yt,
transformation: ht(1 / 180, 1, -1 / 180, 0.5),
}),
Lt = l({}, ot, {
projection: yt,
transformation: ht(1, 0, -1, 0),
scale: function (t) {
return Math.pow(2, t);
},
zoom: function (t) {
return Math.log(t) / Math.LN2;
},
distance: function (t, e) {
var i = e.lng - t.lng,
e = e.lat - t.lat;
return Math.sqrt(i * i + e * e);
},
infinite: !0,
}),
o =
((ot.Earth = st),
(ot.EPSG3395 = Pt),
(ot.EPSG3857 = lt),
(ot.EPSG900913 = ut),
(ot.EPSG4326 = li),
(ot.Simple = Lt),
it.extend({
options: {
pane: "overlayPane",
attribution: null,
bubblingMouseEvents: !0,
},
addTo: function (t) {
return t.addLayer(this), this;
},
remove: function () {
return this.removeFrom(this._map || this._mapToAdd);
},
removeFrom: function (t) {
return t && t.removeLayer(this), this;
},
getPane: function (t) {
return this._map.getPane(
t ? this.options[t] || t : this.options.pane
);
},
addInteractiveTarget: function (t) {
return (this._map._targets[h(t)] = this);
},
removeInteractiveTarget: function (t) {
return delete this._map._targets[h(t)], this;
},
getAttribution: function () {
return this.options.attribution;
},
_layerAdd: function (t) {
var e,
i = t.target;
i.hasLayer(this) &&
((this._map = i),
(this._zoomAnimated = i._zoomAnimated),
this.getEvents &&
((e = this.getEvents()),
i.on(e, this),
this.once(
"remove",
function () {
i.off(e, this);
},
this
)),
this.onAdd(i),
this.fire("add"),
i.fire("layeradd", { layer: this }));
},
})),
ui =
(A.include({
addLayer: function (t) {
var e;
if (t._layerAdd)
return (
(e = h(t)),
this._layers[e] ||
(((this._layers[e] = t)._mapToAdd = this),
t.beforeAdd && t.beforeAdd(this),
this.whenReady(t._layerAdd, t)),
this
);
throw new Error("The provided object is not a Layer.");
},
removeLayer: function (t) {
var e = h(t);
return (
this._layers[e] &&
(this._loaded && t.onRemove(this),
delete this._layers[e],
this._loaded &&
(this.fire("layerremove", { layer: t }), t.fire("remove")),
(t._map = t._mapToAdd = null)),
this
);
},
hasLayer: function (t) {
return h(t) in this._layers;
},
eachLayer: function (t, e) {
for (var i in this._layers) t.call(e, this._layers[i]);
return this;
},
_addLayers: function (t) {
for (
var e = 0, i = (t = t ? (d(t) ? t : [t]) : []).length;
e < i;
e++
)
this.addLayer(t[e]);
},
_addZoomLimit: function (t) {
(isNaN(t.options.maxZoom) && isNaN(t.options.minZoom)) ||
((this._zoomBoundLayers[h(t)] = t), this._updateZoomLevels());
},
_removeZoomLimit: function (t) {
t = h(t);
this._zoomBoundLayers[t] &&
(delete this._zoomBoundLayers[t], this._updateZoomLevels());
},
_updateZoomLevels: function () {
var t,
e = 1 / 0,
i = -1 / 0,
n = this._getZoomSpan();
for (t in this._zoomBoundLayers)
var o = this._zoomBoundLayers[t].options,
e = void 0 === o.minZoom ? e : Math.min(e, o.minZoom),
i = void 0 === o.maxZoom ? i : Math.max(i, o.maxZoom);
(this._layersMaxZoom = i === -1 / 0 ? void 0 : i),
(this._layersMinZoom = e === 1 / 0 ? void 0 : e),
n !== this._getZoomSpan() && this.fire("zoomlevelschange"),
void 0 === this.options.maxZoom &&
this._layersMaxZoom &&
this.getZoom() > this._layersMaxZoom &&
this.setZoom(this._layersMaxZoom),
void 0 === this.options.minZoom &&
this._layersMinZoom &&
this.getZoom() < this._layersMinZoom &&
this.setZoom(this._layersMinZoom);
},
}),
o.extend({
initialize: function (t, e) {
var i, n;
if ((c(this, e), (this._layers = {}), t))
for (i = 0, n = t.length; i < n; i++) this.addLayer(t[i]);
},
addLayer: function (t) {
var e = this.getLayerId(t);
return (
(this._layers[e] = t), this._map && this._map.addLayer(t), this
);
},
removeLayer: function (t) {
t = t in this._layers ? t : this.getLayerId(t);
return (
this._map &&
this._layers[t] &&
this._map.removeLayer(this._layers[t]),
delete this._layers[t],
this
);
},
hasLayer: function (t) {
return (
("number" == typeof t ? t : this.getLayerId(t)) in this._layers
);
},
clearLayers: function () {
return this.eachLayer(this.removeLayer, this);
},
invoke: function (t) {
var e,
i,
n = Array.prototype.slice.call(arguments, 1);
for (e in this._layers) (i = this._layers[e])[t] && i[t].apply(i, n);
return this;
},
onAdd: function (t) {
this.eachLayer(t.addLayer, t);
},
onRemove: function (t) {
this.eachLayer(t.removeLayer, t);
},
eachLayer: function (t, e) {
for (var i in this._layers) t.call(e, this._layers[i]);
return this;
},
getLayer: function (t) {
return this._layers[t];
},
getLayers: function () {
var t = [];
return this.eachLayer(t.push, t), t;
},
setZIndex: function (t) {
return this.invoke("setZIndex", t);
},
getLayerId: h,
})),
ci = ui.extend({
addLayer: function (t) {
return this.hasLayer(t)
? this
: (t.addEventParent(this),
ui.prototype.addLayer.call(this, t),
this.fire("layeradd", { layer: t }));
},
removeLayer: function (t) {
return this.hasLayer(t)
? ((t = t in this._layers ? this._layers[t] : t).removeEventParent(
this
),
ui.prototype.removeLayer.call(this, t),
this.fire("layerremove", { layer: t }))
: this;
},
setStyle: function (t) {
return this.invoke("setStyle", t);
},
bringToFront: function () {
return this.invoke("bringToFront");
},
bringToBack: function () {
return this.invoke("bringToBack");
},
getBounds: function () {
var t,
e = new s();
for (t in this._layers) {
var i = this._layers[t];
e.extend(i.getBounds ? i.getBounds() : i.getLatLng());
}
return e;
},
}),
di = et.extend({
options: { popupAnchor: [0, 0], tooltipAnchor: [0, 0], crossOrigin: !1 },
initialize: function (t) {
c(this, t);
},
createIcon: function (t) {
return this._createIcon("icon", t);
},
createShadow: function (t) {
return this._createIcon("shadow", t);
},
_createIcon: function (t, e) {
var i = this._getIconUrl(t);
if (i)
return (
(i = this._createImg(i, e && "IMG" === e.tagName ? e : null)),
this._setIconStyles(i, t),
(!this.options.crossOrigin && "" !== this.options.crossOrigin) ||
(i.crossOrigin =
!0 === this.options.crossOrigin
? ""
: this.options.crossOrigin),
i
);
if ("icon" === t)
throw new Error("iconUrl not set in Icon options (see the docs).");
return null;
},
_setIconStyles: function (t, e) {
var i = this.options,
n = i[e + "Size"],
n = m((n = "number" == typeof n ? [n, n] : n)),
o = m(
("shadow" === e && i.shadowAnchor) ||
i.iconAnchor ||
(n && n.divideBy(2, !0))
);
(t.className = "leaflet-marker-" + e + " " + (i.className || "")),
o &&
((t.style.marginLeft = -o.x + "px"),
(t.style.marginTop = -o.y + "px")),
n && ((t.style.width = n.x + "px"), (t.style.height = n.y + "px"));
},
_createImg: function (t, e) {
return ((e = e || document.createElement("img")).src = t), e;
},
_getIconUrl: function (t) {
return (
(b.retina && this.options[t + "RetinaUrl"]) || this.options[t + "Url"]
);
},
});
var _i = di.extend({
options: {
iconUrl: "marker-icon.png",
iconRetinaUrl: "marker-icon-2x.png",
shadowUrl: "marker-shadow.png",
iconSize: [25, 41],
iconAnchor: [12, 41],
popupAnchor: [1, -34],
tooltipAnchor: [16, -28],
shadowSize: [41, 41],
},
_getIconUrl: function (t) {
return (
"string" != typeof _i.imagePath &&
(_i.imagePath = this._detectIconPath()),
(this.options.imagePath || _i.imagePath) +
di.prototype._getIconUrl.call(this, t)
);
},
_stripUrl: function (t) {
function e(t, e, i) {
return (e = e.exec(t)) && e[i];
}
return (
(t = e(t, /^url\((['"])?(.+)\1\)$/, 2)) &&
e(t, /^(.*)marker-icon\.png$/, 1)
);
},
_detectIconPath: function () {
var t = P("div", "leaflet-default-icon-path", document.body),
e = pe(t, "background-image") || pe(t, "backgroundImage");
return (
document.body.removeChild(t),
(e = this._stripUrl(e))
? e
: (t = document.querySelector('link[href$="leaflet.css"]'))
? t.href.substring(0, t.href.length - "leaflet.css".length - 1)
: ""
);
},
}),
pi = n.extend({
initialize: function (t) {
this._marker = t;
},
addHooks: function () {
var t = this._marker._icon;
this._draggable || (this._draggable = new Xe(t, t, !0)),
this._draggable
.on(
{
dragstart: this._onDragStart,
predrag: this._onPreDrag,
drag: this._onDrag,
dragend: this._onDragEnd,
},
this
)
.enable(),
M(t, "leaflet-marker-draggable");
},
removeHooks: function () {
this._draggable
.off(
{
dragstart: this._onDragStart,
predrag: this._onPreDrag,
drag: this._onDrag,
dragend: this._onDragEnd,
},
this
)
.disable(),
this._marker._icon &&
z(this._marker._icon, "leaflet-marker-draggable");
},
moved: function () {
return this._draggable && this._draggable._moved;
},
_adjustPan: function (t) {
var e = this._marker,
i = e._map,
n = this._marker.options.autoPanSpeed,
o = this._marker.options.autoPanPadding,
s = Pe(e._icon),
r = i.getPixelBounds(),
a = i.getPixelOrigin(),
a = _(r.min._subtract(a).add(o), r.max._subtract(a).subtract(o));
a.contains(s) ||
((o = m(
(Math.max(a.max.x, s.x) - a.max.x) / (r.max.x - a.max.x) -
(Math.min(a.min.x, s.x) - a.min.x) / (r.min.x - a.min.x),
(Math.max(a.max.y, s.y) - a.max.y) / (r.max.y - a.max.y) -
(Math.min(a.min.y, s.y) - a.min.y) / (r.min.y - a.min.y)
).multiplyBy(n)),
i.panBy(o, { animate: !1 }),
this._draggable._newPos._add(o),
this._draggable._startPos._add(o),
Z(e._icon, this._draggable._newPos),
this._onDrag(t),
(this._panRequest = x(this._adjustPan.bind(this, t))));
},
_onDragStart: function () {
(this._oldLatLng = this._marker.getLatLng()),
this._marker.closePopup && this._marker.closePopup(),
this._marker.fire("movestart").fire("dragstart");
},
_onPreDrag: function (t) {
this._marker.options.autoPan &&
(r(this._panRequest),
(this._panRequest = x(this._adjustPan.bind(this, t))));
},
_onDrag: function (t) {
var e = this._marker,
i = e._shadow,
n = Pe(e._icon),
o = e._map.layerPointToLatLng(n);
i && Z(i, n),
(e._latlng = o),
(t.latlng = o),
(t.oldLatLng = this._oldLatLng),
e.fire("move", t).fire("drag", t);
},
_onDragEnd: function (t) {
r(this._panRequest),
delete this._oldLatLng,
this._marker.fire("moveend").fire("dragend", t);
},
}),
mi = o.extend({
options: {
icon: new _i(),
interactive: !0,
keyboard: !0,
title: "",
alt: "Marker",
zIndexOffset: 0,
opacity: 1,
riseOnHover: !1,
riseOffset: 250,
pane: "markerPane",
shadowPane: "shadowPane",
bubblingMouseEvents: !1,
autoPanOnFocus: !0,
draggable: !1,
autoPan: !1,
autoPanPadding: [50, 50],
autoPanSpeed: 10,
},
initialize: function (t, e) {
c(this, e), (this._latlng = w(t));
},
onAdd: function (t) {
(this._zoomAnimated =
this._zoomAnimated && t.options.markerZoomAnimation),
this._zoomAnimated && t.on("zoomanim", this._animateZoom, this),
this._initIcon(),
this.update();
},
onRemove: function (t) {
this.dragging &&
this.dragging.enabled() &&
((this.options.draggable = !0), this.dragging.removeHooks()),
delete this.dragging,
this._zoomAnimated && t.off("zoomanim", this._animateZoom, this),
this._removeIcon(),
this._removeShadow();
},
getEvents: function () {
return { zoom: this.update, viewreset: this.update };
},
getLatLng: function () {
return this._latlng;
},
setLatLng: function (t) {
var e = this._latlng;
return (
(this._latlng = w(t)),
this.update(),
this.fire("move", { oldLatLng: e, latlng: this._latlng })
);
},
setZIndexOffset: function (t) {
return (this.options.zIndexOffset = t), this.update();
},
getIcon: function () {
return this.options.icon;
},
setIcon: function (t) {
return (
(this.options.icon = t),
this._map && (this._initIcon(), this.update()),
this._popup && this.bindPopup(this._popup, this._popup.options),
this
);
},
getElement: function () {
return this._icon;
},
update: function () {
var t;
return (
this._icon &&
this._map &&
((t = this._map.latLngToLayerPoint(this._latlng).round()),
this._setPos(t)),
this
);
},
_initIcon: function () {
var t = this.options,
e = "leaflet-zoom-" + (this._zoomAnimated ? "animated" : "hide"),
i = t.icon.createIcon(this._icon),
n = !1,
i =
(i !== this._icon &&
(this._icon && this._removeIcon(),
(n = !0),
t.title && (i.title = t.title),
"IMG" === i.tagName && (i.alt = t.alt || "")),
M(i, e),
t.keyboard &&
((i.tabIndex = "0"), i.setAttribute("role", "button")),
(this._icon = i),
t.riseOnHover &&
this.on({
mouseover: this._bringToFront,
mouseout: this._resetZIndex,
}),
this.options.autoPanOnFocus &&
S(i, "focus", this._panOnFocus, this),
t.icon.createShadow(this._shadow)),
o = !1;
i !== this._shadow && (this._removeShadow(), (o = !0)),
i && (M(i, e), (i.alt = "")),
(this._shadow = i),
t.opacity < 1 && this._updateOpacity(),
n && this.getPane().appendChild(this._icon),
this._initInteraction(),
i && o && this.getPane(t.shadowPane).appendChild(this._shadow);
},
_removeIcon: function () {
this.options.riseOnHover &&
this.off({
mouseover: this._bringToFront,
mouseout: this._resetZIndex,
}),
this.options.autoPanOnFocus &&
k(this._icon, "focus", this._panOnFocus, this),
T(this._icon),
this.removeInteractiveTarget(this._icon),
(this._icon = null);
},
_removeShadow: function () {
this._shadow && T(this._shadow), (this._shadow = null);
},
_setPos: function (t) {
this._icon && Z(this._icon, t),
this._shadow && Z(this._shadow, t),
(this._zIndex = t.y + this.options.zIndexOffset),
this._resetZIndex();
},
_updateZIndex: function (t) {
this._icon && (this._icon.style.zIndex = this._zIndex + t);
},
_animateZoom: function (t) {
t = this._map
._latLngToNewLayerPoint(this._latlng, t.zoom, t.center)
.round();
this._setPos(t);
},
_initInteraction: function () {
var t;
this.options.interactive &&
(M(this._icon, "leaflet-interactive"),
this.addInteractiveTarget(this._icon),
pi &&
((t = this.options.draggable),
this.dragging &&
((t = this.dragging.enabled()), this.dragging.disable()),
(this.dragging = new pi(this)),
t && this.dragging.enable()));
},
setOpacity: function (t) {
return (
(this.options.opacity = t), this._map && this._updateOpacity(), this
);
},
_updateOpacity: function () {
var t = this.options.opacity;
this._icon && C(this._icon, t), this._shadow && C(this._shadow, t);
},
_bringToFront: function () {
this._updateZIndex(this.options.riseOffset);
},
_resetZIndex: function () {
this._updateZIndex(0);
},
_panOnFocus: function () {
var t,
e,
i = this._map;
i &&
((t = (e = this.options.icon.options).iconSize
? m(e.iconSize)
: m(0, 0)),
(e = e.iconAnchor ? m(e.iconAnchor) : m(0, 0)),
i.panInside(this._latlng, {
paddingTopLeft: e,
paddingBottomRight: t.subtract(e),
}));
},
_getPopupAnchor: function () {
return this.options.icon.options.popupAnchor;
},
_getTooltipAnchor: function () {
return this.options.icon.options.tooltipAnchor;
},
});
var fi = o.extend({
options: {
stroke: !0,
color: "#3388ff",
weight: 3,
opacity: 1,
lineCap: "round",
lineJoin: "round",
dashArray: null,
dashOffset: null,
fill: !1,
fillColor: null,
fillOpacity: 0.2,
fillRule: "evenodd",
interactive: !0,
bubblingMouseEvents: !0,
},
beforeAdd: function (t) {
this._renderer = t.getRenderer(this);
},
onAdd: function () {
this._renderer._initPath(this),
this._reset(),
this._renderer._addPath(this);
},
onRemove: function () {
this._renderer._removePath(this);
},
redraw: function () {
return this._map && this._renderer._updatePath(this), this;
},
setStyle: function (t) {
return (
c(this, t),
this._renderer &&
(this._renderer._updateStyle(this),
this.options.stroke &&
t &&
Object.prototype.hasOwnProperty.call(t, "weight") &&
this._updateBounds()),
this
);
},
bringToFront: function () {
return this._renderer && this._renderer._bringToFront(this), this;
},
bringToBack: function () {
return this._renderer && this._renderer._bringToBack(this), this;
},
getElement: function () {
return this._path;
},
_reset: function () {
this._project(), this._update();
},
_clickTolerance: function () {
return (
(this.options.stroke ? this.options.weight / 2 : 0) +
(this._renderer.options.tolerance || 0)
);
},
}),
gi = fi.extend({
options: { fill: !0, radius: 10 },
initialize: function (t, e) {
c(this, e), (this._latlng = w(t)), (this._radius = this.options.radius);
},
setLatLng: function (t) {
var e = this._latlng;
return (
(this._latlng = w(t)),
this.redraw(),
this.fire("move", { oldLatLng: e, latlng: this._latlng })
);
},
getLatLng: function () {
return this._latlng;
},
setRadius: function (t) {
return (this.options.radius = this._radius = t), this.redraw();
},
getRadius: function () {
return this._radius;
},
setStyle: function (t) {
var e = (t && t.radius) || this._radius;
return fi.prototype.setStyle.call(this, t), this.setRadius(e), this;
},
_project: function () {
(this._point = this._map.latLngToLayerPoint(this._latlng)),
this._updateBounds();
},
_updateBounds: function () {
var t = this._radius,
e = this._radiusY || t,
i = this._clickTolerance(),
t = [t + i, e + i];
this._pxBounds = new f(this._point.subtract(t), this._point.add(t));
},
_update: function () {
this._map && this._updatePath();
},
_updatePath: function () {
this._renderer._updateCircle(this);
},
_empty: function () {
return (
this._radius && !this._renderer._bounds.intersects(this._pxBounds)
);
},
_containsPoint: function (t) {
return (
t.distanceTo(this._point) <= this._radius + this._clickTolerance()
);
},
});
var vi = gi.extend({
initialize: function (t, e, i) {
if (
(c(this, (e = "number" == typeof e ? l({}, i, { radius: e }) : e)),
(this._latlng = w(t)),
isNaN(this.options.radius))
)
throw new Error("Circle radius cannot be NaN");
this._mRadius = this.options.radius;
},
setRadius: function (t) {
return (this._mRadius = t), this.redraw();
},
getRadius: function () {
return this._mRadius;
},
getBounds: function () {
var t = [this._radius, this._radiusY || this._radius];
return new s(
this._map.layerPointToLatLng(this._point.subtract(t)),
this._map.layerPointToLatLng(this._point.add(t))
);
},
setStyle: fi.prototype.setStyle,
_project: function () {
var t,
e,
i,
n,
o,
s = this._latlng.lng,
r = this._latlng.lat,
a = this._map,
h = a.options.crs;
h.distance === st.distance
? ((n = Math.PI / 180),
(o = this._mRadius / st.R / n),
(t = a.project([r + o, s])),
(e = a.project([r - o, s])),
(e = t.add(e).divideBy(2)),
(i = a.unproject(e).lat),
(n =
Math.acos(
(Math.cos(o * n) - Math.sin(r * n) * Math.sin(i * n)) /
(Math.cos(r * n) * Math.cos(i * n))
) / n),
(!isNaN(n) && 0 !== n) || (n = o / Math.cos((Math.PI / 180) * r)),
(this._point = e.subtract(a.getPixelOrigin())),
(this._radius = isNaN(n) ? 0 : e.x - a.project([i, s - n]).x),
(this._radiusY = e.y - t.y))
: ((o = h.unproject(
h.project(this._latlng).subtract([this._mRadius, 0])
)),
(this._point = a.latLngToLayerPoint(this._latlng)),
(this._radius = this._point.x - a.latLngToLayerPoint(o).x)),
this._updateBounds();
},
});
var yi = fi.extend({
options: { smoothFactor: 1, noClip: !1 },
initialize: function (t, e) {
c(this, e), this._setLatLngs(t);
},
getLatLngs: function () {
return this._latlngs;
},
setLatLngs: function (t) {
return this._setLatLngs(t), this.redraw();
},
isEmpty: function () {
return !this._latlngs.length;
},
closestLayerPoint: function (t) {
for (
var e = 1 / 0, i = null, n = ri, o = 0, s = this._parts.length;
o < s;
o++
)
for (var r = this._parts[o], a = 1, h = r.length; a < h; a++) {
var l,
u,
c = n(t, (l = r[a - 1]), (u = r[a]), !0);
c < e && ((e = c), (i = n(t, l, u)));
}
return i && (i.distance = Math.sqrt(e)), i;
},
getCenter: function () {
if (this._map) return hi(this._defaultShape(), this._map.options.crs);
throw new Error("Must add layer to map before using getCenter()");
},
getBounds: function () {
return this._bounds;
},
addLatLng: function (t, e) {
return (
(e = e || this._defaultShape()),
(t = w(t)),
e.push(t),
this._bounds.extend(t),
this.redraw()
);
},
_setLatLngs: function (t) {
(this._bounds = new s()), (this._latlngs = this._convertLatLngs(t));
},
_defaultShape: function () {
return I(this._latlngs) ? this._latlngs : this._latlngs[0];
},
_convertLatLngs: function (t) {
for (var e = [], i = I(t), n = 0, o = t.length; n < o; n++)
i
? ((e[n] = w(t[n])), this._bounds.extend(e[n]))
: (e[n] = this._convertLatLngs(t[n]));
return e;
},
_project: function () {
var t = new f();
(this._rings = []),
this._projectLatlngs(this._latlngs, this._rings, t),
this._bounds.isValid() &&
t.isValid() &&
((this._rawPxBounds = t), this._updateBounds());
},
_updateBounds: function () {
var t = this._clickTolerance(),
t = new p(t, t);
this._rawPxBounds &&
(this._pxBounds = new f([
this._rawPxBounds.min.subtract(t),
this._rawPxBounds.max.add(t),
]));
},
_projectLatlngs: function (t, e, i) {
var n,
o,
s = t[0] instanceof v,
r = t.length;
if (s) {
for (o = [], n = 0; n < r; n++)
(o[n] = this._map.latLngToLayerPoint(t[n])), i.extend(o[n]);
e.push(o);
} else for (n = 0; n < r; n++) this._projectLatlngs(t[n], e, i);
},
_clipPoints: function () {
var t = this._renderer._bounds;
if (((this._parts = []), this._pxBounds && this._pxBounds.intersects(t)))
if (this.options.noClip) this._parts = this._rings;
else
for (
var e,
i,
n,
o,
s = this._parts,
r = 0,
a = 0,
h = this._rings.length;
r < h;
r++
)
for (e = 0, i = (o = this._rings[r]).length; e < i - 1; e++)
(n = ni(o[e], o[e + 1], t, e, !0)) &&
((s[a] = s[a] || []),
s[a].push(n[0]),
(n[1] === o[e + 1] && e !== i - 2) || (s[a].push(n[1]), a++));
},
_simplifyPoints: function () {
for (
var t = this._parts, e = this.options.smoothFactor, i = 0, n = t.length;
i < n;
i++
)
t[i] = ei(t[i], e);
},
_update: function () {
this._map &&
(this._clipPoints(), this._simplifyPoints(), this._updatePath());
},
_updatePath: function () {
this._renderer._updatePoly(this);
},
_containsPoint: function (t, e) {
var i,
n,
o,
s,
r,
a,
h = this._clickTolerance();
if (this._pxBounds && this._pxBounds.contains(t))
for (i = 0, s = this._parts.length; i < s; i++)
for (n = 0, o = (r = (a = this._parts[i]).length) - 1; n < r; o = n++)
if ((e || 0 !== n) && ii(t, a[o], a[n]) <= h) return !0;
return !1;
},
});
yi._flat = ai;
var xi = yi.extend({
options: { fill: !0 },
isEmpty: function () {
return !this._latlngs.length || !this._latlngs[0].length;
},
getCenter: function () {
if (this._map) return $e(this._defaultShape(), this._map.options.crs);
throw new Error("Must add layer to map before using getCenter()");
},
_convertLatLngs: function (t) {
var t = yi.prototype._convertLatLngs.call(this, t),
e = t.length;
return 2 <= e && t[0] instanceof v && t[0].equals(t[e - 1]) && t.pop(), t;
},
_setLatLngs: function (t) {
yi.prototype._setLatLngs.call(this, t),
I(this._latlngs) && (this._latlngs = [this._latlngs]);
},
_defaultShape: function () {
return (I(this._latlngs[0]) ? this._latlngs : this._latlngs[0])[0];
},
_clipPoints: function () {
var t = this._renderer._bounds,
e = this.options.weight,
e = new p(e, e),
t = new f(t.min.subtract(e), t.max.add(e));
if (((this._parts = []), this._pxBounds && this._pxBounds.intersects(t)))
if (this.options.noClip) this._parts = this._rings;
else
for (var i, n = 0, o = this._rings.length; n < o; n++)
(i = Je(this._rings[n], t, !0)).length && this._parts.push(i);
},
_updatePath: function () {
this._renderer._updatePoly(this, !0);
},
_containsPoint: function (t) {
var e,
i,
n,
o,
s,
r,
a,
h,
l = !1;
if (!this._pxBounds || !this._pxBounds.contains(t)) return !1;
for (o = 0, a = this._parts.length; o < a; o++)
for (s = 0, r = (h = (e = this._parts[o]).length) - 1; s < h; r = s++)
(i = e[s]),
(n = e[r]),
i.y > t.y != n.y > t.y &&
t.x < ((n.x - i.x) * (t.y - i.y)) / (n.y - i.y) + i.x &&
(l = !l);
return l || yi.prototype._containsPoint.call(this, t, !0);
},
});
var wi = ci.extend({
initialize: function (t, e) {
c(this, e), (this._layers = {}), t && this.addData(t);
},
addData: function (t) {
var e,
i,
n,
o = d(t) ? t : t.features;
if (o) {
for (e = 0, i = o.length; e < i; e++)
((n = o[e]).geometries ||
n.geometry ||
n.features ||
n.coordinates) &&
this.addData(n);
return this;
}
var s,
r = this.options;
return (!r.filter || r.filter(t)) && (s = bi(t, r))
? ((s.feature = Zi(t)),
(s.defaultOptions = s.options),
this.resetStyle(s),
r.onEachFeature && r.onEachFeature(t, s),
this.addLayer(s))
: this;
},
resetStyle: function (t) {
return void 0 === t
? this.eachLayer(this.resetStyle, this)
: ((t.options = l({}, t.defaultOptions)),
this._setLayerStyle(t, this.options.style),
this);
},
setStyle: function (e) {
return this.eachLayer(function (t) {
this._setLayerStyle(t, e);
}, this);
},
_setLayerStyle: function (t, e) {
t.setStyle &&
("function" == typeof e && (e = e(t.feature)), t.setStyle(e));
},
});
function bi(t, e) {
var i,
n,
o,
s,
r = "Feature" === t.type ? t.geometry : t,
a = r ? r.coordinates : null,
h = [],
l = e && e.pointToLayer,
u = (e && e.coordsToLatLng) || Li;
if (!a && !r) return null;
switch (r.type) {
case "Point":
return Pi(l, t, (i = u(a)), e);
case "MultiPoint":
for (o = 0, s = a.length; o < s; o++)
(i = u(a[o])), h.push(Pi(l, t, i, e));
return new ci(h);
case "LineString":
case "MultiLineString":
return (n = Ti(a, "LineString" === r.type ? 0 : 1, u)), new yi(n, e);
case "Polygon":
case "MultiPolygon":
return (n = Ti(a, "Polygon" === r.type ? 1 : 2, u)), new xi(n, e);
case "GeometryCollection":
for (o = 0, s = r.geometries.length; o < s; o++) {
var c = bi(
{
geometry: r.geometries[o],
type: "Feature",
properties: t.properties,
},
e
);
c && h.push(c);
}
return new ci(h);
case "FeatureCollection":
for (o = 0, s = r.features.length; o < s; o++) {
var d = bi(r.features[o], e);
d && h.push(d);
}
return new ci(h);
default:
throw new Error("Invalid GeoJSON object.");
}
}
function Pi(t, e, i, n) {
return t ? t(e, i) : new mi(i, n && n.markersInheritOptions && n);
}
function Li(t) {
return new v(t[1], t[0], t[2]);
}
function Ti(t, e, i) {
for (var n, o = [], s = 0, r = t.length; s < r; s++)
(n = e ? Ti(t[s], e - 1, i) : (i || Li)(t[s])), o.push(n);
return o;
}
function Mi(t, e) {
return void 0 !== (t = w(t)).alt
? [i(t.lng, e), i(t.lat, e), i(t.alt, e)]
: [i(t.lng, e), i(t.lat, e)];
}
function zi(t, e, i, n) {
for (var o = [], s = 0, r = t.length; s < r; s++)
o.push(e ? zi(t[s], I(t[s]) ? 0 : e - 1, i, n) : Mi(t[s], n));
return !e && i && 0 < o.length && o.push(o[0].slice()), o;
}
function Ci(t, e) {
return t.feature ? l({}, t.feature, { geometry: e }) : Zi(e);
}
function Zi(t) {
return "Feature" === t.type || "FeatureCollection" === t.type
? t
: { type: "Feature", properties: {}, geometry: t };
}
Tt = {
toGeoJSON: function (t) {
return Ci(this, { type: "Point", coordinates: Mi(this.getLatLng(), t) });
},
};
function Si(t, e) {
return new wi(t, e);
}
mi.include(Tt),
vi.include(Tt),
gi.include(Tt),
yi.include({
toGeoJSON: function (t) {
var e = !I(this._latlngs);
return Ci(this, {
type: (e ? "Multi" : "") + "LineString",
coordinates: zi(this._latlngs, e ? 1 : 0, !1, t),
});
},
}),
xi.include({
toGeoJSON: function (t) {
var e = !I(this._latlngs),
i = e && !I(this._latlngs[0]),
t = zi(this._latlngs, i ? 2 : e ? 1 : 0, !0, t);
return Ci(this, {
type: (i ? "Multi" : "") + "Polygon",
coordinates: (t = e ? t : [t]),
});
},
}),
ui.include({
toMultiPoint: function (e) {
var i = [];
return (
this.eachLayer(function (t) {
i.push(t.toGeoJSON(e).geometry.coordinates);
}),
Ci(this, { type: "MultiPoint", coordinates: i })
);
},
toGeoJSON: function (e) {
var i,
n,
t =
this.feature && this.feature.geometry && this.feature.geometry.type;
return "MultiPoint" === t
? this.toMultiPoint(e)
: ((i = "GeometryCollection" === t),
(n = []),
this.eachLayer(function (t) {
t.toGeoJSON &&
((t = t.toGeoJSON(e)),
i
? n.push(t.geometry)
: "FeatureCollection" === (t = Zi(t)).type
? n.push.apply(n, t.features)
: n.push(t));
}),
i
? Ci(this, { geometries: n, type: "GeometryCollection" })
: { type: "FeatureCollection", features: n });
},
});
var Mt = Si,
Ei = o.extend({
options: {
opacity: 1,
alt: "",
interactive: !1,
crossOrigin: !1,
errorOverlayUrl: "",
zIndex: 1,
className: "",
},
initialize: function (t, e, i) {
(this._url = t), (this._bounds = g(e)), c(this, i);
},
onAdd: function () {
this._image ||
(this._initImage(),
this.options.opacity < 1 && this._updateOpacity()),
this.options.interactive &&
(M(this._image, "leaflet-interactive"),
this.addInteractiveTarget(this._image)),
this.getPane().appendChild(this._image),
this._reset();
},
onRemove: function () {
T(this._image),
this.options.interactive && this.removeInteractiveTarget(this._image);
},
setOpacity: function (t) {
return (
(this.options.opacity = t), this._image && this._updateOpacity(), this
);
},
setStyle: function (t) {
return t.opacity && this.setOpacity(t.opacity), this;
},
bringToFront: function () {
return this._map && fe(this._image), this;
},
bringToBack: function () {
return this._map && ge(this._image), this;
},
setUrl: function (t) {
return (this._url = t), this._image && (this._image.src = t), this;
},
setBounds: function (t) {
return (this._bounds = g(t)), this._map && this._reset(), this;
},
getEvents: function () {
var t = { zoom: this._reset, viewreset: this._reset };
return this._zoomAnimated && (t.zoomanim = this._animateZoom), t;
},
setZIndex: function (t) {
return (this.options.zIndex = t), this._updateZIndex(), this;
},
getBounds: function () {
return this._bounds;
},
getElement: function () {
return this._image;
},
_initImage: function () {
var t = "IMG" === this._url.tagName,
e = (this._image = t ? this._url : P("img"));
M(e, "leaflet-image-layer"),
this._zoomAnimated && M(e, "leaflet-zoom-animated"),
this.options.className && M(e, this.options.className),
(e.onselectstart = u),
(e.onmousemove = u),
(e.onload = a(this.fire, this, "load")),
(e.onerror = a(this._overlayOnError, this, "error")),
(!this.options.crossOrigin && "" !== this.options.crossOrigin) ||
(e.crossOrigin =
!0 === this.options.crossOrigin ? "" : this.options.crossOrigin),
this.options.zIndex && this._updateZIndex(),
t
? (this._url = e.src)
: ((e.src = this._url), (e.alt = this.options.alt));
},
_animateZoom: function (t) {
var e = this._map.getZoomScale(t.zoom),
t = this._map._latLngBoundsToNewLayerBounds(
this._bounds,
t.zoom,
t.center
).min;
be(this._image, t, e);
},
_reset: function () {
var t = this._image,
e = new f(
this._map.latLngToLayerPoint(this._bounds.getNorthWest()),
this._map.latLngToLayerPoint(this._bounds.getSouthEast())
),
i = e.getSize();
Z(t, e.min),
(t.style.width = i.x + "px"),
(t.style.height = i.y + "px");
},
_updateOpacity: function () {
C(this._image, this.options.opacity);
},
_updateZIndex: function () {
this._image &&
void 0 !== this.options.zIndex &&
null !== this.options.zIndex &&
(this._image.style.zIndex = this.options.zIndex);
},
_overlayOnError: function () {
this.fire("error");
var t = this.options.errorOverlayUrl;
t && this._url !== t && ((this._url = t), (this._image.src = t));
},
getCenter: function () {
return this._bounds.getCenter();
},
}),
ki = Ei.extend({
options: {
autoplay: !0,
loop: !0,
keepAspectRatio: !0,
muted: !1,
playsInline: !0,
},
_initImage: function () {
var t = "VIDEO" === this._url.tagName,
e = (this._image = t ? this._url : P("video"));
if (
(M(e, "leaflet-image-layer"),
this._zoomAnimated && M(e, "leaflet-zoom-animated"),
this.options.className && M(e, this.options.className),
(e.onselectstart = u),
(e.onmousemove = u),
(e.onloadeddata = a(this.fire, this, "load")),
t)
) {
for (
var i = e.getElementsByTagName("source"), n = [], o = 0;
o < i.length;
o++
)
n.push(i[o].src);
this._url = 0 < i.length ? n : [e.src];
} else {
d(this._url) || (this._url = [this._url]),
!this.options.keepAspectRatio &&
Object.prototype.hasOwnProperty.call(e.style, "objectFit") &&
(e.style.objectFit = "fill"),
(e.autoplay = !!this.options.autoplay),
(e.loop = !!this.options.loop),
(e.muted = !!this.options.muted),
(e.playsInline = !!this.options.playsInline);
for (var s = 0; s < this._url.length; s++) {
var r = P("source");
(r.src = this._url[s]), e.appendChild(r);
}
}
},
});
var Oi = Ei.extend({
_initImage: function () {
var t = (this._image = this._url);
M(t, "leaflet-image-layer"),
this._zoomAnimated && M(t, "leaflet-zoom-animated"),
this.options.className && M(t, this.options.className),
(t.onselectstart = u),
(t.onmousemove = u);
},
});
var Ai = o.extend({
options: {
interactive: !1,
offset: [0, 0],
className: "",
pane: void 0,
content: "",
},
initialize: function (t, e) {
t && (t instanceof v || d(t))
? ((this._latlng = w(t)), c(this, e))
: (c(this, t), (this._source = e)),
this.options.content && (this._content = this.options.content);
},
openOn: function (t) {
return (
(t = arguments.length ? t : this._source._map).hasLayer(this) ||
t.addLayer(this),
this
);
},
close: function () {
return this._map && this._map.removeLayer(this), this;
},
toggle: function (t) {
return (
this._map
? this.close()
: (arguments.length ? (this._source = t) : (t = this._source),
this._prepareOpen(),
this.openOn(t._map)),
this
);
},
onAdd: function (t) {
(this._zoomAnimated = t._zoomAnimated),
this._container || this._initLayout(),
t._fadeAnimated && C(this._container, 0),
clearTimeout(this._removeTimeout),
this.getPane().appendChild(this._container),
this.update(),
t._fadeAnimated && C(this._container, 1),
this.bringToFront(),
this.options.interactive &&
(M(this._container, "leaflet-interactive"),
this.addInteractiveTarget(this._container));
},
onRemove: function (t) {
t._fadeAnimated
? (C(this._container, 0),
(this._removeTimeout = setTimeout(
a(T, void 0, this._container),
200
)))
: T(this._container),
this.options.interactive &&
(z(this._container, "leaflet-interactive"),
this.removeInteractiveTarget(this._container));
},
getLatLng: function () {
return this._latlng;
},
setLatLng: function (t) {
return (
(this._latlng = w(t)),
this._map && (this._updatePosition(), this._adjustPan()),
this
);
},
getContent: function () {
return this._content;
},
setContent: function (t) {
return (this._content = t), this.update(), this;
},
getElement: function () {
return this._container;
},
update: function () {
this._map &&
((this._container.style.visibility = "hidden"),
this._updateContent(),
this._updateLayout(),
this._updatePosition(),
(this._container.style.visibility = ""),
this._adjustPan());
},
getEvents: function () {
var t = { zoom: this._updatePosition, viewreset: this._updatePosition };
return this._zoomAnimated && (t.zoomanim = this._animateZoom), t;
},
isOpen: function () {
return !!this._map && this._map.hasLayer(this);
},
bringToFront: function () {
return this._map && fe(this._container), this;
},
bringToBack: function () {
return this._map && ge(this._container), this;
},
_prepareOpen: function (t) {
if (!(i = this._source)._map) return !1;
if (i instanceof ci) {
var e,
i = null,
n = this._source._layers;
for (e in n)
if (n[e]._map) {
i = n[e];
break;
}
if (!i) return !1;
this._source = i;
}
if (!t)
if (i.getCenter) t = i.getCenter();
else if (i.getLatLng) t = i.getLatLng();
else {
if (!i.getBounds)
throw new Error("Unable to get source layer LatLng.");
t = i.getBounds().getCenter();
}
return this.setLatLng(t), this._map && this.update(), !0;
},
_updateContent: function () {
if (this._content) {
var t = this._contentNode,
e =
"function" == typeof this._content
? this._content(this._source || this)
: this._content;
if ("string" == typeof e) t.innerHTML = e;
else {
for (; t.hasChildNodes(); ) t.removeChild(t.firstChild);
t.appendChild(e);
}
this.fire("contentupdate");
}
},
_updatePosition: function () {
var t, e, i;
this._map &&
((e = this._map.latLngToLayerPoint(this._latlng)),
(t = m(this.options.offset)),
(i = this._getAnchor()),
this._zoomAnimated
? Z(this._container, e.add(i))
: (t = t.add(e).add(i)),
(e = this._containerBottom = -t.y),
(i = this._containerLeft =
-Math.round(this._containerWidth / 2) + t.x),
(this._container.style.bottom = e + "px"),
(this._container.style.left = i + "px"));
},
_getAnchor: function () {
return [0, 0];
},
}),
Bi =
(A.include({
_initOverlay: function (t, e, i, n) {
var o = e;
return (
o instanceof t || (o = new t(n).setContent(e)),
i && o.setLatLng(i),
o
);
},
}),
o.include({
_initOverlay: function (t, e, i, n) {
var o = i;
return (
o instanceof t
? (c(o, n), (o._source = this))
: (o = e && !n ? e : new t(n, this)).setContent(i),
o
);
},
}),
Ai.extend({
options: {
pane: "popupPane",
offset: [0, 7],
maxWidth: 300,
minWidth: 50,
maxHeight: null,
autoPan: !0,
autoPanPaddingTopLeft: null,
autoPanPaddingBottomRight: null,
autoPanPadding: [5, 5],
keepInView: !1,
closeButton: !0,
autoClose: !0,
closeOnEscapeKey: !0,
className: "",
},
openOn: function (t) {
return (
!(t = arguments.length ? t : this._source._map).hasLayer(this) &&
t._popup &&
t._popup.options.autoClose &&
t.removeLayer(t._popup),
(t._popup = this),
Ai.prototype.openOn.call(this, t)
);
},
onAdd: function (t) {
Ai.prototype.onAdd.call(this, t),
t.fire("popupopen", { popup: this }),
this._source &&
(this._source.fire("popupopen", { popup: this }, !0),
this._source instanceof fi || this._source.on("preclick", Ae));
},
onRemove: function (t) {
Ai.prototype.onRemove.call(this, t),
t.fire("popupclose", { popup: this }),
this._source &&
(this._source.fire("popupclose", { popup: this }, !0),
this._source instanceof fi || this._source.off("preclick", Ae));
},
getEvents: function () {
var t = Ai.prototype.getEvents.call(this);
return (
(void 0 !== this.options.closeOnClick
? this.options.closeOnClick
: this._map.options.closePopupOnClick) &&
(t.preclick = this.close),
this.options.keepInView && (t.moveend = this._adjustPan),
t
);
},
_initLayout: function () {
var t = "leaflet-popup",
e = (this._container = P(
"div",
t +
" " +
(this.options.className || "") +
" leaflet-zoom-animated"
)),
i = (this._wrapper = P("div", t + "-content-wrapper", e));
(this._contentNode = P("div", t + "-content", i)),
Ie(e),
Be(this._contentNode),
S(e, "contextmenu", Ae),
(this._tipContainer = P("div", t + "-tip-container", e)),
(this._tip = P("div", t + "-tip", this._tipContainer)),
this.options.closeButton &&
((i = this._closeButton =
P("a", t + "-close-button", e)).setAttribute("role", "button"),
i.setAttribute("aria-label", "Close popup"),
(i.href = "#close"),
(i.innerHTML = '<span aria-hidden="true">×</span>'),
S(
i,
"click",
function (t) {
O(t), this.close();
},
this
));
},
_updateLayout: function () {
var t = this._contentNode,
e = t.style,
i = ((e.width = ""), (e.whiteSpace = "nowrap"), t.offsetWidth),
i = Math.min(i, this.options.maxWidth),
i =
((i = Math.max(i, this.options.minWidth)),
(e.width = i + 1 + "px"),
(e.whiteSpace = ""),
(e.height = ""),
t.offsetHeight),
n = this.options.maxHeight,
o = "leaflet-popup-scrolled";
(n && n < i ? ((e.height = n + "px"), M) : z)(t, o),
(this._containerWidth = this._container.offsetWidth);
},
_animateZoom: function (t) {
var t = this._map._latLngToNewLayerPoint(
this._latlng,
t.zoom,
t.center
),
e = this._getAnchor();
Z(this._container, t.add(e));
},
_adjustPan: function () {
var t, e, i, n, o, s, r, a;
this.options.autoPan &&
(this._map._panAnim && this._map._panAnim.stop(),
this._autopanning
? (this._autopanning = !1)
: ((t = this._map),
(e = parseInt(pe(this._container, "marginBottom"), 10) || 0),
(e = this._container.offsetHeight + e),
(a = this._containerWidth),
(i = new p(
this._containerLeft,
-e - this._containerBottom
))._add(Pe(this._container)),
(i = t.layerPointToContainerPoint(i)),
(o = m(this.options.autoPanPadding)),
(n = m(this.options.autoPanPaddingTopLeft || o)),
(o = m(this.options.autoPanPaddingBottomRight || o)),
(s = t.getSize()),
(r = 0),
i.x + a + o.x > s.x && (r = i.x + a - s.x + o.x),
i.x - r - n.x < (a = 0) && (r = i.x - n.x),
i.y + e + o.y > s.y && (a = i.y + e - s.y + o.y),
i.y - a - n.y < 0 && (a = i.y - n.y),
(r || a) &&
(this.options.keepInView && (this._autopanning = !0),
t.fire("autopanstart").panBy([r, a]))));
},
_getAnchor: function () {
return m(
this._source && this._source._getPopupAnchor
? this._source._getPopupAnchor()
: [0, 0]
);
},
})),
Ii =
(A.mergeOptions({ closePopupOnClick: !0 }),
A.include({
openPopup: function (t, e, i) {
return this._initOverlay(Bi, t, e, i).openOn(this), this;
},
closePopup: function (t) {
return (t = arguments.length ? t : this._popup) && t.close(), this;
},
}),
o.include({
bindPopup: function (t, e) {
return (
(this._popup = this._initOverlay(Bi, this._popup, t, e)),
this._popupHandlersAdded ||
(this.on({
click: this._openPopup,
keypress: this._onKeyPress,
remove: this.closePopup,
move: this._movePopup,
}),
(this._popupHandlersAdded = !0)),
this
);
},
unbindPopup: function () {
return (
this._popup &&
(this.off({
click: this._openPopup,
keypress: this._onKeyPress,
remove: this.closePopup,
move: this._movePopup,
}),
(this._popupHandlersAdded = !1),
(this._popup = null)),
this
);
},
openPopup: function (t) {
return (
this._popup &&
(this instanceof ci || (this._popup._source = this),
this._popup._prepareOpen(t || this._latlng) &&
this._popup.openOn(this._map)),
this
);
},
closePopup: function () {
return this._popup && this._popup.close(), this;
},
togglePopup: function () {
return this._popup && this._popup.toggle(this), this;
},
isPopupOpen: function () {
return !!this._popup && this._popup.isOpen();
},
setPopupContent: function (t) {
return this._popup && this._popup.setContent(t), this;
},
getPopup: function () {
return this._popup;
},
_openPopup: function (t) {
var e;
this._popup &&
this._map &&
(Re(t),
(e = t.layer || t.target),
this._popup._source !== e || e instanceof fi
? ((this._popup._source = e), this.openPopup(t.latlng))
: this._map.hasLayer(this._popup)
? this.closePopup()
: this.openPopup(t.latlng));
},
_movePopup: function (t) {
this._popup.setLatLng(t.latlng);
},
_onKeyPress: function (t) {
13 === t.originalEvent.keyCode && this._openPopup(t);
},
}),
Ai.extend({
options: {
pane: "tooltipPane",
offset: [0, 0],
direction: "auto",
permanent: !1,
sticky: !1,
opacity: 0.9,
},
onAdd: function (t) {
Ai.prototype.onAdd.call(this, t),
this.setOpacity(this.options.opacity),
t.fire("tooltipopen", { tooltip: this }),
this._source &&
(this.addEventParent(this._source),
this._source.fire("tooltipopen", { tooltip: this }, !0));
},
onRemove: function (t) {
Ai.prototype.onRemove.call(this, t),
t.fire("tooltipclose", { tooltip: this }),
this._source &&
(this.removeEventParent(this._source),
this._source.fire("tooltipclose", { tooltip: this }, !0));
},
getEvents: function () {
var t = Ai.prototype.getEvents.call(this);
return this.options.permanent || (t.preclick = this.close), t;
},
_initLayout: function () {
var t =
"leaflet-tooltip " +
(this.options.className || "") +
" leaflet-zoom-" +
(this._zoomAnimated ? "animated" : "hide");
(this._contentNode = this._container = P("div", t)),
this._container.setAttribute("role", "tooltip"),
this._container.setAttribute("id", "leaflet-tooltip-" + h(this));
},
_updateLayout: function () {},
_adjustPan: function () {},
_setPosition: function (t) {
var e,
i = this._map,
n = this._container,
o = i.latLngToContainerPoint(i.getCenter()),
i = i.layerPointToContainerPoint(t),
s = this.options.direction,
r = n.offsetWidth,
a = n.offsetHeight,
h = m(this.options.offset),
l = this._getAnchor(),
i =
"top" === s
? ((e = r / 2), a)
: "bottom" === s
? ((e = r / 2), 0)
: ((e =
"center" === s
? r / 2
: "right" === s
? 0
: "left" === s
? r
: i.x < o.x
? ((s = "right"), 0)
: ((s = "left"), r + 2 * (h.x + l.x))),
a / 2);
(t = t.subtract(m(e, i, !0)).add(h).add(l)),
z(n, "leaflet-tooltip-right"),
z(n, "leaflet-tooltip-left"),
z(n, "leaflet-tooltip-top"),
z(n, "leaflet-tooltip-bottom"),
M(n, "leaflet-tooltip-" + s),
Z(n, t);
},
_updatePosition: function () {
var t = this._map.latLngToLayerPoint(this._latlng);
this._setPosition(t);
},
setOpacity: function (t) {
(this.options.opacity = t), this._container && C(this._container, t);
},
_animateZoom: function (t) {
t = this._map._latLngToNewLayerPoint(this._latlng, t.zoom, t.center);
this._setPosition(t);
},
_getAnchor: function () {
return m(
this._source &&
this._source._getTooltipAnchor &&
!this.options.sticky
? this._source._getTooltipAnchor()
: [0, 0]
);
},
})),
Ri =
(A.include({
openTooltip: function (t, e, i) {
return this._initOverlay(Ii, t, e, i).openOn(this), this;
},
closeTooltip: function (t) {
return t.close(), this;
},
}),
o.include({
bindTooltip: function (t, e) {
return (
this._tooltip && this.isTooltipOpen() && this.unbindTooltip(),
(this._tooltip = this._initOverlay(Ii, this._tooltip, t, e)),
this._initTooltipInteractions(),
this._tooltip.options.permanent &&
this._map &&
this._map.hasLayer(this) &&
this.openTooltip(),
this
);
},
unbindTooltip: function () {
return (
this._tooltip &&
(this._initTooltipInteractions(!0),
this.closeTooltip(),
(this._tooltip = null)),
this
);
},
_initTooltipInteractions: function (t) {
var e, i;
(!t && this._tooltipHandlersAdded) ||
((e = t ? "off" : "on"),
(i = { remove: this.closeTooltip, move: this._moveTooltip }),
this._tooltip.options.permanent
? (i.add = this._openTooltip)
: ((i.mouseover = this._openTooltip),
(i.mouseout = this.closeTooltip),
(i.click = this._openTooltip),
this._map
? this._addFocusListeners()
: (i.add = this._addFocusListeners)),
this._tooltip.options.sticky && (i.mousemove = this._moveTooltip),
this[e](i),
(this._tooltipHandlersAdded = !t));
},
openTooltip: function (t) {
return (
this._tooltip &&
(this instanceof ci || (this._tooltip._source = this),
this._tooltip._prepareOpen(t) &&
(this._tooltip.openOn(this._map),
this.getElement
? this._setAriaDescribedByOnLayer(this)
: this.eachLayer &&
this.eachLayer(this._setAriaDescribedByOnLayer, this))),
this
);
},
closeTooltip: function () {
if (this._tooltip) return this._tooltip.close();
},
toggleTooltip: function () {
return this._tooltip && this._tooltip.toggle(this), this;
},
isTooltipOpen: function () {
return this._tooltip.isOpen();
},
setTooltipContent: function (t) {
return this._tooltip && this._tooltip.setContent(t), this;
},
getTooltip: function () {
return this._tooltip;
},
_addFocusListeners: function () {
this.getElement
? this._addFocusListenersOnLayer(this)
: this.eachLayer &&
this.eachLayer(this._addFocusListenersOnLayer, this);
},
_addFocusListenersOnLayer: function (t) {
var e = "function" == typeof t.getElement && t.getElement();
e &&
(S(
e,
"focus",
function () {
(this._tooltip._source = t), this.openTooltip();
},
this
),
S(e, "blur", this.closeTooltip, this));
},
_setAriaDescribedByOnLayer: function (t) {
t = "function" == typeof t.getElement && t.getElement();
t && t.setAttribute("aria-describedby", this._tooltip._container.id);
},
_openTooltip: function (t) {
var e;
this._tooltip &&
this._map &&
(this._map.dragging &&
this._map.dragging.moving() &&
!this._openOnceFlag
? ((this._openOnceFlag = !0),
(e = this)._map.once("moveend", function () {
(e._openOnceFlag = !1), e._openTooltip(t);
}))
: ((this._tooltip._source = t.layer || t.target),
this.openTooltip(
this._tooltip.options.sticky ? t.latlng : void 0
)));
},
_moveTooltip: function (t) {
var e = t.latlng;
this._tooltip.options.sticky &&
t.originalEvent &&
((t = this._map.mouseEventToContainerPoint(t.originalEvent)),
(t = this._map.containerPointToLayerPoint(t)),
(e = this._map.layerPointToLatLng(t))),
this._tooltip.setLatLng(e);
},
}),
di.extend({
options: {
iconSize: [12, 12],
html: !1,
bgPos: null,
className: "leaflet-div-icon",
},
createIcon: function (t) {
var t = t && "DIV" === t.tagName ? t : document.createElement("div"),
e = this.options;
return (
e.html instanceof Element
? (me(t), t.appendChild(e.html))
: (t.innerHTML = !1 !== e.html ? e.html : ""),
e.bgPos &&
((e = m(e.bgPos)),
(t.style.backgroundPosition = -e.x + "px " + -e.y + "px")),
this._setIconStyles(t, "icon"),
t
);
},
createShadow: function () {
return null;
},
}));
di.Default = _i;
var Ni = o.extend({
options: {
tileSize: 256,
opacity: 1,
updateWhenIdle: b.mobile,
updateWhenZooming: !0,
updateInterval: 200,
zIndex: 1,
bounds: null,
minZoom: 0,
maxZoom: void 0,
maxNativeZoom: void 0,
minNativeZoom: void 0,
noWrap: !1,
pane: "tilePane",
className: "",
keepBuffer: 2,
},
initialize: function (t) {
c(this, t);
},
onAdd: function () {
this._initContainer(),
(this._levels = {}),
(this._tiles = {}),
this._resetView();
},
beforeAdd: function (t) {
t._addZoomLimit(this);
},
onRemove: function (t) {
this._removeAllTiles(),
T(this._container),
t._removeZoomLimit(this),
(this._container = null),
(this._tileZoom = void 0);
},
bringToFront: function () {
return (
this._map && (fe(this._container), this._setAutoZIndex(Math.max)), this
);
},
bringToBack: function () {
return (
this._map && (ge(this._container), this._setAutoZIndex(Math.min)), this
);
},
getContainer: function () {
return this._container;
},
setOpacity: function (t) {
return (this.options.opacity = t), this._updateOpacity(), this;
},
setZIndex: function (t) {
return (this.options.zIndex = t), this._updateZIndex(), this;
},
isLoading: function () {
return this._loading;
},
redraw: function () {
var t;
return (
this._map &&
(this._removeAllTiles(),
(t = this._clampZoom(this._map.getZoom())) !== this._tileZoom &&
((this._tileZoom = t), this._updateLevels()),
this._update()),
this
);
},
getEvents: function () {
var t = {
viewprereset: this._invalidateAll,
viewreset: this._resetView,
zoom: this._resetView,
moveend: this._onMoveEnd,
};
return (
this.options.updateWhenIdle ||
(this._onMove ||
(this._onMove = j(
this._onMoveEnd,
this.options.updateInterval,
this
)),
(t.move = this._onMove)),
this._zoomAnimated && (t.zoomanim = this._animateZoom),
t
);
},
createTile: function () {
return document.createElement("div");
},
getTileSize: function () {
var t = this.options.tileSize;
return t instanceof p ? t : new p(t, t);
},
_updateZIndex: function () {
this._container &&
void 0 !== this.options.zIndex &&
null !== this.options.zIndex &&
(this._container.style.zIndex = this.options.zIndex);
},
_setAutoZIndex: function (t) {
for (
var e,
i = this.getPane().children,
n = -t(-1 / 0, 1 / 0),
o = 0,
s = i.length;
o < s;
o++
)
(e = i[o].style.zIndex),
i[o] !== this._container && e && (n = t(n, +e));
isFinite(n) &&
((this.options.zIndex = n + t(-1, 1)), this._updateZIndex());
},
_updateOpacity: function () {
if (this._map && !b.ielt9) {
C(this._container, this.options.opacity);
var t,
e = +new Date(),
i = !1,
n = !1;
for (t in this._tiles) {
var o,
s = this._tiles[t];
s.current &&
s.loaded &&
((o = Math.min(1, (e - s.loaded) / 200)),
C(s.el, o),
o < 1
? (i = !0)
: (s.active ? (n = !0) : this._onOpaqueTile(s), (s.active = !0)));
}
n && !this._noPrune && this._pruneTiles(),
i &&
(r(this._fadeFrame),
(this._fadeFrame = x(this._updateOpacity, this)));
}
},
_onOpaqueTile: u,
_initContainer: function () {
this._container ||
((this._container = P(
"div",
"leaflet-layer " + (this.options.className || "")
)),
this._updateZIndex(),
this.options.opacity < 1 && this._updateOpacity(),
this.getPane().appendChild(this._container));
},
_updateLevels: function () {
var t = this._tileZoom,
e = this.options.maxZoom;
if (void 0 !== t) {
for (var i in this._levels)
(i = Number(i)),
this._levels[i].el.children.length || i === t
? ((this._levels[i].el.style.zIndex = e - Math.abs(t - i)),
this._onUpdateLevel(i))
: (T(this._levels[i].el),
this._removeTilesAtZoom(i),
this._onRemoveLevel(i),
delete this._levels[i]);
var n = this._levels[t],
o = this._map;
return (
n ||
(((n = this._levels[t] = {}).el = P(
"div",
"leaflet-tile-container leaflet-zoom-animated",
this._container
)),
(n.el.style.zIndex = e),
(n.origin = o.project(o.unproject(o.getPixelOrigin()), t).round()),
(n.zoom = t),
this._setZoomTransform(n, o.getCenter(), o.getZoom()),
u(n.el.offsetWidth),
this._onCreateLevel(n)),
(this._level = n)
);
}
},
_onUpdateLevel: u,
_onRemoveLevel: u,
_onCreateLevel: u,
_pruneTiles: function () {
if (this._map) {
var t,
e,
i,
n = this._map.getZoom();
if (n > this.options.maxZoom || n < this.options.minZoom)
this._removeAllTiles();
else {
for (t in this._tiles) (i = this._tiles[t]).retain = i.current;
for (t in this._tiles)
(i = this._tiles[t]).current &&
!i.active &&
((e = i.coords),
this._retainParent(e.x, e.y, e.z, e.z - 5) ||
this._retainChildren(e.x, e.y, e.z, e.z + 2));
for (t in this._tiles) this._tiles[t].retain || this._removeTile(t);
}
}
},
_removeTilesAtZoom: function (t) {
for (var e in this._tiles)
this._tiles[e].coords.z === t && this._removeTile(e);
},
_removeAllTiles: function () {
for (var t in this._tiles) this._removeTile(t);
},
_invalidateAll: function () {
for (var t in this._levels)
T(this._levels[t].el),
this._onRemoveLevel(Number(t)),
delete this._levels[t];
this._removeAllTiles(), (this._tileZoom = void 0);
},
_retainParent: function (t, e, i, n) {
var t = Math.floor(t / 2),
e = Math.floor(e / 2),
i = i - 1,
o = new p(+t, +e),
o = ((o.z = i), this._tileCoordsToKey(o)),
o = this._tiles[o];
return o && o.active
? (o.retain = !0)
: (o && o.loaded && (o.retain = !0),
n < i && this._retainParent(t, e, i, n));
},
_retainChildren: function (t, e, i, n) {
for (var o = 2 * t; o < 2 * t + 2; o++)
for (var s = 2 * e; s < 2 * e + 2; s++) {
var r = new p(o, s),
r = ((r.z = i + 1), this._tileCoordsToKey(r)),
r = this._tiles[r];
r && r.active
? (r.retain = !0)
: (r && r.loaded && (r.retain = !0),
i + 1 < n && this._retainChildren(o, s, i + 1, n));
}
},
_resetView: function (t) {
t = t && (t.pinch || t.flyTo);
this._setView(this._map.getCenter(), this._map.getZoom(), t, t);
},
_animateZoom: function (t) {
this._setView(t.center, t.zoom, !0, t.noUpdate);
},
_clampZoom: function (t) {
var e = this.options;
return void 0 !== e.minNativeZoom && t < e.minNativeZoom
? e.minNativeZoom
: void 0 !== e.maxNativeZoom && e.maxNativeZoom < t
? e.maxNativeZoom
: t;
},
_setView: function (t, e, i, n) {
var o = Math.round(e),
o =
(void 0 !== this.options.maxZoom && o > this.options.maxZoom) ||
(void 0 !== this.options.minZoom && o < this.options.minZoom)
? void 0
: this._clampZoom(o),
s = this.options.updateWhenZooming && o !== this._tileZoom;
(n && !s) ||
((this._tileZoom = o),
this._abortLoading && this._abortLoading(),
this._updateLevels(),
this._resetGrid(),
void 0 !== o && this._update(t),
i || this._pruneTiles(),
(this._noPrune = !!i)),
this._setZoomTransforms(t, e);
},
_setZoomTransforms: function (t, e) {
for (var i in this._levels) this._setZoomTransform(this._levels[i], t, e);
},
_setZoomTransform: function (t, e, i) {
var n = this._map.getZoomScale(i, t.zoom),
e = t.origin
.multiplyBy(n)
.subtract(this._map._getNewPixelOrigin(e, i))
.round();
b.any3d ? be(t.el, e, n) : Z(t.el, e);
},
_resetGrid: function () {
var t = this._map,
e = t.options.crs,
i = (this._tileSize = this.getTileSize()),
n = this._tileZoom,
o = this._map.getPixelWorldBounds(this._tileZoom);
o && (this._globalTileRange = this._pxBoundsToTileRange(o)),
(this._wrapX = e.wrapLng &&
!this.options.noWrap && [
Math.floor(t.project([0, e.wrapLng[0]], n).x / i.x),
Math.ceil(t.project([0, e.wrapLng[1]], n).x / i.y),
]),
(this._wrapY = e.wrapLat &&
!this.options.noWrap && [
Math.floor(t.project([e.wrapLat[0], 0], n).y / i.x),
Math.ceil(t.project([e.wrapLat[1], 0], n).y / i.y),
]);
},
_onMoveEnd: function () {
this._map && !this._map._animatingZoom && this._update();
},
_getTiledPixelBounds: function (t) {
var e = this._map,
i = e._animatingZoom
? Math.max(e._animateToZoom, e.getZoom())
: e.getZoom(),
i = e.getZoomScale(i, this._tileZoom),
t = e.project(t, this._tileZoom).floor(),
e = e.getSize().divideBy(2 * i);
return new f(t.subtract(e), t.add(e));
},
_update: function (t) {
var e = this._map;
if (e) {
var i = this._clampZoom(e.getZoom());
if ((void 0 === t && (t = e.getCenter()), void 0 !== this._tileZoom)) {
var n,
e = this._getTiledPixelBounds(t),
o = this._pxBoundsToTileRange(e),
s = o.getCenter(),
r = [],
e = this.options.keepBuffer,
a = new f(
o.getBottomLeft().subtract([e, -e]),
o.getTopRight().add([e, -e])
);
if (
!(
isFinite(o.min.x) &&
isFinite(o.min.y) &&
isFinite(o.max.x) &&
isFinite(o.max.y)
)
)
throw new Error("Attempted to load an infinite number of tiles");
for (n in this._tiles) {
var h = this._tiles[n].coords;
(h.z === this._tileZoom && a.contains(new p(h.x, h.y))) ||
(this._tiles[n].current = !1);
}
if (1 < Math.abs(i - this._tileZoom)) this._setView(t, i);
else {
for (var l = o.min.y; l <= o.max.y; l++)
for (var u = o.min.x; u <= o.max.x; u++) {
var c,
d = new p(u, l);
(d.z = this._tileZoom),
this._isValidTile(d) &&
((c = this._tiles[this._tileCoordsToKey(d)])
? (c.current = !0)
: r.push(d));
}
if (
(r.sort(function (t, e) {
return t.distanceTo(s) - e.distanceTo(s);
}),
0 !== r.length)
) {
this._loading || ((this._loading = !0), this.fire("loading"));
for (
var _ = document.createDocumentFragment(), u = 0;
u < r.length;
u++
)
this._addTile(r[u], _);
this._level.el.appendChild(_);
}
}
}
}
},
_isValidTile: function (t) {
var e = this._map.options.crs;
if (!e.infinite) {
var i = this._globalTileRange;
if (
(!e.wrapLng && (t.x < i.min.x || t.x > i.max.x)) ||
(!e.wrapLat && (t.y < i.min.y || t.y > i.max.y))
)
return !1;
}
return (
!this.options.bounds ||
((e = this._tileCoordsToBounds(t)), g(this.options.bounds).overlaps(e))
);
},
_keyToBounds: function (t) {
return this._tileCoordsToBounds(this._keyToTileCoords(t));
},
_tileCoordsToNwSe: function (t) {
var e = this._map,
i = this.getTileSize(),
n = t.scaleBy(i),
i = n.add(i);
return [e.unproject(n, t.z), e.unproject(i, t.z)];
},
_tileCoordsToBounds: function (t) {
(t = this._tileCoordsToNwSe(t)), (t = new s(t[0], t[1]));
return (t = this.options.noWrap ? t : this._map.wrapLatLngBounds(t));
},
_tileCoordsToKey: function (t) {
return t.x + ":" + t.y + ":" + t.z;
},
_keyToTileCoords: function (t) {
var t = t.split(":"),
e = new p(+t[0], +t[1]);
return (e.z = +t[2]), e;
},
_removeTile: function (t) {
var e = this._tiles[t];
e &&
(T(e.el),
delete this._tiles[t],
this.fire("tileunload", {
tile: e.el,
coords: this._keyToTileCoords(t),
}));
},
_initTile: function (t) {
M(t, "leaflet-tile");
var e = this.getTileSize();
(t.style.width = e.x + "px"),
(t.style.height = e.y + "px"),
(t.onselectstart = u),
(t.onmousemove = u),
b.ielt9 && this.options.opacity < 1 && C(t, this.options.opacity);
},
_addTile: function (t, e) {
var i = this._getTilePos(t),
n = this._tileCoordsToKey(t),
o = this.createTile(this._wrapCoords(t), a(this._tileReady, this, t));
this._initTile(o),
this.createTile.length < 2 && x(a(this._tileReady, this, t, null, o)),
Z(o, i),
(this._tiles[n] = { el: o, coords: t, current: !0 }),
e.appendChild(o),
this.fire("tileloadstart", { tile: o, coords: t });
},
_tileReady: function (t, e, i) {
e && this.fire("tileerror", { error: e, tile: i, coords: t });
var n = this._tileCoordsToKey(t);
(i = this._tiles[n]) &&
((i.loaded = +new Date()),
this._map._fadeAnimated
? (C(i.el, 0),
r(this._fadeFrame),
(this._fadeFrame = x(this._updateOpacity, this)))
: ((i.active = !0), this._pruneTiles()),
e ||
(M(i.el, "leaflet-tile-loaded"),
this.fire("tileload", { tile: i.el, coords: t })),
this._noTilesToLoad() &&
((this._loading = !1),
this.fire("load"),
b.ielt9 || !this._map._fadeAnimated
? x(this._pruneTiles, this)
: setTimeout(a(this._pruneTiles, this), 250)));
},
_getTilePos: function (t) {
return t.scaleBy(this.getTileSize()).subtract(this._level.origin);
},
_wrapCoords: function (t) {
var e = new p(
this._wrapX ? H(t.x, this._wrapX) : t.x,
this._wrapY ? H(t.y, this._wrapY) : t.y
);
return (e.z = t.z), e;
},
_pxBoundsToTileRange: function (t) {
var e = this.getTileSize();
return new f(
t.min.unscaleBy(e).floor(),
t.max.unscaleBy(e).ceil().subtract([1, 1])
);
},
_noTilesToLoad: function () {
for (var t in this._tiles) if (!this._tiles[t].loaded) return !1;
return !0;
},
});
var Di = Ni.extend({
options: {
minZoom: 0,
maxZoom: 18,
subdomains: "abc",
errorTileUrl: "",
zoomOffset: 0,
tms: !1,
zoomReverse: !1,
detectRetina: !1,
crossOrigin: !1,
referrerPolicy: !1,
},
initialize: function (t, e) {
(this._url = t),
(e = c(this, e)).detectRetina && b.retina && 0 < e.maxZoom
? ((e.tileSize = Math.floor(e.tileSize / 2)),
e.zoomReverse
? (e.zoomOffset--,
(e.minZoom = Math.min(e.maxZoom, e.minZoom + 1)))
: (e.zoomOffset++,
(e.maxZoom = Math.max(e.minZoom, e.maxZoom - 1))),
(e.minZoom = Math.max(0, e.minZoom)))
: e.zoomReverse
? (e.minZoom = Math.min(e.maxZoom, e.minZoom))
: (e.maxZoom = Math.max(e.minZoom, e.maxZoom)),
"string" == typeof e.subdomains &&
(e.subdomains = e.subdomains.split("")),
this.on("tileunload", this._onTileRemove);
},
setUrl: function (t, e) {
return (
this._url === t && void 0 === e && (e = !0),
(this._url = t),
e || this.redraw(),
this
);
},
createTile: function (t, e) {
var i = document.createElement("img");
return (
S(i, "load", a(this._tileOnLoad, this, e, i)),
S(i, "error", a(this._tileOnError, this, e, i)),
(!this.options.crossOrigin && "" !== this.options.crossOrigin) ||
(i.crossOrigin =
!0 === this.options.crossOrigin ? "" : this.options.crossOrigin),
"string" == typeof this.options.referrerPolicy &&
(i.referrerPolicy = this.options.referrerPolicy),
(i.alt = ""),
(i.src = this.getTileUrl(t)),
i
);
},
getTileUrl: function (t) {
var e = {
r: b.retina ? "@2x" : "",
s: this._getSubdomain(t),
x: t.x,
y: t.y,
z: this._getZoomForUrl(),
};
return (
this._map &&
!this._map.options.crs.infinite &&
((t = this._globalTileRange.max.y - t.y),
this.options.tms && (e.y = t),
(e["-y"] = t)),
q(this._url, l(e, this.options))
);
},
_tileOnLoad: function (t, e) {
b.ielt9 ? setTimeout(a(t, this, null, e), 0) : t(null, e);
},
_tileOnError: function (t, e, i) {
var n = this.options.errorTileUrl;
n && e.getAttribute("src") !== n && (e.src = n), t(i, e);
},
_onTileRemove: function (t) {
t.tile.onload = null;
},
_getZoomForUrl: function () {
var t = this._tileZoom,
e = this.options.maxZoom;
return (
(t = this.options.zoomReverse ? e - t : t) + this.options.zoomOffset
);
},
_getSubdomain: function (t) {
t = Math.abs(t.x + t.y) % this.options.subdomains.length;
return this.options.subdomains[t];
},
_abortLoading: function () {
var t, e, i;
for (t in this._tiles)
this._tiles[t].coords.z !== this._tileZoom &&
(((i = this._tiles[t].el).onload = u),
(i.onerror = u),
i.complete ||
((i.src = K),
(e = this._tiles[t].coords),
T(i),
delete this._tiles[t],
this.fire("tileabort", { tile: i, coords: e })));
},
_removeTile: function (t) {
var e = this._tiles[t];
if (e)
return (
e.el.setAttribute("src", K), Ni.prototype._removeTile.call(this, t)
);
},
_tileReady: function (t, e, i) {
if (this._map && (!i || i.getAttribute("src") !== K))
return Ni.prototype._tileReady.call(this, t, e, i);
},
});
function ji(t, e) {
return new Di(t, e);
}
var Hi = Di.extend({
defaultWmsParams: {
service: "WMS",
request: "GetMap",
layers: "",
styles: "",
format: "image/jpeg",
transparent: !1,
version: "1.1.1",
},
options: { crs: null, uppercase: !1 },
initialize: function (t, e) {
this._url = t;
var i,
n = l({}, this.defaultWmsParams);
for (i in e) i in this.options || (n[i] = e[i]);
var t = (e = c(this, e)).detectRetina && b.retina ? 2 : 1,
o = this.getTileSize();
(n.width = o.x * t), (n.height = o.y * t), (this.wmsParams = n);
},
onAdd: function (t) {
(this._crs = this.options.crs || t.options.crs),
(this._wmsVersion = parseFloat(this.wmsParams.version));
var e = 1.3 <= this._wmsVersion ? "crs" : "srs";
(this.wmsParams[e] = this._crs.code), Di.prototype.onAdd.call(this, t);
},
getTileUrl: function (t) {
var e = this._tileCoordsToNwSe(t),
i = this._crs,
i = _(i.project(e[0]), i.project(e[1])),
e = i.min,
i = i.max,
e = (
1.3 <= this._wmsVersion && this._crs === li
? [e.y, e.x, i.y, i.x]
: [e.x, e.y, i.x, i.y]
).join(","),
i = Di.prototype.getTileUrl.call(this, t);
return (
i +
U(this.wmsParams, i, this.options.uppercase) +
(this.options.uppercase ? "&BBOX=" : "&bbox=") +
e
);
},
setParams: function (t, e) {
return l(this.wmsParams, t), e || this.redraw(), this;
},
});
(Di.WMS = Hi),
(ji.wms = function (t, e) {
return new Hi(t, e);
});
var Wi = o.extend({
options: { padding: 0.1 },
initialize: function (t) {
c(this, t), h(this), (this._layers = this._layers || {});
},
onAdd: function () {
this._container ||
(this._initContainer(), M(this._container, "leaflet-zoom-animated")),
this.getPane().appendChild(this._container),
this._update(),
this.on("update", this._updatePaths, this);
},
onRemove: function () {
this.off("update", this._updatePaths, this), this._destroyContainer();
},
getEvents: function () {
var t = {
viewreset: this._reset,
zoom: this._onZoom,
moveend: this._update,
zoomend: this._onZoomEnd,
};
return this._zoomAnimated && (t.zoomanim = this._onAnimZoom), t;
},
_onAnimZoom: function (t) {
this._updateTransform(t.center, t.zoom);
},
_onZoom: function () {
this._updateTransform(this._map.getCenter(), this._map.getZoom());
},
_updateTransform: function (t, e) {
var i = this._map.getZoomScale(e, this._zoom),
n = this._map.getSize().multiplyBy(0.5 + this.options.padding),
o = this._map.project(this._center, e),
n = n
.multiplyBy(-i)
.add(o)
.subtract(this._map._getNewPixelOrigin(t, e));
b.any3d ? be(this._container, n, i) : Z(this._container, n);
},
_reset: function () {
for (var t in (this._update(),
this._updateTransform(this._center, this._zoom),
this._layers))
this._layers[t]._reset();
},
_onZoomEnd: function () {
for (var t in this._layers) this._layers[t]._project();
},
_updatePaths: function () {
for (var t in this._layers) this._layers[t]._update();
},
_update: function () {
var t = this.options.padding,
e = this._map.getSize(),
i = this._map.containerPointToLayerPoint(e.multiplyBy(-t)).round();
(this._bounds = new f(i, i.add(e.multiplyBy(1 + 2 * t)).round())),
(this._center = this._map.getCenter()),
(this._zoom = this._map.getZoom());
},
}),
Fi = Wi.extend({
options: { tolerance: 0 },
getEvents: function () {
var t = Wi.prototype.getEvents.call(this);
return (t.viewprereset = this._onViewPreReset), t;
},
_onViewPreReset: function () {
this._postponeUpdatePaths = !0;
},
onAdd: function () {
Wi.prototype.onAdd.call(this), this._draw();
},
_initContainer: function () {
var t = (this._container = document.createElement("canvas"));
S(t, "mousemove", this._onMouseMove, this),
S(
t,
"click dblclick mousedown mouseup contextmenu",
this._onClick,
this
),
S(t, "mouseout", this._handleMouseOut, this),
(t._leaflet_disable_events = !0),
(this._ctx = t.getContext("2d"));
},
_destroyContainer: function () {
r(this._redrawRequest),
delete this._ctx,
T(this._container),
k(this._container),
delete this._container;
},
_updatePaths: function () {
if (!this._postponeUpdatePaths) {
for (var t in ((this._redrawBounds = null), this._layers))
this._layers[t]._update();
this._redraw();
}
},
_update: function () {
var t, e, i, n;
(this._map._animatingZoom && this._bounds) ||
(Wi.prototype._update.call(this),
(t = this._bounds),
(e = this._container),
(i = t.getSize()),
(n = b.retina ? 2 : 1),
Z(e, t.min),
(e.width = n * i.x),
(e.height = n * i.y),
(e.style.width = i.x + "px"),
(e.style.height = i.y + "px"),
b.retina && this._ctx.scale(2, 2),
this._ctx.translate(-t.min.x, -t.min.y),
this.fire("update"));
},
_reset: function () {
Wi.prototype._reset.call(this),
this._postponeUpdatePaths &&
((this._postponeUpdatePaths = !1), this._updatePaths());
},
_initPath: function (t) {
this._updateDashArray(t);
t = (this._layers[h(t)] = t)._order = {
layer: t,
prev: this._drawLast,
next: null,
};
this._drawLast && (this._drawLast.next = t),
(this._drawLast = t),
(this._drawFirst = this._drawFirst || this._drawLast);
},
_addPath: function (t) {
this._requestRedraw(t);
},
_removePath: function (t) {
var e = t._order,
i = e.next,
e = e.prev;
i ? (i.prev = e) : (this._drawLast = e),
e ? (e.next = i) : (this._drawFirst = i),
delete t._order,
delete this._layers[h(t)],
this._requestRedraw(t);
},
_updatePath: function (t) {
this._extendRedrawBounds(t),
t._project(),
t._update(),
this._requestRedraw(t);
},
_updateStyle: function (t) {
this._updateDashArray(t), this._requestRedraw(t);
},
_updateDashArray: function (t) {
if ("string" == typeof t.options.dashArray) {
for (
var e, i = t.options.dashArray.split(/[, ]+/), n = [], o = 0;
o < i.length;
o++
) {
if (((e = Number(i[o])), isNaN(e))) return;
n.push(e);
}
t.options._dashArray = n;
} else t.options._dashArray = t.options.dashArray;
},
_requestRedraw: function (t) {
this._map &&
(this._extendRedrawBounds(t),
(this._redrawRequest = this._redrawRequest || x(this._redraw, this)));
},
_extendRedrawBounds: function (t) {
var e;
t._pxBounds &&
((e = (t.options.weight || 0) + 1),
(this._redrawBounds = this._redrawBounds || new f()),
this._redrawBounds.extend(t._pxBounds.min.subtract([e, e])),
this._redrawBounds.extend(t._pxBounds.max.add([e, e])));
},
_redraw: function () {
(this._redrawRequest = null),
this._redrawBounds &&
(this._redrawBounds.min._floor(), this._redrawBounds.max._ceil()),
this._clear(),
this._draw(),
(this._redrawBounds = null);
},
_clear: function () {
var t,
e = this._redrawBounds;
e
? ((t = e.getSize()), this._ctx.clearRect(e.min.x, e.min.y, t.x, t.y))
: (this._ctx.save(),
this._ctx.setTransform(1, 0, 0, 1, 0, 0),
this._ctx.clearRect(
0,
0,
this._container.width,
this._container.height
),
this._ctx.restore());
},
_draw: function () {
var t,
e,
i = this._redrawBounds;
this._ctx.save(),
i &&
((e = i.getSize()),
this._ctx.beginPath(),
this._ctx.rect(i.min.x, i.min.y, e.x, e.y),
this._ctx.clip()),
(this._drawing = !0);
for (var n = this._drawFirst; n; n = n.next)
(t = n.layer),
(!i || (t._pxBounds && t._pxBounds.intersects(i))) &&
t._updatePath();
(this._drawing = !1), this._ctx.restore();
},
_updatePoly: function (t, e) {
if (this._drawing) {
var i,
n,
o,
s,
r = t._parts,
a = r.length,
h = this._ctx;
if (a) {
for (h.beginPath(), i = 0; i < a; i++) {
for (n = 0, o = r[i].length; n < o; n++)
(s = r[i][n]), h[n ? "lineTo" : "moveTo"](s.x, s.y);
e && h.closePath();
}
this._fillStroke(h, t);
}
}
},
_updateCircle: function (t) {
var e, i, n, o;
this._drawing &&
!t._empty() &&
((e = t._point),
(i = this._ctx),
(n = Math.max(Math.round(t._radius), 1)),
1 != (o = (Math.max(Math.round(t._radiusY), 1) || n) / n) &&
(i.save(), i.scale(1, o)),
i.beginPath(),
i.arc(e.x, e.y / o, n, 0, 2 * Math.PI, !1),
1 != o && i.restore(),
this._fillStroke(i, t));
},
_fillStroke: function (t, e) {
var i = e.options;
i.fill &&
((t.globalAlpha = i.fillOpacity),
(t.fillStyle = i.fillColor || i.color),
t.fill(i.fillRule || "evenodd")),
i.stroke &&
0 !== i.weight &&
(t.setLineDash &&
t.setLineDash((e.options && e.options._dashArray) || []),
(t.globalAlpha = i.opacity),
(t.lineWidth = i.weight),
(t.strokeStyle = i.color),
(t.lineCap = i.lineCap),
(t.lineJoin = i.lineJoin),
t.stroke());
},
_onClick: function (t) {
for (
var e,
i,
n = this._map.mouseEventToLayerPoint(t),
o = this._drawFirst;
o;
o = o.next
)
(e = o.layer).options.interactive &&
e._containsPoint(n) &&
((("click" === t.type || "preclick" === t.type) &&
this._map._draggableMoved(e)) ||
(i = e));
this._fireEvent(!!i && [i], t);
},
_onMouseMove: function (t) {
var e;
!this._map ||
this._map.dragging.moving() ||
this._map._animatingZoom ||
((e = this._map.mouseEventToLayerPoint(t)),
this._handleMouseHover(t, e));
},
_handleMouseOut: function (t) {
var e = this._hoveredLayer;
e &&
(z(this._container, "leaflet-interactive"),
this._fireEvent([e], t, "mouseout"),
(this._hoveredLayer = null),
(this._mouseHoverThrottled = !1));
},
_handleMouseHover: function (t, e) {
if (!this._mouseHoverThrottled) {
for (var i, n, o = this._drawFirst; o; o = o.next)
(i = o.layer).options.interactive && i._containsPoint(e) && (n = i);
n !== this._hoveredLayer &&
(this._handleMouseOut(t),
n &&
(M(this._container, "leaflet-interactive"),
this._fireEvent([n], t, "mouseover"),
(this._hoveredLayer = n))),
this._fireEvent(!!this._hoveredLayer && [this._hoveredLayer], t),
(this._mouseHoverThrottled = !0),
setTimeout(
a(function () {
this._mouseHoverThrottled = !1;
}, this),
32
);
}
},
_fireEvent: function (t, e, i) {
this._map._fireDOMEvent(e, i || e.type, t);
},
_bringToFront: function (t) {
var e,
i,
n = t._order;
n &&
((e = n.next),
(i = n.prev),
e &&
((e.prev = i) ? (i.next = e) : e && (this._drawFirst = e),
(n.prev = this._drawLast),
((this._drawLast.next = n).next = null),
(this._drawLast = n),
this._requestRedraw(t)));
},
_bringToBack: function (t) {
var e,
i,
n = t._order;
n &&
((e = n.next),
(i = n.prev) &&
((i.next = e) ? (e.prev = i) : i && (this._drawLast = i),
(n.prev = null),
(n.next = this._drawFirst),
(this._drawFirst.prev = n),
(this._drawFirst = n),
this._requestRedraw(t)));
},
});
function Ui(t) {
return b.canvas ? new Fi(t) : null;
}
var Vi = (function () {
try {
return (
document.namespaces.add("lvml", "urn:schemas-microsoft-com:vml"),
function (t) {
return document.createElement("<lvml:" + t + ' class="lvml">');
}
);
} catch (t) {}
return function (t) {
return document.createElement(
"<" + t + ' xmlns="urn:schemas-microsoft.com:vml" class="lvml">'
);
};
})(),
zt = {
_initContainer: function () {
this._container = P("div", "leaflet-vml-container");
},
_update: function () {
this._map._animatingZoom ||
(Wi.prototype._update.call(this), this.fire("update"));
},
_initPath: function (t) {
var e = (t._container = Vi("shape"));
M(e, "leaflet-vml-shape " + (this.options.className || "")),
(e.coordsize = "1 1"),
(t._path = Vi("path")),
e.appendChild(t._path),
this._updateStyle(t),
(this._layers[h(t)] = t);
},
_addPath: function (t) {
var e = t._container;
this._container.appendChild(e),
t.options.interactive && t.addInteractiveTarget(e);
},
_removePath: function (t) {
var e = t._container;
T(e), t.removeInteractiveTarget(e), delete this._layers[h(t)];
},
_updateStyle: function (t) {
var e = t._stroke,
i = t._fill,
n = t.options,
o = t._container;
(o.stroked = !!n.stroke),
(o.filled = !!n.fill),
n.stroke
? ((e = e || (t._stroke = Vi("stroke"))),
o.appendChild(e),
(e.weight = n.weight + "px"),
(e.color = n.color),
(e.opacity = n.opacity),
n.dashArray
? (e.dashStyle = d(n.dashArray)
? n.dashArray.join(" ")
: n.dashArray.replace(/( *, *)/g, " "))
: (e.dashStyle = ""),
(e.endcap = n.lineCap.replace("butt", "flat")),
(e.joinstyle = n.lineJoin))
: e && (o.removeChild(e), (t._stroke = null)),
n.fill
? ((i = i || (t._fill = Vi("fill"))),
o.appendChild(i),
(i.color = n.fillColor || n.color),
(i.opacity = n.fillOpacity))
: i && (o.removeChild(i), (t._fill = null));
},
_updateCircle: function (t) {
var e = t._point.round(),
i = Math.round(t._radius),
n = Math.round(t._radiusY || i);
this._setPath(
t,
t._empty()
? "M0 0"
: "AL " + e.x + "," + e.y + " " + i + "," + n + " 0,23592600"
);
},
_setPath: function (t, e) {
t._path.v = e;
},
_bringToFront: function (t) {
fe(t._container);
},
_bringToBack: function (t) {
ge(t._container);
},
},
qi = b.vml ? Vi : ct,
Gi = Wi.extend({
_initContainer: function () {
(this._container = qi("svg")),
this._container.setAttribute("pointer-events", "none"),
(this._rootGroup = qi("g")),
this._container.appendChild(this._rootGroup);
},
_destroyContainer: function () {
T(this._container),
k(this._container),
delete this._container,
delete this._rootGroup,
delete this._svgSize;
},
_update: function () {
var t, e, i;
(this._map._animatingZoom && this._bounds) ||
(Wi.prototype._update.call(this),
(e = (t = this._bounds).getSize()),
(i = this._container),
(this._svgSize && this._svgSize.equals(e)) ||
((this._svgSize = e),
i.setAttribute("width", e.x),
i.setAttribute("height", e.y)),
Z(i, t.min),
i.setAttribute("viewBox", [t.min.x, t.min.y, e.x, e.y].join(" ")),
this.fire("update"));
},
_initPath: function (t) {
var e = (t._path = qi("path"));
t.options.className && M(e, t.options.className),
t.options.interactive && M(e, "leaflet-interactive"),
this._updateStyle(t),
(this._layers[h(t)] = t);
},
_addPath: function (t) {
this._rootGroup || this._initContainer(),
this._rootGroup.appendChild(t._path),
t.addInteractiveTarget(t._path);
},
_removePath: function (t) {
T(t._path),
t.removeInteractiveTarget(t._path),
delete this._layers[h(t)];
},
_updatePath: function (t) {
t._project(), t._update();
},
_updateStyle: function (t) {
var e = t._path,
t = t.options;
e &&
(t.stroke
? (e.setAttribute("stroke", t.color),
e.setAttribute("stroke-opacity", t.opacity),
e.setAttribute("stroke-width", t.weight),
e.setAttribute("stroke-linecap", t.lineCap),
e.setAttribute("stroke-linejoin", t.lineJoin),
t.dashArray
? e.setAttribute("stroke-dasharray", t.dashArray)
: e.removeAttribute("stroke-dasharray"),
t.dashOffset
? e.setAttribute("stroke-dashoffset", t.dashOffset)
: e.removeAttribute("stroke-dashoffset"))
: e.setAttribute("stroke", "none"),
t.fill
? (e.setAttribute("fill", t.fillColor || t.color),
e.setAttribute("fill-opacity", t.fillOpacity),
e.setAttribute("fill-rule", t.fillRule || "evenodd"))
: e.setAttribute("fill", "none"));
},
_updatePoly: function (t, e) {
this._setPath(t, dt(t._parts, e));
},
_updateCircle: function (t) {
var e = t._point,
i = Math.max(Math.round(t._radius), 1),
n =
"a" +
i +
"," +
(Math.max(Math.round(t._radiusY), 1) || i) +
" 0 1,0 ",
e = t._empty()
? "M0 0"
: "M" +
(e.x - i) +
"," +
e.y +
n +
2 * i +
",0 " +
n +
2 * -i +
",0 ";
this._setPath(t, e);
},
_setPath: function (t, e) {
t._path.setAttribute("d", e);
},
_bringToFront: function (t) {
fe(t._path);
},
_bringToBack: function (t) {
ge(t._path);
},
});
function Ki(t) {
return b.svg || b.vml ? new Gi(t) : null;
}
b.vml && Gi.include(zt),
A.include({
getRenderer: function (t) {
t =
(t =
t.options.renderer ||
this._getPaneRenderer(t.options.pane) ||
this.options.renderer ||
this._renderer) || (this._renderer = this._createRenderer());
return this.hasLayer(t) || this.addLayer(t), t;
},
_getPaneRenderer: function (t) {
var e;
return (
"overlayPane" !== t &&
void 0 !== t &&
(void 0 === (e = this._paneRenderers[t]) &&
((e = this._createRenderer({ pane: t })),
(this._paneRenderers[t] = e)),
e)
);
},
_createRenderer: function (t) {
return (this.options.preferCanvas && Ui(t)) || Ki(t);
},
});
var Yi = xi.extend({
initialize: function (t, e) {
xi.prototype.initialize.call(this, this._boundsToLatLngs(t), e);
},
setBounds: function (t) {
return this.setLatLngs(this._boundsToLatLngs(t));
},
_boundsToLatLngs: function (t) {
return [
(t = g(t)).getSouthWest(),
t.getNorthWest(),
t.getNorthEast(),
t.getSouthEast(),
];
},
});
(Gi.create = qi),
(Gi.pointsToPath = dt),
(wi.geometryToLayer = bi),
(wi.coordsToLatLng = Li),
(wi.coordsToLatLngs = Ti),
(wi.latLngToCoords = Mi),
(wi.latLngsToCoords = zi),
(wi.getFeature = Ci),
(wi.asFeature = Zi),
A.mergeOptions({ boxZoom: !0 });
var _t = n.extend({
initialize: function (t) {
(this._map = t),
(this._container = t._container),
(this._pane = t._panes.overlayPane),
(this._resetStateTimeout = 0),
t.on("unload", this._destroy, this);
},
addHooks: function () {
S(this._container, "mousedown", this._onMouseDown, this);
},
removeHooks: function () {
k(this._container, "mousedown", this._onMouseDown, this);
},
moved: function () {
return this._moved;
},
_destroy: function () {
T(this._pane), delete this._pane;
},
_resetState: function () {
(this._resetStateTimeout = 0), (this._moved = !1);
},
_clearDeferredResetState: function () {
0 !== this._resetStateTimeout &&
(clearTimeout(this._resetStateTimeout),
(this._resetStateTimeout = 0));
},
_onMouseDown: function (t) {
if (!t.shiftKey || (1 !== t.which && 1 !== t.button)) return !1;
this._clearDeferredResetState(),
this._resetState(),
re(),
Le(),
(this._startPoint = this._map.mouseEventToContainerPoint(t)),
S(
document,
{
contextmenu: Re,
mousemove: this._onMouseMove,
mouseup: this._onMouseUp,
keydown: this._onKeyDown,
},
this
);
},
_onMouseMove: function (t) {
this._moved ||
((this._moved = !0),
(this._box = P("div", "leaflet-zoom-box", this._container)),
M(this._container, "leaflet-crosshair"),
this._map.fire("boxzoomstart")),
(this._point = this._map.mouseEventToContainerPoint(t));
var t = new f(this._point, this._startPoint),
e = t.getSize();
Z(this._box, t.min),
(this._box.style.width = e.x + "px"),
(this._box.style.height = e.y + "px");
},
_finish: function () {
this._moved && (T(this._box), z(this._container, "leaflet-crosshair")),
ae(),
Te(),
k(
document,
{
contextmenu: Re,
mousemove: this._onMouseMove,
mouseup: this._onMouseUp,
keydown: this._onKeyDown,
},
this
);
},
_onMouseUp: function (t) {
(1 !== t.which && 1 !== t.button) ||
(this._finish(),
this._moved &&
(this._clearDeferredResetState(),
(this._resetStateTimeout = setTimeout(
a(this._resetState, this),
0
)),
(t = new s(
this._map.containerPointToLatLng(this._startPoint),
this._map.containerPointToLatLng(this._point)
)),
this._map.fitBounds(t).fire("boxzoomend", { boxZoomBounds: t })));
},
_onKeyDown: function (t) {
27 === t.keyCode &&
(this._finish(), this._clearDeferredResetState(), this._resetState());
},
}),
Ct =
(A.addInitHook("addHandler", "boxZoom", _t),
A.mergeOptions({ doubleClickZoom: !0 }),
n.extend({
addHooks: function () {
this._map.on("dblclick", this._onDoubleClick, this);
},
removeHooks: function () {
this._map.off("dblclick", this._onDoubleClick, this);
},
_onDoubleClick: function (t) {
var e = this._map,
i = e.getZoom(),
n = e.options.zoomDelta,
i = t.originalEvent.shiftKey ? i - n : i + n;
"center" === e.options.doubleClickZoom
? e.setZoom(i)
: e.setZoomAround(t.containerPoint, i);
},
})),
Zt =
(A.addInitHook("addHandler", "doubleClickZoom", Ct),
A.mergeOptions({
dragging: !0,
inertia: !0,
inertiaDeceleration: 3400,
inertiaMaxSpeed: 1 / 0,
easeLinearity: 0.2,
worldCopyJump: !1,
maxBoundsViscosity: 0,
}),
n.extend({
addHooks: function () {
var t;
this._draggable ||
((t = this._map),
(this._draggable = new Xe(t._mapPane, t._container)),
this._draggable.on(
{
dragstart: this._onDragStart,
drag: this._onDrag,
dragend: this._onDragEnd,
},
this
),
this._draggable.on("predrag", this._onPreDragLimit, this),
t.options.worldCopyJump &&
(this._draggable.on("predrag", this._onPreDragWrap, this),
t.on("zoomend", this._onZoomEnd, this),
t.whenReady(this._onZoomEnd, this))),
M(this._map._container, "leaflet-grab leaflet-touch-drag"),
this._draggable.enable(),
(this._positions = []),
(this._times = []);
},
removeHooks: function () {
z(this._map._container, "leaflet-grab"),
z(this._map._container, "leaflet-touch-drag"),
this._draggable.disable();
},
moved: function () {
return this._draggable && this._draggable._moved;
},
moving: function () {
return this._draggable && this._draggable._moving;
},
_onDragStart: function () {
var t,
e = this._map;
e._stop(),
this._map.options.maxBounds && this._map.options.maxBoundsViscosity
? ((t = g(this._map.options.maxBounds)),
(this._offsetLimit = _(
this._map
.latLngToContainerPoint(t.getNorthWest())
.multiplyBy(-1),
this._map
.latLngToContainerPoint(t.getSouthEast())
.multiplyBy(-1)
.add(this._map.getSize())
)),
(this._viscosity = Math.min(
1,
Math.max(0, this._map.options.maxBoundsViscosity)
)))
: (this._offsetLimit = null),
e.fire("movestart").fire("dragstart"),
e.options.inertia && ((this._positions = []), (this._times = []));
},
_onDrag: function (t) {
var e, i;
this._map.options.inertia &&
((e = this._lastTime = +new Date()),
(i = this._lastPos =
this._draggable._absPos || this._draggable._newPos),
this._positions.push(i),
this._times.push(e),
this._prunePositions(e)),
this._map.fire("move", t).fire("drag", t);
},
_prunePositions: function (t) {
for (; 1 < this._positions.length && 50 < t - this._times[0]; )
this._positions.shift(), this._times.shift();
},
_onZoomEnd: function () {
var t = this._map.getSize().divideBy(2),
e = this._map.latLngToLayerPoint([0, 0]);
(this._initialWorldOffset = e.subtract(t).x),
(this._worldWidth = this._map.getPixelWorldBounds().getSize().x);
},
_viscousLimit: function (t, e) {
return t - (t - e) * this._viscosity;
},
_onPreDragLimit: function () {
var t, e;
this._viscosity &&
this._offsetLimit &&
((t = this._draggable._newPos.subtract(this._draggable._startPos)),
(e = this._offsetLimit),
t.x < e.min.x && (t.x = this._viscousLimit(t.x, e.min.x)),
t.y < e.min.y && (t.y = this._viscousLimit(t.y, e.min.y)),
t.x > e.max.x && (t.x = this._viscousLimit(t.x, e.max.x)),
t.y > e.max.y && (t.y = this._viscousLimit(t.y, e.max.y)),
(this._draggable._newPos = this._draggable._startPos.add(t)));
},
_onPreDragWrap: function () {
var t = this._worldWidth,
e = Math.round(t / 2),
i = this._initialWorldOffset,
n = this._draggable._newPos.x,
o = ((n - e + i) % t) + e - i,
n = ((n + e + i) % t) - e - i,
t = Math.abs(o + i) < Math.abs(n + i) ? o : n;
(this._draggable._absPos = this._draggable._newPos.clone()),
(this._draggable._newPos.x = t);
},
_onDragEnd: function (t) {
var e,
i,
n,
o,
s = this._map,
r = s.options,
a = !r.inertia || t.noInertia || this._times.length < 2;
s.fire("dragend", t),
!a &&
(this._prunePositions(+new Date()),
(t = this._lastPos.subtract(this._positions[0])),
(a = (this._lastTime - this._times[0]) / 1e3),
(e = r.easeLinearity),
(a = (t = t.multiplyBy(e / a)).distanceTo([0, 0])),
(i = Math.min(r.inertiaMaxSpeed, a)),
(t = t.multiplyBy(i / a)),
(n = i / (r.inertiaDeceleration * e)),
(o = t.multiplyBy(-n / 2).round()).x || o.y)
? ((o = s._limitOffset(o, s.options.maxBounds)),
x(function () {
s.panBy(o, {
duration: n,
easeLinearity: e,
noMoveStart: !0,
animate: !0,
});
}))
: s.fire("moveend");
},
})),
St =
(A.addInitHook("addHandler", "dragging", Zt),
A.mergeOptions({ keyboard: !0, keyboardPanDelta: 80 }),
n.extend({
keyCodes: {
left: [37],
right: [39],
down: [40],
up: [38],
zoomIn: [187, 107, 61, 171],
zoomOut: [189, 109, 54, 173],
},
initialize: function (t) {
(this._map = t),
this._setPanDelta(t.options.keyboardPanDelta),
this._setZoomDelta(t.options.zoomDelta);
},
addHooks: function () {
var t = this._map._container;
t.tabIndex <= 0 && (t.tabIndex = "0"),
S(
t,
{
focus: this._onFocus,
blur: this._onBlur,
mousedown: this._onMouseDown,
},
this
),
this._map.on(
{ focus: this._addHooks, blur: this._removeHooks },
this
);
},
removeHooks: function () {
this._removeHooks(),
k(
this._map._container,
{
focus: this._onFocus,
blur: this._onBlur,
mousedown: this._onMouseDown,
},
this
),
this._map.off(
{ focus: this._addHooks, blur: this._removeHooks },
this
);
},
_onMouseDown: function () {
var t, e, i;
this._focused ||
((i = document.body),
(t = document.documentElement),
(e = i.scrollTop || t.scrollTop),
(i = i.scrollLeft || t.scrollLeft),
this._map._container.focus(),
window.scrollTo(i, e));
},
_onFocus: function () {
(this._focused = !0), this._map.fire("focus");
},
_onBlur: function () {
(this._focused = !1), this._map.fire("blur");
},
_setPanDelta: function (t) {
for (
var e = (this._panKeys = {}),
i = this.keyCodes,
n = 0,
o = i.left.length;
n < o;
n++
)
e[i.left[n]] = [-1 * t, 0];
for (n = 0, o = i.right.length; n < o; n++) e[i.right[n]] = [t, 0];
for (n = 0, o = i.down.length; n < o; n++) e[i.down[n]] = [0, t];
for (n = 0, o = i.up.length; n < o; n++) e[i.up[n]] = [0, -1 * t];
},
_setZoomDelta: function (t) {
for (
var e = (this._zoomKeys = {}),
i = this.keyCodes,
n = 0,
o = i.zoomIn.length;
n < o;
n++
)
e[i.zoomIn[n]] = t;
for (n = 0, o = i.zoomOut.length; n < o; n++) e[i.zoomOut[n]] = -t;
},
_addHooks: function () {
S(document, "keydown", this._onKeyDown, this);
},
_removeHooks: function () {
k(document, "keydown", this._onKeyDown, this);
},
_onKeyDown: function (t) {
if (!(t.altKey || t.ctrlKey || t.metaKey)) {
var e,
i,
n = t.keyCode,
o = this._map;
if (n in this._panKeys)
(o._panAnim && o._panAnim._inProgress) ||
((i = this._panKeys[n]),
t.shiftKey && (i = m(i).multiplyBy(3)),
o.options.maxBounds &&
(i = o._limitOffset(m(i), o.options.maxBounds)),
o.options.worldCopyJump
? ((e = o.wrapLatLng(
o.unproject(o.project(o.getCenter()).add(i))
)),
o.panTo(e))
: o.panBy(i));
else if (n in this._zoomKeys)
o.setZoom(o.getZoom() + (t.shiftKey ? 3 : 1) * this._zoomKeys[n]);
else {
if (27 !== n || !o._popup || !o._popup.options.closeOnEscapeKey)
return;
o.closePopup();
}
Re(t);
}
},
})),
Et =
(A.addInitHook("addHandler", "keyboard", St),
A.mergeOptions({
scrollWheelZoom: !0,
wheelDebounceTime: 40,
wheelPxPerZoomLevel: 60,
}),
n.extend({
addHooks: function () {
S(this._map._container, "wheel", this._onWheelScroll, this),
(this._delta = 0);
},
removeHooks: function () {
k(this._map._container, "wheel", this._onWheelScroll, this);
},
_onWheelScroll: function (t) {
var e = He(t),
i = this._map.options.wheelDebounceTime,
e =
((this._delta += e),
(this._lastMousePos = this._map.mouseEventToContainerPoint(t)),
this._startTime || (this._startTime = +new Date()),
Math.max(i - (+new Date() - this._startTime), 0));
clearTimeout(this._timer),
(this._timer = setTimeout(a(this._performZoom, this), e)),
Re(t);
},
_performZoom: function () {
var t = this._map,
e = t.getZoom(),
i = this._map.options.zoomSnap || 0,
n =
(t._stop(),
this._delta / (4 * this._map.options.wheelPxPerZoomLevel)),
n = (4 * Math.log(2 / (1 + Math.exp(-Math.abs(n))))) / Math.LN2,
i = i ? Math.ceil(n / i) * i : n,
n = t._limitZoom(e + (0 < this._delta ? i : -i)) - e;
(this._delta = 0),
(this._startTime = null),
n &&
("center" === t.options.scrollWheelZoom
? t.setZoom(e + n)
: t.setZoomAround(this._lastMousePos, e + n));
},
})),
kt =
(A.addInitHook("addHandler", "scrollWheelZoom", Et),
A.mergeOptions({
tapHold: b.touchNative && b.safari && b.mobile,
tapTolerance: 15,
}),
n.extend({
addHooks: function () {
S(this._map._container, "touchstart", this._onDown, this);
},
removeHooks: function () {
k(this._map._container, "touchstart", this._onDown, this);
},
_onDown: function (t) {
var e;
clearTimeout(this._holdTimeout),
1 === t.touches.length &&
((e = t.touches[0]),
(this._startPos = this._newPos = new p(e.clientX, e.clientY)),
(this._holdTimeout = setTimeout(
a(function () {
this._cancel(),
this._isTapValid() &&
(S(document, "touchend", O),
S(
document,
"touchend touchcancel",
this._cancelClickPrevent
),
this._simulateEvent("contextmenu", e));
}, this),
600
)),
S(
document,
"touchend touchcancel contextmenu",
this._cancel,
this
),
S(document, "touchmove", this._onMove, this));
},
_cancelClickPrevent: function t() {
k(document, "touchend", O), k(document, "touchend touchcancel", t);
},
_cancel: function () {
clearTimeout(this._holdTimeout),
k(document, "touchend touchcancel contextmenu", this._cancel, this),
k(document, "touchmove", this._onMove, this);
},
_onMove: function (t) {
t = t.touches[0];
this._newPos = new p(t.clientX, t.clientY);
},
_isTapValid: function () {
return (
this._newPos.distanceTo(this._startPos) <=
this._map.options.tapTolerance
);
},
_simulateEvent: function (t, e) {
t = new MouseEvent(t, {
bubbles: !0,
cancelable: !0,
view: window,
screenX: e.screenX,
screenY: e.screenY,
clientX: e.clientX,
clientY: e.clientY,
});
(t._simulated = !0), e.target.dispatchEvent(t);
},
})),
Ot =
(A.addInitHook("addHandler", "tapHold", kt),
A.mergeOptions({ touchZoom: b.touch, bounceAtZoomLimits: !0 }),
n.extend({
addHooks: function () {
M(this._map._container, "leaflet-touch-zoom"),
S(this._map._container, "touchstart", this._onTouchStart, this);
},
removeHooks: function () {
z(this._map._container, "leaflet-touch-zoom"),
k(this._map._container, "touchstart", this._onTouchStart, this);
},
_onTouchStart: function (t) {
var e,
i,
n = this._map;
!t.touches ||
2 !== t.touches.length ||
n._animatingZoom ||
this._zooming ||
((e = n.mouseEventToContainerPoint(t.touches[0])),
(i = n.mouseEventToContainerPoint(t.touches[1])),
(this._centerPoint = n.getSize()._divideBy(2)),
(this._startLatLng = n.containerPointToLatLng(this._centerPoint)),
"center" !== n.options.touchZoom &&
(this._pinchStartLatLng = n.containerPointToLatLng(
e.add(i)._divideBy(2)
)),
(this._startDist = e.distanceTo(i)),
(this._startZoom = n.getZoom()),
(this._moved = !1),
(this._zooming = !0),
n._stop(),
S(document, "touchmove", this._onTouchMove, this),
S(document, "touchend touchcancel", this._onTouchEnd, this),
O(t));
},
_onTouchMove: function (t) {
if (t.touches && 2 === t.touches.length && this._zooming) {
var e = this._map,
i = e.mouseEventToContainerPoint(t.touches[0]),
n = e.mouseEventToContainerPoint(t.touches[1]),
o = i.distanceTo(n) / this._startDist;
if (
((this._zoom = e.getScaleZoom(o, this._startZoom)),
!e.options.bounceAtZoomLimits &&
((this._zoom < e.getMinZoom() && o < 1) ||
(this._zoom > e.getMaxZoom() && 1 < o)) &&
(this._zoom = e._limitZoom(this._zoom)),
"center" === e.options.touchZoom)
) {
if (((this._center = this._startLatLng), 1 == o)) return;
} else {
i = i._add(n)._divideBy(2)._subtract(this._centerPoint);
if (1 == o && 0 === i.x && 0 === i.y) return;
this._center = e.unproject(
e.project(this._pinchStartLatLng, this._zoom).subtract(i),
this._zoom
);
}
this._moved || (e._moveStart(!0, !1), (this._moved = !0)),
r(this._animRequest);
n = a(
e._move,
e,
this._center,
this._zoom,
{ pinch: !0, round: !1 },
void 0
);
(this._animRequest = x(n, this, !0)), O(t);
}
},
_onTouchEnd: function () {
this._moved && this._zooming
? ((this._zooming = !1),
r(this._animRequest),
k(document, "touchmove", this._onTouchMove, this),
k(document, "touchend touchcancel", this._onTouchEnd, this),
this._map.options.zoomAnimation
? this._map._animateZoom(
this._center,
this._map._limitZoom(this._zoom),
!0,
this._map.options.zoomSnap
)
: this._map._resetView(
this._center,
this._map._limitZoom(this._zoom)
))
: (this._zooming = !1);
},
})),
Xi =
(A.addInitHook("addHandler", "touchZoom", Ot),
(A.BoxZoom = _t),
(A.DoubleClickZoom = Ct),
(A.Drag = Zt),
(A.Keyboard = St),
(A.ScrollWheelZoom = Et),
(A.TapHold = kt),
(A.TouchZoom = Ot),
(t.Bounds = f),
(t.Browser = b),
(t.CRS = ot),
(t.Canvas = Fi),
(t.Circle = vi),
(t.CircleMarker = gi),
(t.Class = et),
(t.Control = B),
(t.DivIcon = Ri),
(t.DivOverlay = Ai),
(t.DomEvent = mt),
(t.DomUtil = pt),
(t.Draggable = Xe),
(t.Evented = it),
(t.FeatureGroup = ci),
(t.GeoJSON = wi),
(t.GridLayer = Ni),
(t.Handler = n),
(t.Icon = di),
(t.ImageOverlay = Ei),
(t.LatLng = v),
(t.LatLngBounds = s),
(t.Layer = o),
(t.LayerGroup = ui),
(t.LineUtil = vt),
(t.Map = A),
(t.Marker = mi),
(t.Mixin = ft),
(t.Path = fi),
(t.Point = p),
(t.PolyUtil = gt),
(t.Polygon = xi),
(t.Polyline = yi),
(t.Popup = Bi),
(t.PosAnimation = Fe),
(t.Projection = wt),
(t.Rectangle = Yi),
(t.Renderer = Wi),
(t.SVG = Gi),
(t.SVGOverlay = Oi),
(t.TileLayer = Di),
(t.Tooltip = Ii),
(t.Transformation = at),
(t.Util = tt),
(t.VideoOverlay = ki),
(t.bind = a),
(t.bounds = _),
(t.canvas = Ui),
(t.circle = function (t, e, i) {
return new vi(t, e, i);
}),
(t.circleMarker = function (t, e) {
return new gi(t, e);
}),
(t.control = Ue),
(t.divIcon = function (t) {
return new Ri(t);
}),
(t.extend = l),
(t.featureGroup = function (t, e) {
return new ci(t, e);
}),
(t.geoJSON = Si),
(t.geoJson = Mt),
(t.gridLayer = function (t) {
return new Ni(t);
}),
(t.icon = function (t) {
return new di(t);
}),
(t.imageOverlay = function (t, e, i) {
return new Ei(t, e, i);
}),
(t.latLng = w),
(t.latLngBounds = g),
(t.layerGroup = function (t, e) {
return new ui(t, e);
}),
(t.map = function (t, e) {
return new A(t, e);
}),
(t.marker = function (t, e) {
return new mi(t, e);
}),
(t.point = m),
(t.polygon = function (t, e) {
return new xi(t, e);
}),
(t.polyline = function (t, e) {
return new yi(t, e);
}),
(t.popup = function (t, e) {
return new Bi(t, e);
}),
(t.rectangle = function (t, e) {
return new Yi(t, e);
}),
(t.setOptions = c),
(t.stamp = h),
(t.svg = Ki),
(t.svgOverlay = function (t, e, i) {
return new Oi(t, e, i);
}),
(t.tileLayer = ji),
(t.tooltip = function (t, e) {
return new Ii(t, e);
}),
(t.transformation = ht),
(t.version = "1.9.4"),
(t.videoOverlay = function (t, e, i) {
return new ki(t, e, i);
}),
window.L);
(t.noConflict = function () {
return (window.L = Xi), this;
}),
(window.L = t);
});
//# sourceMappingURL=leaflet.js.map