1/* @preserve 2 * Leaflet 1.9.4+v1.d15112c, a JS library for interactive maps. https://leafletjs.com 3 * (c) 2010-2023 Vladimir Agafonkin, (c) 2010-2011 CloudMade 4 */ 5!(function (t, e) { 6 '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 = {})); 7})(this, function (t) { 8 'use strict'; 9 function l(t) { 10 for (var e, i, n = 1, o = arguments.length; n < o; n++) for (e in (i = arguments[n])) t[e] = i[e]; 11 return t; 12 } 13 var R = 14 Object.create || 15 function (t) { 16 return ((N.prototype = t), new N()); 17 }; 18 function N() {} 19 function a(t, e) { 20 var i, 21 n = Array.prototype.slice; 22 return t.bind 23 ? t.bind.apply(t, n.call(arguments, 1)) 24 : ((i = n.call(arguments, 2)), 25 function () { 26 return t.apply(e, i.length ? i.concat(n.call(arguments)) : arguments); 27 }); 28 } 29 var D = 0; 30 function h(t) { 31 return ('_leaflet_id' in t || (t._leaflet_id = ++D), t._leaflet_id); 32 } 33 function j(t, e, i) { 34 var n, 35 o, 36 s = function () { 37 ((n = !1), o && (r.apply(i, o), (o = !1))); 38 }, 39 r = function () { 40 n ? (o = arguments) : (t.apply(i, arguments), setTimeout(s, e), (n = !0)); 41 }; 42 return r; 43 } 44 function H(t, e, i) { 45 var n = e[1], 46 e = e[0], 47 o = n - e; 48 return t === n && i ? t : ((((t - e) % o) + o) % o) + e; 49 } 50 function u() { 51 return !1; 52 } 53 function i(t, e) { 54 return !1 === e ? t : ((e = Math.pow(10, void 0 === e ? 6 : e)), Math.round(t * e) / e); 55 } 56 function W(t) { 57 return t.trim ? t.trim() : t.replace(/^\s+|\s+$/g, ''); 58 } 59 function F(t) { 60 return W(t).split(/\s+/); 61 } 62 function c(t, e) { 63 for (var i in (Object.prototype.hasOwnProperty.call(t, 'options') || (t.options = t.options ? R(t.options) : {}), e)) t.options[i] = e[i]; 64 return t.options; 65 } 66 function U(t, e, i) { 67 var n, 68 o = []; 69 for (n in t) o.push(encodeURIComponent(i ? n.toUpperCase() : n) + '=' + encodeURIComponent(t[n])); 70 return (e && -1 !== e.indexOf('?') ? '&' : '?') + o.join('&'); 71 } 72 var V = /\{ *([\w_ -]+) *\}/g; 73 function q(t, i) { 74 return t.replace(V, function (t, e) { 75 e = i[e]; 76 if (void 0 === e) throw new Error('No value provided for variable ' + t); 77 return (e = 'function' == typeof e ? e(i) : e); 78 }); 79 } 80 var d = 81 Array.isArray || 82 function (t) { 83 return '[object Array]' === Object.prototype.toString.call(t); 84 }; 85 function G(t, e) { 86 for (var i = 0; i < t.length; i++) if (t[i] === e) return i; 87 return -1; 88 } 89 var K = 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs='; 90 function Y(t) { 91 return window['webkit' + t] || window['moz' + t] || window['ms' + t]; 92 } 93 var X = 0; 94 function J(t) { 95 var e = +new Date(), 96 i = Math.max(0, 16 - (e - X)); 97 return ((X = e + i), window.setTimeout(t, i)); 98 } 99 var $ = window.requestAnimationFrame || Y('RequestAnimationFrame') || J, 100 Q = 101 window.cancelAnimationFrame || 102 Y('CancelAnimationFrame') || 103 Y('CancelRequestAnimationFrame') || 104 function (t) { 105 window.clearTimeout(t); 106 }; 107 function x(t, e, i) { 108 if (!i || $ !== J) return $.call(window, a(t, e)); 109 t.call(e); 110 } 111 function r(t) { 112 t && Q.call(window, t); 113 } 114 var tt = { 115 __proto__: null, 116 extend: l, 117 create: R, 118 bind: a, 119 get lastId() { 120 return D; 121 }, 122 stamp: h, 123 throttle: j, 124 wrapNum: H, 125 falseFn: u, 126 formatNum: i, 127 trim: W, 128 splitWords: F, 129 setOptions: c, 130 getParamString: U, 131 template: q, 132 isArray: d, 133 indexOf: G, 134 emptyImageUrl: K, 135 requestFn: $, 136 cancelFn: Q, 137 requestAnimFrame: x, 138 cancelAnimFrame: r, 139 }; 140 function et() {} 141 ((et.extend = function (t) { 142 function e() { 143 (c(this), this.initialize && this.initialize.apply(this, arguments), this.callInitHooks()); 144 } 145 var i, 146 n = (e.__super__ = this.prototype), 147 o = R(n);
148 for (i in (((o.constructor = e).prototype = o), this)) Object.prototype.hasOwnProperty.call(this, i) && 'prototype' !== i && '__super__' !== i && (e[i] = this[i]); 149 if ((t.statics && l(e, t.statics), t.includes)) { 150 var s = t.includes; 151 if ('undefined' != typeof L && L && L.Mixin) { 152 s = d(s) ? s : [s]; 153 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); 154 } 155 l.apply(null, [o].concat(t.includes)); 156 } 157 return ( 158 l(o, t), 159 delete o.statics, 160 delete o.includes, 161 o.options && ((o.options = n.options ? R(n.options) : {}), l(o.options, t.options)), 162 (o._initHooks = []), 163 (o.callInitHooks = function () { 164 if (!this._initHooksCalled) { 165 (n.callInitHooks && n.callInitHooks.call(this), (this._initHooksCalled = !0)); 166 for (var t = 0, e = o._initHooks.length; t < e; t++) o._initHooks[t].call(this); 167 } 168 }), 169 e 170 ); 171 }), 172 (et.include = function (t) { 173 var e = this.prototype.options; 174 return (l(this.prototype, t), t.options && ((this.prototype.options = e), this.mergeOptions(t.options)), this); 175 }), 176 (et.mergeOptions = function (t) { 177 return (l(this.prototype.options, t), this); 178 }), 179 (et.addInitHook = function (t) { 180 var e = Array.prototype.slice.call(arguments, 1), 181 i = 182 'function' == typeof t 183 ? t 184 : function () { 185 this[t].apply(this, e); 186 }; 187 return ((this.prototype._initHooks = this.prototype._initHooks || []), this.prototype._initHooks.push(i), this); 188 })); 189 var e = { 190 on: function (t, e, i) { 191 if ('object' == typeof t) for (var n in t) this._on(n, t[n], e); 192 else for (var o = 0, s = (t = F(t)).length; o < s; o++) this._on(t[o], e, i); 193 return this; 194 }, 195 off: function (t, e, i) { 196 if (arguments.length) 197 if ('object' == typeof t) for (var n in t) this._off(n, t[n], e); 198 else { 199 t = F(t); 200 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); 201 } 202 else delete this._events; 203 return this; 204 }, 205 _on: function (t, e, i, n) { 206 '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)); 207 }, 208 _off: function (t, e, i) { 209 var n, o, s; 210 if (this._events && (n = this._events[t])) 211 if (1 === arguments.length) { 212 if (this._firingCount) for (o = 0, s = n.length; o < s; o++) n[o].fn = u; 213 delete this._events[t]; 214 } 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)); 215 }, 216 fire: function (t, e, i) { 217 if (this.listens(t, i)) { 218 var n = l({}, e, { 219 type: t, 220 target: this, 221 sourceTarget: (e && e.sourceTarget) || this, 222 }); 223 if (this._events) { 224 var o = this._events[t]; 225 if (o) { 226 this._firingCount = this._firingCount + 1 || 1; 227 for (var s = 0, r = o.length; s < r; s++) { 228 var a = o[s], 229 h = a.fn; 230 (a.once && this.off(t, h, a.ctx), h.call(a.ctx || this, n)); 231 } 232 this._firingCount--; 233 } 234 } 235 i && this._propagateEvent(n); 236 } 237 return this; 238 }, 239 listens: function (t, e, i, n) { 240 'string' != typeof t && console.warn('"string" type argument expected'); 241 var o = e, 242 s = ('function' != typeof e && ((n = !!e), (i = o = void 0)), this._events && this._events[t]); 243 if (s && s.length && !1 !== this._listens(t, o, i)) return !0; 244 if (n) for (var r in this._eventParents) if (this._eventParents[r].listens(t, e, i, n)) return !0; 245 return !1; 246 }, 247 _listens: function (t, e, i) { 248 if (this._events) { 249 var n = this._events[t] || []; 250 if (!e) return !!n.length; 251 i === this && (i = void 0); 252 for (var o = 0, s = n.length; o < s; o++) if (n[o].fn === e && n[o].ctx === i) return o; 253 } 254 return !1; 255 }, 256 once: function (t, e, i) { 257 if ('object' == typeof t) for (var n in t) this._on(n, t[n], e, !0); 258 else for (var o = 0, s = (t = F(t)).length; o < s; o++) this._on(t[o], e, i, !0); 259 return this; 260 }, 261 addEventParent: function (t) { 262 return ((this._eventParents = this._eventParents || {}), (this._eventParents[h(t)] = t), this); 263 }, 264 removeEventParent: function (t) { 265 return (this._eventParents && delete this._eventParents[h(t)], this); 266 }, 267 _propagateEvent: function (t) { 268 for (var e in this._eventParents) this._eventParents[e].fire(t.type, l({ layer: t.target, prop
268agatedFrom: t.target }, t), !0); 269 }, 270 }, 271 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)); 272 function p(t, e, i) { 273 ((this.x = i ? Math.round(t) : t), (this.y = i ? Math.round(e) : e)); 274 } 275 var nt = 276 Math.trunc || 277 function (t) { 278 return 0 < t ? Math.floor(t) : Math.ceil(t); 279 }; 280 function m(t, e, i) { 281 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); 282 } 283 function f(t, e) { 284 if (t) for (var i = e ? [t, e] : t, n = 0, o = i.length; n < o; n++) this.extend(i[n]); 285 } 286 function _(t, e) { 287 return !t || t instanceof f ? t : new f(t, e); 288 } 289 function s(t, e) { 290 if (t) for (var i = e ? [t, e] : t, n = 0, o = i.length; n < o; n++) this.extend(i[n]); 291 } 292 function g(t, e) { 293 return t instanceof s ? t : new s(t, e); 294 } 295 function v(t, e, i) { 296 if (isNaN(t) || isNaN(e)) throw new Error('Invalid LatLng object: (' + t + ', ' + e + ')'); 297 ((this.lat = +t), (this.lng = +e), void 0 !== i && (this.alt = +i)); 298 } 299 function w(t, e, i) { 300 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); 301 } 302 ((p.prototype = { 303 clone: function () { 304 return new p(this.x, this.y); 305 }, 306 add: function (t) { 307 return this.clone()._add(m(t)); 308 }, 309 _add: function (t) { 310 return ((this.x += t.x), (this.y += t.y), this); 311 }, 312 subtract: function (t) { 313 return this.clone()._subtract(m(t)); 314 }, 315 _subtract: function (t) { 316 return ((this.x -= t.x), (this.y -= t.y), this); 317 }, 318 divideBy: function (t) { 319 return this.clone()._divideBy(t); 320 }, 321 _divideBy: function (t) { 322 return ((this.x /= t), (this.y /= t), this); 323 }, 324 multiplyBy: function (t) { 325 return this.clone()._multiplyBy(t); 326 }, 327 _multiplyBy: function (t) { 328 return ((this.x *= t), (this.y *= t), this); 329 }, 330 scaleBy: function (t) { 331 return new p(this.x * t.x, this.y * t.y); 332 }, 333 unscaleBy: function (t) { 334 return new p(this.x / t.x, this.y / t.y); 335 }, 336 round: function () { 337 return this.clone()._round(); 338 }, 339 _round: function () { 340 return ((this.x = Math.round(this.x)), (this.y = Math.round(this.y)), this); 341 }, 342 floor: function () { 343 return this.clone()._floor(); 344 }, 345 _floor: function () { 346 return ((this.x = Math.floor(this.x)), (this.y = Math.floor(this.y)), this); 347 }, 348 ceil: function () { 349 return this.clone()._ceil(); 350 }, 351 _ceil: function () { 352 return ((this.x = Math.ceil(this.x)), (this.y = Math.ceil(this.y)), this); 353 }, 354 trunc: function () { 355 return this.clone()._trunc(); 356 }, 357 _trunc: function () { 358 return ((this.x = nt(this.x)), (this.y = nt(this.y)), this); 359 }, 360 distanceTo: function (t) { 361 var e = (t = m(t)).x - this.x, 362 t = t.y - this.y; 363 return Math.sqrt(e * e + t * t); 364 }, 365 equals: function (t) { 366 return (t = m(t)).x === this.x && t.y === this.y; 367 }, 368 contains: function (t) { 369 return ((t = m(t)), Math.abs(t.x) <= Math.abs(this.x) && Math.abs(t.y) <= Math.abs(this.y)); 370 }, 371 toString: function () { 372 return 'Point(' + i(this.x) + ', ' + i(this.y) + ')'; 373 }, 374 }), 375 (f.prototype = { 376 extend: function (t) { 377 var e, i; 378 if (t) { 379 if (t instanceof p || 'number' == typeof t[0] || 'x' in t) e = i = m(t); 380 else if (((e = (t = _(t)).min), (i = t.max), !e || !i)) return this; 381 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())); 382 } 383 return this; 384 }, 385 getCenter: function (t) { 386 return m((this.min.x + this.max.x) / 2, (this.min.y + this.max.y) / 2, t); 387 }, 388 getBottomLeft: function () { 389 return m(this.min.x, this.max.y); 390 }, 391 getTopRight: function () { 392 return m(this.max.x, this.min.y); 393 }, 394 getTopLeft: function () { 395 return this.min; 396 }, 397 getBottomRight: function () { 398 return this.max; 399 }, 400 getSize: function () { 401 return this.max.subtract(this.min); 402 }, 403 contains: function (t) { 404 var e, i; 405 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); 406 }, 407 intersects: function (t) { 408 t = _(t); 409 var e = this.min, 410 i = this.max, 411 n = t.min, 412 t = t.max, 413 o = t.x >= e.x && n.x <= i.x, 414 t = t.y >
414= e.y && n.y <= i.y; 415 return o && t; 416 }, 417 overlaps: function (t) { 418 t = _(t); 419 var e = this.min, 420 i = this.max, 421 n = t.min, 422 t = t.max, 423 o = t.x > e.x && n.x < i.x, 424 t = t.y > e.y && n.y < i.y; 425 return o && t; 426 }, 427 isValid: function () { 428 return !(!this.min || !this.max); 429 }, 430 pad: function (t) { 431 var e = this.min, 432 i = this.max, 433 n = Math.abs(e.x - i.x) * t, 434 t = Math.abs(e.y - i.y) * t; 435 return _(m(e.x - n, e.y - t), m(i.x + n, i.y + t)); 436 }, 437 equals: function (t) { 438 return !!t && ((t = _(t)), this.min.equals(t.getTopLeft()) && this.max.equals(t.getBottomRight())); 439 }, 440 }), 441 (s.prototype = { 442 extend: function (t) { 443 var e, 444 i, 445 n = this._southWest, 446 o = this._northEast; 447 if (t instanceof v) i = e = t; 448 else { 449 if (!(t instanceof s)) return t ? this.extend(w(t) || g(t)) : this; 450 if (((e = t._southWest), (i = t._northEast), !e || !i)) return this; 451 } 452 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); 453 }, 454 pad: function (t) { 455 var e = this._southWest, 456 i = this._northEast, 457 n = Math.abs(e.lat - i.lat) * t, 458 t = Math.abs(e.lng - i.lng) * t; 459 return new s(new v(e.lat - n, e.lng - t), new v(i.lat + n, i.lng + t)); 460 }, 461 getCenter: function () { 462 return new v((this._southWest.lat + this._northEast.lat) / 2, (this._southWest.lng + this._northEast.lng) / 2); 463 }, 464 getSouthWest: function () { 465 return this._southWest; 466 }, 467 getNorthEast: function () { 468 return this._northEast; 469 }, 470 getNorthWest: function () { 471 return new v(this.getNorth(), this.getWest()); 472 }, 473 getSouthEast: function () { 474 return new v(this.getSouth(), this.getEast()); 475 }, 476 getWest: function () { 477 return this._southWest.lng; 478 }, 479 getSouth: function () { 480 return this._southWest.lat; 481 }, 482 getEast: function () { 483 return this._northEast.lng; 484 }, 485 getNorth: function () { 486 return this._northEast.lat; 487 }, 488 contains: function (t) { 489 t = ('number' == typeof t[0] || t instanceof v || 'lat' in t ? w : g)(t); 490 var e, 491 i, 492 n = this._southWest, 493 o = this._northEast;
494 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); 495 }, 496 intersects: function (t) { 497 t = g(t); 498 var e = this._southWest, 499 i = this._northEast, 500 n = t.getSouthWest(), 501 t = t.getNorthEast(), 502 o = t.lat >= e.lat && n.lat <= i.lat, 503 t = t.lng >= e.lng && n.lng <= i.lng; 504 return o && t; 505 }, 506 overlaps: function (t) { 507 t = g(t); 508 var e = this._southWest, 509 i = this._northEast, 510 n = t.getSouthWest(), 511 t = t.getNorthEast(), 512 o = t.lat > e.lat && n.lat < i.lat, 513 t = t.lng > e.lng && n.lng < i.lng; 514 return o && t; 515 }, 516 toBBoxString: function () { 517 return [this.getWest(), this.getSouth(), this.getEast(), this.getNorth()].join(','); 518 }, 519 equals: function (t, e) { 520 return !!t && ((t = g(t)), this._southWest.equals(t.getSouthWest
520(), e) && this._northEast.equals(t.getNorthEast(), e)); 521 }, 522 isValid: function () { 523 return !(!this._southWest || !this._northEast); 524 }, 525 })); 526 var ot = { 527 latLngToPoint: function (t, e) { 528 ((t = this.projection.project(t)), (e = this.scale(e))); 529 return this.transformation._transform(t, e); 530 }, 531 pointToLatLng: function (t, e) { 532 ((e = this.scale(e)), (t = this.transformation.untransform(t, e))); 533 return this.projection.unproject(t); 534 }, 535 project: function (t) { 536 return this.projection.project(t); 537 }, 538 unproject: function (t) { 539 return this.projection.unproject(t); 540 }, 541 scale: function (t) { 542 return 256 * Math.pow(2, t); 543 }, 544 zoom: function (t) { 545 return Math.log(t / 256) / Math.LN2; 546 }, 547 getProjectedBounds: function (t) { 548 var e; 549 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))); 550 }, 551 infinite: !(v.prototype = { 552 equals: function (t, e) { 553 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)); 554 }, 555 toString: function (t) { 556 return 'LatLng(' + i(this.lat, t) + ', ' + i(this.lng, t) + ')'; 557 }, 558 distanceTo: function (t) { 559 return st.distance(this, w(t)); 560 }, 561 wrap: function () { 562 return st.wrapLatLng(this); 563 }, 564 toBounds: function (t) { 565 var t = (180 * t) / 40075017, 566 e = t / Math.cos((Math.PI / 180) * this.lat); 567 return g([this.lat - t, this.lng - e], [this.lat + t, this.lng + e]); 568 }, 569 clone: function () { 570 return new v(this.lat, this.lng, this.alt); 571 }, 572 }), 573 wrapLatLng: function (t) { 574 var e = this.wrapLng ? H(t.lng, this.wrapLng, !0) : t.lng; 575 return new v(this.wrapLat ? H(t.lat, this.wrapLat, !0) : t.lat, e, t.alt); 576 }, 577 wrapLatLngBounds: function (t) { 578 var e = t.getCenter(), 579 i = this.wrapLatLng(e), 580 n = e.lat - i.lat, 581 e = e.lng - i.lng;
582 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))); 583 }, 584 }, 585 st = l({}, ot, { 586 wrapLng: [-180, 180], 587 R: 6371e3, 588 distance: function (t, e) { 589 var i = Math.PI / 180, 590 n = t.lat * i, 591 o = e.lat * i, 592 s = Math.sin(((e.lat - t.lat) * i) / 2), 593 e = Math.sin(((e.lng - t.lng) * i) / 2), 594 t = s * s + Math.cos(n) * Math.cos(o) * e * e, 595 i = 2 * Math.atan2(Math.sqrt(t), Math.sqrt(1 - t)); 596 return this.R * i; 597 }, 598 }), 599 rt = 6378137, 600 rt = { 601 R: rt, 602 MAX_LATITUDE: 85.0511287798, 603 project: function (t) { 604 var e = Math.PI / 180, 605 i = this.MAX_LATITUDE, 606 i = Math.max(Math.min(i, t.lat), -i), 607 i = Math.sin(i * e); 608 return new p(this.R * t.lng * e, (this.R * Math.log((1 + i) / (1 - i))) / 2); 609 }, 610 unproject: function (t) { 611 var e = 180 / Math.PI; 612 return new v((2 * Math.atan(Math.exp(t.y / this.R)) - Math.PI / 2) * e, (t.x * e) / this.R); 613 }, 614 bounds: new f([-(rt = rt * Math.PI), -rt], [rt, rt]), 615 }; 616 function at(t, e, i, n) { 617 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)); 618 } 619 function ht(t, e, i, n) { 620 return new at(t, e, i, n); 621 } 622 at.prototype = { 623 transform: function (t, e) { 624 return this._transform(t.clone(), e); 625 }, 626 _transform: function (t, e) { 627 return ((t.x = (e = e || 1) * (this._a * t.x + this._b)), (t.y = e * (this._c * t.y + this._d)), t); 628 }, 629 untransform: function (t, e) { 630 return new p((t.x / (e = e || 1) - this._b) / this._a, (t.y / e - this._d) / this._c); 631 }, 632 }; 633 var lt = l({}, st, { 634 code: 'EPSG:3857', 635 projection: rt, 636 transformation: ht((lt = 0.5 / (Math.PI * rt.R)), 0.5, -lt, 0.5), 637 }), 638 ut = l({}, lt, { code: 'EPSG:900913' }); 639 function ct(t) { 640 return document.createElementNS('http://www.w3.org/2000/svg', t); 641 } 642 function dt(t, e) { 643 for (var i, n, o, s, r = '', a = 0, h = t.length; a < h; a++) { 644 for (i = 0, n = (o = t[a]).length; i < n; i++) r += (i ? 'L' : 'M') + (s = o[i]).x + ' ' + s.y; 645 r += e ? (b.svg ? 'z' : 'x') : ''; 646 } 647 return r || 'M0 0'; 648 } 649 var _t = document.documentElement.style, 650 pt = 'ActiveXObject' in window, 651 mt = pt && !document.addEventListener, 652 n = 'msLaunchUri' in navigator && !('documentMode' in document), 653 ft = y('webkit'), 654 gt = y('android'), 655 vt = y('android 2') || y('android 3'), 656 yt = parseInt(/WebKit\/([0-9]+)|$/.exec(navigator.userAgent)[1], 10), 657 yt = gt && y('Google') && yt < 537 && !('AudioNode' in window), 658 xt = !!window.opera, 659 wt = !n && y('chrome'), 660 bt = y('gecko') && !ft && !xt && !pt, 661 Pt = !wt && y('safari'), 662 Lt = y('phantom'), 663 o = 'OTransition' in _t, 664 Tt = 0 === navigator.platform.indexOf('Win'), 665 Mt = pt && 'transition' in _t, 666 zt = 'WebKitCSSMatrix' in window && 'm11' in new window.WebKitCSSMatrix() && !vt, 667 _t = 'MozPerspective' in _t, 668 Ct = !window.L_DISABLE_3D && (Mt || zt || _t) && !o && !Lt, 669 Zt = 'undefined' != typeof orientation || y('mobile'), 670 St = Zt && ft, 671 Et = Zt && zt, 672 kt = !window.PointerEvent && window.MSPointerEvent, 673 Ot = !(!window.PointerEvent && !kt), 674 At = 'ontouchstart' in window || !!window.TouchEvent, 675 Bt = !window.L_NO_TOUCH && (At || Ot), 676 It = Zt && xt, 677 Rt = Zt && bt, 678 Nt = 1 < (window.devicePixelRatio || window.screen.deviceXDPI / window.screen.logicalXDPI), 679 Dt = (function () { 680 var t = !1; 681 try { 682 var e = Object.defineProperty({}, 'passive', { 683 get: function () { 684 t = !0; 685 }, 686 }); 687 (window.addEventListener('testPassiveEventSupport', u, e), window.removeEventListener('testPassiveEventSupport', u, e)); 688 } catch (t) {} 689 return t; 690 })(), 691 jt = !!document.createElement('canvas').getContext, 692 Ht = !(!document.createElementNS || !ct('svg').createSVGRect), 693 Wt = !!Ht && (((Wt = document.createElement('div')).innerHTML = '<svg/>'), 'http://www.w3.org/2000/svg' === (Wt.firstChild && Wt.firstChild.namespaceURI)); 694 function y(t) { 695 return 0 <= navigator.userAgent.toLowerCase().indexOf(t); 696 } 697 var b = { 698 ie: pt, 699 ielt9: mt, 700 edge: n, 701 webkit: ft, 702 android: gt, 703 android23: vt, 704 androidStock: yt, 705 opera: xt, 706 chrome: wt, 707 gecko: bt, 708 safari: Pt, 709 phantom: Lt, 710 opera12: o, 711 win: Tt, 712 ie3d: Mt, 713 webkit3d: zt, 714 gecko3d: _t, 715 any3d: Ct, 716 mobile: Zt, 717 mobileWebkit: St, 718 mobileWebkit3d: Et, 719 msPointer: kt, 720 pointer: Ot, 721 touch: Bt, 722 touchNative: At, 723 mobileOpera: It, 724 mobileGecko: Rt, 725 retina: Nt, 726 passiveEvents: Dt, 727 canvas: jt, 728 svg: Ht, 729 vml: 730 !Ht && 731 (function () { 732 try { 733 var t = document.createElement('div'),
734 e = ((t.innerHTML = '<v:shape adj="1"/>'), t.firstChild); 735 return ((e.style.behavior = 'url(#default#VML)'), e && 'object' == typeof e.adj); 736 } catch (t) { 737 return !1; 738 } 739 })(), 740 inlineSvg: Wt, 741 mac: 0 === navigator.platform.indexOf('Mac'), 742 linux: 0 === navigator.platform.indexOf('Linux'), 743 }, 744 Ft = b.msPointer ? 'MSPointerDown' : 'pointerdown', 745 Ut = b.msPointer ? 'MSPointerMove' : 'pointermove', 746 Vt = b.msPointer ? 'MSPointerUp' : 'pointerup', 747 qt = b.msPointer ? 'MSPointerCancel' : 'pointercancel', 748 Gt = { touchstart: Ft, touchmove: Ut, touchend: Vt, touchcancel: qt }, 749 Kt = { 750 touchstart: function (t, e) { 751 e.MSPOINTER_TYPE_TOUCH && e.pointerType === e.MSPOINTER_TYPE_TOUCH && O(e); 752 ee(t, e); 753 }, 754 touchmove: ee, 755 touchend: ee, 756 touchcancel: ee, 757 }, 758 Yt = {}, 759 Xt = !1; 760 function Jt(t, e, i) { 761 return ( 762 '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)), 763 Kt[e] ? ((i = Kt[e].bind(this, i)), t.addEventListener(Gt[e], i, !1), i) : (console.warn('wrong event specified:', e), u) 764 ); 765 } 766 function $t(t) { 767 Yt[t.pointerId] = t; 768 } 769 function Qt(t) { 770 Yt[t.pointerId] && (Yt[t.pointerId] = t); 771 } 772 function te(t) { 773 delete Yt[t.pointerId]; 774 } 775 function ee(t, e) { 776 if (e.pointerType !== (e.MSPOINTER_TYPE_MOUSE || 'mouse')) { 777 for (var i in ((e.touches = []), Yt)) e.touches.push(Yt[i]); 778 ((e.changedTouches = [e]), t(e)); 779 } 780 } 781 var ie = 200; 782 function ne(t, i) { 783 t.addEventListener('dblclick', i); 784 var n, 785 o = 0; 786 function e(t) { 787 var e; 788 1 !== t.detail 789 ? (n = t.detail) 790 : 'mouse' === t.pointerType || 791 (t.sourceCapabilities && !t.sourceCapabilities.firesTouchEvents) || 792 ((e = Ne(t)).some(function (t) { 793 return t instanceof HTMLLabelElement && t.attributes.for; 794 }) && 795 !e.some(function (t) { 796 return t instanceof HTMLInputElement || t instanceof HTMLSelectElement; 797 })) || 798 ((e = Date.now()) - o <= ie 799 ? 2 === ++n && 800 i( 801 (function (t) { 802 var e, 803 i, 804 n = {}; 805 for (i in t) ((e = t[i]), (n[i] = e && e.bind ? e.bind(t) : e)); 806 return (((t = n).type = 'dblclick'), (n.detail = 2), (n.isTrusted = !1), (n._simulated = !0), n); 807 })(t) 808 ) 809 : (n = 1), 810 (o = e)); 811 } 812 return (t.addEventListener('click', e), { dblclick: i, simDblclick: e }); 813 } 814 var oe, 815 se, 816 re, 817 ae, 818 he, 819 le, 820 ue = we(['transform', 'webkitTransform', 'OTransform', 'MozTransform', 'msTransform']), 821 ce = we(['webkitTransition', 'transition', 'OTransition', 'MozTransition', 'msTransition']), 822 de = 'webkitTransition' === ce || 'OTransition' === ce ? ce + 'End' : 'transitionend'; 823 function _e(t) { 824 return 'string' == typeof t ? document.getElementById(t) : t; 825 } 826 function pe(t, e) { 827 var i = t.style[e] || (t.currentStyle && t.currentStyle[e]); 828 return 'auto' === (i = (i && 'auto' !== i) || !document.defaultView ? i : (t = document.defaultView.getComputedStyle(t, null)) ? t[e] : null) ? null : i; 829 } 830 function P(t, e, i) { 831 t = document.createElement(t); 832 return ((t.className = e || ''), i && i.appendChild(t), t); 833 } 834 function T(t) { 835 var e = t.parentNode; 836 e && e.removeChild(t); 837 } 838 function me(t) { 839 for (; t.firstChild; ) t.removeChild(t.firstChild); 840 } 841 function fe(t) { 842 var e = t.parentNode; 843 e && e.lastChild !== t && e.appendChild(t); 844 } 845 function ge(t) { 846 var e = t.parentNode; 847 e && e.firstChild !== t && e.insertBefore(t, e.firstChild); 848 } 849 function ve(t, e) { 850 return void 0 !== t.classList ? t.classList.contains(e) : 0 < (t = xe(t)).length && new RegExp('(^|\\s)' + e + '(\\s|$)').test(t); 851 } 852 function M(t, e) { 853 var i; 854 if (void 0 !== t.classList) for (var n = F(e), o = 0, s = n.length; o < s; o++) t.classList.add(n[o]); 855 else ve(t, e) || ye(t, ((i = xe(t)) ? i + ' ' : '') + e); 856 } 857 function z(t, e) { 858 void 0 !== t.classList ? t.classList.remove(e) : ye(t, W((' ' + xe(t) + ' ').replace(' ' + e + ' ', ' '))); 859 } 860 function ye(t, e) { 861 void 0 === t.className.baseVal ? (t.className = e) : (t.className.baseVal = e); 862 } 863 function xe(t) { 864 return void 0 === (t = t.correspondingElement ? t.correspondingElement : t).className.baseVal ? t.className : t.className.baseVal; 865 } 866 function C(t, e) { 867 if ('opacity' in t.style) t.style.opacity = e; 868 else if ('filter' in t.style) { 869 var i = !1, 870 n = 'DXImageTransform.Microsoft.Alpha';
871 try { 872 i = t.filters.item(n); 873 } catch (t) { 874 if (1 === e) return; 875 } 876 ((e = Math.round(100 * e)), i ? ((i.Enabled = 100 !== e), (i.Opacity = e)) : (t.style.filter += ' progid:' + n + '(opacity=' + e + ')')); 877 } 878 } 879 function we(t) { 880 for (var e = document.documentElement.style, i = 0; i < t.length; i++) if (t[i] in e) return t[i]; 881 return !1; 882 } 883 function be(t, e, i) { 884 e = e || new p(0, 0); 885 t.style[ue] = (b.ie3d ? 'translate(' + e.x + 'px,' + e.y + 'px)' : 'translate3d(' + e.x + 'px,' + e.y + 'px,0)') + (i ? ' scale(' + i + ')' : ''); 886 } 887 function Z(t, e) { 888 ((t._leaflet_pos = e), b.any3d ? be(t, e) : ((t.style.left = e.x + 'px'), (t.style.top = e.y + 'px'))); 889 } 890 function Pe(t) { 891 return t._leaflet_pos || new p(0, 0); 892 } 893 function Le() { 894 S(window, 'dragstart', O); 895 } 896 function Te() { 897 k(window, 'dragstart', O); 898 } 899 function Me(t) { 900 for (; -1 === t.tabIndex; ) t = t.parentNode; 901 t.style && (ze(), (le = (he = t).style.outlineStyle), (t.style.outlineStyle = 'none'), S(window, 'keydown', ze)); 902 } 903 function ze() { 904 he && ((he.style.outlineStyle = le), (le = he = void 0), k(window, 'keydown', ze)); 905 } 906 function Ce(t) { 907 for (; !(((t = t.parentNode).offsetWidth && t.offsetHeight) || t === document.body); ); 908 return t; 909 } 910 function Ze(t) { 911 var e = t.getBoundingClientRect(); 912 return { 913 x: e.width / t.offsetWidth || 1, 914 y: e.height / t.offsetHeight || 1, 915 boundingClientRect: e, 916 }; 917 } 918 ae = 919 'onselectstart' in document 920 ? ((re = function () { 921 S(window, 'selectstart', O); 922 }), 923 function () { 924 k(window, 'selectstart', O); 925 }) 926 : ((se = we(['userSelect', 'WebkitUserSelect', 'OUserSelect', 'MozUserSelect', 'msUserSelect'])), 927 (re = function () { 928 var t; 929 se && ((t = document.documentElement.style), (oe = t[se]), (t[se] = 'none')); 930 }), 931 function () { 932 se && ((document.documentElement.style[se] = oe), (oe = void 0)); 933 }); 934 pt = { 935 __proto__: null, 936 TRANSFORM: ue, 937 TRANSITION: ce, 938 TRANSITION_END: de, 939 get: _e, 940 getStyle: pe, 941 create: P, 942 remove: T, 943 empty: me, 944 toFront: fe, 945 toBack: ge, 946 hasClass: ve, 947 addClass: M, 948 removeClass: z, 949 setClass: ye, 950 getClass: xe, 951 setOpacity: C, 952 testProp: we, 953 setTransform: be, 954 setPosition: Z, 955 getPosition: Pe, 956 get disableTextSelection() { 957 return re; 958 }, 959 get enableTextSelection() { 960 return ae; 961 }, 962 disableImageDrag: Le, 963 enableImageDrag: Te, 964 preventOutline: Me, 965 restoreOutline: ze, 966 getSizedParentNode: Ce, 967 getScale: Ze, 968 }; 969 function S(t, e, i, n) { 970 if (e && 'object' == typeof e) for (var o in e) ke(t, o, e[o], i); 971 else for (var s = 0, r = (e = F(e)).length; s < r; s++) ke(t, e[s], i, n); 972 return this; 973 } 974 var E = '_leaflet_events'; 975 function k(t, e, i, n) { 976 if (1 === arguments.length) (Se(t), delete t[E]); 977 else if (e && 'object' == typeof e) for (var o in e) Oe(t, o, e[o], i); 978 else if (((e = F(e)), 2 === arguments.length)) 979 Se(t, function (t) { 980 return -1 !== G(e, t); 981 }); 982 else for (var s = 0, r = e.length; s < r; s++) Oe(t, e[s], i, n); 983 return this; 984 } 985 function Se(t, e) { 986 for (var i in t[E]) { 987 var n = i.split(/\d/)[0]; 988 (e && !e(n)) || Oe(t, n, null, null, i); 989 } 990 } 991 var Ee = { 992 mouseenter: 'mouseover', 993 mouseleave: 'mouseout', 994 wheel: !('onwheel' in window) && 'mousewheel', 995 }; 996 function ke(e, t, i, n) { 997 var o, 998 s, 999 r = t + h(i) + (n ? '_' + h(n) : ''); 1000 (e[E] && e[E][r]) || 1001 ((s = o = 1002 function (t) { 1003 return i.call(n || e, t || window.event); 1004 }), 1005 !b.touchNative && b.pointer && 0 === t.indexOf('touch') 1006 ? (o = Jt(e, t, o)) 1007 : b.touch && 'dblclick' === t 1008 ? (o = ne(e, o)) 1009 : 'addEventListener' in e 1010 ? 'touchstart' === t || 'touchmove' === t || 'wheel' === t || 'mousewheel' === t 1011 ? e.addEventListener(Ee[t] || t, o, !!b.passiveEvents && { passive: !1 }) 1012 : 'mouseenter' === t || 'mouseleave' === t 1013 ? e.addEventListener( 1014 Ee[t], 1015 (o = function (t) { 1016 ((t = t || window.event), We(e, t) && s(t)); 1017 }), 1018 !1 1019 ) 1020 : e.addEventListener(t, s, !1) 1021 : e.attachEvent('on' + t, o), 1022 (e[E] = e[E] || {}), 1023 (e[E][r] = o)); 1024 } 1025 function Oe(t, e, i, n, o) { 1026 o = o || e + h(i) + (n ? '_' + h(n) : ''); 1027 var s, 1028 r, 1029 i = t[E] && t[E][o]; 1030 i && 1031 (!b.touchNative && b.pointer && 0 === e.indexOf('touch') 1032 ? ((n = t), (r = i), Gt[(s = e)] ? n.removeEventListener(Gt[s], r, !1) : console.warn('wrong event specified:', s)) 1033 : b.touch && 'dblclick' === e 1034 ? ((n = i), (r = t).removeEventListener('dblclick', n.dblclick), r.removeEventListener('click', n.simDblclick)) 1035 : 'removeEventListener' in t 1036 ? t.removeEventListener(Ee[e] || e, i, !1) 1037 : t.detachEvent('on' + e, i), 1038 (t[E][o] = null)); 1039 } 1040 function Ae(t) { 1041 return (t.stopPropagation ? t.stopPropagation() : t.originalEvent ? (t.originalEvent._stopped = !0) : (t.cancelBubble = !0), this); 1042 } 1043 function Be(t) { 1044 return (ke(t, 'wheel', Ae), this); 1045 } 1046 function Ie(t) { 1047 return (S(t, 'mousedown touchstart dblclick contextmenu', Ae), (t._leaflet_disable_click = !0), this); 1048 } 1049 function O(t) { 1050 return (t.preventDefault ? t.preventDefault() : (t.returnValue = !1), this); 1051 } 1052 function Re(t) { 1053 return (O(t), Ae(t), this); 1054 } 1055 function Ne(t) { 1056 if (t.composedPath) return t.composedPath(); 1057 for (var e = [], i = t.target; i; ) (e.push(i), (i = i.parentNode)); 1058 return e; 1059 } 1060 function De(t, e) { 1061 var i, n; 1062 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); 1063 } 1064 var je = b.linux && b.chrome ? window.devicePixelRatio : b.mac ? 3 * window.devicePixelRatio : 0 < window.devicePixelRatio ? 2 * window.devicePixelRatio : 1; 1065 function He(t) { 1066 return b.edge 1067 ? t.wheelDeltaY / 2 1068 : t.deltaY && 0 === t.deltaMode 1069 ? -t.deltaY / je 1070 : t.deltaY && 1 === t.deltaMode 1071 ? 20 * -t.deltaY 1072 : t.deltaY && 2 === t.deltaMode 1073 ? 60 * -t.deltaY 1074 : t.deltaX || t.deltaZ 1075 ? 0 1076 : t.wheelDelta 1077 ? (t.wheelDeltaY || t.wheelDelta) / 2 1078 : t.detail && Math.abs(t.detail) < 32765 1079 ? 20 * -t.detail 1080 : t.detail 1081 ? (t.detail / -32765) * 60 1082 : 0; 1083 } 1084 function We(t, e) { 1085 var i = e.relatedTarget; 1086 if (!i) return !0; 1087 try { 1088 for (; i && i !== t; ) i = i.parentNode; 1089 } catch (t) { 1090 return !1; 1091 } 1092 return i !== t; 1093 } 1094 var mt = { 1095 __proto__: null, 1096 on: S, 1097 off: k, 1098 stopPropagation: Ae, 1099 disableScrollPropagation: Be, 1100 disableClickPropagation: Ie, 1101 preventDefault: O, 1102 stop: Re, 1103 getPropagationPath: Ne,
1104 getMousePosition: De, 1105 getWheelDelta: He, 1106 isExternalTarget: We, 1107 addListener: S, 1108 removeListener: k, 1109 }, 1110 Fe = it.extend({ 1111 run: function (t, e, i, n) { 1112 (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()); 1113 }, 1114 stop: function () { 1115 this._inProgress && (this._step(!0), this._complete()); 1116 }, 1117 _animate: function () { 1118 ((this._animId = x(this._animate, this)), this._step()); 1119 }, 1120 _step: function (t) { 1121 var e = +new Date() - this._startTime, 1122 i = 1e3 * this._duration; 1123 e < i ? this._runFrame(this._easeOut(e / i), t) : (this._runFrame(1), this._complete()); 1124 }, 1125 _runFrame: function (t, e) { 1126 t = this._startPos.add(this._offset.multiplyBy(t)); 1127 (e && t._round(), Z(this._el, t), this.fire('step')); 1128 }, 1129 _complete: function () { 1130 (r(this._animId), (this._inProgress = !1), this.fire('end')); 1131 }, 1132 _easeOut: function (t) { 1133 return 1 - Math.pow(1 - t, this._easeOutPower); 1134 }, 1135 }), 1136 A = it.extend({ 1137 options: { 1138 crs: lt, 1139 center: void 0, 1140 zoom: void 0, 1141 minZoom: void 0, 1142 maxZoom: void 0, 1143 layers: [], 1144 maxBounds: void 0, 1145 renderer: void 0, 1146 zoomAnimation: !0, 1147 zoomAnimationThreshold: 4, 1148 fadeAnimation: !0, 1149 markerZoomAnimation: !0, 1150 transform3DLimit: 8388608, 1151 zoomSnap: 1, 1152 zoomDelta: 1, 1153 trackResize: !0, 1154 }, 1155 initialize: function (t, e) { 1156 ((e = c(this, e)), 1157 (this._handlers = []), 1158 (this._layers = {}), 1159 (this._zoomBoundLayers = {}), 1160 (this._sizeChanged = !0), 1161 this._initContainer(t), 1162 this._initLayout(), 1163 (this._onResize = a(this._onResize, this)), 1164 this._initEvents(), 1165 e.maxBounds && this.setMaxBounds(e.maxBounds), 1166 void 0 !== e.zoom && (this._zoom = this._limitZoom(e.zoom)), 1167 e.center && void 0 !== e.zoom && this.setView(w(e.center), e.zoom, { reset: !0 }), 1168 this.callInitHooks(), 1169 (this._zoomAnimated = ce && b.any3d && !b.mobileOpera && this.options.zoomAnimation), 1170 this._zoomAnimated && (this._createAnimProxy(), S(this._proxy, de, this._catchTransitionEnd, this)), 1171 this._addLayers(this.options.layers)); 1172 }, 1173 setView: function (t, e, i) { 1174 if ( 1175 ((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) && 1176 (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)) 1177 ) 1178 return (clearTimeout(this._sizeTimer), this); 1179 return (this._resetView(t, e, i.pan && i.pan.noMoveStart), this); 1180 }, 1181 setZoom: function (t, e) { 1182 return this._loaded ? this.setView(this.getCenter(), t, { zoom: e }) : ((this._zoom = t), this); 1183 }, 1184 zoomIn: function (t, e) { 1185 return ((t = t || (b.any3d ? this.options.zoomDelta : 1)), this.setZoom(this._zoom + t, e)); 1186 }, 1187 zoomOut: function (t, e) { 1188 return ((t = t || (b.any3d ? this.options.zoomDelta : 1)), this.setZoom(this._zoom - t, e)); 1189 }, 1190 setZoomAround: function (t, e, i) { 1191 var n = this.getZoomScale(e), 1192 o = this.getSize().divideBy(2), 1193 t = (t instanceof p ? t : this.latLngToContainerPoint(t)).subtract(o).multiplyBy(1 - 1 / n), 1194 n = this.containerPointToLatLng(o.add(t)); 1195 return this.setView(n, e, { zoom: i }); 1196 }, 1197 _getBoundsCenterZoom: function (t, e) { 1198 ((e = e || {}), (t = t.getBounds ? t.getBounds() : g(t))); 1199 var i = m(e.paddingTopLeft || e.padding || [0, 0]), 1200 n = m(e.paddingBottomRight || e.padding || [0, 0]), 1201 o = this.getBoundsZoom(t, !1, i.add(n)); 1202 return (o = 'number' == typeof e.maxZoom ? Math.min(e.maxZoom, o) : o) === 1 / 0 1203 ? { center: t.getCenter(), zoom: o } 1204 : ((e = n.subtract(i).divideBy(2)),
1205 (n = this.project(t.getSouthWest(), o)), 1206 (i = this.project(t.getNorthEast(), o)), 1207 { 1208 center: this.unproject(n.add(i).divideBy(2).add(e), o), 1209 zoom: o, 1210 }); 1211 }, 1212 fitBounds: function (t, e) { 1213 if ((t = g(t)).isValid()) return ((t = this._getBoundsCenterZoom(t, e)), this.setView(t.center, t.zoom, e)); 1214 throw new Error('Bounds are not valid.'); 1215 }, 1216 fitWorld: function (t) { 1217 return this.fitBounds( 1218 [ 1219 [-90, -180], 1220 [90, 180], 1221 ], 1222 t 1223 ); 1224 }, 1225 panTo: function (t, e) { 1226 return this.setView(t, this._zoom, { pan: e }); 1227 }, 1228 panBy: function (t, e) { 1229 var i; 1230 return ( 1231 (e = e || {}), 1232 (t = m(t).round()).x || t.y 1233 ? (!0 === e.animate || this.getSize().contains(t) 1234 ? (this._panAnim || 1235 ((this._panAnim = new Fe()), 1236 this._panAnim.on( 1237 { 1238 step: this._onPanTransitionStep, 1239 end: this._onPanTransitionEnd, 1240 }, 1241 this 1242 )), 1243 e.noMoveStart || this.fire('movestart'), 1244 !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'))) 1245 : this._resetView(this.unproject(this.project(this.getCenter()).add(t)), this.getZoom()), 1246 this) 1247 : this.fire('moveend') 1248 ); 1249 }, 1250 flyTo: function (n, o, t) { 1251 if (!1 === (t = t || {}).animate || !b.any3d) return this.setView(n, o, t); 1252 this._stop(); 1253 var s = this.project(this.getCenter()), 1254 r = this.project(n), 1255 e = this.getSize(), 1256 a = this._zoom, 1257 h = ((n = w(n)), (o = void 0 === o ? a : o), Math.max(e.x, e.y)), 1258 i = h * this.getZoomScale(a, o), 1259 l = r.distanceTo(s) || 1, 1260 u = 1.42, 1261 c = u * u; 1262 function d(t) { 1263 ((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)); 1264 return t < 1e-9 ? -18 : Math.log(t); 1265 } 1266 function _(t) { 1267 return (Math.exp(t) - Math.exp(-t)) / 2; 1268 } 1269 function p(t) { 1270 return (Math.exp(t) + Math.exp(-t)) / 2; 1271 } 1272 var m = d(0); 1273 function f(t) { 1274 return (h * (p(m) * (_((t = m + u * t)) / p(t)) - _(m))) / c; 1275 } 1276 var g = Date.now(), 1277 v = (d(1) - m) / u, 1278 y = t.duration ? 1e3 * t.duration : 1e3 * v * 0.8; 1279 return ( 1280 this._moveStart(!0, t.noMoveStart), 1281 function t() { 1282 var e = (Date.now() - g) / y, 1283 i = (1 - Math.pow(1 - e, 1.5)) * v; 1284 e <= 1 ? ((this._flyToFrame = x(t, this)), this._move(this.unproject(s.add(r.subtract(s).multiplyBy(f(i) / l)), a), this.get
1284ScaleZoom(h / ((e = i), h * (p(m) / p(m + u * e))), a), { flyTo: !0 })) : this._move(n, o)._moveEnd(!0); 1285 }.call(this), 1286 this 1287 ); 1288 }, 1289 flyToBounds: function (t, e) { 1290 t = this._getBoundsCenterZoom(t, e); 1291 return this.flyTo(t.center, t.zoom, e); 1292 }, 1293 setMaxBounds: function (t) { 1294 return ( 1295 (t = g(t)), 1296 this.listens('moveend', this._panInsideMaxBounds) && this.off('moveend', this._panInsideMaxBounds), 1297 t.isValid() ? ((this.options.maxBounds = t), this._loaded && this._panInsideMaxBounds(), this.on('moveend', this._panInsideMaxBounds)) : ((this.options.maxBounds = null), this) 1298 ); 1299 }, 1300 setMinZoom: function (t) { 1301 var e = this.options.minZoom; 1302 return ((this.options.minZoom = t), this._loaded && e !== t && (this.fire('zoomlevelschange'), this.getZoom() < this.options.minZoom) ? this.setZoom(t) : this); 1303 }, 1304 setMaxZoom: function (t) { 1305 var e = this.options.maxZoom; 1306 return ((this.options.maxZoom = t), this._loaded && e !== t && (this.fire('zoomlevelschange'), this.getZoom() > this.options.maxZoom) ? this.setZoom(t) : this); 1307 }, 1308 panInsideBounds: function (t, e) { 1309 this._enforcingBounds = !0; 1310 var i = this.getCenter(), 1311 t = this._limitCenter(i, this._zoom, g(t)); 1312 return (i.equals(t) || this.panTo(t, e), (this._enforcingBounds = !1), this); 1313 }, 1314 panInside: function (t, e) { 1315 var i = m((e = e || {}).paddingTopLeft || e.padding || [0, 0]), 1316 n = m(e.paddingBottomRight || e.padding || [0, 0]), 1317 o = this.project(this.getCenter()), 1318 t = this.project(t), 1319 s = this.getPixelBounds(), 1320 i = _([s.min.add(i), s.max.subtract(n)]), 1321 s = i.getSize(); 1322 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); 1323 }, 1324 invalidateSize: function (t) { 1325 if (!this._loaded) return this; 1326 t = l({ animate: !1, pan: !0 }, !0 === t ? { animate: !0 } : t); 1327 var e = this.getSize(), 1328 i = ((this._sizeChanged = !0), (this._lastCenter = null), this.getSize()), 1329 n = e.divideBy(2).round(), 1330 o = i.divideBy(2).round(), 1331 n = n.subtract(o); 1332 return n.x || n.y 1333 ? (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 })) 1334 : this; 1335 }, 1336 stop: function () { 1337 return (this.setZoom(this._limitZoom(this._zoom)), this.options.zoomSnap || this.fire('viewreset'), this._stop()); 1338 }, 1339 locate: function (t) { 1340 var e, i; 1341 return ( 1342 (t = this._locateOptions = l({ timeout: 1e4, watch: !1 }, t)), 1343 'geolocation' in navigator 1344 ? ((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)) 1345 : this._handleGeolocationError({ 1346 code: 0, 1347 message: 'Geolocation not supported.', 1348 }), 1349 this 1350 ); 1351 }, 1352 stopLocate: function () { 1353 return (navigator.geolocation && navigator.geolocation.clearWatch && navigator.geolocation.clearWatch(this._locationWatchId), this._locateOptions && (this._locateOptions.setView = !1), this); 1354 }, 1355 _handleGeolocationError: function (t) { 1356 var e; 1357 this._container._leaflet_id && 1358 ((e = t.code), 1359 (t = t.message || (1 === e ? 'permission denied' : 2 === e ? 'position unavailable' : 'timeout')), 1360 this._locateOptions.setView && !this._loaded && this.fitWorld(), 1361 this.fire('locationerror', { 1362 code: e, 1363 message: 'Geolocation error: ' + t + '.', 1364 })); 1365 }, 1366 _handleGeolocationResponse: function (t) { 1367 if (this._container._leaflet_id) { 1368 var e, 1369 i, 1370 n = new v(t.coords.latitude, t.coords.longitude), 1371 o = n.toBounds(2 * t.coords.accuracy), 1372 s = this._locateOptions, 1373 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 }); 1374 for (i in t.coords) 'number' == typeof t.coords[i] && (r[i] = t.coords[i]); 1375 this.fire('locationfound', r); 1376 } 1377 }, 1378 addHandler: function (t, e) { 1379 return (e && ((e = this[t] = new e(this)), this._handlers.push(e), this.options[t] && e.enable()), this); 1380 }, 1381 remove: function () { 1382 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'); 1383 try { 1384 (delete this._container._leaflet_id, delete this._containerId); 1385 } catch (t) { 1386 ((this._container._leaflet_id = void 0), (this._containerId = void 0)); 1387 } 1388 for (var t in (void 0 !== this._locationWatchId && this.stopLocate(), 1389 this._stop(), 1390 T(this._mapPane), 1391 this._clearControlPos && this._clearControlPos(), 1392 this._resizeRequest && (r(this._resizeRequest), (this._resizeRequest = null)), 1393 this._clearHandlers(), 1394 this._loaded && this.fire('unload'), 1395 this._layers)) 1396 this._layers[t].remove(); 1397 for (t in this._panes) T(this._panes[t]); 1398 return ((this._layers = []), (this._panes = []), delete this._mapPane, delete this._renderer, this); 1399 }, 1400 createPane: function (t, e) { 1401 e = P('div', 'leaflet-pane' + (t ? ' leaflet-' + t.replace('Pane', '') + '-pane' : ''), e || this._mapPane); 1402 return (t && (this._panes[t] = e), e); 1403 }, 1404 getCenter: function () { 1405 return (this._checkIfLoaded(), this._lastCenter && !this._moved() ? this._lastCenter.clone() : this.layerPointToLatLng(this._getCenterLayerPoint())); 1406 }, 1407 getZoom: function () { 1408 return this._zoom; 1409 }, 1410 getBounds: function () { 1411 var t = this.getPixelBounds(); 1412 return new s(this.unproject(t.getBottomLeft()), this.unproject(t.getTopRight())); 1413 }, 1414 getMinZoom: function () { 1415 return void 0 === this.options.minZoom ? this._layersMinZoom || 0 : this.options.minZoom; 1416 }, 1417 getMaxZoom: function () { 1418 return void 0 === this.options.maxZoom ? (void 0 === this._layersMaxZo
1418om ? 1 / 0 : this._layersMaxZoom) : this.options.maxZoom; 1419 }, 1420 getBoundsZoom: function (t, e, i) { 1421 ((t = g(t)), (i = m(i || [0, 0]))); 1422 var n = this.getZoom() || 0, 1423 o = this.getMinZoom(), 1424 s = this.getMaxZoom(), 1425 r = t.getNorthWest(), 1426 t = t.getSouthEast(), 1427 i = this.getSize().subtract(i), 1428 t = _(this.project(t, n), this.project(r, n)).getSize(), 1429 r = b.any3d ? this.options.zoomSnap : 1, 1430 a = i.x / t.x, 1431 i = i.y / t.y, 1432 t = e ? Math.max(a, i) : Math.min(a, i), 1433 n = this.getScaleZoom(t, n); 1434 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))); 1435 }, 1436 getSize: function () { 1437 return ((this._size && !this._sizeChanged) || ((this._size = new p(this._container.clientWidth || 0, this._container.clientHeight || 0)), (this._sizeChanged = !1)), this._size.clone()); 1438 }, 1439 getPixelBounds: function (t, e) { 1440 t = this._getTopLeftPoint(t, e); 1441 return new f(t, t.add(this.getSize())); 1442 }, 1443 getPixelOrigin: function () { 1444 return (this._checkIfLoaded(), this._pixelOrigin); 1445 }, 1446 getPixelWorldBounds: function (t) { 1447 return this.options.crs.getProjectedBounds(void 0 === t ? this.getZoom() : t); 1448 }, 1449 getPane: function (t) { 1450 return 'string' == typeof t ? this._panes[t] : t; 1451 }, 1452 getPanes: function () { 1453 return this._panes; 1454 }, 1455 getContainer: function () { 1456 return this._container; 1457 }, 1458 getZoomScale: function (t, e) { 1459 var i = this.options.crs; 1460 return ((e = void 0 === e ? this._zoom : e), i.scale(t) / i.scale(e)); 1461 }, 1462 getScaleZoom: function (t, e) { 1463 var i = this.options.crs, 1464 t = ((e = void 0 === e ? this._zoom : e), i.zoom(t * i.scale(e))); 1465 return isNaN(t) ? 1 / 0 : t; 1466 }, 1467 project: function (t, e) { 1468 return ((e = void 0 === e ? this._zoom : e), this.options.crs.latLngToPoint(w(t), e)); 1469 }, 1470 unproject: function (t, e) { 1471 return ((e = void 0 === e ? this._zoom : e), this.options.crs.pointToLatLng(m(t), e)); 1472 }, 1473 layerPointToLatLng: function (t) { 1474 t = m(t).add(this.getPixelOrigin()); 1475 return this.unproject(t); 1476 }, 1477 latLngToLayerPoint: function (t) { 1478 return this.project(w(t))._round()._subtract(this.getPixelOrigin()); 1479 }, 1480 wrapLatLng: function (t) { 1481 return this.options.crs.wrapLatLng(w(t)); 1482 }, 1483 wrapLatLngBounds: function (t) { 1484 return this.options.crs.wrapLatLngBounds(g(t)); 1485 }, 1486 distance: function (t, e) { 1487 return this.options.crs.distance(w(t), w(e)); 1488 }, 1489 containerPointToLayerPoint: function (t) { 1490 return m(t).subtract(this._getMapPanePos()); 1491 }, 1492 layerPointToContainerPoint: function (t) { 1493 return m(t).add(this._getMapPanePos()); 1494 }, 1495 containerPointToLatLng: function (t) { 1496 t = this.containerPointToLayerPoint(m(t)); 1497 return this.layerPointToLatLng(t); 1498 }, 1499 latLngToContainerPoint: function (t) { 1500 return this.layerPointToContainerPoint(this.latLngToLayerPoint(w(t))); 1501 }, 1502 mouseEventToContainerPoint: function (t) { 1503 return De(t, this._container); 1504 }, 1505 mouseEventToLayerPoint: function (t) { 1506 return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t)); 1507 }, 1508 mouseEventToLatLng: function (t) { 1509 return this.layerPointToLatLng(this.mouseEventToLayerPoint(t)); 1510 }, 1511 _initContainer: function (t) { 1512 t = this._container = _e(t); 1513 if (!t) throw new Error('Map container not found.'); 1514 if (t._leaflet_id) throw new Error('Map container is already initialized.'); 1515 (S(t, 'scroll', this._onScroll, this), (this._containerId = h(t))); 1516 }, 1517 _initLayout: function () { 1518 var t = this._container, 1519 e = 1520 ((this._fadeAnimated = this.options.fadeAnimation && b.any3d), 1521 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' : '')), 1522 pe(t, 'position')); 1523 ('absolute' !== e && 'relative' !== e && 'fixed' !== e && 'sticky' !== e && (t.style.position = 'relative'), this._initPanes(), this._initControlPos && this._initControlPos()); 1524 }, 1525 _initPanes: function () { 1526 var t = (this._panes = {}); 1527 ((this._paneRenderers = {}), 1528 (this._mapPane = this.createPane('mapPane', this._container)), 1529 Z(this._mapPane, new p(0, 0)), 1530 this.createPane('tilePane'), 1531 this.createPane('overlayPane'), 1532 this.createPane('shadowPane'), 1533 this.createPane('markerPane'), 1534 this.createPane('tooltipPane'), 1535 this.createPane('popupPane'), 1536 this.options.markerZoomAnimation || (M(t.markerPane, 'leaflet-zoom-hide'), M(t.shadowPane, 'leaflet-zoom-hide'))); 1537 }, 1538 _resetView: function (t, e, i) { 1539 Z(this._mapPane, new p(0, 0)); 1540 var n = !this._loaded, 1541 o = ((this._loaded = !0), (e = this._limitZoom(e)), this.fire('viewprereset'), this._zoom !== e); 1542 (this._moveStart(o, i)._move(t, e)._moveEnd(o), this.fire('viewreset'), n && this.fire('load')); 1543 }, 1544 _moveStart: function (t, e) { 1545 return (t && this.fire('zoomstart'), e || this.fire('movestart'), this); 1546 }, 1547 _move: function (t, e, i, n) { 1548 void 0 === e && (e = this._zoom); 1549 var o = this._zoom !== e; 1550 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); 1551 }, 1552 _moveEnd: function (t) { 1553 return (t && this.fire('zoomend'), this.fire('moveend')); 1554 }, 1555 _stop: function () { 1556 return (r(this._flyToFrame), this._panAnim && this._panAnim.stop(), this); 1557 }, 1558 _rawPanBy: function (t) { 1559 Z(this._mapPane, this._getMapPanePos().subtract(t)); 1560 }, 1561 _getZoomSpan: function () { 1562 return this.getMaxZoom() - this.getMinZoom(); 1563 }, 1564 _panInsideMaxBounds: function () { 1565 this._enforcingBounds || this.panInsideBounds(this.options.maxBounds); 1566 }, 1567 _checkIfLoaded: function () { 1568 if (!this._loaded) throw new Error('Set map center and zoom first.'); 1569 }, 1570 _initEvents: function (t) { 1571 this._targets = {}; 1572 var e = t ? k : S; 1573 (e((this._targets[h(this._container)] = this)._container, 'click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup', this._handleDOMEvent, this), 1574 this.options.trackResize && e(window, 'resize', this._onResize, this), 1575 b.any3d && this.options.transform3DLimit && (t ? this.off : this.on).call(this, 'moveend', this._onMoveEnd)); 1576 }, 1577 _onResize: function () { 1578 (r(this._resizeRequest), 1579 (this._resizeRequest = x(function () { 1580 this.invalidateSize({ debounceMoveend: !0 }); 1581 }, this))); 1582 }, 1583 _onScroll: function () { 1584 ((this._container.scrollTop = 0), (this._container.scrollLeft = 0)); 1585 }, 1586 _onMoveEnd: function () { 1587 var t = this._getMapPanePos(); 1588 Math.max(Math.abs(t.x), Math.abs(t.y)) >= this.options.transform3DLimit && this._resetView(this.getCenter(), this.getZoom()); 1589 }, 1590 _findEventTargets: function (t, e) { 1591 for (var i, n = [], o = 'mouseout' === e || 'mouseover' === e, s = t.target || t.srcElement, r = !1; s; ) {
1592 if ((i = this._targets[h(s)]) && ('click' === e || 'preclick' === e) && this._draggableMoved(i)) { 1593 r = !0; 1594 break; 1595 } 1596 if (i && i.listens(e, !0)) { 1597 if (o && !We(s, t)) break; 1598 if ((n.push(i), o)) break; 1599 } 1600 if (s === this._container) break; 1601 s = s.parentNode; 1602 } 1603 return (n = n.length || r || o || !this.listens(e, !0) ? n : [this]); 1604 }, 1605 _isClickDisabled: function (t) { 1606 for (; t && t !== this._container; ) { 1607 if (t._leaflet_disable_click) return !0; 1608 t = t.parentNode; 1609 } 1610 }, 1611 _handleDOMEvent: function (t) { 1612 var e, 1613 i = t.target || t.srcElement; 1614 !this._loaded || i._leaflet_disable_events || ('click' === t.type && this._isClickDisabled(i)) || ('mousedown' === (e = t.type) && Me(i), this._fireDOMEvent(t, e)); 1615 }, 1616 _mouseEvents: ['click', 'dblclick', 'mouseover', 'mouseout', 'contextmenu'], 1617 _fireDOMEvent: function (t, e, i) { 1618 'click' === t.type && (((a = l({}, t)).type = 'preclick'), this._fireDOMEvent(a, a.type, i)); 1619 var n = this._findEventTargets(t, e); 1620 if (i) { 1621 for (var o = [], s = 0; s < i.length; s++) i[s].listens(e, !0) && o.push(i[s]); 1622 n = o.concat(n); 1623 } 1624 if (n.length) { 1625 'contextmenu' === e && O(t); 1626 var r, 1627 a = n[0], 1628 h = { originalEvent: t }; 1629 for ( 1630 'keypress' !== t.type && 1631 'keydown' !== t.type && 1632 'keyup' !== t.type && 1633 ((r = a.getLatLng && (!a._radius || a._radius <= 10)), 1634 (h.containerPoint = r ? this.latLngToContainerPoint(a.getLatLng()) : this.mouseEventToContainerPoint(t)), 1635 (h.layerPoint = this.containerPointToLayerPoint(h.containerPoint)), 1636 (h.latlng = r ? a.getLatLng() : this.layerPointToLatLng(h.layerPoint))), 1637 s = 0; 1638 s < n.length; 1639 s++ 1640 ) 1641 if ((n[s].fire(e, h, !0), h.originalEvent._stopped || (!1 === n[s].options.bubblingMouseEvents && -1 !== G(this._mouseEvents, e)))) return; 1642 } 1643 }, 1644 _draggableMoved: function (t) { 1645 return ((t = t.dragging && t.dragging.enabled() ? t : this).dragging && t.dragging.moved()) || (this.boxZoom && this.boxZoom.moved()); 1646 }, 1647 _clearHandlers: function () { 1648 for (var t = 0, e = this._handlers.length; t < e; t++) this._handlers[t].disable(); 1649 }, 1650 whenReady: function (t, e) { 1651 return (this._loaded ? t.call(e || this, { target: this }) : this.on('load', t, e), this); 1652 }, 1653 _getMapPanePos: function () { 1654 return Pe(this._mapPane) || new p(0, 0); 1655 }, 1656 _moved: function () { 1657 var t = this._getMapPanePos(); 1658 return t && !t.equals([0, 0]); 1659 }, 1660 _getTopLeftPoint: function (t, e) { 1661 return (t && void 0 !== e ? this._getNewPixelOrigin(t, e) : this.getPixelOrigin()).subtract(this._getMapPanePos()); 1662 }, 1663 _getNewPixelOrigin: function (t, e) { 1664 var i = this.getSize()._divideBy(2); 1665 return this.project(t, e)._subtract(i)._add(this._getMapPanePos())._round(); 1666 }, 1667 _latLngToNewLayerPoint: function (t, e, i) { 1668 i = this._getNewPixelOrigin(i, e); 1669 return this.project(t, e)._subtract(i); 1670 }, 1671 _latLngBoundsToNewLayerBounds: function (t, e, i) { 1672 i = this._getNewPixelOrigin(i, e);
1673 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)]); 1674 }, 1675 _getCenterLayerPoint: function () { 1676 return this.containerPointToLayerPoint(this.getSize()._divideBy(2)); 1677 }, 1678 _getCenterOffset: function (t) { 1679 return this.latLngToLayerPoint(t).subtract(this._getCenterLayerPoint()); 1680 }, 1681 _limitCenter: function (t, e, i) { 1682 var n, o; 1683 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); 1684 }, 1685 _limitOffset: function (t, e) { 1686 var i; 1687 return e ? ((i = new f((i = this.getPixelBounds()).min.add(t), i.max.add(t))), t.add(this._getBoundsOffset(i, e))) : t; 1688 }, 1689 _getBoundsOffset: function (t, e, i) { 1690 ((e = _(this.project(e.getNorthEast(), i), this.project(e.getSouthWest
1690(), i))), (i = e.min.subtract(t.min)), (e = e.max.subtract(t.max))); 1691 return new p(this._rebound(i.x, -e.x), this._rebound(i.y, -e.y)); 1692 }, 1693 _rebound: function (t, e) { 1694 return 0 < t + e ? Math.round(t - e) / 2 : Math.max(0, Math.ceil(t)) - Math.max(0, Math.floor(e)); 1695 }, 1696 _limitZoom: function (t) { 1697 var e = this.getMinZoom(), 1698 i = this.getMaxZoom(), 1699 n = b.any3d ? this.options.zoomSnap : 1; 1700 return (n && (t = Math.round(t / n) * n), Math.max(e, Math.min(i, t))); 1701 }, 1702 _onPanTransitionStep: function () { 1703 this.fire('move'); 1704 }, 1705 _onPanTransitionEnd: function () { 1706 (z(this._mapPane, 'leaflet-pan-anim'), this.fire('moveend')); 1707 }, 1708 _tryAnimatedPan: function (t, e) { 1709 t = this._getCenterOffset(t)._trunc(); 1710 return !(!0 !== (e && e.animate) && !this.getSize().contains(t)) && (this.panBy(t, e), !0); 1711 }, 1712 _createAnimProxy: function () { 1713 var t = (this._proxy = P('div', 'leaflet-proxy leaflet-zoom-animated')); 1714 (this._panes.mapPane.appendChild(t), 1715 this.on( 1716 'zoomanim', 1717 function (t) { 1718 var e = ue, 1719 i = this._proxy.style[e]; 1720 (be(this._proxy, this.project(t.center, t.zoom), this.getZoomScale(t.zoom, 1)), i === this._proxy.style[e] && this._animatingZoom && this._onZoomTransitionEnd()); 1721 }, 1722 this 1723 ), 1724 this.on('load moveend', this._animMoveEnd, this), 1725 this._on('unload', this._destroyAnimProxy, this)); 1726 }, 1727 _destroyAnimProxy: function () { 1728 (T(this._proxy), this.off('load moveend', this._animMoveEnd, this), delete this._proxy); 1729 }, 1730 _animMoveEnd: function () { 1731 var t = this.getCenter(), 1732 e = this.getZoom(); 1733 be(this._proxy, this.project(t, e), this.getZoomScale(e, 1)); 1734 }, 1735 _catchTransitionEnd: function (t) { 1736 this._animatingZoom && 0 <= t.propertyName.indexOf('transform') && this._onZoomTransitionEnd(); 1737 }, 1738 _nothingToAnimate: function () { 1739 return !this._container.getElementsByClassName('leaflet-zoom-animated').length; 1740 }, 1741 _tryAnimatedZoom: function (t, e, i) { 1742 if (!this._animatingZoom) { 1743 if (((i = i || {}), !this._zoomAnimated || !1 === i.animate || this._nothingToAnimate() || Math.abs(e - this._zoom) > this.options.zoomAnimationThreshold)) return !1; 1744 var n = this.getZoomScale(e), 1745 n = this._getCenterOffset(t)._divideBy(1 - 1 / n); 1746 if (!0 !== i.animate && !this.getSize().contains(n)) return !1; 1747 x(function () { 1748 this._moveStart(!0, i.noMoveStart || !1)._animateZoom(t, e, !0); 1749 }, this); 1750 } 1751 return !0; 1752 }, 1753 _animateZoom: function (t, e, i, n) { 1754 this._mapPane && 1755 (i && ((this._animatingZoom = !0), (this._animateToCenter = t), (this._animateToZoom = e), M(this._mapPane, 'leaflet-zoom-anim')), 1756 this.fire('zoomanim', { center: t, zoom: e, noUpdate: n }), 1757 this._tempFireZoomEvent || (this._tempFireZoomEvent = this._zoom !== this._animateToZoom), 1758 this._move(this._animateToCenter, this._animateToZoom, void 0, !0), 1759 setTimeout(a(this._onZoomTransitionEnd, this), 250)); 1760 }, 1761 _onZoomTransitionEnd: function () { 1762 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)); 1763 }, 1764 }); 1765 function Ue(t) { 1766 return new B(t); 1767 } 1768 var B = et.extend({ 1769 options: { position: 'topright' }, 1770 initialize: function (t) { 1771 c(this, t); 1772 }, 1773 getPosition: function () { 1774 return this.options.position; 1775 }, 1776 setPosition: function (t) { 1777 var e = this._map; 1778 return (e && e.removeControl(this), (this.options.position = t), e && e.addControl(this), this); 1779 }, 1780 getContainer: function () { 1781 return this._container; 1782 }, 1783 addTo: function (t) { 1784 (this.remove(), (this._map = t)); 1785 var e = (this._container = this.onAdd(t)), 1786 i = this.getPosition(), 1787 t = t._controlCorners[i];
1788 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); 1789 }, 1790 remove: function () { 1791 return (this._map && (T(this._container), this.onRemove && this.onRemove(this._map), this._map.off('unload', this.remove, this), (this._map = null)), this); 1792 }, 1793 _refocusOnMap: function (t) { 1794 this._map && t && 0 < t.screenX && 0 < t.screenY && this._map.getContainer().focus(); 1795 }, 1796 }), 1797 Ve = 1798 (A.include({ 1799 addControl: function (t) { 1800 return (t.addTo(this), this); 1801 }, 1802 removeControl: function (t) { 1803 return (t.remove(), this); 1804 }, 1805 _initControlPos: function () { 1806 var i = (this._controlCorners = {}), 1807 n = 'leaflet-', 1808 o = (this._controlContainer = P('div', n + 'control-container', this._container)); 1809 function t(t, e) { 1810 i[t + e] = P('div', n + t + ' ' + n + e, o); 1811 } 1812 (t('top', 'left'), t('top', 'right'), t('bottom', 'left'), t('bottom', 'right')); 1813 }, 1814 _clearControlPos: function () { 1815 for (var t in this._controlCorners) T(this._controlCorners[t]); 1816 (T(this._controlContainer), delete this._controlCorners, delete this._controlContainer); 1817 }, 1818 }), 1819 B.extend({ 1820 options: { 1821 collapsed: !0, 1822 position: 'topright', 1823 autoZIndex: !0, 1824 hideSingleBase: !1, 1825 sortLayers: !1, 1826 sortFunction: function (t, e, i, n) { 1827 return i < n ? -1 : n < i ? 1 : 0; 1828 }, 1829 }, 1830 initialize: function (t, e, i) { 1831 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); 1832 for (n in e) this._addLayer(e[n], n, !0); 1833 }, 1834 onAdd: function (t) { 1835 (this._initLayout(), this._update(), (this._map = t).on('zoomend', this._checkDisabledLayers, this)); 1836 for (var e = 0; e < this._layers.length; e++) this._layers[e].layer.on('add remove', this._onLayerChange, this); 1837 return this._container; 1838 }, 1839 addTo: function (t) { 1840 return (B.prototype.addTo.call(this, t), this._expandIfNotCollapsed()); 1841 }, 1842 onRemove: function () { 1843 this._map.off('zoomend', this._checkDisabledLayers, this); 1844 for (var t = 0; t < this._layers.length; t++) this._layers[t].layer.off('add remove', this._onLayerChange, this); 1845 }, 1846 addBaseLayer: function (t, e) { 1847 return (this._addLayer(t, e), this._map ? this._update() : this); 1848 }, 1849 addOverlay: function (t, e) { 1850 return (this._addLayer(t, e, !0), this._map ? this._update() : this); 1851 }, 1852 removeLayer: function (t) { 1853 t.off('add remove', this._onLayerChange, this); 1854 t = this._getLayer(h(t)); 1855 return (t && this._layers.splice(this._layers.indexOf(t), 1), this._map ? this._update() : this); 1856 }, 1857 expand: function () { 1858 (M(this._container, 'leaflet-control-layers-expanded'), (this._section.style.height = null)); 1859 var t = this._map.getSize().y - (this._container.offsetTop + 50); 1860 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); 1861 }, 1862 collapse: function () { 1863 return (z(this._container, 'leaflet-control-layers-expanded'), this); 1864 }, 1865 _initLayout: function () { 1866 var t = 'leaflet-control-layers', 1867 e = (this._container = P('div', t)), 1868 i = this.options.collapsed, 1869 n = (e.setAttribute('aria-haspopup', !0), Ie(e), Be(e), (this._section = P('section', t + '-list'))), 1870 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))); 1871 ((o.href = '#'), 1872 (o.title = 'Layers'), 1873 o.setAttribute('role', 'button'), 1874 S( 1875 o, 1876 { 1877 keydown: function (t) { 1878 13 === t.keyCode && this._expandSafely(); 1879 }, 1880 click: function (t) { 1881 (O(t), this._expandSafely()); 1882 }, 1883 }, 1884 this 1885 ), 1886 i || this.expand(), 1887 (this._baseLayersList = P('div', t + '-base', n)), 1888 (this._separator = P('div', t + '-separator', n)), 1889 (this._overlaysList = P('div', t + '-overlays', n)), 1890 e.appendChild(n)); 1891 }, 1892 _getLayer: function (t) { 1893 for (var e = 0; e < this._layers.length; e++) if (this._layers[e] && h(this._layers[e].layer) === t) return this._layers[e]; 1894 }, 1895 _addLayer: function (t, e, i) { 1896 (this._map && t.on('add remove', this._onLayerChange, this), 1897 this._layers.push({ layer: t, name: e, overlay: i }), 1898 this.options.sortLayers && 1899 this._layers.sort( 1900 a(function (t, e) { 1901 return this.options.sortFunction(t.layer, e.layer, t.name, e.name); 1902 }, this) 1903 ),
1904 this.options.autoZIndex && t.setZIndex && (this._lastZIndex++, t.setZIndex(this._lastZIndex)), 1905 this._expandIfNotCollapsed()); 1906 }, 1907 _update: function () { 1908 if (this._container) { 1909 (me(this._baseLayersList), me(this._overlaysList), (this._layerControlInputs = [])); 1910 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)); 1911 (this.options.hideSingleBase && (this._baseLayersList.style.display = (t = t && 1 < n) ? '' : 'none'), (this._separator.style.display = e && t ? '' : 'none')); 1912 } 1913 return this; 1914 }, 1915 _onLayerChange: function (t) { 1916 this._handlingClick || this._update(); 1917 var e = this._getLayer(h(t.target)), 1918 t = e.overlay ? ('add' === t.type ? 'overlayadd' : 'overlayremove') : 'add' === t.type ? 'baselayerchange' : null; 1919 t && this._map.fire(t, e); 1920 }, 1921 _createRadioElement: function (t, e) { 1922 ((t = '<input type="radio" class="leaflet-control-layers-selector" name="' + t + '"' + (e ? ' checked="checked"' : '') + '/>'), (e = document.createElement('div'))); 1923 return ((e.innerHTML = t), e.firstChild); 1924 }, 1925 _addItem: function (t) { 1926 var e, 1927 i = document.createElement('label'), 1928 n = this._map.hasLayer(t.layer), 1929 n = 1930 (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)), 1931 this._layerControlInputs.push(e), 1932 (e.layerId = h(t.layer)), 1933 S(e, 'click', this._onInputClick, this), 1934 document.createElement('span')), 1935 o = ((n.innerHTML = ' ' + t.name), document.createElement('span')); 1936 return (i.appendChild(o), o.appendChild(e), o.appendChild(n), (t.overlay ? this._overlaysList : this._baseLayersList).appendChild(i), this._checkDisabledLayers(), i); 1937 }, 1938 _onInputClick: function () { 1939 if (!this._preventClick) { 1940 var t, 1941 e, 1942 i = this._layerControlInputs, 1943 n = [], 1944 o = []; 1945 this._handlingClick = !0; 1946 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)); 1947 for (s = 0; s < o.length; s++) this._map.hasLayer(o[s]) && this._map.removeLayer(o[s]); 1948 for (s = 0; s < n.length; s++) this._map.hasLayer(n[s]) || this._map.addLayer(n[s]); 1949 ((this._handlingClick = !1), this._refocusOnMap()); 1950 } 1951 }, 1952 _checkDisabledLayers: function () { 1953 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))); 1954 }, 1955 _expandIfNotCollapsed: function () { 1956 return (this._map && !this.options.collapsed && this.expand(), this); 1957 }, 1958 _expandSafely: function () { 1959 var t = this._section, 1960 e = ((this._preventClick = !0), S(t, 'click', O), this.expand(), this); 1961 setTimeout(function () { 1962 (k(t, 'click', O), (e._preventClick = !1)); 1963 }); 1964 }, 1965 })), 1966 qe = B.extend({ 1967 options: { 1968 position: 'topleft', 1969 zoomInText: '<span aria-hidden="true">+</span>', 1970 zoomInTitle: 'Zoom in', 1971 zoomOutText: '<span aria-hidden="true">−</span>', 1972 zoomOutTitle: 'Zoom out', 1973 }, 1974 onAdd: function (t) { 1975 var e = 'leaflet-control-zoom', 1976 i = P('div', e + ' leaflet-bar'), 1977 n = this.options; 1978 return ( 1979 (this._zoomInButton = this._createButton(n.zoomInText, n.zoomInTitle, e + '-in', i, this._zoomIn)), 1980 (this._zoomOutButton = this._createButton(n.zoomOutText, n.zoomOutTitle, e + '-out', i, this._zoomOut)), 1981 this._updateDisabled(), 1982 t.on('zoomend zoomlevelschange', this._updateDisabled, this), 1983 i 1984 ); 1985 }, 1986 onRemove: function (t) { 1987 t.off('zoomend zoomlevelschange', this._updateDisabled, this); 1988 }, 1989 disable: function () { 1990 return ((this._disabled = !0), this._updateDisabled(), this); 1991 }, 1992 enable: function () { 1993 return ((this._disabled = !1), this._updateDisabled(), this); 1994 }, 1995 _zoomIn: function (t) { 1996 !this._disabled && this._map._zoom < this._map.getMaxZoom() && this._map.zoomIn(this._map.options.zoomDelta * (t.shiftKey ? 3 : 1)); 1997 }, 1998 _zoomOut: function (t) { 1999 !this._disabled && this._map._zoom > this._map.getMinZoom() && this._map.zoomOut(this._map.options.zoomDelta * (t.shiftKey ? 3 : 1)); 2000 }, 2001 _createButton: function (t, e, i, n, o) { 2002 i = P('a', i, n); 2003 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); 2004 }, 2005 _updateDisabled: function () { 2006 var t = this._map, 2007 e = 'leaflet-disabled'; 2008 (z(this._zoomInButton, e), 2009 z(this._zoomOutButton, e), 2010 this._zoomInButton.setAttribute('aria-disabled', 'false'), 2011 this._zoomOutButton.setAttribute('aria-disabled', 'false'),
2012 (!this._disabled && t._zoom !== t.getMinZoom()) || (M(this._zoomOutButton, e), this._zoomOutButton.setAttribute('aria-disabled', 'true')), 2013 (!this._disabled && t._zoom !== t.getMaxZoom()) || (M(this._zoomInButton, e), this._zoomInButton.setAttribute('aria-disabled', 'true'))); 2014 }, 2015 }), 2016 Ge = 2017 (A.mergeOptions({ zoomControl: !0 }), 2018 A.addInitHook(function () { 2019 this.options.zoomControl && ((this.zoomControl = new qe()), this.addControl(this.zoomControl)); 2020 }), 2021 B.extend({ 2022 options: { 2023 position: 'bottomleft', 2024 maxWidth: 100, 2025 metric: !0, 2026 imperial: !0, 2027 }, 2028 onAdd: function (t) { 2029 var e = 'leaflet-control-scale', 2030 i = P('div', e), 2031 n = this.options; 2032 return (this._addScales(n, e + '-line', i), t.on(n.updateWhenIdle ? 'moveend' : 'move', this._update, this), t.whenReady(this._update, this), i); 2033 }, 2034 onRemove: function (t) { 2035 t.off(this.options.updateWhenIdle ? 'moveend' : 'move', this._update, this); 2036 }, 2037 _addScales: function (t, e, i) { 2038 (t.metric && (this._mScale = P('div', e, i)), t.imperial && (this._iScale = P('div', e, i))); 2039 }, 2040 _update: function () { 2041 var t = this._map, 2042 e = t.getSize().y / 2, 2043 t = t.distance(t.containerPointToLatLng([0, e]), t.containerPointToLatLng([this.options.maxWidth, e])); 2044 this._updateScales(t); 2045 }, 2046 _updateScales: function (t) { 2047 (this.options.metric && t && this._updateMetric(t), this.options.imperial && t && this._updateImperial(t)); 2048 }, 2049 _updateMetric: function (t) { 2050 var e = this._getRoundNum(t); 2051 this._updateScale(this._mScale, e < 1e3 ? e + ' m' : e / 1e3 + ' km', e / t); 2052 }, 2053 _updateImperial: function (t) { 2054 var e, 2055 i, 2056 t = 3.2808399 * t; 2057 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)); 2058 }, 2059 _updateScale: function (t, e, i) { 2060 ((t.style.width = Math.round(this.options.maxWidth * i) + 'px'), (t.innerHTML = e)); 2061 }, 2062 _getRoundNum: function (t) { 2063 var e = Math.pow(10, (Math.floor(t) + '').length - 1), 2064 t = t / e; 2065 return e * (t = 10 <= t ? 10 : 5 <= t ? 5 : 3 <= t ? 3 : 2 <= t ? 2 : 1); 2066 }, 2067 })), 2068 Ke = B.extend({ 2069 options: { 2070 position: 'bottomright', 2071 prefix: 2072 '<a href="https://leafletjs.com" title="A JavaScript library for interactive maps">' + 2073 (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> ' : '') + 2074 'Leaflet</a>', 2075 }, 2076 initialize: function (t) { 2077 (c(this, t), (this._attributions = {})); 2078 }, 2079 onAdd: function (t) { 2080 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()); 2081 return (this._update(), t.on('layeradd', this._addAttribution, this), this._container); 2082 }, 2083 onRemove: function (t) { 2084 t.off('layeradd', this._addAttribution, this); 2085 }, 2086 _addAttribution: function (t) { 2087 t.layer.getAttribution && 2088 (this.addAttribution(t.layer.getAttribution()), 2089 t.layer.once( 2090 'remove', 2091 function () { 2092 this.removeAttribution(t.layer.getAttribution()); 2093 }, 2094 this 2095 )); 2096 }, 2097 setPrefix: function (t) { 2098 return ((this.options.prefix = t), this._update(), this); 2099 }, 2100 addAttribution: function (t) { 2101 return (t && (this._attributions[t] || (this._attributions[t] = 0), this._attributions[t]++, this._update()), this); 2102 }, 2103 removeAttribution: function (t) { 2104 return (t && this._attributions[t] && (this._attributions[t]--, this._update()), this); 2105 }, 2106 _update: function () { 2107 if (this._map) { 2108 var t, 2109 e = []; 2110 for (t in this._attributions) this._attributions[t] && e.push(t); 2111 var i = []; 2112 (this.options.prefix && i.push(this.options.prefix), e.length && i.push(e.join(', ')), (this._container.innerHTML = i.join(' <span aria-hidden="true">|</span> '))); 2113 } 2114 }, 2115 }), 2116 n = 2117 (A.mergeOptions({ attributionControl: !0 }), 2118 A.addInitHook(function () { 2119 this.options.attributionControl && new Ke().addTo(this); 2120 }), 2121 (B.Layers = Ve), 2122 (B.Zoom = qe), 2123 (B.Scale = Ge), 2124 (B.Attribution = Ke), 2125 (Ue.layers = function (t, e, i) { 2126 return new Ve(t, e, i); 2127 }), 2128 (Ue.zoom = function (t) { 2129 return new qe(t); 2130 }), 2131 (Ue.scale = function (t) { 2132 return new Ge(t); 2133 }), 2134 (Ue.attribution = function (t) { 2135 return new Ke(t); 2136 }), 2137 et.extend({ 2138 initialize: function (t) { 2139 this._map = t; 2140 }, 2141 enable: function () { 2142 return (this._enabled || ((this._enabled = !0), this.addHooks()), this); 2143 }, 2144 disable: function () { 2145 return (this._enabled && ((this._enabled = !1), this.removeHooks()), this); 2146 }, 2147 enabled: function () { 2148 return !!this._enabled; 2149 }, 2150 })), 2151 ft = 2152 ((n.addTo = function (t, e) { 2153 return (t.addHandler(e, this), this); 2154 }), 2155 { Events: e }), 2156 Ye = b.touch ? 'touchstart mousedown' : 'mousedown', 2157 Xe = it.extend({ 2158 options: { clickTolerance: 3 }, 2159 initialize: function (t, e, i, n) { 2160 (c(this, n), (this._element = t), (this._dragStartTarget = e || t), (this._preventOutline = i)); 2161 }, 2162 enable: function () { 2163 this._enabled || (S(this._dragStartTarget, Ye, this._onDown, this), (this._enabled = !0)); 2164 }, 2165 disable: function () { 2166 this._enabled && (Xe._dragging === this && this.finishDrag(!0), k(this._dragStartTarget, Ye, this._onDown, this), (this._enabled = !1), (this._moved = !1)); 2167 }, 2168 _onDown: function (t) { 2169 var e, i; 2170 this._enabled && 2171 ((this._moved = !1), 2172 ve(this._element, 'leaflet-zoom-anim') || 2173 (t.touches && 1 !== t.touches.length 2174 ? Xe._dragging === this && this.finishDrag() 2175 : Xe._dragging || 2176 t.shiftKey || 2177 (1 !== t.which && 1 !== t.button && !t.touches) || 2178 ((Xe._dragging = this)._preventOutline && Me(this._element), 2179 Le(), 2180 re(), 2181 this._moving || 2182 (this.fire('down'), 2183 (i = t.touches ? t.touches[0] : t), 2184 (e = Ce(this._element)), 2185 (this._startPoint = new p(i.clientX, i.clientY)), 2186 (this._startPos = Pe(this._element)), 2187 (this._parentScale = Ze(e)), 2188 (i = 'mousedown' === t.type), 2189 S(document, i ? 'mousemove' : 'touchmove', this._onMove, this), 2190 S(document, i ? 'mouseup' : 'touchend touchcancel', this._onUp, this))))); 2191 }, 2192 _onMove: function (t) { 2193 var e; 2194 this._enabled && 2195 (t.touches && 1 < t.touches.length 2196 ? (this._moved = !0) 2197 : (!(e = new p((e = t.touches && 1 === t.touches.length ? t.touches[0] : t).clientX, e.clientY)._subtract(this._startPoint)).x && !e.y) || 2198 Math.abs(e.x) + Math.abs(e.y) < this.options.clickTolerance || 2199 ((e.x /= this._parentScale.x), 2200 (e.y /= this._parentScale.y), 2201 O(t), 2202 this._moved || 2203 (this.fire('dragstart'), 2204 (this._moved = !0), 2205 M(document.body, 'leaflet-dragging'), 2206 (this._lastTarget = t.target || t.srcElement), 2207 window.SVGElementInstance && this._lastTarget instanceof window.SVGElementInstance && (this._lastTarget = this._lastTarget.correspondingUseElement), 2208 M(this._lastTarget, 'leaflet-drag-target')), 2209 (this._newPos = this._startPos.add(e)), 2210 (this._moving = !0), 2211 (this._lastEvent = t), 2212 this._updatePosition())); 2213 }, 2214 _updatePosition: function () { 2215 var t = { originalEvent: this._lastEvent }; 2216 (this.fire('predrag', t), Z(this._element, this._newPos), this.fire('drag', t)); 2217 }, 2218 _onUp: function () { 2219 this._enabled && this.finishDrag(); 2220 }, 2221 finishDrag: function (t) { 2222 (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()); 2223 var e = this._moved && this._moving; 2224 ((this._moving = !1), 2225 (Xe._dragging = !1), 2226 e && 2227 this.fire('dragend', { 2228 noInertia: t, 2229 distance: this._newPos.distanceTo(this._startPos), 2230 })); 2231 }, 2232 });
2233 function Je(t, e, i) { 2234 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); 2235 for (s = 0; s < 4; s++) { 2236 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))); 2237 t = n; 2238 } 2239 return t; 2240 } 2241 function $e(t, e) { 2242 var i, n, o, s, r, a, h; 2243 if (!t || 0 === t.length) throw new Error('latlngs not passed'); 2244 I(t) || (console.warn('latlngs are not flat! Only the first ring will be used'), (t = t[0])); 2245 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; _++) { 2246 var p = w(t[_]); 2247 d.push(e.project(w([p.lat - l.lat, p.lng - l.lng]))); 2248 } 2249 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)); 2250 ((u = 0 === r ? d[0] : [a / r, h / r]), (u = e.unproject(m(u)))
2250); 2251 return w([u.lat + l.lat, u.lng + l.lng]); 2252 } 2253 function Qe(t) { 2254 for (var e = 0, i = 0, n = 0, o = 0; o < t.length; o++) { 2255 var s = w(t[o]); 2256 ((e += s.lat), (i += s.lng), n++); 2257 } 2258 return w([e / n, i / n]); 2259 } 2260 var ti, 2261 gt = { __proto__: null, clipPolygon: Je, polygonCenter: $e, centroid: Qe }; 2262 function ei(t, e) { 2263 if (e && t.length) { 2264 var i = (t = (function (t, e) { 2265 for (var i = [t[0]], n = 1, o = 0, s = t.length; n < s; n++) 2266 (function (t, e) { 2267 var i = e.x - t.x, 2268 e = e.y - t.y; 2269 return i * i + e * e; 2270 })(t[n], t[o]) > e && (i.push(t[n]), (o = n)); 2271 o < s - 1 && i.push(t[s - 1]); 2272 return i; 2273 })(t, (e = e * e))), 2274 n = i.length, 2275 o = new (typeof Uint8Array != void 0 + '' ? Uint8Array : Array)(n); 2276 ((o[0] = o[n - 1] = 1), 2277 (function t(e, i, n, o, s) { 2278 var r, 2279 a, 2280 h, 2281 l = 0; 2282 for (a = o + 1; a <= s - 1; a++) ((h = ri(e[a], e[o], e[s], !0)), l < h && ((r = a), (l = h))); 2283 n < l && ((i[r] = 1), t(e, i, n, o, r), t(e, i, n, r, s)); 2284 })(i, o, e, 0, n - 1)); 2285 var s, 2286 r = []; 2287 for (s = 0; s < n; s++) o[s] && r.push(i[s]); 2288 return r; 2289 } 2290 return t.slice(); 2291 } 2292 function ii(t, e, i) { 2293 return Math.sqrt(ri(t, e, i, !0)); 2294 } 2295 function ni(t, e, i, n, o) { 2296 var s, 2297 r, 2298 a, 2299 h = n ? ti : si(t, i), 2300 l = si(e, i); 2301 for (ti = l; ; ) { 2302 if (!(h | l)) return [t, e]; 2303 if (h & l) return !1; 2304 ((a = si((r = oi(t, e, (s = h || l), i, o)), i)), s === h ? ((t = r), (h = a)) : ((e = r), (l = a))); 2305 } 2306 } 2307 function oi(t, e, i, n, o) { 2308 var s, 2309 r, 2310 a = e.x - t.x, 2311 e = e.y - t.y, 2312 h = n.min, 2313 n = n.max; 2314 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)); 2315 } 2316 function si(t, e) { 2317 var i = 0; 2318 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); 2319 } 2320 function ri(t, e, i, n) { 2321 var o = e.x, 2322 e = e.y, 2323 s = i.x - o, 2324 r = i.y - e, 2325 a = s * s + r * r; 2326 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)); 2327 } 2328 function I(t) { 2329 return !d(t[0]) || ('object' != typeof t[0][0] && void 0 !== t[0][0]); 2330 } 2331 function ai(t) { 2332 return (console.warn('Deprecated use of _flat, please use L.LineUtil.isFlat instead.'), I(t)); 2333 } 2334 function hi(t, e) { 2335 var i, n, o, s, r, a; 2336 if (!t || 0 === t.length) throw new Error('latlngs not passed'); 2337 I(t) || (console.warn('latlngs are not flat! Only the first ring will be used'), (t = t[0])); 2338 for (var h = w([0, 0]), l = g(t), u = (l.getNorthWest().distanceTo(l.getSouthWest
2338()) * l.getNorthEast().distanceTo(l.getNorthWest()) < 1700 && (h = Qe(t)), t.length), c = [], d = 0; d < u; d++) { 2339 var _ = w(t[d]); 2340 c.push(e.project(w([_.lat - h.lat, _.lng - h.lng]))); 2341 } 2342 for (i = d = 0; d < u - 1; d++) i += c[d].distanceTo(c[d + 1]) / 2; 2343 if (0 === i) a = c[0]; 2344 else 2345 for (n = d = 0; d < u - 1; d++) 2346 if (((o = c[d]), (s = c[d + 1]), i < (n += r = o.distanceTo(s)))) { 2347 a = [s.x - (r = (n - i) / r) * (s.x - o.x), s.y - r * (s.y - o.y)]; 2348 break; 2349 } 2350 l = e.unproject(m(a)); 2351 return w([l.lat + h.lat, l.lng + h.lng]); 2352 } 2353 var vt = { 2354 __proto__: null, 2355 simplify: ei, 2356 pointToSegmentDistance: ii, 2357 closestPointOnSegment: function (t, e, i) { 2358 return ri(t, e, i); 2359 }, 2360 clipSegment: ni, 2361 _getEdgeIntersection: oi, 2362 _getBitCode: si, 2363 _sqClosestPointOnSegment: ri, 2364 isFlat: I, 2365 _flat: ai, 2366 polylineCenter: hi, 2367 }, 2368 yt = { 2369 project: function (t) { 2370 return new p(t.lng, t.lat); 2371 }, 2372 unproject: function (t) { 2373 return new v(t.y, t.x); 2374 }, 2375 bounds: new f([-180, -90], [180, 90]), 2376 }, 2377 xt = { 2378 R: 6378137, 2379 R_MINOR: 6356752.314245179, 2380 bounds: new f([-20037508.34279, -15496570.73972], [20037508.34279, 18764656.23138]), 2381 project: function (t) { 2382 var e = Math.PI / 180, 2383 i = this.R, 2384 n = t.lat * e, 2385 o = this.R_MINOR / i, 2386 o = Math.sqrt(1 - o * o), 2387 s = o * Math.sin(n), 2388 s = Math.tan(Math.PI / 4 - n / 2) / Math.pow((1 - s) / (1 + s), o / 2), 2389 n = -i * Math.log(Math.max(s, 1e-10)); 2390 return new p(t.lng * e * i, n); 2391 }, 2392 unproject: function (t) { 2393 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++) 2394 ((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)); 2395 return new v(a * i, (t.x * i) / n); 2396 }, 2397 }, 2398 wt = { __proto__: null, LonLat: yt, Mercator: xt, SphericalMercator: rt }, 2399 Pt = l({}, st, { 2400 code: 'EPSG:3395', 2401 projection: xt, 2402 transformation: ht((bt = 0.5 / (Math.PI * xt.R)), 0.5, -bt, 0.5), 2403 }), 2404 li = l({}, st, { 2405 code: 'EPSG:4326', 2406 projection: yt, 2407 transformation: ht(1 / 180, 1, -1 / 180, 0.5), 2408 }), 2409 Lt = l({}, ot, { 2410 projection: yt, 2411 transformation: ht(1, 0, -1, 0), 2412 scale: function (t) { 2413 return Math.pow(2, t); 2414 }, 2415 zoom: function (t) { 2416 return Math.log(t) / Math.LN2; 2417 }, 2418 distance: function (t, e) { 2419 var i = e.lng - t.lng, 2420 e = e.lat - t.lat; 2421 return Math.sqrt(i * i + e * e); 2422 }, 2423 infinite: !0, 2424 }), 2425 o = 2426 ((ot.Earth = st), 2427 (ot.EPSG3395 = Pt), 2428 (ot.EPSG3857 = lt), 2429 (ot.EPSG900913 = ut), 2430 (ot.EPSG4326 = li), 2431 (ot.Simple = Lt), 2432 it.extend({ 2433 options: { 2434 pane: 'overlayPane', 2435 attribution: null, 2436 bubblingMouseEvents: !0, 2437 }, 2438 addTo: function (t) { 2439 return (t.addLayer(this), this); 2440 }, 2441 remove: function () { 2442 return this.removeFrom(this._map || this._mapToAdd); 2443 }, 2444 removeFrom: function (t) { 2445 return (t && t.removeLayer(this), this); 2446 }, 2447 getPane: function (t) { 2448 return this._map.getPane(t ? this.options[t] || t : this.options.pane); 2449 }, 2450 addInteractiveTarget: function (t) { 2451 return (this._map._targets[h(t)] = this); 2452 }, 2453 removeInteractiveTarget: function (t) { 2454 return (delete this._map._targets[h(t)], this); 2455 }, 2456 getAttribution: function () { 2457 return this.options.attribution; 2458 }, 2459 _layerAdd: function (t) { 2460 var e, 2461 i = t.target; 2462 i.hasLayer(this) && 2463 ((this._map = i), 2464 (this._zoomAnimated = i._zoomAnimated), 2465 this.getEvents && 2466 ((e = this.getEvents()), 2467 i.on(e, this), 2468 this.once( 2469 'remove', 2470 function () { 2471 i.off(e, this); 2472 }, 2473 this 2474 )), 2475 this.onAdd(i), 2476 this.fire('add'), 2477 i.fire('layeradd', { layer: this })); 2478 }, 2479 })), 2480 ui = 2481 (A.include({ 2482 addLayer: function (t) { 2483 var e; 2484 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); 2485 throw new Error('The provided object is not a Layer.'); 2486 }, 2487 removeLayer: function (t) { 2488 var e = h(t); 2489 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); 2490 }, 2491 hasLayer: function (t) {
2492 return h(t) in this._layers; 2493 }, 2494 eachLayer: function (t, e) { 2495 for (var i in this._layers) t.call(e, this._layers[i]); 2496 return this; 2497 }, 2498 _addLayers: function (t) { 2499 for (var e = 0, i = (t = t ? (d(t) ? t : [t]) : []).length; e < i; e++) this.addLayer(t[e]); 2500 }, 2501 _addZoomLimit: function (t) { 2502 (isNaN(t.options.maxZoom) && isNaN(t.options.minZoom)) || ((this._zoomBoundLayers[h(t)] = t), this._updateZoomLevels()); 2503 }, 2504 _removeZoomLimit: function (t) { 2505 t = h(t); 2506 this._zoomBoundLayers[t] && (delete this._zoomBoundLayers[t], this._updateZoomLevels()); 2507 }, 2508 _updateZoomLevels: function () { 2509 var t, 2510 e = 1 / 0, 2511 i = -1 / 0, 2512 n = this._getZoomSpan(); 2513 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); 2514 ((this._layersMaxZoom = i === -1 / 0 ? void 0 : i), 2515 (this._layersMinZoom = e === 1 / 0 ? void 0 : e), 2516 n !== this._getZoomSpan() && this.fire('zoomlevelschange'), 2517 void 0 === this.options.maxZoom && this._layersMaxZoom && this.getZoom() > this._layersMaxZoom && this.setZoom(this._layersMaxZoom), 2518 void 0 === this.options.minZoom && this._layersMinZoom && this.getZoom() < this._layersMinZoom && this.setZoom(this._layersMinZoom)); 2519 }, 2520 }), 2521 o.extend({ 2522 initialize: function (t, e) { 2523 var i, n; 2524 if ((c(this, e), (this._layers = {}), t)) for (i = 0, n = t.length; i < n; i++) this.addLayer(t[i]); 2525 }, 2526 addLayer: function (t) { 2527 var e = this.getLayerId(t); 2528 return ((this._layers[e] = t), this._map && this._map.addLayer(t), this); 2529 }, 2530 removeLayer: function (t) { 2531 t = t in this._layers ? t : this.getLayerId(t); 2532 return (this._map && this._layers[t] && this._map.removeLayer(this._layers[t]), delete this._layers[t], this); 2533 }, 2534 hasLayer: function (t) { 2535 return ('number' == typeof t ? t : this.getLayerId(t)) in this._layers; 2536 }, 2537 clearLayers: function () { 2538 return this.eachLayer(this.removeLayer, this); 2539 }, 2540 invoke: function (t) { 2541 var e, 2542 i, 2543 n = Array.prototype.slice.call(arguments, 1); 2544 for (e in this._layers) (i = this._layers[e])[t] && i[t].apply(i, n); 2545 return this; 2546 }, 2547 onAdd: function (t) { 2548 this.eachLayer(t.addLayer, t); 2549 }, 2550 onRemove: function (t) { 2551 this.eachLayer(t.removeLayer, t); 2552 }, 2553 eachLayer: function (t, e) { 2554 for (var i in this._layers) t.call(e, this._layers[i]); 2555 return this; 2556 }, 2557 getLayer: function (t) { 2558 return this._layers[t]; 2559 }, 2560 getLayers: function () { 2561 var t = []; 2562 return (this.eachLayer(t.push, t), t); 2563 }, 2564 setZIndex: function (t) { 2565 return this.invoke('setZIndex', t); 2566 }, 2567 getLayerId: h, 2568 })), 2569 ci = ui.extend({ 2570 addLayer: function (t) { 2571 return this.hasLayer(t) ? this : (t.addEventParent(this), ui.prototype.addLayer.call(this, t), this.fire('layeradd', { layer: t })); 2572 }, 2573 removeLayer: function (t) { 2574 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; 2575 }, 2576 setStyle: function (t) { 2577 return this.invoke('setStyle', t); 2578 }, 2579 bringToFront: function () { 2580 return this.invoke('bringToFront'); 2581 }, 2582 bringToBack: function () { 2583 return this.invoke('bringToBack'); 2584 }, 2585 getBounds: function () { 2586 var t, 2587 e = new s(); 2588 for (t in this._layers) { 2589 var i = this._layers[t]; 2590 e.extend(i.getBounds ? i.getBounds() : i.getLatLng()); 2591 } 2592 return e; 2593 }, 2594 }), 2595 di = et.extend({ 2596 options: { popupAnchor: [0, 0], tooltipAnchor: [0, 0], crossOrigin: !1 }, 2597 initialize: function (t) { 2598 c(this, t); 2599 }, 2600 createIcon: function (t) { 2601 return this._createIcon('icon', t); 2602 }, 2603 createShadow: function (t) { 2604 return this._createIcon('shadow', t); 2605 }, 2606 _createIcon: function (t, e) { 2607 var i = this._getIconUrl(t); 2608 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); 2609 if ('icon' === t) throw new Error('iconUrl not set in Icon options (see the docs).'); 2610 return null; 2611 }, 2612 _setIconStyles: function (t, e) { 2613 var i = this.options, 2614 n = i[e + 'Size'], 2615 n = m((n = 'number' == typeof n ? [n, n] : n)), 2616 o = m(('shadow' === e && i.shadowAnchor) || i.iconAnchor || (n && n.divideBy(2, !0))); 2617 ((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'))); 2618 }, 2619 _createImg: function (t, e) { 2620 return (((e = e || document.createElement('img')).src = t), e); 2621 }, 2622 _getIconUrl: function (t) { 2623 return (b.retina && this.options[t + 'RetinaUrl']) || this.options[t + 'Url']; 2624 }, 2625 });
2626 var _i = di.extend({ 2627 options: { 2628 iconUrl: 'marker-icon.png', 2629 iconRetinaUrl: 'marker-icon-2x.png', 2630 shadowUrl: 'marker-shadow.png', 2631 iconSize: [25, 41], 2632 iconAnchor: [12, 41], 2633 popupAnchor: [1, -34], 2634 tooltipAnchor: [16, -28], 2635 shadowSize: [41, 41], 2636 }, 2637 _getIconUrl: function (t) { 2638 return ('string' != typeof _i.imagePath && (_i.imagePath = this._detectIconPath()), (this.options.imagePath || _i.imagePath) + di.prototype._getIconUrl.call(this, t)); 2639 }, 2640 _stripUrl: function (t) { 2641 function e(t, e, i) { 2642 return (e = e.exec(t)) && e[i]; 2643 } 2644 return (t = e(t, /^url\((['"])?(.+)\1\)$/, 2)) && e(t, /^(.*)marker-icon\.png$/, 1); 2645 }, 2646 _detectIconPath: function () { 2647 var t = P('div', 'leaflet-default-icon-path', document.body), 2648 e = pe(t, 'background-image') || pe(t, 'backgroundImage'); 2649 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) : ''); 2650 }, 2651 }), 2652 pi = n.extend({ 2653 initialize: function (t) { 2654 this._marker = t; 2655 }, 2656 addHooks: function () { 2657 var t = this._marker._icon; 2658 (this._draggable || (this._draggable = new Xe(t, t, !0)), 2659 this._draggable 2660 .on( 2661 { 2662 dragstart: this._onDragStart, 2663 predrag: this._onPreDrag, 2664 drag: this._onDrag, 2665 dragend: this._onDragEnd, 2666 }, 2667 this 2668 ) 2669 .enable(), 2670 M(t, 'leaflet-marker-draggable')); 2671 }, 2672 removeHooks: function () { 2673 (this._draggable 2674 .off( 2675 { 2676 dragstart: this._onDragStart, 2677 predrag: this._onPreDrag, 2678 drag: this._onDrag, 2679 dragend: this._onDragEnd, 2680 }, 2681 this 2682 ) 2683 .disable(), 2684 this._marker._icon && z(this._marker._icon, 'leaflet-marker-draggable')); 2685 }, 2686 moved: function () { 2687 return this._draggable && this._draggable._moved; 2688 }, 2689 _adjustPan: function (t) { 2690 var e = this._marker, 2691 i = e._map, 2692 n = this._marker.options.autoPanSpeed, 2693 o = this._marker.options.autoPanPadding, 2694 s = Pe(e._icon), 2695 r = i.getPixelBounds(), 2696 a = i.getPixelOrigin(), 2697 a = _(r.min._subtract(a).add(o), r.max._subtract(a).subtract(o)); 2698 a.contains(s) || 2699 ((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)), 2700 i.panBy(o, { animate: !1 }), 2701 this._draggable._newPos._add(o), 2702 this._draggable._startPos._add(o), 2703 Z(e._icon, this._draggable._newPos), 2704 this._onDrag(t), 2705 (this._panRequest = x(this._adjustPan.bind(this, t)))); 2706 }, 2707 _onDragStart: function () { 2708 ((this._oldLatLng = this._marker.getLatLng()), this._marker.closePopup && this._marker.closePopup(), this._marker.fire('movestart').fire('dragstart')); 2709 }, 2710 _onPreDrag: function (t) { 2711 this._marker.options.autoPan && (r(this._panRequest), (this._panRequest = x(this._adjustPan.bind(this, t)))); 2712 }, 2713 _onDrag: function (t) { 2714 var e = this._marker, 2715 i = e._shadow, 2716 n = Pe(e._icon), 2717 o = e._map.layerPointToLatLng(n); 2718 (i && Z(i, n), (e._latlng = o), (t.latlng = o), (t.oldLatLng = this._oldLatLng), e.fire('move', t).fire('drag', t)); 2719 }, 2720 _onDragEnd: function (t) { 2721 (r(this._panRequest), delete this._oldLatLng, this._marker.fire('moveend').fire('dragend', t)); 2722 }, 2723 }), 2724 mi = o.extend({ 2725 options: { 2726 icon: new _i(), 2727 interactive: !0, 2728 keyboard: !0, 2729 title: '', 2730 alt: 'Marker', 2731 zIndexOffset: 0, 2732 opacity: 1, 2733 riseOnHover: !1, 2734 riseOffset: 250, 2735 pane: 'markerPane', 2736 shadowPane: 'shadowPane', 2737 bubblingMouseEvents: !1, 2738 autoPanOnFocus: !0, 2739 draggable: !1, 2740 autoPan: !1, 2741 autoPanPadding: [50, 50], 2742 autoPanSpeed: 10, 2743 }, 2744 initialize: function (t, e) { 2745 (c(this, e), (this._latlng = w(t))); 2746 }, 2747 onAdd: function (t) { 2748 ((this._zoomAnimated = this._zoomAnimated && t.options.markerZoomAnimation), this._zoomAnimated && t.on('zoomanim', this._animateZoom, this), this._initIcon(), this.update()); 2749 }, 2750 onRemove: function (t) { 2751 (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()); 2752 }, 2753 getEvents: function () { 2754 return { zoom: this.update, viewreset: this.update }; 2755 }, 2756 getLatLng: function () { 2757 return this._latlng; 2758 }, 2759 setLatLng: function (t) { 2760 var e = this._latlng; 2761 return ((this._latlng = w(t)), this.update(), this.fire('move', { oldLatLng: e, latlng: this._latlng })); 2762 }, 2763 setZIndexOffset: function (t) { 2764 return ((this.options.zIndexOffset = t), this.update()); 2765 }, 2766 getIcon: function () { 2767 return this.options.icon; 2768 }, 2769 setIcon: function (t) { 2770 return ((this.options.icon = t), this._map && (this._initIcon(), this.update()), this._popup && this.bindPopup(this._popup, this._popup.options), this); 2771 }, 2772 getElement: function () { 2773 return this._icon; 2774 }, 2775 update: function () { 2776 var t; 2777 return (this._icon && this._map && ((t = this._map.latLngToLayerPoint(this._latlng).round()), this._setPos(t)), this); 2778 }, 2779 _initIcon: function () { 2780 var t = this.options, 2781 e = 'leaflet-zoom-' + (this._zoomAnimated ? 'animated' : 'hide'), 2782 i = t.icon.createIcon(this._icon), 2783 n = !1, 2784 i = 2785 (i !== this._icon && (this._icon && this._removeIcon(), (n = !0), t.title && (i.title = t.title), 'IMG' === i.tagName && (i.alt = t.alt || '')), 2786 M(i, e), 2787 t.keyboard && ((i.tabIndex = '0'), i.setAttribute('role', 'button')), 2788 (this._icon = i), 2789 t.riseOnHover && 2790 this.on({ 2791 mouseover: this._bringToFront, 2792 mouseout: this._resetZIndex, 2793 }), 2794 this.options.autoPanOnFocus && S(i, 'focus', this._panOnFocus, this), 2795 t.icon.createShadow(this._shadow)), 2796 o = !1; 2797 (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)); 2798 }, 2799 _removeIcon: function () { 2800 (this.options.riseOnHover && 2801 this.off({ 2802 mouseover: this._bringToFront, 2803 mouseout: this._resetZIndex, 2804 }), 2805 this.options.autoPanOnFocus && k(this._icon, 'focus', this._panOnFocus, this), 2806 T(this._icon), 2807 this.removeInteractiveTarget(this._icon), 2808 (this._icon = null)); 2809 }, 2810 _removeShadow: function () { 2811 (this._shadow && T(this._shadow), (this._shadow = null)); 2812 }, 2813 _setPos: function (t) { 2814 (this._icon && Z(this._icon, t), this._shadow && Z(this._shadow, t), (this._zIndex = t.
2814y + this.options.zIndexOffset), this._resetZIndex()); 2815 }, 2816 _updateZIndex: function (t) { 2817 this._icon && (this._icon.style.zIndex = this._zIndex + t); 2818 }, 2819 _animateZoom: function (t) { 2820 t = this._map._latLngToNewLayerPoint(this._latlng, t.zoom, t.center).round(); 2821 this._setPos(t); 2822 }, 2823 _initInteraction: function () { 2824 var t; 2825 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())); 2826 }, 2827 setOpacity: function (t) { 2828 return ((this.options.opacity = t), this._map && this._updateOpacity(), this); 2829 }, 2830 _updateOpacity: function () { 2831 var t = this.options.opacity; 2832 (this._icon && C(this._icon, t), this._shadow && C(this._shadow, t)); 2833 }, 2834 _bringToFront: function () { 2835 this._updateZIndex(this.options.riseOffset); 2836 }, 2837 _resetZIndex: function () { 2838 this._updateZIndex(0); 2839 }, 2840 _panOnFocus: function () { 2841 var t, 2842 e, 2843 i = this._map; 2844 i && 2845 ((t = (e = this.options.icon.options).iconSize ? m(e.iconSize) : m(0, 0)), 2846 (e = e.iconAnchor ? m(e.iconAnchor) : m(0, 0)), 2847 i.panInside(this._latlng, { 2848 paddingTopLeft: e, 2849 paddingBottomRight: t.subtract(e), 2850 })); 2851 }, 2852 _getPopupAnchor: function () { 2853 return this.options.icon.options.popupAnchor; 2854 }, 2855 _getTooltipAnchor: function () { 2856 return this.options.icon.options.tooltipAnchor; 2857 }, 2858 }); 2859 var fi = o.extend({ 2860 options: { 2861 stroke: !0, 2862 color: '#3388ff', 2863 weight: 3, 2864 opacity: 1, 2865 lineCap: 'round', 2866 lineJoin: 'round', 2867 dashArray: null, 2868 dashOffset: null, 2869 fill: !1, 2870 fillColor: null, 2871 fillOpacity: 0.2, 2872 fillRule: 'evenodd', 2873 interactive: !0, 2874 bubblingMouseEvents: !0, 2875 }, 2876 beforeAdd: function (t) { 2877 this._renderer = t.getRenderer(this); 2878 }, 2879 onAdd: function () { 2880 (this._renderer._initPath(this), this._reset(), this._renderer._addPath(this)); 2881 }, 2882 onRemove: function () { 2883 this._renderer._removePath(this); 2884 }, 2885 redraw: function () { 2886 return (this._map && this._renderer._updatePath(this), this); 2887 }, 2888 setStyle: function (t) { 2889 return (c(this, t), this._renderer && (this._renderer._updateStyle(this), this.options.stroke && t && Object.prototype.hasOwnProperty.call(t, 'weight') && this._updateBounds()), this); 2890 }, 2891 bringToFront: function () { 2892 return (this._renderer && this._renderer._bringToFront(this), this); 2893 }, 2894 bringToBack: function () { 2895 return (this._renderer && this._renderer._bringToBack(this), this); 2896 }, 2897 getElement: function () { 2898 return this._path; 2899 }, 2900 _reset: function () { 2901 (this._project(), this._update()); 2902 }, 2903 _clickTolerance: function () { 2904 return (this.options.stroke ? this.options.weight / 2 : 0) + (this._renderer.options.tolerance || 0); 2905 }, 2906 }), 2907 gi = fi.extend({ 2908 options: { fill: !0, radius: 10 }, 2909 initialize: function (t, e) { 2910 (c(this, e), (this._latlng = w(t)), (this._radius = this.options.radius)); 2911 }, 2912 setLatLng: function (t) { 2913 var e = this._latlng; 2914 return ((this._latlng = w(t)), this.redraw(), this.fire('move', { oldLatLng: e, latlng: this._latlng })); 2915 }, 2916 getLatLng: function () { 2917 return this._latlng; 2918 }, 2919 setRadius: function (t) { 2920 return ((this.options.radius = this._radius = t), this.redraw()); 2921 }, 2922 getRadius: function () { 2923 return this._radius; 2924 }, 2925 setStyle: function (t) {
2926 var e = (t && t.radius) || this._radius; 2927 return (fi.prototype.setStyle.call(this, t), this.setRadius(e), this); 2928 }, 2929 _project: function () { 2930 ((this._point = this._map.latLngToLayerPoint(this._latlng)), this._updateBounds()); 2931 }, 2932 _updateBounds: function () { 2933 var t = this._radius, 2934 e = this._radiusY || t, 2935 i = this._clickTolerance(), 2936 t = [t + i, e + i]; 2937 this._pxBounds = new f(this._point.subtract(t), this._point.add(t)); 2938 }, 2939 _update: function () { 2940 this._map && this._updatePath(); 2941 }, 2942 _updatePath: function () { 2943 this._renderer._updateCircle(this); 2944 }, 2945 _empty: function () { 2946 return this._radius && !this._renderer._bounds.intersects(this._pxBounds); 2947 }, 2948 _containsPoint: function (t) { 2949 return t.distanceTo(this._point) <= this._radius + this._clickTolerance(); 2950 }, 2951 }); 2952 var vi = gi.extend({ 2953 initialize: function (t, e, i) { 2954 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'); 2955 this._mRadius = this.options.radius; 2956 }, 2957 setRadius: function (t) { 2958 return ((this._mRadius = t), this.redraw()); 2959 }, 2960 getRadius: function () { 2961 return this._mRadius; 2962 }, 2963 getBounds: function () { 2964 var t = [this._radius, this._radiusY || this._radius]; 2965 return new s(this._map.layerPointToLatLng(this._point.subtract(t)), this._map.layerPointToLatLng(this._point.add(t))); 2966 }, 2967 setStyle: fi.prototype.setStyle, 2968 _project: function () { 2969 var t, 2970 e, 2971 i, 2972 n, 2973 o, 2974 s = this._latlng.lng, 2975 r = this._latlng.lat, 2976 a = this._map, 2977 h = a.options.crs; 2978 (h.distance === st.distance 2979 ? ((n = Math.PI / 180), 2980 (o = this._mRadius / st.R / n), 2981 (t = a.project([r + o, s])), 2982 (e = a.project([r - o, s])), 2983 (e = t.add(e).divideBy(2)), 2984 (i = a.unproject(e).lat), 2985 (n = Math.acos((Math.cos(o * n) - Math.sin(r * n) * Math.sin(i * n)) / (Math.cos(r * n) * Math.cos(i * n))) / n), 2986 (!isNaN(n) && 0 !== n) || (n = o / Math.cos((Math.PI / 180) * r)), 2987 (this._point = e.subtract(a.getPixelOrigin())), 2988 (this._radius = isNaN(n) ? 0 : e.x - a.project([i, s - n]).x), 2989 (this._radiusY = e.y - t.y)) 2990 : ((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)), 2991 this._updateBounds()); 2992 }, 2993 }); 2994 var yi = fi.extend({ 2995 options: { smoothFactor: 1, noClip: !1 }, 2996 initialize: function (t, e) { 2997 (c(this, e), this._setLatLngs(t)); 2998 }, 2999 getLatLngs: function () { 3000 return this._latlngs; 3001 }, 3002 setLatLngs: function (t) { 3003 return (this._setLatLngs(t), this.redraw()); 3004 }, 3005 isEmpty: function () { 3006 return !this._latlngs.length; 3007 }, 3008 closestLayerPoint: function (t) { 3009 for (var e = 1 / 0, i = null, n = ri, o = 0, s = this._parts.length; o < s; o++) 3010 for (var r = this._parts[o], a = 1, h = r.length; a < h; a++) { 3011 var l, 3012 u, 3013 c = n(t, (l = r[a - 1]), (u = r[a]), !0); 3014 c < e && ((e = c), (i = n(t, l, u))); 3015 } 3016 return (i && (i.distance = Math.sqrt(e)), i); 3017 }, 3018 getCenter: function () { 3019 if (this._map) return hi(this._defaultShape(), this._map.options.crs); 3020 throw new Error('Must add layer to map before using getCenter()'); 3021 }, 3022 getBounds: function () { 3023 return this._bounds; 3024 }, 3025 addLatLng: function (t, e) { 3026 return ((e = e || this._defaultShape()), (t = w(t)), e.push(t), this._bounds.extend(t), this.redraw()); 3027 }, 3028 _setLatLngs: function (t) { 3029 ((this._bounds = new s()), (this._latlngs = this._convertLatLngs(t))); 3030 }, 3031 _defaultShape: function () { 3032 return I(this._latlngs) ? this._latlngs : this._latlngs[0]; 3033 }, 3034 _convertLatLngs: function (t) { 3035 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])); 3036 return e; 3037 }, 3038 _project: function () { 3039 var t = new f(); 3040 ((this._rings = []), this._projectLatlngs(this._latlngs, this._rings, t), this._bounds.isValid() && t.isValid() && ((this._rawPxBounds = t), this._updateBounds())); 3041 }, 3042 _updateBounds: function () { 3043 var t = this._clickTolerance(), 3044 t = new p(t, t); 3045 this._rawPxBounds && (this._pxBounds = new f([this._rawPxBounds.min.subtract(t), this._rawPxBounds.max.add(t)])); 3046 }, 3047 _projectLatlngs: function (t, e, i) { 3048 var n, 3049 o, 3050 s = t[0] instanceof v, 3051 r = t.length; 3052 if (s) { 3053 for (o = [], n = 0; n < r; n++) ((o[n] = this._map.latLngToLayerPoint(t[n])), i.extend(o[n])); 3054 e.push(o); 3055 } else for (n = 0; n < r; n++) this._projectLatlngs(t[n], e, i); 3056 }, 3057 _clipPoints: function () { 3058 var t = this._renderer._bounds; 3059 if (((this._parts = []), this._pxBounds && this._pxBounds.intersects(t))) 3060 if (this.options.noClip) this._parts = this._rings; 3061 else 3062 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++)); 3063 }, 3064 _simplifyPoints: function () { 3065 for (var t = this._parts, e = this.options.smoothFactor, i = 0, n = t.length; i < n; i++) t[i] = ei(t[i], e); 3066 }, 3067 _update: function () { 3068 this._map && (this._clipPoints(), this._simplifyPoints(), this._updatePath()); 3069 }, 3070 _updatePath: function () { 3071 this._renderer._updatePoly(this); 3072 }, 3073 _containsPoint: function (t, e) { 3074 var i, 3075 n, 3076 o, 3077 s, 3078 r, 3079 a, 3080 h = this._clickTolerance(); 3081 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; 3082 return !1; 3083 }, 3084 }); 3085 yi._flat = ai; 3086 var xi = yi.extend({ 3087 options: { fill: !0 }, 3088 isEmpty: function () { 3089 return !this._latlngs.length || !this._latlngs[0].length; 3090 }, 3091 getCenter: function () { 3092 if (this._map) return $e(this._defaultShape(), this._map.options.crs); 3093 throw new Error('Must add layer to map before using getCenter()'); 3094 }, 3095 _convertLatLngs: function (t) { 3096 var t = yi.prototype._convertLatLngs.call(this, t), 3097 e = t.length; 3098 return (2 <= e && t[0] instanceof v && t[0].equals(t[e - 1]) && t.pop(), t); 3099 }, 3100 _setLatLngs: function (t) { 3101 (yi.prototype._setLatLngs.call(this, t), I(this._latlngs) && (this._latlngs = [this._latlngs])); 3102 }, 3103 _defaultShape: function () { 3104 return (I(this._latlngs[0]) ? this._latlngs : this._latlngs[0])[0]; 3105 }, 3106 _clipPoints: function () { 3107 var t = this._renderer._bounds, 3108 e = this.options.weight, 3109 e = new p(e, e), 3110 t = new f(t.min.subtract(e), t.max.add(e)); 3111 if (((this._parts = []), this._pxBounds && this._pxBounds.intersects(t))) 3112 if (this.options.noClip) this._parts = this._rings; 3113 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); 3114 }, 3115 _updatePath: function () { 3116 this._renderer._updatePoly(this, !0); 3117 }, 3118 _containsPoint: function (t) { 3119 var e, 3120 i, 3121 n, 3122 o, 3123 s, 3124 r, 3125 a, 3126 h, 3127 l = !1; 3128 if (!this._pxBounds || !this._pxBounds.contains(t)) return !1; 3129 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)); 3130 return l || yi.prototype._containsPoint.call(this, t, !0); 3131 }, 3132 }); 3133 var wi = ci.extend({ 3134 initialize: function (t, e) { 3135 (c(this, e), (this._layers = {}), t && this.addData(t)); 3136 }, 3137 addData: function (t) { 3138 var e, 3139 i, 3140 n, 3141 o = d(t) ? t : t.features; 3142 if (o) { 3143 for (e = 0, i = o.length; e < i; e++) ((n = o[e]).geometries || n.geometry || n.features || n.coordinates) && this.addData(n); 3144 return this; 3145 } 3146 var s, 3147 r = this.options; 3148 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; 3149 }, 3150 resetStyle: function (t) { 3151 return void 0 === t ? this.eachLayer(this.resetStyle, this) : ((t.options = l({}, t.defaultOptions)), this._setLayerStyle(t, this.options.style), this); 3152 }, 3153 setStyle: function (e) { 3154 return this.eachLayer(function (t) { 3155 this._setLayerStyle(t, e); 3156 }, this); 3157 }, 3158 _setLayerStyle: function (t, e) { 3159 t.setStyle && ('function' == typeof e && (e = e(t.feature)), t.setStyle(e)); 3160 }, 3161 }); 3162 function bi(t, e) { 3163 var i, 3164 n, 3165 o, 3166 s, 3167 r = 'Feature' === t.type ? t.geometry : t, 3168 a = r ? r.coordinates : null, 3169 h = [], 3170 l = e && e.pointToLayer, 3171 u = (e && e.coordsToLatLng) || Li; 3172 if (!a && !r) return null; 3173 switch (r.type) { 3174 case 'Point': 3175 return Pi(l, t, (i = u(a)), e); 3176 case 'MultiPoint': 3177 for (o = 0, s = a.length; o < s; o++) ((i = u(a[o])), h.push(Pi(l, t, i, e))); 3178 return new ci(h); 3179 case 'LineString': 3180 case 'MultiLineString': 3181 return ((n = Ti(a, 'LineString' === r.type ? 0 : 1, u)), new yi(n, e)); 3182 case 'Polygon': 3183 case 'MultiPolygon': 3184 return ((n = Ti(a, 'Polygon' === r.type ? 1 : 2, u)), new xi(n, e)); 3185 case 'GeometryCollection': 3186 for (o = 0, s = r.geometries.length; o < s; o++) { 3187 var c = bi( 3188 { 3189 geometry: r.geometries[o], 3190 type: 'Feature', 3191 properties: t.properties, 3192 }, 3193 e 3194 ); 3195 c && h.push(c); 3196 } 3197 return new ci(h); 3198 case 'FeatureCollection': 3199 for (o = 0, s = r.features.length; o < s; o++) { 3200 var d = bi(r.features[o], e); 3201 d && h.push(d); 3202 } 3203 return new ci(h); 3204 default: 3205 throw new Error('Invalid GeoJSON object.'); 3206 } 3207 } 3208 function Pi(t, e, i, n) { 3209 return t ? t(e, i) : new mi(i, n && n.markersInheritOptions && n); 3210 } 3211 function Li(t) { 3212 return new v(t[1], t[0], t[2]); 3213 } 3214 function Ti(t, e, i) { 3215 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)); 3216 return o; 3217 } 3218 function Mi(t, e) { 3219 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)]; 3220 } 3221 function zi(t, e, i, n) { 3222 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)); 3223 return (!e && i && 0 < o.length && o.push(o[0].slice()), o); 3224 } 3225 function Ci(t, e) { 3226 return t.feature ? l({}, t.feature, { geometry: e }) : Zi(e); 3227 } 3228 function Zi(t) { 3229 return 'Feature' === t.type || 'FeatureCollection' === t.type ? t : { type: 'Feature', properties: {}, geometry: t }; 3230 } 3231 Tt = { 3232 toGeoJSON: function (t) { 3233 return Ci(this, { type: 'Point', coordinates: Mi(this.getLatLng(), t) }); 3234 }, 3235 }; 3236 function Si(t, e) { 3237 return new wi(t, e); 3238 } 3239 (mi.include(Tt), 3240 vi.include(Tt), 3241 gi.include(Tt), 3242 yi.include({ 3243 toGeoJSON: function (t) { 3244 var e = !I(this._latlngs); 3245 return Ci(this, { 3246 type: (e ? 'Multi' : '') + 'LineString', 3247 coordinates: zi(this._latlngs, e ? 1 : 0, !1, t), 3248 }); 3249 }, 3250 }), 3251 xi.include({ 3252 toGeoJSON: function (t) { 3253 var e = !I(this._latlngs), 3254 i = e && !I(this._latlngs[0]), 3255 t = zi(this._latlngs, i ? 2 : e ? 1 : 0, !0, t); 3256 return Ci(this, { 3257 type: (i ? 'Multi' : '') + 'Polygon', 3258 coordinates: (t = e ? t : [t]), 3259 }); 3260 }, 3261 }), 3262 ui.include({ 3263 toMultiPoint: function (e) { 3264 var i = []; 3265 return ( 3266 this.eachLayer(function (t) { 3267 i.push(t.toGeoJSON(e).geometry.coordinates); 3268 }), 3269 Ci(this, { type: 'MultiPoint', coordinates: i }) 3270 ); 3271 }, 3272 toGeoJSON: function (e) { 3273 var i, 3274 n, 3275 t = this.feature && this.feature.geometry && this.feature.geometry.type; 3276 return 'MultiPoint' === t 3277 ? this.toMultiPoint(e) 3278 : ((i = 'GeometryCollection' === t), 3279 (n = []), 3280 this.eachLayer(function (t) { 3281 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)); 3282 }), 3283 i ? Ci(this, { geometries: n, type: 'GeometryCollection' }) : { type: 'FeatureCollection', features: n }); 3284 }, 3285 })); 3286 var Mt = Si, 3287 Ei = o.extend({ 3288 options: { 3289 opacity: 1, 3290 alt: '', 3291 interactive: !1, 3292 crossOrigin: !1, 3293 errorOverlayUrl: '', 3294 zIndex: 1, 3295 className: '', 3296 }, 3297 initialize: function (t, e, i) { 3298 ((this._url = t), (this._bounds = g(e)), c(this, i)); 3299 }, 3300 onAdd: function () { 3301 (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()); 3302 }, 3303 onRemove: function () { 3304 (T(this._image), this.options.interactive && this.removeInteractiveTarget(this._image)); 3305 }, 3306 setOpacity: function (t) { 3307 return ((this.options.opacity = t), this._image && this._updateOpacity(), this); 3308 }, 3309 setStyle: function (t) { 3310 return (t.opacity && this.setOpacity(t.opacity), this); 3311 }, 3312 bringToFront: function () { 3313 return (this._map && fe(this._image), this); 3314 }, 3315 bringToBack: function () { 3316 return (this._map && ge(this._image), this); 3317 }, 3318 setUrl: function (t) { 3319 return ((this._url = t), this._image && (this._image.src = t), this); 3320 }, 3321 setBounds: function (t) { 3322 return ((this._bounds = g(t)), this._map && this._reset(), this); 3323 }, 3324 getEvents: function () { 3325 var t = { zoom: this._reset, viewreset: this._reset }; 3326 return (this._zoomAnimated && (t.zoomanim = this._animateZoom), t); 3327 }, 3328 setZIndex: function (t) { 3329 return ((this.options.zIndex = t), this._updateZIndex(), this); 3330 }, 3331 getBounds: function () { 3332 return this._bounds; 3333 }, 3334 getElement: function () { 3335 return this._image; 3336 }, 3337 _initImage: function () { 3338 var t = 'IMG' === this._url.tagName, 3339 e = (this._image = t ? this._url : P('img')); 3340 (M(e, 'leaflet-image-layer'), 3341 this._zoomAnimated && M(e, 'leaflet-zoom-animated'), 3342 this.options.className && M(e, this.options.className), 3343 (e.onselectstart = u), 3344 (e.onmousemove = u), 3345 (e.onload = a(this.fire, this, 'load')), 3346 (e.onerror = a(this._overlayOnError, this, 'error')), 3347 (!this.options.crossOrigin && '' !== this.options.crossOrigin) || (e.crossOrigin = !0 === this.options.crossOrigin ? '' : this.options.crossOrigin), 3348 this.options.zIndex && this._updateZIndex(), 3349 t ? (this._url = e.s
3349rc) : ((e.src = this._url), (e.alt = this.options.alt))); 3350 }, 3351 _animateZoom: function (t) { 3352 var e = this._map.getZoomScale(t.zoom), 3353 t = this._map._latLngBoundsToNewLayerBounds(this._bounds, t.zoom, t.center).min; 3354 be(this._image, t, e); 3355 }, 3356 _reset: function () { 3357 var t = this._image, 3358 e = new f(this._map.latLngToLayerPoint(this._bounds.getNorthWest()), this._map.latLngToLayerPoint(this._bounds.getSouthEast())), 3359 i = e.getSize(); 3360 (Z(t, e.min), (t.style.width = i.x + 'px'), (t.style.height = i.y + 'px')); 3361 }, 3362 _updateOpacity: function () { 3363 C(this._image, this.options.opacity); 3364 }, 3365 _updateZIndex: function () { 3366 this._image && void 0 !== this.options.zIndex && null !== this.options.zIndex && (this._image.style.zIndex = this.options.zIndex); 3367 }, 3368 _overlayOnError: function () { 3369 this.fire('error'); 3370 var t = this.options.errorOverlayUrl; 3371 t && this._url !== t && ((this._url = t), (this._image.src = t)); 3372 }, 3373 getCenter: function () { 3374 return this._bounds.getCenter(); 3375 }, 3376 }), 3377 ki = Ei.extend({ 3378 options: { 3379 autoplay: !0, 3380 loop: !0, 3381 keepAspectRatio: !0, 3382 muted: !1, 3383 playsInline: !0, 3384 }, 3385 _initImage: function () { 3386 var t = 'VIDEO' === this._url.tagName, 3387 e = (this._image = t ? this._url : P('video')); 3388 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)) { 3389 for (var i = e.getElementsByTagName('source'), n = [], o = 0; o < i.length; o++) n.push(i[o].src); 3390 this._url = 0 < i.length ? n : [e.src]; 3391 } else { 3392 (d(this._url) || (this._url = [this._url]), 3393 !this.options.keepAspectRatio && Object.prototype.hasOwnProperty.call(e.style, 'objectFit') && (e.style.objectFit = 'fill'), 3394 (e.autoplay = !!this.options.autoplay), 3395 (e.loop = !!this.options.loop), 3396 (e.muted = !!this.options.muted), 3397 (e.playsInline = !!this.options.playsInline)); 3398 for (var s = 0; s < this._url.length; s++) { 3399 var r = P('source'); 3400 ((r.src = this._url[s]), e.appendChild(r)); 3401 } 3402 } 3403 }, 3404 }); 3405 var Oi = Ei.extend({ 3406 _initImage: function () { 3407 var t = (this._image = this._url); 3408 (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)); 3409 }, 3410 }); 3411 var Ai = o.extend({ 3412 options: { 3413 interactive: !1, 3414 offset: [0, 0], 3415 className: '', 3416 pane: void 0, 3417 content: '', 3418 }, 3419 initialize: function (t, e) { 3420 (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)); 3421 }, 3422 openOn: function (t) { 3423 return ((t = arguments.length ? t : this._source._map).hasLayer(this) || t.addLayer(this), this); 3424 }, 3425 close: function () { 3426 return (this._map && this._map.removeLayer(this), this); 3427 }, 3428 toggle: function (t) { 3429 return (this._map ? this.close() : (arguments.length ? (this._source = t) : (t = this._source), this._prepareOpen(), this.openOn(t._map)), this); 3430 }, 3431 onAdd: function (t) { 3432 ((this._zoomAnimated = t._zoomAnimated), 3433 this._container || this._initLayout(), 3434 t._fadeAnimated && C(this._container, 0), 3435 clearTimeout(this._removeTimeout), 3436 this.getPane().appendChild(this._container), 3437 this.update(), 3438 t._fadeAnimated && C(this._container, 1), 3439 this.bringToFront(), 3440 this.options.interactive && (M(this._container, 'leaflet-interactive'), this.addInteractiveTarget(this._container))); 3441 }, 3442 onRemove: function (t) { 3443 (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))); 3444 }, 3445 getLatLng: function () { 3446 return this._latlng; 3447 }, 3448 setLatLng: function (t) { 3449 return ((this._latlng = w(t)), this._map && (this._updatePosition(), this._adjustPan()), this); 3450 }, 3451 getContent: function () { 3452 return this._content; 3453 }, 3454 setContent: function (t) { 3455 return ((this._content = t), this.update(), this); 3456 }, 3457 getElement: function () { 3458 return this._container; 3459 }, 3460 update: function () { 3461 this._map && ((this._container.style.visibility = 'hidden'), this._updateContent(), this._updateLayout(), this._updatePosition(), (this._container.style.visibility = ''), this._adjustPan()); 3462 }, 3463 getEvents: function () { 3464 var t = { zoom: this._updatePosition, viewreset: this._updatePosition }; 3465 return (this._zoomAnimated && (t.zoomanim = this._animateZoom), t); 3466 }, 3467 isOpen: function () { 3468 return !!this._map && this._map.hasLayer(this); 3469 }, 3470 bringToFront: function () { 3471 return (this._map && fe(this._container), this); 3472 }, 3473 bringToBack: function () { 3474 return (this._map && ge(this._container), this); 3475 }, 3476 _prepareOpen: function (t) { 3477 if (!(i = this._source)._map) return !1; 3478 if (i instanceof ci) { 3479 var e, 3480 i = null, 3481 n = this._source._layers; 3482 for (e in n) 3483 if (n[e]._map) { 3484 i = n[e]; 3485 break; 3486 } 3487 if (!i) return !1; 3488 this._source = i; 3489 } 3490 if (!t) 3491 if (i.getCenter) t = i.getCenter(); 3492 else if (i.getLatLng) t = i.getLatLng(); 3493 else { 3494 if (!i.getBounds) throw new Error('Unable to get source layer LatLng.'); 3495 t = i.getBounds().getCenter(); 3496 } 3497 return (this.setLatLng(t), this._map && this.update(), !0); 3498 }, 3499 _updateContent: function () { 3500 if (this._content) { 3501 var t = this._contentNode, 3502 e = 'function' == typeof this._content ? this._content(this._source || this) : this._content; 3503 if ('string' == typeof e) t.innerHTML = e; 3504 else { 3505 for (; t.hasChildNodes(); ) t.removeChild(t.firstChild); 3506 t.appendChild(e); 3507 } 3508 this.fire('contentupdate'); 3509 } 3510 }, 3511 _updatePosition: function () { 3512 var t, e, i; 3513 this._map && 3514 ((e = this._map.latLngToLayerPoint(this._latlng)), 3515 (t = m(this.options.offset)), 3516 (i = this._getAnchor()), 3517 this._zoomAnimated ? Z(this._container, e.add(i)) : (t = t.add(e).add(i)), 3518 (e = this._containerBottom = -t.y), 3519 (i = this._containerLeft = -Math.round(this._containerWidth / 2) + t.x), 3520 (this._container.style.bottom = e + 'px'), 3521 (this._container.style.left = i + 'px')); 3522 }, 3523 _getAnchor: function () { 3524 return [0, 0]; 3525 }, 3526 }), 3527 Bi = 3528 (A.include({ 3529 _initOverlay: function (t, e, i, n) { 3530 var o = e; 3531 return (o instanceof t || (o = new t(n).setContent(e)), i && o.setLatLng(i), o); 3532 }, 3533 }), 3534 o.include({ 3535 _initOverlay: function (t, e, i, n) { 3536 var o = i; 3537 return (o instanceof t ? (c(o, n), (o._source = this)) : (o = e && !n ? e : new t(n, this)).setContent(i), o); 3538 }, 3539 }), 3540 Ai.extend({ 3541 options: { 3542 pane: 'popupPane', 3543 offset: [0, 7], 3544 maxWidth: 300, 3545 minWidth: 50, 3546 maxHeight: null, 3547 autoPan: !0, 3548 autoPanPaddingTopLeft: null, 3549 autoPanPaddingBottomRight: null, 3550 autoPanPadding: [5, 5], 3551 keepInView: !1, 3552 closeButton: !0, 3553 autoClose: !0, 3554 closeOnEscapeKey: !0, 3555 className: '', 3556 }, 3557 openOn: function (t) { 3558 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));
3559 }, 3560 onAdd: function (t) { 3561 (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))); 3562 }, 3563 onRemove: function (t) { 3564 (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))); 3565 }, 3566 getEvents: function () { 3567 var t = Ai.prototype.getEvents.call(this); 3568 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); 3569 }, 3570 _initLayout: function () { 3571 var t = 'leaflet-popup', 3572 e = (this._container = P('div', t + ' ' + (this.options.className || '') + ' leaflet-zoom-animated')), 3573 i = (this._wrapper = P('div', t + '-content-wrapper', e)); 3574 ((this._contentNode = P('div', t + '-content', i)), 3575 Ie(e), 3576 Be(this._contentNode), 3577 S(e, 'contextmenu', Ae), 3578 (this._tipContainer = P('div', t + '-tip-container', e)), 3579 (this._tip = P('div', t + '-tip', this._tipContainer)), 3580 this.options.closeButton && 3581 ((i = this._closeButton = P('a', t + '-close-button', e)).setAttribute('role', 'button'), 3582 i.setAttribute('aria-label', 'Close popup'), 3583 (i.href = '#close'), 3584 (i.innerHTML = '<span aria-hidden="true">×</span>'), 3585 S( 3586 i, 3587 'click', 3588 function (t) { 3589 (O(t), this.close()); 3590 }, 3591 this 3592 ))); 3593 }, 3594 _updateLayout: function () { 3595 var t = this._contentNode, 3596 e = t.style, 3597 i = ((e.width = ''), (e.whiteSpace = 'nowrap'), t.offsetWidth), 3598 i = Math.min(i, this.options.maxWidth), 3599 i = ((i = Math.max(i, this.options.minWidth)), (e.width = i + 1 + 'px'), (e.whiteSpace = ''), (e.height = ''), t.offsetHeight), 3600 n = this.options.maxHeight, 3601 o = 'leaflet-popup-scrolled'; 3602 ((n && n < i ? ((e.height = n + 'px'), M) : z)(t, o), (this._containerWidth = this._container.offsetWidth)); 3603 }, 3604 _animateZoom: function (t) { 3605 var t = this._map._latLngToNewLayerPoint(this._latlng, t.zoom, t.center), 3606 e = this._getAnchor(); 3607 Z(this._container, t.add(e)); 3608 }, 3609 _adjustPan: function () { 3610 var t, e, i, n, o, s, r, a; 3611 this.options.autoPan && 3612 (this._map._panAnim && this._map._panAnim.stop(), 3613 this._autopanning 3614 ? (this._autopanning = !1) 3615 : ((t = this._map), 3616 (e = parseInt(pe(this._container, 'marginBottom'), 10) || 0), 3617 (e = this._container.offsetHeight + e), 3618 (a = this._containerWidth), 3619 (i = new p(this._containerLeft, -e - this._containerBottom))._add(Pe(this._container)), 3620 (i = t.layerPointToContainerPoint(i)), 3621 (o = m(this.options.autoPanPadding)), 3622 (n = m(this.options.autoPanPaddingTopLeft || o)), 3623 (o = m(this.options.autoPanPaddingBottomRight || o)), 3624 (s = t.getSize()), 3625 (r = 0), 3626 i.x + a + o.x > s.x && (r = i.x + a - s.x + o.x), 3627 i.x - r - n.x < (a = 0) && (r = i.x - n.x), 3628 i.y + e + o.y > s.y && (a = i.y + e - s.y + o.y), 3629 i.y - a - n.y < 0 && (a = i.y - n.y), 3630 (r || a) && (this.options.keepInView && (this._autopanning = !0), t.fire('autopanstart').panBy([r, a])))); 3631 }, 3632 _getAnchor: function () { 3633 return m(this._source && this._source._getPopupAnchor ? this._source._getPopupAnchor() : [0, 0]); 3634 }, 3635 })), 3636 Ii = 3637 (A.mergeOptions({ closePopupOnClick: !0 }), 3638 A.include({ 3639 openPopup: function (t, e, i) { 3640 return (this._initOverlay(Bi, t, e, i).openOn(this), this); 3641 }, 3642 closePopup: function (t) { 3643 return ((t = arguments.length ? t : this._popup) && t.close(), this); 3644 }, 3645 }), 3646 o.include({ 3647 bindPopup: function (t, e) { 3648 return ( 3649 (this._popup = this._initOverlay(Bi, this._popup, t, e)), 3650 this._popupHandlersAdded || 3651 (this.on({ 3652 click: this._openPopup, 3653 keypress: this._onKeyPress, 3654 remove: this.closePopup, 3655 move: this._movePopup, 3656 }), 3657 (this._popupHandlersAdded = !0)), 3658 this 3659 ); 3660 }, 3661 unbindPopup: function () { 3662 return ( 3663 this._popup && 3664 (this.off({ 3665 click: this._openPopup, 3666 keypress: this._onKeyPress, 3667 remove: this.closePopup, 3668 move: this._movePopup, 3669 }), 3670 (this._popupHandlersAdded = !1), 3671 (this._popup = null)), 3672 this 3673 ); 3674 }, 3675 openPopup: function (t) { 3676 return (this._popup && (this instanceof ci || (this._popup._source = this), this._popup._prepareOpen(t || this._latlng) && this._popup.openOn(this._map)), this); 3677 }, 3678 closePopup: function () { 3679 return (this._popup && this._popup.close(), this); 3680 }, 3681 togglePopup: function () { 3682 return (this._popup && this._popup.toggle(this), this); 3683 }, 3684 isPopupOpen: function () { 3685 return !!this._popup && this._popup.isOpen(); 3686 }, 3687 setPopupContent: function (t) { 3688 return (this._popup && this._popup.setContent(t), this); 3689 }, 3690 getPopup: function () { 3691 return this._popup; 3692 }, 3693 _openPopup: function (t) { 3694 var e; 3695 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)); 3696 }, 3697 _movePopup: function (t) { 3698 this._popup.setLatLng(t.latlng); 3699 }, 3700 _onKeyPress: function (t) { 3701 13 === t.originalEvent.keyCode && this._openPopup(t); 3702 }, 3703 }), 3704 Ai.extend({ 3705 options: { 3706 pane: 'tooltipPane', 3707 offset: [0, 0], 3708 direction: 'auto', 3709 permanent: !1, 3710 sticky: !1, 3711 opacity: 0.9, 3712 }, 3713 onAdd: function (t) { 3714 (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))); 3715 }, 3716 onRemove: function (t) { 3717 (Ai.prototype.onRemove.call(this, t), t.fire('tooltipclose', { tooltip: this }), this._source && (this.removeEventParent(this._source), this._source.fire('tooltipclose', { tooltip: this }, !0))); 3718 }, 3719 getEvents: function () { 3720 var t = Ai.prototype.getEvents.call(this); 3721 return (this.options.permanent || (t.preclick = this.close), t); 3722 }, 3723 _initLayout: function () { 3724 var t = 'leaflet-tooltip ' + (this.options.className || '') + ' leaflet-zoom-' + (this._zoomAnimated ? 'animated' : 'hide'); 3725 ((this._contentNode = this._container = P('div', t)), this._container.setAttribute('role', 'tooltip'), this._container.setAttribute('id', 'leaflet-tooltip-'
3725+ h(this))); 3726 }, 3727 _updateLayout: function () {}, 3728 _adjustPan: function () {}, 3729 _setPosition: function (t) { 3730 var e, 3731 i = this._map, 3732 n = this._container, 3733 o = i.latLngToContainerPoint(i.getCenter()), 3734 i = i.layerPointToContainerPoint(t), 3735 s = this.options.direction, 3736 r = n.offsetWidth, 3737 a = n.offsetHeight, 3738 h = m(this.options.offset), 3739 l = this._getAnchor(), 3740 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); 3741 ((t = t 3742 .subtract(m(e, i, !0)) 3743 .add(h) 3744 .add(l)), 3745 z(n, 'leaflet-tooltip-right'), 3746 z(n, 'leaflet-tooltip-left'), 3747 z(n, 'leaflet-tooltip-top'), 3748 z(n, 'leaflet-tooltip-bottom'), 3749 M(n, 'leaflet-tooltip-' + s), 3750 Z(n, t)); 3751 }, 3752 _updatePosition: function () { 3753 var t = this._map.latLngToLayerPoint(this._latlng); 3754 this._setPosition(t); 3755 }, 3756 setOpacity: function (t) { 3757 ((this.options.opacity = t), this._container && C(this._container, t)); 3758 }, 3759 _animateZoom: function (t) { 3760 t = this._map._latLngToNewLayerPoint(this._latlng, t.zoom, t.center); 3761 this._setPosition(t); 3762 }, 3763 _getAnchor: function () { 3764 return m(this._source && this._source._getTooltipAnchor && !this.options.sticky ? this._source._getTooltipAnchor() : [0, 0]); 3765 }, 3766 })), 3767 Ri = 3768 (A.include({ 3769 openTooltip: function (t, e, i) { 3770 return (this._initOverlay(Ii, t, e, i).openOn(this), this); 3771 }, 3772 closeTooltip: function (t) { 3773 return (t.close(), this); 3774 }, 3775 }), 3776 o.include({ 3777 bindTooltip: function (t, e) { 3778 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); 3779 }, 3780 unbindTooltip: function () { 3781 return (this._tooltip && (this._initTooltipInteractions(!0), this.closeTooltip(), (this._tooltip = null)), this); 3782 }, 3783 _initTooltipInteractions: function (t) { 3784 var e, i; 3785 (!t && this._tooltipHandlersAdded) || 3786 ((e = t ? 'off' : 'on'), 3787 (i = { remove: this.closeTooltip, move: this._moveTooltip }), 3788 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)), 3789 this._tooltip.options.sticky && (i.mousemove = this._moveTooltip), 3790 this[e](i), 3791 (this._tooltipHandlersAdded = !t)); 3792 }, 3793 openTooltip: function (t) { 3794 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); 3795 }, 3796 closeTooltip: function () { 3797 if (this._tooltip) return this._tooltip.close(); 3798 }, 3799 toggleTooltip: function () { 3800 return (this._tooltip && this._tooltip.toggle(this), this); 3801 }, 3802 isTooltipOpen: function () { 3803 return this._tooltip.isOpen(); 3804 }, 3805 setTooltipContent: function (t) { 3806 return (this._tooltip && this._tooltip.setContent(t), this); 3807 }, 3808 getTooltip: function () { 3809 return this._tooltip; 3810 }, 3811 _addFocusListeners: function () { 3812 this.getElement ? this._addFocusListenersOnLayer(this) : this.eachLayer && this.eachLayer(this._addFocusListenersOnLayer, this); 3813 }, 3814 _addFocusListenersOnLayer: function (t) { 3815 var e = 'function' == typeof t.getElement && t.getElement(); 3816 e && 3817 (S( 3818 e,
3819 'focus', 3820 function () { 3821 ((this._tooltip._source = t), this.openTooltip()); 3822 }, 3823 this 3824 ), 3825 S(e, 'blur', this.closeTooltip, this)); 3826 }, 3827 _setAriaDescribedByOnLayer: function (t) { 3828 t = 'function' == typeof t.getElement && t.getElement(); 3829 t && t.setAttribute('aria-describedby', this._tooltip._container.id); 3830 }, 3831 _openTooltip: function (t) { 3832 var e; 3833 this._tooltip && 3834 this._map && 3835 (this._map.dragging && this._map.dragging.moving() && !this._openOnceFlag 3836 ? ((this._openOnceFlag = !0), 3837 (e = this)._map.once('moveend', function () { 3838 ((e._openOnceFlag = !1), e._openTooltip(t)); 3839 })) 3840 : ((this._tooltip._source = t.layer || t.target), this.openTooltip(this._tooltip.options.sticky ? t.latlng : void 0))); 3841 }, 3842 _moveTooltip: function (t) { 3843 var e = t.latlng; 3844 (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)); 3845 }, 3846 }), 3847 di.extend({ 3848 options: { 3849 iconSize: [12, 12], 3850 html: !1, 3851 bgPos: null, 3852 className: 'leaflet-div-icon', 3853 }, 3854 createIcon: function (t) { 3855 var t = t && 'DIV' === t.tagName ? t : document.createElement('div'), 3856 e = this.options; 3857 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); 3858 }, 3859 createShadow: function () { 3860 return null; 3861 }, 3862 })); 3863 di.Default = _i; 3864 var Ni = o.extend({ 3865 options: { 3866 tileSize: 256, 3867 opacity: 1, 3868 updateWhenIdle: b.mobile, 3869 updateWhenZooming: !0, 3870 updateInterval: 200, 3871 zIndex: 1, 3872 bounds: null, 3873 minZoom: 0, 3874 maxZoom: void 0, 3875 maxNativeZoom: void 0, 3876 minNativeZoom: void 0, 3877 noWrap: !1, 3878 pane: 'tilePane', 3879 className: '', 3880 keepBuffer: 2, 3881 }, 3882 initialize: function (t) { 3883 c(this, t); 3884 }, 3885 onAdd: function () { 3886 (this._initContainer(), (this._levels = {}), (this._tiles = {}), this._resetView()); 3887 }, 3888 beforeAdd: function (t) { 3889 t._addZoomLimit(this); 3890 }, 3891 onRemove: function (t) { 3892 (this._removeAllTiles(), T(this._container), t._removeZoomLimit(this), (this._container = null), (this._tileZoom = void 0)); 3893 }, 3894 bringToFront: function () { 3895 return (this._map && (fe(this._container), this._setAutoZIndex(Math.max)), this); 3896 }, 3897 bringToBack: function () { 3898 return (this._map && (ge(this._container), this._setAutoZIndex(Math.min)), this); 3899 }, 3900 getContainer: function () { 3901 return this._container; 3902 }, 3903 setOpacity: function (t) { 3904 return ((this.options.opacity = t), this._updateOpacity(), this); 3905 }, 3906 setZIndex: function (t) { 3907 return ((this.options.zIndex = t), this._updateZIndex(), this); 3908 }, 3909 isLoading: function () { 3910 return this._loading; 3911 }, 3912 redraw: function () { 3913 var t; 3914 return (this._map && (this._removeAllTiles(), (t = this._clampZoom(this._map.getZoom())) !== this._tileZoom && ((this._tileZoom = t), this._updateLevels()), this._update()), this); 3915 }, 3916 getEvents: function () { 3917 var t = { 3918 viewprereset: this._invalidateAll, 3919 viewreset: this._resetView, 3920 zoom: this._resetView, 3921 moveend: this._onMoveEnd, 3922 }; 3923 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); 3924 }, 3925 createTile: function () { 3926 return document.createElement('div'); 3927 }, 3928 getTileSize: function () { 3929 var t = this.options.tileSize; 3930 return t instanceof p ? t : new p(t, t); 3931 }, 3932 _updateZIndex: function () { 3933 this._container && void 0 !== this.options.zIndex && null !== this.options.zIndex && (this._container.style.zIndex = this.options.zIndex); 3934 }, 3935 _setAutoZIndex: function (t) { 3936 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))); 3937 isFinite(n) && ((this.options.zIndex = n + t(-1, 1)), this._updateZIndex()); 3938 }, 3939 _updateOpacity: function () { 3940 if (this._map && !b.ielt9) { 3941 C(this._container, this.options.opacity); 3942 var t, 3943 e = +new Date(), 3944 i = !1, 3945 n = !1; 3946 for (t in this._tiles) { 3947 var o, 3948 s = this._tiles[t]; 3949 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))); 3950 } 3951 (n && !this._noPrune && this._pruneTiles(), i && (r(this._fadeFrame), (this._fadeFrame = x(this._updateOpacity, this)))); 3952 } 3953 }, 3954 _onOpaqueTile: u, 3955 _initContainer: function () { 3956 this._container || ((this._container = P('div', 'leaflet-layer ' + (this.options.className || ''))), this._updateZIndex(), this.options.opacity < 1 && this._updateOpacity(), this.getPane().appendChild(this._container));
3957 }, 3958 _updateLevels: function () { 3959 var t = this._tileZoom, 3960 e = this.options.maxZoom; 3961 if (void 0 !== t) { 3962 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])); 3963 var n = this._levels[t], 3964 o = this._map; 3965 return ( 3966 n || 3967 (((n = this._levels[t] = {}).el = P('div', 'leaflet-tile-container leaflet-zoom-animated', this._container)), 3968 (n.el.style.zIndex = e), 3969 (n.origin = o.project(o.unproject(o.getPixelOrigin()), t).round()), 3970 (n.zoom = t), 3971 this._setZoomTransform(n, o.getCenter(), o.getZoom()), 3972 u(n.el.offsetWidth), 3973 this._onCreateLevel(n)), 3974 (this._level = n) 3975 ); 3976 } 3977 }, 3978 _onUpdateLevel: u, 3979 _onRemoveLevel: u, 3980 _onCreateLevel: u, 3981 _pruneTiles: function () { 3982 if (this._map) { 3983 var t, 3984 e, 3985 i, 3986 n = this._map.getZoom(); 3987 if (n > this.options.maxZoom || n < this.options.minZoom) this._removeAllTiles(); 3988 else { 3989 for (t in this._tiles) (i = this._tiles[t]).retain = i.current; 3990 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)); 3991 for (t in this._tiles) this._tiles[t].retain || this._removeTile(t); 3992 } 3993 } 3994 }, 3995 _removeTilesAtZoom: function (t) { 3996 for (var e in this._tiles) this._tiles[e].coords.z === t && this._removeTile(e); 3997 }, 3998 _removeAllTiles: function () { 3999 for (var t in this._tiles) this._removeTile(t); 4000 }, 4001 _invalidateAll: function () { 4002 for (var t in this._levels) (T(this._levels[t].el), this._onRemoveLevel(Number(t)), delete this._levels[t]); 4003 (this._removeAllTiles(), (this._tileZoom = void 0)); 4004 }, 4005 _retainParent: function (t, e, i, n) { 4006 var t = Math.floor(t / 2), 4007 e = Math.floor(e / 2), 4008 i = i - 1, 4009 o = new p(+t, +e), 4010 o = ((o.z = i), this._tileCoordsToKey(o)), 4011 o = this._tiles[o]; 4012 return o && o.active ? (o.retain = !0) : (o && o.loaded && (o.retain = !0), n < i && this._retainParent(t, e, i, n)); 4013 }, 4014 _retainChildren: function (t, e, i, n) { 4015 for (var o = 2 * t; o < 2 * t + 2; o++) 4016 for (var s = 2 * e; s < 2 * e + 2; s++) { 4017 var r = new p(o, s), 4018 r = ((r.z = i + 1), this._tileCoordsToKey(r)), 4019 r = this._tiles[r]; 4020 r && r.active ? (r.retain = !0) : (r && r.loaded && (r.retain = !0), i + 1 < n && this._retainChildren(o, s, i + 1, n)); 4021 } 4022 }, 4023 _resetView: function (t) { 4024 t = t && (t.pinch || t.flyTo); 4025 this._setView(this._map.getCenter(), this._map.getZoom(), t, t); 4026 }, 4027 _animateZoom: function (t) { 4028 this._setView(t.center, t.zoom, !0, t.noUpdate); 4029 }, 4030 _clampZoom: function (t) { 4031 var e = this.options; 4032 return void 0 !== e.minNativeZoom && t < e.minNativeZoom ? e.minNativeZoom : void 0 !== e.maxNativeZoom && e.maxNativeZoom < t ? e.maxNativeZoom : t; 4033 }, 4034 _setView: function (t, e, i, n) { 4035 var o = Math.round(e), 4036 o = (void 0 !== this.options.maxZoom && o > this.options.maxZoom) || (void 0 !== this.options.minZoom && o < this.options.minZoom) ? void 0 : this._clampZoom(o), 4037 s = this.options.updateWhenZooming && o !== this._tileZoom; 4038 ((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)); 4039 }, 4040 _setZoomTransforms: function (t, e) { 4041 for (var i in this._levels) this._setZoomTransform(this._levels[i], t, e); 4042 }, 4043 _setZoomTransform: function (t, e, i) { 4044 var n = this._map.getZoomScale(i, t.zoom), 4045 e = t.origin.multiplyBy(n).subtract(this._map._getNewPixelOrigin(e, i)).round(); 4046 b.any3d ? be(t.el, e, n) : Z(t.el, e); 4047 }, 4048 _resetGrid: function () { 4049 var t = this._map, 4050 e = t.options.crs, 4051 i = (this._tileSize = this.getTileSize()), 4052 n = this._tileZoom, 4053 o = this._map.getPixelWorldBounds(this._tileZoom); 4054 (o && (this._globalTileRange = this._pxBoundsToTileRange(o)), 4055 (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)]), 4056 (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)])); 4057 }, 4058 _onMoveEnd: function () { 4059 this._map && !this._map._animatingZoom && this._update(); 4060 }, 4061 _getTiledPixelBounds: function (t) { 4062 var e = this._map, 4063 i = e._animatingZoom ? Math.max(e._animateToZoom, e.getZoom()) : e.getZoom(), 4064 i = e.getZoomScale(i, this._tileZoom), 4065 t = e.project(t, this._tileZoom).floor(), 4066 e = e.getSize().divideBy(2 * i); 4067 return new f(t.subtract(e), t.add(e)); 4068 }, 4069 _update: function (t) { 4070 var e = this._map; 4071 if (e) { 4072 var i = this._clampZoom(e.getZoom()); 4073 if ((void 0 === t && (t = e.getCenter()), void 0 !== this._tileZoom)) { 4074 var n, 4075 e = this._getTiledPixelBounds(t), 4076 o = this._pxBoundsToTileRange(e), 4077 s = o.getCenter(), 4078 r = [], 4079 e = this.options.keepBuffer, 4080 a = new f(o.getBottomLeft().subtract([e, -e]), o.getTopRight().add([e, -e])); 4081 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'); 4082 for (n in this._tiles) { 4083 var h = this._tiles[n].coords; 4084 (h.z === this._tileZoom && a.contains(new p(h.x, h.y))) || (this._tiles[n].current = !1);
4085 } 4086 if (1 < Math.abs(i - this._tileZoom)) this._setView(t, i); 4087 else { 4088 for (var l = o.min.y; l <= o.max.y; l++) 4089 for (var u = o.min.x; u <= o.max.x; u++) { 4090 var c, 4091 d = new p(u, l); 4092 ((d.z = this._tileZoom), this._isValidTile(d) && ((c = this._tiles[this._tileCoordsToKey(d)]) ? (c.current = !0) : r.push(d))); 4093 } 4094 if ( 4095 (r.sort(function (t, e) { 4096 return t.distanceTo(s) - e.distanceTo(s); 4097 }), 4098 0 !== r.length) 4099 ) { 4100 this._loading || ((this._loading = !0), this.fire('loading')); 4101 for (var _ = document.createDocumentFragment(), u = 0; u < r.length; u++) this._addTile(r[u], _); 4102 this._level.el.appendChild(_); 4103 } 4104 } 4105 } 4106 } 4107 }, 4108 _isValidTile: function (t) { 4109 var e = this._map.options.crs; 4110 if (!e.infinite) { 4111 var i = this._globalTileRange; 4112 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; 4113 } 4114 return !this.options.bounds || ((e = this._tileCoordsToBounds(t)), g(this.options.bounds).overlaps(e)); 4115 }, 4116 _keyToBounds: function (t) { 4117 return this._tileCoordsToBounds(this._keyToTileCoords(t)); 4118 }, 4119 _tileCoordsToNwSe: function (t) { 4120 var e = this._map, 4121 i = this.getTileSize(), 4122 n = t.scaleBy(i), 4123 i = n.add(i); 4124 return [e.unproject(n, t.z), e.unproject(i, t.z)]; 4125 }, 4126 _tileCoordsToBounds: function (t) { 4127 ((t = this._tileCoordsToNwSe(t)), (t = new s(t[0], t[1]))); 4128 return (t = this.options.noWrap ? t : this._map.wrapLatLngBounds(t)); 4129 }, 4130 _tileCoordsToKey: function (t) { 4131 return t.x + ':' + t.y + ':' + t.z; 4132 }, 4133 _keyToTileCoords: function (t) { 4134 var t = t.split(':'), 4135 e = new p(+t[0], +t[1]); 4136 return ((e.z = +t[2]), e); 4137 }, 4138 _removeTile: function (t) { 4139 var e = this._tiles[t]; 4140 e && 4141 (T(e.el), 4142 delete this._tiles[t], 4143 this.fire('tileunload', { 4144 tile: e.el, 4145 coords: this._keyToTileCoords(t), 4146 })); 4147 }, 4148 _initTile: function (t) { 4149 M(t, 'leaflet-tile'); 4150 var e = this.getTileSize(); 4151 ((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)); 4152 }, 4153 _addTile: function (t, e) { 4154 var i = this._getTilePos(t), 4155 n = this._tileCoordsToKey(t), 4156 o = this.createTile(this._wrapCoords(t), a(this._tileReady, this, t)); 4157 (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 })); 4158 }, 4159 _tileReady: function (t, e, i) { 4160 e && this.fire('tileerror', { error: e, tile: i, coords: t }); 4161 var n = this._tileCoordsToKey(t); 4162 (i = this._tiles[n]) && 4163 ((i.loaded = +new Date()), 4164 this._map._fadeAnimated ? (C(i.el, 0), r(this._fadeFrame), (this._fadeFrame = x(this._updateOpacity, this))) : ((i.active = !0), this._pruneTiles()), 4165 e || (M(i.el, 'leaflet-tile-loaded'), this.fire('tileload', { tile: i.el, coords: t })), 4166 this._noTilesToLoad() && ((this._loading = !1), this.fire('load'), b.ielt9 || !this._map._fadeAnimated ? x(this._pruneTiles, this) : setTimeout(a(this._pruneTiles, this), 250))); 4167 }, 4168 _getTilePos: function (t) { 4169 return t.scaleBy(this.getTileSize()).subtract(this._level.origin); 4170 }, 4171 _wrapCoords: function (t) { 4172 var e = new p(this._wrapX ? H(t.x, this._wrapX) : t.x, this._wrapY ? H(t.y, this._wrapY) : t.y); 4173 return ((e.z = t.z), e); 4174 }, 4175 _pxBoundsToTileRange: function (t) { 4176 var e = this.getTileSize(); 4177 return new f(t.min.unscaleBy(e).floor(), t.max.unscaleBy(e).ceil().subtract([1, 1])); 4178 }, 4179 _noTilesToLoad: function () { 4180 for (var t in this._tiles) if (!this._tiles[t].loaded) return !1; 4181 return !0; 4182 }, 4183 }); 4184 var Di = Ni.extend({ 4185 options: { 4186 minZoom: 0, 4187 maxZoom: 18, 4188 subdomains: 'abc', 4189 errorTileUrl: '', 4190 zoomOffset: 0, 4191 tms: !1, 4192 zoomReverse: !1, 4193 detectRetina: !1, 4194 crossOrigin: !1, 4195 referrerPolicy: !1, 4196 }, 4197 initialize: function (t, e) { 4198 ((this._url = t), 4199 (e = c(this, e)).detectRetina && b.retina && 0 < e.maxZoom
4200 ? ((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))) 4201 : e.zoomReverse 4202 ? (e.minZoom = Math.min(e.maxZoom, e.minZoom)) 4203 : (e.maxZoom = Math.max(e.minZoom, e.maxZoom)), 4204 'string' == typeof e.subdomains && (e.subdomains = e.subdomains.split('')), 4205 this.on('tileunload', this._onTileRemove)); 4206 }, 4207 setUrl: function (t, e) { 4208 return (this._url === t && void 0 === e && (e = !0), (this._url = t), e || this.redraw(), this); 4209 }, 4210 createTile: function (t, e) { 4211 var i = document.createElement('img'); 4212 return ( 4213 S(i, 'load', a(this._tileOnLoad, this, e, i)), 4214 S(i, 'error', a(this._tileOnError, this, e, i)), 4215 (!this.options.crossOrigin && '' !== this.options.crossOrigin) || (i.crossOrigin = !0 === this.options.crossOrigin ? '' : this.options.crossOrigin), 4216 'string' == typeof this.options.referrerPolicy && (i.referrerPolicy = this.options.referrerPolicy), 4217 (i.alt = ''), 4218 (i.src = this.getTileUrl(t)), 4219 i 4220 ); 4221 }, 4222 getTileUrl: function (t) { 4223 var e = { 4224 r: b.retina ? '@2x' : '', 4225 s: this._getSubdomain(t), 4226 x: t.x, 4227 y: t.y, 4228 z: this._getZoomForUrl(), 4229 }; 4230 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))); 4231 }, 4232 _tileOnLoad: function (t, e) { 4233 b.ielt9 ? setTimeout(a(t, this, null, e), 0) : t(null, e); 4234 }, 4235 _tileOnError: function (t, e, i) { 4236 var n = this.options.errorTileUrl; 4237 (n && e.getAttribute('src') !== n && (e.src = n), t(i, e)); 4238 }, 4239 _onTileRemove: function (t) { 4240 t.tile.onload = null; 4241 }, 4242 _getZoomForUrl: function () { 4243 var t = this._tileZoom, 4244 e = this.options.maxZoom; 4245 return (t = this.options.zoomReverse ? e - t : t) + this.options.zoomOffset; 4246 }, 4247 _getSubdomain: function (t) { 4248 t = Math.abs(t.x + t.y) % this.options.subdomains.length; 4249 return this.options.subdomains[t]; 4250 }, 4251 _abortLoading: function () { 4252 var t, e, i; 4253 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 }))); 4254 }, 4255 _removeTile: function (t) { 4256 var e = this._tiles[t]; 4257 if (e) return (e.el.setAttribute('src', K), Ni.prototype._removeTile.call(this, t)); 4258 }, 4259 _tileReady: function (t, e, i) { 4260 if (this._map && (!i || i.getAttribute('src') !== K)) return Ni.prototype._tileReady.call(this, t, e, i); 4261 }, 4262 }); 4263 function ji(t, e) { 4264 return new Di(t, e); 4265 } 4266 var Hi = Di.extend({ 4267 defaultWmsParams: { 4268 service: 'WMS', 4269 request: 'GetMap', 4270 layers: '', 4271 styles: '', 4272 format: 'image/jpeg', 4273 transparent: !1, 4274 version: '1.1.1', 4275 }, 4276 options: { crs: null, uppercase: !1 }, 4277 initialize: function (t, e) { 4278 this._url = t; 4279 var i, 4280 n = l({}, this.defaultWmsParams); 4281 for (i in e) i in this.options || (n[i] = e[i]); 4282 var t = (e = c(this, e)).detectRetina && b.retina ? 2 : 1, 4283 o = this.getTileSize(); 4284 ((n.width = o.x * t), (n.height = o.y * t), (this.wmsParams = n)); 4285 }, 4286 onAdd: function (t) { 4287 ((this._crs = this.options.crs || t.options.crs), (this._wmsVersion = parseFloat(this.wmsParams.version))); 4288 var e = 1.3 <= this._wmsVersion ? 'crs' : 'srs'; 4289 ((this.wmsParams[e] = this._crs.code), Di.prototype.onAdd.call(this, t)); 4290 }, 4291 getTileUrl: function (t) { 4292 var e = this._tileCoordsToNwSe(t), 4293 i = this._crs, 4294 i = _(i.project(e[0]), i.project(e[1])), 4295 e = i.min, 4296 i = i.max, 4297 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(','), 4298 i = Di.prototype.getTileUrl.call(this, t); 4299 return i + U(this.wmsParams, i, this.options.uppercase) + (this.options.uppercase ? '&BBOX=' : '&bbox=') + e; 4300 }, 4301 setParams: function (t, e) { 4302 return (l(this.wmsParams, t), e || this.redraw(), this); 4303 }, 4304 }); 4305 ((Di.WMS = Hi), 4306 (ji.wms = function (t, e) { 4307 return new Hi(t, e); 4308 })); 4309 var Wi = o.extend({ 4310 options: { padding: 0.1 }, 4311 initialize: function (t) { 4312 (c(this, t), h(this), (this._layers = this._layers || {})); 4313 }, 4314 onAdd: function () { 4315 (this._container || (this._initContainer(), M(this._container, 'leaflet-zoom-animated')), this.getPane().appendChild(this._container), this._update(), this.on('update', this._updatePaths, this)); 4316 }, 4317 onRemove: function () { 4318 (this.off('update', this._updatePaths, this), this._destroyContainer()); 4319 }, 4320 getEvents: function () { 4321 var t = { 4322 viewreset: this._reset, 4323 zoom: this._onZoom, 4324 moveend: this._update, 4325 zoomend: this._onZoomEnd, 4326 }; 4327 return (this._zoomAnimated && (t.zoomanim = this._onAnimZoom), t); 4328 }, 4329 _onAnimZoom: function (t) { 4330 this._updateTransform(t.center, t.zoom); 4331 }, 4332 _onZoom: function () { 4333 this._updateTransform(this._map.getCenter(), this._map.getZoom()); 4334 }, 4335 _updateTransform: function (t, e) { 4336 var i = this._map.getZoomScale(e, this._zoom), 4337 n = this._map.getSize().multiplyBy(0.5 + this.options.padding), 4338 o = this._map.project(this._center, e), 4339 n = n.multiplyBy(-i).add(o).subtract(this._map._getNewPixelOrigin(t, e)); 4340 b.any3d ? be(this._container, n, i) : Z(this._container, n); 4341 }, 4342 _reset: function () { 4343 for (var t in (this._update(), this._updateTransform(this._center, this._zoom), this._layers)) this._layers[t]._reset(); 4344 }, 4345 _onZoomEnd: function () { 4346 for (var t in this._layers) this._layers[t]._project(); 4347 }, 4348 _updatePaths: function () { 4349 for (var t in this._layers) this._layers[t]._update(); 4350 }, 4351 _update: function () { 4352 var t = this.options.padding, 4353 e = this._map.getSize(), 4354 i = this._map.containerPointToLayerPoint(e.multiplyBy(-t)).roun
4354d(); 4355 ((this._bounds = new f(i, i.add(e.multiplyBy(1 + 2 * t)).round())), (this._center = this._map.getCenter()), (this._zoom = this._map.getZoom())); 4356 }, 4357 }), 4358 Fi = Wi.extend({ 4359 options: { tolerance: 0 }, 4360 getEvents: function () { 4361 var t = Wi.prototype.getEvents.call(this); 4362 return ((t.viewprereset = this._onViewPreReset), t); 4363 }, 4364 _onViewPreReset: function () { 4365 this._postponeUpdatePaths = !0; 4366 }, 4367 onAdd: function () { 4368 (Wi.prototype.onAdd.call(this), this._draw()); 4369 }, 4370 _initContainer: function () { 4371 var t = (this._container = document.createElement('canvas')); 4372 (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'))); 4373 }, 4374 _destroyContainer: function () { 4375 (r(this._redrawRequest), delete this._ctx, T(this._container), k(this._container), delete this._container); 4376 }, 4377 _updatePaths: function () { 4378 if (!this._postponeUpdatePaths) { 4379 for (var t in ((this._redrawBounds = null), this._layers)) this._layers[t]._update(); 4380 this._redraw(); 4381 } 4382 }, 4383 _update: function () { 4384 var t, e, i, n; 4385 (this._map._animatingZoom && this._bounds) || 4386 (Wi.prototype._update.call(this), 4387 (t = this._bounds), 4388 (e = this._container), 4389 (i = t.getSize()), 4390 (n = b.retina ? 2 : 1), 4391 Z(e, t.min), 4392 (e.width = n * i.x), 4393 (e.height = n * i.y), 4394 (e.style.width = i.x + 'px'), 4395 (e.style.height = i.y + 'px'), 4396 b.retina && this._ctx.scale(2, 2), 4397 this._ctx.translate(-t.min.x, -t.min.y), 4398 this.fire('update')); 4399 }, 4400 _reset: function () { 4401 (Wi.prototype._reset.call(this), this._postponeUpdatePaths && ((this._postponeUpdatePaths = !1), this._updatePaths())); 4402 }, 4403 _initPath: function (t) { 4404 this._updateDashArray(t); 4405 t = (this._layers[h(t)] = t)._order = { 4406 layer: t, 4407 prev: this._drawLast, 4408 next: null, 4409 }; 4410 (this._drawLast && (this._drawLast.next = t), (this._drawLast = t), (this._drawFirst = this._drawFirst || this._drawLast)); 4411 }, 4412 _addPath: function (t) { 4413 this._requestRedraw(t); 4414 }, 4415 _removePath: function (t) { 4416 var e = t._order, 4417 i = e.next, 4418 e = e.prev; 4419 (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)); 4420 }, 4421 _updatePath: function (t) { 4422 (this._extendRedrawBounds(t), t._project(), t._update(), this._requestRedraw(t)); 4423 }, 4424 _updateStyle: function (t) { 4425 (this._updateDashArray(t), this._requestRedraw(t)); 4426 }, 4427 _updateDashArray: function (t) { 4428 if ('string' == typeof t.options.dashArray) { 4429 for (var e, i = t.options.dashArray.split(/[, ]+/), n = [], o = 0; o < i.length; o++) { 4430 if (((e = Number(i[o])), isNaN(e))) return; 4431 n.push(e); 4432 } 4433 t.options._dashArray = n; 4434 } else t.options._dashArray = t.options.dashArray; 4435 }, 4436 _requestRedraw: function (t) { 4437 this._map && (this._extendRedrawBounds(t), (this._redrawRequest = this._redrawRequest || x(this._redraw, this))); 4438 }, 4439 _extendRedrawBounds: function (t) { 4440 var e; 4441 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]))); 4442 }, 4443 _redraw: function () { 4444 ((this._redrawRequest = null), this._redrawBounds && (this._redrawBounds.min._floor(), this._redrawBounds.max._ceil()), this._clear(), this._draw(), (this._redrawBounds = null)); 4445 }, 4446 _clear: function () { 4447 var t, 4448 e = this._redrawBounds; 4449 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(
4449)); 4450 }, 4451 _draw: function () { 4452 var t, 4453 e, 4454 i = this._redrawBounds; 4455 (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)); 4456 for (var n = this._drawFirst; n; n = n.next) ((t = n.layer), (!i || (t._pxBounds && t._pxBounds.intersects(i))) && t._updatePath()); 4457 ((this._drawing = !1), this._ctx.restore()); 4458 }, 4459 _updatePoly: function (t, e) { 4460 if (this._drawing) { 4461 var i, 4462 n, 4463 o, 4464 s, 4465 r = t._parts, 4466 a = r.length, 4467 h = this._ctx; 4468 if (a) { 4469 for (h.beginPath(), i = 0; i < a; i++) { 4470 for (n = 0, o = r[i].length; n < o; n++) ((s = r[i][n]), h[n ? 'lineTo' : 'moveTo'](s.x, s.y)); 4471 e && h.closePath(); 4472 } 4473 this._fillStroke(h, t); 4474 } 4475 } 4476 }, 4477 _updateCircle: function (t) { 4478 var e, i, n, o; 4479 this._drawing && 4480 !t._empty() && 4481 ((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)); 4482 }, 4483 _fillStroke: function (t, e) { 4484 var i = e.options; 4485 (i.fill && ((t.globalAlpha = i.fillOpacity), (t.fillStyle = i.fillColor || i.color), t.fill(i.fillRule || 'evenodd')), 4486 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())); 4487 }, 4488 _onClick: function (t) { 4489 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)); 4490 this._fireEvent(!!i && [i], t); 4491 }, 4492 _onMouseMove: function (t) { 4493 var e; 4494 !this._map || this._map.dragging.moving() || this._map._animatingZoom || ((e = this._map.mouseEventToLayerPoint(t)), this._handleMouseHover(t, e)); 4495 }, 4496 _handleMouseOut: function (t) { 4497 var e = this._hoveredLayer; 4498 e && (z(this._container, 'leaflet-interactive'), this._fireEvent([e], t, 'mouseout'), (this._hoveredLayer = null), (this._mouseHoverThrottled = !1)); 4499 }, 4500 _handleMouseHover: function (t, e) { 4501 if (!this._mouseHoverThrottled) { 4502 for (var i, n, o = this._drawFirst; o; o = o.next) (i = o.layer).options.interactive && i._containsPoint(e) && (n = i); 4503 (n !== this._hoveredLayer && (this._handleMouseOut(t), n && (M(this._container, 'leaflet-interactive'), this._fireEvent([n], t, 'mouseover'), (this._hoveredLayer = n))), 4504 this._fireEvent(!!this._hoveredLayer && [this._hoveredLayer], t), 4505 (this._mouseHoverThrottled = !0), 4506 setTimeout( 4507 a(function () { 4508 this._mouseHoverThrottled = !1; 4509 }, this), 4510 32 4511 )); 4512 } 4513 }, 4514 _fireEvent: function (t, e, i) { 4515 this._map._fireDOMEvent(e, i || e.type, t); 4516 }, 4517 _bringToFront: function (t) { 4518 var e, 4519 i, 4520 n = t._order; 4521 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))); 4522 }, 4523 _bringToBack: function (t) { 4524 var e, 4525 i, 4526 n = t._order; 4527 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))); 4528 }, 4529 });
4530 function Ui(t) { 4531 return b.canvas ? new Fi(t) : null; 4532 } 4533 var Vi = (function () { 4534 try { 4535 return ( 4536 document.namespaces.add('lvml', 'urn:schemas-microsoft-com:vml'), 4537 function (t) { 4538 return document.createElement('<lvml:' + t + ' class="lvml">'); 4539 } 4540 ); 4541 } catch (t) {} 4542 return function (t) { 4543 return document.createElement('<' + t + ' xmlns="urn:schemas-microsoft.com:vml" class="lvml">'); 4544 }; 4545 })(), 4546 zt = { 4547 _initContainer: function () { 4548 this._container = P('div', 'leaflet-vml-container'); 4549 }, 4550 _update: function () { 4551 this._map._animatingZoom || (Wi.prototype._update.call(this), this.fire('update')); 4552 }, 4553 _initPath: function (t) { 4554 var e = (t._container = Vi('shape')); 4555 (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)); 4556 }, 4557 _addPath: function (t) { 4558 var e = t._container; 4559 (this._container.appendChild(e), t.options.interactive && t.addInteractiveTarget(e)); 4560 }, 4561 _removePath: function (t) { 4562 var e = t._container; 4563 (T(e), t.removeInteractiveTarget(e), delete this._layers[h(t)]); 4564 }, 4565 _updateStyle: function (t) { 4566 var e = t._stroke, 4567 i = t._fill, 4568 n = t.options, 4569 o = t._container; 4570 ((o.stroked = !!n.stroke), 4571 (o.filled = !!n.fill), 4572 n.stroke 4573 ? ((e = e || (t._stroke = Vi('stroke'))), 4574 o.appendChild(e), 4575 (e.weight = n.weight + 'px'), 4576 (e.color = n.color), 4577 (e.opacity = n.opacity), 4578 n.dashArray ? (e.dashStyle = d(n.dashArray) ? n.dashArray.join(' ') : n.dashArray.replace(/( *, *)/g, ' ')) : (e.dashStyle = ''), 4579 (e.endcap = n.lineCap.replace('butt', 'flat')), 4580 (e.joinstyle = n.lineJoin)) 4581 : e && (o.removeChild(e), (t._stroke = null)), 4582 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))); 4583 }, 4584 _updateCircle: function (t) { 4585 var e = t._point.round(), 4586 i = Math.round(t._radius), 4587 n = Math.round(t._radiusY || i); 4588 this._setPath(t, t._empty() ? 'M0 0' : 'AL ' + e.x + ',' + e.y + ' ' + i + ',' + n + ' 0,23592600'); 4589 }, 4590 _setPath: function (t, e) { 4591 t._path.v = e; 4592 }, 4593 _bringToFront: function (t) { 4594 fe(t._container); 4595 }, 4596 _bringToBack: function (t) { 4597 ge(t._container); 4598 }, 4599 }, 4600 qi = b.vml ? Vi : ct, 4601 Gi = Wi.extend({ 4602 _initContainer: function () { 4603 ((this._container = qi('svg')), this._container.setAttribute('pointer-events', 'none'), (this._rootGroup = qi('g')), this._container.appendChild(this._rootGroup)); 4604 }, 4605 _destroyContainer: function () { 4606 (T(this._container), k(this._container), delete this._container, delete this._rootGroup, delete this._svgSize); 4607 }, 4608 _update: function () { 4609 var t, e, i; 4610 (this._map._animatingZoom && this._bounds) || 4611 (Wi.prototype._update.call(this), 4612 (e = (t = this._bounds).getSize()), 4613 (i = this._container), 4614 (this._svgSize && this._svgSize.equals(e)) || ((this._svgSize = e), i.setAttribute('width', e.x), i.setAttribute('height', e.y)), 4615 Z(i, t.min), 4616 i.setAttribute('viewBox', [t.min.x, t.min.y, e.x, e.y].join(' ')), 4617 this.fire('update')); 4618 }, 4619 _initPath: function (t) { 4620 var e = (t._path = qi('path')); 4621 (t.options.className && M(e, t.options.className), t.options.interactive && M(e, 'leaflet-interactive'), this._updateStyle(t), (this._layers[h(t)] = t)); 4622 }, 4623 _addPath: function (t) { 4624 (this._rootGroup || this._initContainer(), this._rootGroup.appendChild(t._path), t.addInteractiveTarget(t._path)); 4625 }, 4626 _removePath: function (t) { 4627 (T(t._path), t.removeInteractiveTarget(t._path), delete this._layers[h(t)]); 4628 }, 4629 _updatePath: function (t) { 4630 (t._project(), t._update()); 4631 }, 4632 _updateStyle: function (t) { 4633 var e = t._path, 4634 t = t.options; 4635 e && 4636 (t.stroke 4637 ? (e.setAttribute('stroke', t.color), 4638 e.setAttribute('stroke-opacity', t.opacity), 4639 e.setAttribute('stroke-width', t.weight), 4640 e.setAttribute('stroke-linecap', t.lineCap), 4641 e.setAttribute('stroke-linejoin', t.lineJoin), 4642 t.dashArray ? e.setAttribute('stroke-dasharray', t.dashArray) : e.removeAttribute('stroke-dasharray'), 4643 t.dashOffset ? e.setAttribute('stroke-dashoffset', t.dashOffset)
4643: e.removeAttribute('stroke-dashoffset')) 4644 : e.setAttribute('stroke', 'none'), 4645 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')); 4646 }, 4647 _updatePoly: function (t, e) { 4648 this._setPath(t, dt(t._parts, e)); 4649 }, 4650 _updateCircle: function (t) { 4651 var e = t._point, 4652 i = Math.max(Math.round(t._radius), 1), 4653 n = 'a' + i + ',' + (Math.max(Math.round(t._radiusY), 1) || i) + ' 0 1,0 ', 4654 e = t._empty() ? 'M0 0' : 'M' + (e.x - i) + ',' + e.y + n + 2 * i + ',0 ' + n + 2 * -i + ',0 '; 4655 this._setPath(t, e); 4656 }, 4657 _setPath: function (t, e) { 4658 t._path.setAttribute('d', e); 4659 }, 4660 _bringToFront: function (t) { 4661 fe(t._path); 4662 }, 4663 _bringToBack: function (t) { 4664 ge(t._path); 4665 }, 4666 }); 4667 function Ki(t) { 4668 return b.svg || b.vml ? new Gi(t) : null; 4669 } 4670 (b.vml && Gi.include(zt), 4671 A.include({ 4672 getRenderer: function (t) { 4673 t = (t = t.options.renderer || this._getPaneRenderer(t.options.pane) || this.options.renderer || this._renderer) || (this._renderer = this._createRenderer()); 4674 return (this.hasLayer(t) || this.addLayer(t), t); 4675 }, 4676 _getPaneRenderer: function (t) { 4677 var e; 4678 return 'overlayPane' !== t && void 0 !== t && (void 0 === (e = this._paneRenderers[t]) && ((e = this._createRenderer({ pane: t })), (this._paneRenderers[t] = e)), e); 4679 }, 4680 _createRenderer: function (t) { 4681 return (this.options.preferCanvas && Ui(t)) || Ki(t); 4682 }, 4683 })); 4684 var Yi = xi.extend({ 4685 initialize: function (t, e) { 4686 xi.prototype.initialize.call(this, this._boundsToLatLngs(t), e); 4687 }, 4688 setBounds: function (t) { 4689 return this.setLatLngs(this._boundsToLatLngs(t)); 4690 }, 4691 _boundsToLatLngs: function (t) {
4692 return [(t = g(t)).getSouthWest(), t.getNorthWest(), t.getNorthEast(), t.getSouthEast()]; 4693 }, 4694 }); 4695 ((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 })); 4696 var _t = n.extend({ 4697 initialize: function (t) { 4698 ((this._map = t), (this._container = t._container), (this._pane = t._panes.overlayPane), (this._resetStateTimeout = 0), t.on('unload', this._destroy, this)); 4699 }, 4700 addHooks: function () { 4701 S(this._container, 'mousedown', this._onMouseDown, this); 4702 }, 4703 removeHooks: function () { 4704 k(this._container, 'mousedown', this._onMouseDown, this); 4705 }, 4706 moved: function () { 4707 return this._moved; 4708 }, 4709 _destroy: function () { 4710 (T(this._pane), delete this._pane); 4711 }, 4712 _resetState: function () { 4713 ((this._resetStateTimeout = 0), (this._moved = !1)); 4714 }, 4715 _clearDeferredResetState: function () { 4716 0 !== this._resetStateTimeout && (clearTimeout(this._resetStateTimeout), (this._resetStateTimeout = 0)); 4717 }, 4718 _onMouseDown: function (t) { 4719 if (!t.shiftKey || (1 !== t.which && 1 !== t.button)) return !1; 4720 (this._clearDeferredResetState(), 4721 this._resetState(), 4722 re(), 4723 Le(), 4724 (this._startPoint = this._map.mouseEventToContainerPoint(t)), 4725 S( 4726 document, 4727 { 4728 contextmenu: Re, 4729 mousemove: this._onMouseMove, 4730 mouseup: this._onMouseUp, 4731 keydown: this._onKeyDown, 4732 }, 4733 this 4734 )); 4735 }, 4736 _onMouseMove: function (t) { 4737 (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))); 4738 var t = new f(this._point, this._startPoint), 4739 e = t.getSize(); 4740 (Z(this._box, t.min), (this._box.style.width = e.x + 'px'), (this._box.style.height = e.y + 'px')); 4741 }, 4742 _finish: function () { 4743 (this._moved && (T(this._box), z(this._container, 'leaflet-crosshair')), 4744 ae(), 4745 Te(), 4746 k( 4747 document, 4748 { 4749 contextmenu: Re, 4750 mousemove: this._onMouseMove, 4751 mouseup: this._onMouseUp, 4752 keydown: this._onKeyDown, 4753 }, 4754 this 4755 )); 4756 }, 4757 _onMouseUp: function (t) { 4758 (1 !== t.which && 1 !== t.button) || 4759 (this._finish(), 4760 this._moved && 4761 (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 }))); 4762 }, 4763 _onKeyDown: function (t) { 4764 27 === t.keyCode && (this._finish(), this._clearDeferredResetState(), this._resetState()); 4765 }, 4766 }), 4767 Ct = 4768 (A.addInitHook('addHandler', 'boxZoom', _t), 4769 A.mergeOptions({ doubleClickZoom: !0 }), 4770 n.extend({ 4771 addHooks: function () { 4772 this._map.on('dblclick', this._onDoubleClick, this); 4773 }, 4774 removeHooks: function () { 4775 this._map.off('dblclick', this._onDoubleClick, this); 4776 }, 4777 _onDoubleClick: function (t) { 4778 var e = this._map, 4779 i = e.getZoom(), 4780 n = e.options.zoomDelta, 4781 i = t.originalEvent.shiftKey ? i - n : i + n; 4782 'center' === e.options.doubleClickZoom ? e.setZoom(i) : e.setZoomAround(t.containerPoint, i); 4783 }, 4784 })), 4785 Zt = 4786 (A.addInitHook('addHandler', 'doubleClickZoom', Ct), 4787 A.mergeOptions({ 4788 dragging: !0, 4789 inertia: !0, 4790 inertiaDeceleration: 3400, 4791 inertiaMaxSpeed: 1 / 0, 4792 easeLinearity: 0.2, 4793 worldCopyJump: !1, 4794 maxBoundsViscosity: 0, 4795 }), 4796 n.extend({ 4797 addHooks: function () { 4798 var t; 4799 (this._draggable || 4800 ((t = this._map), 4801 (this._draggable = new Xe(t._mapPane, t._container)), 4802 this._draggable.on( 4803 { 4804 dragstart: this._onDragStart, 4805 drag: this._onDrag, 4806 dragend: this._onDragEnd, 4807 }, 4808 this 4809 ), 4810 this._draggable.on('predrag', this._onPreDragLimit, this), 4811 t.options.worldCopyJump && (this._draggable.on('predrag', this._onPreDragWrap, this), t.on('zoomend', this._onZoomEnd, this), t.whenReady(this._onZoomEnd, this))), 4812 M(this._map._container, 'leaflet-grab leaflet-touch-drag'), 4813 this._draggable.enable(), 4814 (this._positions = []), 4815 (this._times = [])); 4816 }, 4817 removeHooks: function () { 4818 (z(this._map._container, 'leaflet-grab'), z(this._map._container, 'leaflet-touch-drag'), this._draggable.disable()); 4819 }, 4820 moved: function () { 4821 return this._draggable && this._draggable._moved; 4822 }, 4823 moving: function () {
4824 return this._draggable && this._draggable._moving; 4825 }, 4826 _onDragStart: function () { 4827 var t, 4828 e = this._map; 4829 (e._stop(), 4830 this._map.options.maxBounds && this._map.options.maxBoundsViscosity 4831 ? ((t = g(this._map.options.maxBounds)), 4832 (this._offsetLimit = _(this._map.latLngToContainerPoint(t.getNorthWest()).multiplyBy(-1), this._map.latLngToContainerPoint(t.getSouthEast()).multiplyBy(-1).add(this._map.getSize()))), 4833 (this._viscosity = Math.min(1, Math.max(0, this._map.options.maxBoundsViscosity)))) 4834 : (this._offsetLimit = null), 4835 e.fire('movestart').fire('dragstart'), 4836 e.options.inertia && ((this._positions = []), (this._times = []))); 4837 }, 4838 _onDrag: function (t) { 4839 var e, i; 4840 (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)); 4841 }, 4842 _prunePositions: function (t) { 4843 for (; 1 < this._positions.length && 50 < t - this._times[0]; ) (this._positions.shift(), this._times.shift()); 4844 }, 4845 _onZoomEnd: function () { 4846 var t = this._map.getSize().divideBy(2), 4847 e = this._map.latLngToLayerPoint([0, 0]); 4848 ((this._initialWorldOffset = e.subtract(t).x), (this._worldWidth = this._map.getPixelWorldBounds().getSize().x)); 4849 }, 4850 _viscousLimit: function (t, e) { 4851 return t - (t - e) * this._viscosity; 4852 }, 4853 _onPreDragLimit: function () { 4854 var t, e; 4855 this._viscosity && 4856 this._offsetLimit && 4857 ((t = this._draggable._newPos.subtract(this._draggable._startPos)), 4858 (e = this._offsetLimit), 4859 t.x < e.min.x && (t.x = this._viscousLimit(t.x, e.min.x)), 4860 t.y < e.min.y && (t.y = this._viscousLimit(t.y, e.min.y)), 4861 t.x > e.max.x && (t.x = this._viscousLimit(t.x, e.max.x)), 4862 t.y > e.max.y && (t.y = this._viscousLimit(t.y, e.max.y)), 4863 (this._draggable._newPos = this._draggable._startPos.add(t))); 4864 }, 4865 _onPreDragWrap: function () { 4866 var t = this._worldWidth, 4867 e = Math.round(t / 2), 4868 i = this._initialWorldOffset, 4869 n = this._draggable._newPos.x, 4870 o = ((n - e + i) % t) + e - i, 4871 n = ((n + e + i) % t) - e - i, 4872 t = Math.abs(o + i) < Math.abs(n + i) ? o : n; 4873 ((this._draggable._absPos = this._draggable._newPos.clone()), (this._draggable._newPos.x = t)); 4874 }, 4875 _onDragEnd: function (t) { 4876 var e, 4877 i, 4878 n, 4879 o, 4880 s = this._map, 4881 r = s.options, 4882 a = !r.inertia || t.noInertia || this._times.length < 2; 4883 (s.fire('dragend', t), 4884 !a && 4885 (this._prunePositions(+new Date()), 4886 (t = this._lastPos.subtract(this._positions[0])), 4887 (a = (this._lastTime - this._times[0]) / 1e3), 4888 (e = r.easeLinearity), 4889 (a = (t = t.multiplyBy(e / a)).distanceTo([0, 0])), 4890 (i = Math.min(r.inertiaMaxSpeed, a)), 4891 (t = t.multiplyBy(i / a)), 4892 (n = i / (r.inertiaDeceleration * e)), 4893 (o = t.multiplyBy(-n / 2).round()).x || o.y) 4894 ? ((o = s._limitOffset(o, s.options.maxBounds)), 4895 x(function () { 4896 s.panBy(o, { 4897 duration: n, 4898 easeLinearity: e, 4899 noMoveStart: !0, 4900 animate: !0, 4901 }); 4902 })) 4903 : s.fire('moveend')); 4904 }, 4905 })), 4906 St = 4907 (A.addInitHook('addHandler', 'dragging', Zt), 4908 A.mergeOptions({ keyboard: !0, keyboardPanDelta: 80 }), 4909 n.extend({ 4910 keyCodes: { 4911 left: [37], 4912 right: [39], 4913 down: [40], 4914 up: [38], 4915 zoomIn: [187, 107, 61, 171], 4916 zoomOut: [189, 109, 54, 173], 4917 }, 4918 initialize: function (t) { 4919 ((this._map = t), this._setPanDelta(t.options.keyboardPanDelta), this._setZoomDelta(t.options.zoomDelta)); 4920 }, 4921 addHooks: function () { 4922 var t = this._map._container; 4923 (t.tabIndex <= 0 && (t.tabIndex = '0'), 4924 S( 4925 t, 4926 { 4927 focus: this._onFocus, 4928 blur: this._onBlur, 4929 mousedown: this._onMouseDown, 4930 }, 4931 this 4932 ), 4933 this._map.on({ focus: this._addHooks, blur: this._removeHooks }, this)); 4934 }, 4935 removeHooks: function () { 4936 (this._removeHooks(), 4937 k( 4938 this._map._container, 4939 { 4940 focus: this._onFocus, 4941 blur: this._onBlur, 4942 mousedown: this._onMouseDown, 4943 }, 4944 this 4945 ), 4946 this._map.off({ focus: this._addHooks, blur: this._removeHooks }, this)); 4947 }, 4948 _onMouseDown: function () { 4949 var t, e, i; 4950 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)); 4951 }, 4952 _onFocus: function () { 4953 ((this._focused = !0), this._map.fire('focus')); 4954 }, 4955 _onBlur: function () { 4956 ((this._focused = !1), this._map.fire('blur')); 4957 }, 4958 _setPanDelta: function (t) { 4959 for (var e = (this._panKeys = {}), i = this.keyCodes, n = 0, o = i.left.length; n < o; n++) e[i.left[n]] = [-1 * t, 0]; 4960 for (n = 0, o = i.right.length; n < o; n++) e[i.right[n]] = [t, 0]; 4961 for (n = 0, o = i.down.length; n < o; n++) e[i.down[n]] = [0, t]; 4962 for (n = 0, o = i.up.length; n < o; n++) e[i.up[n]] = [0, -1 * t]; 4963 }, 4964 _setZoomDelta: function (t) { 4965 for (var e = (this._zoomKeys = {}), i = this.keyCodes, n = 0, o = i.zoomIn.length; n < o; n++) e[i.zoomIn[n]] = t; 4966 for (n = 0, o = i.zoomOut.length; n < o; n++) e[i.zoomOut[n]] = -t; 4967 }, 4968 _addHooks: function () { 4969 S(document, 'keydown', this._onKeyDown, this); 4970 }, 4971 _removeHooks: function () { 4972 k(document, 'keydown', this._onKeyDown, this); 4973 }, 4974 _onKeyDown: function (t) { 4975 if (!(t.altKey || t.ctrlKey || t.metaKey)) { 4976 var e, 4977 i, 4978 n = t.keyCode,
4979 o = this._map; 4980 if (n in this._panKeys) 4981 (o._panAnim && o._panAnim._inProgress) || 4982 ((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)); 4983 else if (n in this._zoomKeys) o.setZoom(o.getZoom() + (t.shiftKey ? 3 : 1) * this._zoomKeys[n]); 4984 else { 4985 if (27 !== n || !o._popup || !o._popup.options.closeOnEscapeKey) return; 4986 o.closePopup(); 4987 } 4988 Re(t); 4989 } 4990 }, 4991 })), 4992 Et = 4993 (A.addInitHook('addHandler', 'keyboard', St), 4994 A.mergeOptions({ 4995 scrollWheelZoom: !0, 4996 wheelDebounceTime: 40, 4997 wheelPxPerZoomLevel: 60, 4998 }), 4999 n.extend({ 5000 addHooks: function () { 5001 (S(this._map._container, 'wheel', this._onWheelScroll, this), (this._delta = 0)); 5002 }, 5003 removeHooks: function () { 5004 k(this._map._container, 'wheel', this._onWheelScroll, this); 5005 }, 5006 _onWheelScroll: function (t) { 5007 var e = He(t), 5008 i = this._map.options.wheelDebounceTime, 5009 e = ((this._delta += e), (this._lastMousePos = this._map.mouseEventToContainerPoint(t)), this._startTime || (this._startTime = +new Date()), Math.max(i - (+new Date() - this._startTime), 0)); 5010 (clearTimeout(this._timer), (this._timer = setTimeout(a(this._performZoom, this), e)), Re(t)); 5011 }, 5012 _performZoom: function () { 5013 var t = this._map, 5014 e = t.getZoom(), 5015 i = this._map.options.zoomSnap || 0, 5016 n = (t._stop(), this._delta / (4 * this._map.options.wheelPxPerZoomLevel)), 5017 n = (4 * Math.log(2 / (1 + Math.exp(-Math.abs(n))))) / Math.LN2, 5018 i = i ? Math.ceil(n / i) * i : n, 5019 n = t._limitZoom(e + (0 < this._delta ? i : -i)) - e; 5020 ((this._delta = 0), (this._startTime = null), n && ('center' === t.options.scrollWheelZoom ? t.setZoom(e + n) : t.setZoomAround(this._lastMousePos, e + n))); 5021 }, 5022 })), 5023 kt = 5024 (A.addInitHook('addHandler', 'scrollWheelZoom', Et), 5025 A.mergeOptions({ 5026 tapHold: b.touchNative && b.safari && b.mobile, 5027 tapTolerance: 15, 5028 }), 5029 n.extend({ 5030 addHooks: function () { 5031 S(this._map._container, 'touchstart', this._onDown, this); 5032 }, 5033 removeHooks: function () { 5034 k(this._map._container, 'touchstart', this._onDown, this); 5035 }, 5036 _onDown: function (t) { 5037 var e; 5038 (clearTimeout(this._holdTimeout), 5039 1 === t.touches.length && 5040 ((e = t.touches[0]), 5041 (this._startPos = this._newPos = new p(e.clientX, e.clientY)), 5042 (this._holdTimeout = setTimeout( 5043 a(function () { 5044 (this._cancel(), this._isTapValid() && (S(document, 'touchend', O), S(document, 'touchend touchcancel', this._cancelClickPrevent), this._simulateEvent('contextmenu', e))); 5045 }, this), 5046 600 5047 )), 5048 S(document, 'touchend touchcancel contextmenu', this._cancel, this), 5049 S(document, 'touchmove', this._onMove, this))); 5050 }, 5051 _cancelClickPrevent: function t() { 5052 (k(document, 'touchend', O), k(document, 'touchend touchcancel', t)); 5053 }, 5054 _cancel: function () { 5055 (clearTimeout(this._holdTimeout), k(document, 'touchend touchcancel contextmenu', this._cancel, this), k(document, 'touchmove', this._onMove, this)); 5056 }, 5057 _onMove: function (t) { 5058 t = t.touches[0]; 5059 this._newPos = new p(t.clientX, t.clientY); 5060 }, 5061 _isTapValid: function () { 5062 return this._newPos.distanceTo(this._startPos) <= this._map.options.tapTolerance; 5063 }, 5064 _simulateEvent: function (t, e) { 5065 t = new MouseEvent(t, { 5066 bubbles: !0, 5067 cancelable: !0, 5068 view: window, 5069 screenX: e.screenX, 5070 screenY: e.screenY, 5071 clientX: e.clientX, 5072 clientY: e.clientY, 5073 }); 5074 ((t._simulated = !0), e.target.dispatchEvent(t)); 5075 }, 5076 })), 5077 Ot = 5078 (A.addInitHook('addHandler', 'tapHold', kt), 5079 A.mergeOptions({ touchZoom: b.touch, bounceAtZoomLimits: !0 }), 5080 n.extend({ 5081 addHooks: function () { 5082 (M(this._map._container, 'leaflet-touch-zoom'), S(this._map._container, 'touchstart', this._onTouchStart, this)); 5083 }, 5084 removeHooks: function () { 5085 (z(this._map._container, 'leaflet-touch-zoom'), k(this._map._container, 'touchstart', this._onTouchStart, this)); 5086 }, 5087 _onTouchStart: function (t) { 5088 var e, 5089 i, 5090 n = this._map; 5091 !t.touches || 5092 2 !== t.touches.length || 5093 n._animatingZoom || 5094 this._zooming || 5095 ((e = n.mouseEventToContainerPoint(t.touches[0])), 5096 (i = n.mouseEventToContainerPoint(t.touches[1])), 5097 (this._centerPoint = n.getSize()._divideBy(2)), 5098 (this._startLatLng = n.containerPointToLatLng(this._centerPoint)), 5099 'center' !== n.options.touchZoom && (this._pinchStartLatLng = n.containerPointToLatLng(e.add(i)._divideBy(2))), 5100 (this._startDist = e.distanceTo(i)), 5101 (this._startZoom = n.getZoom()), 5102 (this._moved = !1), 5103 (this._zooming = !0), 5104 n._stop(), 5105 S(document, 'touchmove', this._onTouchMove, this), 5106 S(document, 'touchend touchcancel', this._onTouchEnd, this), 5107 O(t)); 5108 }, 5109 _onTouchMove: function (t) { 5110 if (t.touches && 2 === t.touches.length && this._zooming) { 5111 var e = this._map, 5112 i = e.mouseEventToContainerPoint(t.touches[0]), 5113 n = e.mouseEventToContainerPoint(t.touches[1]), 5114 o = i.distanceTo(n) / this._startDist; 5115 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)) { 5116 if (((this._center = this._startLatLng), 1 == o)) return; 5117 } else { 5118 i = i._add(n)._divideBy(2)._subtract(this._centerPoint); 5119 if (1 == o && 0 === i.x && 0 === i.y) return; 5120 this._center = e.unproject(e.project(this._pinchStartLatLng, this._zoom).subtract(i), this._zoom); 5121 } 5122 (this._moved || (e._moveStart(!0, !1), (this._moved = !0)), r(this._animRequest)); 5123 n = a(e._move, e, this._center, this._zoom, { pinch: !0, roun
5123d: !1 }, void 0); 5124 ((this._animRequest = x(n, this, !0)), O(t)); 5125 } 5126 }, 5127 _onTouchEnd: function () { 5128 this._moved && this._zooming 5129 ? ((this._zooming = !1), 5130 r(this._animRequest), 5131 k(document, 'touchmove', this._onTouchMove, this), 5132 k(document, 'touchend touchcancel', this._onTouchEnd, this), 5133 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))) 5134 : (this._zooming = !1); 5135 }, 5136 })), 5137 Xi = 5138 (A.addInitHook('addHandler', 'touchZoom', Ot), 5139 (A.BoxZoom = _t), 5140 (A.DoubleClickZoom = Ct), 5141 (A.Drag = Zt), 5142 (A.Keyboard = St), 5143 (A.ScrollWheelZoom = Et), 5144 (A.TapHold = kt), 5145 (A.TouchZoom = Ot), 5146 (t.Bounds = f), 5147 (t.Browser = b), 5148 (t.CRS = ot), 5149 (t.Canvas = Fi), 5150 (t.Circle = vi), 5151 (t.CircleMarker = gi), 5152 (t.Class = et), 5153 (t.Control = B), 5154 (t.DivIcon = Ri), 5155 (t.DivOverlay = Ai), 5156 (t.DomEvent = mt), 5157 (t.DomUtil = pt), 5158 (t.Draggable = Xe), 5159 (t.Evented = it), 5160 (t.FeatureGroup = ci), 5161 (t.GeoJSON = wi), 5162 (t.GridLayer = Ni), 5163 (t.Handler = n), 5164 (t.Icon = di), 5165 (t.ImageOverlay = Ei), 5166 (t.LatLng = v), 5167 (t.LatLngBounds = s), 5168 (t.Layer = o), 5169 (t.LayerGroup = ui), 5170 (t.LineUtil = vt), 5171 (t.Map = A), 5172 (t.Marker = mi), 5173 (t.Mixin = ft), 5174 (t.Path = fi), 5175 (t.Point = p), 5176 (t.PolyUtil = gt), 5177 (t.Polygon = xi), 5178 (t.Polyline = yi), 5179 (t.Popup = Bi), 5180 (t.PosAnimation = Fe), 5181 (t.Projection = wt), 5182 (t.Rectangle = Yi), 5183 (t.Renderer = Wi), 5184 (t.SVG = Gi), 5185 (t.SVGOverlay = Oi), 5186 (t.TileLayer = Di), 5187 (t.Tooltip = Ii), 5188 (t.Transformation = at), 5189 (t.Util = tt), 5190 (t.VideoOverlay = ki), 5191 (t.bind = a), 5192 (t.bounds = _), 5193 (t.canvas = Ui), 5194 (t.circle = function (t, e, i) { 5195 return new vi(t, e, i); 5196 }), 5197 (t.circleMarker = function (t, e) { 5198 return new gi(t, e); 5199 }), 5200 (t.control = Ue), 5201 (t.divIcon = function (t) { 5202 return new Ri(t); 5203 }), 5204 (t.extend = l), 5205 (t.featureGroup = function (t, e) { 5206 return new ci(t, e); 5207 }), 5208 (t.geoJSON = Si), 5209 (t.geoJson = Mt), 5210 (t.gridLayer = function (t) { 5211 return new Ni(t); 5212 }), 5213 (t.icon = function (t) { 5214 return new di(t); 5215 }), 5216 (t.imageOverlay = function (t, e, i) { 5217 return new Ei(t, e, i); 5218 }), 5219 (t.latLng = w), 5220 (t.latLngBounds = g), 5221 (t.layerGroup = function (t, e) { 5222 return new ui(t, e); 5223 }), 5224 (t.map = function (t, e) { 5225 return new A(t, e); 5226 }), 5227 (t.marker = function (t, e) { 5228 return new mi(t, e); 5229 }), 5230 (t.point = m), 5231 (t.polygon = function (t, e) { 5232 return new xi(t, e); 5233 }), 5234 (t.polyline = function (t, e) { 5235 return new yi(t, e); 5236 }), 5237 (t.popup = function (t, e) { 5238 return new Bi(t, e); 5239 }), 5240 (t.rectangle = function (t, e) { 5241 return new Yi(t, e); 5242 }), 5243 (t.setOptions = c), 5244 (t.stamp = h), 5245 (t.svg = Ki), 5246 (t.svgOverlay = function (t, e, i) { 5247 return new Oi(t, e, i); 5248 }), 5249 (t.tileLayer = ji), 5250 (t.tooltip = function (t, e) { 5251 return new Ii(t, e); 5252 }), 5253 (t.transformation = ht), 5254 (t.version = '1.9.4'), 5255 (t.videoOverlay = function (t, e, i) { 5256 return new ki(t, e, i); 5257 }), 5258 window.L); 5259 ((t.noConflict = function () { 5260 return ((window.L = Xi), this); 5261 }), 5262 (window.L = t)); 5263}); 5264//# sourceMappingURL=leaflet.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.