diff --git a/CHANGES.rst b/CHANGES.rst index 4a67a09..d43e419 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -4,7 +4,10 @@ Changelog 1.5 (unreleased) ---------------- -- Nothing changed yet. +- Geosearch bounds: Patched ``L.GeoSearch.Provider.Esri`` to also return the + location bounds. Added ``bounds`` field to ``IGeolocation``. Bounds are + updated on pan, zoom, click and address lookup. + [david-batranu] 1.4 (2015-11-26) diff --git a/Gruntfile.js b/Gruntfile.js index 11d1e20..02fb7fa 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -7,6 +7,17 @@ module.exports = function(grunt) { grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), + patch: { + 'l.geosearch.provider.esri.js': { + options: { + patch: 'patches/l.geosearch.provider.esri.js.patch' + }, + files: { + 'patches/l.geosearch.provider.esri.js': 'bower_components/L.GeoSearch/src/js/l.geosearch.provider.esri.js' + } + } + }, + concat: { options: { separator: grunt.util.linefeed + grunt.util.linefeed @@ -17,7 +28,7 @@ module.exports = function(grunt) { 'bower_components/Leaflet.fullscreen/dist/Leaflet.fullscreen.js', 'bower_components/leaflet-providers/leaflet-providers.js', 'bower_components/L.GeoSearch/src/js/l.control.geosearch.js', - 'bower_components/L.GeoSearch/src/js/l.geosearch.provider.esri.js', + 'patches/l.geosearch.provider.esri.js', 'bower_components/leaflet.markercluster/dist/leaflet.markercluster-src.js', 'bower_components/Leaflet.awesome-markers/dist/leaflet.awesome-markers.js' ], @@ -89,7 +100,15 @@ module.exports = function(grunt) { path: dest_path + 'libs.css', pattern: 'fullscreen@2x.png', replacement: '++resource++plone.formwidget.geolocation/images/fullscreen@2x.png' - }, + } + }, + + clean: { + patches: { + src: [ + 'patches/l.geosearch.provider.esri.js' + ] + } } }); @@ -97,9 +116,11 @@ module.exports = function(grunt) { grunt.loadNpmTasks('grunt-contrib-concat'); grunt.loadNpmTasks('grunt-contrib-uglify'); grunt.loadNpmTasks('grunt-contrib-copy'); + grunt.loadNpmTasks('grunt-contrib-clean'); + grunt.loadNpmTasks('grunt-patcher'); grunt.loadNpmTasks('grunt-sed'); // Default task(s). - grunt.registerTask('default', ['concat', 'uglify', 'copy', 'sed']); + grunt.registerTask('default', ['patch', 'concat', 'uglify', 'copy', 'sed', 'clean']); }; diff --git a/bower.json b/bower.json index 2eedc8d..350e928 100644 --- a/bower.json +++ b/bower.json @@ -6,7 +6,7 @@ "leaflet.markercluster": "v0.4", "Leaflet.fullscreen": "git@github.com:Leaflet/Leaflet.fullscreen#v0.0.4", "leaflet-providers": "1.1.6", - "L.GeoSearch": "git@github.com:smeijer/L.GeoSearch.git#master", + "L.GeoSearch": "git@github.com:smeijer/L.GeoSearch.git#9417b3a3447a9b41ef69870569c7ecf205193fc9", "Leaflet.awesome-markers": "v2.0.2" } } diff --git a/package.json b/package.json index 148c928..ee7ba9b 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,9 @@ "grunt-contrib-concat": "", "grunt-contrib-uglify": "", "grunt-contrib-copy": "", - "grunt-sed": "" + "grunt-contrib-clean": "", + "grunt-sed": "", + "grunt-patcher": "" }, "repository": { "type": "git", diff --git a/patches/l.geosearch.provider.esri.js.patch b/patches/l.geosearch.provider.esri.js.patch new file mode 100644 index 0000000..cf371c6 --- /dev/null +++ b/patches/l.geosearch.provider.esri.js.patch @@ -0,0 +1,28 @@ +--- ++++ +@@ -29,12 +29,20 @@ + return []; + + var results = []; +- for (var i = 0; i < data.locations.length; i++) ++ for (var i = 0; i < data.locations.length; i++) { ++ var loc = data.locations[i]; ++ var bounds = new L.LatLngBounds([ ++ new L.LatLng(loc.extent.ymax, loc.extent.xmax), ++ new L.LatLng(loc.extent.ymin, loc.extent.xmin), ++ ]); ++ + results.push(new L.GeoSearch.Result( +- data.locations[i].feature.geometry.x, +- data.locations[i].feature.geometry.y, +- data.locations[i].name ++ loc.feature.geometry.x, ++ loc.feature.geometry.y, ++ loc.name, ++ bounds + )); ++ } + + return results; + } + diff --git a/plone/formwidget/geolocation/bounds.py b/plone/formwidget/geolocation/bounds.py new file mode 100644 index 0000000..81a62cb --- /dev/null +++ b/plone/formwidget/geolocation/bounds.py @@ -0,0 +1,39 @@ +from zope import schema +from zope.i18nmessageid import MessageFactory +from zope.schema.interfaces import IObject +from zope.interface import implements +from zope.interface import Interface + + +_ = MessageFactory('plone.formwidget.geolocation') + + +class IBounds(Interface): + south = schema.Float(title=_(u'South')) + west = schema.Float(title=_(u'West')) + north = schema.Float(title=_(u'North')) + east = schema.Float(title=_(u'East')) + + +class Bounds(object): + implements(IBounds) + + def __init__(self, south=0, west=0, north=0, east=0): + self.south = float(south) + self.west = float(west) + self.north = float(north) + self.east = float(east) + + +class IBoundsField(IObject): + pass + + +class BoundsField(schema.Object): + implements(IBoundsField) + + _type = Bounds + schema = IBounds + + def __init__(self, **kw): + super(BoundsField, self).__init__(schema=self.schema, **kw) diff --git a/plone/formwidget/geolocation/converter.py b/plone/formwidget/geolocation/converter.py index df2f730..ee10376 100644 --- a/plone/formwidget/geolocation/converter.py +++ b/plone/formwidget/geolocation/converter.py @@ -1,4 +1,5 @@ from plone.formwidget.geolocation.geolocation import Geolocation +from plone.formwidget.geolocation.bounds import Bounds from plone.formwidget.geolocation.interfaces import IGeolocation from plone.formwidget.geolocation.interfaces import IGeolocationField from plone.formwidget.geolocation.interfaces import IGeolocationWidget @@ -7,19 +8,29 @@ class GeolocationConverter(BaseDataConverter): - """Converts from a 2-tuple to a Geolocation + """Converts from a 6-tuple to a Geolocation """ adapts(IGeolocationField, IGeolocationWidget) def toWidgetValue(self, value): if value: - return (value.latitude, value.longitude) + bounds = getattr(value, 'bounds', Bounds(0, 0, 0, 0)) + return ( + value.latitude, + value.longitude, + bounds.south, + bounds.west, + bounds.north, + bounds.east, + ) def toFieldValue(self, value): - if value is None or value == ('0', '0'): + if value is None or value == ('0', '0', '0', '0', '0', '0'): return self.field.missing_value if IGeolocation.providedBy(value): return value - return Geolocation(value[0], value[1]) + bounds = Bounds(*value[2:]) + + return Geolocation(value[0], value[1], bounds) diff --git a/plone/formwidget/geolocation/geolocation.py b/plone/formwidget/geolocation/geolocation.py index 979851a..5b2f2e2 100644 --- a/plone/formwidget/geolocation/geolocation.py +++ b/plone/formwidget/geolocation/geolocation.py @@ -5,6 +5,7 @@ class Geolocation(object): implements(IGeolocation) - def __init__(self, latitude=0, longitude=0): + def __init__(self, latitude=0, longitude=0, bounds=None): self.latitude = float(latitude) self.longitude = float(longitude) + self.bounds = bounds diff --git a/plone/formwidget/geolocation/geolocation_input.pt b/plone/formwidget/geolocation/geolocation_input.pt index 5bcb91b..f291f78 100644 --- a/plone/formwidget/geolocation/geolocation_input.pt +++ b/plone/formwidget/geolocation/geolocation_input.pt @@ -15,5 +15,29 @@ class string:${view/klass} longitude; style view/style; value python:view.value[1]" /> + + + + diff --git a/plone/formwidget/geolocation/interfaces.py b/plone/formwidget/geolocation/interfaces.py index be47aa4..df51b34 100644 --- a/plone/formwidget/geolocation/interfaces.py +++ b/plone/formwidget/geolocation/interfaces.py @@ -3,6 +3,7 @@ from zope.i18nmessageid import MessageFactory from zope.interface import Interface from zope.schema.interfaces import IObject +from plone.formwidget.geolocation import bounds _ = MessageFactory('plone.formwidget.geolocation') @@ -11,6 +12,7 @@ class IGeolocation(Interface): latitude = schema.Float(title=_(u'Latitude')) longitude = schema.Float(title=_(u'Longitude')) + bounds = bounds.BoundsField(title=_(u'Bounds')) class IGeolocationField(IObject): diff --git a/plone/formwidget/geolocation/resources/libs.js b/plone/formwidget/geolocation/resources/libs.js index ca5d914..e66cf9f 100644 --- a/plone/formwidget/geolocation/resources/libs.js +++ b/plone/formwidget/geolocation/resources/libs.js @@ -9,6 +9,15 @@ var oldL = window.L, L.version = '0.7.7'; +// define Leaflet for Node module pattern loaders, including Browserify +if (typeof module === 'object' && typeof module.exports === 'object') { + module.exports = L; + +// define Leaflet as an AMD module +} else if (typeof define === 'function' && define.amd) { + define(L); +} + // define Leaflet as a global L variable, saving the original L to restore later if needed L.noConflict = function () { @@ -9301,8 +9310,16 @@ L.control.fullscreen = function (options) { (function (root, factory) { - // Assume Leaflet is loaded into global object L already - factory(L); + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['leaflet'], factory); + } else if (typeof modules === 'object' && module.exports) { + // define a Common JS module that relies on 'leaflet' + module.exports = factory(require('leaflet')); + } else { + // Assume Leaflet is loaded into global object L already + factory(L); + } }(this, function (L) { 'use strict'; @@ -10259,12 +10276,20 @@ L.GeoSearch.Provider.Esri = L.Class.extend({ return []; var results = []; - for (var i = 0; i < data.locations.length; i++) + for (var i = 0; i < data.locations.length; i++) { + var loc = data.locations[i]; + var bounds = new L.LatLngBounds([ + new L.LatLng(loc.extent.ymax, loc.extent.xmax), + new L.LatLng(loc.extent.ymin, loc.extent.xmin), + ]); + results.push(new L.GeoSearch.Result( - data.locations[i].feature.geometry.x, - data.locations[i].feature.geometry.y, - data.locations[i].name + loc.feature.geometry.x, + loc.feature.geometry.y, + loc.name, + bounds )); + } return results; } diff --git a/plone/formwidget/geolocation/resources/libs.min.js b/plone/formwidget/geolocation/resources/libs.min.js index 729c035..eb54b9b 100644 --- a/plone/formwidget/geolocation/resources/libs.min.js +++ b/plone/formwidget/geolocation/resources/libs.min.js @@ -1,7 +1,7 @@ -!function(a,b,c){var d=a.L,e={};e.version="0.7.7","object"==typeof module&&"object"==typeof module.exports?module.exports=e:"function"==typeof define&&define.amd&&define(e),e.noConflict=function(){return a.L=d,this},a.L=e,e.Util={extend:function(a){var b,c,d,e,f=Array.prototype.slice.call(arguments,1);for(c=0,d=f.length;d>c;c++){e=f[c]||{};for(b in e)e.hasOwnProperty(b)&&(a[b]=e[b])}return a},bind:function(a,b){var c=arguments.length>2?Array.prototype.slice.call(arguments,2):null;return function(){return a.apply(b,c||arguments)}},stamp:function(){var a=0,b="_leaflet_id";return function(c){return c[b]=c[b]||++a,c[b]}}(),invokeEach:function(a,b,c){var d,e;if("object"==typeof a){e=Array.prototype.slice.call(arguments,3);for(d in a)b.apply(c,[d,a[d]].concat(e));return!0}return!1},limitExecByInterval:function(a,b,c){var d,e;return function f(){var g=arguments;return d?void(e=!0):(d=!0,setTimeout(function(){d=!1,e&&(f.apply(c,g),e=!1)},b),void a.apply(c,g))}},falseFn:function(){return!1},formatNum:function(a,b){var c=Math.pow(10,b||5);return Math.round(a*c)/c},trim:function(a){return a.trim?a.trim():a.replace(/^\s+|\s+$/g,"")},splitWords:function(a){return e.Util.trim(a).split(/\s+/)},setOptions:function(a,b){return a.options=e.extend({},a.options,b),a.options},getParamString:function(a,b,c){var d=[];for(var e in a)d.push(encodeURIComponent(c?e.toUpperCase():e)+"="+encodeURIComponent(a[e]));return(b&&-1!==b.indexOf("?")?"&":"?")+d.join("&")},template:function(a,b){return a.replace(/\{ *([\w_]+) *\}/g,function(a,d){var e=b[d];if(e===c)throw new Error("No value provided for variable "+a);return"function"==typeof e&&(e=e(b)),e})},isArray:Array.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)},emptyImageUrl:"data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs="},function(){function b(b){var c,d,e=["webkit","moz","o","ms"];for(c=0;ca;a++)d._initHooks[a].call(this)}},b},e.Class.include=function(a){e.extend(this.prototype,a)},e.Class.mergeOptions=function(a){e.extend(this.prototype.options,a)},e.Class.addInitHook=function(a){var b=Array.prototype.slice.call(arguments,1),c="function"==typeof a?a:function(){this[a].apply(this,b)};this.prototype._initHooks=this.prototype._initHooks||[],this.prototype._initHooks.push(c)};var f="_leaflet_events";e.Mixin={},e.Mixin.Events={addEventListener:function(a,b,c){if(e.Util.invokeEach(a,this.addEventListener,this,b,c))return this;var d,g,h,i,j,k,l,m=this[f]=this[f]||{},n=c&&c!==this&&e.stamp(c);for(a=e.Util.splitWords(a),d=0,g=a.length;g>d;d++)h={action:b,context:c||this},i=a[d],n?(j=i+"_idx",k=j+"_len",l=m[j]=m[j]||{},l[n]||(l[n]=[],m[k]=(m[k]||0)+1),l[n].push(h)):(m[i]=m[i]||[],m[i].push(h));return this},hasEventListeners:function(a){var b=this[f];return!!b&&(a in b&&b[a].length>0||a+"_idx"in b&&b[a+"_idx_len"]>0)},removeEventListener:function(a,b,c){if(!this[f])return this;if(!a)return this.clearAllEventListeners();if(e.Util.invokeEach(a,this.removeEventListener,this,b,c))return this;var d,g,h,i,j,k,l,m,n,o=this[f],p=c&&c!==this&&e.stamp(c);for(a=e.Util.splitWords(a),d=0,g=a.length;g>d;d++)if(h=a[d],k=h+"_idx",l=k+"_len",m=o[k],b){if(i=p&&m?m[p]:o[h]){for(j=i.length-1;j>=0;j--)i[j].action!==b||c&&i[j].context!==c||(n=i.splice(j,1),n[0].action=e.Util.falseFn);c&&m&&0===i.length&&(delete m[p],o[l]--)}}else delete o[h],delete o[k],delete o[l];return this},clearAllEventListeners:function(){return delete this[f],this},fireEvent:function(a,b){if(!this.hasEventListeners(a))return this;var c,d,g,h,i,j=e.Util.extend({},b,{type:a,target:this}),k=this[f];if(k[a])for(c=k[a].slice(),d=0,g=c.length;g>d;d++)c[d].action.call(c[d].context,j);h=k[a+"_idx"];for(i in h)if(c=h[i].slice())for(d=0,g=c.length;g>d;d++)c[d].action.call(c[d].context,j);return this},addOneTimeEventListener:function(a,b,c){if(e.Util.invokeEach(a,this.addOneTimeEventListener,this,b,c))return this;var d=e.bind(function(){this.removeEventListener(a,b,c).removeEventListener(a,d,c)},this);return this.addEventListener(a,b,c).addEventListener(a,d,c)}},e.Mixin.Events.on=e.Mixin.Events.addEventListener,e.Mixin.Events.off=e.Mixin.Events.removeEventListener,e.Mixin.Events.once=e.Mixin.Events.addOneTimeEventListener,e.Mixin.Events.fire=e.Mixin.Events.fireEvent,function(){var d="ActiveXObject"in a,f=d&&!b.addEventListener,g=navigator.userAgent.toLowerCase(),h=-1!==g.indexOf("webkit"),i=-1!==g.indexOf("chrome"),j=-1!==g.indexOf("phantom"),k=-1!==g.indexOf("android"),l=-1!==g.search("android [23]"),m=-1!==g.indexOf("gecko"),n=typeof orientation!=c+"",o=!a.PointerEvent&&a.MSPointerEvent,p=a.PointerEvent&&a.navigator.pointerEnabled||o,q="devicePixelRatio"in a&&a.devicePixelRatio>1||"matchMedia"in a&&a.matchMedia("(min-resolution:144dpi)")&&a.matchMedia("(min-resolution:144dpi)").matches,r=b.documentElement,s=d&&"transition"in r.style,t="WebKitCSSMatrix"in a&&"m11"in new a.WebKitCSSMatrix&&!l,u="MozPerspective"in r.style,v="OTransition"in r.style,w=!a.L_DISABLE_3D&&(s||t||u||v)&&!j,x=!a.L_NO_TOUCH&&!j&&(p||"ontouchstart"in a||a.DocumentTouch&&b instanceof a.DocumentTouch);e.Browser={ie:d,ielt9:f,webkit:h,gecko:m&&!h&&!a.opera&&!d,android:k,android23:l,chrome:i,ie3d:s,webkit3d:t,gecko3d:u,opera3d:v,any3d:w,mobile:n,mobileWebkit:n&&h,mobileWebkit3d:n&&t,mobileOpera:n&&a.opera,touch:x,msPointer:o,pointer:p,retina:q}}(),e.Point=function(a,b,c){this.x=c?Math.round(a):a,this.y=c?Math.round(b):b},e.Point.prototype={clone:function(){return new e.Point(this.x,this.y)},add:function(a){return this.clone()._add(e.point(a))},_add:function(a){return this.x+=a.x,this.y+=a.y,this},subtract:function(a){return this.clone()._subtract(e.point(a))},_subtract:function(a){return this.x-=a.x,this.y-=a.y,this},divideBy:function(a){return this.clone()._divideBy(a)},_divideBy:function(a){return this.x/=a,this.y/=a,this},multiplyBy:function(a){return this.clone()._multiplyBy(a)},_multiplyBy:function(a){return this.x*=a,this.y*=a,this},round:function(){return this.clone()._round()},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},floor:function(){return this.clone()._floor()},_floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},distanceTo:function(a){a=e.point(a);var b=a.x-this.x,c=a.y-this.y;return Math.sqrt(b*b+c*c)},equals:function(a){return a=e.point(a),a.x===this.x&&a.y===this.y},contains:function(a){return a=e.point(a),Math.abs(a.x)<=Math.abs(this.x)&&Math.abs(a.y)<=Math.abs(this.y)},toString:function(){return"Point("+e.Util.formatNum(this.x)+", "+e.Util.formatNum(this.y)+")"}},e.point=function(a,b,d){return a instanceof e.Point?a:e.Util.isArray(a)?new e.Point(a[0],a[1]):a===c||null===a?a:new e.Point(a,b,d)},e.Bounds=function(a,b){if(a)for(var c=b?[a,b]:a,d=0,e=c.length;e>d;d++)this.extend(c[d])},e.Bounds.prototype={extend:function(a){return a=e.point(a),this.min||this.max?(this.min.x=Math.min(a.x,this.min.x),this.max.x=Math.max(a.x,this.max.x),this.min.y=Math.min(a.y,this.min.y),this.max.y=Math.max(a.y,this.max.y)):(this.min=a.clone(),this.max=a.clone()),this},getCenter:function(a){return new e.Point((this.min.x+this.max.x)/2,(this.min.y+this.max.y)/2,a)},getBottomLeft:function(){return new e.Point(this.min.x,this.max.y)},getTopRight:function(){return new e.Point(this.max.x,this.min.y)},getSize:function(){return this.max.subtract(this.min)},contains:function(a){var b,c;return a="number"==typeof a[0]||a instanceof e.Point?e.point(a):e.bounds(a),a instanceof e.Bounds?(b=a.min,c=a.max):b=c=a,b.x>=this.min.x&&c.x<=this.max.x&&b.y>=this.min.y&&c.y<=this.max.y},intersects:function(a){a=e.bounds(a);var b=this.min,c=this.max,d=a.min,f=a.max,g=f.x>=b.x&&d.x<=c.x,h=f.y>=b.y&&d.y<=c.y;return g&&h},isValid:function(){return!(!this.min||!this.max)}},e.bounds=function(a,b){return!a||a instanceof e.Bounds?a:new e.Bounds(a,b)},e.Transformation=function(a,b,c,d){this._a=a,this._b=b,this._c=c,this._d=d},e.Transformation.prototype={transform:function(a,b){return this._transform(a.clone(),b)},_transform:function(a,b){return b=b||1,a.x=b*(this._a*a.x+this._b),a.y=b*(this._c*a.y+this._d),a},untransform:function(a,b){return b=b||1,new e.Point((a.x/b-this._b)/this._a,(a.y/b-this._d)/this._c)}},e.DomUtil={get:function(a){return"string"==typeof a?b.getElementById(a):a},getStyle:function(a,c){var d=a.style[c];if(!d&&a.currentStyle&&(d=a.currentStyle[c]),(!d||"auto"===d)&&b.defaultView){var e=b.defaultView.getComputedStyle(a,null);d=e?e[c]:null}return"auto"===d?null:d},getViewportOffset:function(a){var c,d=0,f=0,g=a,h=b.body,i=b.documentElement;do{if(d+=g.offsetTop||0,f+=g.offsetLeft||0,d+=parseInt(e.DomUtil.getStyle(g,"borderTopWidth"),10)||0,f+=parseInt(e.DomUtil.getStyle(g,"borderLeftWidth"),10)||0,c=e.DomUtil.getStyle(g,"position"),g.offsetParent===h&&"absolute"===c)break;if("fixed"===c){d+=h.scrollTop||i.scrollTop||0,f+=h.scrollLeft||i.scrollLeft||0;break}if("relative"===c&&!g.offsetLeft){var j=e.DomUtil.getStyle(g,"width"),k=e.DomUtil.getStyle(g,"max-width"),l=g.getBoundingClientRect();("none"!==j||"none"!==k)&&(f+=l.left+g.clientLeft),d+=l.top+(h.scrollTop||i.scrollTop||0);break}g=g.offsetParent}while(g);g=a;do{if(g===h)break;d-=g.scrollTop||0,f-=g.scrollLeft||0,g=g.parentNode}while(g);return new e.Point(f,d)},documentIsLtr:function(){return e.DomUtil._docIsLtrCached||(e.DomUtil._docIsLtrCached=!0,e.DomUtil._docIsLtr="ltr"===e.DomUtil.getStyle(b.body,"direction")),e.DomUtil._docIsLtr},create:function(a,c,d){var e=b.createElement(a);return e.className=c,d&&d.appendChild(e),e},hasClass:function(a,b){if(a.classList!==c)return a.classList.contains(b);var d=e.DomUtil._getClass(a);return d.length>0&&new RegExp("(^|\\s)"+b+"(\\s|$)").test(d)},addClass:function(a,b){if(a.classList!==c)for(var d=e.Util.splitWords(b),f=0,g=d.length;g>f;f++)a.classList.add(d[f]);else if(!e.DomUtil.hasClass(a,b)){var h=e.DomUtil._getClass(a);e.DomUtil._setClass(a,(h?h+" ":"")+b)}},removeClass:function(a,b){a.classList!==c?a.classList.remove(b):e.DomUtil._setClass(a,e.Util.trim((" "+e.DomUtil._getClass(a)+" ").replace(" "+b+" "," ")))},_setClass:function(a,b){a.className.baseVal===c?a.className=b:a.className.baseVal=b},_getClass:function(a){return a.className.baseVal===c?a.className:a.className.baseVal},setOpacity:function(a,b){if("opacity"in a.style)a.style.opacity=b;else if("filter"in a.style){var c=!1,d="DXImageTransform.Microsoft.Alpha";try{c=a.filters.item(d)}catch(e){if(1===b)return}b=Math.round(100*b),c?(c.Enabled=100!==b,c.Opacity=b):a.style.filter+=" progid:"+d+"(opacity="+b+")"}},testProp:function(a){for(var c=b.documentElement.style,d=0;dc||c===b?b:a),new e.LatLng(this.lat,c)}},e.latLng=function(a,b){return a instanceof e.LatLng?a:e.Util.isArray(a)?"number"==typeof a[0]||"string"==typeof a[0]?new e.LatLng(a[0],a[1],a[2]):null:a===c||null===a?a:"object"==typeof a&&"lat"in a?new e.LatLng(a.lat,"lng"in a?a.lng:a.lon):b===c?null:new e.LatLng(a,b)},e.LatLngBounds=function(a,b){if(a)for(var c=b?[a,b]:a,d=0,e=c.length;e>d;d++)this.extend(c[d])},e.LatLngBounds.prototype={extend:function(a){if(!a)return this;var b=e.latLng(a);return a=null!==b?b:e.latLngBounds(a),a instanceof e.LatLng?this._southWest||this._northEast?(this._southWest.lat=Math.min(a.lat,this._southWest.lat),this._southWest.lng=Math.min(a.lng,this._southWest.lng),this._northEast.lat=Math.max(a.lat,this._northEast.lat),this._northEast.lng=Math.max(a.lng,this._northEast.lng)):(this._southWest=new e.LatLng(a.lat,a.lng),this._northEast=new e.LatLng(a.lat,a.lng)):a instanceof e.LatLngBounds&&(this.extend(a._southWest),this.extend(a._northEast)),this},pad:function(a){var b=this._southWest,c=this._northEast,d=Math.abs(b.lat-c.lat)*a,f=Math.abs(b.lng-c.lng)*a;return new e.LatLngBounds(new e.LatLng(b.lat-d,b.lng-f),new e.LatLng(c.lat+d,c.lng+f))},getCenter:function(){return new e.LatLng((this._southWest.lat+this._northEast.lat)/2,(this._southWest.lng+this._northEast.lng)/2)},getSouthWest:function(){return this._southWest},getNorthEast:function(){return this._northEast},getNorthWest:function(){return new e.LatLng(this.getNorth(),this.getWest())},getSouthEast:function(){return new e.LatLng(this.getSouth(),this.getEast())},getWest:function(){return this._southWest.lng},getSouth:function(){return this._southWest.lat},getEast:function(){return this._northEast.lng},getNorth:function(){return this._northEast.lat},contains:function(a){a="number"==typeof a[0]||a instanceof e.LatLng?e.latLng(a):e.latLngBounds(a);var b,c,d=this._southWest,f=this._northEast;return a instanceof e.LatLngBounds?(b=a.getSouthWest(),c=a.getNorthEast()):b=c=a,b.lat>=d.lat&&c.lat<=f.lat&&b.lng>=d.lng&&c.lng<=f.lng},intersects:function(a){a=e.latLngBounds(a);var b=this._southWest,c=this._northEast,d=a.getSouthWest(),f=a.getNorthEast(),g=f.lat>=b.lat&&d.lat<=c.lat,h=f.lng>=b.lng&&d.lng<=c.lng;return g&&h},toBBoxString:function(){return[this.getWest(),this.getSouth(),this.getEast(),this.getNorth()].join(",")},equals:function(a){return a?(a=e.latLngBounds(a),this._southWest.equals(a.getSouthWest())&&this._northEast.equals(a.getNorthEast())):!1},isValid:function(){return!(!this._southWest||!this._northEast)}},e.latLngBounds=function(a,b){return!a||a instanceof e.LatLngBounds?a:new e.LatLngBounds(a,b)},e.Projection={},e.Projection.SphericalMercator={MAX_LATITUDE:85.0511287798,project:function(a){var b=e.LatLng.DEG_TO_RAD,c=this.MAX_LATITUDE,d=Math.max(Math.min(c,a.lat),-c),f=a.lng*b,g=d*b;return g=Math.log(Math.tan(Math.PI/4+g/2)),new e.Point(f,g)},unproject:function(a){var b=e.LatLng.RAD_TO_DEG,c=a.x*b,d=(2*Math.atan(Math.exp(a.y))-Math.PI/2)*b;return new e.LatLng(d,c)}},e.Projection.LonLat={project:function(a){return new e.Point(a.lng,a.lat)},unproject:function(a){return new e.LatLng(a.y,a.x)}},e.CRS={latLngToPoint:function(a,b){var c=this.projection.project(a),d=this.scale(b);return this.transformation._transform(c,d)},pointToLatLng:function(a,b){var c=this.scale(b),d=this.transformation.untransform(a,c);return this.projection.unproject(d)},project:function(a){return this.projection.project(a)},scale:function(a){return 256*Math.pow(2,a)},getSize:function(a){var b=this.scale(a);return e.point(b,b)}},e.CRS.Simple=e.extend({},e.CRS,{projection:e.Projection.LonLat,transformation:new e.Transformation(1,0,-1,0),scale:function(a){return Math.pow(2,a)}}),e.CRS.EPSG3857=e.extend({},e.CRS,{code:"EPSG:3857",projection:e.Projection.SphericalMercator,transformation:new e.Transformation(.5/Math.PI,.5,-.5/Math.PI,.5),project:function(a){var b=this.projection.project(a),c=6378137;return b.multiplyBy(c)}}),e.CRS.EPSG900913=e.extend({},e.CRS.EPSG3857,{code:"EPSG:900913"}),e.CRS.EPSG4326=e.extend({},e.CRS,{code:"EPSG:4326",projection:e.Projection.LonLat,transformation:new e.Transformation(1/360,.5,-1/360,.5)}),e.Map=e.Class.extend({includes:e.Mixin.Events,options:{crs:e.CRS.EPSG3857,fadeAnimation:e.DomUtil.TRANSITION&&!e.Browser.android23,trackResize:!0,markerZoomAnimation:e.DomUtil.TRANSITION&&e.Browser.any3d},initialize:function(a,b){b=e.setOptions(this,b),this._initContainer(a),this._initLayout(),this._onResize=e.bind(this._onResize,this),this._initEvents(),b.maxBounds&&this.setMaxBounds(b.maxBounds),b.center&&b.zoom!==c&&this.setView(e.latLng(b.center),b.zoom,{reset:!0}),this._handlers=[],this._layers={},this._zoomBoundLayers={},this._tileLayersNum=0,this.callInitHooks(),this._addLayers(b.layers)},setView:function(a,b){return b=b===c?this.getZoom():b,this._resetView(e.latLng(a),this._limitZoom(b)),this},setZoom:function(a,b){return this._loaded?this.setView(this.getCenter(),a,{zoom:b}):(this._zoom=this._limitZoom(a),this)},zoomIn:function(a,b){return this.setZoom(this._zoom+(a||1),b)},zoomOut:function(a,b){return this.setZoom(this._zoom-(a||1),b)},setZoomAround:function(a,b,c){var d=this.getZoomScale(b),f=this.getSize().divideBy(2),g=a instanceof e.Point?a:this.latLngToContainerPoint(a),h=g.subtract(f).multiplyBy(1-1/d),i=this.containerPointToLatLng(f.add(h));return this.setView(i,b,{zoom:c})},fitBounds:function(a,b){b=b||{},a=a.getBounds?a.getBounds():e.latLngBounds(a);var c=e.point(b.paddingTopLeft||b.padding||[0,0]),d=e.point(b.paddingBottomRight||b.padding||[0,0]),f=this.getBoundsZoom(a,!1,c.add(d));f=b.maxZoom?Math.min(b.maxZoom,f):f;var g=d.subtract(c).divideBy(2),h=this.project(a.getSouthWest(),f),i=this.project(a.getNorthEast(),f),j=this.unproject(h.add(i).divideBy(2).add(g),f);return this.setView(j,f,b)},fitWorld:function(a){return this.fitBounds([[-90,-180],[90,180]],a)},panTo:function(a,b){return this.setView(a,this._zoom,{pan:b})},panBy:function(a){return this.fire("movestart"),this._rawPanBy(e.point(a)),this.fire("move"),this.fire("moveend")},setMaxBounds:function(a){return a=e.latLngBounds(a),this.options.maxBounds=a,a?(this._loaded&&this._panInsideMaxBounds(),this.on("moveend",this._panInsideMaxBounds,this)):this.off("moveend",this._panInsideMaxBounds,this)},panInsideBounds:function(a,b){var c=this.getCenter(),d=this._limitCenter(c,this._zoom,a);return c.equals(d)?this:this.panTo(d,b)},addLayer:function(a){var b=e.stamp(a);return this._layers[b]?this:(this._layers[b]=a,!a.options||isNaN(a.options.maxZoom)&&isNaN(a.options.minZoom)||(this._zoomBoundLayers[b]=a,this._updateZoomLevels()),this.options.zoomAnimation&&e.TileLayer&&a instanceof e.TileLayer&&(this._tileLayersNum++,this._tileLayersToLoad++,a.on("load",this._onTileLayerLoad,this)),this._loaded&&this._layerAdd(a),this)},removeLayer:function(a){var b=e.stamp(a);return this._layers[b]?(this._loaded&&a.onRemove(this),delete this._layers[b],this._loaded&&this.fire("layerremove",{layer:a}),this._zoomBoundLayers[b]&&(delete this._zoomBoundLayers[b],this._updateZoomLevels()),this.options.zoomAnimation&&e.TileLayer&&a instanceof e.TileLayer&&(this._tileLayersNum--,this._tileLayersToLoad--,a.off("load",this._onTileLayerLoad,this)),this):this},hasLayer:function(a){return a?e.stamp(a)in this._layers:!1},eachLayer:function(a,b){for(var c in this._layers)a.call(b,this._layers[c]);return this},invalidateSize:function(a){if(!this._loaded)return this;a=e.extend({animate:!1,pan:!0},a===!0?{animate:!0}:a);var b=this.getSize();this._sizeChanged=!0,this._initialCenter=null;var c=this.getSize(),d=b.divideBy(2).round(),f=c.divideBy(2).round(),g=d.subtract(f);return g.x||g.y?(a.animate&&a.pan?this.panBy(g):(a.pan&&this._rawPanBy(g),this.fire("move"),a.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(e.bind(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:b,newSize:c})):this},addHandler:function(a,b){if(!b)return this;var c=this[a]=new b(this);return this._handlers.push(c),this.options[a]&&c.enable(),this},remove:function(){this._loaded&&this.fire("unload"),this._initEvents("off");try{delete this._container._leaflet}catch(a){this._container._leaflet=c}return this._clearPanes(),this._clearControlPos&&this._clearControlPos(),this._clearHandlers(),this},getCenter:function(){return this._checkIfLoaded(),this._initialCenter&&!this._moved()?this._initialCenter:this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var a=this.getPixelBounds(),b=this.unproject(a.getBottomLeft()),c=this.unproject(a.getTopRight());return new e.LatLngBounds(b,c)},getMinZoom:function(){return this.options.minZoom===c?this._layersMinZoom===c?0:this._layersMinZoom:this.options.minZoom},getMaxZoom:function(){return this.options.maxZoom===c?this._layersMaxZoom===c?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(a,b,c){a=e.latLngBounds(a);var d,f=this.getMinZoom()-(b?1:0),g=this.getMaxZoom(),h=this.getSize(),i=a.getNorthWest(),j=a.getSouthEast(),k=!0;c=e.point(c||[0,0]);do f++,d=this.project(j,f).subtract(this.project(i,f)).add(c),k=b?d.x=f);return k&&b?null:b?f:f-1},getSize:function(){return(!this._size||this._sizeChanged)&&(this._size=new e.Point(this._container.clientWidth,this._container.clientHeight),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(){var a=this._getTopLeftPoint();return new e.Bounds(a,a.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._initialTopLeftPoint},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(a){var b=this.options.crs;return b.scale(a)/b.scale(this._zoom)},getScaleZoom:function(a){return this._zoom+Math.log(a)/Math.LN2},project:function(a,b){return b=b===c?this._zoom:b,this.options.crs.latLngToPoint(e.latLng(a),b)},unproject:function(a,b){return b=b===c?this._zoom:b,this.options.crs.pointToLatLng(e.point(a),b)},layerPointToLatLng:function(a){var b=e.point(a).add(this.getPixelOrigin());return this.unproject(b)},latLngToLayerPoint:function(a){var b=this.project(e.latLng(a))._round();return b._subtract(this.getPixelOrigin())},containerPointToLayerPoint:function(a){return e.point(a).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(a){return e.point(a).add(this._getMapPanePos())},containerPointToLatLng:function(a){var b=this.containerPointToLayerPoint(e.point(a));return this.layerPointToLatLng(b)},latLngToContainerPoint:function(a){return this.layerPointToContainerPoint(this.latLngToLayerPoint(e.latLng(a)))},mouseEventToContainerPoint:function(a){return e.DomEvent.getMousePosition(a,this._container)},mouseEventToLayerPoint:function(a){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(a))},mouseEventToLatLng:function(a){return this.layerPointToLatLng(this.mouseEventToLayerPoint(a))},_initContainer:function(a){var b=this._container=e.DomUtil.get(a);if(!b)throw new Error("Map container not found.");if(b._leaflet)throw new Error("Map container is already initialized.");b._leaflet=!0},_initLayout:function(){var a=this._container;e.DomUtil.addClass(a,"leaflet-container"+(e.Browser.touch?" leaflet-touch":"")+(e.Browser.retina?" leaflet-retina":"")+(e.Browser.ielt9?" leaflet-oldie":"")+(this.options.fadeAnimation?" leaflet-fade-anim":""));var b=e.DomUtil.getStyle(a,"position");"absolute"!==b&&"relative"!==b&&"fixed"!==b&&(a.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var a=this._panes={};this._mapPane=a.mapPane=this._createPane("leaflet-map-pane",this._container),this._tilePane=a.tilePane=this._createPane("leaflet-tile-pane",this._mapPane),a.objectsPane=this._createPane("leaflet-objects-pane",this._mapPane),a.shadowPane=this._createPane("leaflet-shadow-pane"),a.overlayPane=this._createPane("leaflet-overlay-pane"),a.markerPane=this._createPane("leaflet-marker-pane"),a.popupPane=this._createPane("leaflet-popup-pane");var b=" leaflet-zoom-hide";this.options.markerZoomAnimation||(e.DomUtil.addClass(a.markerPane,b),e.DomUtil.addClass(a.shadowPane,b),e.DomUtil.addClass(a.popupPane,b))},_createPane:function(a,b){return e.DomUtil.create("div",a,b||this._panes.objectsPane)},_clearPanes:function(){this._container.removeChild(this._mapPane)},_addLayers:function(a){a=a?e.Util.isArray(a)?a:[a]:[];for(var b=0,c=a.length;c>b;b++)this.addLayer(a[b])},_resetView:function(a,b,c,d){var f=this._zoom!==b;d||(this.fire("movestart"),f&&this.fire("zoomstart")),this._zoom=b,this._initialCenter=a,this._initialTopLeftPoint=this._getNewTopLeftPoint(a),c?this._initialTopLeftPoint._add(this._getMapPanePos()):e.DomUtil.setPosition(this._mapPane,new e.Point(0,0)),this._tileLayersToLoad=this._tileLayersNum;var g=!this._loaded;this._loaded=!0,this.fire("viewreset",{hard:!c}),g&&(this.fire("load"),this.eachLayer(this._layerAdd,this)),this.fire("move"),(f||d)&&this.fire("zoomend"),this.fire("moveend",{hard:!c})},_rawPanBy:function(a){e.DomUtil.setPosition(this._mapPane,this._getMapPanePos().subtract(a))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_updateZoomLevels:function(){var a,b=1/0,d=-(1/0),e=this._getZoomSpan();for(a in this._zoomBoundLayers){var f=this._zoomBoundLayers[a];isNaN(f.options.minZoom)||(b=Math.min(b,f.options.minZoom)),isNaN(f.options.maxZoom)||(d=Math.max(d,f.options.maxZoom))}a===c?this._layersMaxZoom=this._layersMinZoom=c:(this._layersMaxZoom=d,this._layersMinZoom=b),e!==this._getZoomSpan()&&this.fire("zoomlevelschange")},_panInsideMaxBounds:function(){this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(b){if(e.DomEvent){b=b||"on",e.DomEvent[b](this._container,"click",this._onMouseClick,this);var c,d,f=["dblclick","mousedown","mouseup","mouseenter","mouseleave","mousemove","contextmenu"];for(c=0,d=f.length;d>c;c++)e.DomEvent[b](this._container,f[c],this._fireMouseEvent,this);this.options.trackResize&&e.DomEvent[b](a,"resize",this._onResize,this)}},_onResize:function(){e.Util.cancelAnimFrame(this._resizeRequest),this._resizeRequest=e.Util.requestAnimFrame(function(){this.invalidateSize({debounceMoveend:!0})},this,!1,this._container)},_onMouseClick:function(a){!this._loaded||!a._simulated&&(this.dragging&&this.dragging.moved()||this.boxZoom&&this.boxZoom.moved())||e.DomEvent._skipped(a)||(this.fire("preclick"),this._fireMouseEvent(a))},_fireMouseEvent:function(a){if(this._loaded&&!e.DomEvent._skipped(a)){var b=a.type;if(b="mouseenter"===b?"mouseover":"mouseleave"===b?"mouseout":b,this.hasEventListeners(b)){"contextmenu"===b&&e.DomEvent.preventDefault(a);var c=this.mouseEventToContainerPoint(a),d=this.containerPointToLayerPoint(c),f=this.layerPointToLatLng(d);this.fire(b,{latlng:f,layerPoint:d,containerPoint:c,originalEvent:a})}}},_onTileLayerLoad:function(){this._tileLayersToLoad--,this._tileLayersNum&&!this._tileLayersToLoad&&this.fire("tilelayersload")},_clearHandlers:function(){for(var a=0,b=this._handlers.length;b>a;a++)this._handlers[a].disable()},whenReady:function(a,b){return this._loaded?a.call(b||this,this):this.on("load",a,b),this},_layerAdd:function(a){a.onAdd(this),this.fire("layeradd",{layer:a})},_getMapPanePos:function(){return e.DomUtil.getPosition(this._mapPane)},_moved:function(){var a=this._getMapPanePos();return a&&!a.equals([0,0])},_getTopLeftPoint:function(){return this.getPixelOrigin().subtract(this._getMapPanePos())},_getNewTopLeftPoint:function(a,b){var c=this.getSize()._divideBy(2);return this.project(a,b)._subtract(c)._round()},_latLngToNewLayerPoint:function(a,b,c){var d=this._getNewTopLeftPoint(c,b).add(this._getMapPanePos());return this.project(a,b)._subtract(d)},_getCenterLayerPoint:function(){return this.containerPointToLayerPoint(this.getSize()._divideBy(2))},_getCenterOffset:function(a){return this.latLngToLayerPoint(a).subtract(this._getCenterLayerPoint())},_limitCenter:function(a,b,c){if(!c)return a;var d=this.project(a,b),f=this.getSize().divideBy(2),g=new e.Bounds(d.subtract(f),d.add(f)),h=this._getBoundsOffset(g,c,b);return this.unproject(d.add(h),b)},_limitOffset:function(a,b){if(!b)return a;var c=this.getPixelBounds(),d=new e.Bounds(c.min.add(a),c.max.add(a));return a.add(this._getBoundsOffset(d,b))},_getBoundsOffset:function(a,b,c){var d=this.project(b.getNorthWest(),c).subtract(a.min),f=this.project(b.getSouthEast(),c).subtract(a.max),g=this._rebound(d.x,-f.x),h=this._rebound(d.y,-f.y);return new e.Point(g,h)},_rebound:function(a,b){return a+b>0?Math.round(a-b)/2:Math.max(0,Math.ceil(a))-Math.max(0,Math.floor(b))},_limitZoom:function(a){var b=this.getMinZoom(),c=this.getMaxZoom();return Math.max(b,Math.min(c,a))}}),e.map=function(a,b){return new e.Map(a,b)},e.Projection.Mercator={MAX_LATITUDE:85.0840591556,R_MINOR:6356752.314245179,R_MAJOR:6378137,project:function(a){var b=e.LatLng.DEG_TO_RAD,c=this.MAX_LATITUDE,d=Math.max(Math.min(c,a.lat),-c),f=this.R_MAJOR,g=this.R_MINOR,h=a.lng*b*f,i=d*b,j=g/f,k=Math.sqrt(1-j*j),l=k*Math.sin(i);l=Math.pow((1-l)/(1+l),.5*k);var m=Math.tan(.5*(.5*Math.PI-i))/l;return i=-f*Math.log(m),new e.Point(h,i)},unproject:function(a){for(var b,c=e.LatLng.RAD_TO_DEG,d=this.R_MAJOR,f=this.R_MINOR,g=a.x*c/d,h=f/d,i=Math.sqrt(1-h*h),j=Math.exp(-a.y/d),k=Math.PI/2-2*Math.atan(j),l=15,m=1e-7,n=l,o=.1;Math.abs(o)>m&&--n>0;)b=i*Math.sin(k),o=Math.PI/2-2*Math.atan(j*Math.pow((1-b)/(1+b),.5*i))-k,k+=o;return new e.LatLng(k*c,g)}},e.CRS.EPSG3395=e.extend({},e.CRS,{code:"EPSG:3395",projection:e.Projection.Mercator, -transformation:function(){var a=e.Projection.Mercator,b=a.R_MAJOR,c=.5/(Math.PI*b);return new e.Transformation(c,.5,-c,.5)}()}),e.TileLayer=e.Class.extend({includes:e.Mixin.Events,options:{minZoom:0,maxZoom:18,tileSize:256,subdomains:"abc",errorTileUrl:"",attribution:"",zoomOffset:0,opacity:1,unloadInvisibleTiles:e.Browser.mobile,updateWhenIdle:e.Browser.mobile},initialize:function(a,b){b=e.setOptions(this,b),b.detectRetina&&e.Browser.retina&&b.maxZoom>0&&(b.tileSize=Math.floor(b.tileSize/2),b.zoomOffset++,b.minZoom>0&&b.minZoom--,this.options.maxZoom--),b.bounds&&(b.bounds=e.latLngBounds(b.bounds)),this._url=a;var c=this.options.subdomains;"string"==typeof c&&(this.options.subdomains=c.split(""))},onAdd:function(a){this._map=a,this._animated=a._zoomAnimated,this._initContainer(),a.on({viewreset:this._reset,moveend:this._update},this),this._animated&&a.on({zoomanim:this._animateZoom,zoomend:this._endZoomAnim},this),this.options.updateWhenIdle||(this._limitedUpdate=e.Util.limitExecByInterval(this._update,150,this),a.on("move",this._limitedUpdate,this)),this._reset(),this._update()},addTo:function(a){return a.addLayer(this),this},onRemove:function(a){this._container.parentNode.removeChild(this._container),a.off({viewreset:this._reset,moveend:this._update},this),this._animated&&a.off({zoomanim:this._animateZoom,zoomend:this._endZoomAnim},this),this.options.updateWhenIdle||a.off("move",this._limitedUpdate,this),this._container=null,this._map=null},bringToFront:function(){var a=this._map._panes.tilePane;return this._container&&(a.appendChild(this._container),this._setAutoZIndex(a,Math.max)),this},bringToBack:function(){var a=this._map._panes.tilePane;return this._container&&(a.insertBefore(this._container,a.firstChild),this._setAutoZIndex(a,Math.min)),this},getAttribution:function(){return this.options.attribution},getContainer:function(){return this._container},setOpacity:function(a){return this.options.opacity=a,this._map&&this._updateOpacity(),this},setZIndex:function(a){return this.options.zIndex=a,this._updateZIndex(),this},setUrl:function(a,b){return this._url=a,b||this.redraw(),this},redraw:function(){return this._map&&(this._reset({hard:!0}),this._update()),this},_updateZIndex:function(){this._container&&this.options.zIndex!==c&&(this._container.style.zIndex=this.options.zIndex)},_setAutoZIndex:function(a,b){var c,d,e,f=a.children,g=-b(1/0,-(1/0));for(d=0,e=f.length;e>d;d++)f[d]!==this._container&&(c=parseInt(f[d].style.zIndex,10),isNaN(c)||(g=b(g,c)));this.options.zIndex=this._container.style.zIndex=(isFinite(g)?g:0)+b(1,-1)},_updateOpacity:function(){var a,b=this._tiles;if(e.Browser.ielt9)for(a in b)e.DomUtil.setOpacity(b[a],this.options.opacity);else e.DomUtil.setOpacity(this._container,this.options.opacity)},_initContainer:function(){var a=this._map._panes.tilePane;if(!this._container){if(this._container=e.DomUtil.create("div","leaflet-layer"),this._updateZIndex(),this._animated){var b="leaflet-tile-container";this._bgBuffer=e.DomUtil.create("div",b,this._container),this._tileContainer=e.DomUtil.create("div",b,this._container)}else this._tileContainer=this._container;a.appendChild(this._container),this.options.opacity<1&&this._updateOpacity()}},_reset:function(a){for(var b in this._tiles)this.fire("tileunload",{tile:this._tiles[b]});this._tiles={},this._tilesToLoad=0,this.options.reuseTiles&&(this._unusedTiles=[]),this._tileContainer.innerHTML="",this._animated&&a&&a.hard&&this._clearBgBuffer(),this._initContainer()},_getTileSize:function(){var a=this._map,b=a.getZoom()+this.options.zoomOffset,c=this.options.maxNativeZoom,d=this.options.tileSize;return c&&b>c&&(d=Math.round(a.getZoomScale(b)/a.getZoomScale(c)*d)),d},_update:function(){if(this._map){var a=this._map,b=a.getPixelBounds(),c=a.getZoom(),d=this._getTileSize();if(!(c>this.options.maxZoom||cd;d++)this._addTile(g[d],j);this._tileContainer.appendChild(j)}},_tileShouldBeLoaded:function(a){if(a.x+":"+a.y in this._tiles)return!1;var b=this.options;if(!b.continuousWorld){var c=this._getWrapTileNum();if(b.noWrap&&(a.x<0||a.x>=c.x)||a.y<0||a.y>=c.y)return!1}if(b.bounds){var d=this._getTileSize(),e=a.multiplyBy(d),f=e.add([d,d]),g=this._map.unproject(e),h=this._map.unproject(f);if(b.continuousWorld||b.noWrap||(g=g.wrap(),h=h.wrap()),!b.bounds.intersects([g,h]))return!1}return!0},_removeOtherTiles:function(a){var b,c,d,e;for(e in this._tiles)b=e.split(":"),c=parseInt(b[0],10),d=parseInt(b[1],10),(ca.max.x||da.max.y)&&this._removeTile(e)},_removeTile:function(a){var b=this._tiles[a];this.fire("tileunload",{tile:b,url:b.src}),this.options.reuseTiles?(e.DomUtil.removeClass(b,"leaflet-tile-loaded"),this._unusedTiles.push(b)):b.parentNode===this._tileContainer&&this._tileContainer.removeChild(b),e.Browser.android||(b.onload=null,b.src=e.Util.emptyImageUrl),delete this._tiles[a]},_addTile:function(a,b){var c=this._getTilePos(a),d=this._getTile();e.DomUtil.setPosition(d,c,e.Browser.chrome),this._tiles[a.x+":"+a.y]=d,this._loadTile(d,a),d.parentNode!==this._tileContainer&&b.appendChild(d)},_getZoomForUrl:function(){var a=this.options,b=this._map.getZoom();return a.zoomReverse&&(b=a.maxZoom-b),b+=a.zoomOffset,a.maxNativeZoom?Math.min(b,a.maxNativeZoom):b},_getTilePos:function(a){var b=this._map.getPixelOrigin(),c=this._getTileSize();return a.multiplyBy(c).subtract(b)},getTileUrl:function(a){return e.Util.template(this._url,e.extend({s:this._getSubdomain(a),z:a.z,x:a.x,y:a.y},this.options))},_getWrapTileNum:function(){var a=this._map.options.crs,b=a.getSize(this._map.getZoom());return b.divideBy(this._getTileSize())._floor()},_adjustTilePoint:function(a){var b=this._getWrapTileNum();this.options.continuousWorld||this.options.noWrap||(a.x=(a.x%b.x+b.x)%b.x),this.options.tms&&(a.y=b.y-a.y-1),a.z=this._getZoomForUrl()},_getSubdomain:function(a){var b=Math.abs(a.x+a.y)%this.options.subdomains.length;return this.options.subdomains[b]},_getTile:function(){if(this.options.reuseTiles&&this._unusedTiles.length>0){var a=this._unusedTiles.pop();return this._resetTile(a),a}return this._createTile()},_resetTile:function(){},_createTile:function(){var a=e.DomUtil.create("img","leaflet-tile");return a.style.width=a.style.height=this._getTileSize()+"px",a.galleryimg="no",a.onselectstart=a.onmousemove=e.Util.falseFn,e.Browser.ielt9&&this.options.opacity!==c&&e.DomUtil.setOpacity(a,this.options.opacity),e.Browser.mobileWebkit3d&&(a.style.WebkitBackfaceVisibility="hidden"),a},_loadTile:function(a,b){a._layer=this,a.onload=this._tileOnLoad,a.onerror=this._tileOnError,this._adjustTilePoint(b),a.src=this.getTileUrl(b),this.fire("tileloadstart",{tile:a,url:a.src})},_tileLoaded:function(){this._tilesToLoad--,this._animated&&e.DomUtil.addClass(this._tileContainer,"leaflet-zoom-animated"),this._tilesToLoad||(this.fire("load"),this._animated&&(clearTimeout(this._clearBgBufferTimer),this._clearBgBufferTimer=setTimeout(e.bind(this._clearBgBuffer,this),500)))},_tileOnLoad:function(){var a=this._layer;this.src!==e.Util.emptyImageUrl&&(e.DomUtil.addClass(this,"leaflet-tile-loaded"),a.fire("tileload",{tile:this,url:this.src})),a._tileLoaded()},_tileOnError:function(){var a=this._layer;a.fire("tileerror",{tile:this,url:this.src});var b=a.options.errorTileUrl;b&&(this.src=b),a._tileLoaded()}}),e.tileLayer=function(a,b){return new e.TileLayer(a,b)},e.TileLayer.WMS=e.TileLayer.extend({defaultWmsParams:{service:"WMS",request:"GetMap",version:"1.1.1",layers:"",styles:"",format:"image/jpeg",transparent:!1},initialize:function(a,b){this._url=a;var c=e.extend({},this.defaultWmsParams),d=b.tileSize||this.options.tileSize;b.detectRetina&&e.Browser.retina?c.width=c.height=2*d:c.width=c.height=d;for(var f in b)this.options.hasOwnProperty(f)||"crs"===f||(c[f]=b[f]);this.wmsParams=c,e.setOptions(this,b)},onAdd:function(a){this._crs=this.options.crs||a.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var b=this._wmsVersion>=1.3?"crs":"srs";this.wmsParams[b]=this._crs.code,e.TileLayer.prototype.onAdd.call(this,a)},getTileUrl:function(a){var b=this._map,c=this.options.tileSize,d=a.multiplyBy(c),f=d.add([c,c]),g=this._crs.project(b.unproject(d,a.z)),h=this._crs.project(b.unproject(f,a.z)),i=this._wmsVersion>=1.3&&this._crs===e.CRS.EPSG4326?[h.y,g.x,g.y,h.x].join(","):[g.x,h.y,h.x,g.y].join(","),j=e.Util.template(this._url,{s:this._getSubdomain(a)});return j+e.Util.getParamString(this.wmsParams,j,!0)+"&BBOX="+i},setParams:function(a,b){return e.extend(this.wmsParams,a),b||this.redraw(),this}}),e.tileLayer.wms=function(a,b){return new e.TileLayer.WMS(a,b)},e.TileLayer.Canvas=e.TileLayer.extend({options:{async:!1},initialize:function(a){e.setOptions(this,a)},redraw:function(){this._map&&(this._reset({hard:!0}),this._update());for(var a in this._tiles)this._redrawTile(this._tiles[a]);return this},_redrawTile:function(a){this.drawTile(a,a._tilePoint,this._map._zoom)},_createTile:function(){var a=e.DomUtil.create("canvas","leaflet-tile");return a.width=a.height=this.options.tileSize,a.onselectstart=a.onmousemove=e.Util.falseFn,a},_loadTile:function(a,b){a._layer=this,a._tilePoint=b,this._redrawTile(a),this.options.async||this.tileDrawn(a)},drawTile:function(){},tileDrawn:function(a){this._tileOnLoad.call(a)}}),e.tileLayer.canvas=function(a){return new e.TileLayer.Canvas(a)},e.ImageOverlay=e.Class.extend({includes:e.Mixin.Events,options:{opacity:1},initialize:function(a,b,c){this._url=a,this._bounds=e.latLngBounds(b),e.setOptions(this,c)},onAdd:function(a){this._map=a,this._image||this._initImage(),a._panes.overlayPane.appendChild(this._image),a.on("viewreset",this._reset,this),a.options.zoomAnimation&&e.Browser.any3d&&a.on("zoomanim",this._animateZoom,this),this._reset()},onRemove:function(a){a.getPanes().overlayPane.removeChild(this._image),a.off("viewreset",this._reset,this),a.options.zoomAnimation&&a.off("zoomanim",this._animateZoom,this)},addTo:function(a){return a.addLayer(this),this},setOpacity:function(a){return this.options.opacity=a,this._updateOpacity(),this},bringToFront:function(){return this._image&&this._map._panes.overlayPane.appendChild(this._image),this},bringToBack:function(){var a=this._map._panes.overlayPane;return this._image&&a.insertBefore(this._image,a.firstChild),this},setUrl:function(a){this._url=a,this._image.src=this._url},getAttribution:function(){return this.options.attribution},_initImage:function(){this._image=e.DomUtil.create("img","leaflet-image-layer"),this._map.options.zoomAnimation&&e.Browser.any3d?e.DomUtil.addClass(this._image,"leaflet-zoom-animated"):e.DomUtil.addClass(this._image,"leaflet-zoom-hide"),this._updateOpacity(),e.extend(this._image,{galleryimg:"no",onselectstart:e.Util.falseFn,onmousemove:e.Util.falseFn,onload:e.bind(this._onImageLoad,this),src:this._url})},_animateZoom:function(a){var b=this._map,c=this._image,d=b.getZoomScale(a.zoom),f=this._bounds.getNorthWest(),g=this._bounds.getSouthEast(),h=b._latLngToNewLayerPoint(f,a.zoom,a.center),i=b._latLngToNewLayerPoint(g,a.zoom,a.center)._subtract(h),j=h._add(i._multiplyBy(.5*(1-1/d)));c.style[e.DomUtil.TRANSFORM]=e.DomUtil.getTranslateString(j)+" scale("+d+") "},_reset:function(){var a=this._image,b=this._map.latLngToLayerPoint(this._bounds.getNorthWest()),c=this._map.latLngToLayerPoint(this._bounds.getSouthEast())._subtract(b);e.DomUtil.setPosition(a,b),a.style.width=c.x+"px",a.style.height=c.y+"px"},_onImageLoad:function(){this.fire("load")},_updateOpacity:function(){e.DomUtil.setOpacity(this._image,this.options.opacity)}}),e.imageOverlay=function(a,b,c){return new e.ImageOverlay(a,b,c)},e.Icon=e.Class.extend({options:{className:""},initialize:function(a){e.setOptions(this,a)},createIcon:function(a){return this._createIcon("icon",a)},createShadow:function(a){return this._createIcon("shadow",a)},_createIcon:function(a,b){var c=this._getIconUrl(a);if(!c){if("icon"===a)throw new Error("iconUrl not set in Icon options (see the docs).");return null}var d;return d=b&&"IMG"===b.tagName?this._createImg(c,b):this._createImg(c),this._setIconStyles(d,a),d},_setIconStyles:function(a,b){var c,d=this.options,f=e.point(d[b+"Size"]);c="shadow"===b?e.point(d.shadowAnchor||d.iconAnchor):e.point(d.iconAnchor),!c&&f&&(c=f.divideBy(2,!0)),a.className="leaflet-marker-"+b+" "+d.className,c&&(a.style.marginLeft=-c.x+"px",a.style.marginTop=-c.y+"px"),f&&(a.style.width=f.x+"px",a.style.height=f.y+"px")},_createImg:function(a,c){return c=c||b.createElement("img"),c.src=a,c},_getIconUrl:function(a){return e.Browser.retina&&this.options[a+"RetinaUrl"]?this.options[a+"RetinaUrl"]:this.options[a+"Url"]}}),e.icon=function(a){return new e.Icon(a)},e.Icon.Default=e.Icon.extend({options:{iconSize:[25,41],iconAnchor:[12,41],popupAnchor:[1,-34],shadowSize:[41,41]},_getIconUrl:function(a){var b=a+"Url";if(this.options[b])return this.options[b];e.Browser.retina&&"icon"===a&&(a+="-2x");var c=e.Icon.Default.imagePath;if(!c)throw new Error("Couldn't autodetect L.Icon.Default.imagePath, set it manually.");return c+"/marker-"+a+".png"}}),e.Icon.Default.imagePath=function(){var a,c,d,e,f,g=b.getElementsByTagName("script"),h=/[\/^]leaflet[\-\._]?([\w\-\._]*)\.js\??/;for(a=0,c=g.length;c>a;a++)if(d=g[a].src,e=d.match(h))return f=d.split(h)[0],(f?f+"/":"")+"images"}(),e.Marker=e.Class.extend({includes:e.Mixin.Events,options:{icon:new e.Icon.Default,title:"",alt:"",clickable:!0,draggable:!1,keyboard:!0,zIndexOffset:0,opacity:1,riseOnHover:!1,riseOffset:250},initialize:function(a,b){e.setOptions(this,b),this._latlng=e.latLng(a)},onAdd:function(a){this._map=a,a.on("viewreset",this.update,this),this._initIcon(),this.update(),this.fire("add"),a.options.zoomAnimation&&a.options.markerZoomAnimation&&a.on("zoomanim",this._animateZoom,this)},addTo:function(a){return a.addLayer(this),this},onRemove:function(a){this.dragging&&this.dragging.disable(),this._removeIcon(),this._removeShadow(),this.fire("remove"),a.off({viewreset:this.update,zoomanim:this._animateZoom},this),this._map=null},getLatLng:function(){return this._latlng},setLatLng:function(a){return this._latlng=e.latLng(a),this.update(),this.fire("move",{latlng:this._latlng})},setZIndexOffset:function(a){return this.options.zIndexOffset=a,this.update(),this},setIcon:function(a){return this.options.icon=a,this._map&&(this._initIcon(),this.update()),this._popup&&this.bindPopup(this._popup),this},update:function(){return this._icon&&this._setPos(this._map.latLngToLayerPoint(this._latlng).round()),this},_initIcon:function(){var a=this.options,b=this._map,c=b.options.zoomAnimation&&b.options.markerZoomAnimation,d=c?"leaflet-zoom-animated":"leaflet-zoom-hide",f=a.icon.createIcon(this._icon),g=!1;f!==this._icon&&(this._icon&&this._removeIcon(),g=!0,a.title&&(f.title=a.title),a.alt&&(f.alt=a.alt)),e.DomUtil.addClass(f,d),a.keyboard&&(f.tabIndex="0"),this._icon=f,this._initInteraction(),a.riseOnHover&&e.DomEvent.on(f,"mouseover",this._bringToFront,this).on(f,"mouseout",this._resetZIndex,this);var h=a.icon.createShadow(this._shadow),i=!1;h!==this._shadow&&(this._removeShadow(),i=!0),h&&e.DomUtil.addClass(h,d),this._shadow=h,a.opacity<1&&this._updateOpacity();var j=this._map._panes;g&&j.markerPane.appendChild(this._icon),h&&i&&j.shadowPane.appendChild(this._shadow)},_removeIcon:function(){this.options.riseOnHover&&e.DomEvent.off(this._icon,"mouseover",this._bringToFront).off(this._icon,"mouseout",this._resetZIndex),this._map._panes.markerPane.removeChild(this._icon),this._icon=null},_removeShadow:function(){this._shadow&&this._map._panes.shadowPane.removeChild(this._shadow),this._shadow=null},_setPos:function(a){e.DomUtil.setPosition(this._icon,a),this._shadow&&e.DomUtil.setPosition(this._shadow,a),this._zIndex=a.y+this.options.zIndexOffset,this._resetZIndex()},_updateZIndex:function(a){this._icon.style.zIndex=this._zIndex+a},_animateZoom:function(a){var b=this._map._latLngToNewLayerPoint(this._latlng,a.zoom,a.center).round();this._setPos(b)},_initInteraction:function(){if(this.options.clickable){var a=this._icon,b=["dblclick","mousedown","mouseover","mouseout","contextmenu"];e.DomUtil.addClass(a,"leaflet-clickable"),e.DomEvent.on(a,"click",this._onMouseClick,this),e.DomEvent.on(a,"keypress",this._onKeyPress,this);for(var c=0;cf?(b.height=f+"px",e.DomUtil.addClass(a,g)):e.DomUtil.removeClass(a,g),this._containerWidth=this._container.offsetWidth},_updatePosition:function(){if(this._map){var a=this._map.latLngToLayerPoint(this._latlng),b=this._animated,c=e.point(this.options.offset);b&&e.DomUtil.setPosition(this._container,a),this._containerBottom=-c.y-(b?0:a.y),this._containerLeft=-Math.round(this._containerWidth/2)+c.x+(b?0:a.x),this._container.style.bottom=this._containerBottom+"px",this._container.style.left=this._containerLeft+"px"}},_zoomAnimation:function(a){var b=this._map._latLngToNewLayerPoint(this._latlng,a.zoom,a.center);e.DomUtil.setPosition(this._container,b)},_adjustPan:function(){if(this.options.autoPan){var a=this._map,b=this._container.offsetHeight,c=this._containerWidth,d=new e.Point(this._containerLeft,-b-this._containerBottom);this._animated&&d._add(e.DomUtil.getPosition(this._container));var f=a.layerPointToContainerPoint(d),g=e.point(this.options.autoPanPadding),h=e.point(this.options.autoPanPaddingTopLeft||g),i=e.point(this.options.autoPanPaddingBottomRight||g),j=a.getSize(),k=0,l=0;f.x+c+i.x>j.x&&(k=f.x+c-j.x+i.x),f.x-k-h.x<0&&(k=f.x-h.x),f.y+b+i.y>j.y&&(l=f.y+b-j.y+i.y),f.y-l-h.y<0&&(l=f.y-h.y),(k||l)&&a.fire("autopanstart").panBy([k,l])}},_onCloseButtonClick:function(a){this._close(),e.DomEvent.stop(a)}}),e.popup=function(a,b){return new e.Popup(a,b)},e.Map.include({openPopup:function(a,b,c){if(this.closePopup(),!(a instanceof e.Popup)){var d=a;a=new e.Popup(c).setLatLng(b).setContent(d)}return a._isOpen=!0,this._popup=a,this.addLayer(a)},closePopup:function(a){return a&&a!==this._popup||(a=this._popup,this._popup=null),a&&(this.removeLayer(a),a._isOpen=!1),this}}),e.Marker.include({openPopup:function(){return this._popup&&this._map&&!this._map.hasLayer(this._popup)&&(this._popup.setLatLng(this._latlng),this._map.openPopup(this._popup)),this},closePopup:function(){return this._popup&&this._popup._close(),this},togglePopup:function(){return this._popup&&(this._popup._isOpen?this.closePopup():this.openPopup()),this},bindPopup:function(a,b){var c=e.point(this.options.icon.options.popupAnchor||[0,0]);return c=c.add(e.Popup.prototype.options.offset),b&&b.offset&&(c=c.add(b.offset)),b=e.extend({offset:c},b),this._popupHandlersAdded||(this.on("click",this.togglePopup,this).on("remove",this.closePopup,this).on("move",this._movePopup,this),this._popupHandlersAdded=!0),a instanceof e.Popup?(e.setOptions(a,b),this._popup=a,a._source=this):this._popup=new e.Popup(b,this).setContent(a),this},setPopupContent:function(a){return this._popup&&this._popup.setContent(a),this},unbindPopup:function(){return this._popup&&(this._popup=null,this.off("click",this.togglePopup,this).off("remove",this.closePopup,this).off("move",this._movePopup,this),this._popupHandlersAdded=!1),this},getPopup:function(){return this._popup},_movePopup:function(a){this._popup.setLatLng(a.latlng)}}),e.LayerGroup=e.Class.extend({initialize:function(a){this._layers={};var b,c;if(a)for(b=0,c=a.length;c>b;b++)this.addLayer(a[b])},addLayer:function(a){var b=this.getLayerId(a);return this._layers[b]=a,this._map&&this._map.addLayer(a),this},removeLayer:function(a){var b=a in this._layers?a:this.getLayerId(a);return this._map&&this._layers[b]&&this._map.removeLayer(this._layers[b]),delete this._layers[b],this},hasLayer:function(a){return a?a in this._layers||this.getLayerId(a)in this._layers:!1},clearLayers:function(){return this.eachLayer(this.removeLayer,this),this},invoke:function(a){var b,c,d=Array.prototype.slice.call(arguments,1);for(b in this._layers)c=this._layers[b],c[a]&&c[a].apply(c,d);return this},onAdd:function(a){this._map=a,this.eachLayer(a.addLayer,a)},onRemove:function(a){this.eachLayer(a.removeLayer,a),this._map=null},addTo:function(a){return a.addLayer(this),this},eachLayer:function(a,b){for(var c in this._layers)a.call(b,this._layers[c]);return this},getLayer:function(a){return this._layers[a]},getLayers:function(){var a=[];for(var b in this._layers)a.push(this._layers[b]);return a},setZIndex:function(a){return this.invoke("setZIndex",a)},getLayerId:function(a){return e.stamp(a)}}),e.layerGroup=function(a){return new e.LayerGroup(a)},e.FeatureGroup=e.LayerGroup.extend({includes:e.Mixin.Events,statics:{EVENTS:"click dblclick mouseover mouseout mousemove contextmenu popupopen popupclose"},addLayer:function(a){return this.hasLayer(a)?this:("on"in a&&a.on(e.FeatureGroup.EVENTS,this._propagateEvent,this),e.LayerGroup.prototype.addLayer.call(this,a),this._popupContent&&a.bindPopup&&a.bindPopup(this._popupContent,this._popupOptions),this.fire("layeradd",{layer:a}))},removeLayer:function(a){return this.hasLayer(a)?(a in this._layers&&(a=this._layers[a]),"off"in a&&a.off(e.FeatureGroup.EVENTS,this._propagateEvent,this),e.LayerGroup.prototype.removeLayer.call(this,a),this._popupContent&&this.invoke("unbindPopup"),this.fire("layerremove",{layer:a})):this},bindPopup:function(a,b){return this._popupContent=a,this._popupOptions=b,this.invoke("bindPopup",a,b)},openPopup:function(a){for(var b in this._layers){this._layers[b].openPopup(a);break}return this},setStyle:function(a){return this.invoke("setStyle",a)},bringToFront:function(){return this.invoke("bringToFront")},bringToBack:function(){return this.invoke("bringToBack")},getBounds:function(){var a=new e.LatLngBounds;return this.eachLayer(function(b){a.extend(b instanceof e.Marker?b.getLatLng():b.getBounds())}),a},_propagateEvent:function(a){a=e.extend({layer:a.target,target:this},a),this.fire(a.type,a)}}),e.featureGroup=function(a){return new e.FeatureGroup(a)},e.Path=e.Class.extend({includes:[e.Mixin.Events],statics:{CLIP_PADDING:function(){var b=e.Browser.mobile?1280:2e3,c=(b/Math.max(a.outerWidth,a.outerHeight)-1)/2;return Math.max(0,Math.min(.5,c))}()},options:{stroke:!0,color:"#0033ff",dashArray:null,lineCap:null,lineJoin:null,weight:5,opacity:.5,fill:!1,fillColor:null,fillOpacity:.2,clickable:!0},initialize:function(a){e.setOptions(this,a)},onAdd:function(a){this._map=a,this._container||(this._initElements(),this._initEvents()),this.projectLatlngs(),this._updatePath(),this._container&&this._map._pathRoot.appendChild(this._container),this.fire("add"),a.on({viewreset:this.projectLatlngs,moveend:this._updatePath},this)},addTo:function(a){return a.addLayer(this),this},onRemove:function(a){a._pathRoot.removeChild(this._container),this.fire("remove"),this._map=null,e.Browser.vml&&(this._container=null,this._stroke=null,this._fill=null),a.off({viewreset:this.projectLatlngs,moveend:this._updatePath},this)},projectLatlngs:function(){},setStyle:function(a){return e.setOptions(this,a),this._container&&this._updateStyle(),this},redraw:function(){return this._map&&(this.projectLatlngs(),this._updatePath()),this}}),e.Map.include({_updatePathViewport:function(){var a=e.Path.CLIP_PADDING,b=this.getSize(),c=e.DomUtil.getPosition(this._mapPane),d=c.multiplyBy(-1)._subtract(b.multiplyBy(a)._round()),f=d.add(b.multiplyBy(1+2*a)._round());this._pathViewport=new e.Bounds(d,f)}}),e.Path.SVG_NS="http://www.w3.org/2000/svg",e.Browser.svg=!(!b.createElementNS||!b.createElementNS(e.Path.SVG_NS,"svg").createSVGRect),e.Path=e.Path.extend({statics:{SVG:e.Browser.svg},bringToFront:function(){var a=this._map._pathRoot,b=this._container;return b&&a.lastChild!==b&&a.appendChild(b),this},bringToBack:function(){var a=this._map._pathRoot,b=this._container,c=a.firstChild;return b&&c!==b&&a.insertBefore(b,c),this},getPathString:function(){},_createElement:function(a){return b.createElementNS(e.Path.SVG_NS,a)},_initElements:function(){this._map._initPathRoot(),this._initPath(),this._initStyle()},_initPath:function(){this._container=this._createElement("g"),this._path=this._createElement("path"),this.options.className&&e.DomUtil.addClass(this._path,this.options.className),this._container.appendChild(this._path)},_initStyle:function(){this.options.stroke&&(this._path.setAttribute("stroke-linejoin","round"),this._path.setAttribute("stroke-linecap","round")),this.options.fill&&this._path.setAttribute("fill-rule","evenodd"),this.options.pointerEvents&&this._path.setAttribute("pointer-events",this.options.pointerEvents),this.options.clickable||this.options.pointerEvents||this._path.setAttribute("pointer-events","none"),this._updateStyle()},_updateStyle:function(){this.options.stroke?(this._path.setAttribute("stroke",this.options.color),this._path.setAttribute("stroke-opacity",this.options.opacity),this._path.setAttribute("stroke-width",this.options.weight),this.options.dashArray?this._path.setAttribute("stroke-dasharray",this.options.dashArray):this._path.removeAttribute("stroke-dasharray"),this.options.lineCap&&this._path.setAttribute("stroke-linecap",this.options.lineCap),this.options.lineJoin&&this._path.setAttribute("stroke-linejoin",this.options.lineJoin)):this._path.setAttribute("stroke","none"),this.options.fill?(this._path.setAttribute("fill",this.options.fillColor||this.options.color),this._path.setAttribute("fill-opacity",this.options.fillOpacity)):this._path.setAttribute("fill","none")},_updatePath:function(){var a=this.getPathString();a||(a="M0 0"),this._path.setAttribute("d",a)},_initEvents:function(){if(this.options.clickable){(e.Browser.svg||!e.Browser.vml)&&e.DomUtil.addClass(this._path,"leaflet-clickable"),e.DomEvent.on(this._container,"click",this._onMouseClick,this);for(var a=["dblclick","mousedown","mouseover","mouseout","mousemove","contextmenu"],b=0;b';var c=a.firstChild;return c.style.behavior="url(#default#VML)",c&&"object"==typeof c.adj}catch(d){return!1}}(),e.Path=e.Browser.svg||!e.Browser.vml?e.Path:e.Path.extend({statics:{VML:!0,CLIP_PADDING:.02},_createElement:function(){try{return b.namespaces.add("lvml","urn:schemas-microsoft-com:vml"),function(a){return b.createElement("')}}catch(a){return function(a){return b.createElement("<"+a+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}}(),_initPath:function(){var a=this._container=this._createElement("shape");e.DomUtil.addClass(a,"leaflet-vml-shape"+(this.options.className?" "+this.options.className:"")),this.options.clickable&&e.DomUtil.addClass(a,"leaflet-clickable"),a.coordsize="1 1",this._path=this._createElement("path"),a.appendChild(this._path),this._map._pathRoot.appendChild(a)},_initStyle:function(){this._updateStyle()},_updateStyle:function(){var a=this._stroke,b=this._fill,c=this.options,d=this._container;d.stroked=c.stroke,d.filled=c.fill,c.stroke?(a||(a=this._stroke=this._createElement("stroke"),a.endcap="round",d.appendChild(a)),a.weight=c.weight+"px",a.color=c.color,a.opacity=c.opacity,c.dashArray?a.dashStyle=e.Util.isArray(c.dashArray)?c.dashArray.join(" "):c.dashArray.replace(/( *, *)/g," "):a.dashStyle="",c.lineCap&&(a.endcap=c.lineCap.replace("butt","flat")),c.lineJoin&&(a.joinstyle=c.lineJoin)):a&&(d.removeChild(a),this._stroke=null),c.fill?(b||(b=this._fill=this._createElement("fill"),d.appendChild(b)),b.color=c.fillColor||c.color,b.opacity=c.fillOpacity):b&&(d.removeChild(b),this._fill=null)},_updatePath:function(){var a=this._container.style;a.display="none",this._path.v=this.getPathString()+" ",a.display=""}}),e.Map.include(e.Browser.svg||!e.Browser.vml?{}:{_initPathRoot:function(){if(!this._pathRoot){var a=this._pathRoot=b.createElement("div");a.className="leaflet-vml-container",this._panes.overlayPane.appendChild(a),this.on("moveend",this._updatePathViewport),this._updatePathViewport()}}}),e.Browser.canvas=function(){return!!b.createElement("canvas").getContext}(),e.Path=e.Path.SVG&&!a.L_PREFER_CANVAS||!e.Browser.canvas?e.Path:e.Path.extend({statics:{CANVAS:!0,SVG:!1},redraw:function(){return this._map&&(this.projectLatlngs(),this._requestUpdate()),this},setStyle:function(a){return e.setOptions(this,a),this._map&&(this._updateStyle(),this._requestUpdate()),this},onRemove:function(a){a.off("viewreset",this.projectLatlngs,this).off("moveend",this._updatePath,this),this.options.clickable&&(this._map.off("click",this._onClick,this),this._map.off("mousemove",this._onMouseMove,this)),this._requestUpdate(),this.fire("remove"),this._map=null},_requestUpdate:function(){this._map&&!e.Path._updateRequest&&(e.Path._updateRequest=e.Util.requestAnimFrame(this._fireMapMoveEnd,this._map))},_fireMapMoveEnd:function(){e.Path._updateRequest=null,this.fire("moveend")},_initElements:function(){this._map._initPathRoot(),this._ctx=this._map._canvasCtx},_updateStyle:function(){var a=this.options;a.stroke&&(this._ctx.lineWidth=a.weight,this._ctx.strokeStyle=a.color),a.fill&&(this._ctx.fillStyle=a.fillColor||a.color),a.lineCap&&(this._ctx.lineCap=a.lineCap),a.lineJoin&&(this._ctx.lineJoin=a.lineJoin)},_drawPath:function(){var a,b,c,d,f,g;for(this._ctx.beginPath(),a=0,c=this._parts.length;c>a;a++){for(b=0,d=this._parts[a].length;d>b;b++)f=this._parts[a][b],g=(0===b?"move":"line")+"To",this._ctx[g](f.x,f.y);this instanceof e.Polygon&&this._ctx.closePath()}},_checkIfEmpty:function(){return!this._parts.length},_updatePath:function(){if(!this._checkIfEmpty()){var a=this._ctx,b=this.options;this._drawPath(),a.save(),this._updateStyle(),b.fill&&(a.globalAlpha=b.fillOpacity,a.fill(b.fillRule||"evenodd")),b.stroke&&(a.globalAlpha=b.opacity,a.stroke()),a.restore()}},_initEvents:function(){this.options.clickable&&(this._map.on("mousemove",this._onMouseMove,this),this._map.on("click dblclick contextmenu",this._fireMouseEvent,this))},_fireMouseEvent:function(a){this._containsPoint(a.layerPoint)&&this.fire(a.type,a)},_onMouseMove:function(a){this._map&&!this._map._animatingZoom&&(this._containsPoint(a.layerPoint)?(this._ctx.canvas.style.cursor="pointer",this._mouseInside=!0,this.fire("mouseover",a)):this._mouseInside&&(this._ctx.canvas.style.cursor="",this._mouseInside=!1,this.fire("mouseout",a)))}}),e.Map.include(e.Path.SVG&&!a.L_PREFER_CANVAS||!e.Browser.canvas?{}:{_initPathRoot:function(){var a,c=this._pathRoot;c||(c=this._pathRoot=b.createElement("canvas"),c.style.position="absolute",a=this._canvasCtx=c.getContext("2d"),a.lineCap="round",a.lineJoin="round",this._panes.overlayPane.appendChild(c),this.options.zoomAnimation&&(this._pathRoot.className="leaflet-zoom-animated",this.on("zoomanim",this._animatePathZoom),this.on("zoomend",this._endPathZoom)),this.on("moveend",this._updateCanvasViewport),this._updateCanvasViewport())},_updateCanvasViewport:function(){if(!this._pathZooming){this._updatePathViewport();var a=this._pathViewport,b=a.min,c=a.max.subtract(b),d=this._pathRoot;e.DomUtil.setPosition(d,b),d.width=c.x,d.height=c.y,d.getContext("2d").translate(-b.x,-b.y)}}}),e.LineUtil={simplify:function(a,b){if(!b||!a.length)return a.slice();var c=b*b;return a=this._reducePoints(a,c),a=this._simplifyDP(a,c)},pointToSegmentDistance:function(a,b,c){return Math.sqrt(this._sqClosestPointOnSegment(a,b,c,!0))},closestPointOnSegment:function(a,b,c){return this._sqClosestPointOnSegment(a,b,c)},_simplifyDP:function(a,b){var d=a.length,e=typeof Uint8Array!=c+""?Uint8Array:Array,f=new e(d);f[0]=f[d-1]=1,this._simplifyDPStep(a,f,b,0,d-1);var g,h=[];for(g=0;d>g;g++)f[g]&&h.push(a[g]);return h},_simplifyDPStep:function(a,b,c,d,e){var f,g,h,i=0;for(g=d+1;e-1>=g;g++)h=this._sqClosestPointOnSegment(a[g],a[d],a[e],!0),h>i&&(f=g,i=h);i>c&&(b[f]=1,this._simplifyDPStep(a,b,c,d,f),this._simplifyDPStep(a,b,c,f,e))},_reducePoints:function(a,b){for(var c=[a[0]],d=1,e=0,f=a.length;f>d;d++)this._sqDist(a[d],a[e])>b&&(c.push(a[d]),e=d);return f-1>e&&c.push(a[f-1]),c},clipSegment:function(a,b,c,d){var e,f,g,h=d?this._lastCode:this._getBitCode(a,c),i=this._getBitCode(b,c);for(this._lastCode=i;;){if(!(h|i))return[a,b];if(h&i)return!1;e=h||i,f=this._getEdgeIntersection(a,b,e,c),g=this._getBitCode(f,c),e===h?(a=f,h=g):(b=f,i=g)}},_getEdgeIntersection:function(a,b,c,d){var f=b.x-a.x,g=b.y-a.y,h=d.min,i=d.max;return 8&c?new e.Point(a.x+f*(i.y-a.y)/g,i.y):4&c?new e.Point(a.x+f*(h.y-a.y)/g,h.y):2&c?new e.Point(i.x,a.y+g*(i.x-a.x)/f):1&c?new e.Point(h.x,a.y+g*(h.x-a.x)/f):void 0},_getBitCode:function(a,b){var c=0;return a.xb.max.x&&(c|=2),a.yb.max.y&&(c|=8),c},_sqDist:function(a,b){var c=b.x-a.x,d=b.y-a.y;return c*c+d*d},_sqClosestPointOnSegment:function(a,b,c,d){var f,g=b.x,h=b.y,i=c.x-g,j=c.y-h,k=i*i+j*j;return k>0&&(f=((a.x-g)*i+(a.y-h)*j)/k,f>1?(g=c.x,h=c.y):f>0&&(g+=i*f,h+=j*f)),i=a.x-g,j=a.y-h,d?i*i+j*j:new e.Point(g,h)}},e.Polyline=e.Path.extend({initialize:function(a,b){e.Path.prototype.initialize.call(this,b),this._latlngs=this._convertLatLngs(a)},options:{smoothFactor:1,noClip:!1},projectLatlngs:function(){this._originalPoints=[];for(var a=0,b=this._latlngs.length;b>a;a++)this._originalPoints[a]=this._map.latLngToLayerPoint(this._latlngs[a])},getPathString:function(){for(var a=0,b=this._parts.length,c="";b>a;a++)c+=this._getPathPartStr(this._parts[a]);return c},getLatLngs:function(){return this._latlngs},setLatLngs:function(a){return this._latlngs=this._convertLatLngs(a),this.redraw()},addLatLng:function(a){return this._latlngs.push(e.latLng(a)),this.redraw()},spliceLatLngs:function(){var a=[].splice.apply(this._latlngs,arguments);return this._convertLatLngs(this._latlngs,!0),this.redraw(),a},closestLayerPoint:function(a){for(var b,c,d=1/0,f=this._parts,g=null,h=0,i=f.length;i>h;h++)for(var j=f[h],k=1,l=j.length;l>k;k++){b=j[k-1],c=j[k];var m=e.LineUtil._sqClosestPointOnSegment(a,b,c,!0);d>m&&(d=m,g=e.LineUtil._sqClosestPointOnSegment(a,b,c))}return g&&(g.distance=Math.sqrt(d)),g},getBounds:function(){return new e.LatLngBounds(this.getLatLngs())},_convertLatLngs:function(a,b){var c,d,f=b?a:[];for(c=0,d=a.length;d>c;c++){if(e.Util.isArray(a[c])&&"number"!=typeof a[c][0])return;f[c]=e.latLng(a[c])}return f},_initEvents:function(){e.Path.prototype._initEvents.call(this)},_getPathPartStr:function(a){for(var b,c=e.Path.VML,d=0,f=a.length,g="";f>d;d++)b=a[d],c&&b._round(),g+=(d?"L":"M")+b.x+" "+b.y;return g},_clipPoints:function(){var a,b,c,d=this._originalPoints,f=d.length;if(this.options.noClip)return void(this._parts=[d]);this._parts=[];var g=this._parts,h=this._map._pathViewport,i=e.LineUtil;for(a=0,b=0;f-1>a;a++)c=i.clipSegment(d[a],d[a+1],h,a),c&&(g[b]=g[b]||[],g[b].push(c[0]),(c[1]!==d[a+1]||a===f-2)&&(g[b].push(c[1]),b++))},_simplifyPoints:function(){for(var a=this._parts,b=e.LineUtil,c=0,d=a.length;d>c;c++)a[c]=b.simplify(a[c],this.options.smoothFactor)},_updatePath:function(){this._map&&(this._clipPoints(),this._simplifyPoints(),e.Path.prototype._updatePath.call(this))}}),e.polyline=function(a,b){return new e.Polyline(a,b)},e.PolyUtil={},e.PolyUtil.clipPolygon=function(a,b){var c,d,f,g,h,i,j,k,l,m=[1,4,2,8],n=e.LineUtil;for(d=0,j=a.length;j>d;d++)a[d]._code=n._getBitCode(a[d],b);for(g=0;4>g;g++){for(k=m[g],c=[],d=0,j=a.length,f=j-1;j>d;f=d++)h=a[d],i=a[f],h._code&k?i._code&k||(l=n._getEdgeIntersection(i,h,k,b),l._code=n._getBitCode(l,b),c.push(l)):(i._code&k&&(l=n._getEdgeIntersection(i,h,k,b),l._code=n._getBitCode(l,b),c.push(l)),c.push(h));a=c}return a},e.Polygon=e.Polyline.extend({options:{fill:!0},initialize:function(a,b){e.Polyline.prototype.initialize.call(this,a,b),this._initWithHoles(a)},_initWithHoles:function(a){var b,c,d;if(a&&e.Util.isArray(a[0])&&"number"!=typeof a[0][0])for(this._latlngs=this._convertLatLngs(a[0]),this._holes=a.slice(1),b=0,c=this._holes.length;c>b;b++)d=this._holes[b]=this._convertLatLngs(this._holes[b]),d[0].equals(d[d.length-1])&&d.pop();a=this._latlngs,a.length>=2&&a[0].equals(a[a.length-1])&&a.pop()},projectLatlngs:function(){if(e.Polyline.prototype.projectLatlngs.call(this),this._holePoints=[],this._holes){var a,b,c,d;for(a=0,c=this._holes.length;c>a;a++)for(this._holePoints[a]=[],b=0,d=this._holes[a].length;d>b;b++)this._holePoints[a][b]=this._map.latLngToLayerPoint(this._holes[a][b])}},setLatLngs:function(a){return a&&e.Util.isArray(a[0])&&"number"!=typeof a[0][0]?(this._initWithHoles(a),this.redraw()):e.Polyline.prototype.setLatLngs.call(this,a)},_clipPoints:function(){var a=this._originalPoints,b=[];if(this._parts=[a].concat(this._holePoints),!this.options.noClip){for(var c=0,d=this._parts.length;d>c;c++){var f=e.PolyUtil.clipPolygon(this._parts[c],this._map._pathViewport);f.length&&b.push(f)}this._parts=b}},_getPathPartStr:function(a){var b=e.Polyline.prototype._getPathPartStr.call(this,a);return b+(e.Browser.svg?"z":"x")}}),e.polygon=function(a,b){return new e.Polygon(a,b)},function(){function a(a){return e.FeatureGroup.extend({initialize:function(a,b){this._layers={},this._options=b,this.setLatLngs(a)},setLatLngs:function(b){var c=0,d=b.length;for(this.eachLayer(function(a){d>c?a.setLatLngs(b[c++]):this.removeLayer(a)},this);d>c;)this.addLayer(new a(b[c++],this._options));return this},getLatLngs:function(){var a=[];return this.eachLayer(function(b){a.push(b.getLatLngs())}),a}})}e.MultiPolyline=a(e.Polyline),e.MultiPolygon=a(e.Polygon),e.multiPolyline=function(a,b){return new e.MultiPolyline(a,b)},e.multiPolygon=function(a,b){return new e.MultiPolygon(a,b)}}(),e.Rectangle=e.Polygon.extend({initialize:function(a,b){e.Polygon.prototype.initialize.call(this,this._boundsToLatLngs(a),b)},setBounds:function(a){this.setLatLngs(this._boundsToLatLngs(a))},_boundsToLatLngs:function(a){return a=e.latLngBounds(a),[a.getSouthWest(),a.getNorthWest(),a.getNorthEast(),a.getSouthEast()]}}),e.rectangle=function(a,b){return new e.Rectangle(a,b)},e.Circle=e.Path.extend({initialize:function(a,b,c){e.Path.prototype.initialize.call(this,c),this._latlng=e.latLng(a),this._mRadius=b},options:{fill:!0},setLatLng:function(a){return this._latlng=e.latLng(a),this.redraw()},setRadius:function(a){return this._mRadius=a,this.redraw()},projectLatlngs:function(){var a=this._getLngRadius(),b=this._latlng,c=this._map.latLngToLayerPoint([b.lat,b.lng-a]);this._point=this._map.latLngToLayerPoint(b),this._radius=Math.max(this._point.x-c.x,1)},getBounds:function(){var a=this._getLngRadius(),b=this._mRadius/40075017*360,c=this._latlng;return new e.LatLngBounds([c.lat-b,c.lng-a],[c.lat+b,c.lng+a])},getLatLng:function(){return this._latlng},getPathString:function(){var a=this._point,b=this._radius;return this._checkIfEmpty()?"":e.Browser.svg?"M"+a.x+","+(a.y-b)+"A"+b+","+b+",0,1,1,"+(a.x-.1)+","+(a.y-b)+" z":(a._round(),b=Math.round(b),"AL "+a.x+","+a.y+" "+b+","+b+" 0,23592600")},getRadius:function(){return this._mRadius},_getLatRadius:function(){return this._mRadius/40075017*360},_getLngRadius:function(){return this._getLatRadius()/Math.cos(e.LatLng.DEG_TO_RAD*this._latlng.lat)},_checkIfEmpty:function(){if(!this._map)return!1;var a=this._map._pathViewport,b=this._radius,c=this._point;return c.x-b>a.max.x||c.y-b>a.max.y||c.x+bc;c++)for(j=this._parts[c],d=0,h=j.length,f=h-1;h>d;f=d++)if((b||0!==d)&&(i=e.LineUtil.pointToSegmentDistance(a,j[f],j[d]),k>=i))return!0;return!1}}:{}),e.Polygon.include(e.Path.CANVAS?{_containsPoint:function(a){var b,c,d,f,g,h,i,j,k=!1;if(e.Polyline.prototype._containsPoint.call(this,a,!0))return!0;for(f=0,i=this._parts.length;i>f;f++)for(b=this._parts[f],g=0,j=b.length,h=j-1;j>g;h=g++)c=b[g],d=b[h],c.y>a.y!=d.y>a.y&&a.x<(d.x-c.x)*(a.y-c.y)/(d.y-c.y)+c.x&&(k=!k);return k}}:{}),e.Circle.include(e.Path.CANVAS?{_drawPath:function(){var a=this._point;this._ctx.beginPath(),this._ctx.arc(a.x,a.y,this._radius,0,2*Math.PI,!1)},_containsPoint:function(a){var b=this._point,c=this.options.stroke?this.options.weight/2:0;return a.distanceTo(b)<=this._radius+c}}:{}),e.CircleMarker.include(e.Path.CANVAS?{_updateStyle:function(){e.Path.prototype._updateStyle.call(this)}}:{}),e.GeoJSON=e.FeatureGroup.extend({initialize:function(a,b){e.setOptions(this,b),this._layers={},a&&this.addData(a)},addData:function(a){var b,c,d,f=e.Util.isArray(a)?a:a.features;if(f){for(b=0,c=f.length;c>b;b++)d=f[b],(d.geometries||d.geometry||d.features||d.coordinates)&&this.addData(f[b]);return this}var g=this.options;if(!g.filter||g.filter(a)){var h=e.GeoJSON.geometryToLayer(a,g.pointToLayer,g.coordsToLatLng,g);return h.feature=e.GeoJSON.asFeature(a),h.defaultOptions=h.options,this.resetStyle(h),g.onEachFeature&&g.onEachFeature(a,h),this.addLayer(h)}},resetStyle:function(a){var b=this.options.style;b&&(e.Util.extend(a.options,a.defaultOptions),this._setLayerStyle(a,b))},setStyle:function(a){this.eachLayer(function(b){this._setLayerStyle(b,a)},this)},_setLayerStyle:function(a,b){"function"==typeof b&&(b=b(a.feature)),a.setStyle&&a.setStyle(b)}}),e.extend(e.GeoJSON,{geometryToLayer:function(a,b,c,d){var f,g,h,i,j="Feature"===a.type?a.geometry:a,k=j.coordinates,l=[];switch(c=c||this.coordsToLatLng,j.type){case"Point":return f=c(k),b?b(a,f):new e.Marker(f);case"MultiPoint":for(h=0,i=k.length;i>h;h++)f=c(k[h]),l.push(b?b(a,f):new e.Marker(f));return new e.FeatureGroup(l);case"LineString":return g=this.coordsToLatLngs(k,0,c),new e.Polyline(g,d);case"Polygon":if(2===k.length&&!k[1].length)throw new Error("Invalid GeoJSON object.");return g=this.coordsToLatLngs(k,1,c),new e.Polygon(g,d);case"MultiLineString":return g=this.coordsToLatLngs(k,1,c),new e.MultiPolyline(g,d);case"MultiPolygon":return g=this.coordsToLatLngs(k,2,c),new e.MultiPolygon(g,d);case"GeometryCollection":for(h=0,i=j.geometries.length;i>h;h++)l.push(this.geometryToLayer({geometry:j.geometries[h],type:"Feature",properties:a.properties},b,c,d));return new e.FeatureGroup(l);default:throw new Error("Invalid GeoJSON object.")}},coordsToLatLng:function(a){return new e.LatLng(a[1],a[0],a[2])},coordsToLatLngs:function(a,b,c){var d,e,f,g=[];for(e=0,f=a.length;f>e;e++)d=b?this.coordsToLatLngs(a[e],b-1,c):(c||this.coordsToLatLng)(a[e]),g.push(d);return g},latLngToCoords:function(a){var b=[a.lng,a.lat];return a.alt!==c&&b.push(a.alt),b},latLngsToCoords:function(a){for(var b=[],c=0,d=a.length;d>c;c++)b.push(e.GeoJSON.latLngToCoords(a[c]));return b},getFeature:function(a,b){return a.feature?e.extend({},a.feature,{geometry:b}):e.GeoJSON.asFeature(b)},asFeature:function(a){return"Feature"===a.type?a:{type:"Feature",properties:{},geometry:a}}});var g={toGeoJSON:function(){return e.GeoJSON.getFeature(this,{type:"Point",coordinates:e.GeoJSON.latLngToCoords(this.getLatLng())})}};e.Marker.include(g),e.Circle.include(g),e.CircleMarker.include(g),e.Polyline.include({toGeoJSON:function(){return e.GeoJSON.getFeature(this,{type:"LineString",coordinates:e.GeoJSON.latLngsToCoords(this.getLatLngs())})}}),e.Polygon.include({toGeoJSON:function(){var a,b,c,d=[e.GeoJSON.latLngsToCoords(this.getLatLngs())];if(d[0].push(d[0][0]),this._holes)for(a=0,b=this._holes.length;b>a;a++)c=e.GeoJSON.latLngsToCoords(this._holes[a]),c.push(c[0]),d.push(c);return e.GeoJSON.getFeature(this,{type:"Polygon",coordinates:d})}}),function(){function a(a){return function(){var b=[];return this.eachLayer(function(a){b.push(a.toGeoJSON().geometry.coordinates)}),e.GeoJSON.getFeature(this,{type:a,coordinates:b})}}e.MultiPolyline.include({toGeoJSON:a("MultiLineString")}),e.MultiPolygon.include({toGeoJSON:a("MultiPolygon")}),e.LayerGroup.include({toGeoJSON:function(){var b,c=this.feature&&this.feature.geometry,d=[];if(c&&"MultiPoint"===c.type)return a("MultiPoint").call(this);var f=c&&"GeometryCollection"===c.type;return this.eachLayer(function(a){a.toGeoJSON&&(b=a.toGeoJSON(),d.push(f?b.geometry:e.GeoJSON.asFeature(b)))}),f?e.GeoJSON.getFeature(this,{geometries:d,type:"GeometryCollection"}):{type:"FeatureCollection",features:d}}})}(),e.geoJson=function(a,b){return new e.GeoJSON(a,b)},e.DomEvent={addListener:function(a,b,c,d){var f,g,h,i=e.stamp(c),j="_leaflet_"+b+i;return a[j]?this:(f=function(b){return c.call(d||a,b||e.DomEvent._getEvent())},e.Browser.pointer&&0===b.indexOf("touch")?this.addPointerListener(a,b,f,i):(e.Browser.touch&&"dblclick"===b&&this.addDoubleTapListener&&this.addDoubleTapListener(a,f,i),"addEventListener"in a?"mousewheel"===b?(a.addEventListener("DOMMouseScroll",f,!1),a.addEventListener(b,f,!1)):"mouseenter"===b||"mouseleave"===b?(g=f,h="mouseenter"===b?"mouseover":"mouseout",f=function(b){return e.DomEvent._checkMouse(a,b)?g(b):void 0},a.addEventListener(h,f,!1)):"click"===b&&e.Browser.android?(g=f,f=function(a){return e.DomEvent._filterClick(a,g)},a.addEventListener(b,f,!1)):a.addEventListener(b,f,!1):"attachEvent"in a&&a.attachEvent("on"+b,f),a[j]=f,this))},removeListener:function(a,b,c){var d=e.stamp(c),f="_leaflet_"+b+d,g=a[f];return g?(e.Browser.pointer&&0===b.indexOf("touch")?this.removePointerListener(a,b,d):e.Browser.touch&&"dblclick"===b&&this.removeDoubleTapListener?this.removeDoubleTapListener(a,d):"removeEventListener"in a?"mousewheel"===b?(a.removeEventListener("DOMMouseScroll",g,!1),a.removeEventListener(b,g,!1)):"mouseenter"===b||"mouseleave"===b?a.removeEventListener("mouseenter"===b?"mouseover":"mouseout",g,!1):a.removeEventListener(b,g,!1):"detachEvent"in a&&a.detachEvent("on"+b,g),a[f]=null,this):this},stopPropagation:function(a){return a.stopPropagation?a.stopPropagation():a.cancelBubble=!0,e.DomEvent._skipped(a),this},disableScrollPropagation:function(a){var b=e.DomEvent.stopPropagation;return e.DomEvent.on(a,"mousewheel",b).on(a,"MozMousePixelScroll",b)},disableClickPropagation:function(a){for(var b=e.DomEvent.stopPropagation,c=e.Draggable.START.length-1;c>=0;c--)e.DomEvent.on(a,e.Draggable.START[c],b);return e.DomEvent.on(a,"click",e.DomEvent._fakeStop).on(a,"dblclick",b)},preventDefault:function(a){return a.preventDefault?a.preventDefault():a.returnValue=!1,this},stop:function(a){return e.DomEvent.preventDefault(a).stopPropagation(a)},getMousePosition:function(a,b){if(!b)return new e.Point(a.clientX,a.clientY);var c=b.getBoundingClientRect();return new e.Point(a.clientX-c.left-b.clientLeft,a.clientY-c.top-b.clientTop)},getWheelDelta:function(a){var b=0;return a.wheelDelta&&(b=a.wheelDelta/120),a.detail&&(b=-a.detail/3),b},_skipEvents:{},_fakeStop:function(a){e.DomEvent._skipEvents[a.type]=!0},_skipped:function(a){var b=this._skipEvents[a.type];return this._skipEvents[a.type]=!1,b},_checkMouse:function(a,b){var c=b.relatedTarget;if(!c)return!0;try{for(;c&&c!==a;)c=c.parentNode}catch(d){return!1}return c!==a},_getEvent:function(){var b=a.event;if(!b)for(var c=arguments.callee.caller;c&&(b=c.arguments[0],!b||a.Event!==b.constructor);)c=c.caller;return b},_filterClick:function(a,b){var c=a.timeStamp||a.originalEvent.timeStamp,d=e.DomEvent._lastClick&&c-e.DomEvent._lastClick;return d&&d>100&&500>d||a.target._simulatedClick&&!a._simulated?void e.DomEvent.stop(a):(e.DomEvent._lastClick=c,b(a))}},e.DomEvent.on=e.DomEvent.addListener,e.DomEvent.off=e.DomEvent.removeListener,e.Draggable=e.Class.extend({includes:e.Mixin.Events,statics:{START:e.Browser.touch?["touchstart","mousedown"]:["mousedown"],END:{mousedown:"mouseup",touchstart:"touchend",pointerdown:"touchend",MSPointerDown:"touchend"},MOVE:{mousedown:"mousemove",touchstart:"touchmove",pointerdown:"touchmove",MSPointerDown:"touchmove"}},initialize:function(a,b){this._element=a,this._dragStartTarget=b||a},enable:function(){if(!this._enabled){for(var a=e.Draggable.START.length-1;a>=0;a--)e.DomEvent.on(this._dragStartTarget,e.Draggable.START[a],this._onDown,this);this._enabled=!0}},disable:function(){if(this._enabled){for(var a=e.Draggable.START.length-1;a>=0;a--)e.DomEvent.off(this._dragStartTarget,e.Draggable.START[a],this._onDown,this);this._enabled=!1,this._moved=!1}},_onDown:function(a){if(this._moved=!1,!a.shiftKey&&(1===a.which||1===a.button||a.touches)&&(e.DomEvent.stopPropagation(a),!e.Draggable._disabled&&(e.DomUtil.disableImageDrag(),e.DomUtil.disableTextSelection(),!this._moving))){var c=a.touches?a.touches[0]:a;this._startPoint=new e.Point(c.clientX,c.clientY),this._startPos=this._newPos=e.DomUtil.getPosition(this._element),e.DomEvent.on(b,e.Draggable.MOVE[a.type],this._onMove,this).on(b,e.Draggable.END[a.type],this._onUp,this)}},_onMove:function(a){if(a.touches&&a.touches.length>1)return void(this._moved=!0);var c=a.touches&&1===a.touches.length?a.touches[0]:a,d=new e.Point(c.clientX,c.clientY),f=d.subtract(this._startPoint);(f.x||f.y)&&(e.Browser.touch&&Math.abs(f.x)+Math.abs(f.y)<3||(e.DomEvent.preventDefault(a),this._moved||(this.fire("dragstart"),this._moved=!0,this._startPos=e.DomUtil.getPosition(this._element).subtract(f),e.DomUtil.addClass(b.body,"leaflet-dragging"),this._lastTarget=a.target||a.srcElement,e.DomUtil.addClass(this._lastTarget,"leaflet-drag-target")),this._newPos=this._startPos.add(f),this._moving=!0,e.Util.cancelAnimFrame(this._animRequest),this._animRequest=e.Util.requestAnimFrame(this._updatePosition,this,!0,this._dragStartTarget)))},_updatePosition:function(){this.fire("predrag"),e.DomUtil.setPosition(this._element,this._newPos),this.fire("drag")},_onUp:function(){e.DomUtil.removeClass(b.body,"leaflet-dragging"),this._lastTarget&&(e.DomUtil.removeClass(this._lastTarget,"leaflet-drag-target"),this._lastTarget=null);for(var a in e.Draggable.MOVE)e.DomEvent.off(b,e.Draggable.MOVE[a],this._onMove).off(b,e.Draggable.END[a],this._onUp);e.DomUtil.enableImageDrag(),e.DomUtil.enableTextSelection(),this._moved&&this._moving&&(e.Util.cancelAnimFrame(this._animRequest),this.fire("dragend",{distance:this._newPos.distanceTo(this._startPos)})),this._moving=!1}}),e.Handler=e.Class.extend({initialize:function(a){this._map=a},enable:function(){this._enabled||(this._enabled=!0,this.addHooks())},disable:function(){this._enabled&&(this._enabled=!1,this.removeHooks())},enabled:function(){return!!this._enabled}}),e.Map.mergeOptions({dragging:!0,inertia:!e.Browser.android23,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,inertiaThreshold:e.Browser.touch?32:18,easeLinearity:.25,worldCopyJump:!1}),e.Map.Drag=e.Handler.extend({addHooks:function(){if(!this._draggable){var a=this._map;this._draggable=new e.Draggable(a._mapPane,a._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),a.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDrag,this),a.on("viewreset",this._onViewReset,this),a.whenReady(this._onViewReset,this))}this._draggable.enable()},removeHooks:function(){this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},_onDragStart:function(){var a=this._map;a._panAnim&&a._panAnim.stop(),a.fire("movestart").fire("dragstart"),a.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(){if(this._map.options.inertia){var a=this._lastTime=+new Date,b=this._lastPos=this._draggable._newPos;this._positions.push(b),this._times.push(a),a-this._times[0]>200&&(this._positions.shift(),this._times.shift())}this._map.fire("move").fire("drag")},_onViewReset:function(){var a=this._map.getSize()._divideBy(2),b=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=b.subtract(a).x,this._worldWidth=this._map.project([0,180]).x},_onPreDrag:function(){var a=this._worldWidth,b=Math.round(a/2),c=this._initialWorldOffset,d=this._draggable._newPos.x,e=(d-b+c)%a+b-c,f=(d+b+c)%a-b-c,g=Math.abs(e+c)c.inertiaThreshold||!this._positions[0];if(b.fire("dragend",a),f)b.fire("moveend");else{var g=this._lastPos.subtract(this._positions[0]),h=(this._lastTime+d-this._times[0])/1e3,i=c.easeLinearity,j=g.multiplyBy(i/h),k=j.distanceTo([0,0]),l=Math.min(c.inertiaMaxSpeed,k),m=j.multiplyBy(l/k),n=l/(c.inertiaDeceleration*i),o=m.multiplyBy(-n/2).round();o.x&&o.y?(o=b._limitOffset(o,b.options.maxBounds),e.Util.requestAnimFrame(function(){b.panBy(o,{duration:n,easeLinearity:i,noMoveStart:!0})})):b.fire("moveend")}}}),e.Map.addInitHook("addHandler","dragging",e.Map.Drag),e.Map.mergeOptions({doubleClickZoom:!0}),e.Map.DoubleClickZoom=e.Handler.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(a){var b=this._map,c=b.getZoom()+(a.originalEvent.shiftKey?-1:1);"center"===b.options.doubleClickZoom?b.setZoom(c):b.setZoomAround(a.containerPoint,c)}}),e.Map.addInitHook("addHandler","doubleClickZoom",e.Map.DoubleClickZoom),e.Map.mergeOptions({scrollWheelZoom:!0}),e.Map.ScrollWheelZoom=e.Handler.extend({addHooks:function(){e.DomEvent.on(this._map._container,"mousewheel",this._onWheelScroll,this),e.DomEvent.on(this._map._container,"MozMousePixelScroll",e.DomEvent.preventDefault),this._delta=0},removeHooks:function(){e.DomEvent.off(this._map._container,"mousewheel",this._onWheelScroll),e.DomEvent.off(this._map._container,"MozMousePixelScroll",e.DomEvent.preventDefault)},_onWheelScroll:function(a){var b=e.DomEvent.getWheelDelta(a);this._delta+=b,this._lastMousePos=this._map.mouseEventToContainerPoint(a),this._startTime||(this._startTime=+new Date);var c=Math.max(40-(+new Date-this._startTime),0);clearTimeout(this._timer),this._timer=setTimeout(e.bind(this._performZoom,this),c),e.DomEvent.preventDefault(a),e.DomEvent.stopPropagation(a)},_performZoom:function(){var a=this._map,b=this._delta,c=a.getZoom();b=b>0?Math.ceil(b):Math.floor(b),b=Math.max(Math.min(b,4),-4),b=a._limitZoom(c+b)-c,this._delta=0,this._startTime=null,b&&("center"===a.options.scrollWheelZoom?a.setZoom(c+b):a.setZoomAround(this._lastMousePos,c+b))}}),e.Map.addInitHook("addHandler","scrollWheelZoom",e.Map.ScrollWheelZoom),e.extend(e.DomEvent,{_touchstart:e.Browser.msPointer?"MSPointerDown":e.Browser.pointer?"pointerdown":"touchstart",_touchend:e.Browser.msPointer?"MSPointerUp":e.Browser.pointer?"pointerup":"touchend",addDoubleTapListener:function(a,c,d){function f(a){var b;if(e.Browser.pointer?(o.push(a.pointerId),b=o.length):b=a.touches.length,!(b>1)){var c=Date.now(),d=c-(h||c);i=a.touches?a.touches[0]:a,j=d>0&&k>=d,h=c}}function g(a){if(e.Browser.pointer){var b=o.indexOf(a.pointerId);if(-1===b)return;o.splice(b,1)}if(j){if(e.Browser.pointer){var d,f={};for(var g in i)d=i[g],"function"==typeof d?f[g]=d.bind(i):f[g]=d;i=f}i.type="dblclick",c(i),h=null}}var h,i,j=!1,k=250,l="_leaflet_",m=this._touchstart,n=this._touchend,o=[];a[l+m+d]=f,a[l+n+d]=g;var p=e.Browser.pointer?b.documentElement:a;return a.addEventListener(m,f,!1),p.addEventListener(n,g,!1),e.Browser.pointer&&p.addEventListener(e.DomEvent.POINTER_CANCEL,g,!1),this},removeDoubleTapListener:function(a,c){var d="_leaflet_";return a.removeEventListener(this._touchstart,a[d+this._touchstart+c],!1),(e.Browser.pointer?b.documentElement:a).removeEventListener(this._touchend,a[d+this._touchend+c],!1),e.Browser.pointer&&b.documentElement.removeEventListener(e.DomEvent.POINTER_CANCEL,a[d+this._touchend+c],!1),this}}),e.extend(e.DomEvent,{POINTER_DOWN:e.Browser.msPointer?"MSPointerDown":"pointerdown",POINTER_MOVE:e.Browser.msPointer?"MSPointerMove":"pointermove",POINTER_UP:e.Browser.msPointer?"MSPointerUp":"pointerup",POINTER_CANCEL:e.Browser.msPointer?"MSPointerCancel":"pointercancel",_pointers:[],_pointerDocumentListener:!1,addPointerListener:function(a,b,c,d){switch(b){case"touchstart":return this.addPointerListenerStart(a,b,c,d); -case"touchend":return this.addPointerListenerEnd(a,b,c,d);case"touchmove":return this.addPointerListenerMove(a,b,c,d);default:throw"Unknown touch event type"}},addPointerListenerStart:function(a,c,d,f){var g="_leaflet_",h=this._pointers,i=function(a){"mouse"!==a.pointerType&&a.pointerType!==a.MSPOINTER_TYPE_MOUSE&&e.DomEvent.preventDefault(a);for(var b=!1,c=0;c1))&&(this._moved||(e.DomUtil.addClass(b._mapPane,"leaflet-touching"),b.fire("movestart").fire("zoomstart"),this._moved=!0),e.Util.cancelAnimFrame(this._animRequest),this._animRequest=e.Util.requestAnimFrame(this._updateOnMove,this,!0,this._map._container),e.DomEvent.preventDefault(a))}},_updateOnMove:function(){var a=this._map,b=this._getScaleOrigin(),c=a.layerPointToLatLng(b),d=a.getScaleZoom(this._scale);a._animateZoom(c,d,this._startCenter,this._scale,this._delta,!1,!0)},_onTouchEnd:function(){if(!this._moved||!this._zooming)return void(this._zooming=!1);var a=this._map;this._zooming=!1,e.DomUtil.removeClass(a._mapPane,"leaflet-touching"),e.Util.cancelAnimFrame(this._animRequest),e.DomEvent.off(b,"touchmove",this._onTouchMove).off(b,"touchend",this._onTouchEnd);var c=this._getScaleOrigin(),d=a.layerPointToLatLng(c),f=a.getZoom(),g=a.getScaleZoom(this._scale)-f,h=g>0?Math.ceil(g):Math.floor(g),i=a._limitZoom(f+h),j=a.getZoomScale(i)/this._scale;a._animateZoom(d,i,c,j)},_getScaleOrigin:function(){var a=this._centerOffset.subtract(this._delta).divideBy(this._scale);return this._startCenter.add(a)}}),e.Map.addInitHook("addHandler","touchZoom",e.Map.TouchZoom),e.Map.mergeOptions({tap:!0,tapTolerance:15}),e.Map.Tap=e.Handler.extend({addHooks:function(){e.DomEvent.on(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){e.DomEvent.off(this._map._container,"touchstart",this._onDown,this)},_onDown:function(a){if(a.touches){if(e.DomEvent.preventDefault(a),this._fireClick=!0,a.touches.length>1)return this._fireClick=!1,void clearTimeout(this._holdTimeout);var c=a.touches[0],d=c.target;this._startPos=this._newPos=new e.Point(c.clientX,c.clientY),d.tagName&&"a"===d.tagName.toLowerCase()&&e.DomUtil.addClass(d,"leaflet-active"),this._holdTimeout=setTimeout(e.bind(function(){this._isTapValid()&&(this._fireClick=!1,this._onUp(),this._simulateEvent("contextmenu",c))},this),1e3),e.DomEvent.on(b,"touchmove",this._onMove,this).on(b,"touchend",this._onUp,this)}},_onUp:function(a){if(clearTimeout(this._holdTimeout),e.DomEvent.off(b,"touchmove",this._onMove,this).off(b,"touchend",this._onUp,this),this._fireClick&&a&&a.changedTouches){var c=a.changedTouches[0],d=c.target;d&&d.tagName&&"a"===d.tagName.toLowerCase()&&e.DomUtil.removeClass(d,"leaflet-active"),this._isTapValid()&&this._simulateEvent("click",c)}},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_onMove:function(a){var b=a.touches[0];this._newPos=new e.Point(b.clientX,b.clientY)},_simulateEvent:function(c,d){var e=b.createEvent("MouseEvents");e._simulated=!0,d.target._simulatedClick=!0,e.initMouseEvent(c,!0,!0,a,1,d.screenX,d.screenY,d.clientX,d.clientY,!1,!1,!1,!1,0,null),d.target.dispatchEvent(e)}}),e.Browser.touch&&!e.Browser.pointer&&e.Map.addInitHook("addHandler","tap",e.Map.Tap),e.Map.mergeOptions({boxZoom:!0}),e.Map.BoxZoom=e.Handler.extend({initialize:function(a){this._map=a,this._container=a._container,this._pane=a._panes.overlayPane,this._moved=!1},addHooks:function(){e.DomEvent.on(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){e.DomEvent.off(this._container,"mousedown",this._onMouseDown),this._moved=!1},moved:function(){return this._moved},_onMouseDown:function(a){return this._moved=!1,!a.shiftKey||1!==a.which&&1!==a.button?!1:(e.DomUtil.disableTextSelection(),e.DomUtil.disableImageDrag(),this._startLayerPoint=this._map.mouseEventToLayerPoint(a),void e.DomEvent.on(b,"mousemove",this._onMouseMove,this).on(b,"mouseup",this._onMouseUp,this).on(b,"keydown",this._onKeyDown,this))},_onMouseMove:function(a){this._moved||(this._box=e.DomUtil.create("div","leaflet-zoom-box",this._pane),e.DomUtil.setPosition(this._box,this._startLayerPoint),this._container.style.cursor="crosshair",this._map.fire("boxzoomstart"));var b=this._startLayerPoint,c=this._box,d=this._map.mouseEventToLayerPoint(a),f=d.subtract(b),g=new e.Point(Math.min(d.x,b.x),Math.min(d.y,b.y));e.DomUtil.setPosition(c,g),this._moved=!0,c.style.width=Math.max(0,Math.abs(f.x)-4)+"px",c.style.height=Math.max(0,Math.abs(f.y)-4)+"px"},_finish:function(){this._moved&&(this._pane.removeChild(this._box),this._container.style.cursor=""),e.DomUtil.enableTextSelection(),e.DomUtil.enableImageDrag(),e.DomEvent.off(b,"mousemove",this._onMouseMove).off(b,"mouseup",this._onMouseUp).off(b,"keydown",this._onKeyDown)},_onMouseUp:function(a){this._finish();var b=this._map,c=b.mouseEventToLayerPoint(a);if(!this._startLayerPoint.equals(c)){var d=new e.LatLngBounds(b.layerPointToLatLng(this._startLayerPoint),b.layerPointToLatLng(c));b.fitBounds(d),b.fire("boxzoomend",{boxZoomBounds:d})}},_onKeyDown:function(a){27===a.keyCode&&this._finish()}}),e.Map.addInitHook("addHandler","boxZoom",e.Map.BoxZoom),e.Map.mergeOptions({keyboard:!0,keyboardPanOffset:80,keyboardZoomOffset:1}),e.Map.Keyboard=e.Handler.extend({keyCodes:{left:[37],right:[39],down:[40],up:[38],zoomIn:[187,107,61,171],zoomOut:[189,109,173]},initialize:function(a){this._map=a,this._setPanOffset(a.options.keyboardPanOffset),this._setZoomOffset(a.options.keyboardZoomOffset)},addHooks:function(){var a=this._map._container;-1===a.tabIndex&&(a.tabIndex="0"),e.DomEvent.on(a,"focus",this._onFocus,this).on(a,"blur",this._onBlur,this).on(a,"mousedown",this._onMouseDown,this),this._map.on("focus",this._addHooks,this).on("blur",this._removeHooks,this)},removeHooks:function(){this._removeHooks();var a=this._map._container;e.DomEvent.off(a,"focus",this._onFocus,this).off(a,"blur",this._onBlur,this).off(a,"mousedown",this._onMouseDown,this),this._map.off("focus",this._addHooks,this).off("blur",this._removeHooks,this)},_onMouseDown:function(){if(!this._focused){var c=b.body,d=b.documentElement,e=c.scrollTop||d.scrollTop,f=c.scrollLeft||d.scrollLeft;this._map._container.focus(),a.scrollTo(f,e)}},_onFocus:function(){this._focused=!0,this._map.fire("focus")},_onBlur:function(){this._focused=!1,this._map.fire("blur")},_setPanOffset:function(a){var b,c,d=this._panKeys={},e=this.keyCodes;for(b=0,c=e.left.length;c>b;b++)d[e.left[b]]=[-1*a,0];for(b=0,c=e.right.length;c>b;b++)d[e.right[b]]=[a,0];for(b=0,c=e.down.length;c>b;b++)d[e.down[b]]=[0,a];for(b=0,c=e.up.length;c>b;b++)d[e.up[b]]=[0,-1*a]},_setZoomOffset:function(a){var b,c,d=this._zoomKeys={},e=this.keyCodes;for(b=0,c=e.zoomIn.length;c>b;b++)d[e.zoomIn[b]]=a;for(b=0,c=e.zoomOut.length;c>b;b++)d[e.zoomOut[b]]=-a},_addHooks:function(){e.DomEvent.on(b,"keydown",this._onKeyDown,this)},_removeHooks:function(){e.DomEvent.off(b,"keydown",this._onKeyDown,this)},_onKeyDown:function(a){var b=a.keyCode,c=this._map;if(b in this._panKeys){if(c._panAnim&&c._panAnim._inProgress)return;c.panBy(this._panKeys[b]),c.options.maxBounds&&c.panInsideBounds(c.options.maxBounds)}else{if(!(b in this._zoomKeys))return;c.setZoom(c.getZoom()+this._zoomKeys[b])}e.DomEvent.stop(a)}}),e.Map.addInitHook("addHandler","keyboard",e.Map.Keyboard),e.Handler.MarkerDrag=e.Handler.extend({initialize:function(a){this._marker=a},addHooks:function(){var a=this._marker._icon;this._draggable||(this._draggable=new e.Draggable(a,a)),this._draggable.on("dragstart",this._onDragStart,this).on("drag",this._onDrag,this).on("dragend",this._onDragEnd,this),this._draggable.enable(),e.DomUtil.addClass(this._marker._icon,"leaflet-marker-draggable")},removeHooks:function(){this._draggable.off("dragstart",this._onDragStart,this).off("drag",this._onDrag,this).off("dragend",this._onDragEnd,this),this._draggable.disable(),e.DomUtil.removeClass(this._marker._icon,"leaflet-marker-draggable")},moved:function(){return this._draggable&&this._draggable._moved},_onDragStart:function(){this._marker.closePopup().fire("movestart").fire("dragstart")},_onDrag:function(){var a=this._marker,b=a._shadow,c=e.DomUtil.getPosition(a._icon),d=a._map.layerPointToLatLng(c);b&&e.DomUtil.setPosition(b,c),a._latlng=d,a.fire("move",{latlng:d}).fire("drag")},_onDragEnd:function(a){this._marker.fire("moveend").fire("dragend",a)}}),e.Control=e.Class.extend({options:{position:"topright"},initialize:function(a){e.setOptions(this,a)},getPosition:function(){return this.options.position},setPosition:function(a){var b=this._map;return b&&b.removeControl(this),this.options.position=a,b&&b.addControl(this),this},getContainer:function(){return this._container},addTo:function(a){this._map=a;var b=this._container=this.onAdd(a),c=this.getPosition(),d=a._controlCorners[c];return e.DomUtil.addClass(b,"leaflet-control"),-1!==c.indexOf("bottom")?d.insertBefore(b,d.firstChild):d.appendChild(b),this},removeFrom:function(a){var b=this.getPosition(),c=a._controlCorners[b];return c.removeChild(this._container),this._map=null,this.onRemove&&this.onRemove(a),this},_refocusOnMap:function(){this._map&&this._map.getContainer().focus()}}),e.control=function(a){return new e.Control(a)},e.Map.include({addControl:function(a){return a.addTo(this),this},removeControl:function(a){return a.removeFrom(this),this},_initControlPos:function(){function a(a,f){var g=c+a+" "+c+f;b[a+f]=e.DomUtil.create("div",g,d)}var b=this._controlCorners={},c="leaflet-",d=this._controlContainer=e.DomUtil.create("div",c+"control-container",this._container);a("top","left"),a("top","right"),a("bottom","left"),a("bottom","right")},_clearControlPos:function(){this._container.removeChild(this._controlContainer)}}),e.Control.Zoom=e.Control.extend({options:{position:"topleft",zoomInText:"+",zoomInTitle:"Zoom in",zoomOutText:"-",zoomOutTitle:"Zoom out"},onAdd:function(a){var b="leaflet-control-zoom",c=e.DomUtil.create("div",b+" leaflet-bar");return this._map=a,this._zoomInButton=this._createButton(this.options.zoomInText,this.options.zoomInTitle,b+"-in",c,this._zoomIn,this),this._zoomOutButton=this._createButton(this.options.zoomOutText,this.options.zoomOutTitle,b+"-out",c,this._zoomOut,this),this._updateDisabled(),a.on("zoomend zoomlevelschange",this._updateDisabled,this),c},onRemove:function(a){a.off("zoomend zoomlevelschange",this._updateDisabled,this)},_zoomIn:function(a){this._map.zoomIn(a.shiftKey?3:1)},_zoomOut:function(a){this._map.zoomOut(a.shiftKey?3:1)},_createButton:function(a,b,c,d,f,g){var h=e.DomUtil.create("a",c,d);h.innerHTML=a,h.href="#",h.title=b;var i=e.DomEvent.stopPropagation;return e.DomEvent.on(h,"click",i).on(h,"mousedown",i).on(h,"dblclick",i).on(h,"click",e.DomEvent.preventDefault).on(h,"click",f,g).on(h,"click",this._refocusOnMap,g),h},_updateDisabled:function(){var a=this._map,b="leaflet-disabled";e.DomUtil.removeClass(this._zoomInButton,b),e.DomUtil.removeClass(this._zoomOutButton,b),a._zoom===a.getMinZoom()&&e.DomUtil.addClass(this._zoomOutButton,b),a._zoom===a.getMaxZoom()&&e.DomUtil.addClass(this._zoomInButton,b)}}),e.Map.mergeOptions({zoomControl:!0}),e.Map.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new e.Control.Zoom,this.addControl(this.zoomControl))}),e.control.zoom=function(a){return new e.Control.Zoom(a)},e.Control.Attribution=e.Control.extend({options:{position:"bottomright",prefix:'Leaflet'},initialize:function(a){e.setOptions(this,a),this._attributions={}},onAdd:function(a){this._container=e.DomUtil.create("div","leaflet-control-attribution"),e.DomEvent.disableClickPropagation(this._container);for(var b in a._layers)a._layers[b].getAttribution&&this.addAttribution(a._layers[b].getAttribution());return a.on("layeradd",this._onLayerAdd,this).on("layerremove",this._onLayerRemove,this),this._update(),this._container},onRemove:function(a){a.off("layeradd",this._onLayerAdd).off("layerremove",this._onLayerRemove)},setPrefix:function(a){return this.options.prefix=a,this._update(),this},addAttribution:function(a){return a?(this._attributions[a]||(this._attributions[a]=0),this._attributions[a]++,this._update(),this):void 0},removeAttribution:function(a){return a?(this._attributions[a]&&(this._attributions[a]--,this._update()),this):void 0},_update:function(){if(this._map){var a=[];for(var b in this._attributions)this._attributions[b]&&a.push(b);var c=[];this.options.prefix&&c.push(this.options.prefix),a.length&&c.push(a.join(", ")),this._container.innerHTML=c.join(" | ")}},_onLayerAdd:function(a){a.layer.getAttribution&&this.addAttribution(a.layer.getAttribution())},_onLayerRemove:function(a){a.layer.getAttribution&&this.removeAttribution(a.layer.getAttribution())}}),e.Map.mergeOptions({attributionControl:!0}),e.Map.addInitHook(function(){this.options.attributionControl&&(this.attributionControl=(new e.Control.Attribution).addTo(this))}),e.control.attribution=function(a){return new e.Control.Attribution(a)},e.Control.Scale=e.Control.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0,updateWhenIdle:!1},onAdd:function(a){this._map=a;var b="leaflet-control-scale",c=e.DomUtil.create("div",b),d=this.options;return this._addScales(d,b,c),a.on(d.updateWhenIdle?"moveend":"move",this._update,this),a.whenReady(this._update,this),c},onRemove:function(a){a.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(a,b,c){a.metric&&(this._mScale=e.DomUtil.create("div",b+"-line",c)),a.imperial&&(this._iScale=e.DomUtil.create("div",b+"-line",c))},_update:function(){var a=this._map.getBounds(),b=a.getCenter().lat,c=6378137*Math.PI*Math.cos(b*Math.PI/180),d=c*(a.getNorthEast().lng-a.getSouthWest().lng)/180,e=this._map.getSize(),f=this.options,g=0;e.x>0&&(g=d*(f.maxWidth/e.x)),this._updateScales(f,g)},_updateScales:function(a,b){a.metric&&b&&this._updateMetric(b),a.imperial&&b&&this._updateImperial(b)},_updateMetric:function(a){var b=this._getRoundNum(a);this._mScale.style.width=this._getScaleWidth(b/a)+"px",this._mScale.innerHTML=1e3>b?b+" m":b/1e3+" km"},_updateImperial:function(a){var b,c,d,e=3.2808399*a,f=this._iScale;e>5280?(b=e/5280,c=this._getRoundNum(b),f.style.width=this._getScaleWidth(c/b)+"px",f.innerHTML=c+" mi"):(d=this._getRoundNum(e),f.style.width=this._getScaleWidth(d/e)+"px",f.innerHTML=d+" ft")},_getScaleWidth:function(a){return Math.round(this.options.maxWidth*a)-10},_getRoundNum:function(a){var b=Math.pow(10,(Math.floor(a)+"").length-1),c=a/b;return c=c>=10?10:c>=5?5:c>=3?3:c>=2?2:1,b*c}}),e.control.scale=function(a){return new e.Control.Scale(a)},e.Control.Layers=e.Control.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0},initialize:function(a,b,c){e.setOptions(this,c),this._layers={},this._lastZIndex=0,this._handlingClick=!1;for(var d in a)this._addLayer(a[d],d);for(d in b)this._addLayer(b[d],d,!0)},onAdd:function(a){return this._initLayout(),this._update(),a.on("layeradd",this._onLayerChange,this).on("layerremove",this._onLayerChange,this),this._container},onRemove:function(a){a.off("layeradd",this._onLayerChange,this).off("layerremove",this._onLayerChange,this)},addBaseLayer:function(a,b){return this._addLayer(a,b),this._update(),this},addOverlay:function(a,b){return this._addLayer(a,b,!0),this._update(),this},removeLayer:function(a){var b=e.stamp(a);return delete this._layers[b],this._update(),this},_initLayout:function(){var a="leaflet-control-layers",b=this._container=e.DomUtil.create("div",a);b.setAttribute("aria-haspopup",!0),e.Browser.touch?e.DomEvent.on(b,"click",e.DomEvent.stopPropagation):e.DomEvent.disableClickPropagation(b).disableScrollPropagation(b);var c=this._form=e.DomUtil.create("form",a+"-list");if(this.options.collapsed){e.Browser.android||e.DomEvent.on(b,"mouseover",this._expand,this).on(b,"mouseout",this._collapse,this);var d=this._layersLink=e.DomUtil.create("a",a+"-toggle",b);d.href="#",d.title="Layers",e.Browser.touch?e.DomEvent.on(d,"click",e.DomEvent.stop).on(d,"click",this._expand,this):e.DomEvent.on(d,"focus",this._expand,this),e.DomEvent.on(c,"click",function(){setTimeout(e.bind(this._onInputClick,this),0)},this),this._map.on("click",this._collapse,this)}else this._expand();this._baseLayersList=e.DomUtil.create("div",a+"-base",c),this._separator=e.DomUtil.create("div",a+"-separator",c),this._overlaysList=e.DomUtil.create("div",a+"-overlays",c),b.appendChild(c)},_addLayer:function(a,b,c){var d=e.stamp(a);this._layers[d]={layer:a,name:b,overlay:c},this.options.autoZIndex&&a.setZIndex&&(this._lastZIndex++,a.setZIndex(this._lastZIndex))},_update:function(){if(this._container){this._baseLayersList.innerHTML="",this._overlaysList.innerHTML="";var a,b,c=!1,d=!1;for(a in this._layers)b=this._layers[a],this._addItem(b),d=d||b.overlay,c=c||!b.overlay;this._separator.style.display=d&&c?"":"none"}},_onLayerChange:function(a){var b=this._layers[e.stamp(a.layer)];if(b){this._handlingClick||this._update();var c=b.overlay?"layeradd"===a.type?"overlayadd":"overlayremove":"layeradd"===a.type?"baselayerchange":null;c&&this._map.fire(c,b)}},_createRadioElement:function(a,c){var d='a;a++)b=d[a],c=this._layers[b.layerId],b.checked&&!this._map.hasLayer(c.layer)?this._map.addLayer(c.layer):!b.checked&&this._map.hasLayer(c.layer)&&this._map.removeLayer(c.layer);this._handlingClick=!1,this._refocusOnMap()},_expand:function(){e.DomUtil.addClass(this._container,"leaflet-control-layers-expanded")},_collapse:function(){this._container.className=this._container.className.replace(" leaflet-control-layers-expanded","")}}),e.control.layers=function(a,b,c){return new e.Control.Layers(a,b,c)},e.PosAnimation=e.Class.extend({includes:e.Mixin.Events,run:function(a,b,c,d){this.stop(),this._el=a,this._inProgress=!0,this._newPos=b,this.fire("start"),a.style[e.DomUtil.TRANSITION]="all "+(c||.25)+"s cubic-bezier(0,0,"+(d||.5)+",1)",e.DomEvent.on(a,e.DomUtil.TRANSITION_END,this._onTransitionEnd,this),e.DomUtil.setPosition(a,b),e.Util.falseFn(a.offsetWidth),this._stepTimer=setInterval(e.bind(this._onStep,this),50)},stop:function(){this._inProgress&&(e.DomUtil.setPosition(this._el,this._getPos()),this._onTransitionEnd(),e.Util.falseFn(this._el.offsetWidth))},_onStep:function(){var a=this._getPos();return a?(this._el._leaflet_pos=a,void this.fire("step")):void this._onTransitionEnd()},_transformRe:/([-+]?(?:\d*\.)?\d+)\D*, ([-+]?(?:\d*\.)?\d+)\D*\)/,_getPos:function(){var b,c,d,f=this._el,g=a.getComputedStyle(f);if(e.Browser.any3d){if(d=g[e.DomUtil.TRANSFORM].match(this._transformRe),!d)return;b=parseFloat(d[1]),c=parseFloat(d[2])}else b=parseFloat(g.left),c=parseFloat(g.top);return new e.Point(b,c,!0)},_onTransitionEnd:function(){e.DomEvent.off(this._el,e.DomUtil.TRANSITION_END,this._onTransitionEnd,this),this._inProgress&&(this._inProgress=!1,this._el.style[e.DomUtil.TRANSITION]="",this._el._leaflet_pos=this._newPos,clearInterval(this._stepTimer),this.fire("step").fire("end"))}}),e.Map.include({setView:function(a,b,d){if(b=b===c?this._zoom:this._limitZoom(b),a=this._limitCenter(e.latLng(a),b,this.options.maxBounds),d=d||{},this._panAnim&&this._panAnim.stop(),this._loaded&&!d.reset&&d!==!0){d.animate!==c&&(d.zoom=e.extend({animate:d.animate},d.zoom),d.pan=e.extend({animate:d.animate},d.pan));var f=this._zoom!==b?this._tryAnimatedZoom&&this._tryAnimatedZoom(a,b,d.zoom):this._tryAnimatedPan(a,d.pan);if(f)return clearTimeout(this._sizeTimer),this}return this._resetView(a,b),this},panBy:function(a,b){if(a=e.point(a).round(),b=b||{},!a.x&&!a.y)return this;if(this._panAnim||(this._panAnim=new e.PosAnimation,this._panAnim.on({step:this._onPanTransitionStep,end:this._onPanTransitionEnd},this)),b.noMoveStart||this.fire("movestart"),b.animate!==!1){e.DomUtil.addClass(this._mapPane,"leaflet-pan-anim");var c=this._getMapPanePos().subtract(a);this._panAnim.run(this._mapPane,c,b.duration||.25,b.easeLinearity)}else this._rawPanBy(a),this.fire("move").fire("moveend");return this},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){e.DomUtil.removeClass(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(a,b){var c=this._getCenterOffset(a)._floor();return(b&&b.animate)===!0||this.getSize().contains(c)?(this.panBy(c,b),!0):!1}}),e.PosAnimation=e.DomUtil.TRANSITION?e.PosAnimation:e.PosAnimation.extend({run:function(a,b,c,d){this.stop(),this._el=a,this._inProgress=!0,this._duration=c||.25,this._easeOutPower=1/Math.max(d||.5,.2),this._startPos=e.DomUtil.getPosition(a),this._offset=b.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(),this._complete())},_animate:function(){this._animId=e.Util.requestAnimFrame(this._animate,this),this._step()},_step:function(){var a=+new Date-this._startTime,b=1e3*this._duration;b>a?this._runFrame(this._easeOut(a/b)):(this._runFrame(1),this._complete())},_runFrame:function(a){var b=this._startPos.add(this._offset.multiplyBy(a));e.DomUtil.setPosition(this._el,b),this.fire("step")},_complete:function(){e.Util.cancelAnimFrame(this._animId),this._inProgress=!1,this.fire("end")},_easeOut:function(a){return 1-Math.pow(1-a,this._easeOutPower)}}),e.Map.mergeOptions({zoomAnimation:!0,zoomAnimationThreshold:4}),e.DomUtil.TRANSITION&&e.Map.addInitHook(function(){this._zoomAnimated=this.options.zoomAnimation&&e.DomUtil.TRANSITION&&e.Browser.any3d&&!e.Browser.android23&&!e.Browser.mobileOpera,this._zoomAnimated&&e.DomEvent.on(this._mapPane,e.DomUtil.TRANSITION_END,this._catchTransitionEnd,this)}),e.Map.include(e.DomUtil.TRANSITION?{_catchTransitionEnd:function(a){this._animatingZoom&&a.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(a,b,c){if(this._animatingZoom)return!0;if(c=c||{},!this._zoomAnimated||c.animate===!1||this._nothingToAnimate()||Math.abs(b-this._zoom)>this.options.zoomAnimationThreshold)return!1;var d=this.getZoomScale(b),e=this._getCenterOffset(a)._divideBy(1-1/d),f=this._getCenterLayerPoint()._add(e);return c.animate===!0||this.getSize().contains(e)?(this.fire("movestart").fire("zoomstart"),this._animateZoom(a,b,f,d,null,!0),!0):!1},_animateZoom:function(a,b,c,d,f,g,h){h||(this._animatingZoom=!0),e.DomUtil.addClass(this._mapPane,"leaflet-zoom-anim"),this._animateToCenter=a,this._animateToZoom=b,e.Draggable&&(e.Draggable._disabled=!0),e.Util.requestAnimFrame(function(){this.fire("zoomanim",{center:a,zoom:b,origin:c,scale:d,delta:f,backwards:g}),setTimeout(e.bind(this._onZoomTransitionEnd,this),250)},this)},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._animatingZoom=!1,e.DomUtil.removeClass(this._mapPane,"leaflet-zoom-anim"),e.Util.requestAnimFrame(function(){this._resetView(this._animateToCenter,this._animateToZoom,!0,!0),e.Draggable&&(e.Draggable._disabled=!1)},this))}}:{}),e.TileLayer.include({_animateZoom:function(a){this._animating||(this._animating=!0,this._prepareBgBuffer());var b=this._bgBuffer,c=e.DomUtil.TRANSFORM,d=a.delta?e.DomUtil.getTranslateString(a.delta):b.style[c],f=e.DomUtil.getScaleString(a.scale,a.origin);b.style[c]=a.backwards?f+" "+d:d+" "+f},_endZoomAnim:function(){var a=this._tileContainer,b=this._bgBuffer;a.style.visibility="",a.parentNode.appendChild(a),e.Util.falseFn(b.offsetWidth);var c=this._map.getZoom();(c>this.options.maxZoom||c.5&&.5>d?(a.style.visibility="hidden",void this._stopLoadingImages(a)):(b.style.visibility="hidden",b.style[e.DomUtil.TRANSFORM]="",this._tileContainer=b,b=this._bgBuffer=a,this._stopLoadingImages(b),void clearTimeout(this._clearBgBufferTimer))},_getLoadedTilesPercentage:function(a){var b,c,d=a.getElementsByTagName("img"),e=0;for(b=0,c=d.length;c>b;b++)d[b].complete&&e++;return e/c},_stopLoadingImages:function(a){var b,c,d,f=Array.prototype.slice.call(a.getElementsByTagName("img"));for(b=0,c=f.length;c>b;b++)d=f[b],d.complete||(d.onload=e.Util.falseFn,d.onerror=e.Util.falseFn,d.src=e.Util.emptyImageUrl,d.parentNode.removeChild(d))}}),e.Map.include({_defaultLocateOptions:{watch:!1,setView:!1,maxZoom:1/0,timeout:1e4,maximumAge:0,enableHighAccuracy:!1},locate:function(a){if(a=this._locateOptions=e.extend(this._defaultLocateOptions,a),!navigator.geolocation)return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var b=e.bind(this._handleGeolocationResponse,this),c=e.bind(this._handleGeolocationError,this);return a.watch?this._locationWatchId=navigator.geolocation.watchPosition(b,c,a):navigator.geolocation.getCurrentPosition(b,c,a),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(a){var b=a.code,c=a.message||(1===b?"permission denied":2===b?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:b,message:"Geolocation error: "+c+"."})},_handleGeolocationResponse:function(a){var b=a.coords.latitude,c=a.coords.longitude,d=new e.LatLng(b,c),f=180*a.coords.accuracy/40075017,g=f/Math.cos(e.LatLng.DEG_TO_RAD*b),h=e.latLngBounds([b-f,c-g],[b+f,c+g]),i=this._locateOptions;if(i.setView){var j=Math.min(this.getBoundsZoom(h),i.maxZoom);this.setView(d,j)}var k={latlng:d,bounds:h,timestamp:a.timestamp};for(var l in a.coords)"number"==typeof a.coords[l]&&(k[l]=a.coords[l]);this.fire("locationfound",k)}})}(window,document),L.Control.Fullscreen=L.Control.extend({options:{position:"topleft",title:{"false":"View Fullscreen","true":"Exit Fullscreen"}},onAdd:function(a){var b=L.DomUtil.create("div","leaflet-control-fullscreen leaflet-bar leaflet-control");return this.link=L.DomUtil.create("a","leaflet-control-fullscreen-button leaflet-bar-part",b),this.link.href="#",this._map=a,this._map.on("fullscreenchange",this._toggleTitle,this),this._toggleTitle(),L.DomEvent.on(this.link,"click",this._click,this),b},_click:function(a){L.DomEvent.stopPropagation(a),L.DomEvent.preventDefault(a),this._map.toggleFullscreen()},_toggleTitle:function(){this.link.title=this.options.title[this._map.isFullscreen()]}}),L.Map.include({isFullscreen:function(){return this._isFullscreen||!1},toggleFullscreen:function(){var a=this.getContainer();this.isFullscreen()?document.exitFullscreen?document.exitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitCancelFullScreen?document.webkitCancelFullScreen():document.msExitFullscreen?document.msExitFullscreen():(L.DomUtil.removeClass(a,"leaflet-pseudo-fullscreen"),this._setFullscreen(!1),this.invalidateSize(),this.fire("fullscreenchange")):a.requestFullscreen?a.requestFullscreen():a.mozRequestFullScreen?a.mozRequestFullScreen():a.webkitRequestFullscreen?a.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT):a.msRequestFullscreen?a.msRequestFullscreen():(L.DomUtil.addClass(a,"leaflet-pseudo-fullscreen"),this._setFullscreen(!0),this.invalidateSize(),this.fire("fullscreenchange"))},_setFullscreen:function(a){this._isFullscreen=a;var b=this.getContainer();a?L.DomUtil.addClass(b,"leaflet-fullscreen-on"):L.DomUtil.removeClass(b,"leaflet-fullscreen-on")},_onFullscreenChange:function(a){var b=document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement;b!==this.getContainer()||this._isFullscreen?b!==this.getContainer()&&this._isFullscreen&&(this._setFullscreen(!1),this.fire("fullscreenchange")):(this._setFullscreen(!0),this.fire("fullscreenchange"))}}),L.Map.mergeOptions({fullscreenControl:!1}),L.Map.addInitHook(function(){this.options.fullscreenControl&&(this.fullscreenControl=new L.Control.Fullscreen,this.addControl(this.fullscreenControl));var a;if("onfullscreenchange"in document?a="fullscreenchange":"onmozfullscreenchange"in document?a="mozfullscreenchange":"onwebkitfullscreenchange"in document?a="webkitfullscreenchange":"onmsfullscreenchange"in document&&(a="MSFullscreenChange"),a){var b=L.bind(this._onFullscreenChange,this); -this.whenReady(function(){L.DomEvent.on(document,a,b)}),this.on("unload",function(){L.DomEvent.off(document,a,b)})}}),L.control.fullscreen=function(a){return new L.Control.Fullscreen(a)},function(a,b){"function"==typeof define&&define.amd?define(["leaflet"],b):"object"==typeof modules&&module.exports?module.exports=b(require("leaflet")):b(L)}(this,function(a){"use strict";return a.TileLayer.Provider=a.TileLayer.extend({initialize:function(b,c){var d=a.TileLayer.Provider.providers,e=b.split("."),f=e[0],g=e[1];if(!d[f])throw"No such provider ("+f+")";var h={url:d[f].url,options:d[f].options};if(g&&"variants"in d[f]){if(!(g in d[f].variants))throw"No such variant of "+f+" ("+g+")";var i,j=d[f].variants[g];i="string"==typeof j?{variant:j}:j.options,h={url:j.url||h.url,options:a.Util.extend({},h.options,i)}}else"function"==typeof h.url&&(h.url=h.url(e.splice(1,e.length-1).join(".")));var k="file:"===window.location.protocol||h.options.forceHTTP;0===h.url.indexOf("//")&&k&&(h.url="http:"+h.url),h.options.retina&&(c.detectRetina&&a.Browser.retina?c.detectRetina=!1:h.options.retina="");var l=function(a){return-1===a.indexOf("{attribution.")?a:a.replace(/\{attribution.(\w*)\}/,function(a,b){return l(d[b].options.attribution)})};h.options.attribution=l(h.options.attribution);var m=a.Util.extend({},h.options,c);a.TileLayer.prototype.initialize.call(this,h.url,m)}}),a.TileLayer.Provider.providers={OpenStreetMap:{url:"//{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",options:{maxZoom:19,attribution:'© OpenStreetMap'},variants:{Mapnik:{},BlackAndWhite:{url:"http://{s}.tiles.wmflabs.org/bw-mapnik/{z}/{x}/{y}.png",options:{maxZoom:18}},DE:{url:"http://{s}.tile.openstreetmap.de/tiles/osmde/{z}/{x}/{y}.png",options:{maxZoom:18}},France:{url:"http://{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png",options:{attribution:"© Openstreetmap France | {attribution.OpenStreetMap}"}},HOT:{url:"http://{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png",options:{attribution:'{attribution.OpenStreetMap}, Tiles courtesy of Humanitarian OpenStreetMap Team'}}}},OpenSeaMap:{url:"http://tiles.openseamap.org/seamark/{z}/{x}/{y}.png",options:{attribution:'Map data: © OpenSeaMap contributors'}},OpenTopoMap:{url:"//{s}.tile.opentopomap.org/{z}/{x}/{y}.png",options:{maxZoom:16,attribution:'Map data: {attribution.OpenStreetMap}, SRTM | Map style: © OpenTopoMap (CC-BY-SA)'}},Thunderforest:{url:"//{s}.tile.thunderforest.com/{variant}/{z}/{x}/{y}.png",options:{attribution:'© OpenCycleMap, {attribution.OpenStreetMap}',variant:"cycle"},variants:{OpenCycleMap:"cycle",Transport:{options:{variant:"transport",maxZoom:19}},TransportDark:{options:{variant:"transport-dark",maxZoom:19}},Landscape:"landscape",Outdoors:"outdoors"}},OpenMapSurfer:{url:"http://openmapsurfer.uni-hd.de/tiles/{variant}/x={x}&y={y}&z={z}",options:{maxZoom:20,variant:"roads",attribution:'Imagery from GIScience Research Group @ University of Heidelberg — Map data {attribution.OpenStreetMap}'},variants:{Roads:"roads",AdminBounds:{options:{variant:"adminb",maxZoom:19}},Grayscale:{options:{variant:"roadsg",maxZoom:19}}}},Hydda:{url:"http://{s}.tile.openstreetmap.se/hydda/{variant}/{z}/{x}/{y}.png",options:{variant:"full",attribution:'Tiles courtesy of OpenStreetMap Sweden — Map data {attribution.OpenStreetMap}'},variants:{Full:"full",Base:"base",RoadsAndLabels:"roads_and_labels"}},MapQuestOpen:{url:"http://otile{s}.mqcdn.com/tiles/1.0.0/{type}/{z}/{x}/{y}.{ext}",options:{type:"map",ext:"jpg",attribution:'Tiles Courtesy of MapQuest — Map data {attribution.OpenStreetMap}',subdomains:"1234"},variants:{OSM:{},Aerial:{options:{type:"sat",attribution:'Tiles Courtesy of MapQuest — Portions Courtesy NASA/JPL-Caltech and U.S. Depart. of Agriculture, Farm Service Agency'}},HybridOverlay:{options:{type:"hyb",ext:"png",opacity:.9}}}},MapBox:{url:"//api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token={accessToken}",options:{attribution:'Imagery from MapBox — Map data {attribution.OpenStreetMap}',subdomains:"abcd"}},Stamen:{url:"//stamen-tiles-{s}.a.ssl.fastly.net/{variant}/{z}/{x}/{y}.{ext}",options:{attribution:'Map tiles by Stamen Design, CC BY 3.0 — Map data {attribution.OpenStreetMap}',subdomains:"abcd",minZoom:0,maxZoom:20,variant:"toner",ext:"png"},variants:{Toner:"toner",TonerBackground:"toner-background",TonerHybrid:"toner-hybrid",TonerLines:"toner-lines",TonerLabels:"toner-labels",TonerLite:"toner-lite",Watercolor:{options:{variant:"watercolor",minZoom:1,maxZoom:16}},Terrain:{options:{variant:"terrain",minZoom:4,maxZoom:18,bounds:[[22,-132],[70,-56]]}},TerrainBackground:{options:{variant:"terrain-background",minZoom:4,maxZoom:18,bounds:[[22,-132],[70,-56]]}},TopOSMRelief:{options:{variant:"toposm-color-relief",ext:"jpg",bounds:[[22,-132],[51,-56]]}},TopOSMFeatures:{options:{variant:"toposm-features",bounds:[[22,-132],[51,-56]],opacity:.9}}}},Esri:{url:"//server.arcgisonline.com/ArcGIS/rest/services/{variant}/MapServer/tile/{z}/{y}/{x}",options:{variant:"World_Street_Map",attribution:"Tiles © Esri"},variants:{WorldStreetMap:{options:{attribution:"{attribution.Esri} — Source: Esri, DeLorme, NAVTEQ, USGS, Intermap, iPC, NRCAN, Esri Japan, METI, Esri China (Hong Kong), Esri (Thailand), TomTom, 2012"}},DeLorme:{options:{variant:"Specialty/DeLorme_World_Base_Map",minZoom:1,maxZoom:11,attribution:"{attribution.Esri} — Copyright: ©2012 DeLorme"}},WorldTopoMap:{options:{variant:"World_Topo_Map",attribution:"{attribution.Esri} — Esri, DeLorme, NAVTEQ, TomTom, Intermap, iPC, USGS, FAO, NPS, NRCAN, GeoBase, Kadaster NL, Ordnance Survey, Esri Japan, METI, Esri China (Hong Kong), and the GIS User Community"}},WorldImagery:{options:{variant:"World_Imagery",attribution:"{attribution.Esri} — Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community"}},WorldTerrain:{options:{variant:"World_Terrain_Base",maxZoom:13,attribution:"{attribution.Esri} — Source: USGS, Esri, TANA, DeLorme, and NPS"}},WorldShadedRelief:{options:{variant:"World_Shaded_Relief",maxZoom:13,attribution:"{attribution.Esri} — Source: Esri"}},WorldPhysical:{options:{variant:"World_Physical_Map",maxZoom:8,attribution:"{attribution.Esri} — Source: US National Park Service"}},OceanBasemap:{options:{variant:"Ocean_Basemap",maxZoom:13,attribution:"{attribution.Esri} — Sources: GEBCO, NOAA, CHS, OSU, UNH, CSUMB, National Geographic, DeLorme, NAVTEQ, and Esri"}},NatGeoWorldMap:{options:{variant:"NatGeo_World_Map",maxZoom:16,attribution:"{attribution.Esri} — National Geographic, Esri, DeLorme, NAVTEQ, UNEP-WCMC, USGS, NASA, ESA, METI, NRCAN, GEBCO, NOAA, iPC"}},WorldGrayCanvas:{options:{variant:"Canvas/World_Light_Gray_Base",maxZoom:16,attribution:"{attribution.Esri} — Esri, DeLorme, NAVTEQ"}}}},OpenWeatherMap:{url:"http://{s}.tile.openweathermap.org/map/{variant}/{z}/{x}/{y}.png",options:{maxZoom:19,attribution:'Map data © OpenWeatherMap',opacity:.5},variants:{Clouds:"clouds",CloudsClassic:"clouds_cls",Precipitation:"precipitation",PrecipitationClassic:"precipitation_cls",Rain:"rain",RainClassic:"rain_cls",Pressure:"pressure",PressureContour:"pressure_cntr",Wind:"wind",Temperature:"temp",Snow:"snow"}},HERE:{url:"//{s}.{base}.maps.cit.api.here.com/maptile/2.1/{type}/{mapID}/{variant}/{z}/{x}/{y}/{size}/{format}?app_id={app_id}&app_code={app_code}&lg={language}",options:{attribution:'Map © 1987-2014 HERE',subdomains:"1234",mapID:"newest",app_id:"",app_code:"",base:"base",variant:"normal.day",maxZoom:20,type:"maptile",language:"eng",format:"png8",size:"256"},variants:{normalDay:"normal.day",normalDayCustom:"normal.day.custom",normalDayGrey:"normal.day.grey",normalDayMobile:"normal.day.mobile",normalDayGreyMobile:"normal.day.grey.mobile",normalDayTransit:"normal.day.transit",normalDayTransitMobile:"normal.day.transit.mobile",normalNight:"normal.night",normalNightMobile:"normal.night.mobile",normalNightGrey:"normal.night.grey",normalNightGreyMobile:"normal.night.grey.mobile",basicMap:{options:{type:"basetile"}},mapLabels:{options:{type:"labeltile",format:"png"}},trafficFlow:{options:{base:"traffic",type:"flowtile"}},carnavDayGrey:"carnav.day.grey",hybridDay:{options:{base:"aerial",variant:"hybrid.day"}},hybridDayMobile:{options:{base:"aerial",variant:"hybrid.day.mobile"}},pedestrianDay:"pedestrian.day",pedestrianNight:"pedestrian.night",satelliteDay:{options:{base:"aerial",variant:"satellite.day"}},terrainDay:{options:{base:"aerial",variant:"terrain.day"}},terrainDayMobile:{options:{base:"aerial",variant:"terrain.day.mobile"}}}},Acetate:{url:"http://a{s}.acetate.geoiq.com/tiles/{variant}/{z}/{x}/{y}.png",options:{attribution:"©2012 Esri & Stamen, Data from OSM and Natural Earth",subdomains:"0123",minZoom:2,maxZoom:18,variant:"acetate-base"},variants:{basemap:"acetate-base",terrain:"terrain",all:"acetate-hillshading",foreground:"acetate-fg",roads:"acetate-roads",labels:"acetate-labels",hillshading:"hillshading"}},FreeMapSK:{url:"http://t{s}.freemap.sk/T/{z}/{x}/{y}.jpeg",options:{minZoom:8,maxZoom:16,subdomains:"1234",bounds:[[47.204642,15.996093],[49.830896,22.576904]],attribution:'{attribution.OpenStreetMap}, vizualization CC-By-SA 2.0 Freemap.sk'}},MtbMap:{url:"http://tile.mtbmap.cz/mtbmap_tiles/{z}/{x}/{y}.png",options:{attribution:"{attribution.OpenStreetMap} & USGS"}},CartoDB:{url:"http://{s}.basemaps.cartocdn.com/{variant}/{z}/{x}/{y}.png",options:{attribution:'{attribution.OpenStreetMap} © CartoDB',subdomains:"abcd",maxZoom:19,variant:"light_all"},variants:{Positron:"light_all",PositronNoLabels:"light_nolabels",PositronOnlyLabels:"light_only_labels",DarkMatter:"dark_all",DarkMatterNoLabels:"dark_nolabels",DarkMatterOnlyLabels:"dark_only_labels"}},HikeBike:{url:"http://{s}.tiles.wmflabs.org/{variant}/{z}/{x}/{y}.png",options:{maxZoom:19,attribution:"{attribution.OpenStreetMap}",variant:"hikebike"},variants:{HikeBike:{},HillShading:{options:{maxZoom:15,variant:"hillshading"}}}},BasemapAT:{url:"//maps{s}.wien.gv.at/basemap/{variant}/normal/google3857/{z}/{y}/{x}.{format}",options:{maxZoom:19,attribution:'Datenquelle: basemap.at',subdomains:["","1","2","3","4"],format:"png",bounds:[[46.35877,8.782379],[49.037872,17.189532]],variant:"geolandbasemap"},variants:{basemap:"geolandbasemap",grau:"bmapgrau",overlay:"bmapoverlay",highdpi:{options:{variant:"bmaphidpi",format:"jpeg"}},orthofoto:{options:{variant:"bmaporthofoto30cm",format:"jpeg"}}}},NASAGIBS:{url:"//map1.vis.earthdata.nasa.gov/wmts-webmerc/{variant}/default/{time}/{tilematrixset}{maxZoom}/{z}/{y}/{x}.{format}",options:{attribution:'Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (ESDIS) with funding provided by NASA/HQ.',bounds:[[-85.0511287776,-179.999999975],[85.0511287776,179.999999975]],minZoom:1,maxZoom:9,format:"jpg",time:"",tilematrixset:"GoogleMapsCompatible_Level"},variants:{ModisTerraTrueColorCR:"MODIS_Terra_CorrectedReflectance_TrueColor",ModisTerraBands367CR:"MODIS_Terra_CorrectedReflectance_Bands367",ViirsEarthAtNight2012:{options:{variant:"VIIRS_CityLights_2012",maxZoom:8}},ModisTerraLSTDay:{options:{variant:"MODIS_Terra_Land_Surface_Temp_Day",format:"png",maxZoom:7,opacity:.75}},ModisTerraSnowCover:{options:{variant:"MODIS_Terra_Snow_Cover",format:"png",maxZoom:8,opacity:.75}},ModisTerraAOD:{options:{variant:"MODIS_Terra_Aerosol",format:"png",maxZoom:6,opacity:.75}},ModisTerraChlorophyll:{options:{variant:"MODIS_Terra_Chlorophyll_A",format:"png",maxZoom:7,opacity:.75}}}},NLS:{url:"//nls-{s}.tileserver.com/nls/{z}/{x}/{y}.jpg",options:{attribution:'National Library of Scotland Historic Maps',bounds:[[49.6,-12],[61.7,3]],minZoom:1,maxZoom:18,subdomains:"0123"}}},a.tileLayer.provider=function(b,c){return new a.TileLayer.Provider(b,c)},a}),L.GeoSearch={},L.GeoSearch.Provider={},L.GeoSearch.Result=function(a,b,c,d,e){this.X=a,this.Y=b,this.Label=c,this.bounds=d,e&&(this.details=e)},L.Control.GeoSearch=L.Control.extend({options:{position:"topcenter",showMarker:!0,retainZoomLevel:!1,draggable:!1},_config:{country:"",searchLabel:"search for address ...",notFoundMessage:"Sorry, that address could not be found.",messageHideDelay:3e3,zoomLevel:18},initialize:function(a){L.Util.extend(this.options,a),L.Util.extend(this._config,a)},onAdd:function(a){for(var b=a._controlContainer,c=b.childNodes,d=!1,e=0,f=c.length;f>e;e++){var g=c[e].className;if(/leaflet-top/.test(g)&&/leaflet-center/.test(g)){d=!0;break}}if(!d){var h=document.createElement("div");h.className+="leaflet-top leaflet-center",b.appendChild(h),a._controlCorners.topcenter=h}this._map=a,this._container=L.DomUtil.create("div","leaflet-control-geosearch");var i=document.createElement("input");i.id="leaflet-control-geosearch-qry",i.type="text",i.placeholder=this._config.searchLabel,this._searchbox=i;var j=document.createElement("div");j.id="leaflet-control-geosearch-msg",j.className="leaflet-control-geosearch-msg",this._msgbox=j;var k=document.createElement("ul");return k.id="leaflet-control-geosearch-results",this._resultslist=k,this._msgbox.appendChild(this._resultslist),this._container.appendChild(this._searchbox),this._container.appendChild(this._msgbox),L.DomEvent.addListener(this._container,"click",L.DomEvent.stop).addListener(this._searchbox,"keypress",this._onKeyUp,this),L.DomEvent.disableClickPropagation(this._container),this._container},geosearch:function(a){var b=this;try{var c=this._config.provider;if("function"==typeof c.GetLocations){c.GetLocations(a,function(a){b._processResults(a)})}else{var d=c.GetServiceUrl(a);this.sendRequest(c,d)}}catch(e){this._printError(e)}},sendRequest:function(a,b){function c(a){a+="&callback=parseLocation";var b=document.createElement("script");b.id="getJsonP",b.src=a,b.async=!0,document.body.appendChild(b)}var d=this;if(window.parseLocation=function(b){var c=a.ParseJSON(b);d._processResults(c),document.body.removeChild(document.getElementById("getJsonP")),delete window.parseLocation},XMLHttpRequest){var e=new XMLHttpRequest;if("withCredentials"in e){var e=new XMLHttpRequest;e.onreadystatechange=function(){if(4==e.readyState)if(200==e.status){var f=JSON.parse(e.responseText),g=a.ParseJSON(f);d._processResults(g)}else 0==e.status||400==e.status?c(b):d._printError(e.responseText)},e.open("GET",b,!0),e.send()}else if(XDomainRequest){var f=new XDomainRequest;f.onerror=function(a){d._printError(a)},f.onload=function(){var b=JSON.parse(f.responseText),c=a.ParseJSON(b);d._processResults(c)},f.open("GET",b),f.send()}else c(b)}},_processResults:function(a){a.length>0?(this._map.fireEvent("geosearch_foundlocations",{Locations:a}),this._showLocation(a[0])):this._printError(this._config.notFoundMessage)},_showLocation:function(a){1==this.options.showMarker&&("undefined"==typeof this._positionMarker?this._positionMarker=L.marker([a.Y,a.X],{draggable:this.options.draggable}).addTo(this._map):this._positionMarker.setLatLng([a.Y,a.X])),!this.options.retainZoomLevel&&a.bounds&&a.bounds.isValid()?this._map.fitBounds(a.bounds):this._map.setView([a.Y,a.X],this._getZoomLevel(),!1),this._map.fireEvent("geosearch_showlocation",{Location:a,Marker:this._positionMarker})},_printError:function(a){var b=this._resultslist;b.innerHTML="
  • "+a+"
  • ",b.style.display="block",this._map.fireEvent("geosearch_error",{message:a}),setTimeout(function(){b.style.display="none"},3e3)},_onKeyUp:function(a){var b=27,c=13;a.keyCode===b?(this._searchbox.value="",this._map._container.focus()):a.keyCode===c&&(a.preventDefault(),a.stopPropagation(),this.geosearch(this._searchbox.value))},_getZoomLevel:function(){return this.options.retainZoomLevel?this._map.zoom:this._config.zoomLevel}}),L.GeoSearch.Provider.Esri=L.Class.extend({options:{},initialize:function(a){a=L.Util.setOptions(this,a)},GetServiceUrl:function(a){var b=L.Util.extend({text:a,f:"pjson"},this.options);return location.protocol+"//geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/find"+L.Util.getParamString(b)},ParseJSON:function(a){if(0==a.locations.length)return[];for(var b=[],c=0;c=e;)d=d.__parent;return this._currentShownBounds.contains(d.getLatLng())&&(this.options.animateAddingMarkers?this._animationAddLayer(a,d):this._animationAddLayerNonAnimated(a,d)),this},removeLayer:function(a){if(a instanceof L.LayerGroup){var b=[];for(var c in a._layers)b.push(a._layers[c]);return this.removeLayers(b)}return a.getLatLng?this._map?a.__parent?(this._unspiderfy&&(this._unspiderfy(),this._unspiderfyLayer(a)),this._removeLayer(a,!0),this._featureGroup.hasLayer(a)&&(this._featureGroup.removeLayer(a),a.setOpacity&&a.setOpacity(1)),this):this:(!this._arraySplice(this._needsClustering,a)&&this.hasLayer(a)&&this._needsRemoving.push(a),this):(this._nonPointGroup.removeLayer(a),this)},addLayers:function(a){var b,c,d,e=this._map,f=this._featureGroup,g=this._nonPointGroup;for(b=0,c=a.length;c>b;b++)if(d=a[b],d.getLatLng){if(!this.hasLayer(d))if(e){if(this._addLayer(d,this._maxZoom),d.__parent&&2===d.__parent.getChildCount()){var h=d.__parent.getAllChildMarkers(),i=h[0]===d?h[1]:h[0];f.removeLayer(i)}}else this._needsClustering.push(d)}else g.addLayer(d);return e&&(f.eachLayer(function(a){a instanceof L.MarkerCluster&&a._iconNeedsUpdate&&a._updateIcon()}),this._topClusterLevel._recursivelyAddChildrenToMap(null,this._zoom,this._currentShownBounds)),this},removeLayers:function(a){var b,c,d,e=this._featureGroup,f=this._nonPointGroup;if(!this._map){for(b=0,c=a.length;c>b;b++)d=a[b],this._arraySplice(this._needsClustering,d),f.removeLayer(d);return this}for(b=0,c=a.length;c>b;b++)d=a[b],d.__parent?(this._removeLayer(d,!0,!0),e.hasLayer(d)&&(e.removeLayer(d),d.setOpacity&&d.setOpacity(1))):f.removeLayer(d);return this._topClusterLevel._recursivelyAddChildrenToMap(null,this._zoom,this._currentShownBounds),e.eachLayer(function(a){a instanceof L.MarkerCluster&&a._updateIcon()}),this},clearLayers:function(){return this._map||(this._needsClustering=[],delete this._gridClusters,delete this._gridUnclustered),this._noanimationUnspiderfy&&this._noanimationUnspiderfy(),this._featureGroup.clearLayers(),this._nonPointGroup.clearLayers(),this.eachLayer(function(a){delete a.__parent}),this._map&&this._generateInitialClusters(),this},getBounds:function(){var a=new L.LatLngBounds;if(this._topClusterLevel)a.extend(this._topClusterLevel._bounds);else for(var b=this._needsClustering.length-1;b>=0;b--)a.extend(this._needsClustering[b].getLatLng());return a.extend(this._nonPointGroup.getBounds()),a},eachLayer:function(a,b){var c,d=this._needsClustering.slice();for(this._topClusterLevel&&this._topClusterLevel.getAllChildMarkers(d),c=d.length-1;c>=0;c--)a.call(b,d[c]);this._nonPointGroup.eachLayer(a,b)},getLayers:function(){var a=[];return this.eachLayer(function(b){a.push(b)}),a},getLayer:function(a){var b=null;return this.eachLayer(function(c){L.stamp(c)===a&&(b=c)}),b},hasLayer:function(a){if(!a)return!1;var b,c=this._needsClustering;for(b=c.length-1;b>=0;b--)if(c[b]===a)return!0;for(c=this._needsRemoving,b=c.length-1;b>=0;b--)if(c[b]===a)return!1;return!(!a.__parent||a.__parent._group!==this)||this._nonPointGroup.hasLayer(a)},zoomToShowLayer:function(a,b){var c=function(){if((a._icon||a.__parent._icon)&&!this._inZoomAnimation)if(this._map.off("moveend",c,this),this.off("animationend",c,this),a._icon)b();else if(a.__parent._icon){var d=function(){this.off("spiderfied",d,this),b()};this.on("spiderfied",d,this),a.__parent.spiderfy()}};a._icon&&this._map.getBounds().contains(a.getLatLng())?b():a.__parent._zoomb;b++)d=this._needsRemoving[b],this._removeLayer(d,!0);for(this._needsRemoving=[],b=0,c=this._needsClustering.length;c>b;b++)d=this._needsClustering[b],d.getLatLng?d.__parent||this._addLayer(d,this._maxZoom):this._featureGroup.addLayer(d);this._needsClustering=[],this._map.on("zoomend",this._zoomEnd,this),this._map.on("moveend",this._moveEnd,this),this._spiderfierOnAdd&&this._spiderfierOnAdd(),this._bindEvents(),this._zoom=this._map.getZoom(),this._currentShownBounds=this._getExpandedVisibleBounds(),this._topClusterLevel._recursivelyAddChildrenToMap(null,this._zoom,this._currentShownBounds)},onRemove:function(a){a.off("zoomend",this._zoomEnd,this),a.off("moveend",this._moveEnd,this),this._unbindEvents(),this._map._mapPane.className=this._map._mapPane.className.replace(" leaflet-cluster-anim",""),this._spiderfierOnRemove&&this._spiderfierOnRemove(),this._hideCoverage(),this._featureGroup.onRemove(a),this._nonPointGroup.onRemove(a),this._featureGroup.clearLayers(),this._map=null},getVisibleParent:function(a){for(var b=a;b&&!b._icon;)b=b.__parent;return b||null},_arraySplice:function(a,b){for(var c=a.length-1;c>=0;c--)if(a[c]===b)return a.splice(c,1),!0},_removeLayer:function(a,b,c){var d=this._gridClusters,e=this._gridUnclustered,f=this._featureGroup,g=this._map;if(b)for(var h=this._maxZoom;h>=0&&e[h].removeObject(a,g.project(a.getLatLng(),h));h--);var i,j=a.__parent,k=j._markers;for(this._arraySplice(k,a);j&&(j._childCount--,!(j._zoom<0));)b&&j._childCount<=1?(i=j._markers[0]===a?j._markers[1]:j._markers[0],d[j._zoom].removeObject(j,g.project(j._cLatLng,j._zoom)),e[j._zoom].addObject(i,g.project(i.getLatLng(),j._zoom)),this._arraySplice(j.__parent._childClusters,j),j.__parent._markers.push(i),i.__parent=j.__parent,j._icon&&(f.removeLayer(j),c||f.addLayer(i))):(j._recalculateBounds(),c&&j._icon||j._updateIcon()),j=j.__parent;delete a.__parent},_isOrIsParent:function(a,b){for(;b;){if(a===b)return!0;b=b.parentNode}return!1},_propagateEvent:function(a){if(a.layer instanceof L.MarkerCluster){if(a.originalEvent&&this._isOrIsParent(a.layer._icon,a.originalEvent.relatedTarget))return;a.type="cluster"+a.type}this.fire(a.type,a)},_defaultIconCreateFunction:function(a){var b=a.getChildCount(),c=" marker-cluster-";return c+=10>b?"small":100>b?"medium":"large",new L.DivIcon({html:"
    "+b+"
    ",className:"marker-cluster"+c,iconSize:new L.Point(40,40)})},_bindEvents:function(){var a=this._map,b=this.options.spiderfyOnMaxZoom,c=this.options.showCoverageOnHover,d=this.options.zoomToBoundsOnClick;(b||d)&&this.on("clusterclick",this._zoomOrSpiderfy,this),c&&(this.on("clustermouseover",this._showCoverage,this),this.on("clustermouseout",this._hideCoverage,this),a.on("zoomend",this._hideCoverage,this))},_zoomOrSpiderfy:function(a){var b=this._map;b.getMaxZoom()===b.getZoom()?this.options.spiderfyOnMaxZoom&&a.layer.spiderfy():this.options.zoomToBoundsOnClick&&a.layer.zoomToBounds(),a.originalEvent&&13===a.originalEvent.keyCode&&b._container.focus()},_showCoverage:function(a){var b=this._map;this._inZoomAnimation||(this._shownPolygon&&b.removeLayer(this._shownPolygon),a.layer.getChildCount()>2&&a.layer!==this._spiderfied&&(this._shownPolygon=new L.Polygon(a.layer.getConvexHull(),this.options.polygonOptions),b.addLayer(this._shownPolygon)))},_hideCoverage:function(){this._shownPolygon&&(this._map.removeLayer(this._shownPolygon),this._shownPolygon=null)},_unbindEvents:function(){var a=this.options.spiderfyOnMaxZoom,b=this.options.showCoverageOnHover,c=this.options.zoomToBoundsOnClick,d=this._map;(a||c)&&this.off("clusterclick",this._zoomOrSpiderfy,this),b&&(this.off("clustermouseover",this._showCoverage,this),this.off("clustermouseout",this._hideCoverage,this),d.off("zoomend",this._hideCoverage,this))},_zoomEnd:function(){this._map&&(this._mergeSplitClusters(),this._zoom=this._map._zoom,this._currentShownBounds=this._getExpandedVisibleBounds())},_moveEnd:function(){if(!this._inZoomAnimation){var a=this._getExpandedVisibleBounds();this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,this._zoom,a),this._topClusterLevel._recursivelyAddChildrenToMap(null,this._map._zoom,a),this._currentShownBounds=a}},_generateInitialClusters:function(){var a=this._map.getMaxZoom(),b=this.options.maxClusterRadius;this.options.disableClusteringAtZoom&&(a=this.options.disableClusteringAtZoom-1),this._maxZoom=a,this._gridClusters={},this._gridUnclustered={};for(var c=a;c>=0;c--)this._gridClusters[c]=new L.DistanceGrid(b),this._gridUnclustered[c]=new L.DistanceGrid(b);this._topClusterLevel=new L.MarkerCluster(this,-1)},_addLayer:function(a,b){var c,d,e=this._gridClusters,f=this._gridUnclustered;for(this.options.singleMarkerMode&&(a.options.icon=this.options.iconCreateFunction({getChildCount:function(){return 1},getAllChildMarkers:function(){return[a]}}));b>=0;b--){c=this._map.project(a.getLatLng(),b);var g=e[b].getNearObject(c);if(g)return g._addChild(a),void(a.__parent=g);if(g=f[b].getNearObject(c)){var h=g.__parent;h&&this._removeLayer(g,!1);var i=new L.MarkerCluster(this,b,g,a);e[b].addObject(i,this._map.project(i._cLatLng,b)),g.__parent=i,a.__parent=i;var j=i;for(d=b-1;d>h._zoom;d--)j=new L.MarkerCluster(this,d,j),e[d].addObject(j,this._map.project(g.getLatLng(),d));for(h._addChild(j),d=b;d>=0&&f[d].removeObject(g,this._map.project(g.getLatLng(),d));d--);return}f[b].addObject(a,c)}this._topClusterLevel._addChild(a),a.__parent=this._topClusterLevel},_enqueue:function(a){this._queue.push(a),this._queueTimeout||(this._queueTimeout=setTimeout(L.bind(this._processQueue,this),300))},_processQueue:function(){for(var a=0;athis._map._zoom?(this._animationStart(),this._animationZoomOut(this._zoom,this._map._zoom)):this._moveEnd()},_getExpandedVisibleBounds:function(){if(!this.options.removeOutsideVisibleBounds)return this.getBounds();var a=this._map,b=a.getBounds(),c=b._southWest,d=b._northEast,e=L.Browser.mobile?0:Math.abs(c.lat-d.lat),f=L.Browser.mobile?0:Math.abs(c.lng-d.lng);return new L.LatLngBounds(new L.LatLng(c.lat-e,c.lng-f,!0),new L.LatLng(d.lat+e,d.lng+f,!0))},_animationAddLayerNonAnimated:function(a,b){if(b===a)this._featureGroup.addLayer(a);else if(2===b._childCount){b._addToMap();var c=b.getAllChildMarkers();this._featureGroup.removeLayer(c[0]),this._featureGroup.removeLayer(c[1])}else b._updateIcon()}}),L.MarkerClusterGroup.include(L.DomUtil.TRANSITION?{_animationStart:function(){this._map._mapPane.className+=" leaflet-cluster-anim",this._inZoomAnimation++},_animationEnd:function(){this._map&&(this._map._mapPane.className=this._map._mapPane.className.replace(" leaflet-cluster-anim","")),this._inZoomAnimation--,this.fire("animationend")},_animationZoomIn:function(a,b){var c,d=this._getExpandedVisibleBounds(),e=this._featureGroup;this._topClusterLevel._recursively(d,a,0,function(f){var g,h=f._latlng,i=f._markers;for(d.contains(h)||(h=null),f._isSingleParent()&&a+1===b?(e.removeLayer(f),f._recursivelyAddChildrenToMap(null,b,d)):(f.setOpacity(0),f._recursivelyAddChildrenToMap(h,b,d)),c=i.length-1;c>=0;c--)g=i[c],d.contains(g._latlng)||e.removeLayer(g)}),this._forceLayout(),this._topClusterLevel._recursivelyBecomeVisible(d,b),e.eachLayer(function(a){a instanceof L.MarkerCluster||!a._icon||a.setOpacity(1)}),this._topClusterLevel._recursively(d,a,b,function(a){a._recursivelyRestoreChildPositions(b)}),this._enqueue(function(){this._topClusterLevel._recursively(d,a,0,function(a){e.removeLayer(a),a.setOpacity(1)}),this._animationEnd()})},_animationZoomOut:function(a,b){this._animationZoomOutSingle(this._topClusterLevel,a-1,b),this._topClusterLevel._recursivelyAddChildrenToMap(null,b,this._getExpandedVisibleBounds()),this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,a,this._getExpandedVisibleBounds())},_animationZoomOutSingle:function(a,b,c){var d=this._getExpandedVisibleBounds();a._recursivelyAnimateChildrenInAndAddSelfToMap(d,b+1,c);var e=this;this._forceLayout(),a._recursivelyBecomeVisible(d,c),this._enqueue(function(){if(1===a._childCount){var f=a._markers[0];f.setLatLng(f.getLatLng()),f.setOpacity(1)}else a._recursively(d,c,0,function(a){a._recursivelyRemoveChildrenFromMap(d,b+1)});e._animationEnd()})},_animationAddLayer:function(a,b){var c=this,d=this._featureGroup;d.addLayer(a),b!==a&&(b._childCount>2?(b._updateIcon(),this._forceLayout(),this._animationStart(),a._setPos(this._map.latLngToLayerPoint(b.getLatLng())),a.setOpacity(0),this._enqueue(function(){d.removeLayer(a),a.setOpacity(1),c._animationEnd()})):(this._forceLayout(),c._animationStart(),c._animationZoomOutSingle(b,this._map.getMaxZoom(),this._map.getZoom())))},_forceLayout:function(){L.Util.falseFn(b.body.offsetWidth)}}:{_animationStart:function(){},_animationZoomIn:function(a,b){this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,a),this._topClusterLevel._recursivelyAddChildrenToMap(null,b,this._getExpandedVisibleBounds())},_animationZoomOut:function(a,b){this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,a),this._topClusterLevel._recursivelyAddChildrenToMap(null,b,this._getExpandedVisibleBounds()); -},_animationAddLayer:function(a,b){this._animationAddLayerNonAnimated(a,b)}}),L.markerClusterGroup=function(a){return new L.MarkerClusterGroup(a)},L.MarkerCluster=L.Marker.extend({initialize:function(a,b,c,d){L.Marker.prototype.initialize.call(this,c?c._cLatLng||c.getLatLng():new L.LatLng(0,0),{icon:this}),this._group=a,this._zoom=b,this._markers=[],this._childClusters=[],this._childCount=0,this._iconNeedsUpdate=!0,this._bounds=new L.LatLngBounds,c&&this._addChild(c),d&&this._addChild(d)},getAllChildMarkers:function(a){a=a||[];for(var b=this._childClusters.length-1;b>=0;b--)this._childClusters[b].getAllChildMarkers(a);for(var c=this._markers.length-1;c>=0;c--)a.push(this._markers[c]);return a},getChildCount:function(){return this._childCount},zoomToBounds:function(){for(var a,b=this._childClusters.slice(),c=this._group._map,d=c.getBoundsZoom(this._bounds),e=this._zoom+1,f=c.getZoom();b.length>0&&d>e;){e++;var g=[];for(a=0;ae?this._group._map.setView(this._latlng,e):f>=d?this._group._map.setView(this._latlng,f+1):this._group._map.fitBounds(this._bounds)},getBounds:function(){var a=new L.LatLngBounds;return a.extend(this._bounds),a},_updateIcon:function(){this._iconNeedsUpdate=!0,this._icon&&this.setIcon(this)},createIcon:function(){return this._iconNeedsUpdate&&(this._iconObj=this._group.options.iconCreateFunction(this),this._iconNeedsUpdate=!1),this._iconObj.createIcon()},createShadow:function(){return this._iconObj.createShadow()},_addChild:function(a,b){this._iconNeedsUpdate=!0,this._expandBounds(a),a instanceof L.MarkerCluster?(b||(this._childClusters.push(a),a.__parent=this),this._childCount+=a._childCount):(b||this._markers.push(a),this._childCount++),this.__parent&&this.__parent._addChild(a,!0)},_expandBounds:function(a){var b,c=a._wLatLng||a._latlng;a instanceof L.MarkerCluster?(this._bounds.extend(a._bounds),b=a._childCount):(this._bounds.extend(c),b=1),this._cLatLng||(this._cLatLng=a._cLatLng||c);var d=this._childCount+b;this._wLatLng?(this._wLatLng.lat=(c.lat*b+this._wLatLng.lat*this._childCount)/d,this._wLatLng.lng=(c.lng*b+this._wLatLng.lng*this._childCount)/d):this._latlng=this._wLatLng=new L.LatLng(c.lat,c.lng)},_addToMap:function(a){a&&(this._backupLatlng=this._latlng,this.setLatLng(a)),this._group._featureGroup.addLayer(this)},_recursivelyAnimateChildrenIn:function(a,b,c){this._recursively(a,0,c-1,function(a){var c,d,e=a._markers;for(c=e.length-1;c>=0;c--)d=e[c],d._icon&&(d._setPos(b),d.setOpacity(0))},function(a){var c,d,e=a._childClusters;for(c=e.length-1;c>=0;c--)d=e[c],d._icon&&(d._setPos(b),d.setOpacity(0))})},_recursivelyAnimateChildrenInAndAddSelfToMap:function(a,b,c){this._recursively(a,c,0,function(d){d._recursivelyAnimateChildrenIn(a,d._group._map.latLngToLayerPoint(d.getLatLng()).round(),b),d._isSingleParent()&&b-1===c?(d.setOpacity(1),d._recursivelyRemoveChildrenFromMap(a,b)):d.setOpacity(0),d._addToMap()})},_recursivelyBecomeVisible:function(a,b){this._recursively(a,0,b,null,function(a){a.setOpacity(1)})},_recursivelyAddChildrenToMap:function(a,b,c){this._recursively(c,-1,b,function(d){if(b!==d._zoom)for(var e=d._markers.length-1;e>=0;e--){var f=d._markers[e];c.contains(f._latlng)&&(a&&(f._backupLatlng=f.getLatLng(),f.setLatLng(a),f.setOpacity&&f.setOpacity(0)),d._group._featureGroup.addLayer(f))}},function(b){b._addToMap(a)})},_recursivelyRestoreChildPositions:function(a){for(var b=this._markers.length-1;b>=0;b--){var c=this._markers[b];c._backupLatlng&&(c.setLatLng(c._backupLatlng),delete c._backupLatlng)}if(a-1===this._zoom)for(var d=this._childClusters.length-1;d>=0;d--)this._childClusters[d]._restorePosition();else for(var e=this._childClusters.length-1;e>=0;e--)this._childClusters[e]._recursivelyRestoreChildPositions(a)},_restorePosition:function(){this._backupLatlng&&(this.setLatLng(this._backupLatlng),delete this._backupLatlng)},_recursivelyRemoveChildrenFromMap:function(a,b,c){var d,e;this._recursively(a,-1,b-1,function(a){for(e=a._markers.length-1;e>=0;e--)d=a._markers[e],c&&c.contains(d._latlng)||(a._group._featureGroup.removeLayer(d),d.setOpacity&&d.setOpacity(1))},function(a){for(e=a._childClusters.length-1;e>=0;e--)d=a._childClusters[e],c&&c.contains(d._latlng)||(a._group._featureGroup.removeLayer(d),d.setOpacity&&d.setOpacity(1))})},_recursively:function(a,b,c,d,e){var f,g,h=this._childClusters,i=this._zoom;if(b>i)for(f=h.length-1;f>=0;f--)g=h[f],a.intersects(g._bounds)&&g._recursively(a,b,c,d,e);else if(d&&d(this),e&&this._zoom===c&&e(this),c>i)for(f=h.length-1;f>=0;f--)g=h[f],a.intersects(g._bounds)&&g._recursively(a,b,c,d,e)},_recalculateBounds:function(){var a,b=this._markers,c=this._childClusters;for(this._bounds=new L.LatLngBounds,delete this._wLatLng,a=b.length-1;a>=0;a--)this._expandBounds(b[a]);for(a=c.length-1;a>=0;a--)this._expandBounds(c[a])},_isSingleParent:function(){return this._childClusters.length>0&&this._childClusters[0]._childCount===this._childCount}}),L.DistanceGrid=function(a){this._cellSize=a,this._sqCellSize=a*a,this._grid={},this._objectPoint={}},L.DistanceGrid.prototype={addObject:function(a,b){var c=this._getCoord(b.x),d=this._getCoord(b.y),e=this._grid,f=e[d]=e[d]||{},g=f[c]=f[c]||[],h=L.Util.stamp(a);this._objectPoint[h]=b,g.push(a)},updateObject:function(a,b){this.removeObject(a),this.addObject(a,b)},removeObject:function(a,b){var c,d,e=this._getCoord(b.x),f=this._getCoord(b.y),g=this._grid,h=g[f]=g[f]||{},i=h[e]=h[e]||[];for(delete this._objectPoint[L.Util.stamp(a)],c=0,d=i.length;d>c;c++)if(i[c]===a)return i.splice(c,1),1===d&&delete h[e],!0},eachObject:function(a,b){var c,d,e,f,g,h,i,j=this._grid;for(c in j){g=j[c];for(d in g)for(h=g[d],e=0,f=h.length;f>e;e++)i=a.call(b,h[e]),i&&(e--,f--)}},getNearObject:function(a){var b,c,d,e,f,g,h,i,j=this._getCoord(a.x),k=this._getCoord(a.y),l=this._objectPoint,m=this._sqCellSize,n=null;for(b=k-1;k+1>=b;b++)if(e=this._grid[b])for(c=j-1;j+1>=c;c++)if(f=e[c])for(d=0,g=f.length;g>d;d++)h=f[d],i=this._sqDist(l[L.Util.stamp(h)],a),m>i&&(m=i,n=h);return n},_getCoord:function(a){return Math.floor(a/this._cellSize)},_sqDist:function(a,b){var c=b.x-a.x,d=b.y-a.y;return c*c+d*d}},function(){L.QuickHull={getDistant:function(a,b){var c=b[1].lat-b[0].lat,d=b[0].lng-b[1].lng;return d*(a.lat-b[0].lat)+c*(a.lng-b[0].lng)},findMostDistantPointFromBaseLine:function(a,b){var c,d,e,f=0,g=null,h=[];for(c=b.length-1;c>=0;c--)d=b[c],e=this.getDistant(d,a),e>0&&(h.push(d),e>f&&(f=e,g=d));return{maxPoint:g,newPoints:h}},buildConvexHull:function(a,b){var c=[],d=this.findMostDistantPointFromBaseLine(a,b);return d.maxPoint?(c=c.concat(this.buildConvexHull([a[0],d.maxPoint],d.newPoints)),c=c.concat(this.buildConvexHull([d.maxPoint,a[1]],d.newPoints))):[a[0]]},getConvexHull:function(a){var b,c=!1,d=!1,e=null,f=null;for(b=a.length-1;b>=0;b--){var g=a[b];(c===!1||g.lat>c)&&(e=g,c=g.lat),(d===!1||g.lat=0;b--)a=c[b].getLatLng(),d.push(a);return L.QuickHull.getConvexHull(d)}}),L.MarkerCluster.include({_2PI:2*Math.PI,_circleFootSeparation:25,_circleStartAngle:Math.PI/6,_spiralFootSeparation:28,_spiralLengthStart:11,_spiralLengthFactor:5,_circleSpiralSwitchover:9,spiderfy:function(){if(this._group._spiderfied!==this&&!this._group._inZoomAnimation){var a,b=this.getAllChildMarkers(),c=this._group,d=c._map,e=d.latLngToLayerPoint(this._latlng);this._group._unspiderfy(),this._group._spiderfied=this,b.length>=this._circleSpiralSwitchover?a=this._generatePointsSpiral(b.length,e):(e.y+=10,a=this._generatePointsCircle(b.length,e)),this._animationSpiderfy(b,a)}},unspiderfy:function(a){this._group._inZoomAnimation||(this._animationUnspiderfy(a),this._group._spiderfied=null)},_generatePointsCircle:function(a,b){var c,d,e=this._group.options.spiderfyDistanceMultiplier*this._circleFootSeparation*(2+a),f=e/this._2PI,g=this._2PI/a,h=[];for(h.length=a,c=a-1;c>=0;c--)d=this._circleStartAngle+c*g,h[c]=new L.Point(b.x+f*Math.cos(d),b.y+f*Math.sin(d))._round();return h},_generatePointsSpiral:function(a,b){var c,d=this._group.options.spiderfyDistanceMultiplier*this._spiralLengthStart,e=this._group.options.spiderfyDistanceMultiplier*this._spiralFootSeparation,f=this._group.options.spiderfyDistanceMultiplier*this._spiralLengthFactor,g=0,h=[];for(h.length=a,c=a-1;c>=0;c--)g+=e/d+5e-4*c,h[c]=new L.Point(b.x+d*Math.cos(g),b.y+d*Math.sin(g))._round(),d+=this._2PI*f/g;return h},_noanimationUnspiderfy:function(){var a,b,c=this._group,d=c._map,e=c._featureGroup,f=this.getAllChildMarkers();for(this.setOpacity(1),b=f.length-1;b>=0;b--)a=f[b],e.removeLayer(a),a._preSpiderfyLatlng&&(a.setLatLng(a._preSpiderfyLatlng),delete a._preSpiderfyLatlng),a.setZIndexOffset&&a.setZIndexOffset(0),a._spiderLeg&&(d.removeLayer(a._spiderLeg),delete a._spiderLeg);c._spiderfied=null}}),L.MarkerCluster.include(L.DomUtil.TRANSITION?{SVG_ANIMATION:function(){return b.createElementNS("http://www.w3.org/2000/svg","animate").toString().indexOf("SVGAnimate")>-1}(),_animationSpiderfy:function(a,c){var d,e,f,g,h=this,i=this._group,j=i._map,k=i._featureGroup,l=j.latLngToLayerPoint(this._latlng);for(d=a.length-1;d>=0;d--)e=a[d],e.setOpacity?(e.setZIndexOffset(1e6),e.setOpacity(0),k.addLayer(e),e._setPos(l)):k.addLayer(e);i._forceLayout(),i._animationStart();var m=L.Path.SVG?0:.3,n=L.Path.SVG_NS;for(d=a.length-1;d>=0;d--)if(g=j.layerPointToLatLng(c[d]),e=a[d],e._preSpiderfyLatlng=e._latlng,e.setLatLng(g),e.setOpacity&&e.setOpacity(1),f=new L.Polyline([h._latlng,g],{weight:1.5,color:"#222",opacity:m}),j.addLayer(f),e._spiderLeg=f,L.Path.SVG&&this.SVG_ANIMATION){var o=f._path.getTotalLength();f._path.setAttribute("stroke-dasharray",o+","+o);var p=b.createElementNS(n,"animate");p.setAttribute("attributeName","stroke-dashoffset"),p.setAttribute("begin","indefinite"),p.setAttribute("from",o),p.setAttribute("to",0),p.setAttribute("dur",.25),f._path.appendChild(p),p.beginElement(),p=b.createElementNS(n,"animate"),p.setAttribute("attributeName","stroke-opacity"),p.setAttribute("attributeName","stroke-opacity"),p.setAttribute("begin","indefinite"),p.setAttribute("from",0),p.setAttribute("to",.5),p.setAttribute("dur",.25),f._path.appendChild(p),p.beginElement()}if(h.setOpacity(.3),L.Path.SVG)for(this._group._forceLayout(),d=a.length-1;d>=0;d--)e=a[d]._spiderLeg,e.options.opacity=.5,e._path.setAttribute("stroke-opacity",.5);setTimeout(function(){i._animationEnd(),i.fire("spiderfied")},200)},_animationUnspiderfy:function(a){var b,c,d,e=this._group,f=e._map,g=e._featureGroup,h=a?f._latLngToNewLayerPoint(this._latlng,a.zoom,a.center):f.latLngToLayerPoint(this._latlng),i=this.getAllChildMarkers(),j=L.Path.SVG&&this.SVG_ANIMATION;for(e._animationStart(),this.setOpacity(1),c=i.length-1;c>=0;c--)b=i[c],b._preSpiderfyLatlng&&(b.setLatLng(b._preSpiderfyLatlng),delete b._preSpiderfyLatlng,b.setOpacity?(b._setPos(h),b.setOpacity(0)):g.removeLayer(b),j&&(d=b._spiderLeg._path.childNodes[0],d.setAttribute("to",d.getAttribute("from")),d.setAttribute("from",0),d.beginElement(),d=b._spiderLeg._path.childNodes[1],d.setAttribute("from",.5),d.setAttribute("to",0),d.setAttribute("stroke-opacity",0),d.beginElement(),b._spiderLeg._path.setAttribute("stroke-opacity",0)));setTimeout(function(){var a=0;for(c=i.length-1;c>=0;c--)b=i[c],b._spiderLeg&&a++;for(c=i.length-1;c>=0;c--)b=i[c],b._spiderLeg&&(b.setOpacity&&(b.setOpacity(1),b.setZIndexOffset(0)),a>1&&g.removeLayer(b),f.removeLayer(b._spiderLeg),delete b._spiderLeg);e._animationEnd()},200)}}:{_animationSpiderfy:function(a,b){var c,d,e,f,g=this._group,h=g._map,i=g._featureGroup;for(c=a.length-1;c>=0;c--)f=h.layerPointToLatLng(b[c]),d=a[c],d._preSpiderfyLatlng=d._latlng,d.setLatLng(f),d.setZIndexOffset&&d.setZIndexOffset(1e6),i.addLayer(d),e=new L.Polyline([this._latlng,f],{weight:1.5,color:"#222"}),h.addLayer(e),d._spiderLeg=e;this.setOpacity(.3),g.fire("spiderfied")},_animationUnspiderfy:function(){this._noanimationUnspiderfy()}}),L.MarkerClusterGroup.include({_spiderfied:null,_spiderfierOnAdd:function(){this._map.on("click",this._unspiderfyWrapper,this),this._map.options.zoomAnimation&&this._map.on("zoomstart",this._unspiderfyZoomStart,this),this._map.on("zoomend",this._noanimationUnspiderfy,this),L.Path.SVG&&!L.Browser.touch&&this._map._initPathRoot()},_spiderfierOnRemove:function(){this._map.off("click",this._unspiderfyWrapper,this),this._map.off("zoomstart",this._unspiderfyZoomStart,this),this._map.off("zoomanim",this._unspiderfyZoomAnim,this),this._unspiderfy()},_unspiderfyZoomStart:function(){this._map&&this._map.on("zoomanim",this._unspiderfyZoomAnim,this)},_unspiderfyZoomAnim:function(a){L.DomUtil.hasClass(this._map._mapPane,"leaflet-touching")||(this._map.off("zoomanim",this._unspiderfyZoomAnim,this),this._unspiderfy(a))},_unspiderfyWrapper:function(){this._unspiderfy()},_unspiderfy:function(a){this._spiderfied&&this._spiderfied.unspiderfy(a)},_noanimationUnspiderfy:function(){this._spiderfied&&this._spiderfied._noanimationUnspiderfy()},_unspiderfyLayer:function(a){a._spiderLeg&&(this._featureGroup.removeLayer(a),a.setOpacity(1),a.setZIndexOffset(0),this._map.removeLayer(a._spiderLeg),delete a._spiderLeg)}})}(window,document),function(a,b,c){"use strict";L.AwesomeMarkers={},L.AwesomeMarkers.version="2.0.1",L.AwesomeMarkers.Icon=L.Icon.extend({options:{iconSize:[35,45],iconAnchor:[17,42],popupAnchor:[1,-32],shadowAnchor:[10,12],shadowSize:[36,16],className:"awesome-marker",prefix:"glyphicon",spinClass:"fa-spin",extraClasses:"",icon:"home",markerColor:"blue",iconColor:"white"},initialize:function(a){a=L.Util.setOptions(this,a)},createIcon:function(){var a=b.createElement("div"),c=this.options;return c.icon&&(a.innerHTML=this._createInner()),c.bgPos&&(a.style.backgroundPosition=-c.bgPos.x+"px "+-c.bgPos.y+"px"),this._setIconStyles(a,"icon-"+c.markerColor),a},_createInner:function(){var a,b="",c="",d="",e=this.options;return a=e.icon.slice(0,e.prefix.length+1)===e.prefix+"-"?e.icon:e.prefix+"-"+e.icon,e.spin&&"string"==typeof e.spinClass&&(b=e.spinClass),e.iconColor&&("white"===e.iconColor||"black"===e.iconColor?c="icon-"+e.iconColor:d="style='color: "+e.iconColor+"' "),""},_setIconStyles:function(a,b){var c,d=this.options,e=L.point(d["shadow"===b?"shadowSize":"iconSize"]);c="shadow"===b?L.point(d.shadowAnchor||d.iconAnchor):L.point(d.iconAnchor),!c&&e&&(c=e.divideBy(2,!0)),a.className="awesome-marker-"+b+" "+d.className,c&&(a.style.marginLeft=-c.x+"px",a.style.marginTop=-c.y+"px"),e&&(a.style.width=e.x+"px",a.style.height=e.y+"px")},createShadow:function(){var a=b.createElement("div");return this._setIconStyles(a,"shadow"),a}}),L.AwesomeMarkers.icon=function(a){return new L.AwesomeMarkers.Icon(a)}}(this,document); +!function(a,b,c){var d=a.L,e={};e.version="0.7.7","object"==typeof module&&"object"==typeof module.exports?module.exports=e:"function"==typeof define&&define.amd&&define(e),e.noConflict=function(){return a.L=d,this},a.L=e,e.Util={extend:function(a){var b,c,d,e,f=Array.prototype.slice.call(arguments,1);for(c=0,d=f.length;c2?Array.prototype.slice.call(arguments,2):null;return function(){return a.apply(b,c||arguments)}},stamp:function(){var a=0,b="_leaflet_id";return function(c){return c[b]=c[b]||++a,c[b]}}(),invokeEach:function(a,b,c){var d,e;if("object"==typeof a){e=Array.prototype.slice.call(arguments,3);for(d in a)b.apply(c,[d,a[d]].concat(e));return!0}return!1},limitExecByInterval:function(a,b,c){var d,e;return function f(){var g=arguments;return d?void(e=!0):(d=!0,setTimeout(function(){d=!1,e&&(f.apply(c,g),e=!1)},b),void a.apply(c,g))}},falseFn:function(){return!1},formatNum:function(a,b){var c=Math.pow(10,b||5);return Math.round(a*c)/c},trim:function(a){return a.trim?a.trim():a.replace(/^\s+|\s+$/g,"")},splitWords:function(a){return e.Util.trim(a).split(/\s+/)},setOptions:function(a,b){return a.options=e.extend({},a.options,b),a.options},getParamString:function(a,b,c){var d=[];for(var e in a)d.push(encodeURIComponent(c?e.toUpperCase():e)+"="+encodeURIComponent(a[e]));return(b&&b.indexOf("?")!==-1?"&":"?")+d.join("&")},template:function(a,b){return a.replace(/\{ *([\w_]+) *\}/g,function(a,d){var e=b[d];if(e===c)throw new Error("No value provided for variable "+a);return"function"==typeof e&&(e=e(b)),e})},isArray:Array.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)},emptyImageUrl:"data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs="},function(){function b(b){var c,d,e=["webkit","moz","o","ms"];for(c=0;c0||a+"_idx"in b&&b[a+"_idx_len"]>0)},removeEventListener:function(a,b,c){if(!this[f])return this;if(!a)return this.clearAllEventListeners();if(e.Util.invokeEach(a,this.removeEventListener,this,b,c))return this;var d,g,h,i,j,k,l,m,n,o=this[f],p=c&&c!==this&&e.stamp(c);for(a=e.Util.splitWords(a),d=0,g=a.length;d=0;j--)i[j].action!==b||c&&i[j].context!==c||(n=i.splice(j,1),n[0].action=e.Util.falseFn);c&&m&&0===i.length&&(delete m[p],o[l]--)}}else delete o[h],delete o[k],delete o[l];return this},clearAllEventListeners:function(){return delete this[f],this},fireEvent:function(a,b){if(!this.hasEventListeners(a))return this;var c,d,g,h,i,j=e.Util.extend({},b,{type:a,target:this}),k=this[f];if(k[a])for(c=k[a].slice(),d=0,g=c.length;d1||"matchMedia"in a&&a.matchMedia("(min-resolution:144dpi)")&&a.matchMedia("(min-resolution:144dpi)").matches,r=b.documentElement,s=d&&"transition"in r.style,t="WebKitCSSMatrix"in a&&"m11"in new a.WebKitCSSMatrix&&!l,u="MozPerspective"in r.style,v="OTransition"in r.style,w=!a.L_DISABLE_3D&&(s||t||u||v)&&!j,x=!a.L_NO_TOUCH&&!j&&(p||"ontouchstart"in a||a.DocumentTouch&&b instanceof a.DocumentTouch);e.Browser={ie:d,ielt9:f,webkit:h,gecko:m&&!h&&!a.opera&&!d,android:k,android23:l,chrome:i,ie3d:s,webkit3d:t,gecko3d:u,opera3d:v,any3d:w,mobile:n,mobileWebkit:n&&h,mobileWebkit3d:n&&t,mobileOpera:n&&a.opera,touch:x,msPointer:o,pointer:p,retina:q}}(),e.Point=function(a,b,c){this.x=c?Math.round(a):a,this.y=c?Math.round(b):b},e.Point.prototype={clone:function(){return new e.Point(this.x,this.y)},add:function(a){return this.clone()._add(e.point(a))},_add:function(a){return this.x+=a.x,this.y+=a.y,this},subtract:function(a){return this.clone()._subtract(e.point(a))},_subtract:function(a){return this.x-=a.x,this.y-=a.y,this},divideBy:function(a){return this.clone()._divideBy(a)},_divideBy:function(a){return this.x/=a,this.y/=a,this},multiplyBy:function(a){return this.clone()._multiplyBy(a)},_multiplyBy:function(a){return this.x*=a,this.y*=a,this},round:function(){return this.clone()._round()},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},floor:function(){return this.clone()._floor()},_floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},distanceTo:function(a){a=e.point(a);var b=a.x-this.x,c=a.y-this.y;return Math.sqrt(b*b+c*c)},equals:function(a){return a=e.point(a),a.x===this.x&&a.y===this.y},contains:function(a){return a=e.point(a),Math.abs(a.x)<=Math.abs(this.x)&&Math.abs(a.y)<=Math.abs(this.y)},toString:function(){return"Point("+e.Util.formatNum(this.x)+", "+e.Util.formatNum(this.y)+")"}},e.point=function(a,b,d){return a instanceof e.Point?a:e.Util.isArray(a)?new e.Point(a[0],a[1]):a===c||null===a?a:new e.Point(a,b,d)},e.Bounds=function(a,b){if(a)for(var c=b?[a,b]:a,d=0,e=c.length;d=this.min.x&&c.x<=this.max.x&&b.y>=this.min.y&&c.y<=this.max.y},intersects:function(a){a=e.bounds(a);var b=this.min,c=this.max,d=a.min,f=a.max,g=f.x>=b.x&&d.x<=c.x,h=f.y>=b.y&&d.y<=c.y;return g&&h},isValid:function(){return!(!this.min||!this.max)}},e.bounds=function(a,b){return!a||a instanceof e.Bounds?a:new e.Bounds(a,b)},e.Transformation=function(a,b,c,d){this._a=a,this._b=b,this._c=c,this._d=d},e.Transformation.prototype={transform:function(a,b){return this._transform(a.clone(),b)},_transform:function(a,b){return b=b||1,a.x=b*(this._a*a.x+this._b),a.y=b*(this._c*a.y+this._d),a},untransform:function(a,b){return b=b||1,new e.Point((a.x/b-this._b)/this._a,(a.y/b-this._d)/this._c)}},e.DomUtil={get:function(a){return"string"==typeof a?b.getElementById(a):a},getStyle:function(a,c){var d=a.style[c];if(!d&&a.currentStyle&&(d=a.currentStyle[c]),(!d||"auto"===d)&&b.defaultView){var e=b.defaultView.getComputedStyle(a,null);d=e?e[c]:null}return"auto"===d?null:d},getViewportOffset:function(a){var c,d=0,f=0,g=a,h=b.body,i=b.documentElement;do{if(d+=g.offsetTop||0,f+=g.offsetLeft||0,d+=parseInt(e.DomUtil.getStyle(g,"borderTopWidth"),10)||0,f+=parseInt(e.DomUtil.getStyle(g,"borderLeftWidth"),10)||0,c=e.DomUtil.getStyle(g,"position"),g.offsetParent===h&&"absolute"===c)break;if("fixed"===c){d+=h.scrollTop||i.scrollTop||0,f+=h.scrollLeft||i.scrollLeft||0;break}if("relative"===c&&!g.offsetLeft){var j=e.DomUtil.getStyle(g,"width"),k=e.DomUtil.getStyle(g,"max-width"),l=g.getBoundingClientRect();"none"===j&&"none"===k||(f+=l.left+g.clientLeft),d+=l.top+(h.scrollTop||i.scrollTop||0);break}g=g.offsetParent}while(g);g=a;do{if(g===h)break;d-=g.scrollTop||0,f-=g.scrollLeft||0,g=g.parentNode}while(g);return new e.Point(f,d)},documentIsLtr:function(){return e.DomUtil._docIsLtrCached||(e.DomUtil._docIsLtrCached=!0,e.DomUtil._docIsLtr="ltr"===e.DomUtil.getStyle(b.body,"direction")),e.DomUtil._docIsLtr},create:function(a,c,d){var e=b.createElement(a);return e.className=c,d&&d.appendChild(e),e},hasClass:function(a,b){if(a.classList!==c)return a.classList.contains(b);var d=e.DomUtil._getClass(a);return d.length>0&&new RegExp("(^|\\s)"+b+"(\\s|$)").test(d)},addClass:function(a,b){if(a.classList!==c)for(var d=e.Util.splitWords(b),f=0,g=d.length;f=d.lat&&c.lat<=f.lat&&b.lng>=d.lng&&c.lng<=f.lng},intersects:function(a){a=e.latLngBounds(a);var b=this._southWest,c=this._northEast,d=a.getSouthWest(),f=a.getNorthEast(),g=f.lat>=b.lat&&d.lat<=c.lat,h=f.lng>=b.lng&&d.lng<=c.lng;return g&&h},toBBoxString:function(){return[this.getWest(),this.getSouth(),this.getEast(),this.getNorth()].join(",")},equals:function(a){return!!a&&(a=e.latLngBounds(a),this._southWest.equals(a.getSouthWest())&&this._northEast.equals(a.getNorthEast()))},isValid:function(){return!(!this._southWest||!this._northEast)}},e.latLngBounds=function(a,b){return!a||a instanceof e.LatLngBounds?a:new e.LatLngBounds(a,b)},e.Projection={},e.Projection.SphericalMercator={MAX_LATITUDE:85.0511287798,project:function(a){var b=e.LatLng.DEG_TO_RAD,c=this.MAX_LATITUDE,d=Math.max(Math.min(c,a.lat),-c),f=a.lng*b,g=d*b;return g=Math.log(Math.tan(Math.PI/4+g/2)),new e.Point(f,g)},unproject:function(a){var b=e.LatLng.RAD_TO_DEG,c=a.x*b,d=(2*Math.atan(Math.exp(a.y))-Math.PI/2)*b;return new e.LatLng(d,c)}},e.Projection.LonLat={project:function(a){return new e.Point(a.lng,a.lat)},unproject:function(a){return new e.LatLng(a.y,a.x)}},e.CRS={latLngToPoint:function(a,b){var c=this.projection.project(a),d=this.scale(b);return this.transformation._transform(c,d)},pointToLatLng:function(a,b){var c=this.scale(b),d=this.transformation.untransform(a,c);return this.projection.unproject(d)},project:function(a){return this.projection.project(a)},scale:function(a){return 256*Math.pow(2,a)},getSize:function(a){var b=this.scale(a);return e.point(b,b)}},e.CRS.Simple=e.extend({},e.CRS,{projection:e.Projection.LonLat,transformation:new e.Transformation(1,0,-1,0),scale:function(a){return Math.pow(2,a)}}),e.CRS.EPSG3857=e.extend({},e.CRS,{code:"EPSG:3857",projection:e.Projection.SphericalMercator,transformation:new e.Transformation(.5/Math.PI,.5,-.5/Math.PI,.5),project:function(a){var b=this.projection.project(a),c=6378137;return b.multiplyBy(c)}}),e.CRS.EPSG900913=e.extend({},e.CRS.EPSG3857,{code:"EPSG:900913"}),e.CRS.EPSG4326=e.extend({},e.CRS,{code:"EPSG:4326",projection:e.Projection.LonLat,transformation:new e.Transformation(1/360,.5,-1/360,.5)}),e.Map=e.Class.extend({includes:e.Mixin.Events,options:{crs:e.CRS.EPSG3857,fadeAnimation:e.DomUtil.TRANSITION&&!e.Browser.android23,trackResize:!0,markerZoomAnimation:e.DomUtil.TRANSITION&&e.Browser.any3d},initialize:function(a,b){b=e.setOptions(this,b),this._initContainer(a),this._initLayout(),this._onResize=e.bind(this._onResize,this),this._initEvents(),b.maxBounds&&this.setMaxBounds(b.maxBounds),b.center&&b.zoom!==c&&this.setView(e.latLng(b.center),b.zoom,{reset:!0}),this._handlers=[],this._layers={},this._zoomBoundLayers={},this._tileLayersNum=0,this.callInitHooks(),this._addLayers(b.layers)},setView:function(a,b){return b=b===c?this.getZoom():b,this._resetView(e.latLng(a),this._limitZoom(b)),this},setZoom:function(a,b){return this._loaded?this.setView(this.getCenter(),a,{zoom:b}):(this._zoom=this._limitZoom(a),this)},zoomIn:function(a,b){return this.setZoom(this._zoom+(a||1),b)},zoomOut:function(a,b){return this.setZoom(this._zoom-(a||1),b)},setZoomAround:function(a,b,c){var d=this.getZoomScale(b),f=this.getSize().divideBy(2),g=a instanceof e.Point?a:this.latLngToContainerPoint(a),h=g.subtract(f).multiplyBy(1-1/d),i=this.containerPointToLatLng(f.add(h));return this.setView(i,b,{zoom:c})},fitBounds:function(a,b){b=b||{},a=a.getBounds?a.getBounds():e.latLngBounds(a);var c=e.point(b.paddingTopLeft||b.padding||[0,0]),d=e.point(b.paddingBottomRight||b.padding||[0,0]),f=this.getBoundsZoom(a,!1,c.add(d));f=b.maxZoom?Math.min(b.maxZoom,f):f;var g=d.subtract(c).divideBy(2),h=this.project(a.getSouthWest(),f),i=this.project(a.getNorthEast(),f),j=this.unproject(h.add(i).divideBy(2).add(g),f);return this.setView(j,f,b)},fitWorld:function(a){return this.fitBounds([[-90,-180],[90,180]],a)},panTo:function(a,b){return this.setView(a,this._zoom,{pan:b})},panBy:function(a){return this.fire("movestart"),this._rawPanBy(e.point(a)),this.fire("move"),this.fire("moveend")},setMaxBounds:function(a){return a=e.latLngBounds(a),this.options.maxBounds=a,a?(this._loaded&&this._panInsideMaxBounds(),this.on("moveend",this._panInsideMaxBounds,this)):this.off("moveend",this._panInsideMaxBounds,this)},panInsideBounds:function(a,b){var c=this.getCenter(),d=this._limitCenter(c,this._zoom,a);return c.equals(d)?this:this.panTo(d,b)},addLayer:function(a){var b=e.stamp(a);return this._layers[b]?this:(this._layers[b]=a,!a.options||isNaN(a.options.maxZoom)&&isNaN(a.options.minZoom)||(this._zoomBoundLayers[b]=a,this._updateZoomLevels()),this.options.zoomAnimation&&e.TileLayer&&a instanceof e.TileLayer&&(this._tileLayersNum++,this._tileLayersToLoad++,a.on("load",this._onTileLayerLoad,this)),this._loaded&&this._layerAdd(a),this)},removeLayer:function(a){var b=e.stamp(a);return this._layers[b]?(this._loaded&&a.onRemove(this),delete this._layers[b],this._loaded&&this.fire("layerremove",{layer:a}),this._zoomBoundLayers[b]&&(delete this._zoomBoundLayers[b],this._updateZoomLevels()),this.options.zoomAnimation&&e.TileLayer&&a instanceof e.TileLayer&&(this._tileLayersNum--,this._tileLayersToLoad--,a.off("load",this._onTileLayerLoad,this)),this):this},hasLayer:function(a){return!!a&&e.stamp(a)in this._layers},eachLayer:function(a,b){for(var c in this._layers)a.call(b,this._layers[c]);return this},invalidateSize:function(a){if(!this._loaded)return this;a=e.extend({animate:!1,pan:!0},a===!0?{animate:!0}:a);var b=this.getSize();this._sizeChanged=!0,this._initialCenter=null;var c=this.getSize(),d=b.divideBy(2).round(),f=c.divideBy(2).round(),g=d.subtract(f);return g.x||g.y?(a.animate&&a.pan?this.panBy(g):(a.pan&&this._rawPanBy(g),this.fire("move"),a.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(e.bind(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:b,newSize:c})):this},addHandler:function(a,b){if(!b)return this;var c=this[a]=new b(this);return this._handlers.push(c),this.options[a]&&c.enable(),this},remove:function(){this._loaded&&this.fire("unload"),this._initEvents("off");try{delete this._container._leaflet}catch(a){this._container._leaflet=c}return this._clearPanes(),this._clearControlPos&&this._clearControlPos(),this._clearHandlers(),this},getCenter:function(){return this._checkIfLoaded(),this._initialCenter&&!this._moved()?this._initialCenter:this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var a=this.getPixelBounds(),b=this.unproject(a.getBottomLeft()),c=this.unproject(a.getTopRight());return new e.LatLngBounds(b,c)},getMinZoom:function(){return this.options.minZoom===c?this._layersMinZoom===c?0:this._layersMinZoom:this.options.minZoom},getMaxZoom:function(){return this.options.maxZoom===c?this._layersMaxZoom===c?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(a,b,c){a=e.latLngBounds(a);var d,f=this.getMinZoom()-(b?1:0),g=this.getMaxZoom(),h=this.getSize(),i=a.getNorthWest(),j=a.getSouthEast(),k=!0;c=e.point(c||[0,0]);do f++,d=this.project(j,f).subtract(this.project(i,f)).add(c),k=b?d.x0?Math.round(a-b)/2:Math.max(0,Math.ceil(a))-Math.max(0,Math.floor(b))},_limitZoom:function(a){var b=this.getMinZoom(),c=this.getMaxZoom();return Math.max(b,Math.min(c,a))}}),e.map=function(a,b){return new e.Map(a,b)},e.Projection.Mercator={MAX_LATITUDE:85.0840591556,R_MINOR:6356752.314245179,R_MAJOR:6378137,project:function(a){var b=e.LatLng.DEG_TO_RAD,c=this.MAX_LATITUDE,d=Math.max(Math.min(c,a.lat),-c),f=this.R_MAJOR,g=this.R_MINOR,h=a.lng*b*f,i=d*b,j=g/f,k=Math.sqrt(1-j*j),l=k*Math.sin(i);l=Math.pow((1-l)/(1+l),.5*k);var m=Math.tan(.5*(.5*Math.PI-i))/l;return i=-f*Math.log(m),new e.Point(h,i)},unproject:function(a){for(var b,c=e.LatLng.RAD_TO_DEG,d=this.R_MAJOR,f=this.R_MINOR,g=a.x*c/d,h=f/d,i=Math.sqrt(1-h*h),j=Math.exp(-a.y/d),k=Math.PI/2-2*Math.atan(j),l=15,m=1e-7,n=l,o=.1;Math.abs(o)>m&&--n>0;)b=i*Math.sin(k),o=Math.PI/2-2*Math.atan(j*Math.pow((1-b)/(1+b),.5*i))-k,k+=o;return new e.LatLng(k*c,g)}},e.CRS.EPSG3395=e.extend({},e.CRS,{code:"EPSG:3395",projection:e.Projection.Mercator, +transformation:function(){var a=e.Projection.Mercator,b=a.R_MAJOR,c=.5/(Math.PI*b);return new e.Transformation(c,.5,-c,.5)}()}),e.TileLayer=e.Class.extend({includes:e.Mixin.Events,options:{minZoom:0,maxZoom:18,tileSize:256,subdomains:"abc",errorTileUrl:"",attribution:"",zoomOffset:0,opacity:1,unloadInvisibleTiles:e.Browser.mobile,updateWhenIdle:e.Browser.mobile},initialize:function(a,b){b=e.setOptions(this,b),b.detectRetina&&e.Browser.retina&&b.maxZoom>0&&(b.tileSize=Math.floor(b.tileSize/2),b.zoomOffset++,b.minZoom>0&&b.minZoom--,this.options.maxZoom--),b.bounds&&(b.bounds=e.latLngBounds(b.bounds)),this._url=a;var c=this.options.subdomains;"string"==typeof c&&(this.options.subdomains=c.split(""))},onAdd:function(a){this._map=a,this._animated=a._zoomAnimated,this._initContainer(),a.on({viewreset:this._reset,moveend:this._update},this),this._animated&&a.on({zoomanim:this._animateZoom,zoomend:this._endZoomAnim},this),this.options.updateWhenIdle||(this._limitedUpdate=e.Util.limitExecByInterval(this._update,150,this),a.on("move",this._limitedUpdate,this)),this._reset(),this._update()},addTo:function(a){return a.addLayer(this),this},onRemove:function(a){this._container.parentNode.removeChild(this._container),a.off({viewreset:this._reset,moveend:this._update},this),this._animated&&a.off({zoomanim:this._animateZoom,zoomend:this._endZoomAnim},this),this.options.updateWhenIdle||a.off("move",this._limitedUpdate,this),this._container=null,this._map=null},bringToFront:function(){var a=this._map._panes.tilePane;return this._container&&(a.appendChild(this._container),this._setAutoZIndex(a,Math.max)),this},bringToBack:function(){var a=this._map._panes.tilePane;return this._container&&(a.insertBefore(this._container,a.firstChild),this._setAutoZIndex(a,Math.min)),this},getAttribution:function(){return this.options.attribution},getContainer:function(){return this._container},setOpacity:function(a){return this.options.opacity=a,this._map&&this._updateOpacity(),this},setZIndex:function(a){return this.options.zIndex=a,this._updateZIndex(),this},setUrl:function(a,b){return this._url=a,b||this.redraw(),this},redraw:function(){return this._map&&(this._reset({hard:!0}),this._update()),this},_updateZIndex:function(){this._container&&this.options.zIndex!==c&&(this._container.style.zIndex=this.options.zIndex)},_setAutoZIndex:function(a,b){var c,d,e,f=a.children,g=-b(1/0,-(1/0));for(d=0,e=f.length;dc&&(d=Math.round(a.getZoomScale(b)/a.getZoomScale(c)*d)),d},_update:function(){if(this._map){var a=this._map,b=a.getPixelBounds(),c=a.getZoom(),d=this._getTileSize();if(!(c>this.options.maxZoom||c=c.x)||a.y<0||a.y>=c.y)return!1}if(b.bounds){var d=this._getTileSize(),e=a.multiplyBy(d),f=e.add([d,d]),g=this._map.unproject(e),h=this._map.unproject(f);if(b.continuousWorld||b.noWrap||(g=g.wrap(),h=h.wrap()),!b.bounds.intersects([g,h]))return!1}return!0},_removeOtherTiles:function(a){var b,c,d,e;for(e in this._tiles)b=e.split(":"),c=parseInt(b[0],10),d=parseInt(b[1],10),(ca.max.x||da.max.y)&&this._removeTile(e)},_removeTile:function(a){var b=this._tiles[a];this.fire("tileunload",{tile:b,url:b.src}),this.options.reuseTiles?(e.DomUtil.removeClass(b,"leaflet-tile-loaded"),this._unusedTiles.push(b)):b.parentNode===this._tileContainer&&this._tileContainer.removeChild(b),e.Browser.android||(b.onload=null,b.src=e.Util.emptyImageUrl),delete this._tiles[a]},_addTile:function(a,b){var c=this._getTilePos(a),d=this._getTile();e.DomUtil.setPosition(d,c,e.Browser.chrome),this._tiles[a.x+":"+a.y]=d,this._loadTile(d,a),d.parentNode!==this._tileContainer&&b.appendChild(d)},_getZoomForUrl:function(){var a=this.options,b=this._map.getZoom();return a.zoomReverse&&(b=a.maxZoom-b),b+=a.zoomOffset,a.maxNativeZoom?Math.min(b,a.maxNativeZoom):b},_getTilePos:function(a){var b=this._map.getPixelOrigin(),c=this._getTileSize();return a.multiplyBy(c).subtract(b)},getTileUrl:function(a){return e.Util.template(this._url,e.extend({s:this._getSubdomain(a),z:a.z,x:a.x,y:a.y},this.options))},_getWrapTileNum:function(){var a=this._map.options.crs,b=a.getSize(this._map.getZoom());return b.divideBy(this._getTileSize())._floor()},_adjustTilePoint:function(a){var b=this._getWrapTileNum();this.options.continuousWorld||this.options.noWrap||(a.x=(a.x%b.x+b.x)%b.x),this.options.tms&&(a.y=b.y-a.y-1),a.z=this._getZoomForUrl()},_getSubdomain:function(a){var b=Math.abs(a.x+a.y)%this.options.subdomains.length;return this.options.subdomains[b]},_getTile:function(){if(this.options.reuseTiles&&this._unusedTiles.length>0){var a=this._unusedTiles.pop();return this._resetTile(a),a}return this._createTile()},_resetTile:function(){},_createTile:function(){var a=e.DomUtil.create("img","leaflet-tile");return a.style.width=a.style.height=this._getTileSize()+"px",a.galleryimg="no",a.onselectstart=a.onmousemove=e.Util.falseFn,e.Browser.ielt9&&this.options.opacity!==c&&e.DomUtil.setOpacity(a,this.options.opacity),e.Browser.mobileWebkit3d&&(a.style.WebkitBackfaceVisibility="hidden"),a},_loadTile:function(a,b){a._layer=this,a.onload=this._tileOnLoad,a.onerror=this._tileOnError,this._adjustTilePoint(b),a.src=this.getTileUrl(b),this.fire("tileloadstart",{tile:a,url:a.src})},_tileLoaded:function(){this._tilesToLoad--,this._animated&&e.DomUtil.addClass(this._tileContainer,"leaflet-zoom-animated"),this._tilesToLoad||(this.fire("load"),this._animated&&(clearTimeout(this._clearBgBufferTimer),this._clearBgBufferTimer=setTimeout(e.bind(this._clearBgBuffer,this),500)))},_tileOnLoad:function(){var a=this._layer;this.src!==e.Util.emptyImageUrl&&(e.DomUtil.addClass(this,"leaflet-tile-loaded"),a.fire("tileload",{tile:this,url:this.src})),a._tileLoaded()},_tileOnError:function(){var a=this._layer;a.fire("tileerror",{tile:this,url:this.src});var b=a.options.errorTileUrl;b&&(this.src=b),a._tileLoaded()}}),e.tileLayer=function(a,b){return new e.TileLayer(a,b)},e.TileLayer.WMS=e.TileLayer.extend({defaultWmsParams:{service:"WMS",request:"GetMap",version:"1.1.1",layers:"",styles:"",format:"image/jpeg",transparent:!1},initialize:function(a,b){this._url=a;var c=e.extend({},this.defaultWmsParams),d=b.tileSize||this.options.tileSize;b.detectRetina&&e.Browser.retina?c.width=c.height=2*d:c.width=c.height=d;for(var f in b)this.options.hasOwnProperty(f)||"crs"===f||(c[f]=b[f]);this.wmsParams=c,e.setOptions(this,b)},onAdd:function(a){this._crs=this.options.crs||a.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var b=this._wmsVersion>=1.3?"crs":"srs";this.wmsParams[b]=this._crs.code,e.TileLayer.prototype.onAdd.call(this,a)},getTileUrl:function(a){var b=this._map,c=this.options.tileSize,d=a.multiplyBy(c),f=d.add([c,c]),g=this._crs.project(b.unproject(d,a.z)),h=this._crs.project(b.unproject(f,a.z)),i=this._wmsVersion>=1.3&&this._crs===e.CRS.EPSG4326?[h.y,g.x,g.y,h.x].join(","):[g.x,h.y,h.x,g.y].join(","),j=e.Util.template(this._url,{s:this._getSubdomain(a)});return j+e.Util.getParamString(this.wmsParams,j,!0)+"&BBOX="+i},setParams:function(a,b){return e.extend(this.wmsParams,a),b||this.redraw(),this}}),e.tileLayer.wms=function(a,b){return new e.TileLayer.WMS(a,b)},e.TileLayer.Canvas=e.TileLayer.extend({options:{async:!1},initialize:function(a){e.setOptions(this,a)},redraw:function(){this._map&&(this._reset({hard:!0}),this._update());for(var a in this._tiles)this._redrawTile(this._tiles[a]);return this},_redrawTile:function(a){this.drawTile(a,a._tilePoint,this._map._zoom)},_createTile:function(){var a=e.DomUtil.create("canvas","leaflet-tile");return a.width=a.height=this.options.tileSize,a.onselectstart=a.onmousemove=e.Util.falseFn,a},_loadTile:function(a,b){a._layer=this,a._tilePoint=b,this._redrawTile(a),this.options.async||this.tileDrawn(a)},drawTile:function(){},tileDrawn:function(a){this._tileOnLoad.call(a)}}),e.tileLayer.canvas=function(a){return new e.TileLayer.Canvas(a)},e.ImageOverlay=e.Class.extend({includes:e.Mixin.Events,options:{opacity:1},initialize:function(a,b,c){this._url=a,this._bounds=e.latLngBounds(b),e.setOptions(this,c)},onAdd:function(a){this._map=a,this._image||this._initImage(),a._panes.overlayPane.appendChild(this._image),a.on("viewreset",this._reset,this),a.options.zoomAnimation&&e.Browser.any3d&&a.on("zoomanim",this._animateZoom,this),this._reset()},onRemove:function(a){a.getPanes().overlayPane.removeChild(this._image),a.off("viewreset",this._reset,this),a.options.zoomAnimation&&a.off("zoomanim",this._animateZoom,this)},addTo:function(a){return a.addLayer(this),this},setOpacity:function(a){return this.options.opacity=a,this._updateOpacity(),this},bringToFront:function(){return this._image&&this._map._panes.overlayPane.appendChild(this._image),this},bringToBack:function(){var a=this._map._panes.overlayPane;return this._image&&a.insertBefore(this._image,a.firstChild),this},setUrl:function(a){this._url=a,this._image.src=this._url},getAttribution:function(){return this.options.attribution},_initImage:function(){this._image=e.DomUtil.create("img","leaflet-image-layer"),this._map.options.zoomAnimation&&e.Browser.any3d?e.DomUtil.addClass(this._image,"leaflet-zoom-animated"):e.DomUtil.addClass(this._image,"leaflet-zoom-hide"),this._updateOpacity(),e.extend(this._image,{galleryimg:"no",onselectstart:e.Util.falseFn,onmousemove:e.Util.falseFn,onload:e.bind(this._onImageLoad,this),src:this._url})},_animateZoom:function(a){var b=this._map,c=this._image,d=b.getZoomScale(a.zoom),f=this._bounds.getNorthWest(),g=this._bounds.getSouthEast(),h=b._latLngToNewLayerPoint(f,a.zoom,a.center),i=b._latLngToNewLayerPoint(g,a.zoom,a.center)._subtract(h),j=h._add(i._multiplyBy(.5*(1-1/d)));c.style[e.DomUtil.TRANSFORM]=e.DomUtil.getTranslateString(j)+" scale("+d+") "},_reset:function(){var a=this._image,b=this._map.latLngToLayerPoint(this._bounds.getNorthWest()),c=this._map.latLngToLayerPoint(this._bounds.getSouthEast())._subtract(b);e.DomUtil.setPosition(a,b),a.style.width=c.x+"px",a.style.height=c.y+"px"},_onImageLoad:function(){this.fire("load")},_updateOpacity:function(){e.DomUtil.setOpacity(this._image,this.options.opacity)}}),e.imageOverlay=function(a,b,c){return new e.ImageOverlay(a,b,c)},e.Icon=e.Class.extend({options:{className:""},initialize:function(a){e.setOptions(this,a)},createIcon:function(a){return this._createIcon("icon",a)},createShadow:function(a){return this._createIcon("shadow",a)},_createIcon:function(a,b){var c=this._getIconUrl(a);if(!c){if("icon"===a)throw new Error("iconUrl not set in Icon options (see the docs).");return null}var d;return d=b&&"IMG"===b.tagName?this._createImg(c,b):this._createImg(c),this._setIconStyles(d,a),d},_setIconStyles:function(a,b){var c,d=this.options,f=e.point(d[b+"Size"]);c="shadow"===b?e.point(d.shadowAnchor||d.iconAnchor):e.point(d.iconAnchor),!c&&f&&(c=f.divideBy(2,!0)),a.className="leaflet-marker-"+b+" "+d.className,c&&(a.style.marginLeft=-c.x+"px",a.style.marginTop=-c.y+"px"),f&&(a.style.width=f.x+"px",a.style.height=f.y+"px")},_createImg:function(a,c){return c=c||b.createElement("img"),c.src=a,c},_getIconUrl:function(a){return e.Browser.retina&&this.options[a+"RetinaUrl"]?this.options[a+"RetinaUrl"]:this.options[a+"Url"]}}),e.icon=function(a){return new e.Icon(a)},e.Icon.Default=e.Icon.extend({options:{iconSize:[25,41],iconAnchor:[12,41],popupAnchor:[1,-34],shadowSize:[41,41]},_getIconUrl:function(a){var b=a+"Url";if(this.options[b])return this.options[b];e.Browser.retina&&"icon"===a&&(a+="-2x");var c=e.Icon.Default.imagePath;if(!c)throw new Error("Couldn't autodetect L.Icon.Default.imagePath, set it manually.");return c+"/marker-"+a+".png"}}),e.Icon.Default.imagePath=function(){var a,c,d,e,f,g=b.getElementsByTagName("script"),h=/[\/^]leaflet[\-\._]?([\w\-\._]*)\.js\??/;for(a=0,c=g.length;af?(b.height=f+"px",e.DomUtil.addClass(a,g)):e.DomUtil.removeClass(a,g),this._containerWidth=this._container.offsetWidth},_updatePosition:function(){if(this._map){var a=this._map.latLngToLayerPoint(this._latlng),b=this._animated,c=e.point(this.options.offset);b&&e.DomUtil.setPosition(this._container,a),this._containerBottom=-c.y-(b?0:a.y),this._containerLeft=-Math.round(this._containerWidth/2)+c.x+(b?0:a.x),this._container.style.bottom=this._containerBottom+"px",this._container.style.left=this._containerLeft+"px"}},_zoomAnimation:function(a){var b=this._map._latLngToNewLayerPoint(this._latlng,a.zoom,a.center);e.DomUtil.setPosition(this._container,b)},_adjustPan:function(){if(this.options.autoPan){var a=this._map,b=this._container.offsetHeight,c=this._containerWidth,d=new e.Point(this._containerLeft,-b-this._containerBottom);this._animated&&d._add(e.DomUtil.getPosition(this._container));var f=a.layerPointToContainerPoint(d),g=e.point(this.options.autoPanPadding),h=e.point(this.options.autoPanPaddingTopLeft||g),i=e.point(this.options.autoPanPaddingBottomRight||g),j=a.getSize(),k=0,l=0;f.x+c+i.x>j.x&&(k=f.x+c-j.x+i.x),f.x-k-h.x<0&&(k=f.x-h.x),f.y+b+i.y>j.y&&(l=f.y+b-j.y+i.y),f.y-l-h.y<0&&(l=f.y-h.y),(k||l)&&a.fire("autopanstart").panBy([k,l])}},_onCloseButtonClick:function(a){this._close(),e.DomEvent.stop(a)}}),e.popup=function(a,b){return new e.Popup(a,b)},e.Map.include({openPopup:function(a,b,c){if(this.closePopup(),!(a instanceof e.Popup)){var d=a;a=new e.Popup(c).setLatLng(b).setContent(d)}return a._isOpen=!0,this._popup=a,this.addLayer(a)},closePopup:function(a){return a&&a!==this._popup||(a=this._popup,this._popup=null),a&&(this.removeLayer(a),a._isOpen=!1),this}}),e.Marker.include({openPopup:function(){return this._popup&&this._map&&!this._map.hasLayer(this._popup)&&(this._popup.setLatLng(this._latlng),this._map.openPopup(this._popup)),this},closePopup:function(){return this._popup&&this._popup._close(),this},togglePopup:function(){return this._popup&&(this._popup._isOpen?this.closePopup():this.openPopup()),this},bindPopup:function(a,b){var c=e.point(this.options.icon.options.popupAnchor||[0,0]);return c=c.add(e.Popup.prototype.options.offset),b&&b.offset&&(c=c.add(b.offset)),b=e.extend({offset:c},b),this._popupHandlersAdded||(this.on("click",this.togglePopup,this).on("remove",this.closePopup,this).on("move",this._movePopup,this),this._popupHandlersAdded=!0),a instanceof e.Popup?(e.setOptions(a,b),this._popup=a,a._source=this):this._popup=new e.Popup(b,this).setContent(a),this},setPopupContent:function(a){return this._popup&&this._popup.setContent(a),this},unbindPopup:function(){return this._popup&&(this._popup=null,this.off("click",this.togglePopup,this).off("remove",this.closePopup,this).off("move",this._movePopup,this),this._popupHandlersAdded=!1),this},getPopup:function(){return this._popup},_movePopup:function(a){this._popup.setLatLng(a.latlng)}}),e.LayerGroup=e.Class.extend({initialize:function(a){this._layers={};var b,c;if(a)for(b=0,c=a.length;b';var c=a.firstChild;return c.style.behavior="url(#default#VML)",c&&"object"==typeof c.adj}catch(a){return!1}}(),e.Path=e.Browser.svg||!e.Browser.vml?e.Path:e.Path.extend({statics:{VML:!0,CLIP_PADDING:.02},_createElement:function(){try{return b.namespaces.add("lvml","urn:schemas-microsoft-com:vml"),function(a){return b.createElement("')}}catch(a){return function(a){return b.createElement("<"+a+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}}(),_initPath:function(){var a=this._container=this._createElement("shape");e.DomUtil.addClass(a,"leaflet-vml-shape"+(this.options.className?" "+this.options.className:"")),this.options.clickable&&e.DomUtil.addClass(a,"leaflet-clickable"),a.coordsize="1 1",this._path=this._createElement("path"),a.appendChild(this._path),this._map._pathRoot.appendChild(a)},_initStyle:function(){this._updateStyle()},_updateStyle:function(){var a=this._stroke,b=this._fill,c=this.options,d=this._container;d.stroked=c.stroke,d.filled=c.fill,c.stroke?(a||(a=this._stroke=this._createElement("stroke"),a.endcap="round",d.appendChild(a)),a.weight=c.weight+"px",a.color=c.color,a.opacity=c.opacity,c.dashArray?a.dashStyle=e.Util.isArray(c.dashArray)?c.dashArray.join(" "):c.dashArray.replace(/( *, *)/g," "):a.dashStyle="",c.lineCap&&(a.endcap=c.lineCap.replace("butt","flat")),c.lineJoin&&(a.joinstyle=c.lineJoin)):a&&(d.removeChild(a),this._stroke=null),c.fill?(b||(b=this._fill=this._createElement("fill"),d.appendChild(b)),b.color=c.fillColor||c.color,b.opacity=c.fillOpacity):b&&(d.removeChild(b),this._fill=null)},_updatePath:function(){var a=this._container.style;a.display="none",this._path.v=this.getPathString()+" ",a.display=""}}),e.Map.include(e.Browser.svg||!e.Browser.vml?{}:{_initPathRoot:function(){if(!this._pathRoot){var a=this._pathRoot=b.createElement("div");a.className="leaflet-vml-container",this._panes.overlayPane.appendChild(a),this.on("moveend",this._updatePathViewport),this._updatePathViewport()}}}),e.Browser.canvas=function(){return!!b.createElement("canvas").getContext}(),e.Path=e.Path.SVG&&!a.L_PREFER_CANVAS||!e.Browser.canvas?e.Path:e.Path.extend({statics:{CANVAS:!0,SVG:!1},redraw:function(){return this._map&&(this.projectLatlngs(),this._requestUpdate()),this},setStyle:function(a){return e.setOptions(this,a),this._map&&(this._updateStyle(),this._requestUpdate()),this},onRemove:function(a){a.off("viewreset",this.projectLatlngs,this).off("moveend",this._updatePath,this),this.options.clickable&&(this._map.off("click",this._onClick,this),this._map.off("mousemove",this._onMouseMove,this)),this._requestUpdate(),this.fire("remove"),this._map=null},_requestUpdate:function(){this._map&&!e.Path._updateRequest&&(e.Path._updateRequest=e.Util.requestAnimFrame(this._fireMapMoveEnd,this._map))},_fireMapMoveEnd:function(){e.Path._updateRequest=null,this.fire("moveend")},_initElements:function(){this._map._initPathRoot(),this._ctx=this._map._canvasCtx},_updateStyle:function(){var a=this.options;a.stroke&&(this._ctx.lineWidth=a.weight,this._ctx.strokeStyle=a.color),a.fill&&(this._ctx.fillStyle=a.fillColor||a.color),a.lineCap&&(this._ctx.lineCap=a.lineCap),a.lineJoin&&(this._ctx.lineJoin=a.lineJoin)},_drawPath:function(){var a,b,c,d,f,g;for(this._ctx.beginPath(),a=0,c=this._parts.length;ai&&(f=g,i=h);i>c&&(b[f]=1,this._simplifyDPStep(a,b,c,d,f),this._simplifyDPStep(a,b,c,f,e))},_reducePoints:function(a,b){for(var c=[a[0]],d=1,e=0,f=a.length;db&&(c.push(a[d]),e=d);return eb.max.x&&(c|=2),a.yb.max.y&&(c|=8),c},_sqDist:function(a,b){var c=b.x-a.x,d=b.y-a.y;return c*c+d*d},_sqClosestPointOnSegment:function(a,b,c,d){var f,g=b.x,h=b.y,i=c.x-g,j=c.y-h,k=i*i+j*j;return k>0&&(f=((a.x-g)*i+(a.y-h)*j)/k,f>1?(g=c.x,h=c.y):f>0&&(g+=i*f,h+=j*f)),i=a.x-g,j=a.y-h,d?i*i+j*j:new e.Point(g,h)}},e.Polyline=e.Path.extend({initialize:function(a,b){e.Path.prototype.initialize.call(this,b),this._latlngs=this._convertLatLngs(a)},options:{smoothFactor:1,noClip:!1},projectLatlngs:function(){this._originalPoints=[];for(var a=0,b=this._latlngs.length;a=2&&a[0].equals(a[a.length-1])&&a.pop()},projectLatlngs:function(){if(e.Polyline.prototype.projectLatlngs.call(this),this._holePoints=[],this._holes){var a,b,c,d;for(a=0,c=this._holes.length;aa.max.x||c.y-b>a.max.y||c.x+ba.y!=d.y>a.y&&a.x<(d.x-c.x)*(a.y-c.y)/(d.y-c.y)+c.x&&(k=!k);return k}}:{}),e.Circle.include(e.Path.CANVAS?{_drawPath:function(){var a=this._point;this._ctx.beginPath(),this._ctx.arc(a.x,a.y,this._radius,0,2*Math.PI,!1)},_containsPoint:function(a){var b=this._point,c=this.options.stroke?this.options.weight/2:0;return a.distanceTo(b)<=this._radius+c}}:{}),e.CircleMarker.include(e.Path.CANVAS?{_updateStyle:function(){e.Path.prototype._updateStyle.call(this)}}:{}),e.GeoJSON=e.FeatureGroup.extend({initialize:function(a,b){e.setOptions(this,b),this._layers={},a&&this.addData(a)},addData:function(a){var b,c,d,f=e.Util.isArray(a)?a:a.features;if(f){for(b=0,c=f.length;b=0;c--)e.DomEvent.on(a,e.Draggable.START[c],b);return e.DomEvent.on(a,"click",e.DomEvent._fakeStop).on(a,"dblclick",b)},preventDefault:function(a){return a.preventDefault?a.preventDefault():a.returnValue=!1,this},stop:function(a){return e.DomEvent.preventDefault(a).stopPropagation(a)},getMousePosition:function(a,b){if(!b)return new e.Point(a.clientX,a.clientY);var c=b.getBoundingClientRect();return new e.Point(a.clientX-c.left-b.clientLeft,a.clientY-c.top-b.clientTop)},getWheelDelta:function(a){var b=0;return a.wheelDelta&&(b=a.wheelDelta/120),a.detail&&(b=-a.detail/3),b},_skipEvents:{},_fakeStop:function(a){e.DomEvent._skipEvents[a.type]=!0},_skipped:function(a){var b=this._skipEvents[a.type];return this._skipEvents[a.type]=!1,b},_checkMouse:function(a,b){var c=b.relatedTarget;if(!c)return!0;try{for(;c&&c!==a;)c=c.parentNode}catch(a){return!1}return c!==a},_getEvent:function(){var b=a.event;if(!b)for(var c=arguments.callee.caller;c&&(b=c.arguments[0],!b||a.Event!==b.constructor);)c=c.caller;return b},_filterClick:function(a,b){var c=a.timeStamp||a.originalEvent.timeStamp,d=e.DomEvent._lastClick&&c-e.DomEvent._lastClick;return d&&d>100&&d<500||a.target._simulatedClick&&!a._simulated?void e.DomEvent.stop(a):(e.DomEvent._lastClick=c,b(a))}},e.DomEvent.on=e.DomEvent.addListener,e.DomEvent.off=e.DomEvent.removeListener,e.Draggable=e.Class.extend({includes:e.Mixin.Events,statics:{START:e.Browser.touch?["touchstart","mousedown"]:["mousedown"],END:{mousedown:"mouseup",touchstart:"touchend",pointerdown:"touchend",MSPointerDown:"touchend"},MOVE:{mousedown:"mousemove",touchstart:"touchmove",pointerdown:"touchmove",MSPointerDown:"touchmove"}},initialize:function(a,b){this._element=a,this._dragStartTarget=b||a},enable:function(){if(!this._enabled){for(var a=e.Draggable.START.length-1;a>=0;a--)e.DomEvent.on(this._dragStartTarget,e.Draggable.START[a],this._onDown,this);this._enabled=!0}},disable:function(){if(this._enabled){for(var a=e.Draggable.START.length-1;a>=0;a--)e.DomEvent.off(this._dragStartTarget,e.Draggable.START[a],this._onDown,this);this._enabled=!1,this._moved=!1}},_onDown:function(a){if(this._moved=!1,!a.shiftKey&&(1===a.which||1===a.button||a.touches)&&(e.DomEvent.stopPropagation(a),!e.Draggable._disabled&&(e.DomUtil.disableImageDrag(),e.DomUtil.disableTextSelection(),!this._moving))){var c=a.touches?a.touches[0]:a;this._startPoint=new e.Point(c.clientX,c.clientY),this._startPos=this._newPos=e.DomUtil.getPosition(this._element),e.DomEvent.on(b,e.Draggable.MOVE[a.type],this._onMove,this).on(b,e.Draggable.END[a.type],this._onUp,this)}},_onMove:function(a){if(a.touches&&a.touches.length>1)return void(this._moved=!0);var c=a.touches&&1===a.touches.length?a.touches[0]:a,d=new e.Point(c.clientX,c.clientY),f=d.subtract(this._startPoint);(f.x||f.y)&&(e.Browser.touch&&Math.abs(f.x)+Math.abs(f.y)<3||(e.DomEvent.preventDefault(a),this._moved||(this.fire("dragstart"),this._moved=!0,this._startPos=e.DomUtil.getPosition(this._element).subtract(f),e.DomUtil.addClass(b.body,"leaflet-dragging"),this._lastTarget=a.target||a.srcElement,e.DomUtil.addClass(this._lastTarget,"leaflet-drag-target")),this._newPos=this._startPos.add(f),this._moving=!0,e.Util.cancelAnimFrame(this._animRequest),this._animRequest=e.Util.requestAnimFrame(this._updatePosition,this,!0,this._dragStartTarget)))},_updatePosition:function(){this.fire("predrag"),e.DomUtil.setPosition(this._element,this._newPos),this.fire("drag")},_onUp:function(){e.DomUtil.removeClass(b.body,"leaflet-dragging"),this._lastTarget&&(e.DomUtil.removeClass(this._lastTarget,"leaflet-drag-target"),this._lastTarget=null);for(var a in e.Draggable.MOVE)e.DomEvent.off(b,e.Draggable.MOVE[a],this._onMove).off(b,e.Draggable.END[a],this._onUp);e.DomUtil.enableImageDrag(),e.DomUtil.enableTextSelection(),this._moved&&this._moving&&(e.Util.cancelAnimFrame(this._animRequest),this.fire("dragend",{distance:this._newPos.distanceTo(this._startPos)})),this._moving=!1}}),e.Handler=e.Class.extend({initialize:function(a){this._map=a},enable:function(){this._enabled||(this._enabled=!0,this.addHooks())},disable:function(){this._enabled&&(this._enabled=!1,this.removeHooks())},enabled:function(){return!!this._enabled}}),e.Map.mergeOptions({dragging:!0,inertia:!e.Browser.android23,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,inertiaThreshold:e.Browser.touch?32:18,easeLinearity:.25,worldCopyJump:!1}),e.Map.Drag=e.Handler.extend({addHooks:function(){if(!this._draggable){var a=this._map;this._draggable=new e.Draggable(a._mapPane,a._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),a.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDrag,this),a.on("viewreset",this._onViewReset,this),a.whenReady(this._onViewReset,this))}this._draggable.enable()},removeHooks:function(){this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},_onDragStart:function(){var a=this._map;a._panAnim&&a._panAnim.stop(),a.fire("movestart").fire("dragstart"),a.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(){if(this._map.options.inertia){var a=this._lastTime=+new Date,b=this._lastPos=this._draggable._newPos;this._positions.push(b),this._times.push(a),a-this._times[0]>200&&(this._positions.shift(),this._times.shift())}this._map.fire("move").fire("drag")},_onViewReset:function(){var a=this._map.getSize()._divideBy(2),b=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=b.subtract(a).x,this._worldWidth=this._map.project([0,180]).x},_onPreDrag:function(){var a=this._worldWidth,b=Math.round(a/2),c=this._initialWorldOffset,d=this._draggable._newPos.x,e=(d-b+c)%a+b-c,f=(d+b+c)%a-b-c,g=Math.abs(e+c)c.inertiaThreshold||!this._positions[0];if(b.fire("dragend",a),f)b.fire("moveend");else{var g=this._lastPos.subtract(this._positions[0]),h=(this._lastTime+d-this._times[0])/1e3,i=c.easeLinearity,j=g.multiplyBy(i/h),k=j.distanceTo([0,0]),l=Math.min(c.inertiaMaxSpeed,k),m=j.multiplyBy(l/k),n=l/(c.inertiaDeceleration*i),o=m.multiplyBy(-n/2).round();o.x&&o.y?(o=b._limitOffset(o,b.options.maxBounds),e.Util.requestAnimFrame(function(){b.panBy(o,{duration:n,easeLinearity:i,noMoveStart:!0})})):b.fire("moveend")}}}),e.Map.addInitHook("addHandler","dragging",e.Map.Drag),e.Map.mergeOptions({doubleClickZoom:!0}),e.Map.DoubleClickZoom=e.Handler.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(a){var b=this._map,c=b.getZoom()+(a.originalEvent.shiftKey?-1:1);"center"===b.options.doubleClickZoom?b.setZoom(c):b.setZoomAround(a.containerPoint,c)}}),e.Map.addInitHook("addHandler","doubleClickZoom",e.Map.DoubleClickZoom),e.Map.mergeOptions({scrollWheelZoom:!0}),e.Map.ScrollWheelZoom=e.Handler.extend({addHooks:function(){e.DomEvent.on(this._map._container,"mousewheel",this._onWheelScroll,this),e.DomEvent.on(this._map._container,"MozMousePixelScroll",e.DomEvent.preventDefault),this._delta=0},removeHooks:function(){e.DomEvent.off(this._map._container,"mousewheel",this._onWheelScroll),e.DomEvent.off(this._map._container,"MozMousePixelScroll",e.DomEvent.preventDefault)},_onWheelScroll:function(a){var b=e.DomEvent.getWheelDelta(a);this._delta+=b,this._lastMousePos=this._map.mouseEventToContainerPoint(a),this._startTime||(this._startTime=+new Date);var c=Math.max(40-(+new Date-this._startTime),0);clearTimeout(this._timer),this._timer=setTimeout(e.bind(this._performZoom,this),c),e.DomEvent.preventDefault(a),e.DomEvent.stopPropagation(a)},_performZoom:function(){var a=this._map,b=this._delta,c=a.getZoom();b=b>0?Math.ceil(b):Math.floor(b),b=Math.max(Math.min(b,4),-4),b=a._limitZoom(c+b)-c,this._delta=0,this._startTime=null,b&&("center"===a.options.scrollWheelZoom?a.setZoom(c+b):a.setZoomAround(this._lastMousePos,c+b))}}),e.Map.addInitHook("addHandler","scrollWheelZoom",e.Map.ScrollWheelZoom),e.extend(e.DomEvent,{_touchstart:e.Browser.msPointer?"MSPointerDown":e.Browser.pointer?"pointerdown":"touchstart",_touchend:e.Browser.msPointer?"MSPointerUp":e.Browser.pointer?"pointerup":"touchend",addDoubleTapListener:function(a,c,d){function f(a){var b;if(e.Browser.pointer?(o.push(a.pointerId),b=o.length):b=a.touches.length,!(b>1)){var c=Date.now(),d=c-(h||c);i=a.touches?a.touches[0]:a,j=d>0&&d<=k,h=c}}function g(a){if(e.Browser.pointer){var b=o.indexOf(a.pointerId);if(b===-1)return;o.splice(b,1)}if(j){if(e.Browser.pointer){var d,f={};for(var g in i)d=i[g],"function"==typeof d?f[g]=d.bind(i):f[g]=d;i=f}i.type="dblclick",c(i),h=null}}var h,i,j=!1,k=250,l="_leaflet_",m=this._touchstart,n=this._touchend,o=[];a[l+m+d]=f,a[l+n+d]=g;var p=e.Browser.pointer?b.documentElement:a;return a.addEventListener(m,f,!1),p.addEventListener(n,g,!1),e.Browser.pointer&&p.addEventListener(e.DomEvent.POINTER_CANCEL,g,!1),this},removeDoubleTapListener:function(a,c){var d="_leaflet_";return a.removeEventListener(this._touchstart,a[d+this._touchstart+c],!1),(e.Browser.pointer?b.documentElement:a).removeEventListener(this._touchend,a[d+this._touchend+c],!1),e.Browser.pointer&&b.documentElement.removeEventListener(e.DomEvent.POINTER_CANCEL,a[d+this._touchend+c],!1),this}}),e.extend(e.DomEvent,{POINTER_DOWN:e.Browser.msPointer?"MSPointerDown":"pointerdown",POINTER_MOVE:e.Browser.msPointer?"MSPointerMove":"pointermove",POINTER_UP:e.Browser.msPointer?"MSPointerUp":"pointerup",POINTER_CANCEL:e.Browser.msPointer?"MSPointerCancel":"pointercancel",_pointers:[],_pointerDocumentListener:!1,addPointerListener:function(a,b,c,d){switch(b){case"touchstart":return this.addPointerListenerStart(a,b,c,d); +case"touchend":return this.addPointerListenerEnd(a,b,c,d);case"touchmove":return this.addPointerListenerMove(a,b,c,d);default:throw"Unknown touch event type"}},addPointerListenerStart:function(a,c,d,f){var g="_leaflet_",h=this._pointers,i=function(a){"mouse"!==a.pointerType&&a.pointerType!==a.MSPOINTER_TYPE_MOUSE&&e.DomEvent.preventDefault(a);for(var b=!1,c=0;c1)||(this._moved||(e.DomUtil.addClass(b._mapPane,"leaflet-touching"),b.fire("movestart").fire("zoomstart"),this._moved=!0),e.Util.cancelAnimFrame(this._animRequest),this._animRequest=e.Util.requestAnimFrame(this._updateOnMove,this,!0,this._map._container),e.DomEvent.preventDefault(a)))}},_updateOnMove:function(){var a=this._map,b=this._getScaleOrigin(),c=a.layerPointToLatLng(b),d=a.getScaleZoom(this._scale);a._animateZoom(c,d,this._startCenter,this._scale,this._delta,!1,!0)},_onTouchEnd:function(){if(!this._moved||!this._zooming)return void(this._zooming=!1);var a=this._map;this._zooming=!1,e.DomUtil.removeClass(a._mapPane,"leaflet-touching"),e.Util.cancelAnimFrame(this._animRequest),e.DomEvent.off(b,"touchmove",this._onTouchMove).off(b,"touchend",this._onTouchEnd);var c=this._getScaleOrigin(),d=a.layerPointToLatLng(c),f=a.getZoom(),g=a.getScaleZoom(this._scale)-f,h=g>0?Math.ceil(g):Math.floor(g),i=a._limitZoom(f+h),j=a.getZoomScale(i)/this._scale;a._animateZoom(d,i,c,j)},_getScaleOrigin:function(){var a=this._centerOffset.subtract(this._delta).divideBy(this._scale);return this._startCenter.add(a)}}),e.Map.addInitHook("addHandler","touchZoom",e.Map.TouchZoom),e.Map.mergeOptions({tap:!0,tapTolerance:15}),e.Map.Tap=e.Handler.extend({addHooks:function(){e.DomEvent.on(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){e.DomEvent.off(this._map._container,"touchstart",this._onDown,this)},_onDown:function(a){if(a.touches){if(e.DomEvent.preventDefault(a),this._fireClick=!0,a.touches.length>1)return this._fireClick=!1,void clearTimeout(this._holdTimeout);var c=a.touches[0],d=c.target;this._startPos=this._newPos=new e.Point(c.clientX,c.clientY),d.tagName&&"a"===d.tagName.toLowerCase()&&e.DomUtil.addClass(d,"leaflet-active"),this._holdTimeout=setTimeout(e.bind(function(){this._isTapValid()&&(this._fireClick=!1,this._onUp(),this._simulateEvent("contextmenu",c))},this),1e3),e.DomEvent.on(b,"touchmove",this._onMove,this).on(b,"touchend",this._onUp,this)}},_onUp:function(a){if(clearTimeout(this._holdTimeout),e.DomEvent.off(b,"touchmove",this._onMove,this).off(b,"touchend",this._onUp,this),this._fireClick&&a&&a.changedTouches){var c=a.changedTouches[0],d=c.target;d&&d.tagName&&"a"===d.tagName.toLowerCase()&&e.DomUtil.removeClass(d,"leaflet-active"),this._isTapValid()&&this._simulateEvent("click",c)}},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_onMove:function(a){var b=a.touches[0];this._newPos=new e.Point(b.clientX,b.clientY)},_simulateEvent:function(c,d){var e=b.createEvent("MouseEvents");e._simulated=!0,d.target._simulatedClick=!0,e.initMouseEvent(c,!0,!0,a,1,d.screenX,d.screenY,d.clientX,d.clientY,!1,!1,!1,!1,0,null),d.target.dispatchEvent(e)}}),e.Browser.touch&&!e.Browser.pointer&&e.Map.addInitHook("addHandler","tap",e.Map.Tap),e.Map.mergeOptions({boxZoom:!0}),e.Map.BoxZoom=e.Handler.extend({initialize:function(a){this._map=a,this._container=a._container,this._pane=a._panes.overlayPane,this._moved=!1},addHooks:function(){e.DomEvent.on(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){e.DomEvent.off(this._container,"mousedown",this._onMouseDown),this._moved=!1},moved:function(){return this._moved},_onMouseDown:function(a){return this._moved=!1,!(!a.shiftKey||1!==a.which&&1!==a.button)&&(e.DomUtil.disableTextSelection(),e.DomUtil.disableImageDrag(),this._startLayerPoint=this._map.mouseEventToLayerPoint(a),void e.DomEvent.on(b,"mousemove",this._onMouseMove,this).on(b,"mouseup",this._onMouseUp,this).on(b,"keydown",this._onKeyDown,this))},_onMouseMove:function(a){this._moved||(this._box=e.DomUtil.create("div","leaflet-zoom-box",this._pane),e.DomUtil.setPosition(this._box,this._startLayerPoint),this._container.style.cursor="crosshair",this._map.fire("boxzoomstart"));var b=this._startLayerPoint,c=this._box,d=this._map.mouseEventToLayerPoint(a),f=d.subtract(b),g=new e.Point(Math.min(d.x,b.x),Math.min(d.y,b.y));e.DomUtil.setPosition(c,g),this._moved=!0,c.style.width=Math.max(0,Math.abs(f.x)-4)+"px",c.style.height=Math.max(0,Math.abs(f.y)-4)+"px"},_finish:function(){this._moved&&(this._pane.removeChild(this._box),this._container.style.cursor=""),e.DomUtil.enableTextSelection(),e.DomUtil.enableImageDrag(),e.DomEvent.off(b,"mousemove",this._onMouseMove).off(b,"mouseup",this._onMouseUp).off(b,"keydown",this._onKeyDown)},_onMouseUp:function(a){this._finish();var b=this._map,c=b.mouseEventToLayerPoint(a);if(!this._startLayerPoint.equals(c)){var d=new e.LatLngBounds(b.layerPointToLatLng(this._startLayerPoint),b.layerPointToLatLng(c));b.fitBounds(d),b.fire("boxzoomend",{boxZoomBounds:d})}},_onKeyDown:function(a){27===a.keyCode&&this._finish()}}),e.Map.addInitHook("addHandler","boxZoom",e.Map.BoxZoom),e.Map.mergeOptions({keyboard:!0,keyboardPanOffset:80,keyboardZoomOffset:1}),e.Map.Keyboard=e.Handler.extend({keyCodes:{left:[37],right:[39],down:[40],up:[38],zoomIn:[187,107,61,171],zoomOut:[189,109,173]},initialize:function(a){this._map=a,this._setPanOffset(a.options.keyboardPanOffset),this._setZoomOffset(a.options.keyboardZoomOffset)},addHooks:function(){var a=this._map._container;a.tabIndex===-1&&(a.tabIndex="0"),e.DomEvent.on(a,"focus",this._onFocus,this).on(a,"blur",this._onBlur,this).on(a,"mousedown",this._onMouseDown,this),this._map.on("focus",this._addHooks,this).on("blur",this._removeHooks,this)},removeHooks:function(){this._removeHooks();var a=this._map._container;e.DomEvent.off(a,"focus",this._onFocus,this).off(a,"blur",this._onBlur,this).off(a,"mousedown",this._onMouseDown,this),this._map.off("focus",this._addHooks,this).off("blur",this._removeHooks,this)},_onMouseDown:function(){if(!this._focused){var c=b.body,d=b.documentElement,e=c.scrollTop||d.scrollTop,f=c.scrollLeft||d.scrollLeft;this._map._container.focus(),a.scrollTo(f,e)}},_onFocus:function(){this._focused=!0,this._map.fire("focus")},_onBlur:function(){this._focused=!1,this._map.fire("blur")},_setPanOffset:function(a){var b,c,d=this._panKeys={},e=this.keyCodes;for(b=0,c=e.left.length;bLeaflet'},initialize:function(a){e.setOptions(this,a),this._attributions={}},onAdd:function(a){this._container=e.DomUtil.create("div","leaflet-control-attribution"),e.DomEvent.disableClickPropagation(this._container);for(var b in a._layers)a._layers[b].getAttribution&&this.addAttribution(a._layers[b].getAttribution());return a.on("layeradd",this._onLayerAdd,this).on("layerremove",this._onLayerRemove,this),this._update(),this._container},onRemove:function(a){a.off("layeradd",this._onLayerAdd).off("layerremove",this._onLayerRemove)},setPrefix:function(a){return this.options.prefix=a,this._update(),this},addAttribution:function(a){if(a)return this._attributions[a]||(this._attributions[a]=0),this._attributions[a]++,this._update(),this},removeAttribution:function(a){if(a)return this._attributions[a]&&(this._attributions[a]--,this._update()),this},_update:function(){if(this._map){var a=[];for(var b in this._attributions)this._attributions[b]&&a.push(b);var c=[];this.options.prefix&&c.push(this.options.prefix),a.length&&c.push(a.join(", ")),this._container.innerHTML=c.join(" | ")}},_onLayerAdd:function(a){a.layer.getAttribution&&this.addAttribution(a.layer.getAttribution())},_onLayerRemove:function(a){a.layer.getAttribution&&this.removeAttribution(a.layer.getAttribution())}}),e.Map.mergeOptions({attributionControl:!0}),e.Map.addInitHook(function(){this.options.attributionControl&&(this.attributionControl=(new e.Control.Attribution).addTo(this))}),e.control.attribution=function(a){return new e.Control.Attribution(a)},e.Control.Scale=e.Control.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0,updateWhenIdle:!1},onAdd:function(a){this._map=a;var b="leaflet-control-scale",c=e.DomUtil.create("div",b),d=this.options;return this._addScales(d,b,c),a.on(d.updateWhenIdle?"moveend":"move",this._update,this),a.whenReady(this._update,this),c},onRemove:function(a){a.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(a,b,c){a.metric&&(this._mScale=e.DomUtil.create("div",b+"-line",c)),a.imperial&&(this._iScale=e.DomUtil.create("div",b+"-line",c))},_update:function(){var a=this._map.getBounds(),b=a.getCenter().lat,c=6378137*Math.PI*Math.cos(b*Math.PI/180),d=c*(a.getNorthEast().lng-a.getSouthWest().lng)/180,e=this._map.getSize(),f=this.options,g=0;e.x>0&&(g=d*(f.maxWidth/e.x)),this._updateScales(f,g)},_updateScales:function(a,b){a.metric&&b&&this._updateMetric(b),a.imperial&&b&&this._updateImperial(b)},_updateMetric:function(a){var b=this._getRoundNum(a);this._mScale.style.width=this._getScaleWidth(b/a)+"px",this._mScale.innerHTML=b<1e3?b+" m":b/1e3+" km"},_updateImperial:function(a){var b,c,d,e=3.2808399*a,f=this._iScale;e>5280?(b=e/5280,c=this._getRoundNum(b),f.style.width=this._getScaleWidth(c/b)+"px",f.innerHTML=c+" mi"):(d=this._getRoundNum(e),f.style.width=this._getScaleWidth(d/e)+"px",f.innerHTML=d+" ft")},_getScaleWidth:function(a){return Math.round(this.options.maxWidth*a)-10},_getRoundNum:function(a){var b=Math.pow(10,(Math.floor(a)+"").length-1),c=a/b;return c=c>=10?10:c>=5?5:c>=3?3:c>=2?2:1,b*c}}),e.control.scale=function(a){return new e.Control.Scale(a)},e.Control.Layers=e.Control.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0},initialize:function(a,b,c){e.setOptions(this,c),this._layers={},this._lastZIndex=0,this._handlingClick=!1;for(var d in a)this._addLayer(a[d],d);for(d in b)this._addLayer(b[d],d,!0)},onAdd:function(a){return this._initLayout(),this._update(),a.on("layeradd",this._onLayerChange,this).on("layerremove",this._onLayerChange,this),this._container},onRemove:function(a){a.off("layeradd",this._onLayerChange,this).off("layerremove",this._onLayerChange,this)},addBaseLayer:function(a,b){return this._addLayer(a,b),this._update(),this},addOverlay:function(a,b){return this._addLayer(a,b,!0),this._update(),this},removeLayer:function(a){var b=e.stamp(a);return delete this._layers[b],this._update(),this},_initLayout:function(){var a="leaflet-control-layers",b=this._container=e.DomUtil.create("div",a);b.setAttribute("aria-haspopup",!0),e.Browser.touch?e.DomEvent.on(b,"click",e.DomEvent.stopPropagation):e.DomEvent.disableClickPropagation(b).disableScrollPropagation(b);var c=this._form=e.DomUtil.create("form",a+"-list");if(this.options.collapsed){e.Browser.android||e.DomEvent.on(b,"mouseover",this._expand,this).on(b,"mouseout",this._collapse,this);var d=this._layersLink=e.DomUtil.create("a",a+"-toggle",b);d.href="#",d.title="Layers",e.Browser.touch?e.DomEvent.on(d,"click",e.DomEvent.stop).on(d,"click",this._expand,this):e.DomEvent.on(d,"focus",this._expand,this),e.DomEvent.on(c,"click",function(){setTimeout(e.bind(this._onInputClick,this),0)},this),this._map.on("click",this._collapse,this)}else this._expand();this._baseLayersList=e.DomUtil.create("div",a+"-base",c),this._separator=e.DomUtil.create("div",a+"-separator",c),this._overlaysList=e.DomUtil.create("div",a+"-overlays",c),b.appendChild(c)},_addLayer:function(a,b,c){var d=e.stamp(a);this._layers[d]={layer:a,name:b,overlay:c},this.options.autoZIndex&&a.setZIndex&&(this._lastZIndex++,a.setZIndex(this._lastZIndex))},_update:function(){if(this._container){this._baseLayersList.innerHTML="",this._overlaysList.innerHTML="";var a,b,c=!1,d=!1;for(a in this._layers)b=this._layers[a],this._addItem(b),d=d||b.overlay,c=c||!b.overlay;this._separator.style.display=d&&c?"":"none"}},_onLayerChange:function(a){var b=this._layers[e.stamp(a.layer)];if(b){this._handlingClick||this._update();var c=b.overlay?"layeradd"===a.type?"overlayadd":"overlayremove":"layeradd"===a.type?"baselayerchange":null;c&&this._map.fire(c,b)}},_createRadioElement:function(a,c){var d='=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(a,b,c){if(this._animatingZoom)return!0;if(c=c||{},!this._zoomAnimated||c.animate===!1||this._nothingToAnimate()||Math.abs(b-this._zoom)>this.options.zoomAnimationThreshold)return!1;var d=this.getZoomScale(b),e=this._getCenterOffset(a)._divideBy(1-1/d),f=this._getCenterLayerPoint()._add(e);return!(c.animate!==!0&&!this.getSize().contains(e))&&(this.fire("movestart").fire("zoomstart"),this._animateZoom(a,b,f,d,null,!0),!0)},_animateZoom:function(a,b,c,d,f,g,h){h||(this._animatingZoom=!0),e.DomUtil.addClass(this._mapPane,"leaflet-zoom-anim"),this._animateToCenter=a,this._animateToZoom=b,e.Draggable&&(e.Draggable._disabled=!0),e.Util.requestAnimFrame(function(){this.fire("zoomanim",{center:a,zoom:b,origin:c,scale:d,delta:f,backwards:g}),setTimeout(e.bind(this._onZoomTransitionEnd,this),250)},this)},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._animatingZoom=!1,e.DomUtil.removeClass(this._mapPane,"leaflet-zoom-anim"),e.Util.requestAnimFrame(function(){this._resetView(this._animateToCenter,this._animateToZoom,!0,!0),e.Draggable&&(e.Draggable._disabled=!1)},this))}}:{}),e.TileLayer.include({_animateZoom:function(a){this._animating||(this._animating=!0,this._prepareBgBuffer());var b=this._bgBuffer,c=e.DomUtil.TRANSFORM,d=a.delta?e.DomUtil.getTranslateString(a.delta):b.style[c],f=e.DomUtil.getScaleString(a.scale,a.origin);b.style[c]=a.backwards?f+" "+d:d+" "+f},_endZoomAnim:function(){var a=this._tileContainer,b=this._bgBuffer;a.style.visibility="",a.parentNode.appendChild(a),e.Util.falseFn(b.offsetWidth);var c=this._map.getZoom();(c>this.options.maxZoom||c.5&&d<.5?(a.style.visibility="hidden",void this._stopLoadingImages(a)):(b.style.visibility="hidden",b.style[e.DomUtil.TRANSFORM]="",this._tileContainer=b,b=this._bgBuffer=a,this._stopLoadingImages(b),void clearTimeout(this._clearBgBufferTimer))},_getLoadedTilesPercentage:function(a){var b,c,d=a.getElementsByTagName("img"),e=0;for(b=0,c=d.length;bOpenStreetMap'},variants:{Mapnik:{},BlackAndWhite:{url:"http://{s}.tiles.wmflabs.org/bw-mapnik/{z}/{x}/{y}.png",options:{maxZoom:18}},DE:{url:"http://{s}.tile.openstreetmap.de/tiles/osmde/{z}/{x}/{y}.png",options:{maxZoom:18}},France:{url:"http://{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png",options:{attribution:"© Openstreetmap France | {attribution.OpenStreetMap}"}},HOT:{url:"http://{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png",options:{attribution:'{attribution.OpenStreetMap}, Tiles courtesy of Humanitarian OpenStreetMap Team'}}}},OpenSeaMap:{url:"http://tiles.openseamap.org/seamark/{z}/{x}/{y}.png",options:{attribution:'Map data: © OpenSeaMap contributors'}},OpenTopoMap:{url:"//{s}.tile.opentopomap.org/{z}/{x}/{y}.png",options:{maxZoom:16,attribution:'Map data: {attribution.OpenStreetMap}, SRTM | Map style: © OpenTopoMap (CC-BY-SA)'}},Thunderforest:{url:"//{s}.tile.thunderforest.com/{variant}/{z}/{x}/{y}.png",options:{attribution:'© OpenCycleMap, {attribution.OpenStreetMap}',variant:"cycle"},variants:{OpenCycleMap:"cycle",Transport:{options:{variant:"transport",maxZoom:19}},TransportDark:{options:{variant:"transport-dark",maxZoom:19}},Landscape:"landscape",Outdoors:"outdoors"}},OpenMapSurfer:{url:"http://openmapsurfer.uni-hd.de/tiles/{variant}/x={x}&y={y}&z={z}",options:{maxZoom:20,variant:"roads",attribution:'Imagery from GIScience Research Group @ University of Heidelberg — Map data {attribution.OpenStreetMap}'},variants:{Roads:"roads",AdminBounds:{options:{variant:"adminb",maxZoom:19}},Grayscale:{options:{variant:"roadsg",maxZoom:19}}}},Hydda:{url:"http://{s}.tile.openstreetmap.se/hydda/{variant}/{z}/{x}/{y}.png",options:{variant:"full",attribution:'Tiles courtesy of OpenStreetMap Sweden — Map data {attribution.OpenStreetMap}'},variants:{Full:"full",Base:"base",RoadsAndLabels:"roads_and_labels"}},MapQuestOpen:{url:"http://otile{s}.mqcdn.com/tiles/1.0.0/{type}/{z}/{x}/{y}.{ext}",options:{type:"map",ext:"jpg",attribution:'Tiles Courtesy of MapQuest — Map data {attribution.OpenStreetMap}',subdomains:"1234"},variants:{OSM:{},Aerial:{options:{type:"sat",attribution:'Tiles Courtesy of MapQuest — Portions Courtesy NASA/JPL-Caltech and U.S. Depart. of Agriculture, Farm Service Agency'}},HybridOverlay:{options:{type:"hyb",ext:"png",opacity:.9}}}},MapBox:{url:"//api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token={accessToken}",options:{attribution:'Imagery from MapBox — Map data {attribution.OpenStreetMap}',subdomains:"abcd"}},Stamen:{url:"//stamen-tiles-{s}.a.ssl.fastly.net/{variant}/{z}/{x}/{y}.{ext}",options:{attribution:'Map tiles by Stamen Design, CC BY 3.0 — Map data {attribution.OpenStreetMap}',subdomains:"abcd",minZoom:0,maxZoom:20,variant:"toner",ext:"png"},variants:{Toner:"toner",TonerBackground:"toner-background",TonerHybrid:"toner-hybrid",TonerLines:"toner-lines",TonerLabels:"toner-labels",TonerLite:"toner-lite",Watercolor:{options:{variant:"watercolor",minZoom:1,maxZoom:16}},Terrain:{options:{variant:"terrain",minZoom:4,maxZoom:18,bounds:[[22,-132],[70,-56]]}},TerrainBackground:{options:{variant:"terrain-background",minZoom:4,maxZoom:18,bounds:[[22,-132],[70,-56]]}},TopOSMRelief:{options:{variant:"toposm-color-relief",ext:"jpg",bounds:[[22,-132],[51,-56]]}},TopOSMFeatures:{options:{variant:"toposm-features",bounds:[[22,-132],[51,-56]],opacity:.9}}}},Esri:{url:"//server.arcgisonline.com/ArcGIS/rest/services/{variant}/MapServer/tile/{z}/{y}/{x}",options:{variant:"World_Street_Map",attribution:"Tiles © Esri"},variants:{WorldStreetMap:{options:{attribution:"{attribution.Esri} — Source: Esri, DeLorme, NAVTEQ, USGS, Intermap, iPC, NRCAN, Esri Japan, METI, Esri China (Hong Kong), Esri (Thailand), TomTom, 2012"}},DeLorme:{options:{variant:"Specialty/DeLorme_World_Base_Map",minZoom:1,maxZoom:11,attribution:"{attribution.Esri} — Copyright: ©2012 DeLorme"}},WorldTopoMap:{options:{variant:"World_Topo_Map",attribution:"{attribution.Esri} — Esri, DeLorme, NAVTEQ, TomTom, Intermap, iPC, USGS, FAO, NPS, NRCAN, GeoBase, Kadaster NL, Ordnance Survey, Esri Japan, METI, Esri China (Hong Kong), and the GIS User Community"}},WorldImagery:{options:{variant:"World_Imagery",attribution:"{attribution.Esri} — Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community"}},WorldTerrain:{options:{variant:"World_Terrain_Base",maxZoom:13,attribution:"{attribution.Esri} — Source: USGS, Esri, TANA, DeLorme, and NPS"}},WorldShadedRelief:{options:{variant:"World_Shaded_Relief",maxZoom:13,attribution:"{attribution.Esri} — Source: Esri"}},WorldPhysical:{options:{variant:"World_Physical_Map",maxZoom:8,attribution:"{attribution.Esri} — Source: US National Park Service"}},OceanBasemap:{options:{variant:"Ocean_Basemap",maxZoom:13,attribution:"{attribution.Esri} — Sources: GEBCO, NOAA, CHS, OSU, UNH, CSUMB, National Geographic, DeLorme, NAVTEQ, and Esri"}},NatGeoWorldMap:{options:{variant:"NatGeo_World_Map",maxZoom:16,attribution:"{attribution.Esri} — National Geographic, Esri, DeLorme, NAVTEQ, UNEP-WCMC, USGS, NASA, ESA, METI, NRCAN, GEBCO, NOAA, iPC"}},WorldGrayCanvas:{options:{variant:"Canvas/World_Light_Gray_Base",maxZoom:16,attribution:"{attribution.Esri} — Esri, DeLorme, NAVTEQ"}}}},OpenWeatherMap:{url:"http://{s}.tile.openweathermap.org/map/{variant}/{z}/{x}/{y}.png",options:{maxZoom:19,attribution:'Map data © OpenWeatherMap',opacity:.5},variants:{Clouds:"clouds",CloudsClassic:"clouds_cls",Precipitation:"precipitation",PrecipitationClassic:"precipitation_cls",Rain:"rain",RainClassic:"rain_cls",Pressure:"pressure",PressureContour:"pressure_cntr",Wind:"wind",Temperature:"temp",Snow:"snow"}},HERE:{url:"//{s}.{base}.maps.cit.api.here.com/maptile/2.1/{type}/{mapID}/{variant}/{z}/{x}/{y}/{size}/{format}?app_id={app_id}&app_code={app_code}&lg={language}",options:{attribution:'Map © 1987-2014 HERE',subdomains:"1234",mapID:"newest",app_id:"",app_code:"",base:"base",variant:"normal.day",maxZoom:20,type:"maptile",language:"eng",format:"png8",size:"256"},variants:{normalDay:"normal.day",normalDayCustom:"normal.day.custom",normalDayGrey:"normal.day.grey",normalDayMobile:"normal.day.mobile",normalDayGreyMobile:"normal.day.grey.mobile",normalDayTransit:"normal.day.transit",normalDayTransitMobile:"normal.day.transit.mobile",normalNight:"normal.night",normalNightMobile:"normal.night.mobile",normalNightGrey:"normal.night.grey",normalNightGreyMobile:"normal.night.grey.mobile",basicMap:{options:{type:"basetile"}},mapLabels:{options:{type:"labeltile",format:"png"}},trafficFlow:{options:{base:"traffic",type:"flowtile"}},carnavDayGrey:"carnav.day.grey",hybridDay:{options:{base:"aerial",variant:"hybrid.day"}},hybridDayMobile:{options:{base:"aerial",variant:"hybrid.day.mobile"}},pedestrianDay:"pedestrian.day",pedestrianNight:"pedestrian.night",satelliteDay:{options:{base:"aerial",variant:"satellite.day"}},terrainDay:{options:{base:"aerial",variant:"terrain.day"}},terrainDayMobile:{options:{base:"aerial",variant:"terrain.day.mobile"}}}},Acetate:{url:"http://a{s}.acetate.geoiq.com/tiles/{variant}/{z}/{x}/{y}.png",options:{attribution:"©2012 Esri & Stamen, Data from OSM and Natural Earth",subdomains:"0123",minZoom:2,maxZoom:18,variant:"acetate-base"},variants:{basemap:"acetate-base",terrain:"terrain",all:"acetate-hillshading",foreground:"acetate-fg",roads:"acetate-roads",labels:"acetate-labels",hillshading:"hillshading"}},FreeMapSK:{url:"http://t{s}.freemap.sk/T/{z}/{x}/{y}.jpeg",options:{minZoom:8,maxZoom:16,subdomains:"1234",bounds:[[47.204642,15.996093],[49.830896,22.576904]],attribution:'{attribution.OpenStreetMap}, vizualization CC-By-SA 2.0 Freemap.sk'}},MtbMap:{url:"http://tile.mtbmap.cz/mtbmap_tiles/{z}/{x}/{y}.png",options:{attribution:"{attribution.OpenStreetMap} & USGS"}},CartoDB:{url:"http://{s}.basemaps.cartocdn.com/{variant}/{z}/{x}/{y}.png",options:{attribution:'{attribution.OpenStreetMap} © CartoDB',subdomains:"abcd",maxZoom:19,variant:"light_all"},variants:{Positron:"light_all",PositronNoLabels:"light_nolabels",PositronOnlyLabels:"light_only_labels",DarkMatter:"dark_all",DarkMatterNoLabels:"dark_nolabels",DarkMatterOnlyLabels:"dark_only_labels"}},HikeBike:{url:"http://{s}.tiles.wmflabs.org/{variant}/{z}/{x}/{y}.png",options:{maxZoom:19,attribution:"{attribution.OpenStreetMap}",variant:"hikebike"},variants:{HikeBike:{},HillShading:{options:{maxZoom:15,variant:"hillshading"}}}},BasemapAT:{url:"//maps{s}.wien.gv.at/basemap/{variant}/normal/google3857/{z}/{y}/{x}.{format}",options:{maxZoom:19,attribution:'Datenquelle: basemap.at',subdomains:["","1","2","3","4"],format:"png",bounds:[[46.35877,8.782379],[49.037872,17.189532]],variant:"geolandbasemap"},variants:{basemap:"geolandbasemap",grau:"bmapgrau",overlay:"bmapoverlay",highdpi:{options:{variant:"bmaphidpi",format:"jpeg"}},orthofoto:{options:{variant:"bmaporthofoto30cm",format:"jpeg"}}}},NASAGIBS:{url:"//map1.vis.earthdata.nasa.gov/wmts-webmerc/{variant}/default/{time}/{tilematrixset}{maxZoom}/{z}/{y}/{x}.{format}",options:{attribution:'Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (ESDIS) with funding provided by NASA/HQ.',bounds:[[-85.0511287776,-179.999999975],[85.0511287776,179.999999975]],minZoom:1,maxZoom:9,format:"jpg",time:"",tilematrixset:"GoogleMapsCompatible_Level"},variants:{ModisTerraTrueColorCR:"MODIS_Terra_CorrectedReflectance_TrueColor",ModisTerraBands367CR:"MODIS_Terra_CorrectedReflectance_Bands367",ViirsEarthAtNight2012:{options:{variant:"VIIRS_CityLights_2012",maxZoom:8}},ModisTerraLSTDay:{options:{variant:"MODIS_Terra_Land_Surface_Temp_Day",format:"png",maxZoom:7,opacity:.75}},ModisTerraSnowCover:{options:{variant:"MODIS_Terra_Snow_Cover",format:"png",maxZoom:8,opacity:.75}},ModisTerraAOD:{options:{variant:"MODIS_Terra_Aerosol",format:"png",maxZoom:6,opacity:.75}},ModisTerraChlorophyll:{options:{variant:"MODIS_Terra_Chlorophyll_A",format:"png",maxZoom:7,opacity:.75}}}},NLS:{url:"//nls-{s}.tileserver.com/nls/{z}/{x}/{y}.jpg",options:{attribution:'National Library of Scotland Historic Maps',bounds:[[49.6,-12],[61.7,3]],minZoom:1,maxZoom:18,subdomains:"0123"}}},a.tileLayer.provider=function(b,c){return new a.TileLayer.Provider(b,c)},a}),L.GeoSearch={},L.GeoSearch.Provider={},L.GeoSearch.Result=function(a,b,c,d,e){this.X=a,this.Y=b,this.Label=c,this.bounds=d,e&&(this.details=e)},L.Control.GeoSearch=L.Control.extend({options:{position:"topcenter",showMarker:!0,retainZoomLevel:!1,draggable:!1},_config:{country:"",searchLabel:"search for address ...",notFoundMessage:"Sorry, that address could not be found.",messageHideDelay:3e3,zoomLevel:18},initialize:function(a){L.Util.extend(this.options,a),L.Util.extend(this._config,a)},onAdd:function(a){for(var b=a._controlContainer,c=b.childNodes,d=!1,e=0,f=c.length;e0?(this._map.fireEvent("geosearch_foundlocations",{Locations:a}),this._showLocation(a[0])):this._printError(this._config.notFoundMessage)},_showLocation:function(a){1==this.options.showMarker&&("undefined"==typeof this._positionMarker?this._positionMarker=L.marker([a.Y,a.X],{draggable:this.options.draggable}).addTo(this._map):this._positionMarker.setLatLng([a.Y,a.X])),!this.options.retainZoomLevel&&a.bounds&&a.bounds.isValid()?this._map.fitBounds(a.bounds):this._map.setView([a.Y,a.X],this._getZoomLevel(),!1),this._map.fireEvent("geosearch_showlocation",{Location:a,Marker:this._positionMarker})},_printError:function(a){var b=this._resultslist;b.innerHTML="
  • "+a+"
  • ",b.style.display="block",this._map.fireEvent("geosearch_error",{message:a}),setTimeout(function(){b.style.display="none"},3e3)},_onKeyUp:function(a){var b=27,c=13;a.keyCode===b?(this._searchbox.value="",this._map._container.focus()):a.keyCode===c&&(a.preventDefault(),a.stopPropagation(),this.geosearch(this._searchbox.value))},_getZoomLevel:function(){return this.options.retainZoomLevel?this._map.zoom:this._config.zoomLevel}}),L.GeoSearch.Provider.Esri=L.Class.extend({options:{},initialize:function(a){a=L.Util.setOptions(this,a)},GetServiceUrl:function(a){var b=L.Util.extend({text:a,f:"pjson"},this.options);return location.protocol+"//geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/find"+L.Util.getParamString(b)},ParseJSON:function(a){if(0==a.locations.length)return[];for(var b=[],c=0;c=e;)d=d.__parent;return this._currentShownBounds.contains(d.getLatLng())&&(this.options.animateAddingMarkers?this._animationAddLayer(a,d):this._animationAddLayerNonAnimated(a,d)),this},removeLayer:function(a){if(a instanceof L.LayerGroup){var b=[];for(var c in a._layers)b.push(a._layers[c]);return this.removeLayers(b)}return a.getLatLng?this._map?a.__parent?(this._unspiderfy&&(this._unspiderfy(),this._unspiderfyLayer(a)),this._removeLayer(a,!0),this._featureGroup.hasLayer(a)&&(this._featureGroup.removeLayer(a),a.setOpacity&&a.setOpacity(1)),this):this:(!this._arraySplice(this._needsClustering,a)&&this.hasLayer(a)&&this._needsRemoving.push(a),this):(this._nonPointGroup.removeLayer(a),this)},addLayers:function(a){var b,c,d,e=this._map,f=this._featureGroup,g=this._nonPointGroup;for(b=0,c=a.length;b=0;b--)a.extend(this._needsClustering[b].getLatLng());return a.extend(this._nonPointGroup.getBounds()),a},eachLayer:function(a,b){var c,d=this._needsClustering.slice();for(this._topClusterLevel&&this._topClusterLevel.getAllChildMarkers(d),c=d.length-1;c>=0;c--)a.call(b,d[c]);this._nonPointGroup.eachLayer(a,b)},getLayers:function(){var a=[];return this.eachLayer(function(b){a.push(b)}),a},getLayer:function(a){var b=null;return this.eachLayer(function(c){L.stamp(c)===a&&(b=c)}),b},hasLayer:function(a){if(!a)return!1;var b,c=this._needsClustering;for(b=c.length-1;b>=0;b--)if(c[b]===a)return!0;for(c=this._needsRemoving,b=c.length-1;b>=0;b--)if(c[b]===a)return!1;return!(!a.__parent||a.__parent._group!==this)||this._nonPointGroup.hasLayer(a)},zoomToShowLayer:function(a,b){var c=function(){if((a._icon||a.__parent._icon)&&!this._inZoomAnimation)if(this._map.off("moveend",c,this),this.off("animationend",c,this),a._icon)b();else if(a.__parent._icon){var d=function(){this.off("spiderfied",d,this),b()};this.on("spiderfied",d,this),a.__parent.spiderfy()}};a._icon&&this._map.getBounds().contains(a.getLatLng())?b():a.__parent._zoom=0;c--)if(a[c]===b)return a.splice(c,1),!0},_removeLayer:function(a,b,c){var d=this._gridClusters,e=this._gridUnclustered,f=this._featureGroup,g=this._map;if(b)for(var h=this._maxZoom;h>=0&&e[h].removeObject(a,g.project(a.getLatLng(),h));h--);var i,j=a.__parent,k=j._markers;for(this._arraySplice(k,a);j&&(j._childCount--,!(j._zoom<0));)b&&j._childCount<=1?(i=j._markers[0]===a?j._markers[1]:j._markers[0],d[j._zoom].removeObject(j,g.project(j._cLatLng,j._zoom)),e[j._zoom].addObject(i,g.project(i.getLatLng(),j._zoom)),this._arraySplice(j.__parent._childClusters,j),j.__parent._markers.push(i),i.__parent=j.__parent,j._icon&&(f.removeLayer(j),c||f.addLayer(i))):(j._recalculateBounds(),c&&j._icon||j._updateIcon()),j=j.__parent;delete a.__parent},_isOrIsParent:function(a,b){for(;b;){if(a===b)return!0;b=b.parentNode}return!1},_propagateEvent:function(a){if(a.layer instanceof L.MarkerCluster){if(a.originalEvent&&this._isOrIsParent(a.layer._icon,a.originalEvent.relatedTarget))return;a.type="cluster"+a.type}this.fire(a.type,a)},_defaultIconCreateFunction:function(a){var b=a.getChildCount(),c=" marker-cluster-";return c+=b<10?"small":b<100?"medium":"large",new L.DivIcon({html:"
    "+b+"
    ",className:"marker-cluster"+c,iconSize:new L.Point(40,40)})},_bindEvents:function(){var a=this._map,b=this.options.spiderfyOnMaxZoom,c=this.options.showCoverageOnHover,d=this.options.zoomToBoundsOnClick;(b||d)&&this.on("clusterclick",this._zoomOrSpiderfy,this),c&&(this.on("clustermouseover",this._showCoverage,this),this.on("clustermouseout",this._hideCoverage,this),a.on("zoomend",this._hideCoverage,this))},_zoomOrSpiderfy:function(a){var b=this._map;b.getMaxZoom()===b.getZoom()?this.options.spiderfyOnMaxZoom&&a.layer.spiderfy():this.options.zoomToBoundsOnClick&&a.layer.zoomToBounds(),a.originalEvent&&13===a.originalEvent.keyCode&&b._container.focus()},_showCoverage:function(a){var b=this._map;this._inZoomAnimation||(this._shownPolygon&&b.removeLayer(this._shownPolygon),a.layer.getChildCount()>2&&a.layer!==this._spiderfied&&(this._shownPolygon=new L.Polygon(a.layer.getConvexHull(),this.options.polygonOptions),b.addLayer(this._shownPolygon)))},_hideCoverage:function(){this._shownPolygon&&(this._map.removeLayer(this._shownPolygon),this._shownPolygon=null)},_unbindEvents:function(){var a=this.options.spiderfyOnMaxZoom,b=this.options.showCoverageOnHover,c=this.options.zoomToBoundsOnClick,d=this._map;(a||c)&&this.off("clusterclick",this._zoomOrSpiderfy,this),b&&(this.off("clustermouseover",this._showCoverage,this),this.off("clustermouseout",this._hideCoverage,this),d.off("zoomend",this._hideCoverage,this))},_zoomEnd:function(){this._map&&(this._mergeSplitClusters(),this._zoom=this._map._zoom,this._currentShownBounds=this._getExpandedVisibleBounds())},_moveEnd:function(){if(!this._inZoomAnimation){var a=this._getExpandedVisibleBounds();this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,this._zoom,a),this._topClusterLevel._recursivelyAddChildrenToMap(null,this._map._zoom,a),this._currentShownBounds=a}},_generateInitialClusters:function(){var a=this._map.getMaxZoom(),b=this.options.maxClusterRadius;this.options.disableClusteringAtZoom&&(a=this.options.disableClusteringAtZoom-1),this._maxZoom=a,this._gridClusters={},this._gridUnclustered={};for(var c=a;c>=0;c--)this._gridClusters[c]=new L.DistanceGrid(b),this._gridUnclustered[c]=new L.DistanceGrid(b);this._topClusterLevel=new L.MarkerCluster(this,-1)},_addLayer:function(a,b){var c,d,e=this._gridClusters,f=this._gridUnclustered;for(this.options.singleMarkerMode&&(a.options.icon=this.options.iconCreateFunction({getChildCount:function(){return 1},getAllChildMarkers:function(){return[a]}}));b>=0;b--){c=this._map.project(a.getLatLng(),b);var g=e[b].getNearObject(c);if(g)return g._addChild(a),void(a.__parent=g);if(g=f[b].getNearObject(c)){var h=g.__parent;h&&this._removeLayer(g,!1);var i=new L.MarkerCluster(this,b,g,a);e[b].addObject(i,this._map.project(i._cLatLng,b)),g.__parent=i,a.__parent=i;var j=i;for(d=b-1;d>h._zoom;d--)j=new L.MarkerCluster(this,d,j),e[d].addObject(j,this._map.project(g.getLatLng(),d));for(h._addChild(j),d=b;d>=0&&f[d].removeObject(g,this._map.project(g.getLatLng(),d));d--);return}f[b].addObject(a,c)}this._topClusterLevel._addChild(a),a.__parent=this._topClusterLevel},_enqueue:function(a){this._queue.push(a),this._queueTimeout||(this._queueTimeout=setTimeout(L.bind(this._processQueue,this),300))},_processQueue:function(){for(var a=0;athis._map._zoom?(this._animationStart(),this._animationZoomOut(this._zoom,this._map._zoom)):this._moveEnd()},_getExpandedVisibleBounds:function(){if(!this.options.removeOutsideVisibleBounds)return this.getBounds();var a=this._map,b=a.getBounds(),c=b._southWest,d=b._northEast,e=L.Browser.mobile?0:Math.abs(c.lat-d.lat),f=L.Browser.mobile?0:Math.abs(c.lng-d.lng);return new L.LatLngBounds(new L.LatLng(c.lat-e,c.lng-f,!0),new L.LatLng(d.lat+e,d.lng+f,!0))},_animationAddLayerNonAnimated:function(a,b){if(b===a)this._featureGroup.addLayer(a);else if(2===b._childCount){b._addToMap();var c=b.getAllChildMarkers();this._featureGroup.removeLayer(c[0]),this._featureGroup.removeLayer(c[1])}else b._updateIcon()}}),L.MarkerClusterGroup.include(L.DomUtil.TRANSITION?{_animationStart:function(){this._map._mapPane.className+=" leaflet-cluster-anim",this._inZoomAnimation++},_animationEnd:function(){this._map&&(this._map._mapPane.className=this._map._mapPane.className.replace(" leaflet-cluster-anim","")),this._inZoomAnimation--,this.fire("animationend")},_animationZoomIn:function(a,b){var c,d=this._getExpandedVisibleBounds(),e=this._featureGroup;this._topClusterLevel._recursively(d,a,0,function(f){var g,h=f._latlng,i=f._markers;for(d.contains(h)||(h=null),f._isSingleParent()&&a+1===b?(e.removeLayer(f),f._recursivelyAddChildrenToMap(null,b,d)):(f.setOpacity(0),f._recursivelyAddChildrenToMap(h,b,d)),c=i.length-1;c>=0;c--)g=i[c],d.contains(g._latlng)||e.removeLayer(g)}),this._forceLayout(),this._topClusterLevel._recursivelyBecomeVisible(d,b),e.eachLayer(function(a){a instanceof L.MarkerCluster||!a._icon||a.setOpacity(1)}),this._topClusterLevel._recursively(d,a,b,function(a){a._recursivelyRestoreChildPositions(b)}),this._enqueue(function(){this._topClusterLevel._recursively(d,a,0,function(a){e.removeLayer(a),a.setOpacity(1)}),this._animationEnd()})},_animationZoomOut:function(a,b){this._animationZoomOutSingle(this._topClusterLevel,a-1,b),this._topClusterLevel._recursivelyAddChildrenToMap(null,b,this._getExpandedVisibleBounds()),this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,a,this._getExpandedVisibleBounds())},_animationZoomOutSingle:function(a,b,c){var d=this._getExpandedVisibleBounds();a._recursivelyAnimateChildrenInAndAddSelfToMap(d,b+1,c);var e=this;this._forceLayout(),a._recursivelyBecomeVisible(d,c),this._enqueue(function(){if(1===a._childCount){var f=a._markers[0];f.setLatLng(f.getLatLng()),f.setOpacity(1)}else a._recursively(d,c,0,function(a){a._recursivelyRemoveChildrenFromMap(d,b+1)});e._animationEnd()})},_animationAddLayer:function(a,b){var c=this,d=this._featureGroup;d.addLayer(a),b!==a&&(b._childCount>2?(b._updateIcon(),this._forceLayout(),this._animationStart(),a._setPos(this._map.latLngToLayerPoint(b.getLatLng())),a.setOpacity(0),this._enqueue(function(){d.removeLayer(a),a.setOpacity(1),c._animationEnd()})):(this._forceLayout(),c._animationStart(),c._animationZoomOutSingle(b,this._map.getMaxZoom(),this._map.getZoom())))},_forceLayout:function(){L.Util.falseFn(b.body.offsetWidth)}}:{_animationStart:function(){},_animationZoomIn:function(a,b){this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,a),this._topClusterLevel._recursivelyAddChildrenToMap(null,b,this._getExpandedVisibleBounds())},_animationZoomOut:function(a,b){this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,a), +this._topClusterLevel._recursivelyAddChildrenToMap(null,b,this._getExpandedVisibleBounds())},_animationAddLayer:function(a,b){this._animationAddLayerNonAnimated(a,b)}}),L.markerClusterGroup=function(a){return new L.MarkerClusterGroup(a)},L.MarkerCluster=L.Marker.extend({initialize:function(a,b,c,d){L.Marker.prototype.initialize.call(this,c?c._cLatLng||c.getLatLng():new L.LatLng(0,0),{icon:this}),this._group=a,this._zoom=b,this._markers=[],this._childClusters=[],this._childCount=0,this._iconNeedsUpdate=!0,this._bounds=new L.LatLngBounds,c&&this._addChild(c),d&&this._addChild(d)},getAllChildMarkers:function(a){a=a||[];for(var b=this._childClusters.length-1;b>=0;b--)this._childClusters[b].getAllChildMarkers(a);for(var c=this._markers.length-1;c>=0;c--)a.push(this._markers[c]);return a},getChildCount:function(){return this._childCount},zoomToBounds:function(){for(var a,b=this._childClusters.slice(),c=this._group._map,d=c.getBoundsZoom(this._bounds),e=this._zoom+1,f=c.getZoom();b.length>0&&d>e;){e++;var g=[];for(a=0;ae?this._group._map.setView(this._latlng,e):d<=f?this._group._map.setView(this._latlng,f+1):this._group._map.fitBounds(this._bounds)},getBounds:function(){var a=new L.LatLngBounds;return a.extend(this._bounds),a},_updateIcon:function(){this._iconNeedsUpdate=!0,this._icon&&this.setIcon(this)},createIcon:function(){return this._iconNeedsUpdate&&(this._iconObj=this._group.options.iconCreateFunction(this),this._iconNeedsUpdate=!1),this._iconObj.createIcon()},createShadow:function(){return this._iconObj.createShadow()},_addChild:function(a,b){this._iconNeedsUpdate=!0,this._expandBounds(a),a instanceof L.MarkerCluster?(b||(this._childClusters.push(a),a.__parent=this),this._childCount+=a._childCount):(b||this._markers.push(a),this._childCount++),this.__parent&&this.__parent._addChild(a,!0)},_expandBounds:function(a){var b,c=a._wLatLng||a._latlng;a instanceof L.MarkerCluster?(this._bounds.extend(a._bounds),b=a._childCount):(this._bounds.extend(c),b=1),this._cLatLng||(this._cLatLng=a._cLatLng||c);var d=this._childCount+b;this._wLatLng?(this._wLatLng.lat=(c.lat*b+this._wLatLng.lat*this._childCount)/d,this._wLatLng.lng=(c.lng*b+this._wLatLng.lng*this._childCount)/d):this._latlng=this._wLatLng=new L.LatLng(c.lat,c.lng)},_addToMap:function(a){a&&(this._backupLatlng=this._latlng,this.setLatLng(a)),this._group._featureGroup.addLayer(this)},_recursivelyAnimateChildrenIn:function(a,b,c){this._recursively(a,0,c-1,function(a){var c,d,e=a._markers;for(c=e.length-1;c>=0;c--)d=e[c],d._icon&&(d._setPos(b),d.setOpacity(0))},function(a){var c,d,e=a._childClusters;for(c=e.length-1;c>=0;c--)d=e[c],d._icon&&(d._setPos(b),d.setOpacity(0))})},_recursivelyAnimateChildrenInAndAddSelfToMap:function(a,b,c){this._recursively(a,c,0,function(d){d._recursivelyAnimateChildrenIn(a,d._group._map.latLngToLayerPoint(d.getLatLng()).round(),b),d._isSingleParent()&&b-1===c?(d.setOpacity(1),d._recursivelyRemoveChildrenFromMap(a,b)):d.setOpacity(0),d._addToMap()})},_recursivelyBecomeVisible:function(a,b){this._recursively(a,0,b,null,function(a){a.setOpacity(1)})},_recursivelyAddChildrenToMap:function(a,b,c){this._recursively(c,-1,b,function(d){if(b!==d._zoom)for(var e=d._markers.length-1;e>=0;e--){var f=d._markers[e];c.contains(f._latlng)&&(a&&(f._backupLatlng=f.getLatLng(),f.setLatLng(a),f.setOpacity&&f.setOpacity(0)),d._group._featureGroup.addLayer(f))}},function(b){b._addToMap(a)})},_recursivelyRestoreChildPositions:function(a){for(var b=this._markers.length-1;b>=0;b--){var c=this._markers[b];c._backupLatlng&&(c.setLatLng(c._backupLatlng),delete c._backupLatlng)}if(a-1===this._zoom)for(var d=this._childClusters.length-1;d>=0;d--)this._childClusters[d]._restorePosition();else for(var e=this._childClusters.length-1;e>=0;e--)this._childClusters[e]._recursivelyRestoreChildPositions(a)},_restorePosition:function(){this._backupLatlng&&(this.setLatLng(this._backupLatlng),delete this._backupLatlng)},_recursivelyRemoveChildrenFromMap:function(a,b,c){var d,e;this._recursively(a,-1,b-1,function(a){for(e=a._markers.length-1;e>=0;e--)d=a._markers[e],c&&c.contains(d._latlng)||(a._group._featureGroup.removeLayer(d),d.setOpacity&&d.setOpacity(1))},function(a){for(e=a._childClusters.length-1;e>=0;e--)d=a._childClusters[e],c&&c.contains(d._latlng)||(a._group._featureGroup.removeLayer(d),d.setOpacity&&d.setOpacity(1))})},_recursively:function(a,b,c,d,e){var f,g,h=this._childClusters,i=this._zoom;if(b>i)for(f=h.length-1;f>=0;f--)g=h[f],a.intersects(g._bounds)&&g._recursively(a,b,c,d,e);else if(d&&d(this),e&&this._zoom===c&&e(this),c>i)for(f=h.length-1;f>=0;f--)g=h[f],a.intersects(g._bounds)&&g._recursively(a,b,c,d,e)},_recalculateBounds:function(){var a,b=this._markers,c=this._childClusters;for(this._bounds=new L.LatLngBounds,delete this._wLatLng,a=b.length-1;a>=0;a--)this._expandBounds(b[a]);for(a=c.length-1;a>=0;a--)this._expandBounds(c[a])},_isSingleParent:function(){return this._childClusters.length>0&&this._childClusters[0]._childCount===this._childCount}}),L.DistanceGrid=function(a){this._cellSize=a,this._sqCellSize=a*a,this._grid={},this._objectPoint={}},L.DistanceGrid.prototype={addObject:function(a,b){var c=this._getCoord(b.x),d=this._getCoord(b.y),e=this._grid,f=e[d]=e[d]||{},g=f[c]=f[c]||[],h=L.Util.stamp(a);this._objectPoint[h]=b,g.push(a)},updateObject:function(a,b){this.removeObject(a),this.addObject(a,b)},removeObject:function(a,b){var c,d,e=this._getCoord(b.x),f=this._getCoord(b.y),g=this._grid,h=g[f]=g[f]||{},i=h[e]=h[e]||[];for(delete this._objectPoint[L.Util.stamp(a)],c=0,d=i.length;c=0;c--)d=b[c],e=this.getDistant(d,a),e>0&&(h.push(d),e>f&&(f=e,g=d));return{maxPoint:g,newPoints:h}},buildConvexHull:function(a,b){var c=[],d=this.findMostDistantPointFromBaseLine(a,b);return d.maxPoint?(c=c.concat(this.buildConvexHull([a[0],d.maxPoint],d.newPoints)),c=c.concat(this.buildConvexHull([d.maxPoint,a[1]],d.newPoints))):[a[0]]},getConvexHull:function(a){var b,c=!1,d=!1,e=null,f=null;for(b=a.length-1;b>=0;b--){var g=a[b];(c===!1||g.lat>c)&&(e=g,c=g.lat),(d===!1||g.lat=0;b--)a=c[b].getLatLng(),d.push(a);return L.QuickHull.getConvexHull(d)}}),L.MarkerCluster.include({_2PI:2*Math.PI,_circleFootSeparation:25,_circleStartAngle:Math.PI/6,_spiralFootSeparation:28,_spiralLengthStart:11,_spiralLengthFactor:5,_circleSpiralSwitchover:9,spiderfy:function(){if(this._group._spiderfied!==this&&!this._group._inZoomAnimation){var a,b=this.getAllChildMarkers(),c=this._group,d=c._map,e=d.latLngToLayerPoint(this._latlng);this._group._unspiderfy(),this._group._spiderfied=this,b.length>=this._circleSpiralSwitchover?a=this._generatePointsSpiral(b.length,e):(e.y+=10,a=this._generatePointsCircle(b.length,e)),this._animationSpiderfy(b,a)}},unspiderfy:function(a){this._group._inZoomAnimation||(this._animationUnspiderfy(a),this._group._spiderfied=null)},_generatePointsCircle:function(a,b){var c,d,e=this._group.options.spiderfyDistanceMultiplier*this._circleFootSeparation*(2+a),f=e/this._2PI,g=this._2PI/a,h=[];for(h.length=a,c=a-1;c>=0;c--)d=this._circleStartAngle+c*g,h[c]=new L.Point(b.x+f*Math.cos(d),b.y+f*Math.sin(d))._round();return h},_generatePointsSpiral:function(a,b){var c,d=this._group.options.spiderfyDistanceMultiplier*this._spiralLengthStart,e=this._group.options.spiderfyDistanceMultiplier*this._spiralFootSeparation,f=this._group.options.spiderfyDistanceMultiplier*this._spiralLengthFactor,g=0,h=[];for(h.length=a,c=a-1;c>=0;c--)g+=e/d+5e-4*c,h[c]=new L.Point(b.x+d*Math.cos(g),b.y+d*Math.sin(g))._round(),d+=this._2PI*f/g;return h},_noanimationUnspiderfy:function(){var a,b,c=this._group,d=c._map,e=c._featureGroup,f=this.getAllChildMarkers();for(this.setOpacity(1),b=f.length-1;b>=0;b--)a=f[b],e.removeLayer(a),a._preSpiderfyLatlng&&(a.setLatLng(a._preSpiderfyLatlng),delete a._preSpiderfyLatlng),a.setZIndexOffset&&a.setZIndexOffset(0),a._spiderLeg&&(d.removeLayer(a._spiderLeg),delete a._spiderLeg);c._spiderfied=null}}),L.MarkerCluster.include(L.DomUtil.TRANSITION?{SVG_ANIMATION:function(){return b.createElementNS("http://www.w3.org/2000/svg","animate").toString().indexOf("SVGAnimate")>-1}(),_animationSpiderfy:function(a,c){var d,e,f,g,h=this,i=this._group,j=i._map,k=i._featureGroup,l=j.latLngToLayerPoint(this._latlng);for(d=a.length-1;d>=0;d--)e=a[d],e.setOpacity?(e.setZIndexOffset(1e6),e.setOpacity(0),k.addLayer(e),e._setPos(l)):k.addLayer(e);i._forceLayout(),i._animationStart();var m=L.Path.SVG?0:.3,n=L.Path.SVG_NS;for(d=a.length-1;d>=0;d--)if(g=j.layerPointToLatLng(c[d]),e=a[d],e._preSpiderfyLatlng=e._latlng,e.setLatLng(g),e.setOpacity&&e.setOpacity(1),f=new L.Polyline([h._latlng,g],{weight:1.5,color:"#222",opacity:m}),j.addLayer(f),e._spiderLeg=f,L.Path.SVG&&this.SVG_ANIMATION){var o=f._path.getTotalLength();f._path.setAttribute("stroke-dasharray",o+","+o);var p=b.createElementNS(n,"animate");p.setAttribute("attributeName","stroke-dashoffset"),p.setAttribute("begin","indefinite"),p.setAttribute("from",o),p.setAttribute("to",0),p.setAttribute("dur",.25),f._path.appendChild(p),p.beginElement(),p=b.createElementNS(n,"animate"),p.setAttribute("attributeName","stroke-opacity"),p.setAttribute("attributeName","stroke-opacity"),p.setAttribute("begin","indefinite"),p.setAttribute("from",0),p.setAttribute("to",.5),p.setAttribute("dur",.25),f._path.appendChild(p),p.beginElement()}if(h.setOpacity(.3),L.Path.SVG)for(this._group._forceLayout(),d=a.length-1;d>=0;d--)e=a[d]._spiderLeg,e.options.opacity=.5,e._path.setAttribute("stroke-opacity",.5);setTimeout(function(){i._animationEnd(),i.fire("spiderfied")},200)},_animationUnspiderfy:function(a){var b,c,d,e=this._group,f=e._map,g=e._featureGroup,h=a?f._latLngToNewLayerPoint(this._latlng,a.zoom,a.center):f.latLngToLayerPoint(this._latlng),i=this.getAllChildMarkers(),j=L.Path.SVG&&this.SVG_ANIMATION;for(e._animationStart(),this.setOpacity(1),c=i.length-1;c>=0;c--)b=i[c],b._preSpiderfyLatlng&&(b.setLatLng(b._preSpiderfyLatlng),delete b._preSpiderfyLatlng,b.setOpacity?(b._setPos(h),b.setOpacity(0)):g.removeLayer(b),j&&(d=b._spiderLeg._path.childNodes[0],d.setAttribute("to",d.getAttribute("from")),d.setAttribute("from",0),d.beginElement(),d=b._spiderLeg._path.childNodes[1],d.setAttribute("from",.5),d.setAttribute("to",0),d.setAttribute("stroke-opacity",0),d.beginElement(),b._spiderLeg._path.setAttribute("stroke-opacity",0)));setTimeout(function(){var a=0;for(c=i.length-1;c>=0;c--)b=i[c],b._spiderLeg&&a++;for(c=i.length-1;c>=0;c--)b=i[c],b._spiderLeg&&(b.setOpacity&&(b.setOpacity(1),b.setZIndexOffset(0)),a>1&&g.removeLayer(b),f.removeLayer(b._spiderLeg),delete b._spiderLeg);e._animationEnd()},200)}}:{_animationSpiderfy:function(a,b){var c,d,e,f,g=this._group,h=g._map,i=g._featureGroup;for(c=a.length-1;c>=0;c--)f=h.layerPointToLatLng(b[c]),d=a[c],d._preSpiderfyLatlng=d._latlng,d.setLatLng(f),d.setZIndexOffset&&d.setZIndexOffset(1e6),i.addLayer(d),e=new L.Polyline([this._latlng,f],{weight:1.5,color:"#222"}),h.addLayer(e),d._spiderLeg=e;this.setOpacity(.3),g.fire("spiderfied")},_animationUnspiderfy:function(){this._noanimationUnspiderfy()}}),L.MarkerClusterGroup.include({_spiderfied:null,_spiderfierOnAdd:function(){this._map.on("click",this._unspiderfyWrapper,this),this._map.options.zoomAnimation&&this._map.on("zoomstart",this._unspiderfyZoomStart,this),this._map.on("zoomend",this._noanimationUnspiderfy,this),L.Path.SVG&&!L.Browser.touch&&this._map._initPathRoot()},_spiderfierOnRemove:function(){this._map.off("click",this._unspiderfyWrapper,this),this._map.off("zoomstart",this._unspiderfyZoomStart,this),this._map.off("zoomanim",this._unspiderfyZoomAnim,this),this._unspiderfy()},_unspiderfyZoomStart:function(){this._map&&this._map.on("zoomanim",this._unspiderfyZoomAnim,this)},_unspiderfyZoomAnim:function(a){L.DomUtil.hasClass(this._map._mapPane,"leaflet-touching")||(this._map.off("zoomanim",this._unspiderfyZoomAnim,this),this._unspiderfy(a))},_unspiderfyWrapper:function(){this._unspiderfy()},_unspiderfy:function(a){this._spiderfied&&this._spiderfied.unspiderfy(a)},_noanimationUnspiderfy:function(){this._spiderfied&&this._spiderfied._noanimationUnspiderfy()},_unspiderfyLayer:function(a){a._spiderLeg&&(this._featureGroup.removeLayer(a),a.setOpacity(1),a.setZIndexOffset(0),this._map.removeLayer(a._spiderLeg),delete a._spiderLeg)}})}(window,document),function(a,b,c){"use strict";L.AwesomeMarkers={},L.AwesomeMarkers.version="2.0.1",L.AwesomeMarkers.Icon=L.Icon.extend({options:{iconSize:[35,45],iconAnchor:[17,42],popupAnchor:[1,-32],shadowAnchor:[10,12],shadowSize:[36,16],className:"awesome-marker",prefix:"glyphicon",spinClass:"fa-spin",extraClasses:"",icon:"home",markerColor:"blue",iconColor:"white"},initialize:function(a){a=L.Util.setOptions(this,a)},createIcon:function(){var a=b.createElement("div"),c=this.options;return c.icon&&(a.innerHTML=this._createInner()),c.bgPos&&(a.style.backgroundPosition=-c.bgPos.x+"px "+-c.bgPos.y+"px"),this._setIconStyles(a,"icon-"+c.markerColor),a},_createInner:function(){var a,b="",c="",d="",e=this.options;return a=e.icon.slice(0,e.prefix.length+1)===e.prefix+"-"?e.icon:e.prefix+"-"+e.icon,e.spin&&"string"==typeof e.spinClass&&(b=e.spinClass),e.iconColor&&("white"===e.iconColor||"black"===e.iconColor?c="icon-"+e.iconColor:d="style='color: "+e.iconColor+"' "),""},_setIconStyles:function(a,b){var c,d=this.options,e=L.point(d["shadow"===b?"shadowSize":"iconSize"]);c="shadow"===b?L.point(d.shadowAnchor||d.iconAnchor):L.point(d.iconAnchor),!c&&e&&(c=e.divideBy(2,!0)),a.className="awesome-marker-"+b+" "+d.className,c&&(a.style.marginLeft=-c.x+"px",a.style.marginTop=-c.y+"px"),e&&(a.style.width=e.x+"px",a.style.height=e.y+"px")},createShadow:function(){var a=b.createElement("div");return this._setIconStyles(a,"shadow"),a}}),L.AwesomeMarkers.icon=function(a){return new L.AwesomeMarkers.Icon(a)}}(this,document); //# sourceMappingURL=libs.min.js.map \ No newline at end of file diff --git a/plone/formwidget/geolocation/resources/libs.min.js.map b/plone/formwidget/geolocation/resources/libs.min.js.map index f5b1644..eaf6cee 100644 --- a/plone/formwidget/geolocation/resources/libs.min.js.map +++ b/plone/formwidget/geolocation/resources/libs.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["libs.js"],"names":["window","document","undefined","oldL","L","version","module","exports","define","amd","noConflict","this","Util","extend","dest","i","j","len","src","sources","Array","prototype","slice","call","arguments","length","hasOwnProperty","bind","fn","obj","args","apply","stamp","lastId","key","invokeEach","method","context","concat","limitExecByInterval","time","lock","execOnUnlock","wrapperFn","setTimeout","falseFn","formatNum","num","digits","pow","Math","round","trim","str","replace","splitWords","split","setOptions","options","getParamString","existingUrl","uppercase","params","push","encodeURIComponent","toUpperCase","indexOf","join","template","data","value","Error","isArray","Object","toString","emptyImageUrl","getPrefixed","name","prefixes","timeoutDefer","Date","timeToCall","max","lastTime","requestFn","requestAnimationFrame","cancelFn","cancelAnimationFrame","id","clearTimeout","requestAnimFrame","immediate","element","cancelAnimFrame","Class","props","NewClass","initialize","_initHooks","callInitHooks","F","proto","constructor","statics","includes","parent","__super__","_initHooksCalled","include","mergeOptions","addInitHook","init","eventsKey","Mixin","Events","addEventListener","types","event","type","indexKey","indexLenKey","typeIndex","events","contextId","action","hasEventListeners","removeEventListener","clearAllEventListeners","listeners","removed","splice","fireEvent","target","addOneTimeEventListener","handler","on","off","once","fire","ie","ielt9","ua","navigator","userAgent","toLowerCase","webkit","chrome","phantomjs","android","android23","search","gecko","mobile","orientation","msPointer","PointerEvent","MSPointerEvent","pointer","pointerEnabled","retina","devicePixelRatio","matchMedia","matches","doc","documentElement","ie3d","style","webkit3d","WebKitCSSMatrix","gecko3d","opera3d","any3d","L_DISABLE_3D","touch","L_NO_TOUCH","DocumentTouch","Browser","opera","mobileWebkit","mobileWebkit3d","mobileOpera","Point","x","y","clone","add","point","_add","subtract","_subtract","divideBy","_divideBy","multiplyBy","_multiplyBy","_round","floor","_floor","distanceTo","sqrt","equals","contains","abs","Bounds","a","b","points","min","getCenter","getBottomLeft","getTopRight","getSize","bounds","intersects","min2","max2","xIntersects","yIntersects","isValid","Transformation","c","d","_a","_b","_c","_d","transform","scale","_transform","untransform","DomUtil","get","getElementById","getStyle","el","currentStyle","defaultView","css","getComputedStyle","getViewportOffset","pos","top","left","docBody","body","docEl","offsetTop","offsetLeft","parseInt","offsetParent","scrollTop","scrollLeft","width","maxWidth","r","getBoundingClientRect","clientLeft","parentNode","documentIsLtr","_docIsLtrCached","_docIsLtr","create","tagName","className","container","createElement","appendChild","hasClass","classList","_getClass","RegExp","test","addClass","classes","_setClass","removeClass","remove","baseVal","setOpacity","opacity","filter","filterName","filters","item","e","Enabled","Opacity","testProp","getTranslateString","is3d","open","close","getScaleString","origin","preTranslateStr","scaleStr","setPosition","disable3D","_leaflet_pos","TRANSFORM","getPosition","TRANSITION","TRANSITION_END","disableTextSelection","DomEvent","preventDefault","enableTextSelection","userSelectProperty","_userSelect","disableImageDrag","enableImageDrag","LatLng","lat","lng","alt","parseFloat","isNaN","DEG_TO_RAD","PI","RAD_TO_DEG","MAX_MARGIN","latLng","margin","precision","other","R","d2r","dLat","dLon","lat1","lat2","sin1","sin","sin2","cos","atan2","wrap","lon","LatLngBounds","southWest","northEast","latlngs","latLngBounds","_southWest","_northEast","pad","bufferRatio","sw","ne","heightBuffer","widthBuffer","getSouthWest","getNorthEast","getNorthWest","getNorth","getWest","getSouthEast","getSouth","getEast","sw2","ne2","latIntersects","lngIntersects","toBBoxString","Projection","SphericalMercator","MAX_LATITUDE","project","latlng","log","tan","unproject","atan","exp","LonLat","CRS","latLngToPoint","zoom","projectedPoint","projection","transformation","pointToLatLng","untransformedPoint","s","Simple","EPSG3857","code","earthRadius","EPSG900913","EPSG4326","Map","crs","fadeAnimation","trackResize","markerZoomAnimation","_initContainer","_initLayout","_onResize","_initEvents","maxBounds","setMaxBounds","center","setView","reset","_handlers","_layers","_zoomBoundLayers","_tileLayersNum","_addLayers","layers","getZoom","_resetView","_limitZoom","setZoom","_loaded","_zoom","zoomIn","delta","zoomOut","setZoomAround","getZoomScale","viewHalf","containerPoint","latLngToContainerPoint","centerOffset","newCenter","containerPointToLatLng","fitBounds","getBounds","paddingTL","paddingTopLeft","padding","paddingBR","paddingBottomRight","getBoundsZoom","maxZoom","paddingOffset","swPoint","nePoint","fitWorld","panTo","pan","panBy","offset","_rawPanBy","_panInsideMaxBounds","panInsideBounds","_limitCenter","addLayer","layer","minZoom","_updateZoomLevels","zoomAnimation","TileLayer","_tileLayersToLoad","_onTileLayerLoad","_layerAdd","removeLayer","onRemove","hasLayer","eachLayer","invalidateSize","animate","oldSize","_sizeChanged","_initialCenter","newSize","oldCenter","debounceMoveend","_sizeTimer","addHandler","HandlerClass","enable","_container","_leaflet","_clearPanes","_clearControlPos","_clearHandlers","_checkIfLoaded","_moved","layerPointToLatLng","_getCenterLayerPoint","getPixelBounds","getMinZoom","_layersMinZoom","getMaxZoom","_layersMaxZoom","Infinity","inside","boundsSize","size","nw","se","zoomNotFound","_size","clientWidth","clientHeight","topLeftPoint","_getTopLeftPoint","getPixelOrigin","_initialTopLeftPoint","getPanes","_panes","getContainer","toZoom","getScaleZoom","LN2","latLngToLayerPoint","containerPointToLayerPoint","_getMapPanePos","layerPointToContainerPoint","layerPoint","mouseEventToContainerPoint","getMousePosition","mouseEventToLayerPoint","mouseEventToLatLng","position","_initPanes","_initControlPos","panes","_mapPane","mapPane","_createPane","_tilePane","tilePane","objectsPane","shadowPane","overlayPane","markerPane","popupPane","zoomHide","removeChild","preserveMapOffset","afterZoomAnim","zoomChanged","_getNewTopLeftPoint","loading","hard","_getZoomSpan","oldZoomSpan","onOff","_onMouseClick","_fireMouseEvent","_resizeRequest","_simulated","dragging","moved","boxZoom","_skipped","originalEvent","disable","whenReady","callback","onAdd","_latLngToNewLayerPoint","newZoom","topLeft","_getCenterOffset","centerPoint","viewBounds","_getBoundsOffset","_limitOffset","newBounds","pxBounds","nwOffset","seOffset","dx","_rebound","dy","right","ceil","map","Mercator","R_MINOR","R_MAJOR","r2","tmp","eccent","con","ts","phi","numIter","tol","dphi","EPSG3395","m","tileSize","subdomains","errorTileUrl","attribution","zoomOffset","unloadInvisibleTiles","updateWhenIdle","url","detectRetina","_url","_map","_animated","_zoomAnimated","viewreset","_reset","moveend","_update","zoomanim","_animateZoom","zoomend","_endZoomAnim","_limitedUpdate","addTo","bringToFront","pane","_setAutoZIndex","bringToBack","insertBefore","firstChild","getAttribution","_updateOpacity","setZIndex","zIndex","_updateZIndex","setUrl","noRedraw","redraw","compare","children","edgeZIndex","isFinite","tiles","_tiles","_bgBuffer","_tileContainer","tile","_tilesToLoad","reuseTiles","_unusedTiles","innerHTML","_clearBgBuffer","_getTileSize","zoomN","maxNativeZoom","tileBounds","_addTilesFromCenterOut","_removeOtherTiles","queue","_tileShouldBeLoaded","tilesToLoad","sort","fragment","createDocumentFragment","_addTile","tilePoint","continuousWorld","limit","_getWrapTileNum","noWrap","nwPoint","sePoint","kArr","_removeTile","onload","tilePos","_getTilePos","_getTile","_loadTile","_getZoomForUrl","zoomReverse","getTileUrl","_getSubdomain","z","_adjustTilePoint","tms","index","pop","_resetTile","_createTile","height","galleryimg","onselectstart","onmousemove","WebkitBackfaceVisibility","_layer","_tileOnLoad","onerror","_tileOnError","_tileLoaded","_clearBgBufferTimer","newUrl","tileLayer","WMS","defaultWmsParams","service","request","styles","format","transparent","wmsParams","_crs","_wmsVersion","projectionKey","bbox","setParams","wms","Canvas","async","_redrawTile","drawTile","_tilePoint","tileDrawn","canvas","ImageOverlay","_bounds","_image","_initImage","_onImageLoad","image","imageOverlay","Icon","createIcon","oldIcon","_createIcon","createShadow","_getIconUrl","img","_createImg","_setIconStyles","anchor","shadowAnchor","iconAnchor","marginLeft","marginTop","icon","Default","iconSize","popupAnchor","shadowSize","path","imagePath","scripts","getElementsByTagName","leafletRe","match","Marker","title","clickable","draggable","keyboard","zIndexOffset","riseOnHover","riseOffset","_latlng","update","_initIcon","_removeIcon","_removeShadow","getLatLng","setLatLng","setZIndexOffset","setIcon","_popup","bindPopup","_icon","_setPos","animation","classToAdd","addIcon","tabIndex","_initInteraction","_bringToFront","_resetZIndex","newShadow","_shadow","addShadow","_zIndex","opt","_onKeyPress","Handler","MarkerDrag","wasDragged","stopPropagation","_enabled","keyCode","marker","DivIcon","html","div","bgPos","backgroundPosition","divIcon","closePopupOnClick","Popup","minWidth","autoPan","closeButton","autoPanPadding","keepInView","source","_source","_isOpen","animFade","_getEvents","popup","openOn","openPopup","offsetWidth","_updatePosition","_adjustPan","getContent","_content","setContent","content","visibility","_updateContent","_updateLayout","_zoomAnimation","closeOnClick","preclick","_close","closePopup","prefix","containerClass","_closeButton","href","disableClickPropagation","_onCloseButtonClick","wrapper","_wrapper","_contentNode","disableScrollPropagation","_tipContainer","_tip","hasChildNodes","whiteSpace","offsetHeight","maxHeight","scrolledClass","_containerWidth","animated","_containerBottom","_containerLeft","bottom","containerHeight","containerWidth","layerPos","containerPos","autoPanPaddingTopLeft","autoPanPaddingBottomRight","stop","togglePopup","_popupHandlersAdded","_movePopup","setPopupContent","unbindPopup","getPopup","LayerGroup","getLayerId","clearLayers","invoke","methodName","getLayer","getLayers","layerGroup","FeatureGroup","EVENTS","_propagateEvent","_popupContent","_popupOptions","setStyle","featureGroup","Path","CLIP_PADDING","outerWidth","outerHeight","stroke","color","dashArray","lineCap","lineJoin","weight","fill","fillColor","fillOpacity","_initElements","projectLatlngs","_updatePath","_pathRoot","vml","_stroke","_fill","_updateStyle","_updatePathViewport","p","panePos","_pathViewport","SVG_NS","svg","createElementNS","createSVGRect","SVG","root","lastChild","first","getPathString","_createElement","_initPathRoot","_initPath","_initStyle","_path","setAttribute","pointerEvents","removeAttribute","_animatePathZoom","_endPathZoom","_updateSvgViewport","_pathZooming","vp","_openPopup","_latlngs","shape","behavior","adj","VML","namespaces","coordsize","stroked","filled","endcap","dashStyle","joinstyle","display","v","getContext","L_PREFER_CANVAS","CANVAS","_requestUpdate","_onClick","_onMouseMove","_updateRequest","_fireMapMoveEnd","_ctx","_canvasCtx","lineWidth","strokeStyle","fillStyle","_drawPath","len2","drawMethod","beginPath","_parts","Polygon","closePath","_checkIfEmpty","ctx","save","globalAlpha","fillRule","restore","_containsPoint","_animatingZoom","cursor","_mouseInside","_updateCanvasViewport","translate","LineUtil","simplify","tolerance","sqTolerance","_reducePoints","_simplifyDP","pointToSegmentDistance","p1","p2","_sqClosestPointOnSegment","closestPointOnSegment","ArrayConstructor","Uint8Array","markers","_simplifyDPStep","newPoints","last","sqDist","maxSqDist","reducedPoints","prev","_sqDist","clipSegment","useLastCode","codeOut","newCode","codeA","_lastCode","_getBitCode","codeB","_getEdgeIntersection","t","dot","Polyline","_convertLatLngs","smoothFactor","noClip","_originalPoints","_getPathPartStr","getLatLngs","setLatLngs","addLatLng","spliceLatLngs","closestLayerPoint","minDistance","parts","minPoint","jLen","distance","overwrite","_clipPoints","k","segment","lu","_simplifyPoints","polyline","PolyUtil","clipPolygon","clippedPoints","edge","edges","_code","_initWithHoles","hole","_holes","_holePoints","newParts","clipped","polygon","createMulti","Klass","_options","MultiPolyline","MultiPolygon","multiPolyline","multiPolygon","Rectangle","_boundsToLatLngs","setBounds","rectangle","Circle","radius","_mRadius","setRadius","lngRadius","_getLngRadius","pointLeft","_point","_radius","latRadius","getRadius","_getLatRadius","circle","CircleMarker","circleMarker","closed","dist","part","w","arc","w2","GeoJSON","geojson","addData","feature","features","geometries","geometry","coordinates","geometryToLayer","pointToLayer","coordsToLatLng","asFeature","defaultOptions","resetStyle","onEachFeature","_setLayerStyle","vectorOptions","coords","coordsToLatLngs","properties","levelsDeep","latLngToCoords","latLngsToCoords","latLngs","getFeature","newGeometry","geoJSON","PointToGeoJSON","toGeoJSON","multiToGeoJSON","json","jsons","isGeometryCollection","geoJson","addListener","originalHandler","newType","_getEvent","addPointerListener","addDoubleTapListener","_checkMouse","_filterClick","attachEvent","removeListener","removePointerListener","removeDoubleTapListener","detachEvent","cancelBubble","Draggable","START","_fakeStop","returnValue","clientX","clientY","rect","clientTop","getWheelDelta","wheelDelta","detail","_skipEvents","skipped","related","relatedTarget","err","caller","callee","Event","timeStamp","elapsed","_lastClick","_simulatedClick","END","mousedown","touchstart","pointerdown","MSPointerDown","MOVE","dragStartTarget","_element","_dragStartTarget","_onDown","shiftKey","which","button","touches","_disabled","_moving","_startPoint","_startPos","_newPos","_onMove","_onUp","newPoint","_lastTarget","srcElement","_animRequest","addHooks","removeHooks","enabled","inertia","inertiaDeceleration","inertiaMaxSpeed","inertiaThreshold","easeLinearity","worldCopyJump","Drag","_draggable","dragstart","_onDragStart","drag","_onDrag","dragend","_onDragEnd","_onPreDrag","_onViewReset","_panAnim","_positions","_times","_lastTime","_lastPos","shift","pxCenter","pxWorldCenter","_initialWorldOffset","_worldWidth","worldWidth","halfWidth","newX1","newX2","newX","delay","noInertia","direction","duration","ease","speedVector","speed","limitedSpeed","limitedSpeedVector","decelerationDuration","noMoveStart","doubleClickZoom","DoubleClickZoom","_onDoubleClick","scrollWheelZoom","ScrollWheelZoom","_onWheelScroll","_delta","_lastMousePos","_startTime","_timer","_performZoom","_touchstart","_touchend","onTouchStart","count","trackedTouches","pointerId","now","doubleTap","onTouchEnd","idx","prop","newTouch","pre","touchend","endElement","POINTER_CANCEL","POINTER_DOWN","POINTER_MOVE","POINTER_UP","_pointers","_pointerDocumentListener","addPointerListenerStart","addPointerListenerEnd","addPointerListenerMove","pointers","cb","pointerType","MSPOINTER_TYPE_MOUSE","alreadyInArray","changedTouches","internalCb","buttons","touchZoom","bounceAtZoomLimits","TouchZoom","_onTouchStart","_zooming","viewCenter","_startCenter","_startDist","_centerOffset","_onTouchMove","_onTouchEnd","_scale","_updateOnMove","_getScaleOrigin","oldZoom","floatZoomDelta","roundZoomDelta","tap","tapTolerance","Tap","_fireClick","_holdTimeout","_isTapValid","_simulateEvent","simulatedEvent","createEvent","initMouseEvent","screenX","screenY","dispatchEvent","BoxZoom","_pane","_onMouseDown","_startLayerPoint","_onMouseUp","_onKeyDown","_box","startPoint","box","newPos","_finish","boxZoomBounds","keyboardPanOffset","keyboardZoomOffset","Keyboard","keyCodes","down","up","_setPanOffset","_setZoomOffset","_onFocus","_onBlur","_addHooks","_removeHooks","_focused","focus","scrollTo","keys","_panKeys","codes","_zoomKeys","_inProgress","_marker","shadow","iconPos","Control","removeControl","addControl","corner","_controlCorners","removeFrom","_refocusOnMap","control","createCorner","vSide","hSide","l","corners","_controlContainer","Zoom","zoomInText","zoomInTitle","zoomOutText","zoomOutTitle","zoomName","_zoomInButton","_createButton","_zoomIn","_zoomOutButton","_zoomOut","_updateDisabled","link","zoomControl","Attribution","_attributions","addAttribution","_onLayerAdd","_onLayerRemove","setPrefix","text","removeAttribution","attribs","prefixAndAttribs","attributionControl","Scale","metric","imperial","_addScales","_mScale","_iScale","centerLat","halfWorldMeters","maxMeters","_updateScales","_updateMetric","_updateImperial","meters","_getRoundNum","_getScaleWidth","maxMiles","miles","feet","maxFeet","ratio","pow10","Layers","collapsed","autoZIndex","baseLayers","overlays","_lastZIndex","_handlingClick","_addLayer","_onLayerChange","addBaseLayer","addOverlay","form","_form","_expand","_collapse","_layersLink","_onInputClick","_baseLayersList","_separator","_overlaysList","overlay","baseLayersPresent","overlaysPresent","_addItem","_createRadioElement","checked","radioHtml","radioFragment","input","label","defaultChecked","layerId","inputs","inputsLen","PosAnimation","run","_el","_onTransitionEnd","_stepTimer","setInterval","_onStep","_getPos","stepPos","_transformRe","clearInterval","_tryAnimatedZoom","_tryAnimatedPan","step","_onPanTransitionStep","end","_onPanTransitionEnd","_duration","_easeOutPower","_offset","_animate","_step","_complete","_animId","_runFrame","_easeOut","progress","zoomAnimationThreshold","_catchTransitionEnd","propertyName","_onZoomTransitionEnd","_nothingToAnimate","getElementsByClassName","backwards","forTouchZoom","_animateToCenter","_animateToZoom","_animating","_prepareBgBuffer","bg","initialTransform","front","bgLoaded","_getLoadedTilesPercentage","frontLoaded","_stopLoadingImages","complete","_defaultLocateOptions","watch","timeout","maximumAge","enableHighAccuracy","locate","_locateOptions","geolocation","_handleGeolocationError","message","onResponse","_handleGeolocationResponse","onError","_locationWatchId","watchPosition","getCurrentPosition","stopLocate","clearWatch","error","latitude","longitude","latAccuracy","accuracy","lngAccuracy","timestamp","Fullscreen","false","true","_toggleTitle","_click","toggleFullscreen","isFullscreen","_isFullscreen","exitFullscreen","mozCancelFullScreen","webkitCancelFullScreen","msExitFullscreen","_setFullscreen","requestFullscreen","mozRequestFullScreen","webkitRequestFullscreen","Element","ALLOW_KEYBOARD_INPUT","msRequestFullscreen","fullscreen","_onFullscreenChange","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","msFullscreenElement","fullscreenControl","fullscreenchange","onFullscreenChange","factory","modules","require","Provider","arg","providers","providerName","variantName","provider","variants","variantOptions","variant","forceHTTP","location","protocol","attributionReplacer","attr","attributionName","layerOpts","OpenStreetMap","Mapnik","BlackAndWhite","DE","France","HOT","OpenSeaMap","OpenTopoMap","Thunderforest","OpenCycleMap","Transport","TransportDark","Landscape","Outdoors","OpenMapSurfer","Roads","AdminBounds","Grayscale","Hydda","Full","Base","RoadsAndLabels","MapQuestOpen","ext","OSM","Aerial","HybridOverlay","MapBox","Stamen","Toner","TonerBackground","TonerHybrid","TonerLines","TonerLabels","TonerLite","Watercolor","Terrain","TerrainBackground","TopOSMRelief","TopOSMFeatures","Esri","WorldStreetMap","DeLorme","WorldTopoMap","WorldImagery","WorldTerrain","WorldShadedRelief","WorldPhysical","OceanBasemap","NatGeoWorldMap","WorldGrayCanvas","OpenWeatherMap","Clouds","CloudsClassic","Precipitation","PrecipitationClassic","Rain","RainClassic","Pressure","PressureContour","Wind","Temperature","Snow","HERE","mapID","app_id","app_code","base","language","normalDay","normalDayCustom","normalDayGrey","normalDayMobile","normalDayGreyMobile","normalDayTransit","normalDayTransitMobile","normalNight","normalNightMobile","normalNightGrey","normalNightGreyMobile","basicMap","mapLabels","trafficFlow","carnavDayGrey","hybridDay","hybridDayMobile","pedestrianDay","pedestrianNight","satelliteDay","terrainDay","terrainDayMobile","Acetate","basemap","terrain","all","foreground","roads","labels","hillshading","FreeMapSK","MtbMap","CartoDB","Positron","PositronNoLabels","PositronOnlyLabels","DarkMatter","DarkMatterNoLabels","DarkMatterOnlyLabels","HikeBike","HillShading","BasemapAT","grau","highdpi","orthofoto","NASAGIBS","tilematrixset","ModisTerraTrueColorCR","ModisTerraBands367CR","ViirsEarthAtNight2012","ModisTerraLSTDay","ModisTerraSnowCover","ModisTerraAOD","ModisTerraChlorophyll","NLS","GeoSearch","Result","details","X","Y","Label","showMarker","retainZoomLevel","_config","country","searchLabel","notFoundMessage","messageHideDelay","zoomLevel","$controlContainer","nodes","childNodes","topCenter","klass","tc","topcenter","searchbox","placeholder","_searchbox","msgbox","_msgbox","resultslist","_resultslist","_onKeyUp","geosearch","qry","that","GetLocations","results","_processResults","GetServiceUrl","sendRequest","_printError","getJsonP","script","parseLocation","response","ParseJSON","XMLHttpRequest","xhr","onreadystatechange","readyState","status","JSON","parse","responseText","send","XDomainRequest","xdr","Locations","_showLocation","_positionMarker","_getZoomLevel","Location","elem","esc","enter","parameters","f","locations","MarkerClusterGroup","maxClusterRadius","iconCreateFunction","spiderfyOnMaxZoom","showCoverageOnHover","zoomToBoundsOnClick","singleMarkerMode","disableClusteringAtZoom","removeOutsideVisibleBounds","animateAddingMarkers","spiderfyDistanceMultiplier","polygonOptions","_defaultIconCreateFunction","_featureGroup","_nonPointGroup","_inZoomAnimation","_needsClustering","_needsRemoving","_currentShownBounds","_queue","array","addLayers","_unspiderfy","_maxZoom","visibleLayer","currentZoom","__parent","_animationAddLayer","_animationAddLayerNonAnimated","removeLayers","_unspiderfyLayer","_removeLayer","_arraySplice","layersArray","onMap","fg","npg","getChildCount","getAllChildMarkers","otherMarker","MarkerCluster","_iconNeedsUpdate","_updateIcon","_topClusterLevel","_recursivelyAddChildrenToMap","_gridClusters","_gridUnclustered","_noanimationUnspiderfy","_generateInitialClusters","result","anArray","_group","zoomToShowLayer","afterSpiderfy","spiderfy","zoomToBounds","_zoomEnd","_moveEnd","_spiderfierOnAdd","_bindEvents","_getExpandedVisibleBounds","_unbindEvents","_spiderfierOnRemove","_hideCoverage","getVisibleParent","vMarker","removeFromDistanceGrid","dontUpdateMap","gridClusters","gridUnclustered","removeObject","cluster","_markers","_childCount","_cLatLng","addObject","_childClusters","_recalculateBounds","_isOrIsParent","oel","childCount","_zoomOrSpiderfy","_showCoverage","_shownPolygon","_spiderfied","getConvexHull","_mergeSplitClusters","_recursivelyRemoveChildrenFromMap","DistanceGrid","markerPoint","closest","getNearObject","_addChild","newCluster","lastParent","_enqueue","_queueTimeout","_processQueue","_animationStart","_animationZoomIn","_animationZoomOut","latDiff","lngDiff","_addToMap","_animationEnd","previousZoomLevel","newZoomLevel","_recursively","startPos","_isSingleParent","_forceLayout","_recursivelyBecomeVisible","n","_recursivelyRestoreChildPositions","_animationZoomOutSingle","_recursivelyAnimateChildrenInAndAddSelfToMap","me","markerClusterGroup","group","storageArray","childClusters","boundsZoom","mapZoom","newClusters","_iconObj","new1","isNotificationFromChild","_expandBounds","addedCount","addedLatLng","_wLatLng","totalCount","_backupLatlng","_recursivelyAnimateChildrenIn","cm","nm","_restorePosition","previousBounds","exceptBounds","boundsToApplyTo","zoomLevelToStart","zoomLevelToStop","runAtEveryLevel","runAtBottomLevel","cellSize","_cellSize","_sqCellSize","_grid","_objectPoint","_getCoord","grid","row","cell","updateObject","eachObject","objectPoint","closestDistSq","QuickHull","getDistant","cpt","bl","vY","vX","findMostDistantPointFromBaseLine","baseLine","pt","maxD","maxPt","maxPoint","buildConvexHull","convexHullBaseLines","maxLat","minLat","minPt","ch","childMarkers","_2PI","_circleFootSeparation","_circleStartAngle","_spiralFootSeparation","_spiralLengthStart","_spiralLengthFactor","_circleSpiralSwitchover","positions","_generatePointsSpiral","_generatePointsCircle","_animationSpiderfy","unspiderfy","zoomDetails","_animationUnspiderfy","centerPt","angle","circumference","legLength","angleStep","res","separation","lengthFactor","_preSpiderfyLatlng","_spiderLeg","SVG_ANIMATION","leg","thisLayerPos","initialLegOpacity","xmlns","getTotalLength","anim","beginElement","getAttribute","stillThereChildCount","_unspiderfyWrapper","_unspiderfyZoomStart","_unspiderfyZoomAnim","AwesomeMarkers","spinClass","extraClasses","markerColor","iconColor","_createInner","iconClass","iconSpinClass","iconColorClass","iconColorStyle","spin"],"mappings":"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","file":"libs.min.js"} \ No newline at end of file +{"version":3,"sources":["libs.js"],"names":["window","document","undefined","oldL","L","version","module","exports","define","amd","noConflict","this","Util","extend","dest","i","j","len","src","sources","Array","prototype","slice","call","arguments","length","hasOwnProperty","bind","fn","obj","args","apply","stamp","lastId","key","invokeEach","method","context","concat","limitExecByInterval","time","lock","execOnUnlock","wrapperFn","setTimeout","falseFn","formatNum","num","digits","pow","Math","round","trim","str","replace","splitWords","split","setOptions","options","getParamString","existingUrl","uppercase","params","push","encodeURIComponent","toUpperCase","indexOf","join","template","data","value","Error","isArray","Object","toString","emptyImageUrl","getPrefixed","name","prefixes","timeoutDefer","Date","timeToCall","max","lastTime","requestFn","requestAnimationFrame","cancelFn","cancelAnimationFrame","id","clearTimeout","requestAnimFrame","immediate","element","cancelAnimFrame","Class","props","NewClass","initialize","_initHooks","callInitHooks","F","proto","constructor","statics","includes","parent","__super__","_initHooksCalled","include","mergeOptions","addInitHook","init","eventsKey","Mixin","Events","addEventListener","types","event","type","indexKey","indexLenKey","typeIndex","events","contextId","action","hasEventListeners","removeEventListener","clearAllEventListeners","listeners","removed","splice","fireEvent","target","addOneTimeEventListener","handler","on","off","once","fire","ie","ielt9","ua","navigator","userAgent","toLowerCase","webkit","chrome","phantomjs","android","android23","search","gecko","mobile","orientation","msPointer","PointerEvent","MSPointerEvent","pointer","pointerEnabled","retina","devicePixelRatio","matchMedia","matches","doc","documentElement","ie3d","style","webkit3d","WebKitCSSMatrix","gecko3d","opera3d","any3d","L_DISABLE_3D","touch","L_NO_TOUCH","DocumentTouch","Browser","opera","mobileWebkit","mobileWebkit3d","mobileOpera","Point","x","y","clone","add","point","_add","subtract","_subtract","divideBy","_divideBy","multiplyBy","_multiplyBy","_round","floor","_floor","distanceTo","sqrt","equals","contains","abs","Bounds","a","b","points","min","getCenter","getBottomLeft","getTopRight","getSize","bounds","intersects","min2","max2","xIntersects","yIntersects","isValid","Transformation","c","d","_a","_b","_c","_d","transform","scale","_transform","untransform","DomUtil","get","getElementById","getStyle","el","currentStyle","defaultView","css","getComputedStyle","getViewportOffset","pos","top","left","docBody","body","docEl","offsetTop","offsetLeft","parseInt","offsetParent","scrollTop","scrollLeft","width","maxWidth","r","getBoundingClientRect","clientLeft","parentNode","documentIsLtr","_docIsLtrCached","_docIsLtr","create","tagName","className","container","createElement","appendChild","hasClass","classList","_getClass","RegExp","test","addClass","classes","_setClass","removeClass","remove","baseVal","setOpacity","opacity","filter","filterName","filters","item","e","Enabled","Opacity","testProp","getTranslateString","is3d","open","close","getScaleString","origin","preTranslateStr","scaleStr","setPosition","disable3D","_leaflet_pos","TRANSFORM","getPosition","TRANSITION","TRANSITION_END","disableTextSelection","DomEvent","preventDefault","enableTextSelection","userSelectProperty","_userSelect","disableImageDrag","enableImageDrag","LatLng","lat","lng","alt","parseFloat","isNaN","DEG_TO_RAD","PI","RAD_TO_DEG","MAX_MARGIN","latLng","margin","precision","other","R","d2r","dLat","dLon","lat1","lat2","sin1","sin","sin2","cos","atan2","wrap","lon","LatLngBounds","southWest","northEast","latlngs","latLngBounds","_southWest","_northEast","pad","bufferRatio","sw","ne","heightBuffer","widthBuffer","getSouthWest","getNorthEast","getNorthWest","getNorth","getWest","getSouthEast","getSouth","getEast","sw2","ne2","latIntersects","lngIntersects","toBBoxString","Projection","SphericalMercator","MAX_LATITUDE","project","latlng","log","tan","unproject","atan","exp","LonLat","CRS","latLngToPoint","zoom","projectedPoint","projection","transformation","pointToLatLng","untransformedPoint","s","Simple","EPSG3857","code","earthRadius","EPSG900913","EPSG4326","Map","crs","fadeAnimation","trackResize","markerZoomAnimation","_initContainer","_initLayout","_onResize","_initEvents","maxBounds","setMaxBounds","center","setView","reset","_handlers","_layers","_zoomBoundLayers","_tileLayersNum","_addLayers","layers","getZoom","_resetView","_limitZoom","setZoom","_loaded","_zoom","zoomIn","delta","zoomOut","setZoomAround","getZoomScale","viewHalf","containerPoint","latLngToContainerPoint","centerOffset","newCenter","containerPointToLatLng","fitBounds","getBounds","paddingTL","paddingTopLeft","padding","paddingBR","paddingBottomRight","getBoundsZoom","maxZoom","paddingOffset","swPoint","nePoint","fitWorld","panTo","pan","panBy","offset","_rawPanBy","_panInsideMaxBounds","panInsideBounds","_limitCenter","addLayer","layer","minZoom","_updateZoomLevels","zoomAnimation","TileLayer","_tileLayersToLoad","_onTileLayerLoad","_layerAdd","removeLayer","onRemove","hasLayer","eachLayer","invalidateSize","animate","oldSize","_sizeChanged","_initialCenter","newSize","oldCenter","debounceMoveend","_sizeTimer","addHandler","HandlerClass","enable","_container","_leaflet","_clearPanes","_clearControlPos","_clearHandlers","_checkIfLoaded","_moved","layerPointToLatLng","_getCenterLayerPoint","getPixelBounds","getMinZoom","_layersMinZoom","getMaxZoom","_layersMaxZoom","Infinity","inside","boundsSize","size","nw","se","zoomNotFound","_size","clientWidth","clientHeight","topLeftPoint","_getTopLeftPoint","getPixelOrigin","_initialTopLeftPoint","getPanes","_panes","getContainer","toZoom","getScaleZoom","LN2","latLngToLayerPoint","containerPointToLayerPoint","_getMapPanePos","layerPointToContainerPoint","layerPoint","mouseEventToContainerPoint","getMousePosition","mouseEventToLayerPoint","mouseEventToLatLng","position","_initPanes","_initControlPos","panes","_mapPane","mapPane","_createPane","_tilePane","tilePane","objectsPane","shadowPane","overlayPane","markerPane","popupPane","zoomHide","removeChild","preserveMapOffset","afterZoomAnim","zoomChanged","_getNewTopLeftPoint","loading","hard","_getZoomSpan","oldZoomSpan","onOff","_onMouseClick","_fireMouseEvent","_resizeRequest","_simulated","dragging","moved","boxZoom","_skipped","originalEvent","disable","whenReady","callback","onAdd","_latLngToNewLayerPoint","newZoom","topLeft","_getCenterOffset","centerPoint","viewBounds","_getBoundsOffset","_limitOffset","newBounds","pxBounds","nwOffset","seOffset","dx","_rebound","dy","right","ceil","map","Mercator","R_MINOR","R_MAJOR","r2","tmp","eccent","con","ts","phi","numIter","tol","dphi","EPSG3395","m","tileSize","subdomains","errorTileUrl","attribution","zoomOffset","unloadInvisibleTiles","updateWhenIdle","url","detectRetina","_url","_map","_animated","_zoomAnimated","viewreset","_reset","moveend","_update","zoomanim","_animateZoom","zoomend","_endZoomAnim","_limitedUpdate","addTo","bringToFront","pane","_setAutoZIndex","bringToBack","insertBefore","firstChild","getAttribution","_updateOpacity","setZIndex","zIndex","_updateZIndex","setUrl","noRedraw","redraw","compare","children","edgeZIndex","isFinite","tiles","_tiles","_bgBuffer","_tileContainer","tile","_tilesToLoad","reuseTiles","_unusedTiles","innerHTML","_clearBgBuffer","_getTileSize","zoomN","maxNativeZoom","tileBounds","_addTilesFromCenterOut","_removeOtherTiles","queue","_tileShouldBeLoaded","tilesToLoad","sort","fragment","createDocumentFragment","_addTile","tilePoint","continuousWorld","limit","_getWrapTileNum","noWrap","nwPoint","sePoint","kArr","_removeTile","onload","tilePos","_getTilePos","_getTile","_loadTile","_getZoomForUrl","zoomReverse","getTileUrl","_getSubdomain","z","_adjustTilePoint","tms","index","pop","_resetTile","_createTile","height","galleryimg","onselectstart","onmousemove","WebkitBackfaceVisibility","_layer","_tileOnLoad","onerror","_tileOnError","_tileLoaded","_clearBgBufferTimer","newUrl","tileLayer","WMS","defaultWmsParams","service","request","styles","format","transparent","wmsParams","_crs","_wmsVersion","projectionKey","bbox","setParams","wms","Canvas","async","_redrawTile","drawTile","_tilePoint","tileDrawn","canvas","ImageOverlay","_bounds","_image","_initImage","_onImageLoad","image","imageOverlay","Icon","createIcon","oldIcon","_createIcon","createShadow","_getIconUrl","img","_createImg","_setIconStyles","anchor","shadowAnchor","iconAnchor","marginLeft","marginTop","icon","Default","iconSize","popupAnchor","shadowSize","path","imagePath","scripts","getElementsByTagName","leafletRe","match","Marker","title","clickable","draggable","keyboard","zIndexOffset","riseOnHover","riseOffset","_latlng","update","_initIcon","_removeIcon","_removeShadow","getLatLng","setLatLng","setZIndexOffset","setIcon","_popup","bindPopup","_icon","_setPos","animation","classToAdd","addIcon","tabIndex","_initInteraction","_bringToFront","_resetZIndex","newShadow","_shadow","addShadow","_zIndex","opt","_onKeyPress","Handler","MarkerDrag","wasDragged","stopPropagation","_enabled","keyCode","marker","DivIcon","html","div","bgPos","backgroundPosition","divIcon","closePopupOnClick","Popup","minWidth","autoPan","closeButton","autoPanPadding","keepInView","source","_source","_isOpen","animFade","_getEvents","popup","openOn","openPopup","offsetWidth","_updatePosition","_adjustPan","getContent","_content","setContent","content","visibility","_updateContent","_updateLayout","_zoomAnimation","closeOnClick","preclick","_close","closePopup","prefix","containerClass","_closeButton","href","disableClickPropagation","_onCloseButtonClick","wrapper","_wrapper","_contentNode","disableScrollPropagation","_tipContainer","_tip","hasChildNodes","whiteSpace","offsetHeight","maxHeight","scrolledClass","_containerWidth","animated","_containerBottom","_containerLeft","bottom","containerHeight","containerWidth","layerPos","containerPos","autoPanPaddingTopLeft","autoPanPaddingBottomRight","stop","togglePopup","_popupHandlersAdded","_movePopup","setPopupContent","unbindPopup","getPopup","LayerGroup","getLayerId","clearLayers","invoke","methodName","getLayer","getLayers","layerGroup","FeatureGroup","EVENTS","_propagateEvent","_popupContent","_popupOptions","setStyle","featureGroup","Path","CLIP_PADDING","outerWidth","outerHeight","stroke","color","dashArray","lineCap","lineJoin","weight","fill","fillColor","fillOpacity","_initElements","projectLatlngs","_updatePath","_pathRoot","vml","_stroke","_fill","_updateStyle","_updatePathViewport","p","panePos","_pathViewport","SVG_NS","svg","createElementNS","createSVGRect","SVG","root","lastChild","first","getPathString","_createElement","_initPathRoot","_initPath","_initStyle","_path","setAttribute","pointerEvents","removeAttribute","_animatePathZoom","_endPathZoom","_updateSvgViewport","_pathZooming","vp","_openPopup","_latlngs","shape","behavior","adj","VML","namespaces","coordsize","stroked","filled","endcap","dashStyle","joinstyle","display","v","getContext","L_PREFER_CANVAS","CANVAS","_requestUpdate","_onClick","_onMouseMove","_updateRequest","_fireMapMoveEnd","_ctx","_canvasCtx","lineWidth","strokeStyle","fillStyle","_drawPath","len2","drawMethod","beginPath","_parts","Polygon","closePath","_checkIfEmpty","ctx","save","globalAlpha","fillRule","restore","_containsPoint","_animatingZoom","cursor","_mouseInside","_updateCanvasViewport","translate","LineUtil","simplify","tolerance","sqTolerance","_reducePoints","_simplifyDP","pointToSegmentDistance","p1","p2","_sqClosestPointOnSegment","closestPointOnSegment","ArrayConstructor","Uint8Array","markers","_simplifyDPStep","newPoints","last","sqDist","maxSqDist","reducedPoints","prev","_sqDist","clipSegment","useLastCode","codeOut","newCode","codeA","_lastCode","_getBitCode","codeB","_getEdgeIntersection","t","dot","Polyline","_convertLatLngs","smoothFactor","noClip","_originalPoints","_getPathPartStr","getLatLngs","setLatLngs","addLatLng","spliceLatLngs","closestLayerPoint","minDistance","parts","minPoint","jLen","distance","overwrite","_clipPoints","k","segment","lu","_simplifyPoints","polyline","PolyUtil","clipPolygon","clippedPoints","edge","edges","_code","_initWithHoles","hole","_holes","_holePoints","newParts","clipped","polygon","createMulti","Klass","_options","MultiPolyline","MultiPolygon","multiPolyline","multiPolygon","Rectangle","_boundsToLatLngs","setBounds","rectangle","Circle","radius","_mRadius","setRadius","lngRadius","_getLngRadius","pointLeft","_point","_radius","latRadius","getRadius","_getLatRadius","circle","CircleMarker","circleMarker","closed","dist","part","w","arc","w2","GeoJSON","geojson","addData","feature","features","geometries","geometry","coordinates","geometryToLayer","pointToLayer","coordsToLatLng","asFeature","defaultOptions","resetStyle","onEachFeature","_setLayerStyle","vectorOptions","coords","coordsToLatLngs","properties","levelsDeep","latLngToCoords","latLngsToCoords","latLngs","getFeature","newGeometry","geoJSON","PointToGeoJSON","toGeoJSON","multiToGeoJSON","json","jsons","isGeometryCollection","geoJson","addListener","originalHandler","newType","_getEvent","addPointerListener","addDoubleTapListener","_checkMouse","_filterClick","attachEvent","removeListener","removePointerListener","removeDoubleTapListener","detachEvent","cancelBubble","Draggable","START","_fakeStop","returnValue","clientX","clientY","rect","clientTop","getWheelDelta","wheelDelta","detail","_skipEvents","skipped","related","relatedTarget","err","caller","callee","Event","timeStamp","elapsed","_lastClick","_simulatedClick","END","mousedown","touchstart","pointerdown","MSPointerDown","MOVE","dragStartTarget","_element","_dragStartTarget","_onDown","shiftKey","which","button","touches","_disabled","_moving","_startPoint","_startPos","_newPos","_onMove","_onUp","newPoint","_lastTarget","srcElement","_animRequest","addHooks","removeHooks","enabled","inertia","inertiaDeceleration","inertiaMaxSpeed","inertiaThreshold","easeLinearity","worldCopyJump","Drag","_draggable","dragstart","_onDragStart","drag","_onDrag","dragend","_onDragEnd","_onPreDrag","_onViewReset","_panAnim","_positions","_times","_lastTime","_lastPos","shift","pxCenter","pxWorldCenter","_initialWorldOffset","_worldWidth","worldWidth","halfWidth","newX1","newX2","newX","delay","noInertia","direction","duration","ease","speedVector","speed","limitedSpeed","limitedSpeedVector","decelerationDuration","noMoveStart","doubleClickZoom","DoubleClickZoom","_onDoubleClick","scrollWheelZoom","ScrollWheelZoom","_onWheelScroll","_delta","_lastMousePos","_startTime","_timer","_performZoom","_touchstart","_touchend","onTouchStart","count","trackedTouches","pointerId","now","doubleTap","onTouchEnd","idx","prop","newTouch","pre","touchend","endElement","POINTER_CANCEL","POINTER_DOWN","POINTER_MOVE","POINTER_UP","_pointers","_pointerDocumentListener","addPointerListenerStart","addPointerListenerEnd","addPointerListenerMove","pointers","cb","pointerType","MSPOINTER_TYPE_MOUSE","alreadyInArray","changedTouches","internalCb","buttons","touchZoom","bounceAtZoomLimits","TouchZoom","_onTouchStart","_zooming","viewCenter","_startCenter","_startDist","_centerOffset","_onTouchMove","_onTouchEnd","_scale","_updateOnMove","_getScaleOrigin","oldZoom","floatZoomDelta","roundZoomDelta","tap","tapTolerance","Tap","_fireClick","_holdTimeout","_isTapValid","_simulateEvent","simulatedEvent","createEvent","initMouseEvent","screenX","screenY","dispatchEvent","BoxZoom","_pane","_onMouseDown","_startLayerPoint","_onMouseUp","_onKeyDown","_box","startPoint","box","newPos","_finish","boxZoomBounds","keyboardPanOffset","keyboardZoomOffset","Keyboard","keyCodes","down","up","_setPanOffset","_setZoomOffset","_onFocus","_onBlur","_addHooks","_removeHooks","_focused","focus","scrollTo","keys","_panKeys","codes","_zoomKeys","_inProgress","_marker","shadow","iconPos","Control","removeControl","addControl","corner","_controlCorners","removeFrom","_refocusOnMap","control","createCorner","vSide","hSide","l","corners","_controlContainer","Zoom","zoomInText","zoomInTitle","zoomOutText","zoomOutTitle","zoomName","_zoomInButton","_createButton","_zoomIn","_zoomOutButton","_zoomOut","_updateDisabled","link","zoomControl","Attribution","_attributions","addAttribution","_onLayerAdd","_onLayerRemove","setPrefix","text","removeAttribution","attribs","prefixAndAttribs","attributionControl","Scale","metric","imperial","_addScales","_mScale","_iScale","centerLat","halfWorldMeters","maxMeters","_updateScales","_updateMetric","_updateImperial","meters","_getRoundNum","_getScaleWidth","maxMiles","miles","feet","maxFeet","ratio","pow10","Layers","collapsed","autoZIndex","baseLayers","overlays","_lastZIndex","_handlingClick","_addLayer","_onLayerChange","addBaseLayer","addOverlay","form","_form","_expand","_collapse","_layersLink","_onInputClick","_baseLayersList","_separator","_overlaysList","overlay","baseLayersPresent","overlaysPresent","_addItem","_createRadioElement","checked","radioHtml","radioFragment","input","label","defaultChecked","layerId","inputs","inputsLen","PosAnimation","run","_el","_onTransitionEnd","_stepTimer","setInterval","_onStep","_getPos","stepPos","_transformRe","clearInterval","_tryAnimatedZoom","_tryAnimatedPan","step","_onPanTransitionStep","end","_onPanTransitionEnd","_duration","_easeOutPower","_offset","_animate","_step","_complete","_animId","_runFrame","_easeOut","progress","zoomAnimationThreshold","_catchTransitionEnd","propertyName","_onZoomTransitionEnd","_nothingToAnimate","getElementsByClassName","backwards","forTouchZoom","_animateToCenter","_animateToZoom","_animating","_prepareBgBuffer","bg","initialTransform","front","bgLoaded","_getLoadedTilesPercentage","frontLoaded","_stopLoadingImages","complete","_defaultLocateOptions","watch","timeout","maximumAge","enableHighAccuracy","locate","_locateOptions","geolocation","_handleGeolocationError","message","onResponse","_handleGeolocationResponse","onError","_locationWatchId","watchPosition","getCurrentPosition","stopLocate","clearWatch","error","latitude","longitude","latAccuracy","accuracy","lngAccuracy","timestamp","Fullscreen","false","true","_toggleTitle","_click","toggleFullscreen","isFullscreen","_isFullscreen","exitFullscreen","mozCancelFullScreen","webkitCancelFullScreen","msExitFullscreen","_setFullscreen","requestFullscreen","mozRequestFullScreen","webkitRequestFullscreen","Element","ALLOW_KEYBOARD_INPUT","msRequestFullscreen","fullscreen","_onFullscreenChange","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","msFullscreenElement","fullscreenControl","fullscreenchange","onFullscreenChange","factory","modules","require","Provider","arg","providers","providerName","variantName","provider","variants","variantOptions","variant","forceHTTP","location","protocol","attributionReplacer","attr","attributionName","layerOpts","OpenStreetMap","Mapnik","BlackAndWhite","DE","France","HOT","OpenSeaMap","OpenTopoMap","Thunderforest","OpenCycleMap","Transport","TransportDark","Landscape","Outdoors","OpenMapSurfer","Roads","AdminBounds","Grayscale","Hydda","Full","Base","RoadsAndLabels","MapQuestOpen","ext","OSM","Aerial","HybridOverlay","MapBox","Stamen","Toner","TonerBackground","TonerHybrid","TonerLines","TonerLabels","TonerLite","Watercolor","Terrain","TerrainBackground","TopOSMRelief","TopOSMFeatures","Esri","WorldStreetMap","DeLorme","WorldTopoMap","WorldImagery","WorldTerrain","WorldShadedRelief","WorldPhysical","OceanBasemap","NatGeoWorldMap","WorldGrayCanvas","OpenWeatherMap","Clouds","CloudsClassic","Precipitation","PrecipitationClassic","Rain","RainClassic","Pressure","PressureContour","Wind","Temperature","Snow","HERE","mapID","app_id","app_code","base","language","normalDay","normalDayCustom","normalDayGrey","normalDayMobile","normalDayGreyMobile","normalDayTransit","normalDayTransitMobile","normalNight","normalNightMobile","normalNightGrey","normalNightGreyMobile","basicMap","mapLabels","trafficFlow","carnavDayGrey","hybridDay","hybridDayMobile","pedestrianDay","pedestrianNight","satelliteDay","terrainDay","terrainDayMobile","Acetate","basemap","terrain","all","foreground","roads","labels","hillshading","FreeMapSK","MtbMap","CartoDB","Positron","PositronNoLabels","PositronOnlyLabels","DarkMatter","DarkMatterNoLabels","DarkMatterOnlyLabels","HikeBike","HillShading","BasemapAT","grau","highdpi","orthofoto","NASAGIBS","tilematrixset","ModisTerraTrueColorCR","ModisTerraBands367CR","ViirsEarthAtNight2012","ModisTerraLSTDay","ModisTerraSnowCover","ModisTerraAOD","ModisTerraChlorophyll","NLS","GeoSearch","Result","details","X","Y","Label","showMarker","retainZoomLevel","_config","country","searchLabel","notFoundMessage","messageHideDelay","zoomLevel","$controlContainer","nodes","childNodes","topCenter","klass","tc","topcenter","searchbox","placeholder","_searchbox","msgbox","_msgbox","resultslist","_resultslist","_onKeyUp","geosearch","qry","that","GetLocations","results","_processResults","GetServiceUrl","sendRequest","_printError","getJsonP","script","parseLocation","response","ParseJSON","XMLHttpRequest","xhr","onreadystatechange","readyState","status","JSON","parse","responseText","send","XDomainRequest","xdr","Locations","_showLocation","_positionMarker","_getZoomLevel","Location","elem","esc","enter","parameters","f","locations","loc","extent","ymax","xmax","ymin","xmin","MarkerClusterGroup","maxClusterRadius","iconCreateFunction","spiderfyOnMaxZoom","showCoverageOnHover","zoomToBoundsOnClick","singleMarkerMode","disableClusteringAtZoom","removeOutsideVisibleBounds","animateAddingMarkers","spiderfyDistanceMultiplier","polygonOptions","_defaultIconCreateFunction","_featureGroup","_nonPointGroup","_inZoomAnimation","_needsClustering","_needsRemoving","_currentShownBounds","_queue","array","addLayers","_unspiderfy","_maxZoom","visibleLayer","currentZoom","__parent","_animationAddLayer","_animationAddLayerNonAnimated","removeLayers","_unspiderfyLayer","_removeLayer","_arraySplice","layersArray","onMap","fg","npg","getChildCount","getAllChildMarkers","otherMarker","MarkerCluster","_iconNeedsUpdate","_updateIcon","_topClusterLevel","_recursivelyAddChildrenToMap","_gridClusters","_gridUnclustered","_noanimationUnspiderfy","_generateInitialClusters","result","anArray","_group","zoomToShowLayer","afterSpiderfy","spiderfy","zoomToBounds","_zoomEnd","_moveEnd","_spiderfierOnAdd","_bindEvents","_getExpandedVisibleBounds","_unbindEvents","_spiderfierOnRemove","_hideCoverage","getVisibleParent","vMarker","removeFromDistanceGrid","dontUpdateMap","gridClusters","gridUnclustered","removeObject","cluster","_markers","_childCount","_cLatLng","addObject","_childClusters","_recalculateBounds","_isOrIsParent","oel","childCount","_zoomOrSpiderfy","_showCoverage","_shownPolygon","_spiderfied","getConvexHull","_mergeSplitClusters","_recursivelyRemoveChildrenFromMap","DistanceGrid","markerPoint","closest","getNearObject","_addChild","newCluster","lastParent","_enqueue","_queueTimeout","_processQueue","_animationStart","_animationZoomIn","_animationZoomOut","latDiff","lngDiff","_addToMap","_animationEnd","previousZoomLevel","newZoomLevel","_recursively","startPos","_isSingleParent","_forceLayout","_recursivelyBecomeVisible","n","_recursivelyRestoreChildPositions","_animationZoomOutSingle","_recursivelyAnimateChildrenInAndAddSelfToMap","me","markerClusterGroup","group","storageArray","childClusters","boundsZoom","mapZoom","newClusters","_iconObj","new1","isNotificationFromChild","_expandBounds","addedCount","addedLatLng","_wLatLng","totalCount","_backupLatlng","_recursivelyAnimateChildrenIn","cm","nm","_restorePosition","previousBounds","exceptBounds","boundsToApplyTo","zoomLevelToStart","zoomLevelToStop","runAtEveryLevel","runAtBottomLevel","cellSize","_cellSize","_sqCellSize","_grid","_objectPoint","_getCoord","grid","row","cell","updateObject","eachObject","objectPoint","closestDistSq","QuickHull","getDistant","cpt","bl","vY","vX","findMostDistantPointFromBaseLine","baseLine","pt","maxD","maxPt","maxPoint","buildConvexHull","convexHullBaseLines","maxLat","minLat","minPt","ch","childMarkers","_2PI","_circleFootSeparation","_circleStartAngle","_spiralFootSeparation","_spiralLengthStart","_spiralLengthFactor","_circleSpiralSwitchover","positions","_generatePointsSpiral","_generatePointsCircle","_animationSpiderfy","unspiderfy","zoomDetails","_animationUnspiderfy","centerPt","angle","circumference","legLength","angleStep","res","separation","lengthFactor","_preSpiderfyLatlng","_spiderLeg","SVG_ANIMATION","leg","thisLayerPos","initialLegOpacity","xmlns","getTotalLength","anim","beginElement","getAttribute","stillThereChildCount","_unspiderfyWrapper","_unspiderfyZoomStart","_unspiderfyZoomAnim","AwesomeMarkers","spinClass","extraClasses","markerColor","iconColor","_createInner","iconClass","iconSpinClass","iconColorClass","iconColorStyle","spin"],"mappings":"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C,EAAEQ,KAAKC,UAAW49C,EAAS/6C,QAASA,EACpDtD,GAAEgc,UAAU/a,UAAU4E,WAAW1E,KAAKZ,KAAM89C,EAASz5B,IAAKm6B,MAS5D/+C,EAAEgc,UAAUgiC,SAASE,WACpBc,eACCp6B,IAAK,+CACLthB,SACCwX,QAAS,GACT0J,YACC,6EAEF85B,UACCW,UACAC,eACCt6B,IAAK,yDACLthB,SACCwX,QAAS,KAGXqkC,IACCv6B,IAAK,+DACLthB,SACCwX,QAAS,KAGXskC,QACCx6B,IAAK,yDACLthB,SACCkhB,YAAa,8DAGf66B,KACCz6B,IAAK,uDACLthB,SACCkhB,YAAa,iJAKjB86B,YACC16B,IAAK,sDACLthB,SACCkhB,YAAa,qFAGf+6B,aACC36B,IAAK,6CACLthB,SACCwX,QAAS,GACT0J,YAAa,4OAGfg7B,eACC56B,IAAK,yDACLthB,SACCkhB,YACC,6FACDg6B,QAAS,SAEVF,UACCmB,aAAc,QACdC,WACCp8C,SACCk7C,QAAS,YACT1jC,QAAS,KAGX6kC,eACCr8C,SACCk7C,QAAS,iBACT1jC,QAAS,KAGX8kC,UAAW,YACXC,SAAU,aAGZC,eACCl7B,IAAK,mEACLthB,SACCwX,QAAS,GACT0jC,QAAS,QACTh6B,YAAa,2JAEd85B,UACCyB,MAAO,QACPC,aACC18C,SACCk7C,QAAS,SACT1jC,QAAS,KAGXmlC,WACC38C,SACCk7C,QAAS,SACT1jC,QAAS,OAKbolC,OACCt7B,IAAK,mEACLthB,SACCk7C,QAAS,OACTh6B,YAAa,8IAEd85B,UACC6B,KAAM,OACNC,KAAM,OACNC,eAAgB,qBAGlBC,cAKC17B,IAAK,iEACLthB,SACC4D,KAAM,MACNq5C,IAAK,MACL/7B,YACC,iHAEDF,WAAY,QAEbg6B,UACCkC,OACAC,QACCn9C,SACC4D,KAAM,MACNsd,YACC,sKAIHk8B,eACCp9C,SACC4D,KAAM,MACNq5C,IAAK,MACLrvC,QAAS,OAKbyvC,QACC/7B,IAAK,4EACLthB,SACCkhB,YACC,+GAEDF,WAAY,SAGds8B,QACCh8B,IAAK,kEACLthB,SACCkh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","file":"libs.min.js"} \ No newline at end of file diff --git a/plone/formwidget/geolocation/resources/maps.js b/plone/formwidget/geolocation/resources/maps.js index 76c2fb3..fef2876 100644 --- a/plone/formwidget/geolocation/resources/maps.js +++ b/plone/formwidget/geolocation/resources/maps.js @@ -17,15 +17,44 @@ map_wrap = $(el).closest('div.geolocation_wrapper'); editable = map_wrap.hasClass('edit'); - var update_inputs = function(lat, lng) { - map_wrap.find('input.latitude').attr('value', lat); - map_wrap.find('input.longitude').attr('value', lng); + var get_bounds_object = function(bounds) { + return { + south: bounds.getSouth(), + west: bounds.getWest(), + north: bounds.getNorth(), + east: bounds.getEast() + }; + }; + + var set_map_bounds = function(map, bounds_obj) { + var bounds = new L.LatLngBounds([ + new L.LatLng(bounds_obj.south, bounds_obj.west), + new L.LatLng(bounds_obj.north, bounds_obj.east), + ]); + if (bounds && bounds.isValid()) { + map.fitBounds(bounds); + } + }; + + var update_inputs = function(lat, lng, bounds) { + if (lat && lng) { + map_wrap.find('input.latitude').attr('value', lat); + map_wrap.find('input.longitude').attr('value', lng); + } + + if (bounds) { + map_wrap.find('input.bounds-south').attr('value', bounds.south); + map_wrap.find('input.bounds-west').attr('value', bounds.west); + map_wrap.find('input.bounds-north').attr('value', bounds.north); + map_wrap.find('input.bounds-east').attr('value', bounds.east); + } }; var bind_draggable_marker = function (marker) { marker.on('dragend', function(e) { var coords = e.target.getLatLng(); - update_inputs(coords.lat, coords.lng); + var bounds = get_bounds_object(e.target._map.getBounds()); + update_inputs(coords.lat, coords.lng, bounds); }); }; @@ -79,17 +108,27 @@ map.addLayer(markers); // autozoom - bounds = markers.getBounds(); - map.fitBounds(bounds); + if (geopoints[0].bounds) { + set_map_bounds(map, geopoints[0].bounds); + } else { + map.fitBounds(markers.getBounds()); + } + if (editable) { map.on('geosearch_showlocation', function(e) { map.removeLayer(markers); var coords = e.Location; - update_inputs(coords.Y, coords.X); + var bounds = get_bounds_object(coords.bounds); + update_inputs(coords.Y, coords.X, bounds); bind_draggable_marker(e.Marker); }); + map.on('dragend zoomend', function(e){ + var bounds = get_bounds_object(e.target.getBounds()); + update_inputs(0, 0, bounds) + }); + // GEOSEARCH geosearch = new L.Control.GeoSearch({ showMarker: true, diff --git a/plone/formwidget/geolocation/widget.py b/plone/formwidget/geolocation/widget.py index 6a50e98..bc74ff6 100644 --- a/plone/formwidget/geolocation/widget.py +++ b/plone/formwidget/geolocation/widget.py @@ -9,6 +9,12 @@ import json +def bounds_from_value(value): + if value[2:] != (0, 0, 0, 0): + return dict( + south=value[2], west=value[3], north=value[4], east=value[5]) + + class GeolocationWidget(TextWidget): implementsOnly(IGeolocationWidget) @@ -26,6 +32,7 @@ def json_value(self): return json.dumps([{ 'lat': self.value[0], 'lng': self.value[1], + 'bounds': bounds_from_value(self.value), 'popup': u'

    {0}

    {1}

    '.format( safe_unicode(title), safe_unicode(description) @@ -35,14 +42,14 @@ def json_value(self): def _default_loc(self): config = queryMultiAdapter((self.context, self.request), name="maps_configuration", default=None) - default = ret = (0.0, 0.0) + default = ret = (0.0, 0.0, 0.0, 0.0, 0.0, 0.0) if config and hasattr(config, 'default_location'): ret = config.default_location if isinstance(ret, basestring): ret = ret.split(',') if len(ret) != 2: return default - return (float(ret[0]), float(ret[1])) + return (float(ret[0]), float(ret[1]), 0.0, 0.0, 0.0, 0.0) @implementer(IFieldWidget)