2016-08-09 06:42:21 +00:00
! function ( e ) { var t , i ; ! function ( ) { function e ( e , t ) { if ( ! t ) return e ; if ( 0 === e . indexOf ( "." ) ) { var i = t . split ( "/" ) , n = e . split ( "/" ) , a = i . length - 1 , o = n . length , r = 0 , s = 0 ; e : for ( var l = 0 ; o > l ; l ++ ) switch ( n [ l ] ) { case ".." : if ( ! ( a > r ) ) break e ; r ++ , s ++ ; break ; case "." : s ++ ; break ; default : break e } return i . length = a - r , n = n . slice ( s ) , i . concat ( n ) . join ( "/" ) } return e } function n ( t ) { function i ( i , r ) { if ( "string" == typeof i ) { var s = n [ i ] ; return s || ( s = o ( e ( i , t ) ) , n [ i ] = s ) , s } i instanceof Array && ( r = r || function ( ) { } , r . apply ( this , a ( i , r , t ) ) ) } var n = { } ; return i } function a ( i , n , a ) { for ( var s = [ ] , l = r [ a ] , h = 0 , m = Math . min ( i . length , n . length ) ; m > h ; h ++ ) { var V , U = e ( i [ h ] , a ) ; switch ( U ) { case "require" : V = l && l . require || t ; break ; case "exports" : V = l . exports ; break ; case "module" : V = l ; break ; default : V = o ( U ) } s . push ( V ) } return s } function o ( e ) { var t = r [ e ] ; if ( ! t ) throw new Error ( "No " + e ) ; if ( ! t . defined ) { var i = t . factory , n = i . apply ( this , a ( t . deps || [ ] , i , e ) ) ; "undefined" != typeof n && ( t . exports = n ) , t . defined = 1 } return t . exports } var r = { } ; i = function ( e , t , i ) { r [ e ] = { id : e , deps : t , factory : i , defined : 0 , exports : { } , require : n ( e ) } } , t = n ( "" ) } ( ) , i ( "echarts" , [ "echarts/echarts" ] , function ( e ) { return e } ) , i ( "echarts/echarts" , [ "require" , "./config" , "zrender/tool/util" , "zrender/tool/event" , "zrender/tool/env" , "zrender" , "zrender/config" , "./chart/island" , "./component/toolbox" , "./component" , "./component/title" , "./component/tooltip" , "./component/legend" , "./util/ecData" , "./chart" , "zrender/tool/color" , "./component/timeline" , "zrender/shape/Image" , "zrender/loadingEffect/Bar" , "zrender/loadingEffect/Bubble" , "zrender/loadingEffect/DynamicLine" , "zrender/loadingEffect/Ring" , "zrender/loadingEffect/Spin" , "zrender/loadingEffect/Whirling" , "./theme/macarons" , "./theme/infographic" ] , function ( e ) { function t ( ) { r . Dispatcher . call ( this ) } function i ( e ) { e . innerHTML = "" , this . _themeConfig = { } , this . dom = e , this . _connected = ! 1 , this . _status = { dragIn : ! 1 , dragOut : ! 1 , needRefresh : ! 1 } , this . _curEventType = ! 1 , this . _chartList = [ ] , this . _messageCenter = new t , this . _messageCenterOutSide = new t , this . resize = this . resize ( ) , this . _init ( ) } function n ( e , t , i , n , a ) { for ( var o = e . _chartList , r = o . length ; r -- ; ) { var s = o [ r ] ; "function" == typeof s [ t ] && s [ t ] ( i , n , a ) } } var a = e ( "./config" ) , o = e ( "zrender/tool/util" ) , r = e ( "zrender/tool/event" ) , s = { } , l = e ( "zrender/tool/env" ) . canvasSupported , h = new Date - 0 , m = { } , V = "_echarts_instance_" ; s . version = "2.2.7" , s . dependencies = { zrender : "2.1.1" } , s . init = function ( t , n ) { var a = e ( "zrender" ) ; a . version . replace ( "." , "" ) - 0 < s . dependencies . zrender . replace ( "." , "" ) - 0 && console . error ( "ZRender " + a . version + " is too old for ECharts " + s . version + ". Current version need ZRender " + s . dependencies . zrender + "+" ) , t = t instanceof Array ? t [ 0 ] : t ; var o = t . getAttribute ( V ) ; return o || ( o = h ++ , t . setAttribute ( V , o ) ) , m [ o ] && m [ o ] . dispose ( ) , m [ o ] = new i ( t ) , m [ o ] . id = o , m [ o ] . canvasSupported = l , m [ o ] . setTheme ( n ) , m [ o ] } , s . getInstanceById = function ( e ) { return m [ e ] } , o . merge ( t . prototype , r . Dispatcher . prototype , ! 0 ) ; var U = e ( "zrender/config" ) . EVENT , d = [ "CLICK" , "DBLCLICK" , "MOUSEOVER" , "MOUSEOUT" , "DRAGSTART" , "DRAGEND" , "DRAGENTER" , "DRAGOVER" , "DRAGLEAVE" , "DROP" ] ; return i . prototype = { _init : function ( ) { var t = this , i = e ( "zrender" ) . init ( this . dom ) ; this . _zr = i , this . _messageCenter . dispatch = function ( e , i , n , a ) { n = n || { } , n . type = e , n . event = i , t . _messageCenter . dispatchWithContext ( e , n , a ) , t . _messageCenterOutSide . dispatchWithContext ( e , n , a ) } , this . _onevent = function ( e ) { return t . _ _onevent ( e ) } ; for ( var n in a . EVENT ) "CLICK" != n && "DBLCLICK" != n && "HOVER" != n && "MOUSEOUT" != n && "MAP_ROAM" != n && this . _messageCenter . bind ( a . EVENT [ n ] , this . _onevent , this ) ; var o = { } ; this . _onzrevent = function ( e ) { return t [ o [ e . type ] ] ( e ) } ; for ( var r = 0 , s = d . length ; s > r ; r ++ ) { var l = d [ r ] , h = U [ l ] ; o [ h ] = "_on" + l . toLowerCase ( ) , i . on ( h , this . _onzrevent ) } this . chart = { } , this . component = { } ; var m = e ( "./chart/island" ) ; this . _island = new m ( this . _themeConfig , this . _messageCenter , i , { } , this ) , this . chart . island = this . _island ; var V = e ( "./component/toolbox" ) ; this . _toolbox = new V ( this . _themeConfig , this . _messageCenter , i , { } , this ) , this . component . toolbox = this . _toolbox ; var p = e ( "./component" ) ; p . define ( "title" , e ( "./component/title" ) ) , p . define ( "tooltip" , e ( "./component/tooltip" ) ) , p . define ( "legend" , e ( "./component/legend" ) ) , ( 0 === i . getWidth ( ) || 0 === i . getHeight ( ) ) && console . error ( " Dom ’ s width & height should be r
null == e . _ _animators && ( e . _ _animators = [ ] ) ; var V = e . _ _animators , U = this . animation . animate ( r , { loop : a } ) . during ( function ( ) { o . modShape ( e ) } ) . done ( function ( ) { var t = i . indexOf ( e . _ _animators , U ) ; t >= 0 && V . splice ( t , 1 ) } ) ; return V . push ( U ) , U } n ( "Element not existed" ) } , V . prototype . stopAnimation = function ( e ) { if ( e . _ _animators ) { for ( var t = e . _ _animators , i = t . length , n = 0 ; i > n ; n ++ ) t [ n ] . stop ( ) ; t . length = 0 } return this } , V . prototype . clearAnimation = function ( ) { return this . animation . clear ( ) , this } , V . prototype . showLoading = function ( e ) { return this . painter . showLoading ( e ) , this } , V . prototype . hideLoading = function ( ) { return this . painter . hideLoading ( ) , this } , V . prototype . getWidth = function ( ) { return this . painter . getWidth ( ) } , V . prototype . getHeight = function ( ) { return this . painter . getHeight ( ) } , V . prototype . toDataURL = function ( e , t , i ) { return this . painter . toDataURL ( e , t , i ) } , V . prototype . shapeToImage = function ( e , t , i ) { var n = a ( ) ; return this . painter . shapeToImage ( n , e , t , i ) } , V . prototype . on = function ( e , t , i ) { return this . handler . on ( e , t , i ) , this } , V . prototype . un = function ( e , t ) { return this . handler . un ( e , t ) , this } , V . prototype . trigger = function ( e , t ) { return this . handler . trigger ( e , t ) , this } , V . prototype . clear = function ( ) { return this . storage . delRoot ( ) , this . painter . clear ( ) , this } , V . prototype . dispose = function ( ) { this . animation . stop ( ) , this . clear ( ) , this . storage . dispose ( ) , this . painter . dispose ( ) , this . handler . dispose ( ) , this . animation = this . storage = this . painter = this . handler = null , m . delInstance ( this . id ) } , m } ) , i ( "zrender/config" , [ ] , function ( ) { var e = { EVENT : { RESIZE : "resize" , CLICK : "click" , DBLCLICK : "dblclick" , MOUSEWHEEL : "mousewheel" , MOUSEMOVE : "mousemove" , MOUSEOVER : "mouseover" , MOUSEOUT : "mouseout" , MOUSEDOWN : "mousedown" , MOUSEUP : "mouseup" , GLOBALOUT : "globalout" , DRAGSTART : "dragstart" , DRAGEND : "dragend" , DRAGENTER : "dragenter" , DRAGOVER : "dragover" , DRAGLEAVE : "dragleave" , DROP : "drop" , touchClickDelay : 300 } , elementClassName : "zr-element" , catchBrushException : ! 1 , debugMode : 0 , devicePixelRatio : Math . max ( window . devicePixelRatio || 1 , 1 ) } ; return e } ) , i ( "echarts/chart/island" , [ "require" , "./base" , "zrender/shape/Circle" , "../config" , "../util/ecData" , "zrender/tool/util" , "zrender/tool/event" , "zrender/tool/color" , "../util/accMath" , "../chart" ] , function ( e ) { function t ( e , t , n , a , r ) { i . call ( this , e , t , n , a , r ) , this . _nameConnector , this . _valueConnector , this . _zrHeight = this . zr . getHeight ( ) , this . _zrWidth = this . zr . getWidth ( ) ; var l = this ; l . shapeHandler . onmousewheel = function ( e ) { var t = e . target , i = e . event , n = s . getDelta ( i ) ; n = n > 0 ? - 1 : 1 , t . style . r -= n , t . style . r = t . style . r < 5 ? 5 : t . style . r ; var a = o . get ( t , "value" ) , r = a * l . option . island . calculateStep ; a = r > 1 ? Math . round ( a - r * n ) : + ( a - r * n ) . toFixed ( 2 ) ; var h = o . get ( t , "name" ) ; t . style . text = h + ":" + a , o . set ( t , "value" , a ) , o . set ( t , "name" , h ) , l . zr . modShape ( t . id ) , l . zr . refreshNextFrame ( ) , s . stop ( i ) } } var i = e ( "./base" ) , n = e ( "zrender/shape/Circle" ) , a = e ( "../config" ) ; a . island = { zlevel : 0 , z : 5 , r : 15 , calculateStep : . 1 } ; var o = e ( "../util/ecData" ) , r = e ( "zrender/tool/util" ) , s = e ( "zrender/tool/event" ) ; return t . prototype = { type : a . CHART _TYPE _ISLAND , _combine : function ( t , i ) { var n = e ( "zrender/tool/color" ) , a = e ( "../util/accMath" ) , r = a . accAdd ( o . get ( t , "value" ) , o . get ( i , "value" ) ) , s = o . get ( t , "name" ) + this . _nameConnector + o . get ( i , "name" ) ; t . style . text = s + this . _valueConnector + r , o . set ( t , "value" , r ) , o . set ( t , "name" , s ) , t . style . r = this . option . island . r , t . style . color = n . mix ( t . style . color , i . style . color ) } , refresh : function ( e ) { e && ( e . island = this . reformOption ( e . island ) , this . option = e , this . _nameConnector = this . option . nameConnector , this . _valueConnector = this . option . valueConnector ) } , getOption : function ( ) { return this . option } , resize : function ( ) { var e = this . zr . getWidth ( ) , t = this . zr . getHeight ( ) , i = e / ( this . _zrWidth || e ) , n = t / ( this . _zrHeight || t ) ; if ( 1 !== i || 1 !== n ) { this . _zrWidth = e , this . _zrHeight = t ; for ( var a = 0 , o = this . shapeList . length ; o > a ; a ++ ) this . zr . modShape ( this . shapeList [ a ] . id , { style : { x : Math . round ( this . shapeList [ a ] . style . x * i ) , y : Math . round ( this . shapeList [ a ] . style . y * n ) } } ) } } , add : function ( e ) { var t = o . get ( e , "name" ) , i = o . get ( e , "value" ) , a = null != o . get ( e , "series" ) ? o . get ( e , "series" ) . name : "" , r = this . getFont ( this . option . island . textStyle ) , s = this . option . island , l = { zlevel : s . zlevel , z : s . z , style : { x : e . style . x , y : e . style . y , r : this . option . island . r , color : e . style . color || e . style . strokeColor , tex
this . zr . modShape ( this . _axisLineShape . id ) , e = ! 0 ) , this . _axisShadowShape . invisible || ( this . _axisShadowShape . invisible = ! 0 , this . zr . modShape ( this . _axisShadowShape . id ) , e = ! 0 ) , this . _axisCrossShape . invisible || ( this . _axisCrossShape . invisible = ! 0 , this . zr . modShape ( this . _axisCrossShape . id ) , e = ! 0 ) , this . _lastTipShape && this . _lastTipShape . tipShape . length > 0 && ( this . zr . delShape ( this . _lastTipShape . tipShape ) , this . _lastTipShape = ! 1 , this . shapeList . length = 2 ) , e && this . zr . refreshNextFrame ( ) , this . showing = ! 1 } , _show : function ( e , t , i , n ) { var a = this . _tDom . offsetHeight , o = this . _tDom . offsetWidth ; e && ( "function" == typeof e && ( e = e ( [ t , i ] ) ) , e instanceof Array && ( t = e [ 0 ] , i = e [ 1 ] ) ) , t + o > this . _zrWidth && ( t -= o + 40 ) , i + a > this . _zrHeight && ( i -= a - 20 ) , 20 > i && ( i = 0 ) , this . _tDom . style . cssText = this . _gCssText + this . _defaultCssText + ( n ? n : "" ) + "left:" + t + "px;top:" + i + "px;" , ( 10 > a || 10 > o ) && setTimeout ( this . _refixed , 20 ) , this . showing = ! 0 } , _ _refixed : function ( ) { if ( this . _tDom ) { var e = "" , t = this . _tDom . offsetHeight , i = this . _tDom . offsetWidth ; this . _tDom . offsetLeft + i > this . _zrWidth && ( e += "left:" + ( this . _zrWidth - i - 20 ) + "px;" ) , this . _tDom . offsetTop + t > this . _zrHeight && ( e += "top:" + ( this . _zrHeight - t - 10 ) + "px;" ) , "" !== e && ( this . _tDom . style . cssText += e ) } } , _ _tryShow : function ( ) { var e , t ; if ( this . _curTarget ) { if ( "island" === this . _curTarget . _type && this . option . tooltip . show ) return void this . _showItemTrigger ( ) ; var i = l . get ( this . _curTarget , "series" ) , n = l . get ( this . _curTarget , "data" ) ; e = this . deepQuery ( [ n , i , this . option ] , "tooltip.show" ) , null != i && null != n && e ? ( t = this . deepQuery ( [ n , i , this . option ] , "tooltip.trigger" ) , "axis" === t ? this . _showAxisTrigger ( i . xAxisIndex , i . yAxisIndex , l . get ( this . _curTarget , "dataIndex" ) ) : this . _showItemTrigger ( ) ) : ( clearTimeout ( this . _hidingTicket ) , clearTimeout ( this . _showingTicket ) , this . _hidingTicket = setTimeout ( this . _hide , this . _hideDelay ) ) } else this . _findPolarTrigger ( ) || this . _findAxisTrigger ( ) } , _findAxisTrigger : function ( ) { if ( ! this . component . xAxis || ! this . component . yAxis ) return void ( this . _hidingTicket = setTimeout ( this . _hide , this . _hideDelay ) ) ; for ( var e , t , i = this . option . series , n = 0 , a = i . length ; a > n ; n ++ ) if ( "axis" === this . deepQuery ( [ i [ n ] , this . option ] , "tooltip.trigger" ) ) return e = i [ n ] . xAxisIndex || 0 , t = i [ n ] . yAxisIndex || 0 , this . component . xAxis . getAxis ( e ) && this . component . xAxis . getAxis ( e ) . type === s . COMPONENT _TYPE _AXIS _CATEGORY ? void this . _showAxisTrigger ( e , t , this . _getNearestDataIndex ( "x" , this . component . xAxis . getAxis ( e ) ) ) : this . component . yAxis . getAxis ( t ) && this . component . yAxis . getAxis ( t ) . type === s . COMPONENT _TYPE _AXIS _CATEGORY ? void this . _showAxisTrigger ( e , t , this . _getNearestDataIndex ( "y" , this . component . yAxis . getAxis ( t ) ) ) : void this . _showAxisTrigger ( e , t , - 1 ) ; "cross" === this . option . tooltip . axisPointer . type && this . _showAxisTrigger ( - 1 , - 1 , - 1 ) } , _findPolarTrigger : function ( ) { if ( ! this . component . polar ) return ! 1 ; var e , t = m . getX ( this . _event ) , i = m . getY ( this . _event ) , n = this . component . polar . getNearestIndex ( [ t , i ] ) ; return n ? ( e = n . valueIndex , n = n . polarIndex ) : n = - 1 , - 1 != n ? this . _showPolarTrigger ( n , e ) : ! 1 } , _getNearestDataIndex : function ( e , t ) { var i = - 1 , n = m . getX ( this . _event ) , a = m . getY ( this . _event ) ; if ( "x" === e ) { for ( var o , r , s = this . component . grid . getXend ( ) , l = t . getCoordByIndex ( i ) ; s > l && ( r = l , n >= l ) ; ) o = l , l = t . getCoordByIndex ( ++ i ) ; return 0 >= i ? i = 0 : r - n >= n - o ? i -= 1 : null == t . getNameByIndex ( i ) && ( i -= 1 ) , i } for ( var h , V , U = this . component . grid . getY ( ) , l = t . getCoordByIndex ( i ) ; l > U && ( h = l , l >= a ) ; ) V = l , l = t . getCoordByIndex ( ++ i ) ; return 0 >= i ? i = 0 : a - h >= V - a ? i -= 1 : null == t . getNameByIndex ( i ) && ( i -= 1 ) , i } , _showAxisTrigger : function ( e , t , i ) { if ( ! this . _event . connectTrigger && this . messageCenter . dispatch ( s . EVENT . TOOLTIP _IN _GRID , this . _event , null , this . myChart ) , null == this . component . xAxis || null == this . component . yAxis || null == e || null == t ) return clearTimeout ( this . _hidingTicket ) , clearTimeout ( this . _showingTicket ) , void ( this . _hidingTicket = setTimeout ( this . _hide , this . _hideDelay ) ) ; var n , a , o , r , l = this . option . series , h = [ ] , V = [ ] , U = "" ; if ( "axis" === this . option . tooltip . trigger ) { if ( ! this . option . tooltip . show ) return ; a = this . option . tooltip . formatter , o = this . option . tooltip . position } var d , p , c = - 1 != e && this . component . xAxis . getAxis ( e ) . type === s . COMPONENT _TYPE _AXIS _CATEGORY ? "xAxis" : - 1 != t && this . component . yAxis . getAxis ( t ) . type === s . COMPONENT _TYPE _AXIS _CATEGORY ? "yAxis" : ! 1 ; if ( c ) { var u = "xAxis" == c ? e : t ; n = this .
for ( var i = this . legendOption . data , n = 0 , a = i . length ; a > n ; n ++ ) if ( this . _getName ( i [ n ] ) === e ) return ; this . legendOption . data . push ( e ) , this . setColor ( e , t ) , this . _selectedMap [ e ] = ! 0 , this . _hasDataMap [ e ] = ! 0 } , del : function ( e ) { for ( var t = this . legendOption . data , i = 0 , n = t . length ; n > i ; i ++ ) if ( this . _getName ( t [ i ] ) === e ) return this . legendOption . data . splice ( i , 1 ) } , getItemShape : function ( e ) { if ( null != e ) for ( var t , i = 0 , n = this . shapeList . length ; n > i ; i ++ ) if ( t = this . shapeList [ i ] , t . _name === e && "text" != t . type ) return t } , setItemShape : function ( e , t ) { for ( var i , n = 0 , a = this . shapeList . length ; a > n ; n ++ ) i = this . shapeList [ n ] , i . _name === e && "text" != i . type && ( this . _selectedMap [ e ] || ( t . style . color = "#ccc" , t . style . strokeColor = "#ccc" ) , this . zr . modShape ( i . id , t ) ) } , isSelected : function ( e ) { return "undefined" != typeof this . _selectedMap [ e ] ? this . _selectedMap [ e ] : ! 0 } , getSelectedMap : function ( ) { return this . _selectedMap } , setSelected : function ( e , t ) { if ( "single" === this . legendOption . selectedMode ) for ( var i in this . _selectedMap ) this . _selectedMap [ i ] = ! 1 ; this . _selectedMap [ e ] = t , this . messageCenter . dispatch ( l . EVENT . LEGEND _SELECTED , null , { selected : this . _selectedMap , target : e } , this . myChart ) } , onlegendSelected : function ( e , t ) { var i = e . selected ; for ( var n in i ) this . _selectedMap [ n ] != i [ n ] && ( t . needRefresh = ! 0 ) , this . _selectedMap [ n ] = i [ n ] } } ; var V = { line : function ( e , t ) { var i = t . height / 2 ; e . moveTo ( t . x , t . y + i ) , e . lineTo ( t . x + t . width , t . y + i ) } , pie : function ( e , t ) { var i = t . x , n = t . y , a = t . width , r = t . height ; o . prototype . buildPath ( e , { x : i + a / 2 , y : n + r + 2 , r : r , r0 : 6 , startAngle : 45 , endAngle : 135 } ) } , eventRiver : function ( e , t ) { var i = t . x , n = t . y , a = t . width , o = t . height ; e . moveTo ( i , n + o ) , e . bezierCurveTo ( i + a , n + o , i , n + 4 , i + a , n + 4 ) , e . lineTo ( i + a , n ) , e . bezierCurveTo ( i , n , i + a , n + o - 4 , i , n + o - 4 ) , e . lineTo ( i , n + o ) } , k : function ( e , t ) { var i = t . x , n = t . y , a = t . width , o = t . height ; s . prototype . buildPath ( e , { x : i + a / 2 , y : [ n + 1 , n + 1 , n + o - 6 , n + o ] , width : a - 6 } ) } , bar : function ( e , t ) { var i = t . x , n = t . y + 1 , a = t . width , o = t . height - 2 , r = 3 ; e . moveTo ( i + r , n ) , e . lineTo ( i + a - r , n ) , e . quadraticCurveTo ( i + a , n , i + a , n + r ) , e . lineTo ( i + a , n + o - r ) , e . quadraticCurveTo ( i + a , n + o , i + a - r , n + o ) , e . lineTo ( i + r , n + o ) , e . quadraticCurveTo ( i , n + o , i , n + o - r ) , e . lineTo ( i , n + r ) , e . quadraticCurveTo ( i , n , i + r , n ) } , force : function ( e , t ) { r . prototype . iconLibrary . circle ( e , t ) } , radar : function ( e , t ) { var i = 6 , n = t . x + t . width / 2 , a = t . y + t . height / 2 , o = t . height / 2 , r = 2 * Math . PI / i , s = - Math . PI / 2 , l = n + o * Math . cos ( s ) , h = a + o * Math . sin ( s ) ; e . moveTo ( l , h ) , s += r ; for ( var m = 0 , V = i - 1 ; V > m ; m ++ ) e . lineTo ( n + o * Math . cos ( s ) , a + o * Math . sin ( s ) ) , s += r ; e . lineTo ( l , h ) } } ; V . chord = V . pie , V . map = V . bar ; for ( var U in V ) r . prototype . iconLibrary [ "legendicon" + U ] = V [ U ] ; return h . inherits ( t , i ) , e ( "../component" ) . define ( "legend" , t ) , t } ) , i ( "echarts/util/ecData" , [ ] , function ( ) { function e ( e , t , i , n , a , o , r , s ) { var l ; return "undefined" != typeof n && ( l = null == n . value ? n : n . value ) , e . _echartsData = { _series : t , _seriesIndex : i , _data : n , _dataIndex : a , _name : o , _value : l , _special : r , _special2 : s } , e . _echartsData } function t ( e , t ) { var i = e . _echartsData ; if ( ! t ) return i ; switch ( t ) { case "series" : case "seriesIndex" : case "data" : case "dataIndex" : case "name" : case "value" : case "special" : case "special2" : return i && i [ "_" + t ] } return null } function i ( e , t , i ) { switch ( e . _echartsData = e . _echartsData || { } , t ) { case "series" : case "seriesIndex" : case "data" : case "dataIndex" : case "name" : case "value" : case "special" : case "special2" : e . _echartsData [ "_" + t ] = i } } function n ( e , t ) { t . _echartsData = { _series : e . _echartsData . _series , _seriesIndex : e . _echartsData . _seriesIndex , _data : e . _echartsData . _data , _dataIndex : e . _echartsData . _dataIndex , _name : e . _echartsData . _name , _value : e . _echartsData . _value , _special : e . _echartsData . _special , _special2 : e . _echartsData . _special2 } } return { pack : e , set : i , get : t , clone : n } } ) , i ( "echarts/chart" , [ ] , function ( ) { var e = { } , t = { } ; return e . define = function ( i , n ) { return t [ i ] = n , e } , e . get = function ( e ) { return t [ e ] } , e } ) , i ( "zrender/tool/color" , [ "require" , "../tool/util" ] , function ( e ) { function t ( e ) { D = e } function i ( ) { D = N } function n ( e , t ) { return e = 0 | e , t = t || D , t [ e % t . length ] } function a ( e ) { B = e } function o ( ) { H = B } function r ( ) { return B } function s ( e , t , i , n , a , o , r ) { O || ( O = P . getContext ( ) ) ; for ( var s = O . createRadialGradient ( e , t , i , n , a , o ) , l = 0 , h = r . length ; h > l ; l ++ ) s . addColorStop ( r [ l ] [ 0 ] , r [ l ] [ 1 ] ) ; return s . _ _nonRecursion = ! 0 , s } function l ( e , t , i , n , a ) { O || ( O = P . getContext ( ) ) ; for ( var o = O . createLinearGradient ( e , t , i , n ) , r = 0 , s =
null == l . x && ( l . x = s . x ) , null == l . y && ( l . y = s . y + ( s . r0 + s . r ) / 2 - 5 ) ; for ( var h = this . createTextShape ( i . textStyle ) , m = this . createBackgroundShape ( i . backgroundColor ) , V = s . x , U = s . y , d = s . r0 + 6 , p = s . r - 6 , c = s . color , u = a . lift ( c , . 1 ) , y = new o ( { highlightStyle : n . clone ( s ) } ) , g = [ ] , b = a . getGradientColors ( [ "#ff6400" , "#ffe100" , "#97ff00" ] , 25 ) , f = 15 , k = 240 , x = 0 ; 16 > x ; x ++ ) g . push ( new r ( { highlightStyle : { x : V , y : U , r0 : d , r : p , startAngle : k - f , endAngle : k , brushType : "fill" , color : u } , _color : a . getLinearGradient ( V + d * Math . cos ( k , ! 0 ) , U - d * Math . sin ( k , ! 0 ) , V + d * Math . cos ( k - f , ! 0 ) , U - d * Math . sin ( k - f , ! 0 ) , [ [ 0 , b [ 2 * x ] ] , [ 1 , b [ 2 * x + 1 ] ] ] ) } ) ) , k -= f ; k = 360 ; for ( var x = 0 ; 4 > x ; x ++ ) g . push ( new r ( { highlightStyle : { x : V , y : U , r0 : d , r : p , startAngle : k - f , endAngle : k , brushType : "fill" , color : u } , _color : a . getLinearGradient ( V + d * Math . cos ( k , ! 0 ) , U - d * Math . sin ( k , ! 0 ) , V + d * Math . cos ( k - f , ! 0 ) , U - d * Math . sin ( k - f , ! 0 ) , [ [ 0 , b [ 2 * x + 32 ] ] , [ 1 , b [ 2 * x + 33 ] ] ] ) } ) ) , k -= f ; var _ = 0 ; if ( null != i . progress ) { e ( m ) , _ = 100 * this . adjust ( i . progress , [ 0 , 1 ] ) . toFixed ( 2 ) / 5 , y . highlightStyle . text = 5 * _ + "%" , e ( y ) ; for ( var x = 0 ; 20 > x ; x ++ ) g [ x ] . highlightStyle . color = _ > x ? g [ x ] . _color : u , e ( g [ x ] ) ; return e ( h ) , void t ( ) } return setInterval ( function ( ) { e ( m ) , _ += _ >= 20 ? - 20 : 1 , e ( y ) ; for ( var i = 0 ; 20 > i ; i ++ ) g [ i ] . highlightStyle . color = _ > i ? g [ i ] . _color : u , e ( g [ i ] ) ; e ( h ) , t ( ) } , s . timeInterval ) } , t } ) , i ( "zrender/loadingEffect/Spin" , [ "require" , "./Base" , "../tool/util" , "../tool/color" , "../tool/area" , "../shape/Sector" ] , function ( e ) { function t ( e ) { i . call ( this , e ) } var i = e ( "./Base" ) , n = e ( "../tool/util" ) , a = e ( "../tool/color" ) , o = e ( "../tool/area" ) , r = e ( "../shape/Sector" ) ; return n . inherits ( t , i ) , t . prototype . _start = function ( e , t ) { var i = n . merge ( this . options , { textStyle : { color : "#fff" , textAlign : "start" } , backgroundColor : "rgba(0, 0, 0, 0.8)" } ) , s = this . createTextShape ( i . textStyle ) , l = 10 , h = o . getTextWidth ( s . highlightStyle . text , s . highlightStyle . textFont ) , m = o . getTextHeight ( s . highlightStyle . text , s . highlightStyle . textFont ) , V = n . merge ( this . options . effect || { } , { r0 : 9 , r : 15 , n : 18 , color : "#fff" , timeInterval : 100 } ) , U = this . getLocation ( this . options . textStyle , h + l + 2 * V . r , Math . max ( 2 * V . r , m ) ) ; V . x = U . x + V . r , V . y = s . highlightStyle . y = U . y + U . height / 2 , s . highlightStyle . x = V . x + V . r + l ; for ( var d = this . createBackgroundShape ( i . backgroundColor ) , p = V . n , c = V . x , u = V . y , y = V . r0 , g = V . r , b = V . color , f = [ ] , k = Math . round ( 180 / p ) , x = 0 ; p > x ; x ++ ) f [ x ] = new r ( { highlightStyle : { x : c , y : u , r0 : y , r : g , startAngle : k * x * 2 , endAngle : k * x * 2 + k , color : a . alpha ( b , ( x + 1 ) / p ) , brushType : "fill" } } ) ; var _ = [ 0 , c , u ] ; return setInterval ( function ( ) { e ( d ) , _ [ 0 ] -= . 3 ; for ( var i = 0 ; p > i ; i ++ ) f [ i ] . rotation = _ , e ( f [ i ] ) ; e ( s ) , t ( ) } , V . timeInterval ) } , t } ) , i ( "zrender/loadingEffect/Whirling" , [ "require" , "./Base" , "../tool/util" , "../tool/area" , "../shape/Ring" , "../shape/Droplet" , "../shape/Circle" ] , function ( e ) { function t ( e ) { i . call ( this , e ) } var i = e ( "./Base" ) , n = e ( "../tool/util" ) , a = e ( "../tool/area" ) , o = e ( "../shape/Ring" ) , r = e ( "../shape/Droplet" ) , s = e ( "../shape/Circle" ) ; return n . inherits ( t , i ) , t . prototype . _start = function ( e , t ) { var i = n . merge ( this . options , { textStyle : { color : "#888" , textAlign : "start" } , backgroundColor : "rgba(250, 250, 250, 0.8)" } ) , l = this . createTextShape ( i . textStyle ) , h = 10 , m = a . getTextWidth ( l . highlightStyle . text , l . highlightStyle . textFont ) , V = a . getTextHeight ( l . highlightStyle . text , l . highlightStyle . textFont ) , U = n . merge ( this . options . effect || { } , { r : 18 , colorIn : "#fff" , colorOut : "#555" , colorWhirl : "#6cf" , timeInterval : 50 } ) , d = this . getLocation ( this . options . textStyle , m + h + 2 * U . r , Math . max ( 2 * U . r , V ) ) ; U . x = d . x + U . r , U . y = l . highlightStyle . y = d . y + d . height / 2 , l . highlightStyle . x = U . x + U . r + h ; var p = this . createBackgroundShape ( i . backgroundColor ) , c = new r ( { highlightStyle : { a : Math . round ( U . r / 2 ) , b : Math . round ( U . r - U . r / 6 ) , brushType : "fill" , color : U . colorWhirl } } ) , u = new s ( { highlightStyle : { r : Math . round ( U . r / 6 ) , brushType : "fill" , color : U . colorIn } } ) , y = new o ( { highlightStyle : { r0 : Math . round ( U . r - U . r / 3 ) , r : U . r , brushType : "fill" , color : U . colorOut } } ) , g = [ 0 , U . x , U . y ] ; return c . highlightStyle . x = u . highlightStyle . x = y . highlightStyle . x = g [ 1 ] , c . highlightStyle . y = u . highlightStyle . y = y . highlightStyle . y = g [ 2 ] , setInterval ( function ( ) { e ( p ) , e ( y ) , g [ 0 ] -= . 3 , c . rotation = g , e ( c ) , e ( u ) , e ( l ) , t ( ) } , U . timeInterval ) } , t } ) , i ( "echarts/theme/macarons" , [ ] , function ( ) { var e = { color : [ "#2ec7c9" , "#b6a2de" , "#5ab1ef" , "#ffb980" , "#d87a80" , "#8d98b3" , "#e5cf0d" , "#97b552" , "#95706d" , "#dc69aa" , "#07a2a4" , "#9a7fd1" , " # 58
this . _processDragLeave ( e ) ) , this . _lastHover = null , this . storage . delHover ( ) , this . painter . clearHover ( ) ) ; var a = "default" ; if ( this . _draggingTarget ) this . storage . drift ( this . _draggingTarget . id , i , n ) , this . _draggingTarget . modSelf ( ) , this . storage . addHover ( this . _draggingTarget ) , this . _clickThreshold ++ ; else if ( this . _isMouseDown ) { var o = ! 1 ; this . painter . eachBuildinLayer ( function ( e ) { e . panable && ( a = "move" , e . position [ 0 ] += i , e . position [ 1 ] += n , o = ! 0 , e . dirty = ! 0 ) } ) , o && this . painter . refresh ( ) } this . _draggingTarget || this . _hasfound && this . _lastHover . draggable ? a = "move" : this . _hasfound && this . _lastHover . clickable && ( a = "pointer" ) , this . root . style . cursor = a , this . _dispatchAgency ( this . _lastHover , V . MOUSEMOVE , e ) , ( this . _draggingTarget || this . _hasfound || this . storage . hasHoverShape ( ) ) && this . painter . refreshHover ( ) } } , mouseout : function ( e , t ) { if ( p ( e ) || t ) { e = this . _zrenderEventFixed ( e ) ; var i = e . toElement || e . relatedTarget ; if ( i != this . root ) for ( ; i && 9 != i . nodeType ; ) { if ( i == this . root ) return void this . _mousemoveHandler ( e ) ; i = i . parentNode } e . zrenderX = this . _lastX , e . zrenderY = this . _lastY , this . root . style . cursor = "default" , this . _isMouseDown = 0 , this . _processOutShape ( e ) , this . _processDrop ( e ) , this . _processDragEnd ( e ) , this . painter . isLoading ( ) || this . painter . refreshHover ( ) , this . dispatch ( V . GLOBALOUT , e ) } } , mousedown : function ( e , t ) { if ( p ( e ) || t ) { if ( this . _clickThreshold = 0 , 2 == this . _lastDownButton ) return this . _lastDownButton = e . button , void ( this . _mouseDownTarget = null ) ; this . _lastMouseDownMoment = new Date , e = this . _zrenderEventFixed ( e ) , this . _isMouseDown = 1 , this . _mouseDownTarget = this . _lastHover , this . _dispatchAgency ( this . _lastHover , V . MOUSEDOWN , e ) , this . _lastDownButton = e . button } } , mouseup : function ( e , t ) { ( p ( e ) || t ) && ( e = this . _zrenderEventFixed ( e ) , this . root . style . cursor = "default" , this . _isMouseDown = 0 , this . _mouseDownTarget = null , this . _dispatchAgency ( this . _lastHover , V . MOUSEUP , e ) , this . _processDrop ( e ) , this . _processDragEnd ( e ) ) } , touchstart : function ( e , t ) { ( p ( e ) || t ) && ( e = this . _zrenderEventFixed ( e , ! 0 ) , this . _lastTouchMoment = new Date , this . _mobileFindFixed ( e ) , this . _mousedownHandler ( e ) ) } , touchmove : function ( e , t ) { ( p ( e ) || t ) && ( e = this . _zrenderEventFixed ( e , ! 0 ) , this . _mousemoveHandler ( e ) , this . _isDragging && s . stop ( e ) ) } , touchend : function ( e , t ) { if ( p ( e ) || t ) { e = this . _zrenderEventFixed ( e , ! 0 ) , this . _mouseupHandler ( e ) ; var i = new Date ; i - this . _lastTouchMoment < V . touchClickDelay && ( this . _mobileFindFixed ( e ) , this . _clickHandler ( e ) , i - this . _lastClickMoment < V . touchClickDelay / 2 && ( this . _dblclickHandler ( e ) , this . _lastHover && this . _lastHover . clickable && s . stop ( e ) ) , this . _lastClickMoment = i ) , this . painter . clearHover ( ) } } } , u = function ( e , t , o ) { U . call ( this ) , this . root = e , this . storage = t , this . painter = o , this . _lastX = this . _lastY = this . _mouseX = this . _mouseY = 0 , this . _findHover = i ( a , this ) , this . _domHover = o . getDomHover ( ) , n ( this ) , window . addEventListener ? ( window . addEventListener ( "resize" , this . _resizeHandler ) , r . os . tablet || r . os . phone ? ( e . addEventListener ( "touchstart" , this . _touchstartHandler ) , e . addEventListener ( "touchmove" , this . _touchmoveHandler ) , e . addEventListener ( "touchend" , this . _touchendHandler ) ) : ( e . addEventListener ( "click" , this . _clickHandler ) , e . addEventListener ( "dblclick" , this . _dblclickHandler ) , e . addEventListener ( "mousewheel" , this . _mousewheelHandler ) , e . addEventListener ( "mousemove" , this . _mousemoveHandler ) , e . addEventListener ( "mousedown" , this . _mousedownHandler ) , e . addEventListener ( "mouseup" , this . _mouseupHandler ) ) , e . addEventListener ( "DOMMouseScroll" , this . _mousewheelHandler ) , e . addEventListener ( "mouseout" , this . _mouseoutHandler ) ) : ( window . attachEvent ( "onresize" , this . _resizeHandler ) , e . attachEvent ( "onclick" , this . _clickHandler ) , e . ondblclick = this . _dblclickHandler , e . attachEvent ( "onmousewheel" , this . _mousewheelHandler ) , e . attachEvent ( "onmousemove" , this . _mousemoveHandler ) , e . attachEvent ( "onmouseout" , this . _mouseoutHandler ) , e . attachEvent ( "onmousedown" , this . _mousedownHandler ) , e . attachEvent ( "onmouseup" , this . _mouseupHandler ) ) } ; u . prototype . on = function ( e , t , i ) { return this . bind ( e , t , i ) , this } , u . prototype . un = function ( e , t ) { return this . unbind ( e , t ) , this } , u . prototype . trigger = function ( e , t ) { switch ( e ) { case V . RESIZE : case V . CLICK : case V . DBLCLICK : case V . MOUSEWHEEL : case V . MOUSEMOVE : case V . MOUSEDOWN : case V . MOUSEUP : case V . MOUSEOUT : this [ "_" + e + "Handler" ] ( t , ! 0 ) } } , u . p
var t = e ( "../tool/area" ) , i = e ( "./Base" ) , n = function ( e ) { i . call ( this , e ) } ; return n . prototype = { type : "text" , brush : function ( e , i ) { var n = this . style ; if ( i && ( n = this . getHighlightStyle ( n , this . highlightStyle || { } ) ) , "undefined" != typeof n . text && n . text !== ! 1 ) { e . save ( ) , this . doClip ( e ) , this . setContext ( e , n ) , this . setTransform ( e ) , n . textFont && ( e . font = n . textFont ) , e . textAlign = n . textAlign || "start" , e . textBaseline = n . textBaseline || "middle" ; var a , o = ( n . text + "" ) . split ( "\n" ) , r = t . getTextHeight ( "国" , n . textFont ) , s = this . getRect ( n ) , l = n . x ; a = "top" == n . textBaseline ? s . y : "bottom" == n . textBaseline ? s . y + r : s . y + r / 2 ; for ( var h = 0 , m = o . length ; m > h ; h ++ ) { if ( n . maxWidth ) switch ( n . brushType ) { case "fill" : e . fillText ( o [ h ] , l , a , n . maxWidth ) ; break ; case "stroke" : e . strokeText ( o [ h ] , l , a , n . maxWidth ) ; break ; case "both" : e . fillText ( o [ h ] , l , a , n . maxWidth ) , e . strokeText ( o [ h ] , l , a , n . maxWidth ) ; break ; default : e . fillText ( o [ h ] , l , a , n . maxWidth ) } else switch ( n . brushType ) { case "fill" : e . fillText ( o [ h ] , l , a ) ; break ; case "stroke" : e . strokeText ( o [ h ] , l , a ) ; break ; case "both" : e . fillText ( o [ h ] , l , a ) , e . strokeText ( o [ h ] , l , a ) ; break ; default : e . fillText ( o [ h ] , l , a ) } a += r } e . restore ( ) } } , getRect : function ( e ) { if ( e . _ _rect ) return e . _ _rect ; var i = t . getTextWidth ( e . text , e . textFont ) , n = t . getTextHeight ( e . text , e . textFont ) , a = e . x ; "end" == e . textAlign || "right" == e . textAlign ? a -= i : "center" == e . textAlign && ( a -= i / 2 ) ; var o ; return o = "top" == e . textBaseline ? e . y : "bottom" == e . textBaseline ? e . y - n : e . y - n / 2 , e . _ _rect = { x : a , y : o , width : i , height : n } , e . _ _rect } } , e ( "../tool/util" ) . inherits ( n , i ) , n } ) , i ( "zrender/shape/Rectangle" , [ "require" , "./Base" , "../tool/util" ] , function ( e ) { var t = e ( "./Base" ) , i = function ( e ) { t . call ( this , e ) } ; return i . prototype = { type : "rectangle" , _buildRadiusPath : function ( e , t ) { var i , n , a , o , r = t . x , s = t . y , l = t . width , h = t . height , m = t . radius ; "number" == typeof m ? i = n = a = o = m : m instanceof Array ? 1 === m . length ? i = n = a = o = m [ 0 ] : 2 === m . length ? ( i = a = m [ 0 ] , n = o = m [ 1 ] ) : 3 === m . length ? ( i = m [ 0 ] , n = o = m [ 1 ] , a = m [ 2 ] ) : ( i = m [ 0 ] , n = m [ 1 ] , a = m [ 2 ] , o = m [ 3 ] ) : i = n = a = o = 0 ; var V ; i + n > l && ( V = i + n , i *= l / V , n *= l / V ) , a + o > l && ( V = a + o , a *= l / V , o *= l / V ) , n + a > h && ( V = n + a , n *= h / V , a *= h / V ) , i + o > h && ( V = i + o , i *= h / V , o *= h / V ) , e . moveTo ( r + i , s ) , e . lineTo ( r + l - n , s ) , 0 !== n && e . quadraticCurveTo ( r + l , s , r + l , s + n ) , e . lineTo ( r + l , s + h - a ) , 0 !== a && e . quadraticCurveTo ( r + l , s + h , r + l - a , s + h ) , e . lineTo ( r + o , s + h ) , 0 !== o && e . quadraticCurveTo ( r , s + h , r , s + h - o ) , e . lineTo ( r , s + i ) , 0 !== i && e . quadraticCurveTo ( r , s , r + i , s ) } , buildPath : function ( e , t ) { t . radius ? this . _buildRadiusPath ( e , t ) : ( e . moveTo ( t . x , t . y ) , e . lineTo ( t . x + t . width , t . y ) , e . lineTo ( t . x + t . width , t . y + t . height ) , e . lineTo ( t . x , t . y + t . height ) , e . lineTo ( t . x , t . y ) ) , e . closePath ( ) } , getRect : function ( e ) { if ( e . _ _rect ) return e . _ _rect ; var t ; return t = "stroke" == e . brushType || "fill" == e . brushType ? e . lineWidth || 1 : 0 , e . _ _rect = { x : Math . round ( e . x - t / 2 ) , y : Math . round ( e . y - t / 2 ) , width : e . width + t , height : e . height + t } , e . _ _rect } } , e ( "../tool/util" ) . inherits ( i , t ) , i } ) , i ( "zrender/tool/area" , [ "require" , "./util" , "./curve" ] , function ( e ) { "use strict" ; function t ( e ) { return e %= C , 0 > e && ( e += C ) , e } function i ( e , t , i , o ) { if ( ! t || ! e ) return ! 1 ; var r = e . type ; L = L || W . getContext ( ) ; var s = n ( e , t , i , o ) ; if ( "undefined" != typeof s ) return s ; if ( e . buildPath && L . isPointInPath ) return a ( e , L , t , i , o ) ; switch ( r ) { case "ellipse" : return ! 0 ; case "trochoid" : var l = "out" == t . location ? t . r1 + t . r2 + t . d : t . r1 - t . r2 + t . d ; return d ( t , i , o , l ) ; case "rose" : return d ( t , i , o , t . maxr ) ; default : return ! 1 } } function n ( e , t , i , n ) { var a = e . type ; switch ( a ) { case "bezier-curve" : return "undefined" == typeof t . cpX2 ? l ( t . xStart , t . yStart , t . cpX1 , t . cpY1 , t . xEnd , t . yEnd , t . lineWidth , i , n ) : s ( t . xStart , t . yStart , t . cpX1 , t . cpY1 , t . cpX2 , t . cpY2 , t . xEnd , t . yEnd , t . lineWidth , i , n ) ; case "line" : return r ( t . xStart , t . yStart , t . xEnd , t . yEnd , t . lineWidth , i , n ) ; case "polyline" : return m ( t . pointList , t . lineWidth , i , n ) ; case "ring" : return V ( t . x , t . y , t . r0 , t . r , i , n ) ; case "circle" : return d ( t . x , t . y , t . r , i , n ) ; case "sector" : var o = t . startAngle * Math . PI / 180 , h = t . endAngle * Math . PI / 180 ; return t . clockWise || ( o = - o , h = - h ) , p ( t . x , t . y , t . r0 , t . r , o , h , ! t . clockWise , i , n ) ; case "path" : return t . pathArray && k ( t . pathArray , Math . max ( t . lineWidth , 5 ) , t . brushType , i , n ) ; case "polygon" : case "star" : case "isogon" : return c ( t . pointList , i , n ) ; case "text" : var u = t . _ _rect || e . getRect ( t ) ; return U ( u . x , u . y , u . width , u . height , i , n ) ; case "rectangle" : case "image" : return U ( t . x , t . y , t . width , t . height , i , n ) } } function a ( e , t , i , n , a ) { return t . beginPa
if ( r . show ) { var m = e . style ; m . text = this . _getLabelText ( t , i , n , "normal" ) , m . textPosition = null == r . position ? "horizontal" === a ? "right" : "top" : r . position , m . textColor = l . color , m . textFont = this . getFont ( l ) , m . textAlign = l . align , m . textBaseline = l . baseline } if ( s . show ) { var V = e . highlightStyle ; V . text = this . _getLabelText ( t , i , n , "emphasis" ) , V . textPosition = r . show ? e . style . textPosition : null == s . position ? "horizontal" === a ? "right" : "top" : s . position , V . textColor = h . color , V . textFont = this . getFont ( h ) , V . textAlign = h . align , V . textBaseline = h . baseline } return e } , _getLabelText : function ( e , t , i , n ) { var a = this . deepQuery ( [ t , e ] , "itemStyle." + n + ".label.formatter" ) ; a || "emphasis" !== n || ( a = this . deepQuery ( [ t , e ] , "itemStyle.normal.label.formatter" ) ) ; var o = this . getDataFromOption ( t , "-" ) ; return a ? "function" == typeof a ? a . call ( this . myChart , { seriesName : e . name , series : e , name : i , value : o , data : t , status : n } ) : "string" == typeof a ? a = a . replace ( "{a}" , "{a0}" ) . replace ( "{b}" , "{b0}" ) . replace ( "{c}" , "{c0}" ) . replace ( "{a0}" , e . name ) . replace ( "{b0}" , i ) . replace ( "{c0}" , this . numAddCommas ( o ) ) : void 0 : o instanceof Array ? null != o [ 2 ] ? this . numAddCommas ( o [ 2 ] ) : o [ 0 ] + " , " + o [ 1 ] : this . numAddCommas ( o ) } , buildMark : function ( e ) { var t = this . series [ e ] ; this . selectedMap [ t . name ] && ( t . markLine && this . _buildMarkLine ( e ) , t . markPoint && this . _buildMarkPoint ( e ) ) } , _buildMarkPoint : function ( e ) { for ( var t , i , n = ( this . markAttachStyle || { } ) [ e ] , a = this . series [ e ] , o = u . clone ( a . markPoint ) , r = 0 , s = o . data . length ; s > r ; r ++ ) t = o . data [ r ] , i = this . getMarkCoord ( e , t ) , t . x = null != t . x ? t . x : i [ 0 ] , t . y = null != t . y ? t . y : i [ 1 ] , ! t . type || "max" !== t . type && "min" !== t . type || ( t . value = i [ 3 ] , t . name = t . name || t . type , t . symbolSize = t . symbolSize || y . getTextWidth ( i [ 3 ] , this . getFont ( ) ) / 2 + 5 ) ; for ( var l = this . _markPoint ( e , o ) , r = 0 , s = l . length ; s > r ; r ++ ) { var m = l [ r ] ; m . zlevel = a . zlevel , m . z = a . z + 1 ; for ( var V in n ) m [ V ] = u . clone ( n [ V ] ) ; this . shapeList . push ( m ) } if ( this . type === h . CHART _TYPE _FORCE || this . type === h . CHART _TYPE _CHORD ) for ( var r = 0 , s = l . length ; s > r ; r ++ ) this . zr . addShape ( l [ r ] ) } , _buildMarkLine : function ( e ) { for ( var t , i = ( this . markAttachStyle || { } ) [ e ] , n = this . series [ e ] , a = u . clone ( n . markLine ) , o = 0 , r = a . data . length ; r > o ; o ++ ) { var s = a . data [ o ] ; ! s . type || "max" !== s . type && "min" !== s . type && "average" !== s . type ? t = [ this . getMarkCoord ( e , s [ 0 ] ) , this . getMarkCoord ( e , s [ 1 ] ) ] : ( t = this . getMarkCoord ( e , s ) , a . data [ o ] = [ u . clone ( s ) , { } ] , a . data [ o ] [ 0 ] . name = s . name || s . type , a . data [ o ] [ 0 ] . value = "average" !== s . type ? t [ 3 ] : + t [ 3 ] . toFixed ( null != a . precision ? a . precision : this . deepQuery ( [ this . ecTheme , h ] , "markLine.precision" ) ) , t = t [ 2 ] , s = [ { } , { } ] ) , null != t && null != t [ 0 ] && null != t [ 1 ] && ( a . data [ o ] [ 0 ] . x = null != s [ 0 ] . x ? s [ 0 ] . x : t [ 0 ] [ 0 ] , a . data [ o ] [ 0 ] . y = null != s [ 0 ] . y ? s [ 0 ] . y : t [ 0 ] [ 1 ] , a . data [ o ] [ 1 ] . x = null != s [ 1 ] . x ? s [ 1 ] . x : t [ 1 ] [ 0 ] , a . data [ o ] [ 1 ] . y = null != s [ 1 ] . y ? s [ 1 ] . y : t [ 1 ] [ 1 ] ) } var m = this . _markLine ( e , a ) , V = a . large ; if ( V ) { var U = new l ( { style : { shapeList : m } } ) , d = m [ 0 ] ; if ( d ) { u . merge ( U . style , d . style ) , u . merge ( U . highlightStyle = { } , d . highlightStyle ) , U . style . brushType = "stroke" , U . zlevel = n . zlevel , U . z = n . z + 1 , U . hoverable = ! 1 ; for ( var p in i ) U [ p ] = u . clone ( i [ p ] ) } this . shapeList . push ( U ) , this . zr . addShape ( U ) , U . _mark = "largeLine" ; var c = a . effect ; c . show && ( U . effect = c ) } else { for ( var o = 0 , r = m . length ; r > o ; o ++ ) { var y = m [ o ] ; y . zlevel = n . zlevel , y . z = n . z + 1 ; for ( var p in i ) y [ p ] = u . clone ( i [ p ] ) ; this . shapeList . push ( y ) } if ( this . type === h . CHART _TYPE _FORCE || this . type === h . CHART _TYPE _CHORD ) for ( var o = 0 , r = m . length ; r > o ; o ++ ) this . zr . addShape ( m [ o ] ) } } , _markPoint : function ( e , t ) { var i = this . series [ e ] , n = this . component ; u . merge ( u . merge ( t , u . clone ( this . ecTheme . markPoint || { } ) ) , u . clone ( h . markPoint ) ) , t . name = i . name ; var a , o , r , s , l , V , U , d = [ ] , p = t . data , c = n . dataRange , y = n . legend , g = this . zr . getWidth ( ) , b = this . zr . getHeight ( ) ; if ( t . large ) a = this . getLargeMarkPointShape ( e , t ) , a . _mark = "largePoint" , a && d . push ( a ) ; else for ( var f = 0 , k = p . length ; k > f ; f ++ ) null != p [ f ] . x && null != p [ f ] . y && ( r = null != p [ f ] . value ? p [ f ] . value : "" , y && ( o = y . getColor ( i . name ) ) , c && ( o = isNaN ( r ) ? o : c . getColor ( r ) , s = [ p [ f ] , t ] , l = this . deepQuery ( s , "itemStyle.normal.color" ) || o , V = this . deepQuery ( s , "itemStyle.emphasis.color" ) || l , null == l && null == V ) || ( o = null == o ? this . zr . getColor ( e ) : o , p [ f ] . tooltip = p [ f ] . tooltip || t . tooltip || { trigger : "item" } , p [ f ] . name = null != p [ f ] . name ? p [ f ] . name : "" , p [ f ] . value = r , a = this . getSymbolShape ( t , e , p [ f ] , f , p [ f ] . name , this . parsePercent ( p [ f ] . x , g ) , this . parsePercent ( p [ f ] . y , b ) , "pin" , o , " rg
style : { startAngle : n . style . startAngle , endAngle : n . style . startAngle } } : { style : { r0 : n . style . r } } ) ; var r = n . style . startAngle , s = n . style . endAngle ; i ( n , t , "startAngle" , "endAngle" ) , e . addShape ( n ) , n . _ _animating = ! 0 , e . animate ( n . id , "style" ) . when ( a , { startAngle : r , endAngle : s } ) . done ( function ( ) { n . _ _animating = ! 1 } ) . start ( o ) } function s ( e , t , n , a , o ) { t || ( t = { style : { x : "left" == n . style . textAlign ? n . style . x + 100 : n . style . x - 100 , y : n . style . y } } ) ; var r = n . style . x , s = n . style . y ; i ( n , t , "x" , "y" ) , e . addShape ( n ) , n . _ _animating = ! 0 , e . animate ( n . id , "style" ) . when ( a , { x : r , y : s } ) . done ( function ( ) { n . _ _animating = ! 1 } ) . start ( o ) } function l ( t , i , n , a , o ) { var r = e ( "zrender/shape/Polygon" ) . prototype . getRect ( n . style ) , s = r . x + r . width / 2 , l = r . y + r . height / 2 ; n . scale = [ . 1 , . 1 , s , l ] , t . addShape ( n ) , n . _ _animating = ! 0 , t . animate ( n . id , "" ) . when ( a , { scale : [ 1 , 1 , s , l ] } ) . done ( function ( ) { n . _ _animating = ! 1 } ) . start ( o ) } function h ( e , t , n , a , o ) { t || ( t = { style : { source0 : 0 , source1 : n . style . source1 > 0 ? 360 : - 360 , target0 : 0 , target1 : n . style . target1 > 0 ? 360 : - 360 } } ) ; var r = n . style . source0 , s = n . style . source1 , l = n . style . target0 , h = n . style . target1 ; t . style && i ( n , t , "source0" , "source1" , "target0" , "target1" ) , e . addShape ( n ) , n . _ _animating = ! 0 , e . animate ( n . id , "style" ) . when ( a , { source0 : r , source1 : s , target0 : l , target1 : h } ) . done ( function ( ) { n . _ _animating = ! 1 } ) . start ( o ) } function m ( e , t , i , n , a ) { t || ( t = { style : { angle : i . style . startAngle } } ) ; var o = i . style . angle ; i . style . angle = t . style . angle , e . addShape ( i ) , i . _ _animating = ! 0 , e . animate ( i . id , "style" ) . when ( n , { angle : o } ) . done ( function ( ) { i . _ _animating = ! 1 } ) . start ( a ) } function V ( e , t , i , a , o , r ) { if ( i . style . _x = i . style . x , i . style . _y = i . style . y , i . style . _width = i . style . width , i . style . _height = i . style . height , t ) n ( e , t , i , a , o ) ; else { var s = i . _x || 0 , l = i . _y || 0 ; i . scale = [ . 01 , . 01 , s , l ] , e . addShape ( i ) , i . _ _animating = ! 0 , e . animate ( i . id , "" ) . delay ( r ) . when ( a , { scale : [ 1 , 1 , s , l ] } ) . done ( function ( ) { i . _ _animating = ! 1 } ) . start ( o || "QuinticOut" ) } } function U ( e , t , n , a , o ) { t || ( t = { style : { xStart : n . style . xStart , yStart : n . style . yStart , xEnd : n . style . xStart , yEnd : n . style . yStart } } ) ; var r = n . style . xStart , s = n . style . xEnd , l = n . style . yStart , h = n . style . yEnd ; i ( n , t , "xStart" , "xEnd" , "yStart" , "yEnd" ) , e . addShape ( n ) , n . _ _animating = ! 0 , e . animate ( n . id , "style" ) . when ( a , { xStart : r , xEnd : s , yStart : l , yEnd : h } ) . done ( function ( ) { n . _ _animating = ! 1 } ) . start ( o ) } function d ( e , t , i , n , a ) { a = a || "QuinticOut" , i . _ _animating = ! 0 , e . addShape ( i ) ; var o = i . style , r = function ( ) { i . _ _animating = ! 1 } , s = o . xStart , l = o . yStart , h = o . xEnd , m = o . yEnd ; if ( o . curveness > 0 ) { i . updatePoints ( o ) ; var V = { p : 0 } , U = o . cpX1 , d = o . cpY1 , p = [ ] , u = [ ] , y = c . quadraticSubdivide ; e . animation . animate ( V ) . when ( n , { p : 1 } ) . during ( function ( ) { y ( s , U , h , V . p , p ) , y ( l , d , m , V . p , u ) , o . cpX1 = p [ 1 ] , o . cpY1 = u [ 1 ] , o . xEnd = p [ 2 ] , o . yEnd = u [ 2 ] , e . modShape ( i ) } ) . done ( r ) . start ( a ) } else e . animate ( i . id , "style" ) . when ( 0 , { xEnd : s , yEnd : l } ) . when ( n , { xEnd : h , yEnd : m } ) . done ( r ) . start ( a ) } var p = e ( "zrender/tool/util" ) , c = e ( "zrender/tool/curve" ) ; return { pointList : t , rectangle : n , candle : a , ring : o , sector : r , text : s , polygon : l , ribbon : h , gaugePointer : m , icon : V , line : U , markline : d } } ) , i ( "echarts/util/ecEffect" , [ "require" , "../util/ecData" , "zrender/shape/Circle" , "zrender/shape/Image" , "zrender/tool/curve" , "../util/shape/Icon" , "../util/shape/Symbol" , "zrender/shape/ShapeBundle" , "zrender/shape/Polyline" , "zrender/tool/vector" , "zrender/tool/env" ] , function ( e ) { function t ( e , t , i , n ) { var a , r = i . effect , l = r . color || i . style . strokeColor || i . style . color , m = r . shadowColor || l , V = r . scaleSize , U = r . bounceDistance , d = "undefined" != typeof r . shadowBlur ? r . shadowBlur : V ; "image" !== i . type ? ( a = new h ( { zlevel : n , style : { brushType : "stroke" , iconType : "droplet" != i . style . iconType ? i . style . iconType : "circle" , x : d + 1 , y : d + 1 , n : i . style . n , width : i . style . _width * V , height : i . style . _height * V , lineWidth : 1 , strokeColor : l , shadowColor : m , shadowBlur : d } , draggable : ! 1 , hoverable : ! 1 } ) , "pin" == i . style . iconType && ( a . style . y += a . style . height / 2 * 1.5 ) , p && ( a . style . image = e . shapeToImage ( a , a . style . width + 2 * d + 2 , a . style . height + 2 * d + 2 ) . style . image , a = new s ( { zlevel : a . zlevel , style : a . style , draggable : ! 1 , hoverable : ! 1 } ) ) ) : a = new s ( { zlevel : n , style : i . style , draggable : ! 1 , hoverable : ! 1 } ) , o . clone ( i , a ) , a . position = i . position , t . push ( a ) , e . addShape ( a ) ; var c = "image" !== i . type ? window . devicePixelRatio || 1 : 1 , u = ( a . style . width / c - i . style . _width ) / 2 ; a . style . x = i . style . _x - u , a . style . y = i . style . _y - u , "pin" == i . style . iconType &
this . _textArea . readOnly = ! 0 , this . _textArea . style . cursor = "text" ) , this . _tDom . appendChild ( this . _buttonRefresh ) , this . _sizeCssText = "width:" + this . _zrWidth + "px;height:" + this . _zrHeight + "px;background-color:#fff;" , this . _tDom . style . cssText = this . _gCssText + this . _sizeCssText } , _optionToContent : function ( ) { var e , t , i , a , o , r , s = [ ] , l = "" ; if ( this . option . xAxis ) for ( s = this . option . xAxis instanceof Array ? this . option . xAxis : [ this . option . xAxis ] , e = 0 , a = s . length ; a > e ; e ++ ) if ( "category" == ( s [ e ] . type || "category" ) ) { for ( r = [ ] , t = 0 , i = s [ e ] . data . length ; i > t ; t ++ ) r . push ( this . getDataFromOption ( s [ e ] . data [ t ] ) ) ; l += r . join ( ", " ) + "\n\n" } if ( this . option . yAxis ) for ( s = this . option . yAxis instanceof Array ? this . option . yAxis : [ this . option . yAxis ] , e = 0 , a = s . length ; a > e ; e ++ ) if ( "category" == s [ e ] . type ) { for ( r = [ ] , t = 0 , i = s [ e ] . data . length ; i > t ; t ++ ) r . push ( this . getDataFromOption ( s [ e ] . data [ t ] ) ) ; l += r . join ( ", " ) + "\n\n" } var h , m = this . option . series ; for ( e = 0 , a = m . length ; a > e ; e ++ ) { for ( r = [ ] , t = 0 , i = m [ e ] . data . length ; i > t ; t ++ ) o = m [ e ] . data [ t ] , h = m [ e ] . type == n . CHART _TYPE _PIE || m [ e ] . type == n . CHART _TYPE _MAP ? ( o . name || "-" ) + ":" : "" , m [ e ] . type == n . CHART _TYPE _SCATTER && ( o = this . getDataFromOption ( o ) . join ( ", " ) ) , r . push ( h + this . getDataFromOption ( o ) ) ; l += ( m [ e ] . name || "-" ) + " : \n" , l += r . join ( m [ e ] . type == n . CHART _TYPE _SCATTER ? "\n" : ", " ) , l += "\n\n" } return l } , _save : function ( ) { var e = this . query ( this . option , "toolbox.feature.dataView.contentToOption" ) ; if ( "function" != typeof e ) { for ( var t = this . _textArea . value . split ( "\n" ) , i = [ ] , a = 0 , o = t . length ; o > a ; a ++ ) t [ a ] = this . _trim ( t [ a ] ) , "" !== t [ a ] && i . push ( t [ a ] ) ; this . _contentToOption ( i ) } else e ( this . _textArea , this . option ) ; this . hide ( ) ; var r = this ; setTimeout ( function ( ) { r . messageCenter && r . messageCenter . dispatch ( n . EVENT . DATA _VIEW _CHANGED , null , { option : r . option } , r . myChart ) } , r . canvasSupported ? 800 : 100 ) } , _contentToOption : function ( e ) { var t , i , a , o , r , s , l , h = [ ] , m = 0 ; if ( this . option . xAxis ) for ( h = this . option . xAxis instanceof Array ? this . option . xAxis : [ this . option . xAxis ] , t = 0 , o = h . length ; o > t ; t ++ ) if ( "category" == ( h [ t ] . type || "category" ) ) { for ( s = e [ m ] . split ( "," ) , i = 0 , a = h [ t ] . data . length ; a > i ; i ++ ) l = this . _trim ( s [ i ] || "" ) , r = h [ t ] . data [ i ] , "undefined" != typeof h [ t ] . data [ i ] . value ? h [ t ] . data [ i ] . value = l : h [ t ] . data [ i ] = l ; m ++ } if ( this . option . yAxis ) for ( h = this . option . yAxis instanceof Array ? this . option . yAxis : [ this . option . yAxis ] , t = 0 , o = h . length ; o > t ; t ++ ) if ( "category" == h [ t ] . type ) { for ( s = e [ m ] . split ( "," ) , i = 0 , a = h [ t ] . data . length ; a > i ; i ++ ) l = this . _trim ( s [ i ] || "" ) , r = h [ t ] . data [ i ] , "undefined" != typeof h [ t ] . data [ i ] . value ? h [ t ] . data [ i ] . value = l : h [ t ] . data [ i ] = l ; m ++ } var V = this . option . series ; for ( t = 0 , o = V . length ; o > t ; t ++ ) if ( m ++ , V [ t ] . type == n . CHART _TYPE _SCATTER ) for ( var i = 0 , a = V [ t ] . data . length ; a > i ; i ++ ) s = e [ m ] , l = s . replace ( " " , "" ) . split ( "," ) , "undefined" != typeof V [ t ] . data [ i ] . value ? V [ t ] . data [ i ] . value = l : V [ t ] . data [ i ] = l , m ++ ; else { s = e [ m ] . split ( "," ) ; for ( var i = 0 , a = V [ t ] . data . length ; a > i ; i ++ ) l = ( s [ i ] || "" ) . replace ( /.*:/ , "" ) , l = this . _trim ( l ) , l = "-" != l && "" !== l ? l - 0 : "-" , "undefined" != typeof V [ t ] . data [ i ] . value ? V [ t ] . data [ i ] . value = l : V [ t ] . data [ i ] = l ; m ++ } } , _trim : function ( e ) { var t = new RegExp ( "(^[\\s\\t\\xa0\\u3000]+)|([\\u3000\\xa0\\s\\t]+$)" , "g" ) ; return e . replace ( t , "" ) } , _stop : function ( e ) { e = e || window . event , e . stopPropagation ? e . stopPropagation ( ) : e . cancelBubble = ! 0 } , resize : function ( ) { this . _zrHeight = this . zr . getHeight ( ) , this . _zrWidth = this . zr . getWidth ( ) , this . _tDom . offsetHeight > 10 && ( this . _sizeCssText = "width:" + this . _zrWidth + "px;height:" + this . _zrHeight + "px;background-color:#fff;" , this . _tDom . style . cssText = this . _gCssText + this . _sizeCssText , this . _textArea . style . cssText = "display:block;margin:0 0 8px 0;padding:4px 6px;overflow:auto;width:100%;height:" + ( this . _zrHeight - 100 ) + "px;" ) } , dispose : function ( ) { window . removeEventListener ? ( this . _tDom . removeEventListener ( "click" , this . _stop ) , this . _tDom . removeEventListener ( "mousewheel" , this . _stop ) , this . _tDom . removeEventListener ( "mousemove" , this . _stop ) , this . _tDom . removeEventListener ( "mousedown" , this . _stop ) , this . _tDom . removeEventListener ( "mouseup" , this . _stop ) , this . _tDom . removeEventListener ( "touchstart" , this . _stop ) , this . _tDom . removeEventListener ( "touchmove" , this . _stop ) , this . _tDom . removeEventListener ( "touchend" , this . _stop ) ) : ( this . _tDom . detachEvent ( "onclick" , this . _stop ) , this . _tDom . detachEvent ( "onmousewheel" , this . _stop ) , this . _tDom . de
"horizontal" == this . zoomOption . orient ? ( i = l . x . max - l . x . min , n = this . _zoom . start / 100 * i + l . x . min , a = this . _zoom . end / 100 * i + l . x . min , i = l . y . max - l . y . min , o = this . _zoom . start2 / 100 * i + l . y . min , r = this . _zoom . end2 / 100 * i + l . y . min ) : ( i = l . x . max - l . x . min , n = this . _zoom . start2 / 100 * i + l . x . min , a = this . _zoom . end2 / 100 * i + l . x . min , i = l . y . max - l . y . min , o = this . _zoom . start / 100 * i + l . y . min , r = this . _zoom . end / 100 * i + l . y . min ) ; var h ; ( h = l . x . dataMappingMethods ) && ( n = h . coord2Value ( n ) , a = h . coord2Value ( a ) ) , ( h = l . y . dataMappingMethods ) && ( o = h . coord2Value ( o ) , r = h . coord2Value ( r ) ) ; for ( var m , V = 0 , U = t . length ; U > V ; V ++ ) m = t [ V ] . value || t [ V ] , m [ 0 ] >= n && m [ 0 ] <= a && m [ 1 ] >= o && m [ 1 ] <= r && s . push ( t [ V ] ) ; return s } , _setScale : function ( ) { var e = 0 !== this . _zoom . start || 100 !== this . _zoom . end || 0 !== this . _zoom . start2 || 100 !== this . _zoom . end2 , t = { xAxis : this . option . xAxis , yAxis : this . option . yAxis } ; for ( var i in t ) for ( var n = 0 , a = t [ i ] . length ; a > n ; n ++ ) t [ i ] [ n ] . scale = e || t [ i ] [ n ] . _scale } , _backupScale : function ( ) { var e = { xAxis : this . option . xAxis , yAxis : this . option . yAxis } ; for ( var t in e ) for ( var i = 0 , n = e [ t ] . length ; n > i ; i ++ ) e [ t ] [ i ] . _scale = e [ t ] [ i ] . scale } , _getDetail : function ( ) { for ( var e = [ "xAxis" , "yAxis" ] , t = 0 , i = e . length ; i > t ; t ++ ) { var n = this . _originalData [ e [ t ] ] ; for ( var a in n ) { var o = n [ a ] ; if ( null != o ) { var r = o . length , l = Math . floor ( this . _zoom . start / 100 * r ) , h = Math . ceil ( this . _zoom . end / 100 * r ) ; return h -= h > 0 ? 1 : 0 , { start : this . getDataFromOption ( o [ l ] ) , end : this . getDataFromOption ( o [ h ] ) } } } } e = "horizontal" == this . zoomOption . orient ? "xAxis" : "yAxis" ; var m = this . _zoom . seriesIndex [ 0 ] , V = this . option . series [ m ] [ e + "Index" ] || 0 , U = this . option [ e ] [ V ] . type , d = this . _zoom . scatterMap [ m ] [ e . charAt ( 0 ) ] . min , p = this . _zoom . scatterMap [ m ] [ e . charAt ( 0 ) ] . max , c = p - d ; if ( "value" == U ) return { start : d + c * this . _zoom . start / 100 , end : d + c * this . _zoom . end / 100 } ; if ( "time" == U ) { p = d + c * this . _zoom . end / 100 , d += c * this . _zoom . start / 100 ; var u = s . getAutoFormatter ( d , p ) . formatter ; return { start : s . format ( u , d ) , end : s . format ( u , p ) } } return { start : "" , end : "" } } , _ _ondrift : function ( e , t , i ) { this . zoomOption . zoomLock && ( e = this . _fillerShae ) ; var n = "filler" == e . _type ? this . _handleSize : 0 ; if ( "horizontal" == this . zoomOption . orient ? e . style . x + t - n <= this . _location . x ? e . style . x = this . _location . x + n : e . style . x + t + e . style . width + n >= this . _location . x + this . _location . width ? e . style . x = this . _location . x + this . _location . width - e . style . width - n : e . style . x += t : e . style . y + i - n <= this . _location . y ? e . style . y = this . _location . y + n : e . style . y + i + e . style . height + n >= this . _location . y + this . _location . height ? e . style . y = this . _location . y + this . _location . height - e . style . height - n : e . style . y += i , "filler" == e . _type ? this . _syncHandleShape ( ) : this . _syncFillerShape ( ) , this . zoomOption . realtime && this . _syncData ( ) , this . zoomOption . showDetail ) { var a = this . _getDetail ( ) ; this . _startShape . style . text = this . _startShape . highlightStyle . text = a . start , this . _endShape . style . text = this . _endShape . highlightStyle . text = a . end , this . _startShape . style . textPosition = this . _startShape . highlightStyle . textPosition , this . _endShape . style . textPosition = this . _endShape . highlightStyle . textPosition } return ! 0 } , _ _ondragend : function ( ) { this . zoomOption . showDetail && ( this . _startShape . style . text = this . _endShape . style . text = "=" , this . _startShape . style . textPosition = this . _endShape . style . textPosition = "inside" , this . zr . modShape ( this . _startShape . id ) , this . zr . modShape ( this . _endShape . id ) , this . zr . refreshNextFrame ( ) ) , this . isDragend = ! 0 } , ondragend : function ( e , t ) { this . isDragend && e . target && ( ! this . zoomOption . realtime && this . _syncData ( ) , t . dragOut = ! 0 , t . dragIn = ! 0 , this . _isSilence || this . zoomOption . realtime || this . messageCenter . dispatch ( r . EVENT . DATA _ZOOM , null , { zoom : this . _zoom } , this . myChart ) , t . needRefresh = ! 1 , this . isDragend = ! 1 ) } , ondataZoom : function ( e , t ) { t . needRefresh = ! 0 } , absoluteZoom : function ( e ) { this . _zoom . start = e . start , this . _zoom . end = e . end , this . _zoom . start2 = e . start2 , this . _zoom . end2 = e . end2 , this . _syncShape ( ) , this . _syncData ( ! 0 ) } , rectZoom : function ( e ) { if ( ! e ) return this . _zoom . start = this . _zoom . start2 = 0 , this . _zoom . end = this . _zoom . end2 = 100 , this . _syncShape ( ) , this . _syncData ( ! 0 ) , this . _zoom ; var t = this . component . grid . getArea ( ) , i = { x : e . x , y : e . y , width : e . width , height : e . height } ; if ( i . width < 0 && ( i . x += i . width , i . width = - i . width ) , i . height < 0 && ( i . y += i . height , i . height = - i . height ) , i . x > t . x + t . width || i . y > t . y + t . height ) return ! 1 ; i . x < t . x && ( i . x = t . x ) , i . x + i . width > t . x
return e >= 0 && 0 > i ? ( n -= i , i = 0 ) : 0 >= t && n > 0 && ( i -= n , n = 0 ) , [ i , n ] } function u ( e ) { return e = ( + e ) . toFixed ( 15 ) . split ( "." ) , e . pop ( ) . replace ( /0+$/ , "" ) . length } function y ( e , t , i , n ) { if ( x ) { var a = o ( e , 4 , 1 ) ; i . e - a . e > 6 && ( a = { c : 0 , e : i . e } ) , s ( i , a ) , s ( n , a ) , n . c += a . c - i . c , i . c = a . c } else if ( _ ) { var r = o ( t , 4 ) ; n . e - r . e > 6 && ( r = { c : 0 , e : n . e } ) , s ( i , r ) , s ( n , r ) , i . c += r . c - n . c , n . c = r . c } } function g ( e , t , i ) { var n = i ? [ i ] : k , s = t - e ; if ( 0 === s ) return t = o ( t , 3 ) , i = n [ 0 ] , t . c = v ( t . c + i / 2 ) , a ( t . c - i , t . c , i , t . e ) ; I ( t / s ) < 1e-6 && ( t = 0 ) , I ( e / s ) < 1e-6 && ( e = 0 ) ; var l , h , m , V = [ [ 5 , 10 ] , [ 10 , 2 ] , [ 50 , 10 ] , [ 100 , 2 ] ] , U = [ ] , d = [ ] , p = o ( t - e , 3 ) , c = o ( e , - 1 , 1 ) , u = o ( t , - 1 ) ; r ( c , p , 1 ) , r ( u , p ) , s = u . c - c . c , p . c = s ; for ( var y = n . length ; y -- ; ) { i = n [ y ] , l = K ( s / i ) , h = l * i - s , m = 3 * ( h + 3 ) , m += 2 * ( i - n [ 0 ] + 2 ) , i % 5 === 0 && ( m -= 10 ) ; for ( var g = V . length ; g -- ; ) l % V [ g ] [ 0 ] === 0 && ( m /= V [ g ] [ 1 ] ) ; d [ y ] = [ i , l , h , m ] . join ( ) , U [ y ] = { secs : i , step : l , delta : h , score : m } } return U . sort ( function ( e , t ) { return e . score - t . score } ) , U = U [ 0 ] , c . c = v ( c . c - U . delta / 2 ) , u . c = v ( u . c + U . delta / 2 ) , a ( c . c , u . c , U . secs , p . e ) } var b , f , k , x , _ , L = [ 10 , 20 , 25 , 50 ] , W = [ 4 , 5 , 6 ] , X = Math , v = X . round , w = X . floor , K = X . ceil , I = X . abs ; return n } ) , i ( "echarts/util/smartLogSteps" , [ "require" , "./number" ] , function ( e ) { function t ( e ) { return i ( ) , u = e || { } , n ( ) , a ( ) , [ o ( ) , i ( ) ] [ 0 ] } function i ( ) { U = u = g = c = b = f = y = k = d = p = null } function n ( ) { d = u . logLabelBase , null == d ? ( p = "plain" , d = 10 , c = I ) : ( d = + d , 1 > d && ( d = 10 ) , p = "exponent" , c = L ( d ) ) , y = u . splitNumber , null == y && ( y = E ) ; var e = parseFloat ( u . dataMin ) , t = parseFloat ( u . dataMax ) ; isFinite ( e ) || isFinite ( t ) ? isFinite ( e ) ? isFinite ( t ) ? e > t && ( t = [ e , e = t ] [ 0 ] ) : t = e : e = t : e = t = 1 , U = u . logPositive , null == U && ( U = t > 0 || 0 === e ) , b = U ? e : - t , f = U ? t : - e , S > b && ( b = S ) , S > f && ( f = S ) } function a ( ) { function e ( ) { y > m && ( y = m ) ; var e = w ( l ( m / y ) ) , t = v ( l ( m / e ) ) , i = e * t , n = ( i - U ) / 2 , a = w ( l ( r - n ) ) ; V ( a - r ) && ( a -= 1 ) , g = - a * c ; for ( var s = a ; o >= s - e ; s += e ) k . push ( W ( d , s ) ) } function t ( ) { for ( var e = i ( h , 0 ) , t = e + 2 ; t > e && a ( e + 1 ) + n ( e + 1 ) * C < r ; ) e ++ ; for ( var l = i ( s , 0 ) , t = l - 2 ; l > t && a ( l - 1 ) + n ( l - 1 ) * C > o ; ) l -- ; g = - ( a ( e ) * I + n ( e ) * J ) ; for ( var m = e ; l >= m ; m ++ ) { var V = a ( m ) , U = n ( m ) ; k . push ( W ( 10 , V ) * W ( 2 , U ) ) } } function i ( e , t ) { return 3 * e + t } function n ( e ) { return e - 3 * a ( e ) } function a ( e ) { return w ( l ( e / 3 ) ) } k = [ ] ; var o = l ( L ( f ) / c ) , r = l ( L ( b ) / c ) , s = v ( o ) , h = w ( r ) , m = s - h , U = o - r ; "exponent" === p ? e ( ) : F >= m && y > F ? t ( ) : e ( ) } function o ( ) { for ( var e = [ ] , t = 0 , i = k . length ; i > t ; t ++ ) e [ t ] = ( U ? 1 : - 1 ) * k [ t ] ; ! U && e . reverse ( ) ; var n = s ( ) , a = n . value2Coord , o = a ( e [ 0 ] ) , l = a ( e [ e . length - 1 ] ) ; return o === l && ( o -= 1 , l += 1 ) , { dataMin : o , dataMax : l , tickList : e , logPositive : U , labelFormatter : r ( ) , dataMappingMethods : n } } function r ( ) { if ( "exponent" === p ) { var e = d , t = c ; return function ( i ) { if ( ! isFinite ( parseFloat ( i ) ) ) return "" ; var n = "" ; return 0 > i && ( i = - i , n = "-" ) , n + e + m ( L ( i ) / t ) } } return function ( e ) { return isFinite ( parseFloat ( e ) ) ? x . addCommas ( h ( e ) ) : "" } } function s ( ) { var e = U , t = g ; return { value2Coord : function ( i ) { return null == i || isNaN ( i ) || ! isFinite ( i ) ? i : ( i = parseFloat ( i ) , isFinite ( i ) ? e && S > i ? i = S : ! e && i > - S && ( i = - S ) : i = S , i = X ( i ) , ( e ? 1 : - 1 ) * ( L ( i ) + t ) ) } , coord2Value : function ( i ) { return null == i || isNaN ( i ) || ! isFinite ( i ) ? i : ( i = parseFloat ( i ) , isFinite ( i ) || ( i = S ) , e ? W ( K , i - t ) : - W ( K , - i + t ) ) } } } function l ( e ) { return + Number ( + e ) . toFixed ( 14 ) } function h ( e ) { return Number ( e ) . toFixed ( 15 ) . replace ( /\.?0*$/ , "" ) } function m ( e ) { e = h ( Math . round ( e ) ) ; for ( var t = [ ] , i = 0 , n = e . length ; n > i ; i ++ ) { var a = e . charAt ( i ) ; t . push ( T [ a ] || "" ) } return t . join ( "" ) } function V ( e ) { return e > - S && S > e } var U , d , p , c , u , y , g , b , f , k , x = e ( "./number" ) , _ = Math , L = _ . log , W = _ . pow , X = _ . abs , v = _ . ceil , w = _ . floor , K = _ . E , I = _ . LN10 , J = _ . LN2 , C = J / I , S = 1e-9 , E = 5 , F = 2 , T = { 0 : "⁰" , 1 : "¹" , 2 : "²" , 3 : "³" , 4 : "⁴" , 5 : "⁵" , 6 : "⁶" , 7 : "⁷" , 8 : "⁸" , 9 : "⁹" , "-" : "⁻" } ; return t } ) , i ( "echarts/chart/line" , [ "require" , "./base" , "zrender/shape/Polyline" , "../util/shape/Icon" , "../util/shape/HalfSmoothPolygon" , "../component/axis" , "../component/grid" , "../component/dataZoom" , "../config" , "../util/ecData" , "zrender/tool/util" , "zrender/tool/color" , "../chart" ] , function ( e ) { function t ( e , t , i , a , o ) { n . call ( this , e , t , i , a , o ) , this . refresh ( a ) } function i ( e , t , i ) { var n = t . x , a = t . y , r = t . width , s = t . height , l = s / 2 ; t . symbol . match ( "empty" ) && ( e . fillStyle = "#fff" ) , t . brushType = "both" ; var h = t . symbol . replace ( "empty" , "" ) . toLowerCase ( ) ; h . match ( "star" ) ? ( l = h . replace ( "star" , "" ) - 0 || 5 , a -= 1 , h = "star" ) : ( "rectangle" === h || "arrow" === h ) && ( n += ( r - s ) / 2 , r = s ) ; var m = "" ; if ( h . match ( "image" ) && ( m = h . replace ( new RegExp ( "^image:\\/\\/" ) , "" ) , h = "image" , n += Math . round ( ( r - s ) / 2 ) - 1 , r = s += 2 ) , h = o . prototype . ic
} , this . _selectedMap = { } , this . _range = { } , this . refresh ( a ) , t . bind ( r . EVENT . HOVER , this . _onhoverlink ) } var i = e ( "./base" ) , n = e ( "zrender/shape/Text" ) , a = e ( "zrender/shape/Rectangle" ) , o = e ( "../util/shape/HandlePolygon" ) , r = e ( "../config" ) ; r . dataRange = { zlevel : 0 , z : 4 , show : ! 0 , orient : "vertical" , x : "left" , y : "bottom" , backgroundColor : "rgba(0,0,0,0)" , borderColor : "#ccc" , borderWidth : 0 , padding : 5 , itemGap : 10 , itemWidth : 20 , itemHeight : 14 , precision : 0 , splitNumber : 5 , splitList : null , calculable : ! 1 , selectedMode : ! 0 , hoverLink : ! 0 , realtime : ! 0 , color : [ "#006edd" , "#e0ffff" ] , textStyle : { color : "#333" } } ; var s = e ( "zrender/tool/util" ) , l = e ( "zrender/tool/event" ) , h = e ( "zrender/tool/area" ) , m = e ( "zrender/tool/color" ) ; return t . prototype = { type : r . COMPONENT _TYPE _DATARANGE , _textGap : 10 , _buildShape : function ( ) { if ( this . _itemGroupLocation = this . _getItemGroupLocation ( ) , this . _buildBackground ( ) , this . _isContinuity ( ) ? this . _buildGradient ( ) : this . _buildItem ( ) , this . dataRangeOption . show ) for ( var e = 0 , t = this . shapeList . length ; t > e ; e ++ ) this . zr . addShape ( this . shapeList [ e ] ) ; this . _syncShapeFromRange ( ) } , _buildItem : function ( ) { var e , t , i , o , r = this . _valueTextList , s = r . length , l = this . getFont ( this . dataRangeOption . textStyle ) , m = this . _itemGroupLocation . x , V = this . _itemGroupLocation . y , U = this . dataRangeOption . itemWidth , d = this . dataRangeOption . itemHeight , p = this . dataRangeOption . itemGap , c = h . getTextHeight ( "国" , l ) ; "vertical" == this . dataRangeOption . orient && "right" == this . dataRangeOption . x && ( m = this . _itemGroupLocation . x + this . _itemGroupLocation . width - U ) ; var u = ! 0 ; this . dataRangeOption . text && ( u = ! 1 , this . dataRangeOption . text [ 0 ] && ( i = this . _getTextShape ( m , V , this . dataRangeOption . text [ 0 ] ) , "horizontal" == this . dataRangeOption . orient ? m += h . getTextWidth ( this . dataRangeOption . text [ 0 ] , l ) + this . _textGap : ( V += c + this . _textGap , i . style . y += c / 2 + this . _textGap , i . style . textBaseline = "bottom" ) , this . shapeList . push ( new n ( i ) ) ) ) ; for ( var y = 0 ; s > y ; y ++ ) e = r [ y ] , o = this . getColorByIndex ( y ) , t = this . _getItemShape ( m , V , U , d , this . _selectedMap [ y ] ? o : "#ccc" ) , t . _idx = y , t . onmousemove = this . _dispatchHoverLink , this . dataRangeOption . selectedMode && ( t . clickable = ! 0 , t . onclick = this . _dataRangeSelected ) , this . shapeList . push ( new a ( t ) ) , u && ( i = { zlevel : this . getZlevelBase ( ) , z : this . getZBase ( ) , style : { x : m + U + 5 , y : V , color : this . _selectedMap [ y ] ? this . dataRangeOption . textStyle . color : "#ccc" , text : r [ y ] , textFont : l , textBaseline : "top" } , highlightStyle : { brushType : "fill" } } , "vertical" == this . dataRangeOption . orient && "right" == this . dataRangeOption . x && ( i . style . x -= U + 10 , i . style . textAlign = "right" ) , i . _idx = y , i . onmousemove = this . _dispatchHoverLink , this . dataRangeOption . selectedMode && ( i . clickable = ! 0 , i . onclick = this . _dataRangeSelected ) , this . shapeList . push ( new n ( i ) ) ) , "horizontal" == this . dataRangeOption . orient ? m += U + ( u ? 5 : 0 ) + ( u ? h . getTextWidth ( e , l ) : 0 ) + p : V += d + p ; ! u && this . dataRangeOption . text [ 1 ] && ( "horizontal" == this . dataRangeOption . orient ? m = m - p + this . _textGap : V = V - p + this . _textGap , i = this . _getTextShape ( m , V , this . dataRangeOption . text [ 1 ] ) , "horizontal" != this . dataRangeOption . orient && ( i . style . y -= 5 , i . style . textBaseline = "top" ) , this . shapeList . push ( new n ( i ) ) ) } , _buildGradient : function ( ) { var t , i , o = this . getFont ( this . dataRangeOption . textStyle ) , r = this . _itemGroupLocation . x , s = this . _itemGroupLocation . y , l = this . dataRangeOption . itemWidth , m = this . dataRangeOption . itemHeight , V = h . getTextHeight ( "国" , o ) , U = 10 , d = ! 0 ; this . dataRangeOption . text && ( d = ! 1 , this . dataRangeOption . text [ 0 ] && ( i = this . _getTextShape ( r , s , this . dataRangeOption . text [ 0 ] ) , "horizontal" == this . dataRangeOption . orient ? r += h . getTextWidth ( this . dataRangeOption . text [ 0 ] , o ) + this . _textGap : ( s += V + this . _textGap , i . style . y += V / 2 + this . _textGap , i . style . textBaseline = "bottom" ) , this . shapeList . push ( new n ( i ) ) ) ) ; for ( var p = e ( "zrender/tool/color" ) , c = 1 / ( this . dataRangeOption . color . length - 1 ) , u = [ ] , y = 0 , g = this . dataRangeOption . color . length ; g > y ; y ++ ) u . push ( [ y * c , this . dataRangeOption . color [ y ] ] ) ; "horizontal" == this . dataRangeOption . orient ? ( t = { zlevel : this . getZlevelBase ( ) , z : this . getZBase ( ) , style : { x : r , y : s , width : l * U , height : m , color : p . getLinearGradient ( r , s , r + l * U , s , u ) } , hoverable : ! 1 } , r += l * U + this . _textGap ) : ( t = { zlevel : this . getZlevelBase ( ) , z : this . getZBase ( ) , style : { x : r , y : s , width : l , height : m * U , color : p . getLinearGradient ( r , s , r , s + m * U , u ) } , hoverable : ! 1 } , s += m * U + this . _textGap ) , this . shapeList . push ( n
this . selectedMap [ t ] = o ? o . isSelected ( t ) : ! 0 , this . selectedMap [ t ] && ! isNaN ( a [ V ] . value ) && ( 0 !== + a [ V ] . value ? r ++ : s ++ , l += + a [ V ] . value , h = Math . max ( h , + a [ V ] . value ) ) ; if ( 0 !== l ) { for ( var d , p , c , u , y , g , b = 100 , f = n . clockWise , k = ( n . startAngle . toFixed ( 2 ) - 0 + 360 ) % 360 , x = n . minAngle || . 01 , _ = 360 - x * r - . 01 * s , L = n . roseType , V = 0 , U = a . length ; U > V ; V ++ ) if ( t = a [ V ] . name , this . selectedMap [ t ] && ! isNaN ( a [ V ] . value ) ) { if ( p = o ? o . getColor ( t ) : this . zr . getColor ( V ) , b = a [ V ] . value / l , d = "area" != L ? f ? k - b * _ - ( 0 !== b ? x : . 01 ) : b * _ + k + ( 0 !== b ? x : . 01 ) : f ? k - 360 / U : 360 / U + k , d = d . toFixed ( 2 ) - 0 , b = ( 100 * b ) . toFixed ( 2 ) , c = this . parseCenter ( this . zr , n . center ) , u = this . parseRadius ( this . zr , n . radius ) , y = + u [ 0 ] , g = + u [ 1 ] , "radius" === L ? g = a [ V ] . value / h * ( g - y ) * . 8 + . 2 * ( g - y ) + y : "area" === L && ( g = Math . sqrt ( a [ V ] . value / h ) * ( g - y ) + y ) , f ) { var W ; W = k , k = d , d = W } this . _buildItem ( m , e , V , b , a [ V ] . selected , c , y , g , k , d , p ) , f || ( k = d ) } this . _autoLabelLayout ( m , c , g ) ; for ( var V = 0 , U = m . length ; U > V ; V ++ ) this . shapeList . push ( m [ V ] ) ; m = null } } , _buildItem : function ( e , t , i , n , a , o , r , s , l , m , V ) { var U = this . series , d = ( ( m + l ) / 2 + 360 ) % 360 , p = this . getSector ( t , i , n , a , o , r , s , l , m , V ) ; h . pack ( p , U [ t ] , t , U [ t ] . data [ i ] , i , U [ t ] . data [ i ] . name , n ) , e . push ( p ) ; var c = this . getLabel ( t , i , n , o , d , V , ! 1 ) , u = this . getLabelLine ( t , i , o , r , s , d , V , ! 1 ) ; u && ( h . pack ( u , U [ t ] , t , U [ t ] . data [ i ] , i , U [ t ] . data [ i ] . name , n ) , e . push ( u ) ) , c && ( h . pack ( c , U [ t ] , t , U [ t ] . data [ i ] , i , U [ t ] . data [ i ] . name , n ) , c . _labelLine = u , e . push ( c ) ) } , getSector : function ( e , t , i , n , a , o , s , l , h , m ) { var d = this . series , p = d [ e ] , c = p . data [ t ] , u = [ c , p ] , y = this . deepMerge ( u , "itemStyle.normal" ) || { } , g = this . deepMerge ( u , "itemStyle.emphasis" ) || { } , b = this . getItemStyleColor ( y . color , e , t , c ) || m , f = this . getItemStyleColor ( g . color , e , t , c ) || ( "string" == typeof b ? U . lift ( b , - . 2 ) : b ) , k = { zlevel : p . zlevel , z : p . z , clickable : this . deepQuery ( u , "clickable" ) , style : { x : a [ 0 ] , y : a [ 1 ] , r0 : o , r : s , startAngle : l , endAngle : h , brushType : "both" , color : b , lineWidth : y . borderWidth , strokeColor : y . borderColor , lineJoin : "round" } , highlightStyle : { color : f , lineWidth : g . borderWidth , strokeColor : g . borderColor , lineJoin : "round" } , _seriesIndex : e , _dataIndex : t } ; if ( n ) { var x = ( ( k . style . startAngle + k . style . endAngle ) / 2 ) . toFixed ( 2 ) - 0 ; k . style . _hasSelected = ! 0 , k . style . _x = k . style . x , k . style . _y = k . style . y ; var _ = this . query ( p , "selectedOffset" ) ; k . style . x += V . cos ( x , ! 0 ) * _ , k . style . y -= V . sin ( x , ! 0 ) * _ , this . _selected [ e ] [ t ] = ! 0 } else this . _selected [ e ] [ t ] = ! 1 ; return this . _selectedMode && ( k . onclick = this . shapeHandler . onclick ) , this . deepQuery ( [ c , p , this . option ] , "calculable" ) && ( this . setCalculable ( k ) , k . draggable = ! 0 ) , ( this . _needLabel ( p , c , ! 0 ) || this . _needLabelLine ( p , c , ! 0 ) ) && ( k . onmouseover = this . shapeHandler . onmouseover ) , k = new r ( k ) } , getLabel : function ( e , t , i , a , o , r , s ) { var l = this . series , h = l [ e ] , U = h . data [ t ] ; if ( this . _needLabel ( h , U , s ) ) { var d , p , c , u = s ? "emphasis" : "normal" , y = m . merge ( m . clone ( U . itemStyle ) || { } , h . itemStyle ) , g = y [ u ] . label , b = g . textStyle || { } , f = a [ 0 ] , k = a [ 1 ] , x = this . parseRadius ( this . zr , h . radius ) , _ = "middle" ; g . position = g . position || y . normal . label . position , "center" === g . position ? ( d = f , p = k , c = "center" ) : "inner" === g . position || "inside" === g . position ? ( x = ( x [ 0 ] + x [ 1 ] ) * ( g . distance || . 5 ) , d = Math . round ( f + x * V . cos ( o , ! 0 ) ) , p = Math . round ( k - x * V . sin ( o , ! 0 ) ) , r = "#fff" , c = "center" ) : ( x = x [ 1 ] - - y [ u ] . labelLine . length , d = Math . round ( f + x * V . cos ( o , ! 0 ) ) , p = Math . round ( k - x * V . sin ( o , ! 0 ) ) , c = o >= 90 && 270 >= o ? "right" : "left" ) , "center" != g . position && "inner" != g . position && "inside" != g . position && ( d += "left" === c ? 20 : - 20 ) , U . _ _labelX = d - ( "left" === c ? 5 : - 5 ) , U . _ _labelY = p ; var L = new n ( { zlevel : h . zlevel , z : h . z + 1 , hoverable : ! 1 , style : { x : d , y : p , color : b . color || r , text : this . getLabelText ( e , t , i , u ) , textAlign : b . align || c , textBaseline : b . baseline || _ , textFont : this . getFont ( b ) } , highlightStyle : { brushType : "fill" } } ) ; return L . _radius = x , L . _labelPosition = g . position || "outer" , L . _rect = L . getRect ( L . style ) , L . _seriesIndex = e , L . _dataIndex = t , L } } , getLabelText : function ( e , t , i , n ) { var a = this . series , o = a [ e ] , r = o . data [ t ] , s = this . deepQuery ( [ r , o ] , "itemStyle." + n + ".label.formatter" ) ; return s ? "function" == typeof s ? s . call ( this . myChart , { seriesIndex : e , seriesName : o . name || "" , series : o , dataIndex : t , data : r , name : r . name , value : r . value , percent : i } ) : "string" == typeof s ? ( s = s . replace ( "{a}" , "{a0}" ) . replace ( "{b}" , "{b0}" ) . replace ( "{c}" , "{c0}" ) . replace ( "{d}" , "{d0}" ) , s = s . replace ( "{a0}" , o . name ) . replace ( "{b0}" , r . name ) . replace ( "{c0}" , r . value ) . replace ( "{d0}" , i ) ) : void 0 : r . name } , getLabelLine : fun
i . eachNode ( function ( t ) { var i = t . layout . startAngle / Math . PI * 180 * m , h = t . layout . endAngle / Math . PI * 180 * m , V = ( i * - m + h * - m ) / 2 ; V %= 360 , 0 > V && ( V += 360 ) ; var d = 90 >= V || V >= 270 ; V = V * Math . PI / 180 ; var p = [ Math . cos ( V ) , - Math . sin ( V ) ] , c = 0 ; c = a . ribbonType ? a . showScaleText ? 35 + r : r : r + t . layout . size ; var u = U . scale ( [ ] , p , l [ 1 ] + c ) ; U . add ( u , u , s ) ; var y = { zlevel : e . zlevel , z : e . z + 1 , hoverable : ! 1 , style : { text : null == t . data . label ? t . id : t . data . label , textAlign : d ? "left" : "right" } } ; o ? ( y . rotation = d ? V : Math . PI + V , y . style . x = d ? l [ 1 ] + c : - l [ 1 ] - c , y . style . y = 0 , y . position = s . slice ( ) ) : ( y . style . x = u [ 0 ] , y . style . y = u [ 1 ] ) , y . style . color = this . deepQuery ( [ t . data , a ] , "itemStyle.normal.label.textStyle.color" ) || "#000000" , y . style . textFont = this . getFont ( this . deepQuery ( [ t . data , a ] , "itemStyle.normal.label.textStyle" ) ) , y = new n ( y ) , this . shapeList . push ( y ) , t . labelShape = y } , this ) } , _buildRibbons : function ( e , t , i , n ) { var a = e [ t ] , o = this . parseCenter ( this . zr , n . center ) , s = this . parseRadius ( this . zr , n . radius ) ; i . eachEdge ( function ( l , h ) { var V , U = i . getEdge ( l . node2 , l . node1 ) ; if ( U && ! l . shape ) { if ( U . shape ) return void ( l . shape = U . shape ) ; var d = l . layout . startAngle / Math . PI * 180 , p = l . layout . endAngle / Math . PI * 180 , c = U . layout . startAngle / Math . PI * 180 , u = U . layout . endAngle / Math . PI * 180 ; V = this . getColor ( 1 === e . length ? l . layout . weight <= U . layout . weight ? l . node1 . id : l . node2 . id : a . name ) ; var y , g , b = this . _getEdgeQueryTarget ( a , l . data ) , f = this . _getEdgeQueryTarget ( a , l . data , "emphasis" ) , k = new r ( { zlevel : a . zlevel , z : a . z , style : { x : o [ 0 ] , y : o [ 1 ] , r : s [ 0 ] , source0 : d , source1 : p , target0 : c , target1 : u , brushType : "both" , opacity : this . deepQuery ( b , "opacity" ) , color : V , lineWidth : this . deepQuery ( b , "borderWidth" ) , strokeColor : this . deepQuery ( b , "borderColor" ) , clockWise : n . clockWise } , clickable : n . clickable , highlightStyle : { brushType : "both" , opacity : this . deepQuery ( f , "opacity" ) , lineWidth : this . deepQuery ( f , "borderWidth" ) , strokeColor : this . deepQuery ( f , "borderColor" ) } } ) ; l . layout . weight <= U . layout . weight ? ( y = U . node1 , g = U . node2 ) : ( y = l . node1 , g = l . node2 ) , m . pack ( k , a , t , l . data , null == l . rawIndex ? h : l . rawIndex , l . data . name || y . id + "-" + g . id , y . id , g . id ) , this . shapeList . push ( k ) , l . shape = k } } , this ) } , _buildEdgeCurves : function ( e , t , i , n , a ) { var o = e [ t ] , r = this . parseCenter ( this . zr , n . center ) ; i . eachEdge ( function ( e , i ) { var n = a . getNodeById ( e . node1 . id ) , s = a . getNodeById ( e . node2 . id ) , h = n . shape , V = s . shape , U = this . _getEdgeQueryTarget ( o , e . data ) , d = this . _getEdgeQueryTarget ( o , e . data , "emphasis" ) , p = new l ( { zlevel : o . zlevel , z : o . z , style : { xStart : h . position [ 0 ] , yStart : h . position [ 1 ] , xEnd : V . position [ 0 ] , yEnd : V . position [ 1 ] , cpX1 : r [ 0 ] , cpY1 : r [ 1 ] , lineWidth : this . deepQuery ( U , "width" ) , strokeColor : this . deepQuery ( U , "color" ) , opacity : this . deepQuery ( U , "opacity" ) } , highlightStyle : { lineWidth : this . deepQuery ( d , "width" ) , strokeColor : this . deepQuery ( d , "color" ) , opacity : this . deepQuery ( d , "opacity" ) } } ) ; m . pack ( p , o , t , e . data , null == e . rawIndex ? i : e . rawIndex , e . data . name || e . node1 . id + "-" + e . node2 . id , e . node1 . id , e . node2 . id ) , this . shapeList . push ( p ) , e . shape = p } , this ) } , _buildScales : function ( e , t , i ) { var o , r , s = e . clockWise , l = this . parseCenter ( this . zr , e . center ) , h = this . parseRadius ( this . zr , e . radius ) , m = s ? 1 : - 1 , V = 0 , d = - ( 1 / 0 ) ; e . showScaleText && ( i . eachNode ( function ( e ) { var t = e . data . value ; t > d && ( d = t ) , V += t } ) , d > 1e10 ? ( o = "b" , r = 1e-9 ) : d > 1e7 ? ( o = "m" , r = 1e-6 ) : d > 1e4 ? ( o = "k" , r = . 001 ) : ( o = "" , r = 1 ) ) ; var p = V / ( 360 - e . padding ) ; i . eachNode ( function ( t ) { for ( var i = t . layout . startAngle / Math . PI * 180 , V = t . layout . endAngle / Math . PI * 180 , d = i ; ; ) { if ( s && d > V || ! s && V > d ) break ; var c = d / 180 * Math . PI , u = [ Math . cos ( c ) , Math . sin ( c ) ] , y = U . scale ( [ ] , u , h [ 1 ] + 1 ) ; U . add ( y , y , l ) ; var g = U . scale ( [ ] , u , h [ 1 ] + this . scaleLineLength ) ; U . add ( g , g , l ) ; var b = new a ( { zlevel : e . zlevel , z : e . z - 1 , hoverable : ! 1 , style : { xStart : y [ 0 ] , yStart : y [ 1 ] , xEnd : g [ 0 ] , yEnd : g [ 1 ] , lineCap : "round" , brushType : "stroke" , strokeColor : "#666" , lineWidth : 1 } } ) ; this . shapeList . push ( b ) , d += m * this . scaleUnitAngle } if ( e . showScaleText ) for ( var f = i , k = 5 * p * this . scaleUnitAngle , x = 0 ; ; ) { if ( s && f > V || ! s && V > f ) break ; var c = f ; c %= 360 , 0 > c && ( c += 360 ) ; var _ = 90 >= c || c >= 270 , L = new n ( { zlevel : e . zlevel , z : e . z - 1 , hoverable : ! 1 , style : { x : _ ? h [ 1 ] + this . scaleLineLength + 4 : - h [ 1 ] - this . scaleLineLength - 4 , y : 0 , text : Math . round ( 10 * x ) / 10 + o , textAlign : _ ? "left" : "right" } , position : l . slice ( ) , rotation : _ ? [ - c / 180 * Math . PI , 0 , 0 ] : [ - ( c + 180 ) / 180 * Math . PI , 0 , 0 ] } ) ; this . shapeList . push ( L ) , x += k * r , f += m * this . scaleUnitAngle * 5 } } , this ) } , refresh : function ( e ) {
} i > 0 && r . scale ( n , n , 1 / i ) } this . updateForce ( ) , this . updatePosition ( ) } , a . prototype . updateForce = function ( ) { for ( var e = this . nodes . length , t = 0 ; e > t ; t ++ ) { var i = this . nodes [ t ] ; r . copy ( i . forcePrev , i . force ) , r . copy ( i . speedPrev , i . speed ) , r . set ( i . force , 0 , 0 ) } this . updateNodeNodeForce ( ) , this . gravity > 0 && this . updateGravityForce ( ) , this . updateEdgeForce ( ) , this . preventNodeEdgeOverlap && this . updateNodeEdgeForce ( ) } , a . prototype . updatePosition = function ( ) { for ( var e = this . nodes . length , t = r . create ( ) , i = 0 ; e > i ; i ++ ) { var n = this . nodes [ i ] , a = n . speed ; r . scale ( n . force , n . force , 1 / 30 ) ; var o = r . len ( n . force ) + . 1 , s = Math . min ( o , 500 ) / o ; r . scale ( n . force , n . force , s ) , r . add ( a , a , n . force ) , r . scale ( a , a , this . temperature ) , r . sub ( t , a , n . speedPrev ) ; var l = r . len ( t ) ; if ( l > 0 ) { r . scale ( t , t , 1 / l ) ; var h = r . len ( n . speedPrev ) ; h > 0 && ( l = Math . min ( l / h , this . maxSpeedIncrease ) * h , r . scaleAndAdd ( a , n . speedPrev , t , l ) ) } var m = r . len ( a ) , s = Math . min ( m , 100 ) / ( m + . 1 ) ; r . scale ( a , a , s ) , r . add ( n . position , n . position , a ) } } , a . prototype . updateNodeNodeForce = function ( ) { for ( var e = this . nodes . length , t = 0 ; e > t ; t ++ ) { var i = this . nodes [ t ] ; if ( this . barnesHutOptimize ) this . applyRegionToNodeRepulsion ( this . _rootRegion , i ) ; else for ( var n = t + 1 ; e > n ; n ++ ) { var a = this . nodes [ n ] ; this . applyNodeToNodeRepulsion ( i , a , ! 1 ) } } } , a . prototype . updateGravityForce = function ( ) { for ( var e = 0 ; e < this . nodes . length ; e ++ ) this . applyNodeGravity ( this . nodes [ e ] ) } , a . prototype . updateEdgeForce = function ( ) { for ( var e = 0 ; e < this . edges . length ; e ++ ) this . applyEdgeAttraction ( this . edges [ e ] ) } , a . prototype . updateNodeEdgeForce = function ( ) { for ( var e = 0 ; e < this . nodes . length ; e ++ ) for ( var t = 0 ; t < this . edges . length ; t ++ ) this . applyEdgeToNodeRepulsion ( this . edges [ t ] , this . nodes [ e ] ) } , a . prototype . applyRegionToNodeRepulsion = function ( ) { var e = r . create ( ) ; return function ( t , i ) { if ( t . node ) this . applyNodeToNodeRepulsion ( t . node , i , ! 0 ) ; else { if ( 0 === t . mass && 0 === i . mass ) return ; r . sub ( e , i . position , t . centerOfMass ) ; var n = e [ 0 ] * e [ 0 ] + e [ 1 ] * e [ 1 ] ; if ( n > this . barnesHutTheta * t . size * t . size ) { var a = this . _k * this . _k * ( i . mass + t . mass ) / ( n + 1 ) ; r . scaleAndAdd ( i . force , i . force , e , 2 * a ) } else for ( var o = 0 ; o < t . nSubRegions ; o ++ ) this . applyRegionToNodeRepulsion ( t . subRegions [ o ] , i ) } } } ( ) , a . prototype . applyNodeToNodeRepulsion = function ( ) { var e = r . create ( ) ; return function ( t , i , n ) { if ( t !== i && ( 0 !== t . mass || 0 !== i . mass ) ) { r . sub ( e , t . position , i . position ) ; var a = e [ 0 ] * e [ 0 ] + e [ 1 ] * e [ 1 ] ; if ( 0 !== a ) { var o , s = t . mass + i . mass , l = Math . sqrt ( a ) ; r . scale ( e , e , 1 / l ) , this . preventNodeOverlap ? ( l = l - t . size - i . size , l > 0 ? o = this . nodeToNodeRepulsionFactor ( s , l , this . _k ) : 0 >= l && ( o = this . _k * this . _k * 10 * s ) ) : o = this . nodeToNodeRepulsionFactor ( s , l , this . _k ) , n || r . scaleAndAdd ( t . force , t . force , e , 2 * o ) , r . scaleAndAdd ( i . force , i . force , e , 2 * - o ) } } } } ( ) , a . prototype . applyEdgeAttraction = function ( ) { var e = r . create ( ) ; return function ( t ) { var i = t . node1 , n = t . node2 ; r . sub ( e , i . position , n . position ) ; var a , o = r . len ( e ) ; a = 0 === this . edgeWeightInfluence ? 1 : 1 == this . edgeWeightInfluence ? t . weight : Math . pow ( t . weight , this . edgeWeightInfluence ) ; var s ; if ( ! ( this . preventOverlap && ( o = o - i . size - n . size , 0 >= o ) ) ) { var s = this . attractionFactor ( a , o , this . _k ) ; r . scaleAndAdd ( i . force , i . force , e , - s ) , r . scaleAndAdd ( n . force , n . force , e , s ) } } } ( ) , a . prototype . applyNodeGravity = function ( ) { var e = r . create ( ) ; return function ( t ) { r . sub ( e , this . center , t . position ) , this . width > this . height ? e [ 1 ] *= this . width / this . height : e [ 0 ] *= this . height / this . width ; var i = r . len ( e ) / 100 ; this . strongGravity ? r . scaleAndAdd ( t . force , t . force , e , i * this . gravity * t . mass ) : r . scaleAndAdd ( t . force , t . force , e , this . gravity * t . mass / ( i + 1 ) ) } } ( ) , a . prototype . applyEdgeToNodeRepulsion = function ( ) { var e = r . create ( ) , t = r . create ( ) , i = r . create ( ) ; return function ( n , a ) { var o = n . node1 , s = n . node2 ; if ( o !== a && s !== a ) { r . sub ( e , s . position , o . position ) , r . sub ( t , a . position , o . position ) ; var l = r . len ( e ) ; r . scale ( e , e , 1 / l ) ; var h = r . dot ( e , t ) ; if ( ! ( 0 > h || h > l ) ) { r . scaleAndAdd ( i , o . position , e , h ) ; var m = r . dist ( i , a . position ) - a . size , V = this . edgeToNodeRepulsionFactor ( a . mass , Math . max ( m , . 1 ) , 100 ) ; r . sub ( e , a . position , i ) , r . normalize ( e , e ) , r . scaleAndAdd ( a . force , a . force , e , V ) , r . scaleAndAdd ( o . force , o . force , e , - V ) , r . scaleAndAdd ( s . force , s . force , e , - V ) } } } } ( ) , a . prototype . updateBBox = function ( ) { for ( var e = 1 / 0 , t = 1 / 0 , i = - ( 1 / 0 ) , n = - ( 1 / 0 ) , a = 0 ; a < this . nodes . length ; a ++ ) { var o = this . nodes [ a ] . position ; e = Math . min ( e , o [ 0 ] ) , t = Math . min ( t , o [ 1 ] ) , i = Math . max ( i , o [ 0 ] ) , n = Math . max ( n , o [ 1 ] ) }
y : Math . round ( e . y - e . b - t / 2 ) , width : 2 * e . a + t , height : 2 * e . b + t } , e . _ _rect } } , e ( "../tool/util" ) . inherits ( i , t ) , i } ) , i ( "echarts/component/roamController" , [ "require" , "./base" , "zrender/shape/Rectangle" , "zrender/shape/Sector" , "zrender/shape/Circle" , "../config" , "zrender/tool/util" , "zrender/tool/color" , "zrender/tool/event" , "../component" ] , function ( e ) { function t ( e , t , n , a , o ) { if ( this . rcOption = { } , a . roamController && a . roamController . show ) { if ( ! a . roamController . mapTypeControl ) return void console . error ( "option.roamController.mapTypeControl has not been defined." ) ; i . call ( this , e , t , n , a , o ) , this . rcOption = a . roamController ; var r = this ; this . _drictionMouseDown = function ( e ) { return r . _ _drictionMouseDown ( e ) } , this . _drictionMouseUp = function ( e ) { return r . _ _drictionMouseUp ( e ) } , this . _drictionMouseMove = function ( e ) { return r . _ _drictionMouseMove ( e ) } , this . _drictionMouseOut = function ( e ) { return r . _ _drictionMouseOut ( e ) } , this . _scaleHandler = function ( e ) { return r . _ _scaleHandler ( e ) } , this . refresh ( a ) } } var i = e ( "./base" ) , n = e ( "zrender/shape/Rectangle" ) , a = e ( "zrender/shape/Sector" ) , o = e ( "zrender/shape/Circle" ) , r = e ( "../config" ) ; r . roamController = { zlevel : 0 , z : 4 , show : ! 0 , x : "left" , y : "top" , width : 80 , height : 120 , backgroundColor : "rgba(0,0,0,0)" , borderColor : "#ccc" , borderWidth : 0 , padding : 5 , handleColor : "#6495ed" , fillerColor : "#fff" , step : 15 , mapTypeControl : null } ; var s = e ( "zrender/tool/util" ) , l = e ( "zrender/tool/color" ) , h = e ( "zrender/tool/event" ) ; return t . prototype = { type : r . COMPONENT _TYPE _ROAMCONTROLLER , _buildShape : function ( ) { if ( this . rcOption . show ) { this . _itemGroupLocation = this . _getItemGroupLocation ( ) , this . _buildBackground ( ) , this . _buildItem ( ) ; for ( var e = 0 , t = this . shapeList . length ; t > e ; e ++ ) this . zr . addShape ( this . shapeList [ e ] ) } } , _buildItem : function ( ) { this . shapeList . push ( this . _getDirectionShape ( "up" ) ) , this . shapeList . push ( this . _getDirectionShape ( "down" ) ) , this . shapeList . push ( this . _getDirectionShape ( "left" ) ) , this . shapeList . push ( this . _getDirectionShape ( "right" ) ) , this . shapeList . push ( this . _getScaleShape ( "scaleUp" ) ) , this . shapeList . push ( this . _getScaleShape ( "scaleDown" ) ) } , _getDirectionShape : function ( e ) { var t = this . _itemGroupLocation . r , i = this . _itemGroupLocation . x + t , n = this . _itemGroupLocation . y + t , o = { zlevel : this . getZlevelBase ( ) , z : this . getZBase ( ) , style : { x : i , y : n , r : t , startAngle : - 45 , endAngle : 45 , color : this . rcOption . handleColor , text : ">" , textX : i + t / 2 + 4 , textY : n - . 5 , textAlign : "center" , textBaseline : "middle" , textPosition : "specific" , textColor : this . rcOption . fillerColor , textFont : Math . floor ( t / 2 ) + "px arial" } , highlightStyle : { color : l . lift ( this . rcOption . handleColor , - . 2 ) , brushType : "fill" } , clickable : ! 0 } ; switch ( e ) { case "up" : o . rotation = [ Math . PI / 2 , i , n ] ; break ; case "left" : o . rotation = [ Math . PI , i , n ] ; break ; case "down" : o . rotation = [ - Math . PI / 2 , i , n ] } return o = new a ( o ) , o . _roamType = e , o . onmousedown = this . _drictionMouseDown , o . onmouseup = this . _drictionMouseUp , o . onmousemove = this . _drictionMouseMove , o . onmouseout = this . _drictionMouseOut , o } , _getScaleShape : function ( e ) { var t = this . _itemGroupLocation . width , i = this . _itemGroupLocation . height - t ; i = 0 > i ? 20 : i ; var n = Math . min ( t / 2 - 5 , i ) / 2 , a = this . _itemGroupLocation . x + ( "scaleDown" === e ? t - n : n ) , r = this . _itemGroupLocation . y + this . _itemGroupLocation . height - n , s = { zlevel : this . getZlevelBase ( ) , z : this . getZBase ( ) , style : { x : a , y : r , r : n , color : this . rcOption . handleColor , text : "scaleDown" === e ? "-" : "+" , textX : a , textY : r - 2 , textAlign : "center" , textBaseline : "middle" , textPosition : "specific" , textColor : this . rcOption . fillerColor , textFont : Math . floor ( n ) + "px verdana" } , highlightStyle : { color : l . lift ( this . rcOption . handleColor , - . 2 ) , brushType : "fill" } , clickable : ! 0 } ; return s = new o ( s ) , s . _roamType = e , s . onmousedown = this . _scaleHandler , s } , _buildBackground : function ( ) { var e = this . reformCssArray ( this . rcOption . padding ) ; this . shapeList . push ( new n ( { zlevel : this . getZlevelBase ( ) , z : this . getZBase ( ) , hoverable : ! 1 , style : { x : this . _itemGroupLocation . x - e [ 3 ] , y : this . _itemGroupLocation . y - e [ 0 ] , width : this . _itemGroupLocation . width + e [ 3 ] + e [ 1 ] , height : this . _itemGroupLocation . height + e [ 0 ] + e [ 2 ] , brushType : 0 === this . rcOption . borderWidth ? "fill" : "both" , color : this . rcOption . backgroundColor , strokeColor : this . rcOption . borderColor , lineWidth : this . rcOption . borderWidth } } ) ) } , _getItemGroupLocation : function ( ) { var e , t = this . reformCssArray ( this . rcOption . padd
encodeOffsets : [ [ 118750 , 41232 ] ] } } , { type : "Feature" , id : "110115" , properties : { name : "大兴区" , cp : [ 116.4716 , 39.6352 ] , childNum : 1 } , geometry : { type : "Polygon" , coordinates : [ "@@F\\E~DFN@BDFEpHFCHBBEGCDCJBHUDSBB@ELCPbF@B\\J@BJVAFJ\\ADKTCBGECFMT@BMN@@FH@DaNBEnvB@FPBATK@FHEFIAKFBFL@@PKBFJHC@FXBRAFCDMPDTOL@JIVFDHH@DDH@BGRFCDLD@N^@@CNA@KNOAEBCECFEGCFGMGFIPMOEJOLBADBBHGG@GCHIECY@INC@DMGS\\AIOZAAEYA@GT@KKMBEETCGMVINFxA@MJADB@FlA@HJA@NND@DFA@DVAZBBOFKH_JA@K^GBC@EFE G@gAENMXKJigC@IbSJMqGOP£RGSMGE@kbQFDPEFiBSGGSBK]I{CDWCIDOic[C_G@SuSO@EWKCO@MNY@\\uZOPENQD[LKESSKGBKEG@EJGAGHoH¥CqhifeJkX_XFFGHFNEDFPENKHM^IFIVL^S`DVEnNnG`RTCJHH@R^XFXGVPP" ] , encodeOffsets : [ [ 119042 , 40704 ] ] } } , { type : "Feature" , id : "110113" , properties : { name : "顺义区" , cp : [ 116.7242 , 40.1619 ] , childNum : 1 } , geometry : { type : "Polygon" , coordinates : [ "@@EhEBENXHFNYDJHCD@RJP@R[ZARX`DbjZF@bHXT`Jb@dIFMTGDSfAJVbGnJVM@OKELYPERVXRflXTT@NIfC\\NJRhCVEHFJXNT^DTeZEHYCOhuAMJELOdAVPTMOWBWNMNEJgl]@WGUFIC[T{EEDEHGCIGMI@SECUQI[D{A{GQESPUH]CsiMCmHUeoHENcAaDGCMDGMQCACCBaCGLMAHB@DIEQLOAAEEJ@CW@CDINGAAGKQOCgV@LG@BEGDKNeREFBNCFIDOPKD[@YRW@GFWDAFE@EHDDrLDTCPGF" , "@@KrJEH[\\B@FF@CHFBHUN AJKADGECBCMAG^E@EbI@BEGP" ] , encodeOffsets : [ [ 119283 , 41084 ] , [ 119377 , 41046 ] ] } } , { type : "Feature" , id : "110117" , properties : { name : "平谷区" , cp : [ 117.1706 , 40.2052 ] , childNum : 1 } , geometry : { type : "Polygon" , coordinates : [ "@@ZJZRafFLjn VGNJ@LLBdXX\\T^EDMJ@ nZKLBjPPJ@HbA\\H`DbERHLCFK^BZaFWXQLAGMHa\\OLO@SBIpBdCL VQfElO@GSAKEDQTC@GEBKG@ORIJBDAPDFA@CaOq@GGQAAEJK@KMUGAAGEAa@MGMBGCGSIIW@WSUCMDOJeWOM@IUF{WMWaDIMgIoRoCOKeEOEAG_I[cg@wLIFENQFDVTFJ@HNDJGHCFFFS|D\\EJHV@Xk^IhMFMNAXPX" ] , encodeOffsets : [ [ 119748 , 41190 ] ] } } , { type : "Feature" , id : "110112" , properties : { name : "通州区" , cp : [ 116.7297 , 39.8131 ] , childNum : 1 } , geometry : { type : "Polygon" , coordinates : [ "@@FDAJTGDNDCTDDEDBBE@DT@@EHCDGJ@EIZ@@FDBR@ATFBBVFFE@@HNA\\VE@CLIFNJFNJBCP]A@LJFA@HJEDD\\C@DBCHLAEPF@@DH@APHAERDF\\GIxDTM@CFLBBFJ@CNUPMHECGDBF]BMFPDLRBHHBJMDCX@@DFIBFPBRKJF@CGANBHKbDDABDRDHNNCHDbCdBFMpGHiOYMefKJMC}HWAUNW\\NNBNA kNU|]HMTMN@MZBLFFF@RIRUT BMFIEGaAGGAOIIUGTSFcYKS@MSLYPKRUBU]EWDOI]CKGASgW@MTWKIMCS@uMAKKADMECGAKVUTSDy@IjWLMNBF@h HEF@FAD]H@LIBG`ELAPYAUB@CEB@CMC@MIB@GkB@ECAIB@NwBMEUJHNSDFFNALLS@@HZBBFYBJP[BHTCND@JMZ@FDGJHDH@GHAABCKAIPPFONEJNHEHHDEFFDADBFMP@L" ] , encodeOffsets : [ [ 119329 , 40782 ] ] } } , { type : "Feature" , id : "110105" , properties : { name : "朝阳区" , cp : [ 116.4977 , 39.949 ] , childNum : 2 } , geometry : { type : "MultiPolygon" , coordinates : [ [ "@@bFGHBHFBFIVFHHG@@FFB@HDFF@@FRB@LXGt@DHCH@PBDLFBNF@BEXCHEX@ZQ\\@LCPOJCDEAMFEfQLMHCAFH@@KhUNE^AAEHCFDNGVODMI@AEKADEN@CSJw[HCEFQGBBOG@@CE@FOKBDGCAD@C[FCGIB@IE@K^BDOIAEMMIJEDKF@[UMB@GF@EEAUEABSQ@CA@EY@FJI@CHGD@FS@@CAFCACFSCCDCMSHBIECMB@D]@@MKCDCQEAHG@CCG@CGUEIJK@SPOCCNEDQBDNDB@DJCDLFCBBALJB@BVGPBKVO@KHCCCD@FE@BNA@FNCTDDJA@FGB@NBDW@CL@hT@@ZHHQDDDAFSAANBC@HG@EFS@@DE@@PCB@Ue@CADNJB@FCBWA@LI^ix@FIHrH" ] , [ "@@HUN AJKADGECBCMAG^E@EbI@BEGPKrJEH[\\B@FF@CHFB" ] ] , encodeOffsets : [ [ [ 119169 , 40992 ] ] , [ [ 119398 , 41063 ] ] ] } } , { type : "Feature" , id : "110108" , properties : { name : "海淀区" , cp : [ 116.2202 , 40.0239 ] , childNum : 1 } , geometry : { type : "Polygon" , coordinates : [ "@@plDJVL GPBFHjDbHGL@X\\DBNHJREBLRBHaFG MGOBQAWPBLCBBAJBDFADOIEJGE@@EP@HCPWP@ZgfBRQJJ\\D@HLHLDVA@IVDFGSI@EGC@EBB@CN@@IZCAGHGaEqGJG@EjwJ]@K@GSA@e_I@NE@CA@Kg@KC@ENCF AKQAW@WIMK@V @I@@F@^EDFB@HcIaDYCBRRDCHD@EFLN@FE@CJUPEJOJMTBPEDIFCMIAKNOGMRFJNDVBFLSRMJSDGJsFcEiJGDGTIlOjYD" ] , encodeOffsets : [ [ 118834 , 41050 ] ] } } , { type : "Feature" , id : "110106" , properties : { name : "丰台区" , cp : [ 116.2683 , 39.8309 ] , childNum : 1 } , geometry : { type : "Polygon" , coordinates : [ "@@hMN@NFTQCFRCBJFA@HJ@@HJ@HJ\\FTACD @@UNLXJX@@MA@@IECAQlDFEHBDI~D@GXCFMVDFCH@@NF@ANJC@FnAB@AMF@@EDCDDLGP@LUOAUH@AIABKAAEDCKID@CCACMWA@EGDEILA@OK@AELEJBFEEGL@BSOA@EuAFmMACbG@@EM@ANS@ENFDAHSDCL[BEIUBAII@A[E@OaKD@FAACTGVIACDHDAFGAEDoGEFACM@i g@@QFCMKMU@]SCoBGSMQ DEXXDWPO@MKYGM^AdJJA\\cNB\\G^ DNHFCBFABDBJ@PL^D@DF@T@FDAF^A" ] , encodeOffsets : [ [ 118958 , 40846 ] ] } } , { type : "Feature" , id : "110107" , properties : { name : "石景山区" , cp : [ 116.1887 , 39.9346 ] , childNum : 1 } , geometry : { type : "Polygon" , coordinates : [ "@@NQPHLMJBDNJEFCAONSPIFIVODIF@@EKMFEC@DGQCAQZDbCdJ@GEAFC@]@EJ@DCSB[EGII@@GI@@GEBAIQDDESRMEM@gNYTIRKJAJEJ[DFJKLGBGNBJLDCDAHGBJJAFBLEXTLZFBAFDLD" ] , enc
encodeOffsets : [ [ 119858 , 27754 ] ] } } , { type : "Feature" , id : "3508" , properties : { name : "龙岩市" , cp : [ 116.8066 , 25.2026 ] , childNum : 7 } , geometry : { type : "Polygon" , coordinates : [ "@@ a I@ VU bVb°m@b UXJ@nV@VUUwVW@klJ@UXK@Ul@Xa @U VaXKVLlJU£lm @XLlL@`VXnlVVnIVa ll@X V@@Ulw@aV@XwW¥XU@mlLnUl V@XwWaXU JVnUVlb@l zlJUVk@UXVVVxlVn@nXV@@lVVlI@w@K@mnI@W@wU_VW bV VVnK bla _n bX@°»Van@VUUaUamXUKW K@a@Uk @wWkX WW@wUU K w@_ly wUkU@@U @kamVm Xa UVUka@ Wk@»UUUV KkbWU VUbk@mk xk KnIVUmW@kUKmXUmVaU@kU@ m @K UWVkIWJ@ U@UI@wUUUa@KW»nU@mVkUmm@XwWU@ UUmL @ w@mn V UU@aWak@@amxU@UxULWVXbVLU`mbUImVU bn V@@bVn@bnVWx LmyUb IUK @ a Vm akbV UXW Ul KWbkV@ WLUlk@@n b b@lkKmU@ UIWJkw¯UUVVxm@@XkbWx X K lUzWJkUUL@bmKkV @@VUIUlWV@X K@VkbWx°xUb@LUbk@@VWb@LXJ@VWXU@@bUVV VVn@VVlLn @l @ xk¦Vx@bVJXb n@JlnXxV@@ nJ@X@V@lmx bUn@xVL@VVKlL@l nLVaVL@xkl@L xVl° X WVX Vl JW nxlJ" ] , encodeOffsets : [ [ 119194 , 26657 ] ] } } , { type : "Feature" , id : "3509" , properties : { name : "宁德市" , cp : [ 119.6521 , 26.9824 ] , childNum : 9 } , geometry : { type : "Polygon" , coordinates : [ "@@@LVKVaVaUkVU²J@LVU @@W VJUbVVnLVb L@VUJ@bVbkL@ l@Vn y XmlU@ xV¦ L@ lmz@lnL@bVV bVb@l n KVk Vl¤@zXV@ l@XJVLVKnXVK VnU@wUm@ KU @UlVlw@U@U@ UaUKlU@kXKlmXIWKXaVIVUVK@KU@@k JVUnLVJUL@V IVa@VnL KUnl`Vb V V@ Vbn@Vzn@lKnVlI VVKUalkXJl@XXVWVLVUUmVU@Unm £lK@Uk@WUXK@U@WVwVk ĠkĢÇ°aUÅUwmaţ ɱUÇa w ±V¹XalKôx @ UVaÜʓͿ VóbÅL Jm ¯Vk¦ k@mamXkKU UL akbk@mV@LkJWb@Vk mXk@UVmaUV@amLUKUamI@KUaU@WbU@UUU UIWJUkm@ w Kk VJm@kxÇ V UK @mUVUkmlkkVm@ amw LVWU@UbVLk Ub @V mK@ XaVWU_VJnwV@@kUmWakx @kwWakIWxnbUJ z @kVW@@x@ XllnVW@xn¦ULWKXxmL@ V U¤VL ÞVVU ÈxV mxXVlLlV anV@b bV LlÆnnlW@LXlWnXV" ] , encodeOffsets : [ [ 121816 , 27816 ] ] } } , { type : "Feature" , id : "3501" , properties : { name : "福州市" , cp : [ 119.4543 , 25.9222 ] , childNum : 9 } , geometry : { type : "Polygon" , coordinates : [ "@@lxna@ nJ@xlIVJV¦U VxUb@b L VUlV kL@V@ VVn@Vb Ln @LU lJXblx @lwXbVn@lU@mxUIV`UXWb@ nLU @Val UKVaV@UX Knx bn@lUkllnUVnV @VLU È lwn@UIl L x n@VlXIVJV VVV@XaV@Vb@LnJVbVLnK@bVUnbVUl@nWl @UXalI@KnUl@la bVKV lLnWnbl@ l¥°Un IÆKôaU a@UUwÇWǓIUWUÅVkƨm@ @£@KmLU¤ULˣJ kU VǟUUķ@ĉV KUk@Ñ°wôÇ ç@īé@Åţ¥mīÛkm¼Å@ VķVó°ō¦U° n@bVJXVVL@bU akLmx@xmxXzW`XbWnXV@bWLÛ@ a @ aXbWVkaÝwU@ml WKkLWWkLUKULW@kVmVUUÝ UamV ¤ n@xUVUzkJV¦lJU " ] , encodeOffsets : [ [ 121253 , 26511 ] ] } } , { type : "Feature" , id : "3506" , properties : { name : "漳州市" , cp : [ 117.5757 , 24.3732 ] , childNum : 10 } , geometry : { type : "Polygon" , coordinates : [ "@@@bl@Xb@bVVU m @n x @nKVV@ XVWxn@VnUl@nmVX¼@LVbVV@xVJV@@ XIlJXU V@Ln @ lVV@UbVnnWVL@lnXUVmJ Ll wnll@Va UXVla LVUVV@¼Xl@ lbUV VWbn nUlb @@VV@ aVU ml Ua Uny@kU@Wkk@WaUVk@@ammk@@U@UlU@aUa@wl@ mXLllnL U@anVnU@L@VVV@KlXnWVnVanU w@w@wm nÅ@w aUam@Uk mU l@@a a@U@¥ kôK wȯ°w@ŻkwǕa K ÑÛk@ĕōřċ£ĵ UKW»kÅŻLU@Ulġw@¤Vz VUbkKUbmLmlULU¼UxmbXl@bWV b@bUnV U VbULU@@VkbVL@`U@WX@ XV@b° @b¯ @¤@Xm@@b@`U VVUL" ] , encodeOffsets : [ [ 119712 , 24953 ] ] } } , { type : "Feature" , id : "3505" , properties : { name : "泉州市" , cp : [ 118.3228 , 25.1147 ] , childNum : 9 } , geometry : { type : "Polygon" , coordinates : [ "@@Vl xkz@` x LVV@xXXW Xl@xl @V@bnV° @ LVm°L V bV@Æ X Wl UmxU@WVULnx @llUXUJWzn`Vb@ @b@xV@ mXX@ @JÆVVXVKXkV@nVlU l@KVbUL JV_VK LVWX@lUV kIU¥lIVyVU@w m £nUVWU @a m@U mWw@UX@@am VUn@@aUUlUVanaWUXWmUnk K@V UlVVUUw @XLWWX ma@knm bVb VXbVL @XJlInl L w mXó w@çV»ÇçŋaķƧ óƅóKġ°nÅUķƑUÇW@ ¯xÇ°öÆl V n@ll a @ L b ` @ V XV Vx@V@bULVJU k Ç@ ¼ XUKk@mmULkaWbk@ x@UkL@a@K@U@UmKmbU@kV@UmVUbUmmXkW@LUU@U@KmVmU@b VmKkkWK nk@@xVb@bkV@V@Vl@nn@bl@VUXbl@XlV@@lmz VVbk nUV b" ] , encodeOffsets : [ [ 120398 , 25797 ] ] } } , { type : "Feature" , id : "3503" , properties : { name : "莆田市" , cp : [ 119.0918 , 25.3455 ] , childNum : 2 } , geometry : { type : "Polygon" , coordinates : [ " @ @ VbÞ VVnUlUX @ VKVLlKXXlKXL nkV @ ÞxlbXUWa b @ bÜ @ XK @ aWUXmWaX _Wynw @ wnwlK bV @ aUKWUUI @ a mV ¯ Ŏ ¥ ô ¯ ĸU UÆ @ n » ¯ aƿé @ ţ ¯ nĉĬÝK óó @ ÑU¼
encodeOffsets : [ [ [ 108799 , 29239 ] ] , [ [ 110532 , 27822 ] ] ] } } , { type : "Feature" , id : "5226" , properties : { name : "黔东南苗族侗族自治州" , cp : [ 108.4241 , 26.4166 ] , childNum : 17 } , geometry : { type : "MultiPolygon" , coordinates : [ [ "@@VV@XkV@bUbWJU¼Vb@Vnb@b @J@b L@LV@UV lUI@a KULVb@bkJmx lLVxknVJk xnKmnnL@bn`WIXlWLU@UxVbUVmKV XI@JVIVJ@U L@W @@UmUXUlV UVJXImm@K L@UVmVXV LXblKlV@LXV LlVVnkbmJ@xnXl@ bXa @Vana Ò L m VnIl Þ¦°k@b @@lV nJlUn VX_ @lVlK V UUxVLVWVIXJ UlnnWlI@KUaUUVKn@VaVXV@na@ mw¯@mUkJUamI@lk@@am@@I UmVImUU w @anUVaUU@LU@Wa WUXWW wV@VwnU@L@ynbl@@X@a J@nW@@Vn@ lVLlxnI l @@UWKU nIlJXIVllIVV ¼XK@aVI V @@bn@VKXLVKVVVInw J@UWI@mX@WKnI@KmU UVJUL@V KW@@k @aU@@W@InJWUXwWI@W @¯wkaVaUIl@n ValIXWWI@UUm@anwWkXWWIUbk@UJmIUamKVUUU VVama¯VkIV VUlKnXVwX@@WVaUUVa@Il aVm kna wk UU@ U@mUV UVw l°LVbnJVU ¯la@mX@@UWKXU@aV_V@@JlkU ¯@V nK@km ¯k U@ WU W@ mm U@ kmlU@wkL@W UkL@VmL J@b@V@bknUUVK@UVKUK@Uk@Wa@LUVVnUbmVk@@UU@@a V¯K@U@UU@WmUL@aU@WV w@ I xXll@UX K@KXXVJna@wWa £naUKV m@UU@mUma lm@@XkVm@ U@V LmWU@kkWxU@@bVV@VkXVl V @UUk@@ mI@KUw m@UmV UUwU@lwkV@IUa@mUaVIVKVa@w@U@ UJkb@n@bmJ@Xml VUxWXkJmUkUUVW xUlU@ aULU mbU@@ WXkm L@xUV@nUxÇm@ XLWbnl nV nnUV U nVVz @lbUVVlULVb@V@nUJkwm@Ux@bWbUK@UULka J b U U@U@lUK@XUJmn J@bU@UwWa x@zkJWnUJUUV VV@bXn@xVb@J L m@X w@`@bkb@VmXUV¯L@mW@@n@V@ L@K IW@@a aUx¯@U m@XbW@@L V@bnVWVkKUzlV@bÆa@lnI@VV@@LnVVKUaV_VJVbnU@bn@ nX@yVIVxXKVLlUVaXU°J" , "@@@KlKkUUVVX" ] , [ "@@UUVUkUmV@ln@VXVK@K" ] ] , encodeOffsets : [ [ [ 110318 , 27214 ] , [ 110532 , 27822 ] ] , [ [ 112219 , 27394 ] ] ] } } , { type : "Feature" , id : "5224" , properties : { name : "毕节地区" , cp : [ 105.1611 , 27.0648 ] , childNum : 8 } , geometry : { type : "Polygon" , coordinates : [ "@@UkV @k W@Xn@@K KVIV VIn °@nWVz l@V _VaVK@ kKWaXklaX@lW@bÆz@KnL@a aVJ@UVL@xnLVJ@LXKlb a ¥l@nUWk w ¥U@VaXa@amLkU Km ¯k mkIUa KUIW kKm @anw@mlwXI m Uk¯@a@amU `k kKWVkxmUUak_mJmw@w mXUW¯X _@WnI@aVwkWWýÅ U@WLkU aUbVV@lUVVnm@kUmV¯ kK L wmV UUaWV a aWw¯w È@VULUVUU K@nWJkI l@Umxnbm@kbUJ a¯bUbVxmLUV aU @VUUWxkVVV@bUV@XWbnlUb bUJlbUV¯b@z `WbXnmb a wUwVW U bUxmbU@Uam @ V k V a wVaU WI@mUKóz@lUlÅ@WI b@xXxml@XklULWKU mwUa¯KUXWJkaULmKkLWbkKUV Im Wa@kUaUL W¯L K¯@kb L@b x@J@bmnnlU lzU`U@@U b@ m n¦°bU Vx@bkVm¼mx @mk mVV@bkxVn aVV@bU@mL@b²`lIVV@lXLl bVxn@@bl@XllIV nbV n°°wlbXw@mVa° lVnU@m VLVbn@@b @@WVnUV@Xlxn`VznJVb@L@bV`V@ Unw U @WUXKV@UUlmUUlaXalL m b IVbnJVIlVVaUUnWVXn VL k@ nWnblnlb²x xVKVXlVXLVW LlUVJna@wVL ¼@JVX@`@nnx@nWJU@Vx@XXK UblxU ° LVKVVlL@KnbVUnJ IlU nKl£VW x IlJ@n VÞUVVnb VX@V_°lnK" , "@@@UmWUwkU@Um@@VkL@V@ V VkV@nbVa@ " ] , encodeOffsets : [ [ 108552 , 28412 ] , [ 107213 , 27445 ] ] } } , { type : "Feature" , id : "5227" , properties : { name : "黔南布依族苗族自治州" , cp : [ 107.2485 , 25.8398 ] , childNum : 12 } , geometry : { type : "Polygon" , coordinates : [ " @ @ V @ IöalK @ UV @ @ KUaVIVV LlaVbVWnX @ @ LnUlxl @ naVLXVVaVU J @ lUUanWWI @ VlV @ Xb b @ V n @ VmVVbk @ kU @ V V @ X J @ zn ` ULW@kK@_WVUK@LUb@Jlxn@nnWlU@@b x@XVVU@UbVb @n ` VI @ VVLUlUIUV @ KmL @ VV @ XIV @ @ lVLVmXV @ WLXLW @ U ` nkb@Vl@UL@VVV L llX@` lIXb J IXW L aVL @ XXW Ģ b @ bmK @ L @ ° @ Vnxmx n K @ xVn @ VkL @ V L akbl ` VnnxVnUl V@@VVXV ` @ k ° JV _UalK @ U @ aUU @ m IlVnK V @ U @ wna w @ akU @ l @ nwl @ XLmV @ xn l @ VXUb @ V @ JlL U JUI @ UlWU nLVUUaVwV @ XKWkXJm _ @ amKnmmL wl UIlmUwkK nwlI @ aUaVK L @ bVJ kVUU @ @ K K @ a @ I @ ama @ UUaV » XIVa @ alU @ WUU ¯ IWVUbkVUKWLUwUJ @ zmW m @ @ amVUaUIU ` VbULmU@KU@@UmJ@kÅb@akUVylLXUmU@a U@KX@Wan@V °@Vw b@bX@ J@L K@ @U@mX@@n°KVUnW@Ula@a@_ x@W n K@IUa@wWm@aUUU VVVIXmlI@y wXbVxV@@a InmVI@WVL@k@V V V a IlbVK@VVLXa@aVwn@lxVI@m@UUaVKUkVUka @UymUV VUmmU mmkXaWK@ ÈnVw@mVU@w KlnXW@ V@naV VKUk@KVIUW @mk@KXU@Um@@l V k@UVJna@UWa L@a@ Xa@kmmVUUk@mkk amJ ImJUUmI m±aUUkambkamVUU@VlbUbVV xX WVUU@VUakU@UmUV U@mnUVVnUbVJ@b UW¥kLVamV kUaWJU_UVWKk@@nl UVVJUX m@Vm@UnVlmbn mJUbULU@@UUKWV IWxnJVb@xUL@bUJWIkx bkb@xVJ bmU@k W±LkKUkVa@a¯am¥ULkalÑlKXUW X aVakImV @ka@ UU J¯a X mmb KWU@wUU aUa KmU
return { type : "FeatureCollection" , features : [ { type : "Feature" , id : "4113" , properties : { name : "南阳市" , cp : [ 112.4011 , 33.0359 ] , childNum : 12 } , geometry : { type : "Polygon" , coordinates : [ "@@lKl@nVV@ bn @VVnm nL LXx@ VLlKVU IXWÜ@Č lbl@XUĊUlwnW LÞw m@ ÞUVmnVl@nX JXLm@VnnJla I@VkxVb @V ln J@knKVn @°aVanal@XK°b @ ¯VJXI VK@al@nV k @nK a b @XL@blVVKVLXK @VaVI°mVaX@V_@a@yUkVw V IVa J° @anIlaV@nKnXÆm@wUUV±UUW UKnaWwXUWmÅ ¯V am@kakIm UK »lan@VXXa W@ @UlUUa@a@UlwU V@Xal@@anIVaUK@V XmwVmUmV LXl @nalLnal@ nKlkV@@UnJ UXnl@nVl¦V@@VnJ@nUVVVVIn@Va JÆ n@@K@m k a@kmWVaUI@a@ k@@aUL@mmaVIUKUV @@IU@m UmmL@K@U UUU@mW@@nU@ğ»mVmbk@klW@UXnV@L Jm lUnUJ UUUW @UnkK xmL a@ @@lUU bmUVWk@@nkUmam@UakJU_ Vm@ÅlÇLUVmVUwUL KU@ k@U VUlU@@U @UaUUWaÅ z J aWLkl b@bmL@ kK a bW UV _ @mV@b¯JmXUbUK ¤ÇLUU@b@JkLWmkUWIkJ@VmX@JUbVXU`¯ VV¯blK@LXKl UV@Um@@Uk@kxW kb L@KkbmL@ UXmaU@@l@x@blX@xUJ@bULUlULÇ@@V nU`W@@nÛ¼U@@VmKUkm@VVX@@xÇ @bUbVb@VX@@x LUb@l ¼XLlbUlVVU Ub@n" ] , encodeOffsets : [ [ 113671 , 34364 ] ] } } , { type : "Feature" , id : "4115" , properties : { name : "信阳市" , cp : [ 114.8291 , 32.0197 ] , childNum : 9 } , geometry : { type : "Polygon" , coordinates : [ "@@VllInJlknJVkVU@mX lUÞ`VnV VU@U@y @nXlKV nJVkXKWaXI b@yVk VUkVwn@ K@ nW@k KlUXVVUlbnUV`n@V_V@llX@@V b@bV@@nlVUb¯ WLnbmb@ nLnK b U bVWnLlaX@VVUX@Vln@`kL@ll@VXVJÈIVl@XÞJ°Una LlylU@UXKlnn@lanLWWnbVI@KXKVL@LVWVL@UVKUIVWX@@XÆJ@In`@ lJVI@a W ÛnK@UlK@UU@VK nlm nXal UllLUbVV knJ@nV@Vm@a l@@xnV lJVUU@ w@a k @XW@_mWnUlŁUmVKV @ V XwW»X WaUwnkWUk V U U@@ @WlaUkka IWVkm¯xmIUm LUV aUIó»m@ mmwXk@a mk¯¯ l @w mkLmmU@UbkUWJ@XUb J@b@l@znÆmK@Xk@Ub@lm@ I@akmVKUUVUkU@U±JUbk @IWmkx a@UUV UWVkIUaW@Ul LWn@VkJ I@VkK@L@bmK kJmUUaUKWXk¼VxnJ@ V@@VULV¼ @@UkaUlWL@U@W@IkKmL@KULUWULWKUXUJmI b K ²UW nWKUUkLU mUUam@UU @ mUL@xkV@ VV@bmV@Vk@mwkU VUx@ mbX ÇnVb UL¯ W nUVLVb@xnlWnU@UVU VVUbVVlVkn@llVUXUWUXVbUJ@bmLUJnb@nVK@bl@@ @bVJUbnX@l b" ] , encodeOffsets : [ [ 116551 , 33385 ] ] } } , { type : "Feature" , id : "4103" , properties : { name : "洛阳市" , cp : [ 112.0605 , 34.3158 ] , childNum : 11 } , geometry : { type : "Polygon" , coordinates : [ "@@VVUllLXl@LWn@J @b KUVmn L@`VblLnbV@ b@JmL@LnV@VV@¯ VJVnXL @nm@aÞ@ a k@m I mVbXL ynL k°@°aVJnUV@UVVXk@WJ@VXLlUnJVnn °U@»°U wl@ b WmUX Æ@VLXU@m@U a@I mkb a@ naWW@_@WXUV@@U ²@ K@I±U@¥kKWLóL l a@£Um@kWKXU@mlLXUVKUU±J¯_@`UL¯ Wmk@Wa kk lUn VUVaU @KUU@mmK@_ a@KX@VaUIm± k aVKVUkw @ka W@kbkL±UUa K@UUKVak£ @UmmL@l IkmU @Ualw@U JkbmIUmn@WK ImWk@mUUnÝV@ nÝx KmXkxĉVWVk@kaċ Û@WX JUV@z m VWnbUbVb LlUn lUÒn WV VWnk@@Vm@kxm@Un l@Ll@@V@ Xn kJV V@nlVXx U@l n@a @VLnWĊ¦nx @lbVKXLl@Þ VL XJl@XXl`lIXVl@Xl XUV K wV@lanx zUbVJ@VVX@b" ] , encodeOffsets : [ [ 114683 , 35551 ] ] } } , { type : "Feature" , id : "4117" , properties : { name : "驻马店市" , cp : [ 114.1589 , 32.9041 ] , childNum : 10 } , geometry : { type : "Polygon" , coordinates : [ "@@n@ b°UÆ XnVlnLÜ@VL m@n @na@J m@k @lV VxXX@ V`lLV XVV@VVÞLVV° ²@la bnxV@@b L mlm _VWnIWUna@l L bnV° VL@K V LVUVaVLXK@mÆXna@wVm a @Xw@KlL@a @Va@wU kaW nIV la@Kn@V n@VUl@nKVn J@LnK@aVkVUUW @VakUVanI ²X W@UUU°KnUVLl@XaVK@a U@KUI@W@_lm@KkLUKV_U @»@UVJ@XV@@mVL@K@U@Kk@VwUUm@kmWL@VkVkz Kmb¯VÝI@WUkÇJUIUWk@@klK@_km@UVWUUW@kbmKUX a V amLmK@ namaXK° VakU@mU@@a a@UW@kkU@U`m@U_mVkaUVWUkV L@lmX@ Lm@UxVl UUl@z aWJXbWLUlmIU kLmW @@z@VUVU UmÝ_kVW @nUVUlmIklmIkJUk l@n@Lm@Å IUbm@UJUUVU@mmI@UU@k¥mUk@Wm VmI@VU@klmL k@mbkKmb @Wk KU VnUnnx W@UVLUbmJ@bk@WbU@V kx@V@bVbkV@V @ XWbUWm@kb ¼VLn lJlb" ] , encodeOffsets : [ [ 115920 , 33863 ] ] } } , { type : "Feature" , id : "4116" , properties : { name : "周口市" , cp : [ 114.873 , 33.6951 ] , childNum : 10 } , geometry : { type : "Polygon" , coordinates : [ " @ @ l nb @ xlJ @ UnLlKXUlJl _ KnV @ xVL @ bkbVVUè @ Wb @ Ubm k V mbX VJnUl @ a ° @ @ b LVb lXx InmnLVw anJÆw²IlmnXVl ° VVbÈaVb @ lkn @ VWnLlUVmÞUUkl k VkUaVaVaUw K @ kkaVWmw _ l @ nU VVb @ b aV @ VV @ zXJl @ @ kl @ l k ° WVnÆbnbU VJ I @ VKVm @ k K @ _kK @ a @ aU @ @ wW @ @ k @ aUW @ I
encodeOffsets : [ [ 122344 , 34504 ] ] } } , { type : "Feature" , id : "3203" , properties : { name : "徐州市" , cp : [ 117.5208 , 34.3268 ] , childNum : 7 } , geometry : { type : "Polygon" , coordinates : [ "@@XKVX@WnIVx@K°Lnll@@I°K nVa U°x²mlx @VanU@a k@akmV@@w @Ua@aUwVwUw@w @UK@£kaĉlóIÇVk ±@@kUKmVkIkxW@Ua¯UUm@UVI@WVI JV @ @Um@Uana U@m I@J@XV@XaV lkX VaUUWLUyVIXmWak@ XkJók JUL@KWkk@ULU@Wa lUIkJmI mk VbV @lV°kXUKWKULU mb@VUlVn b@V V@IVKUUmU@ak@@bmV@xkl U U@U KmV@n JVbkX KUamLUJ¯UUVmI bVV Ll`@L LU`m@kXUVU@V lxUK@xkIWbUK x@ V kVVn b¯@@U @ xk mbkLÇK b @@XnJ@LmVkl @@X lU Vkx akVVb@bVnUbU@@x VU Vb@ nIĊ` XVVôJ _ K@xlU²Klk U @VaV V Èm@kVUVmnamUUaV XIVJ @ç@¥nkVLn @@XVK@VUX@JVUV@UnVJVLUJVLUVl nI b KnU@m° VanI@anV KVL an lK bl KÞk@¦@¤@ VKnLVK L KVzlW LX@VmV@VbnU°@Ualk WXLVU KW kUUW @£Wa" ] , encodeOffsets : [ [ 121005 , 35213 ] ] } } , { type : "Feature" , id : "3206" , properties : { name : "南通市" , cp : [ 121.1023 , 32.1625 ] , childNum : 7 } , geometry : { type : "Polygon" , coordinates : [ "@@VJ@bnzWl°L xnW@L VVI@W _V¥ @VKVL@LXJ I @nbly@aXXla@aVUnllLX@@UVKlb @@m XV`V@ bĢ lkČÇÆ Ș¯ wnĕVĉVÿ UƒUĠ Ŧğl XÑVǵ@±ōLʵĖ¯lÇbÝÞ¯xk@Çkķé n¯@ğġƴǫ@kVVlUb L@xULÇ óLU l¤@nkVV°VLkxVb@l aUXUKWĖklVX@¤U Ukb" ] , encodeOffsets : [ [ 123087 , 33385 ] ] } } , { type : "Feature" , id : "3208" , properties : { name : "淮安市" , cp : [ 118.927 , 33.4039 ] , childNum : 5 } , geometry : { type : "Polygon" , coordinates : [ "@@ nźUôÒɴè l¦nĖV kbm X@xVlVL@xUb@bUJVnUx lKVLÈx m zXV@lW@XV b@bÈ Vxnb VIXa°L aÆVVaXUlK@aXIÆ VlXKVUlIXalK@alwXLVK@¥Ý¯¯ÿ@ mVk@aX@ m īlaXI wXJVUV@lw@U¯y b U a UġUÅaUKVknaġm@kUm@wÆIV±nLÆw ÇnUUk @ƅÝU¯JÝI¯¦Ul@b @@VVL@l@L LÅm L@b @UaVaUWmLUKV¹ K LWKX¥WI@mXk@UmaUVUU@VmL@W bkIUW UmVóIkbmm @UbVLUxmJkU@bkJWbnXU`Wz KUÞÈlVb Lmx@ kè@Æ" ] , encodeOffsets : [ [ 121062 , 33975 ] ] } } , { type : "Feature" , id : "3205" , properties : { name : "苏州市" , cp : [ 120.6519 , 31.3989 ] , childNum : 6 } , geometry : { type : "Polygon" , coordinates : [ "@@ôèĊVnX°¤² lxƒÈÜ@²x@J@b@X `nIUÆ UUV@bl@VVnL@L@x J@X@blJXnW@@`XbW kV @UbVx XUxkV@LóxVbUVW ² VJĸklUǬ@ĢƳĠ°@ mƒī°»È Ç¥ULUU±a@bU@¯ U@KnImUVWUk mXUVU@ lIVaUU VWKUbUkWKU¥n£WakJUkUL K¯L Kk VIn@VaU VUU UkVk@ U@amUkJ @UUlwX¥W@@UkVmk@JUakL @kk¯ÝmJUn@nmVXlmbVVkn@ UJ@ ±WUxV ¯a¯KōbżÇxUx U UlWL" ] , encodeOffsets : [ [ 122794 , 31917 ] ] } } , { type : "Feature" , id : "3213" , properties : { name : "宿迁市" , cp : [ 118.5535 , 33.7775 ] , childNum : 4 } , geometry : { type : "Polygon" , coordinates : [ "@@XbWnUJVzXKVVUbW klU WbU@@W@I J@n VmbVbn@@V@ U IUJ@XUJ@VVn°VVbX@lwlJnUVL@l²@l ÈUôJĊklb@¤VL @@xVxUxVx@bVb @@xU@ln mnX mXLVmV@X@lxVnVJôL LXa x@b @@KVL@bn@@m@ @alLUUVaU¥nIV± I@mXI@aWWXU@LlUXWW_XWmaUwÇ @a aWUX@@kWU y nÇwUKkL VwUmVI@aVa@wUKUk@w Wn laU mĕk¥ ɳçóÑŹV mmzkVmm@a@Ió k@@LWU@` WbXLWlkImJVn@`nXVbX mL@Vn@ l@nUVl°Xx°U@LVĠ@z° @¦UV@Xn@VJmV" ] , encodeOffsets : [ [ 121005 , 34560 ] ] } } , { type : "Feature" , id : "3207" , properties : { name : "连云港市" , cp : [ 119.1248 , 34.552 ] , childNum : 5 } , geometry : { type : "Polygon" , coordinates : [ "@@@ lzXxmÆV @@¦@l`XnlK XXm KnLla b @ xmbm@kL@V@Vl@@VUX JX mb @@°Æ@èÈzlW°XĢJl È`lInb WV_@m @UUķn ôw° ÆmnaV VÛVmĸ»Ģw±Ý@ @mUIny UmWkÛ¥Ý K @Wn@@aWUnwVL mUaWIUWVk@kkJUVWLUkÅ WJ@bkLWVUbÅU b¯KWbUJ WXX`WXkV@KWVXX@bWJ@n JU²mJV¦UbVVkK@b@ @nm@@aUK@L @@a wWb KóKUIUmkwW@U@UnWK nmW n@b l@bmVUb @kw±n¯w VUb" ] , encodeOffsets : [ [ 121253 , 35264 ] ] } } , { type : "Feature" , id : "3210" , properties : { name : "扬州市" , cp : [ 119.4653 , 32.8162 ] , childNum : 5 } , geometry : { type : "Polygon" , coordinates : [ "@@VUXblVVV b@xV@kz V@l wVLUbVV@VU@VbUb l b@nkĶ°IÞV@Ɔ VlmV ÈÅxmKU²ÅJ@xVn@lĢnmbUlVLÆbĢV V b V aXk @V XKV VW XVWXUmKU aWaU@¥@£XW UU V@@ynam_VWkUVUna@ ÆV@mnkWmXkWU W@k @@akkl lWUI@UnKl¥ I@V Vma@a@I@U@a@anK@UmK@ÅVUnJl kI@aVwka@mVIUW@UWL@WÅbmI ULka UW UxkLUKWlXL@V Im ÅV U mĉL Uól¯I±l@ÒUbVbUVVXUJUnVV@lnbl@" ] , encodeOffsets : [ [ 121928 , 33244 ] ] } } , { type : "Feature" , id : "3201" , properties : { nam
properties : { name : "呼和浩特市" , cp : [ 111.4124 , 40.4901 ] , childNum : 6 } , geometry : { type : "Polygon" , coordinates : [ "@@ʶUĊ¥ÈřĠ¯ ĉôm ī ѯm wk¯ÇV°Ñ żġĊljǓɱţǓ ƝóX¯ ɛÒóa@nÝÆôƜ ŚĉĢʉŰĊÒ ¤ȗĖV¼ÅxWƞÛ lXXèm ÝmUn Ġ ĢóÒkÆ ÆUÞ¼ÞJĸÑ° ɲĕ °Ŏn" ] , encodeOffsets : [ [ 114098 , 42312 ] ] } } , { type : "Feature" , id : "1503" , properties : { name : "乌海市" , cp : [ 106.886 , 39.4739 ] , childNum : 1 } , geometry : { type : "Polygon" , coordinates : [ "@@Ș°ÇīXŃ ŗ@ȍlkƒlUŁ±īĵKō¼V ÇôXĸ¯ @ ťê °ź k¤ x @Ĭ" ] , encodeOffsets : [ [ 109317 , 40799 ] ] } } ] , UTF8Encoding : ! 0 } } ) , i ( "echarts/util/mapData/geoJson/ning_xia_geo" , [ ] , function ( ) { return { type : "FeatureCollection" , features : [ { type : "Feature" , id : "6403" , properties : { name : "吴忠市" , cp : [ 106.853 , 37.3755 ] , childNum : 4 } , geometry : { type : "Polygon" , coordinates : [ "@@nLV @ VL aÞbn@@l @bU VlUV zVx ¤kÞVè Xn @nm°a@U Ñ @V XnV@Va U VKUUU@@U @@KVa@U²@ wXkW nk ±lLnU@UmmVKnIVWnI@ UK @UK@ @UVKXkmW LWUXmlkVwUyVa@w w@aVI K@aV Èw KlLVV@LnV VVnU ܲ°WÈIUÆ@nÞ¼ @¦@UÞUVW@UxUxVn b K b¯ÞU`VbǬ V@XXÆVVl°InmnUô °¯ anam£ WVX KXm kôaVU@ Vak@@wma n@K@UÛUWKXU Ç @UI b@alW@akLUKV@@Ukw±I nL@kmwkWmk@JUI ůVmn nU@m@U K VKlkUwk nV UKmbkI± K kmVkK b@U@a VkUmn `kIlaUK@UUKmbUIÝ Ua@mUa@a m@UUULUK@bmKkbWI@WXwlkX Wa@k@ kK LVkkK@L@JUVmzUKlwUUnW £XVlKUwVU@aXI@aWaUw@W@_nam@¯ UkWVkUWaU@nwmJkUV kWVUmUkJ@ImbUa @@WÅ_mJknmak@@m X aUV@ xU @ @VUnkV @Vn@`ULUbWLXVW@kbUJ@XW` @ nÅĖWJ @ m°@x x bn Ua w²l Þ°xŤIVVULÛ Wb bkVVXÆ`UbVL @kx°LlV@V Wb J n@bl¤ULV °@lmL@ £U@@aUwmKULVxUVVx@ @kU @mK¯LÇa¯@" ] , encodeOffsets : [ [ 108124 , 38605 ] ] } } , { type : "Feature" , id : "6405" , properties : { name : "中卫市" , cp : [ 105.4028 , 36.9525 ] , childNum : 3 } , geometry : { type : "Polygon" , coordinates : [ "@@°@Èb°KnL @lV @@ UwVUUwVKnLVx@bV@¤@ nK@k ¯U VKk£@a m IXa @UkU¯Klw @UKVaÅ_UWlU aXaÜ VKUUţJ¯w ݱk xVbm a w@wn¯ @XIÆĕ m @X_@WVIlaX@WUXKVaVK@_Um @lUVm@U @ V w@ VUÛwm@@W@ImKUkU@Ua aX @wWaUKkw@UVaUamLU nk@»±`¯@k W@Ua ykb I @VWJkLWUkJ wU@ n ¤mL¯wm@Um ²XVWbnV@bmx VkxUblLUV@ kVWKU¼ kU @mn@JnV@bUnmJUn@ k @Xlx LVVnKlLVV@ @LkKULVbk`WL@lkXW@kV @UÞUlÇX lkaUbmV¯@@L@ V@bkb@x lW b bW@±@UJ@IU@mVk VxV@@l Ill n@Vm@ VUbl @J LmKÛXmVkU KULU`@Lĉw KUX lVUl@Vb JX¦̼bÞxŎxɜĖĠ Ŏaô@" ] , encodeOffsets : [ [ 108124 , 38605 ] ] } } , { type : "Feature" , id : "6404" , properties : { name : "固原市" , cp : [ 106.1389 , 35.9363 ] , childNum : 6 } , geometry : { type : "MultiPolygon" , coordinates : [ [ "@@Vnn@°xnK £ mV@ xlIXVlKXI@U Jla zVbX@l °@²_@¼mlV nKVbUb@VlxVLXb@xW bVbV@VlnL@J@Xn@Üx b W@nl@nblmnIÆ`@X @Vbna@aVUUWVk @kbWakbU@Vw W@_l@nmn@@alVlk@UkmVak@@a UXa L@¯@KVa@a xWI@KnkVaVJn_lJ@ X@ m@nVanUVb@mXLlJ VWnLla VVaVX@KXVVkVKlknKVa@aVU@KXb@klJUknUm @K@_UW@alIUamaU¯kJma@IUK@U @@UW@@aXLV VJVaXI KlaUkUV@ambU UJkIWJ@wUI V@JU@UwV@@Um@ nU`@UkUmVUxWUUV@aÅb@aWXkKUU UUaWK@wnm@IVU@aXwm@UmVaUalk@anKUwl Uwl kK@wma UkmmIk@VmkUUbW@UVUnW@kV@xkVmbVnU @UbUV@a k@kkW@ kLW¤@ nV@VU@W_UV UU`VLUV@IUVõVULU@UUUJ@wmkUJ@ WI@l@bkKkbVV bVbUL@UUJ@Vm@@L@x bVVVLVlVwX@Vb@bmUkbk@@JWIUVÅw@Km@UkWKXxWLÅ@UVUnWK@xkVW @KUL wWVXVWzXVVKVXkV V@VUbV@U VV@ @LXxVL@V b LnKVLVxXVmb@l" ] , [ "@@@J@a U@LWK¯UUxVVn@Ġ LU W@UbUUUa@KUX" ] ] , encodeOffsets : [ [ [ 108023 , 37052 ] ] , [ [ 108541 , 36299 ] ] ] } } , { type : "Feature" , id : "6401" , properties : { name : "银川市" , cp : [ 106.3586 , 38.1775 ] , childNum : 4 } , geometry : { type : "Polygon" , coordinates : [ "@@ U wVK@UVWÞU b w V@knV @@KU_VK@K n@W_XWlL@Vn@Ċw@Ula @Wanamī@a »ŋó@aÆÅɲÿUaV_°Ý a L aUmVwVwX@VUVÝ @@¥Ý»@mVÅÇJ¯XÛ±V Um UmU@KUUkK LÇxU @b LUJ@b x@xUbVzUxklWnXV KnXWlUL@V@ VL @VL@ mJUXmJULnn@VmVkK ²mlX Wl x±@@VUb@L @@VV@VVUL VUbU@WmU @Ò@V¯bmn @V @lVnU nVW X Vl@¦VVUn@x @ XL@¦ lXx Vb" ] , encodeOffsets : [ [ 108563 , 39803 ] ] } } , { type : "Feature" , id : "6402" , properties : { name : "石嘴山市" , cp : [ 106.4795 , 39.0015 ] , childNum : 2 } , geometry : { type : "Polygon" , coor
encodeOffsets : [ [ 113614 , 39657 ] ] } } , { type : "Feature" , id : "1411" , properties : { name : "吕梁市" , cp : [ 111.3574 , 37.7325 ] , childNum : 13 } , geometry : { type : "Polygon" , coordinates : [ "@@@a@w @ wlbnJVb @Vb VVV InaWmXI@a aUmVUVkn@°J@_ W @lIX¥lUnaV V@naV@ xĊ n V@ wn ¯wƱX_WmXaWUnKV_V VUUU UWJkUV nKlk¯ @@kmKUaÅ ±KkU@WmI@WUIlUUmVwX w@ UlUVw V @ Lnb W@anU@U aVkô@l»n@na JnUÈLVaÆ UUVm VKV ²L@mU_lK@UVWkU a@a@U¯aUa ÑóÑUb Kk@@a k¯mVaUwV ÑkWU mK@UUKmXUWÝwUa LUU@aWJUUU@UaÝ U@WL@V KVaVI@WnU@alIVK @kI mIkJ@ m@ @@_ K@x @kaW@U @Vmn@ UK @mI JUXV¤XXWlkK kkK@XmJVakImJU@ó ¯LWKUV@nUV LkxmKkLma@kXKmm L a b LmK@V @mXVÆUx X@`nL aV@@VmLUVnLlL b@ °²nx@b VUxlb@V¯bUV@zV XVĊXVx@lVn@Vnnm U @LlJXV z¯VWVXb V@bmn VUVk ÇþÅ @XVxmbUlV Uln W @ Xl @VLXÒ@bÞJ°¦ L ò @nU b@° X@ XbmVU V nb@x x" ] , encodeOffsets : [ [ 113614 , 39657 ] ] } } , { type : "Feature" , id : "1410" , properties : { name : "临汾市" , cp : [ 111.4783 , 36.1615 ] , childNum : 17 } , geometry : { type : "Polygon" , coordinates : [ "@@nW @@UnL K a b KnnWL@lnblKnLlw KVU@mVUXL°Kô V@nIlJUbnI@WlL llLXkWWU£VW InJ @VL@ nm@UV X@lb @@w L@` @ n@V@lw @n VmVX WmwnUl a@_lK wVlUn°xVKVXXWlU VVI@K@K n°K wlVlU@kna@ V_ Wn m UVm@kXml_@m LlKXw°m@_ôJVUV@X l@UaV@Va°I lk»VwUkV mw UmmV n@V¯@K U wmK@U¯wUVÝ@mJ U nWK @@UnKVa _lykUmKÛnm@ x@ UUlwVk XW@ a@U @@K@ kIV nammVakUl @wX@@k ¯@ VVbml@ °UbULmlVbnbÅK± V KVXUJWa @ULWaU U@@U@aWK@UkxUK LUUUJ±UkL@V±kk@kam@UV@l@LWl@ n@VVUx LlUUx@VUV U@a IUl L@°mLU bkUUaWUUaUU@aWK LWJ@bUL@VUVVbU@m @a@ kmKmnĉlUK X WUblb xmIk U@xWb@lk Vx LX mzVV@bklVVUzm @bk @ Vx@xl U @lUbV nl@ Wxnl@n@ UbV mL m b@`X@lUX@@xlnkLWaUJnnWV Vn@l @bULVV@l V@XnJVX" ] , encodeOffsets : [ [ 113063 , 37784 ] ] } } , { type : "Feature" , id : "1407" , properties : { name : "晋中市" , cp : [ 112.7747 , 37.37 ] , childNum : 11 } , geometry : { type : "Polygon" , coordinates : [ "@@@ lInJ lJ @ ULkJ@bmV@XUJUb L@UXKV@Þ VbV@VVXI@bVV KVbÞxVXnWVL@VnLV lX ÒU VxUb°n l@bl@ L VaôÒ ÒVb°b@VnLnnV@lmn@lb U V@ J UVV Xkl@lUzmJ@x Xkl bUn JV Ub nU lb V@nlLX@lak V`Ub° @XVJnU L²KlxnI@KV@lbUbVV KnVl@ zlm@U @n I@WUaV l@@mVU @XkW @ nkVKV _Vw y@knwVa @XalU @ Vnml@ X@V L KVaÞbnnlJ I mVKn VVVInVlU @ m@ m XK@UmyUI@mWUUakamw@wUwmLkakwV mK w@wUam£ y@am_ W@ UU@knmm amU@WUa@knw@ UUUUV@n Jm @mVUkKVUUUkKmw KUL KUImV@lUn n m@mbUK@° bUnmbUmkk WUb@am@UXkK@a±@ V @ĉÅ V UXVxUVkLWl¯@@bULUlm@@nm` X lWakIkm VUbUL@Vm@kI @@K m@ VaX I@W@aU@kU VU_ K b JkkÇ b@nkKmL wÅW@kVUU VU@WUI JmIXmma@_kyVaUUlkUm@ kU x¯L m@L@LUJ UkVWXUWUL¯wVmUk xkL@` bk mVnx XUWUnm @kxU@" ] , encodeOffsets : [ [ 114087 , 37682 ] ] } } , { type : "Feature" , id : "1408" , properties : { name : "运城市" , cp : [ 111.1487 , 35.2002 ] , childNum : 13 } , geometry : { type : "Polygon" , coordinates : [ "@@ Vl nJ wkaVa X WVLĊknmnL l@ @bn V@UaVU@UVK@aXI KXL@bVVVbXVVblV aV nK@¯ KVk J@b VVU@UVwkV KVwUUm@@ Xk@K@kVUn@lbl@²l@UlK²VVIVV KVLlw@VXL@b@VV@V XbVK @XbVIUW L U² ÆLmaUankVKVa ¯@ nkUa U°@ n@@kWa UVaXUW @IXKVw@U WU@W@ @UU U@mn @ `m@UUULkUmJ IU @@U K@U @ an ak_@wmKUwmakV kmK V k¯b w `kwUIÇx¯»ÇaÅ mn @@ m mUkV@wkKW@kxmL Uk ĉLÝk xÝw¯lóVU mV@ĀVVX¦W¤kz@`Vx° ²ĸ @ Ul@x êĸNJ°¤V VlXLWnXxmV@nUl@ " ] , encodeOffsets : [ [ 113232 , 36597 ] ] } } , { type : "Feature" , id : "1402" , properties : { name : "大同市" , cp : [ 113.7854 , 39.8035 ] , childNum : 8 } , geometry : { type : "Polygon" , coordinates : [ " @ @ ² £ yl @ Č Ė @ bĸ Ģbĸ X a KŤnn @ ŎôllÈx nVnÞÇ V @ b nXllL ° K bVb @ J @ b @ U xlKXLlKl Xk @ Ulk JlkU VKXU ÇVIVm @ _nÇ L a l w VnU @ UUwma @ a aÝa LmUk @ @ W @ U @ @ X wVWÝUUUk @ @ VmL KV » nwUw aUL @ ` mz JUIV UaUw KUaVIlJôanÑlLVUn@ a @VV @@UUwVK°Vn_lJÆL éW@UUUÅ@»lm@aÞIVwXW UUkkm@U@a U@ mwU£VWU_kWm XwW_°yUkkK@UÇK@kkUVym óK U@KWI bUak@mJ@bkbmLk Um kVU W¦@lnb@ @V °ULml@nkV a VmLUnk ` ± @ X WW @ kbÇ ¦ X ¯ Wx I @ xmbmxXlWV @ bÅ Uz @ J b @ bÞb
encodeOffsets : [ [ - 59008 , - 30941 ] ] } } , { type : "Feature" , id : "BRN" , properties : { name : "Brunei" } , geometry : { type : "Polygon" , coordinates : [ "@@ͬ̾ҢЯ·՛Бǭ˹ϥѦ" ] , encodeOffsets : [ [ 116945 , 4635 ] ] } } , { type : "Feature" , id : "BTN" , properties : { name : "Bhutan" } , geometry : { type : "Polygon" , coordinates : [ "@@ˍÏԩۇ{ۿÈՇſ ޅ͊kǚزҒɈșѺqπɥ" ] , encodeOffsets : [ [ 93898 , 28439 ] ] } } , { type : "Feature" , id : "BWA" , properties : { name : "Botswana" } , geometry : { type : "Polygon" , coordinates : [ "@@ǜƭ˄ ӡॎइήĝD̑ʚՑٰŹ՚ ϝأݭع˩֓ʧ́ҙãƧ Гďʽ ՝ țہ ¤БɾΟ ĸХ șȵГЉʧпϑđȇ̐üԠӽߚɧŲAរࠤ |Ჾش ಖ͎̎՜ͤʮDӂȎưÙ͔ڣ" ] , encodeOffsets : [ [ 26265 , - 18980 ] ] } } , { type : "Feature" , id : "CAF" , properties : { name : "Central African Republic" } , geometry : { type : "Polygon" , coordinates : [ "@@ۜÚƺɎƔgȾȏ͐Τ ͠Ѭ̌ĉ̐ʂüߺ ½߆ϴ؊ࣺю; ՐƜĪΫӜԿFƋΓÄʻ ̆ʍٖο ҢͻT˗ ֠ѫΖ εɆԋغͩƊˉˣęա pكĘ̹ïųȱ˕}ͧDzधнϥĎŗÝʥԕطǐؙĊ̴ۓ˸҉˓͛яùדգ²֩ƘԅѻѯޱėʐϦϧ˔̳Ѡï̠ЇѮæʢċΞÞٴȬƴц" ] , encodeOffsets : [ [ 15647 , 7601 ] ] } } , { type : "Feature" , id : "CAN" , properties : { name : "Canada" } , geometry : { type : "MultiPolygon" , coordinates : [ [ "@@؎œުxЯ΅̵ÅΦȿˬ͆ʸ̎С " ] , [ "@@Х cઝ˂ ޯІ ̄îɁ Η |Ʒ " ] , [ "@@хŝൡϢʥ̘ݩ̌Ưʈࡻư͕ҜðȚࢨǿԨŵ߄ė˺̃дЋ࠼Όҩ" ] , [ "@@։ܿո˴֠ǵ̏̉ݚɱϰȴ࠼ʵʹ؛טƞņѿʼԷΝ݉ϝփǂǾیɻńইܯԅצЂ߫Ȳࣙ¹࿅~ŹʠԼ̐λɬ۸ԒࢄԶӎܲ̂϶Njɫ҅Չ" ] , [ "@@@@@@@@߰äʥ॓ܶگͯDԑϪ̵Ϯчʾ ƻτºˎЂŋ" ] , [ "@@͡ѳχîəʢ Î͖ʦΆkɈǣ" ] , [ "@@ঝҧץnǿɪ زϲ ଼SiǍ" ] , [ "@@ƼυјżӨɗं˽४ʽöЍؤÞ˥ݙ˃ಳȬҽϚ࠭ҁѣ˿Ӯଗăܴдņڌ˺ޔ؈å" ] , [ "@@ष¥ȿЪΦҼޖŜپɷXέħřձʛ" ] , [ "@@Է̍ଉʬۃğଫϘ݊ʼטζࢼʃԎƯʦDžԠ͍" ] , [ "@@G૰ڄեʡح߾֥࢚؈ؖܨ°ईஞÝఔūૼй¼зس҃פ҇ŃУ חୡŻࢃʨʣу ߵ ۽ʓο ই֩ளÇڏΡ ÇձĿਉڻ࣭ु͙ڏ±উం ƕϜ ϼّ୲ǔ༞εࡀ͋Ѕ ɳࢸΟ ൶µࣴąƍ ܫʼ ࡋ،ळనߗ٨˚ҔࡺѭೢףѶഎЀ॒לҮ הç֭֘܌৷لলࢤν ݾ˫ಾגȘɫࡸć۠ɚ˵ਚӣʮ͙ຄÛ}۷ ˪ਜ਼ގſ ،ӵҰߦऔϸٺݣબੳघ͵ՅӁݰӓം ɏբˍͬ܃ ټŏͶͅÖऻ؍ ́̏൯̗ۑƋᅛǮుPࢇÍ۱ ੳωॵޡ܌Ɛഘૄᄈ۪సČݔЫߍ֟ˊ ࣟ˜ ه તп൸ŨࡆीÎ؍ ժ̥ਣս ᇷԁ ͽयٓÖ ܆ฤ۞ णĹջӆBନύʐ֛ƛ˧ɚٙىʱٹ̕ϡΥ Žˏ¥čȹAMϛƷ ࢵĿßˍ͝ޗBࠛGϛƅƊǑøʯeďષлࡽſ উ҅Ɂ @˷ƂĥŦnĔȂ̎ЂҦʘӺǙܴǵނЂľƬūĺɳ@ǛƆ¥ȤǍēɥ ¾ĊȡĊćɚٵː ڹ˪ࠑ͘߁̨ݧʃ˝SਕɔڻʼnࠁʺƆו ¾ʻ ƜƫҤ˳IE͓BᮝA᭯@ᡃ@ᠿ@៙@ᢡ@ࠛ@᠁@ᛷ@őFࠜδຽΐҳݖŤԨΨƧ ڴ৭ ؎iѠҲК wՌෙॠՁޑϚ֣ΈѿѢࡇ˕ࠇҹݛւדπࠋɸࠟ|JⷎNᷲ༬ȭЙ࢘û݆Ζ ৰˀఢĹ఼τ൘Ⱦ־Α ظȠȊЄęෆݫ૦ ֬ŖّਔƐ͆ʖৰ·౼Λዸ̭ୄƛࠖÄଊэзຶǷᗘIJܒƦ ࣆԋࣴьࡩΦժ˼৾ ڦĎڴȩࡊҗरäϛಬƄ ௬oĭԺݞƦ ದ˵KߑՖڠڰuϞࡊ࣑কͺ äघশ؎ૌƇࡘχଞॅݗЭ༠ǝ" ] , [ "@@нϿሎʬୠщॊі ސ˟یࠛфΒ ࡰ݊Ŭ࠲ƇशՆࠉʼ ץථе ະЉĝσ ൡã՚ ͓˱ູ̯Ƃฃɪ ঋ»ཅ˷ᒃűāҕІ ଫɮݙģਛږ֔ĚಘƜஈ રƦ ྷȞᅗãjѷ̴ዎͲಗ[ืɚ۶ـגͮᖬԠNj" ] , [ "@@݉ևಹך˸Şٔȁ" ] , [ "@@öɵࢿ|ࣟjࣿőʑ¼ऍѾ ̠ИÈነěชң" ] , [ "@@ڎԽޤڴᒆΈࢅůջဒʒߒͮሀыୄЏŊν༚Ȑ࢘᎐ܸͩߐϹጘչೲȁீޙೖÇʽכ้ঋਗά߲ઙĿŁӕࢪӥଜϯΌɟմࠩ́ɪᑏڨஎܣԕƎ̉ᗱͲᅩӤ৳Ц̌ʂయќТ`ʑᝡƅ܃ ˾ֆؤdႸņ˫̜̊о ચࠊɳϊ͕˾౿Р ၳ˺՞ɆࢷԺ´ ڏ˸ ҇ʛŅᵝȈᄫʚഹŴۥ̐࢞ϦHˉ࡚٦ݨࡺ΄ ᓪɢأի" ] , [ "@@ǯຄńɖʑЕ α Ʊݳ൝͗߳ê͎ᐡٮjˎ႖Ľएռ সР " ] , [ "@@࣓عय़Խ݆`кѮΨ࠰ɮცྈȱళݟǍ" ] , [ "@@ᕍЙѷςኹѺήΤؘܰւࠑԦᭊƀǧᒰ±ࠄʑࣖΝ੍ɃᏝןਫי@ν " ] , [ "@@ҙ͙Øৱɖ҂Ϛீɨܼ̬̍ˇ" ] , [ "@@ٞϵ љϣس൱đࣗƈjӬ൝ÝÁٮࣜ ౌ˺ஂµÜŎ" ] , [ "@@̙͢ݠƘࢢ ƪЩԝ Ћ᭗Žᑯ η౩mŅ˜ პϊ④ij୯Ʈପࠐ߈ɾᛄ˳ӻฺÛறߨޔ̪ࢄĭ˲Џ" ] , [ "@@ढ˓ကFܨˡȑ́८ȍՔȧଊ ௬ëǼႊðീÏ࣒ͅȊԽɟభǷĸᜱŻႫcഫļᖁ˔̃ҦĹжࡇξĺঅʼ ͂ΈႾÁ" ] ,
encodeOffsets : [ [ 50113 , 9679 ] ] } } , { type : "Feature" , id : "SOM" , properties : { name : "Somalia" } , geometry : { type : "Polygon" , coordinates : [ "@@ѼĎЊ˾͈FpɵýӧHѳǯ̣ʁࣥЙयԱܝ௷ܓवধࡁڹషٕँৱȗѷȍȣ ӽۚWᵤܾ॒ɰˆ բfݠפબ ᛜᡄה۬Ϝ Ԫ@ѬBࡒFΌLbː hϰŰ" ] , encodeOffsets : [ [ 50923 , 11857 ] ] } } , { type : "Feature" , id : "SRB" , properties : { name : "Republic of Serbia" } , geometry : { type : "Polygon" , coordinates : [ "@@ԠȡàӪʓ˄ ȌȸĿșƗƶƥȷȏø̫Т γ ͋ʿƗˋ ĞijƑšϳ a˹µ ØĴĴĦȴšKǍƼ Ƒ ŋƆƽ ÀšŠƯ±ś˧ȩÑèð͋Ǩ˟ĜūŜɟƠȢ ŬЄЛ͔ɀτ̥Ë͔́ˉʈȱ͘٢ɚԾ ҖͣĦˋ " ] , encodeOffsets : [ [ 21376 , 46507 ] ] } } , { type : "Feature" , id : "SUR" , properties : { name : "Suriname" } , geometry : { type : "Polygon" , coordinates : [ "@@ǙĞưڶÔࣚɥѩܟâֹͤӽƥίóϩɉΛӓDzЇđöčʏ ƘǗ÷ǡҙèԡܴōӄˏBωؐƺѠ¯ȤԜ ɖƈݲ" ] , encodeOffsets : [ [ - 58518 , 6117 ] ] } } , { type : "Feature" , id : "SVK" , properties : { name : "Slovakia" } , geometry : { type : "Polygon" , coordinates : [ "@@´»ΊŖш̕ӺǶЈđŢߚ͓ɷɓǏdzđ࣑ʮ˟»ȟȡЁĿěÄХŽͭ}ãǙ۷ Ļ̱ĠёɌċ̆äńŢȂόa˺ĔxþLj¢ÆȒȖ žưʢD" ] , encodeOffsets : [ [ 19306 , 50685 ] ] } } , { type : "Feature" , id : "SVN" , properties : { name : "Slovenia" } , geometry : { type : "Polygon" , coordinates : [ "@@ۜÝъȐܾtLjƘƘUǎ˳ڝɟć̇đHɻͣh˷ƎƷ ƙב ȈúȫΨĞа " ] , encodeOffsets : [ [ 14138 , 47626 ] ] } } , { type : "Feature" , id : "SWE" , properties : { name : "Sweden" } , geometry : { type : "Polygon" , coordinates : [ "@@ࠁו ƀԥڭྱܡؓஃײףߦү ޗॅȝ͍තӋ৳ĆӅڗঃ ˉߐ۳॔ٓஐφӜּۨ˦ন՝ ю½ૠղ߀ ࠰ä̧ͬ˺ಬஂࡀञֈײ߮GɞҶཔƉŬք Ը ૪Щ಼ֱv˴ ͛ฃʃ" ] , encodeOffsets : [ [ 22716 , 67302 ] ] } } , { type : "Feature" , id : "SWZ" , properties : { name : "Swaziland" } , geometry : { type : "Polygon" , coordinates : [ "@@ǡύӭěԅҖS̄ɰ̀Ăʔ ʐÒшƵŰϕðω" ] , encodeOffsets : [ [ 32842 , - 27375 ] ] } } , { type : "Feature" , id : "SYR" , properties : { name : "Syria" } , geometry : { type : "Polygon" , coordinates : [ "@@ࣅऩͬgNŖŶ_ΈȸҠҜ̈́Əͤϗ¨ÿٞȶΌɤȀɤȀ°Ҹ˞Ǐऎɺ҂ƿۖFॴ̀Ґaक़žїԽҡȹĂؗͅ৫ᇵ" ] , encodeOffsets : [ [ 39724 , 34180 ] ] } } , { type : "Feature" , id : "TCD" , properties : { name : "Chad" } , geometry : { type : "Polygon" , coordinates : [ "@@ĎЄա nDզ Γ̶δੴߌ¬ન͖ၼǼΰΓ˾_ˌ̽ɔȷರࡔҠ…ྑ…ྏ¦ ܥÐϧإɝԯǬȝˡʳĨΏɑ Ε č̯̎¶Ǯ͕Vӥ̲ʛYȯՏ ƛэͽ؉ࣹ߅ϳ ߹¾ʁûĊ̏ѫ̋Σ͟͏ ȽȐƓhƹɍۛÙƀɪ ˅ׄşΐλƜӷӪǼІ ϦċʂÐҸSқކ Éͭՠ" ] , encodeOffsets : [ [ 14844 , 13169 ] ] } } , { type : "Feature" , id : "TGO" , properties : { name : "Togo" } , geometry : { type : "Polygon" , coordinates : [ "@@ڱdzȇ̎ɡ ՔãкȆݴɁ ̬ăڎD؎Ε ѠÖˀ݂kŅѵ ʲʝ̈̋ Эǜǥ ኝȺׅ" ] , encodeOffsets : [ [ 1911 , 6290 ] ] } } , { type : "Feature" , id : "THA" , properties : { name : "Thailand" } , geometry : { type : "Polygon" , coordinates : [ "@@ݭϬܗeŬڈ݉Káऋґ௯˙ݏÌ؋ն ދưܭҶӓԚĭѤѧ˝·ևĵßќۇςƣƭͧ͒ƝжҁӄПЌƏӳǃ ҲĠԾʚ߬Т ࡸҤ͟ތ`϶ĩҸ֕ښȩф̄ƺ̮ܶ·ֆՓؘН ݆ΠƴϦࣦצ ӬθӔȘθʷ´ ԍ֨ ȷࢭpݫࢰԆʤƧ Ӱzǜَ̊ÍٖڽÀࠥںܷ ܅˙ϛŦગDž՟ۧȤ১" ] , encodeOffsets : [ [ 105047 , 12480 ] ] } } , { type : "Feature" , id : "TJK" , properties : { name : "Tajikistan" } , geometry : { type : "Polygon" , coordinates : [ "@@̭ʷࣳƖāӛ࣬Þਢ˗ འŶɈާˠĐԜ ȓ ͛ŴӍࡿBׁØԻϕύĉ̉ǯͩˠþ۸ʩ¢ĞʲғȐα ̇ėŻūԇj˕ϩ˯nj؋ˑʱĺӀ ࡘǹض؟Ȩɔφۮ ЌҬˌբȜ ǩϵŤɹΎv" ] , encodeOffsets : [ [ 72719 , 41211 ] ] } } , { type : "Feature" , id : "TKM" , properties : { name : "Turkmenistan" } , geometry : { type : "Polygon" , coordinates : [ "@@ñۼطॣݔڣĠगюׯþσƽ֙|ׯӓ݇NjƻרŪ࢞ٽ˶Ɏֺ֏¸Ȇ۾ߊȵ݈ˎؓԎʉӔڱɋď؛ʿհψ˨ॖǪ֨ɻךڅњ¤ॆ\\Əцܖ̂۾ӦଆѹĜڡ͐ǣࣦ ˮƳа ࡽ० ׇո Ѓ࢞ЩΫwԥʩ Ѕ ɤſ ̙۽NjǙڥӁʭڏŵǫϟه ŏࡩ͈" ] , encodeOffsets : [ [ 62680 , 36506 ] ] } } , { type : "Feature" , id : "TLS" , properties : { name : "East Timor" } , geometry : { type : "Polygon" , coordinates : [ "@@IJȤܢȌז ˀŀ͆Ľ̯ɫο ۳ʋ eʬďǔ" ] , encodeOffsets : [ [ 127968 , - 9106 ] ] } } , { type : "Feature" , id : "TTO" , properties : { name : "Trinidad and Tobago" } , geometry : { type : "Polygon" , coordinates : [ "@@ӚŊǮ صۭġƯúʒɲiͪ" ] , encodeOffsets : [ [ - 63160 , 11019 ] ] } } , { type : "Feature" , id : "TUN" , properties : { name : "Tunisia" } , geometry : { type : "Polygon" , coordinates : [ " @ @ Ωພԭͺ QȰۉԄóنԮҶȢ ۚ ƃߠǠќ ࣶ ͺךĵ } ы ܊ ̲
2018-01-31 02:46:26 +00:00
encodeOffsets : [ [ 124437 , 30983 ] ] } } , { type : "Feature" , id : "3310" , properties : { name : "台州市" , cp : [ 121.1353 , 28.6688 ] , childNum : 7 } , geometry : { type : "Polygon" , coordinates : [ "@@lV IVWVz@bXJl@Xal@° nLll@nVxnV K@ UJVb ¦° k`UIWJXnÆ @bUJ Xl@lb Wn@UzVV@bVV mVnnJVXna b KUKnUVVUnVLlKVLXa Jm£@mU@WanaU_°@VWn V@U VWnIVVVKlX ÒlK@wVK L°m @ l@ô K w ĉƾůU l£@»U Vk m@ƅU aÛIŏmUk@m w@a £ Wk@ţ Im±@ankôUlaU Uw¯ ōa bÇbţm Þ ÞVĖ b l@ @n VXx bUl@Xmb ¯lUUU W@ÛI±xU@ m b@bmJ@bUz V@b¯b KUa¯KV_@Kk@@mWI @ lUU b@bkVm@kwUÇU_WKU@Ux @ VUnllX@Vn J@UXV@bWL@lUb bVLUJ@z V@lnbWbnnnJV @L" ] , encodeOffsets : [ [ 123312 , 29526 ] ] } } , { type : "Feature" , id : "3307" , properties : { name : "金华市" , cp : [ 120.0037 , 29.1028 ] , childNum : 8 } , geometry : { type : "Polygon" , coordinates : [ "@@nbVb @VbUVlb@VUnVxk`lXnJlbn lL@bX@V @kl V@nLnx@JlI V U@VUVn VV I@WVLVbVKXbWnXl@VlXUx b@ lVUbl lVU IÜVnalKX@@bV@@aUUlU wUw @naWW UVaUU aVb LlxXJVk° U lkU¥@k a@LVlXLVl VWznVn@lx Jl_@WX_@mVa a@alU@kVVna KVLlK b@UUaVa bnUWmXU@k@yVI@aÅ WmXIVJl_¯ ¥UaVI@ LmUUw@mkkmK¯ k@Wbk@WI@aUyUX JkU@bU@WLUy XUbkbW`U VVkKmbUaV U UK £@KVUUUm@UWkXWaUK V@b¯ ¯ mU V@Uk mW@kkK wU mkkVUI@WlkUamL@Wk_W @UVm@Ua¯KWXk@Uxm@UK@xV mV@Xk@UVV¼@ VLUb U U@ yULUbVlU@@XlVUVVb U@lXXVW@XUVl@@VUV Èn@VVU @lVa@ U mL@` X@`WL@VUX@lUL@xlx" ] , encodeOffsets : [ [ 122119 , 29948 ] ] } } , { type : "Feature" , id : "3308" , properties : { name : "衢州市" , cp : [ 118.6853 , 28.8666 ] , childNum : 5 } , geometry : { type : "Polygon" , coordinates : [ "@@XkVKnwl@@aVK@U wnL K@aÞa ¹@K b@UVaUaVaVK@k°V UllnL@ V@ xV@ V@VV m _Wa m@wlaÞbn@lL@WnL k@V@VlK@nkVVb@blKXklakw@wVK@kVW@UXK@_ W@_nKV @ Ub@kV UUm@ ÇVU@Uk@VU@WUXWW@k VUaVUkU@WWXUKk@Ukmm¯Lmm U JUIWJkImm _ ±WLkKm£@aVU mKUn L mWUkVmw@¥U LVWm @WUk a@Um mL mm@@bUX @@WUIm@UVUK@UVUUU VVJmb@b Xn mV ¼nnn¦mJUV L V@VW@UzUlVnUbl`UnVl@XU@kl@bmÈUx Vk@@J@ ¼W@ÅaVVnzmV @WJk@k WJ@ lXbWbXxmVn lLXb@°lKVXnW bWV X mbV@Xl b I@Kn@@x@ VLlm" ] , encodeOffsets : [ [ 121185 , 30184 ] ] } } , { type : "Feature" , id : "3306" , properties : { name : "绍兴市" , cp : [ 120.564 , 29.7565 ] , childNum : 6 } , geometry : { type : "Polygon" , coordinates : [ "@@ x@ VnnVJnIVJV_VKXblUXJl lLU UnU@UVVX@ mVUUUJl XUlbV@@V LVmX@@XlaVJVXXJ@b @XU @lU J È b ¤Ō J çV UUnml@@kna@w WVU@LVKV@namwkIUwm nmlaVL kUmVUkmmIUak@VmUUVU WV_kK@U K bnkWy U@ @UXwl@VUÞUVak±VUUU@mlI@ wXW IWbUKkLUKVmUUmVVL L ambUWmIUm nUU@aUUVym@ Xkak@ W@z@lWVXnmV aUbVb@V akLUK LmbUU@lkV@b bUb@nW`@Xk` Ikwm@mUXy UUkWKUk@K b@lV¦klV ¯ UlWIkw KUa bVVUb VXXmb @Vx xkVVV@bU@@aW@kLmb@l VUIVKmL@bUV@bUV@L a lnUV@nbVbUlVX JVUnx" ] , encodeOffsets : [ [ 122997 , 30561 ] ] } } , { type : "Feature" , id : "3304" , properties : { name : "嘉兴市" , cp : [ 120.9155 , 30.6354 ] , childNum : 6 } , geometry : { type : "Polygon" , coordinates : [ "@@@blIX@@VÜVUnn@l k lKnI°Þl`²LVKVbnbVaVLUVn@W¦@VkVVb @VI `@blLnL aX@ VVb@U @XlVa @@kVaUKV»U_lWXU @alb k@VllnLVKn@@UVIUw@y°IVVXU@VV@lw m@wVkƾa J LkΡ Ƨ ƒ l LÝUmW¯ ķÿĉ¥ Iŋ Wn èkVƧ U¯ÅmlVx@V¯a z @ @JU@U¦m@@ nVmn@V LV " ] , encodeOffsets : [ [ 123233 , 31382 ] ] } } , { type : "Feature" , id : "3305" , properties : { name : "湖州市" , cp : [ 119.8608 , 30.7782 ] , childNum : 4 } , geometry : { type : "Polygon" , coordinates : [ "@@kLl k m@VmÛU@UW@kJ@aU K@UnmmU@ maÛL@JWUUKUwUIUJ@X KWV@Vk@UIUmVk@mm@ÅnmaUVkL@V KmLVbU@klU@ÝbV @mVUKV @wUkV mIUJ@nVV@L akJWbUIka@UmKmL Kmm UUVk@@nmLX`WXUV@ @nUl kmlU@Ub xVV IlV nn @@n UÒ @ °n@@xmb@ VbnV@ @b@`@L@L@x@blVklVbnnV@ aXb°VlU@W b°U LXWVUV VwÈwÜ»ĸaĠnU Vw²X@V@lVU@wlaUUVm@knUV " ] , encodeOffsets : [ [ 123379 , 31500 ] ] } } ] , UTF8Encoding : ! 0 } } ) , i ( "echarts/chart/gauge" , [ "require" , "./base" , "../util/shape/GaugePointer" , "zrender/shape/Text" , "zrender/shape/Line" , "zrender/shape/Rectangle" , "zrender/shape/Circle" , "zrender/shape/Sector" , "../config" , "../util/ecData" , "../util/accMath" , "zrender/tool/util" , "../chart" ] , function ( e ) { function t ( e , t , n , a , o ) { i . call ( this , e , t , n , a , o ) , this . refresh ( a ) } var i = e ( "./base" ) , n = e ( "../util/shape/GaugePointer" ) , a = e ( " zrender / shap
show : ! 0 , x : 5 , y : 12 , textStyle : { align : "left" , color : "#000" , fontFamily : "Arial" , fontSize : 13 , fontStyle : "normal" , fontWeight : "normal" } } , breadcrumb : { show : ! 0 , textStyle : { } } , borderWidth : 1 , borderColor : "#ccc" , childBorderWidth : 1 , childBorderColor : "#ccc" } , emphasis : { } } } ; var m = e ( "../util/ecData" ) , V = e ( "zrender/config" ) , U = ( e ( "zrender/tool/event" ) , e ( "zrender/tool/util" ) ) , d = e ( "zrender/tool/color" ) ; return t . prototype = { type : h . CHART _TYPE _TREEMAP , refresh : function ( e ) { this . clear ( ) , e && ( this . option = e , this . series = this . option . series ) , this . _treesMap = { } ; for ( var t = this . series , i = this . component . legend , n = 0 ; n < t . length ; n ++ ) if ( t [ n ] . type === h . CHART _TYPE _TREEMAP ) { t [ n ] = this . reformOption ( t [ n ] ) ; var a = t [ n ] . name || "" ; if ( this . selectedMap [ a ] = i ? i . isSelected ( a ) : ! 0 , ! this . selectedMap [ a ] ) continue ; this . _buildSeries ( t [ n ] , n ) } } , _buildSeries : function ( e , t ) { var i = l . fromOptionData ( e . name , e . data ) ; this . _treesMap [ t ] = i ; var n = e . root && i . getNodeById ( e . root ) || i . root ; this . _buildTreemap ( n , t ) } , _buildTreemap : function ( e , t ) { for ( var i = this . shapeList , n = 0 ; n < i . length ; ) { var a = i [ n ] ; m . get ( a , "seriesIndex" ) === t ? ( this . zr . delShape ( i [ n ] ) , i . splice ( n , 1 ) ) : n ++ } for ( var o = i . length , r = this . series [ t ] , l = r . itemStyle , h = this . parsePercent ( r . size [ 0 ] , this . zr . getWidth ( ) ) || 400 , V = this . parsePercent ( r . size [ 1 ] , this . zr . getHeight ( ) ) || 500 , U = this . parseCenter ( this . zr , r . center ) , d = U [ 0 ] - . 5 * h , p = U [ 1 ] - . 5 * V , c = h * V , u = 0 , y = [ ] , g = e . children , n = 0 ; n < g . length ; n ++ ) u += g [ n ] . data . value ; for ( var b = 0 ; b < g . length ; b ++ ) y . push ( g [ b ] . data . value * c / u ) ; for ( var f = new s ( { x : d , y : p , width : h , height : V } ) , k = f . run ( y ) , x = 0 ; x < k . length ; x ++ ) { var _ = g [ x ] . data , L = k [ x ] , W = [ _ . itemStyle , l ] , X = this . deepMerge ( W ) ; X . normal . color || ( X . normal . color = this . zr . getColor ( x ) ) , X . emphasis . color || ( X . emphasis . color = X . normal . color ) , this . _buildItem ( _ , X , L , t , x ) , _ . children && this . _buildChildrenTreemap ( _ . children , X , L , t ) } this . query ( r , "itemStyle.normal.breadcrumb.show" ) && this . _buildBreadcrumb ( e , t , d , p + V ) ; for ( var n = o ; n < i . length ; n ++ ) this . zr . addShape ( i [ n ] ) } , _buildItem : function ( e , t , i , n , a ) { var o = this . series , r = this . getRectangle ( e , t , i ) ; m . pack ( r , o [ n ] , n , e , a , e . name ) , this . shapeList . push ( r ) } , getRectangle : function ( e , t , i ) { var n = t . emphasis , o = t . normal , r = this . getLabel ( t , i , e . name , e . value ) , s = this . option . hoverable , l = { zlevel : this . getZlevelBase ( ) , z : this . getZBase ( ) , hoverable : s , clickable : ! 0 , style : U . merge ( { x : i . x , y : i . y , width : i . width , height : i . height , brushType : "both" , color : o . color , lineWidth : o . borderWidth , strokeColor : o . borderColor } , r . style , ! 0 ) , highlightStyle : U . merge ( { color : n . color , lineWidth : n . borderWidth , strokeColor : n . borderColor } , r . highlightStyle , ! 0 ) } ; return new a ( l ) } , getLabel : function ( e , t , i , a ) { var o = e . normal . label . textStyle , r = [ e . emphasis . label . textStyle , o ] , s = this . deepMerge ( r ) , l = e . normal . label . formatter , h = this . getLabelText ( i , a , l ) , m = this . getFont ( o ) , V = n . getTextWidth ( h , m ) , U = n . getTextHeight ( h , m ) , d = this . deepQuery ( [ e . emphasis , e . normal ] , "label.formatter" ) , p = this . getLabelText ( i , a , d ) , c = this . getFont ( s ) , u = n . getTextWidth ( h , c ) , y = n . getTextHeight ( h , c ) ; e . normal . label . show ? ( e . normal . label . x + V > t . width || e . normal . label . y + U > t . height ) && ( h = "" ) : h = "" , e . emphasis . label . show ? ( s . x + u > t . width || s . y + y > t . height ) && ( p = "" ) : p = "" ; var g = { style : { textX : t . x + e . normal . label . x , textY : t . y + e . normal . label . y , text : h , textPosition : "specific" , textColor : o . color , textFont : m } , highlightStyle : { textX : t . x + e . emphasis . label . x , textY : t . y + e . emphasis . label . y , text : p , textColor : s . color , textPosition : "specific" } } ; return g } , getLabelText : function ( e , t , i ) { return i ? "function" == typeof i ? i . call ( this . myChart , e , t ) : "string" == typeof i ? ( i = i . replace ( "{b}" , "{b0}" ) . replace ( "{c}" , "{c0}" ) , i = i . replace ( "{b0}" , e ) . replace ( "{c0}" , t ) ) : void 0 : e } , _buildChildrenTreemap : function ( e , t , i , n ) { for ( var a = i . width * i . height , o = 0 , r = [ ] , l = 0 ; l < e . length ; l ++ ) o += e [ l ] . value ; for ( var h = 0 ; h < e . length ; h ++ ) r . push ( e [ h ] . value * a / o ) ; for ( var V = new s ( { x : i . x , y : i . y , width : i . width , height : i . height } ) , U = V . run ( r ) , d = t . normal . childBorderWidth , p = t . normal . childBorderColor , c = 0 ; c < U . length ; c ++ ) { var u = U [ c ] , y = [ ] ; i . y . toFixed ( 2 ) !== u . y . toFixed ( 2 ) && y . push ( this . _getLine ( u . x , u . y , u . x + u . width , u . y , d , p ) ) , i . x . toFixed ( 2 ) !== u . x . toFixed ( 2 ) && y . push ( this . _getLine ( u . x , u . y , u . x , u . y + u . height , d , p ) ) , ( i . y + i . height ) . toFixed ( 2 ) !== ( u . y + u . height ) . toFixed ( 2 ) && y . push ( this . _getLine ( u . x , u . y + u . height , u . x + u . width , u . y + u . height , d , p