2015-04-13 11:15:31 +02:00
/ *
2016-05-14 14:23:42 +02:00
Leaflet 1.0 . 0 - rc . 1 + fbc6265 , a JS library for interactive maps . http : //leafletjs.com
( c ) 2010 - 2015 Vladimir Agafonkin , ( c ) 2010 - 2011 CloudMade
2015-04-13 11:15:31 +02:00
* /
2016-05-14 14:23:42 +02:00
! function ( t , e , i ) { function n ( ) { var e = t . L ; o . noConflict = function ( ) { return t . L = e , this } , t . L = o } var o = { version : "1.0.0-rc.1+fbc6265" } ; "object" == typeof module && "object" == typeof module . exports ? module . exports = o : "function" == typeof define && define . amd && define ( o ) , "undefined" != typeof t && n ( ) , o . Util = { extend : function ( t ) { var e , i , n , o ; for ( i = 1 , n = arguments . length ; n > i ; i ++ ) { o = arguments [ i ] ; for ( e in o ) t [ e ] = o [ e ] } return t } , create : Object . create || function ( ) { function t ( ) { } return function ( e ) { return t . prototype = e , new t } } ( ) , bind : function ( t , e ) { var i = Array . prototype . slice ; if ( t . bind ) return t . bind . apply ( t , i . call ( arguments , 1 ) ) ; var n = i . call ( arguments , 2 ) ; return function ( ) { return t . apply ( e , n . length ? n . concat ( i . call ( arguments ) ) : arguments ) } } , stamp : function ( t ) { return t . _leaflet _id = t . _leaflet _id || ++ o . Util . lastId , t . _leaflet _id } , lastId : 0 , throttle : function ( t , e , i ) { var n , o , s , r ; return r = function ( ) { n = ! 1 , o && ( s . apply ( i , o ) , o = ! 1 ) } , s = function ( ) { n ? o = arguments : ( t . apply ( i , arguments ) , setTimeout ( r , e ) , n = ! 0 ) } } , wrapNum : function ( t , e , i ) { var n = e [ 1 ] , o = e [ 0 ] , s = n - o ; return t === n && i ? t : ( ( t - o ) % s + s ) % s + o } , falseFn : function ( ) { return ! 1 } , formatNum : function ( t , e ) { var i = Math . pow ( 10 , e || 5 ) ; return Math . round ( t * i ) / i } , trim : function ( t ) { return t . trim ? t . trim ( ) : t . replace ( /^\s+|\s+$/g , "" ) } , splitWords : function ( t ) { return o . Util . trim ( t ) . split ( /\s+/ ) } , setOptions : function ( t , e ) { t . hasOwnProperty ( "options" ) || ( t . options = t . options ? o . Util . create ( t . options ) : { } ) ; for ( var i in e ) t . options [ i ] = e [ i ] ; return t . options } , getParamString : function ( t , e , i ) { var n = [ ] ; for ( var o in t ) n . push ( encodeURIComponent ( i ? o . toUpperCase ( ) : o ) + "=" + encodeURIComponent ( t [ o ] ) ) ; return ( e && - 1 !== e . indexOf ( "?" ) ? "&" : "?" ) + n . join ( "&" ) } , template : function ( t , e ) { return t . replace ( o . Util . templateRe , function ( t , n ) { var o = e [ n ] ; if ( o === i ) throw new Error ( "No value provided for variable " + t ) ; return "function" == typeof o && ( o = o ( e ) ) , o } ) } , templateRe : /\{ *([\w_\-]+) *\}/g , isArray : Array . isArray || function ( t ) { return "[object Array]" === Object . prototype . toString . call ( t ) } , indexOf : function ( t , e ) { for ( var i = 0 ; i < t . length ; i ++ ) if ( t [ i ] === e ) return i ; return - 1 } , emptyImageUrl : "data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" } , function ( ) { function e ( e ) { return t [ "webkit" + e ] || t [ "moz" + e ] || t [ "ms" + e ] } function i ( e ) { var i = + new Date , o = Math . max ( 0 , 16 - ( i - n ) ) ; return n = i + o , t . setTimeout ( e , o ) } var n = 0 , s = t . requestAnimationFrame || e ( "RequestAnimationFrame" ) || i , r = t . cancelAnimationFrame || e ( "CancelAnimationFrame" ) || e ( "CancelRequestAnimationFrame" ) || function ( e ) { t . clearTimeout ( e ) } ; o . Util . requestAnimFrame = function ( e , n , r ) { return r && s === i ? void e . call ( n ) : s . call ( t , o . bind ( e , n ) ) } , o . Util . cancelAnimFrame = function ( e ) { e && r . call ( t , e ) } } ( ) , o . extend = o . Util . extend , o . bind = o . Util . bind , o . stamp = o . Util . stamp , o . setOptions = o . Util . setOptions , o . Class = function ( ) { } , o . Class . extend = function ( t ) { var e = function ( ) { this . initialize && this . initialize . apply ( this , arguments ) , this . callInitHooks ( ) } , i = e . _ _super _ _ = this . prototype , n = o . Util . create ( i ) ; n . constructor = e , e . prototype = n ; for ( var s in this ) this . hasOwnProperty ( s ) && "prototype" !== s && ( e [ s ] = this [ s ] ) ; return t . statics && ( o . extend ( e , t . statics ) , delete t . statics ) , t . includes && ( o . Util . extend . apply ( null , [ n ] . concat ( t . includes ) ) , delete t . includes ) , n . options && ( t . options = o . Util . extend ( o . Util . create ( n . options ) , t . options ) ) , o . extend ( n , t ) , n . _initHooks = [ ] , n . callInitHooks = function ( ) { if ( ! this . _initHooksCalled ) { i . callInitHooks && i . callInitHooks . call ( this ) , this . _initHooksCalled = ! 0 ; for ( var t = 0 , e = n . _initHooks . length ; e > t ; t ++ ) n . _initHooks [ t ] . call ( this ) } } , e } , o . Class . include = function ( t ) { return o . extend ( this . prototype , t ) , this } , o . Class . mergeOptions = function ( t ) { return o . extend ( this . prototype . options , t ) , this } , o . Class . addInitHook = function ( t ) { var e = Array . prototype . slice . call ( arguments , 1 ) , i = "function" == typeof t ? t : function ( ) { this [ t ] . apply ( this , e ) } ; return this . prototype . _initHooks = this . prototype . _initHooks || [ ] , this . prototype . _initHooks . push ( i ) , this } , o . Evented = o . Class . extend ( { on : function ( t , e , i ) { if ( "object" == typeof t ) for ( var n in t ) this . _on ( n , t [ n ] , e ) ; else { t = o . Util . splitWords ( t ) ; for ( var s = 0 , r = t . length ; r > s ; s ++ ) this . _on ( t [ s ] , e , i ) } return this } , off : function ( t , e , i ) { if ( t ) if ( "object" == typeof t ) for ( var n in t ) this . _off ( n , t [ n ] , e ) ; else { t = o . Util . splitWords ( t ) ; for ( var s = 0
} } , _draggableMoved : function ( t ) { return t = t . options . draggable ? t : this , t . dragging && t . dragging . moved ( ) || this . boxZoom && this . boxZoom . moved ( ) } , _clearHandlers : function ( ) { for ( var t = 0 , e = this . _handlers . length ; e > t ; t ++ ) this . _handlers [ t ] . disable ( ) } , whenReady : function ( t , e ) { return this . _loaded ? t . call ( e || this , { target : this } ) : this . on ( "load" , t , e ) , this } , _getMapPanePos : function ( ) { return o . DomUtil . getPosition ( this . _mapPane ) || new o . Point ( 0 , 0 ) } , _moved : function ( ) { var t = this . _getMapPanePos ( ) ; return t && ! t . equals ( [ 0 , 0 ] ) } , _getTopLeftPoint : function ( t , e ) { var n = t && e !== i ? this . _getNewPixelOrigin ( t , e ) : this . getPixelOrigin ( ) ; return n . subtract ( this . _getMapPanePos ( ) ) } , _getNewPixelOrigin : function ( t , e ) { var i = this . getSize ( ) . _divideBy ( 2 ) ; return this . project ( t , e ) . _subtract ( i ) . _add ( this . _getMapPanePos ( ) ) . _round ( ) } , _latLngToNewLayerPoint : function ( t , e , i ) { var n = this . _getNewPixelOrigin ( i , e ) ; return this . project ( t , e ) . _subtract ( n ) } , _getCenterLayerPoint : function ( ) { return this . containerPointToLayerPoint ( this . getSize ( ) . _divideBy ( 2 ) ) } , _getCenterOffset : function ( t ) { return this . latLngToLayerPoint ( t ) . subtract ( this . _getCenterLayerPoint ( ) ) } , _limitCenter : function ( t , e , i ) { if ( ! i ) return t ; var n = this . project ( t , e ) , s = this . getSize ( ) . divideBy ( 2 ) , r = new o . Bounds ( n . subtract ( s ) , n . add ( s ) ) , a = this . _getBoundsOffset ( r , i , e ) ; return a . round ( ) . equals ( [ 0 , 0 ] ) ? t : this . unproject ( n . add ( a ) , e ) } , _limitOffset : function ( t , e ) { if ( ! e ) return t ; var i = this . getPixelBounds ( ) , n = new o . Bounds ( i . min . add ( t ) , i . max . add ( t ) ) ; return t . add ( this . _getBoundsOffset ( n , e ) ) } , _getBoundsOffset : function ( t , e , i ) { var n = o . bounds ( this . project ( e . getNorthEast ( ) , i ) , this . project ( e . getSouthWest ( ) , i ) ) , s = n . min . subtract ( t . min ) , r = n . max . subtract ( t . max ) , a = this . _rebound ( s . x , - r . x ) , h = this . _rebound ( s . y , - r . y ) ; return new o . Point ( a , h ) } , _rebound : function ( t , e ) { return t + e > 0 ? Math . round ( t - e ) / 2 : Math . max ( 0 , Math . ceil ( t ) ) - Math . max ( 0 , Math . floor ( e ) ) } , _limitZoom : function ( t ) { var e = this . getMinZoom ( ) , i = this . getMaxZoom ( ) , n = o . Browser . any3d ? this . options . zoomSnap : 1 ; return n && ( t = Math . round ( t / n ) * n ) , Math . max ( e , Math . min ( i , t ) ) } } ) , o . map = function ( t , e ) { return new o . Map ( t , e ) } , o . Layer = o . Evented . extend ( { options : { pane : "overlayPane" , nonBubblingEvents : [ ] } , addTo : function ( t ) { return t . addLayer ( this ) , this } , remove : function ( ) { return this . removeFrom ( this . _map || this . _mapToAdd ) } , removeFrom : function ( t ) { return t && t . removeLayer ( this ) , this } , getPane : function ( t ) { return this . _map . getPane ( t ? this . options [ t ] || t : this . options . pane ) } , addInteractiveTarget : function ( t ) { return this . _map . _targets [ o . stamp ( t ) ] = this , this } , removeInteractiveTarget : function ( t ) { return delete this . _map . _targets [ o . stamp ( t ) ] , this } , _layerAdd : function ( t ) { var e = t . target ; e . hasLayer ( this ) && ( this . _map = e , this . _zoomAnimated = e . _zoomAnimated , this . getEvents && e . on ( this . getEvents ( ) , this ) , this . onAdd ( e ) , this . getAttribution && this . _map . attributionControl && this . _map . attributionControl . addAttribution ( this . getAttribution ( ) ) , this . fire ( "add" ) , e . fire ( "layeradd" , { layer : this } ) ) } } ) , o . Map . include ( { addLayer : function ( t ) { var e = o . stamp ( t ) ; return this . _layers [ e ] ? this : ( this . _layers [ e ] = t , t . _mapToAdd = this , t . beforeAdd && t . beforeAdd ( this ) , this . whenReady ( t . _layerAdd , t ) , this ) } , removeLayer : function ( t ) { var e = o . stamp ( t ) ; return this . _layers [ e ] ? ( this . _loaded && t . onRemove ( this ) , t . getAttribution && this . attributionControl && this . attributionControl . removeAttribution ( t . getAttribution ( ) ) , t . getEvents && this . off ( t . getEvents ( ) , t ) , delete this . _layers [ e ] , this . _loaded && ( this . fire ( "layerremove" , { layer : t } ) , t . fire ( "remove" ) ) , t . _map = t . _mapToAdd = null , this ) : this } , hasLayer : function ( t ) { return ! ! t && o . stamp ( t ) in this . _layers } , eachLayer : function ( t , e ) { for ( var i in this . _layers ) t . call ( e , this . _layers [ i ] ) ; return this } , _addLayers : function ( t ) { t = t ? o . Util . isArray ( t ) ? t : [ t ] : [ ] ; for ( var e = 0 , i = t . length ; i > e ; e ++ ) this . addLayer ( t [ e ] ) } , _addZoomLimit : function ( t ) { ! isNaN ( t . options . maxZoom ) && isNaN ( t . options . minZoom ) || ( this . _zoomBoundLayers [ o . stamp ( t ) ] = t , this . _updateZoomLevels ( ) ) } , _removeZoomLimit : function ( t ) { var e = o . stamp ( t ) ; this . _zoomBoundLayers [ e ] && ( delete this . _zoomBoundLayers [ e ] , this . _updateZoomLevels ( ) ) } , _updateZoomLevels : function ( ) { var t = 1 / 0 , e = - ( 1 / 0 ) , n = this . _getZoomSpan ( ) ; for ( var o in this . _zoomBoundLayers ) { var s = this . _zoomBoundLayers [ o ] . op
} ) , this . _popupHandlersAdded = ! 0 ) , this . _originalPopupOffset = this . _popup . options . offset , this } , unbindPopup : function ( ) { return this . _popup && ( this . off ( { click : this . _openPopup , remove : this . closePopup , move : this . _movePopup } ) , this . _popupHandlersAdded = ! 1 , this . _popup = null ) , this } , openPopup : function ( t , e ) { if ( t instanceof o . Layer || ( e = t , t = this ) , t instanceof o . FeatureGroup ) for ( var i in this . _layers ) { t = this . _layers [ i ] ; break } return e || ( e = t . getCenter ? t . getCenter ( ) : t . getLatLng ( ) ) , this . _popup && this . _map && ( this . _popup . options . offset = this . _popupAnchor ( t ) , this . _popup . _source = t , this . _popup . update ( ) , this . _map . openPopup ( this . _popup , e ) ) , this } , closePopup : function ( ) { return this . _popup && this . _popup . _close ( ) , this } , togglePopup : function ( t ) { return this . _popup && ( this . _popup . _map ? this . closePopup ( ) : this . openPopup ( t ) ) , this } , isPopupOpen : function ( ) { return this . _popup . isOpen ( ) } , setPopupContent : function ( t ) { return this . _popup && this . _popup . setContent ( t ) , this } , getPopup : function ( ) { return this . _popup } , _openPopup : function ( t ) { var e = t . layer || t . target ; if ( this . _popup && this . _map ) return e instanceof o . Path ? void this . openPopup ( t . layer || t . target , t . latlng ) : void ( this . _map . hasLayer ( this . _popup ) && this . _popup . _source === e ? this . closePopup ( ) : this . openPopup ( e , t . latlng ) ) } , _popupAnchor : function ( t ) { var e = t . _getPopupAnchor ? t . _getPopupAnchor ( ) : [ 0 , 0 ] , i = this . _originalPopupOffset || o . Popup . prototype . options . offset ; return o . point ( e ) . add ( i ) } , _movePopup : function ( t ) { this . _popup . setLatLng ( t . latlng ) } } ) , o . Marker . include ( { _getPopupAnchor : function ( ) { return this . options . icon . options . popupAnchor || [ 0 , 0 ] } } ) , o . LayerGroup = o . Layer . extend ( { initialize : function ( t ) { this . _layers = { } ; var e , i ; if ( t ) for ( e = 0 , i = t . length ; i > e ; e ++ ) this . addLayer ( t [ e ] ) } , addLayer : function ( t ) { var e = this . getLayerId ( t ) ; return this . _layers [ e ] = t , this . _map && this . _map . addLayer ( t ) , this } , removeLayer : function ( t ) { var e = t in this . _layers ? t : this . getLayerId ( t ) ; return this . _map && this . _layers [ e ] && this . _map . removeLayer ( this . _layers [ e ] ) , delete this . _layers [ e ] , this } , hasLayer : function ( t ) { return ! ! t && ( t in this . _layers || this . getLayerId ( t ) in this . _layers ) } , clearLayers : function ( ) { for ( var t in this . _layers ) this . removeLayer ( this . _layers [ t ] ) ; return this } , invoke : function ( t ) { var e , i , n = Array . prototype . slice . call ( arguments , 1 ) ; for ( e in this . _layers ) i = this . _layers [ e ] , i [ t ] && i [ t ] . apply ( i , n ) ; return this } , onAdd : function ( t ) { for ( var e in this . _layers ) t . addLayer ( this . _layers [ e ] ) } , onRemove : function ( t ) { for ( var e in this . _layers ) t . removeLayer ( this . _layers [ e ] ) } , eachLayer : function ( t , e ) { for ( var i in this . _layers ) t . call ( e , this . _layers [ i ] ) ; return this } , getLayer : function ( t ) { return this . _layers [ t ] } , getLayers : function ( ) { var t = [ ] ; for ( var e in this . _layers ) t . push ( this . _layers [ e ] ) ; return t } , setZIndex : function ( t ) { return this . invoke ( "setZIndex" , t ) } , getLayerId : function ( t ) { return o . stamp ( t ) } } ) , o . layerGroup = function ( t ) { return new o . LayerGroup ( t ) } , o . FeatureGroup = o . LayerGroup . extend ( { addLayer : function ( t ) { return this . hasLayer ( t ) ? this : ( t . addEventParent ( this ) , o . LayerGroup . prototype . addLayer . call ( this , t ) , this . fire ( "layeradd" , { layer : t } ) ) } , removeLayer : function ( t ) { return this . hasLayer ( t ) ? ( t in this . _layers && ( t = this . _layers [ t ] ) , t . removeEventParent ( this ) , o . LayerGroup . prototype . removeLayer . call ( this , t ) , this . fire ( "layerremove" , { layer : t } ) ) : this } , setStyle : function ( t ) { return this . invoke ( "setStyle" , t ) } , bringToFront : function ( ) { return this . invoke ( "bringToFront" ) } , bringToBack : function ( ) { return this . invoke ( "bringToBack" ) } , getBounds : function ( ) { var t = new o . LatLngBounds ; for ( var e in this . _layers ) { var i = this . _layers [ e ] ; t . extend ( i . getBounds ? i . getBounds ( ) : i . getLatLng ( ) ) } return t } } ) , o . featureGroup = function ( t ) { return new o . FeatureGroup ( t ) } , o . Renderer = o . Layer . extend ( { options : { padding : . 1 } , initialize : function ( t ) { o . setOptions ( this , t ) , o . stamp ( this ) } , onAdd : function ( ) { this . _container || ( this . _initContainer ( ) , this . _zoomAnimated && o . DomUtil . addClass ( this . _container , "leaflet-zoom-animated" ) ) , this . getPane ( ) . appendChild ( this . _container ) , this . _update ( ) } , onRemove : function ( ) { o . DomUtil . remove ( this . _container ) } , getEvents : function ( ) { var t = { viewreset : this . _reset , zoom : this . _onZoom , moveend : this . _update } ; return this . _zoomAnimated && ( t . zoomanim = this . _onAnimZoo
} , _skipEvents : { } , _fakeStop : function ( t ) { o . DomEvent . _skipEvents [ t . type ] = ! 0 } , _skipped : function ( t ) { var e = this . _skipEvents [ t . type ] ; return this . _skipEvents [ t . type ] = ! 1 , e } , _isExternalTarget : function ( t , e ) { var i = e . relatedTarget ; if ( ! i ) return ! 0 ; try { for ( ; i && i !== t ; ) i = i . parentNode } catch ( n ) { return ! 1 } return i !== t } , _filterClick : function ( t , e ) { var i = t . timeStamp || t . originalEvent && t . originalEvent . timeStamp , n = o . DomEvent . _lastClick && i - o . DomEvent . _lastClick ; return n && n > 100 && 500 > n || t . target . _simulatedClick && ! t . _simulated ? void o . DomEvent . stop ( t ) : ( o . DomEvent . _lastClick = i , void e ( t ) ) } } , o . DomEvent . addListener = o . DomEvent . on , o . DomEvent . removeListener = o . DomEvent . off , o . Draggable = o . Evented . extend ( { options : { clickTolerance : 3 } , statics : { START : o . 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 ( t , e , i ) { this . _element = t , this . _dragStartTarget = e || t , this . _preventOutline = i } , enable : function ( ) { this . _enabled || ( o . DomEvent . on ( this . _dragStartTarget , o . Draggable . START . join ( " " ) , this . _onDown , this ) , this . _enabled = ! 0 ) } , disable : function ( ) { this . _enabled && ( o . DomEvent . off ( this . _dragStartTarget , o . Draggable . START . join ( " " ) , this . _onDown , this ) , this . _enabled = ! 1 , this . _moved = ! 1 ) } , _onDown : function ( t ) { if ( ! t . _simulated && ( this . _moved = ! 1 , ! o . DomUtil . hasClass ( this . _element , "leaflet-zoom-anim" ) && ! ( o . Draggable . _dragging || t . shiftKey || 1 !== t . which && 1 !== t . button && ! t . touches ) && this . _enabled && ( o . Draggable . _dragging = ! 0 , this . _preventOutline && o . DomUtil . preventOutline ( this . _element ) , o . DomUtil . disableImageDrag ( ) , o . DomUtil . disableTextSelection ( ) , ! this . _moving ) ) ) { this . fire ( "down" ) ; var i = t . touches ? t . touches [ 0 ] : t ; this . _startPoint = new o . Point ( i . clientX , i . clientY ) , this . _startPos = this . _newPos = o . DomUtil . getPosition ( this . _element ) , o . DomEvent . on ( e , o . Draggable . MOVE [ t . type ] , this . _onMove , this ) . on ( e , o . Draggable . END [ t . type ] , this . _onUp , this ) } } , _onMove : function ( i ) { if ( ! i . _simulated ) { if ( i . touches && i . touches . length > 1 ) return void ( this . _moved = ! 0 ) ; var n = i . touches && 1 === i . touches . length ? i . touches [ 0 ] : i , s = new o . Point ( n . clientX , n . clientY ) , r = s . subtract ( this . _startPoint ) ; ( r . x || r . y ) && ( Math . abs ( r . x ) + Math . abs ( r . y ) < this . options . clickTolerance || ( o . DomEvent . preventDefault ( i ) , this . _moved || ( this . fire ( "dragstart" ) , this . _moved = ! 0 , this . _startPos = o . DomUtil . getPosition ( this . _element ) . subtract ( r ) , o . DomUtil . addClass ( e . body , "leaflet-dragging" ) , this . _lastTarget = i . target || i . srcElement , t . SVGElementInstance && this . _lastTarget instanceof SVGElementInstance && ( this . _lastTarget = this . _lastTarget . correspondingUseElement ) , o . DomUtil . addClass ( this . _lastTarget , "leaflet-drag-target" ) ) , this . _newPos = this . _startPos . add ( r ) , this . _moving = ! 0 , o . Util . cancelAnimFrame ( this . _animRequest ) , this . _lastEvent = i , this . _animRequest = o . Util . requestAnimFrame ( this . _updatePosition , this , ! 0 ) ) ) } } , _updatePosition : function ( ) { var t = { originalEvent : this . _lastEvent } ; this . fire ( "predrag" , t ) , o . DomUtil . setPosition ( this . _element , this . _newPos ) , this . fire ( "drag" , t ) } , _onUp : function ( t ) { if ( ! t . _simulated ) { o . DomUtil . removeClass ( e . body , "leaflet-dragging" ) , this . _lastTarget && ( o . DomUtil . removeClass ( this . _lastTarget , "leaflet-drag-target" ) , this . _lastTarget = null ) ; for ( var i in o . Draggable . MOVE ) o . DomEvent . off ( e , o . Draggable . MOVE [ i ] , this . _onMove , this ) . off ( e , o . Draggable . END [ i ] , this . _onUp , this ) ; o . DomUtil . enableImageDrag ( ) , o . DomUtil . enableTextSelection ( ) , this . _moved && this . _moving && ( o . Util . cancelAnimFrame ( this . _animRequest ) , this . fire ( "dragend" , { distance : this . _newPos . distanceTo ( this . _startPos ) } ) ) , this . _moving = ! 1 , o . Draggable . _dragging = ! 1 } } } ) , o . Handler = o . Class . extend ( { initialize : function ( t ) { this . _map = t } , enable : function ( ) { this . _enabled || ( this . _enabled = ! 0 , this . addHooks ( ) ) } , disable : function ( ) { this . _enabled && ( this . _enabled = ! 1 , this . removeHooks ( ) ) } , enabled : function ( ) { return ! ! this . _enabled } } ) , o . Map . mergeOptions ( { dragging : ! 0 , inertia : ! o . Browser . android23 , inertiaDeceleration : 3400 , inertiaMaxSpeed : 1 / 0 , easeLinearity : . 2 , worldCopyJump : ! 1 , maxBoundsViscosity : 0 } ) , o . Map . Drag = o . Handler . extend ( { addHooks : function ( ) { if ( ! this . _draggable ) {
for ( r = 0 ; r < o . length ; r ++ ) this . _map . addLayer ( o [ r ] ) ; this . _handlingClick = ! 1 , this . _refocusOnMap ( ) } , _checkDisabledLayers : function ( ) { for ( var t , e , n = this . _form . getElementsByTagName ( "input" ) , o = this . _map . getZoom ( ) , s = n . length - 1 ; s >= 0 ; s -- ) t = n [ s ] , e = this . _getLayer ( t . layerId ) . layer , t . disabled = e . options . minZoom !== i && o < e . options . minZoom || e . options . maxZoom !== i && o > e . options . maxZoom } , _expand : function ( ) { return this . expand ( ) } , _collapse : function ( ) { return this . collapse ( ) } } ) , o . control . layers = function ( t , e , i ) { return new o . Control . Layers ( t , e , i ) } , o . PosAnimation = o . Evented . extend ( { run : function ( t , e , i , n ) { this . stop ( ) , this . _el = t , this . _inProgress = ! 0 , this . _duration = i || . 25 , this . _easeOutPower = 1 / Math . max ( n || . 5 , . 2 ) , this . _startPos = o . DomUtil . getPosition ( t ) , this . _offset = e . subtract ( this . _startPos ) , this . _startTime = + new Date , this . fire ( "start" ) , this . _animate ( ) } , stop : function ( ) { this . _inProgress && ( this . _step ( ! 0 ) , this . _complete ( ) ) } , _animate : function ( ) { this . _animId = o . Util . requestAnimFrame ( this . _animate , this ) , this . _step ( ) } , _step : function ( t ) { var e = + new Date - this . _startTime , i = 1e3 * this . _duration ; i > e ? this . _runFrame ( this . _easeOut ( e / i ) , t ) : ( this . _runFrame ( 1 ) , this . _complete ( ) ) } , _runFrame : function ( t , e ) { var i = this . _startPos . add ( this . _offset . multiplyBy ( t ) ) ; e && i . _round ( ) , o . DomUtil . setPosition ( this . _el , i ) , this . fire ( "step" ) } , _complete : function ( ) { o . Util . cancelAnimFrame ( this . _animId ) , this . _inProgress = ! 1 , this . fire ( "end" ) } , _easeOut : function ( t ) { return 1 - Math . pow ( 1 - t , this . _easeOutPower ) } } ) , o . Map . include ( { setView : function ( t , e , n ) { if ( e = e === i ? this . _zoom : this . _limitZoom ( e ) , t = this . _limitCenter ( o . latLng ( t ) , e , this . options . maxBounds ) , n = n || { } , this . _stop ( ) , this . _loaded && ! n . reset && n !== ! 0 ) { n . animate !== i && ( n . zoom = o . extend ( { animate : n . animate } , n . zoom ) , n . pan = o . extend ( { animate : n . animate , duration : n . duration } , n . pan ) ) ; var s = this . _zoom !== e ? this . _tryAnimatedZoom && this . _tryAnimatedZoom ( t , e , n . zoom ) : this . _tryAnimatedPan ( t , n . pan ) ; if ( s ) return clearTimeout ( this . _sizeTimer ) , this } return this . _resetView ( t , e ) , this } , panBy : function ( t , e ) { if ( t = o . point ( t ) . round ( ) , e = e || { } , ! t . x && ! t . y ) return this . fire ( "moveend" ) ; if ( e . animate !== ! 0 && ! this . getSize ( ) . contains ( t ) ) return this . _resetView ( this . unproject ( this . project ( this . getCenter ( ) ) . add ( t ) ) , this . getZoom ( ) ) , this ; if ( this . _panAnim || ( this . _panAnim = new o . PosAnimation , this . _panAnim . on ( { step : this . _onPanTransitionStep , end : this . _onPanTransitionEnd } , this ) ) , e . noMoveStart || this . fire ( "movestart" ) , e . animate !== ! 1 ) { o . DomUtil . addClass ( this . _mapPane , "leaflet-pan-anim" ) ; var i = this . _getMapPanePos ( ) . subtract ( t ) . round ( ) ; this . _panAnim . run ( this . _mapPane , i , e . duration || . 25 , e . easeLinearity ) } else this . _rawPanBy ( t ) , this . fire ( "move" ) . fire ( "moveend" ) ; return this } , _onPanTransitionStep : function ( ) { this . fire ( "move" ) } , _onPanTransitionEnd : function ( ) { o . DomUtil . removeClass ( this . _mapPane , "leaflet-pan-anim" ) , this . fire ( "moveend" ) } , _tryAnimatedPan : function ( t , e ) { var i = this . _getCenterOffset ( t ) . _floor ( ) ; return ( e && e . animate ) === ! 0 || this . getSize ( ) . contains ( i ) ? ( this . panBy ( i , e ) , ! 0 ) : ! 1 } } ) , o . Map . mergeOptions ( { zoomAnimation : ! 0 , zoomAnimationThreshold : 4 } ) ; var h = o . DomUtil . TRANSITION && o . Browser . any3d && ! o . Browser . mobileOpera ; h && o . Map . addInitHook ( function ( ) { this . _zoomAnimated = this . options . zoomAnimation , this . _zoomAnimated && ( this . _createAnimProxy ( ) , o . DomEvent . on ( this . _proxy , o . DomUtil . TRANSITION _END , this . _catchTransitionEnd , this ) ) } ) , o . Map . include ( h ? { _createAnimProxy : function ( ) { var t = this . _proxy = o . DomUtil . create ( "div" , "leaflet-proxy leaflet-zoom-animated" ) ; this . _panes . mapPane . appendChild ( t ) , this . on ( "zoomanim" , function ( e ) { var i = o . DomUtil . TRANSFORM , n = t . style [ i ] ; o . DomUtil . setTransform ( t , this . project ( e . center , e . zoom ) , this . getZoomScale ( e . zoom , 1 ) ) , n === t . style [ i ] && this . _animatingZoom && this . _onZoomTransitionEnd ( ) } , this ) , this . on ( "load moveend" , function ( ) { var e = this . getCenter ( ) , i = this . getZoom ( ) ; o . DomUtil . setTransform ( t , this . project ( e , i ) , this . getZoomScale ( i , 1 ) ) } , this ) } , _catchTransitionEnd : function ( t ) { this . _animatingZoom && t . propertyName . indexOf ( "transform" ) >= 0 && this . _onZoomTransitionEnd ( ) } , _nothingToAnimate : function ( ) { return ! this . _container . getElementsByClassName ( "leaflet-zoom-animated" ) . length } , _tryAnimatedZoom : function ( t , e , i ) { if ( this . _animatingZoom ) return ! 0 ; if ( i = i