!(function (t, e){
'object'==typeof exports&&'undefined'!=typeof module ? e(exports):'function'==typeof define&&define.amd ? define(['exports'], e):e(((t='undefined'!=typeof globalThis ? globalThis:t||self).leaflet={}));
})(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">&#x2212;</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">&#215;</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));
});
function umsLeafletMap(elementId, mapData, engine){
this._zoomControl=null;
this._mainLayer=null;
this._mapTypes=null;
this._providers=null;
this._scaleControl=null;
this._provider=false;
this._providerData=null;
umsLeafletMap.superclass.constructor.apply(this, arguments);
}
extendUms(umsLeafletMap, umsBaseMap);
umsLeafletMap.prototype._beforeInit=function (){
this._mapParams.zoom=this._mapParams.zoom ? parseInt(this._mapParams.zoom):10;
if(typeof this._mapParams.zoom_min!=='undefined'){
this._mapParams.minZoom=parseInt(this._mapParams.zoom_min);
}
if(typeof this._mapParams.zoom_max!=='undefined'){
this._mapParams.maxZoom=parseInt(this._mapParams.zoom_max);
}
if(typeof this._mapParams.mouse_wheel_zoom!=='undefined'){
this._mapParams.scrollWheelZoom=parseInt(this._mapParams.mouse_wheel_zoom);
}
if(typeof this._mapParams.draggable!=='undefined'){
var isMobile=navigator.userAgent.match(/(iPad)|(iPhone)|(iPod)|(android)|(webOS)/i) ? true:false;
switch (this._mapParams.draggable){
case 'enable':
this._mapParams.dragging=1;
break;
case 'disable':
this._mapParams.dragging=0;
break;
case 'desktop':
if(!isMobile){
this._mapParams.dragging=1;
}else{
this._mapParams.dragging=0;
}
break;
case 'mobile':
if(isMobile){
this._mapParams.dragging=1;
}else{
this._mapParams.dragging=0;
}
break;
}}
if(typeof this._mapParams.dbl_click_zoom!=='undefined'){
this._mapParams.doubleClickZoom=parseInt(this._mapParams.dbl_click_zoom);
}
this._mapParams.zoomControl=false;
umsLeafletMap.superclass._beforeInit.apply(this, arguments);
};
umsLeafletMap.prototype._createMapObj=function (){
var centerCoords=this._getCreateCoords(),
params=jQuery.extend(this._mapParams, {
center: [centerCoords.coord_x, centerCoords.coord_y],
});
this._mapObj=L.map(this._clearElementId, params);
this._provider=this._getProviderEngine();
this._mainLayer=this._createMainLayer();
};
umsLeafletMap.prototype._createMainLayer=function (provider){
var typeUrl='';
this._providerData=this._getProviderData(this._provider);
if(this._providerData){
typeUrl=this._providerData.url;
}else if(typeof this._mapParams.map_type!=='undefined'&&this._mapTypeExists(this._mapParams.map_type)){
typeUrl=this._providerData&&this._providerData.typeToUrl ? this._providerData.typeToUrl(this._mapParams.map_type):this._mapParams.map_type;
}else{
typeUrl='https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';
}
var props={
attribution: this._getAttributions(typeUrl),
};
if(this._providerData){
if(this._providerData.props){
props=jQuery.extend(props, this._providerData.props);
}
if(this._providerData.prepareProps){
props=this._providerData.prepareProps(props);
}}
return L.tileLayer(typeUrl, props).addTo(this._mapObj);
};
umsLeafletMap.prototype._getProviders=function (){
if(!this._providers){
var self=this;
this._providers={
mapbox: {
url: 'https://api.mapbox.com/styles/v1/mapbox/{id}/tiles/256/{z}/{x}/{y}?access_token={accessToken}',
props: { id: 'streets-v11', accessToken: UMS_DATA.mapboxKey },
typeToUrl: function (type){
return str_replace(this.url, '{id}', type);
},
prepareProps: function (props){
if(typeof self._mapParams.map_type!=='undefined'&&self._mapTypeExists(self._mapParams.map_type)){
props.id=self._mapParams.map_type;
}
return props;
},
},
thunderforest: {
url: 'https://tile.thunderforest.com/{id}/{z}/{x}/{y}.png?apikey={apikey}',
props: { id: 'cycle', apikey: UMS_DATA.thunderforestKey },
typeToUrl: function (type){
return str_replace(this.url, '{id}', type);
},
prepareProps: function (props){
if(typeof self._mapParams.map_type!=='undefined'&&self._mapTypeExists(self._mapParams.map_type)){
props.id=self._mapParams.map_type;
}
return props;
},
},
maptiles: {
url: 'https://maptiles.p.rapidapi.com/{id}/map/v1/{z}/{x}/{y}.png?rapidapi-key={apikey}',
props: { id: 'en', apikey: UMS_DATA.rapidapiKey },
typeToUrl: function (type){
return str_replace(this.url, '{id}', type);
},
prepareProps: function (props){
if(typeof self._mapParams.map_type!=='undefined'&&self._mapTypeExists(self._mapParams.map_type)){
props.id=self._mapParams.map_type;
}
return props;
},
},
};}
return this._providers;
};
umsLeafletMap.prototype._getProviderData=function (provider){
this._getProviders();
return this._providers[provider] ? this._providers[provider]:false;
};
umsLeafletMap.prototype._getProviderEngine=function (){
if(this._fullEngine.indexOf('l-')===0){
return this._fullEngine.split('-')[1];
}
return this._fullEngine;
};
umsLeafletMap.prototype._afterInit=function (){
if(typeof this._mapParams.zoom_control!=='undefined'&&this._mapParams.zoom_control!=='none'){
this.enbZoom(true);
}
umsLeafletMap.superclass._afterInit.apply(this, arguments);
};
umsLeafletMap.prototype.addEventListener=function (event, clb){
if(event==='zoom_changed'){
event='zoomend';
}
this._mapObj.addEventListener(event, clb);
};
umsLeafletMap.prototype.enbZoom=function (mode){
var self=this;
var removeCtrl=function (ctrl){
switch (ctrl){
case 'zoom':
if(self._zoomControl){
self._zoomControl.remove();
self._zoomControl=null;
}
break;
case 'scale':
if(self._scaleControl){
self._scaleControl.remove();
self._scaleControl=null;
}
break;
}};
if(mode){
var mode=typeof this._mapParams.navigation_bar_mode!=='undefined' ? this._mapParams.navigation_bar_mode:'full';
if(toeInArrayUms(mode, ['full', 'zoom_only'])&&!this._zoomControl){
this._zoomControl=new L.control.zoom();
this._mapObj.addControl(this._zoomControl);
if(mode!=='full'){
removeCtrl('scale');
}}
if(toeInArrayUms(mode, ['full', 'scale_only'])&&!this._scaleControl){
this._scaleControl=new L.control.scale();
this._mapObj.addControl(this._scaleControl);
if(mode!=='full'){
removeCtrl('zoom');
}}
}else{
removeCtrl('zoom');
removeCtrl('scale');
}};
umsLeafletMap.prototype.enbDraggable=function (mode){
var isMobile=navigator.userAgent.match(/(iPad)|(iPhone)|(iPod)|(android)|(webOS)/i) ? true:false;
switch (mode){
case 'enable':
this._mapObj.dragging.enable();
break;
case 'disable':
this._mapObj.dragging.disable();
break;
case 'desktop':
if(!isMobile){
this._mapObj.dragging.enable();
}else{
this._mapObj.dragging.disable();
}
break;
case 'mobile':
if(isMobile){
this._mapObj.dragging.enable();
}else{
this._mapObj.dragging.disable();
}
break;
}};
umsLeafletMap.prototype.setCenter=function (lat, lng){
this._mapObj.panTo([lat, lng]);
};
umsLeafletMap.prototype.getCenter=function (){
var center=this._mapObj.getCenter();
return { lat: center.lat, lng: center.lng };};
umsLeafletMap.prototype.setZoom=function (zoomLevel){
this._mapObj.setZoom(zoomLevel);
};
umsLeafletMap.prototype.getZoom=function (){
return this._mapObj.getZoom();
};
umsLeafletMap.prototype.setNavigationBarMode=function (mode){
if(typeof this._mapParams.zoom_control!=='undefined'&&this._mapParams.zoom_control!=='none'){
this._mapParams.navigation_bar_mode=mode;
this.enbZoom(false);
this.enbZoom(true);
}};
umsLeafletMap.prototype.enbWheelZoom=function (mode){
mode ? this._mapObj.scrollWheelZoom.enable():this._mapObj.scrollWheelZoom.disable();
};
umsLeafletMap.prototype.getNavigationBarMode=function (){
this._methodRedefineNotice('umsLeafletMap.prototype.getNavigationBarMode');
};
umsLeafletMap.prototype.setMapType=function (mapType){
if(this._providerData&&this._providerData.typeToUrl){
this._mainLayer.setUrl(this._providerData.typeToUrl(mapType));
}else{
this._mainLayer.setUrl(mapType);
}};
umsLeafletMap.prototype.geocodeQuery=function (search, clb, errorClb){
jQuery.ajax({
url: 'https://nominatim.openstreetmap.org/?q=' + search + '&format=json',
dataType: 'text',
success: function (data){
if(clb){
if(data){
var r=JSON.parse(data);
if(r){
var formattedResult=[];
if(r&&r.length > 0){
for (var i=0; i < r.length; i++){
formattedResult.push({
formatted_address: r[i].display_name,
lat: r[i].lat,
lng: r[i].lon,
});
}
clb(formattedResult);
}
return;
}}
errorClb(data);
return;
} else console.log('So, what should I do next, ha?');
},
});
};
umsLeafletMap.prototype._generateMarkerInfoWndStyle=function (){
var res=[];
res.push(this._elementId + ' .marker-cluster {background-color: ' + this.getParam('marker_clasterer_border_color') + '; opacity:1;}');
res.push(this._elementId + ' .marker-cluster {color: ' + this.getParam('marker_clasterer_text_color') + ';}');
res.push(this._elementId + ' .marker-cluster div {background-color: ' + this.getParam('marker_clasterer_background_color') + '; opacity:1;}');
if(this.getParam('marker_infownd_width_units')==='px'){
res.push(this._elementId + ' .leaflet-popup-content {width: ' + this.getParam('marker_infownd_width') + 'px;}');
}
if(this.getParam('marker_infownd_height_units')==='px'){
res.push(this._elementId + ' .leaflet-popup-content {height: ' + this.getParam('marker_infownd_height') + 'px;}');
}
res.push(this._elementId + ' .leaflet-popup-content .umsMarkerTitle {color: ' + this.getParam('marker_title_color') + '; font-size: ' + this.getParam('marker_title_size') + 'px}');
res.push(this._elementId + ' .leaflet-popup-content .umsMarkerDesc, ' + this._elementId + ' .leaflet-popup-content .umsMarkerDesc * {font-size: ' + this.getParam('marker_desc_size') + 'px}');
res.push(this._elementId + ' .leaflet-popup .leaflet-popup-content-wrapper, ' + this._elementId + ' .leaflet-popup .leaflet-popup-tip {background-color: ' + this.getParam('marker_infownd_bg_color') + ';}');
return res.join('');
};
umsLeafletMap.prototype._mapTypeExists=function (typeUrl){
this._getMapTypes();
if(typeof this._mapTypes[typeUrl]!=='undefined') return true;
return false;
};
umsLeafletMap.prototype._getMapTypes=function (){
if(!this._mapTypes){
var attr='';
this._mapTypes={};
var typesVarName='umsLeaFletTypes__' + (this._provider ? this._provider:this._fullEngine);
if(this._providerData){
this._mapTypes[this._providerData.url]={
attr: window[typesVarName][Object.keys(window[typesVarName])[0]].attr,
};}
for (var typeName in window[typesVarName]){
if(typeof window[typesVarName][typeName]==='object'){
attr=window[typesVarName][typeName]['attr'];
}
this._mapTypes[typeName]={
attr: attr,
};}}
return this._mapTypes;
};
umsLeafletMap.prototype._getAttributions=function (typeUrl){
this._getMapTypes();
return this._mapTypes[typeUrl].attr;
};
umsLeafletMap.prototype.enableClasterization=function (clasterType, needTrigger){
switch (clasterType){
case 'MarkerClusterer':
this._clearCluster();
this._createCluster();
this._addMarkersToCluster();
this._mapObj.addLayer(this._clasterer);
break;
}
this._clastererEnabled=true;
};
umsLeafletMap.prototype._addMarkersToCluster=function (){
if(this._markers.length > 0){
for (var i=0; i < this._markers.length; i++){
this._clasterer.addLayer(this._markers[i].getRawMarkerInstance());
this._markers[i].removeFromMap();
}}
};
umsLeafletMap.prototype.disableClasterization=function (){
this._clearCluster();
if(this._markers.length > 0){
for (var i=0; i < this._markers.length; i++){
this._markers[i].addToMap();
}}
this._clastererEnabled=false;
};
umsLeafletMap.prototype._clearCluster=function (){
if(this._clasterer){
this._clasterer.remove();
this._clasterer=null;
}};
umsLeafletMap.prototype._createCluster=function (){
if(!this._clasterer){
var clasterGridSize=parseInt(this.getParam('marker_clasterer_grid_size'));
if(!clasterGridSize) clasterGridSize=60;
var opts={
maxClusterRadius: clasterGridSize,
};
this._clasterer=new L.MarkerClusterGroup(opts);
}};
umsLeafletMap.prototype._refreshCluster=function (){
this._clearCluster();
this._createCluster();
this._addMarkersToCluster();
this._mapObj.addLayer(this._clasterer);
};
umsLeafletMap.prototype.setClusterSize=function (size){
this.setParam('marker_clasterer_grid_size', size);
this._refreshCluster();
};
umsLeafletMap.prototype._setMinZoomLevel=function (){
umsLeafletMap.superclass._setMinZoomLevel.apply(this, arguments);
var minZoom=parseInt(this._mapParams.zoom_min) ? parseInt(this._mapParams.zoom_min):null;
this._mapObj.setMinZoom(minZoom);
};
umsLeafletMap.prototype._setMaxZoomLevel=function (){
umsLeafletMap.superclass._setMaxZoomLevel.apply(this, arguments);
var maxZoom=parseInt(this._mapParams.zoom_max) ? parseInt(this._mapParams.zoom_max):null;
this._mapObj.setMaxZoom(maxZoom);
};
function umsLeafletMapsLoadComplete(){
g_umsMapLoadObserver.setLoaded('leaflet');
}
umsLeafletMapsLoadComplete();
function umsLeafletMarker(map, params){
this._iconObj=null;
umsLeafletMarker.superclass.constructor.apply(this, arguments);
}
extendUms(umsLeafletMarker, umsBaseMarker);
/*umsLeafletMarker.prototype.init=function(){
this._ignoreBaseInfoWndBind=true;
umsLeafletMarker.superclass.init.apply(this, arguments);
};*/
umsLeafletMarker.prototype._createMarkerObj=function (){
var pos=this._markerParams.position&&typeof this._markerParams.coord_x==='undefined' ? [this._markerParams.position.lat, this._markerParams.position.lng]:[this._markerParams.coord_x, this._markerParams.coord_y];
var opts={
draggable: this._markerParams.draggable,
};
if(this._markerParams.icon){
this._createIcon(this._markerParams.icon);
opts.icon=this._iconObj;
}
var marker=L.marker(pos, opts).addTo(this._map.getRawMapInstance());
return marker;
};
umsLeafletMarker.prototype.addToMap=function (){
this._markerObj.addTo(this._map.getRawMapInstance());
};
umsLeafletMarker.prototype._setAnchor=function (iconWidth, iconHeight){
};
/*umsLeafletMarker.prototype.setTitle=function(title, noRefresh){
umsLeafletMarker.superclass.setTitle.apply(this, arguments);
};
umsLeafletMarker.prototype.setDescription=function (description, noRefresh){
umsLeafletMarker.superclass.setTitle.apply(this, arguments);
};*/
umsLeafletMarker.prototype.setVisible=function (state){
if(state){
this._markerObj.setOpacity(1);
this._markerObj.opacity=1;
}else{
this._markerObj.setOpacity(0);
this._markerObj.opacity=0;
this._markerObj.closePopup();
}};
umsLeafletMarker.prototype.getPosition=function (){
var loc=this._markerObj.getLatLng();
return { lat: loc.lat, lng: loc.lng };};
umsLeafletMarker.prototype.setPosition=function (lat, lng){
this._markerObj.setLatLng([lat, lng]);
};
umsLeafletMarker.prototype.lat=function (){
var loc=this._markerObj.getLatLng();
return loc.lat;
};
umsLeafletMarker.prototype.lng=function (){
var loc=this._markerObj.getLatLng();
return loc.lng;
};
umsLeafletMarker.prototype.removeFromMap=function (){
this._markerObj.removeFrom(this._map.getRawMapInstance());
};
umsLeafletMarker.prototype._setInfoWndContent=function (withOpenPopup){
if(!this._infoWindow){
var offsetH=0;
if(this._markerParams&&this._markerParams.icon_data&&this._markerParams.icon_data.width&&this._markerParams.icon_data.height){
offsetH=-1 * parseInt(this._markerParams.icon_data.height);
}
this._infoWindow=new L.popup({
offset: L.point(0, offsetH),
});
this._markerObj.bindPopup(this._infoWindow);
}
var description=this._markerParams.description ? this._markerParams.description.replace(/\n/g, '<br/>'):false,
title=this._markerParams.title ? this._markerParams.title:false,
content=(title ? '<h3 class="umsMarkerTitle">' + title + '</h3>':'') + (description ? '<div class="umsMarkerDesc">' + description + '</div>':'');
this._infoWindow.setContent(content);
this._infoWindow.update();
if(withOpenPopup){
this._infoWndOpened=true;
this._markerObj.openPopup();
}};
/*umsLeafletMarker.prototype.refreshInfoWnd=function(){
};*/
umsLeafletMarker.prototype._updateInfoWndContent=function (withOpenPopup){
this._setInfoWndContent(withOpenPopup);
this._infoWndWasInited=true;
};
umsLeafletMarker.prototype.addEventListener=function (event, callback){
this._markerObj.on(event, callback);
};
umsLeafletMarker.prototype._openInfoWnd=function (withOpenPopup){
this._setInfoWndContent(withOpenPopup);
};
umsLeafletMarker.prototype.directOpenInfoWnd=function (){
if(this._infoWindow){
this._markerObj.openPopup();
} else this._setInfoWndContent();
};
umsLeafletMarker.prototype._closeInfoWnd=function (){
if(this._infoWindow.isPopupOpen()){
this._markerObj.closePopup();
}};
umsLeafletMarker.prototype.getIcon=function (){
return this._markerObj.getIcon();
};
umsLeafletMarker.prototype.setIcon=function (iconPath){
this._createIcon(iconPath);
this._markerObj.setIcon(this._iconObj);
};
umsLeafletMarker.prototype._createIcon=function (iconPath){
var opts={
iconUrl: iconPath,
};
if(this._markerParams.icon_data){
this._markerParams.icon_data.width=this._markerParams.icon_data.width ? parseInt(this._markerParams.icon_data.width):false;
this._markerParams.icon_data.height=this._markerParams.icon_data.height ? parseInt(this._markerParams.icon_data.height):false;
if(this._markerParams.icon_data.width&&this._markerParams.icon_data.height){
opts.iconSize=[this._markerParams.icon_data.width, this._markerParams.icon_data.height];
opts.iconAnchor=[this._markerParams.icon_data.width / 2, this._markerParams.icon_data.height];
}}
this._iconObj=L.icon(opts);
};
umsLeafletMarker.prototype.showInfoWnd=function (forceUpdateInfoWnd, forceShow, withOpenPopup){
if(this._infoWindow){
this._infoWndOpened=this._infoWindow.isOpen();
}
umsLeafletMarker.superclass.showInfoWnd.apply(this, arguments);
};
!(function (e, t){
'object'==typeof exports&&'undefined'!=typeof module ? t(exports):'function'==typeof define&&define.amd ? define(['exports'], t):t(((e.Leaflet=e.Leaflet||{}), (e.Leaflet.markercluster=e.Leaflet.markercluster||{})));
})(this, function (e){
'use strict';
var t=(L.MarkerClusterGroup=L.FeatureGroup.extend({
options: {
maxClusterRadius: 80,
iconCreateFunction: null,
clusterPane: L.Marker.prototype.options.pane,
spiderfyOnMaxZoom: !0,
showCoverageOnHover: !0,
zoomToBoundsOnClick: !0,
singleMarkerMode: !1,
disableClusteringAtZoom: null,
removeOutsideVisibleBounds: !0,
animate: !0,
animateAddingMarkers: !1,
spiderfyDistanceMultiplier: 1,
spiderLegPolylineOptions: { weight: 1.5, color: '#222', opacity: 0.5 },
chunkedLoading: !1,
chunkInterval: 200,
chunkDelay: 50,
chunkProgress: null,
polygonOptions: {},
},
initialize: function (e){
(L.Util.setOptions(this, e),
this.options.iconCreateFunction||(this.options.iconCreateFunction=this._defaultIconCreateFunction),
(this._featureGroup=L.featureGroup()),
this._featureGroup.addEventParent(this),
(this._nonPointGroup=L.featureGroup()),
this._nonPointGroup.addEventParent(this),
(this._inZoomAnimation=0),
(this._needsClustering=[]),
(this._needsRemoving=[]),
(this._currentShownBounds=null),
(this._queue=[]),
(this._childMarkerEventHandlers={
dragstart: this._childMarkerDragStart,
move: this._childMarkerMoved,
dragend: this._childMarkerDragEnd,
}));
var t=L.DomUtil.TRANSITION&&this.options.animate;
(L.extend(this, t ? this._withAnimation:this._noAnimation), (this._markerCluster=t ? L.MarkerCluster:L.MarkerClusterNonAnimated));
},
addLayer: function (e){
if(e instanceof L.LayerGroup) return this.addLayers([e]);
if(!e.getLatLng) return (this._nonPointGroup.addLayer(e), this.fire('layeradd', { layer: e }), this);
if(!this._map) return (this._needsClustering.push(e), this.fire('layeradd', { layer: e }), this);
if(this.hasLayer(e)) return this;
(this._unspiderfy&&this._unspiderfy(), this._addLayer(e, this._maxZoom), this.fire('layeradd', { layer: e }), this._topClusterLevel._recalculateBounds(), this._refreshClustersIcons());
var t=e,
i=this._zoom;
if(e.__parent) for (; t.__parent._zoom >=i;) t=t.__parent;
return (this._currentShownBounds.contains(t.getLatLng())&&(this.options.animateAddingMarkers ? this._animationAddLayer(e, t):this._animationAddLayerNonAnimated(e, t)), this);
},
removeLayer: function (e){
return e instanceof L.LayerGroup
? this.removeLayers([e])
: e.getLatLng
? this._map
? e.__parent
? (this._unspiderfy&&(this._unspiderfy(), this._unspiderfyLayer(e)),
this._removeLayer(e, !0),
this.fire('layerremove', { layer: e }),
this._topClusterLevel._recalculateBounds(),
this._refreshClustersIcons(),
e.off(this._childMarkerEventHandlers, this),
this._featureGroup.hasLayer(e)&&(this._featureGroup.removeLayer(e), e.clusterShow&&e.clusterShow()),
this)
: this
: (!this._arraySplice(this._needsClustering, e)&&this.hasLayer(e)&&this._needsRemoving.push({ layer: e, latlng: e._latlng }), this.fire('layerremove', { layer: e }), this)
: (this._nonPointGroup.removeLayer(e), this.fire('layerremove', { layer: e }), this);
},
addLayers: function (e, t){
if(!L.Util.isArray(e)) return this.addLayer(e);
var i,
n=this._featureGroup,
r=this._nonPointGroup,
s=this.options.chunkedLoading,
o=this.options.chunkInterval,
a=this.options.chunkProgress,
h=e.length,
l=0,
u = !0;
if(this._map){
var _=new Date().getTime(),
d=L.bind(function (){
for (var c=new Date().getTime(); h > l; l++){
if(s&&0===l % 200){
var p=new Date().getTime() - c;
if(p > o) break;
}
if(((i=e[l]), i instanceof L.LayerGroup)) (u&&((e=e.slice()), (u = !1)), this._extractNonGroupLayers(i, e), (h=e.length));
else if(i.getLatLng){
if(!this.hasLayer(i)&&(this._addLayer(i, this._maxZoom), t||this.fire('layeradd', { layer: i }), i.__parent&&2===i.__parent.getChildCount())){
var f=i.__parent.getAllChildMarkers(),
m=f[0]===i ? f[1]:f[0];
n.removeLayer(m);
}} else (r.addLayer(i), t||this.fire('layeradd', { layer: i }));
}
(a&&a(l, h, new Date().getTime() - _), l===h ? (this._topClusterLevel._recalculateBounds(), this._refreshClustersIcons(), this._topClusterLevel._recursivelyAddChildrenToMap(null, this._zoom, this._currentShownBounds)):setTimeout(d, this.options.chunkDelay));
}, this);
d();
} else for (var c=this._needsClustering; h > l; l++) ((i=e[l]), i instanceof L.LayerGroup ? (u&&((e=e.slice()), (u = !1)), this._extractNonGroupLayers(i, e), (h=e.length)):i.getLatLng ? this.hasLayer(i)||c.push(i):r.addLayer(i));
return this;
},
removeLayers: function (e){
var t,
i,
n=e.length,
r=this._featureGroup,
s=this._nonPointGroup,
o = !0;
if(!this._map){
for (t=0; n > t; t++)
((i=e[t]),
i instanceof L.LayerGroup
? (o&&((e=e.slice()), (o = !1)), this._extractNonGroupLayers(i, e), (n=e.length))
: (this._arraySplice(this._needsClustering, i), s.removeLayer(i), this.hasLayer(i)&&this._needsRemoving.push({ layer: i, latlng: i._latlng }), this.fire('layerremove', { layer: i })));
return this;
}
if(this._unspiderfy){
this._unspiderfy();
var a=e.slice(),
h=n;
for (t=0; h > t; t++) ((i=a[t]), i instanceof L.LayerGroup ? (this._extractNonGroupLayers(i, a), (h=a.length)):this._unspiderfyLayer(i));
}
for (t=0; n > t; t++)
((i=e[t]),
i instanceof L.LayerGroup
? (o&&((e=e.slice()), (o = !1)), this._extractNonGroupLayers(i, e), (n=e.length))
: i.__parent
? (this._removeLayer(i, !0, !0), this.fire('layerremove', { layer: i }), r.hasLayer(i)&&(r.removeLayer(i), i.clusterShow&&i.clusterShow()))
: (s.removeLayer(i), this.fire('layerremove', { layer: i })));
return (this._topClusterLevel._recalculateBounds(), this._refreshClustersIcons(), this._topClusterLevel._recursivelyAddChildrenToMap(null, this._zoom, this._currentShownBounds), this);
},
clearLayers: function (){
return (
this._map||((this._needsClustering=[]), (this._needsRemoving=[]), delete this._gridClusters, delete this._gridUnclustered),
this._noanimationUnspiderfy&&this._noanimationUnspiderfy(),
this._featureGroup.clearLayers(),
this._nonPointGroup.clearLayers(),
this.eachLayer(function (e){
(e.off(this._childMarkerEventHandlers, this), delete e.__parent);
}, this),
this._map&&this._generateInitialClusters(),
this
);
},
getBounds: function (){
var e=new L.LatLngBounds();
this._topClusterLevel&&e.extend(this._topClusterLevel._bounds);
for (var t=this._needsClustering.length - 1; t >=0; t--) e.extend(this._needsClustering[t].getLatLng());
return (e.extend(this._nonPointGroup.getBounds()), e);
},
eachLayer: function (e, t){
var i,
n,
r,
s=this._needsClustering.slice(),
o=this._needsRemoving;
for (this._topClusterLevel&&this._topClusterLevel.getAllChildMarkers(s), n=s.length - 1; n >=0; n--){
for (i = !0, r=o.length - 1; r >=0; r--)
if(o[r].layer===s[n]){
i = !1;
break;
}
i&&e.call(t, s[n]);
}
this._nonPointGroup.eachLayer(e, t);
},
getLayers: function (){
var e=[];
return (
this.eachLayer(function (t){
e.push(t);
}),
e
);
},
getLayer: function (e){
var t=null;
return (
(e=parseInt(e, 10)),
this.eachLayer(function (i){
L.stamp(i)===e&&(t=i);
}),
t
);
},
hasLayer: function (e){
if(!e) return !1;
var t,
i=this._needsClustering;
for (t=i.length - 1; t >=0; t--) if(i[t]===e) return !0;
for (i=this._needsRemoving, t=i.length - 1; t >=0; t--) if(i[t].layer===e) return !1;
return !(!e.__parent||e.__parent._group!==this)||this._nonPointGroup.hasLayer(e);
},
zoomToShowLayer: function (e, t){
'function'!=typeof t&&(t=function (){});
var i=function (){
(!e._icon&&!e.__parent._icon)||this._inZoomAnimation||(this._map.off('moveend', i, this), this.off('animationend', i, this), e._icon ? t():e.__parent._icon&&(this.once('spiderfied', t, this), e.__parent.spiderfy()));
};
e._icon&&this._map.getBounds().contains(e.getLatLng()) ? t():e.__parent._zoom < Math.round(this._map._zoom) ? (this._map.on('moveend', i, this), this._map.panTo(e.getLatLng())):(this._map.on('moveend', i, this), this.on('animationend', i, this), e.__parent.zoomToBounds());
},
onAdd: function (e){
this._map=e;
var t, i, n;
if(!isFinite(this._map.getMaxZoom())) throw 'Map has no maxZoom specified';
for (this._featureGroup.addTo(e), this._nonPointGroup.addTo(e), this._gridClusters||this._generateInitialClusters(), this._maxLat=e.options.crs.projection.MAX_LATITUDE, t=0, i=this._needsRemoving.length; i > t; t++)
((n=this._needsRemoving[t]), (n.newlatlng=n.layer._latlng), (n.layer._latlng=n.latlng));
for (t=0, i=this._needsRemoving.length; i > t; t++) ((n=this._needsRemoving[t]), this._removeLayer(n.layer, !0), (n.layer._latlng=n.newlatlng));
((this._needsRemoving=[]),
(this._zoom=Math.round(this._map._zoom)),
(this._currentShownBounds=this._getExpandedVisibleBounds()),
this._map.on('zoomend', this._zoomEnd, this),
this._map.on('moveend', this._moveEnd, this),
this._spiderfierOnAdd&&this._spiderfierOnAdd(),
this._bindEvents(),
(i=this._needsClustering),
(this._needsClustering=[]),
this.addLayers(i, !0));
},
onRemove: function (e){
(e.off('zoomend', this._zoomEnd, this),
e.off('moveend', this._moveEnd, this),
this._unbindEvents(),
(this._map._mapPane.className=this._map._mapPane.className.replace(' leaflet-cluster-anim', '')),
this._spiderfierOnRemove&&this._spiderfierOnRemove(),
delete this._maxLat,
this._hideCoverage(),
this._featureGroup.remove(),
this._nonPointGroup.remove(),
this._featureGroup.clearLayers(),
(this._map=null));
},
getVisibleParent: function (e){
for (var t=e; t&&!t._icon;) t=t.__parent;
return t||null;
},
_arraySplice: function (e, t){
for (var i=e.length - 1; i >=0; i--) if(e[i]===t) return (e.splice(i, 1), !0);
},
_removeFromGridUnclustered: function (e, t){
for (var i=this._map, n=this._gridUnclustered, r=Math.floor(this._map.getMinZoom()); t >=r&&n[t].removeObject(e, i.project(e.getLatLng(), t)); t--);
},
_childMarkerDragStart: function (e){
e.target.__dragStart=e.target._latlng;
},
_childMarkerMoved: function (e){
if(!this._ignoreMove&&!e.target.__dragStart){
var t=e.target._popup&&e.target._popup.isOpen();
(this._moveChild(e.target, e.oldLatLng, e.latlng), t&&e.target.openPopup());
}},
_moveChild: function (e, t, i){
((e._latlng=t), this.removeLayer(e), (e._latlng=i), this.addLayer(e));
},
_childMarkerDragEnd: function (e){
var t=e.target.__dragStart;
(delete e.target.__dragStart, t&&this._moveChild(e.target, t, e.target._latlng));
},
_removeLayer: function (e, t, i){
var n=this._gridClusters,
r=this._gridUnclustered,
s=this._featureGroup,
o=this._map,
a=Math.floor(this._map.getMinZoom());
t&&this._removeFromGridUnclustered(e, this._maxZoom);
var h,
l=e.__parent,
u=l._markers;
for (this._arraySplice(u, e); l&&(l._childCount--, (l._boundsNeedUpdate = !0), !(l._zoom < a));)
(t&&l._childCount <=1
? ((h=l._markers[0]===e ? l._markers[1]:l._markers[0]),
n[l._zoom].removeObject(l, o.project(l._cLatLng, l._zoom)),
r[l._zoom].addObject(h, o.project(h.getLatLng(), l._zoom)),
this._arraySplice(l.__parent._childClusters, l),
l.__parent._markers.push(h),
(h.__parent=l.__parent),
l._icon&&(s.removeLayer(l), i||s.addLayer(h)))
: (l._iconNeedsUpdate = !0),
(l=l.__parent));
delete e.__parent;
},
_isOrIsParent: function (e, t){
for (; t;){
if(e===t) return !0;
t=t.parentNode;
}
return !1;
},
fire: function (e, t, i){
if(t&&t.layer instanceof L.MarkerCluster){
if(t.originalEvent&&this._isOrIsParent(t.layer._icon, t.originalEvent.relatedTarget)) return;
e='cluster' + e;
}
L.FeatureGroup.prototype.fire.call(this, e, t, i);
},
listens: function (e, t){
return L.FeatureGroup.prototype.listens.call(this, e, t)||L.FeatureGroup.prototype.listens.call(this, 'cluster' + e, t);
},
_defaultIconCreateFunction: function (e){
var t=e.getChildCount(),
i=' marker-cluster-';
return (
(i +=10 > t ? 'small':100 > t ? 'medium':'large'),
new L.DivIcon({
html: '<div><span>' + t + '</span></div>',
className: 'marker-cluster' + i,
iconSize: new L.Point(40, 40),
})
);
},
_bindEvents: function (){
var e=this._map,
t=this.options.spiderfyOnMaxZoom,
i=this.options.showCoverageOnHover,
n=this.options.zoomToBoundsOnClick;
((t||n)&&this.on('clusterclick', this._zoomOrSpiderfy, this), i&&(this.on('clustermouseover', this._showCoverage, this), this.on('clustermouseout', this._hideCoverage, this), e.on('zoomend', this._hideCoverage, this)));
},
_zoomOrSpiderfy: function (e){
for (var t=e.layer, i=t; 1===i._childClusters.length;) i=i._childClusters[0];
(i._zoom===this._maxZoom&&i._childCount===t._childCount&&this.options.spiderfyOnMaxZoom ? t.spiderfy():this.options.zoomToBoundsOnClick&&t.zoomToBounds(), e.originalEvent&&13===e.originalEvent.keyCode&&this._map._container.focus());
},
_showCoverage: function (e){
var t=this._map;
this._inZoomAnimation||(this._shownPolygon&&t.removeLayer(this._shownPolygon), e.layer.getChildCount() > 2&&e.layer!==this._spiderfied&&((this._shownPolygon=new L.Polygon(e.layer.getConvexHull(), this.options.polygonOptions)), t.addLayer(this._shownPolygon)));
},
_hideCoverage: function (){
this._shownPolygon&&(this._map.removeLayer(this._shownPolygon), (this._shownPolygon=null));
},
_unbindEvents: function (){
var e=this.options.spiderfyOnMaxZoom,
t=this.options.showCoverageOnHover,
i=this.options.zoomToBoundsOnClick,
n=this._map;
((e||i)&&this.off('clusterclick', this._zoomOrSpiderfy, this), t&&(this.off('clustermouseover', this._showCoverage, this), this.off('clustermouseout', this._hideCoverage, this), n.off('zoomend', this._hideCoverage, this)));
},
_zoomEnd: function (){
this._map&&(this._mergeSplitClusters(), (this._zoom=Math.round(this._map._zoom)), (this._currentShownBounds=this._getExpandedVisibleBounds()));
},
_moveEnd: function (){
if(!this._inZoomAnimation){
var e=this._getExpandedVisibleBounds();
(this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds, Math.floor(this._map.getMinZoom()), this._zoom, e), this._topClusterLevel._recursivelyAddChildrenToMap(null, Math.round(this._map._zoom), e), (this._currentShownBounds=e));
}},
_generateInitialClusters: function (){
var e=Math.ceil(this._map.getMaxZoom()),
t=Math.floor(this._map.getMinZoom()),
i=this.options.maxClusterRadius,
n=i;
('function'!=typeof i &&
(n=function (){
return i;
}),
null!==this.options.disableClusteringAtZoom&&(e=this.options.disableClusteringAtZoom - 1),
(this._maxZoom=e),
(this._gridClusters={}),
(this._gridUnclustered={}));
for (var r=e; r >=t; r--) ((this._gridClusters[r]=new L.DistanceGrid(n(r))), (this._gridUnclustered[r]=new L.DistanceGrid(n(r))));
this._topClusterLevel=new this._markerCluster(this, t - 1);
},
_addLayer: function (e, t){
var i,
n,
r=this._gridClusters,
s=this._gridUnclustered,
o=Math.floor(this._map.getMinZoom());
for (this.options.singleMarkerMode&&this._overrideMarkerIcon(e), e.on(this._childMarkerEventHandlers, this); t >=o; t--){
i=this._map.project(e.getLatLng(), t);
var a=r[t].getNearObject(i);
if(a) return (a._addChild(e), (e.__parent=a), void 0);
if((a=s[t].getNearObject(i))){
var h=a.__parent;
h&&this._removeLayer(a, !1);
var l=new this._markerCluster(this, t, a, e);
(r[t].addObject(l, this._map.project(l._cLatLng, t)), (a.__parent=l), (e.__parent=l));
var u=l;
for (n=t - 1; n > h._zoom; n--) ((u=new this._markerCluster(this, n, u)), r[n].addObject(u, this._map.project(a.getLatLng(), n)));
return (h._addChild(u), this._removeFromGridUnclustered(a, t), void 0);
}
s[t].addObject(e, i);
}
(this._topClusterLevel._addChild(e), (e.__parent=this._topClusterLevel));
},
_refreshClustersIcons: function (){
this._featureGroup.eachLayer(function (e){
e instanceof L.MarkerCluster&&e._iconNeedsUpdate&&e._updateIcon();
});
},
_enqueue: function (e){
(this._queue.push(e), this._queueTimeout||(this._queueTimeout=setTimeout(L.bind(this._processQueue, this), 300)));
},
_processQueue: function (){
for (var e=0; e < this._queue.length; e++) this._queue[e].call(this);
((this._queue.length=0), clearTimeout(this._queueTimeout), (this._queueTimeout=null));
},
_mergeSplitClusters: function (){
var e=Math.round(this._map._zoom);
(this._processQueue(),
this._zoom < e&&this._currentShownBounds.intersects(this._getExpandedVisibleBounds())
? (this._animationStart(), this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds, Math.floor(this._map.getMinZoom()), this._zoom, this._getExpandedVisibleBounds()), this._animationZoomIn(this._zoom, e))
: this._zoom > e
? (this._animationStart(), this._animationZoomOut(this._zoom, e))
: this._moveEnd());
},
_getExpandedVisibleBounds: function (){
return this.options.removeOutsideVisibleBounds ? (L.Browser.mobile ? this._checkBoundsMaxLat(this._map.getBounds()):this._checkBoundsMaxLat(this._map.getBounds().pad(1))):this._mapBoundsInfinite;
},
_checkBoundsMaxLat: function (e){
var t=this._maxLat;
return (void 0!==t&&(e.getNorth() >=t&&(e._northEast.lat=1 / 0), e.getSouth() <=-t&&(e._southWest.lat=-1 / 0)), e);
},
_animationAddLayerNonAnimated: function (e, t){
if(t===e) this._featureGroup.addLayer(e);
else if(2===t._childCount){
t._addToMap();
var i=t.getAllChildMarkers();
(this._featureGroup.removeLayer(i[0]), this._featureGroup.removeLayer(i[1]));
} else t._updateIcon();
},
_extractNonGroupLayers: function (e, t){
var i,
n=e.getLayers(),
r=0;
for (t=t||[]; r < n.length; r++) ((i=n[r]), i instanceof L.LayerGroup ? this._extractNonGroupLayers(i, t):t.push(i));
return t;
},
_overrideMarkerIcon: function (e){
var t=(e.options.icon=this.options.iconCreateFunction({
getChildCount: function (){
return 1;
},
getAllChildMarkers: function (){
return [e];
},
}));
return t;
},
}));
(L.MarkerClusterGroup.include({
_mapBoundsInfinite: new L.LatLngBounds(new L.LatLng(-1 / 0, -1 / 0), new L.LatLng(1 / 0, 1 / 0)),
}),
L.MarkerClusterGroup.include({
_noAnimation: {
_animationStart: function (){},
_animationZoomIn: function (e, t){
(this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds, Math.floor(this._map.getMinZoom()), e), this._topClusterLevel._recursivelyAddChildrenToMap(null, t, this._getExpandedVisibleBounds()), this.fire('animationend'));
},
_animationZoomOut: function (e, t){
(this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds, Math.floor(this._map.getMinZoom()), e), this._topClusterLevel._recursivelyAddChildrenToMap(null, t, this._getExpandedVisibleBounds()), this.fire('animationend'));
},
_animationAddLayer: function (e, t){
this._animationAddLayerNonAnimated(e, t);
},
},
_withAnimation: {
_animationStart: function (){
((this._map._mapPane.className +=' leaflet-cluster-anim'), this._inZoomAnimation++);
},
_animationZoomIn: function (e, t){
var i,
n=this._getExpandedVisibleBounds(),
r=this._featureGroup,
s=Math.floor(this._map.getMinZoom());
((this._ignoreMove = !0),
this._topClusterLevel._recursively(n, e, s, function (s){
var o,
a=s._latlng,
h=s._markers;
for (n.contains(a)||(a=null), s._isSingleParent()&&e + 1===t ? (r.removeLayer(s), s._recursivelyAddChildrenToMap(null, t, n)):(s.clusterHide(), s._recursivelyAddChildrenToMap(a, t, n)), i=h.length - 1; i >=0; i--) ((o=h[i]), n.contains(o._latlng)||r.removeLayer(o));
}),
this._forceLayout(),
this._topClusterLevel._recursivelyBecomeVisible(n, t),
r.eachLayer(function (e){
e instanceof L.MarkerCluster||!e._icon||e.clusterShow();
}),
this._topClusterLevel._recursively(n, e, t, function (e){
e._recursivelyRestoreChildPositions(t);
}),
(this._ignoreMove = !1),
this._enqueue(function (){
(this._topClusterLevel._recursively(n, e, s, function (e){
(r.removeLayer(e), e.clusterShow());
}),
this._animationEnd());
}));
},
_animationZoomOut: function (e, t){
(this._animationZoomOutSingle(this._topClusterLevel, e - 1, t),
this._topClusterLevel._recursivelyAddChildrenToMap(null, t, this._getExpandedVisibleBounds()),
this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds, Math.floor(this._map.getMinZoom()), e, this._getExpandedVisibleBounds()));
},
_animationAddLayer: function (e, t){
var i=this,
n=this._featureGroup;
(n.addLayer(e),
t!==e &&
(t._childCount > 2
? (t._updateIcon(),
this._forceLayout(),
this._animationStart(),
e._setPos(this._map.latLngToLayerPoint(t.getLatLng())),
e.clusterHide(),
this._enqueue(function (){
(n.removeLayer(e), e.clusterShow(), i._animationEnd());
}))
: (this._forceLayout(), i._animationStart(), i._animationZoomOutSingle(t, this._map.getMaxZoom(), this._zoom))));
},
},
_animationZoomOutSingle: function (e, t, i){
var n=this._getExpandedVisibleBounds(),
r=Math.floor(this._map.getMinZoom());
e._recursivelyAnimateChildrenInAndAddSelfToMap(n, r, t + 1, i);
var s=this;
(this._forceLayout(),
e._recursivelyBecomeVisible(n, i),
this._enqueue(function (){
if(1===e._childCount){
var o=e._markers[0];
((this._ignoreMove = !0), o.setLatLng(o.getLatLng()), (this._ignoreMove = !1), o.clusterShow&&o.clusterShow());
} else
e._recursively(n, i, r, function (e){
e._recursivelyRemoveChildrenFromMap(n, r, t + 1);
});
s._animationEnd();
}));
},
_animationEnd: function (){
(this._map&&(this._map._mapPane.className=this._map._mapPane.className.replace(' leaflet-cluster-anim', '')), this._inZoomAnimation--, this.fire('animationend'));
},
_forceLayout: function (){
L.Util.falseFn(document.body.offsetWidth);
},
}),
(L.markerClusterGroup=function (e){
return new L.MarkerClusterGroup(e);
}));
var i=(L.MarkerCluster=L.Marker.extend({
options: L.Icon.prototype.options,
initialize: function (e, t, i, n){
(L.Marker.prototype.initialize.call(this, i ? i._cLatLng||i.getLatLng():new L.LatLng(0, 0), { icon: this, pane: e.options.clusterPane }),
(this._group=e),
(this._zoom=t),
(this._markers=[]),
(this._childClusters=[]),
(this._childCount=0),
(this._iconNeedsUpdate = !0),
(this._boundsNeedUpdate = !0),
(this._bounds=new L.LatLngBounds()),
i&&this._addChild(i),
n&&this._addChild(n));
},
getAllChildMarkers: function (e, t){
e=e||[];
for (var i=this._childClusters.length - 1; i >=0; i--) this._childClusters[i].getAllChildMarkers(e);
for (var n=this._markers.length - 1; n >=0; n--) (t&&this._markers[n].__dragStart)||e.push(this._markers[n]);
return e;
},
getChildCount: function (){
return this._childCount;
},
zoomToBounds: function (e){
for (var t, i=this._childClusters.slice(), n=this._group._map, r=n.getBoundsZoom(this._bounds), s=this._zoom + 1, o=n.getZoom(); i.length > 0&&r > s;){
s++;
var a=[];
for (t=0; t < i.length; t++) a=a.concat(i[t]._childClusters);
i=a;
}
r > s ? this._group._map.setView(this._latlng, s):o >=r ? this._group._map.setView(this._latlng, o + 1):this._group._map.fitBounds(this._bounds, e);
},
getBounds: function (){
var e=new L.LatLngBounds();
return (e.extend(this._bounds), e);
},
_updateIcon: function (){
((this._iconNeedsUpdate = !0), this._icon&&this.setIcon(this));
},
createIcon: function (){
return (this._iconNeedsUpdate&&((this._iconObj=this._group.options.iconCreateFunction(this)), (this._iconNeedsUpdate = !1)), this._iconObj.createIcon());
},
createShadow: function (){
return this._iconObj.createShadow();
},
_addChild: function (e, t){
((this._iconNeedsUpdate = !0),
(this._boundsNeedUpdate = !0),
this._setClusterCenter(e),
e instanceof L.MarkerCluster ? (t||(this._childClusters.push(e), (e.__parent=this)), (this._childCount +=e._childCount)):(t||this._markers.push(e), this._childCount++),
this.__parent&&this.__parent._addChild(e, !0));
},
_setClusterCenter: function (e){
this._cLatLng||(this._cLatLng=e._cLatLng||e._latlng);
},
_resetBounds: function (){
var e=this._bounds;
(e._southWest&&((e._southWest.lat=1 / 0), (e._southWest.lng=1 / 0)), e._northEast&&((e._northEast.lat=-1 / 0), (e._northEast.lng=-1 / 0)));
},
_recalculateBounds: function (){
var e,
t,
i,
n,
r=this._markers,
s=this._childClusters,
o=0,
a=0,
h=this._childCount;
if(0!==h){
for (this._resetBounds(), e=0; e < r.length; e++) ((i=r[e]._latlng), this._bounds.extend(i), (o +=i.lat), (a +=i.lng));
for (e=0; e < s.length; e++) ((t=s[e]), t._boundsNeedUpdate&&t._recalculateBounds(), this._bounds.extend(t._bounds), (i=t._wLatLng), (n=t._childCount), (o +=i.lat * n), (a +=i.lng * n));
((this._latlng=this._wLatLng=new L.LatLng(o / h, a / h)), (this._boundsNeedUpdate = !1));
}},
_addToMap: function (e){
(e&&((this._backupLatlng=this._latlng), this.setLatLng(e)), this._group._featureGroup.addLayer(this));
},
_recursivelyAnimateChildrenIn: function (e, t, i){
this._recursively(e,
this._group._map.getMinZoom(),
i - 1,
function (e){
var i,
n,
r=e._markers;
for (i=r.length - 1; i >=0; i--) ((n=r[i]), n._icon&&(n._setPos(t), n.clusterHide()));
},
function (e){
var i,
n,
r=e._childClusters;
for (i=r.length - 1; i >=0; i--) ((n=r[i]), n._icon&&(n._setPos(t), n.clusterHide()));
}
);
},
_recursivelyAnimateChildrenInAndAddSelfToMap: function (e, t, i, n){
this._recursively(e, n, t, function (r){
(r._recursivelyAnimateChildrenIn(e, r._group._map.latLngToLayerPoint(r.getLatLng()).round(), i), r._isSingleParent()&&i - 1===n ? (r.clusterShow(), r._recursivelyRemoveChildrenFromMap(e, t, i)):r.clusterHide(), r._addToMap());
});
},
_recursivelyBecomeVisible: function (e, t){
this._recursively(e, this._group._map.getMinZoom(), t, null, function (e){
e.clusterShow();
});
},
_recursivelyAddChildrenToMap: function (e, t, i){
this._recursively(i,
this._group._map.getMinZoom() - 1,
t,
function (n){
if(t!==n._zoom)
for (var r=n._markers.length - 1; r >=0; r--){
var s=n._markers[r];
i.contains(s._latlng)&&(e&&((s._backupLatlng=s.getLatLng()), s.setLatLng(e), s.clusterHide&&s.clusterHide()), n._group._featureGroup.addLayer(s));
}},
function (t){
t._addToMap(e);
}
);
},
_recursivelyRestoreChildPositions: function (e){
for (var t=this._markers.length - 1; t >=0; t--){
var i=this._markers[t];
i._backupLatlng&&(i.setLatLng(i._backupLatlng), delete i._backupLatlng);
}
if(e - 1===this._zoom) for (var n=this._childClusters.length - 1; n >=0; n--) this._childClusters[n]._restorePosition();
else for (var r=this._childClusters.length - 1; r >=0; r--) this._childClusters[r]._recursivelyRestoreChildPositions(e);
},
_restorePosition: function (){
this._backupLatlng&&(this.setLatLng(this._backupLatlng), delete this._backupLatlng);
},
_recursivelyRemoveChildrenFromMap: function (e, t, i, n){
var r, s;
this._recursively(e,
t - 1,
i - 1,
function (e){
for (s=e._markers.length - 1; s >=0; s--) ((r=e._markers[s]), (n&&n.contains(r._latlng))||(e._group._featureGroup.removeLayer(r), r.clusterShow&&r.clusterShow()));
},
function (e){
for (s=e._childClusters.length - 1; s >=0; s--) ((r=e._childClusters[s]), (n&&n.contains(r._latlng))||(e._group._featureGroup.removeLayer(r), r.clusterShow&&r.clusterShow()));
}
);
},
_recursively: function (e, t, i, n, r){
var s,
o,
a=this._childClusters,
h=this._zoom;
if((h >=t&&(n&&n(this), r&&h===i&&r(this)), t > h||i > h)) for (s=a.length - 1; s >=0; s--) ((o=a[s]), o._boundsNeedUpdate&&o._recalculateBounds(), e.intersects(o._bounds)&&o._recursively(e, t, i, n, r));
},
_isSingleParent: function (){
return this._childClusters.length > 0&&this._childClusters[0]._childCount===this._childCount;
},
}));
(L.Marker.include({
clusterHide: function (){
var e=this.options.opacity;
return (this.setOpacity(0), (this.options.opacity=e), this);
},
clusterShow: function (){
return this.setOpacity(this.options.opacity);
},
}),
(L.DistanceGrid=function (e){
((this._cellSize=e), (this._sqCellSize=e * e), (this._grid={}), (this._objectPoint={}));
}),
(L.DistanceGrid.prototype={
addObject: function (e, t){
var i=this._getCoord(t.x),
n=this._getCoord(t.y),
r=this._grid,
s=(r[n]=r[n]||{}),
o=(s[i]=s[i]||[]),
a=L.Util.stamp(e);
((this._objectPoint[a]=t), o.push(e));
},
updateObject: function (e, t){
(this.removeObject(e), this.addObject(e, t));
},
removeObject: function (e, t){
var i,
n,
r=this._getCoord(t.x),
s=this._getCoord(t.y),
o=this._grid,
a=(o[s]=o[s]||{}),
h=(a[r]=a[r]||[]);
for (delete this._objectPoint[L.Util.stamp(e)], i=0, n=h.length; n > i; i++) if(h[i]===e) return (h.splice(i, 1), 1===n&&delete a[r], !0);
},
eachObject: function (e, t){
var i,
n,
r,
s,
o,
a,
h,
l=this._grid;
for (i in l){
o=l[i];
for (n in o) for (a=o[n], r=0, s=a.length; s > r; r++) ((h=e.call(t, a[r])), h&&(r--, s--));
}},
getNearObject: function (e){
var t,
i,
n,
r,
s,
o,
a,
h,
l=this._getCoord(e.x),
u=this._getCoord(e.y),
_=this._objectPoint,
d=this._sqCellSize,
c=null;
for (t=u - 1; u + 1 >=t; t++) if((r=this._grid[t])) for (i=l - 1; l + 1 >=i; i++) if((s=r[i])) for (n=0, o=s.length; o > n; n++) ((a=s[n]), (h=this._sqDist(_[L.Util.stamp(a)], e)), (d > h||(d >=h&&null===c))&&((d=h), (c=a)));
return c;
},
_getCoord: function (e){
var t=Math.floor(e / this._cellSize);
return isFinite(t) ? t:e;
},
_sqDist: function (e, t){
var i=t.x - e.x,
n=t.y - e.y;
return i * i + n * n;
},
}),
(function (){
L.QuickHull={
getDistant: function (e, t){
var i=t[1].lat - t[0].lat,
n=t[0].lng - t[1].lng;
return n * (e.lat - t[0].lat) + i * (e.lng - t[0].lng);
},
findMostDistantPointFromBaseLine: function (e, t){
var i,
n,
r,
s=0,
o=null,
a=[];
for (i=t.length - 1; i >=0; i--) ((n=t[i]), (r=this.getDistant(n, e)), r > 0&&(a.push(n), r > s&&((s=r), (o=n))));
return { maxPoint: o, newPoints: a };},
buildConvexHull: function (e, t){
var i=[],
n=this.findMostDistantPointFromBaseLine(e, t);
return n.maxPoint ? ((i=i.concat(this.buildConvexHull([e[0], n.maxPoint], n.newPoints))), (i=i.concat(this.buildConvexHull([n.maxPoint, e[1]], n.newPoints)))):[e[0]];
},
getConvexHull: function (e){
var t,
i = !1,
n = !1,
r = !1,
s = !1,
o=null,
a=null,
h=null,
l=null,
u=null,
_=null;
for (t=e.length - 1; t >=0; t--){
var d=e[t];
((i===!1||d.lat > i)&&((o=d), (i=d.lat)), (n===!1||d.lat < n)&&((a=d), (n=d.lat)), (r===!1||d.lng > r)&&((h=d), (r=d.lng)), (s===!1||d.lng < s)&&((l=d), (s=d.lng)));
}
n!==i ? ((_=a), (u=o)):((_=l), (u=h));
var c=[].concat(this.buildConvexHull([_, u], e), this.buildConvexHull([u, _], e));
return c;
},
};})(),
L.MarkerCluster.include({
getConvexHull: function (){
var e,
t,
i=this.getAllChildMarkers(),
n=[];
for (t=i.length - 1; t >=0; t--) ((e=i[t].getLatLng()), n.push(e));
return L.QuickHull.getConvexHull(n);
},
}),
L.MarkerCluster.include({
_2PI: 2 * Math.PI,
_circleFootSeparation: 25,
_circleStartAngle: 0,
_spiralFootSeparation: 28,
_spiralLengthStart: 11,
_spiralLengthFactor: 5,
_circleSpiralSwitchover: 9,
spiderfy: function (){
if(this._group._spiderfied!==this&&!this._group._inZoomAnimation){
var e,
t=this.getAllChildMarkers(null, !0),
i=this._group,
n=i._map,
r=n.latLngToLayerPoint(this._latlng);
(this._group._unspiderfy(), (this._group._spiderfied=this), t.length >=this._circleSpiralSwitchover ? (e=this._generatePointsSpiral(t.length, r)):((r.y +=10), (e=this._generatePointsCircle(t.length, r))), this._animationSpiderfy(t, e));
}},
unspiderfy: function (e){
this._group._inZoomAnimation||(this._animationUnspiderfy(e), (this._group._spiderfied=null));
},
_generatePointsCircle: function (e, t){
var i,
n,
r=this._group.options.spiderfyDistanceMultiplier * this._circleFootSeparation * (2 + e),
s=r / this._2PI,
o=this._2PI / e,
a=[];
for (s=Math.max(s, 35), a.length=e, i=0; e > i; i++) ((n=this._circleStartAngle + i * o), (a[i]=new L.Point(t.x + s * Math.cos(n), t.y + s * Math.sin(n))._round()));
return a;
},
_generatePointsSpiral: function (e, t){
var i,
n=this._group.options.spiderfyDistanceMultiplier,
r=n * this._spiralLengthStart,
s=n * this._spiralFootSeparation,
o=n * this._spiralLengthFactor * this._2PI,
a=0,
h=[];
for (h.length=e, i=e; i >=0; i--) (e > i&&(h[i]=new L.Point(t.x + r * Math.cos(a), t.y + r * Math.sin(a))._round()), (a +=s / r + 5e-4 * i), (r +=o / a));
return h;
},
_noanimationUnspiderfy: function (){
var e,
t,
i=this._group,
n=i._map,
r=i._featureGroup,
s=this.getAllChildMarkers(null, !0);
for (i._ignoreMove = !0, this.setOpacity(1), t=s.length - 1; t >=0; t--)
((e=s[t]), r.removeLayer(e), e._preSpiderfyLatlng&&(e.setLatLng(e._preSpiderfyLatlng), delete e._preSpiderfyLatlng), e.setZIndexOffset&&e.setZIndexOffset(0), e._spiderLeg&&(n.removeLayer(e._spiderLeg), delete e._spiderLeg));
(i.fire('unspiderfied', { cluster: this, markers: s }), (i._ignoreMove = !1), (i._spiderfied=null));
},
}),
(L.MarkerClusterNonAnimated=L.MarkerCluster.extend({
_animationSpiderfy: function (e, t){
var i,
n,
r,
s,
o=this._group,
a=o._map,
h=o._featureGroup,
l=this._group.options.spiderLegPolylineOptions;
for (o._ignoreMove = !0, i=0; i < e.length; i++) ((s=a.layerPointToLatLng(t[i])), (n=e[i]), (r=new L.Polyline([this._latlng, s], l)), a.addLayer(r), (n._spiderLeg=r), (n._preSpiderfyLatlng=n._latlng), n.setLatLng(s), n.setZIndexOffset&&n.setZIndexOffset(1e6), h.addLayer(n));
(this.setOpacity(0.3), (o._ignoreMove = !1), o.fire('spiderfied', { cluster: this, markers: e }));
},
_animationUnspiderfy: function (){
this._noanimationUnspiderfy();
},
})),
L.MarkerCluster.include({
_animationSpiderfy: function (e, t){
var i,
n,
r,
s,
o,
a,
h=this,
l=this._group,
u=l._map,
_=l._featureGroup,
d=this._latlng,
c=u.latLngToLayerPoint(d),
p=L.Path.SVG,
f=L.extend({}, this._group.options.spiderLegPolylineOptions),
m=f.opacity;
for (void 0===m&&(m=L.MarkerClusterGroup.prototype.options.spiderLegPolylineOptions.opacity), p ? ((f.opacity=0), (f.className=(f.className||'') + ' leaflet-cluster-spider-leg')):(f.opacity=m), l._ignoreMove = !0, i=0; i < e.length; i++)
((n=e[i]),
(a=u.layerPointToLatLng(t[i])),
(r=new L.Polyline([d, a], f)),
u.addLayer(r),
(n._spiderLeg=r),
p&&((s=r._path), (o=s.getTotalLength() + 0.1), (s.style.strokeDasharray=o), (s.style.strokeDashoffset=o)),
n.setZIndexOffset&&n.setZIndexOffset(1e6),
n.clusterHide&&n.clusterHide(),
_.addLayer(n),
n._setPos&&n._setPos(c));
for (l._forceLayout(), l._animationStart(), i=e.length - 1; i >=0; i--)
((a=u.layerPointToLatLng(t[i])), (n=e[i]), (n._preSpiderfyLatlng=n._latlng), n.setLatLng(a), n.clusterShow&&n.clusterShow(), p&&((r=n._spiderLeg), (s=r._path), (s.style.strokeDashoffset=0), r.setStyle({ opacity: m })));
(this.setOpacity(0.3),
(l._ignoreMove = !1),
setTimeout(function (){
(l._animationEnd(), l.fire('spiderfied', { cluster: h, markers: e }));
}, 200));
},
_animationUnspiderfy: function (e){
var t,
i,
n,
r,
s,
o,
a=this,
h=this._group,
l=h._map,
u=h._featureGroup,
_=e ? l._latLngToNewLayerPoint(this._latlng, e.zoom, e.center):l.latLngToLayerPoint(this._latlng),
d=this.getAllChildMarkers(null, !0),
c=L.Path.SVG;
for (h._ignoreMove = !0, h._animationStart(), this.setOpacity(1), i=d.length - 1; i >=0; i--)
((t=d[i]),
t._preSpiderfyLatlng &&
(t.closePopup(),
t.setLatLng(t._preSpiderfyLatlng),
delete t._preSpiderfyLatlng,
(o = !0),
t._setPos&&(t._setPos(_), (o = !1)),
t.clusterHide&&(t.clusterHide(), (o = !1)),
o&&u.removeLayer(t),
c&&((n=t._spiderLeg), (r=n._path), (s=r.getTotalLength() + 0.1), (r.style.strokeDashoffset=s), n.setStyle({ opacity: 0 }))));
((h._ignoreMove = !1),
setTimeout(function (){
var e=0;
for (i=d.length - 1; i >=0; i--) ((t=d[i]), t._spiderLeg&&e++);
for (i=d.length - 1; i >=0; i--) ((t=d[i]), t._spiderLeg&&(t.clusterShow&&t.clusterShow(), t.setZIndexOffset&&t.setZIndexOffset(0), e > 1&&u.removeLayer(t), l.removeLayer(t._spiderLeg), delete t._spiderLeg));
(h._animationEnd(), h.fire('unspiderfied', { cluster: a, markers: d }));
}, 200));
},
}),
L.MarkerClusterGroup.include({
_spiderfied: null,
unspiderfy: function (){
this._unspiderfy.apply(this, arguments);
},
_spiderfierOnAdd: function (){
(this._map.on('click', this._unspiderfyWrapper, this), this._map.options.zoomAnimation&&this._map.on('zoomstart', this._unspiderfyZoomStart, this), this._map.on('zoomend', this._noanimationUnspiderfy, this), L.Browser.touch||this._map.getRenderer(this));
},
_spiderfierOnRemove: function (){
(this._map.off('click', this._unspiderfyWrapper, this), this._map.off('zoomstart', this._unspiderfyZoomStart, this), this._map.off('zoomanim', this._unspiderfyZoomAnim, this), this._map.off('zoomend', this._noanimationUnspiderfy, this), this._noanimationUnspiderfy());
},
_unspiderfyZoomStart: function (){
this._map&&this._map.on('zoomanim', this._unspiderfyZoomAnim, this);
},
_unspiderfyZoomAnim: function (e){
L.DomUtil.hasClass(this._map._mapPane, 'leaflet-touching')||(this._map.off('zoomanim', this._unspiderfyZoomAnim, this), this._unspiderfy(e));
},
_unspiderfyWrapper: function (){
this._unspiderfy();
},
_unspiderfy: function (e){
this._spiderfied&&this._spiderfied.unspiderfy(e);
},
_noanimationUnspiderfy: function (){
this._spiderfied&&this._spiderfied._noanimationUnspiderfy();
},
_unspiderfyLayer: function (e){
e._spiderLeg&&(this._featureGroup.removeLayer(e), e.clusterShow&&e.clusterShow(), e.setZIndexOffset&&e.setZIndexOffset(0), this._map.removeLayer(e._spiderLeg), delete e._spiderLeg);
},
}),
L.MarkerClusterGroup.include({
refreshClusters: function (e){
return (
e ? (e instanceof L.MarkerClusterGroup ? (e=e._topClusterLevel.getAllChildMarkers()):e instanceof L.LayerGroup ? (e=e._layers):e instanceof L.MarkerCluster ? (e=e.getAllChildMarkers()):e instanceof L.Marker&&(e=[e])):(e=this._topClusterLevel.getAllChildMarkers()),
this._flagParentsIconsNeedUpdate(e),
this._refreshClustersIcons(),
this.options.singleMarkerMode&&this._refreshSingleMarkerModeMarkers(e),
this
);
},
_flagParentsIconsNeedUpdate: function (e){
var t, i;
for (t in e) for (i=e[t].__parent; i;) ((i._iconNeedsUpdate = !0), (i=i.__parent));
},
_refreshSingleMarkerModeMarkers: function (e){
var t, i;
for (t in e) ((i=e[t]), this.hasLayer(i)&&i.setIcon(this._overrideMarkerIcon(i)));
},
}),
L.Marker.include({
refreshIconOptions: function (e, t){
var i=this.options.icon;
return (L.setOptions(i, e), this.setIcon(i), t&&this.__parent&&this.__parent._group.refreshClusters(this), this);
},
}),
(e.MarkerClusterGroup=t),
(e.MarkerCluster=i));
});