From 471aee29388d9ad061d27e1089a176c90601f8cb Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Sat, 25 May 2019 14:52:14 +0800 Subject: [PATCH] =?UTF-8?q?feat(#IWOOT):=20=E5=A2=9E=E5=8A=A0=E7=BD=91?= =?UTF-8?q?=E7=AB=99=E5=88=86=E6=9E=90=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #Comment comment #IWOOT #Issue close https://gitee.com/LongbowEnterprise/dashboard/issues?id=IWOOT --- Bootstrap.Admin/BootstrapAdmin.db | Bin 94208 -> 94208 bytes .../Controllers/AdminController.cs | 6 + .../Controllers/Api/AnalyseController.cs | 76 + Bootstrap.Admin/Query/QueryLogOption.cs | 2 +- Bootstrap.Admin/Query/QueryLoginOption.cs | 1 + Bootstrap.Admin/Views/Admin/Analyse.cshtml | 106 + Bootstrap.Admin/wwwroot/js/analyse.js | 219 + .../wwwroot/lib/echart/echarts-all.js | 49884 ++++++++++++++++ .../wwwroot/lib/echart/echarts-all.min.js | 35 + Bootstrap.DataAccess.MongoDB/Log.cs | 23 +- Bootstrap.DataAccess.MongoDB/LoginUser.cs | 6 +- Bootstrap.DataAccess.MongoDB/Trace.cs | 23 +- Bootstrap.DataAccess/Helper/LogHelper.cs | 9 +- Bootstrap.DataAccess/Helper/LoginHelper.cs | 2 +- Bootstrap.DataAccess/Helper/TraceHelper.cs | 12 +- Bootstrap.DataAccess/Log.cs | 31 +- Bootstrap.DataAccess/LoginUser.cs | 10 +- Bootstrap.DataAccess/Trace.cs | 21 +- DatabaseScripts/MongoDB/Navigations.js | 12 + DatabaseScripts/MySQL/initData.sql | 1 + DatabaseScripts/Postgresql/initData.sql | 1 + DatabaseScripts/SQLite/InitData.sql | 1 + DatabaseScripts/SqlServer/InitData.sql | 1 + UnitTest/Bootstrap.Admin/Api/AnalyseTest.cs | 22 + .../Bootstrap.Admin/Controllers/AdminTest.cs | 1 + UnitTest/Bootstrap.DataAccess/LogsTest.cs | 11 +- UnitTest/Bootstrap.DataAccess/TracesTest.cs | 1 + UnitTest/Bootstrap.DataAccess/UsersTest.cs | 2 +- UnitTest/DB/UnitTest.db | Bin 94208 -> 94208 bytes 29 files changed, 50496 insertions(+), 23 deletions(-) create mode 100644 Bootstrap.Admin/Controllers/Api/AnalyseController.cs create mode 100644 Bootstrap.Admin/Views/Admin/Analyse.cshtml create mode 100644 Bootstrap.Admin/wwwroot/js/analyse.js create mode 100644 Bootstrap.Admin/wwwroot/lib/echart/echarts-all.js create mode 100644 Bootstrap.Admin/wwwroot/lib/echart/echarts-all.min.js create mode 100644 UnitTest/Bootstrap.Admin/Api/AnalyseTest.cs diff --git a/Bootstrap.Admin/BootstrapAdmin.db b/Bootstrap.Admin/BootstrapAdmin.db index c926e13efc6e4dfdae766ef37ee60d7d00617752..d8064e46a3d73e1c524f4a53c24a0d202b8c19ec 100644 GIT binary patch delta 106 zcmV-w0G0oM;01u-1&|v7wUHb{0kyGUq<;fH0|S!>fPDf31G5njeF8y0KMMc|B?2ug z4;Kgz=e?2VtC{79hUT7-0Fh>4AZB4LY-w&~En{e5a&&$#L1b-dZZAP@VQhJGWiVfJ MWo%|JvqXcu?2*YPr2qf` delta 37 tcmZp8z}oPDb%HeGmWeXXj9WG)EU9O public ActionResult Online() => View(new NavigatorBarModel(this)); + /// + /// 网站分析统计 + /// + /// + public ActionResult Analyse() => View(new NavigatorBarModel(this)); + /// /// 用于测试ExceptionFilter /// diff --git a/Bootstrap.Admin/Controllers/Api/AnalyseController.cs b/Bootstrap.Admin/Controllers/Api/AnalyseController.cs new file mode 100644 index 00000000..7b1b4189 --- /dev/null +++ b/Bootstrap.Admin/Controllers/Api/AnalyseController.cs @@ -0,0 +1,76 @@ +using Bootstrap.DataAccess; +using Microsoft.AspNetCore.Mvc; +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Bootstrap.Admin.Controllers.Api +{ + /// + /// + /// + [Route("api/[controller]")] + [ApiController] + public class AnalyseController : ControllerBase + { + /// + /// + /// + /// + [HttpGet()] + public ActionResult Get([FromQuery]string logType) + { + var ret = new AnalyseData(); + if (logType.Equals("LoginUsers", StringComparison.OrdinalIgnoreCase)) + { + var loginUsers = LoginHelper.RetrieveAll(null, null, null); + var temp = loginUsers.GroupBy(usr => usr.LoginTime.ToString("yyyy-MM-dd")); + var max = temp.Any() ? temp.Max(g => g.Count()) : 1; + ret.Polylines = temp.Select((g, index) => + { + ret.Datas.Add(new KeyValuePair(g.Key, g.Count().ToString())); + return $"{index * 2},{Math.Round(g.Count() * 28.0 / max, 2)}"; + }); + } + if (logType.Equals("trace", StringComparison.OrdinalIgnoreCase)) + { + var loginUsers = TraceHelper.RetrieveAll(null, null, null); + var temp = loginUsers.GroupBy(usr => usr.LogTime.ToString("yyyy-MM-dd")); + var max = temp.Any() ? temp.Max(g => g.Count()) : 1; + ret.Polylines = temp.Select((g, index) => + { + ret.Datas.Add(new KeyValuePair(g.Key, g.Count().ToString())); + return $"{index * 5},{Math.Round(g.Count() * 28.0 / max, 2)}"; + }); + } + if (logType.Equals("log", StringComparison.OrdinalIgnoreCase)) + { + var loginUsers = LogHelper.RetrieveAll(null, null, null); + var temp = loginUsers.GroupBy(usr => usr.LogTime.ToString("yyyy-MM-dd")); + var max = temp.Any() ? temp.Max(g => g.Count()) : 1; + ret.Polylines = temp.Select((g, index) => + { + ret.Datas.Add(new KeyValuePair(g.Key, g.Count().ToString())); + return $"{index * 5},{Math.Round(g.Count() * 28.0 / max, 2)}"; + }); + } + return ret; + } + + /// + /// + /// + public class AnalyseData + { + /// + /// + /// + public IEnumerable Polylines { get; set; } + + /// + /// + /// + public List> Datas { get; set; } = new List>(); + } + } +} diff --git a/Bootstrap.Admin/Query/QueryLogOption.cs b/Bootstrap.Admin/Query/QueryLogOption.cs index e8011e60..a787eb2f 100644 --- a/Bootstrap.Admin/Query/QueryLogOption.cs +++ b/Bootstrap.Admin/Query/QueryLogOption.cs @@ -30,7 +30,7 @@ namespace Bootstrap.Admin.Query /// public QueryData RetrieveData() { - var data = LogHelper.Retrieves(this, OperateTimeStart, OperateTimeEnd, OperateType); + var data = LogHelper.RetrievePages(this, OperateTimeStart, OperateTimeEnd, OperateType); var ret = new QueryData(); ret.total = data.TotalItems; ret.rows = data.Items; diff --git a/Bootstrap.Admin/Query/QueryLoginOption.cs b/Bootstrap.Admin/Query/QueryLoginOption.cs index e5823fd9..91851f4a 100644 --- a/Bootstrap.Admin/Query/QueryLoginOption.cs +++ b/Bootstrap.Admin/Query/QueryLoginOption.cs @@ -30,6 +30,7 @@ namespace Bootstrap.Admin.Query /// public QueryData RetrieveData() { + if (string.IsNullOrEmpty(Order)) Order = "LoginTime desc"; var data = LoginHelper.RetrievePages(this, StartTime, EndTime, LoginIP); return new QueryData { diff --git a/Bootstrap.Admin/Views/Admin/Analyse.cshtml b/Bootstrap.Admin/Views/Admin/Analyse.cshtml new file mode 100644 index 00000000..e861002b --- /dev/null +++ b/Bootstrap.Admin/Views/Admin/Analyse.cshtml @@ -0,0 +1,106 @@ +@model NavigatorBarModel +@{ + ViewBag.Title = "网站分析"; +} +@section css { + + + + + + + + + +} +@section javascript { + + + + + + + + + + + + + + +} +
+
查询条件
+
+
+
+
+ +
+ +
+
+
+
+
+
+
+
+
+ +
+ +
+
+
+
+
+
+
+
+
+ + +
+
+ +
+
+
+
+
+
+
+ 操作日志 +
+
+
+
+
+
+
+
+ 登录日志 +
+
+
+
+
+
+
+
+ 访问日志 +
+
+
+
+
+
\ No newline at end of file diff --git a/Bootstrap.Admin/wwwroot/js/analyse.js b/Bootstrap.Admin/wwwroot/js/analyse.js new file mode 100644 index 00000000..ec3116ef --- /dev/null +++ b/Bootstrap.Admin/wwwroot/js/analyse.js @@ -0,0 +1,219 @@ +(function ($) { + // sparkline component + 'use strict'; + + var lgbSparkline = function (element, options) { + this.$element = $(element); + this.options = $.extend({}, lgbSparkline.DEFAULTS, options); + this.init(); + }; + + lgbSparkline.VERSION = '1.0'; + lgbSparkline.Author = 'argo@163.com'; + lgbSparkline.DataKey = "lgb.sparkline"; + lgbSparkline.Template = ''; + lgbSparkline.Template += ''; + lgbSparkline.Template += ' '; + lgbSparkline.Template += ' '; + lgbSparkline.Template += ' '; + lgbSparkline.Template += ' '; + lgbSparkline.Template += ' '; + lgbSparkline.Template += ' '; + lgbSparkline.Template += ' '; + lgbSparkline.Template += ' '; + lgbSparkline.Template += ' '; + lgbSparkline.Template += ' '; + lgbSparkline.Template += ' '; + lgbSparkline.Template += ' '; + lgbSparkline.Template += ' '; + lgbSparkline.Template += ' '; + lgbSparkline.Template += ' '; + lgbSparkline.Template += ''; + lgbSparkline.Template += ''; + + lgbSparkline.AllowMethods = /val/; + + function Plugin(option) { + var params = $.makeArray(arguments).slice(1); + return this.each(function () { + var $this = $(this); + var data = $this.data(lgbSparkline.DataKey); + var options = typeof option === 'object' && option; + + if (!data) $this.data(lgbSparkline.DataKey, data = new lgbSparkline(this, options)); + if (!lgbSparkline.AllowMethods.test(option)) return; + if (typeof option === 'string') { + data[option].apply(data, params); + } + }); + } + + $.fn.lgbSparkline = Plugin; + $.fn.lgbSparkline.Constructor = lgbSparkline; + + var _proto = lgbSparkline.prototype; + _proto.init = function () { + var getUID = function (prefix) { + if (!prefix) prefix = 'lgb'; + do prefix += ~~(Math.random() * 1000000); + while (document.getElementById(prefix)); + return prefix; + }; + + var that = this; + var element = $.format(lgbSparkline.Template, getUID('gradient'), getUID('spark')) + this.$ctl = $(element).appendTo(this.$element); + }; + _proto.val = function (val) { + this.$ctl.find('polyline').attr('points', val); + }; +})(jQuery); + +$(function () { + $.bc({ + url: "api/Analyse?logType=LoginUsers", + callback: function (result) { + console.log(result); + $('#login').lgbSparkline('val', result.Polylines.join(' ')); + var op = $.extend(true, {}, option, { + legend: { data: ["登录数量"] }, + series: [ + { + name: "登录数量", + data: result.Datas.map(function (val, index) { + return val.Value; + }) + } + ], + xAxis: [ + { + data: result.Datas.map(function (val, index) { + return val.Key; + }) + } + ], + dataZoom: { + start: 50 + } + }); + var loginChart = echarts.init(document.getElementById('loginChart')); + loginChart.setOption(op); + } + }); + $.bc({ + url: "api/Analyse?logType=log", + callback: function (result) { + console.log(result); + $('#log').lgbSparkline('val', result.Polylines.join(' ')); + var op = $.extend(true, {}, option, { + legend: { data: ["操作数量"] }, + series: [ + { + name: "操作数量", + data: result.Datas.map(function (val, index) { + return val.Value; + }) + } + ], + xAxis: [ + { + data: result.Datas.map(function (val, index) { + return val.Key; + }) + } + ] + }); + var logChart = echarts.init(document.getElementById('logChart')); + logChart.setOption(op); + } + }); + $.bc({ + url: "api/Analyse?logType=trace", + callback: function (result) { + console.log(result); + $('#trace').lgbSparkline('val', result.Polylines.join(' ')); + var op = $.extend(true, {}, option, { + legend: { data: ["访问数量"] }, + series: [ + { + name: "访问数量", + data: result.Datas.map(function (val, index) { + return val.Value; + }) + } + ], + xAxis: [ + { + data: result.Datas.map(function (val, index) { + return val.Key; + }) + } + ] + }); + var traceChart = echarts.init(document.getElementById('traceChart')); + traceChart.setOption(op); + } + }); + + var option = { + title: { + text: '', + subtext: '' + }, + tooltip: { + trigger: 'axis' + }, + legend: { + data: ['日访问量'] + }, + toolbox: { + show: true, + feature: { + mark: { show: true }, + dataZoom: { show: true }, + dataView: { show: false }, + magicType: { show: true, type: ['line', 'bar'] }, + restore: { show: true }, + saveAsImage: { show: true } + } + }, + calculable: true, + dataZoom: { + show: true, + realtime: true, + start: 0, + end: 100 + }, + xAxis: [ + { + type: 'category', + boundaryGap: false, + data: function () { + var list = []; + for (var i = 1; i <= 30; i++) { + list.push('2013-03-' + i); + } + return list; + }() + } + ], + yAxis: [ + { + type: 'value' + } + ], + series: [ + { + name: '日访问量', + type: 'line', + data: function () { + var list = []; + for (var i = 1; i <= 30; i++) { + list.push(Math.round(Math.random() * 30)); + } + return list; + }() + } + ] + }; +}); \ No newline at end of file diff --git a/Bootstrap.Admin/wwwroot/lib/echart/echarts-all.js b/Bootstrap.Admin/wwwroot/lib/echart/echarts-all.js new file mode 100644 index 00000000..7dfb8ec3 --- /dev/null +++ b/Bootstrap.Admin/wwwroot/lib/echart/echarts-all.js @@ -0,0 +1,49884 @@ +(function(_global){ +var require, define; +(function () { + var mods = {}; + + define = function (id, deps, factory) { + mods[id] = { + id: id, + deps: deps, + factory: factory, + defined: 0, + exports: {}, + require: createRequire(id) + }; + }; + + require = createRequire(''); + + function normalize(id, baseId) { + if (!baseId) { + return id; + } + + if (id.indexOf('.') === 0) { + var basePath = baseId.split('/'); + var namePath = id.split('/'); + var baseLen = basePath.length - 1; + var nameLen = namePath.length; + var cutBaseTerms = 0; + var cutNameTerms = 0; + + pathLoop: for (var i = 0; i < nameLen; i++) { + switch (namePath[i]) { + case '..': + if (cutBaseTerms < baseLen) { + cutBaseTerms++; + cutNameTerms++; + } + else { + break pathLoop; + } + break; + case '.': + cutNameTerms++; + break; + default: + break pathLoop; + } + } + + basePath.length = baseLen - cutBaseTerms; + namePath = namePath.slice(cutNameTerms); + + return basePath.concat(namePath).join('/'); + } + + return id; + } + + function createRequire(baseId) { + var cacheMods = {}; + + function localRequire(id, callback) { + if (typeof id === 'string') { + var exports = cacheMods[id]; + if (!exports) { + exports = getModExports(normalize(id, baseId)); + cacheMods[id] = exports; + } + + return exports; + } + else if (id instanceof Array) { + callback = callback || function () {}; + callback.apply(this, getModsExports(id, callback, baseId)); + } + }; + + return localRequire; + } + + function getModsExports(ids, factory, baseId) { + var es = []; + var mod = mods[baseId]; + + for (var i = 0, l = Math.min(ids.length, factory.length); i < l; i++) { + var id = normalize(ids[i], baseId); + var arg; + switch (id) { + case 'require': + arg = (mod && mod.require) || require; + break; + case 'exports': + arg = mod.exports; + break; + case 'module': + arg = mod; + break; + default: + arg = getModExports(id); + } + es.push(arg); + } + + return es; + } + + function getModExports(id) { + var mod = mods[id]; + if (!mod) { + throw new Error('No ' + id); + } + + if (!mod.defined) { + var factory = mod.factory; + var factoryReturn = factory.apply( + this, + getModsExports(mod.deps || [], factory, id) + ); + if (typeof factoryReturn !== 'undefined') { + mod.exports = factoryReturn; + } + mod.defined = 1; + } + + return mod.exports; + } +}()); +define('echarts', ['echarts/echarts'], function (main) {return main;}); +define('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 (require) { + var ecConfig = require('./config'); + var zrUtil = require('zrender/tool/util'); + var zrEvent = require('zrender/tool/event'); + var self = {}; + var _canvasSupported = require('zrender/tool/env').canvasSupported; + var _idBase = new Date() - 0; + var _instances = {}; + var DOM_ATTRIBUTE_KEY = '_echarts_instance_'; + self.version = '2.2.7'; + self.dependencies = { zrender: '2.1.1' }; + self.init = function (dom, theme) { + var zrender = require('zrender'); + if (zrender.version.replace('.', '') - 0 < self.dependencies.zrender.replace('.', '') - 0) { + console.error('ZRender ' + zrender.version + ' is too old for ECharts ' + self.version + '. Current version need ZRender ' + self.dependencies.zrender + '+'); + } + dom = dom instanceof Array ? dom[0] : dom; + var key = dom.getAttribute(DOM_ATTRIBUTE_KEY); + if (!key) { + key = _idBase++; + dom.setAttribute(DOM_ATTRIBUTE_KEY, key); + } + if (_instances[key]) { + _instances[key].dispose(); + } + _instances[key] = new Echarts(dom); + _instances[key].id = key; + _instances[key].canvasSupported = _canvasSupported; + _instances[key].setTheme(theme); + return _instances[key]; + }; + self.getInstanceById = function (key) { + return _instances[key]; + }; + function MessageCenter() { + zrEvent.Dispatcher.call(this); + } + zrUtil.merge(MessageCenter.prototype, zrEvent.Dispatcher.prototype, true); + function Echarts(dom) { + dom.innerHTML = ''; + this._themeConfig = {}; + this.dom = dom; + this._connected = false; + this._status = { + dragIn: false, + dragOut: false, + needRefresh: false + }; + this._curEventType = false; + this._chartList = []; + this._messageCenter = new MessageCenter(); + this._messageCenterOutSide = new MessageCenter(); + this.resize = this.resize(); + this._init(); + } + var ZR_EVENT = require('zrender/config').EVENT; + var ZR_EVENT_LISTENS = [ + 'CLICK', + 'DBLCLICK', + 'MOUSEOVER', + 'MOUSEOUT', + 'DRAGSTART', + 'DRAGEND', + 'DRAGENTER', + 'DRAGOVER', + 'DRAGLEAVE', + 'DROP' + ]; + function callChartListMethodReverse(ecInstance, methodName, arg0, arg1, arg2) { + var chartList = ecInstance._chartList; + var len = chartList.length; + while (len--) { + var chart = chartList[len]; + if (typeof chart[methodName] === 'function') { + chart[methodName](arg0, arg1, arg2); + } + } + } + Echarts.prototype = { + _init: function () { + var self = this; + var _zr = require('zrender').init(this.dom); + this._zr = _zr; + this._messageCenter.dispatch = function (type, event, eventPackage, that) { + eventPackage = eventPackage || {}; + eventPackage.type = type; + eventPackage.event = event; + self._messageCenter.dispatchWithContext(type, eventPackage, that); + self._messageCenterOutSide.dispatchWithContext(type, eventPackage, that); + }; + this._onevent = function (param) { + return self.__onevent(param); + }; + for (var e in ecConfig.EVENT) { + if (e != 'CLICK' && e != 'DBLCLICK' && e != 'HOVER' && e != 'MOUSEOUT' && e != 'MAP_ROAM') { + this._messageCenter.bind(ecConfig.EVENT[e], this._onevent, this); + } + } + var eventBehaviors = {}; + this._onzrevent = function (param) { + return self[eventBehaviors[param.type]](param); + }; + for (var i = 0, len = ZR_EVENT_LISTENS.length; i < len; i++) { + var eventName = ZR_EVENT_LISTENS[i]; + var eventValue = ZR_EVENT[eventName]; + eventBehaviors[eventValue] = '_on' + eventName.toLowerCase(); + _zr.on(eventValue, this._onzrevent); + } + this.chart = {}; + this.component = {}; + var Island = require('./chart/island'); + this._island = new Island(this._themeConfig, this._messageCenter, _zr, {}, this); + this.chart.island = this._island; + var Toolbox = require('./component/toolbox'); + this._toolbox = new Toolbox(this._themeConfig, this._messageCenter, _zr, {}, this); + this.component.toolbox = this._toolbox; + var componentLibrary = require('./component'); + componentLibrary.define('title', require('./component/title')); + componentLibrary.define('tooltip', require('./component/tooltip')); + componentLibrary.define('legend', require('./component/legend')); + if (_zr.getWidth() === 0 || _zr.getHeight() === 0) { + console.error('Dom’s width & height should be ready before init.'); + } + }, + __onevent: function (param) { + param.__echartsId = param.__echartsId || this.id; + var fromMyself = param.__echartsId === this.id; + if (!this._curEventType) { + this._curEventType = param.type; + } + switch (param.type) { + case ecConfig.EVENT.LEGEND_SELECTED: + this._onlegendSelected(param); + break; + case ecConfig.EVENT.DATA_ZOOM: + if (!fromMyself) { + var dz = this.component.dataZoom; + if (dz) { + dz.silence(true); + dz.absoluteZoom(param.zoom); + dz.silence(false); + } + } + this._ondataZoom(param); + break; + case ecConfig.EVENT.DATA_RANGE: + fromMyself && this._ondataRange(param); + break; + case ecConfig.EVENT.MAGIC_TYPE_CHANGED: + if (!fromMyself) { + var tb = this.component.toolbox; + if (tb) { + tb.silence(true); + tb.setMagicType(param.magicType); + tb.silence(false); + } + } + this._onmagicTypeChanged(param); + break; + case ecConfig.EVENT.DATA_VIEW_CHANGED: + fromMyself && this._ondataViewChanged(param); + break; + case ecConfig.EVENT.TOOLTIP_HOVER: + fromMyself && this._tooltipHover(param); + break; + case ecConfig.EVENT.RESTORE: + this._onrestore(); + break; + case ecConfig.EVENT.REFRESH: + fromMyself && this._onrefresh(param); + break; + case ecConfig.EVENT.TOOLTIP_IN_GRID: + case ecConfig.EVENT.TOOLTIP_OUT_GRID: + if (!fromMyself) { + var grid = this.component.grid; + if (grid) { + this._zr.trigger('mousemove', { + connectTrigger: true, + zrenderX: grid.getX() + param.x * grid.getWidth(), + zrenderY: grid.getY() + param.y * grid.getHeight() + }); + } + } else if (this._connected) { + var grid = this.component.grid; + if (grid) { + param.x = (param.event.zrenderX - grid.getX()) / grid.getWidth(); + param.y = (param.event.zrenderY - grid.getY()) / grid.getHeight(); + } + } + break; + } + if (this._connected && fromMyself && this._curEventType === param.type) { + for (var c in this._connected) { + this._connected[c].connectedEventHandler(param); + } + this._curEventType = null; + } + if (!fromMyself || !this._connected && fromMyself) { + this._curEventType = null; + } + }, + _onclick: function (param) { + callChartListMethodReverse(this, 'onclick', param); + if (param.target) { + var ecData = this._eventPackage(param.target); + if (ecData && ecData.seriesIndex != null) { + this._messageCenter.dispatch(ecConfig.EVENT.CLICK, param.event, ecData, this); + } + } + }, + _ondblclick: function (param) { + callChartListMethodReverse(this, 'ondblclick', param); + if (param.target) { + var ecData = this._eventPackage(param.target); + if (ecData && ecData.seriesIndex != null) { + this._messageCenter.dispatch(ecConfig.EVENT.DBLCLICK, param.event, ecData, this); + } + } + }, + _onmouseover: function (param) { + if (param.target) { + var ecData = this._eventPackage(param.target); + if (ecData && ecData.seriesIndex != null) { + this._messageCenter.dispatch(ecConfig.EVENT.HOVER, param.event, ecData, this); + } + } + }, + _onmouseout: function (param) { + if (param.target) { + var ecData = this._eventPackage(param.target); + if (ecData && ecData.seriesIndex != null) { + this._messageCenter.dispatch(ecConfig.EVENT.MOUSEOUT, param.event, ecData, this); + } + } + }, + _ondragstart: function (param) { + this._status = { + dragIn: false, + dragOut: false, + needRefresh: false + }; + callChartListMethodReverse(this, 'ondragstart', param); + }, + _ondragenter: function (param) { + callChartListMethodReverse(this, 'ondragenter', param); + }, + _ondragover: function (param) { + callChartListMethodReverse(this, 'ondragover', param); + }, + _ondragleave: function (param) { + callChartListMethodReverse(this, 'ondragleave', param); + }, + _ondrop: function (param) { + callChartListMethodReverse(this, 'ondrop', param, this._status); + this._island.ondrop(param, this._status); + }, + _ondragend: function (param) { + callChartListMethodReverse(this, 'ondragend', param, this._status); + this._timeline && this._timeline.ondragend(param, this._status); + this._island.ondragend(param, this._status); + if (this._status.needRefresh) { + this._syncBackupData(this._option); + var messageCenter = this._messageCenter; + messageCenter.dispatch(ecConfig.EVENT.DATA_CHANGED, param.event, this._eventPackage(param.target), this); + messageCenter.dispatch(ecConfig.EVENT.REFRESH, null, null, this); + } + }, + _onlegendSelected: function (param) { + this._status.needRefresh = false; + callChartListMethodReverse(this, 'onlegendSelected', param, this._status); + if (this._status.needRefresh) { + this._messageCenter.dispatch(ecConfig.EVENT.REFRESH, null, null, this); + } + }, + _ondataZoom: function (param) { + this._status.needRefresh = false; + callChartListMethodReverse(this, 'ondataZoom', param, this._status); + if (this._status.needRefresh) { + this._messageCenter.dispatch(ecConfig.EVENT.REFRESH, null, null, this); + } + }, + _ondataRange: function (param) { + this._clearEffect(); + this._status.needRefresh = false; + callChartListMethodReverse(this, 'ondataRange', param, this._status); + if (this._status.needRefresh) { + this._zr.refreshNextFrame(); + } + }, + _onmagicTypeChanged: function () { + this._clearEffect(); + this._render(this._toolbox.getMagicOption()); + }, + _ondataViewChanged: function (param) { + this._syncBackupData(param.option); + this._messageCenter.dispatch(ecConfig.EVENT.DATA_CHANGED, null, param, this); + this._messageCenter.dispatch(ecConfig.EVENT.REFRESH, null, null, this); + }, + _tooltipHover: function (param) { + var tipShape = []; + callChartListMethodReverse(this, 'ontooltipHover', param, tipShape); + }, + _onrestore: function () { + this.restore(); + }, + _onrefresh: function (param) { + this._refreshInside = true; + this.refresh(param); + this._refreshInside = false; + }, + _syncBackupData: function (curOption) { + this.component.dataZoom && this.component.dataZoom.syncBackupData(curOption); + }, + _eventPackage: function (target) { + if (target) { + var ecData = require('./util/ecData'); + var seriesIndex = ecData.get(target, 'seriesIndex'); + var dataIndex = ecData.get(target, 'dataIndex'); + dataIndex = seriesIndex != -1 && this.component.dataZoom ? this.component.dataZoom.getRealDataIndex(seriesIndex, dataIndex) : dataIndex; + return { + seriesIndex: seriesIndex, + seriesName: (ecData.get(target, 'series') || {}).name, + dataIndex: dataIndex, + data: ecData.get(target, 'data'), + name: ecData.get(target, 'name'), + value: ecData.get(target, 'value'), + special: ecData.get(target, 'special') + }; + } + return; + }, + _noDataCheck: function (magicOption) { + var series = magicOption.series; + for (var i = 0, l = series.length; i < l; i++) { + if (series[i].type == ecConfig.CHART_TYPE_MAP || series[i].data && series[i].data.length > 0 || series[i].markPoint && series[i].markPoint.data && series[i].markPoint.data.length > 0 || series[i].markLine && series[i].markLine.data && series[i].markLine.data.length > 0 || series[i].nodes && series[i].nodes.length > 0 || series[i].links && series[i].links.length > 0 || series[i].matrix && series[i].matrix.length > 0 || series[i].eventList && series[i].eventList.length > 0) { + return false; + } + } + var loadOption = this._option && this._option.noDataLoadingOption || this._themeConfig.noDataLoadingOption || ecConfig.noDataLoadingOption || { + text: this._option && this._option.noDataText || this._themeConfig.noDataText || ecConfig.noDataText, + effect: this._option && this._option.noDataEffect || this._themeConfig.noDataEffect || ecConfig.noDataEffect + }; + this.clear(); + this.showLoading(loadOption); + return true; + }, + _render: function (magicOption) { + this._mergeGlobalConifg(magicOption); + if (this._noDataCheck(magicOption)) { + return; + } + var bgColor = magicOption.backgroundColor; + if (bgColor) { + if (!_canvasSupported && bgColor.indexOf('rgba') != -1) { + var cList = bgColor.split(','); + this.dom.style.filter = 'alpha(opacity=' + cList[3].substring(0, cList[3].lastIndexOf(')')) * 100 + ')'; + cList.length = 3; + cList[0] = cList[0].replace('a', ''); + this.dom.style.backgroundColor = cList.join(',') + ')'; + } else { + this.dom.style.backgroundColor = bgColor; + } + } + this._zr.clearAnimation(); + this._chartList = []; + var chartLibrary = require('./chart'); + var componentLibrary = require('./component'); + if (magicOption.xAxis || magicOption.yAxis) { + magicOption.grid = magicOption.grid || {}; + magicOption.dataZoom = magicOption.dataZoom || {}; + } + var componentList = [ + 'title', + 'legend', + 'tooltip', + 'dataRange', + 'roamController', + 'grid', + 'dataZoom', + 'xAxis', + 'yAxis', + 'polar' + ]; + var ComponentClass; + var componentType; + var component; + for (var i = 0, l = componentList.length; i < l; i++) { + componentType = componentList[i]; + component = this.component[componentType]; + if (magicOption[componentType]) { + if (component) { + component.refresh && component.refresh(magicOption); + } else { + ComponentClass = componentLibrary.get(/^[xy]Axis$/.test(componentType) ? 'axis' : componentType); + component = new ComponentClass(this._themeConfig, this._messageCenter, this._zr, magicOption, this, componentType); + this.component[componentType] = component; + } + this._chartList.push(component); + } else if (component) { + component.dispose(); + this.component[componentType] = null; + delete this.component[componentType]; + } + } + var ChartClass; + var chartType; + var chart; + var chartMap = {}; + for (var i = 0, l = magicOption.series.length; i < l; i++) { + chartType = magicOption.series[i].type; + if (!chartType) { + console.error('series[' + i + '] chart type has not been defined.'); + continue; + } + if (!chartMap[chartType]) { + chartMap[chartType] = true; + ChartClass = chartLibrary.get(chartType); + if (ChartClass) { + if (this.chart[chartType]) { + chart = this.chart[chartType]; + chart.refresh(magicOption); + } else { + chart = new ChartClass(this._themeConfig, this._messageCenter, this._zr, magicOption, this); + } + this._chartList.push(chart); + this.chart[chartType] = chart; + } else { + console.error(chartType + ' has not been required.'); + } + } + } + for (chartType in this.chart) { + if (chartType != ecConfig.CHART_TYPE_ISLAND && !chartMap[chartType]) { + this.chart[chartType].dispose(); + this.chart[chartType] = null; + delete this.chart[chartType]; + } + } + this.component.grid && this.component.grid.refixAxisShape(this.component); + this._island.refresh(magicOption); + this._toolbox.refresh(magicOption); + magicOption.animation && !magicOption.renderAsImage ? this._zr.refresh() : this._zr.render(); + var imgId = 'IMG' + this.id; + var img = document.getElementById(imgId); + if (magicOption.renderAsImage && _canvasSupported) { + if (img) { + img.src = this.getDataURL(magicOption.renderAsImage); + } else { + img = this.getImage(magicOption.renderAsImage); + img.id = imgId; + img.style.position = 'absolute'; + img.style.left = 0; + img.style.top = 0; + this.dom.firstChild.appendChild(img); + } + this.un(); + this._zr.un(); + this._disposeChartList(); + this._zr.clear(); + } else if (img) { + img.parentNode.removeChild(img); + } + img = null; + this._option = magicOption; + }, + restore: function () { + this._clearEffect(); + this._option = zrUtil.clone(this._optionRestore); + this._disposeChartList(); + this._island.clear(); + this._toolbox.reset(this._option, true); + this._render(this._option); + }, + refresh: function (param) { + this._clearEffect(); + param = param || {}; + var magicOption = param.option; + if (!this._refreshInside && magicOption) { + magicOption = this.getOption(); + zrUtil.merge(magicOption, param.option, true); + zrUtil.merge(this._optionRestore, param.option, true); + this._toolbox.reset(magicOption); + } + this._island.refresh(magicOption); + this._toolbox.refresh(magicOption); + this._zr.clearAnimation(); + for (var i = 0, l = this._chartList.length; i < l; i++) { + this._chartList[i].refresh && this._chartList[i].refresh(magicOption); + } + this.component.grid && this.component.grid.refixAxisShape(this.component); + this._zr.refresh(); + }, + _disposeChartList: function () { + this._clearEffect(); + this._zr.clearAnimation(); + var len = this._chartList.length; + while (len--) { + var chart = this._chartList[len]; + if (chart) { + var chartType = chart.type; + this.chart[chartType] && delete this.chart[chartType]; + this.component[chartType] && delete this.component[chartType]; + chart.dispose && chart.dispose(); + } + } + this._chartList = []; + }, + _mergeGlobalConifg: function (magicOption) { + var mergeList = [ + 'backgroundColor', + 'calculable', + 'calculableColor', + 'calculableHolderColor', + 'nameConnector', + 'valueConnector', + 'animation', + 'animationThreshold', + 'animationDuration', + 'animationDurationUpdate', + 'animationEasing', + 'addDataAnimation', + 'symbolList', + 'DRAG_ENABLE_TIME' + ]; + var len = mergeList.length; + while (len--) { + var mergeItem = mergeList[len]; + if (magicOption[mergeItem] == null) { + magicOption[mergeItem] = this._themeConfig[mergeItem] != null ? this._themeConfig[mergeItem] : ecConfig[mergeItem]; + } + } + var themeColor = magicOption.color; + if (!(themeColor && themeColor.length)) { + themeColor = this._themeConfig.color || ecConfig.color; + } + this._zr.getColor = function (idx) { + var zrColor = require('zrender/tool/color'); + return zrColor.getColor(idx, themeColor); + }; + if (!_canvasSupported) { + magicOption.animation = false; + magicOption.addDataAnimation = false; + } + }, + setOption: function (option, notMerge) { + if (!option.timeline) { + return this._setOption(option, notMerge); + } else { + return this._setTimelineOption(option); + } + }, + _setOption: function (option, notMerge, keepTimeLine) { + if (!notMerge && this._option) { + this._option = zrUtil.merge(this.getOption(), zrUtil.clone(option), true); + } else { + this._option = zrUtil.clone(option); + !keepTimeLine && this._timeline && this._timeline.dispose(); + } + this._optionRestore = zrUtil.clone(this._option); + if (!this._option.series || this._option.series.length === 0) { + this._zr.clear(); + return; + } + if (this.component.dataZoom && (this._option.dataZoom || this._option.toolbox && this._option.toolbox.feature && this._option.toolbox.feature.dataZoom && this._option.toolbox.feature.dataZoom.show)) { + this.component.dataZoom.syncOption(this._option); + } + this._toolbox.reset(this._option); + this._render(this._option); + return this; + }, + getOption: function () { + var magicOption = zrUtil.clone(this._option); + var self = this; + function restoreOption(prop) { + var restoreSource = self._optionRestore[prop]; + if (restoreSource) { + if (restoreSource instanceof Array) { + var len = restoreSource.length; + while (len--) { + magicOption[prop][len].data = zrUtil.clone(restoreSource[len].data); + } + } else { + magicOption[prop].data = zrUtil.clone(restoreSource.data); + } + } + } + restoreOption('xAxis'); + restoreOption('yAxis'); + restoreOption('series'); + return magicOption; + }, + setSeries: function (series, notMerge) { + if (!notMerge) { + this.setOption({ series: series }); + } else { + this._option.series = series; + this.setOption(this._option, notMerge); + } + return this; + }, + getSeries: function () { + return this.getOption().series; + }, + _setTimelineOption: function (option) { + this._timeline && this._timeline.dispose(); + var Timeline = require('./component/timeline'); + var timeline = new Timeline(this._themeConfig, this._messageCenter, this._zr, option, this); + this._timeline = timeline; + this.component.timeline = this._timeline; + return this; + }, + addData: function (seriesIdx, data, isHead, dataGrow, additionData) { + var params = seriesIdx instanceof Array ? seriesIdx : [[ + seriesIdx, + data, + isHead, + dataGrow, + additionData + ]]; + var magicOption = this.getOption(); + var optionRestore = this._optionRestore; + var self = this; + for (var i = 0, l = params.length; i < l; i++) { + seriesIdx = params[i][0]; + data = params[i][1]; + isHead = params[i][2]; + dataGrow = params[i][3]; + additionData = params[i][4]; + var seriesItem = optionRestore.series[seriesIdx]; + var inMethod = isHead ? 'unshift' : 'push'; + var outMethod = isHead ? 'pop' : 'shift'; + if (seriesItem) { + var seriesItemData = seriesItem.data; + var mSeriesItemData = magicOption.series[seriesIdx].data; + seriesItemData[inMethod](data); + mSeriesItemData[inMethod](data); + if (!dataGrow) { + seriesItemData[outMethod](); + data = mSeriesItemData[outMethod](); + } + if (additionData != null) { + var legend; + var legendData; + if (seriesItem.type === ecConfig.CHART_TYPE_PIE && (legend = optionRestore.legend) && (legendData = legend.data)) { + var mLegendData = magicOption.legend.data; + legendData[inMethod](additionData); + mLegendData[inMethod](additionData); + if (!dataGrow) { + var legendDataIdx = zrUtil.indexOf(legendData, data.name); + legendDataIdx != -1 && legendData.splice(legendDataIdx, 1); + legendDataIdx = zrUtil.indexOf(mLegendData, data.name); + legendDataIdx != -1 && mLegendData.splice(legendDataIdx, 1); + } + } else if (optionRestore.xAxis != null && optionRestore.yAxis != null) { + var axisData; + var mAxisData; + var axisIdx = seriesItem.xAxisIndex || 0; + if (optionRestore.xAxis[axisIdx].type == null || optionRestore.xAxis[axisIdx].type === 'category') { + axisData = optionRestore.xAxis[axisIdx].data; + mAxisData = magicOption.xAxis[axisIdx].data; + axisData[inMethod](additionData); + mAxisData[inMethod](additionData); + if (!dataGrow) { + axisData[outMethod](); + mAxisData[outMethod](); + } + } + axisIdx = seriesItem.yAxisIndex || 0; + if (optionRestore.yAxis[axisIdx].type === 'category') { + axisData = optionRestore.yAxis[axisIdx].data; + mAxisData = magicOption.yAxis[axisIdx].data; + axisData[inMethod](additionData); + mAxisData[inMethod](additionData); + if (!dataGrow) { + axisData[outMethod](); + mAxisData[outMethod](); + } + } + } + } + this._option.series[seriesIdx].data = magicOption.series[seriesIdx].data; + } + } + this._zr.clearAnimation(); + var chartList = this._chartList; + var chartAnimationCount = 0; + var chartAnimationDone = function () { + chartAnimationCount--; + if (chartAnimationCount === 0) { + animationDone(); + } + }; + for (var i = 0, l = chartList.length; i < l; i++) { + if (magicOption.addDataAnimation && chartList[i].addDataAnimation) { + chartAnimationCount++; + chartList[i].addDataAnimation(params, chartAnimationDone); + } + } + this.component.dataZoom && this.component.dataZoom.syncOption(magicOption); + this._option = magicOption; + function animationDone() { + if (!self._zr) { + return; + } + self._zr.clearAnimation(); + for (var i = 0, l = chartList.length; i < l; i++) { + chartList[i].motionlessOnce = magicOption.addDataAnimation && chartList[i].addDataAnimation; + } + self._messageCenter.dispatch(ecConfig.EVENT.REFRESH, null, { option: magicOption }, self); + } + if (!magicOption.addDataAnimation) { + setTimeout(animationDone, 0); + } + return this; + }, + addMarkPoint: function (seriesIdx, markData) { + return this._addMark(seriesIdx, markData, 'markPoint'); + }, + addMarkLine: function (seriesIdx, markData) { + return this._addMark(seriesIdx, markData, 'markLine'); + }, + _addMark: function (seriesIdx, markData, markType) { + var series = this._option.series; + var seriesItem; + if (series && (seriesItem = series[seriesIdx])) { + var seriesR = this._optionRestore.series; + var seriesRItem = seriesR[seriesIdx]; + var markOpt = seriesItem[markType]; + var markOptR = seriesRItem[markType]; + markOpt = seriesItem[markType] = markOpt || { data: [] }; + markOptR = seriesRItem[markType] = markOptR || { data: [] }; + for (var key in markData) { + if (key === 'data') { + markOpt.data = markOpt.data.concat(markData.data); + markOptR.data = markOptR.data.concat(markData.data); + } else if (typeof markData[key] != 'object' || markOpt[key] == null) { + markOpt[key] = markOptR[key] = markData[key]; + } else { + zrUtil.merge(markOpt[key], markData[key], true); + zrUtil.merge(markOptR[key], markData[key], true); + } + } + var chart = this.chart[seriesItem.type]; + chart && chart.addMark(seriesIdx, markData, markType); + } + return this; + }, + delMarkPoint: function (seriesIdx, markName) { + return this._delMark(seriesIdx, markName, 'markPoint'); + }, + delMarkLine: function (seriesIdx, markName) { + return this._delMark(seriesIdx, markName, 'markLine'); + }, + _delMark: function (seriesIdx, markName, markType) { + var series = this._option.series; + var seriesItem; + var mark; + var dataArray; + if (!(series && (seriesItem = series[seriesIdx]) && (mark = seriesItem[markType]) && (dataArray = mark.data))) { + return this; + } + markName = markName.split(' > '); + var targetIndex = -1; + for (var i = 0, l = dataArray.length; i < l; i++) { + var dataItem = dataArray[i]; + if (dataItem instanceof Array) { + if (dataItem[0].name === markName[0] && dataItem[1].name === markName[1]) { + targetIndex = i; + break; + } + } else if (dataItem.name === markName[0]) { + targetIndex = i; + break; + } + } + if (targetIndex > -1) { + dataArray.splice(targetIndex, 1); + this._optionRestore.series[seriesIdx][markType].data.splice(targetIndex, 1); + var chart = this.chart[seriesItem.type]; + chart && chart.delMark(seriesIdx, markName.join(' > '), markType); + } + return this; + }, + getDom: function () { + return this.dom; + }, + getZrender: function () { + return this._zr; + }, + getDataURL: function (imgType) { + if (!_canvasSupported) { + return ''; + } + if (this._chartList.length === 0) { + var imgId = 'IMG' + this.id; + var img = document.getElementById(imgId); + if (img) { + return img.src; + } + } + var tooltip = this.component.tooltip; + tooltip && tooltip.hideTip(); + switch (imgType) { + case 'jpeg': + break; + default: + imgType = 'png'; + } + var bgColor = this._option.backgroundColor; + if (bgColor && bgColor.replace(' ', '') === 'rgba(0,0,0,0)') { + bgColor = '#fff'; + } + return this._zr.toDataURL('image/' + imgType, bgColor); + }, + getImage: function (imgType) { + var title = this._optionRestore.title; + var imgDom = document.createElement('img'); + imgDom.src = this.getDataURL(imgType); + imgDom.title = title && title.text || 'ECharts'; + return imgDom; + }, + getConnectedDataURL: function (imgType) { + if (!this.isConnected()) { + return this.getDataURL(imgType); + } + var tempDom = this.dom; + var imgList = { + 'self': { + img: this.getDataURL(imgType), + left: tempDom.offsetLeft, + top: tempDom.offsetTop, + right: tempDom.offsetLeft + tempDom.offsetWidth, + bottom: tempDom.offsetTop + tempDom.offsetHeight + } + }; + var minLeft = imgList.self.left; + var minTop = imgList.self.top; + var maxRight = imgList.self.right; + var maxBottom = imgList.self.bottom; + for (var c in this._connected) { + tempDom = this._connected[c].getDom(); + imgList[c] = { + img: this._connected[c].getDataURL(imgType), + left: tempDom.offsetLeft, + top: tempDom.offsetTop, + right: tempDom.offsetLeft + tempDom.offsetWidth, + bottom: tempDom.offsetTop + tempDom.offsetHeight + }; + minLeft = Math.min(minLeft, imgList[c].left); + minTop = Math.min(minTop, imgList[c].top); + maxRight = Math.max(maxRight, imgList[c].right); + maxBottom = Math.max(maxBottom, imgList[c].bottom); + } + var zrDom = document.createElement('div'); + zrDom.style.position = 'absolute'; + zrDom.style.left = '-4000px'; + zrDom.style.width = maxRight - minLeft + 'px'; + zrDom.style.height = maxBottom - minTop + 'px'; + document.body.appendChild(zrDom); + var zrImg = require('zrender').init(zrDom); + var ImageShape = require('zrender/shape/Image'); + for (var c in imgList) { + zrImg.addShape(new ImageShape({ + style: { + x: imgList[c].left - minLeft, + y: imgList[c].top - minTop, + image: imgList[c].img + } + })); + } + zrImg.render(); + var bgColor = this._option.backgroundColor; + if (bgColor && bgColor.replace(/ /g, '') === 'rgba(0,0,0,0)') { + bgColor = '#fff'; + } + var image = zrImg.toDataURL('image/png', bgColor); + setTimeout(function () { + zrImg.dispose(); + zrDom.parentNode.removeChild(zrDom); + zrDom = null; + }, 100); + return image; + }, + getConnectedImage: function (imgType) { + var title = this._optionRestore.title; + var imgDom = document.createElement('img'); + imgDom.src = this.getConnectedDataURL(imgType); + imgDom.title = title && title.text || 'ECharts'; + return imgDom; + }, + on: function (eventName, eventListener) { + this._messageCenterOutSide.bind(eventName, eventListener, this); + return this; + }, + un: function (eventName, eventListener) { + this._messageCenterOutSide.unbind(eventName, eventListener); + return this; + }, + connect: function (connectTarget) { + if (!connectTarget) { + return this; + } + if (!this._connected) { + this._connected = {}; + } + if (connectTarget instanceof Array) { + for (var i = 0, l = connectTarget.length; i < l; i++) { + this._connected[connectTarget[i].id] = connectTarget[i]; + } + } else { + this._connected[connectTarget.id] = connectTarget; + } + return this; + }, + disConnect: function (connectTarget) { + if (!connectTarget || !this._connected) { + return this; + } + if (connectTarget instanceof Array) { + for (var i = 0, l = connectTarget.length; i < l; i++) { + delete this._connected[connectTarget[i].id]; + } + } else { + delete this._connected[connectTarget.id]; + } + for (var k in this._connected) { + return k, this; + } + this._connected = false; + return this; + }, + connectedEventHandler: function (param) { + if (param.__echartsId != this.id) { + this._onevent(param); + } + }, + isConnected: function () { + return !!this._connected; + }, + showLoading: function (loadingOption) { + var effectList = { + bar: require('zrender/loadingEffect/Bar'), + bubble: require('zrender/loadingEffect/Bubble'), + dynamicLine: require('zrender/loadingEffect/DynamicLine'), + ring: require('zrender/loadingEffect/Ring'), + spin: require('zrender/loadingEffect/Spin'), + whirling: require('zrender/loadingEffect/Whirling') + }; + this._toolbox.hideDataView(); + loadingOption = loadingOption || {}; + var textStyle = loadingOption.textStyle || {}; + loadingOption.textStyle = textStyle; + var finalTextStyle = zrUtil.merge(zrUtil.merge(zrUtil.clone(textStyle), this._themeConfig.textStyle), ecConfig.textStyle); + textStyle.textFont = finalTextStyle.fontStyle + ' ' + finalTextStyle.fontWeight + ' ' + finalTextStyle.fontSize + 'px ' + finalTextStyle.fontFamily; + textStyle.text = loadingOption.text || this._option && this._option.loadingText || this._themeConfig.loadingText || ecConfig.loadingText; + if (loadingOption.x != null) { + textStyle.x = loadingOption.x; + } + if (loadingOption.y != null) { + textStyle.y = loadingOption.y; + } + loadingOption.effectOption = loadingOption.effectOption || {}; + loadingOption.effectOption.textStyle = textStyle; + var Effect = loadingOption.effect; + if (typeof Effect === 'string' || Effect == null) { + Effect = effectList[loadingOption.effect || this._option && this._option.loadingEffect || this._themeConfig.loadingEffect || ecConfig.loadingEffect] || effectList.spin; + } + this._zr.showLoading(new Effect(loadingOption.effectOption)); + return this; + }, + hideLoading: function () { + this._zr.hideLoading(); + return this; + }, + setTheme: function (theme) { + if (theme) { + if (typeof theme === 'string') { + switch (theme) { + case 'macarons': + theme = require('./theme/macarons'); + break; + case 'infographic': + theme = require('./theme/infographic'); + break; + default: + theme = {}; + } + } else { + theme = theme || {}; + } + this._themeConfig = theme; + } + if (!_canvasSupported) { + var textStyle = this._themeConfig.textStyle; + textStyle && textStyle.fontFamily && textStyle.fontFamily2 && (textStyle.fontFamily = textStyle.fontFamily2); + textStyle = ecConfig.textStyle; + textStyle.fontFamily = textStyle.fontFamily2; + } + this._timeline && this._timeline.setTheme(true); + this._optionRestore && this.restore(); + }, + resize: function () { + var self = this; + return function () { + self._clearEffect(); + self._zr.resize(); + if (self._option && self._option.renderAsImage && _canvasSupported) { + self._render(self._option); + return self; + } + self._zr.clearAnimation(); + self._island.resize(); + self._toolbox.resize(); + self._timeline && self._timeline.resize(); + for (var i = 0, l = self._chartList.length; i < l; i++) { + self._chartList[i].resize && self._chartList[i].resize(); + } + self.component.grid && self.component.grid.refixAxisShape(self.component); + self._zr.refresh(); + self._messageCenter.dispatch(ecConfig.EVENT.RESIZE, null, null, self); + return self; + }; + }, + _clearEffect: function () { + this._zr.modLayer(ecConfig.EFFECT_ZLEVEL, { motionBlur: false }); + this._zr.painter.clearLayer(ecConfig.EFFECT_ZLEVEL); + }, + clear: function () { + this._disposeChartList(); + this._zr.clear(); + this._option = {}; + this._optionRestore = {}; + this.dom.style.backgroundColor = null; + return this; + }, + dispose: function () { + var key = this.dom.getAttribute(DOM_ATTRIBUTE_KEY); + key && delete _instances[key]; + this._island.dispose(); + this._toolbox.dispose(); + this._timeline && this._timeline.dispose(); + this._messageCenter.unbind(); + this.clear(); + this._zr.dispose(); + this._zr = null; + } + }; + return self; +});define('echarts/config', [], function () { + var config = { + CHART_TYPE_LINE: 'line', + CHART_TYPE_BAR: 'bar', + CHART_TYPE_SCATTER: 'scatter', + CHART_TYPE_PIE: 'pie', + CHART_TYPE_RADAR: 'radar', + CHART_TYPE_VENN: 'venn', + CHART_TYPE_TREEMAP: 'treemap', + CHART_TYPE_TREE: 'tree', + CHART_TYPE_MAP: 'map', + CHART_TYPE_K: 'k', + CHART_TYPE_ISLAND: 'island', + CHART_TYPE_FORCE: 'force', + CHART_TYPE_CHORD: 'chord', + CHART_TYPE_GAUGE: 'gauge', + CHART_TYPE_FUNNEL: 'funnel', + CHART_TYPE_EVENTRIVER: 'eventRiver', + CHART_TYPE_WORDCLOUD: 'wordCloud', + CHART_TYPE_HEATMAP: 'heatmap', + COMPONENT_TYPE_TITLE: 'title', + COMPONENT_TYPE_LEGEND: 'legend', + COMPONENT_TYPE_DATARANGE: 'dataRange', + COMPONENT_TYPE_DATAVIEW: 'dataView', + COMPONENT_TYPE_DATAZOOM: 'dataZoom', + COMPONENT_TYPE_TOOLBOX: 'toolbox', + COMPONENT_TYPE_TOOLTIP: 'tooltip', + COMPONENT_TYPE_GRID: 'grid', + COMPONENT_TYPE_AXIS: 'axis', + COMPONENT_TYPE_POLAR: 'polar', + COMPONENT_TYPE_X_AXIS: 'xAxis', + COMPONENT_TYPE_Y_AXIS: 'yAxis', + COMPONENT_TYPE_AXIS_CATEGORY: 'categoryAxis', + COMPONENT_TYPE_AXIS_VALUE: 'valueAxis', + COMPONENT_TYPE_TIMELINE: 'timeline', + COMPONENT_TYPE_ROAMCONTROLLER: 'roamController', + backgroundColor: 'rgba(0,0,0,0)', + color: [ + '#ff7f50', + '#87cefa', + '#da70d6', + '#32cd32', + '#6495ed', + '#ff69b4', + '#ba55d3', + '#cd5c5c', + '#ffa500', + '#40e0d0', + '#1e90ff', + '#ff6347', + '#7b68ee', + '#00fa9a', + '#ffd700', + '#6699FF', + '#ff6666', + '#3cb371', + '#b8860b', + '#30e0e0' + ], + markPoint: { + clickable: true, + symbol: 'pin', + symbolSize: 10, + large: false, + effect: { + show: false, + loop: true, + period: 15, + type: 'scale', + scaleSize: 2, + bounceDistance: 10 + }, + itemStyle: { + normal: { + borderWidth: 2, + label: { + show: true, + position: 'inside' + } + }, + emphasis: { label: { show: true } } + } + }, + markLine: { + clickable: true, + symbol: [ + 'circle', + 'arrow' + ], + symbolSize: [ + 2, + 4 + ], + smoothness: 0.2, + precision: 2, + effect: { + show: false, + loop: true, + period: 15, + scaleSize: 2 + }, + bundling: { + enable: false, + maxTurningAngle: 45 + }, + itemStyle: { + normal: { + borderWidth: 1.5, + label: { + show: true, + position: 'end' + }, + lineStyle: { type: 'dashed' } + }, + emphasis: { + label: { show: false }, + lineStyle: {} + } + } + }, + textStyle: { + decoration: 'none', + fontFamily: 'Arial, Verdana, sans-serif', + fontFamily2: '微软雅黑', + fontSize: 12, + fontStyle: 'normal', + fontWeight: 'normal' + }, + EVENT: { + REFRESH: 'refresh', + RESTORE: 'restore', + RESIZE: 'resize', + CLICK: 'click', + DBLCLICK: 'dblclick', + HOVER: 'hover', + MOUSEOUT: 'mouseout', + DATA_CHANGED: 'dataChanged', + DATA_ZOOM: 'dataZoom', + DATA_RANGE: 'dataRange', + DATA_RANGE_SELECTED: 'dataRangeSelected', + DATA_RANGE_HOVERLINK: 'dataRangeHoverLink', + LEGEND_SELECTED: 'legendSelected', + LEGEND_HOVERLINK: 'legendHoverLink', + MAP_SELECTED: 'mapSelected', + PIE_SELECTED: 'pieSelected', + MAGIC_TYPE_CHANGED: 'magicTypeChanged', + DATA_VIEW_CHANGED: 'dataViewChanged', + TIMELINE_CHANGED: 'timelineChanged', + MAP_ROAM: 'mapRoam', + FORCE_LAYOUT_END: 'forceLayoutEnd', + TOOLTIP_HOVER: 'tooltipHover', + TOOLTIP_IN_GRID: 'tooltipInGrid', + TOOLTIP_OUT_GRID: 'tooltipOutGrid', + ROAMCONTROLLER: 'roamController' + }, + DRAG_ENABLE_TIME: 120, + EFFECT_ZLEVEL: 10, + effectBlendAlpha: 0.95, + symbolList: [ + 'circle', + 'rectangle', + 'triangle', + 'diamond', + 'emptyCircle', + 'emptyRectangle', + 'emptyTriangle', + 'emptyDiamond' + ], + loadingEffect: 'spin', + loadingText: '数据读取中...', + noDataEffect: 'bubble', + noDataText: '暂无数据', + calculable: false, + calculableColor: 'rgba(255,165,0,0.6)', + calculableHolderColor: '#ccc', + nameConnector: ' & ', + valueConnector: ': ', + animation: true, + addDataAnimation: true, + animationThreshold: 2000, + animationDuration: 2000, + animationDurationUpdate: 500, + animationEasing: 'ExponentialOut' + }; + return config; +});define('zrender/tool/util', [ + 'require', + '../dep/excanvas' +], function (require) { + var ArrayProto = Array.prototype; + var nativeForEach = ArrayProto.forEach; + var nativeMap = ArrayProto.map; + var nativeFilter = ArrayProto.filter; + var BUILTIN_OBJECT = { + '[object Function]': 1, + '[object RegExp]': 1, + '[object Date]': 1, + '[object Error]': 1, + '[object CanvasGradient]': 1 + }; + var objToString = Object.prototype.toString; + function isDom(obj) { + return obj && obj.nodeType === 1 && typeof obj.nodeName == 'string'; + } + function clone(source) { + if (typeof source == 'object' && source !== null) { + var result = source; + if (source instanceof Array) { + result = []; + for (var i = 0, len = source.length; i < len; i++) { + result[i] = clone(source[i]); + } + } else if (!BUILTIN_OBJECT[objToString.call(source)] && !isDom(source)) { + result = {}; + for (var key in source) { + if (source.hasOwnProperty(key)) { + result[key] = clone(source[key]); + } + } + } + return result; + } + return source; + } + function mergeItem(target, source, key, overwrite) { + if (source.hasOwnProperty(key)) { + var targetProp = target[key]; + if (typeof targetProp == 'object' && !BUILTIN_OBJECT[objToString.call(targetProp)] && !isDom(targetProp)) { + merge(target[key], source[key], overwrite); + } else if (overwrite || !(key in target)) { + target[key] = source[key]; + } + } + } + function merge(target, source, overwrite) { + for (var i in source) { + mergeItem(target, source, i, overwrite); + } + return target; + } + var _ctx; + function getContext() { + if (!_ctx) { + require('../dep/excanvas'); + if (window['G_vmlCanvasManager']) { + var _div = document.createElement('div'); + _div.style.position = 'absolute'; + _div.style.top = '-1000px'; + document.body.appendChild(_div); + _ctx = G_vmlCanvasManager.initElement(_div).getContext('2d'); + } else { + _ctx = document.createElement('canvas').getContext('2d'); + } + } + return _ctx; + } + function indexOf(array, value) { + if (array.indexOf) { + return array.indexOf(value); + } + for (var i = 0, len = array.length; i < len; i++) { + if (array[i] === value) { + return i; + } + } + return -1; + } + function inherits(clazz, baseClazz) { + var clazzPrototype = clazz.prototype; + function F() { + } + F.prototype = baseClazz.prototype; + clazz.prototype = new F(); + for (var prop in clazzPrototype) { + clazz.prototype[prop] = clazzPrototype[prop]; + } + clazz.constructor = clazz; + } + function each(obj, cb, context) { + if (!(obj && cb)) { + return; + } + if (obj.forEach && obj.forEach === nativeForEach) { + obj.forEach(cb, context); + } else if (obj.length === +obj.length) { + for (var i = 0, len = obj.length; i < len; i++) { + cb.call(context, obj[i], i, obj); + } + } else { + for (var key in obj) { + if (obj.hasOwnProperty(key)) { + cb.call(context, obj[key], key, obj); + } + } + } + } + function map(obj, cb, context) { + if (!(obj && cb)) { + return; + } + if (obj.map && obj.map === nativeMap) { + return obj.map(cb, context); + } else { + var result = []; + for (var i = 0, len = obj.length; i < len; i++) { + result.push(cb.call(context, obj[i], i, obj)); + } + return result; + } + } + function filter(obj, cb, context) { + if (!(obj && cb)) { + return; + } + if (obj.filter && obj.filter === nativeFilter) { + return obj.filter(cb, context); + } else { + var result = []; + for (var i = 0, len = obj.length; i < len; i++) { + if (cb.call(context, obj[i], i, obj)) { + result.push(obj[i]); + } + } + return result; + } + } + function bind(func, context) { + return function () { + func.apply(context, arguments); + }; + } + return { + inherits: inherits, + clone: clone, + merge: merge, + getContext: getContext, + indexOf: indexOf, + each: each, + map: map, + filter: filter, + bind: bind + }; +});define('zrender/tool/event', [ + 'require', + '../mixin/Eventful' +], function (require) { + 'use strict'; + var Eventful = require('../mixin/Eventful'); + function getX(e) { + return typeof e.zrenderX != 'undefined' && e.zrenderX || typeof e.offsetX != 'undefined' && e.offsetX || typeof e.layerX != 'undefined' && e.layerX || typeof e.clientX != 'undefined' && e.clientX; + } + function getY(e) { + return typeof e.zrenderY != 'undefined' && e.zrenderY || typeof e.offsetY != 'undefined' && e.offsetY || typeof e.layerY != 'undefined' && e.layerY || typeof e.clientY != 'undefined' && e.clientY; + } + function getDelta(e) { + return typeof e.zrenderDelta != 'undefined' && e.zrenderDelta || typeof e.wheelDelta != 'undefined' && e.wheelDelta || typeof e.detail != 'undefined' && -e.detail; + } + var stop = typeof window.addEventListener === 'function' ? function (e) { + e.preventDefault(); + e.stopPropagation(); + e.cancelBubble = true; + } : function (e) { + e.returnValue = false; + e.cancelBubble = true; + }; + return { + getX: getX, + getY: getY, + getDelta: getDelta, + stop: stop, + Dispatcher: Eventful + }; +});define('zrender/tool/env', [], function () { + function detect(ua) { + var os = this.os = {}; + var browser = this.browser = {}; + var webkit = ua.match(/Web[kK]it[\/]{0,1}([\d.]+)/); + var android = ua.match(/(Android);?[\s\/]+([\d.]+)?/); + var ipad = ua.match(/(iPad).*OS\s([\d_]+)/); + var ipod = ua.match(/(iPod)(.*OS\s([\d_]+))?/); + var iphone = !ipad && ua.match(/(iPhone\sOS)\s([\d_]+)/); + var webos = ua.match(/(webOS|hpwOS)[\s\/]([\d.]+)/); + var touchpad = webos && ua.match(/TouchPad/); + var kindle = ua.match(/Kindle\/([\d.]+)/); + var silk = ua.match(/Silk\/([\d._]+)/); + var blackberry = ua.match(/(BlackBerry).*Version\/([\d.]+)/); + var bb10 = ua.match(/(BB10).*Version\/([\d.]+)/); + var rimtabletos = ua.match(/(RIM\sTablet\sOS)\s([\d.]+)/); + var playbook = ua.match(/PlayBook/); + var chrome = ua.match(/Chrome\/([\d.]+)/) || ua.match(/CriOS\/([\d.]+)/); + var firefox = ua.match(/Firefox\/([\d.]+)/); + var ie = ua.match(/MSIE ([\d.]+)/); + var safari = webkit && ua.match(/Mobile\//) && !chrome; + var webview = ua.match(/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/) && !chrome; + var ie = ua.match(/MSIE\s([\d.]+)/); + if (browser.webkit = !!webkit) + browser.version = webkit[1]; + if (android) + os.android = true, os.version = android[2]; + if (iphone && !ipod) + os.ios = os.iphone = true, os.version = iphone[2].replace(/_/g, '.'); + if (ipad) + os.ios = os.ipad = true, os.version = ipad[2].replace(/_/g, '.'); + if (ipod) + os.ios = os.ipod = true, os.version = ipod[3] ? ipod[3].replace(/_/g, '.') : null; + if (webos) + os.webos = true, os.version = webos[2]; + if (touchpad) + os.touchpad = true; + if (blackberry) + os.blackberry = true, os.version = blackberry[2]; + if (bb10) + os.bb10 = true, os.version = bb10[2]; + if (rimtabletos) + os.rimtabletos = true, os.version = rimtabletos[2]; + if (playbook) + browser.playbook = true; + if (kindle) + os.kindle = true, os.version = kindle[1]; + if (silk) + browser.silk = true, browser.version = silk[1]; + if (!silk && os.android && ua.match(/Kindle Fire/)) + browser.silk = true; + if (chrome) + browser.chrome = true, browser.version = chrome[1]; + if (firefox) + browser.firefox = true, browser.version = firefox[1]; + if (ie) + browser.ie = true, browser.version = ie[1]; + if (safari && (ua.match(/Safari/) || !!os.ios)) + browser.safari = true; + if (webview) + browser.webview = true; + if (ie) + browser.ie = true, browser.version = ie[1]; + os.tablet = !!(ipad || playbook || android && !ua.match(/Mobile/) || firefox && ua.match(/Tablet/) || ie && !ua.match(/Phone/) && ua.match(/Touch/)); + os.phone = !!(!os.tablet && !os.ipod && (android || iphone || webos || blackberry || bb10 || chrome && ua.match(/Android/) || chrome && ua.match(/CriOS\/([\d.]+)/) || firefox && ua.match(/Mobile/) || ie && ua.match(/Touch/))); + return { + browser: browser, + os: os, + canvasSupported: document.createElement('canvas').getContext ? true : false + }; + } + return detect(navigator.userAgent); +});define('zrender', ['zrender/zrender'], function (main) {return main;}); +define('zrender/zrender', [ + 'require', + './dep/excanvas', + './tool/util', + './tool/log', + './tool/guid', + './Handler', + './Painter', + './Storage', + './animation/Animation', + './tool/env' +], function (require) { + require('./dep/excanvas'); + var util = require('./tool/util'); + var log = require('./tool/log'); + var guid = require('./tool/guid'); + var Handler = require('./Handler'); + var Painter = require('./Painter'); + var Storage = require('./Storage'); + var Animation = require('./animation/Animation'); + var _instances = {}; + var zrender = {}; + zrender.version = '2.1.1'; + zrender.init = function (dom) { + var zr = new ZRender(guid(), dom); + _instances[zr.id] = zr; + return zr; + }; + zrender.dispose = function (zr) { + if (zr) { + zr.dispose(); + } else { + for (var key in _instances) { + _instances[key].dispose(); + } + _instances = {}; + } + return zrender; + }; + zrender.getInstance = function (id) { + return _instances[id]; + }; + zrender.delInstance = function (id) { + delete _instances[id]; + return zrender; + }; + function getFrameCallback(zrInstance) { + return function () { + if (zrInstance._needsRefreshNextFrame) { + zrInstance.refresh(); + } + }; + } + var ZRender = function (id, dom) { + this.id = id; + this.env = require('./tool/env'); + this.storage = new Storage(); + this.painter = new Painter(dom, this.storage); + this.handler = new Handler(dom, this.storage, this.painter); + this.animation = new Animation({ stage: { update: getFrameCallback(this) } }); + this.animation.start(); + var self = this; + this.painter.refreshNextFrame = function () { + self.refreshNextFrame(); + }; + this._needsRefreshNextFrame = false; + var self = this; + var storage = this.storage; + var oldDelFromMap = storage.delFromMap; + storage.delFromMap = function (elId) { + var el = storage.get(elId); + self.stopAnimation(el); + oldDelFromMap.call(storage, elId); + }; + }; + ZRender.prototype.getId = function () { + return this.id; + }; + ZRender.prototype.addShape = function (shape) { + this.addElement(shape); + return this; + }; + ZRender.prototype.addGroup = function (group) { + this.addElement(group); + return this; + }; + ZRender.prototype.delShape = function (shapeId) { + this.delElement(shapeId); + return this; + }; + ZRender.prototype.delGroup = function (groupId) { + this.delElement(groupId); + return this; + }; + ZRender.prototype.modShape = function (shapeId, shape) { + this.modElement(shapeId, shape); + return this; + }; + ZRender.prototype.modGroup = function (groupId, group) { + this.modElement(groupId, group); + return this; + }; + ZRender.prototype.addElement = function (el) { + this.storage.addRoot(el); + this._needsRefreshNextFrame = true; + return this; + }; + ZRender.prototype.delElement = function (el) { + this.storage.delRoot(el); + this._needsRefreshNextFrame = true; + return this; + }; + ZRender.prototype.modElement = function (el, params) { + this.storage.mod(el, params); + this._needsRefreshNextFrame = true; + return this; + }; + ZRender.prototype.modLayer = function (zLevel, config) { + this.painter.modLayer(zLevel, config); + this._needsRefreshNextFrame = true; + return this; + }; + ZRender.prototype.addHoverShape = function (shape) { + this.storage.addHover(shape); + return this; + }; + ZRender.prototype.render = function (callback) { + this.painter.render(callback); + this._needsRefreshNextFrame = false; + return this; + }; + ZRender.prototype.refresh = function (callback) { + this.painter.refresh(callback); + this._needsRefreshNextFrame = false; + return this; + }; + ZRender.prototype.refreshNextFrame = function () { + this._needsRefreshNextFrame = true; + return this; + }; + ZRender.prototype.refreshHover = function (callback) { + this.painter.refreshHover(callback); + return this; + }; + ZRender.prototype.refreshShapes = function (shapeList, callback) { + this.painter.refreshShapes(shapeList, callback); + return this; + }; + ZRender.prototype.resize = function () { + this.painter.resize(); + return this; + }; + ZRender.prototype.animate = function (el, path, loop) { + var self = this; + if (typeof el === 'string') { + el = this.storage.get(el); + } + if (el) { + var target; + if (path) { + var pathSplitted = path.split('.'); + var prop = el; + for (var i = 0, l = pathSplitted.length; i < l; i++) { + if (!prop) { + continue; + } + prop = prop[pathSplitted[i]]; + } + if (prop) { + target = prop; + } + } else { + target = el; + } + if (!target) { + log('Property "' + path + '" is not existed in element ' + el.id); + return; + } + if (el.__animators == null) { + el.__animators = []; + } + var animators = el.__animators; + var animator = this.animation.animate(target, { loop: loop }).during(function () { + self.modShape(el); + }).done(function () { + var idx = util.indexOf(el.__animators, animator); + if (idx >= 0) { + animators.splice(idx, 1); + } + }); + animators.push(animator); + return animator; + } else { + log('Element not existed'); + } + }; + ZRender.prototype.stopAnimation = function (el) { + if (el.__animators) { + var animators = el.__animators; + var len = animators.length; + for (var i = 0; i < len; i++) { + animators[i].stop(); + } + animators.length = 0; + } + return this; + }; + ZRender.prototype.clearAnimation = function () { + this.animation.clear(); + return this; + }; + ZRender.prototype.showLoading = function (loadingEffect) { + this.painter.showLoading(loadingEffect); + return this; + }; + ZRender.prototype.hideLoading = function () { + this.painter.hideLoading(); + return this; + }; + ZRender.prototype.getWidth = function () { + return this.painter.getWidth(); + }; + ZRender.prototype.getHeight = function () { + return this.painter.getHeight(); + }; + ZRender.prototype.toDataURL = function (type, backgroundColor, args) { + return this.painter.toDataURL(type, backgroundColor, args); + }; + ZRender.prototype.shapeToImage = function (e, width, height) { + var id = guid(); + return this.painter.shapeToImage(id, e, width, height); + }; + ZRender.prototype.on = function (eventName, eventHandler, context) { + this.handler.on(eventName, eventHandler, context); + return this; + }; + ZRender.prototype.un = function (eventName, eventHandler) { + this.handler.un(eventName, eventHandler); + return this; + }; + ZRender.prototype.trigger = function (eventName, event) { + this.handler.trigger(eventName, event); + return this; + }; + ZRender.prototype.clear = function () { + this.storage.delRoot(); + this.painter.clear(); + return this; + }; + ZRender.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; + zrender.delInstance(this.id); + }; + return zrender; +});define('zrender/config', [], function () { + var config = { + 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: false, + debugMode: 0, + devicePixelRatio: Math.max(window.devicePixelRatio || 1, 1) + }; + return config; +});define('echarts/chart/island', [ + 'require', + './base', + 'zrender/shape/Circle', + '../config', + '../util/ecData', + 'zrender/tool/util', + 'zrender/tool/event', + 'zrender/tool/color', + '../util/accMath', + '../chart' +], function (require) { + var ChartBase = require('./base'); + var CircleShape = require('zrender/shape/Circle'); + var ecConfig = require('../config'); + ecConfig.island = { + zlevel: 0, + z: 5, + r: 15, + calculateStep: 0.1 + }; + var ecData = require('../util/ecData'); + var zrUtil = require('zrender/tool/util'); + var zrEvent = require('zrender/tool/event'); + function Island(ecTheme, messageCenter, zr, option, myChart) { + ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); + this._nameConnector; + this._valueConnector; + this._zrHeight = this.zr.getHeight(); + this._zrWidth = this.zr.getWidth(); + var self = this; + self.shapeHandler.onmousewheel = function (param) { + var shape = param.target; + var event = param.event; + var delta = zrEvent.getDelta(event); + delta = delta > 0 ? -1 : 1; + shape.style.r -= delta; + shape.style.r = shape.style.r < 5 ? 5 : shape.style.r; + var value = ecData.get(shape, 'value'); + var dvalue = value * self.option.island.calculateStep; + value = dvalue > 1 ? Math.round(value - dvalue * delta) : +(value - dvalue * delta).toFixed(2); + var name = ecData.get(shape, 'name'); + shape.style.text = name + ':' + value; + ecData.set(shape, 'value', value); + ecData.set(shape, 'name', name); + self.zr.modShape(shape.id); + self.zr.refreshNextFrame(); + zrEvent.stop(event); + }; + } + Island.prototype = { + type: ecConfig.CHART_TYPE_ISLAND, + _combine: function (tarShape, srcShape) { + var zrColor = require('zrender/tool/color'); + var accMath = require('../util/accMath'); + var value = accMath.accAdd(ecData.get(tarShape, 'value'), ecData.get(srcShape, 'value')); + var name = ecData.get(tarShape, 'name') + this._nameConnector + ecData.get(srcShape, 'name'); + tarShape.style.text = name + this._valueConnector + value; + ecData.set(tarShape, 'value', value); + ecData.set(tarShape, 'name', name); + tarShape.style.r = this.option.island.r; + tarShape.style.color = zrColor.mix(tarShape.style.color, srcShape.style.color); + }, + refresh: function (newOption) { + if (newOption) { + newOption.island = this.reformOption(newOption.island); + this.option = newOption; + this._nameConnector = this.option.nameConnector; + this._valueConnector = this.option.valueConnector; + } + }, + getOption: function () { + return this.option; + }, + resize: function () { + var newWidth = this.zr.getWidth(); + var newHieght = this.zr.getHeight(); + var xScale = newWidth / (this._zrWidth || newWidth); + var yScale = newHieght / (this._zrHeight || newHieght); + if (xScale === 1 && yScale === 1) { + return; + } + this._zrWidth = newWidth; + this._zrHeight = newHieght; + for (var i = 0, l = this.shapeList.length; i < l; i++) { + this.zr.modShape(this.shapeList[i].id, { + style: { + x: Math.round(this.shapeList[i].style.x * xScale), + y: Math.round(this.shapeList[i].style.y * yScale) + } + }); + } + }, + add: function (shape) { + var name = ecData.get(shape, 'name'); + var value = ecData.get(shape, 'value'); + var seriesName = ecData.get(shape, 'series') != null ? ecData.get(shape, 'series').name : ''; + var font = this.getFont(this.option.island.textStyle); + var islandOption = this.option.island; + var islandShape = { + zlevel: islandOption.zlevel, + z: islandOption.z, + style: { + x: shape.style.x, + y: shape.style.y, + r: this.option.island.r, + color: shape.style.color || shape.style.strokeColor, + text: name + this._valueConnector + value, + textFont: font + }, + draggable: true, + hoverable: true, + onmousewheel: this.shapeHandler.onmousewheel, + _type: 'island' + }; + if (islandShape.style.color === '#fff') { + islandShape.style.color = shape.style.strokeColor; + } + this.setCalculable(islandShape); + islandShape.dragEnableTime = 0; + ecData.pack(islandShape, { name: seriesName }, -1, value, -1, name); + islandShape = new CircleShape(islandShape); + this.shapeList.push(islandShape); + this.zr.addShape(islandShape); + }, + del: function (shape) { + this.zr.delShape(shape.id); + var newShapeList = []; + for (var i = 0, l = this.shapeList.length; i < l; i++) { + if (this.shapeList[i].id != shape.id) { + newShapeList.push(this.shapeList[i]); + } + } + this.shapeList = newShapeList; + }, + ondrop: function (param, status) { + if (!this.isDrop || !param.target) { + return; + } + var target = param.target; + var dragged = param.dragged; + this._combine(target, dragged); + this.zr.modShape(target.id); + status.dragIn = true; + this.isDrop = false; + return; + }, + ondragend: function (param, status) { + var target = param.target; + if (!this.isDragend) { + if (!status.dragIn) { + target.style.x = zrEvent.getX(param.event); + target.style.y = zrEvent.getY(param.event); + this.add(target); + status.needRefresh = true; + } + } else { + if (status.dragIn) { + this.del(target); + status.needRefresh = true; + } + } + this.isDragend = false; + return; + } + }; + zrUtil.inherits(Island, ChartBase); + require('../chart').define('island', Island); + return Island; +});define('echarts/component/toolbox', [ + 'require', + './base', + 'zrender/shape/Line', + 'zrender/shape/Image', + 'zrender/shape/Rectangle', + '../util/shape/Icon', + '../config', + 'zrender/tool/util', + 'zrender/config', + 'zrender/tool/event', + './dataView', + '../component' +], function (require) { + var Base = require('./base'); + var LineShape = require('zrender/shape/Line'); + var ImageShape = require('zrender/shape/Image'); + var RectangleShape = require('zrender/shape/Rectangle'); + var IconShape = require('../util/shape/Icon'); + var ecConfig = require('../config'); + ecConfig.toolbox = { + zlevel: 0, + z: 6, + show: false, + orient: 'horizontal', + x: 'right', + y: 'top', + color: [ + '#1e90ff', + '#22bb22', + '#4b0082', + '#d2691e' + ], + disableColor: '#ddd', + effectiveColor: 'red', + backgroundColor: 'rgba(0,0,0,0)', + borderColor: '#ccc', + borderWidth: 0, + padding: 5, + itemGap: 10, + itemSize: 16, + showTitle: true, + feature: { + mark: { + show: false, + title: { + mark: '辅助线开关', + markUndo: '删除辅助线', + markClear: '清空辅助线' + }, + lineStyle: { + width: 1, + color: '#1e90ff', + type: 'dashed' + } + }, + dataZoom: { + show: false, + title: { + dataZoom: '区域缩放', + dataZoomReset: '区域缩放后退' + } + }, + dataView: { + show: false, + title: '数据视图', + readOnly: false, + lang: [ + '数据视图', + '关闭', + '刷新' + ] + }, + magicType: { + show: false, + title: { + line: '折线图切换', + bar: '柱形图切换', + stack: '堆积', + tiled: '平铺', + force: '力导向布局图切换', + chord: '和弦图切换', + pie: '饼图切换', + funnel: '漏斗图切换' + }, + type: [] + }, + restore: { + show: false, + title: '还原' + }, + saveAsImage: { + show: false, + title: '保存为图片', + type: 'png', + lang: ['点击保存'] + } + } + }; + var zrUtil = require('zrender/tool/util'); + var zrConfig = require('zrender/config'); + var zrEvent = require('zrender/tool/event'); + var _MAGICTYPE_STACK = 'stack'; + var _MAGICTYPE_TILED = 'tiled'; + function Toolbox(ecTheme, messageCenter, zr, option, myChart) { + Base.call(this, ecTheme, messageCenter, zr, option, myChart); + this.dom = myChart.dom; + this._magicType = {}; + this._magicMap = {}; + this._isSilence = false; + this._iconList; + this._iconShapeMap = {}; + this._featureTitle = {}; + this._featureIcon = {}; + this._featureColor = {}; + this._featureOption = {}; + this._enableColor = 'red'; + this._disableColor = '#ccc'; + this._markShapeList = []; + var self = this; + self._onMark = function (param) { + self.__onMark(param); + }; + self._onMarkUndo = function (param) { + self.__onMarkUndo(param); + }; + self._onMarkClear = function (param) { + self.__onMarkClear(param); + }; + self._onDataZoom = function (param) { + self.__onDataZoom(param); + }; + self._onDataZoomReset = function (param) { + self.__onDataZoomReset(param); + }; + self._onDataView = function (param) { + self.__onDataView(param); + }; + self._onRestore = function (param) { + self.__onRestore(param); + }; + self._onSaveAsImage = function (param) { + self.__onSaveAsImage(param); + }; + self._onMagicType = function (param) { + self.__onMagicType(param); + }; + self._onCustomHandler = function (param) { + self.__onCustomHandler(param); + }; + self._onmousemove = function (param) { + return self.__onmousemove(param); + }; + self._onmousedown = function (param) { + return self.__onmousedown(param); + }; + self._onmouseup = function (param) { + return self.__onmouseup(param); + }; + self._onclick = function (param) { + return self.__onclick(param); + }; + } + Toolbox.prototype = { + type: ecConfig.COMPONENT_TYPE_TOOLBOX, + _buildShape: function () { + this._iconList = []; + var toolboxOption = this.option.toolbox; + this._enableColor = toolboxOption.effectiveColor; + this._disableColor = toolboxOption.disableColor; + var feature = toolboxOption.feature; + var iconName = []; + for (var key in feature) { + if (feature[key].show) { + switch (key) { + case 'mark': + iconName.push({ + key: key, + name: 'mark' + }); + iconName.push({ + key: key, + name: 'markUndo' + }); + iconName.push({ + key: key, + name: 'markClear' + }); + break; + case 'magicType': + for (var i = 0, l = feature[key].type.length; i < l; i++) { + feature[key].title[feature[key].type[i] + 'Chart'] = feature[key].title[feature[key].type[i]]; + if (feature[key].option) { + feature[key].option[feature[key].type[i] + 'Chart'] = feature[key].option[feature[key].type[i]]; + } + iconName.push({ + key: key, + name: feature[key].type[i] + 'Chart' + }); + } + break; + case 'dataZoom': + iconName.push({ + key: key, + name: 'dataZoom' + }); + iconName.push({ + key: key, + name: 'dataZoomReset' + }); + break; + case 'saveAsImage': + if (this.canvasSupported) { + iconName.push({ + key: key, + name: 'saveAsImage' + }); + } + break; + default: + iconName.push({ + key: key, + name: key + }); + break; + } + } + } + if (iconName.length > 0) { + var name; + var key; + for (var i = 0, l = iconName.length; i < l; i++) { + name = iconName[i].name; + key = iconName[i].key; + this._iconList.push(name); + this._featureTitle[name] = feature[key].title[name] || feature[key].title; + if (feature[key].icon) { + this._featureIcon[name] = feature[key].icon[name] || feature[key].icon; + } + if (feature[key].color) { + this._featureColor[name] = feature[key].color[name] || feature[key].color; + } + if (feature[key].option) { + this._featureOption[name] = feature[key].option[name] || feature[key].option; + } + } + this._itemGroupLocation = this._getItemGroupLocation(); + this._buildBackground(); + this._buildItem(); + for (var i = 0, l = this.shapeList.length; i < l; i++) { + this.zr.addShape(this.shapeList[i]); + } + if (this._iconShapeMap['mark']) { + this._iconDisable(this._iconShapeMap['markUndo']); + this._iconDisable(this._iconShapeMap['markClear']); + } + if (this._iconShapeMap['dataZoomReset'] && this._zoomQueue.length === 0) { + this._iconDisable(this._iconShapeMap['dataZoomReset']); + } + } + }, + _buildItem: function () { + var toolboxOption = this.option.toolbox; + var iconLength = this._iconList.length; + var lastX = this._itemGroupLocation.x; + var lastY = this._itemGroupLocation.y; + var itemSize = toolboxOption.itemSize; + var itemGap = toolboxOption.itemGap; + var itemShape; + var color = toolboxOption.color instanceof Array ? toolboxOption.color : [toolboxOption.color]; + var textFont = this.getFont(toolboxOption.textStyle); + var textPosition; + var textAlign; + var textBaseline; + if (toolboxOption.orient === 'horizontal') { + textPosition = this._itemGroupLocation.y / this.zr.getHeight() < 0.5 ? 'bottom' : 'top'; + textAlign = this._itemGroupLocation.x / this.zr.getWidth() < 0.5 ? 'left' : 'right'; + textBaseline = this._itemGroupLocation.y / this.zr.getHeight() < 0.5 ? 'top' : 'bottom'; + } else { + textPosition = this._itemGroupLocation.x / this.zr.getWidth() < 0.5 ? 'right' : 'left'; + } + this._iconShapeMap = {}; + var self = this; + for (var i = 0; i < iconLength; i++) { + itemShape = { + type: 'icon', + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: { + x: lastX, + y: lastY, + width: itemSize, + height: itemSize, + iconType: this._iconList[i], + lineWidth: 1, + strokeColor: this._featureColor[this._iconList[i]] || color[i % color.length], + brushType: 'stroke' + }, + highlightStyle: { + lineWidth: 1, + text: toolboxOption.showTitle ? this._featureTitle[this._iconList[i]] : undefined, + textFont: textFont, + textPosition: textPosition, + strokeColor: this._featureColor[this._iconList[i]] || color[i % color.length] + }, + hoverable: true, + clickable: true + }; + if (this._featureIcon[this._iconList[i]]) { + itemShape.style.image = this._featureIcon[this._iconList[i]].replace(new RegExp('^image:\\/\\/'), ''); + itemShape.style.opacity = 0.8; + itemShape.highlightStyle.opacity = 1; + itemShape.type = 'image'; + } + if (toolboxOption.orient === 'horizontal') { + if (i === 0 && textAlign === 'left') { + itemShape.highlightStyle.textPosition = 'specific'; + itemShape.highlightStyle.textAlign = textAlign; + itemShape.highlightStyle.textBaseline = textBaseline; + itemShape.highlightStyle.textX = lastX; + itemShape.highlightStyle.textY = textBaseline === 'top' ? lastY + itemSize + 10 : lastY - 10; + } + if (i === iconLength - 1 && textAlign === 'right') { + itemShape.highlightStyle.textPosition = 'specific'; + itemShape.highlightStyle.textAlign = textAlign; + itemShape.highlightStyle.textBaseline = textBaseline; + itemShape.highlightStyle.textX = lastX + itemSize; + itemShape.highlightStyle.textY = textBaseline === 'top' ? lastY + itemSize + 10 : lastY - 10; + } + } + switch (this._iconList[i]) { + case 'mark': + itemShape.onclick = self._onMark; + break; + case 'markUndo': + itemShape.onclick = self._onMarkUndo; + break; + case 'markClear': + itemShape.onclick = self._onMarkClear; + break; + case 'dataZoom': + itemShape.onclick = self._onDataZoom; + break; + case 'dataZoomReset': + itemShape.onclick = self._onDataZoomReset; + break; + case 'dataView': + if (!this._dataView) { + var DataView = require('./dataView'); + this._dataView = new DataView(this.ecTheme, this.messageCenter, this.zr, this.option, this.myChart); + } + itemShape.onclick = self._onDataView; + break; + case 'restore': + itemShape.onclick = self._onRestore; + break; + case 'saveAsImage': + itemShape.onclick = self._onSaveAsImage; + break; + default: + if (this._iconList[i].match('Chart')) { + itemShape._name = this._iconList[i].replace('Chart', ''); + itemShape.onclick = self._onMagicType; + } else { + itemShape.onclick = self._onCustomHandler; + } + break; + } + if (itemShape.type === 'icon') { + itemShape = new IconShape(itemShape); + } else if (itemShape.type === 'image') { + itemShape = new ImageShape(itemShape); + } + this.shapeList.push(itemShape); + this._iconShapeMap[this._iconList[i]] = itemShape; + if (toolboxOption.orient === 'horizontal') { + lastX += itemSize + itemGap; + } else { + lastY += itemSize + itemGap; + } + } + }, + _buildBackground: function () { + var toolboxOption = this.option.toolbox; + var padding = this.reformCssArray(this.option.toolbox.padding); + this.shapeList.push(new RectangleShape({ + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: false, + style: { + x: this._itemGroupLocation.x - padding[3], + y: this._itemGroupLocation.y - padding[0], + width: this._itemGroupLocation.width + padding[3] + padding[1], + height: this._itemGroupLocation.height + padding[0] + padding[2], + brushType: toolboxOption.borderWidth === 0 ? 'fill' : 'both', + color: toolboxOption.backgroundColor, + strokeColor: toolboxOption.borderColor, + lineWidth: toolboxOption.borderWidth + } + })); + }, + _getItemGroupLocation: function () { + var toolboxOption = this.option.toolbox; + var padding = this.reformCssArray(this.option.toolbox.padding); + var iconLength = this._iconList.length; + var itemGap = toolboxOption.itemGap; + var itemSize = toolboxOption.itemSize; + var totalWidth = 0; + var totalHeight = 0; + if (toolboxOption.orient === 'horizontal') { + totalWidth = (itemSize + itemGap) * iconLength - itemGap; + totalHeight = itemSize; + } else { + totalHeight = (itemSize + itemGap) * iconLength - itemGap; + totalWidth = itemSize; + } + var x; + var zrWidth = this.zr.getWidth(); + switch (toolboxOption.x) { + case 'center': + x = Math.floor((zrWidth - totalWidth) / 2); + break; + case 'left': + x = padding[3] + toolboxOption.borderWidth; + break; + case 'right': + x = zrWidth - totalWidth - padding[1] - toolboxOption.borderWidth; + break; + default: + x = toolboxOption.x - 0; + x = isNaN(x) ? 0 : x; + break; + } + var y; + var zrHeight = this.zr.getHeight(); + switch (toolboxOption.y) { + case 'top': + y = padding[0] + toolboxOption.borderWidth; + break; + case 'bottom': + y = zrHeight - totalHeight - padding[2] - toolboxOption.borderWidth; + break; + case 'center': + y = Math.floor((zrHeight - totalHeight) / 2); + break; + default: + y = toolboxOption.y - 0; + y = isNaN(y) ? 0 : y; + break; + } + return { + x: x, + y: y, + width: totalWidth, + height: totalHeight + }; + }, + __onmousemove: function (param) { + if (this._marking) { + this._markShape.style.xEnd = zrEvent.getX(param.event); + this._markShape.style.yEnd = zrEvent.getY(param.event); + this.zr.addHoverShape(this._markShape); + } + if (this._zooming) { + this._zoomShape.style.width = zrEvent.getX(param.event) - this._zoomShape.style.x; + this._zoomShape.style.height = zrEvent.getY(param.event) - this._zoomShape.style.y; + this.zr.addHoverShape(this._zoomShape); + this.dom.style.cursor = 'crosshair'; + zrEvent.stop(param.event); + } + if (this._zoomStart && (this.dom.style.cursor != 'pointer' && this.dom.style.cursor != 'move')) { + this.dom.style.cursor = 'crosshair'; + } + }, + __onmousedown: function (param) { + if (param.target) { + return; + } + this._zooming = true; + var x = zrEvent.getX(param.event); + var y = zrEvent.getY(param.event); + var zoomOption = this.option.dataZoom || {}; + this._zoomShape = new RectangleShape({ + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: { + x: x, + y: y, + width: 1, + height: 1, + brushType: 'both' + }, + highlightStyle: { + lineWidth: 2, + color: zoomOption.fillerColor || ecConfig.dataZoom.fillerColor, + strokeColor: zoomOption.handleColor || ecConfig.dataZoom.handleColor, + brushType: 'both' + } + }); + this.zr.addHoverShape(this._zoomShape); + return true; + }, + __onmouseup: function () { + if (!this._zoomShape || Math.abs(this._zoomShape.style.width) < 10 || Math.abs(this._zoomShape.style.height) < 10) { + this._zooming = false; + return true; + } + if (this._zooming && this.component.dataZoom) { + this._zooming = false; + var zoom = this.component.dataZoom.rectZoom(this._zoomShape.style); + if (zoom) { + this._zoomQueue.push({ + start: zoom.start, + end: zoom.end, + start2: zoom.start2, + end2: zoom.end2 + }); + this._iconEnable(this._iconShapeMap['dataZoomReset']); + this.zr.refreshNextFrame(); + } + } + return true; + }, + __onclick: function (param) { + if (param.target) { + return; + } + if (this._marking) { + this._marking = false; + this._markShapeList.push(this._markShape); + this._iconEnable(this._iconShapeMap['markUndo']); + this._iconEnable(this._iconShapeMap['markClear']); + this.zr.addShape(this._markShape); + this.zr.refreshNextFrame(); + } else if (this._markStart) { + this._marking = true; + var x = zrEvent.getX(param.event); + var y = zrEvent.getY(param.event); + this._markShape = new LineShape({ + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: { + xStart: x, + yStart: y, + xEnd: x, + yEnd: y, + lineWidth: this.query(this.option, 'toolbox.feature.mark.lineStyle.width'), + strokeColor: this.query(this.option, 'toolbox.feature.mark.lineStyle.color'), + lineType: this.query(this.option, 'toolbox.feature.mark.lineStyle.type') + } + }); + this.zr.addHoverShape(this._markShape); + } + }, + __onMark: function (param) { + var target = param.target; + if (this._marking || this._markStart) { + this._resetMark(); + this.zr.refreshNextFrame(); + } else { + this._resetZoom(); + this.zr.modShape(target.id, { style: { strokeColor: this._enableColor } }); + this.zr.refreshNextFrame(); + this._markStart = true; + var self = this; + setTimeout(function () { + self.zr && self.zr.on(zrConfig.EVENT.CLICK, self._onclick) && self.zr.on(zrConfig.EVENT.MOUSEMOVE, self._onmousemove); + }, 10); + } + return true; + }, + __onMarkUndo: function () { + if (this._marking) { + this._marking = false; + } else { + var len = this._markShapeList.length; + if (len >= 1) { + var target = this._markShapeList[len - 1]; + this.zr.delShape(target.id); + this.zr.refreshNextFrame(); + this._markShapeList.pop(); + if (len === 1) { + this._iconDisable(this._iconShapeMap['markUndo']); + this._iconDisable(this._iconShapeMap['markClear']); + } + } + } + return true; + }, + __onMarkClear: function () { + if (this._marking) { + this._marking = false; + } + var len = this._markShapeList.length; + if (len > 0) { + while (len--) { + this.zr.delShape(this._markShapeList.pop().id); + } + this._iconDisable(this._iconShapeMap['markUndo']); + this._iconDisable(this._iconShapeMap['markClear']); + this.zr.refreshNextFrame(); + } + return true; + }, + __onDataZoom: function (param) { + var target = param.target; + if (this._zooming || this._zoomStart) { + this._resetZoom(); + this.zr.refreshNextFrame(); + this.dom.style.cursor = 'default'; + } else { + this._resetMark(); + this.zr.modShape(target.id, { style: { strokeColor: this._enableColor } }); + this.zr.refreshNextFrame(); + this._zoomStart = true; + var self = this; + setTimeout(function () { + self.zr && self.zr.on(zrConfig.EVENT.MOUSEDOWN, self._onmousedown) && self.zr.on(zrConfig.EVENT.MOUSEUP, self._onmouseup) && self.zr.on(zrConfig.EVENT.MOUSEMOVE, self._onmousemove); + }, 10); + this.dom.style.cursor = 'crosshair'; + } + return true; + }, + __onDataZoomReset: function () { + if (this._zooming) { + this._zooming = false; + } + this._zoomQueue.pop(); + if (this._zoomQueue.length > 0) { + this.component.dataZoom.absoluteZoom(this._zoomQueue[this._zoomQueue.length - 1]); + } else { + this.component.dataZoom.rectZoom(); + this._iconDisable(this._iconShapeMap['dataZoomReset']); + this.zr.refreshNextFrame(); + } + return true; + }, + _resetMark: function () { + this._marking = false; + if (this._markStart) { + this._markStart = false; + if (this._iconShapeMap['mark']) { + this.zr.modShape(this._iconShapeMap['mark'].id, { style: { strokeColor: this._iconShapeMap['mark'].highlightStyle.strokeColor } }); + } + this.zr.un(zrConfig.EVENT.CLICK, this._onclick); + this.zr.un(zrConfig.EVENT.MOUSEMOVE, this._onmousemove); + } + }, + _resetZoom: function () { + this._zooming = false; + if (this._zoomStart) { + this._zoomStart = false; + if (this._iconShapeMap['dataZoom']) { + this.zr.modShape(this._iconShapeMap['dataZoom'].id, { style: { strokeColor: this._iconShapeMap['dataZoom'].highlightStyle.strokeColor } }); + } + this.zr.un(zrConfig.EVENT.MOUSEDOWN, this._onmousedown); + this.zr.un(zrConfig.EVENT.MOUSEUP, this._onmouseup); + this.zr.un(zrConfig.EVENT.MOUSEMOVE, this._onmousemove); + } + }, + _iconDisable: function (target) { + if (target.type != 'image') { + this.zr.modShape(target.id, { + hoverable: false, + clickable: false, + style: { strokeColor: this._disableColor } + }); + } else { + this.zr.modShape(target.id, { + hoverable: false, + clickable: false, + style: { opacity: 0.3 } + }); + } + }, + _iconEnable: function (target) { + if (target.type != 'image') { + this.zr.modShape(target.id, { + hoverable: true, + clickable: true, + style: { strokeColor: target.highlightStyle.strokeColor } + }); + } else { + this.zr.modShape(target.id, { + hoverable: true, + clickable: true, + style: { opacity: 0.8 } + }); + } + }, + __onDataView: function () { + this._dataView.show(this.option); + return true; + }, + __onRestore: function () { + this._resetMark(); + this._resetZoom(); + this.messageCenter.dispatch(ecConfig.EVENT.RESTORE, null, null, this.myChart); + return true; + }, + __onSaveAsImage: function () { + var saveOption = this.option.toolbox.feature.saveAsImage; + var imgType = saveOption.type || 'png'; + if (imgType != 'png' && imgType != 'jpeg') { + imgType = 'png'; + } + var image; + if (!this.myChart.isConnected()) { + image = this.zr.toDataURL('image/' + imgType, this.option.backgroundColor && this.option.backgroundColor.replace(' ', '') === 'rgba(0,0,0,0)' ? '#fff' : this.option.backgroundColor); + } else { + image = this.myChart.getConnectedDataURL(imgType); + } + var downloadDiv = document.createElement('div'); + downloadDiv.id = '__echarts_download_wrap__'; + downloadDiv.style.cssText = 'position:fixed;' + 'z-index:99999;' + 'display:block;' + 'top:0;left:0;' + 'background-color:rgba(33,33,33,0.5);' + 'text-align:center;' + 'width:100%;' + 'height:100%;' + 'line-height:' + document.documentElement.clientHeight + 'px;'; + var downloadLink = document.createElement('a'); + downloadLink.href = image; + downloadLink.setAttribute('download', (saveOption.name ? saveOption.name : this.option.title && (this.option.title.text || this.option.title.subtext) ? this.option.title.text || this.option.title.subtext : 'ECharts') + '.' + imgType); + downloadLink.innerHTML = ''; + downloadDiv.appendChild(downloadLink); + document.body.appendChild(downloadDiv); + downloadLink = null; + downloadDiv = null; + setTimeout(function () { + var _d = document.getElementById('__echarts_download_wrap__'); + if (_d) { + _d.onclick = function () { + var d = document.getElementById('__echarts_download_wrap__'); + d.onclick = null; + d.innerHTML = ''; + document.body.removeChild(d); + d = null; + }; + _d = null; + } + }, 500); + return; + }, + __onMagicType: function (param) { + this._resetMark(); + var itemName = param.target._name; + if (!this._magicType[itemName]) { + this._magicType[itemName] = true; + if (itemName === ecConfig.CHART_TYPE_LINE) { + this._magicType[ecConfig.CHART_TYPE_BAR] = false; + } else if (itemName === ecConfig.CHART_TYPE_BAR) { + this._magicType[ecConfig.CHART_TYPE_LINE] = false; + } + if (itemName === ecConfig.CHART_TYPE_PIE) { + this._magicType[ecConfig.CHART_TYPE_FUNNEL] = false; + } else if (itemName === ecConfig.CHART_TYPE_FUNNEL) { + this._magicType[ecConfig.CHART_TYPE_PIE] = false; + } + if (itemName === ecConfig.CHART_TYPE_FORCE) { + this._magicType[ecConfig.CHART_TYPE_CHORD] = false; + } else if (itemName === ecConfig.CHART_TYPE_CHORD) { + this._magicType[ecConfig.CHART_TYPE_FORCE] = false; + } + if (itemName === _MAGICTYPE_STACK) { + this._magicType[_MAGICTYPE_TILED] = false; + } else if (itemName === _MAGICTYPE_TILED) { + this._magicType[_MAGICTYPE_STACK] = false; + } + this.messageCenter.dispatch(ecConfig.EVENT.MAGIC_TYPE_CHANGED, param.event, { magicType: this._magicType }, this.myChart); + } + return true; + }, + setMagicType: function (magicType) { + this._resetMark(); + this._magicType = magicType; + !this._isSilence && this.messageCenter.dispatch(ecConfig.EVENT.MAGIC_TYPE_CHANGED, null, { magicType: this._magicType }, this.myChart); + }, + __onCustomHandler: function (param) { + var target = param.target.style.iconType; + var featureHandler = this.option.toolbox.feature[target].onclick; + if (typeof featureHandler === 'function') { + featureHandler.call(this, this.option); + } + }, + reset: function (newOption, isRestore) { + isRestore && this.clear(); + if (this.query(newOption, 'toolbox.show') && this.query(newOption, 'toolbox.feature.magicType.show')) { + var magicType = newOption.toolbox.feature.magicType.type; + var len = magicType.length; + this._magicMap = {}; + while (len--) { + this._magicMap[magicType[len]] = true; + } + len = newOption.series.length; + var oriType; + var axis; + while (len--) { + oriType = newOption.series[len].type; + if (this._magicMap[oriType]) { + axis = newOption.xAxis instanceof Array ? newOption.xAxis[newOption.series[len].xAxisIndex || 0] : newOption.xAxis; + if (axis && (axis.type || 'category') === 'category') { + axis.__boundaryGap = axis.boundaryGap != null ? axis.boundaryGap : true; + } + axis = newOption.yAxis instanceof Array ? newOption.yAxis[newOption.series[len].yAxisIndex || 0] : newOption.yAxis; + if (axis && axis.type === 'category') { + axis.__boundaryGap = axis.boundaryGap != null ? axis.boundaryGap : true; + } + newOption.series[len].__type = oriType; + newOption.series[len].__itemStyle = zrUtil.clone(newOption.series[len].itemStyle || {}); + } + if (this._magicMap[_MAGICTYPE_STACK] || this._magicMap[_MAGICTYPE_TILED]) { + newOption.series[len].__stack = newOption.series[len].stack; + } + } + } + this._magicType = isRestore ? {} : this._magicType || {}; + for (var itemName in this._magicType) { + if (this._magicType[itemName]) { + this.option = newOption; + this.getMagicOption(); + break; + } + } + var zoomOption = newOption.dataZoom; + if (zoomOption && zoomOption.show) { + var start = zoomOption.start != null && zoomOption.start >= 0 && zoomOption.start <= 100 ? zoomOption.start : 0; + var end = zoomOption.end != null && zoomOption.end >= 0 && zoomOption.end <= 100 ? zoomOption.end : 100; + if (start > end) { + start = start + end; + end = start - end; + start = start - end; + } + this._zoomQueue = [{ + start: start, + end: end, + start2: 0, + end2: 100 + }]; + } else { + this._zoomQueue = []; + } + }, + getMagicOption: function () { + var axis; + var chartType; + if (this._magicType[ecConfig.CHART_TYPE_LINE] || this._magicType[ecConfig.CHART_TYPE_BAR]) { + var boundaryGap = this._magicType[ecConfig.CHART_TYPE_LINE] ? false : true; + for (var i = 0, l = this.option.series.length; i < l; i++) { + chartType = this.option.series[i].type; + if (chartType == ecConfig.CHART_TYPE_LINE || chartType == ecConfig.CHART_TYPE_BAR) { + axis = this.option.xAxis instanceof Array ? this.option.xAxis[this.option.series[i].xAxisIndex || 0] : this.option.xAxis; + if (axis && (axis.type || 'category') === 'category') { + axis.boundaryGap = boundaryGap ? true : axis.__boundaryGap; + } + axis = this.option.yAxis instanceof Array ? this.option.yAxis[this.option.series[i].yAxisIndex || 0] : this.option.yAxis; + if (axis && axis.type === 'category') { + axis.boundaryGap = boundaryGap ? true : axis.__boundaryGap; + } + } + } + this._defaultMagic(ecConfig.CHART_TYPE_LINE, ecConfig.CHART_TYPE_BAR); + } + this._defaultMagic(ecConfig.CHART_TYPE_CHORD, ecConfig.CHART_TYPE_FORCE); + this._defaultMagic(ecConfig.CHART_TYPE_PIE, ecConfig.CHART_TYPE_FUNNEL); + if (this._magicType[_MAGICTYPE_STACK] || this._magicType[_MAGICTYPE_TILED]) { + for (var i = 0, l = this.option.series.length; i < l; i++) { + if (this._magicType[_MAGICTYPE_STACK]) { + this.option.series[i].stack = '_ECHARTS_STACK_KENER_2014_'; + chartType = _MAGICTYPE_STACK; + } else if (this._magicType[_MAGICTYPE_TILED]) { + this.option.series[i].stack = null; + chartType = _MAGICTYPE_TILED; + } + if (this._featureOption[chartType + 'Chart']) { + zrUtil.merge(this.option.series[i], this._featureOption[chartType + 'Chart'] || {}, true); + } + } + } + return this.option; + }, + _defaultMagic: function (cType1, cType2) { + if (this._magicType[cType1] || this._magicType[cType2]) { + for (var i = 0, l = this.option.series.length; i < l; i++) { + var chartType = this.option.series[i].type; + if (chartType == cType1 || chartType == cType2) { + this.option.series[i].type = this._magicType[cType1] ? cType1 : cType2; + this.option.series[i].itemStyle = zrUtil.clone(this.option.series[i].__itemStyle); + chartType = this.option.series[i].type; + if (this._featureOption[chartType + 'Chart']) { + zrUtil.merge(this.option.series[i], this._featureOption[chartType + 'Chart'] || {}, true); + } + } + } + } + }, + silence: function (s) { + this._isSilence = s; + }, + resize: function () { + this._resetMark(); + this.clear(); + if (this.option && this.option.toolbox && this.option.toolbox.show) { + this._buildShape(); + } + if (this._dataView) { + this._dataView.resize(); + } + }, + hideDataView: function () { + if (this._dataView) { + this._dataView.hide(); + } + }, + clear: function (notMark) { + if (this.zr) { + this.zr.delShape(this.shapeList); + this.shapeList = []; + if (!notMark) { + this.zr.delShape(this._markShapeList); + this._markShapeList = []; + } + } + }, + onbeforDispose: function () { + if (this._dataView) { + this._dataView.dispose(); + this._dataView = null; + } + this._markShapeList = null; + }, + refresh: function (newOption) { + if (newOption) { + this._resetMark(); + this._resetZoom(); + newOption.toolbox = this.reformOption(newOption.toolbox); + this.option = newOption; + this.clear(true); + if (newOption.toolbox.show) { + this._buildShape(); + } + this.hideDataView(); + } + } + }; + zrUtil.inherits(Toolbox, Base); + require('../component').define('toolbox', Toolbox); + return Toolbox; +});define('echarts/component', [], function () { + var self = {}; + var _componentLibrary = {}; + self.define = function (name, clazz) { + _componentLibrary[name] = clazz; + return self; + }; + self.get = function (name) { + return _componentLibrary[name]; + }; + return self; +});define('echarts/component/title', [ + 'require', + './base', + 'zrender/shape/Text', + 'zrender/shape/Rectangle', + '../config', + 'zrender/tool/util', + 'zrender/tool/area', + 'zrender/tool/color', + '../component' +], function (require) { + var Base = require('./base'); + var TextShape = require('zrender/shape/Text'); + var RectangleShape = require('zrender/shape/Rectangle'); + var ecConfig = require('../config'); + ecConfig.title = { + zlevel: 0, + z: 6, + show: true, + text: '', + subtext: '', + x: 'left', + y: 'top', + backgroundColor: 'rgba(0,0,0,0)', + borderColor: '#ccc', + borderWidth: 0, + padding: 5, + itemGap: 5, + textStyle: { + fontSize: 18, + fontWeight: 'bolder', + color: '#333' + }, + subtextStyle: { color: '#aaa' } + }; + var zrUtil = require('zrender/tool/util'); + var zrArea = require('zrender/tool/area'); + var zrColor = require('zrender/tool/color'); + function Title(ecTheme, messageCenter, zr, option, myChart) { + Base.call(this, ecTheme, messageCenter, zr, option, myChart); + this.refresh(option); + } + Title.prototype = { + type: ecConfig.COMPONENT_TYPE_TITLE, + _buildShape: function () { + if (!this.titleOption.show) { + return; + } + this._itemGroupLocation = this._getItemGroupLocation(); + this._buildBackground(); + this._buildItem(); + for (var i = 0, l = this.shapeList.length; i < l; i++) { + this.zr.addShape(this.shapeList[i]); + } + }, + _buildItem: function () { + var text = this.titleOption.text; + var link = this.titleOption.link; + var target = this.titleOption.target; + var subtext = this.titleOption.subtext; + var sublink = this.titleOption.sublink; + var subtarget = this.titleOption.subtarget; + var font = this.getFont(this.titleOption.textStyle); + var subfont = this.getFont(this.titleOption.subtextStyle); + var x = this._itemGroupLocation.x; + var y = this._itemGroupLocation.y; + var width = this._itemGroupLocation.width; + var height = this._itemGroupLocation.height; + var textShape = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: { + y: y, + color: this.titleOption.textStyle.color, + text: text, + textFont: font, + textBaseline: 'top' + }, + highlightStyle: { + color: zrColor.lift(this.titleOption.textStyle.color, 1), + brushType: 'fill' + }, + hoverable: false + }; + if (link) { + textShape.hoverable = true; + textShape.clickable = true; + textShape.onclick = function () { + if (!target || target != 'self') { + window.open(link); + } else { + window.location = link; + } + }; + } + var subtextShape = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: { + y: y + height, + color: this.titleOption.subtextStyle.color, + text: subtext, + textFont: subfont, + textBaseline: 'bottom' + }, + highlightStyle: { + color: zrColor.lift(this.titleOption.subtextStyle.color, 1), + brushType: 'fill' + }, + hoverable: false + }; + if (sublink) { + subtextShape.hoverable = true; + subtextShape.clickable = true; + subtextShape.onclick = function () { + if (!subtarget || subtarget != 'self') { + window.open(sublink); + } else { + window.location = sublink; + } + }; + } + switch (this.titleOption.x) { + case 'center': + textShape.style.x = subtextShape.style.x = x + width / 2; + textShape.style.textAlign = subtextShape.style.textAlign = 'center'; + break; + case 'left': + textShape.style.x = subtextShape.style.x = x; + textShape.style.textAlign = subtextShape.style.textAlign = 'left'; + break; + case 'right': + textShape.style.x = subtextShape.style.x = x + width; + textShape.style.textAlign = subtextShape.style.textAlign = 'right'; + break; + default: + x = this.titleOption.x - 0; + x = isNaN(x) ? 0 : x; + textShape.style.x = subtextShape.style.x = x; + break; + } + if (this.titleOption.textAlign) { + textShape.style.textAlign = subtextShape.style.textAlign = this.titleOption.textAlign; + } + this.shapeList.push(new TextShape(textShape)); + subtext !== '' && this.shapeList.push(new TextShape(subtextShape)); + }, + _buildBackground: function () { + var padding = this.reformCssArray(this.titleOption.padding); + this.shapeList.push(new RectangleShape({ + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: false, + style: { + x: this._itemGroupLocation.x - padding[3], + y: this._itemGroupLocation.y - padding[0], + width: this._itemGroupLocation.width + padding[3] + padding[1], + height: this._itemGroupLocation.height + padding[0] + padding[2], + brushType: this.titleOption.borderWidth === 0 ? 'fill' : 'both', + color: this.titleOption.backgroundColor, + strokeColor: this.titleOption.borderColor, + lineWidth: this.titleOption.borderWidth + } + })); + }, + _getItemGroupLocation: function () { + var padding = this.reformCssArray(this.titleOption.padding); + var text = this.titleOption.text; + var subtext = this.titleOption.subtext; + var font = this.getFont(this.titleOption.textStyle); + var subfont = this.getFont(this.titleOption.subtextStyle); + var totalWidth = Math.max(zrArea.getTextWidth(text, font), zrArea.getTextWidth(subtext, subfont)); + var totalHeight = zrArea.getTextHeight(text, font) + (subtext === '' ? 0 : this.titleOption.itemGap + zrArea.getTextHeight(subtext, subfont)); + var x; + var zrWidth = this.zr.getWidth(); + switch (this.titleOption.x) { + case 'center': + x = Math.floor((zrWidth - totalWidth) / 2); + break; + case 'left': + x = padding[3] + this.titleOption.borderWidth; + break; + case 'right': + x = zrWidth - totalWidth - padding[1] - this.titleOption.borderWidth; + break; + default: + x = this.titleOption.x - 0; + x = isNaN(x) ? 0 : x; + break; + } + var y; + var zrHeight = this.zr.getHeight(); + switch (this.titleOption.y) { + case 'top': + y = padding[0] + this.titleOption.borderWidth; + break; + case 'bottom': + y = zrHeight - totalHeight - padding[2] - this.titleOption.borderWidth; + break; + case 'center': + y = Math.floor((zrHeight - totalHeight) / 2); + break; + default: + y = this.titleOption.y - 0; + y = isNaN(y) ? 0 : y; + break; + } + return { + x: x, + y: y, + width: totalWidth, + height: totalHeight + }; + }, + refresh: function (newOption) { + if (newOption) { + this.option = newOption; + this.option.title = this.reformOption(this.option.title); + this.titleOption = this.option.title; + this.titleOption.textStyle = this.getTextStyle(this.titleOption.textStyle); + this.titleOption.subtextStyle = this.getTextStyle(this.titleOption.subtextStyle); + } + this.clear(); + this._buildShape(); + } + }; + zrUtil.inherits(Title, Base); + require('../component').define('title', Title); + return Title; +});define('echarts/component/tooltip', [ + 'require', + './base', + '../util/shape/Cross', + 'zrender/shape/Line', + 'zrender/shape/Rectangle', + '../config', + '../util/ecData', + 'zrender/config', + 'zrender/tool/event', + 'zrender/tool/area', + 'zrender/tool/color', + 'zrender/tool/util', + 'zrender/shape/Base', + '../component' +], function (require) { + var Base = require('./base'); + var CrossShape = require('../util/shape/Cross'); + var LineShape = require('zrender/shape/Line'); + var RectangleShape = require('zrender/shape/Rectangle'); + var rectangleInstance = new RectangleShape({}); + var ecConfig = require('../config'); + ecConfig.tooltip = { + zlevel: 1, + z: 8, + show: true, + showContent: true, + trigger: 'item', + islandFormatter: '{a}
{b} : {c}', + showDelay: 20, + hideDelay: 100, + transitionDuration: 0.4, + enterable: false, + backgroundColor: 'rgba(0,0,0,0.7)', + borderColor: '#333', + borderRadius: 4, + borderWidth: 0, + padding: 5, + axisPointer: { + type: 'line', + lineStyle: { + color: '#48b', + width: 2, + type: 'solid' + }, + crossStyle: { + color: '#1e90ff', + width: 1, + type: 'dashed' + }, + shadowStyle: { + color: 'rgba(150,150,150,0.3)', + width: 'auto', + type: 'default' + } + }, + textStyle: { color: '#fff' } + }; + var ecData = require('../util/ecData'); + var zrConfig = require('zrender/config'); + var zrEvent = require('zrender/tool/event'); + var zrArea = require('zrender/tool/area'); + var zrColor = require('zrender/tool/color'); + var zrUtil = require('zrender/tool/util'); + var zrShapeBase = require('zrender/shape/Base'); + function Tooltip(ecTheme, messageCenter, zr, option, myChart) { + Base.call(this, ecTheme, messageCenter, zr, option, myChart); + this.dom = myChart.dom; + var self = this; + self._onmousemove = function (param) { + return self.__onmousemove(param); + }; + self._onglobalout = function (param) { + return self.__onglobalout(param); + }; + this.zr.on(zrConfig.EVENT.MOUSEMOVE, self._onmousemove); + this.zr.on(zrConfig.EVENT.GLOBALOUT, self._onglobalout); + self._hide = function (param) { + return self.__hide(param); + }; + self._tryShow = function (param) { + return self.__tryShow(param); + }; + self._refixed = function (param) { + return self.__refixed(param); + }; + self._setContent = function (ticket, res) { + return self.__setContent(ticket, res); + }; + this._tDom = this._tDom || document.createElement('div'); + this._tDom.onselectstart = function () { + return false; + }; + this._tDom.onmouseover = function () { + self._mousein = true; + }; + this._tDom.onmouseout = function () { + self._mousein = false; + }; + this._tDom.className = 'echarts-tooltip'; + this._tDom.style.position = 'absolute'; + this.hasAppend = false; + this._axisLineShape && this.zr.delShape(this._axisLineShape.id); + this._axisLineShape = new LineShape({ + zlevel: this.getZlevelBase(), + z: this.getZBase(), + invisible: true, + hoverable: false + }); + this.shapeList.push(this._axisLineShape); + this.zr.addShape(this._axisLineShape); + this._axisShadowShape && this.zr.delShape(this._axisShadowShape.id); + this._axisShadowShape = new LineShape({ + zlevel: this.getZlevelBase(), + z: 1, + invisible: true, + hoverable: false + }); + this.shapeList.push(this._axisShadowShape); + this.zr.addShape(this._axisShadowShape); + this._axisCrossShape && this.zr.delShape(this._axisCrossShape.id); + this._axisCrossShape = new CrossShape({ + zlevel: this.getZlevelBase(), + z: this.getZBase(), + invisible: true, + hoverable: false + }); + this.shapeList.push(this._axisCrossShape); + this.zr.addShape(this._axisCrossShape); + this.showing = false; + this.refresh(option); + } + Tooltip.prototype = { + type: ecConfig.COMPONENT_TYPE_TOOLTIP, + _gCssText: 'position:absolute;display:block;border-style:solid;white-space:nowrap;', + _style: function (opt) { + if (!opt) { + return ''; + } + var cssText = []; + if (opt.transitionDuration) { + var transitionText = 'left ' + opt.transitionDuration + 's,' + 'top ' + opt.transitionDuration + 's'; + cssText.push('transition:' + transitionText); + cssText.push('-moz-transition:' + transitionText); + cssText.push('-webkit-transition:' + transitionText); + cssText.push('-o-transition:' + transitionText); + } + if (opt.backgroundColor) { + cssText.push('background-Color:' + zrColor.toHex(opt.backgroundColor)); + cssText.push('filter:alpha(opacity=70)'); + cssText.push('background-Color:' + opt.backgroundColor); + } + if (opt.borderWidth != null) { + cssText.push('border-width:' + opt.borderWidth + 'px'); + } + if (opt.borderColor != null) { + cssText.push('border-color:' + opt.borderColor); + } + if (opt.borderRadius != null) { + cssText.push('border-radius:' + opt.borderRadius + 'px'); + cssText.push('-moz-border-radius:' + opt.borderRadius + 'px'); + cssText.push('-webkit-border-radius:' + opt.borderRadius + 'px'); + cssText.push('-o-border-radius:' + opt.borderRadius + 'px'); + } + var textStyle = opt.textStyle; + if (textStyle) { + textStyle.color && cssText.push('color:' + textStyle.color); + textStyle.decoration && cssText.push('text-decoration:' + textStyle.decoration); + textStyle.align && cssText.push('text-align:' + textStyle.align); + textStyle.fontFamily && cssText.push('font-family:' + textStyle.fontFamily); + textStyle.fontSize && cssText.push('font-size:' + textStyle.fontSize + 'px'); + textStyle.fontSize && cssText.push('line-height:' + Math.round(textStyle.fontSize * 3 / 2) + 'px'); + textStyle.fontStyle && cssText.push('font-style:' + textStyle.fontStyle); + textStyle.fontWeight && cssText.push('font-weight:' + textStyle.fontWeight); + } + var padding = opt.padding; + if (padding != null) { + padding = this.reformCssArray(padding); + cssText.push('padding:' + padding[0] + 'px ' + padding[1] + 'px ' + padding[2] + 'px ' + padding[3] + 'px'); + } + cssText = cssText.join(';') + ';'; + return cssText; + }, + __hide: function () { + this._lastDataIndex = -1; + this._lastSeriesIndex = -1; + this._lastItemTriggerId = -1; + if (this._tDom) { + this._tDom.style.display = 'none'; + } + var needRefresh = false; + if (!this._axisLineShape.invisible) { + this._axisLineShape.invisible = true; + this.zr.modShape(this._axisLineShape.id); + needRefresh = true; + } + if (!this._axisShadowShape.invisible) { + this._axisShadowShape.invisible = true; + this.zr.modShape(this._axisShadowShape.id); + needRefresh = true; + } + if (!this._axisCrossShape.invisible) { + this._axisCrossShape.invisible = true; + this.zr.modShape(this._axisCrossShape.id); + needRefresh = true; + } + if (this._lastTipShape && this._lastTipShape.tipShape.length > 0) { + this.zr.delShape(this._lastTipShape.tipShape); + this._lastTipShape = false; + this.shapeList.length = 2; + } + needRefresh && this.zr.refreshNextFrame(); + this.showing = false; + }, + _show: function (position, x, y, specialCssText) { + var domHeight = this._tDom.offsetHeight; + var domWidth = this._tDom.offsetWidth; + if (position) { + if (typeof position === 'function') { + position = position([ + x, + y + ]); + } + if (position instanceof Array) { + x = position[0]; + y = position[1]; + } + } + if (x + domWidth > this._zrWidth) { + x -= domWidth + 40; + } + if (y + domHeight > this._zrHeight) { + y -= domHeight - 20; + } + if (y < 20) { + y = 0; + } + this._tDom.style.cssText = this._gCssText + this._defaultCssText + (specialCssText ? specialCssText : '') + 'left:' + x + 'px;top:' + y + 'px;'; + if (domHeight < 10 || domWidth < 10) { + setTimeout(this._refixed, 20); + } + this.showing = true; + }, + __refixed: function () { + if (this._tDom) { + var cssText = ''; + var domHeight = this._tDom.offsetHeight; + var domWidth = this._tDom.offsetWidth; + if (this._tDom.offsetLeft + domWidth > this._zrWidth) { + cssText += 'left:' + (this._zrWidth - domWidth - 20) + 'px;'; + } + if (this._tDom.offsetTop + domHeight > this._zrHeight) { + cssText += 'top:' + (this._zrHeight - domHeight - 10) + 'px;'; + } + if (cssText !== '') { + this._tDom.style.cssText += cssText; + } + } + }, + __tryShow: function () { + var needShow; + var trigger; + if (!this._curTarget) { + this._findPolarTrigger() || this._findAxisTrigger(); + } else { + if (this._curTarget._type === 'island' && this.option.tooltip.show) { + this._showItemTrigger(); + return; + } + var serie = ecData.get(this._curTarget, 'series'); + var data = ecData.get(this._curTarget, 'data'); + needShow = this.deepQuery([ + data, + serie, + this.option + ], 'tooltip.show'); + if (serie == null || data == null || !needShow) { + clearTimeout(this._hidingTicket); + clearTimeout(this._showingTicket); + this._hidingTicket = setTimeout(this._hide, this._hideDelay); + } else { + trigger = this.deepQuery([ + data, + serie, + this.option + ], 'tooltip.trigger'); + trigger === 'axis' ? this._showAxisTrigger(serie.xAxisIndex, serie.yAxisIndex, ecData.get(this._curTarget, 'dataIndex')) : this._showItemTrigger(); + } + } + }, + _findAxisTrigger: function () { + if (!this.component.xAxis || !this.component.yAxis) { + this._hidingTicket = setTimeout(this._hide, this._hideDelay); + return; + } + var series = this.option.series; + var xAxisIndex; + var yAxisIndex; + for (var i = 0, l = series.length; i < l; i++) { + if (this.deepQuery([ + series[i], + this.option + ], 'tooltip.trigger') === 'axis') { + xAxisIndex = series[i].xAxisIndex || 0; + yAxisIndex = series[i].yAxisIndex || 0; + if (this.component.xAxis.getAxis(xAxisIndex) && this.component.xAxis.getAxis(xAxisIndex).type === ecConfig.COMPONENT_TYPE_AXIS_CATEGORY) { + this._showAxisTrigger(xAxisIndex, yAxisIndex, this._getNearestDataIndex('x', this.component.xAxis.getAxis(xAxisIndex))); + return; + } else if (this.component.yAxis.getAxis(yAxisIndex) && this.component.yAxis.getAxis(yAxisIndex).type === ecConfig.COMPONENT_TYPE_AXIS_CATEGORY) { + this._showAxisTrigger(xAxisIndex, yAxisIndex, this._getNearestDataIndex('y', this.component.yAxis.getAxis(yAxisIndex))); + return; + } else { + this._showAxisTrigger(xAxisIndex, yAxisIndex, -1); + return; + } + } + } + if (this.option.tooltip.axisPointer.type === 'cross') { + this._showAxisTrigger(-1, -1, -1); + } + }, + _findPolarTrigger: function () { + if (!this.component.polar) { + return false; + } + var x = zrEvent.getX(this._event); + var y = zrEvent.getY(this._event); + var polarIndex = this.component.polar.getNearestIndex([ + x, + y + ]); + var valueIndex; + if (polarIndex) { + valueIndex = polarIndex.valueIndex; + polarIndex = polarIndex.polarIndex; + } else { + polarIndex = -1; + } + if (polarIndex != -1) { + return this._showPolarTrigger(polarIndex, valueIndex); + } + return false; + }, + _getNearestDataIndex: function (direction, categoryAxis) { + var dataIndex = -1; + var x = zrEvent.getX(this._event); + var y = zrEvent.getY(this._event); + if (direction === 'x') { + var left; + var right; + var xEnd = this.component.grid.getXend(); + var curCoord = categoryAxis.getCoordByIndex(dataIndex); + while (curCoord < xEnd) { + right = curCoord; + if (curCoord <= x) { + left = curCoord; + } else { + break; + } + curCoord = categoryAxis.getCoordByIndex(++dataIndex); + } + if (dataIndex <= 0) { + dataIndex = 0; + } else if (x - left <= right - x) { + dataIndex -= 1; + } else { + if (categoryAxis.getNameByIndex(dataIndex) == null) { + dataIndex -= 1; + } + } + return dataIndex; + } else { + var top; + var bottom; + var yStart = this.component.grid.getY(); + var curCoord = categoryAxis.getCoordByIndex(dataIndex); + while (curCoord > yStart) { + top = curCoord; + if (curCoord >= y) { + bottom = curCoord; + } else { + break; + } + curCoord = categoryAxis.getCoordByIndex(++dataIndex); + } + if (dataIndex <= 0) { + dataIndex = 0; + } else if (y - top >= bottom - y) { + dataIndex -= 1; + } else { + if (categoryAxis.getNameByIndex(dataIndex) == null) { + dataIndex -= 1; + } + } + return dataIndex; + } + return -1; + }, + _showAxisTrigger: function (xAxisIndex, yAxisIndex, dataIndex) { + !this._event.connectTrigger && this.messageCenter.dispatch(ecConfig.EVENT.TOOLTIP_IN_GRID, this._event, null, this.myChart); + if (this.component.xAxis == null || this.component.yAxis == null || xAxisIndex == null || yAxisIndex == null) { + clearTimeout(this._hidingTicket); + clearTimeout(this._showingTicket); + this._hidingTicket = setTimeout(this._hide, this._hideDelay); + return; + } + var series = this.option.series; + var seriesArray = []; + var seriesIndex = []; + var categoryAxis; + var formatter; + var position; + var showContent; + var specialCssText = ''; + if (this.option.tooltip.trigger === 'axis') { + if (!this.option.tooltip.show) { + return; + } + formatter = this.option.tooltip.formatter; + position = this.option.tooltip.position; + } + var axisLayout = xAxisIndex != -1 && this.component.xAxis.getAxis(xAxisIndex).type === ecConfig.COMPONENT_TYPE_AXIS_CATEGORY ? 'xAxis' : yAxisIndex != -1 && this.component.yAxis.getAxis(yAxisIndex).type === ecConfig.COMPONENT_TYPE_AXIS_CATEGORY ? 'yAxis' : false; + var x; + var y; + if (axisLayout) { + var axisIndex = axisLayout == 'xAxis' ? xAxisIndex : yAxisIndex; + categoryAxis = this.component[axisLayout].getAxis(axisIndex); + for (var i = 0, l = series.length; i < l; i++) { + if (!this._isSelected(series[i].name)) { + continue; + } + if (series[i][axisLayout + 'Index'] === axisIndex && this.deepQuery([ + series[i], + this.option + ], 'tooltip.trigger') === 'axis') { + showContent = this.query(series[i], 'tooltip.showContent') || showContent; + formatter = this.query(series[i], 'tooltip.formatter') || formatter; + position = this.query(series[i], 'tooltip.position') || position; + specialCssText += this._style(this.query(series[i], 'tooltip')); + if (series[i].stack != null && axisLayout == 'xAxis') { + seriesArray.unshift(series[i]); + seriesIndex.unshift(i); + } else { + seriesArray.push(series[i]); + seriesIndex.push(i); + } + } + } + this.messageCenter.dispatch(ecConfig.EVENT.TOOLTIP_HOVER, this._event, { + seriesIndex: seriesIndex, + dataIndex: dataIndex + }, this.myChart); + var rect; + if (axisLayout == 'xAxis') { + x = this.subPixelOptimize(categoryAxis.getCoordByIndex(dataIndex), this._axisLineWidth); + y = zrEvent.getY(this._event); + rect = [ + x, + this.component.grid.getY(), + x, + this.component.grid.getYend() + ]; + } else { + x = zrEvent.getX(this._event); + y = this.subPixelOptimize(categoryAxis.getCoordByIndex(dataIndex), this._axisLineWidth); + rect = [ + this.component.grid.getX(), + y, + this.component.grid.getXend(), + y + ]; + } + this._styleAxisPointer(seriesArray, rect[0], rect[1], rect[2], rect[3], categoryAxis.getGap(), x, y); + } else { + x = zrEvent.getX(this._event); + y = zrEvent.getY(this._event); + this._styleAxisPointer(series, this.component.grid.getX(), y, this.component.grid.getXend(), y, 0, x, y); + if (dataIndex >= 0) { + this._showItemTrigger(true); + } else { + clearTimeout(this._hidingTicket); + clearTimeout(this._showingTicket); + this._tDom.style.display = 'none'; + } + } + if (seriesArray.length > 0) { + this._lastItemTriggerId = -1; + if (this._lastDataIndex != dataIndex || this._lastSeriesIndex != seriesIndex[0]) { + this._lastDataIndex = dataIndex; + this._lastSeriesIndex = seriesIndex[0]; + var data; + var value; + if (typeof formatter === 'function') { + var params = []; + for (var i = 0, l = seriesArray.length; i < l; i++) { + data = seriesArray[i].data[dataIndex]; + value = this.getDataFromOption(data, '-'); + params.push({ + seriesIndex: seriesIndex[i], + seriesName: seriesArray[i].name || '', + series: seriesArray[i], + dataIndex: dataIndex, + data: data, + name: categoryAxis.getNameByIndex(dataIndex), + value: value, + 0: seriesArray[i].name || '', + 1: categoryAxis.getNameByIndex(dataIndex), + 2: value, + 3: data + }); + } + this._curTicket = 'axis:' + dataIndex; + this._tDom.innerHTML = formatter.call(this.myChart, params, this._curTicket, this._setContent); + } else if (typeof formatter === 'string') { + this._curTicket = NaN; + formatter = formatter.replace('{a}', '{a0}').replace('{b}', '{b0}').replace('{c}', '{c0}'); + for (var i = 0, l = seriesArray.length; i < l; i++) { + formatter = formatter.replace('{a' + i + '}', this._encodeHTML(seriesArray[i].name || '')); + formatter = formatter.replace('{b' + i + '}', this._encodeHTML(categoryAxis.getNameByIndex(dataIndex))); + data = seriesArray[i].data[dataIndex]; + data = this.getDataFromOption(data, '-'); + formatter = formatter.replace('{c' + i + '}', data instanceof Array ? data : this.numAddCommas(data)); + } + this._tDom.innerHTML = formatter; + } else { + this._curTicket = NaN; + formatter = this._encodeHTML(categoryAxis.getNameByIndex(dataIndex)); + for (var i = 0, l = seriesArray.length; i < l; i++) { + formatter += '
' + this._encodeHTML(seriesArray[i].name || '') + ' : '; + data = seriesArray[i].data[dataIndex]; + data = this.getDataFromOption(data, '-'); + formatter += data instanceof Array ? data : this.numAddCommas(data); + } + this._tDom.innerHTML = formatter; + } + } + if (showContent === false || !this.option.tooltip.showContent) { + return; + } + if (!this.hasAppend) { + this._tDom.style.left = this._zrWidth / 2 + 'px'; + this._tDom.style.top = this._zrHeight / 2 + 'px'; + this.dom.firstChild.appendChild(this._tDom); + this.hasAppend = true; + } + this._show(position, x + 10, y + 10, specialCssText); + } + }, + _showPolarTrigger: function (polarIndex, dataIndex) { + if (this.component.polar == null || polarIndex == null || dataIndex == null || dataIndex < 0) { + return false; + } + var series = this.option.series; + var seriesArray = []; + var seriesIndex = []; + var formatter; + var position; + var showContent; + var specialCssText = ''; + if (this.option.tooltip.trigger === 'axis') { + if (!this.option.tooltip.show) { + return false; + } + formatter = this.option.tooltip.formatter; + position = this.option.tooltip.position; + } + var indicatorName = this.option.polar[polarIndex].indicator[dataIndex].text; + for (var i = 0, l = series.length; i < l; i++) { + if (!this._isSelected(series[i].name)) { + continue; + } + if (series[i].polarIndex === polarIndex && this.deepQuery([ + series[i], + this.option + ], 'tooltip.trigger') === 'axis') { + showContent = this.query(series[i], 'tooltip.showContent') || showContent; + formatter = this.query(series[i], 'tooltip.formatter') || formatter; + position = this.query(series[i], 'tooltip.position') || position; + specialCssText += this._style(this.query(series[i], 'tooltip')); + seriesArray.push(series[i]); + seriesIndex.push(i); + } + } + if (seriesArray.length > 0) { + var polarData; + var data; + var value; + var params = []; + for (var i = 0, l = seriesArray.length; i < l; i++) { + polarData = seriesArray[i].data; + for (var j = 0, k = polarData.length; j < k; j++) { + data = polarData[j]; + if (!this._isSelected(data.name)) { + continue; + } + data = data != null ? data : { + name: '', + value: { dataIndex: '-' } + }; + value = this.getDataFromOption(data.value[dataIndex]); + params.push({ + seriesIndex: seriesIndex[i], + seriesName: seriesArray[i].name || '', + series: seriesArray[i], + dataIndex: dataIndex, + data: data, + name: data.name, + indicator: indicatorName, + value: value, + 0: seriesArray[i].name || '', + 1: data.name, + 2: value, + 3: indicatorName + }); + } + } + if (params.length <= 0) { + return; + } + this._lastItemTriggerId = -1; + if (this._lastDataIndex != dataIndex || this._lastSeriesIndex != seriesIndex[0]) { + this._lastDataIndex = dataIndex; + this._lastSeriesIndex = seriesIndex[0]; + if (typeof formatter === 'function') { + this._curTicket = 'axis:' + dataIndex; + this._tDom.innerHTML = formatter.call(this.myChart, params, this._curTicket, this._setContent); + } else if (typeof formatter === 'string') { + formatter = formatter.replace('{a}', '{a0}').replace('{b}', '{b0}').replace('{c}', '{c0}').replace('{d}', '{d0}'); + for (var i = 0, l = params.length; i < l; i++) { + formatter = formatter.replace('{a' + i + '}', this._encodeHTML(params[i].seriesName)); + formatter = formatter.replace('{b' + i + '}', this._encodeHTML(params[i].name)); + formatter = formatter.replace('{c' + i + '}', this.numAddCommas(params[i].value)); + formatter = formatter.replace('{d' + i + '}', this._encodeHTML(params[i].indicator)); + } + this._tDom.innerHTML = formatter; + } else { + formatter = this._encodeHTML(params[0].name) + '
' + this._encodeHTML(params[0].indicator) + ' : ' + this.numAddCommas(params[0].value); + for (var i = 1, l = params.length; i < l; i++) { + formatter += '
' + this._encodeHTML(params[i].name) + '
'; + formatter += this._encodeHTML(params[i].indicator) + ' : ' + this.numAddCommas(params[i].value); + } + this._tDom.innerHTML = formatter; + } + } + if (showContent === false || !this.option.tooltip.showContent) { + return; + } + if (!this.hasAppend) { + this._tDom.style.left = this._zrWidth / 2 + 'px'; + this._tDom.style.top = this._zrHeight / 2 + 'px'; + this.dom.firstChild.appendChild(this._tDom); + this.hasAppend = true; + } + this._show(position, zrEvent.getX(this._event), zrEvent.getY(this._event), specialCssText); + return true; + } + }, + _showItemTrigger: function (axisTrigger) { + if (!this._curTarget) { + return; + } + var serie = ecData.get(this._curTarget, 'series'); + var seriesIndex = ecData.get(this._curTarget, 'seriesIndex'); + var data = ecData.get(this._curTarget, 'data'); + var dataIndex = ecData.get(this._curTarget, 'dataIndex'); + var name = ecData.get(this._curTarget, 'name'); + var value = ecData.get(this._curTarget, 'value'); + var special = ecData.get(this._curTarget, 'special'); + var special2 = ecData.get(this._curTarget, 'special2'); + var queryTarget = [ + data, + serie, + this.option + ]; + var formatter; + var position; + var showContent; + var specialCssText = ''; + if (this._curTarget._type != 'island') { + var trigger = axisTrigger ? 'axis' : 'item'; + if (this.option.tooltip.trigger === trigger) { + formatter = this.option.tooltip.formatter; + position = this.option.tooltip.position; + } + if (this.query(serie, 'tooltip.trigger') === trigger) { + showContent = this.query(serie, 'tooltip.showContent') || showContent; + formatter = this.query(serie, 'tooltip.formatter') || formatter; + position = this.query(serie, 'tooltip.position') || position; + specialCssText += this._style(this.query(serie, 'tooltip')); + } + showContent = this.query(data, 'tooltip.showContent') || showContent; + formatter = this.query(data, 'tooltip.formatter') || formatter; + position = this.query(data, 'tooltip.position') || position; + specialCssText += this._style(this.query(data, 'tooltip')); + } else { + this._lastItemTriggerId = NaN; + showContent = this.deepQuery(queryTarget, 'tooltip.showContent'); + formatter = this.deepQuery(queryTarget, 'tooltip.islandFormatter'); + position = this.deepQuery(queryTarget, 'tooltip.islandPosition'); + } + this._lastDataIndex = -1; + this._lastSeriesIndex = -1; + if (this._lastItemTriggerId !== this._curTarget.id) { + this._lastItemTriggerId = this._curTarget.id; + if (typeof formatter === 'function') { + this._curTicket = (serie.name || '') + ':' + dataIndex; + this._tDom.innerHTML = formatter.call(this.myChart, { + seriesIndex: seriesIndex, + seriesName: serie.name || '', + series: serie, + dataIndex: dataIndex, + data: data, + name: name, + value: value, + percent: special, + indicator: special, + value2: special2, + indicator2: special2, + 0: serie.name || '', + 1: name, + 2: value, + 3: special, + 4: special2, + 5: data, + 6: seriesIndex, + 7: dataIndex + }, this._curTicket, this._setContent); + } else if (typeof formatter === 'string') { + this._curTicket = NaN; + formatter = formatter.replace('{a}', '{a0}').replace('{b}', '{b0}').replace('{c}', '{c0}'); + formatter = formatter.replace('{a0}', this._encodeHTML(serie.name || '')).replace('{b0}', this._encodeHTML(name)).replace('{c0}', value instanceof Array ? value : this.numAddCommas(value)); + formatter = formatter.replace('{d}', '{d0}').replace('{d0}', special || ''); + formatter = formatter.replace('{e}', '{e0}').replace('{e0}', ecData.get(this._curTarget, 'special2') || ''); + this._tDom.innerHTML = formatter; + } else { + this._curTicket = NaN; + if (serie.type === ecConfig.CHART_TYPE_RADAR && special) { + this._tDom.innerHTML = this._itemFormatter.radar.call(this, serie, name, value, special); + } else if (serie.type === ecConfig.CHART_TYPE_EVENTRIVER) { + this._tDom.innerHTML = this._itemFormatter.eventRiver.call(this, serie, name, value, data); + } else { + this._tDom.innerHTML = '' + (serie.name != null ? this._encodeHTML(serie.name) + '
' : '') + (name === '' ? '' : this._encodeHTML(name) + ' : ') + (value instanceof Array ? value : this.numAddCommas(value)); + } + } + } + var x = zrEvent.getX(this._event); + var y = zrEvent.getY(this._event); + if (this.deepQuery(queryTarget, 'tooltip.axisPointer.show') && this.component.grid) { + this._styleAxisPointer([serie], this.component.grid.getX(), y, this.component.grid.getXend(), y, 0, x, y); + } else { + this._hide(); + } + if (showContent === false || !this.option.tooltip.showContent) { + return; + } + if (!this.hasAppend) { + this._tDom.style.left = this._zrWidth / 2 + 'px'; + this._tDom.style.top = this._zrHeight / 2 + 'px'; + this.dom.firstChild.appendChild(this._tDom); + this.hasAppend = true; + } + this._show(position, x + 20, y - 20, specialCssText); + }, + _itemFormatter: { + radar: function (serie, name, value, indicator) { + var html = ''; + html += this._encodeHTML(name === '' ? serie.name || '' : name); + html += html === '' ? '' : '
'; + for (var i = 0; i < indicator.length; i++) { + html += this._encodeHTML(indicator[i].text) + ' : ' + this.numAddCommas(value[i]) + '
'; + } + return html; + }, + chord: function (serie, name, value, special, special2) { + if (special2 == null) { + return this._encodeHTML(name) + ' (' + this.numAddCommas(value) + ')'; + } else { + var name1 = this._encodeHTML(name); + var name2 = this._encodeHTML(special); + return '' + (serie.name != null ? this._encodeHTML(serie.name) + '
' : '') + name1 + ' -> ' + name2 + ' (' + this.numAddCommas(value) + ')' + '
' + name2 + ' -> ' + name1 + ' (' + this.numAddCommas(special2) + ')'; + } + }, + eventRiver: function (serie, name, value, data) { + var html = ''; + html += this._encodeHTML(serie.name === '' ? '' : serie.name + ' : '); + html += this._encodeHTML(name); + html += html === '' ? '' : '
'; + data = data.evolution; + for (var i = 0, l = data.length; i < l; i++) { + html += '
'; + if (!data[i].detail) { + continue; + } + if (data[i].detail.img) { + html += ''; + } + html += '
' + data[i].time + '
'; + html += ''; + html += data[i].detail.text + '
'; + html += '
'; + } + return html; + } + }, + _styleAxisPointer: function (seriesArray, xStart, yStart, xEnd, yEnd, gap, x, y) { + if (seriesArray.length > 0) { + var queryTarget; + var curType; + var axisPointer = this.option.tooltip.axisPointer; + var pointType = axisPointer.type; + var style = { + line: {}, + cross: {}, + shadow: {} + }; + for (var pType in style) { + style[pType].color = axisPointer[pType + 'Style'].color; + style[pType].width = axisPointer[pType + 'Style'].width; + style[pType].type = axisPointer[pType + 'Style'].type; + } + for (var i = 0, l = seriesArray.length; i < l; i++) { + queryTarget = seriesArray[i]; + curType = this.query(queryTarget, 'tooltip.axisPointer.type'); + pointType = curType || pointType; + if (curType) { + style[curType].color = this.query(queryTarget, 'tooltip.axisPointer.' + curType + 'Style.color') || style[curType].color; + style[curType].width = this.query(queryTarget, 'tooltip.axisPointer.' + curType + 'Style.width') || style[curType].width; + style[curType].type = this.query(queryTarget, 'tooltip.axisPointer.' + curType + 'Style.type') || style[curType].type; + } + } + if (pointType === 'line') { + var lineWidth = style.line.width; + var isVertical = xStart == xEnd; + this._axisLineShape.style = { + xStart: isVertical ? this.subPixelOptimize(xStart, lineWidth) : xStart, + yStart: isVertical ? yStart : this.subPixelOptimize(yStart, lineWidth), + xEnd: isVertical ? this.subPixelOptimize(xEnd, lineWidth) : xEnd, + yEnd: isVertical ? yEnd : this.subPixelOptimize(yEnd, lineWidth), + strokeColor: style.line.color, + lineWidth: lineWidth, + lineType: style.line.type + }; + this._axisLineShape.invisible = false; + this.zr.modShape(this._axisLineShape.id); + } else if (pointType === 'cross') { + var crossWidth = style.cross.width; + this._axisCrossShape.style = { + brushType: 'stroke', + rect: this.component.grid.getArea(), + x: this.subPixelOptimize(x, crossWidth), + y: this.subPixelOptimize(y, crossWidth), + text: ('( ' + this.component.xAxis.getAxis(0).getValueFromCoord(x) + ' , ' + this.component.yAxis.getAxis(0).getValueFromCoord(y) + ' )').replace(' , ', ' ').replace(' , ', ' '), + textPosition: 'specific', + strokeColor: style.cross.color, + lineWidth: crossWidth, + lineType: style.cross.type + }; + if (this.component.grid.getXend() - x > 100) { + this._axisCrossShape.style.textAlign = 'left'; + this._axisCrossShape.style.textX = x + 10; + } else { + this._axisCrossShape.style.textAlign = 'right'; + this._axisCrossShape.style.textX = x - 10; + } + if (y - this.component.grid.getY() > 50) { + this._axisCrossShape.style.textBaseline = 'bottom'; + this._axisCrossShape.style.textY = y - 10; + } else { + this._axisCrossShape.style.textBaseline = 'top'; + this._axisCrossShape.style.textY = y + 10; + } + this._axisCrossShape.invisible = false; + this.zr.modShape(this._axisCrossShape.id); + } else if (pointType === 'shadow') { + if (style.shadow.width == null || style.shadow.width === 'auto' || isNaN(style.shadow.width)) { + style.shadow.width = gap; + } + if (xStart === xEnd) { + if (Math.abs(this.component.grid.getX() - xStart) < 2) { + style.shadow.width /= 2; + xStart = xEnd = xEnd + style.shadow.width / 2; + } else if (Math.abs(this.component.grid.getXend() - xStart) < 2) { + style.shadow.width /= 2; + xStart = xEnd = xEnd - style.shadow.width / 2; + } + } else if (yStart === yEnd) { + if (Math.abs(this.component.grid.getY() - yStart) < 2) { + style.shadow.width /= 2; + yStart = yEnd = yEnd + style.shadow.width / 2; + } else if (Math.abs(this.component.grid.getYend() - yStart) < 2) { + style.shadow.width /= 2; + yStart = yEnd = yEnd - style.shadow.width / 2; + } + } + this._axisShadowShape.style = { + xStart: xStart, + yStart: yStart, + xEnd: xEnd, + yEnd: yEnd, + strokeColor: style.shadow.color, + lineWidth: style.shadow.width + }; + this._axisShadowShape.invisible = false; + this.zr.modShape(this._axisShadowShape.id); + } + this.zr.refreshNextFrame(); + } + }, + __onmousemove: function (param) { + clearTimeout(this._hidingTicket); + clearTimeout(this._showingTicket); + if (this._mousein && this._enterable) { + return; + } + var target = param.target; + var mx = zrEvent.getX(param.event); + var my = zrEvent.getY(param.event); + if (!target) { + this._curTarget = false; + this._event = param.event; + this._event.zrenderX = mx; + this._event.zrenderY = my; + if (this._needAxisTrigger && this.component.grid && zrArea.isInside(rectangleInstance, this.component.grid.getArea(), mx, my)) { + this._showingTicket = setTimeout(this._tryShow, this._showDelay); + } else if (this._needAxisTrigger && this.component.polar && this.component.polar.isInside([ + mx, + my + ]) != -1) { + this._showingTicket = setTimeout(this._tryShow, this._showDelay); + } else { + !this._event.connectTrigger && this.messageCenter.dispatch(ecConfig.EVENT.TOOLTIP_OUT_GRID, this._event, null, this.myChart); + this._hidingTicket = setTimeout(this._hide, this._hideDelay); + } + } else { + this._curTarget = target; + this._event = param.event; + this._event.zrenderX = mx; + this._event.zrenderY = my; + var polarIndex; + if (this._needAxisTrigger && this.component.polar && (polarIndex = this.component.polar.isInside([ + mx, + my + ])) != -1) { + var series = this.option.series; + for (var i = 0, l = series.length; i < l; i++) { + if (series[i].polarIndex === polarIndex && this.deepQuery([ + series[i], + this.option + ], 'tooltip.trigger') === 'axis') { + this._curTarget = null; + break; + } + } + } + this._showingTicket = setTimeout(this._tryShow, this._showDelay); + } + }, + __onglobalout: function () { + clearTimeout(this._hidingTicket); + clearTimeout(this._showingTicket); + this._hidingTicket = setTimeout(this._hide, this._hideDelay); + }, + __setContent: function (ticket, content) { + if (!this._tDom) { + return; + } + if (ticket === this._curTicket) { + this._tDom.innerHTML = content; + } + setTimeout(this._refixed, 20); + }, + ontooltipHover: function (param, tipShape) { + if (!this._lastTipShape || this._lastTipShape && this._lastTipShape.dataIndex != param.dataIndex) { + if (this._lastTipShape && this._lastTipShape.tipShape.length > 0) { + this.zr.delShape(this._lastTipShape.tipShape); + this.shapeList.length = 2; + } + for (var i = 0, l = tipShape.length; i < l; i++) { + tipShape[i].zlevel = this.getZlevelBase(); + tipShape[i].z = this.getZBase(); + tipShape[i].style = zrShapeBase.prototype.getHighlightStyle(tipShape[i].style, tipShape[i].highlightStyle); + tipShape[i].draggable = false; + tipShape[i].hoverable = false; + tipShape[i].clickable = false; + tipShape[i].ondragend = null; + tipShape[i].ondragover = null; + tipShape[i].ondrop = null; + this.shapeList.push(tipShape[i]); + this.zr.addShape(tipShape[i]); + } + this._lastTipShape = { + dataIndex: param.dataIndex, + tipShape: tipShape + }; + } + }, + ondragend: function () { + this._hide(); + }, + onlegendSelected: function (param) { + this._selectedMap = param.selected; + }, + _setSelectedMap: function () { + if (this.component.legend) { + this._selectedMap = zrUtil.clone(this.component.legend.getSelectedMap()); + } else { + this._selectedMap = {}; + } + }, + _isSelected: function (itemName) { + if (this._selectedMap[itemName] != null) { + return this._selectedMap[itemName]; + } else { + return true; + } + }, + showTip: function (params) { + if (!params) { + return; + } + var seriesIndex; + var series = this.option.series; + if (params.seriesIndex != null) { + seriesIndex = params.seriesIndex; + } else { + var seriesName = params.seriesName; + for (var i = 0, l = series.length; i < l; i++) { + if (series[i].name === seriesName) { + seriesIndex = i; + break; + } + } + } + var serie = series[seriesIndex]; + if (serie == null) { + return; + } + var chart = this.myChart.chart[serie.type]; + var isAxisTrigger = this.deepQuery([ + serie, + this.option + ], 'tooltip.trigger') === 'axis'; + if (!chart) { + return; + } + if (isAxisTrigger) { + var dataIndex = params.dataIndex; + switch (chart.type) { + case ecConfig.CHART_TYPE_LINE: + case ecConfig.CHART_TYPE_BAR: + case ecConfig.CHART_TYPE_K: + case ecConfig.CHART_TYPE_RADAR: + if (this.component.polar == null || serie.data[0].value.length <= dataIndex) { + return; + } + var polarIndex = serie.polarIndex || 0; + var vector = this.component.polar.getVector(polarIndex, dataIndex, 'max'); + this._event = { + zrenderX: vector[0], + zrenderY: vector[1] + }; + this._showPolarTrigger(polarIndex, dataIndex); + break; + } + } else { + var shapeList = chart.shapeList; + var x; + var y; + switch (chart.type) { + case ecConfig.CHART_TYPE_LINE: + case ecConfig.CHART_TYPE_BAR: + case ecConfig.CHART_TYPE_K: + case ecConfig.CHART_TYPE_TREEMAP: + case ecConfig.CHART_TYPE_SCATTER: + var dataIndex = params.dataIndex; + for (var i = 0, l = shapeList.length; i < l; i++) { + if (shapeList[i]._mark == null && ecData.get(shapeList[i], 'seriesIndex') == seriesIndex && ecData.get(shapeList[i], 'dataIndex') == dataIndex) { + this._curTarget = shapeList[i]; + x = shapeList[i].style.x; + y = chart.type != ecConfig.CHART_TYPE_K ? shapeList[i].style.y : shapeList[i].style.y[0]; + break; + } + } + break; + case ecConfig.CHART_TYPE_RADAR: + var dataIndex = params.dataIndex; + for (var i = 0, l = shapeList.length; i < l; i++) { + if (shapeList[i].type === 'polygon' && ecData.get(shapeList[i], 'seriesIndex') == seriesIndex && ecData.get(shapeList[i], 'dataIndex') == dataIndex) { + this._curTarget = shapeList[i]; + var vector = this.component.polar.getCenter(serie.polarIndex || 0); + x = vector[0]; + y = vector[1]; + break; + } + } + break; + case ecConfig.CHART_TYPE_PIE: + var name = params.name; + for (var i = 0, l = shapeList.length; i < l; i++) { + if (shapeList[i].type === 'sector' && ecData.get(shapeList[i], 'seriesIndex') == seriesIndex && ecData.get(shapeList[i], 'name') == name) { + this._curTarget = shapeList[i]; + var style = this._curTarget.style; + var midAngle = (style.startAngle + style.endAngle) / 2 * Math.PI / 180; + x = this._curTarget.style.x + Math.cos(midAngle) * style.r / 1.5; + y = this._curTarget.style.y - Math.sin(midAngle) * style.r / 1.5; + break; + } + } + break; + case ecConfig.CHART_TYPE_MAP: + var name = params.name; + var mapType = serie.mapType; + for (var i = 0, l = shapeList.length; i < l; i++) { + if (shapeList[i].type === 'text' && shapeList[i]._mapType === mapType && shapeList[i].style._name === name) { + this._curTarget = shapeList[i]; + x = this._curTarget.style.x + this._curTarget.position[0]; + y = this._curTarget.style.y + this._curTarget.position[1]; + break; + } + } + break; + case ecConfig.CHART_TYPE_CHORD: + var name = params.name; + for (var i = 0, l = shapeList.length; i < l; i++) { + if (shapeList[i].type === 'sector' && ecData.get(shapeList[i], 'name') == name) { + this._curTarget = shapeList[i]; + var style = this._curTarget.style; + var midAngle = (style.startAngle + style.endAngle) / 2 * Math.PI / 180; + x = this._curTarget.style.x + Math.cos(midAngle) * (style.r - 2); + y = this._curTarget.style.y - Math.sin(midAngle) * (style.r - 2); + this.zr.trigger(zrConfig.EVENT.MOUSEMOVE, { + zrenderX: x, + zrenderY: y + }); + return; + } + } + break; + case ecConfig.CHART_TYPE_FORCE: + var name = params.name; + for (var i = 0, l = shapeList.length; i < l; i++) { + if (shapeList[i].type === 'circle' && ecData.get(shapeList[i], 'name') == name) { + this._curTarget = shapeList[i]; + x = this._curTarget.position[0]; + y = this._curTarget.position[1]; + break; + } + } + break; + } + if (x != null && y != null) { + this._event = { + zrenderX: x, + zrenderY: y + }; + this.zr.addHoverShape(this._curTarget); + this.zr.refreshHover(); + this._showItemTrigger(); + } + } + }, + hideTip: function () { + this._hide(); + }, + refresh: function (newOption) { + this._zrHeight = this.zr.getHeight(); + this._zrWidth = this.zr.getWidth(); + if (this._lastTipShape && this._lastTipShape.tipShape.length > 0) { + this.zr.delShape(this._lastTipShape.tipShape); + } + this._lastTipShape = false; + this.shapeList.length = 2; + this._lastDataIndex = -1; + this._lastSeriesIndex = -1; + this._lastItemTriggerId = -1; + if (newOption) { + this.option = newOption; + this.option.tooltip = this.reformOption(this.option.tooltip); + this.option.tooltip.textStyle = zrUtil.merge(this.option.tooltip.textStyle, this.ecTheme.textStyle); + this._needAxisTrigger = false; + if (this.option.tooltip.trigger === 'axis') { + this._needAxisTrigger = true; + } + var series = this.option.series; + for (var i = 0, l = series.length; i < l; i++) { + if (this.query(series[i], 'tooltip.trigger') === 'axis') { + this._needAxisTrigger = true; + break; + } + } + this._showDelay = this.option.tooltip.showDelay; + this._hideDelay = this.option.tooltip.hideDelay; + this._defaultCssText = this._style(this.option.tooltip); + this._setSelectedMap(); + this._axisLineWidth = this.option.tooltip.axisPointer.lineStyle.width; + this._enterable = this.option.tooltip.enterable; + if (!this._enterable && this._tDom.className.indexOf(zrConfig.elementClassName) < 0) { + this._tDom.className += ' ' + zrConfig.elementClassName; + } + } + if (this.showing) { + var self = this; + setTimeout(function () { + self.zr.trigger(zrConfig.EVENT.MOUSEMOVE, self.zr.handler._event); + }, 50); + } + }, + onbeforDispose: function () { + if (this._lastTipShape && this._lastTipShape.tipShape.length > 0) { + this.zr.delShape(this._lastTipShape.tipShape); + } + clearTimeout(this._hidingTicket); + clearTimeout(this._showingTicket); + this.zr.un(zrConfig.EVENT.MOUSEMOVE, this._onmousemove); + this.zr.un(zrConfig.EVENT.GLOBALOUT, this._onglobalout); + if (this.hasAppend && !!this.dom.firstChild) { + this.dom.firstChild.removeChild(this._tDom); + } + this._tDom = null; + }, + _encodeHTML: function (source) { + return String(source).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"').replace(/'/g, '''); + } + }; + zrUtil.inherits(Tooltip, Base); + require('../component').define('tooltip', Tooltip); + return Tooltip; +});define('echarts/component/legend', [ + 'require', + './base', + 'zrender/shape/Text', + 'zrender/shape/Rectangle', + 'zrender/shape/Sector', + '../util/shape/Icon', + '../util/shape/Candle', + '../config', + 'zrender/tool/util', + 'zrender/tool/area', + '../component' +], function (require) { + var Base = require('./base'); + var TextShape = require('zrender/shape/Text'); + var RectangleShape = require('zrender/shape/Rectangle'); + var SectorShape = require('zrender/shape/Sector'); + var IconShape = require('../util/shape/Icon'); + var CandleShape = require('../util/shape/Candle'); + var ecConfig = require('../config'); + ecConfig.legend = { + zlevel: 0, + z: 4, + show: true, + orient: 'horizontal', + x: 'center', + y: 'top', + backgroundColor: 'rgba(0,0,0,0)', + borderColor: '#ccc', + borderWidth: 0, + padding: 5, + itemGap: 10, + itemWidth: 20, + itemHeight: 14, + textStyle: { color: '#333' }, + selectedMode: true + }; + var zrUtil = require('zrender/tool/util'); + var zrArea = require('zrender/tool/area'); + function Legend(ecTheme, messageCenter, zr, option, myChart) { + if (!this.query(option, 'legend.data')) { + console.error('option.legend.data has not been defined.'); + return; + } + Base.call(this, ecTheme, messageCenter, zr, option, myChart); + var self = this; + self._legendSelected = function (param) { + self.__legendSelected(param); + }; + self._dispatchHoverLink = function (param) { + return self.__dispatchHoverLink(param); + }; + this._colorIndex = 0; + this._colorMap = {}; + this._selectedMap = {}; + this._hasDataMap = {}; + this.refresh(option); + } + Legend.prototype = { + type: ecConfig.COMPONENT_TYPE_LEGEND, + _buildShape: function () { + if (!this.legendOption.show) { + return; + } + this._itemGroupLocation = this._getItemGroupLocation(); + this._buildBackground(); + this._buildItem(); + for (var i = 0, l = this.shapeList.length; i < l; i++) { + this.zr.addShape(this.shapeList[i]); + } + }, + _buildItem: function () { + var data = this.legendOption.data; + var dataLength = data.length; + var itemName; + var itemType; + var itemShape; + var textShape; + var textStyle = this.legendOption.textStyle; + var dataTextStyle; + var dataFont; + var formattedName; + var zrWidth = this.zr.getWidth(); + var zrHeight = this.zr.getHeight(); + var lastX = this._itemGroupLocation.x; + var lastY = this._itemGroupLocation.y; + var itemWidth = this.legendOption.itemWidth; + var itemHeight = this.legendOption.itemHeight; + var itemGap = this.legendOption.itemGap; + var color; + if (this.legendOption.orient === 'vertical' && this.legendOption.x === 'right') { + lastX = this._itemGroupLocation.x + this._itemGroupLocation.width - itemWidth; + } + for (var i = 0; i < dataLength; i++) { + dataTextStyle = zrUtil.merge(data[i].textStyle || {}, textStyle); + dataFont = this.getFont(dataTextStyle); + itemName = this._getName(data[i]); + formattedName = this._getFormatterName(itemName); + if (itemName === '') { + if (this.legendOption.orient === 'horizontal') { + lastX = this._itemGroupLocation.x; + lastY += itemHeight + itemGap; + } else { + this.legendOption.x === 'right' ? lastX -= this._itemGroupLocation.maxWidth + itemGap : lastX += this._itemGroupLocation.maxWidth + itemGap; + lastY = this._itemGroupLocation.y; + } + continue; + } + itemType = data[i].icon || this._getSomethingByName(itemName).type; + color = this.getColor(itemName); + if (this.legendOption.orient === 'horizontal') { + if (zrWidth - lastX < 200 && itemWidth + 5 + zrArea.getTextWidth(formattedName, dataFont) + (i === dataLength - 1 || data[i + 1] === '' ? 0 : itemGap) >= zrWidth - lastX) { + lastX = this._itemGroupLocation.x; + lastY += itemHeight + itemGap; + } + } else { + if (zrHeight - lastY < 200 && itemHeight + (i === dataLength - 1 || data[i + 1] === '' ? 0 : itemGap) >= zrHeight - lastY) { + this.legendOption.x === 'right' ? lastX -= this._itemGroupLocation.maxWidth + itemGap : lastX += this._itemGroupLocation.maxWidth + itemGap; + lastY = this._itemGroupLocation.y; + } + } + itemShape = this._getItemShapeByType(lastX, lastY, itemWidth, itemHeight, this._selectedMap[itemName] && this._hasDataMap[itemName] ? color : '#ccc', itemType, color); + itemShape._name = itemName; + itemShape = new IconShape(itemShape); + textShape = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: { + x: lastX + itemWidth + 5, + y: lastY + itemHeight / 2, + color: this._selectedMap[itemName] ? dataTextStyle.color === 'auto' ? color : dataTextStyle.color : '#ccc', + text: formattedName, + textFont: dataFont, + textBaseline: 'middle' + }, + highlightStyle: { + color: color, + brushType: 'fill' + }, + hoverable: !!this.legendOption.selectedMode, + clickable: !!this.legendOption.selectedMode + }; + if (this.legendOption.orient === 'vertical' && this.legendOption.x === 'right') { + textShape.style.x -= itemWidth + 10; + textShape.style.textAlign = 'right'; + } + textShape._name = itemName; + textShape = new TextShape(textShape); + if (this.legendOption.selectedMode) { + itemShape.onclick = textShape.onclick = this._legendSelected; + itemShape.onmouseover = textShape.onmouseover = this._dispatchHoverLink; + itemShape.hoverConnect = textShape.id; + textShape.hoverConnect = itemShape.id; + } + this.shapeList.push(itemShape); + this.shapeList.push(textShape); + if (this.legendOption.orient === 'horizontal') { + lastX += itemWidth + 5 + zrArea.getTextWidth(formattedName, dataFont) + itemGap; + } else { + lastY += itemHeight + itemGap; + } + } + if (this.legendOption.orient === 'horizontal' && this.legendOption.x === 'center' && lastY != this._itemGroupLocation.y) { + this._mLineOptimize(); + } + }, + _getName: function (data) { + return typeof data.name != 'undefined' ? data.name : data; + }, + _getFormatterName: function (itemName) { + var formatter = this.legendOption.formatter; + var formattedName; + if (typeof formatter === 'function') { + formattedName = formatter.call(this.myChart, itemName); + } else if (typeof formatter === 'string') { + formattedName = formatter.replace('{name}', itemName); + } else { + formattedName = itemName; + } + return formattedName; + }, + _getFormatterNameFromData: function (data) { + var itemName = this._getName(data); + return this._getFormatterName(itemName); + }, + _mLineOptimize: function () { + var lineOffsetArray = []; + var lastX = this._itemGroupLocation.x; + for (var i = 2, l = this.shapeList.length; i < l; i++) { + if (this.shapeList[i].style.x === lastX) { + lineOffsetArray.push((this._itemGroupLocation.width - (this.shapeList[i - 1].style.x + zrArea.getTextWidth(this.shapeList[i - 1].style.text, this.shapeList[i - 1].style.textFont) - lastX)) / 2); + } else if (i === l - 1) { + lineOffsetArray.push((this._itemGroupLocation.width - (this.shapeList[i].style.x + zrArea.getTextWidth(this.shapeList[i].style.text, this.shapeList[i].style.textFont) - lastX)) / 2); + } + } + var curLineIndex = -1; + for (var i = 1, l = this.shapeList.length; i < l; i++) { + if (this.shapeList[i].style.x === lastX) { + curLineIndex++; + } + if (lineOffsetArray[curLineIndex] === 0) { + continue; + } else { + this.shapeList[i].style.x += lineOffsetArray[curLineIndex]; + } + } + }, + _buildBackground: function () { + var padding = this.reformCssArray(this.legendOption.padding); + this.shapeList.push(new RectangleShape({ + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: false, + style: { + x: this._itemGroupLocation.x - padding[3], + y: this._itemGroupLocation.y - padding[0], + width: this._itemGroupLocation.width + padding[3] + padding[1], + height: this._itemGroupLocation.height + padding[0] + padding[2], + brushType: this.legendOption.borderWidth === 0 ? 'fill' : 'both', + color: this.legendOption.backgroundColor, + strokeColor: this.legendOption.borderColor, + lineWidth: this.legendOption.borderWidth + } + })); + }, + _getItemGroupLocation: function () { + var data = this.legendOption.data; + var dataLength = data.length; + var itemGap = this.legendOption.itemGap; + var itemWidth = this.legendOption.itemWidth + 5; + var itemHeight = this.legendOption.itemHeight; + var textStyle = this.legendOption.textStyle; + var font = this.getFont(textStyle); + var totalWidth = 0; + var totalHeight = 0; + var padding = this.reformCssArray(this.legendOption.padding); + var zrWidth = this.zr.getWidth() - padding[1] - padding[3]; + var zrHeight = this.zr.getHeight() - padding[0] - padding[2]; + var temp = 0; + var maxWidth = 0; + if (this.legendOption.orient === 'horizontal') { + totalHeight = itemHeight; + for (var i = 0; i < dataLength; i++) { + if (this._getName(data[i]) === '') { + temp -= itemGap; + totalWidth = Math.max(totalWidth, temp); + totalHeight += itemHeight + itemGap; + temp = 0; + continue; + } + var tempTextWidth = zrArea.getTextWidth(this._getFormatterNameFromData(data[i]), data[i].textStyle ? this.getFont(zrUtil.merge(data[i].textStyle || {}, textStyle)) : font); + if (temp + itemWidth + tempTextWidth + itemGap > zrWidth) { + temp -= itemGap; + totalWidth = Math.max(totalWidth, temp); + totalHeight += itemHeight + itemGap; + temp = 0; + } else { + temp += itemWidth + tempTextWidth + itemGap; + totalWidth = Math.max(totalWidth, temp - itemGap); + } + } + } else { + for (var i = 0; i < dataLength; i++) { + maxWidth = Math.max(maxWidth, zrArea.getTextWidth(this._getFormatterNameFromData(data[i]), data[i].textStyle ? this.getFont(zrUtil.merge(data[i].textStyle || {}, textStyle)) : font)); + } + maxWidth += itemWidth; + totalWidth = maxWidth; + for (var i = 0; i < dataLength; i++) { + if (this._getName(data[i]) === '') { + totalWidth += maxWidth + itemGap; + temp -= itemGap; + totalHeight = Math.max(totalHeight, temp); + temp = 0; + continue; + } + if (temp + itemHeight + itemGap > zrHeight) { + totalWidth += maxWidth + itemGap; + temp -= itemGap; + totalHeight = Math.max(totalHeight, temp); + temp = 0; + } else { + temp += itemHeight + itemGap; + totalHeight = Math.max(totalHeight, temp - itemGap); + } + } + } + zrWidth = this.zr.getWidth(); + zrHeight = this.zr.getHeight(); + var x; + switch (this.legendOption.x) { + case 'center': + x = Math.floor((zrWidth - totalWidth) / 2); + break; + case 'left': + x = padding[3] + this.legendOption.borderWidth; + break; + case 'right': + x = zrWidth - totalWidth - padding[1] - padding[3] - this.legendOption.borderWidth * 2; + break; + default: + x = this.parsePercent(this.legendOption.x, zrWidth); + break; + } + var y; + switch (this.legendOption.y) { + case 'top': + y = padding[0] + this.legendOption.borderWidth; + break; + case 'bottom': + y = zrHeight - totalHeight - padding[0] - padding[2] - this.legendOption.borderWidth * 2; + break; + case 'center': + y = Math.floor((zrHeight - totalHeight) / 2); + break; + default: + y = this.parsePercent(this.legendOption.y, zrHeight); + break; + } + return { + x: x, + y: y, + width: totalWidth, + height: totalHeight, + maxWidth: maxWidth + }; + }, + _getSomethingByName: function (name) { + var series = this.option.series; + var data; + for (var i = 0, l = series.length; i < l; i++) { + if (series[i].name === name) { + return { + type: series[i].type, + series: series[i], + seriesIndex: i, + data: null, + dataIndex: -1 + }; + } + if (series[i].type === ecConfig.CHART_TYPE_PIE || series[i].type === ecConfig.CHART_TYPE_RADAR || series[i].type === ecConfig.CHART_TYPE_CHORD || series[i].type === ecConfig.CHART_TYPE_FORCE || series[i].type === ecConfig.CHART_TYPE_FUNNEL || series[i].type === ecConfig.CHART_TYPE_TREEMAP) { + data = series[i].categories || series[i].data || series[i].nodes; + for (var j = 0, k = data.length; j < k; j++) { + if (data[j].name === name) { + return { + type: series[i].type, + series: series[i], + seriesIndex: i, + data: data[j], + dataIndex: j + }; + } + } + } + } + return { + type: 'bar', + series: null, + seriesIndex: -1, + data: null, + dataIndex: -1 + }; + }, + _getItemShapeByType: function (x, y, width, height, color, itemType, defaultColor) { + var highlightColor = color === '#ccc' ? defaultColor : color; + var itemShape = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: { + iconType: 'legendicon' + itemType, + x: x, + y: y, + width: width, + height: height, + color: color, + strokeColor: color, + lineWidth: 2 + }, + highlightStyle: { + color: highlightColor, + strokeColor: highlightColor, + lineWidth: 1 + }, + hoverable: this.legendOption.selectedMode, + clickable: this.legendOption.selectedMode + }; + var imageLocation; + if (itemType.match('image')) { + var imageLocation = itemType.replace(new RegExp('^image:\\/\\/'), ''); + itemType = 'image'; + } + switch (itemType) { + case 'line': + itemShape.style.brushType = 'stroke'; + itemShape.highlightStyle.lineWidth = 3; + break; + case 'radar': + case 'venn': + case 'tree': + case 'treemap': + case 'scatter': + itemShape.highlightStyle.lineWidth = 3; + break; + case 'k': + itemShape.style.brushType = 'both'; + itemShape.highlightStyle.lineWidth = 3; + itemShape.highlightStyle.color = itemShape.style.color = this.deepQuery([ + this.ecTheme, + ecConfig + ], 'k.itemStyle.normal.color') || '#fff'; + itemShape.style.strokeColor = color != '#ccc' ? this.deepQuery([ + this.ecTheme, + ecConfig + ], 'k.itemStyle.normal.lineStyle.color') || '#ff3200' : color; + break; + case 'image': + itemShape.style.iconType = 'image'; + itemShape.style.image = imageLocation; + if (color === '#ccc') { + itemShape.style.opacity = 0.5; + } + break; + } + return itemShape; + }, + __legendSelected: function (param) { + var itemName = param.target._name; + if (this.legendOption.selectedMode === 'single') { + for (var k in this._selectedMap) { + this._selectedMap[k] = false; + } + } + this._selectedMap[itemName] = !this._selectedMap[itemName]; + this.messageCenter.dispatch(ecConfig.EVENT.LEGEND_SELECTED, param.event, { + selected: this._selectedMap, + target: itemName + }, this.myChart); + }, + __dispatchHoverLink: function (param) { + this.messageCenter.dispatch(ecConfig.EVENT.LEGEND_HOVERLINK, param.event, { target: param.target._name }, this.myChart); + return; + }, + refresh: function (newOption) { + if (newOption) { + this.option = newOption || this.option; + this.option.legend = this.reformOption(this.option.legend); + this.legendOption = this.option.legend; + var data = this.legendOption.data || []; + var itemName; + var something; + var color; + var queryTarget; + if (this.legendOption.selected) { + for (var k in this.legendOption.selected) { + this._selectedMap[k] = typeof this._selectedMap[k] != 'undefined' ? this._selectedMap[k] : this.legendOption.selected[k]; + } + } + for (var i = 0, dataLength = data.length; i < dataLength; i++) { + itemName = this._getName(data[i]); + if (itemName === '') { + continue; + } + something = this._getSomethingByName(itemName); + if (!something.series) { + this._hasDataMap[itemName] = false; + } else { + this._hasDataMap[itemName] = true; + if (something.data && (something.type === ecConfig.CHART_TYPE_PIE || something.type === ecConfig.CHART_TYPE_FORCE || something.type === ecConfig.CHART_TYPE_FUNNEL)) { + queryTarget = [ + something.data, + something.series + ]; + } else { + queryTarget = [something.series]; + } + color = this.getItemStyleColor(this.deepQuery(queryTarget, 'itemStyle.normal.color'), something.seriesIndex, something.dataIndex, something.data); + if (color && something.type != ecConfig.CHART_TYPE_K) { + this.setColor(itemName, color); + } + this._selectedMap[itemName] = this._selectedMap[itemName] != null ? this._selectedMap[itemName] : true; + } + } + } + this.clear(); + this._buildShape(); + }, + getRelatedAmount: function (name) { + var amount = 0; + var series = this.option.series; + var data; + for (var i = 0, l = series.length; i < l; i++) { + if (series[i].name === name) { + amount++; + } + if (series[i].type === ecConfig.CHART_TYPE_PIE || series[i].type === ecConfig.CHART_TYPE_RADAR || series[i].type === ecConfig.CHART_TYPE_CHORD || series[i].type === ecConfig.CHART_TYPE_FORCE || series[i].type === ecConfig.CHART_TYPE_FUNNEL) { + data = series[i].type != ecConfig.CHART_TYPE_FORCE ? series[i].data : series[i].categories; + for (var j = 0, k = data.length; j < k; j++) { + if (data[j].name === name && data[j].value != '-') { + amount++; + } + } + } + } + return amount; + }, + setColor: function (legendName, color) { + this._colorMap[legendName] = color; + }, + getColor: function (legendName) { + if (!this._colorMap[legendName]) { + this._colorMap[legendName] = this.zr.getColor(this._colorIndex++); + } + return this._colorMap[legendName]; + }, + hasColor: function (legendName) { + return this._colorMap[legendName] ? this._colorMap[legendName] : false; + }, + add: function (name, color) { + var data = this.legendOption.data; + for (var i = 0, dataLength = data.length; i < dataLength; i++) { + if (this._getName(data[i]) === name) { + return; + } + } + this.legendOption.data.push(name); + this.setColor(name, color); + this._selectedMap[name] = true; + this._hasDataMap[name] = true; + }, + del: function (name) { + var data = this.legendOption.data; + for (var i = 0, dataLength = data.length; i < dataLength; i++) { + if (this._getName(data[i]) === name) { + return this.legendOption.data.splice(i, 1); + } + } + }, + getItemShape: function (name) { + if (name == null) { + return; + } + var shape; + for (var i = 0, l = this.shapeList.length; i < l; i++) { + shape = this.shapeList[i]; + if (shape._name === name && shape.type != 'text') { + return shape; + } + } + }, + setItemShape: function (name, itemShape) { + var shape; + for (var i = 0, l = this.shapeList.length; i < l; i++) { + shape = this.shapeList[i]; + if (shape._name === name && shape.type != 'text') { + if (!this._selectedMap[name]) { + itemShape.style.color = '#ccc'; + itemShape.style.strokeColor = '#ccc'; + } + this.zr.modShape(shape.id, itemShape); + } + } + }, + isSelected: function (itemName) { + if (typeof this._selectedMap[itemName] != 'undefined') { + return this._selectedMap[itemName]; + } else { + return true; + } + }, + getSelectedMap: function () { + return this._selectedMap; + }, + setSelected: function (itemName, selectStatus) { + if (this.legendOption.selectedMode === 'single') { + for (var k in this._selectedMap) { + this._selectedMap[k] = false; + } + } + this._selectedMap[itemName] = selectStatus; + this.messageCenter.dispatch(ecConfig.EVENT.LEGEND_SELECTED, null, { + selected: this._selectedMap, + target: itemName + }, this.myChart); + }, + onlegendSelected: function (param, status) { + var legendSelected = param.selected; + for (var itemName in legendSelected) { + if (this._selectedMap[itemName] != legendSelected[itemName]) { + status.needRefresh = true; + } + this._selectedMap[itemName] = legendSelected[itemName]; + } + return; + } + }; + var legendIcon = { + line: function (ctx, style) { + var dy = style.height / 2; + ctx.moveTo(style.x, style.y + dy); + ctx.lineTo(style.x + style.width, style.y + dy); + }, + pie: function (ctx, style) { + var x = style.x; + var y = style.y; + var width = style.width; + var height = style.height; + SectorShape.prototype.buildPath(ctx, { + x: x + width / 2, + y: y + height + 2, + r: height, + r0: 6, + startAngle: 45, + endAngle: 135 + }); + }, + eventRiver: function (ctx, style) { + var x = style.x; + var y = style.y; + var width = style.width; + var height = style.height; + ctx.moveTo(x, y + height); + ctx.bezierCurveTo(x + width, y + height, x, y + 4, x + width, y + 4); + ctx.lineTo(x + width, y); + ctx.bezierCurveTo(x, y, x + width, y + height - 4, x, y + height - 4); + ctx.lineTo(x, y + height); + }, + k: function (ctx, style) { + var x = style.x; + var y = style.y; + var width = style.width; + var height = style.height; + CandleShape.prototype.buildPath(ctx, { + x: x + width / 2, + y: [ + y + 1, + y + 1, + y + height - 6, + y + height + ], + width: width - 6 + }); + }, + bar: function (ctx, style) { + var x = style.x; + var y = style.y + 1; + var width = style.width; + var height = style.height - 2; + var r = 3; + ctx.moveTo(x + r, y); + ctx.lineTo(x + width - r, y); + ctx.quadraticCurveTo(x + width, y, x + width, y + r); + ctx.lineTo(x + width, y + height - r); + ctx.quadraticCurveTo(x + width, y + height, x + width - r, y + height); + ctx.lineTo(x + r, y + height); + ctx.quadraticCurveTo(x, y + height, x, y + height - r); + ctx.lineTo(x, y + r); + ctx.quadraticCurveTo(x, y, x + r, y); + }, + force: function (ctx, style) { + IconShape.prototype.iconLibrary.circle(ctx, style); + }, + radar: function (ctx, style) { + var n = 6; + var x = style.x + style.width / 2; + var y = style.y + style.height / 2; + var r = style.height / 2; + var dStep = 2 * Math.PI / n; + var deg = -Math.PI / 2; + var xStart = x + r * Math.cos(deg); + var yStart = y + r * Math.sin(deg); + ctx.moveTo(xStart, yStart); + deg += dStep; + for (var i = 0, end = n - 1; i < end; i++) { + ctx.lineTo(x + r * Math.cos(deg), y + r * Math.sin(deg)); + deg += dStep; + } + ctx.lineTo(xStart, yStart); + } + }; + legendIcon.chord = legendIcon.pie; + legendIcon.map = legendIcon.bar; + for (var k in legendIcon) { + IconShape.prototype.iconLibrary['legendicon' + k] = legendIcon[k]; + } + zrUtil.inherits(Legend, Base); + require('../component').define('legend', Legend); + return Legend; +});define('echarts/util/ecData', [], function () { + function pack(shape, series, seriesIndex, data, dataIndex, name, special, special2) { + var value; + if (typeof data != 'undefined') { + value = data.value == null ? data : data.value; + } + shape._echartsData = { + '_series': series, + '_seriesIndex': seriesIndex, + '_data': data, + '_dataIndex': dataIndex, + '_name': name, + '_value': value, + '_special': special, + '_special2': special2 + }; + return shape._echartsData; + } + function get(shape, key) { + var data = shape._echartsData; + if (!key) { + return data; + } + switch (key) { + case 'series': + case 'seriesIndex': + case 'data': + case 'dataIndex': + case 'name': + case 'value': + case 'special': + case 'special2': + return data && data['_' + key]; + } + return null; + } + function set(shape, key, value) { + shape._echartsData = shape._echartsData || {}; + switch (key) { + case 'series': + case 'seriesIndex': + case 'data': + case 'dataIndex': + case 'name': + case 'value': + case 'special': + case 'special2': + shape._echartsData['_' + key] = value; + break; + } + } + function clone(source, target) { + target._echartsData = { + '_series': source._echartsData._series, + '_seriesIndex': source._echartsData._seriesIndex, + '_data': source._echartsData._data, + '_dataIndex': source._echartsData._dataIndex, + '_name': source._echartsData._name, + '_value': source._echartsData._value, + '_special': source._echartsData._special, + '_special2': source._echartsData._special2 + }; + } + return { + pack: pack, + set: set, + get: get, + clone: clone + }; +});define('echarts/chart', [], function () { + var self = {}; + var _chartLibrary = {}; + self.define = function (name, clazz) { + _chartLibrary[name] = clazz; + return self; + }; + self.get = function (name) { + return _chartLibrary[name]; + }; + return self; +});define('zrender/tool/color', [ + 'require', + '../tool/util' +], function (require) { + var util = require('../tool/util'); + var _ctx; + var palette = [ + '#ff9277', + ' #dddd00', + ' #ffc877', + ' #bbe3ff', + ' #d5ffbb', + '#bbbbff', + ' #ddb000', + ' #b0dd00', + ' #e2bbff', + ' #ffbbe3', + '#ff7777', + ' #ff9900', + ' #83dd00', + ' #77e3ff', + ' #778fff', + '#c877ff', + ' #ff77ab', + ' #ff6600', + ' #aa8800', + ' #77c7ff', + '#ad77ff', + ' #ff77ff', + ' #dd0083', + ' #777700', + ' #00aa00', + '#0088aa', + ' #8400dd', + ' #aa0088', + ' #dd0000', + ' #772e00' + ]; + var _palette = palette; + var highlightColor = 'rgba(255,255,0,0.5)'; + var _highlightColor = highlightColor; + var colorRegExp = /^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+%?)?)\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+)?)%?\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+)?)%?\s*\))\s*$/i; + var _nameColors = { + aliceblue: '#f0f8ff', + antiquewhite: '#faebd7', + aqua: '#0ff', + aquamarine: '#7fffd4', + azure: '#f0ffff', + beige: '#f5f5dc', + bisque: '#ffe4c4', + black: '#000', + blanchedalmond: '#ffebcd', + blue: '#00f', + blueviolet: '#8a2be2', + brown: '#a52a2a', + burlywood: '#deb887', + cadetblue: '#5f9ea0', + chartreuse: '#7fff00', + chocolate: '#d2691e', + coral: '#ff7f50', + cornflowerblue: '#6495ed', + cornsilk: '#fff8dc', + crimson: '#dc143c', + cyan: '#0ff', + darkblue: '#00008b', + darkcyan: '#008b8b', + darkgoldenrod: '#b8860b', + darkgray: '#a9a9a9', + darkgrey: '#a9a9a9', + darkgreen: '#006400', + darkkhaki: '#bdb76b', + darkmagenta: '#8b008b', + darkolivegreen: '#556b2f', + darkorange: '#ff8c00', + darkorchid: '#9932cc', + darkred: '#8b0000', + darksalmon: '#e9967a', + darkseagreen: '#8fbc8f', + darkslateblue: '#483d8b', + darkslategray: '#2f4f4f', + darkslategrey: '#2f4f4f', + darkturquoise: '#00ced1', + darkviolet: '#9400d3', + deeppink: '#ff1493', + deepskyblue: '#00bfff', + dimgray: '#696969', + dimgrey: '#696969', + dodgerblue: '#1e90ff', + firebrick: '#b22222', + floralwhite: '#fffaf0', + forestgreen: '#228b22', + fuchsia: '#f0f', + gainsboro: '#dcdcdc', + ghostwhite: '#f8f8ff', + gold: '#ffd700', + goldenrod: '#daa520', + gray: '#808080', + grey: '#808080', + green: '#008000', + greenyellow: '#adff2f', + honeydew: '#f0fff0', + hotpink: '#ff69b4', + indianred: '#cd5c5c', + indigo: '#4b0082', + ivory: '#fffff0', + khaki: '#f0e68c', + lavender: '#e6e6fa', + lavenderblush: '#fff0f5', + lawngreen: '#7cfc00', + lemonchiffon: '#fffacd', + lightblue: '#add8e6', + lightcoral: '#f08080', + lightcyan: '#e0ffff', + lightgoldenrodyellow: '#fafad2', + lightgray: '#d3d3d3', + lightgrey: '#d3d3d3', + lightgreen: '#90ee90', + lightpink: '#ffb6c1', + lightsalmon: '#ffa07a', + lightseagreen: '#20b2aa', + lightskyblue: '#87cefa', + lightslategray: '#789', + lightslategrey: '#789', + lightsteelblue: '#b0c4de', + lightyellow: '#ffffe0', + lime: '#0f0', + limegreen: '#32cd32', + linen: '#faf0e6', + magenta: '#f0f', + maroon: '#800000', + mediumaquamarine: '#66cdaa', + mediumblue: '#0000cd', + mediumorchid: '#ba55d3', + mediumpurple: '#9370d8', + mediumseagreen: '#3cb371', + mediumslateblue: '#7b68ee', + mediumspringgreen: '#00fa9a', + mediumturquoise: '#48d1cc', + mediumvioletred: '#c71585', + midnightblue: '#191970', + mintcream: '#f5fffa', + mistyrose: '#ffe4e1', + moccasin: '#ffe4b5', + navajowhite: '#ffdead', + navy: '#000080', + oldlace: '#fdf5e6', + olive: '#808000', + olivedrab: '#6b8e23', + orange: '#ffa500', + orangered: '#ff4500', + orchid: '#da70d6', + palegoldenrod: '#eee8aa', + palegreen: '#98fb98', + paleturquoise: '#afeeee', + palevioletred: '#d87093', + papayawhip: '#ffefd5', + peachpuff: '#ffdab9', + peru: '#cd853f', + pink: '#ffc0cb', + plum: '#dda0dd', + powderblue: '#b0e0e6', + purple: '#800080', + red: '#f00', + rosybrown: '#bc8f8f', + royalblue: '#4169e1', + saddlebrown: '#8b4513', + salmon: '#fa8072', + sandybrown: '#f4a460', + seagreen: '#2e8b57', + seashell: '#fff5ee', + sienna: '#a0522d', + silver: '#c0c0c0', + skyblue: '#87ceeb', + slateblue: '#6a5acd', + slategray: '#708090', + slategrey: '#708090', + snow: '#fffafa', + springgreen: '#00ff7f', + steelblue: '#4682b4', + tan: '#d2b48c', + teal: '#008080', + thistle: '#d8bfd8', + tomato: '#ff6347', + turquoise: '#40e0d0', + violet: '#ee82ee', + wheat: '#f5deb3', + white: '#fff', + whitesmoke: '#f5f5f5', + yellow: '#ff0', + yellowgreen: '#9acd32' + }; + function customPalette(userPalete) { + palette = userPalete; + } + function resetPalette() { + palette = _palette; + } + function getColor(idx, userPalete) { + idx = idx | 0; + userPalete = userPalete || palette; + return userPalete[idx % userPalete.length]; + } + function customHighlight(userHighlightColor) { + highlightColor = userHighlightColor; + } + function resetHighlight() { + _highlightColor = highlightColor; + } + function getHighlightColor() { + return highlightColor; + } + function getRadialGradient(x0, y0, r0, x1, y1, r1, colorList) { + if (!_ctx) { + _ctx = util.getContext(); + } + var gradient = _ctx.createRadialGradient(x0, y0, r0, x1, y1, r1); + for (var i = 0, l = colorList.length; i < l; i++) { + gradient.addColorStop(colorList[i][0], colorList[i][1]); + } + gradient.__nonRecursion = true; + return gradient; + } + function getLinearGradient(x0, y0, x1, y1, colorList) { + if (!_ctx) { + _ctx = util.getContext(); + } + var gradient = _ctx.createLinearGradient(x0, y0, x1, y1); + for (var i = 0, l = colorList.length; i < l; i++) { + gradient.addColorStop(colorList[i][0], colorList[i][1]); + } + gradient.__nonRecursion = true; + return gradient; + } + function getStepColors(start, end, step) { + start = toRGBA(start); + end = toRGBA(end); + start = getData(start); + end = getData(end); + var colors = []; + var stepR = (end[0] - start[0]) / step; + var stepG = (end[1] - start[1]) / step; + var stepB = (end[2] - start[2]) / step; + var stepA = (end[3] - start[3]) / step; + for (var i = 0, r = start[0], g = start[1], b = start[2], a = start[3]; i < step; i++) { + colors[i] = toColor([ + adjust(Math.floor(r), [ + 0, + 255 + ]), + adjust(Math.floor(g), [ + 0, + 255 + ]), + adjust(Math.floor(b), [ + 0, + 255 + ]), + a.toFixed(4) - 0 + ], 'rgba'); + r += stepR; + g += stepG; + b += stepB; + a += stepA; + } + r = end[0]; + g = end[1]; + b = end[2]; + a = end[3]; + colors[i] = toColor([ + r, + g, + b, + a + ], 'rgba'); + return colors; + } + function getGradientColors(colors, step) { + var ret = []; + var len = colors.length; + if (step === undefined) { + step = 20; + } + if (len === 1) { + ret = getStepColors(colors[0], colors[0], step); + } else if (len > 1) { + for (var i = 0, n = len - 1; i < n; i++) { + var steps = getStepColors(colors[i], colors[i + 1], step); + if (i < n - 1) { + steps.pop(); + } + ret = ret.concat(steps); + } + } + return ret; + } + function toColor(data, format) { + format = format || 'rgb'; + if (data && (data.length === 3 || data.length === 4)) { + data = map(data, function (c) { + return c > 1 ? Math.ceil(c) : c; + }); + if (format.indexOf('hex') > -1) { + return '#' + ((1 << 24) + (data[0] << 16) + (data[1] << 8) + +data[2]).toString(16).slice(1); + } else if (format.indexOf('hs') > -1) { + var sx = map(data.slice(1, 3), function (c) { + return c + '%'; + }); + data[1] = sx[0]; + data[2] = sx[1]; + } + if (format.indexOf('a') > -1) { + if (data.length === 3) { + data.push(1); + } + data[3] = adjust(data[3], [ + 0, + 1 + ]); + return format + '(' + data.slice(0, 4).join(',') + ')'; + } + return format + '(' + data.slice(0, 3).join(',') + ')'; + } + } + function toArray(color) { + color = trim(color); + if (color.indexOf('rgba') < 0) { + color = toRGBA(color); + } + var data = []; + var i = 0; + color.replace(/[\d.]+/g, function (n) { + if (i < 3) { + n = n | 0; + } else { + n = +n; + } + data[i++] = n; + }); + return data; + } + function convert(color, format) { + if (!isCalculableColor(color)) { + return color; + } + var data = getData(color); + var alpha = data[3]; + if (typeof alpha === 'undefined') { + alpha = 1; + } + if (color.indexOf('hsb') > -1) { + data = _HSV_2_RGB(data); + } else if (color.indexOf('hsl') > -1) { + data = _HSL_2_RGB(data); + } + if (format.indexOf('hsb') > -1 || format.indexOf('hsv') > -1) { + data = _RGB_2_HSB(data); + } else if (format.indexOf('hsl') > -1) { + data = _RGB_2_HSL(data); + } + data[3] = alpha; + return toColor(data, format); + } + function toRGBA(color) { + return convert(color, 'rgba'); + } + function toRGB(color) { + return convert(color, 'rgb'); + } + function toHex(color) { + return convert(color, 'hex'); + } + function toHSVA(color) { + return convert(color, 'hsva'); + } + function toHSV(color) { + return convert(color, 'hsv'); + } + function toHSBA(color) { + return convert(color, 'hsba'); + } + function toHSB(color) { + return convert(color, 'hsb'); + } + function toHSLA(color) { + return convert(color, 'hsla'); + } + function toHSL(color) { + return convert(color, 'hsl'); + } + function toName(color) { + for (var key in _nameColors) { + if (toHex(_nameColors[key]) === toHex(color)) { + return key; + } + } + return null; + } + function trim(color) { + return String(color).replace(/\s+/g, ''); + } + function normalize(color) { + if (_nameColors[color]) { + color = _nameColors[color]; + } + color = trim(color); + color = color.replace(/hsv/i, 'hsb'); + if (/^#[\da-f]{3}$/i.test(color)) { + color = parseInt(color.slice(1), 16); + var r = (color & 3840) << 8; + var g = (color & 240) << 4; + var b = color & 15; + color = '#' + ((1 << 24) + (r << 4) + r + (g << 4) + g + (b << 4) + b).toString(16).slice(1); + } + return color; + } + function lift(color, level) { + if (!isCalculableColor(color)) { + return color; + } + var direct = level > 0 ? 1 : -1; + if (typeof level === 'undefined') { + level = 0; + } + level = Math.abs(level) > 1 ? 1 : Math.abs(level); + color = toRGB(color); + var data = getData(color); + for (var i = 0; i < 3; i++) { + if (direct === 1) { + data[i] = data[i] * (1 - level) | 0; + } else { + data[i] = (255 - data[i]) * level + data[i] | 0; + } + } + return 'rgb(' + data.join(',') + ')'; + } + function reverse(color) { + if (!isCalculableColor(color)) { + return color; + } + var data = getData(toRGBA(color)); + data = map(data, function (c) { + return 255 - c; + }); + return toColor(data, 'rgb'); + } + function mix(color1, color2, weight) { + if (!isCalculableColor(color1) || !isCalculableColor(color2)) { + return color1; + } + if (typeof weight === 'undefined') { + weight = 0.5; + } + weight = 1 - adjust(weight, [ + 0, + 1 + ]); + var w = weight * 2 - 1; + var data1 = getData(toRGBA(color1)); + var data2 = getData(toRGBA(color2)); + var d = data1[3] - data2[3]; + var weight1 = ((w * d === -1 ? w : (w + d) / (1 + w * d)) + 1) / 2; + var weight2 = 1 - weight1; + var data = []; + for (var i = 0; i < 3; i++) { + data[i] = data1[i] * weight1 + data2[i] * weight2; + } + var alpha = data1[3] * weight + data2[3] * (1 - weight); + alpha = Math.max(0, Math.min(1, alpha)); + if (data1[3] === 1 && data2[3] === 1) { + return toColor(data, 'rgb'); + } + data[3] = alpha; + return toColor(data, 'rgba'); + } + function random() { + return '#' + (Math.random().toString(16) + '0000').slice(2, 8); + } + function getData(color) { + color = normalize(color); + var r = color.match(colorRegExp); + if (r === null) { + throw new Error('The color format error'); + } + var d; + var a; + var data = []; + var rgb; + if (r[2]) { + d = r[2].replace('#', '').split(''); + rgb = [ + d[0] + d[1], + d[2] + d[3], + d[4] + d[5] + ]; + data = map(rgb, function (c) { + return adjust(parseInt(c, 16), [ + 0, + 255 + ]); + }); + } else if (r[4]) { + var rgba = r[4].split(','); + a = rgba[3]; + rgb = rgba.slice(0, 3); + data = map(rgb, function (c) { + c = Math.floor(c.indexOf('%') > 0 ? parseInt(c, 0) * 2.55 : c); + return adjust(c, [ + 0, + 255 + ]); + }); + if (typeof a !== 'undefined') { + data.push(adjust(parseFloat(a), [ + 0, + 1 + ])); + } + } else if (r[5] || r[6]) { + var hsxa = (r[5] || r[6]).split(','); + var h = parseInt(hsxa[0], 0) / 360; + var s = hsxa[1]; + var x = hsxa[2]; + a = hsxa[3]; + data = map([ + s, + x + ], function (c) { + return adjust(parseFloat(c) / 100, [ + 0, + 1 + ]); + }); + data.unshift(h); + if (typeof a !== 'undefined') { + data.push(adjust(parseFloat(a), [ + 0, + 1 + ])); + } + } + return data; + } + function alpha(color, a) { + if (!isCalculableColor(color)) { + return color; + } + if (a === null) { + a = 1; + } + var data = getData(toRGBA(color)); + data[3] = adjust(Number(a).toFixed(4), [ + 0, + 1 + ]); + return toColor(data, 'rgba'); + } + function map(array, fun) { + if (typeof fun !== 'function') { + throw new TypeError(); + } + var len = array ? array.length : 0; + for (var i = 0; i < len; i++) { + array[i] = fun(array[i]); + } + return array; + } + function adjust(value, region) { + if (value <= region[0]) { + value = region[0]; + } else if (value >= region[1]) { + value = region[1]; + } + return value; + } + function isCalculableColor(color) { + return color instanceof Array || typeof color === 'string'; + } + function _HSV_2_RGB(data) { + var H = data[0]; + var S = data[1]; + var V = data[2]; + var R; + var G; + var B; + if (S === 0) { + R = V * 255; + G = V * 255; + B = V * 255; + } else { + var h = H * 6; + if (h === 6) { + h = 0; + } + var i = h | 0; + var v1 = V * (1 - S); + var v2 = V * (1 - S * (h - i)); + var v3 = V * (1 - S * (1 - (h - i))); + var r = 0; + var g = 0; + var b = 0; + if (i === 0) { + r = V; + g = v3; + b = v1; + } else if (i === 1) { + r = v2; + g = V; + b = v1; + } else if (i === 2) { + r = v1; + g = V; + b = v3; + } else if (i === 3) { + r = v1; + g = v2; + b = V; + } else if (i === 4) { + r = v3; + g = v1; + b = V; + } else { + r = V; + g = v1; + b = v2; + } + R = r * 255; + G = g * 255; + B = b * 255; + } + return [ + R, + G, + B + ]; + } + function _HSL_2_RGB(data) { + var H = data[0]; + var S = data[1]; + var L = data[2]; + var R; + var G; + var B; + if (S === 0) { + R = L * 255; + G = L * 255; + B = L * 255; + } else { + var v2; + if (L < 0.5) { + v2 = L * (1 + S); + } else { + v2 = L + S - S * L; + } + var v1 = 2 * L - v2; + R = 255 * _HUE_2_RGB(v1, v2, H + 1 / 3); + G = 255 * _HUE_2_RGB(v1, v2, H); + B = 255 * _HUE_2_RGB(v1, v2, H - 1 / 3); + } + return [ + R, + G, + B + ]; + } + function _HUE_2_RGB(v1, v2, vH) { + if (vH < 0) { + vH += 1; + } + if (vH > 1) { + vH -= 1; + } + if (6 * vH < 1) { + return v1 + (v2 - v1) * 6 * vH; + } + if (2 * vH < 1) { + return v2; + } + if (3 * vH < 2) { + return v1 + (v2 - v1) * (2 / 3 - vH) * 6; + } + return v1; + } + function _RGB_2_HSB(data) { + var R = data[0] / 255; + var G = data[1] / 255; + var B = data[2] / 255; + var vMin = Math.min(R, G, B); + var vMax = Math.max(R, G, B); + var delta = vMax - vMin; + var V = vMax; + var H; + var S; + if (delta === 0) { + H = 0; + S = 0; + } else { + S = delta / vMax; + var deltaR = ((vMax - R) / 6 + delta / 2) / delta; + var deltaG = ((vMax - G) / 6 + delta / 2) / delta; + var deltaB = ((vMax - B) / 6 + delta / 2) / delta; + if (R === vMax) { + H = deltaB - deltaG; + } else if (G === vMax) { + H = 1 / 3 + deltaR - deltaB; + } else if (B === vMax) { + H = 2 / 3 + deltaG - deltaR; + } + if (H < 0) { + H += 1; + } + if (H > 1) { + H -= 1; + } + } + H = H * 360; + S = S * 100; + V = V * 100; + return [ + H, + S, + V + ]; + } + function _RGB_2_HSL(data) { + var R = data[0] / 255; + var G = data[1] / 255; + var B = data[2] / 255; + var vMin = Math.min(R, G, B); + var vMax = Math.max(R, G, B); + var delta = vMax - vMin; + var L = (vMax + vMin) / 2; + var H; + var S; + if (delta === 0) { + H = 0; + S = 0; + } else { + if (L < 0.5) { + S = delta / (vMax + vMin); + } else { + S = delta / (2 - vMax - vMin); + } + var deltaR = ((vMax - R) / 6 + delta / 2) / delta; + var deltaG = ((vMax - G) / 6 + delta / 2) / delta; + var deltaB = ((vMax - B) / 6 + delta / 2) / delta; + if (R === vMax) { + H = deltaB - deltaG; + } else if (G === vMax) { + H = 1 / 3 + deltaR - deltaB; + } else if (B === vMax) { + H = 2 / 3 + deltaG - deltaR; + } + if (H < 0) { + H += 1; + } + if (H > 1) { + H -= 1; + } + } + H = H * 360; + S = S * 100; + L = L * 100; + return [ + H, + S, + L + ]; + } + return { + customPalette: customPalette, + resetPalette: resetPalette, + getColor: getColor, + getHighlightColor: getHighlightColor, + customHighlight: customHighlight, + resetHighlight: resetHighlight, + getRadialGradient: getRadialGradient, + getLinearGradient: getLinearGradient, + getGradientColors: getGradientColors, + getStepColors: getStepColors, + reverse: reverse, + mix: mix, + lift: lift, + trim: trim, + random: random, + toRGB: toRGB, + toRGBA: toRGBA, + toHex: toHex, + toHSL: toHSL, + toHSLA: toHSLA, + toHSB: toHSB, + toHSBA: toHSBA, + toHSV: toHSV, + toHSVA: toHSVA, + toName: toName, + toColor: toColor, + toArray: toArray, + alpha: alpha, + getData: getData + }; +});define('echarts/component/timeline', [ + 'require', + './base', + 'zrender/shape/Rectangle', + '../util/shape/Icon', + '../util/shape/Chain', + '../config', + 'zrender/tool/util', + 'zrender/tool/area', + 'zrender/tool/event', + '../component' +], function (require) { + var Base = require('./base'); + var RectangleShape = require('zrender/shape/Rectangle'); + var IconShape = require('../util/shape/Icon'); + var ChainShape = require('../util/shape/Chain'); + var ecConfig = require('../config'); + ecConfig.timeline = { + zlevel: 0, + z: 4, + show: true, + type: 'time', + notMerge: false, + realtime: true, + x: 80, + x2: 80, + y2: 0, + height: 50, + backgroundColor: 'rgba(0,0,0,0)', + borderColor: '#ccc', + borderWidth: 0, + padding: 5, + controlPosition: 'left', + autoPlay: false, + loop: true, + playInterval: 2000, + lineStyle: { + width: 1, + color: '#666', + type: 'dashed' + }, + label: { + show: true, + interval: 'auto', + rotate: 0, + textStyle: { color: '#333' } + }, + checkpointStyle: { + symbol: 'auto', + symbolSize: 'auto', + color: 'auto', + borderColor: 'auto', + borderWidth: 'auto', + label: { + show: false, + textStyle: { color: 'auto' } + } + }, + controlStyle: { + itemSize: 15, + itemGap: 5, + normal: { color: '#333' }, + emphasis: { color: '#1e90ff' } + }, + symbol: 'emptyDiamond', + symbolSize: 4, + currentIndex: 0 + }; + var zrUtil = require('zrender/tool/util'); + var zrArea = require('zrender/tool/area'); + var zrEvent = require('zrender/tool/event'); + function Timeline(ecTheme, messageCenter, zr, option, myChart) { + Base.call(this, ecTheme, messageCenter, zr, option, myChart); + var self = this; + self._onclick = function (param) { + return self.__onclick(param); + }; + self._ondrift = function (dx, dy) { + return self.__ondrift(this, dx, dy); + }; + self._ondragend = function () { + return self.__ondragend(); + }; + self._setCurrentOption = function () { + var timelineOption = self.timelineOption; + self.currentIndex %= timelineOption.data.length; + var curOption = self.options[self.currentIndex] || {}; + self.myChart._setOption(curOption, timelineOption.notMerge, true); + self.messageCenter.dispatch(ecConfig.EVENT.TIMELINE_CHANGED, null, { + currentIndex: self.currentIndex, + data: timelineOption.data[self.currentIndex].name != null ? timelineOption.data[self.currentIndex].name : timelineOption.data[self.currentIndex] + }, self.myChart); + }; + self._onFrame = function () { + self._setCurrentOption(); + self._syncHandleShape(); + if (self.timelineOption.autoPlay) { + self.playTicket = setTimeout(function () { + self.currentIndex += 1; + if (!self.timelineOption.loop && self.currentIndex >= self.timelineOption.data.length) { + self.currentIndex = self.timelineOption.data.length - 1; + self.stop(); + return; + } + self._onFrame(); + }, self.timelineOption.playInterval); + } + }; + this.setTheme(false); + this.options = this.option.options; + this.currentIndex = this.timelineOption.currentIndex % this.timelineOption.data.length; + if (!this.timelineOption.notMerge && this.currentIndex !== 0) { + this.options[this.currentIndex] = zrUtil.merge(this.options[this.currentIndex], this.options[0]); + } + if (this.timelineOption.show) { + this._buildShape(); + this._syncHandleShape(); + } + this._setCurrentOption(); + if (this.timelineOption.autoPlay) { + var self = this; + this.playTicket = setTimeout(function () { + self.play(); + }, this.ecTheme.animationDuration != null ? this.ecTheme.animationDuration : ecConfig.animationDuration); + } + } + Timeline.prototype = { + type: ecConfig.COMPONENT_TYPE_TIMELINE, + _buildShape: function () { + this._location = this._getLocation(); + this._buildBackground(); + this._buildControl(); + this._chainPoint = this._getChainPoint(); + if (this.timelineOption.label.show) { + var interval = this._getInterval(); + for (var i = 0, len = this._chainPoint.length; i < len; i += interval) { + this._chainPoint[i].showLabel = true; + } + } + this._buildChain(); + this._buildHandle(); + for (var i = 0, l = this.shapeList.length; i < l; i++) { + this.zr.addShape(this.shapeList[i]); + } + }, + _getLocation: function () { + var timelineOption = this.timelineOption; + var padding = this.reformCssArray(this.timelineOption.padding); + var zrWidth = this.zr.getWidth(); + var x = this.parsePercent(timelineOption.x, zrWidth); + var x2 = this.parsePercent(timelineOption.x2, zrWidth); + var width; + if (timelineOption.width == null) { + width = zrWidth - x - x2; + x2 = zrWidth - x2; + } else { + width = this.parsePercent(timelineOption.width, zrWidth); + x2 = x + width; + } + var zrHeight = this.zr.getHeight(); + var height = this.parsePercent(timelineOption.height, zrHeight); + var y; + var y2; + if (timelineOption.y != null) { + y = this.parsePercent(timelineOption.y, zrHeight); + y2 = y + height; + } else { + y2 = zrHeight - this.parsePercent(timelineOption.y2, zrHeight); + y = y2 - height; + } + return { + x: x + padding[3], + y: y + padding[0], + x2: x2 - padding[1], + y2: y2 - padding[2], + width: width - padding[1] - padding[3], + height: height - padding[0] - padding[2] + }; + }, + _getReformedLabel: function (idx) { + var timelineOption = this.timelineOption; + var data = timelineOption.data[idx].name != null ? timelineOption.data[idx].name : timelineOption.data[idx]; + var formatter = timelineOption.data[idx].formatter || timelineOption.label.formatter; + if (formatter) { + if (typeof formatter === 'function') { + data = formatter.call(this.myChart, data); + } else if (typeof formatter === 'string') { + data = formatter.replace('{value}', data); + } + } + return data; + }, + _getInterval: function () { + var chainPoint = this._chainPoint; + var timelineOption = this.timelineOption; + var interval = timelineOption.label.interval; + if (interval === 'auto') { + var fontSize = timelineOption.label.textStyle.fontSize; + var data = timelineOption.data; + var dataLength = timelineOption.data.length; + if (dataLength > 3) { + var isEnough = false; + var labelSpace; + var labelSize; + interval = 0; + while (!isEnough && interval < dataLength) { + interval++; + isEnough = true; + for (var i = interval; i < dataLength; i += interval) { + labelSpace = chainPoint[i].x - chainPoint[i - interval].x; + if (timelineOption.label.rotate !== 0) { + labelSize = fontSize; + } else if (data[i].textStyle) { + labelSize = zrArea.getTextWidth(chainPoint[i].name, chainPoint[i].textFont); + } else { + var label = chainPoint[i].name + ''; + var wLen = (label.match(/\w/g) || '').length; + var oLen = label.length - wLen; + labelSize = wLen * fontSize * 2 / 3 + oLen * fontSize; + } + if (labelSpace < labelSize) { + isEnough = false; + break; + } + } + } + } else { + interval = 1; + } + } else { + interval = interval - 0 + 1; + } + return interval; + }, + _getChainPoint: function () { + var timelineOption = this.timelineOption; + var symbol = timelineOption.symbol.toLowerCase(); + var symbolSize = timelineOption.symbolSize; + var rotate = timelineOption.label.rotate; + var textStyle = timelineOption.label.textStyle; + var textFont = this.getFont(textStyle); + var dataTextStyle; + var data = timelineOption.data; + var x = this._location.x; + var y = this._location.y + this._location.height / 4 * 3; + var width = this._location.x2 - this._location.x; + var len = data.length; + function _getName(i) { + return data[i].name != null ? data[i].name : data[i] + ''; + } + var xList = []; + if (len > 1) { + var boundaryGap = width / len; + boundaryGap = boundaryGap > 50 ? 50 : boundaryGap < 20 ? 5 : boundaryGap; + width -= boundaryGap * 2; + if (timelineOption.type === 'number') { + for (var i = 0; i < len; i++) { + xList.push(x + boundaryGap + width / (len - 1) * i); + } + } else { + xList[0] = new Date(_getName(0).replace(/-/g, '/')); + xList[len - 1] = new Date(_getName(len - 1).replace(/-/g, '/')) - xList[0]; + for (var i = 1; i < len; i++) { + xList[i] = x + boundaryGap + width * (new Date(_getName(i).replace(/-/g, '/')) - xList[0]) / xList[len - 1]; + } + xList[0] = x + boundaryGap; + } + } else { + xList.push(x + width / 2); + } + var list = []; + var curSymbol; + var n; + var isEmpty; + var textAlign; + var rotation; + for (var i = 0; i < len; i++) { + x = xList[i]; + curSymbol = data[i].symbol && data[i].symbol.toLowerCase() || symbol; + if (curSymbol.match('empty')) { + curSymbol = curSymbol.replace('empty', ''); + isEmpty = true; + } else { + isEmpty = false; + } + if (curSymbol.match('star')) { + n = curSymbol.replace('star', '') - 0 || 5; + curSymbol = 'star'; + } + dataTextStyle = data[i].textStyle ? zrUtil.merge(data[i].textStyle || {}, textStyle) : textStyle; + textAlign = dataTextStyle.align || 'center'; + if (rotate) { + textAlign = rotate > 0 ? 'right' : 'left'; + rotation = [ + rotate * Math.PI / 180, + x, + y - 5 + ]; + } else { + rotation = false; + } + list.push({ + x: x, + n: n, + isEmpty: isEmpty, + symbol: curSymbol, + symbolSize: data[i].symbolSize || symbolSize, + color: data[i].color, + borderColor: data[i].borderColor, + borderWidth: data[i].borderWidth, + name: this._getReformedLabel(i), + textColor: dataTextStyle.color, + textAlign: textAlign, + textBaseline: dataTextStyle.baseline || 'middle', + textX: x, + textY: y - (rotate ? 5 : 0), + textFont: data[i].textStyle ? this.getFont(dataTextStyle) : textFont, + rotation: rotation, + showLabel: false + }); + } + return list; + }, + _buildBackground: function () { + var timelineOption = this.timelineOption; + var padding = this.reformCssArray(this.timelineOption.padding); + var width = this._location.width; + var height = this._location.height; + if (timelineOption.borderWidth !== 0 || timelineOption.backgroundColor.replace(/\s/g, '') != 'rgba(0,0,0,0)') { + this.shapeList.push(new RectangleShape({ + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: false, + style: { + x: this._location.x - padding[3], + y: this._location.y - padding[0], + width: width + padding[1] + padding[3], + height: height + padding[0] + padding[2], + brushType: timelineOption.borderWidth === 0 ? 'fill' : 'both', + color: timelineOption.backgroundColor, + strokeColor: timelineOption.borderColor, + lineWidth: timelineOption.borderWidth + } + })); + } + }, + _buildControl: function () { + var self = this; + var timelineOption = this.timelineOption; + var lineStyle = timelineOption.lineStyle; + var controlStyle = timelineOption.controlStyle; + if (timelineOption.controlPosition === 'none') { + return; + } + var iconSize = controlStyle.itemSize; + var iconGap = controlStyle.itemGap; + var x; + if (timelineOption.controlPosition === 'left') { + x = this._location.x; + this._location.x += (iconSize + iconGap) * 3; + } else { + x = this._location.x2 - ((iconSize + iconGap) * 3 - iconGap); + this._location.x2 -= (iconSize + iconGap) * 3; + } + var y = this._location.y; + var iconStyle = { + zlevel: this.getZlevelBase(), + z: this.getZBase() + 1, + style: { + iconType: 'timelineControl', + symbol: 'last', + x: x, + y: y, + width: iconSize, + height: iconSize, + brushType: 'stroke', + color: controlStyle.normal.color, + strokeColor: controlStyle.normal.color, + lineWidth: lineStyle.width + }, + highlightStyle: { + color: controlStyle.emphasis.color, + strokeColor: controlStyle.emphasis.color, + lineWidth: lineStyle.width + 1 + }, + clickable: true + }; + this._ctrLastShape = new IconShape(iconStyle); + this._ctrLastShape.onclick = function () { + self.last(); + }; + this.shapeList.push(this._ctrLastShape); + x += iconSize + iconGap; + this._ctrPlayShape = new IconShape(zrUtil.clone(iconStyle)); + this._ctrPlayShape.style.brushType = 'fill'; + this._ctrPlayShape.style.symbol = 'play'; + this._ctrPlayShape.style.status = this.timelineOption.autoPlay ? 'playing' : 'stop'; + this._ctrPlayShape.style.x = x; + this._ctrPlayShape.onclick = function () { + if (self._ctrPlayShape.style.status === 'stop') { + self.play(); + } else { + self.stop(); + } + }; + this.shapeList.push(this._ctrPlayShape); + x += iconSize + iconGap; + this._ctrNextShape = new IconShape(zrUtil.clone(iconStyle)); + this._ctrNextShape.style.symbol = 'next'; + this._ctrNextShape.style.x = x; + this._ctrNextShape.onclick = function () { + self.next(); + }; + this.shapeList.push(this._ctrNextShape); + }, + _buildChain: function () { + var timelineOption = this.timelineOption; + var lineStyle = timelineOption.lineStyle; + this._timelineShae = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: { + x: this._location.x, + y: this.subPixelOptimize(this._location.y, lineStyle.width), + width: this._location.x2 - this._location.x, + height: this._location.height, + chainPoint: this._chainPoint, + brushType: 'both', + strokeColor: lineStyle.color, + lineWidth: lineStyle.width, + lineType: lineStyle.type + }, + hoverable: false, + clickable: true, + onclick: this._onclick + }; + this._timelineShae = new ChainShape(this._timelineShae); + this.shapeList.push(this._timelineShae); + }, + _buildHandle: function () { + var curPoint = this._chainPoint[this.currentIndex]; + var symbolSize = curPoint.symbolSize + 1; + symbolSize = symbolSize < 5 ? 5 : symbolSize; + this._handleShape = { + zlevel: this.getZlevelBase(), + z: this.getZBase() + 1, + hoverable: false, + draggable: true, + style: { + iconType: 'diamond', + n: curPoint.n, + x: curPoint.x - symbolSize, + y: this._location.y + this._location.height / 4 - symbolSize, + width: symbolSize * 2, + height: symbolSize * 2, + brushType: 'both', + textPosition: 'specific', + textX: curPoint.x, + textY: this._location.y - this._location.height / 4, + textAlign: 'center', + textBaseline: 'middle' + }, + highlightStyle: {}, + ondrift: this._ondrift, + ondragend: this._ondragend + }; + this._handleShape = new IconShape(this._handleShape); + this.shapeList.push(this._handleShape); + }, + _syncHandleShape: function () { + if (!this.timelineOption.show) { + return; + } + var timelineOption = this.timelineOption; + var cpStyle = timelineOption.checkpointStyle; + var curPoint = this._chainPoint[this.currentIndex]; + this._handleShape.style.text = cpStyle.label.show ? curPoint.name : ''; + this._handleShape.style.textFont = curPoint.textFont; + this._handleShape.style.n = curPoint.n; + if (cpStyle.symbol === 'auto') { + this._handleShape.style.iconType = curPoint.symbol != 'none' ? curPoint.symbol : 'diamond'; + } else { + this._handleShape.style.iconType = cpStyle.symbol; + if (cpStyle.symbol.match('star')) { + this._handleShape.style.n = cpStyle.symbol.replace('star', '') - 0 || 5; + this._handleShape.style.iconType = 'star'; + } + } + var symbolSize; + if (cpStyle.symbolSize === 'auto') { + symbolSize = curPoint.symbolSize + 2; + symbolSize = symbolSize < 5 ? 5 : symbolSize; + } else { + symbolSize = cpStyle.symbolSize - 0; + } + this._handleShape.style.color = cpStyle.color === 'auto' ? curPoint.color ? curPoint.color : timelineOption.controlStyle.emphasis.color : cpStyle.color; + this._handleShape.style.textColor = cpStyle.label.textStyle.color === 'auto' ? this._handleShape.style.color : cpStyle.label.textStyle.color; + this._handleShape.highlightStyle.strokeColor = this._handleShape.style.strokeColor = cpStyle.borderColor === 'auto' ? curPoint.borderColor ? curPoint.borderColor : '#fff' : cpStyle.borderColor; + this._handleShape.style.lineWidth = cpStyle.borderWidth === 'auto' ? curPoint.borderWidth ? curPoint.borderWidth : 0 : cpStyle.borderWidth - 0; + this._handleShape.highlightStyle.lineWidth = this._handleShape.style.lineWidth + 1; + this.zr.animate(this._handleShape.id, 'style').when(500, { + x: curPoint.x - symbolSize, + textX: curPoint.x, + y: this._location.y + this._location.height / 4 - symbolSize, + width: symbolSize * 2, + height: symbolSize * 2 + }).start('ExponentialOut'); + }, + _findChainIndex: function (x) { + var chainPoint = this._chainPoint; + var len = chainPoint.length; + if (x <= chainPoint[0].x) { + return 0; + } else if (x >= chainPoint[len - 1].x) { + return len - 1; + } + for (var i = 0; i < len - 1; i++) { + if (x >= chainPoint[i].x && x <= chainPoint[i + 1].x) { + return Math.abs(x - chainPoint[i].x) < Math.abs(x - chainPoint[i + 1].x) ? i : i + 1; + } + } + }, + __onclick: function (param) { + var x = zrEvent.getX(param.event); + var newIndex = this._findChainIndex(x); + if (newIndex === this.currentIndex) { + return true; + } + this.currentIndex = newIndex; + this.timelineOption.autoPlay && this.stop(); + clearTimeout(this.playTicket); + this._onFrame(); + }, + __ondrift: function (shape, dx) { + this.timelineOption.autoPlay && this.stop(); + var chainPoint = this._chainPoint; + var len = chainPoint.length; + var newIndex; + if (shape.style.x + dx <= chainPoint[0].x - chainPoint[0].symbolSize) { + shape.style.x = chainPoint[0].x - chainPoint[0].symbolSize; + newIndex = 0; + } else if (shape.style.x + dx >= chainPoint[len - 1].x - chainPoint[len - 1].symbolSize) { + shape.style.x = chainPoint[len - 1].x - chainPoint[len - 1].symbolSize; + newIndex = len - 1; + } else { + shape.style.x += dx; + newIndex = this._findChainIndex(shape.style.x); + } + var curPoint = chainPoint[newIndex]; + var symbolSize = curPoint.symbolSize + 2; + shape.style.iconType = curPoint.symbol; + shape.style.n = curPoint.n; + shape.style.textX = shape.style.x + symbolSize / 2; + shape.style.y = this._location.y + this._location.height / 4 - symbolSize; + shape.style.width = symbolSize * 2; + shape.style.height = symbolSize * 2; + shape.style.text = curPoint.name; + if (newIndex === this.currentIndex) { + return true; + } + this.currentIndex = newIndex; + if (this.timelineOption.realtime) { + clearTimeout(this.playTicket); + var self = this; + this.playTicket = setTimeout(function () { + self._setCurrentOption(); + }, 200); + } + return true; + }, + __ondragend: function () { + this.isDragend = true; + }, + ondragend: function (param, status) { + if (!this.isDragend || !param.target) { + return; + } + !this.timelineOption.realtime && this._setCurrentOption(); + status.dragOut = true; + status.dragIn = true; + status.needRefresh = false; + this.isDragend = false; + this._syncHandleShape(); + return; + }, + last: function () { + this.timelineOption.autoPlay && this.stop(); + this.currentIndex -= 1; + if (this.currentIndex < 0) { + this.currentIndex = this.timelineOption.data.length - 1; + } + this._onFrame(); + return this.currentIndex; + }, + next: function () { + this.timelineOption.autoPlay && this.stop(); + this.currentIndex += 1; + if (this.currentIndex >= this.timelineOption.data.length) { + this.currentIndex = 0; + } + this._onFrame(); + return this.currentIndex; + }, + play: function (targetIndex, autoPlay) { + if (this._ctrPlayShape && this._ctrPlayShape.style.status != 'playing') { + this._ctrPlayShape.style.status = 'playing'; + this.zr.modShape(this._ctrPlayShape.id); + this.zr.refreshNextFrame(); + } + this.timelineOption.autoPlay = autoPlay != null ? autoPlay : true; + if (!this.timelineOption.autoPlay) { + clearTimeout(this.playTicket); + } + this.currentIndex = targetIndex != null ? targetIndex : this.currentIndex + 1; + if (this.currentIndex >= this.timelineOption.data.length) { + this.currentIndex = 0; + } + this._onFrame(); + return this.currentIndex; + }, + stop: function () { + if (this._ctrPlayShape && this._ctrPlayShape.style.status != 'stop') { + this._ctrPlayShape.style.status = 'stop'; + this.zr.modShape(this._ctrPlayShape.id); + this.zr.refreshNextFrame(); + } + this.timelineOption.autoPlay = false; + clearTimeout(this.playTicket); + return this.currentIndex; + }, + resize: function () { + if (this.timelineOption.show) { + this.clear(); + this._buildShape(); + this._syncHandleShape(); + } + }, + setTheme: function (needRefresh) { + this.timelineOption = this.reformOption(zrUtil.clone(this.option.timeline)); + this.timelineOption.label.textStyle = this.getTextStyle(this.timelineOption.label.textStyle); + this.timelineOption.checkpointStyle.label.textStyle = this.getTextStyle(this.timelineOption.checkpointStyle.label.textStyle); + if (!this.myChart.canvasSupported) { + this.timelineOption.realtime = false; + } + if (this.timelineOption.show && needRefresh) { + this.clear(); + this._buildShape(); + this._syncHandleShape(); + } + }, + onbeforDispose: function () { + clearTimeout(this.playTicket); + } + }; + function timelineControl(ctx, style) { + var lineWidth = 2; + var x = style.x + lineWidth; + var y = style.y + lineWidth + 2; + var width = style.width - lineWidth; + var height = style.height - lineWidth; + var symbol = style.symbol; + if (symbol === 'last') { + ctx.moveTo(x + width - 2, y + height / 3); + ctx.lineTo(x + width - 2, y); + ctx.lineTo(x + 2, y + height / 2); + ctx.lineTo(x + width - 2, y + height); + ctx.lineTo(x + width - 2, y + height / 3 * 2); + ctx.moveTo(x, y); + ctx.lineTo(x, y); + } else if (symbol === 'next') { + ctx.moveTo(x + 2, y + height / 3); + ctx.lineTo(x + 2, y); + ctx.lineTo(x + width - 2, y + height / 2); + ctx.lineTo(x + 2, y + height); + ctx.lineTo(x + 2, y + height / 3 * 2); + ctx.moveTo(x, y); + ctx.lineTo(x, y); + } else if (symbol === 'play') { + if (style.status === 'stop') { + ctx.moveTo(x + 2, y); + ctx.lineTo(x + width - 2, y + height / 2); + ctx.lineTo(x + 2, y + height); + ctx.lineTo(x + 2, y); + } else { + var delta = style.brushType === 'both' ? 2 : 3; + ctx.rect(x + 2, y, delta, height); + ctx.rect(x + width - delta - 2, y, delta, height); + } + } else if (symbol.match('image')) { + var imageLocation = ''; + imageLocation = symbol.replace(new RegExp('^image:\\/\\/'), ''); + symbol = IconShape.prototype.iconLibrary.image; + symbol(ctx, { + x: x, + y: y, + width: width, + height: height, + image: imageLocation + }); + } + } + IconShape.prototype.iconLibrary['timelineControl'] = timelineControl; + zrUtil.inherits(Timeline, Base); + require('../component').define('timeline', Timeline); + return Timeline; +});define('zrender/shape/Image', [ + 'require', + './Base', + '../tool/util' +], function (require) { + var Base = require('./Base'); + var ZImage = function (options) { + Base.call(this, options); + }; + ZImage.prototype = { + type: 'image', + brush: function (ctx, isHighlight, refreshNextFrame) { + var style = this.style || {}; + if (isHighlight) { + style = this.getHighlightStyle(style, this.highlightStyle || {}); + } + var image = style.image; + var self = this; + if (!this._imageCache) { + this._imageCache = {}; + } + if (typeof image === 'string') { + var src = image; + if (this._imageCache[src]) { + image = this._imageCache[src]; + } else { + image = new Image(); + image.onload = function () { + image.onload = null; + self.modSelf(); + refreshNextFrame(); + }; + image.src = src; + this._imageCache[src] = image; + } + } + if (image) { + if (image.nodeName.toUpperCase() == 'IMG') { + if (window.ActiveXObject) { + if (image.readyState != 'complete') { + return; + } + } else { + if (!image.complete) { + return; + } + } + } + var width = style.width || image.width; + var height = style.height || image.height; + var x = style.x; + var y = style.y; + if (!image.width || !image.height) { + return; + } + ctx.save(); + this.doClip(ctx); + this.setContext(ctx, style); + this.setTransform(ctx); + if (style.sWidth && style.sHeight) { + var sx = style.sx || 0; + var sy = style.sy || 0; + ctx.drawImage(image, sx, sy, style.sWidth, style.sHeight, x, y, width, height); + } else if (style.sx && style.sy) { + var sx = style.sx; + var sy = style.sy; + var sWidth = width - sx; + var sHeight = height - sy; + ctx.drawImage(image, sx, sy, sWidth, sHeight, x, y, width, height); + } else { + ctx.drawImage(image, x, y, width, height); + } + if (!style.width) { + style.width = width; + } + if (!style.height) { + style.height = height; + } + if (!this.style.width) { + this.style.width = width; + } + if (!this.style.height) { + this.style.height = height; + } + this.drawText(ctx, style, this.style); + ctx.restore(); + } + }, + getRect: function (style) { + return { + x: style.x, + y: style.y, + width: style.width, + height: style.height + }; + }, + clearCache: function () { + this._imageCache = {}; + } + }; + require('../tool/util').inherits(ZImage, Base); + return ZImage; +});define('zrender/loadingEffect/Bar', [ + 'require', + './Base', + '../tool/util', + '../tool/color', + '../shape/Rectangle' +], function (require) { + var Base = require('./Base'); + var util = require('../tool/util'); + var zrColor = require('../tool/color'); + var RectangleShape = require('../shape/Rectangle'); + function Bar(options) { + Base.call(this, options); + } + util.inherits(Bar, Base); + Bar.prototype._start = function (addShapeHandle, refreshHandle) { + var options = util.merge(this.options, { + textStyle: { color: '#888' }, + backgroundColor: 'rgba(250, 250, 250, 0.8)', + effectOption: { + x: 0, + y: this.canvasHeight / 2 - 30, + width: this.canvasWidth, + height: 5, + brushType: 'fill', + timeInterval: 100 + } + }); + var textShape = this.createTextShape(options.textStyle); + var background = this.createBackgroundShape(options.backgroundColor); + var effectOption = options.effectOption; + var barShape = new RectangleShape({ highlightStyle: util.clone(effectOption) }); + barShape.highlightStyle.color = effectOption.color || zrColor.getLinearGradient(effectOption.x, effectOption.y, effectOption.x + effectOption.width, effectOption.y + effectOption.height, [ + [ + 0, + '#ff6400' + ], + [ + 0.5, + '#ffe100' + ], + [ + 1, + '#b1ff00' + ] + ]); + if (options.progress != null) { + addShapeHandle(background); + barShape.highlightStyle.width = this.adjust(options.progress, [ + 0, + 1 + ]) * options.effectOption.width; + addShapeHandle(barShape); + addShapeHandle(textShape); + refreshHandle(); + return; + } else { + barShape.highlightStyle.width = 0; + return setInterval(function () { + addShapeHandle(background); + if (barShape.highlightStyle.width < effectOption.width) { + barShape.highlightStyle.width += 8; + } else { + barShape.highlightStyle.width = 0; + } + addShapeHandle(barShape); + addShapeHandle(textShape); + refreshHandle(); + }, effectOption.timeInterval); + } + }; + return Bar; +});define('zrender/loadingEffect/Bubble', [ + 'require', + './Base', + '../tool/util', + '../tool/color', + '../shape/Circle' +], function (require) { + var Base = require('./Base'); + var util = require('../tool/util'); + var zrColor = require('../tool/color'); + var CircleShape = require('../shape/Circle'); + function Bubble(options) { + Base.call(this, options); + } + util.inherits(Bubble, Base); + Bubble.prototype._start = function (addShapeHandle, refreshHandle) { + var options = util.merge(this.options, { + textStyle: { color: '#888' }, + backgroundColor: 'rgba(250, 250, 250, 0.8)', + effect: { + n: 50, + lineWidth: 2, + brushType: 'stroke', + color: 'random', + timeInterval: 100 + } + }); + var textShape = this.createTextShape(options.textStyle); + var background = this.createBackgroundShape(options.backgroundColor); + var effectOption = options.effect; + var n = effectOption.n; + var brushType = effectOption.brushType; + var lineWidth = effectOption.lineWidth; + var shapeList = []; + var canvasWidth = this.canvasWidth; + var canvasHeight = this.canvasHeight; + for (var i = 0; i < n; i++) { + var color = effectOption.color == 'random' ? zrColor.alpha(zrColor.random(), 0.3) : effectOption.color; + shapeList[i] = new CircleShape({ + highlightStyle: { + x: Math.ceil(Math.random() * canvasWidth), + y: Math.ceil(Math.random() * canvasHeight), + r: Math.ceil(Math.random() * 40), + brushType: brushType, + color: color, + strokeColor: color, + lineWidth: lineWidth + }, + animationY: Math.ceil(Math.random() * 20) + }); + } + return setInterval(function () { + addShapeHandle(background); + for (var i = 0; i < n; i++) { + var style = shapeList[i].highlightStyle; + if (style.y - shapeList[i].animationY + style.r <= 0) { + shapeList[i].highlightStyle.y = canvasHeight + style.r; + shapeList[i].highlightStyle.x = Math.ceil(Math.random() * canvasWidth); + } + shapeList[i].highlightStyle.y -= shapeList[i].animationY; + addShapeHandle(shapeList[i]); + } + addShapeHandle(textShape); + refreshHandle(); + }, effectOption.timeInterval); + }; + return Bubble; +});define('zrender/loadingEffect/DynamicLine', [ + 'require', + './Base', + '../tool/util', + '../tool/color', + '../shape/Line' +], function (require) { + var Base = require('./Base'); + var util = require('../tool/util'); + var zrColor = require('../tool/color'); + var LineShape = require('../shape/Line'); + function DynamicLine(options) { + Base.call(this, options); + } + util.inherits(DynamicLine, Base); + DynamicLine.prototype._start = function (addShapeHandle, refreshHandle) { + var options = util.merge(this.options, { + textStyle: { color: '#fff' }, + backgroundColor: 'rgba(0, 0, 0, 0.8)', + effectOption: { + n: 30, + lineWidth: 1, + color: 'random', + timeInterval: 100 + } + }); + var textShape = this.createTextShape(options.textStyle); + var background = this.createBackgroundShape(options.backgroundColor); + var effectOption = options.effectOption; + var n = effectOption.n; + var lineWidth = effectOption.lineWidth; + var shapeList = []; + var canvasWidth = this.canvasWidth; + var canvasHeight = this.canvasHeight; + for (var i = 0; i < n; i++) { + var xStart = -Math.ceil(Math.random() * 1000); + var len = Math.ceil(Math.random() * 400); + var pos = Math.ceil(Math.random() * canvasHeight); + var color = effectOption.color == 'random' ? zrColor.random() : effectOption.color; + shapeList[i] = new LineShape({ + highlightStyle: { + xStart: xStart, + yStart: pos, + xEnd: xStart + len, + yEnd: pos, + strokeColor: color, + lineWidth: lineWidth + }, + animationX: Math.ceil(Math.random() * 100), + len: len + }); + } + return setInterval(function () { + addShapeHandle(background); + for (var i = 0; i < n; i++) { + var style = shapeList[i].highlightStyle; + if (style.xStart >= canvasWidth) { + shapeList[i].len = Math.ceil(Math.random() * 400); + style.xStart = -400; + style.xEnd = -400 + shapeList[i].len; + style.yStart = Math.ceil(Math.random() * canvasHeight); + style.yEnd = style.yStart; + } + style.xStart += shapeList[i].animationX; + style.xEnd += shapeList[i].animationX; + addShapeHandle(shapeList[i]); + } + addShapeHandle(textShape); + refreshHandle(); + }, effectOption.timeInterval); + }; + return DynamicLine; +});define('zrender/loadingEffect/Ring', [ + 'require', + './Base', + '../tool/util', + '../tool/color', + '../shape/Ring', + '../shape/Sector' +], function (require) { + var Base = require('./Base'); + var util = require('../tool/util'); + var zrColor = require('../tool/color'); + var RingShape = require('../shape/Ring'); + var SectorShape = require('../shape/Sector'); + function Ring(options) { + Base.call(this, options); + } + util.inherits(Ring, Base); + Ring.prototype._start = function (addShapeHandle, refreshHandle) { + var options = util.merge(this.options, { + textStyle: { color: '#07a' }, + backgroundColor: 'rgba(250, 250, 250, 0.8)', + effect: { + x: this.canvasWidth / 2, + y: this.canvasHeight / 2, + r0: 60, + r: 100, + color: '#bbdcff', + brushType: 'fill', + textPosition: 'inside', + textFont: 'normal 30px verdana', + textColor: 'rgba(30, 144, 255, 0.6)', + timeInterval: 100 + } + }); + var effectOption = options.effect; + var textStyle = options.textStyle; + if (textStyle.x == null) { + textStyle.x = effectOption.x; + } + if (textStyle.y == null) { + textStyle.y = effectOption.y + (effectOption.r0 + effectOption.r) / 2 - 5; + } + var textShape = this.createTextShape(options.textStyle); + var background = this.createBackgroundShape(options.backgroundColor); + var x = effectOption.x; + var y = effectOption.y; + var r0 = effectOption.r0 + 6; + var r = effectOption.r - 6; + var color = effectOption.color; + var darkColor = zrColor.lift(color, 0.1); + var shapeRing = new RingShape({ highlightStyle: util.clone(effectOption) }); + var shapeList = []; + var clolrList = zrColor.getGradientColors([ + '#ff6400', + '#ffe100', + '#97ff00' + ], 25); + var preAngle = 15; + var endAngle = 240; + for (var i = 0; i < 16; i++) { + shapeList.push(new SectorShape({ + highlightStyle: { + x: x, + y: y, + r0: r0, + r: r, + startAngle: endAngle - preAngle, + endAngle: endAngle, + brushType: 'fill', + color: darkColor + }, + _color: zrColor.getLinearGradient(x + r0 * Math.cos(endAngle, true), y - r0 * Math.sin(endAngle, true), x + r0 * Math.cos(endAngle - preAngle, true), y - r0 * Math.sin(endAngle - preAngle, true), [ + [ + 0, + clolrList[i * 2] + ], + [ + 1, + clolrList[i * 2 + 1] + ] + ]) + })); + endAngle -= preAngle; + } + endAngle = 360; + for (var i = 0; i < 4; i++) { + shapeList.push(new SectorShape({ + highlightStyle: { + x: x, + y: y, + r0: r0, + r: r, + startAngle: endAngle - preAngle, + endAngle: endAngle, + brushType: 'fill', + color: darkColor + }, + _color: zrColor.getLinearGradient(x + r0 * Math.cos(endAngle, true), y - r0 * Math.sin(endAngle, true), x + r0 * Math.cos(endAngle - preAngle, true), y - r0 * Math.sin(endAngle - preAngle, true), [ + [ + 0, + clolrList[i * 2 + 32] + ], + [ + 1, + clolrList[i * 2 + 33] + ] + ]) + })); + endAngle -= preAngle; + } + var n = 0; + if (options.progress != null) { + addShapeHandle(background); + n = this.adjust(options.progress, [ + 0, + 1 + ]).toFixed(2) * 100 / 5; + shapeRing.highlightStyle.text = n * 5 + '%'; + addShapeHandle(shapeRing); + for (var i = 0; i < 20; i++) { + shapeList[i].highlightStyle.color = i < n ? shapeList[i]._color : darkColor; + addShapeHandle(shapeList[i]); + } + addShapeHandle(textShape); + refreshHandle(); + return; + } + return setInterval(function () { + addShapeHandle(background); + n += n >= 20 ? -20 : 1; + addShapeHandle(shapeRing); + for (var i = 0; i < 20; i++) { + shapeList[i].highlightStyle.color = i < n ? shapeList[i]._color : darkColor; + addShapeHandle(shapeList[i]); + } + addShapeHandle(textShape); + refreshHandle(); + }, effectOption.timeInterval); + }; + return Ring; +});define('zrender/loadingEffect/Spin', [ + 'require', + './Base', + '../tool/util', + '../tool/color', + '../tool/area', + '../shape/Sector' +], function (require) { + var Base = require('./Base'); + var util = require('../tool/util'); + var zrColor = require('../tool/color'); + var zrArea = require('../tool/area'); + var SectorShape = require('../shape/Sector'); + function Spin(options) { + Base.call(this, options); + } + util.inherits(Spin, Base); + Spin.prototype._start = function (addShapeHandle, refreshHandle) { + var options = util.merge(this.options, { + textStyle: { + color: '#fff', + textAlign: 'start' + }, + backgroundColor: 'rgba(0, 0, 0, 0.8)' + }); + var textShape = this.createTextShape(options.textStyle); + var textGap = 10; + var textWidth = zrArea.getTextWidth(textShape.highlightStyle.text, textShape.highlightStyle.textFont); + var textHeight = zrArea.getTextHeight(textShape.highlightStyle.text, textShape.highlightStyle.textFont); + var effectOption = util.merge(this.options.effect || {}, { + r0: 9, + r: 15, + n: 18, + color: '#fff', + timeInterval: 100 + }); + var location = this.getLocation(this.options.textStyle, textWidth + textGap + effectOption.r * 2, Math.max(effectOption.r * 2, textHeight)); + effectOption.x = location.x + effectOption.r; + effectOption.y = textShape.highlightStyle.y = location.y + location.height / 2; + textShape.highlightStyle.x = effectOption.x + effectOption.r + textGap; + var background = this.createBackgroundShape(options.backgroundColor); + var n = effectOption.n; + var x = effectOption.x; + var y = effectOption.y; + var r0 = effectOption.r0; + var r = effectOption.r; + var color = effectOption.color; + var shapeList = []; + var preAngle = Math.round(180 / n); + for (var i = 0; i < n; i++) { + shapeList[i] = new SectorShape({ + highlightStyle: { + x: x, + y: y, + r0: r0, + r: r, + startAngle: preAngle * i * 2, + endAngle: preAngle * i * 2 + preAngle, + color: zrColor.alpha(color, (i + 1) / n), + brushType: 'fill' + } + }); + } + var pos = [ + 0, + x, + y + ]; + return setInterval(function () { + addShapeHandle(background); + pos[0] -= 0.3; + for (var i = 0; i < n; i++) { + shapeList[i].rotation = pos; + addShapeHandle(shapeList[i]); + } + addShapeHandle(textShape); + refreshHandle(); + }, effectOption.timeInterval); + }; + return Spin; +});define('zrender/loadingEffect/Whirling', [ + 'require', + './Base', + '../tool/util', + '../tool/area', + '../shape/Ring', + '../shape/Droplet', + '../shape/Circle' +], function (require) { + var Base = require('./Base'); + var util = require('../tool/util'); + var zrArea = require('../tool/area'); + var RingShape = require('../shape/Ring'); + var DropletShape = require('../shape/Droplet'); + var CircleShape = require('../shape/Circle'); + function Whirling(options) { + Base.call(this, options); + } + util.inherits(Whirling, Base); + Whirling.prototype._start = function (addShapeHandle, refreshHandle) { + var options = util.merge(this.options, { + textStyle: { + color: '#888', + textAlign: 'start' + }, + backgroundColor: 'rgba(250, 250, 250, 0.8)' + }); + var textShape = this.createTextShape(options.textStyle); + var textGap = 10; + var textWidth = zrArea.getTextWidth(textShape.highlightStyle.text, textShape.highlightStyle.textFont); + var textHeight = zrArea.getTextHeight(textShape.highlightStyle.text, textShape.highlightStyle.textFont); + var effectOption = util.merge(this.options.effect || {}, { + r: 18, + colorIn: '#fff', + colorOut: '#555', + colorWhirl: '#6cf', + timeInterval: 50 + }); + var location = this.getLocation(this.options.textStyle, textWidth + textGap + effectOption.r * 2, Math.max(effectOption.r * 2, textHeight)); + effectOption.x = location.x + effectOption.r; + effectOption.y = textShape.highlightStyle.y = location.y + location.height / 2; + textShape.highlightStyle.x = effectOption.x + effectOption.r + textGap; + var background = this.createBackgroundShape(options.backgroundColor); + var droplet = new DropletShape({ + highlightStyle: { + a: Math.round(effectOption.r / 2), + b: Math.round(effectOption.r - effectOption.r / 6), + brushType: 'fill', + color: effectOption.colorWhirl + } + }); + var circleIn = new CircleShape({ + highlightStyle: { + r: Math.round(effectOption.r / 6), + brushType: 'fill', + color: effectOption.colorIn + } + }); + var circleOut = new RingShape({ + highlightStyle: { + r0: Math.round(effectOption.r - effectOption.r / 3), + r: effectOption.r, + brushType: 'fill', + color: effectOption.colorOut + } + }); + var pos = [ + 0, + effectOption.x, + effectOption.y + ]; + droplet.highlightStyle.x = circleIn.highlightStyle.x = circleOut.highlightStyle.x = pos[1]; + droplet.highlightStyle.y = circleIn.highlightStyle.y = circleOut.highlightStyle.y = pos[2]; + return setInterval(function () { + addShapeHandle(background); + addShapeHandle(circleOut); + pos[0] -= 0.3; + droplet.rotation = pos; + addShapeHandle(droplet); + addShapeHandle(circleIn); + addShapeHandle(textShape); + refreshHandle(); + }, effectOption.timeInterval); + }; + return Whirling; +});define('echarts/theme/macarons', [], function () { + var theme = { + color: [ + '#2ec7c9', + '#b6a2de', + '#5ab1ef', + '#ffb980', + '#d87a80', + '#8d98b3', + '#e5cf0d', + '#97b552', + '#95706d', + '#dc69aa', + '#07a2a4', + '#9a7fd1', + '#588dd5', + '#f5994e', + '#c05050', + '#59678c', + '#c9ab00', + '#7eb00a', + '#6f5553', + '#c14089' + ], + title: { + textStyle: { + fontWeight: 'normal', + color: '#008acd' + } + }, + dataRange: { + itemWidth: 15, + color: [ + '#5ab1ef', + '#e0ffff' + ] + }, + toolbox: { + color: [ + '#1e90ff', + '#1e90ff', + '#1e90ff', + '#1e90ff' + ], + effectiveColor: '#ff4500' + }, + tooltip: { + backgroundColor: 'rgba(50,50,50,0.5)', + axisPointer: { + type: 'line', + lineStyle: { color: '#008acd' }, + crossStyle: { color: '#008acd' }, + shadowStyle: { color: 'rgba(200,200,200,0.2)' } + } + }, + dataZoom: { + dataBackgroundColor: '#efefff', + fillerColor: 'rgba(182,162,222,0.2)', + handleColor: '#008acd' + }, + grid: { borderColor: '#eee' }, + categoryAxis: { + axisLine: { lineStyle: { color: '#008acd' } }, + splitLine: { lineStyle: { color: ['#eee'] } } + }, + valueAxis: { + axisLine: { lineStyle: { color: '#008acd' } }, + splitArea: { + show: true, + areaStyle: { + color: [ + 'rgba(250,250,250,0.1)', + 'rgba(200,200,200,0.1)' + ] + } + }, + splitLine: { lineStyle: { color: ['#eee'] } } + }, + polar: { + axisLine: { lineStyle: { color: '#ddd' } }, + splitArea: { + show: true, + areaStyle: { + color: [ + 'rgba(250,250,250,0.2)', + 'rgba(200,200,200,0.2)' + ] + } + }, + splitLine: { lineStyle: { color: '#ddd' } } + }, + timeline: { + lineStyle: { color: '#008acd' }, + controlStyle: { + normal: { color: '#008acd' }, + emphasis: { color: '#008acd' } + }, + symbol: 'emptyCircle', + symbolSize: 3 + }, + bar: { + itemStyle: { + normal: { barBorderRadius: 5 }, + emphasis: { barBorderRadius: 5 } + } + }, + line: { + smooth: true, + symbol: 'emptyCircle', + symbolSize: 3 + }, + k: { + itemStyle: { + normal: { + color: '#d87a80', + color0: '#2ec7c9', + lineStyle: { + color: '#d87a80', + color0: '#2ec7c9' + } + } + } + }, + scatter: { + symbol: 'circle', + symbolSize: 4 + }, + radar: { + symbol: 'emptyCircle', + symbolSize: 3 + }, + map: { + itemStyle: { + normal: { + areaStyle: { color: '#ddd' }, + label: { textStyle: { color: '#d87a80' } } + }, + emphasis: { areaStyle: { color: '#fe994e' } } + } + }, + force: { itemStyle: { normal: { linkStyle: { color: '#1e90ff' } } } }, + chord: { + itemStyle: { + normal: { + borderWidth: 1, + borderColor: 'rgba(128, 128, 128, 0.5)', + chordStyle: { lineStyle: { color: 'rgba(128, 128, 128, 0.5)' } } + }, + emphasis: { + borderWidth: 1, + borderColor: 'rgba(128, 128, 128, 0.5)', + chordStyle: { lineStyle: { color: 'rgba(128, 128, 128, 0.5)' } } + } + } + }, + gauge: { + axisLine: { + lineStyle: { + color: [ + [ + 0.2, + '#2ec7c9' + ], + [ + 0.8, + '#5ab1ef' + ], + [ + 1, + '#d87a80' + ] + ], + width: 10 + } + }, + axisTick: { + splitNumber: 10, + length: 15, + lineStyle: { color: 'auto' } + }, + splitLine: { + length: 22, + lineStyle: { color: 'auto' } + }, + pointer: { width: 5 } + }, + textStyle: { fontFamily: '微软雅黑, Arial, Verdana, sans-serif' } + }; + return theme; +});define('echarts/theme/infographic', [], function () { + var theme = { + color: [ + '#C1232B', + '#B5C334', + '#FCCE10', + '#E87C25', + '#27727B', + '#FE8463', + '#9BCA63', + '#FAD860', + '#F3A43B', + '#60C0DD', + '#D7504B', + '#C6E579', + '#F4E001', + '#F0805A', + '#26C0C0' + ], + title: { + textStyle: { + fontWeight: 'normal', + color: '#27727B' + } + }, + dataRange: { + x: 'right', + y: 'center', + itemWidth: 5, + itemHeight: 25, + color: [ + '#C1232B', + '#FCCE10' + ] + }, + toolbox: { + color: [ + '#C1232B', + '#B5C334', + '#FCCE10', + '#E87C25', + '#27727B', + '#FE8463', + '#9BCA63', + '#FAD860', + '#F3A43B', + '#60C0DD' + ], + effectiveColor: '#ff4500' + }, + tooltip: { + backgroundColor: 'rgba(50,50,50,0.5)', + axisPointer: { + type: 'line', + lineStyle: { + color: '#27727B', + type: 'dashed' + }, + crossStyle: { color: '#27727B' }, + shadowStyle: { color: 'rgba(200,200,200,0.3)' } + } + }, + dataZoom: { + dataBackgroundColor: 'rgba(181,195,52,0.3)', + fillerColor: 'rgba(181,195,52,0.2)', + handleColor: '#27727B' + }, + grid: { borderWidth: 0 }, + categoryAxis: { + axisLine: { lineStyle: { color: '#27727B' } }, + splitLine: { show: false } + }, + valueAxis: { + axisLine: { show: false }, + splitArea: { show: false }, + splitLine: { + lineStyle: { + color: ['#ccc'], + type: 'dashed' + } + } + }, + polar: { + axisLine: { lineStyle: { color: '#ddd' } }, + splitArea: { + show: true, + areaStyle: { + color: [ + 'rgba(250,250,250,0.2)', + 'rgba(200,200,200,0.2)' + ] + } + }, + splitLine: { lineStyle: { color: '#ddd' } } + }, + timeline: { + lineStyle: { color: '#27727B' }, + controlStyle: { + normal: { color: '#27727B' }, + emphasis: { color: '#27727B' } + }, + symbol: 'emptyCircle', + symbolSize: 3 + }, + line: { + itemStyle: { + normal: { + borderWidth: 2, + borderColor: '#fff', + lineStyle: { width: 3 } + }, + emphasis: { borderWidth: 0 } + }, + symbol: 'circle', + symbolSize: 3.5 + }, + k: { + itemStyle: { + normal: { + color: '#C1232B', + color0: '#B5C334', + lineStyle: { + width: 1, + color: '#C1232B', + color0: '#B5C334' + } + } + } + }, + scatter: { + itemStyle: { + normal: { + borderWidth: 1, + borderColor: 'rgba(200,200,200,0.5)' + }, + emphasis: { borderWidth: 0 } + }, + symbol: 'star4', + symbolSize: 4 + }, + radar: { + symbol: 'emptyCircle', + symbolSize: 3 + }, + map: { + itemStyle: { + normal: { + areaStyle: { color: '#ddd' }, + label: { textStyle: { color: '#C1232B' } } + }, + emphasis: { + areaStyle: { color: '#fe994e' }, + label: { textStyle: { color: 'rgb(100,0,0)' } } + } + } + }, + force: { itemStyle: { normal: { linkStyle: { color: '#27727B' } } } }, + chord: { + itemStyle: { + normal: { + borderWidth: 1, + borderColor: 'rgba(128, 128, 128, 0.5)', + chordStyle: { lineStyle: { color: 'rgba(128, 128, 128, 0.5)' } } + }, + emphasis: { + borderWidth: 1, + borderColor: 'rgba(128, 128, 128, 0.5)', + chordStyle: { lineStyle: { color: 'rgba(128, 128, 128, 0.5)' } } + } + } + }, + gauge: { + center: [ + '50%', + '80%' + ], + radius: '100%', + startAngle: 180, + endAngle: 0, + axisLine: { + show: true, + lineStyle: { + color: [ + [ + 0.2, + '#B5C334' + ], + [ + 0.8, + '#27727B' + ], + [ + 1, + '#C1232B' + ] + ], + width: '40%' + } + }, + axisTick: { + splitNumber: 2, + length: 5, + lineStyle: { color: '#fff' } + }, + axisLabel: { + textStyle: { + color: '#fff', + fontWeight: 'bolder' + } + }, + splitLine: { + length: '5%', + lineStyle: { color: '#fff' } + }, + pointer: { + width: '40%', + length: '80%', + color: '#fff' + }, + title: { + offsetCenter: [ + 0, + -20 + ], + textStyle: { + color: 'auto', + fontSize: 20 + } + }, + detail: { + offsetCenter: [ + 0, + 0 + ], + textStyle: { + color: 'auto', + fontSize: 40 + } + } + }, + textStyle: { fontFamily: '微软雅黑, Arial, Verdana, sans-serif' } + }; + return theme; +});define('zrender/dep/excanvas', ['require'], function (require) { + if (!document.createElement('canvas').getContext) { + (function () { + var m = Math; + var mr = m.round; + var ms = m.sin; + var mc = m.cos; + var abs = m.abs; + var sqrt = m.sqrt; + var Z = 10; + var Z2 = Z / 2; + var IE_VERSION = +navigator.userAgent.match(/MSIE ([\d.]+)?/)[1]; + function getContext() { + return this.context_ || (this.context_ = new CanvasRenderingContext2D_(this)); + } + var slice = Array.prototype.slice; + function bind(f, obj, var_args) { + var a = slice.call(arguments, 2); + return function () { + return f.apply(obj, a.concat(slice.call(arguments))); + }; + } + function encodeHtmlAttribute(s) { + return String(s).replace(/&/g, '&').replace(/"/g, '"'); + } + function addNamespace(doc, prefix, urn) { + if (!doc.namespaces[prefix]) { + doc.namespaces.add(prefix, urn, '#default#VML'); + } + } + function addNamespacesAndStylesheet(doc) { + addNamespace(doc, 'g_vml_', 'urn:schemas-microsoft-com:vml'); + addNamespace(doc, 'g_o_', 'urn:schemas-microsoft-com:office:office'); + if (!doc.styleSheets['ex_canvas_']) { + var ss = doc.createStyleSheet(); + ss.owningElement.id = 'ex_canvas_'; + ss.cssText = 'canvas{display:inline-block;overflow:hidden;' + 'text-align:left;width:300px;height:150px}'; + } + } + addNamespacesAndStylesheet(document); + var G_vmlCanvasManager_ = { + init: function (opt_doc) { + var doc = opt_doc || document; + doc.createElement('canvas'); + doc.attachEvent('onreadystatechange', bind(this.init_, this, doc)); + }, + init_: function (doc) { + var els = doc.getElementsByTagName('canvas'); + for (var i = 0; i < els.length; i++) { + this.initElement(els[i]); + } + }, + initElement: function (el) { + if (!el.getContext) { + el.getContext = getContext; + addNamespacesAndStylesheet(el.ownerDocument); + el.innerHTML = ''; + el.attachEvent('onpropertychange', onPropertyChange); + el.attachEvent('onresize', onResize); + var attrs = el.attributes; + if (attrs.width && attrs.width.specified) { + el.style.width = attrs.width.nodeValue + 'px'; + } else { + el.width = el.clientWidth; + } + if (attrs.height && attrs.height.specified) { + el.style.height = attrs.height.nodeValue + 'px'; + } else { + el.height = el.clientHeight; + } + } + return el; + } + }; + function onPropertyChange(e) { + var el = e.srcElement; + switch (e.propertyName) { + case 'width': + el.getContext().clearRect(); + el.style.width = el.attributes.width.nodeValue + 'px'; + el.firstChild.style.width = el.clientWidth + 'px'; + break; + case 'height': + el.getContext().clearRect(); + el.style.height = el.attributes.height.nodeValue + 'px'; + el.firstChild.style.height = el.clientHeight + 'px'; + break; + } + } + function onResize(e) { + var el = e.srcElement; + if (el.firstChild) { + el.firstChild.style.width = el.clientWidth + 'px'; + el.firstChild.style.height = el.clientHeight + 'px'; + } + } + G_vmlCanvasManager_.init(); + var decToHex = []; + for (var i = 0; i < 16; i++) { + for (var j = 0; j < 16; j++) { + decToHex[i * 16 + j] = i.toString(16) + j.toString(16); + } + } + function createMatrixIdentity() { + return [ + [ + 1, + 0, + 0 + ], + [ + 0, + 1, + 0 + ], + [ + 0, + 0, + 1 + ] + ]; + } + function matrixMultiply(m1, m2) { + var result = createMatrixIdentity(); + for (var x = 0; x < 3; x++) { + for (var y = 0; y < 3; y++) { + var sum = 0; + for (var z = 0; z < 3; z++) { + sum += m1[x][z] * m2[z][y]; + } + result[x][y] = sum; + } + } + return result; + } + function copyState(o1, o2) { + o2.fillStyle = o1.fillStyle; + o2.lineCap = o1.lineCap; + o2.lineJoin = o1.lineJoin; + o2.lineWidth = o1.lineWidth; + o2.miterLimit = o1.miterLimit; + o2.shadowBlur = o1.shadowBlur; + o2.shadowColor = o1.shadowColor; + o2.shadowOffsetX = o1.shadowOffsetX; + o2.shadowOffsetY = o1.shadowOffsetY; + o2.strokeStyle = o1.strokeStyle; + o2.globalAlpha = o1.globalAlpha; + o2.font = o1.font; + o2.textAlign = o1.textAlign; + o2.textBaseline = o1.textBaseline; + o2.scaleX_ = o1.scaleX_; + o2.scaleY_ = o1.scaleY_; + o2.lineScale_ = o1.lineScale_; + } + var colorData = { + aliceblue: '#F0F8FF', + antiquewhite: '#FAEBD7', + aquamarine: '#7FFFD4', + azure: '#F0FFFF', + beige: '#F5F5DC', + bisque: '#FFE4C4', + black: '#000000', + blanchedalmond: '#FFEBCD', + blueviolet: '#8A2BE2', + brown: '#A52A2A', + burlywood: '#DEB887', + cadetblue: '#5F9EA0', + chartreuse: '#7FFF00', + chocolate: '#D2691E', + coral: '#FF7F50', + cornflowerblue: '#6495ED', + cornsilk: '#FFF8DC', + crimson: '#DC143C', + cyan: '#00FFFF', + darkblue: '#00008B', + darkcyan: '#008B8B', + darkgoldenrod: '#B8860B', + darkgray: '#A9A9A9', + darkgreen: '#006400', + darkgrey: '#A9A9A9', + darkkhaki: '#BDB76B', + darkmagenta: '#8B008B', + darkolivegreen: '#556B2F', + darkorange: '#FF8C00', + darkorchid: '#9932CC', + darkred: '#8B0000', + darksalmon: '#E9967A', + darkseagreen: '#8FBC8F', + darkslateblue: '#483D8B', + darkslategray: '#2F4F4F', + darkslategrey: '#2F4F4F', + darkturquoise: '#00CED1', + darkviolet: '#9400D3', + deeppink: '#FF1493', + deepskyblue: '#00BFFF', + dimgray: '#696969', + dimgrey: '#696969', + dodgerblue: '#1E90FF', + firebrick: '#B22222', + floralwhite: '#FFFAF0', + forestgreen: '#228B22', + gainsboro: '#DCDCDC', + ghostwhite: '#F8F8FF', + gold: '#FFD700', + goldenrod: '#DAA520', + grey: '#808080', + greenyellow: '#ADFF2F', + honeydew: '#F0FFF0', + hotpink: '#FF69B4', + indianred: '#CD5C5C', + indigo: '#4B0082', + ivory: '#FFFFF0', + khaki: '#F0E68C', + lavender: '#E6E6FA', + lavenderblush: '#FFF0F5', + lawngreen: '#7CFC00', + lemonchiffon: '#FFFACD', + lightblue: '#ADD8E6', + lightcoral: '#F08080', + lightcyan: '#E0FFFF', + lightgoldenrodyellow: '#FAFAD2', + lightgreen: '#90EE90', + lightgrey: '#D3D3D3', + lightpink: '#FFB6C1', + lightsalmon: '#FFA07A', + lightseagreen: '#20B2AA', + lightskyblue: '#87CEFA', + lightslategray: '#778899', + lightslategrey: '#778899', + lightsteelblue: '#B0C4DE', + lightyellow: '#FFFFE0', + limegreen: '#32CD32', + linen: '#FAF0E6', + magenta: '#FF00FF', + mediumaquamarine: '#66CDAA', + mediumblue: '#0000CD', + mediumorchid: '#BA55D3', + mediumpurple: '#9370DB', + mediumseagreen: '#3CB371', + mediumslateblue: '#7B68EE', + mediumspringgreen: '#00FA9A', + mediumturquoise: '#48D1CC', + mediumvioletred: '#C71585', + midnightblue: '#191970', + mintcream: '#F5FFFA', + mistyrose: '#FFE4E1', + moccasin: '#FFE4B5', + navajowhite: '#FFDEAD', + oldlace: '#FDF5E6', + olivedrab: '#6B8E23', + orange: '#FFA500', + orangered: '#FF4500', + orchid: '#DA70D6', + palegoldenrod: '#EEE8AA', + palegreen: '#98FB98', + paleturquoise: '#AFEEEE', + palevioletred: '#DB7093', + papayawhip: '#FFEFD5', + peachpuff: '#FFDAB9', + peru: '#CD853F', + pink: '#FFC0CB', + plum: '#DDA0DD', + powderblue: '#B0E0E6', + rosybrown: '#BC8F8F', + royalblue: '#4169E1', + saddlebrown: '#8B4513', + salmon: '#FA8072', + sandybrown: '#F4A460', + seagreen: '#2E8B57', + seashell: '#FFF5EE', + sienna: '#A0522D', + skyblue: '#87CEEB', + slateblue: '#6A5ACD', + slategray: '#708090', + slategrey: '#708090', + snow: '#FFFAFA', + springgreen: '#00FF7F', + steelblue: '#4682B4', + tan: '#D2B48C', + thistle: '#D8BFD8', + tomato: '#FF6347', + turquoise: '#40E0D0', + violet: '#EE82EE', + wheat: '#F5DEB3', + whitesmoke: '#F5F5F5', + yellowgreen: '#9ACD32' + }; + function getRgbHslContent(styleString) { + var start = styleString.indexOf('(', 3); + var end = styleString.indexOf(')', start + 1); + var parts = styleString.substring(start + 1, end).split(','); + if (parts.length != 4 || styleString.charAt(3) != 'a') { + parts[3] = 1; + } + return parts; + } + function percent(s) { + return parseFloat(s) / 100; + } + function clamp(v, min, max) { + return Math.min(max, Math.max(min, v)); + } + function hslToRgb(parts) { + var r, g, b, h, s, l; + h = parseFloat(parts[0]) / 360 % 360; + if (h < 0) + h++; + s = clamp(percent(parts[1]), 0, 1); + l = clamp(percent(parts[2]), 0, 1); + if (s == 0) { + r = g = b = l; + } else { + var q = l < 0.5 ? l * (1 + s) : l + s - l * s; + var p = 2 * l - q; + r = hueToRgb(p, q, h + 1 / 3); + g = hueToRgb(p, q, h); + b = hueToRgb(p, q, h - 1 / 3); + } + return '#' + decToHex[Math.floor(r * 255)] + decToHex[Math.floor(g * 255)] + decToHex[Math.floor(b * 255)]; + } + function hueToRgb(m1, m2, h) { + if (h < 0) + h++; + if (h > 1) + h--; + if (6 * h < 1) + return m1 + (m2 - m1) * 6 * h; + else if (2 * h < 1) + return m2; + else if (3 * h < 2) + return m1 + (m2 - m1) * (2 / 3 - h) * 6; + else + return m1; + } + var processStyleCache = {}; + function processStyle(styleString) { + if (styleString in processStyleCache) { + return processStyleCache[styleString]; + } + var str, alpha = 1; + styleString = String(styleString); + if (styleString.charAt(0) == '#') { + str = styleString; + } else if (/^rgb/.test(styleString)) { + var parts = getRgbHslContent(styleString); + var str = '#', n; + for (var i = 0; i < 3; i++) { + if (parts[i].indexOf('%') != -1) { + n = Math.floor(percent(parts[i]) * 255); + } else { + n = +parts[i]; + } + str += decToHex[clamp(n, 0, 255)]; + } + alpha = +parts[3]; + } else if (/^hsl/.test(styleString)) { + var parts = getRgbHslContent(styleString); + str = hslToRgb(parts); + alpha = parts[3]; + } else { + str = colorData[styleString] || styleString; + } + return processStyleCache[styleString] = { + color: str, + alpha: alpha + }; + } + var DEFAULT_STYLE = { + style: 'normal', + variant: 'normal', + weight: 'normal', + size: 12, + family: '微软雅黑' + }; + var fontStyleCache = {}; + function processFontStyle(styleString) { + if (fontStyleCache[styleString]) { + return fontStyleCache[styleString]; + } + var el = document.createElement('div'); + var style = el.style; + var fontFamily; + try { + style.font = styleString; + fontFamily = style.fontFamily.split(',')[0]; + } catch (ex) { + } + return fontStyleCache[styleString] = { + style: style.fontStyle || DEFAULT_STYLE.style, + variant: style.fontVariant || DEFAULT_STYLE.variant, + weight: style.fontWeight || DEFAULT_STYLE.weight, + size: style.fontSize || DEFAULT_STYLE.size, + family: fontFamily || DEFAULT_STYLE.family + }; + } + function getComputedStyle(style, element) { + var computedStyle = {}; + for (var p in style) { + computedStyle[p] = style[p]; + } + var canvasFontSize = parseFloat(element.currentStyle.fontSize), fontSize = parseFloat(style.size); + if (typeof style.size == 'number') { + computedStyle.size = style.size; + } else if (style.size.indexOf('px') != -1) { + computedStyle.size = fontSize; + } else if (style.size.indexOf('em') != -1) { + computedStyle.size = canvasFontSize * fontSize; + } else if (style.size.indexOf('%') != -1) { + computedStyle.size = canvasFontSize / 100 * fontSize; + } else if (style.size.indexOf('pt') != -1) { + computedStyle.size = fontSize / 0.75; + } else { + computedStyle.size = canvasFontSize; + } + return computedStyle; + } + function buildStyle(style) { + return style.style + ' ' + style.variant + ' ' + style.weight + ' ' + style.size + 'px \'' + style.family + '\''; + } + var lineCapMap = { + 'butt': 'flat', + 'round': 'round' + }; + function processLineCap(lineCap) { + return lineCapMap[lineCap] || 'square'; + } + function CanvasRenderingContext2D_(canvasElement) { + this.m_ = createMatrixIdentity(); + this.mStack_ = []; + this.aStack_ = []; + this.currentPath_ = []; + this.strokeStyle = '#000'; + this.fillStyle = '#000'; + this.lineWidth = 1; + this.lineJoin = 'miter'; + this.lineCap = 'butt'; + this.miterLimit = Z * 1; + this.globalAlpha = 1; + this.font = '12px 微软雅黑'; + this.textAlign = 'left'; + this.textBaseline = 'alphabetic'; + this.canvas = canvasElement; + var cssText = 'width:' + canvasElement.clientWidth + 'px;height:' + canvasElement.clientHeight + 'px;overflow:hidden;position:absolute'; + var el = canvasElement.ownerDocument.createElement('div'); + el.style.cssText = cssText; + canvasElement.appendChild(el); + var overlayEl = el.cloneNode(false); + overlayEl.style.backgroundColor = '#fff'; + overlayEl.style.filter = 'alpha(opacity=0)'; + canvasElement.appendChild(overlayEl); + this.element_ = el; + this.scaleX_ = 1; + this.scaleY_ = 1; + this.lineScale_ = 1; + } + var contextPrototype = CanvasRenderingContext2D_.prototype; + contextPrototype.clearRect = function () { + if (this.textMeasureEl_) { + this.textMeasureEl_.removeNode(true); + this.textMeasureEl_ = null; + } + this.element_.innerHTML = ''; + }; + contextPrototype.beginPath = function () { + this.currentPath_ = []; + }; + contextPrototype.moveTo = function (aX, aY) { + var p = getCoords(this, aX, aY); + this.currentPath_.push({ + type: 'moveTo', + x: p.x, + y: p.y + }); + this.currentX_ = p.x; + this.currentY_ = p.y; + }; + contextPrototype.lineTo = function (aX, aY) { + var p = getCoords(this, aX, aY); + this.currentPath_.push({ + type: 'lineTo', + x: p.x, + y: p.y + }); + this.currentX_ = p.x; + this.currentY_ = p.y; + }; + contextPrototype.bezierCurveTo = function (aCP1x, aCP1y, aCP2x, aCP2y, aX, aY) { + var p = getCoords(this, aX, aY); + var cp1 = getCoords(this, aCP1x, aCP1y); + var cp2 = getCoords(this, aCP2x, aCP2y); + bezierCurveTo(this, cp1, cp2, p); + }; + function bezierCurveTo(self, cp1, cp2, p) { + self.currentPath_.push({ + type: 'bezierCurveTo', + cp1x: cp1.x, + cp1y: cp1.y, + cp2x: cp2.x, + cp2y: cp2.y, + x: p.x, + y: p.y + }); + self.currentX_ = p.x; + self.currentY_ = p.y; + } + contextPrototype.quadraticCurveTo = function (aCPx, aCPy, aX, aY) { + var cp = getCoords(this, aCPx, aCPy); + var p = getCoords(this, aX, aY); + var cp1 = { + x: this.currentX_ + 2 / 3 * (cp.x - this.currentX_), + y: this.currentY_ + 2 / 3 * (cp.y - this.currentY_) + }; + var cp2 = { + x: cp1.x + (p.x - this.currentX_) / 3, + y: cp1.y + (p.y - this.currentY_) / 3 + }; + bezierCurveTo(this, cp1, cp2, p); + }; + contextPrototype.arc = function (aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise) { + aRadius *= Z; + var arcType = aClockwise ? 'at' : 'wa'; + var xStart = aX + mc(aStartAngle) * aRadius - Z2; + var yStart = aY + ms(aStartAngle) * aRadius - Z2; + var xEnd = aX + mc(aEndAngle) * aRadius - Z2; + var yEnd = aY + ms(aEndAngle) * aRadius - Z2; + if (xStart == xEnd && !aClockwise) { + xStart += 0.125; + } + var p = getCoords(this, aX, aY); + var pStart = getCoords(this, xStart, yStart); + var pEnd = getCoords(this, xEnd, yEnd); + this.currentPath_.push({ + type: arcType, + x: p.x, + y: p.y, + radius: aRadius, + xStart: pStart.x, + yStart: pStart.y, + xEnd: pEnd.x, + yEnd: pEnd.y + }); + }; + contextPrototype.rect = function (aX, aY, aWidth, aHeight) { + this.moveTo(aX, aY); + this.lineTo(aX + aWidth, aY); + this.lineTo(aX + aWidth, aY + aHeight); + this.lineTo(aX, aY + aHeight); + this.closePath(); + }; + contextPrototype.strokeRect = function (aX, aY, aWidth, aHeight) { + var oldPath = this.currentPath_; + this.beginPath(); + this.moveTo(aX, aY); + this.lineTo(aX + aWidth, aY); + this.lineTo(aX + aWidth, aY + aHeight); + this.lineTo(aX, aY + aHeight); + this.closePath(); + this.stroke(); + this.currentPath_ = oldPath; + }; + contextPrototype.fillRect = function (aX, aY, aWidth, aHeight) { + var oldPath = this.currentPath_; + this.beginPath(); + this.moveTo(aX, aY); + this.lineTo(aX + aWidth, aY); + this.lineTo(aX + aWidth, aY + aHeight); + this.lineTo(aX, aY + aHeight); + this.closePath(); + this.fill(); + this.currentPath_ = oldPath; + }; + contextPrototype.createLinearGradient = function (aX0, aY0, aX1, aY1) { + var gradient = new CanvasGradient_('gradient'); + gradient.x0_ = aX0; + gradient.y0_ = aY0; + gradient.x1_ = aX1; + gradient.y1_ = aY1; + return gradient; + }; + contextPrototype.createRadialGradient = function (aX0, aY0, aR0, aX1, aY1, aR1) { + var gradient = new CanvasGradient_('gradientradial'); + gradient.x0_ = aX0; + gradient.y0_ = aY0; + gradient.r0_ = aR0; + gradient.x1_ = aX1; + gradient.y1_ = aY1; + gradient.r1_ = aR1; + return gradient; + }; + contextPrototype.drawImage = function (image, var_args) { + var dx, dy, dw, dh, sx, sy, sw, sh; + var oldRuntimeWidth = image.runtimeStyle.width; + var oldRuntimeHeight = image.runtimeStyle.height; + image.runtimeStyle.width = 'auto'; + image.runtimeStyle.height = 'auto'; + var w = image.width; + var h = image.height; + image.runtimeStyle.width = oldRuntimeWidth; + image.runtimeStyle.height = oldRuntimeHeight; + if (arguments.length == 3) { + dx = arguments[1]; + dy = arguments[2]; + sx = sy = 0; + sw = dw = w; + sh = dh = h; + } else if (arguments.length == 5) { + dx = arguments[1]; + dy = arguments[2]; + dw = arguments[3]; + dh = arguments[4]; + sx = sy = 0; + sw = w; + sh = h; + } else if (arguments.length == 9) { + sx = arguments[1]; + sy = arguments[2]; + sw = arguments[3]; + sh = arguments[4]; + dx = arguments[5]; + dy = arguments[6]; + dw = arguments[7]; + dh = arguments[8]; + } else { + throw Error('Invalid number of arguments'); + } + var d = getCoords(this, dx, dy); + var w2 = sw / 2; + var h2 = sh / 2; + var vmlStr = []; + var W = 10; + var H = 10; + var scaleX = scaleY = 1; + vmlStr.push(' '); + if (sx || sy) { + vmlStr.push('
'); + } + vmlStr.push('
'); + if (sx || sy) + vmlStr.push('
'); + vmlStr.push('
'); + this.element_.insertAdjacentHTML('BeforeEnd', vmlStr.join('')); + }; + contextPrototype.stroke = function (aFill) { + var lineStr = []; + var lineOpen = false; + var W = 10; + var H = 10; + lineStr.push(''); + if (!aFill) { + appendStroke(this, lineStr); + } else { + appendFill(this, lineStr, min, max); + } + lineStr.push(''); + this.element_.insertAdjacentHTML('beforeEnd', lineStr.join('')); + }; + function appendStroke(ctx, lineStr) { + var a = processStyle(ctx.strokeStyle); + var color = a.color; + var opacity = a.alpha * ctx.globalAlpha; + var lineWidth = ctx.lineScale_ * ctx.lineWidth; + if (lineWidth < 1) { + opacity *= lineWidth; + } + lineStr.push(''); + } + function appendFill(ctx, lineStr, min, max) { + var fillStyle = ctx.fillStyle; + var arcScaleX = ctx.scaleX_; + var arcScaleY = ctx.scaleY_; + var width = max.x - min.x; + var height = max.y - min.y; + if (fillStyle instanceof CanvasGradient_) { + var angle = 0; + var focus = { + x: 0, + y: 0 + }; + var shift = 0; + var expansion = 1; + if (fillStyle.type_ == 'gradient') { + var x0 = fillStyle.x0_ / arcScaleX; + var y0 = fillStyle.y0_ / arcScaleY; + var x1 = fillStyle.x1_ / arcScaleX; + var y1 = fillStyle.y1_ / arcScaleY; + var p0 = getCoords(ctx, x0, y0); + var p1 = getCoords(ctx, x1, y1); + var dx = p1.x - p0.x; + var dy = p1.y - p0.y; + angle = Math.atan2(dx, dy) * 180 / Math.PI; + if (angle < 0) { + angle += 360; + } + if (angle < 0.000001) { + angle = 0; + } + } else { + var p0 = getCoords(ctx, fillStyle.x0_, fillStyle.y0_); + focus = { + x: (p0.x - min.x) / width, + y: (p0.y - min.y) / height + }; + width /= arcScaleX * Z; + height /= arcScaleY * Z; + var dimension = m.max(width, height); + shift = 2 * fillStyle.r0_ / dimension; + expansion = 2 * fillStyle.r1_ / dimension - shift; + } + var stops = fillStyle.colors_; + stops.sort(function (cs1, cs2) { + return cs1.offset - cs2.offset; + }); + var length = stops.length; + var color1 = stops[0].color; + var color2 = stops[length - 1].color; + var opacity1 = stops[0].alpha * ctx.globalAlpha; + var opacity2 = stops[length - 1].alpha * ctx.globalAlpha; + var colors = []; + for (var i = 0; i < length; i++) { + var stop = stops[i]; + colors.push(stop.offset * expansion + shift + ' ' + stop.color); + } + lineStr.push(''); + } else if (fillStyle instanceof CanvasPattern_) { + if (width && height) { + var deltaLeft = -min.x; + var deltaTop = -min.y; + lineStr.push(''); + } + } else { + var a = processStyle(ctx.fillStyle); + var color = a.color; + var opacity = a.alpha * ctx.globalAlpha; + lineStr.push(''); + } + } + contextPrototype.fill = function () { + this.stroke(true); + }; + contextPrototype.closePath = function () { + this.currentPath_.push({ type: 'close' }); + }; + function getCoords(ctx, aX, aY) { + var m = ctx.m_; + return { + x: Z * (aX * m[0][0] + aY * m[1][0] + m[2][0]) - Z2, + y: Z * (aX * m[0][1] + aY * m[1][1] + m[2][1]) - Z2 + }; + } + ; + contextPrototype.save = function () { + var o = {}; + copyState(this, o); + this.aStack_.push(o); + this.mStack_.push(this.m_); + this.m_ = matrixMultiply(createMatrixIdentity(), this.m_); + }; + contextPrototype.restore = function () { + if (this.aStack_.length) { + copyState(this.aStack_.pop(), this); + this.m_ = this.mStack_.pop(); + } + }; + function matrixIsFinite(m) { + return isFinite(m[0][0]) && isFinite(m[0][1]) && isFinite(m[1][0]) && isFinite(m[1][1]) && isFinite(m[2][0]) && isFinite(m[2][1]); + } + function setM(ctx, m, updateLineScale) { + if (!matrixIsFinite(m)) { + return; + } + ctx.m_ = m; + ctx.scaleX_ = Math.sqrt(m[0][0] * m[0][0] + m[0][1] * m[0][1]); + ctx.scaleY_ = Math.sqrt(m[1][0] * m[1][0] + m[1][1] * m[1][1]); + if (updateLineScale) { + var det = m[0][0] * m[1][1] - m[0][1] * m[1][0]; + ctx.lineScale_ = sqrt(abs(det)); + } + } + contextPrototype.translate = function (aX, aY) { + var m1 = [ + [ + 1, + 0, + 0 + ], + [ + 0, + 1, + 0 + ], + [ + aX, + aY, + 1 + ] + ]; + setM(this, matrixMultiply(m1, this.m_), false); + }; + contextPrototype.rotate = function (aRot) { + var c = mc(aRot); + var s = ms(aRot); + var m1 = [ + [ + c, + s, + 0 + ], + [ + -s, + c, + 0 + ], + [ + 0, + 0, + 1 + ] + ]; + setM(this, matrixMultiply(m1, this.m_), false); + }; + contextPrototype.scale = function (aX, aY) { + var m1 = [ + [ + aX, + 0, + 0 + ], + [ + 0, + aY, + 0 + ], + [ + 0, + 0, + 1 + ] + ]; + setM(this, matrixMultiply(m1, this.m_), true); + }; + contextPrototype.transform = function (m11, m12, m21, m22, dx, dy) { + var m1 = [ + [ + m11, + m12, + 0 + ], + [ + m21, + m22, + 0 + ], + [ + dx, + dy, + 1 + ] + ]; + setM(this, matrixMultiply(m1, this.m_), true); + }; + contextPrototype.setTransform = function (m11, m12, m21, m22, dx, dy) { + var m = [ + [ + m11, + m12, + 0 + ], + [ + m21, + m22, + 0 + ], + [ + dx, + dy, + 1 + ] + ]; + setM(this, m, true); + }; + contextPrototype.drawText_ = function (text, x, y, maxWidth, stroke) { + var m = this.m_, delta = 1000, left = 0, right = delta, offset = { + x: 0, + y: 0 + }, lineStr = []; + var fontStyle = getComputedStyle(processFontStyle(this.font), this.element_); + var fontStyleString = buildStyle(fontStyle); + var elementStyle = this.element_.currentStyle; + var textAlign = this.textAlign.toLowerCase(); + switch (textAlign) { + case 'left': + case 'center': + case 'right': + break; + case 'end': + textAlign = elementStyle.direction == 'ltr' ? 'right' : 'left'; + break; + case 'start': + textAlign = elementStyle.direction == 'rtl' ? 'right' : 'left'; + break; + default: + textAlign = 'left'; + } + switch (this.textBaseline) { + case 'hanging': + case 'top': + offset.y = fontStyle.size / 1.75; + break; + case 'middle': + break; + default: + case null: + case 'alphabetic': + case 'ideographic': + case 'bottom': + offset.y = -fontStyle.size / 2.25; + break; + } + switch (textAlign) { + case 'right': + left = delta; + right = 0.05; + break; + case 'center': + left = right = delta / 2; + break; + } + var d = getCoords(this, x + offset.x, y + offset.y); + lineStr.push(''); + if (stroke) { + appendStroke(this, lineStr); + } else { + appendFill(this, lineStr, { + x: -left, + y: 0 + }, { + x: right, + y: fontStyle.size + }); + } + var skewM = m[0][0].toFixed(3) + ',' + m[1][0].toFixed(3) + ',' + m[0][1].toFixed(3) + ',' + m[1][1].toFixed(3) + ',0,0'; + var skewOffset = mr(d.x / Z) + ',' + mr(d.y / Z); + lineStr.push('', '', ''); + this.element_.insertAdjacentHTML('beforeEnd', lineStr.join('')); + }; + contextPrototype.fillText = function (text, x, y, maxWidth) { + this.drawText_(text, x, y, maxWidth, false); + }; + contextPrototype.strokeText = function (text, x, y, maxWidth) { + this.drawText_(text, x, y, maxWidth, true); + }; + contextPrototype.measureText = function (text) { + if (!this.textMeasureEl_) { + var s = ''; + this.element_.insertAdjacentHTML('beforeEnd', s); + this.textMeasureEl_ = this.element_.lastChild; + } + var doc = this.element_.ownerDocument; + this.textMeasureEl_.innerHTML = ''; + try { + this.textMeasureEl_.style.font = this.font; + } catch (ex) { + } + this.textMeasureEl_.appendChild(doc.createTextNode(text)); + return { width: this.textMeasureEl_.offsetWidth }; + }; + contextPrototype.clip = function () { + }; + contextPrototype.arcTo = function () { + }; + contextPrototype.createPattern = function (image, repetition) { + return new CanvasPattern_(image, repetition); + }; + function CanvasGradient_(aType) { + this.type_ = aType; + this.x0_ = 0; + this.y0_ = 0; + this.r0_ = 0; + this.x1_ = 0; + this.y1_ = 0; + this.r1_ = 0; + this.colors_ = []; + } + CanvasGradient_.prototype.addColorStop = function (aOffset, aColor) { + aColor = processStyle(aColor); + this.colors_.push({ + offset: aOffset, + color: aColor.color, + alpha: aColor.alpha + }); + }; + function CanvasPattern_(image, repetition) { + assertImageIsValid(image); + switch (repetition) { + case 'repeat': + case null: + case '': + this.repetition_ = 'repeat'; + break; + case 'repeat-x': + case 'repeat-y': + case 'no-repeat': + this.repetition_ = repetition; + break; + default: + throwException('SYNTAX_ERR'); + } + this.src_ = image.src; + this.width_ = image.width; + this.height_ = image.height; + } + function throwException(s) { + throw new DOMException_(s); + } + function assertImageIsValid(img) { + if (!img || img.nodeType != 1 || img.tagName != 'IMG') { + throwException('TYPE_MISMATCH_ERR'); + } + if (img.readyState != 'complete') { + throwException('INVALID_STATE_ERR'); + } + } + function DOMException_(s) { + this.code = this[s]; + this.message = s + ': DOM Exception ' + this.code; + } + var p = DOMException_.prototype = new Error(); + p.INDEX_SIZE_ERR = 1; + p.DOMSTRING_SIZE_ERR = 2; + p.HIERARCHY_REQUEST_ERR = 3; + p.WRONG_DOCUMENT_ERR = 4; + p.INVALID_CHARACTER_ERR = 5; + p.NO_DATA_ALLOWED_ERR = 6; + p.NO_MODIFICATION_ALLOWED_ERR = 7; + p.NOT_FOUND_ERR = 8; + p.NOT_SUPPORTED_ERR = 9; + p.INUSE_ATTRIBUTE_ERR = 10; + p.INVALID_STATE_ERR = 11; + p.SYNTAX_ERR = 12; + p.INVALID_MODIFICATION_ERR = 13; + p.NAMESPACE_ERR = 14; + p.INVALID_ACCESS_ERR = 15; + p.VALIDATION_ERR = 16; + p.TYPE_MISMATCH_ERR = 17; + G_vmlCanvasManager = G_vmlCanvasManager_; + CanvasRenderingContext2D = CanvasRenderingContext2D_; + CanvasGradient = CanvasGradient_; + CanvasPattern = CanvasPattern_; + DOMException = DOMException_; + }()); + } else { + G_vmlCanvasManager = false; + } + return G_vmlCanvasManager; +});define('zrender/mixin/Eventful', ['require'], function (require) { + var Eventful = function () { + this._handlers = {}; + }; + Eventful.prototype.one = function (event, handler, context) { + var _h = this._handlers; + if (!handler || !event) { + return this; + } + if (!_h[event]) { + _h[event] = []; + } + _h[event].push({ + h: handler, + one: true, + ctx: context || this + }); + return this; + }; + Eventful.prototype.bind = function (event, handler, context) { + var _h = this._handlers; + if (!handler || !event) { + return this; + } + if (!_h[event]) { + _h[event] = []; + } + _h[event].push({ + h: handler, + one: false, + ctx: context || this + }); + return this; + }; + Eventful.prototype.unbind = function (event, handler) { + var _h = this._handlers; + if (!event) { + this._handlers = {}; + return this; + } + if (handler) { + if (_h[event]) { + var newList = []; + for (var i = 0, l = _h[event].length; i < l; i++) { + if (_h[event][i]['h'] != handler) { + newList.push(_h[event][i]); + } + } + _h[event] = newList; + } + if (_h[event] && _h[event].length === 0) { + delete _h[event]; + } + } else { + delete _h[event]; + } + return this; + }; + Eventful.prototype.dispatch = function (type) { + if (this._handlers[type]) { + var args = arguments; + var argLen = args.length; + if (argLen > 3) { + args = Array.prototype.slice.call(args, 1); + } + var _h = this._handlers[type]; + var len = _h.length; + for (var i = 0; i < len;) { + switch (argLen) { + case 1: + _h[i]['h'].call(_h[i]['ctx']); + break; + case 2: + _h[i]['h'].call(_h[i]['ctx'], args[1]); + break; + case 3: + _h[i]['h'].call(_h[i]['ctx'], args[1], args[2]); + break; + default: + _h[i]['h'].apply(_h[i]['ctx'], args); + break; + } + if (_h[i]['one']) { + _h.splice(i, 1); + len--; + } else { + i++; + } + } + } + return this; + }; + Eventful.prototype.dispatchWithContext = function (type) { + if (this._handlers[type]) { + var args = arguments; + var argLen = args.length; + if (argLen > 4) { + args = Array.prototype.slice.call(args, 1, args.length - 1); + } + var ctx = args[args.length - 1]; + var _h = this._handlers[type]; + var len = _h.length; + for (var i = 0; i < len;) { + switch (argLen) { + case 1: + _h[i]['h'].call(ctx); + break; + case 2: + _h[i]['h'].call(ctx, args[1]); + break; + case 3: + _h[i]['h'].call(ctx, args[1], args[2]); + break; + default: + _h[i]['h'].apply(ctx, args); + break; + } + if (_h[i]['one']) { + _h.splice(i, 1); + len--; + } else { + i++; + } + } + } + return this; + }; + return Eventful; +});define('zrender/tool/log', [ + 'require', + '../config' +], function (require) { + var config = require('../config'); + return function () { + if (config.debugMode === 0) { + return; + } else if (config.debugMode == 1) { + for (var k in arguments) { + throw new Error(arguments[k]); + } + } else if (config.debugMode > 1) { + for (var k in arguments) { + console.log(arguments[k]); + } + } + }; +});define('zrender/tool/guid', [], function () { + var idStart = 2311; + return function () { + return 'zrender__' + idStart++; + }; +});define('zrender/Handler', [ + 'require', + './config', + './tool/env', + './tool/event', + './tool/util', + './tool/vector', + './tool/matrix', + './mixin/Eventful' +], function (require) { + 'use strict'; + var config = require('./config'); + var env = require('./tool/env'); + var eventTool = require('./tool/event'); + var util = require('./tool/util'); + var vec2 = require('./tool/vector'); + var mat2d = require('./tool/matrix'); + var EVENT = config.EVENT; + var Eventful = require('./mixin/Eventful'); + var domHandlerNames = [ + 'resize', + 'click', + 'dblclick', + 'mousewheel', + 'mousemove', + 'mouseout', + 'mouseup', + 'mousedown', + 'touchstart', + 'touchend', + 'touchmove' + ]; + var isZRenderElement = function (event) { + if (window.G_vmlCanvasManager) { + return true; + } + event = event || window.event; + var target = event.toElement || event.relatedTarget || event.srcElement || event.target; + return target && target.className.match(config.elementClassName); + }; + var domHandlers = { + resize: function (event) { + event = event || window.event; + this._lastHover = null; + this._isMouseDown = 0; + this.dispatch(EVENT.RESIZE, event); + }, + click: function (event, manually) { + if (!isZRenderElement(event) && !manually) { + return; + } + event = this._zrenderEventFixed(event); + var _lastHover = this._lastHover; + if (_lastHover && _lastHover.clickable || !_lastHover) { + if (this._clickThreshold < 5) { + this._dispatchAgency(_lastHover, EVENT.CLICK, event); + } + } + this._mousemoveHandler(event); + }, + dblclick: function (event, manually) { + if (!isZRenderElement(event) && !manually) { + return; + } + event = event || window.event; + event = this._zrenderEventFixed(event); + var _lastHover = this._lastHover; + if (_lastHover && _lastHover.clickable || !_lastHover) { + if (this._clickThreshold < 5) { + this._dispatchAgency(_lastHover, EVENT.DBLCLICK, event); + } + } + this._mousemoveHandler(event); + }, + mousewheel: function (event, manually) { + if (!isZRenderElement(event) && !manually) { + return; + } + event = this._zrenderEventFixed(event); + var delta = event.wheelDelta || -event.detail; + var scale = delta > 0 ? 1.1 : 1 / 1.1; + var needsRefresh = false; + var mouseX = this._mouseX; + var mouseY = this._mouseY; + this.painter.eachBuildinLayer(function (layer) { + var pos = layer.position; + if (layer.zoomable) { + layer.__zoom = layer.__zoom || 1; + var newZoom = layer.__zoom; + newZoom *= scale; + newZoom = Math.max(Math.min(layer.maxZoom, newZoom), layer.minZoom); + scale = newZoom / layer.__zoom; + layer.__zoom = newZoom; + pos[0] -= (mouseX - pos[0]) * (scale - 1); + pos[1] -= (mouseY - pos[1]) * (scale - 1); + layer.scale[0] *= scale; + layer.scale[1] *= scale; + layer.dirty = true; + needsRefresh = true; + eventTool.stop(event); + } + }); + if (needsRefresh) { + this.painter.refresh(); + } + this._dispatchAgency(this._lastHover, EVENT.MOUSEWHEEL, event); + this._mousemoveHandler(event); + }, + mousemove: function (event, manually) { + if (!isZRenderElement(event) && !manually) { + return; + } + if (this.painter.isLoading()) { + return; + } + event = this._zrenderEventFixed(event); + this._lastX = this._mouseX; + this._lastY = this._mouseY; + this._mouseX = eventTool.getX(event); + this._mouseY = eventTool.getY(event); + var dx = this._mouseX - this._lastX; + var dy = this._mouseY - this._lastY; + this._processDragStart(event); + this._hasfound = 0; + this._event = event; + this._iterateAndFindHover(); + if (!this._hasfound) { + if (!this._draggingTarget || this._lastHover && this._lastHover != this._draggingTarget) { + this._processOutShape(event); + this._processDragLeave(event); + } + this._lastHover = null; + this.storage.delHover(); + this.painter.clearHover(); + } + var cursor = 'default'; + if (this._draggingTarget) { + this.storage.drift(this._draggingTarget.id, dx, dy); + this._draggingTarget.modSelf(); + this.storage.addHover(this._draggingTarget); + this._clickThreshold++; + } else if (this._isMouseDown) { + var needsRefresh = false; + this.painter.eachBuildinLayer(function (layer) { + if (layer.panable) { + cursor = 'move'; + layer.position[0] += dx; + layer.position[1] += dy; + needsRefresh = true; + layer.dirty = true; + } + }); + if (needsRefresh) { + this.painter.refresh(); + } + } + if (this._draggingTarget || this._hasfound && this._lastHover.draggable) { + cursor = 'move'; + } else if (this._hasfound && this._lastHover.clickable) { + cursor = 'pointer'; + } + this.root.style.cursor = cursor; + this._dispatchAgency(this._lastHover, EVENT.MOUSEMOVE, event); + if (this._draggingTarget || this._hasfound || this.storage.hasHoverShape()) { + this.painter.refreshHover(); + } + }, + mouseout: function (event, manually) { + if (!isZRenderElement(event) && !manually) { + return; + } + event = this._zrenderEventFixed(event); + var element = event.toElement || event.relatedTarget; + if (element != this.root) { + while (element && element.nodeType != 9) { + if (element == this.root) { + this._mousemoveHandler(event); + return; + } + element = element.parentNode; + } + } + event.zrenderX = this._lastX; + event.zrenderY = this._lastY; + this.root.style.cursor = 'default'; + this._isMouseDown = 0; + this._processOutShape(event); + this._processDrop(event); + this._processDragEnd(event); + if (!this.painter.isLoading()) { + this.painter.refreshHover(); + } + this.dispatch(EVENT.GLOBALOUT, event); + }, + mousedown: function (event, manually) { + if (!isZRenderElement(event) && !manually) { + return; + } + this._clickThreshold = 0; + if (this._lastDownButton == 2) { + this._lastDownButton = event.button; + this._mouseDownTarget = null; + return; + } + this._lastMouseDownMoment = new Date(); + event = this._zrenderEventFixed(event); + this._isMouseDown = 1; + this._mouseDownTarget = this._lastHover; + this._dispatchAgency(this._lastHover, EVENT.MOUSEDOWN, event); + this._lastDownButton = event.button; + }, + mouseup: function (event, manually) { + if (!isZRenderElement(event) && !manually) { + return; + } + event = this._zrenderEventFixed(event); + this.root.style.cursor = 'default'; + this._isMouseDown = 0; + this._mouseDownTarget = null; + this._dispatchAgency(this._lastHover, EVENT.MOUSEUP, event); + this._processDrop(event); + this._processDragEnd(event); + }, + touchstart: function (event, manually) { + if (!isZRenderElement(event) && !manually) { + return; + } + event = this._zrenderEventFixed(event, true); + this._lastTouchMoment = new Date(); + this._mobileFindFixed(event); + this._mousedownHandler(event); + }, + touchmove: function (event, manually) { + if (!isZRenderElement(event) && !manually) { + return; + } + event = this._zrenderEventFixed(event, true); + this._mousemoveHandler(event); + if (this._isDragging) { + eventTool.stop(event); + } + }, + touchend: function (event, manually) { + if (!isZRenderElement(event) && !manually) { + return; + } + event = this._zrenderEventFixed(event, true); + this._mouseupHandler(event); + var now = new Date(); + if (now - this._lastTouchMoment < EVENT.touchClickDelay) { + this._mobileFindFixed(event); + this._clickHandler(event); + if (now - this._lastClickMoment < EVENT.touchClickDelay / 2) { + this._dblclickHandler(event); + if (this._lastHover && this._lastHover.clickable) { + eventTool.stop(event); + } + } + this._lastClickMoment = now; + } + this.painter.clearHover(); + } + }; + function bind2Arg(handler, context) { + return function (arg1, arg2) { + return handler.call(context, arg1, arg2); + }; + } + function bind3Arg(handler, context) { + return function (arg1, arg2, arg3) { + return handler.call(context, arg1, arg2, arg3); + }; + } + function initDomHandler(instance) { + var len = domHandlerNames.length; + while (len--) { + var name = domHandlerNames[len]; + instance['_' + name + 'Handler'] = bind2Arg(domHandlers[name], instance); + } + } + var Handler = function (root, storage, painter) { + Eventful.call(this); + this.root = root; + this.storage = storage; + this.painter = painter; + this._lastX = this._lastY = this._mouseX = this._mouseY = 0; + this._findHover = bind3Arg(findHover, this); + this._domHover = painter.getDomHover(); + initDomHandler(this); + if (window.addEventListener) { + window.addEventListener('resize', this._resizeHandler); + if (env.os.tablet || env.os.phone) { + root.addEventListener('touchstart', this._touchstartHandler); + root.addEventListener('touchmove', this._touchmoveHandler); + root.addEventListener('touchend', this._touchendHandler); + } else { + root.addEventListener('click', this._clickHandler); + root.addEventListener('dblclick', this._dblclickHandler); + root.addEventListener('mousewheel', this._mousewheelHandler); + root.addEventListener('mousemove', this._mousemoveHandler); + root.addEventListener('mousedown', this._mousedownHandler); + root.addEventListener('mouseup', this._mouseupHandler); + } + root.addEventListener('DOMMouseScroll', this._mousewheelHandler); + root.addEventListener('mouseout', this._mouseoutHandler); + } else { + window.attachEvent('onresize', this._resizeHandler); + root.attachEvent('onclick', this._clickHandler); + root.ondblclick = this._dblclickHandler; + root.attachEvent('onmousewheel', this._mousewheelHandler); + root.attachEvent('onmousemove', this._mousemoveHandler); + root.attachEvent('onmouseout', this._mouseoutHandler); + root.attachEvent('onmousedown', this._mousedownHandler); + root.attachEvent('onmouseup', this._mouseupHandler); + } + }; + Handler.prototype.on = function (eventName, handler, context) { + this.bind(eventName, handler, context); + return this; + }; + Handler.prototype.un = function (eventName, handler) { + this.unbind(eventName, handler); + return this; + }; + Handler.prototype.trigger = function (eventName, eventArgs) { + switch (eventName) { + case EVENT.RESIZE: + case EVENT.CLICK: + case EVENT.DBLCLICK: + case EVENT.MOUSEWHEEL: + case EVENT.MOUSEMOVE: + case EVENT.MOUSEDOWN: + case EVENT.MOUSEUP: + case EVENT.MOUSEOUT: + this['_' + eventName + 'Handler'](eventArgs, true); + break; + } + }; + Handler.prototype.dispose = function () { + var root = this.root; + if (window.removeEventListener) { + window.removeEventListener('resize', this._resizeHandler); + if (env.os.tablet || env.os.phone) { + root.removeEventListener('touchstart', this._touchstartHandler); + root.removeEventListener('touchmove', this._touchmoveHandler); + root.removeEventListener('touchend', this._touchendHandler); + } else { + root.removeEventListener('click', this._clickHandler); + root.removeEventListener('dblclick', this._dblclickHandler); + root.removeEventListener('mousewheel', this._mousewheelHandler); + root.removeEventListener('mousemove', this._mousemoveHandler); + root.removeEventListener('mousedown', this._mousedownHandler); + root.removeEventListener('mouseup', this._mouseupHandler); + } + root.removeEventListener('DOMMouseScroll', this._mousewheelHandler); + root.removeEventListener('mouseout', this._mouseoutHandler); + } else { + window.detachEvent('onresize', this._resizeHandler); + root.detachEvent('onclick', this._clickHandler); + root.detachEvent('dblclick', this._dblclickHandler); + root.detachEvent('onmousewheel', this._mousewheelHandler); + root.detachEvent('onmousemove', this._mousemoveHandler); + root.detachEvent('onmouseout', this._mouseoutHandler); + root.detachEvent('onmousedown', this._mousedownHandler); + root.detachEvent('onmouseup', this._mouseupHandler); + } + this.root = this._domHover = this.storage = this.painter = null; + this.un(); + }; + Handler.prototype._processDragStart = function (event) { + var _lastHover = this._lastHover; + if (this._isMouseDown && _lastHover && _lastHover.draggable && !this._draggingTarget && this._mouseDownTarget == _lastHover) { + if (_lastHover.dragEnableTime && new Date() - this._lastMouseDownMoment < _lastHover.dragEnableTime) { + return; + } + var _draggingTarget = _lastHover; + this._draggingTarget = _draggingTarget; + this._isDragging = 1; + _draggingTarget.invisible = true; + this.storage.mod(_draggingTarget.id); + this._dispatchAgency(_draggingTarget, EVENT.DRAGSTART, event); + this.painter.refresh(); + } + }; + Handler.prototype._processDragEnter = function (event) { + if (this._draggingTarget) { + this._dispatchAgency(this._lastHover, EVENT.DRAGENTER, event, this._draggingTarget); + } + }; + Handler.prototype._processDragOver = function (event) { + if (this._draggingTarget) { + this._dispatchAgency(this._lastHover, EVENT.DRAGOVER, event, this._draggingTarget); + } + }; + Handler.prototype._processDragLeave = function (event) { + if (this._draggingTarget) { + this._dispatchAgency(this._lastHover, EVENT.DRAGLEAVE, event, this._draggingTarget); + } + }; + Handler.prototype._processDrop = function (event) { + if (this._draggingTarget) { + this._draggingTarget.invisible = false; + this.storage.mod(this._draggingTarget.id); + this.painter.refresh(); + this._dispatchAgency(this._lastHover, EVENT.DROP, event, this._draggingTarget); + } + }; + Handler.prototype._processDragEnd = function (event) { + if (this._draggingTarget) { + this._dispatchAgency(this._draggingTarget, EVENT.DRAGEND, event); + this._lastHover = null; + } + this._isDragging = 0; + this._draggingTarget = null; + }; + Handler.prototype._processOverShape = function (event) { + this._dispatchAgency(this._lastHover, EVENT.MOUSEOVER, event); + }; + Handler.prototype._processOutShape = function (event) { + this._dispatchAgency(this._lastHover, EVENT.MOUSEOUT, event); + }; + Handler.prototype._dispatchAgency = function (targetShape, eventName, event, draggedShape) { + var eventHandler = 'on' + eventName; + var eventPacket = { + type: eventName, + event: event, + target: targetShape, + cancelBubble: false + }; + var el = targetShape; + if (draggedShape) { + eventPacket.dragged = draggedShape; + } + while (el) { + el[eventHandler] && (eventPacket.cancelBubble = el[eventHandler](eventPacket)); + el.dispatch(eventName, eventPacket); + el = el.parent; + if (eventPacket.cancelBubble) { + break; + } + } + if (targetShape) { + if (!eventPacket.cancelBubble) { + this.dispatch(eventName, eventPacket); + } + } else if (!draggedShape) { + var eveObj = { + type: eventName, + event: event + }; + this.dispatch(eventName, eveObj); + this.painter.eachOtherLayer(function (layer) { + if (typeof layer[eventHandler] == 'function') { + layer[eventHandler](eveObj); + } + if (layer.dispatch) { + layer.dispatch(eventName, eveObj); + } + }); + } + }; + Handler.prototype._iterateAndFindHover = function () { + var invTransform = mat2d.create(); + return function () { + var list = this.storage.getShapeList(); + var currentZLevel; + var currentLayer; + var tmp = [ + 0, + 0 + ]; + for (var i = list.length - 1; i >= 0; i--) { + var shape = list[i]; + if (currentZLevel !== shape.zlevel) { + currentLayer = this.painter.getLayer(shape.zlevel, currentLayer); + tmp[0] = this._mouseX; + tmp[1] = this._mouseY; + if (currentLayer.needTransform) { + mat2d.invert(invTransform, currentLayer.transform); + vec2.applyTransform(tmp, tmp, invTransform); + } + } + if (this._findHover(shape, tmp[0], tmp[1])) { + break; + } + } + }; + }(); + var MOBILE_TOUCH_OFFSETS = [ + { x: 10 }, + { x: -20 }, + { + x: 10, + y: 10 + }, + { y: -20 } + ]; + Handler.prototype._mobileFindFixed = function (event) { + this._lastHover = null; + this._mouseX = event.zrenderX; + this._mouseY = event.zrenderY; + this._event = event; + this._iterateAndFindHover(); + for (var i = 0; !this._lastHover && i < MOBILE_TOUCH_OFFSETS.length; i++) { + var offset = MOBILE_TOUCH_OFFSETS[i]; + offset.x && (this._mouseX += offset.x); + offset.y && (this._mouseY += offset.y); + this._iterateAndFindHover(); + } + if (this._lastHover) { + event.zrenderX = this._mouseX; + event.zrenderY = this._mouseY; + } + }; + function findHover(shape, x, y) { + if (this._draggingTarget && this._draggingTarget.id == shape.id || shape.isSilent()) { + return false; + } + var event = this._event; + if (shape.isCover(x, y)) { + if (shape.hoverable) { + this.storage.addHover(shape); + } + var p = shape.parent; + while (p) { + if (p.clipShape && !p.clipShape.isCover(this._mouseX, this._mouseY)) { + return false; + } + p = p.parent; + } + if (this._lastHover != shape) { + this._processOutShape(event); + this._processDragLeave(event); + this._lastHover = shape; + this._processDragEnter(event); + } + this._processOverShape(event); + this._processDragOver(event); + this._hasfound = 1; + return true; + } + return false; + } + Handler.prototype._zrenderEventFixed = function (event, isTouch) { + if (event.zrenderFixed) { + return event; + } + if (!isTouch) { + event = event || window.event; + var target = event.toElement || event.relatedTarget || event.srcElement || event.target; + if (target && target != this._domHover) { + event.zrenderX = (typeof event.offsetX != 'undefined' ? event.offsetX : event.layerX) + target.offsetLeft; + event.zrenderY = (typeof event.offsetY != 'undefined' ? event.offsetY : event.layerY) + target.offsetTop; + } + } else { + var touch = event.type != 'touchend' ? event.targetTouches[0] : event.changedTouches[0]; + if (touch) { + var rBounding = this.painter._domRoot.getBoundingClientRect(); + event.zrenderX = touch.clientX - rBounding.left; + event.zrenderY = touch.clientY - rBounding.top; + } + } + event.zrenderFixed = 1; + return event; + }; + util.merge(Handler.prototype, Eventful.prototype, true); + return Handler; +});define('zrender/Painter', [ + 'require', + './config', + './tool/util', + './tool/log', + './loadingEffect/Base', + './Layer', + './shape/Image' +], function (require) { + 'use strict'; + var config = require('./config'); + var util = require('./tool/util'); + var log = require('./tool/log'); + var BaseLoadingEffect = require('./loadingEffect/Base'); + var Layer = require('./Layer'); + function returnFalse() { + return false; + } + function doNothing() { + } + function isLayerValid(layer) { + if (!layer) { + return false; + } + if (layer.isBuildin) { + return true; + } + if (typeof layer.resize !== 'function' || typeof layer.refresh !== 'function') { + return false; + } + return true; + } + var Painter = function (root, storage) { + this.root = root; + root.style['-webkit-tap-highlight-color'] = 'transparent'; + root.style['-webkit-user-select'] = 'none'; + root.style['user-select'] = 'none'; + root.style['-webkit-touch-callout'] = 'none'; + this.storage = storage; + root.innerHTML = ''; + this._width = this._getWidth(); + this._height = this._getHeight(); + var domRoot = document.createElement('div'); + this._domRoot = domRoot; + domRoot.style.position = 'relative'; + domRoot.style.overflow = 'hidden'; + domRoot.style.width = this._width + 'px'; + domRoot.style.height = this._height + 'px'; + root.appendChild(domRoot); + this._layers = {}; + this._zlevelList = []; + this._layerConfig = {}; + this._loadingEffect = new BaseLoadingEffect({}); + this.shapeToImage = this._createShapeToImageProcessor(); + this._bgDom = document.createElement('div'); + this._bgDom.style.cssText = [ + 'position:absolute;left:0px;top:0px;width:', + this._width, + 'px;height:', + this._height + 'px;', + '-webkit-user-select:none;user-select;none;', + '-webkit-touch-callout:none;' + ].join(''); + this._bgDom.setAttribute('data-zr-dom-id', 'bg'); + this._bgDom.className = config.elementClassName; + domRoot.appendChild(this._bgDom); + this._bgDom.onselectstart = returnFalse; + var hoverLayer = new Layer('_zrender_hover_', this); + this._layers['hover'] = hoverLayer; + domRoot.appendChild(hoverLayer.dom); + hoverLayer.initContext(); + hoverLayer.dom.onselectstart = returnFalse; + hoverLayer.dom.style['-webkit-user-select'] = 'none'; + hoverLayer.dom.style['user-select'] = 'none'; + hoverLayer.dom.style['-webkit-touch-callout'] = 'none'; + this.refreshNextFrame = null; + }; + Painter.prototype.render = function (callback) { + if (this.isLoading()) { + this.hideLoading(); + } + this.refresh(callback, true); + return this; + }; + Painter.prototype.refresh = function (callback, paintAll) { + var list = this.storage.getShapeList(true); + this._paintList(list, paintAll); + for (var i = 0; i < this._zlevelList.length; i++) { + var z = this._zlevelList[i]; + var layer = this._layers[z]; + if (!layer.isBuildin && layer.refresh) { + layer.refresh(); + } + } + if (typeof callback == 'function') { + callback(); + } + return this; + }; + Painter.prototype._preProcessLayer = function (layer) { + layer.unusedCount++; + layer.updateTransform(); + }; + Painter.prototype._postProcessLayer = function (layer) { + layer.dirty = false; + if (layer.unusedCount == 1) { + layer.clear(); + } + }; + Painter.prototype._paintList = function (list, paintAll) { + if (typeof paintAll == 'undefined') { + paintAll = false; + } + this._updateLayerStatus(list); + var currentLayer; + var currentZLevel; + var ctx; + this.eachBuildinLayer(this._preProcessLayer); + for (var i = 0, l = list.length; i < l; i++) { + var shape = list[i]; + if (currentZLevel !== shape.zlevel) { + if (currentLayer) { + if (currentLayer.needTransform) { + ctx.restore(); + } + ctx.flush && ctx.flush(); + } + currentZLevel = shape.zlevel; + currentLayer = this.getLayer(currentZLevel); + if (!currentLayer.isBuildin) { + log('ZLevel ' + currentZLevel + ' has been used by unkown layer ' + currentLayer.id); + } + ctx = currentLayer.ctx; + currentLayer.unusedCount = 0; + if (currentLayer.dirty || paintAll) { + currentLayer.clear(); + } + if (currentLayer.needTransform) { + ctx.save(); + currentLayer.setTransform(ctx); + } + } + if ((currentLayer.dirty || paintAll) && !shape.invisible) { + if (!shape.onbrush || shape.onbrush && !shape.onbrush(ctx, false)) { + if (config.catchBrushException) { + try { + shape.brush(ctx, false, this.refreshNextFrame); + } catch (error) { + log(error, 'brush error of ' + shape.type, shape); + } + } else { + shape.brush(ctx, false, this.refreshNextFrame); + } + } + } + shape.__dirty = false; + } + if (currentLayer) { + if (currentLayer.needTransform) { + ctx.restore(); + } + ctx.flush && ctx.flush(); + } + this.eachBuildinLayer(this._postProcessLayer); + }; + Painter.prototype.getLayer = function (zlevel) { + var layer = this._layers[zlevel]; + if (!layer) { + layer = new Layer(zlevel, this); + layer.isBuildin = true; + if (this._layerConfig[zlevel]) { + util.merge(layer, this._layerConfig[zlevel], true); + } + layer.updateTransform(); + this.insertLayer(zlevel, layer); + layer.initContext(); + } + return layer; + }; + Painter.prototype.insertLayer = function (zlevel, layer) { + if (this._layers[zlevel]) { + log('ZLevel ' + zlevel + ' has been used already'); + return; + } + if (!isLayerValid(layer)) { + log('Layer of zlevel ' + zlevel + ' is not valid'); + return; + } + var len = this._zlevelList.length; + var prevLayer = null; + var i = -1; + if (len > 0 && zlevel > this._zlevelList[0]) { + for (i = 0; i < len - 1; i++) { + if (this._zlevelList[i] < zlevel && this._zlevelList[i + 1] > zlevel) { + break; + } + } + prevLayer = this._layers[this._zlevelList[i]]; + } + this._zlevelList.splice(i + 1, 0, zlevel); + var prevDom = prevLayer ? prevLayer.dom : this._bgDom; + if (prevDom.nextSibling) { + prevDom.parentNode.insertBefore(layer.dom, prevDom.nextSibling); + } else { + prevDom.parentNode.appendChild(layer.dom); + } + this._layers[zlevel] = layer; + }; + Painter.prototype.eachLayer = function (cb, context) { + for (var i = 0; i < this._zlevelList.length; i++) { + var z = this._zlevelList[i]; + cb.call(context, this._layers[z], z); + } + }; + Painter.prototype.eachBuildinLayer = function (cb, context) { + for (var i = 0; i < this._zlevelList.length; i++) { + var z = this._zlevelList[i]; + var layer = this._layers[z]; + if (layer.isBuildin) { + cb.call(context, layer, z); + } + } + }; + Painter.prototype.eachOtherLayer = function (cb, context) { + for (var i = 0; i < this._zlevelList.length; i++) { + var z = this._zlevelList[i]; + var layer = this._layers[z]; + if (!layer.isBuildin) { + cb.call(context, layer, z); + } + } + }; + Painter.prototype.getLayers = function () { + return this._layers; + }; + Painter.prototype._updateLayerStatus = function (list) { + var layers = this._layers; + var elCounts = {}; + this.eachBuildinLayer(function (layer, z) { + elCounts[z] = layer.elCount; + layer.elCount = 0; + }); + for (var i = 0, l = list.length; i < l; i++) { + var shape = list[i]; + var zlevel = shape.zlevel; + var layer = layers[zlevel]; + if (layer) { + layer.elCount++; + if (layer.dirty) { + continue; + } + layer.dirty = shape.__dirty; + } + } + this.eachBuildinLayer(function (layer, z) { + if (elCounts[z] !== layer.elCount) { + layer.dirty = true; + } + }); + }; + Painter.prototype.refreshShapes = function (shapeList, callback) { + for (var i = 0, l = shapeList.length; i < l; i++) { + var shape = shapeList[i]; + shape.modSelf(); + } + this.refresh(callback); + return this; + }; + Painter.prototype.setLoadingEffect = function (loadingEffect) { + this._loadingEffect = loadingEffect; + return this; + }; + Painter.prototype.clear = function () { + this.eachBuildinLayer(this._clearLayer); + return this; + }; + Painter.prototype._clearLayer = function (layer) { + layer.clear(); + }; + Painter.prototype.modLayer = function (zlevel, config) { + if (config) { + if (!this._layerConfig[zlevel]) { + this._layerConfig[zlevel] = config; + } else { + util.merge(this._layerConfig[zlevel], config, true); + } + var layer = this._layers[zlevel]; + if (layer) { + util.merge(layer, this._layerConfig[zlevel], true); + } + } + }; + Painter.prototype.delLayer = function (zlevel) { + var layer = this._layers[zlevel]; + if (!layer) { + return; + } + this.modLayer(zlevel, { + position: layer.position, + rotation: layer.rotation, + scale: layer.scale + }); + layer.dom.parentNode.removeChild(layer.dom); + delete this._layers[zlevel]; + this._zlevelList.splice(util.indexOf(this._zlevelList, zlevel), 1); + }; + Painter.prototype.refreshHover = function () { + this.clearHover(); + var list = this.storage.getHoverShapes(true); + for (var i = 0, l = list.length; i < l; i++) { + this._brushHover(list[i]); + } + var ctx = this._layers.hover.ctx; + ctx.flush && ctx.flush(); + this.storage.delHover(); + return this; + }; + Painter.prototype.clearHover = function () { + var hover = this._layers.hover; + hover && hover.clear(); + return this; + }; + Painter.prototype.showLoading = function (loadingEffect) { + this._loadingEffect && this._loadingEffect.stop(); + loadingEffect && this.setLoadingEffect(loadingEffect); + this._loadingEffect.start(this); + this.loading = true; + return this; + }; + Painter.prototype.hideLoading = function () { + this._loadingEffect.stop(); + this.clearHover(); + this.loading = false; + return this; + }; + Painter.prototype.isLoading = function () { + return this.loading; + }; + Painter.prototype.resize = function () { + var domRoot = this._domRoot; + domRoot.style.display = 'none'; + var width = this._getWidth(); + var height = this._getHeight(); + domRoot.style.display = ''; + if (this._width != width || height != this._height) { + this._width = width; + this._height = height; + domRoot.style.width = width + 'px'; + domRoot.style.height = height + 'px'; + for (var id in this._layers) { + this._layers[id].resize(width, height); + } + this.refresh(null, true); + } + return this; + }; + Painter.prototype.clearLayer = function (zLevel) { + var layer = this._layers[zLevel]; + if (layer) { + layer.clear(); + } + }; + Painter.prototype.dispose = function () { + if (this.isLoading()) { + this.hideLoading(); + } + this.root.innerHTML = ''; + this.root = this.storage = this._domRoot = this._layers = null; + }; + Painter.prototype.getDomHover = function () { + return this._layers.hover.dom; + }; + Painter.prototype.toDataURL = function (type, backgroundColor, args) { + if (window['G_vmlCanvasManager']) { + return null; + } + var imageLayer = new Layer('image', this); + this._bgDom.appendChild(imageLayer.dom); + imageLayer.initContext(); + var ctx = imageLayer.ctx; + imageLayer.clearColor = backgroundColor || '#fff'; + imageLayer.clear(); + var self = this; + this.storage.iterShape(function (shape) { + if (!shape.invisible) { + if (!shape.onbrush || shape.onbrush && !shape.onbrush(ctx, false)) { + if (config.catchBrushException) { + try { + shape.brush(ctx, false, self.refreshNextFrame); + } catch (error) { + log(error, 'brush error of ' + shape.type, shape); + } + } else { + shape.brush(ctx, false, self.refreshNextFrame); + } + } + } + }, { + normal: 'up', + update: true + }); + var image = imageLayer.dom.toDataURL(type, args); + ctx = null; + this._bgDom.removeChild(imageLayer.dom); + return image; + }; + Painter.prototype.getWidth = function () { + return this._width; + }; + Painter.prototype.getHeight = function () { + return this._height; + }; + Painter.prototype._getWidth = function () { + var root = this.root; + var stl = root.currentStyle || document.defaultView.getComputedStyle(root); + return ((root.clientWidth || parseInt(stl.width, 10)) - parseInt(stl.paddingLeft, 10) - parseInt(stl.paddingRight, 10)).toFixed(0) - 0; + }; + Painter.prototype._getHeight = function () { + var root = this.root; + var stl = root.currentStyle || document.defaultView.getComputedStyle(root); + return ((root.clientHeight || parseInt(stl.height, 10)) - parseInt(stl.paddingTop, 10) - parseInt(stl.paddingBottom, 10)).toFixed(0) - 0; + }; + Painter.prototype._brushHover = function (shape) { + var ctx = this._layers.hover.ctx; + if (!shape.onbrush || shape.onbrush && !shape.onbrush(ctx, true)) { + var layer = this.getLayer(shape.zlevel); + if (layer.needTransform) { + ctx.save(); + layer.setTransform(ctx); + } + if (config.catchBrushException) { + try { + shape.brush(ctx, true, this.refreshNextFrame); + } catch (error) { + log(error, 'hoverBrush error of ' + shape.type, shape); + } + } else { + shape.brush(ctx, true, this.refreshNextFrame); + } + if (layer.needTransform) { + ctx.restore(); + } + } + }; + Painter.prototype._shapeToImage = function (id, shape, width, height, devicePixelRatio) { + var canvas = document.createElement('canvas'); + var ctx = canvas.getContext('2d'); + canvas.style.width = width + 'px'; + canvas.style.height = height + 'px'; + canvas.setAttribute('width', width * devicePixelRatio); + canvas.setAttribute('height', height * devicePixelRatio); + ctx.clearRect(0, 0, width * devicePixelRatio, height * devicePixelRatio); + var shapeTransform = { + position: shape.position, + rotation: shape.rotation, + scale: shape.scale + }; + shape.position = [ + 0, + 0, + 0 + ]; + shape.rotation = 0; + shape.scale = [ + 1, + 1 + ]; + if (shape) { + shape.brush(ctx, false); + } + var ImageShape = require('./shape/Image'); + var imgShape = new ImageShape({ + id: id, + style: { + x: 0, + y: 0, + image: canvas + } + }); + if (shapeTransform.position != null) { + imgShape.position = shape.position = shapeTransform.position; + } + if (shapeTransform.rotation != null) { + imgShape.rotation = shape.rotation = shapeTransform.rotation; + } + if (shapeTransform.scale != null) { + imgShape.scale = shape.scale = shapeTransform.scale; + } + return imgShape; + }; + Painter.prototype._createShapeToImageProcessor = function () { + if (window['G_vmlCanvasManager']) { + return doNothing; + } + var me = this; + return function (id, e, width, height) { + return me._shapeToImage(id, e, width, height, config.devicePixelRatio); + }; + }; + return Painter; +});define('zrender/Storage', [ + 'require', + './tool/util', + './Group' +], function (require) { + 'use strict'; + var util = require('./tool/util'); + var Group = require('./Group'); + var defaultIterateOption = { + hover: false, + normal: 'down', + update: false + }; + function shapeCompareFunc(a, b) { + if (a.zlevel == b.zlevel) { + if (a.z == b.z) { + return a.__renderidx - b.__renderidx; + } + return a.z - b.z; + } + return a.zlevel - b.zlevel; + } + var Storage = function () { + this._elements = {}; + this._hoverElements = []; + this._roots = []; + this._shapeList = []; + this._shapeListOffset = 0; + }; + Storage.prototype.iterShape = function (fun, option) { + if (!option) { + option = defaultIterateOption; + } + if (option.hover) { + for (var i = 0, l = this._hoverElements.length; i < l; i++) { + var el = this._hoverElements[i]; + el.updateTransform(); + if (fun(el)) { + return this; + } + } + } + if (option.update) { + this.updateShapeList(); + } + switch (option.normal) { + case 'down': + var l = this._shapeList.length; + while (l--) { + if (fun(this._shapeList[l])) { + return this; + } + } + break; + default: + for (var i = 0, l = this._shapeList.length; i < l; i++) { + if (fun(this._shapeList[i])) { + return this; + } + } + break; + } + return this; + }; + Storage.prototype.getHoverShapes = function (update) { + var hoverElements = []; + for (var i = 0, l = this._hoverElements.length; i < l; i++) { + hoverElements.push(this._hoverElements[i]); + var target = this._hoverElements[i].hoverConnect; + if (target) { + var shape; + target = target instanceof Array ? target : [target]; + for (var j = 0, k = target.length; j < k; j++) { + shape = target[j].id ? target[j] : this.get(target[j]); + if (shape) { + hoverElements.push(shape); + } + } + } + } + hoverElements.sort(shapeCompareFunc); + if (update) { + for (var i = 0, l = hoverElements.length; i < l; i++) { + hoverElements[i].updateTransform(); + } + } + return hoverElements; + }; + Storage.prototype.getShapeList = function (update) { + if (update) { + this.updateShapeList(); + } + return this._shapeList; + }; + Storage.prototype.updateShapeList = function () { + this._shapeListOffset = 0; + for (var i = 0, len = this._roots.length; i < len; i++) { + var root = this._roots[i]; + this._updateAndAddShape(root); + } + this._shapeList.length = this._shapeListOffset; + for (var i = 0, len = this._shapeList.length; i < len; i++) { + this._shapeList[i].__renderidx = i; + } + this._shapeList.sort(shapeCompareFunc); + }; + Storage.prototype._updateAndAddShape = function (el, clipShapes) { + if (el.ignore) { + return; + } + el.updateTransform(); + if (el.clipShape) { + el.clipShape.parent = el; + el.clipShape.updateTransform(); + if (clipShapes) { + clipShapes = clipShapes.slice(); + clipShapes.push(el.clipShape); + } else { + clipShapes = [el.clipShape]; + } + } + if (el.type == 'group') { + for (var i = 0; i < el._children.length; i++) { + var child = el._children[i]; + child.__dirty = el.__dirty || child.__dirty; + this._updateAndAddShape(child, clipShapes); + } + el.__dirty = false; + } else { + el.__clipShapes = clipShapes; + this._shapeList[this._shapeListOffset++] = el; + } + }; + Storage.prototype.mod = function (el, params) { + if (typeof el === 'string') { + el = this._elements[el]; + } + if (el) { + el.modSelf(); + if (params) { + if (params.parent || params._storage || params.__clipShapes) { + var target = {}; + for (var name in params) { + if (name === 'parent' || name === '_storage' || name === '__clipShapes') { + continue; + } + if (params.hasOwnProperty(name)) { + target[name] = params[name]; + } + } + util.merge(el, target, true); + } else { + util.merge(el, params, true); + } + } + } + return this; + }; + Storage.prototype.drift = function (shapeId, dx, dy) { + var shape = this._elements[shapeId]; + if (shape) { + shape.needTransform = true; + if (shape.draggable === 'horizontal') { + dy = 0; + } else if (shape.draggable === 'vertical') { + dx = 0; + } + if (!shape.ondrift || shape.ondrift && !shape.ondrift(dx, dy)) { + shape.drift(dx, dy); + } + } + return this; + }; + Storage.prototype.addHover = function (shape) { + shape.updateNeedTransform(); + this._hoverElements.push(shape); + return this; + }; + Storage.prototype.delHover = function () { + this._hoverElements = []; + return this; + }; + Storage.prototype.hasHoverShape = function () { + return this._hoverElements.length > 0; + }; + Storage.prototype.addRoot = function (el) { + if (this._elements[el.id]) { + return; + } + if (el instanceof Group) { + el.addChildrenToStorage(this); + } + this.addToMap(el); + this._roots.push(el); + }; + Storage.prototype.delRoot = function (elId) { + if (typeof elId == 'undefined') { + for (var i = 0; i < this._roots.length; i++) { + var root = this._roots[i]; + if (root instanceof Group) { + root.delChildrenFromStorage(this); + } + } + this._elements = {}; + this._hoverElements = []; + this._roots = []; + this._shapeList = []; + this._shapeListOffset = 0; + return; + } + if (elId instanceof Array) { + for (var i = 0, l = elId.length; i < l; i++) { + this.delRoot(elId[i]); + } + return; + } + var el; + if (typeof elId == 'string') { + el = this._elements[elId]; + } else { + el = elId; + } + var idx = util.indexOf(this._roots, el); + if (idx >= 0) { + this.delFromMap(el.id); + this._roots.splice(idx, 1); + if (el instanceof Group) { + el.delChildrenFromStorage(this); + } + } + }; + Storage.prototype.addToMap = function (el) { + if (el instanceof Group) { + el._storage = this; + } + el.modSelf(); + this._elements[el.id] = el; + return this; + }; + Storage.prototype.get = function (elId) { + return this._elements[elId]; + }; + Storage.prototype.delFromMap = function (elId) { + var el = this._elements[elId]; + if (el) { + delete this._elements[elId]; + if (el instanceof Group) { + el._storage = null; + } + } + return this; + }; + Storage.prototype.dispose = function () { + this._elements = this._renderList = this._roots = this._hoverElements = null; + }; + return Storage; +});define('zrender/animation/Animation', [ + 'require', + './Clip', + '../tool/color', + '../tool/util', + '../tool/event' +], function (require) { + 'use strict'; + var Clip = require('./Clip'); + var color = require('../tool/color'); + var util = require('../tool/util'); + var Dispatcher = require('../tool/event').Dispatcher; + var requestAnimationFrame = window.requestAnimationFrame || window.msRequestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || function (func) { + setTimeout(func, 16); + }; + var arraySlice = Array.prototype.slice; + var Animation = function (options) { + options = options || {}; + this.stage = options.stage || {}; + this.onframe = options.onframe || function () { + }; + this._clips = []; + this._running = false; + this._time = 0; + Dispatcher.call(this); + }; + Animation.prototype = { + add: function (clip) { + this._clips.push(clip); + }, + remove: function (clip) { + if (clip.__inStep) { + clip.__needsRemove = true; + } else { + var idx = util.indexOf(this._clips, clip); + if (idx >= 0) { + this._clips.splice(idx, 1); + } + } + }, + _update: function () { + var time = new Date().getTime(); + var delta = time - this._time; + var clips = this._clips; + var len = clips.length; + var deferredEvents = []; + var deferredClips = []; + for (var i = 0; i < len; i++) { + var clip = clips[i]; + clip.__inStep = true; + var e = clip.step(time); + clip.__inStep = false; + if (e) { + deferredEvents.push(e); + deferredClips.push(clip); + } + } + for (var i = 0; i < len;) { + if (clips[i].__needsRemove) { + clips[i] = clips[len - 1]; + clips.pop(); + len--; + } else { + i++; + } + } + len = deferredEvents.length; + for (var i = 0; i < len; i++) { + deferredClips[i].fire(deferredEvents[i]); + } + this._time = time; + this.onframe(delta); + this.dispatch('frame', delta); + if (this.stage.update) { + this.stage.update(); + } + }, + start: function () { + var self = this; + this._running = true; + function step() { + if (self._running) { + requestAnimationFrame(step); + self._update(); + } + } + this._time = new Date().getTime(); + requestAnimationFrame(step); + }, + stop: function () { + this._running = false; + }, + clear: function () { + this._clips = []; + }, + animate: function (target, options) { + options = options || {}; + var deferred = new Animator(target, options.loop, options.getter, options.setter); + deferred.animation = this; + return deferred; + }, + constructor: Animation + }; + util.merge(Animation.prototype, Dispatcher.prototype, true); + function _defaultGetter(target, key) { + return target[key]; + } + function _defaultSetter(target, key, value) { + target[key] = value; + } + function _interpolateNumber(p0, p1, percent) { + return (p1 - p0) * percent + p0; + } + function _interpolateArray(p0, p1, percent, out, arrDim) { + var len = p0.length; + if (arrDim == 1) { + for (var i = 0; i < len; i++) { + out[i] = _interpolateNumber(p0[i], p1[i], percent); + } + } else { + var len2 = p0[0].length; + for (var i = 0; i < len; i++) { + for (var j = 0; j < len2; j++) { + out[i][j] = _interpolateNumber(p0[i][j], p1[i][j], percent); + } + } + } + } + function _isArrayLike(data) { + switch (typeof data) { + case 'undefined': + case 'string': + return false; + } + return typeof data.length !== 'undefined'; + } + function _catmullRomInterpolateArray(p0, p1, p2, p3, t, t2, t3, out, arrDim) { + var len = p0.length; + if (arrDim == 1) { + for (var i = 0; i < len; i++) { + out[i] = _catmullRomInterpolate(p0[i], p1[i], p2[i], p3[i], t, t2, t3); + } + } else { + var len2 = p0[0].length; + for (var i = 0; i < len; i++) { + for (var j = 0; j < len2; j++) { + out[i][j] = _catmullRomInterpolate(p0[i][j], p1[i][j], p2[i][j], p3[i][j], t, t2, t3); + } + } + } + } + function _catmullRomInterpolate(p0, p1, p2, p3, t, t2, t3) { + var v0 = (p2 - p0) * 0.5; + var v1 = (p3 - p1) * 0.5; + return (2 * (p1 - p2) + v0 + v1) * t3 + (-3 * (p1 - p2) - 2 * v0 - v1) * t2 + v0 * t + p1; + } + function _cloneValue(value) { + if (_isArrayLike(value)) { + var len = value.length; + if (_isArrayLike(value[0])) { + var ret = []; + for (var i = 0; i < len; i++) { + ret.push(arraySlice.call(value[i])); + } + return ret; + } else { + return arraySlice.call(value); + } + } else { + return value; + } + } + function rgba2String(rgba) { + rgba[0] = Math.floor(rgba[0]); + rgba[1] = Math.floor(rgba[1]); + rgba[2] = Math.floor(rgba[2]); + return 'rgba(' + rgba.join(',') + ')'; + } + var Animator = function (target, loop, getter, setter) { + this._tracks = {}; + this._target = target; + this._loop = loop || false; + this._getter = getter || _defaultGetter; + this._setter = setter || _defaultSetter; + this._clipCount = 0; + this._delay = 0; + this._doneList = []; + this._onframeList = []; + this._clipList = []; + }; + Animator.prototype = { + when: function (time, props) { + for (var propName in props) { + if (!this._tracks[propName]) { + this._tracks[propName] = []; + if (time !== 0) { + this._tracks[propName].push({ + time: 0, + value: _cloneValue(this._getter(this._target, propName)) + }); + } + } + this._tracks[propName].push({ + time: parseInt(time, 10), + value: props[propName] + }); + } + return this; + }, + during: function (callback) { + this._onframeList.push(callback); + return this; + }, + start: function (easing) { + var self = this; + var setter = this._setter; + var getter = this._getter; + var useSpline = easing === 'spline'; + var ondestroy = function () { + self._clipCount--; + if (self._clipCount === 0) { + self._tracks = {}; + var len = self._doneList.length; + for (var i = 0; i < len; i++) { + self._doneList[i].call(self); + } + } + }; + var createTrackClip = function (keyframes, propName) { + var trackLen = keyframes.length; + if (!trackLen) { + return; + } + var firstVal = keyframes[0].value; + var isValueArray = _isArrayLike(firstVal); + var isValueColor = false; + var arrDim = isValueArray && _isArrayLike(firstVal[0]) ? 2 : 1; + keyframes.sort(function (a, b) { + return a.time - b.time; + }); + var trackMaxTime; + if (trackLen) { + trackMaxTime = keyframes[trackLen - 1].time; + } else { + return; + } + var kfPercents = []; + var kfValues = []; + for (var i = 0; i < trackLen; i++) { + kfPercents.push(keyframes[i].time / trackMaxTime); + var value = keyframes[i].value; + if (typeof value == 'string') { + value = color.toArray(value); + if (value.length === 0) { + value[0] = value[1] = value[2] = 0; + value[3] = 1; + } + isValueColor = true; + } + kfValues.push(value); + } + var cacheKey = 0; + var cachePercent = 0; + var start; + var i; + var w; + var p0; + var p1; + var p2; + var p3; + if (isValueColor) { + var rgba = [ + 0, + 0, + 0, + 0 + ]; + } + var onframe = function (target, percent) { + if (percent < cachePercent) { + start = Math.min(cacheKey + 1, trackLen - 1); + for (i = start; i >= 0; i--) { + if (kfPercents[i] <= percent) { + break; + } + } + i = Math.min(i, trackLen - 2); + } else { + for (i = cacheKey; i < trackLen; i++) { + if (kfPercents[i] > percent) { + break; + } + } + i = Math.min(i - 1, trackLen - 2); + } + cacheKey = i; + cachePercent = percent; + var range = kfPercents[i + 1] - kfPercents[i]; + if (range === 0) { + return; + } else { + w = (percent - kfPercents[i]) / range; + } + if (useSpline) { + p1 = kfValues[i]; + p0 = kfValues[i === 0 ? i : i - 1]; + p2 = kfValues[i > trackLen - 2 ? trackLen - 1 : i + 1]; + p3 = kfValues[i > trackLen - 3 ? trackLen - 1 : i + 2]; + if (isValueArray) { + _catmullRomInterpolateArray(p0, p1, p2, p3, w, w * w, w * w * w, getter(target, propName), arrDim); + } else { + var value; + if (isValueColor) { + value = _catmullRomInterpolateArray(p0, p1, p2, p3, w, w * w, w * w * w, rgba, 1); + value = rgba2String(rgba); + } else { + value = _catmullRomInterpolate(p0, p1, p2, p3, w, w * w, w * w * w); + } + setter(target, propName, value); + } + } else { + if (isValueArray) { + _interpolateArray(kfValues[i], kfValues[i + 1], w, getter(target, propName), arrDim); + } else { + var value; + if (isValueColor) { + _interpolateArray(kfValues[i], kfValues[i + 1], w, rgba, 1); + value = rgba2String(rgba); + } else { + value = _interpolateNumber(kfValues[i], kfValues[i + 1], w); + } + setter(target, propName, value); + } + } + for (i = 0; i < self._onframeList.length; i++) { + self._onframeList[i](target, percent); + } + }; + var clip = new Clip({ + target: self._target, + life: trackMaxTime, + loop: self._loop, + delay: self._delay, + onframe: onframe, + ondestroy: ondestroy + }); + if (easing && easing !== 'spline') { + clip.easing = easing; + } + self._clipList.push(clip); + self._clipCount++; + self.animation.add(clip); + }; + for (var propName in this._tracks) { + createTrackClip(this._tracks[propName], propName); + } + return this; + }, + stop: function () { + for (var i = 0; i < this._clipList.length; i++) { + var clip = this._clipList[i]; + this.animation.remove(clip); + } + this._clipList = []; + }, + delay: function (time) { + this._delay = time; + return this; + }, + done: function (cb) { + if (cb) { + this._doneList.push(cb); + } + return this; + } + }; + return Animation; +});define('zrender/tool/vector', [], function () { + var ArrayCtor = typeof Float32Array === 'undefined' ? Array : Float32Array; + var vector = { + create: function (x, y) { + var out = new ArrayCtor(2); + out[0] = x || 0; + out[1] = y || 0; + return out; + }, + copy: function (out, v) { + out[0] = v[0]; + out[1] = v[1]; + return out; + }, + clone: function (v) { + var out = new ArrayCtor(2); + out[0] = v[0]; + out[1] = v[1]; + return out; + }, + set: function (out, a, b) { + out[0] = a; + out[1] = b; + return out; + }, + add: function (out, v1, v2) { + out[0] = v1[0] + v2[0]; + out[1] = v1[1] + v2[1]; + return out; + }, + scaleAndAdd: function (out, v1, v2, a) { + out[0] = v1[0] + v2[0] * a; + out[1] = v1[1] + v2[1] * a; + return out; + }, + sub: function (out, v1, v2) { + out[0] = v1[0] - v2[0]; + out[1] = v1[1] - v2[1]; + return out; + }, + len: function (v) { + return Math.sqrt(this.lenSquare(v)); + }, + lenSquare: function (v) { + return v[0] * v[0] + v[1] * v[1]; + }, + mul: function (out, v1, v2) { + out[0] = v1[0] * v2[0]; + out[1] = v1[1] * v2[1]; + return out; + }, + div: function (out, v1, v2) { + out[0] = v1[0] / v2[0]; + out[1] = v1[1] / v2[1]; + return out; + }, + dot: function (v1, v2) { + return v1[0] * v2[0] + v1[1] * v2[1]; + }, + scale: function (out, v, s) { + out[0] = v[0] * s; + out[1] = v[1] * s; + return out; + }, + normalize: function (out, v) { + var d = vector.len(v); + if (d === 0) { + out[0] = 0; + out[1] = 0; + } else { + out[0] = v[0] / d; + out[1] = v[1] / d; + } + return out; + }, + distance: function (v1, v2) { + return Math.sqrt((v1[0] - v2[0]) * (v1[0] - v2[0]) + (v1[1] - v2[1]) * (v1[1] - v2[1])); + }, + distanceSquare: function (v1, v2) { + return (v1[0] - v2[0]) * (v1[0] - v2[0]) + (v1[1] - v2[1]) * (v1[1] - v2[1]); + }, + negate: function (out, v) { + out[0] = -v[0]; + out[1] = -v[1]; + return out; + }, + lerp: function (out, v1, v2, t) { + out[0] = v1[0] + t * (v2[0] - v1[0]); + out[1] = v1[1] + t * (v2[1] - v1[1]); + return out; + }, + applyTransform: function (out, v, m) { + var x = v[0]; + var y = v[1]; + out[0] = m[0] * x + m[2] * y + m[4]; + out[1] = m[1] * x + m[3] * y + m[5]; + return out; + }, + min: function (out, v1, v2) { + out[0] = Math.min(v1[0], v2[0]); + out[1] = Math.min(v1[1], v2[1]); + return out; + }, + max: function (out, v1, v2) { + out[0] = Math.max(v1[0], v2[0]); + out[1] = Math.max(v1[1], v2[1]); + return out; + } + }; + vector.length = vector.len; + vector.lengthSquare = vector.lenSquare; + vector.dist = vector.distance; + vector.distSquare = vector.distanceSquare; + return vector; +});define('zrender/tool/matrix', [], function () { + var ArrayCtor = typeof Float32Array === 'undefined' ? Array : Float32Array; + var matrix = { + create: function () { + var out = new ArrayCtor(6); + matrix.identity(out); + return out; + }, + identity: function (out) { + out[0] = 1; + out[1] = 0; + out[2] = 0; + out[3] = 1; + out[4] = 0; + out[5] = 0; + return out; + }, + copy: function (out, m) { + out[0] = m[0]; + out[1] = m[1]; + out[2] = m[2]; + out[3] = m[3]; + out[4] = m[4]; + out[5] = m[5]; + return out; + }, + mul: function (out, m1, m2) { + out[0] = m1[0] * m2[0] + m1[2] * m2[1]; + out[1] = m1[1] * m2[0] + m1[3] * m2[1]; + out[2] = m1[0] * m2[2] + m1[2] * m2[3]; + out[3] = m1[1] * m2[2] + m1[3] * m2[3]; + out[4] = m1[0] * m2[4] + m1[2] * m2[5] + m1[4]; + out[5] = m1[1] * m2[4] + m1[3] * m2[5] + m1[5]; + return out; + }, + translate: function (out, a, v) { + out[0] = a[0]; + out[1] = a[1]; + out[2] = a[2]; + out[3] = a[3]; + out[4] = a[4] + v[0]; + out[5] = a[5] + v[1]; + return out; + }, + rotate: function (out, a, rad) { + var aa = a[0]; + var ac = a[2]; + var atx = a[4]; + var ab = a[1]; + var ad = a[3]; + var aty = a[5]; + var st = Math.sin(rad); + var ct = Math.cos(rad); + out[0] = aa * ct + ab * st; + out[1] = -aa * st + ab * ct; + out[2] = ac * ct + ad * st; + out[3] = -ac * st + ct * ad; + out[4] = ct * atx + st * aty; + out[5] = ct * aty - st * atx; + return out; + }, + scale: function (out, a, v) { + var vx = v[0]; + var vy = v[1]; + out[0] = a[0] * vx; + out[1] = a[1] * vy; + out[2] = a[2] * vx; + out[3] = a[3] * vy; + out[4] = a[4] * vx; + out[5] = a[5] * vy; + return out; + }, + invert: function (out, a) { + var aa = a[0]; + var ac = a[2]; + var atx = a[4]; + var ab = a[1]; + var ad = a[3]; + var aty = a[5]; + var det = aa * ad - ab * ac; + if (!det) { + return null; + } + det = 1 / det; + out[0] = ad * det; + out[1] = -ab * det; + out[2] = -ac * det; + out[3] = aa * det; + out[4] = (ac * aty - ad * atx) * det; + out[5] = (ab * atx - aa * aty) * det; + return out; + } + }; + return matrix; +});define('zrender/loadingEffect/Base', [ + 'require', + '../tool/util', + '../shape/Text', + '../shape/Rectangle' +], function (require) { + var util = require('../tool/util'); + var TextShape = require('../shape/Text'); + var RectangleShape = require('../shape/Rectangle'); + var DEFAULT_TEXT = 'Loading...'; + var DEFAULT_TEXT_FONT = 'normal 16px Arial'; + function Base(options) { + this.setOptions(options); + } + Base.prototype.createTextShape = function (textStyle) { + return new TextShape({ + highlightStyle: util.merge({ + x: this.canvasWidth / 2, + y: this.canvasHeight / 2, + text: DEFAULT_TEXT, + textAlign: 'center', + textBaseline: 'middle', + textFont: DEFAULT_TEXT_FONT, + color: '#333', + brushType: 'fill' + }, textStyle, true) + }); + }; + Base.prototype.createBackgroundShape = function (color) { + return new RectangleShape({ + highlightStyle: { + x: 0, + y: 0, + width: this.canvasWidth, + height: this.canvasHeight, + brushType: 'fill', + color: color + } + }); + }; + Base.prototype.start = function (painter) { + this.canvasWidth = painter._width; + this.canvasHeight = painter._height; + function addShapeHandle(param) { + painter.storage.addHover(param); + } + function refreshHandle() { + painter.refreshHover(); + } + this.loadingTimer = this._start(addShapeHandle, refreshHandle); + }; + Base.prototype._start = function () { + return setInterval(function () { + }, 10000); + }; + Base.prototype.stop = function () { + clearInterval(this.loadingTimer); + }; + Base.prototype.setOptions = function (options) { + this.options = options || {}; + }; + Base.prototype.adjust = function (value, region) { + if (value <= region[0]) { + value = region[0]; + } else if (value >= region[1]) { + value = region[1]; + } + return value; + }; + Base.prototype.getLocation = function (loc, totalWidth, totalHeight) { + var x = loc.x != null ? loc.x : 'center'; + switch (x) { + case 'center': + x = Math.floor((this.canvasWidth - totalWidth) / 2); + break; + case 'left': + x = 0; + break; + case 'right': + x = this.canvasWidth - totalWidth; + break; + } + var y = loc.y != null ? loc.y : 'center'; + switch (y) { + case 'center': + y = Math.floor((this.canvasHeight - totalHeight) / 2); + break; + case 'top': + y = 0; + break; + case 'bottom': + y = this.canvasHeight - totalHeight; + break; + } + return { + x: x, + y: y, + width: totalWidth, + height: totalHeight + }; + }; + return Base; +});define('zrender/Layer', [ + 'require', + './mixin/Transformable', + './tool/util', + './config' +], function (require) { + var Transformable = require('./mixin/Transformable'); + var util = require('./tool/util'); + var vmlCanvasManager = window['G_vmlCanvasManager']; + var config = require('./config'); + function returnFalse() { + return false; + } + function createDom(id, type, painter) { + var newDom = document.createElement(type); + var width = painter.getWidth(); + var height = painter.getHeight(); + newDom.style.position = 'absolute'; + newDom.style.left = 0; + newDom.style.top = 0; + newDom.style.width = width + 'px'; + newDom.style.height = height + 'px'; + newDom.width = width * config.devicePixelRatio; + newDom.height = height * config.devicePixelRatio; + newDom.setAttribute('data-zr-dom-id', id); + return newDom; + } + var Layer = function (id, painter) { + this.id = id; + this.dom = createDom(id, 'canvas', painter); + this.dom.onselectstart = returnFalse; + this.dom.style['-webkit-user-select'] = 'none'; + this.dom.style['user-select'] = 'none'; + this.dom.style['-webkit-touch-callout'] = 'none'; + this.dom.style['-webkit-tap-highlight-color'] = 'rgba(0,0,0,0)'; + this.dom.className = config.elementClassName; + vmlCanvasManager && vmlCanvasManager.initElement(this.dom); + this.domBack = null; + this.ctxBack = null; + this.painter = painter; + this.unusedCount = 0; + this.config = null; + this.dirty = true; + this.elCount = 0; + this.clearColor = 0; + this.motionBlur = false; + this.lastFrameAlpha = 0.7; + this.zoomable = false; + this.panable = false; + this.maxZoom = Infinity; + this.minZoom = 0; + Transformable.call(this); + }; + Layer.prototype.initContext = function () { + this.ctx = this.dom.getContext('2d'); + var dpr = config.devicePixelRatio; + if (dpr != 1) { + this.ctx.scale(dpr, dpr); + } + }; + Layer.prototype.createBackBuffer = function () { + if (vmlCanvasManager) { + return; + } + this.domBack = createDom('back-' + this.id, 'canvas', this.painter); + this.ctxBack = this.domBack.getContext('2d'); + var dpr = config.devicePixelRatio; + if (dpr != 1) { + this.ctxBack.scale(dpr, dpr); + } + }; + Layer.prototype.resize = function (width, height) { + var dpr = config.devicePixelRatio; + this.dom.style.width = width + 'px'; + this.dom.style.height = height + 'px'; + this.dom.setAttribute('width', width * dpr); + this.dom.setAttribute('height', height * dpr); + if (dpr != 1) { + this.ctx.scale(dpr, dpr); + } + if (this.domBack) { + this.domBack.setAttribute('width', width * dpr); + this.domBack.setAttribute('height', height * dpr); + if (dpr != 1) { + this.ctxBack.scale(dpr, dpr); + } + } + }; + Layer.prototype.clear = function () { + var dom = this.dom; + var ctx = this.ctx; + var width = dom.width; + var height = dom.height; + var haveClearColor = this.clearColor && !vmlCanvasManager; + var haveMotionBLur = this.motionBlur && !vmlCanvasManager; + var lastFrameAlpha = this.lastFrameAlpha; + var dpr = config.devicePixelRatio; + if (haveMotionBLur) { + if (!this.domBack) { + this.createBackBuffer(); + } + this.ctxBack.globalCompositeOperation = 'copy'; + this.ctxBack.drawImage(dom, 0, 0, width / dpr, height / dpr); + } + ctx.clearRect(0, 0, width / dpr, height / dpr); + if (haveClearColor) { + ctx.save(); + ctx.fillStyle = this.clearColor; + ctx.fillRect(0, 0, width / dpr, height / dpr); + ctx.restore(); + } + if (haveMotionBLur) { + var domBack = this.domBack; + ctx.save(); + ctx.globalAlpha = lastFrameAlpha; + ctx.drawImage(domBack, 0, 0, width / dpr, height / dpr); + ctx.restore(); + } + }; + util.merge(Layer.prototype, Transformable.prototype); + return Layer; +});define('zrender/shape/Text', [ + 'require', + '../tool/area', + './Base', + '../tool/util' +], function (require) { + var area = require('../tool/area'); + var Base = require('./Base'); + var Text = function (options) { + Base.call(this, options); + }; + Text.prototype = { + type: 'text', + brush: function (ctx, isHighlight) { + var style = this.style; + if (isHighlight) { + style = this.getHighlightStyle(style, this.highlightStyle || {}); + } + if (typeof style.text == 'undefined' || style.text === false) { + return; + } + ctx.save(); + this.doClip(ctx); + this.setContext(ctx, style); + this.setTransform(ctx); + if (style.textFont) { + ctx.font = style.textFont; + } + ctx.textAlign = style.textAlign || 'start'; + ctx.textBaseline = style.textBaseline || 'middle'; + var text = (style.text + '').split('\n'); + var lineHeight = area.getTextHeight('国', style.textFont); + var rect = this.getRect(style); + var x = style.x; + var y; + if (style.textBaseline == 'top') { + y = rect.y; + } else if (style.textBaseline == 'bottom') { + y = rect.y + lineHeight; + } else { + y = rect.y + lineHeight / 2; + } + for (var i = 0, l = text.length; i < l; i++) { + if (style.maxWidth) { + switch (style.brushType) { + case 'fill': + ctx.fillText(text[i], x, y, style.maxWidth); + break; + case 'stroke': + ctx.strokeText(text[i], x, y, style.maxWidth); + break; + case 'both': + ctx.fillText(text[i], x, y, style.maxWidth); + ctx.strokeText(text[i], x, y, style.maxWidth); + break; + default: + ctx.fillText(text[i], x, y, style.maxWidth); + } + } else { + switch (style.brushType) { + case 'fill': + ctx.fillText(text[i], x, y); + break; + case 'stroke': + ctx.strokeText(text[i], x, y); + break; + case 'both': + ctx.fillText(text[i], x, y); + ctx.strokeText(text[i], x, y); + break; + default: + ctx.fillText(text[i], x, y); + } + } + y += lineHeight; + } + ctx.restore(); + return; + }, + getRect: function (style) { + if (style.__rect) { + return style.__rect; + } + var width = area.getTextWidth(style.text, style.textFont); + var height = area.getTextHeight(style.text, style.textFont); + var textX = style.x; + if (style.textAlign == 'end' || style.textAlign == 'right') { + textX -= width; + } else if (style.textAlign == 'center') { + textX -= width / 2; + } + var textY; + if (style.textBaseline == 'top') { + textY = style.y; + } else if (style.textBaseline == 'bottom') { + textY = style.y - height; + } else { + textY = style.y - height / 2; + } + style.__rect = { + x: textX, + y: textY, + width: width, + height: height + }; + return style.__rect; + } + }; + require('../tool/util').inherits(Text, Base); + return Text; +});define('zrender/shape/Rectangle', [ + 'require', + './Base', + '../tool/util' +], function (require) { + var Base = require('./Base'); + var Rectangle = function (options) { + Base.call(this, options); + }; + Rectangle.prototype = { + type: 'rectangle', + _buildRadiusPath: function (ctx, style) { + var x = style.x; + var y = style.y; + var width = style.width; + var height = style.height; + var r = style.radius; + var r1; + var r2; + var r3; + var r4; + if (typeof r === 'number') { + r1 = r2 = r3 = r4 = r; + } else if (r instanceof Array) { + if (r.length === 1) { + r1 = r2 = r3 = r4 = r[0]; + } else if (r.length === 2) { + r1 = r3 = r[0]; + r2 = r4 = r[1]; + } else if (r.length === 3) { + r1 = r[0]; + r2 = r4 = r[1]; + r3 = r[2]; + } else { + r1 = r[0]; + r2 = r[1]; + r3 = r[2]; + r4 = r[3]; + } + } else { + r1 = r2 = r3 = r4 = 0; + } + var total; + if (r1 + r2 > width) { + total = r1 + r2; + r1 *= width / total; + r2 *= width / total; + } + if (r3 + r4 > width) { + total = r3 + r4; + r3 *= width / total; + r4 *= width / total; + } + if (r2 + r3 > height) { + total = r2 + r3; + r2 *= height / total; + r3 *= height / total; + } + if (r1 + r4 > height) { + total = r1 + r4; + r1 *= height / total; + r4 *= height / total; + } + ctx.moveTo(x + r1, y); + ctx.lineTo(x + width - r2, y); + r2 !== 0 && ctx.quadraticCurveTo(x + width, y, x + width, y + r2); + ctx.lineTo(x + width, y + height - r3); + r3 !== 0 && ctx.quadraticCurveTo(x + width, y + height, x + width - r3, y + height); + ctx.lineTo(x + r4, y + height); + r4 !== 0 && ctx.quadraticCurveTo(x, y + height, x, y + height - r4); + ctx.lineTo(x, y + r1); + r1 !== 0 && ctx.quadraticCurveTo(x, y, x + r1, y); + }, + buildPath: function (ctx, style) { + if (!style.radius) { + ctx.moveTo(style.x, style.y); + ctx.lineTo(style.x + style.width, style.y); + ctx.lineTo(style.x + style.width, style.y + style.height); + ctx.lineTo(style.x, style.y + style.height); + ctx.lineTo(style.x, style.y); + } else { + this._buildRadiusPath(ctx, style); + } + ctx.closePath(); + return; + }, + getRect: function (style) { + if (style.__rect) { + return style.__rect; + } + var lineWidth; + if (style.brushType == 'stroke' || style.brushType == 'fill') { + lineWidth = style.lineWidth || 1; + } else { + lineWidth = 0; + } + style.__rect = { + x: Math.round(style.x - lineWidth / 2), + y: Math.round(style.y - lineWidth / 2), + width: style.width + lineWidth, + height: style.height + lineWidth + }; + return style.__rect; + } + }; + require('../tool/util').inherits(Rectangle, Base); + return Rectangle; +});define('zrender/tool/area', [ + 'require', + './util', + './curve' +], function (require) { + 'use strict'; + var util = require('./util'); + var curve = require('./curve'); + var _ctx; + var _textWidthCache = {}; + var _textHeightCache = {}; + var _textWidthCacheCounter = 0; + var _textHeightCacheCounter = 0; + var TEXT_CACHE_MAX = 5000; + var PI2 = Math.PI * 2; + function normalizeRadian(angle) { + angle %= PI2; + if (angle < 0) { + angle += PI2; + } + return angle; + } + function isInside(shape, area, x, y) { + if (!area || !shape) { + return false; + } + var zoneType = shape.type; + _ctx = _ctx || util.getContext(); + var _mathReturn = _mathMethod(shape, area, x, y); + if (typeof _mathReturn != 'undefined') { + return _mathReturn; + } + if (shape.buildPath && _ctx.isPointInPath) { + return _buildPathMethod(shape, _ctx, area, x, y); + } + switch (zoneType) { + case 'ellipse': + return true; + case 'trochoid': + var _r = area.location == 'out' ? area.r1 + area.r2 + area.d : area.r1 - area.r2 + area.d; + return isInsideCircle(area, x, y, _r); + case 'rose': + return isInsideCircle(area, x, y, area.maxr); + default: + return false; + } + } + function _mathMethod(shape, area, x, y) { + var zoneType = shape.type; + switch (zoneType) { + case 'bezier-curve': + if (typeof area.cpX2 === 'undefined') { + return isInsideQuadraticStroke(area.xStart, area.yStart, area.cpX1, area.cpY1, area.xEnd, area.yEnd, area.lineWidth, x, y); + } + return isInsideCubicStroke(area.xStart, area.yStart, area.cpX1, area.cpY1, area.cpX2, area.cpY2, area.xEnd, area.yEnd, area.lineWidth, x, y); + case 'line': + return isInsideLine(area.xStart, area.yStart, area.xEnd, area.yEnd, area.lineWidth, x, y); + case 'polyline': + return isInsidePolyline(area.pointList, area.lineWidth, x, y); + case 'ring': + return isInsideRing(area.x, area.y, area.r0, area.r, x, y); + case 'circle': + return isInsideCircle(area.x, area.y, area.r, x, y); + case 'sector': + var startAngle = area.startAngle * Math.PI / 180; + var endAngle = area.endAngle * Math.PI / 180; + if (!area.clockWise) { + startAngle = -startAngle; + endAngle = -endAngle; + } + return isInsideSector(area.x, area.y, area.r0, area.r, startAngle, endAngle, !area.clockWise, x, y); + case 'path': + return area.pathArray && isInsidePath(area.pathArray, Math.max(area.lineWidth, 5), area.brushType, x, y); + case 'polygon': + case 'star': + case 'isogon': + return isInsidePolygon(area.pointList, x, y); + case 'text': + var rect = area.__rect || shape.getRect(area); + return isInsideRect(rect.x, rect.y, rect.width, rect.height, x, y); + case 'rectangle': + case 'image': + return isInsideRect(area.x, area.y, area.width, area.height, x, y); + } + } + function _buildPathMethod(shape, context, area, x, y) { + context.beginPath(); + shape.buildPath(context, area); + context.closePath(); + return context.isPointInPath(x, y); + } + function isOutside(shape, area, x, y) { + return !isInside(shape, area, x, y); + } + function isInsideLine(x0, y0, x1, y1, lineWidth, x, y) { + if (lineWidth === 0) { + return false; + } + var _l = Math.max(lineWidth, 5); + var _a = 0; + var _b = x0; + if (y > y0 + _l && y > y1 + _l || y < y0 - _l && y < y1 - _l || x > x0 + _l && x > x1 + _l || x < x0 - _l && x < x1 - _l) { + return false; + } + if (x0 !== x1) { + _a = (y0 - y1) / (x0 - x1); + _b = (x0 * y1 - x1 * y0) / (x0 - x1); + } else { + return Math.abs(x - x0) <= _l / 2; + } + var tmp = _a * x - y + _b; + var _s = tmp * tmp / (_a * _a + 1); + return _s <= _l / 2 * _l / 2; + } + function isInsideCubicStroke(x0, y0, x1, y1, x2, y2, x3, y3, lineWidth, x, y) { + if (lineWidth === 0) { + return false; + } + var _l = Math.max(lineWidth, 5); + if (y > y0 + _l && y > y1 + _l && y > y2 + _l && y > y3 + _l || y < y0 - _l && y < y1 - _l && y < y2 - _l && y < y3 - _l || x > x0 + _l && x > x1 + _l && x > x2 + _l && x > x3 + _l || x < x0 - _l && x < x1 - _l && x < x2 - _l && x < x3 - _l) { + return false; + } + var d = curve.cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, null); + return d <= _l / 2; + } + function isInsideQuadraticStroke(x0, y0, x1, y1, x2, y2, lineWidth, x, y) { + if (lineWidth === 0) { + return false; + } + var _l = Math.max(lineWidth, 5); + if (y > y0 + _l && y > y1 + _l && y > y2 + _l || y < y0 - _l && y < y1 - _l && y < y2 - _l || x > x0 + _l && x > x1 + _l && x > x2 + _l || x < x0 - _l && x < x1 - _l && x < x2 - _l) { + return false; + } + var d = curve.quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, null); + return d <= _l / 2; + } + function isInsideArcStroke(cx, cy, r, startAngle, endAngle, anticlockwise, lineWidth, x, y) { + if (lineWidth === 0) { + return false; + } + var _l = Math.max(lineWidth, 5); + x -= cx; + y -= cy; + var d = Math.sqrt(x * x + y * y); + if (d - _l > r || d + _l < r) { + return false; + } + if (Math.abs(startAngle - endAngle) >= PI2) { + return true; + } + if (anticlockwise) { + var tmp = startAngle; + startAngle = normalizeRadian(endAngle); + endAngle = normalizeRadian(tmp); + } else { + startAngle = normalizeRadian(startAngle); + endAngle = normalizeRadian(endAngle); + } + if (startAngle > endAngle) { + endAngle += PI2; + } + var angle = Math.atan2(y, x); + if (angle < 0) { + angle += PI2; + } + return angle >= startAngle && angle <= endAngle || angle + PI2 >= startAngle && angle + PI2 <= endAngle; + } + function isInsidePolyline(points, lineWidth, x, y) { + var lineWidth = Math.max(lineWidth, 10); + for (var i = 0, l = points.length - 1; i < l; i++) { + var x0 = points[i][0]; + var y0 = points[i][1]; + var x1 = points[i + 1][0]; + var y1 = points[i + 1][1]; + if (isInsideLine(x0, y0, x1, y1, lineWidth, x, y)) { + return true; + } + } + return false; + } + function isInsideRing(cx, cy, r0, r, x, y) { + var d = (x - cx) * (x - cx) + (y - cy) * (y - cy); + return d < r * r && d > r0 * r0; + } + function isInsideRect(x0, y0, width, height, x, y) { + return x >= x0 && x <= x0 + width && y >= y0 && y <= y0 + height; + } + function isInsideCircle(x0, y0, r, x, y) { + return (x - x0) * (x - x0) + (y - y0) * (y - y0) < r * r; + } + function isInsideSector(cx, cy, r0, r, startAngle, endAngle, anticlockwise, x, y) { + return isInsideArcStroke(cx, cy, (r0 + r) / 2, startAngle, endAngle, anticlockwise, r - r0, x, y); + } + function isInsidePolygon(points, x, y) { + var N = points.length; + var w = 0; + for (var i = 0, j = N - 1; i < N; i++) { + var x0 = points[j][0]; + var y0 = points[j][1]; + var x1 = points[i][0]; + var y1 = points[i][1]; + w += windingLine(x0, y0, x1, y1, x, y); + j = i; + } + return w !== 0; + } + function windingLine(x0, y0, x1, y1, x, y) { + if (y > y0 && y > y1 || y < y0 && y < y1) { + return 0; + } + if (y1 == y0) { + return 0; + } + var dir = y1 < y0 ? 1 : -1; + var t = (y - y0) / (y1 - y0); + var x_ = t * (x1 - x0) + x0; + return x_ > x ? dir : 0; + } + var roots = [ + -1, + -1, + -1 + ]; + var extrema = [ + -1, + -1 + ]; + function swapExtrema() { + var tmp = extrema[0]; + extrema[0] = extrema[1]; + extrema[1] = tmp; + } + function windingCubic(x0, y0, x1, y1, x2, y2, x3, y3, x, y) { + if (y > y0 && y > y1 && y > y2 && y > y3 || y < y0 && y < y1 && y < y2 && y < y3) { + return 0; + } + var nRoots = curve.cubicRootAt(y0, y1, y2, y3, y, roots); + if (nRoots === 0) { + return 0; + } else { + var w = 0; + var nExtrema = -1; + var y0_, y1_; + for (var i = 0; i < nRoots; i++) { + var t = roots[i]; + var x_ = curve.cubicAt(x0, x1, x2, x3, t); + if (x_ < x) { + continue; + } + if (nExtrema < 0) { + nExtrema = curve.cubicExtrema(y0, y1, y2, y3, extrema); + if (extrema[1] < extrema[0] && nExtrema > 1) { + swapExtrema(); + } + y0_ = curve.cubicAt(y0, y1, y2, y3, extrema[0]); + if (nExtrema > 1) { + y1_ = curve.cubicAt(y0, y1, y2, y3, extrema[1]); + } + } + if (nExtrema == 2) { + if (t < extrema[0]) { + w += y0_ < y0 ? 1 : -1; + } else if (t < extrema[1]) { + w += y1_ < y0_ ? 1 : -1; + } else { + w += y3 < y1_ ? 1 : -1; + } + } else { + if (t < extrema[0]) { + w += y0_ < y0 ? 1 : -1; + } else { + w += y3 < y0_ ? 1 : -1; + } + } + } + return w; + } + } + function windingQuadratic(x0, y0, x1, y1, x2, y2, x, y) { + if (y > y0 && y > y1 && y > y2 || y < y0 && y < y1 && y < y2) { + return 0; + } + var nRoots = curve.quadraticRootAt(y0, y1, y2, y, roots); + if (nRoots === 0) { + return 0; + } else { + var t = curve.quadraticExtremum(y0, y1, y2); + if (t >= 0 && t <= 1) { + var w = 0; + var y_ = curve.quadraticAt(y0, y1, y2, t); + for (var i = 0; i < nRoots; i++) { + var x_ = curve.quadraticAt(x0, x1, x2, roots[i]); + if (x_ < x) { + continue; + } + if (roots[i] < t) { + w += y_ < y0 ? 1 : -1; + } else { + w += y2 < y_ ? 1 : -1; + } + } + return w; + } else { + var x_ = curve.quadraticAt(x0, x1, x2, roots[0]); + if (x_ < x) { + return 0; + } + return y2 < y0 ? 1 : -1; + } + } + } + function windingArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y) { + y -= cy; + if (y > r || y < -r) { + return 0; + } + var tmp = Math.sqrt(r * r - y * y); + roots[0] = -tmp; + roots[1] = tmp; + if (Math.abs(startAngle - endAngle) >= PI2) { + startAngle = 0; + endAngle = PI2; + var dir = anticlockwise ? 1 : -1; + if (x >= roots[0] + cx && x <= roots[1] + cx) { + return dir; + } else { + return 0; + } + } + if (anticlockwise) { + var tmp = startAngle; + startAngle = normalizeRadian(endAngle); + endAngle = normalizeRadian(tmp); + } else { + startAngle = normalizeRadian(startAngle); + endAngle = normalizeRadian(endAngle); + } + if (startAngle > endAngle) { + endAngle += PI2; + } + var w = 0; + for (var i = 0; i < 2; i++) { + var x_ = roots[i]; + if (x_ + cx > x) { + var angle = Math.atan2(y, x_); + var dir = anticlockwise ? 1 : -1; + if (angle < 0) { + angle = PI2 + angle; + } + if (angle >= startAngle && angle <= endAngle || angle + PI2 >= startAngle && angle + PI2 <= endAngle) { + if (angle > Math.PI / 2 && angle < Math.PI * 1.5) { + dir = -dir; + } + w += dir; + } + } + } + return w; + } + function isInsidePath(pathArray, lineWidth, brushType, x, y) { + var w = 0; + var xi = 0; + var yi = 0; + var x0 = 0; + var y0 = 0; + var beginSubpath = true; + var firstCmd = true; + brushType = brushType || 'fill'; + var hasStroke = brushType === 'stroke' || brushType === 'both'; + var hasFill = brushType === 'fill' || brushType === 'both'; + for (var i = 0; i < pathArray.length; i++) { + var seg = pathArray[i]; + var p = seg.points; + if (beginSubpath || seg.command === 'M') { + if (i > 0) { + if (hasFill) { + w += windingLine(xi, yi, x0, y0, x, y); + } + if (w !== 0) { + return true; + } + } + x0 = p[p.length - 2]; + y0 = p[p.length - 1]; + beginSubpath = false; + if (firstCmd && seg.command !== 'A') { + firstCmd = false; + xi = x0; + yi = y0; + } + } + switch (seg.command) { + case 'M': + xi = p[0]; + yi = p[1]; + break; + case 'L': + if (hasStroke) { + if (isInsideLine(xi, yi, p[0], p[1], lineWidth, x, y)) { + return true; + } + } + if (hasFill) { + w += windingLine(xi, yi, p[0], p[1], x, y); + } + xi = p[0]; + yi = p[1]; + break; + case 'C': + if (hasStroke) { + if (isInsideCubicStroke(xi, yi, p[0], p[1], p[2], p[3], p[4], p[5], lineWidth, x, y)) { + return true; + } + } + if (hasFill) { + w += windingCubic(xi, yi, p[0], p[1], p[2], p[3], p[4], p[5], x, y); + } + xi = p[4]; + yi = p[5]; + break; + case 'Q': + if (hasStroke) { + if (isInsideQuadraticStroke(xi, yi, p[0], p[1], p[2], p[3], lineWidth, x, y)) { + return true; + } + } + if (hasFill) { + w += windingQuadratic(xi, yi, p[0], p[1], p[2], p[3], x, y); + } + xi = p[2]; + yi = p[3]; + break; + case 'A': + var cx = p[0]; + var cy = p[1]; + var rx = p[2]; + var ry = p[3]; + var theta = p[4]; + var dTheta = p[5]; + var x1 = Math.cos(theta) * rx + cx; + var y1 = Math.sin(theta) * ry + cy; + if (!firstCmd) { + w += windingLine(xi, yi, x1, y1); + } else { + firstCmd = false; + x0 = x1; + y0 = y1; + } + var _x = (x - cx) * ry / rx + cx; + if (hasStroke) { + if (isInsideArcStroke(cx, cy, ry, theta, theta + dTheta, 1 - p[7], lineWidth, _x, y)) { + return true; + } + } + if (hasFill) { + w += windingArc(cx, cy, ry, theta, theta + dTheta, 1 - p[7], _x, y); + } + xi = Math.cos(theta + dTheta) * rx + cx; + yi = Math.sin(theta + dTheta) * ry + cy; + break; + case 'z': + if (hasStroke) { + if (isInsideLine(xi, yi, x0, y0, lineWidth, x, y)) { + return true; + } + } + beginSubpath = true; + break; + } + } + if (hasFill) { + w += windingLine(xi, yi, x0, y0, x, y); + } + return w !== 0; + } + function getTextWidth(text, textFont) { + var key = text + ':' + textFont; + if (_textWidthCache[key]) { + return _textWidthCache[key]; + } + _ctx = _ctx || util.getContext(); + _ctx.save(); + if (textFont) { + _ctx.font = textFont; + } + text = (text + '').split('\n'); + var width = 0; + for (var i = 0, l = text.length; i < l; i++) { + width = Math.max(_ctx.measureText(text[i]).width, width); + } + _ctx.restore(); + _textWidthCache[key] = width; + if (++_textWidthCacheCounter > TEXT_CACHE_MAX) { + _textWidthCacheCounter = 0; + _textWidthCache = {}; + } + return width; + } + function getTextHeight(text, textFont) { + var key = text + ':' + textFont; + if (_textHeightCache[key]) { + return _textHeightCache[key]; + } + _ctx = _ctx || util.getContext(); + _ctx.save(); + if (textFont) { + _ctx.font = textFont; + } + text = (text + '').split('\n'); + var height = (_ctx.measureText('国').width + 2) * text.length; + _ctx.restore(); + _textHeightCache[key] = height; + if (++_textHeightCacheCounter > TEXT_CACHE_MAX) { + _textHeightCacheCounter = 0; + _textHeightCache = {}; + } + return height; + } + return { + isInside: isInside, + isOutside: isOutside, + getTextWidth: getTextWidth, + getTextHeight: getTextHeight, + isInsidePath: isInsidePath, + isInsidePolygon: isInsidePolygon, + isInsideSector: isInsideSector, + isInsideCircle: isInsideCircle, + isInsideLine: isInsideLine, + isInsideRect: isInsideRect, + isInsidePolyline: isInsidePolyline, + isInsideCubicStroke: isInsideCubicStroke, + isInsideQuadraticStroke: isInsideQuadraticStroke + }; +});define('zrender/shape/Base', [ + 'require', + '../tool/matrix', + '../tool/guid', + '../tool/util', + '../tool/log', + '../mixin/Transformable', + '../mixin/Eventful', + '../tool/area', + '../tool/color' +], function (require) { + var vmlCanvasManager = window['G_vmlCanvasManager']; + var matrix = require('../tool/matrix'); + var guid = require('../tool/guid'); + var util = require('../tool/util'); + var log = require('../tool/log'); + var Transformable = require('../mixin/Transformable'); + var Eventful = require('../mixin/Eventful'); + function _fillText(ctx, text, x, y, textFont, textAlign, textBaseline) { + if (textFont) { + ctx.font = textFont; + } + ctx.textAlign = textAlign; + ctx.textBaseline = textBaseline; + var rect = _getTextRect(text, x, y, textFont, textAlign, textBaseline); + text = (text + '').split('\n'); + var lineHeight = require('../tool/area').getTextHeight('国', textFont); + switch (textBaseline) { + case 'top': + y = rect.y; + break; + case 'bottom': + y = rect.y + lineHeight; + break; + default: + y = rect.y + lineHeight / 2; + } + for (var i = 0, l = text.length; i < l; i++) { + ctx.fillText(text[i], x, y); + y += lineHeight; + } + } + function _getTextRect(text, x, y, textFont, textAlign, textBaseline) { + var area = require('../tool/area'); + var width = area.getTextWidth(text, textFont); + var lineHeight = area.getTextHeight('国', textFont); + text = (text + '').split('\n'); + switch (textAlign) { + case 'end': + case 'right': + x -= width; + break; + case 'center': + x -= width / 2; + break; + } + switch (textBaseline) { + case 'top': + break; + case 'bottom': + y -= lineHeight * text.length; + break; + default: + y -= lineHeight * text.length / 2; + } + return { + x: x, + y: y, + width: width, + height: lineHeight * text.length + }; + } + var Base = function (options) { + options = options || {}; + this.id = options.id || guid(); + for (var key in options) { + this[key] = options[key]; + } + this.style = this.style || {}; + this.highlightStyle = this.highlightStyle || null; + this.parent = null; + this.__dirty = true; + this.__clipShapes = []; + Transformable.call(this); + Eventful.call(this); + }; + Base.prototype.invisible = false; + Base.prototype.ignore = false; + Base.prototype.zlevel = 0; + Base.prototype.draggable = false; + Base.prototype.clickable = false; + Base.prototype.hoverable = true; + Base.prototype.z = 0; + Base.prototype.brush = function (ctx, isHighlight) { + var style = this.beforeBrush(ctx, isHighlight); + ctx.beginPath(); + this.buildPath(ctx, style); + switch (style.brushType) { + case 'both': + ctx.fill(); + case 'stroke': + style.lineWidth > 0 && ctx.stroke(); + break; + default: + ctx.fill(); + } + this.drawText(ctx, style, this.style); + this.afterBrush(ctx); + }; + Base.prototype.beforeBrush = function (ctx, isHighlight) { + var style = this.style; + if (this.brushTypeOnly) { + style.brushType = this.brushTypeOnly; + } + if (isHighlight) { + style = this.getHighlightStyle(style, this.highlightStyle || {}, this.brushTypeOnly); + } + if (this.brushTypeOnly == 'stroke') { + style.strokeColor = style.strokeColor || style.color; + } + ctx.save(); + this.doClip(ctx); + this.setContext(ctx, style); + this.setTransform(ctx); + return style; + }; + Base.prototype.afterBrush = function (ctx) { + ctx.restore(); + }; + var STYLE_CTX_MAP = [ + [ + 'color', + 'fillStyle' + ], + [ + 'strokeColor', + 'strokeStyle' + ], + [ + 'opacity', + 'globalAlpha' + ], + [ + 'lineCap', + 'lineCap' + ], + [ + 'lineJoin', + 'lineJoin' + ], + [ + 'miterLimit', + 'miterLimit' + ], + [ + 'lineWidth', + 'lineWidth' + ], + [ + 'shadowBlur', + 'shadowBlur' + ], + [ + 'shadowColor', + 'shadowColor' + ], + [ + 'shadowOffsetX', + 'shadowOffsetX' + ], + [ + 'shadowOffsetY', + 'shadowOffsetY' + ] + ]; + Base.prototype.setContext = function (ctx, style) { + for (var i = 0, len = STYLE_CTX_MAP.length; i < len; i++) { + var styleProp = STYLE_CTX_MAP[i][0]; + var styleValue = style[styleProp]; + var ctxProp = STYLE_CTX_MAP[i][1]; + if (typeof styleValue != 'undefined') { + ctx[ctxProp] = styleValue; + } + } + }; + var clipShapeInvTransform = matrix.create(); + Base.prototype.doClip = function (ctx) { + if (this.__clipShapes && !vmlCanvasManager) { + for (var i = 0; i < this.__clipShapes.length; i++) { + var clipShape = this.__clipShapes[i]; + if (clipShape.needTransform) { + var m = clipShape.transform; + matrix.invert(clipShapeInvTransform, m); + ctx.transform(m[0], m[1], m[2], m[3], m[4], m[5]); + } + ctx.beginPath(); + clipShape.buildPath(ctx, clipShape.style); + ctx.clip(); + if (clipShape.needTransform) { + var m = clipShapeInvTransform; + ctx.transform(m[0], m[1], m[2], m[3], m[4], m[5]); + } + } + } + }; + Base.prototype.getHighlightStyle = function (style, highlightStyle, brushTypeOnly) { + var newStyle = {}; + for (var k in style) { + newStyle[k] = style[k]; + } + var color = require('../tool/color'); + var highlightColor = color.getHighlightColor(); + if (style.brushType != 'stroke') { + newStyle.strokeColor = highlightColor; + newStyle.lineWidth = (style.lineWidth || 1) + this.getHighlightZoom(); + newStyle.brushType = 'both'; + } else { + if (brushTypeOnly != 'stroke') { + newStyle.strokeColor = highlightColor; + newStyle.lineWidth = (style.lineWidth || 1) + this.getHighlightZoom(); + } else { + newStyle.strokeColor = highlightStyle.strokeColor || color.mix(style.strokeColor, color.toRGB(highlightColor)); + } + } + for (var k in highlightStyle) { + if (typeof highlightStyle[k] != 'undefined') { + newStyle[k] = highlightStyle[k]; + } + } + return newStyle; + }; + Base.prototype.getHighlightZoom = function () { + return this.type != 'text' ? 6 : 2; + }; + Base.prototype.drift = function (dx, dy) { + this.position[0] += dx; + this.position[1] += dy; + }; + Base.prototype.buildPath = function (ctx, style) { + log('buildPath not implemented in ' + this.type); + }; + Base.prototype.getRect = function (style) { + log('getRect not implemented in ' + this.type); + }; + Base.prototype.isCover = function (x, y) { + var originPos = this.transformCoordToLocal(x, y); + x = originPos[0]; + y = originPos[1]; + if (this.isCoverRect(x, y)) { + return require('../tool/area').isInside(this, this.style, x, y); + } + return false; + }; + Base.prototype.isCoverRect = function (x, y) { + var rect = this.style.__rect; + if (!rect) { + rect = this.style.__rect = this.getRect(this.style); + } + return x >= rect.x && x <= rect.x + rect.width && y >= rect.y && y <= rect.y + rect.height; + }; + Base.prototype.drawText = function (ctx, style, normalStyle) { + if (typeof style.text == 'undefined' || style.text === false) { + return; + } + var textColor = style.textColor || style.color || style.strokeColor; + ctx.fillStyle = textColor; + var dd = 10; + var al; + var bl; + var tx; + var ty; + var textPosition = style.textPosition || this.textPosition || 'top'; + switch (textPosition) { + case 'inside': + case 'top': + case 'bottom': + case 'left': + case 'right': + if (this.getRect) { + var rect = (normalStyle || style).__rect || this.getRect(normalStyle || style); + switch (textPosition) { + case 'inside': + tx = rect.x + rect.width / 2; + ty = rect.y + rect.height / 2; + al = 'center'; + bl = 'middle'; + if (style.brushType != 'stroke' && textColor == style.color) { + ctx.fillStyle = '#fff'; + } + break; + case 'left': + tx = rect.x - dd; + ty = rect.y + rect.height / 2; + al = 'end'; + bl = 'middle'; + break; + case 'right': + tx = rect.x + rect.width + dd; + ty = rect.y + rect.height / 2; + al = 'start'; + bl = 'middle'; + break; + case 'top': + tx = rect.x + rect.width / 2; + ty = rect.y - dd; + al = 'center'; + bl = 'bottom'; + break; + case 'bottom': + tx = rect.x + rect.width / 2; + ty = rect.y + rect.height + dd; + al = 'center'; + bl = 'top'; + break; + } + } + break; + case 'start': + case 'end': + var pointList = style.pointList || [ + [ + style.xStart || 0, + style.yStart || 0 + ], + [ + style.xEnd || 0, + style.yEnd || 0 + ] + ]; + var length = pointList.length; + if (length < 2) { + return; + } + var xStart; + var xEnd; + var yStart; + var yEnd; + switch (textPosition) { + case 'start': + xStart = pointList[1][0]; + xEnd = pointList[0][0]; + yStart = pointList[1][1]; + yEnd = pointList[0][1]; + break; + case 'end': + xStart = pointList[length - 2][0]; + xEnd = pointList[length - 1][0]; + yStart = pointList[length - 2][1]; + yEnd = pointList[length - 1][1]; + break; + } + tx = xEnd; + ty = yEnd; + var angle = Math.atan((yStart - yEnd) / (xEnd - xStart)) / Math.PI * 180; + if (xEnd - xStart < 0) { + angle += 180; + } else if (yStart - yEnd < 0) { + angle += 360; + } + dd = 5; + if (angle >= 30 && angle <= 150) { + al = 'center'; + bl = 'bottom'; + ty -= dd; + } else if (angle > 150 && angle < 210) { + al = 'right'; + bl = 'middle'; + tx -= dd; + } else if (angle >= 210 && angle <= 330) { + al = 'center'; + bl = 'top'; + ty += dd; + } else { + al = 'left'; + bl = 'middle'; + tx += dd; + } + break; + case 'specific': + tx = style.textX || 0; + ty = style.textY || 0; + al = 'start'; + bl = 'middle'; + break; + } + if (tx != null && ty != null) { + _fillText(ctx, style.text, tx, ty, style.textFont, style.textAlign || al, style.textBaseline || bl); + } + }; + Base.prototype.modSelf = function () { + this.__dirty = true; + if (this.style) { + this.style.__rect = null; + } + if (this.highlightStyle) { + this.highlightStyle.__rect = null; + } + }; + Base.prototype.isSilent = function () { + return !(this.hoverable || this.draggable || this.clickable || this.onmousemove || this.onmouseover || this.onmouseout || this.onmousedown || this.onmouseup || this.onclick || this.ondragenter || this.ondragover || this.ondragleave || this.ondrop); + }; + util.merge(Base.prototype, Transformable.prototype, true); + util.merge(Base.prototype, Eventful.prototype, true); + return Base; +});define('zrender/tool/curve', [ + 'require', + './vector' +], function (require) { + var vector = require('./vector'); + 'use strict'; + var EPSILON = 0.0001; + var THREE_SQRT = Math.sqrt(3); + var ONE_THIRD = 1 / 3; + var _v0 = vector.create(); + var _v1 = vector.create(); + var _v2 = vector.create(); + function isAroundZero(val) { + return val > -EPSILON && val < EPSILON; + } + function isNotAroundZero(val) { + return val > EPSILON || val < -EPSILON; + } + function cubicAt(p0, p1, p2, p3, t) { + var onet = 1 - t; + return onet * onet * (onet * p0 + 3 * t * p1) + t * t * (t * p3 + 3 * onet * p2); + } + function cubicDerivativeAt(p0, p1, p2, p3, t) { + var onet = 1 - t; + return 3 * (((p1 - p0) * onet + 2 * (p2 - p1) * t) * onet + (p3 - p2) * t * t); + } + function cubicRootAt(p0, p1, p2, p3, val, roots) { + var a = p3 + 3 * (p1 - p2) - p0; + var b = 3 * (p2 - p1 * 2 + p0); + var c = 3 * (p1 - p0); + var d = p0 - val; + var A = b * b - 3 * a * c; + var B = b * c - 9 * a * d; + var C = c * c - 3 * b * d; + var n = 0; + if (isAroundZero(A) && isAroundZero(B)) { + if (isAroundZero(b)) { + roots[0] = 0; + } else { + var t1 = -c / b; + if (t1 >= 0 && t1 <= 1) { + roots[n++] = t1; + } + } + } else { + var disc = B * B - 4 * A * C; + if (isAroundZero(disc)) { + var K = B / A; + var t1 = -b / a + K; + var t2 = -K / 2; + if (t1 >= 0 && t1 <= 1) { + roots[n++] = t1; + } + if (t2 >= 0 && t2 <= 1) { + roots[n++] = t2; + } + } else if (disc > 0) { + var discSqrt = Math.sqrt(disc); + var Y1 = A * b + 1.5 * a * (-B + discSqrt); + var Y2 = A * b + 1.5 * a * (-B - discSqrt); + if (Y1 < 0) { + Y1 = -Math.pow(-Y1, ONE_THIRD); + } else { + Y1 = Math.pow(Y1, ONE_THIRD); + } + if (Y2 < 0) { + Y2 = -Math.pow(-Y2, ONE_THIRD); + } else { + Y2 = Math.pow(Y2, ONE_THIRD); + } + var t1 = (-b - (Y1 + Y2)) / (3 * a); + if (t1 >= 0 && t1 <= 1) { + roots[n++] = t1; + } + } else { + var T = (2 * A * b - 3 * a * B) / (2 * Math.sqrt(A * A * A)); + var theta = Math.acos(T) / 3; + var ASqrt = Math.sqrt(A); + var tmp = Math.cos(theta); + var t1 = (-b - 2 * ASqrt * tmp) / (3 * a); + var t2 = (-b + ASqrt * (tmp + THREE_SQRT * Math.sin(theta))) / (3 * a); + var t3 = (-b + ASqrt * (tmp - THREE_SQRT * Math.sin(theta))) / (3 * a); + if (t1 >= 0 && t1 <= 1) { + roots[n++] = t1; + } + if (t2 >= 0 && t2 <= 1) { + roots[n++] = t2; + } + if (t3 >= 0 && t3 <= 1) { + roots[n++] = t3; + } + } + } + return n; + } + function cubicExtrema(p0, p1, p2, p3, extrema) { + var b = 6 * p2 - 12 * p1 + 6 * p0; + var a = 9 * p1 + 3 * p3 - 3 * p0 - 9 * p2; + var c = 3 * p1 - 3 * p0; + var n = 0; + if (isAroundZero(a)) { + if (isNotAroundZero(b)) { + var t1 = -c / b; + if (t1 >= 0 && t1 <= 1) { + extrema[n++] = t1; + } + } + } else { + var disc = b * b - 4 * a * c; + if (isAroundZero(disc)) { + extrema[0] = -b / (2 * a); + } else if (disc > 0) { + var discSqrt = Math.sqrt(disc); + var t1 = (-b + discSqrt) / (2 * a); + var t2 = (-b - discSqrt) / (2 * a); + if (t1 >= 0 && t1 <= 1) { + extrema[n++] = t1; + } + if (t2 >= 0 && t2 <= 1) { + extrema[n++] = t2; + } + } + } + return n; + } + function cubicSubdivide(p0, p1, p2, p3, t, out) { + var p01 = (p1 - p0) * t + p0; + var p12 = (p2 - p1) * t + p1; + var p23 = (p3 - p2) * t + p2; + var p012 = (p12 - p01) * t + p01; + var p123 = (p23 - p12) * t + p12; + var p0123 = (p123 - p012) * t + p012; + out[0] = p0; + out[1] = p01; + out[2] = p012; + out[3] = p0123; + out[4] = p0123; + out[5] = p123; + out[6] = p23; + out[7] = p3; + } + function cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, out) { + var t; + var interval = 0.005; + var d = Infinity; + _v0[0] = x; + _v0[1] = y; + for (var _t = 0; _t < 1; _t += 0.05) { + _v1[0] = cubicAt(x0, x1, x2, x3, _t); + _v1[1] = cubicAt(y0, y1, y2, y3, _t); + var d1 = vector.distSquare(_v0, _v1); + if (d1 < d) { + t = _t; + d = d1; + } + } + d = Infinity; + for (var i = 0; i < 32; i++) { + if (interval < EPSILON) { + break; + } + var prev = t - interval; + var next = t + interval; + _v1[0] = cubicAt(x0, x1, x2, x3, prev); + _v1[1] = cubicAt(y0, y1, y2, y3, prev); + var d1 = vector.distSquare(_v1, _v0); + if (prev >= 0 && d1 < d) { + t = prev; + d = d1; + } else { + _v2[0] = cubicAt(x0, x1, x2, x3, next); + _v2[1] = cubicAt(y0, y1, y2, y3, next); + var d2 = vector.distSquare(_v2, _v0); + if (next <= 1 && d2 < d) { + t = next; + d = d2; + } else { + interval *= 0.5; + } + } + } + if (out) { + out[0] = cubicAt(x0, x1, x2, x3, t); + out[1] = cubicAt(y0, y1, y2, y3, t); + } + return Math.sqrt(d); + } + function quadraticAt(p0, p1, p2, t) { + var onet = 1 - t; + return onet * (onet * p0 + 2 * t * p1) + t * t * p2; + } + function quadraticDerivativeAt(p0, p1, p2, t) { + return 2 * ((1 - t) * (p1 - p0) + t * (p2 - p1)); + } + function quadraticRootAt(p0, p1, p2, val, roots) { + var a = p0 - 2 * p1 + p2; + var b = 2 * (p1 - p0); + var c = p0 - val; + var n = 0; + if (isAroundZero(a)) { + if (isNotAroundZero(b)) { + var t1 = -c / b; + if (t1 >= 0 && t1 <= 1) { + roots[n++] = t1; + } + } + } else { + var disc = b * b - 4 * a * c; + if (isAroundZero(disc)) { + var t1 = -b / (2 * a); + if (t1 >= 0 && t1 <= 1) { + roots[n++] = t1; + } + } else if (disc > 0) { + var discSqrt = Math.sqrt(disc); + var t1 = (-b + discSqrt) / (2 * a); + var t2 = (-b - discSqrt) / (2 * a); + if (t1 >= 0 && t1 <= 1) { + roots[n++] = t1; + } + if (t2 >= 0 && t2 <= 1) { + roots[n++] = t2; + } + } + } + return n; + } + function quadraticExtremum(p0, p1, p2) { + var divider = p0 + p2 - 2 * p1; + if (divider === 0) { + return 0.5; + } else { + return (p0 - p1) / divider; + } + } + function quadraticSubdivide(p0, p1, p2, t, out) { + var p01 = (p1 - p0) * t + p0; + var p12 = (p2 - p1) * t + p1; + var p012 = (p12 - p01) * t + p01; + out[0] = p0; + out[1] = p01; + out[2] = p012; + out[3] = p012; + out[4] = p12; + out[5] = p2; + } + function quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, out) { + var t; + var interval = 0.005; + var d = Infinity; + _v0[0] = x; + _v0[1] = y; + for (var _t = 0; _t < 1; _t += 0.05) { + _v1[0] = quadraticAt(x0, x1, x2, _t); + _v1[1] = quadraticAt(y0, y1, y2, _t); + var d1 = vector.distSquare(_v0, _v1); + if (d1 < d) { + t = _t; + d = d1; + } + } + d = Infinity; + for (var i = 0; i < 32; i++) { + if (interval < EPSILON) { + break; + } + var prev = t - interval; + var next = t + interval; + _v1[0] = quadraticAt(x0, x1, x2, prev); + _v1[1] = quadraticAt(y0, y1, y2, prev); + var d1 = vector.distSquare(_v1, _v0); + if (prev >= 0 && d1 < d) { + t = prev; + d = d1; + } else { + _v2[0] = quadraticAt(x0, x1, x2, next); + _v2[1] = quadraticAt(y0, y1, y2, next); + var d2 = vector.distSquare(_v2, _v0); + if (next <= 1 && d2 < d) { + t = next; + d = d2; + } else { + interval *= 0.5; + } + } + } + if (out) { + out[0] = quadraticAt(x0, x1, x2, t); + out[1] = quadraticAt(y0, y1, y2, t); + } + return Math.sqrt(d); + } + return { + cubicAt: cubicAt, + cubicDerivativeAt: cubicDerivativeAt, + cubicRootAt: cubicRootAt, + cubicExtrema: cubicExtrema, + cubicSubdivide: cubicSubdivide, + cubicProjectPoint: cubicProjectPoint, + quadraticAt: quadraticAt, + quadraticDerivativeAt: quadraticDerivativeAt, + quadraticRootAt: quadraticRootAt, + quadraticExtremum: quadraticExtremum, + quadraticSubdivide: quadraticSubdivide, + quadraticProjectPoint: quadraticProjectPoint + }; +});define('zrender/mixin/Transformable', [ + 'require', + '../tool/matrix', + '../tool/vector' +], function (require) { + 'use strict'; + var matrix = require('../tool/matrix'); + var vector = require('../tool/vector'); + var origin = [ + 0, + 0 + ]; + var mTranslate = matrix.translate; + var EPSILON = 0.00005; + function isAroundZero(val) { + return val > -EPSILON && val < EPSILON; + } + function isNotAroundZero(val) { + return val > EPSILON || val < -EPSILON; + } + var Transformable = function () { + if (!this.position) { + this.position = [ + 0, + 0 + ]; + } + if (typeof this.rotation == 'undefined') { + this.rotation = [ + 0, + 0, + 0 + ]; + } + if (!this.scale) { + this.scale = [ + 1, + 1, + 0, + 0 + ]; + } + this.needLocalTransform = false; + this.needTransform = false; + }; + Transformable.prototype = { + constructor: Transformable, + updateNeedTransform: function () { + this.needLocalTransform = isNotAroundZero(this.rotation[0]) || isNotAroundZero(this.position[0]) || isNotAroundZero(this.position[1]) || isNotAroundZero(this.scale[0] - 1) || isNotAroundZero(this.scale[1] - 1); + }, + updateTransform: function () { + this.updateNeedTransform(); + var parentHasTransform = this.parent && this.parent.needTransform; + this.needTransform = this.needLocalTransform || parentHasTransform; + if (!this.needTransform) { + return; + } + var m = this.transform || matrix.create(); + matrix.identity(m); + if (this.needLocalTransform) { + var scale = this.scale; + if (isNotAroundZero(scale[0]) || isNotAroundZero(scale[1])) { + origin[0] = -scale[2] || 0; + origin[1] = -scale[3] || 0; + var haveOrigin = isNotAroundZero(origin[0]) || isNotAroundZero(origin[1]); + if (haveOrigin) { + mTranslate(m, m, origin); + } + matrix.scale(m, m, scale); + if (haveOrigin) { + origin[0] = -origin[0]; + origin[1] = -origin[1]; + mTranslate(m, m, origin); + } + } + if (this.rotation instanceof Array) { + if (this.rotation[0] !== 0) { + origin[0] = -this.rotation[1] || 0; + origin[1] = -this.rotation[2] || 0; + var haveOrigin = isNotAroundZero(origin[0]) || isNotAroundZero(origin[1]); + if (haveOrigin) { + mTranslate(m, m, origin); + } + matrix.rotate(m, m, this.rotation[0]); + if (haveOrigin) { + origin[0] = -origin[0]; + origin[1] = -origin[1]; + mTranslate(m, m, origin); + } + } + } else { + if (this.rotation !== 0) { + matrix.rotate(m, m, this.rotation); + } + } + if (isNotAroundZero(this.position[0]) || isNotAroundZero(this.position[1])) { + mTranslate(m, m, this.position); + } + } + if (parentHasTransform) { + if (this.needLocalTransform) { + matrix.mul(m, this.parent.transform, m); + } else { + matrix.copy(m, this.parent.transform); + } + } + this.transform = m; + this.invTransform = this.invTransform || matrix.create(); + matrix.invert(this.invTransform, m); + }, + setTransform: function (ctx) { + if (this.needTransform) { + var m = this.transform; + ctx.transform(m[0], m[1], m[2], m[3], m[4], m[5]); + } + }, + lookAt: function () { + var v = vector.create(); + return function (target) { + if (!this.transform) { + this.transform = matrix.create(); + } + var m = this.transform; + vector.sub(v, target, this.position); + if (isAroundZero(v[0]) && isAroundZero(v[1])) { + return; + } + vector.normalize(v, v); + var scale = this.scale; + m[2] = v[0] * scale[1]; + m[3] = v[1] * scale[1]; + m[0] = v[1] * scale[0]; + m[1] = -v[0] * scale[0]; + m[4] = this.position[0]; + m[5] = this.position[1]; + this.decomposeTransform(); + }; + }(), + decomposeTransform: function () { + if (!this.transform) { + return; + } + var m = this.transform; + var sx = m[0] * m[0] + m[1] * m[1]; + var position = this.position; + var scale = this.scale; + var rotation = this.rotation; + if (isNotAroundZero(sx - 1)) { + sx = Math.sqrt(sx); + } + var sy = m[2] * m[2] + m[3] * m[3]; + if (isNotAroundZero(sy - 1)) { + sy = Math.sqrt(sy); + } + position[0] = m[4]; + position[1] = m[5]; + scale[0] = sx; + scale[1] = sy; + scale[2] = scale[3] = 0; + rotation[0] = Math.atan2(-m[1] / sy, m[0] / sx); + rotation[1] = rotation[2] = 0; + }, + transformCoordToLocal: function (x, y) { + var v2 = [ + x, + y + ]; + if (this.needTransform && this.invTransform) { + vector.applyTransform(v2, v2, this.invTransform); + } + return v2; + } + }; + return Transformable; +});define('zrender/Group', [ + 'require', + './tool/guid', + './tool/util', + './mixin/Transformable', + './mixin/Eventful' +], function (require) { + var guid = require('./tool/guid'); + var util = require('./tool/util'); + var Transformable = require('./mixin/Transformable'); + var Eventful = require('./mixin/Eventful'); + var Group = function (options) { + options = options || {}; + this.id = options.id || guid(); + for (var key in options) { + this[key] = options[key]; + } + this.type = 'group'; + this.clipShape = null; + this._children = []; + this._storage = null; + this.__dirty = true; + Transformable.call(this); + Eventful.call(this); + }; + Group.prototype.ignore = false; + Group.prototype.children = function () { + return this._children.slice(); + }; + Group.prototype.childAt = function (idx) { + return this._children[idx]; + }; + Group.prototype.addChild = function (child) { + if (child == this) { + return; + } + if (child.parent == this) { + return; + } + if (child.parent) { + child.parent.removeChild(child); + } + this._children.push(child); + child.parent = this; + if (this._storage && this._storage !== child._storage) { + this._storage.addToMap(child); + if (child instanceof Group) { + child.addChildrenToStorage(this._storage); + } + } + }; + Group.prototype.removeChild = function (child) { + var idx = util.indexOf(this._children, child); + if (idx >= 0) { + this._children.splice(idx, 1); + } + child.parent = null; + if (this._storage) { + this._storage.delFromMap(child.id); + if (child instanceof Group) { + child.delChildrenFromStorage(this._storage); + } + } + }; + Group.prototype.clearChildren = function () { + for (var i = 0; i < this._children.length; i++) { + var child = this._children[i]; + if (this._storage) { + this._storage.delFromMap(child.id); + if (child instanceof Group) { + child.delChildrenFromStorage(this._storage); + } + } + } + this._children.length = 0; + }; + Group.prototype.eachChild = function (cb, context) { + var haveContext = !!context; + for (var i = 0; i < this._children.length; i++) { + var child = this._children[i]; + if (haveContext) { + cb.call(context, child); + } else { + cb(child); + } + } + }; + Group.prototype.traverse = function (cb, context) { + var haveContext = !!context; + for (var i = 0; i < this._children.length; i++) { + var child = this._children[i]; + if (haveContext) { + cb.call(context, child); + } else { + cb(child); + } + if (child.type === 'group') { + child.traverse(cb, context); + } + } + }; + Group.prototype.addChildrenToStorage = function (storage) { + for (var i = 0; i < this._children.length; i++) { + var child = this._children[i]; + storage.addToMap(child); + if (child instanceof Group) { + child.addChildrenToStorage(storage); + } + } + }; + Group.prototype.delChildrenFromStorage = function (storage) { + for (var i = 0; i < this._children.length; i++) { + var child = this._children[i]; + storage.delFromMap(child.id); + if (child instanceof Group) { + child.delChildrenFromStorage(storage); + } + } + }; + Group.prototype.modSelf = function () { + this.__dirty = true; + }; + util.merge(Group.prototype, Transformable.prototype, true); + util.merge(Group.prototype, Eventful.prototype, true); + return Group; +});define('zrender/animation/Clip', [ + 'require', + './easing' +], function (require) { + var Easing = require('./easing'); + function Clip(options) { + this._targetPool = options.target || {}; + if (!(this._targetPool instanceof Array)) { + this._targetPool = [this._targetPool]; + } + this._life = options.life || 1000; + this._delay = options.delay || 0; + this._startTime = new Date().getTime() + this._delay; + this._endTime = this._startTime + this._life * 1000; + this.loop = typeof options.loop == 'undefined' ? false : options.loop; + this.gap = options.gap || 0; + this.easing = options.easing || 'Linear'; + this.onframe = options.onframe; + this.ondestroy = options.ondestroy; + this.onrestart = options.onrestart; + } + Clip.prototype = { + step: function (time) { + var percent = (time - this._startTime) / this._life; + if (percent < 0) { + return; + } + percent = Math.min(percent, 1); + var easingFunc = typeof this.easing == 'string' ? Easing[this.easing] : this.easing; + var schedule = typeof easingFunc === 'function' ? easingFunc(percent) : percent; + this.fire('frame', schedule); + if (percent == 1) { + if (this.loop) { + this.restart(); + return 'restart'; + } + this.__needsRemove = true; + return 'destroy'; + } + return null; + }, + restart: function () { + var time = new Date().getTime(); + var remainder = (time - this._startTime) % this._life; + this._startTime = new Date().getTime() - remainder + this.gap; + this.__needsRemove = false; + }, + fire: function (eventType, arg) { + for (var i = 0, len = this._targetPool.length; i < len; i++) { + if (this['on' + eventType]) { + this['on' + eventType](this._targetPool[i], arg); + } + } + }, + constructor: Clip + }; + return Clip; +});define('zrender/animation/easing', [], function () { + var easing = { + Linear: function (k) { + return k; + }, + QuadraticIn: function (k) { + return k * k; + }, + QuadraticOut: function (k) { + return k * (2 - k); + }, + QuadraticInOut: function (k) { + if ((k *= 2) < 1) { + return 0.5 * k * k; + } + return -0.5 * (--k * (k - 2) - 1); + }, + CubicIn: function (k) { + return k * k * k; + }, + CubicOut: function (k) { + return --k * k * k + 1; + }, + CubicInOut: function (k) { + if ((k *= 2) < 1) { + return 0.5 * k * k * k; + } + return 0.5 * ((k -= 2) * k * k + 2); + }, + QuarticIn: function (k) { + return k * k * k * k; + }, + QuarticOut: function (k) { + return 1 - --k * k * k * k; + }, + QuarticInOut: function (k) { + if ((k *= 2) < 1) { + return 0.5 * k * k * k * k; + } + return -0.5 * ((k -= 2) * k * k * k - 2); + }, + QuinticIn: function (k) { + return k * k * k * k * k; + }, + QuinticOut: function (k) { + return --k * k * k * k * k + 1; + }, + QuinticInOut: function (k) { + if ((k *= 2) < 1) { + return 0.5 * k * k * k * k * k; + } + return 0.5 * ((k -= 2) * k * k * k * k + 2); + }, + SinusoidalIn: function (k) { + return 1 - Math.cos(k * Math.PI / 2); + }, + SinusoidalOut: function (k) { + return Math.sin(k * Math.PI / 2); + }, + SinusoidalInOut: function (k) { + return 0.5 * (1 - Math.cos(Math.PI * k)); + }, + ExponentialIn: function (k) { + return k === 0 ? 0 : Math.pow(1024, k - 1); + }, + ExponentialOut: function (k) { + return k === 1 ? 1 : 1 - Math.pow(2, -10 * k); + }, + ExponentialInOut: function (k) { + if (k === 0) { + return 0; + } + if (k === 1) { + return 1; + } + if ((k *= 2) < 1) { + return 0.5 * Math.pow(1024, k - 1); + } + return 0.5 * (-Math.pow(2, -10 * (k - 1)) + 2); + }, + CircularIn: function (k) { + return 1 - Math.sqrt(1 - k * k); + }, + CircularOut: function (k) { + return Math.sqrt(1 - --k * k); + }, + CircularInOut: function (k) { + if ((k *= 2) < 1) { + return -0.5 * (Math.sqrt(1 - k * k) - 1); + } + return 0.5 * (Math.sqrt(1 - (k -= 2) * k) + 1); + }, + ElasticIn: function (k) { + var s; + var a = 0.1; + var p = 0.4; + if (k === 0) { + return 0; + } + if (k === 1) { + return 1; + } + if (!a || a < 1) { + a = 1; + s = p / 4; + } else { + s = p * Math.asin(1 / a) / (2 * Math.PI); + } + return -(a * Math.pow(2, 10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p)); + }, + ElasticOut: function (k) { + var s; + var a = 0.1; + var p = 0.4; + if (k === 0) { + return 0; + } + if (k === 1) { + return 1; + } + if (!a || a < 1) { + a = 1; + s = p / 4; + } else { + s = p * Math.asin(1 / a) / (2 * Math.PI); + } + return a * Math.pow(2, -10 * k) * Math.sin((k - s) * (2 * Math.PI) / p) + 1; + }, + ElasticInOut: function (k) { + var s; + var a = 0.1; + var p = 0.4; + if (k === 0) { + return 0; + } + if (k === 1) { + return 1; + } + if (!a || a < 1) { + a = 1; + s = p / 4; + } else { + s = p * Math.asin(1 / a) / (2 * Math.PI); + } + if ((k *= 2) < 1) { + return -0.5 * (a * Math.pow(2, 10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p)); + } + return a * Math.pow(2, -10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p) * 0.5 + 1; + }, + BackIn: function (k) { + var s = 1.70158; + return k * k * ((s + 1) * k - s); + }, + BackOut: function (k) { + var s = 1.70158; + return --k * k * ((s + 1) * k + s) + 1; + }, + BackInOut: function (k) { + var s = 1.70158 * 1.525; + if ((k *= 2) < 1) { + return 0.5 * (k * k * ((s + 1) * k - s)); + } + return 0.5 * ((k -= 2) * k * ((s + 1) * k + s) + 2); + }, + BounceIn: function (k) { + return 1 - easing.BounceOut(1 - k); + }, + BounceOut: function (k) { + if (k < 1 / 2.75) { + return 7.5625 * k * k; + } else if (k < 2 / 2.75) { + return 7.5625 * (k -= 1.5 / 2.75) * k + 0.75; + } else if (k < 2.5 / 2.75) { + return 7.5625 * (k -= 2.25 / 2.75) * k + 0.9375; + } else { + return 7.5625 * (k -= 2.625 / 2.75) * k + 0.984375; + } + }, + BounceInOut: function (k) { + if (k < 0.5) { + return easing.BounceIn(k * 2) * 0.5; + } + return easing.BounceOut(k * 2 - 1) * 0.5 + 0.5; + } + }; + return easing; +});define('echarts/chart/base', [ + 'require', + 'zrender/shape/Image', + '../util/shape/Icon', + '../util/shape/MarkLine', + '../util/shape/Symbol', + 'zrender/shape/Polyline', + 'zrender/shape/ShapeBundle', + '../config', + '../util/ecData', + '../util/ecAnimation', + '../util/ecEffect', + '../util/accMath', + '../component/base', + '../layout/EdgeBundling', + 'zrender/tool/util', + 'zrender/tool/area' +], function (require) { + var ImageShape = require('zrender/shape/Image'); + var IconShape = require('../util/shape/Icon'); + var MarkLineShape = require('../util/shape/MarkLine'); + var SymbolShape = require('../util/shape/Symbol'); + var PolylineShape = require('zrender/shape/Polyline'); + var ShapeBundle = require('zrender/shape/ShapeBundle'); + var ecConfig = require('../config'); + var ecData = require('../util/ecData'); + var ecAnimation = require('../util/ecAnimation'); + var ecEffect = require('../util/ecEffect'); + var accMath = require('../util/accMath'); + var ComponentBase = require('../component/base'); + var EdgeBundling = require('../layout/EdgeBundling'); + var zrUtil = require('zrender/tool/util'); + var zrArea = require('zrender/tool/area'); + function isCoordAvailable(coord) { + return coord.x != null && coord.y != null; + } + function Base(ecTheme, messageCenter, zr, option, myChart) { + ComponentBase.call(this, ecTheme, messageCenter, zr, option, myChart); + var self = this; + this.selectedMap = {}; + this.lastShapeList = []; + this.shapeHandler = { + onclick: function () { + self.isClick = true; + }, + ondragover: function (param) { + var calculableShape = param.target; + calculableShape.highlightStyle = calculableShape.highlightStyle || {}; + var highlightStyle = calculableShape.highlightStyle; + var brushType = highlightStyle.brushTyep; + var strokeColor = highlightStyle.strokeColor; + var lineWidth = highlightStyle.lineWidth; + highlightStyle.brushType = 'stroke'; + highlightStyle.strokeColor = self.ecTheme.calculableColor || ecConfig.calculableColor; + highlightStyle.lineWidth = calculableShape.type === 'icon' ? 30 : 10; + self.zr.addHoverShape(calculableShape); + setTimeout(function () { + if (highlightStyle) { + highlightStyle.brushType = brushType; + highlightStyle.strokeColor = strokeColor; + highlightStyle.lineWidth = lineWidth; + } + }, 20); + }, + ondrop: function (param) { + if (ecData.get(param.dragged, 'data') != null) { + self.isDrop = true; + } + }, + ondragend: function () { + self.isDragend = true; + } + }; + } + Base.prototype = { + setCalculable: function (shape) { + shape.dragEnableTime = this.ecTheme.DRAG_ENABLE_TIME || ecConfig.DRAG_ENABLE_TIME; + shape.ondragover = this.shapeHandler.ondragover; + shape.ondragend = this.shapeHandler.ondragend; + shape.ondrop = this.shapeHandler.ondrop; + return shape; + }, + ondrop: function (param, status) { + if (!this.isDrop || !param.target || status.dragIn) { + return; + } + var target = param.target; + var dragged = param.dragged; + var seriesIndex = ecData.get(target, 'seriesIndex'); + var dataIndex = ecData.get(target, 'dataIndex'); + var series = this.series; + var data; + var legend = this.component.legend; + if (dataIndex === -1) { + if (ecData.get(dragged, 'seriesIndex') == seriesIndex) { + status.dragOut = status.dragIn = status.needRefresh = true; + this.isDrop = false; + return; + } + data = { + value: ecData.get(dragged, 'value'), + name: ecData.get(dragged, 'name') + }; + if (this.type === ecConfig.CHART_TYPE_PIE && data.value < 0) { + data.value = 0; + } + var hasFind = false; + var sData = series[seriesIndex].data; + for (var i = 0, l = sData.length; i < l; i++) { + if (sData[i].name === data.name && sData[i].value === '-') { + series[seriesIndex].data[i].value = data.value; + hasFind = true; + } + } + !hasFind && series[seriesIndex].data.push(data); + legend && legend.add(data.name, dragged.style.color || dragged.style.strokeColor); + } else { + data = series[seriesIndex].data[dataIndex] || '-'; + if (data.value != null) { + if (data.value != '-') { + series[seriesIndex].data[dataIndex].value = accMath.accAdd(series[seriesIndex].data[dataIndex].value, ecData.get(dragged, 'value')); + } else { + series[seriesIndex].data[dataIndex].value = ecData.get(dragged, 'value'); + } + if (this.type === ecConfig.CHART_TYPE_FUNNEL || this.type === ecConfig.CHART_TYPE_PIE) { + legend && legend.getRelatedAmount(data.name) === 1 && this.component.legend.del(data.name); + data.name += this.option.nameConnector + ecData.get(dragged, 'name'); + legend && legend.add(data.name, dragged.style.color || dragged.style.strokeColor); + } + } else { + if (data != '-') { + series[seriesIndex].data[dataIndex] = accMath.accAdd(series[seriesIndex].data[dataIndex], ecData.get(dragged, 'value')); + } else { + series[seriesIndex].data[dataIndex] = ecData.get(dragged, 'value'); + } + } + } + status.dragIn = status.dragIn || true; + this.isDrop = false; + var self = this; + setTimeout(function () { + self.zr.trigger('mousemove', param.event); + }, 300); + return; + }, + ondragend: function (param, status) { + if (!this.isDragend || !param.target || status.dragOut) { + return; + } + var target = param.target; + var seriesIndex = ecData.get(target, 'seriesIndex'); + var dataIndex = ecData.get(target, 'dataIndex'); + var series = this.series; + if (series[seriesIndex].data[dataIndex].value != null) { + series[seriesIndex].data[dataIndex].value = '-'; + var name = series[seriesIndex].data[dataIndex].name; + var legend = this.component.legend; + if (legend && legend.getRelatedAmount(name) === 0) { + legend.del(name); + } + } else { + series[seriesIndex].data[dataIndex] = '-'; + } + status.dragOut = true; + status.needRefresh = true; + this.isDragend = false; + return; + }, + onlegendSelected: function (param, status) { + var legendSelected = param.selected; + for (var itemName in this.selectedMap) { + if (this.selectedMap[itemName] != legendSelected[itemName]) { + status.needRefresh = true; + } + this.selectedMap[itemName] = legendSelected[itemName]; + } + return; + }, + _buildPosition: function () { + this._symbol = this.option.symbolList; + this._sIndex2ShapeMap = {}; + this._sIndex2ColorMap = {}; + this.selectedMap = {}; + this.xMarkMap = {}; + var series = this.series; + var _position2sIndexMap = { + top: [], + bottom: [], + left: [], + right: [], + other: [] + }; + var xAxisIndex; + var yAxisIndex; + var xAxis; + var yAxis; + for (var i = 0, l = series.length; i < l; i++) { + if (series[i].type === this.type) { + series[i] = this.reformOption(series[i]); + this.legendHoverLink = series[i].legendHoverLink || this.legendHoverLink; + xAxisIndex = series[i].xAxisIndex; + yAxisIndex = series[i].yAxisIndex; + xAxis = this.component.xAxis.getAxis(xAxisIndex); + yAxis = this.component.yAxis.getAxis(yAxisIndex); + if (xAxis.type === ecConfig.COMPONENT_TYPE_AXIS_CATEGORY) { + _position2sIndexMap[xAxis.getPosition()].push(i); + } else if (yAxis.type === ecConfig.COMPONENT_TYPE_AXIS_CATEGORY) { + _position2sIndexMap[yAxis.getPosition()].push(i); + } else { + _position2sIndexMap.other.push(i); + } + } + } + for (var position in _position2sIndexMap) { + if (_position2sIndexMap[position].length > 0) { + this._buildSinglePosition(position, _position2sIndexMap[position]); + } + } + this.addShapeList(); + }, + _buildSinglePosition: function (position, seriesArray) { + var mapData = this._mapData(seriesArray); + var locationMap = mapData.locationMap; + var maxDataLength = mapData.maxDataLength; + if (maxDataLength === 0 || locationMap.length === 0) { + return; + } + switch (position) { + case 'bottom': + case 'top': + this._buildHorizontal(seriesArray, maxDataLength, locationMap, this.xMarkMap); + break; + case 'left': + case 'right': + this._buildVertical(seriesArray, maxDataLength, locationMap, this.xMarkMap); + break; + case 'other': + this._buildOther(seriesArray, maxDataLength, locationMap, this.xMarkMap); + break; + } + for (var i = 0, l = seriesArray.length; i < l; i++) { + this.buildMark(seriesArray[i]); + } + }, + _mapData: function (seriesArray) { + var series = this.series; + var serie; + var dataIndex = 0; + var stackMap = {}; + var magicStackKey = '__kener__stack__'; + var stackKey; + var serieName; + var legend = this.component.legend; + var locationMap = []; + var maxDataLength = 0; + var iconShape; + for (var i = 0, l = seriesArray.length; i < l; i++) { + serie = series[seriesArray[i]]; + serieName = serie.name; + this._sIndex2ShapeMap[seriesArray[i]] = this._sIndex2ShapeMap[seriesArray[i]] || this.query(serie, 'symbol') || this._symbol[i % this._symbol.length]; + if (legend) { + this.selectedMap[serieName] = legend.isSelected(serieName); + this._sIndex2ColorMap[seriesArray[i]] = legend.getColor(serieName); + iconShape = legend.getItemShape(serieName); + if (iconShape) { + var style = iconShape.style; + if (this.type == ecConfig.CHART_TYPE_LINE) { + style.iconType = 'legendLineIcon'; + style.symbol = this._sIndex2ShapeMap[seriesArray[i]]; + } else if (serie.itemStyle.normal.barBorderWidth > 0) { + var highlightStyle = iconShape.highlightStyle; + style.brushType = 'both'; + style.x += 1; + style.y += 1; + style.width -= 2; + style.height -= 2; + style.strokeColor = highlightStyle.strokeColor = serie.itemStyle.normal.barBorderColor; + highlightStyle.lineWidth = 3; + } + legend.setItemShape(serieName, iconShape); + } + } else { + this.selectedMap[serieName] = true; + this._sIndex2ColorMap[seriesArray[i]] = this.zr.getColor(seriesArray[i]); + } + if (this.selectedMap[serieName]) { + stackKey = serie.stack || magicStackKey + seriesArray[i]; + if (stackMap[stackKey] == null) { + stackMap[stackKey] = dataIndex; + locationMap[dataIndex] = [seriesArray[i]]; + dataIndex++; + } else { + locationMap[stackMap[stackKey]].push(seriesArray[i]); + } + } + maxDataLength = Math.max(maxDataLength, serie.data.length); + } + return { + locationMap: locationMap, + maxDataLength: maxDataLength + }; + }, + _calculMarkMapXY: function (xMarkMap, locationMap, xy) { + var series = this.series; + for (var j = 0, k = locationMap.length; j < k; j++) { + for (var m = 0, n = locationMap[j].length; m < n; m++) { + var seriesIndex = locationMap[j][m]; + var valueIndex = xy == 'xy' ? 0 : ''; + var grid = this.component.grid; + var tarMark = xMarkMap[seriesIndex]; + if (xy.indexOf('x') != '-1') { + if (tarMark['counter' + valueIndex] > 0) { + tarMark['average' + valueIndex] = tarMark['sum' + valueIndex] / tarMark['counter' + valueIndex]; + } + var x = this.component.xAxis.getAxis(series[seriesIndex].xAxisIndex || 0).getCoord(tarMark['average' + valueIndex]); + tarMark['averageLine' + valueIndex] = [ + [ + x, + grid.getYend() + ], + [ + x, + grid.getY() + ] + ]; + tarMark['minLine' + valueIndex] = [ + [ + tarMark['minX' + valueIndex], + grid.getYend() + ], + [ + tarMark['minX' + valueIndex], + grid.getY() + ] + ]; + tarMark['maxLine' + valueIndex] = [ + [ + tarMark['maxX' + valueIndex], + grid.getYend() + ], + [ + tarMark['maxX' + valueIndex], + grid.getY() + ] + ]; + tarMark.isHorizontal = false; + } + valueIndex = xy == 'xy' ? 1 : ''; + if (xy.indexOf('y') != '-1') { + if (tarMark['counter' + valueIndex] > 0) { + tarMark['average' + valueIndex] = tarMark['sum' + valueIndex] / tarMark['counter' + valueIndex]; + } + var y = this.component.yAxis.getAxis(series[seriesIndex].yAxisIndex || 0).getCoord(tarMark['average' + valueIndex]); + tarMark['averageLine' + valueIndex] = [ + [ + grid.getX(), + y + ], + [ + grid.getXend(), + y + ] + ]; + tarMark['minLine' + valueIndex] = [ + [ + grid.getX(), + tarMark['minY' + valueIndex] + ], + [ + grid.getXend(), + tarMark['minY' + valueIndex] + ] + ]; + tarMark['maxLine' + valueIndex] = [ + [ + grid.getX(), + tarMark['maxY' + valueIndex] + ], + [ + grid.getXend(), + tarMark['maxY' + valueIndex] + ] + ]; + tarMark.isHorizontal = true; + } + } + } + }, + addLabel: function (tarShape, serie, data, name, orient) { + var queryTarget = [ + data, + serie + ]; + var nLabel = this.deepMerge(queryTarget, 'itemStyle.normal.label'); + var eLabel = this.deepMerge(queryTarget, 'itemStyle.emphasis.label'); + var nTextStyle = nLabel.textStyle || {}; + var eTextStyle = eLabel.textStyle || {}; + if (nLabel.show) { + var style = tarShape.style; + style.text = this._getLabelText(serie, data, name, 'normal'); + style.textPosition = nLabel.position == null ? orient === 'horizontal' ? 'right' : 'top' : nLabel.position; + style.textColor = nTextStyle.color; + style.textFont = this.getFont(nTextStyle); + style.textAlign = nTextStyle.align; + style.textBaseline = nTextStyle.baseline; + } + if (eLabel.show) { + var highlightStyle = tarShape.highlightStyle; + highlightStyle.text = this._getLabelText(serie, data, name, 'emphasis'); + highlightStyle.textPosition = nLabel.show ? tarShape.style.textPosition : eLabel.position == null ? orient === 'horizontal' ? 'right' : 'top' : eLabel.position; + highlightStyle.textColor = eTextStyle.color; + highlightStyle.textFont = this.getFont(eTextStyle); + highlightStyle.textAlign = eTextStyle.align; + highlightStyle.textBaseline = eTextStyle.baseline; + } + return tarShape; + }, + _getLabelText: function (serie, data, name, status) { + var formatter = this.deepQuery([ + data, + serie + ], 'itemStyle.' + status + '.label.formatter'); + if (!formatter && status === 'emphasis') { + formatter = this.deepQuery([ + data, + serie + ], 'itemStyle.normal.label.formatter'); + } + var value = this.getDataFromOption(data, '-'); + if (formatter) { + if (typeof formatter === 'function') { + return formatter.call(this.myChart, { + seriesName: serie.name, + series: serie, + name: name, + value: value, + data: data, + status: status + }); + } else if (typeof formatter === 'string') { + formatter = formatter.replace('{a}', '{a0}').replace('{b}', '{b0}').replace('{c}', '{c0}').replace('{a0}', serie.name).replace('{b0}', name).replace('{c0}', this.numAddCommas(value)); + return formatter; + } + } else { + if (value instanceof Array) { + return value[2] != null ? this.numAddCommas(value[2]) : value[0] + ' , ' + value[1]; + } else { + return this.numAddCommas(value); + } + } + }, + buildMark: function (seriesIndex) { + var serie = this.series[seriesIndex]; + if (this.selectedMap[serie.name]) { + serie.markLine && this._buildMarkLine(seriesIndex); + serie.markPoint && this._buildMarkPoint(seriesIndex); + } + }, + _buildMarkPoint: function (seriesIndex) { + var attachStyle = (this.markAttachStyle || {})[seriesIndex]; + var serie = this.series[seriesIndex]; + var mpData; + var pos; + var markPoint = zrUtil.clone(serie.markPoint); + for (var i = 0, l = markPoint.data.length; i < l; i++) { + mpData = markPoint.data[i]; + pos = this.getMarkCoord(seriesIndex, mpData); + mpData.x = mpData.x != null ? mpData.x : pos[0]; + mpData.y = mpData.y != null ? mpData.y : pos[1]; + if (mpData.type && (mpData.type === 'max' || mpData.type === 'min')) { + mpData.value = pos[3]; + mpData.name = mpData.name || mpData.type; + mpData.symbolSize = mpData.symbolSize || zrArea.getTextWidth(pos[3], this.getFont()) / 2 + 5; + } + } + var shapeList = this._markPoint(seriesIndex, markPoint); + for (var i = 0, l = shapeList.length; i < l; i++) { + var tarShape = shapeList[i]; + tarShape.zlevel = serie.zlevel; + tarShape.z = serie.z + 1; + for (var key in attachStyle) { + tarShape[key] = zrUtil.clone(attachStyle[key]); + } + this.shapeList.push(tarShape); + } + if (this.type === ecConfig.CHART_TYPE_FORCE || this.type === ecConfig.CHART_TYPE_CHORD) { + for (var i = 0, l = shapeList.length; i < l; i++) { + this.zr.addShape(shapeList[i]); + } + } + }, + _buildMarkLine: function (seriesIndex) { + var attachStyle = (this.markAttachStyle || {})[seriesIndex]; + var serie = this.series[seriesIndex]; + var pos; + var markLine = zrUtil.clone(serie.markLine); + for (var i = 0, l = markLine.data.length; i < l; i++) { + var mlData = markLine.data[i]; + if (mlData.type && (mlData.type === 'max' || mlData.type === 'min' || mlData.type === 'average')) { + pos = this.getMarkCoord(seriesIndex, mlData); + markLine.data[i] = [ + zrUtil.clone(mlData), + {} + ]; + markLine.data[i][0].name = mlData.name || mlData.type; + markLine.data[i][0].value = mlData.type !== 'average' ? pos[3] : +pos[3].toFixed(markLine.precision != null ? markLine.precision : this.deepQuery([ + this.ecTheme, + ecConfig + ], 'markLine.precision')); + pos = pos[2]; + mlData = [ + {}, + {} + ]; + } else { + pos = [ + this.getMarkCoord(seriesIndex, mlData[0]), + this.getMarkCoord(seriesIndex, mlData[1]) + ]; + } + if (pos == null || pos[0] == null || pos[1] == null) { + continue; + } + markLine.data[i][0].x = mlData[0].x != null ? mlData[0].x : pos[0][0]; + markLine.data[i][0].y = mlData[0].y != null ? mlData[0].y : pos[0][1]; + markLine.data[i][1].x = mlData[1].x != null ? mlData[1].x : pos[1][0]; + markLine.data[i][1].y = mlData[1].y != null ? mlData[1].y : pos[1][1]; + } + var shapeList = this._markLine(seriesIndex, markLine); + var isLarge = markLine.large; + if (isLarge) { + var shapeBundle = new ShapeBundle({ style: { shapeList: shapeList } }); + var firstShape = shapeList[0]; + if (firstShape) { + zrUtil.merge(shapeBundle.style, firstShape.style); + zrUtil.merge(shapeBundle.highlightStyle = {}, firstShape.highlightStyle); + shapeBundle.style.brushType = 'stroke'; + shapeBundle.zlevel = serie.zlevel; + shapeBundle.z = serie.z + 1; + shapeBundle.hoverable = false; + for (var key in attachStyle) { + shapeBundle[key] = zrUtil.clone(attachStyle[key]); + } + } + this.shapeList.push(shapeBundle); + this.zr.addShape(shapeBundle); + shapeBundle._mark = 'largeLine'; + var effect = markLine.effect; + if (effect.show) { + shapeBundle.effect = effect; + } + } else { + for (var i = 0, l = shapeList.length; i < l; i++) { + var tarShape = shapeList[i]; + tarShape.zlevel = serie.zlevel; + tarShape.z = serie.z + 1; + for (var key in attachStyle) { + tarShape[key] = zrUtil.clone(attachStyle[key]); + } + this.shapeList.push(tarShape); + } + if (this.type === ecConfig.CHART_TYPE_FORCE || this.type === ecConfig.CHART_TYPE_CHORD) { + for (var i = 0, l = shapeList.length; i < l; i++) { + this.zr.addShape(shapeList[i]); + } + } + } + }, + _markPoint: function (seriesIndex, mpOption) { + var serie = this.series[seriesIndex]; + var component = this.component; + zrUtil.merge(zrUtil.merge(mpOption, zrUtil.clone(this.ecTheme.markPoint || {})), zrUtil.clone(ecConfig.markPoint)); + mpOption.name = serie.name; + var pList = []; + var data = mpOption.data; + var itemShape; + var dataRange = component.dataRange; + var legend = component.legend; + var color; + var value; + var queryTarget; + var nColor; + var eColor; + var effect; + var zrWidth = this.zr.getWidth(); + var zrHeight = this.zr.getHeight(); + if (!mpOption.large) { + for (var i = 0, l = data.length; i < l; i++) { + if (data[i].x == null || data[i].y == null) { + continue; + } + value = data[i].value != null ? data[i].value : ''; + if (legend) { + color = legend.getColor(serie.name); + } + if (dataRange) { + color = isNaN(value) ? color : dataRange.getColor(value); + queryTarget = [ + data[i], + mpOption + ]; + nColor = this.deepQuery(queryTarget, 'itemStyle.normal.color') || color; + eColor = this.deepQuery(queryTarget, 'itemStyle.emphasis.color') || nColor; + if (nColor == null && eColor == null) { + continue; + } + } + color = color == null ? this.zr.getColor(seriesIndex) : color; + data[i].tooltip = data[i].tooltip || mpOption.tooltip || { trigger: 'item' }; + data[i].name = data[i].name != null ? data[i].name : ''; + data[i].value = value; + itemShape = this.getSymbolShape(mpOption, seriesIndex, data[i], i, data[i].name, this.parsePercent(data[i].x, zrWidth), this.parsePercent(data[i].y, zrHeight), 'pin', color, 'rgba(0,0,0,0)', 'horizontal'); + itemShape._mark = 'point'; + effect = this.deepMerge([ + data[i], + mpOption + ], 'effect'); + if (effect.show) { + itemShape.effect = effect; + } + if (serie.type === ecConfig.CHART_TYPE_MAP) { + itemShape._geo = this.getMarkGeo(data[i]); + } + ecData.pack(itemShape, serie, seriesIndex, data[i], i, data[i].name, value); + pList.push(itemShape); + } + } else { + itemShape = this.getLargeMarkPointShape(seriesIndex, mpOption); + itemShape._mark = 'largePoint'; + itemShape && pList.push(itemShape); + } + return pList; + }, + _markLine: function () { + function normalizeOptionValue(mlOption, key) { + mlOption[key] = mlOption[key] instanceof Array ? mlOption[key].length > 1 ? mlOption[key] : [ + mlOption[key][0], + mlOption[key][0] + ] : [ + mlOption[key], + mlOption[key] + ]; + } + return function (seriesIndex, mlOption) { + var serie = this.series[seriesIndex]; + var component = this.component; + var dataRange = component.dataRange; + var legend = component.legend; + zrUtil.merge(zrUtil.merge(mlOption, zrUtil.clone(this.ecTheme.markLine || {})), zrUtil.clone(ecConfig.markLine)); + var defaultColor = legend ? legend.getColor(serie.name) : this.zr.getColor(seriesIndex); + normalizeOptionValue(mlOption, 'symbol'); + normalizeOptionValue(mlOption, 'symbolSize'); + normalizeOptionValue(mlOption, 'symbolRotate'); + var data = mlOption.data; + var edges = []; + var zrWidth = this.zr.getWidth(); + var zrHeight = this.zr.getHeight(); + for (var i = 0; i < data.length; i++) { + var mlData = data[i]; + if (isCoordAvailable(mlData[0]) && isCoordAvailable(mlData[1])) { + var mergeData = this.deepMerge(mlData); + var queryTarget = [ + mergeData, + mlOption + ]; + var color = defaultColor; + var value = mergeData.value != null ? mergeData.value : ''; + if (dataRange) { + color = isNaN(value) ? color : dataRange.getColor(value); + var nColor = this.deepQuery(queryTarget, 'itemStyle.normal.color') || color; + var eColor = this.deepQuery(queryTarget, 'itemStyle.emphasis.color') || nColor; + if (nColor == null && eColor == null) { + continue; + } + } + mlData[0].tooltip = mergeData.tooltip || mlOption.tooltip || { trigger: 'item' }; + mlData[0].name = mlData[0].name || ''; + mlData[1].name = mlData[1].name || ''; + mlData[0].value = value; + edges.push({ + points: [ + [ + this.parsePercent(mlData[0].x, zrWidth), + this.parsePercent(mlData[0].y, zrHeight) + ], + [ + this.parsePercent(mlData[1].x, zrWidth), + this.parsePercent(mlData[1].y, zrHeight) + ] + ], + rawData: mlData, + color: color + }); + } + } + var enableBundling = this.query(mlOption, 'bundling.enable'); + if (enableBundling) { + var edgeBundling = new EdgeBundling(); + edgeBundling.maxTurningAngle = this.query(mlOption, 'bundling.maxTurningAngle') / 180 * Math.PI; + edges = edgeBundling.run(edges); + } + mlOption.name = serie.name; + var shapeList = []; + for (var i = 0, l = edges.length; i < l; i++) { + var edge = edges[i]; + var rawEdge = edge.rawEdge || edge; + var mlData = rawEdge.rawData; + var value = mlData.value != null ? mlData.value : ''; + var itemShape = this.getMarkLineShape(mlOption, seriesIndex, mlData, i, edge.points, enableBundling, rawEdge.color); + itemShape._mark = 'line'; + var effect = this.deepMerge([ + mlData[0], + mlData[1], + mlOption + ], 'effect'); + if (effect.show) { + itemShape.effect = effect; + itemShape.effect.large = mlOption.large; + } + if (serie.type === ecConfig.CHART_TYPE_MAP) { + itemShape._geo = [ + this.getMarkGeo(mlData[0]), + this.getMarkGeo(mlData[1]) + ]; + } + ecData.pack(itemShape, serie, seriesIndex, mlData[0], i, mlData[0].name + (mlData[1].name !== '' ? ' > ' + mlData[1].name : ''), value); + shapeList.push(itemShape); + } + return shapeList; + }; + }(), + getMarkCoord: function () { + return [ + 0, + 0 + ]; + }, + getSymbolShape: function (serie, seriesIndex, data, dataIndex, name, x, y, symbol, color, emptyColor, orient) { + var queryTarget = [ + data, + serie + ]; + var value = this.getDataFromOption(data, '-'); + symbol = this.deepQuery(queryTarget, 'symbol') || symbol; + var symbolSize = this.deepQuery(queryTarget, 'symbolSize'); + symbolSize = typeof symbolSize === 'function' ? symbolSize(value) : symbolSize; + if (typeof symbolSize === 'number') { + symbolSize = [ + symbolSize, + symbolSize + ]; + } + var symbolRotate = this.deepQuery(queryTarget, 'symbolRotate'); + var normal = this.deepMerge(queryTarget, 'itemStyle.normal'); + var emphasis = this.deepMerge(queryTarget, 'itemStyle.emphasis'); + var nBorderWidth = normal.borderWidth != null ? normal.borderWidth : normal.lineStyle && normal.lineStyle.width; + if (nBorderWidth == null) { + nBorderWidth = symbol.match('empty') ? 2 : 0; + } + var eBorderWidth = emphasis.borderWidth != null ? emphasis.borderWidth : emphasis.lineStyle && emphasis.lineStyle.width; + if (eBorderWidth == null) { + eBorderWidth = nBorderWidth + 2; + } + var nColor = this.getItemStyleColor(normal.color, seriesIndex, dataIndex, data); + var eColor = this.getItemStyleColor(emphasis.color, seriesIndex, dataIndex, data); + var width = symbolSize[0]; + var height = symbolSize[1]; + var itemShape = new IconShape({ + style: { + iconType: symbol.replace('empty', '').toLowerCase(), + x: x - width, + y: y - height, + width: width * 2, + height: height * 2, + brushType: 'both', + color: symbol.match('empty') ? emptyColor : nColor || color, + strokeColor: normal.borderColor || nColor || color, + lineWidth: nBorderWidth + }, + highlightStyle: { + color: symbol.match('empty') ? emptyColor : eColor || nColor || color, + strokeColor: emphasis.borderColor || normal.borderColor || eColor || nColor || color, + lineWidth: eBorderWidth + }, + clickable: this.deepQuery(queryTarget, 'clickable') + }); + if (symbol.match('image')) { + itemShape.style.image = symbol.replace(new RegExp('^image:\\/\\/'), ''); + itemShape = new ImageShape({ + style: itemShape.style, + highlightStyle: itemShape.highlightStyle, + clickable: this.deepQuery(queryTarget, 'clickable') + }); + } + if (symbolRotate != null) { + itemShape.rotation = [ + symbolRotate * Math.PI / 180, + x, + y + ]; + } + if (symbol.match('star')) { + itemShape.style.iconType = 'star'; + itemShape.style.n = symbol.replace('empty', '').replace('star', '') - 0 || 5; + } + if (symbol === 'none') { + itemShape.invisible = true; + itemShape.hoverable = false; + } + itemShape = this.addLabel(itemShape, serie, data, name, orient); + if (symbol.match('empty')) { + if (itemShape.style.textColor == null) { + itemShape.style.textColor = itemShape.style.strokeColor; + } + if (itemShape.highlightStyle.textColor == null) { + itemShape.highlightStyle.textColor = itemShape.highlightStyle.strokeColor; + } + } + ecData.pack(itemShape, serie, seriesIndex, data, dataIndex, name); + itemShape._x = x; + itemShape._y = y; + itemShape._dataIndex = dataIndex; + itemShape._seriesIndex = seriesIndex; + return itemShape; + }, + getMarkLineShape: function (mlOption, seriesIndex, data, dataIndex, points, bundling, color) { + var value0 = data[0].value != null ? data[0].value : '-'; + var value1 = data[1].value != null ? data[1].value : '-'; + var symbol = [ + data[0].symbol || mlOption.symbol[0], + data[1].symbol || mlOption.symbol[1] + ]; + var symbolSize = [ + data[0].symbolSize || mlOption.symbolSize[0], + data[1].symbolSize || mlOption.symbolSize[1] + ]; + symbolSize[0] = typeof symbolSize[0] === 'function' ? symbolSize[0](value0) : symbolSize[0]; + symbolSize[1] = typeof symbolSize[1] === 'function' ? symbolSize[1](value1) : symbolSize[1]; + var symbolRotate = [ + this.query(data[0], 'symbolRotate') || mlOption.symbolRotate[0], + this.query(data[1], 'symbolRotate') || mlOption.symbolRotate[1] + ]; + var queryTarget = [ + data[0], + data[1], + mlOption + ]; + var normal = this.deepMerge(queryTarget, 'itemStyle.normal'); + normal.color = this.getItemStyleColor(normal.color, seriesIndex, dataIndex, data); + var emphasis = this.deepMerge(queryTarget, 'itemStyle.emphasis'); + emphasis.color = this.getItemStyleColor(emphasis.color, seriesIndex, dataIndex, data); + var nlineStyle = normal.lineStyle; + var elineStyle = emphasis.lineStyle; + var nBorderWidth = nlineStyle.width; + if (nBorderWidth == null) { + nBorderWidth = normal.borderWidth; + } + var eBorderWidth = elineStyle.width; + if (eBorderWidth == null) { + eBorderWidth = emphasis.borderWidth != null ? emphasis.borderWidth : nBorderWidth + 2; + } + var smoothness = this.deepQuery(queryTarget, 'smoothness'); + if (!this.deepQuery(queryTarget, 'smooth')) { + smoothness = 0; + } + var ShapeCtor = bundling ? PolylineShape : MarkLineShape; + var itemShape = new ShapeCtor({ + style: { + symbol: symbol, + symbolSize: symbolSize, + symbolRotate: symbolRotate, + brushType: 'both', + lineType: nlineStyle.type, + shadowColor: nlineStyle.shadowColor || nlineStyle.color || normal.borderColor || normal.color || color, + shadowBlur: nlineStyle.shadowBlur, + shadowOffsetX: nlineStyle.shadowOffsetX, + shadowOffsetY: nlineStyle.shadowOffsetY, + color: normal.color || color, + strokeColor: nlineStyle.color || normal.borderColor || normal.color || color, + lineWidth: nBorderWidth, + symbolBorderColor: normal.borderColor || normal.color || color, + symbolBorder: normal.borderWidth + }, + highlightStyle: { + shadowColor: elineStyle.shadowColor, + shadowBlur: elineStyle.shadowBlur, + shadowOffsetX: elineStyle.shadowOffsetX, + shadowOffsetY: elineStyle.shadowOffsetY, + color: emphasis.color || normal.color || color, + strokeColor: elineStyle.color || nlineStyle.color || emphasis.borderColor || normal.borderColor || emphasis.color || normal.color || color, + lineWidth: eBorderWidth, + symbolBorderColor: emphasis.borderColor || normal.borderColor || emphasis.color || normal.color || color, + symbolBorder: emphasis.borderWidth == null ? normal.borderWidth + 2 : emphasis.borderWidth + }, + clickable: this.deepQuery(queryTarget, 'clickable') + }); + var shapeStyle = itemShape.style; + if (bundling) { + shapeStyle.pointList = points; + shapeStyle.smooth = smoothness; + } else { + shapeStyle.xStart = points[0][0]; + shapeStyle.yStart = points[0][1]; + shapeStyle.xEnd = points[1][0]; + shapeStyle.yEnd = points[1][1]; + shapeStyle.curveness = smoothness; + itemShape.updatePoints(itemShape.style); + } + itemShape = this.addLabel(itemShape, mlOption, data[0], data[0].name + ' : ' + data[1].name); + return itemShape; + }, + getLargeMarkPointShape: function (seriesIndex, mpOption) { + var serie = this.series[seriesIndex]; + var component = this.component; + var data = mpOption.data; + var itemShape; + var dataRange = component.dataRange; + var legend = component.legend; + var color; + var value; + var queryTarget = [ + data[0], + mpOption + ]; + var nColor; + var eColor; + var effect; + if (legend) { + color = legend.getColor(serie.name); + } + if (dataRange) { + value = data[0].value != null ? data[0].value : ''; + color = isNaN(value) ? color : dataRange.getColor(value); + nColor = this.deepQuery(queryTarget, 'itemStyle.normal.color') || color; + eColor = this.deepQuery(queryTarget, 'itemStyle.emphasis.color') || nColor; + if (nColor == null && eColor == null) { + return; + } + } + color = this.deepMerge(queryTarget, 'itemStyle.normal').color || color; + var symbol = this.deepQuery(queryTarget, 'symbol') || 'circle'; + symbol = symbol.replace('empty', '').replace(/\d/g, ''); + effect = this.deepMerge([ + data[0], + mpOption + ], 'effect'); + var devicePixelRatio = window.devicePixelRatio || 1; + itemShape = new SymbolShape({ + style: { + pointList: data, + color: color, + strokeColor: color, + shadowColor: effect.shadowColor || color, + shadowBlur: (effect.shadowBlur != null ? effect.shadowBlur : 8) * devicePixelRatio, + size: this.deepQuery(queryTarget, 'symbolSize'), + iconType: symbol, + brushType: 'fill', + lineWidth: 1 + }, + draggable: false, + hoverable: false + }); + if (effect.show) { + itemShape.effect = effect; + } + return itemShape; + }, + backupShapeList: function () { + if (this.shapeList && this.shapeList.length > 0) { + this.lastShapeList = this.shapeList; + this.shapeList = []; + } else { + this.lastShapeList = []; + } + }, + addShapeList: function () { + var maxLenth = this.option.animationThreshold / (this.canvasSupported ? 2 : 4); + var lastShapeList = this.lastShapeList; + var shapeList = this.shapeList; + var isUpdate = lastShapeList.length > 0; + var duration = isUpdate ? this.query(this.option, 'animationDurationUpdate') : this.query(this.option, 'animationDuration'); + var easing = this.query(this.option, 'animationEasing'); + var delay; + var key; + var oldMap = {}; + var newMap = {}; + if (this.option.animation && !this.option.renderAsImage && shapeList.length < maxLenth && !this.motionlessOnce) { + for (var i = 0, l = lastShapeList.length; i < l; i++) { + key = this._getAnimationKey(lastShapeList[i]); + if (key.match('undefined')) { + this.zr.delShape(lastShapeList[i].id); + } else { + key += lastShapeList[i].type; + if (oldMap[key]) { + this.zr.delShape(lastShapeList[i].id); + } else { + oldMap[key] = lastShapeList[i]; + } + } + } + for (var i = 0, l = shapeList.length; i < l; i++) { + key = this._getAnimationKey(shapeList[i]); + if (key.match('undefined')) { + this.zr.addShape(shapeList[i]); + } else { + key += shapeList[i].type; + newMap[key] = shapeList[i]; + } + } + for (key in oldMap) { + if (!newMap[key]) { + this.zr.delShape(oldMap[key].id); + } + } + for (key in newMap) { + if (oldMap[key]) { + this.zr.delShape(oldMap[key].id); + this._animateMod(oldMap[key], newMap[key], duration, easing, 0, isUpdate); + } else { + delay = (this.type == ecConfig.CHART_TYPE_LINE || this.type == ecConfig.CHART_TYPE_RADAR) && key.indexOf('icon') !== 0 ? duration / 2 : 0; + this._animateMod(false, newMap[key], duration, easing, delay, isUpdate); + } + } + this.zr.refresh(); + this.animationEffect(); + } else { + this.motionlessOnce = false; + this.zr.delShape(lastShapeList); + for (var i = 0, l = shapeList.length; i < l; i++) { + this.zr.addShape(shapeList[i]); + } + } + }, + _getAnimationKey: function (shape) { + if (this.type != ecConfig.CHART_TYPE_MAP && this.type != ecConfig.CHART_TYPE_TREEMAP && this.type != ecConfig.CHART_TYPE_VENN && this.type != ecConfig.CHART_TYPE_TREE) { + return ecData.get(shape, 'seriesIndex') + '_' + ecData.get(shape, 'dataIndex') + (shape._mark ? shape._mark : '') + (this.type === ecConfig.CHART_TYPE_RADAR ? ecData.get(shape, 'special') : ''); + } else { + return ecData.get(shape, 'seriesIndex') + '_' + ecData.get(shape, 'dataIndex') + (shape._mark ? shape._mark : 'undefined'); + } + }, + _animateMod: function (oldShape, newShape, duration, easing, delay, isUpdate) { + switch (newShape.type) { + case 'polyline': + case 'half-smooth-polygon': + ecAnimation.pointList(this.zr, oldShape, newShape, duration, easing); + break; + case 'rectangle': + ecAnimation.rectangle(this.zr, oldShape, newShape, duration, easing); + break; + case 'image': + case 'icon': + ecAnimation.icon(this.zr, oldShape, newShape, duration, easing, delay); + break; + case 'candle': + if (!isUpdate) { + ecAnimation.candle(this.zr, oldShape, newShape, duration, easing); + } else { + this.zr.addShape(newShape); + } + break; + case 'ring': + case 'sector': + case 'circle': + if (!isUpdate) { + ecAnimation.ring(this.zr, oldShape, newShape, duration + (ecData.get(newShape, 'dataIndex') || 0) % 20 * 100, easing); + } else if (newShape.type === 'sector') { + ecAnimation.sector(this.zr, oldShape, newShape, duration, easing); + } else { + this.zr.addShape(newShape); + } + break; + case 'text': + ecAnimation.text(this.zr, oldShape, newShape, duration, easing); + break; + case 'polygon': + if (!isUpdate) { + ecAnimation.polygon(this.zr, oldShape, newShape, duration, easing); + } else { + ecAnimation.pointList(this.zr, oldShape, newShape, duration, easing); + } + break; + case 'ribbon': + ecAnimation.ribbon(this.zr, oldShape, newShape, duration, easing); + break; + case 'gauge-pointer': + ecAnimation.gaugePointer(this.zr, oldShape, newShape, duration, easing); + break; + case 'mark-line': + ecAnimation.markline(this.zr, oldShape, newShape, duration, easing); + break; + case 'bezier-curve': + case 'line': + ecAnimation.line(this.zr, oldShape, newShape, duration, easing); + break; + default: + this.zr.addShape(newShape); + break; + } + }, + animationMark: function (duration, easing, shapeList) { + var shapeList = shapeList || this.shapeList; + for (var i = 0, l = shapeList.length; i < l; i++) { + if (!shapeList[i]._mark) { + continue; + } + this._animateMod(false, shapeList[i], duration, easing, 0, true); + } + this.animationEffect(shapeList); + }, + animationEffect: function (shapeList) { + !shapeList && this.clearEffectShape(); + shapeList = shapeList || this.shapeList; + if (shapeList == null) { + return; + } + var zlevel = ecConfig.EFFECT_ZLEVEL; + if (this.canvasSupported) { + this.zr.modLayer(zlevel, { + motionBlur: true, + lastFrameAlpha: this.option.effectBlendAlpha || ecConfig.effectBlendAlpha + }); + } + var shape; + for (var i = 0, l = shapeList.length; i < l; i++) { + shape = shapeList[i]; + if (!(shape._mark && shape.effect && shape.effect.show && ecEffect[shape._mark])) { + continue; + } + ecEffect[shape._mark](this.zr, this.effectList, shape, zlevel); + this.effectList[this.effectList.length - 1]._mark = shape._mark; + } + }, + clearEffectShape: function (clearMotionBlur) { + var effectList = this.effectList; + if (this.zr && effectList && effectList.length > 0) { + clearMotionBlur && this.zr.modLayer(ecConfig.EFFECT_ZLEVEL, { motionBlur: false }); + this.zr.delShape(effectList); + for (var i = 0; i < effectList.length; i++) { + if (effectList[i].effectAnimator) { + effectList[i].effectAnimator.stop(); + } + } + } + this.effectList = []; + }, + addMark: function (seriesIndex, markData, markType) { + var serie = this.series[seriesIndex]; + if (this.selectedMap[serie.name]) { + var duration = this.query(this.option, 'animationDurationUpdate'); + var easing = this.query(this.option, 'animationEasing'); + var oriMarkData = serie[markType].data; + var lastLength = this.shapeList.length; + serie[markType].data = markData.data; + this['_build' + markType.replace('m', 'M')](seriesIndex); + if (this.option.animation && !this.option.renderAsImage) { + this.animationMark(duration, easing, this.shapeList.slice(lastLength)); + } else { + for (var i = lastLength, l = this.shapeList.length; i < l; i++) { + this.zr.addShape(this.shapeList[i]); + } + this.zr.refreshNextFrame(); + } + serie[markType].data = oriMarkData; + } + }, + delMark: function (seriesIndex, markName, markType) { + markType = markType.replace('mark', '').replace('large', '').toLowerCase(); + var serie = this.series[seriesIndex]; + if (this.selectedMap[serie.name]) { + var needRefresh = false; + var shapeList = [ + this.shapeList, + this.effectList + ]; + var len = 2; + while (len--) { + for (var i = 0, l = shapeList[len].length; i < l; i++) { + if (shapeList[len][i]._mark == markType && ecData.get(shapeList[len][i], 'seriesIndex') == seriesIndex && ecData.get(shapeList[len][i], 'name') == markName) { + this.zr.delShape(shapeList[len][i].id); + shapeList[len].splice(i, 1); + needRefresh = true; + break; + } + } + } + needRefresh && this.zr.refreshNextFrame(); + } + } + }; + zrUtil.inherits(Base, ComponentBase); + return Base; +});define('zrender/shape/Circle', [ + 'require', + './Base', + '../tool/util' +], function (require) { + 'use strict'; + var Base = require('./Base'); + var Circle = function (options) { + Base.call(this, options); + }; + Circle.prototype = { + type: 'circle', + buildPath: function (ctx, style) { + ctx.moveTo(style.x + style.r, style.y); + ctx.arc(style.x, style.y, style.r, 0, Math.PI * 2, true); + return; + }, + getRect: function (style) { + if (style.__rect) { + return style.__rect; + } + var lineWidth; + if (style.brushType == 'stroke' || style.brushType == 'fill') { + lineWidth = style.lineWidth || 1; + } else { + lineWidth = 0; + } + style.__rect = { + x: Math.round(style.x - style.r - lineWidth / 2), + y: Math.round(style.y - style.r - lineWidth / 2), + width: style.r * 2 + lineWidth, + height: style.r * 2 + lineWidth + }; + return style.__rect; + } + }; + require('../tool/util').inherits(Circle, Base); + return Circle; +});define('echarts/util/accMath', [], function () { + function accDiv(arg1, arg2) { + var s1 = arg1.toString(); + var s2 = arg2.toString(); + var m = 0; + try { + m = s2.split('.')[1].length; + } catch (e) { + } + try { + m -= s1.split('.')[1].length; + } catch (e) { + } + return (s1.replace('.', '') - 0) / (s2.replace('.', '') - 0) * Math.pow(10, m); + } + function accMul(arg1, arg2) { + var s1 = arg1.toString(); + var s2 = arg2.toString(); + var m = 0; + try { + m += s1.split('.')[1].length; + } catch (e) { + } + try { + m += s2.split('.')[1].length; + } catch (e) { + } + return (s1.replace('.', '') - 0) * (s2.replace('.', '') - 0) / Math.pow(10, m); + } + function accAdd(arg1, arg2) { + var r1 = 0; + var r2 = 0; + try { + r1 = arg1.toString().split('.')[1].length; + } catch (e) { + } + try { + r2 = arg2.toString().split('.')[1].length; + } catch (e) { + } + var m = Math.pow(10, Math.max(r1, r2)); + return (Math.round(arg1 * m) + Math.round(arg2 * m)) / m; + } + function accSub(arg1, arg2) { + return accAdd(arg1, -arg2); + } + return { + accDiv: accDiv, + accMul: accMul, + accAdd: accAdd, + accSub: accSub + }; +});define('echarts/util/shape/Icon', [ + 'require', + 'zrender/tool/util', + 'zrender/shape/Star', + 'zrender/shape/Heart', + 'zrender/shape/Droplet', + 'zrender/shape/Image', + 'zrender/shape/Base' +], function (require) { + var zrUtil = require('zrender/tool/util'); + function _iconMark(ctx, style) { + var x = style.x; + var y = style.y; + var dx = style.width / 16; + var dy = style.height / 16; + ctx.moveTo(x, y + style.height); + ctx.lineTo(x + 5 * dx, y + 14 * dy); + ctx.lineTo(x + style.width, y + 3 * dy); + ctx.lineTo(x + 13 * dx, y); + ctx.lineTo(x + 2 * dx, y + 11 * dy); + ctx.lineTo(x, y + style.height); + ctx.moveTo(x + 6 * dx, y + 10 * dy); + ctx.lineTo(x + 14 * dx, y + 2 * dy); + ctx.moveTo(x + 10 * dx, y + 13 * dy); + ctx.lineTo(x + style.width, y + 13 * dy); + ctx.moveTo(x + 13 * dx, y + 10 * dy); + ctx.lineTo(x + 13 * dx, y + style.height); + } + function _iconMarkUndo(ctx, style) { + var x = style.x; + var y = style.y; + var dx = style.width / 16; + var dy = style.height / 16; + ctx.moveTo(x, y + style.height); + ctx.lineTo(x + 5 * dx, y + 14 * dy); + ctx.lineTo(x + style.width, y + 3 * dy); + ctx.lineTo(x + 13 * dx, y); + ctx.lineTo(x + 2 * dx, y + 11 * dy); + ctx.lineTo(x, y + style.height); + ctx.moveTo(x + 6 * dx, y + 10 * dy); + ctx.lineTo(x + 14 * dx, y + 2 * dy); + ctx.moveTo(x + 10 * dx, y + 13 * dy); + ctx.lineTo(x + style.width, y + 13 * dy); + } + function _iconMarkClear(ctx, style) { + var x = style.x; + var y = style.y; + var dx = style.width / 16; + var dy = style.height / 16; + ctx.moveTo(x + 4 * dx, y + 15 * dy); + ctx.lineTo(x + 9 * dx, y + 13 * dy); + ctx.lineTo(x + 14 * dx, y + 8 * dy); + ctx.lineTo(x + 11 * dx, y + 5 * dy); + ctx.lineTo(x + 6 * dx, y + 10 * dy); + ctx.lineTo(x + 4 * dx, y + 15 * dy); + ctx.moveTo(x + 5 * dx, y); + ctx.lineTo(x + 11 * dx, y); + ctx.moveTo(x + 5 * dx, y + dy); + ctx.lineTo(x + 11 * dx, y + dy); + ctx.moveTo(x, y + 2 * dy); + ctx.lineTo(x + style.width, y + 2 * dy); + ctx.moveTo(x, y + 5 * dy); + ctx.lineTo(x + 3 * dx, y + style.height); + ctx.lineTo(x + 13 * dx, y + style.height); + ctx.lineTo(x + style.width, y + 5 * dy); + } + function _iconDataZoom(ctx, style) { + var x = style.x; + var y = style.y; + var dx = style.width / 16; + var dy = style.height / 16; + ctx.moveTo(x, y + 3 * dy); + ctx.lineTo(x + 6 * dx, y + 3 * dy); + ctx.moveTo(x + 3 * dx, y); + ctx.lineTo(x + 3 * dx, y + 6 * dy); + ctx.moveTo(x + 3 * dx, y + 8 * dy); + ctx.lineTo(x + 3 * dx, y + style.height); + ctx.lineTo(x + style.width, y + style.height); + ctx.lineTo(x + style.width, y + 3 * dy); + ctx.lineTo(x + 8 * dx, y + 3 * dy); + } + function _iconDataZoomReset(ctx, style) { + var x = style.x; + var y = style.y; + var dx = style.width / 16; + var dy = style.height / 16; + ctx.moveTo(x + 6 * dx, y); + ctx.lineTo(x + 2 * dx, y + 3 * dy); + ctx.lineTo(x + 6 * dx, y + 6 * dy); + ctx.moveTo(x + 2 * dx, y + 3 * dy); + ctx.lineTo(x + 14 * dx, y + 3 * dy); + ctx.lineTo(x + 14 * dx, y + 11 * dy); + ctx.moveTo(x + 2 * dx, y + 5 * dy); + ctx.lineTo(x + 2 * dx, y + 13 * dy); + ctx.lineTo(x + 14 * dx, y + 13 * dy); + ctx.moveTo(x + 10 * dx, y + 10 * dy); + ctx.lineTo(x + 14 * dx, y + 13 * dy); + ctx.lineTo(x + 10 * dx, y + style.height); + } + function _iconRestore(ctx, style) { + var x = style.x; + var y = style.y; + var dx = style.width / 16; + var dy = style.height / 16; + var r = style.width / 2; + ctx.lineWidth = 1.5; + ctx.arc(x + r, y + r, r - dx, 0, Math.PI * 2 / 3); + ctx.moveTo(x + 3 * dx, y + style.height); + ctx.lineTo(x + 0 * dx, y + 12 * dy); + ctx.lineTo(x + 5 * dx, y + 11 * dy); + ctx.moveTo(x, y + 8 * dy); + ctx.arc(x + r, y + r, r - dx, Math.PI, Math.PI * 5 / 3); + ctx.moveTo(x + 13 * dx, y); + ctx.lineTo(x + style.width, y + 4 * dy); + ctx.lineTo(x + 11 * dx, y + 5 * dy); + } + function _iconLineChart(ctx, style) { + var x = style.x; + var y = style.y; + var dx = style.width / 16; + var dy = style.height / 16; + ctx.moveTo(x, y); + ctx.lineTo(x, y + style.height); + ctx.lineTo(x + style.width, y + style.height); + ctx.moveTo(x + 2 * dx, y + 14 * dy); + ctx.lineTo(x + 7 * dx, y + 6 * dy); + ctx.lineTo(x + 11 * dx, y + 11 * dy); + ctx.lineTo(x + 15 * dx, y + 2 * dy); + } + function _iconBarChart(ctx, style) { + var x = style.x; + var y = style.y; + var dx = style.width / 16; + var dy = style.height / 16; + ctx.moveTo(x, y); + ctx.lineTo(x, y + style.height); + ctx.lineTo(x + style.width, y + style.height); + ctx.moveTo(x + 3 * dx, y + 14 * dy); + ctx.lineTo(x + 3 * dx, y + 6 * dy); + ctx.lineTo(x + 4 * dx, y + 6 * dy); + ctx.lineTo(x + 4 * dx, y + 14 * dy); + ctx.moveTo(x + 7 * dx, y + 14 * dy); + ctx.lineTo(x + 7 * dx, y + 2 * dy); + ctx.lineTo(x + 8 * dx, y + 2 * dy); + ctx.lineTo(x + 8 * dx, y + 14 * dy); + ctx.moveTo(x + 11 * dx, y + 14 * dy); + ctx.lineTo(x + 11 * dx, y + 9 * dy); + ctx.lineTo(x + 12 * dx, y + 9 * dy); + ctx.lineTo(x + 12 * dx, y + 14 * dy); + } + function _iconPieChart(ctx, style) { + var x = style.x; + var y = style.y; + var width = style.width - 2; + var height = style.height - 2; + var r = Math.min(width, height) / 2; + y += 2; + ctx.moveTo(x + r + 3, y + r - 3); + ctx.arc(x + r + 3, y + r - 3, r - 1, 0, -Math.PI / 2, true); + ctx.lineTo(x + r + 3, y + r - 3); + ctx.moveTo(x + r, y); + ctx.lineTo(x + r, y + r); + ctx.arc(x + r, y + r, r, -Math.PI / 2, Math.PI * 2, true); + ctx.lineTo(x + r, y + r); + ctx.lineWidth = 1.5; + } + function _iconFunnelChart(ctx, style) { + var x = style.x; + var y = style.y; + var dx = style.width / 16; + var dy = style.height / 16; + y -= dy; + ctx.moveTo(x + 1 * dx, y + 2 * dy); + ctx.lineTo(x + 15 * dx, y + 2 * dy); + ctx.lineTo(x + 14 * dx, y + 3 * dy); + ctx.lineTo(x + 2 * dx, y + 3 * dy); + ctx.moveTo(x + 3 * dx, y + 6 * dy); + ctx.lineTo(x + 13 * dx, y + 6 * dy); + ctx.lineTo(x + 12 * dx, y + 7 * dy); + ctx.lineTo(x + 4 * dx, y + 7 * dy); + ctx.moveTo(x + 5 * dx, y + 10 * dy); + ctx.lineTo(x + 11 * dx, y + 10 * dy); + ctx.lineTo(x + 10 * dx, y + 11 * dy); + ctx.lineTo(x + 6 * dx, y + 11 * dy); + ctx.moveTo(x + 7 * dx, y + 14 * dy); + ctx.lineTo(x + 9 * dx, y + 14 * dy); + ctx.lineTo(x + 8 * dx, y + 15 * dy); + ctx.lineTo(x + 7 * dx, y + 15 * dy); + } + function _iconForceChart(ctx, style) { + var x = style.x; + var y = style.y; + var width = style.width; + var height = style.height; + var dx = width / 16; + var dy = height / 16; + var r = Math.min(dx, dy) * 2; + ctx.moveTo(x + dx + r, y + dy + r); + ctx.arc(x + dx, y + dy, r, Math.PI / 4, Math.PI * 3); + ctx.lineTo(x + 7 * dx - r, y + 6 * dy - r); + ctx.arc(x + 7 * dx, y + 6 * dy, r, Math.PI / 4 * 5, Math.PI * 4); + ctx.arc(x + 7 * dx, y + 6 * dy, r / 2, Math.PI / 4 * 5, Math.PI * 4); + ctx.moveTo(x + 7 * dx - r / 2, y + 6 * dy + r); + ctx.lineTo(x + dx + r, y + 14 * dy - r); + ctx.arc(x + dx, y + 14 * dy, r, -Math.PI / 4, Math.PI * 2); + ctx.moveTo(x + 7 * dx + r / 2, y + 6 * dy); + ctx.lineTo(x + 14 * dx - r, y + 10 * dy - r / 2); + ctx.moveTo(x + 16 * dx, y + 10 * dy); + ctx.arc(x + 14 * dx, y + 10 * dy, r, 0, Math.PI * 3); + ctx.lineWidth = 1.5; + } + function _iconChordChart(ctx, style) { + var x = style.x; + var y = style.y; + var width = style.width; + var height = style.height; + var r = Math.min(width, height) / 2; + ctx.moveTo(x + width, y + height / 2); + ctx.arc(x + r, y + r, r, 0, Math.PI * 2); + ctx.arc(x + r, y, r, Math.PI / 4, Math.PI / 5 * 4); + ctx.arc(x, y + r, r, -Math.PI / 3, Math.PI / 3); + ctx.arc(x + width, y + height, r, Math.PI, Math.PI / 2 * 3); + ctx.lineWidth = 1.5; + } + function _iconStackChart(ctx, style) { + var x = style.x; + var y = style.y; + var width = style.width; + var height = style.height; + var dy = Math.round(height / 3); + var delta = Math.round((dy - 2) / 2); + var len = 3; + while (len--) { + ctx.rect(x, y + dy * len + delta, width, 2); + } + } + function _iconTiledChart(ctx, style) { + var x = style.x; + var y = style.y; + var width = style.width; + var height = style.height; + var dx = Math.round(width / 3); + var delta = Math.round((dx - 2) / 2); + var len = 3; + while (len--) { + ctx.rect(x + dx * len + delta, y, 2, height); + } + } + function _iconDataView(ctx, style) { + var x = style.x; + var y = style.y; + var dx = style.width / 16; + ctx.moveTo(x + dx, y); + ctx.lineTo(x + dx, y + style.height); + ctx.lineTo(x + 15 * dx, y + style.height); + ctx.lineTo(x + 15 * dx, y); + ctx.lineTo(x + dx, y); + ctx.moveTo(x + 3 * dx, y + 3 * dx); + ctx.lineTo(x + 13 * dx, y + 3 * dx); + ctx.moveTo(x + 3 * dx, y + 6 * dx); + ctx.lineTo(x + 13 * dx, y + 6 * dx); + ctx.moveTo(x + 3 * dx, y + 9 * dx); + ctx.lineTo(x + 13 * dx, y + 9 * dx); + ctx.moveTo(x + 3 * dx, y + 12 * dx); + ctx.lineTo(x + 9 * dx, y + 12 * dx); + } + function _iconSave(ctx, style) { + var x = style.x; + var y = style.y; + var dx = style.width / 16; + var dy = style.height / 16; + ctx.moveTo(x, y); + ctx.lineTo(x, y + style.height); + ctx.lineTo(x + style.width, y + style.height); + ctx.lineTo(x + style.width, y); + ctx.lineTo(x, y); + ctx.moveTo(x + 4 * dx, y); + ctx.lineTo(x + 4 * dx, y + 8 * dy); + ctx.lineTo(x + 12 * dx, y + 8 * dy); + ctx.lineTo(x + 12 * dx, y); + ctx.moveTo(x + 6 * dx, y + 11 * dy); + ctx.lineTo(x + 6 * dx, y + 13 * dy); + ctx.lineTo(x + 10 * dx, y + 13 * dy); + ctx.lineTo(x + 10 * dx, y + 11 * dy); + ctx.lineTo(x + 6 * dx, y + 11 * dy); + } + function _iconCross(ctx, style) { + var x = style.x; + var y = style.y; + var width = style.width; + var height = style.height; + ctx.moveTo(x, y + height / 2); + ctx.lineTo(x + width, y + height / 2); + ctx.moveTo(x + width / 2, y); + ctx.lineTo(x + width / 2, y + height); + } + function _iconCircle(ctx, style) { + var width = style.width / 2; + var height = style.height / 2; + var r = Math.min(width, height); + ctx.moveTo(style.x + width + r, style.y + height); + ctx.arc(style.x + width, style.y + height, r, 0, Math.PI * 2); + ctx.closePath(); + } + function _iconRectangle(ctx, style) { + ctx.rect(style.x, style.y, style.width, style.height); + ctx.closePath(); + } + function _iconTriangle(ctx, style) { + var width = style.width / 2; + var height = style.height / 2; + var x = style.x + width; + var y = style.y + height; + var symbolSize = Math.min(width, height); + ctx.moveTo(x, y - symbolSize); + ctx.lineTo(x + symbolSize, y + symbolSize); + ctx.lineTo(x - symbolSize, y + symbolSize); + ctx.lineTo(x, y - symbolSize); + ctx.closePath(); + } + function _iconDiamond(ctx, style) { + var width = style.width / 2; + var height = style.height / 2; + var x = style.x + width; + var y = style.y + height; + var symbolSize = Math.min(width, height); + ctx.moveTo(x, y - symbolSize); + ctx.lineTo(x + symbolSize, y); + ctx.lineTo(x, y + symbolSize); + ctx.lineTo(x - symbolSize, y); + ctx.lineTo(x, y - symbolSize); + ctx.closePath(); + } + function _iconArrow(ctx, style) { + var x = style.x; + var y = style.y; + var dx = style.width / 16; + ctx.moveTo(x + 8 * dx, y); + ctx.lineTo(x + dx, y + style.height); + ctx.lineTo(x + 8 * dx, y + style.height / 4 * 3); + ctx.lineTo(x + 15 * dx, y + style.height); + ctx.lineTo(x + 8 * dx, y); + ctx.closePath(); + } + function _iconStar(ctx, style) { + var StarShape = require('zrender/shape/Star'); + var width = style.width / 2; + var height = style.height / 2; + StarShape.prototype.buildPath(ctx, { + x: style.x + width, + y: style.y + height, + r: Math.min(width, height), + n: style.n || 5 + }); + } + function _iconHeart(ctx, style) { + var HeartShape = require('zrender/shape/Heart'); + HeartShape.prototype.buildPath(ctx, { + x: style.x + style.width / 2, + y: style.y + style.height * 0.2, + a: style.width / 2, + b: style.height * 0.8 + }); + } + function _iconDroplet(ctx, style) { + var DropletShape = require('zrender/shape/Droplet'); + DropletShape.prototype.buildPath(ctx, { + x: style.x + style.width * 0.5, + y: style.y + style.height * 0.5, + a: style.width * 0.5, + b: style.height * 0.8 + }); + } + function _iconPin(ctx, style) { + var x = style.x; + var y = style.y - style.height / 2 * 1.5; + var width = style.width / 2; + var height = style.height / 2; + var r = Math.min(width, height); + ctx.arc(x + width, y + height, r, Math.PI / 5 * 4, Math.PI / 5); + ctx.lineTo(x + width, y + height + r * 1.5); + ctx.closePath(); + } + function _iconImage(ctx, style, refreshNextFrame) { + var ImageShape = require('zrender/shape/Image'); + this._imageShape = this._imageShape || new ImageShape({ style: {} }); + for (var name in style) { + this._imageShape.style[name] = style[name]; + } + this._imageShape.brush(ctx, false, refreshNextFrame); + } + var Base = require('zrender/shape/Base'); + function Icon(options) { + Base.call(this, options); + } + Icon.prototype = { + type: 'icon', + iconLibrary: { + mark: _iconMark, + markUndo: _iconMarkUndo, + markClear: _iconMarkClear, + dataZoom: _iconDataZoom, + dataZoomReset: _iconDataZoomReset, + restore: _iconRestore, + lineChart: _iconLineChart, + barChart: _iconBarChart, + pieChart: _iconPieChart, + funnelChart: _iconFunnelChart, + forceChart: _iconForceChart, + chordChart: _iconChordChart, + stackChart: _iconStackChart, + tiledChart: _iconTiledChart, + dataView: _iconDataView, + saveAsImage: _iconSave, + cross: _iconCross, + circle: _iconCircle, + rectangle: _iconRectangle, + triangle: _iconTriangle, + diamond: _iconDiamond, + arrow: _iconArrow, + star: _iconStar, + heart: _iconHeart, + droplet: _iconDroplet, + pin: _iconPin, + image: _iconImage + }, + brush: function (ctx, isHighlight, refreshNextFrame) { + var style = isHighlight ? this.highlightStyle : this.style; + style = style || {}; + var iconType = style.iconType || this.style.iconType; + if (iconType === 'image') { + var ImageShape = require('zrender/shape/Image'); + ImageShape.prototype.brush.call(this, ctx, isHighlight, refreshNextFrame); + } else { + var style = this.beforeBrush(ctx, isHighlight); + ctx.beginPath(); + this.buildPath(ctx, style, refreshNextFrame); + switch (style.brushType) { + case 'both': + ctx.fill(); + case 'stroke': + style.lineWidth > 0 && ctx.stroke(); + break; + default: + ctx.fill(); + } + this.drawText(ctx, style, this.style); + this.afterBrush(ctx); + } + }, + buildPath: function (ctx, style, refreshNextFrame) { + if (this.iconLibrary[style.iconType]) { + this.iconLibrary[style.iconType].call(this, ctx, style, refreshNextFrame); + } else { + ctx.moveTo(style.x, style.y); + ctx.lineTo(style.x + style.width, style.y); + ctx.lineTo(style.x + style.width, style.y + style.height); + ctx.lineTo(style.x, style.y + style.height); + ctx.lineTo(style.x, style.y); + ctx.closePath(); + } + return; + }, + getRect: function (style) { + if (style.__rect) { + return style.__rect; + } + style.__rect = { + x: Math.round(style.x), + y: Math.round(style.y - (style.iconType == 'pin' ? style.height / 2 * 1.5 : 0)), + width: style.width, + height: style.height * (style.iconType === 'pin' ? 1.25 : 1) + }; + return style.__rect; + }, + isCover: function (x, y) { + var originPos = this.transformCoordToLocal(x, y); + x = originPos[0]; + y = originPos[1]; + var rect = this.style.__rect; + if (!rect) { + rect = this.style.__rect = this.getRect(this.style); + } + var delta = rect.height < 8 || rect.width < 8 ? 4 : 0; + return x >= rect.x - delta && x <= rect.x + rect.width + delta && y >= rect.y - delta && y <= rect.y + rect.height + delta; + } + }; + zrUtil.inherits(Icon, Base); + return Icon; +});define('echarts/util/shape/MarkLine', [ + 'require', + 'zrender/shape/Base', + './Icon', + 'zrender/shape/Line', + 'zrender/shape/BezierCurve', + 'zrender/tool/area', + 'zrender/shape/util/dashedLineTo', + 'zrender/tool/util', + 'zrender/tool/curve' +], function (require) { + var Base = require('zrender/shape/Base'); + var IconShape = require('./Icon'); + var LineShape = require('zrender/shape/Line'); + var lineInstance = new LineShape({}); + var CurveShape = require('zrender/shape/BezierCurve'); + var curveInstance = new CurveShape({}); + var area = require('zrender/tool/area'); + var dashedLineTo = require('zrender/shape/util/dashedLineTo'); + var zrUtil = require('zrender/tool/util'); + var curveTool = require('zrender/tool/curve'); + function MarkLine(options) { + Base.call(this, options); + if (this.style.curveness > 0) { + this.updatePoints(this.style); + } + if (this.highlightStyle.curveness > 0) { + this.updatePoints(this.highlightStyle); + } + } + MarkLine.prototype = { + type: 'mark-line', + brush: function (ctx, isHighlight) { + var style = this.style; + if (isHighlight) { + style = this.getHighlightStyle(style, this.highlightStyle || {}); + } + ctx.save(); + this.setContext(ctx, style); + this.setTransform(ctx); + ctx.save(); + ctx.beginPath(); + this.buildPath(ctx, style); + ctx.stroke(); + ctx.restore(); + this.brushSymbol(ctx, style, 0); + this.brushSymbol(ctx, style, 1); + this.drawText(ctx, style, this.style); + ctx.restore(); + }, + buildPath: function (ctx, style) { + var lineType = style.lineType || 'solid'; + ctx.moveTo(style.xStart, style.yStart); + if (style.curveness > 0) { + var lineDash = null; + switch (lineType) { + case 'dashed': + lineDash = [ + 5, + 5 + ]; + break; + case 'dotted': + lineDash = [ + 1, + 1 + ]; + break; + } + if (lineDash && ctx.setLineDash) { + ctx.setLineDash(lineDash); + } + ctx.quadraticCurveTo(style.cpX1, style.cpY1, style.xEnd, style.yEnd); + } else { + if (lineType == 'solid') { + ctx.lineTo(style.xEnd, style.yEnd); + } else { + var dashLength = (style.lineWidth || 1) * (style.lineType == 'dashed' ? 5 : 1); + dashedLineTo(ctx, style.xStart, style.yStart, style.xEnd, style.yEnd, dashLength); + } + } + }, + updatePoints: function (style) { + var curveness = style.curveness || 0; + var inv = 1; + var x0 = style.xStart; + var y0 = style.yStart; + var x2 = style.xEnd; + var y2 = style.yEnd; + var x1 = (x0 + x2) / 2 - inv * (y0 - y2) * curveness; + var y1 = (y0 + y2) / 2 - inv * (x2 - x0) * curveness; + style.cpX1 = x1; + style.cpY1 = y1; + }, + brushSymbol: function (ctx, style, idx) { + if (style.symbol[idx] == 'none') { + return; + } + ctx.save(); + ctx.beginPath(); + ctx.lineWidth = style.symbolBorder; + ctx.strokeStyle = style.symbolBorderColor; + var symbol = style.symbol[idx].replace('empty', '').toLowerCase(); + if (style.symbol[idx].match('empty')) { + ctx.fillStyle = '#fff'; + } + var x0 = style.xStart; + var y0 = style.yStart; + var x2 = style.xEnd; + var y2 = style.yEnd; + var x = idx === 0 ? x0 : x2; + var y = idx === 0 ? y0 : y2; + var curveness = style.curveness || 0; + var rotate = style.symbolRotate[idx] != null ? style.symbolRotate[idx] - 0 : 0; + rotate = rotate / 180 * Math.PI; + if (symbol == 'arrow' && rotate === 0) { + if (curveness === 0) { + var sign = idx === 0 ? -1 : 1; + rotate = Math.PI / 2 + Math.atan2(sign * (y2 - y0), sign * (x2 - x0)); + } else { + var x1 = style.cpX1; + var y1 = style.cpY1; + var quadraticDerivativeAt = curveTool.quadraticDerivativeAt; + var dx = quadraticDerivativeAt(x0, x1, x2, idx); + var dy = quadraticDerivativeAt(y0, y1, y2, idx); + rotate = Math.PI / 2 + Math.atan2(dy, dx); + } + } + ctx.translate(x, y); + if (rotate !== 0) { + ctx.rotate(rotate); + } + var symbolSize = style.symbolSize[idx]; + IconShape.prototype.buildPath(ctx, { + x: -symbolSize, + y: -symbolSize, + width: symbolSize * 2, + height: symbolSize * 2, + iconType: symbol + }); + ctx.closePath(); + ctx.fill(); + ctx.stroke(); + ctx.restore(); + }, + getRect: function (style) { + style.curveness > 0 ? curveInstance.getRect(style) : lineInstance.getRect(style); + return style.__rect; + }, + isCover: function (x, y) { + var originPos = this.transformCoordToLocal(x, y); + x = originPos[0]; + y = originPos[1]; + if (this.isCoverRect(x, y)) { + return this.style.curveness > 0 ? area.isInside(curveInstance, this.style, x, y) : area.isInside(lineInstance, this.style, x, y); + } + return false; + } + }; + zrUtil.inherits(MarkLine, Base); + return MarkLine; +});define('echarts/util/shape/Symbol', [ + 'require', + 'zrender/shape/Base', + 'zrender/shape/Polygon', + 'zrender/tool/util', + './normalIsCover' +], function (require) { + var Base = require('zrender/shape/Base'); + var PolygonShape = require('zrender/shape/Polygon'); + var polygonInstance = new PolygonShape({}); + var zrUtil = require('zrender/tool/util'); + function Symbol(options) { + Base.call(this, options); + } + Symbol.prototype = { + type: 'symbol', + buildPath: function (ctx, style) { + var pointList = style.pointList; + var len = pointList.length; + if (len === 0) { + return; + } + var subSize = 10000; + var subSetLength = Math.ceil(len / subSize); + var sub; + var subLen; + var isArray = pointList[0] instanceof Array; + var size = style.size ? style.size : 2; + var curSize = size; + var halfSize = size / 2; + var PI2 = Math.PI * 2; + var percent; + var x; + var y; + for (var j = 0; j < subSetLength; j++) { + ctx.beginPath(); + sub = j * subSize; + subLen = sub + subSize; + subLen = subLen > len ? len : subLen; + for (var i = sub; i < subLen; i++) { + if (style.random) { + percent = style['randomMap' + i % 20] / 100; + curSize = size * percent * percent; + halfSize = curSize / 2; + } + if (isArray) { + x = pointList[i][0]; + y = pointList[i][1]; + } else { + x = pointList[i].x; + y = pointList[i].y; + } + if (curSize < 3) { + ctx.rect(x - halfSize, y - halfSize, curSize, curSize); + } else { + switch (style.iconType) { + case 'circle': + ctx.moveTo(x, y); + ctx.arc(x, y, halfSize, 0, PI2, true); + break; + case 'diamond': + ctx.moveTo(x, y - halfSize); + ctx.lineTo(x + halfSize / 3, y - halfSize / 3); + ctx.lineTo(x + halfSize, y); + ctx.lineTo(x + halfSize / 3, y + halfSize / 3); + ctx.lineTo(x, y + halfSize); + ctx.lineTo(x - halfSize / 3, y + halfSize / 3); + ctx.lineTo(x - halfSize, y); + ctx.lineTo(x - halfSize / 3, y - halfSize / 3); + ctx.lineTo(x, y - halfSize); + break; + default: + ctx.rect(x - halfSize, y - halfSize, curSize, curSize); + } + } + } + ctx.closePath(); + if (j < subSetLength - 1) { + switch (style.brushType) { + case 'both': + ctx.fill(); + style.lineWidth > 0 && ctx.stroke(); + break; + case 'stroke': + style.lineWidth > 0 && ctx.stroke(); + break; + default: + ctx.fill(); + } + } + } + }, + getRect: function (style) { + return style.__rect || polygonInstance.getRect(style); + }, + isCover: require('./normalIsCover') + }; + zrUtil.inherits(Symbol, Base); + return Symbol; +});define('zrender/shape/Polyline', [ + 'require', + './Base', + './util/smoothSpline', + './util/smoothBezier', + './util/dashedLineTo', + './Polygon', + '../tool/util' +], function (require) { + var Base = require('./Base'); + var smoothSpline = require('./util/smoothSpline'); + var smoothBezier = require('./util/smoothBezier'); + var dashedLineTo = require('./util/dashedLineTo'); + var Polyline = function (options) { + this.brushTypeOnly = 'stroke'; + this.textPosition = 'end'; + Base.call(this, options); + }; + Polyline.prototype = { + type: 'polyline', + buildPath: function (ctx, style) { + var pointList = style.pointList; + if (pointList.length < 2) { + return; + } + var len = Math.min(style.pointList.length, Math.round(style.pointListLength || style.pointList.length)); + if (style.smooth && style.smooth !== 'spline') { + if (!style.controlPointList) { + this.updateControlPoints(style); + } + var controlPointList = style.controlPointList; + ctx.moveTo(pointList[0][0], pointList[0][1]); + var cp1; + var cp2; + var p; + for (var i = 0; i < len - 1; i++) { + cp1 = controlPointList[i * 2]; + cp2 = controlPointList[i * 2 + 1]; + p = pointList[i + 1]; + ctx.bezierCurveTo(cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]); + } + } else { + if (style.smooth === 'spline') { + pointList = smoothSpline(pointList); + len = pointList.length; + } + if (!style.lineType || style.lineType == 'solid') { + ctx.moveTo(pointList[0][0], pointList[0][1]); + for (var i = 1; i < len; i++) { + ctx.lineTo(pointList[i][0], pointList[i][1]); + } + } else if (style.lineType == 'dashed' || style.lineType == 'dotted') { + var dashLength = (style.lineWidth || 1) * (style.lineType == 'dashed' ? 5 : 1); + ctx.moveTo(pointList[0][0], pointList[0][1]); + for (var i = 1; i < len; i++) { + dashedLineTo(ctx, pointList[i - 1][0], pointList[i - 1][1], pointList[i][0], pointList[i][1], dashLength); + } + } + } + return; + }, + updateControlPoints: function (style) { + style.controlPointList = smoothBezier(style.pointList, style.smooth, false, style.smoothConstraint); + }, + getRect: function (style) { + return require('./Polygon').prototype.getRect(style); + } + }; + require('../tool/util').inherits(Polyline, Base); + return Polyline; +});define('zrender/shape/ShapeBundle', [ + 'require', + './Base', + '../tool/util' +], function (require) { + var Base = require('./Base'); + var ShapeBundle = function (options) { + Base.call(this, options); + }; + ShapeBundle.prototype = { + constructor: ShapeBundle, + type: 'shape-bundle', + brush: function (ctx, isHighlight) { + var style = this.beforeBrush(ctx, isHighlight); + ctx.beginPath(); + for (var i = 0; i < style.shapeList.length; i++) { + var subShape = style.shapeList[i]; + var subShapeStyle = subShape.style; + if (isHighlight) { + subShapeStyle = subShape.getHighlightStyle(subShapeStyle, subShape.highlightStyle || {}, subShape.brushTypeOnly); + } + subShape.buildPath(ctx, subShapeStyle); + } + switch (style.brushType) { + case 'both': + ctx.fill(); + case 'stroke': + style.lineWidth > 0 && ctx.stroke(); + break; + default: + ctx.fill(); + } + this.drawText(ctx, style, this.style); + this.afterBrush(ctx); + }, + getRect: function (style) { + if (style.__rect) { + return style.__rect; + } + var minX = Infinity; + var maxX = -Infinity; + var minY = Infinity; + var maxY = -Infinity; + for (var i = 0; i < style.shapeList.length; i++) { + var subShape = style.shapeList[i]; + var subRect = subShape.getRect(subShape.style); + var minX = Math.min(subRect.x, minX); + var minY = Math.min(subRect.y, minY); + var maxX = Math.max(subRect.x + subRect.width, maxX); + var maxY = Math.max(subRect.y + subRect.height, maxY); + } + style.__rect = { + x: minX, + y: minY, + width: maxX - minX, + height: maxY - minY + }; + return style.__rect; + }, + isCover: function (x, y) { + var originPos = this.transformCoordToLocal(x, y); + x = originPos[0]; + y = originPos[1]; + if (this.isCoverRect(x, y)) { + for (var i = 0; i < this.style.shapeList.length; i++) { + var subShape = this.style.shapeList[i]; + if (subShape.isCover(x, y)) { + return true; + } + } + } + return false; + } + }; + require('../tool/util').inherits(ShapeBundle, Base); + return ShapeBundle; +});define('echarts/util/ecAnimation', [ + 'require', + 'zrender/tool/util', + 'zrender/tool/curve', + 'zrender/shape/Polygon' +], function (require) { + var zrUtil = require('zrender/tool/util'); + var curveTool = require('zrender/tool/curve'); + function pointList(zr, oldShape, newShape, duration, easing) { + var newPointList = newShape.style.pointList; + var newPointListLen = newPointList.length; + var oldPointList; + if (!oldShape) { + oldPointList = []; + if (newShape._orient != 'vertical') { + var y = newPointList[0][1]; + for (var i = 0; i < newPointListLen; i++) { + oldPointList[i] = [ + newPointList[i][0], + y + ]; + } + } else { + var x = newPointList[0][0]; + for (var i = 0; i < newPointListLen; i++) { + oldPointList[i] = [ + x, + newPointList[i][1] + ]; + } + } + if (newShape.type == 'half-smooth-polygon') { + oldPointList[newPointListLen - 1] = zrUtil.clone(newPointList[newPointListLen - 1]); + oldPointList[newPointListLen - 2] = zrUtil.clone(newPointList[newPointListLen - 2]); + } + oldShape = { style: { pointList: oldPointList } }; + } + oldPointList = oldShape.style.pointList; + var oldPointListLen = oldPointList.length; + if (oldPointListLen == newPointListLen) { + newShape.style.pointList = oldPointList; + } else if (oldPointListLen < newPointListLen) { + newShape.style.pointList = oldPointList.concat(newPointList.slice(oldPointListLen)); + } else { + newShape.style.pointList = oldPointList.slice(0, newPointListLen); + } + zr.addShape(newShape); + newShape.__animating = true; + zr.animate(newShape.id, 'style').when(duration, { pointList: newPointList }).during(function () { + if (newShape.updateControlPoints) { + newShape.updateControlPoints(newShape.style); + } + }).done(function () { + newShape.__animating = false; + }).start(easing); + } + function cloneStyle(target, source) { + var len = arguments.length; + for (var i = 2; i < len; i++) { + var prop = arguments[i]; + target.style[prop] = source.style[prop]; + } + } + function rectangle(zr, oldShape, newShape, duration, easing) { + var newShapeStyle = newShape.style; + if (!oldShape) { + oldShape = { + position: newShape.position, + style: { + x: newShapeStyle.x, + y: newShape._orient == 'vertical' ? newShapeStyle.y + newShapeStyle.height : newShapeStyle.y, + width: newShape._orient == 'vertical' ? newShapeStyle.width : 0, + height: newShape._orient != 'vertical' ? newShapeStyle.height : 0 + } + }; + } + var newX = newShapeStyle.x; + var newY = newShapeStyle.y; + var newWidth = newShapeStyle.width; + var newHeight = newShapeStyle.height; + var newPosition = [ + newShape.position[0], + newShape.position[1] + ]; + cloneStyle(newShape, oldShape, 'x', 'y', 'width', 'height'); + newShape.position = oldShape.position; + zr.addShape(newShape); + if (newPosition[0] != oldShape.position[0] || newPosition[1] != oldShape.position[1]) { + zr.animate(newShape.id, '').when(duration, { position: newPosition }).start(easing); + } + newShape.__animating = true; + zr.animate(newShape.id, 'style').when(duration, { + x: newX, + y: newY, + width: newWidth, + height: newHeight + }).done(function () { + newShape.__animating = false; + }).start(easing); + } + function candle(zr, oldShape, newShape, duration, easing) { + if (!oldShape) { + var y = newShape.style.y; + oldShape = { + style: { + y: [ + y[0], + y[0], + y[0], + y[0] + ] + } + }; + } + var newY = newShape.style.y; + newShape.style.y = oldShape.style.y; + zr.addShape(newShape); + newShape.__animating = true; + zr.animate(newShape.id, 'style').when(duration, { y: newY }).done(function () { + newShape.__animating = false; + }).start(easing); + } + function ring(zr, oldShape, newShape, duration, easing) { + var x = newShape.style.x; + var y = newShape.style.y; + var r0 = newShape.style.r0; + var r = newShape.style.r; + newShape.__animating = true; + if (newShape._animationAdd != 'r') { + newShape.style.r0 = 0; + newShape.style.r = 0; + newShape.rotation = [ + Math.PI * 2, + x, + y + ]; + zr.addShape(newShape); + zr.animate(newShape.id, 'style').when(duration, { + r0: r0, + r: r + }).done(function () { + newShape.__animating = false; + }).start(easing); + zr.animate(newShape.id, '').when(duration, { + rotation: [ + 0, + x, + y + ] + }).start(easing); + } else { + newShape.style.r0 = newShape.style.r; + zr.addShape(newShape); + zr.animate(newShape.id, 'style').when(duration, { r0: r0 }).done(function () { + newShape.__animating = false; + }).start(easing); + } + } + function sector(zr, oldShape, newShape, duration, easing) { + if (!oldShape) { + if (newShape._animationAdd != 'r') { + oldShape = { + style: { + startAngle: newShape.style.startAngle, + endAngle: newShape.style.startAngle + } + }; + } else { + oldShape = { style: { r0: newShape.style.r } }; + } + } + var startAngle = newShape.style.startAngle; + var endAngle = newShape.style.endAngle; + cloneStyle(newShape, oldShape, 'startAngle', 'endAngle'); + zr.addShape(newShape); + newShape.__animating = true; + zr.animate(newShape.id, 'style').when(duration, { + startAngle: startAngle, + endAngle: endAngle + }).done(function () { + newShape.__animating = false; + }).start(easing); + } + function text(zr, oldShape, newShape, duration, easing) { + if (!oldShape) { + oldShape = { + style: { + x: newShape.style.textAlign == 'left' ? newShape.style.x + 100 : newShape.style.x - 100, + y: newShape.style.y + } + }; + } + var x = newShape.style.x; + var y = newShape.style.y; + cloneStyle(newShape, oldShape, 'x', 'y'); + zr.addShape(newShape); + newShape.__animating = true; + zr.animate(newShape.id, 'style').when(duration, { + x: x, + y: y + }).done(function () { + newShape.__animating = false; + }).start(easing); + } + function polygon(zr, oldShape, newShape, duration, easing) { + var rect = require('zrender/shape/Polygon').prototype.getRect(newShape.style); + var x = rect.x + rect.width / 2; + var y = rect.y + rect.height / 2; + newShape.scale = [ + 0.1, + 0.1, + x, + y + ]; + zr.addShape(newShape); + newShape.__animating = true; + zr.animate(newShape.id, '').when(duration, { + scale: [ + 1, + 1, + x, + y + ] + }).done(function () { + newShape.__animating = false; + }).start(easing); + } + function ribbon(zr, oldShape, newShape, duration, easing) { + if (!oldShape) { + oldShape = { + style: { + source0: 0, + source1: newShape.style.source1 > 0 ? 360 : -360, + target0: 0, + target1: newShape.style.target1 > 0 ? 360 : -360 + } + }; + } + var source0 = newShape.style.source0; + var source1 = newShape.style.source1; + var target0 = newShape.style.target0; + var target1 = newShape.style.target1; + if (oldShape.style) { + cloneStyle(newShape, oldShape, 'source0', 'source1', 'target0', 'target1'); + } + zr.addShape(newShape); + newShape.__animating = true; + zr.animate(newShape.id, 'style').when(duration, { + source0: source0, + source1: source1, + target0: target0, + target1: target1 + }).done(function () { + newShape.__animating = false; + }).start(easing); + } + function gaugePointer(zr, oldShape, newShape, duration, easing) { + if (!oldShape) { + oldShape = { style: { angle: newShape.style.startAngle } }; + } + var angle = newShape.style.angle; + newShape.style.angle = oldShape.style.angle; + zr.addShape(newShape); + newShape.__animating = true; + zr.animate(newShape.id, 'style').when(duration, { angle: angle }).done(function () { + newShape.__animating = false; + }).start(easing); + } + function icon(zr, oldShape, newShape, duration, easing, delay) { + newShape.style._x = newShape.style.x; + newShape.style._y = newShape.style.y; + newShape.style._width = newShape.style.width; + newShape.style._height = newShape.style.height; + if (!oldShape) { + var x = newShape._x || 0; + var y = newShape._y || 0; + newShape.scale = [ + 0.01, + 0.01, + x, + y + ]; + zr.addShape(newShape); + newShape.__animating = true; + zr.animate(newShape.id, '').delay(delay).when(duration, { + scale: [ + 1, + 1, + x, + y + ] + }).done(function () { + newShape.__animating = false; + }).start(easing || 'QuinticOut'); + } else { + rectangle(zr, oldShape, newShape, duration, easing); + } + } + function line(zr, oldShape, newShape, duration, easing) { + if (!oldShape) { + oldShape = { + style: { + xStart: newShape.style.xStart, + yStart: newShape.style.yStart, + xEnd: newShape.style.xStart, + yEnd: newShape.style.yStart + } + }; + } + var xStart = newShape.style.xStart; + var xEnd = newShape.style.xEnd; + var yStart = newShape.style.yStart; + var yEnd = newShape.style.yEnd; + cloneStyle(newShape, oldShape, 'xStart', 'xEnd', 'yStart', 'yEnd'); + zr.addShape(newShape); + newShape.__animating = true; + zr.animate(newShape.id, 'style').when(duration, { + xStart: xStart, + xEnd: xEnd, + yStart: yStart, + yEnd: yEnd + }).done(function () { + newShape.__animating = false; + }).start(easing); + } + function markline(zr, oldShape, newShape, duration, easing) { + easing = easing || 'QuinticOut'; + newShape.__animating = true; + zr.addShape(newShape); + var newShapeStyle = newShape.style; + var animationDone = function () { + newShape.__animating = false; + }; + var x0 = newShapeStyle.xStart; + var y0 = newShapeStyle.yStart; + var x2 = newShapeStyle.xEnd; + var y2 = newShapeStyle.yEnd; + if (newShapeStyle.curveness > 0) { + newShape.updatePoints(newShapeStyle); + var obj = { p: 0 }; + var x1 = newShapeStyle.cpX1; + var y1 = newShapeStyle.cpY1; + var newXArr = []; + var newYArr = []; + var subdivide = curveTool.quadraticSubdivide; + zr.animation.animate(obj).when(duration, { p: 1 }).during(function () { + subdivide(x0, x1, x2, obj.p, newXArr); + subdivide(y0, y1, y2, obj.p, newYArr); + newShapeStyle.cpX1 = newXArr[1]; + newShapeStyle.cpY1 = newYArr[1]; + newShapeStyle.xEnd = newXArr[2]; + newShapeStyle.yEnd = newYArr[2]; + zr.modShape(newShape); + }).done(animationDone).start(easing); + } else { + zr.animate(newShape.id, 'style').when(0, { + xEnd: x0, + yEnd: y0 + }).when(duration, { + xEnd: x2, + yEnd: y2 + }).done(animationDone).start(easing); + } + } + return { + pointList: pointList, + rectangle: rectangle, + candle: candle, + ring: ring, + sector: sector, + text: text, + polygon: polygon, + ribbon: ribbon, + gaugePointer: gaugePointer, + icon: icon, + line: line, + markline: markline + }; +});define('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 (require) { + var ecData = require('../util/ecData'); + var CircleShape = require('zrender/shape/Circle'); + var ImageShape = require('zrender/shape/Image'); + var curveTool = require('zrender/tool/curve'); + var IconShape = require('../util/shape/Icon'); + var SymbolShape = require('../util/shape/Symbol'); + var ShapeBundle = require('zrender/shape/ShapeBundle'); + var Polyline = require('zrender/shape/Polyline'); + var vec2 = require('zrender/tool/vector'); + var canvasSupported = require('zrender/tool/env').canvasSupported; + function point(zr, effectList, shape, zlevel) { + var effect = shape.effect; + var color = effect.color || shape.style.strokeColor || shape.style.color; + var shadowColor = effect.shadowColor || color; + var size = effect.scaleSize; + var distance = effect.bounceDistance; + var shadowBlur = typeof effect.shadowBlur != 'undefined' ? effect.shadowBlur : size; + var effectShape; + if (shape.type !== 'image') { + effectShape = new IconShape({ + zlevel: zlevel, + style: { + brushType: 'stroke', + iconType: shape.style.iconType != 'droplet' ? shape.style.iconType : 'circle', + x: shadowBlur + 1, + y: shadowBlur + 1, + n: shape.style.n, + width: shape.style._width * size, + height: shape.style._height * size, + lineWidth: 1, + strokeColor: color, + shadowColor: shadowColor, + shadowBlur: shadowBlur + }, + draggable: false, + hoverable: false + }); + if (shape.style.iconType == 'pin') { + effectShape.style.y += effectShape.style.height / 2 * 1.5; + } + if (canvasSupported) { + effectShape.style.image = zr.shapeToImage(effectShape, effectShape.style.width + shadowBlur * 2 + 2, effectShape.style.height + shadowBlur * 2 + 2).style.image; + effectShape = new ImageShape({ + zlevel: effectShape.zlevel, + style: effectShape.style, + draggable: false, + hoverable: false + }); + } + } else { + effectShape = new ImageShape({ + zlevel: zlevel, + style: shape.style, + draggable: false, + hoverable: false + }); + } + ecData.clone(shape, effectShape); + effectShape.position = shape.position; + effectList.push(effectShape); + zr.addShape(effectShape); + var devicePixelRatio = shape.type !== 'image' ? window.devicePixelRatio || 1 : 1; + var offset = (effectShape.style.width / devicePixelRatio - shape.style._width) / 2; + effectShape.style.x = shape.style._x - offset; + effectShape.style.y = shape.style._y - offset; + if (shape.style.iconType == 'pin') { + effectShape.style.y -= shape.style.height / 2 * 1.5; + } + var duration = (effect.period + Math.random() * 10) * 100; + zr.modShape(shape.id, { invisible: true }); + var centerX = effectShape.style.x + effectShape.style.width / 2 / devicePixelRatio; + var centerY = effectShape.style.y + effectShape.style.height / 2 / devicePixelRatio; + if (effect.type === 'scale') { + zr.modShape(effectShape.id, { + scale: [ + 0.1, + 0.1, + centerX, + centerY + ] + }); + zr.animate(effectShape.id, '', effect.loop).when(duration, { + scale: [ + 1, + 1, + centerX, + centerY + ] + }).done(function () { + shape.effect.show = false; + zr.delShape(effectShape.id); + }).start(); + } else { + zr.animate(effectShape.id, 'style', effect.loop).when(duration, { y: effectShape.style.y - distance }).when(duration * 2, { y: effectShape.style.y }).done(function () { + shape.effect.show = false; + zr.delShape(effectShape.id); + }).start(); + } + } + function largePoint(zr, effectList, shape, zlevel) { + var effect = shape.effect; + var color = effect.color || shape.style.strokeColor || shape.style.color; + var size = effect.scaleSize; + var shadowColor = effect.shadowColor || color; + var shadowBlur = typeof effect.shadowBlur != 'undefined' ? effect.shadowBlur : size * 2; + var devicePixelRatio = window.devicePixelRatio || 1; + var effectShape = new SymbolShape({ + zlevel: zlevel, + position: shape.position, + scale: shape.scale, + style: { + pointList: shape.style.pointList, + iconType: shape.style.iconType, + color: color, + strokeColor: color, + shadowColor: shadowColor, + shadowBlur: shadowBlur * devicePixelRatio, + random: true, + brushType: 'fill', + lineWidth: 1, + size: shape.style.size + }, + draggable: false, + hoverable: false + }); + effectList.push(effectShape); + zr.addShape(effectShape); + zr.modShape(shape.id, { invisible: true }); + var duration = Math.round(effect.period * 100); + var clip1 = {}; + var clip2 = {}; + for (var i = 0; i < 20; i++) { + effectShape.style['randomMap' + i] = 0; + clip1 = {}; + clip1['randomMap' + i] = 100; + clip2 = {}; + clip2['randomMap' + i] = 0; + effectShape.style['randomMap' + i] = Math.random() * 100; + zr.animate(effectShape.id, 'style', true).when(duration, clip1).when(duration * 2, clip2).when(duration * 3, clip1).when(duration * 4, clip1).delay(Math.random() * duration * i).start(); + } + } + function line(zr, effectList, shape, zlevel, isLarge) { + var effect = shape.effect; + var shapeStyle = shape.style; + var color = effect.color || shapeStyle.strokeColor || shapeStyle.color; + var shadowColor = effect.shadowColor || shapeStyle.strokeColor || color; + var size = shapeStyle.lineWidth * effect.scaleSize; + var shadowBlur = typeof effect.shadowBlur != 'undefined' ? effect.shadowBlur : size; + var effectShape = new CircleShape({ + zlevel: zlevel, + style: { + x: shadowBlur, + y: shadowBlur, + r: size, + color: color, + shadowColor: shadowColor, + shadowBlur: shadowBlur + }, + hoverable: false + }); + var offset = 0; + if (canvasSupported && !isLarge) { + var zlevel = effectShape.zlevel; + effectShape = zr.shapeToImage(effectShape, (size + shadowBlur) * 2, (size + shadowBlur) * 2); + effectShape.zlevel = zlevel; + effectShape.hoverable = false; + offset = shadowBlur; + } + if (!isLarge) { + ecData.clone(shape, effectShape); + effectShape.position = shape.position; + effectList.push(effectShape); + zr.addShape(effectShape); + } + var effectDone = function () { + if (!isLarge) { + shape.effect.show = false; + zr.delShape(effectShape.id); + } + effectShape.effectAnimator = null; + }; + if (shape instanceof Polyline) { + var distanceList = [0]; + var totalDist = 0; + var pointList = shapeStyle.pointList; + var controlPointList = shapeStyle.controlPointList; + for (var i = 1; i < pointList.length; i++) { + if (controlPointList) { + var cp1 = controlPointList[(i - 1) * 2]; + var cp2 = controlPointList[(i - 1) * 2 + 1]; + totalDist += vec2.dist(pointList[i - 1], cp1) + vec2.dist(cp1, cp2) + vec2.dist(cp2, pointList[i]); + } else { + totalDist += vec2.dist(pointList[i - 1], pointList[i]); + } + distanceList.push(totalDist); + } + var obj = { p: 0 }; + var animator = zr.animation.animate(obj, { loop: effect.loop }); + for (var i = 0; i < distanceList.length; i++) { + animator.when(distanceList[i] * effect.period, { p: i }); + } + animator.during(function () { + var i = Math.floor(obj.p); + var x, y; + if (i == pointList.length - 1) { + x = pointList[i][0]; + y = pointList[i][1]; + } else { + var t = obj.p - i; + var p0 = pointList[i]; + var p1 = pointList[i + 1]; + if (controlPointList) { + var cp1 = controlPointList[i * 2]; + var cp2 = controlPointList[i * 2 + 1]; + x = curveTool.cubicAt(p0[0], cp1[0], cp2[0], p1[0], t); + y = curveTool.cubicAt(p0[1], cp1[1], cp2[1], p1[1], t); + } else { + x = (p1[0] - p0[0]) * t + p0[0]; + y = (p1[1] - p0[1]) * t + p0[1]; + } + } + effectShape.style.x = x; + effectShape.style.y = y; + if (!isLarge) { + zr.modShape(effectShape); + } + }).done(effectDone).start(); + animator.duration = totalDist * effect.period; + effectShape.effectAnimator = animator; + } else { + var x0 = shapeStyle.xStart - offset; + var y0 = shapeStyle.yStart - offset; + var x2 = shapeStyle.xEnd - offset; + var y2 = shapeStyle.yEnd - offset; + effectShape.style.x = x0; + effectShape.style.y = y0; + var distance = (x2 - x0) * (x2 - x0) + (y2 - y0) * (y2 - y0); + var duration = Math.round(Math.sqrt(Math.round(distance * effect.period * effect.period))); + if (shape.style.curveness > 0) { + var x1 = shapeStyle.cpX1 - offset; + var y1 = shapeStyle.cpY1 - offset; + effectShape.effectAnimator = zr.animation.animate(effectShape, { loop: effect.loop }).when(duration, { p: 1 }).during(function (target, t) { + effectShape.style.x = curveTool.quadraticAt(x0, x1, x2, t); + effectShape.style.y = curveTool.quadraticAt(y0, y1, y2, t); + if (!isLarge) { + zr.modShape(effectShape); + } + }).done(effectDone).start(); + } else { + effectShape.effectAnimator = zr.animation.animate(effectShape.style, { loop: effect.loop }).when(duration, { + x: x2, + y: y2 + }).during(function () { + if (!isLarge) { + zr.modShape(effectShape); + } + }).done(effectDone).start(); + } + effectShape.effectAnimator.duration = duration; + } + return effectShape; + } + function largeLine(zr, effectList, shape, zlevel) { + var effectShape = new ShapeBundle({ + style: { shapeList: [] }, + zlevel: zlevel, + hoverable: false + }); + var shapeList = shape.style.shapeList; + var effect = shape.effect; + effectShape.position = shape.position; + var maxDuration = 0; + var subEffectAnimators = []; + for (var i = 0; i < shapeList.length; i++) { + shapeList[i].effect = effect; + var subEffectShape = line(zr, null, shapeList[i], zlevel, true); + var subEffectAnimator = subEffectShape.effectAnimator; + effectShape.style.shapeList.push(subEffectShape); + if (subEffectAnimator.duration > maxDuration) { + maxDuration = subEffectAnimator.duration; + } + if (i === 0) { + effectShape.style.color = subEffectShape.style.color; + effectShape.style.shadowBlur = subEffectShape.style.shadowBlur; + effectShape.style.shadowColor = subEffectShape.style.shadowColor; + } + subEffectAnimators.push(subEffectAnimator); + } + effectList.push(effectShape); + zr.addShape(effectShape); + var clearAllAnimators = function () { + for (var i = 0; i < subEffectAnimators.length; i++) { + subEffectAnimators[i].stop(); + } + }; + if (maxDuration) { + effectShape.__dummy = 0; + var animator = zr.animate(effectShape.id, '', effect.loop).when(maxDuration, { __dummy: 1 }).during(function () { + zr.modShape(effectShape); + }).done(function () { + shape.effect.show = false; + zr.delShape(effectShape.id); + }).start(); + var oldStop = animator.stop; + animator.stop = function () { + clearAllAnimators(); + oldStop.call(this); + }; + } + } + return { + point: point, + largePoint: largePoint, + line: line, + largeLine: largeLine + }; +});define('echarts/component/base', [ + 'require', + '../config', + '../util/ecData', + '../util/ecQuery', + '../util/number', + 'zrender/tool/util', + 'zrender/tool/env' +], function (require) { + var ecConfig = require('../config'); + var ecData = require('../util/ecData'); + var ecQuery = require('../util/ecQuery'); + var number = require('../util/number'); + var zrUtil = require('zrender/tool/util'); + function Base(ecTheme, messageCenter, zr, option, myChart) { + this.ecTheme = ecTheme; + this.messageCenter = messageCenter; + this.zr = zr; + this.option = option; + this.series = option.series; + this.myChart = myChart; + this.component = myChart.component; + this.shapeList = []; + this.effectList = []; + var self = this; + self._onlegendhoverlink = function (param) { + if (self.legendHoverLink) { + var targetName = param.target; + var name; + for (var i = self.shapeList.length - 1; i >= 0; i--) { + name = self.type == ecConfig.CHART_TYPE_PIE || self.type == ecConfig.CHART_TYPE_FUNNEL ? ecData.get(self.shapeList[i], 'name') : (ecData.get(self.shapeList[i], 'series') || {}).name; + if (name == targetName && !self.shapeList[i].invisible && !self.shapeList[i].__animating) { + self.zr.addHoverShape(self.shapeList[i]); + } + } + } + }; + messageCenter && messageCenter.bind(ecConfig.EVENT.LEGEND_HOVERLINK, this._onlegendhoverlink); + } + Base.prototype = { + canvasSupported: require('zrender/tool/env').canvasSupported, + _getZ: function (zWhat) { + if (this[zWhat] != null) { + return this[zWhat]; + } + var opt = this.ecTheme[this.type]; + if (opt && opt[zWhat] != null) { + return opt[zWhat]; + } + opt = ecConfig[this.type]; + if (opt && opt[zWhat] != null) { + return opt[zWhat]; + } + return 0; + }, + getZlevelBase: function () { + return this._getZ('zlevel'); + }, + getZBase: function () { + return this._getZ('z'); + }, + reformOption: function (opt) { + opt = zrUtil.merge(zrUtil.merge(opt || {}, zrUtil.clone(this.ecTheme[this.type] || {})), zrUtil.clone(ecConfig[this.type] || {})); + this.z = opt.z; + this.zlevel = opt.zlevel; + return opt; + }, + reformCssArray: function (p) { + if (p instanceof Array) { + switch (p.length + '') { + case '4': + return p; + case '3': + return [ + p[0], + p[1], + p[2], + p[1] + ]; + case '2': + return [ + p[0], + p[1], + p[0], + p[1] + ]; + case '1': + return [ + p[0], + p[0], + p[0], + p[0] + ]; + case '0': + return [ + 0, + 0, + 0, + 0 + ]; + } + } else { + return [ + p, + p, + p, + p + ]; + } + }, + getShapeById: function (id) { + for (var i = 0, l = this.shapeList.length; i < l; i++) { + if (this.shapeList[i].id === id) { + return this.shapeList[i]; + } + } + return null; + }, + getFont: function (textStyle) { + var finalTextStyle = this.getTextStyle(zrUtil.clone(textStyle)); + return finalTextStyle.fontStyle + ' ' + finalTextStyle.fontWeight + ' ' + finalTextStyle.fontSize + 'px ' + finalTextStyle.fontFamily; + }, + getTextStyle: function (targetStyle) { + return zrUtil.merge(zrUtil.merge(targetStyle || {}, this.ecTheme.textStyle), ecConfig.textStyle); + }, + getItemStyleColor: function (itemColor, seriesIndex, dataIndex, data) { + return typeof itemColor === 'function' ? itemColor.call(this.myChart, { + seriesIndex: seriesIndex, + series: this.series[seriesIndex], + dataIndex: dataIndex, + data: data + }) : itemColor; + }, + getDataFromOption: function (data, defaultData) { + return data != null ? data.value != null ? data.value : data : defaultData; + }, + subPixelOptimize: function (position, lineWidth) { + if (lineWidth % 2 === 1) { + position = Math.floor(position) + 0.5; + } else { + position = Math.round(position); + } + return position; + }, + resize: function () { + this.refresh && this.refresh(); + this.clearEffectShape && this.clearEffectShape(true); + var self = this; + setTimeout(function () { + self.animationEffect && self.animationEffect(); + }, 200); + }, + clear: function () { + this.clearEffectShape && this.clearEffectShape(); + this.zr && this.zr.delShape(this.shapeList); + this.shapeList = []; + }, + dispose: function () { + this.onbeforDispose && this.onbeforDispose(); + this.clear(); + this.shapeList = null; + this.effectList = null; + this.messageCenter && this.messageCenter.unbind(ecConfig.EVENT.LEGEND_HOVERLINK, this._onlegendhoverlink); + this.onafterDispose && this.onafterDispose(); + }, + query: ecQuery.query, + deepQuery: ecQuery.deepQuery, + deepMerge: ecQuery.deepMerge, + parsePercent: number.parsePercent, + parseCenter: number.parseCenter, + parseRadius: number.parseRadius, + numAddCommas: number.addCommas, + getPrecision: number.getPrecision + }; + return Base; +});define('echarts/layout/EdgeBundling', [ + 'require', + '../data/KDTree', + 'zrender/tool/vector' +], function (require) { + var KDTree = require('../data/KDTree'); + var vec2 = require('zrender/tool/vector'); + var v2Create = vec2.create; + var v2DistSquare = vec2.distSquare; + var v2Dist = vec2.dist; + var v2Copy = vec2.copy; + var v2Clone = vec2.clone; + function squaredDistance(a, b) { + a = a.array; + b = b.array; + var x = b[0] - a[0]; + var y = b[1] - a[1]; + var z = b[2] - a[2]; + var w = b[3] - a[3]; + return x * x + y * y + z * z + w * w; + } + function CoarsenedEdge(group) { + this.points = [ + group.mp0, + group.mp1 + ]; + this.group = group; + } + function Edge(edge) { + var points = edge.points; + if (points[0][1] < points[1][1] || edge instanceof CoarsenedEdge) { + this.array = [ + points[0][0], + points[0][1], + points[1][0], + points[1][1] + ]; + this._startPoint = points[0]; + this._endPoint = points[1]; + } else { + this.array = [ + points[1][0], + points[1][1], + points[0][0], + points[0][1] + ]; + this._startPoint = points[1]; + this._endPoint = points[0]; + } + this.ink = v2Dist(points[0], points[1]); + this.edge = edge; + this.group = null; + } + Edge.prototype.getStartPoint = function () { + return this._startPoint; + }; + Edge.prototype.getEndPoint = function () { + return this._endPoint; + }; + function BundledEdgeGroup() { + this.edgeList = []; + this.mp0 = v2Create(); + this.mp1 = v2Create(); + this.ink = 0; + } + BundledEdgeGroup.prototype.addEdge = function (edge) { + edge.group = this; + this.edgeList.push(edge); + }; + BundledEdgeGroup.prototype.removeEdge = function (edge) { + edge.group = null; + this.edgeList.splice(this.edgeList.indexOf(edge), 1); + }; + function EdgeBundling() { + this.maxNearestEdge = 6; + this.maxTurningAngle = Math.PI / 4; + this.maxIteration = 20; + } + EdgeBundling.prototype = { + constructor: EdgeBundling, + run: function (rawEdges) { + var res = this._iterate(rawEdges); + var nIterate = 0; + while (nIterate++ < this.maxIteration) { + var coarsenedEdges = []; + for (var i = 0; i < res.groups.length; i++) { + coarsenedEdges.push(new CoarsenedEdge(res.groups[i])); + } + var newRes = this._iterate(coarsenedEdges); + if (newRes.savedInk <= 0) { + break; + } else { + res = newRes; + } + } + var newEdges = []; + function pointApproxEqual(p0, p1) { + return v2DistSquare(p0, p1) < 1e-10; + } + function cleanEdgePoints(edgePoints, rawEdgePoints) { + var res = []; + var off = 0; + for (var i = 0; i < edgePoints.length; i++) { + if (!(off > 0 && pointApproxEqual(edgePoints[i], res[off - 1]))) { + res[off++] = v2Clone(edgePoints[i]); + } + } + if (rawEdgePoints[0] && !pointApproxEqual(res[0], rawEdgePoints[0])) { + res = res.reverse(); + } + return res; + } + var buildNewEdges = function (groups, fromEdgePoints) { + var newEdgePoints; + for (var i = 0; i < groups.length; i++) { + var group = groups[i]; + if (group.edgeList[0] && group.edgeList[0].edge instanceof CoarsenedEdge) { + var newGroups = []; + for (var j = 0; j < group.edgeList.length; j++) { + newGroups.push(group.edgeList[j].edge.group); + } + if (!fromEdgePoints) { + newEdgePoints = []; + } else { + newEdgePoints = fromEdgePoints.slice(); + } + newEdgePoints.unshift(group.mp0); + newEdgePoints.push(group.mp1); + buildNewEdges(newGroups, newEdgePoints); + } else { + for (var j = 0; j < group.edgeList.length; j++) { + var edge = group.edgeList[j]; + if (!fromEdgePoints) { + newEdgePoints = []; + } else { + newEdgePoints = fromEdgePoints.slice(); + } + newEdgePoints.unshift(group.mp0); + newEdgePoints.push(group.mp1); + newEdgePoints.unshift(edge.getStartPoint()); + newEdgePoints.push(edge.getEndPoint()); + newEdges.push({ + points: cleanEdgePoints(newEdgePoints, edge.edge.points), + rawEdge: edge.edge + }); + } + } + } + }; + buildNewEdges(res.groups); + return newEdges; + }, + _iterate: function (rawEdges) { + var edges = []; + var groups = []; + var totalSavedInk = 0; + for (var i = 0; i < rawEdges.length; i++) { + var edge = new Edge(rawEdges[i]); + edges.push(edge); + } + var tree = new KDTree(edges, 4); + var nearests = []; + var _mp0 = v2Create(); + var _mp1 = v2Create(); + var _newGroupInk = 0; + var mp0 = v2Create(); + var mp1 = v2Create(); + var newGroupInk = 0; + for (var i = 0; i < edges.length; i++) { + var edge = edges[i]; + if (edge.group) { + continue; + } + tree.nearestN(edge, this.maxNearestEdge, squaredDistance, nearests); + var maxSavedInk = 0; + var mostSavingInkEdge = null; + var lastCheckedGroup = null; + for (var j = 0; j < nearests.length; j++) { + var nearest = nearests[j]; + var savedInk = 0; + if (nearest.group) { + if (nearest.group !== lastCheckedGroup) { + lastCheckedGroup = nearest.group; + _newGroupInk = this._calculateGroupEdgeInk(nearest.group, edge, _mp0, _mp1); + savedInk = nearest.group.ink + edge.ink - _newGroupInk; + } + } else { + _newGroupInk = this._calculateEdgeEdgeInk(edge, nearest, _mp0, _mp1); + savedInk = nearest.ink + edge.ink - _newGroupInk; + } + if (savedInk > maxSavedInk) { + maxSavedInk = savedInk; + mostSavingInkEdge = nearest; + v2Copy(mp1, _mp1); + v2Copy(mp0, _mp0); + newGroupInk = _newGroupInk; + } + } + if (mostSavingInkEdge) { + totalSavedInk += maxSavedInk; + var group; + if (!mostSavingInkEdge.group) { + group = new BundledEdgeGroup(); + groups.push(group); + group.addEdge(mostSavingInkEdge); + } + group = mostSavingInkEdge.group; + v2Copy(group.mp0, mp0); + v2Copy(group.mp1, mp1); + group.ink = newGroupInk; + mostSavingInkEdge.group.addEdge(edge); + } else { + var group = new BundledEdgeGroup(); + groups.push(group); + v2Copy(group.mp0, edge.getStartPoint()); + v2Copy(group.mp1, edge.getEndPoint()); + group.ink = edge.ink; + group.addEdge(edge); + } + } + return { + groups: groups, + edges: edges, + savedInk: totalSavedInk + }; + }, + _calculateEdgeEdgeInk: function () { + var startPointSet = []; + var endPointSet = []; + return function (e0, e1, mp0, mp1) { + startPointSet[0] = e0.getStartPoint(); + startPointSet[1] = e1.getStartPoint(); + endPointSet[0] = e0.getEndPoint(); + endPointSet[1] = e1.getEndPoint(); + this._calculateMeetPoints(startPointSet, endPointSet, mp0, mp1); + var ink = v2Dist(startPointSet[0], mp0) + v2Dist(mp0, mp1) + v2Dist(mp1, endPointSet[0]) + v2Dist(startPointSet[1], mp0) + v2Dist(mp1, endPointSet[1]); + return ink; + }; + }(), + _calculateGroupEdgeInk: function (group, edgeTryAdd, mp0, mp1) { + var startPointSet = []; + var endPointSet = []; + for (var i = 0; i < group.edgeList.length; i++) { + var edge = group.edgeList[i]; + startPointSet.push(edge.getStartPoint()); + endPointSet.push(edge.getEndPoint()); + } + startPointSet.push(edgeTryAdd.getStartPoint()); + endPointSet.push(edgeTryAdd.getEndPoint()); + this._calculateMeetPoints(startPointSet, endPointSet, mp0, mp1); + var ink = v2Dist(mp0, mp1); + for (var i = 0; i < startPointSet.length; i++) { + ink += v2Dist(startPointSet[i], mp0) + v2Dist(endPointSet[i], mp1); + } + return ink; + }, + _calculateMeetPoints: function () { + var cp0 = v2Create(); + var cp1 = v2Create(); + return function (startPointSet, endPointSet, mp0, mp1) { + vec2.set(cp0, 0, 0); + vec2.set(cp1, 0, 0); + var len = startPointSet.length; + for (var i = 0; i < len; i++) { + vec2.add(cp0, cp0, startPointSet[i]); + } + vec2.scale(cp0, cp0, 1 / len); + len = endPointSet.length; + for (var i = 0; i < len; i++) { + vec2.add(cp1, cp1, endPointSet[i]); + } + vec2.scale(cp1, cp1, 1 / len); + this._limitTurningAngle(startPointSet, cp0, cp1, mp0); + this._limitTurningAngle(endPointSet, cp1, cp0, mp1); + }; + }(), + _limitTurningAngle: function () { + var v10 = v2Create(); + var vTmp = v2Create(); + var project = v2Create(); + var tmpOut = v2Create(); + return function (pointSet, p0, p1, out) { + var maxTurningAngleCos = Math.cos(this.maxTurningAngle); + var maxTurningAngleTan = Math.tan(this.maxTurningAngle); + vec2.sub(v10, p0, p1); + vec2.normalize(v10, v10); + vec2.copy(out, p0); + var maxMovement = 0; + for (var i = 0; i < pointSet.length; i++) { + var p = pointSet[i]; + vec2.sub(vTmp, p, p0); + var len = vec2.len(vTmp); + vec2.scale(vTmp, vTmp, 1 / len); + var turningAngleCos = vec2.dot(vTmp, v10); + if (turningAngleCos < maxTurningAngleCos) { + vec2.scaleAndAdd(project, p0, v10, len * turningAngleCos); + var distance = v2Dist(project, p); + var d = distance / maxTurningAngleTan; + vec2.scaleAndAdd(tmpOut, project, v10, -d); + var movement = v2DistSquare(tmpOut, p0); + if (movement > maxMovement) { + maxMovement = movement; + vec2.copy(out, tmpOut); + } + } + } + }; + }() + }; + return EdgeBundling; +});define('zrender/shape/Star', [ + 'require', + '../tool/math', + './Base', + '../tool/util' +], function (require) { + var math = require('../tool/math'); + var sin = math.sin; + var cos = math.cos; + var PI = Math.PI; + var Base = require('./Base'); + var Star = function (options) { + Base.call(this, options); + }; + Star.prototype = { + type: 'star', + buildPath: function (ctx, style) { + var n = style.n; + if (!n || n < 2) { + return; + } + var x = style.x; + var y = style.y; + var r = style.r; + var r0 = style.r0; + if (r0 == null) { + r0 = n > 4 ? r * cos(2 * PI / n) / cos(PI / n) : r / 3; + } + var dStep = PI / n; + var deg = -PI / 2; + var xStart = x + r * cos(deg); + var yStart = y + r * sin(deg); + deg += dStep; + var pointList = style.pointList = []; + pointList.push([ + xStart, + yStart + ]); + for (var i = 0, end = n * 2 - 1, ri; i < end; i++) { + ri = i % 2 === 0 ? r0 : r; + pointList.push([ + x + ri * cos(deg), + y + ri * sin(deg) + ]); + deg += dStep; + } + pointList.push([ + xStart, + yStart + ]); + ctx.moveTo(pointList[0][0], pointList[0][1]); + for (var i = 0; i < pointList.length; i++) { + ctx.lineTo(pointList[i][0], pointList[i][1]); + } + ctx.closePath(); + return; + }, + getRect: function (style) { + if (style.__rect) { + return style.__rect; + } + var lineWidth; + if (style.brushType == 'stroke' || style.brushType == 'fill') { + lineWidth = style.lineWidth || 1; + } else { + lineWidth = 0; + } + style.__rect = { + x: Math.round(style.x - style.r - lineWidth / 2), + y: Math.round(style.y - style.r - lineWidth / 2), + width: style.r * 2 + lineWidth, + height: style.r * 2 + lineWidth + }; + return style.__rect; + } + }; + require('../tool/util').inherits(Star, Base); + return Star; +});define('zrender/shape/Heart', [ + 'require', + './Base', + './util/PathProxy', + '../tool/area', + '../tool/util' +], function (require) { + 'use strict'; + var Base = require('./Base'); + var PathProxy = require('./util/PathProxy'); + var area = require('../tool/area'); + var Heart = function (options) { + Base.call(this, options); + this._pathProxy = new PathProxy(); + }; + Heart.prototype = { + type: 'heart', + buildPath: function (ctx, style) { + var path = this._pathProxy || new PathProxy(); + path.begin(ctx); + path.moveTo(style.x, style.y); + path.bezierCurveTo(style.x + style.a / 2, style.y - style.b * 2 / 3, style.x + style.a * 2, style.y + style.b / 3, style.x, style.y + style.b); + path.bezierCurveTo(style.x - style.a * 2, style.y + style.b / 3, style.x - style.a / 2, style.y - style.b * 2 / 3, style.x, style.y); + path.closePath(); + return; + }, + getRect: function (style) { + if (style.__rect) { + return style.__rect; + } + if (!this._pathProxy.isEmpty()) { + this.buildPath(null, style); + } + return this._pathProxy.fastBoundingRect(); + }, + isCover: function (x, y) { + var originPos = this.transformCoordToLocal(x, y); + x = originPos[0]; + y = originPos[1]; + if (this.isCoverRect(x, y)) { + return area.isInsidePath(this._pathProxy.pathCommands, this.style.lineWidth, this.style.brushType, x, y); + } + } + }; + require('../tool/util').inherits(Heart, Base); + return Heart; +});define('zrender/shape/Droplet', [ + 'require', + './Base', + './util/PathProxy', + '../tool/area', + '../tool/util' +], function (require) { + 'use strict'; + var Base = require('./Base'); + var PathProxy = require('./util/PathProxy'); + var area = require('../tool/area'); + var Droplet = function (options) { + Base.call(this, options); + this._pathProxy = new PathProxy(); + }; + Droplet.prototype = { + type: 'droplet', + buildPath: function (ctx, style) { + var path = this._pathProxy || new PathProxy(); + path.begin(ctx); + path.moveTo(style.x, style.y + style.a); + path.bezierCurveTo(style.x + style.a, style.y + style.a, style.x + style.a * 3 / 2, style.y - style.a / 3, style.x, style.y - style.b); + path.bezierCurveTo(style.x - style.a * 3 / 2, style.y - style.a / 3, style.x - style.a, style.y + style.a, style.x, style.y + style.a); + path.closePath(); + }, + getRect: function (style) { + if (style.__rect) { + return style.__rect; + } + if (!this._pathProxy.isEmpty()) { + this.buildPath(null, style); + } + return this._pathProxy.fastBoundingRect(); + }, + isCover: function (x, y) { + var originPos = this.transformCoordToLocal(x, y); + x = originPos[0]; + y = originPos[1]; + if (this.isCoverRect(x, y)) { + return area.isInsidePath(this._pathProxy.pathCommands, this.style.lineWidth, this.style.brushType, x, y); + } + } + }; + require('../tool/util').inherits(Droplet, Base); + return Droplet; +});define('zrender/tool/math', [], function () { + var _radians = Math.PI / 180; + function sin(angle, isDegrees) { + return Math.sin(isDegrees ? angle * _radians : angle); + } + function cos(angle, isDegrees) { + return Math.cos(isDegrees ? angle * _radians : angle); + } + function degreeToRadian(angle) { + return angle * _radians; + } + function radianToDegree(angle) { + return angle / _radians; + } + return { + sin: sin, + cos: cos, + degreeToRadian: degreeToRadian, + radianToDegree: radianToDegree + }; +});define('zrender/shape/util/PathProxy', [ + 'require', + '../../tool/vector' +], function (require) { + var vector = require('../../tool/vector'); + var PathSegment = function (command, points) { + this.command = command; + this.points = points || null; + }; + var PathProxy = function () { + this.pathCommands = []; + this._ctx = null; + this._min = []; + this._max = []; + }; + PathProxy.prototype.fastBoundingRect = function () { + var min = this._min; + var max = this._max; + min[0] = min[1] = Infinity; + max[0] = max[1] = -Infinity; + for (var i = 0; i < this.pathCommands.length; i++) { + var seg = this.pathCommands[i]; + var p = seg.points; + switch (seg.command) { + case 'M': + vector.min(min, min, p); + vector.max(max, max, p); + break; + case 'L': + vector.min(min, min, p); + vector.max(max, max, p); + break; + case 'C': + for (var j = 0; j < 6; j += 2) { + min[0] = Math.min(min[0], min[0], p[j]); + min[1] = Math.min(min[1], min[1], p[j + 1]); + max[0] = Math.max(max[0], max[0], p[j]); + max[1] = Math.max(max[1], max[1], p[j + 1]); + } + break; + case 'Q': + for (var j = 0; j < 4; j += 2) { + min[0] = Math.min(min[0], min[0], p[j]); + min[1] = Math.min(min[1], min[1], p[j + 1]); + max[0] = Math.max(max[0], max[0], p[j]); + max[1] = Math.max(max[1], max[1], p[j + 1]); + } + break; + case 'A': + var cx = p[0]; + var cy = p[1]; + var rx = p[2]; + var ry = p[3]; + min[0] = Math.min(min[0], min[0], cx - rx); + min[1] = Math.min(min[1], min[1], cy - ry); + max[0] = Math.max(max[0], max[0], cx + rx); + max[1] = Math.max(max[1], max[1], cy + ry); + break; + } + } + return { + x: min[0], + y: min[1], + width: max[0] - min[0], + height: max[1] - min[1] + }; + }; + PathProxy.prototype.begin = function (ctx) { + this._ctx = ctx || null; + this.pathCommands.length = 0; + return this; + }; + PathProxy.prototype.moveTo = function (x, y) { + this.pathCommands.push(new PathSegment('M', [ + x, + y + ])); + if (this._ctx) { + this._ctx.moveTo(x, y); + } + return this; + }; + PathProxy.prototype.lineTo = function (x, y) { + this.pathCommands.push(new PathSegment('L', [ + x, + y + ])); + if (this._ctx) { + this._ctx.lineTo(x, y); + } + return this; + }; + PathProxy.prototype.bezierCurveTo = function (x1, y1, x2, y2, x3, y3) { + this.pathCommands.push(new PathSegment('C', [ + x1, + y1, + x2, + y2, + x3, + y3 + ])); + if (this._ctx) { + this._ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3); + } + return this; + }; + PathProxy.prototype.quadraticCurveTo = function (x1, y1, x2, y2) { + this.pathCommands.push(new PathSegment('Q', [ + x1, + y1, + x2, + y2 + ])); + if (this._ctx) { + this._ctx.quadraticCurveTo(x1, y1, x2, y2); + } + return this; + }; + PathProxy.prototype.arc = function (cx, cy, r, startAngle, endAngle, anticlockwise) { + this.pathCommands.push(new PathSegment('A', [ + cx, + cy, + r, + r, + startAngle, + endAngle - startAngle, + 0, + anticlockwise ? 0 : 1 + ])); + if (this._ctx) { + this._ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise); + } + return this; + }; + PathProxy.prototype.arcTo = function (x1, y1, x2, y2, radius) { + if (this._ctx) { + this._ctx.arcTo(x1, y1, x2, y2, radius); + } + return this; + }; + PathProxy.prototype.rect = function (x, y, w, h) { + if (this._ctx) { + this._ctx.rect(x, y, w, h); + } + return this; + }; + PathProxy.prototype.closePath = function () { + this.pathCommands.push(new PathSegment('z')); + if (this._ctx) { + this._ctx.closePath(); + } + return this; + }; + PathProxy.prototype.isEmpty = function () { + return this.pathCommands.length === 0; + }; + PathProxy.PathSegment = PathSegment; + return PathProxy; +});define('zrender/shape/Line', [ + 'require', + './Base', + './util/dashedLineTo', + '../tool/util' +], function (require) { + var Base = require('./Base'); + var dashedLineTo = require('./util/dashedLineTo'); + var Line = function (options) { + this.brushTypeOnly = 'stroke'; + this.textPosition = 'end'; + Base.call(this, options); + }; + Line.prototype = { + type: 'line', + buildPath: function (ctx, style) { + if (!style.lineType || style.lineType == 'solid') { + ctx.moveTo(style.xStart, style.yStart); + ctx.lineTo(style.xEnd, style.yEnd); + } else if (style.lineType == 'dashed' || style.lineType == 'dotted') { + var dashLength = (style.lineWidth || 1) * (style.lineType == 'dashed' ? 5 : 1); + dashedLineTo(ctx, style.xStart, style.yStart, style.xEnd, style.yEnd, dashLength); + } + }, + getRect: function (style) { + if (style.__rect) { + return style.__rect; + } + var lineWidth = style.lineWidth || 1; + style.__rect = { + x: Math.min(style.xStart, style.xEnd) - lineWidth, + y: Math.min(style.yStart, style.yEnd) - lineWidth, + width: Math.abs(style.xStart - style.xEnd) + lineWidth, + height: Math.abs(style.yStart - style.yEnd) + lineWidth + }; + return style.__rect; + } + }; + require('../tool/util').inherits(Line, Base); + return Line; +});define('zrender/shape/BezierCurve', [ + 'require', + './Base', + '../tool/util' +], function (require) { + 'use strict'; + var Base = require('./Base'); + var BezierCurve = function (options) { + this.brushTypeOnly = 'stroke'; + this.textPosition = 'end'; + Base.call(this, options); + }; + BezierCurve.prototype = { + type: 'bezier-curve', + buildPath: function (ctx, style) { + ctx.moveTo(style.xStart, style.yStart); + if (typeof style.cpX2 != 'undefined' && typeof style.cpY2 != 'undefined') { + ctx.bezierCurveTo(style.cpX1, style.cpY1, style.cpX2, style.cpY2, style.xEnd, style.yEnd); + } else { + ctx.quadraticCurveTo(style.cpX1, style.cpY1, style.xEnd, style.yEnd); + } + }, + getRect: function (style) { + if (style.__rect) { + return style.__rect; + } + var _minX = Math.min(style.xStart, style.xEnd, style.cpX1); + var _minY = Math.min(style.yStart, style.yEnd, style.cpY1); + var _maxX = Math.max(style.xStart, style.xEnd, style.cpX1); + var _maxY = Math.max(style.yStart, style.yEnd, style.cpY1); + var _x2 = style.cpX2; + var _y2 = style.cpY2; + if (typeof _x2 != 'undefined' && typeof _y2 != 'undefined') { + _minX = Math.min(_minX, _x2); + _minY = Math.min(_minY, _y2); + _maxX = Math.max(_maxX, _x2); + _maxY = Math.max(_maxY, _y2); + } + var lineWidth = style.lineWidth || 1; + style.__rect = { + x: _minX - lineWidth, + y: _minY - lineWidth, + width: _maxX - _minX + lineWidth, + height: _maxY - _minY + lineWidth + }; + return style.__rect; + } + }; + require('../tool/util').inherits(BezierCurve, Base); + return BezierCurve; +});define('zrender/shape/util/dashedLineTo', [], function () { + var dashPattern = [ + 5, + 5 + ]; + return function (ctx, x1, y1, x2, y2, dashLength) { + if (ctx.setLineDash) { + dashPattern[0] = dashPattern[1] = dashLength; + ctx.setLineDash(dashPattern); + ctx.moveTo(x1, y1); + ctx.lineTo(x2, y2); + return; + } + dashLength = typeof dashLength != 'number' ? 5 : dashLength; + var dx = x2 - x1; + var dy = y2 - y1; + var numDashes = Math.floor(Math.sqrt(dx * dx + dy * dy) / dashLength); + dx = dx / numDashes; + dy = dy / numDashes; + var flag = true; + for (var i = 0; i < numDashes; ++i) { + if (flag) { + ctx.moveTo(x1, y1); + } else { + ctx.lineTo(x1, y1); + } + flag = !flag; + x1 += dx; + y1 += dy; + } + ctx.lineTo(x2, y2); + }; +});define('zrender/shape/Polygon', [ + 'require', + './Base', + './util/smoothSpline', + './util/smoothBezier', + './util/dashedLineTo', + '../tool/util' +], function (require) { + var Base = require('./Base'); + var smoothSpline = require('./util/smoothSpline'); + var smoothBezier = require('./util/smoothBezier'); + var dashedLineTo = require('./util/dashedLineTo'); + var Polygon = function (options) { + Base.call(this, options); + }; + Polygon.prototype = { + type: 'polygon', + buildPath: function (ctx, style) { + var pointList = style.pointList; + if (pointList.length < 2) { + return; + } + if (style.smooth && style.smooth !== 'spline') { + var controlPoints = smoothBezier(pointList, style.smooth, true, style.smoothConstraint); + ctx.moveTo(pointList[0][0], pointList[0][1]); + var cp1; + var cp2; + var p; + var len = pointList.length; + for (var i = 0; i < len; i++) { + cp1 = controlPoints[i * 2]; + cp2 = controlPoints[i * 2 + 1]; + p = pointList[(i + 1) % len]; + ctx.bezierCurveTo(cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]); + } + } else { + if (style.smooth === 'spline') { + pointList = smoothSpline(pointList, true); + } + if (!style.lineType || style.lineType == 'solid') { + ctx.moveTo(pointList[0][0], pointList[0][1]); + for (var i = 1, l = pointList.length; i < l; i++) { + ctx.lineTo(pointList[i][0], pointList[i][1]); + } + ctx.lineTo(pointList[0][0], pointList[0][1]); + } else if (style.lineType == 'dashed' || style.lineType == 'dotted') { + var dashLength = style._dashLength || (style.lineWidth || 1) * (style.lineType == 'dashed' ? 5 : 1); + style._dashLength = dashLength; + ctx.moveTo(pointList[0][0], pointList[0][1]); + for (var i = 1, l = pointList.length; i < l; i++) { + dashedLineTo(ctx, pointList[i - 1][0], pointList[i - 1][1], pointList[i][0], pointList[i][1], dashLength); + } + dashedLineTo(ctx, pointList[pointList.length - 1][0], pointList[pointList.length - 1][1], pointList[0][0], pointList[0][1], dashLength); + } + } + ctx.closePath(); + return; + }, + getRect: function (style) { + if (style.__rect) { + return style.__rect; + } + var minX = Number.MAX_VALUE; + var maxX = Number.MIN_VALUE; + var minY = Number.MAX_VALUE; + var maxY = Number.MIN_VALUE; + var pointList = style.pointList; + for (var i = 0, l = pointList.length; i < l; i++) { + if (pointList[i][0] < minX) { + minX = pointList[i][0]; + } + if (pointList[i][0] > maxX) { + maxX = pointList[i][0]; + } + if (pointList[i][1] < minY) { + minY = pointList[i][1]; + } + if (pointList[i][1] > maxY) { + maxY = pointList[i][1]; + } + } + var lineWidth; + if (style.brushType == 'stroke' || style.brushType == 'fill') { + lineWidth = style.lineWidth || 1; + } else { + lineWidth = 0; + } + style.__rect = { + x: Math.round(minX - lineWidth / 2), + y: Math.round(minY - lineWidth / 2), + width: maxX - minX + lineWidth, + height: maxY - minY + lineWidth + }; + return style.__rect; + } + }; + require('../tool/util').inherits(Polygon, Base); + return Polygon; +});define('echarts/util/shape/normalIsCover', [], function () { + return function (x, y) { + var originPos = this.transformCoordToLocal(x, y); + x = originPos[0]; + y = originPos[1]; + return this.isCoverRect(x, y); + }; +});define('zrender/shape/util/smoothSpline', [ + 'require', + '../../tool/vector' +], function (require) { + var vector = require('../../tool/vector'); + function interpolate(p0, p1, p2, p3, t, t2, t3) { + var v0 = (p2 - p0) * 0.5; + var v1 = (p3 - p1) * 0.5; + return (2 * (p1 - p2) + v0 + v1) * t3 + (-3 * (p1 - p2) - 2 * v0 - v1) * t2 + v0 * t + p1; + } + return function (points, isLoop, constraint) { + var len = points.length; + var ret = []; + var distance = 0; + for (var i = 1; i < len; i++) { + distance += vector.distance(points[i - 1], points[i]); + } + var segs = distance / 5; + segs = segs < len ? len : segs; + for (var i = 0; i < segs; i++) { + var pos = i / (segs - 1) * (isLoop ? len : len - 1); + var idx = Math.floor(pos); + var w = pos - idx; + var p0; + var p1 = points[idx % len]; + var p2; + var p3; + if (!isLoop) { + p0 = points[idx === 0 ? idx : idx - 1]; + p2 = points[idx > len - 2 ? len - 1 : idx + 1]; + p3 = points[idx > len - 3 ? len - 1 : idx + 2]; + } else { + p0 = points[(idx - 1 + len) % len]; + p2 = points[(idx + 1) % len]; + p3 = points[(idx + 2) % len]; + } + var w2 = w * w; + var w3 = w * w2; + ret.push([ + interpolate(p0[0], p1[0], p2[0], p3[0], w, w2, w3), + interpolate(p0[1], p1[1], p2[1], p3[1], w, w2, w3) + ]); + } + return ret; + }; +});define('zrender/shape/util/smoothBezier', [ + 'require', + '../../tool/vector' +], function (require) { + var vector = require('../../tool/vector'); + return function (points, smooth, isLoop, constraint) { + var cps = []; + var v = []; + var v1 = []; + var v2 = []; + var prevPoint; + var nextPoint; + var hasConstraint = !!constraint; + var min, max; + if (hasConstraint) { + min = [ + Infinity, + Infinity + ]; + max = [ + -Infinity, + -Infinity + ]; + for (var i = 0, len = points.length; i < len; i++) { + vector.min(min, min, points[i]); + vector.max(max, max, points[i]); + } + vector.min(min, min, constraint[0]); + vector.max(max, max, constraint[1]); + } + for (var i = 0, len = points.length; i < len; i++) { + var point = points[i]; + var prevPoint; + var nextPoint; + if (isLoop) { + prevPoint = points[i ? i - 1 : len - 1]; + nextPoint = points[(i + 1) % len]; + } else { + if (i === 0 || i === len - 1) { + cps.push(vector.clone(points[i])); + continue; + } else { + prevPoint = points[i - 1]; + nextPoint = points[i + 1]; + } + } + vector.sub(v, nextPoint, prevPoint); + vector.scale(v, v, smooth); + var d0 = vector.distance(point, prevPoint); + var d1 = vector.distance(point, nextPoint); + var sum = d0 + d1; + if (sum !== 0) { + d0 /= sum; + d1 /= sum; + } + vector.scale(v1, v, -d0); + vector.scale(v2, v, d1); + var cp0 = vector.add([], point, v1); + var cp1 = vector.add([], point, v2); + if (hasConstraint) { + vector.max(cp0, cp0, min); + vector.min(cp0, cp0, max); + vector.max(cp1, cp1, min); + vector.min(cp1, cp1, max); + } + cps.push(cp0); + cps.push(cp1); + } + if (isLoop) { + cps.push(vector.clone(cps.shift())); + } + return cps; + }; +});define('echarts/util/ecQuery', [ + 'require', + 'zrender/tool/util' +], function (require) { + var zrUtil = require('zrender/tool/util'); + function query(optionTarget, optionLocation) { + if (typeof optionTarget == 'undefined') { + return; + } + if (!optionLocation) { + return optionTarget; + } + optionLocation = optionLocation.split('.'); + var length = optionLocation.length; + var curIdx = 0; + while (curIdx < length) { + optionTarget = optionTarget[optionLocation[curIdx]]; + if (typeof optionTarget == 'undefined') { + return; + } + curIdx++; + } + return optionTarget; + } + function deepQuery(ctrList, optionLocation) { + var finalOption; + for (var i = 0, l = ctrList.length; i < l; i++) { + finalOption = query(ctrList[i], optionLocation); + if (typeof finalOption != 'undefined') { + return finalOption; + } + } + } + function deepMerge(ctrList, optionLocation) { + var finalOption; + var len = ctrList.length; + while (len--) { + var tempOption = query(ctrList[len], optionLocation); + if (typeof tempOption != 'undefined') { + if (typeof finalOption == 'undefined') { + finalOption = zrUtil.clone(tempOption); + } else { + zrUtil.merge(finalOption, tempOption, true); + } + } + } + return finalOption; + } + return { + query: query, + deepQuery: deepQuery, + deepMerge: deepMerge + }; +});define('echarts/util/number', [], function () { + function _trim(str) { + return str.replace(/^\s+/, '').replace(/\s+$/, ''); + } + function parsePercent(value, maxValue) { + if (typeof value === 'string') { + if (_trim(value).match(/%$/)) { + return parseFloat(value) / 100 * maxValue; + } + return parseFloat(value); + } + return value; + } + function parseCenter(zr, center) { + return [ + parsePercent(center[0], zr.getWidth()), + parsePercent(center[1], zr.getHeight()) + ]; + } + function parseRadius(zr, radius) { + if (!(radius instanceof Array)) { + radius = [ + 0, + radius + ]; + } + var zrSize = Math.min(zr.getWidth(), zr.getHeight()) / 2; + return [ + parsePercent(radius[0], zrSize), + parsePercent(radius[1], zrSize) + ]; + } + function addCommas(x) { + if (isNaN(x)) { + return '-'; + } + x = (x + '').split('.'); + return x[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g, '$1,') + (x.length > 1 ? '.' + x[1] : ''); + } + function getPrecision(val) { + var e = 1; + var count = 0; + while (Math.round(val * e) / e !== val) { + e *= 10; + count++; + } + return count; + } + return { + parsePercent: parsePercent, + parseCenter: parseCenter, + parseRadius: parseRadius, + addCommas: addCommas, + getPrecision: getPrecision + }; +});define('echarts/data/KDTree', [ + 'require', + './quickSelect' +], function (require) { + var quickSelect = require('./quickSelect'); + function Node(axis, data) { + this.left = null; + this.right = null; + this.axis = axis; + this.data = data; + } + var KDTree = function (points, dimension) { + if (!points.length) { + return; + } + if (!dimension) { + dimension = points[0].array.length; + } + this.dimension = dimension; + this.root = this._buildTree(points, 0, points.length - 1, 0); + this._stack = []; + this._nearstNList = []; + }; + KDTree.prototype._buildTree = function (points, left, right, axis) { + if (right < left) { + return null; + } + var medianIndex = Math.floor((left + right) / 2); + medianIndex = quickSelect(points, left, right, medianIndex, function (a, b) { + return a.array[axis] - b.array[axis]; + }); + var median = points[medianIndex]; + var node = new Node(axis, median); + axis = (axis + 1) % this.dimension; + if (right > left) { + node.left = this._buildTree(points, left, medianIndex - 1, axis); + node.right = this._buildTree(points, medianIndex + 1, right, axis); + } + return node; + }; + KDTree.prototype.nearest = function (target, squaredDistance) { + var curr = this.root; + var stack = this._stack; + var idx = 0; + var minDist = Infinity; + var nearestNode = null; + if (curr.data !== target) { + minDist = squaredDistance(curr.data, target); + nearestNode = curr; + } + if (target.array[curr.axis] < curr.data.array[curr.axis]) { + curr.right && (stack[idx++] = curr.right); + curr.left && (stack[idx++] = curr.left); + } else { + curr.left && (stack[idx++] = curr.left); + curr.right && (stack[idx++] = curr.right); + } + while (idx--) { + curr = stack[idx]; + var currDist = target.array[curr.axis] - curr.data.array[curr.axis]; + var isLeft = currDist < 0; + var needsCheckOtherSide = false; + currDist = currDist * currDist; + if (currDist < minDist) { + currDist = squaredDistance(curr.data, target); + if (currDist < minDist && curr.data !== target) { + minDist = currDist; + nearestNode = curr; + } + needsCheckOtherSide = true; + } + if (isLeft) { + if (needsCheckOtherSide) { + curr.right && (stack[idx++] = curr.right); + } + curr.left && (stack[idx++] = curr.left); + } else { + if (needsCheckOtherSide) { + curr.left && (stack[idx++] = curr.left); + } + curr.right && (stack[idx++] = curr.right); + } + } + return nearestNode.data; + }; + KDTree.prototype._addNearest = function (found, dist, node) { + var nearestNList = this._nearstNList; + for (var i = found - 1; i > 0; i--) { + if (dist >= nearestNList[i - 1].dist) { + break; + } else { + nearestNList[i].dist = nearestNList[i - 1].dist; + nearestNList[i].node = nearestNList[i - 1].node; + } + } + nearestNList[i].dist = dist; + nearestNList[i].node = node; + }; + KDTree.prototype.nearestN = function (target, N, squaredDistance, output) { + if (N <= 0) { + output.length = 0; + return output; + } + var curr = this.root; + var stack = this._stack; + var idx = 0; + var nearestNList = this._nearstNList; + for (var i = 0; i < N; i++) { + if (!nearestNList[i]) { + nearestNList[i] = {}; + } + nearestNList[i].dist = 0; + nearestNList[i].node = null; + } + var currDist = squaredDistance(curr.data, target); + var found = 0; + if (curr.data !== target) { + found++; + this._addNearest(found, currDist, curr); + } + if (target.array[curr.axis] < curr.data.array[curr.axis]) { + curr.right && (stack[idx++] = curr.right); + curr.left && (stack[idx++] = curr.left); + } else { + curr.left && (stack[idx++] = curr.left); + curr.right && (stack[idx++] = curr.right); + } + while (idx--) { + curr = stack[idx]; + var currDist = target.array[curr.axis] - curr.data.array[curr.axis]; + var isLeft = currDist < 0; + var needsCheckOtherSide = false; + currDist = currDist * currDist; + if (found < N || currDist < nearestNList[found - 1].dist) { + currDist = squaredDistance(curr.data, target); + if ((found < N || currDist < nearestNList[found - 1].dist) && curr.data !== target) { + if (found < N) { + found++; + } + this._addNearest(found, currDist, curr); + } + needsCheckOtherSide = true; + } + if (isLeft) { + if (needsCheckOtherSide) { + curr.right && (stack[idx++] = curr.right); + } + curr.left && (stack[idx++] = curr.left); + } else { + if (needsCheckOtherSide) { + curr.left && (stack[idx++] = curr.left); + } + curr.right && (stack[idx++] = curr.right); + } + } + for (var i = 0; i < found; i++) { + output[i] = nearestNList[i].node.data; + } + output.length = found; + return output; + }; + return KDTree; +});define('echarts/data/quickSelect', ['require'], function (require) { + function defaultCompareFunc(a, b) { + return a - b; + } + function swapElement(list, idx0, idx1) { + var tmp = list[idx0]; + list[idx0] = list[idx1]; + list[idx1] = tmp; + } + function select(list, left, right, nth, compareFunc) { + var pivotIdx = left; + while (right > left) { + var pivotIdx = Math.round((right + left) / 2); + var pivotValue = list[pivotIdx]; + swapElement(list, pivotIdx, right); + pivotIdx = left; + for (var i = left; i <= right - 1; i++) { + if (compareFunc(pivotValue, list[i]) >= 0) { + swapElement(list, i, pivotIdx); + pivotIdx++; + } + } + swapElement(list, right, pivotIdx); + if (pivotIdx === nth) { + return pivotIdx; + } else if (pivotIdx < nth) { + left = pivotIdx + 1; + } else { + right = pivotIdx - 1; + } + } + return left; + } + function quickSelect(list, left, right, nth, compareFunc) { + if (arguments.length <= 3) { + nth = left; + if (arguments.length == 2) { + compareFunc = defaultCompareFunc; + } else { + compareFunc = right; + } + left = 0; + right = list.length - 1; + } + return select(list, left, right, nth, compareFunc); + } + return quickSelect; +});define('echarts/component/dataView', [ + 'require', + './base', + '../config', + 'zrender/tool/util', + '../component' +], function (require) { + var Base = require('./base'); + var ecConfig = require('../config'); + var zrUtil = require('zrender/tool/util'); + function DataView(ecTheme, messageCenter, zr, option, myChart) { + Base.call(this, ecTheme, messageCenter, zr, option, myChart); + this.dom = myChart.dom; + this._tDom = document.createElement('div'); + this._textArea = document.createElement('textArea'); + this._buttonRefresh = document.createElement('button'); + this._buttonRefresh.setAttribute('type', 'button'); + this._buttonClose = document.createElement('button'); + this._buttonClose.setAttribute('type', 'button'); + this._hasShow = false; + this._zrHeight = zr.getHeight(); + this._zrWidth = zr.getWidth(); + this._tDom.className = 'echarts-dataview'; + this.hide(); + this.dom.firstChild.appendChild(this._tDom); + if (window.addEventListener) { + this._tDom.addEventListener('click', this._stop); + this._tDom.addEventListener('mousewheel', this._stop); + this._tDom.addEventListener('mousemove', this._stop); + this._tDom.addEventListener('mousedown', this._stop); + this._tDom.addEventListener('mouseup', this._stop); + this._tDom.addEventListener('touchstart', this._stop); + this._tDom.addEventListener('touchmove', this._stop); + this._tDom.addEventListener('touchend', this._stop); + } else { + this._tDom.attachEvent('onclick', this._stop); + this._tDom.attachEvent('onmousewheel', this._stop); + this._tDom.attachEvent('onmousemove', this._stop); + this._tDom.attachEvent('onmousedown', this._stop); + this._tDom.attachEvent('onmouseup', this._stop); + } + } + DataView.prototype = { + type: ecConfig.COMPONENT_TYPE_DATAVIEW, + _lang: [ + 'Data View', + 'close', + 'refresh' + ], + _gCssText: 'position:absolute;' + 'display:block;' + 'overflow:hidden;' + 'transition:height 0.8s,background-color 1s;' + '-moz-transition:height 0.8s,background-color 1s;' + '-webkit-transition:height 0.8s,background-color 1s;' + '-o-transition:height 0.8s,background-color 1s;' + 'z-index:1;' + 'left:0;' + 'top:0;', + hide: function () { + this._sizeCssText = 'width:' + this._zrWidth + 'px;' + 'height:' + 0 + 'px;' + 'background-color:#f0ffff;'; + this._tDom.style.cssText = this._gCssText + this._sizeCssText; + }, + show: function (newOption) { + this._hasShow = true; + var lang = this.query(this.option, 'toolbox.feature.dataView.lang') || this._lang; + this.option = newOption; + this._tDom.innerHTML = '

' + (lang[0] || this._lang[0]) + '

'; + var customContent = this.query(this.option, 'toolbox.feature.dataView.optionToContent'); + if (typeof customContent != 'function') { + this._textArea.value = this._optionToContent(); + } else { + this._textArea = document.createElement('div'); + this._textArea.innerHTML = customContent(this.option); + } + this._textArea.style.cssText = 'display:block;margin:0 0 8px 0;padding:4px 6px;overflow:auto;' + 'width:100%;' + 'height:' + (this._zrHeight - 100) + 'px;'; + this._tDom.appendChild(this._textArea); + this._buttonClose.style.cssText = 'float:right;padding:1px 6px;'; + this._buttonClose.innerHTML = lang[1] || this._lang[1]; + var self = this; + this._buttonClose.onclick = function () { + self.hide(); + }; + this._tDom.appendChild(this._buttonClose); + if (this.query(this.option, 'toolbox.feature.dataView.readOnly') === false) { + this._buttonRefresh.style.cssText = 'float:right;margin-right:10px;padding:1px 6px;'; + this._buttonRefresh.innerHTML = lang[2] || this._lang[2]; + this._buttonRefresh.onclick = function () { + self._save(); + }; + this._textArea.readOnly = false; + this._textArea.style.cursor = 'default'; + } else { + this._buttonRefresh.style.cssText = 'display:none'; + this._textArea.readOnly = true; + 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 i; + var j; + var k; + var len; + var data; + var valueList; + var axisList = []; + var content = ''; + if (this.option.xAxis) { + if (this.option.xAxis instanceof Array) { + axisList = this.option.xAxis; + } else { + axisList = [this.option.xAxis]; + } + for (i = 0, len = axisList.length; i < len; i++) { + if ((axisList[i].type || 'category') == 'category') { + valueList = []; + for (j = 0, k = axisList[i].data.length; j < k; j++) { + valueList.push(this.getDataFromOption(axisList[i].data[j])); + } + content += valueList.join(', ') + '\n\n'; + } + } + } + if (this.option.yAxis) { + if (this.option.yAxis instanceof Array) { + axisList = this.option.yAxis; + } else { + axisList = [this.option.yAxis]; + } + for (i = 0, len = axisList.length; i < len; i++) { + if (axisList[i].type == 'category') { + valueList = []; + for (j = 0, k = axisList[i].data.length; j < k; j++) { + valueList.push(this.getDataFromOption(axisList[i].data[j])); + } + content += valueList.join(', ') + '\n\n'; + } + } + } + var series = this.option.series; + var itemName; + for (i = 0, len = series.length; i < len; i++) { + valueList = []; + for (j = 0, k = series[i].data.length; j < k; j++) { + data = series[i].data[j]; + if (series[i].type == ecConfig.CHART_TYPE_PIE || series[i].type == ecConfig.CHART_TYPE_MAP) { + itemName = (data.name || '-') + ':'; + } else { + itemName = ''; + } + if (series[i].type == ecConfig.CHART_TYPE_SCATTER) { + data = this.getDataFromOption(data).join(', '); + } + valueList.push(itemName + this.getDataFromOption(data)); + } + content += (series[i].name || '-') + ' : \n'; + content += valueList.join(series[i].type == ecConfig.CHART_TYPE_SCATTER ? '\n' : ', '); + content += '\n\n'; + } + return content; + }, + _save: function () { + var customContent = this.query(this.option, 'toolbox.feature.dataView.contentToOption'); + if (typeof customContent != 'function') { + var text = this._textArea.value.split('\n'); + var content = []; + for (var i = 0, l = text.length; i < l; i++) { + text[i] = this._trim(text[i]); + if (text[i] !== '') { + content.push(text[i]); + } + } + this._contentToOption(content); + } else { + customContent(this._textArea, this.option); + } + this.hide(); + var self = this; + setTimeout(function () { + self.messageCenter && self.messageCenter.dispatch(ecConfig.EVENT.DATA_VIEW_CHANGED, null, { option: self.option }, self.myChart); + }, self.canvasSupported ? 800 : 100); + }, + _contentToOption: function (content) { + var i; + var j; + var k; + var len; + var data; + var axisList = []; + var contentIdx = 0; + var contentValueList; + var value; + if (this.option.xAxis) { + if (this.option.xAxis instanceof Array) { + axisList = this.option.xAxis; + } else { + axisList = [this.option.xAxis]; + } + for (i = 0, len = axisList.length; i < len; i++) { + if ((axisList[i].type || 'category') == 'category') { + contentValueList = content[contentIdx].split(','); + for (j = 0, k = axisList[i].data.length; j < k; j++) { + value = this._trim(contentValueList[j] || ''); + data = axisList[i].data[j]; + if (typeof axisList[i].data[j].value != 'undefined') { + axisList[i].data[j].value = value; + } else { + axisList[i].data[j] = value; + } + } + contentIdx++; + } + } + } + if (this.option.yAxis) { + if (this.option.yAxis instanceof Array) { + axisList = this.option.yAxis; + } else { + axisList = [this.option.yAxis]; + } + for (i = 0, len = axisList.length; i < len; i++) { + if (axisList[i].type == 'category') { + contentValueList = content[contentIdx].split(','); + for (j = 0, k = axisList[i].data.length; j < k; j++) { + value = this._trim(contentValueList[j] || ''); + data = axisList[i].data[j]; + if (typeof axisList[i].data[j].value != 'undefined') { + axisList[i].data[j].value = value; + } else { + axisList[i].data[j] = value; + } + } + contentIdx++; + } + } + } + var series = this.option.series; + for (i = 0, len = series.length; i < len; i++) { + contentIdx++; + if (series[i].type == ecConfig.CHART_TYPE_SCATTER) { + for (var j = 0, k = series[i].data.length; j < k; j++) { + contentValueList = content[contentIdx]; + value = contentValueList.replace(' ', '').split(','); + if (typeof series[i].data[j].value != 'undefined') { + series[i].data[j].value = value; + } else { + series[i].data[j] = value; + } + contentIdx++; + } + } else { + contentValueList = content[contentIdx].split(','); + for (var j = 0, k = series[i].data.length; j < k; j++) { + value = (contentValueList[j] || '').replace(/.*:/, ''); + value = this._trim(value); + value = value != '-' && value !== '' ? value - 0 : '-'; + if (typeof series[i].data[j].value != 'undefined') { + series[i].data[j].value = value; + } else { + series[i].data[j] = value; + } + } + contentIdx++; + } + } + }, + _trim: function (str) { + var trimer = new RegExp('(^[\\s\\t\\xa0\\u3000]+)|([\\u3000\\xa0\\s\\t]+$)', 'g'); + return str.replace(trimer, ''); + }, + _stop: function (e) { + e = e || window.event; + if (e.stopPropagation) { + e.stopPropagation(); + } else { + e.cancelBubble = true; + } + }, + resize: function () { + this._zrHeight = this.zr.getHeight(); + this._zrWidth = this.zr.getWidth(); + if (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 () { + if (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); + } else { + this._tDom.detachEvent('onclick', this._stop); + this._tDom.detachEvent('onmousewheel', this._stop); + this._tDom.detachEvent('onmousemove', this._stop); + this._tDom.detachEvent('onmousedown', this._stop); + this._tDom.detachEvent('onmouseup', this._stop); + } + this._buttonRefresh.onclick = null; + this._buttonClose.onclick = null; + if (this._hasShow) { + this._tDom.removeChild(this._textArea); + this._tDom.removeChild(this._buttonRefresh); + this._tDom.removeChild(this._buttonClose); + } + this._textArea = null; + this._buttonRefresh = null; + this._buttonClose = null; + this.dom.firstChild.removeChild(this._tDom); + this._tDom = null; + } + }; + zrUtil.inherits(DataView, Base); + require('../component').define('dataView', DataView); + return DataView; +});define('echarts/util/shape/Cross', [ + 'require', + 'zrender/shape/Base', + 'zrender/shape/Line', + 'zrender/tool/util', + './normalIsCover' +], function (require) { + var Base = require('zrender/shape/Base'); + var LineShape = require('zrender/shape/Line'); + var zrUtil = require('zrender/tool/util'); + function Cross(options) { + Base.call(this, options); + } + Cross.prototype = { + type: 'cross', + buildPath: function (ctx, style) { + var rect = style.rect; + style.xStart = rect.x; + style.xEnd = rect.x + rect.width; + style.yStart = style.yEnd = style.y; + LineShape.prototype.buildPath(ctx, style); + style.xStart = style.xEnd = style.x; + style.yStart = rect.y; + style.yEnd = rect.y + rect.height; + LineShape.prototype.buildPath(ctx, style); + }, + getRect: function (style) { + return style.rect; + }, + isCover: require('./normalIsCover') + }; + zrUtil.inherits(Cross, Base); + return Cross; +});define('zrender/shape/Sector', [ + 'require', + '../tool/math', + '../tool/computeBoundingBox', + '../tool/vector', + './Base', + '../tool/util' +], function (require) { + var math = require('../tool/math'); + var computeBoundingBox = require('../tool/computeBoundingBox'); + var vec2 = require('../tool/vector'); + var Base = require('./Base'); + var min0 = vec2.create(); + var min1 = vec2.create(); + var max0 = vec2.create(); + var max1 = vec2.create(); + var Sector = function (options) { + Base.call(this, options); + }; + Sector.prototype = { + type: 'sector', + buildPath: function (ctx, style) { + var x = style.x; + var y = style.y; + var r0 = style.r0 || 0; + var r = style.r; + var startAngle = style.startAngle; + var endAngle = style.endAngle; + var clockWise = style.clockWise || false; + startAngle = math.degreeToRadian(startAngle); + endAngle = math.degreeToRadian(endAngle); + if (!clockWise) { + startAngle = -startAngle; + endAngle = -endAngle; + } + var unitX = math.cos(startAngle); + var unitY = math.sin(startAngle); + ctx.moveTo(unitX * r0 + x, unitY * r0 + y); + ctx.lineTo(unitX * r + x, unitY * r + y); + ctx.arc(x, y, r, startAngle, endAngle, !clockWise); + ctx.lineTo(math.cos(endAngle) * r0 + x, math.sin(endAngle) * r0 + y); + if (r0 !== 0) { + ctx.arc(x, y, r0, endAngle, startAngle, clockWise); + } + ctx.closePath(); + return; + }, + getRect: function (style) { + if (style.__rect) { + return style.__rect; + } + var x = style.x; + var y = style.y; + var r0 = style.r0 || 0; + var r = style.r; + var startAngle = math.degreeToRadian(style.startAngle); + var endAngle = math.degreeToRadian(style.endAngle); + var clockWise = style.clockWise; + if (!clockWise) { + startAngle = -startAngle; + endAngle = -endAngle; + } + if (r0 > 1) { + computeBoundingBox.arc(x, y, r0, startAngle, endAngle, !clockWise, min0, max0); + } else { + min0[0] = max0[0] = x; + min0[1] = max0[1] = y; + } + computeBoundingBox.arc(x, y, r, startAngle, endAngle, !clockWise, min1, max1); + vec2.min(min0, min0, min1); + vec2.max(max0, max0, max1); + style.__rect = { + x: min0[0], + y: min0[1], + width: max0[0] - min0[0], + height: max0[1] - min0[1] + }; + return style.__rect; + } + }; + require('../tool/util').inherits(Sector, Base); + return Sector; +});define('echarts/util/shape/Candle', [ + 'require', + 'zrender/shape/Base', + 'zrender/tool/util', + './normalIsCover' +], function (require) { + var Base = require('zrender/shape/Base'); + var zrUtil = require('zrender/tool/util'); + function Candle(options) { + Base.call(this, options); + } + Candle.prototype = { + type: 'candle', + _numberOrder: function (a, b) { + return b - a; + }, + buildPath: function (ctx, style) { + var yList = zrUtil.clone(style.y).sort(this._numberOrder); + ctx.moveTo(style.x, yList[3]); + ctx.lineTo(style.x, yList[2]); + ctx.moveTo(style.x - style.width / 2, yList[2]); + ctx.rect(style.x - style.width / 2, yList[2], style.width, yList[1] - yList[2]); + ctx.moveTo(style.x, yList[1]); + ctx.lineTo(style.x, yList[0]); + }, + getRect: function (style) { + if (!style.__rect) { + var lineWidth = 0; + if (style.brushType == 'stroke' || style.brushType == 'fill') { + lineWidth = style.lineWidth || 1; + } + var yList = zrUtil.clone(style.y).sort(this._numberOrder); + style.__rect = { + x: Math.round(style.x - style.width / 2 - lineWidth / 2), + y: Math.round(yList[3] - lineWidth / 2), + width: style.width + lineWidth, + height: yList[0] - yList[3] + lineWidth + }; + } + return style.__rect; + }, + isCover: require('./normalIsCover') + }; + zrUtil.inherits(Candle, Base); + return Candle; +});define('zrender/tool/computeBoundingBox', [ + 'require', + './vector', + './curve' +], function (require) { + var vec2 = require('./vector'); + var curve = require('./curve'); + function computeBoundingBox(points, min, max) { + if (points.length === 0) { + return; + } + var left = points[0][0]; + var right = points[0][0]; + var top = points[0][1]; + var bottom = points[0][1]; + for (var i = 1; i < points.length; i++) { + var p = points[i]; + if (p[0] < left) { + left = p[0]; + } + if (p[0] > right) { + right = p[0]; + } + if (p[1] < top) { + top = p[1]; + } + if (p[1] > bottom) { + bottom = p[1]; + } + } + min[0] = left; + min[1] = top; + max[0] = right; + max[1] = bottom; + } + function computeCubeBezierBoundingBox(p0, p1, p2, p3, min, max) { + var xDim = []; + curve.cubicExtrema(p0[0], p1[0], p2[0], p3[0], xDim); + for (var i = 0; i < xDim.length; i++) { + xDim[i] = curve.cubicAt(p0[0], p1[0], p2[0], p3[0], xDim[i]); + } + var yDim = []; + curve.cubicExtrema(p0[1], p1[1], p2[1], p3[1], yDim); + for (var i = 0; i < yDim.length; i++) { + yDim[i] = curve.cubicAt(p0[1], p1[1], p2[1], p3[1], yDim[i]); + } + xDim.push(p0[0], p3[0]); + yDim.push(p0[1], p3[1]); + var left = Math.min.apply(null, xDim); + var right = Math.max.apply(null, xDim); + var top = Math.min.apply(null, yDim); + var bottom = Math.max.apply(null, yDim); + min[0] = left; + min[1] = top; + max[0] = right; + max[1] = bottom; + } + function computeQuadraticBezierBoundingBox(p0, p1, p2, min, max) { + var t1 = curve.quadraticExtremum(p0[0], p1[0], p2[0]); + var t2 = curve.quadraticExtremum(p0[1], p1[1], p2[1]); + t1 = Math.max(Math.min(t1, 1), 0); + t2 = Math.max(Math.min(t2, 1), 0); + var ct1 = 1 - t1; + var ct2 = 1 - t2; + var x1 = ct1 * ct1 * p0[0] + 2 * ct1 * t1 * p1[0] + t1 * t1 * p2[0]; + var y1 = ct1 * ct1 * p0[1] + 2 * ct1 * t1 * p1[1] + t1 * t1 * p2[1]; + var x2 = ct2 * ct2 * p0[0] + 2 * ct2 * t2 * p1[0] + t2 * t2 * p2[0]; + var y2 = ct2 * ct2 * p0[1] + 2 * ct2 * t2 * p1[1] + t2 * t2 * p2[1]; + min[0] = Math.min(p0[0], p2[0], x1, x2); + min[1] = Math.min(p0[1], p2[1], y1, y2); + max[0] = Math.max(p0[0], p2[0], x1, x2); + max[1] = Math.max(p0[1], p2[1], y1, y2); + } + var start = vec2.create(); + var end = vec2.create(); + var extremity = vec2.create(); + var computeArcBoundingBox = function (x, y, r, startAngle, endAngle, anticlockwise, min, max) { + if (Math.abs(startAngle - endAngle) >= Math.PI * 2) { + min[0] = x - r; + min[1] = y - r; + max[0] = x + r; + max[1] = y + r; + return; + } + start[0] = Math.cos(startAngle) * r + x; + start[1] = Math.sin(startAngle) * r + y; + end[0] = Math.cos(endAngle) * r + x; + end[1] = Math.sin(endAngle) * r + y; + vec2.min(min, start, end); + vec2.max(max, start, end); + startAngle = startAngle % (Math.PI * 2); + if (startAngle < 0) { + startAngle = startAngle + Math.PI * 2; + } + endAngle = endAngle % (Math.PI * 2); + if (endAngle < 0) { + endAngle = endAngle + Math.PI * 2; + } + if (startAngle > endAngle && !anticlockwise) { + endAngle += Math.PI * 2; + } else if (startAngle < endAngle && anticlockwise) { + startAngle += Math.PI * 2; + } + if (anticlockwise) { + var tmp = endAngle; + endAngle = startAngle; + startAngle = tmp; + } + for (var angle = 0; angle < endAngle; angle += Math.PI / 2) { + if (angle > startAngle) { + extremity[0] = Math.cos(angle) * r + x; + extremity[1] = Math.sin(angle) * r + y; + vec2.min(min, extremity, min); + vec2.max(max, extremity, max); + } + } + }; + computeBoundingBox.cubeBezier = computeCubeBezierBoundingBox; + computeBoundingBox.quadraticBezier = computeQuadraticBezierBoundingBox; + computeBoundingBox.arc = computeArcBoundingBox; + return computeBoundingBox; +});define('echarts/util/shape/Chain', [ + 'require', + 'zrender/shape/Base', + './Icon', + 'zrender/shape/util/dashedLineTo', + 'zrender/tool/util', + 'zrender/tool/matrix' +], function (require) { + var Base = require('zrender/shape/Base'); + var IconShape = require('./Icon'); + var dashedLineTo = require('zrender/shape/util/dashedLineTo'); + var zrUtil = require('zrender/tool/util'); + var matrix = require('zrender/tool/matrix'); + function Chain(options) { + Base.call(this, options); + } + Chain.prototype = { + type: 'chain', + brush: function (ctx, isHighlight) { + var style = this.style; + if (isHighlight) { + style = this.getHighlightStyle(style, this.highlightStyle || {}); + } + ctx.save(); + this.setContext(ctx, style); + this.setTransform(ctx); + ctx.save(); + ctx.beginPath(); + this.buildLinePath(ctx, style); + ctx.stroke(); + ctx.restore(); + this.brushSymbol(ctx, style); + ctx.restore(); + return; + }, + buildLinePath: function (ctx, style) { + var x = style.x; + var y = style.y + 5; + var width = style.width; + var height = style.height / 2 - 10; + ctx.moveTo(x, y); + ctx.lineTo(x, y + height); + ctx.moveTo(x + width, y); + ctx.lineTo(x + width, y + height); + ctx.moveTo(x, y + height / 2); + if (!style.lineType || style.lineType == 'solid') { + ctx.lineTo(x + width, y + height / 2); + } else if (style.lineType == 'dashed' || style.lineType == 'dotted') { + var dashLength = (style.lineWidth || 1) * (style.lineType == 'dashed' ? 5 : 1); + dashedLineTo(ctx, x, y + height / 2, x + width, y + height / 2, dashLength); + } + }, + brushSymbol: function (ctx, style) { + var y = style.y + style.height / 4; + ctx.save(); + var chainPoint = style.chainPoint; + var curPoint; + for (var idx = 0, l = chainPoint.length; idx < l; idx++) { + curPoint = chainPoint[idx]; + if (curPoint.symbol != 'none') { + ctx.beginPath(); + var symbolSize = curPoint.symbolSize; + IconShape.prototype.buildPath(ctx, { + iconType: curPoint.symbol, + x: curPoint.x - symbolSize, + y: y - symbolSize, + width: symbolSize * 2, + height: symbolSize * 2, + n: curPoint.n + }); + ctx.fillStyle = curPoint.isEmpty ? '#fff' : style.strokeColor; + ctx.closePath(); + ctx.fill(); + ctx.stroke(); + } + if (curPoint.showLabel) { + ctx.font = curPoint.textFont; + ctx.fillStyle = curPoint.textColor; + ctx.textAlign = curPoint.textAlign; + ctx.textBaseline = curPoint.textBaseline; + if (curPoint.rotation) { + ctx.save(); + this._updateTextTransform(ctx, curPoint.rotation); + ctx.fillText(curPoint.name, curPoint.textX, curPoint.textY); + ctx.restore(); + } else { + ctx.fillText(curPoint.name, curPoint.textX, curPoint.textY); + } + } + } + ctx.restore(); + }, + _updateTextTransform: function (ctx, rotation) { + var _transform = matrix.create(); + matrix.identity(_transform); + if (rotation[0] !== 0) { + var originX = rotation[1] || 0; + var originY = rotation[2] || 0; + if (originX || originY) { + matrix.translate(_transform, _transform, [ + -originX, + -originY + ]); + } + matrix.rotate(_transform, _transform, rotation[0]); + if (originX || originY) { + matrix.translate(_transform, _transform, [ + originX, + originY + ]); + } + } + ctx.transform.apply(ctx, _transform); + }, + isCover: function (x, y) { + var rect = this.style; + if (x >= rect.x && x <= rect.x + rect.width && y >= rect.y && y <= rect.y + rect.height) { + return true; + } else { + return false; + } + } + }; + zrUtil.inherits(Chain, Base); + return Chain; +});define('zrender/shape/Ring', [ + 'require', + './Base', + '../tool/util' +], function (require) { + var Base = require('./Base'); + var Ring = function (options) { + Base.call(this, options); + }; + Ring.prototype = { + type: 'ring', + buildPath: function (ctx, style) { + ctx.arc(style.x, style.y, style.r, 0, Math.PI * 2, false); + ctx.moveTo(style.x + style.r0, style.y); + ctx.arc(style.x, style.y, style.r0, 0, Math.PI * 2, true); + return; + }, + getRect: function (style) { + if (style.__rect) { + return style.__rect; + } + var lineWidth; + if (style.brushType == 'stroke' || style.brushType == 'fill') { + lineWidth = style.lineWidth || 1; + } else { + lineWidth = 0; + } + style.__rect = { + x: Math.round(style.x - style.r - lineWidth / 2), + y: Math.round(style.y - style.r - lineWidth / 2), + width: style.r * 2 + lineWidth, + height: style.r * 2 + lineWidth + }; + return style.__rect; + } + }; + require('../tool/util').inherits(Ring, Base); + return Ring; +});define('echarts/component/axis', [ + 'require', + './base', + 'zrender/shape/Line', + '../config', + '../util/ecData', + 'zrender/tool/util', + 'zrender/tool/color', + './categoryAxis', + './valueAxis', + '../component' +], function (require) { + var Base = require('./base'); + var LineShape = require('zrender/shape/Line'); + var ecConfig = require('../config'); + var ecData = require('../util/ecData'); + var zrUtil = require('zrender/tool/util'); + var zrColor = require('zrender/tool/color'); + function Axis(ecTheme, messageCenter, zr, option, myChart, axisType) { + Base.call(this, ecTheme, messageCenter, zr, option, myChart); + this.axisType = axisType; + this._axisList = []; + this.refresh(option); + } + Axis.prototype = { + type: ecConfig.COMPONENT_TYPE_AXIS, + axisBase: { + _buildAxisLine: function () { + var lineWidth = this.option.axisLine.lineStyle.width; + var halfLineWidth = lineWidth / 2; + var axShape = { + _axisShape: 'axisLine', + zlevel: this.getZlevelBase(), + z: this.getZBase() + 3, + hoverable: false + }; + var grid = this.grid; + switch (this.option.position) { + case 'left': + axShape.style = { + xStart: grid.getX() - halfLineWidth, + yStart: grid.getYend(), + xEnd: grid.getX() - halfLineWidth, + yEnd: grid.getY(), + lineCap: 'round' + }; + break; + case 'right': + axShape.style = { + xStart: grid.getXend() + halfLineWidth, + yStart: grid.getYend(), + xEnd: grid.getXend() + halfLineWidth, + yEnd: grid.getY(), + lineCap: 'round' + }; + break; + case 'bottom': + axShape.style = { + xStart: grid.getX(), + yStart: grid.getYend() + halfLineWidth, + xEnd: grid.getXend(), + yEnd: grid.getYend() + halfLineWidth, + lineCap: 'round' + }; + break; + case 'top': + axShape.style = { + xStart: grid.getX(), + yStart: grid.getY() - halfLineWidth, + xEnd: grid.getXend(), + yEnd: grid.getY() - halfLineWidth, + lineCap: 'round' + }; + break; + } + var style = axShape.style; + if (this.option.name !== '') { + style.text = this.option.name; + style.textPosition = this.option.nameLocation; + style.textFont = this.getFont(this.option.nameTextStyle); + if (this.option.nameTextStyle.align) { + style.textAlign = this.option.nameTextStyle.align; + } + if (this.option.nameTextStyle.baseline) { + style.textBaseline = this.option.nameTextStyle.baseline; + } + if (this.option.nameTextStyle.color) { + style.textColor = this.option.nameTextStyle.color; + } + } + style.strokeColor = this.option.axisLine.lineStyle.color; + style.lineWidth = lineWidth; + if (this.isHorizontal()) { + style.yStart = style.yEnd = this.subPixelOptimize(style.yEnd, lineWidth); + } else { + style.xStart = style.xEnd = this.subPixelOptimize(style.xEnd, lineWidth); + } + style.lineType = this.option.axisLine.lineStyle.type; + axShape = new LineShape(axShape); + this.shapeList.push(axShape); + }, + _axisLabelClickable: function (clickable, axShape) { + if (clickable) { + ecData.pack(axShape, undefined, -1, undefined, -1, axShape.style.text); + axShape.hoverable = true; + axShape.clickable = true; + axShape.highlightStyle = { + color: zrColor.lift(axShape.style.color, 1), + brushType: 'fill' + }; + return axShape; + } else { + return axShape; + } + }, + refixAxisShape: function (zeroX, zeroY) { + if (!this.option.axisLine.onZero) { + return; + } + var tickLength; + if (this.isHorizontal() && zeroY != null) { + for (var i = 0, l = this.shapeList.length; i < l; i++) { + if (this.shapeList[i]._axisShape === 'axisLine') { + this.shapeList[i].style.yStart = this.shapeList[i].style.yEnd = this.subPixelOptimize(zeroY, this.shapeList[i].stylelineWidth); + this.zr.modShape(this.shapeList[i].id); + } else if (this.shapeList[i]._axisShape === 'axisTick') { + tickLength = this.shapeList[i].style.yEnd - this.shapeList[i].style.yStart; + this.shapeList[i].style.yStart = zeroY - tickLength; + this.shapeList[i].style.yEnd = zeroY; + this.zr.modShape(this.shapeList[i].id); + } + } + } + if (!this.isHorizontal() && zeroX != null) { + for (var i = 0, l = this.shapeList.length; i < l; i++) { + if (this.shapeList[i]._axisShape === 'axisLine') { + this.shapeList[i].style.xStart = this.shapeList[i].style.xEnd = this.subPixelOptimize(zeroX, this.shapeList[i].stylelineWidth); + this.zr.modShape(this.shapeList[i].id); + } else if (this.shapeList[i]._axisShape === 'axisTick') { + tickLength = this.shapeList[i].style.xEnd - this.shapeList[i].style.xStart; + this.shapeList[i].style.xStart = zeroX; + this.shapeList[i].style.xEnd = zeroX + tickLength; + this.zr.modShape(this.shapeList[i].id); + } + } + } + }, + getPosition: function () { + return this.option.position; + }, + isHorizontal: function () { + return this.option.position === 'bottom' || this.option.position === 'top'; + } + }, + reformOption: function (opt) { + if (!opt || opt instanceof Array && opt.length === 0) { + opt = [{ type: ecConfig.COMPONENT_TYPE_AXIS_VALUE }]; + } else if (!(opt instanceof Array)) { + opt = [opt]; + } + if (opt.length > 2) { + opt = [ + opt[0], + opt[1] + ]; + } + if (this.axisType === 'xAxis') { + if (!opt[0].position || opt[0].position != 'bottom' && opt[0].position != 'top') { + opt[0].position = 'bottom'; + } + if (opt.length > 1) { + opt[1].position = opt[0].position === 'bottom' ? 'top' : 'bottom'; + } + for (var i = 0, l = opt.length; i < l; i++) { + opt[i].type = opt[i].type || 'category'; + opt[i].xAxisIndex = i; + opt[i].yAxisIndex = -1; + } + } else { + if (!opt[0].position || opt[0].position != 'left' && opt[0].position != 'right') { + opt[0].position = 'left'; + } + if (opt.length > 1) { + opt[1].position = opt[0].position === 'left' ? 'right' : 'left'; + } + for (var i = 0, l = opt.length; i < l; i++) { + opt[i].type = opt[i].type || 'value'; + opt[i].xAxisIndex = -1; + opt[i].yAxisIndex = i; + } + } + return opt; + }, + refresh: function (newOption) { + var axisOption; + if (newOption) { + this.option = newOption; + if (this.axisType === 'xAxis') { + this.option.xAxis = this.reformOption(newOption.xAxis); + axisOption = this.option.xAxis; + } else { + this.option.yAxis = this.reformOption(newOption.yAxis); + axisOption = this.option.yAxis; + } + this.series = newOption.series; + } + var CategoryAxis = require('./categoryAxis'); + var ValueAxis = require('./valueAxis'); + var len = Math.max(axisOption && axisOption.length || 0, this._axisList.length); + for (var i = 0; i < len; i++) { + if (this._axisList[i] && newOption && (!axisOption[i] || this._axisList[i].type != axisOption[i].type)) { + this._axisList[i].dispose && this._axisList[i].dispose(); + this._axisList[i] = false; + } + if (this._axisList[i]) { + this._axisList[i].refresh && this._axisList[i].refresh(axisOption ? axisOption[i] : false, this.series); + } else if (axisOption && axisOption[i]) { + this._axisList[i] = axisOption[i].type === 'category' ? new CategoryAxis(this.ecTheme, this.messageCenter, this.zr, axisOption[i], this.myChart, this.axisBase) : new ValueAxis(this.ecTheme, this.messageCenter, this.zr, axisOption[i], this.myChart, this.axisBase, this.series); + } + } + }, + getAxis: function (idx) { + return this._axisList[idx]; + }, + getAxisCount: function () { + return this._axisList.length; + }, + clear: function () { + for (var i = 0, l = this._axisList.length; i < l; i++) { + this._axisList[i].dispose && this._axisList[i].dispose(); + } + this._axisList = []; + } + }; + zrUtil.inherits(Axis, Base); + require('../component').define('axis', Axis); + return Axis; +});define('echarts/component/grid', [ + 'require', + './base', + 'zrender/shape/Rectangle', + '../config', + 'zrender/tool/util', + '../component' +], function (require) { + var Base = require('./base'); + var RectangleShape = require('zrender/shape/Rectangle'); + var ecConfig = require('../config'); + ecConfig.grid = { + zlevel: 0, + z: 0, + x: 80, + y: 60, + x2: 80, + y2: 60, + backgroundColor: 'rgba(0,0,0,0)', + borderWidth: 1, + borderColor: '#ccc' + }; + var zrUtil = require('zrender/tool/util'); + function Grid(ecTheme, messageCenter, zr, option, myChart) { + Base.call(this, ecTheme, messageCenter, zr, option, myChart); + this.refresh(option); + } + Grid.prototype = { + type: ecConfig.COMPONENT_TYPE_GRID, + getX: function () { + return this._x; + }, + getY: function () { + return this._y; + }, + getWidth: function () { + return this._width; + }, + getHeight: function () { + return this._height; + }, + getXend: function () { + return this._x + this._width; + }, + getYend: function () { + return this._y + this._height; + }, + getArea: function () { + return { + x: this._x, + y: this._y, + width: this._width, + height: this._height + }; + }, + getBbox: function () { + return [ + [ + this._x, + this._y + ], + [ + this.getXend(), + this.getYend() + ] + ]; + }, + refixAxisShape: function (component) { + var zeroX; + var zeroY; + var axisList = component.xAxis._axisList.concat(component.yAxis ? component.yAxis._axisList : []); + var len = axisList.length; + var axis; + while (len--) { + axis = axisList[len]; + if (axis.type == ecConfig.COMPONENT_TYPE_AXIS_VALUE && axis._min < 0 && axis._max >= 0) { + axis.isHorizontal() ? zeroX = axis.getCoord(0) : zeroY = axis.getCoord(0); + } + } + if (typeof zeroX != 'undefined' || typeof zeroY != 'undefined') { + len = axisList.length; + while (len--) { + axisList[len].refixAxisShape(zeroX, zeroY); + } + } + }, + refresh: function (newOption) { + if (newOption || this._zrWidth != this.zr.getWidth() || this._zrHeight != this.zr.getHeight()) { + this.clear(); + this.option = newOption || this.option; + this.option.grid = this.reformOption(this.option.grid); + var gridOption = this.option.grid; + this._zrWidth = this.zr.getWidth(); + this._zrHeight = this.zr.getHeight(); + this._x = this.parsePercent(gridOption.x, this._zrWidth); + this._y = this.parsePercent(gridOption.y, this._zrHeight); + var x2 = this.parsePercent(gridOption.x2, this._zrWidth); + var y2 = this.parsePercent(gridOption.y2, this._zrHeight); + if (typeof gridOption.width == 'undefined') { + this._width = this._zrWidth - this._x - x2; + } else { + this._width = this.parsePercent(gridOption.width, this._zrWidth); + } + this._width = this._width <= 0 ? 10 : this._width; + if (typeof gridOption.height == 'undefined') { + this._height = this._zrHeight - this._y - y2; + } else { + this._height = this.parsePercent(gridOption.height, this._zrHeight); + } + this._height = this._height <= 0 ? 10 : this._height; + this._x = this.subPixelOptimize(this._x, gridOption.borderWidth); + this._y = this.subPixelOptimize(this._y, gridOption.borderWidth); + this.shapeList.push(new RectangleShape({ + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: false, + style: { + x: this._x, + y: this._y, + width: this._width, + height: this._height, + brushType: gridOption.borderWidth > 0 ? 'both' : 'fill', + color: gridOption.backgroundColor, + strokeColor: gridOption.borderColor, + lineWidth: gridOption.borderWidth + } + })); + this.zr.addShape(this.shapeList[0]); + } + } + }; + zrUtil.inherits(Grid, Base); + require('../component').define('grid', Grid); + return Grid; +});define('echarts/component/dataZoom', [ + 'require', + './base', + 'zrender/shape/Rectangle', + 'zrender/shape/Polygon', + '../util/shape/Icon', + '../config', + '../util/date', + 'zrender/tool/util', + '../component' +], function (require) { + var Base = require('./base'); + var RectangleShape = require('zrender/shape/Rectangle'); + var PolygonShape = require('zrender/shape/Polygon'); + var IconShape = require('../util/shape/Icon'); + var ecConfig = require('../config'); + ecConfig.dataZoom = { + zlevel: 0, + z: 4, + show: false, + orient: 'horizontal', + backgroundColor: 'rgba(0,0,0,0)', + dataBackgroundColor: '#eee', + fillerColor: 'rgba(144,197,237,0.2)', + handleColor: 'rgba(70,130,180,0.8)', + handleSize: 8, + showDetail: true, + realtime: true + }; + var ecDate = require('../util/date'); + var zrUtil = require('zrender/tool/util'); + function DataZoom(ecTheme, messageCenter, zr, option, myChart) { + Base.call(this, ecTheme, messageCenter, zr, option, myChart); + var self = this; + self._ondrift = function (dx, dy) { + return self.__ondrift(this, dx, dy); + }; + self._ondragend = function () { + return self.__ondragend(); + }; + this._fillerSize = 30; + this._isSilence = false; + this._zoom = {}; + this.option.dataZoom = this.reformOption(this.option.dataZoom); + this.zoomOption = this.option.dataZoom; + this._handleSize = this.zoomOption.handleSize; + if (!this.myChart.canvasSupported) { + this.zoomOption.realtime = false; + } + this._location = this._getLocation(); + this._zoom = this._getZoom(); + this._backupData(); + if (this.option.dataZoom.show) { + this._buildShape(); + } + this._syncData(); + } + DataZoom.prototype = { + type: ecConfig.COMPONENT_TYPE_DATAZOOM, + _buildShape: function () { + this._buildBackground(); + this._buildFiller(); + this._buildHandle(); + this._buildFrame(); + for (var i = 0, l = this.shapeList.length; i < l; i++) { + this.zr.addShape(this.shapeList[i]); + } + this._syncFrameShape(); + }, + _getLocation: function () { + var x; + var y; + var width; + var height; + var grid = this.component.grid; + if (this.zoomOption.orient == 'horizontal') { + width = this.zoomOption.width || grid.getWidth(); + height = this.zoomOption.height || this._fillerSize; + x = this.zoomOption.x != null ? this.zoomOption.x : grid.getX(); + y = this.zoomOption.y != null ? this.zoomOption.y : this.zr.getHeight() - height - 2; + } else { + width = this.zoomOption.width || this._fillerSize; + height = this.zoomOption.height || grid.getHeight(); + x = this.zoomOption.x != null ? this.zoomOption.x : 2; + y = this.zoomOption.y != null ? this.zoomOption.y : grid.getY(); + } + return { + x: x, + y: y, + width: width, + height: height + }; + }, + _getZoom: function () { + var series = this.option.series; + var xAxis = this.option.xAxis; + if (xAxis && !(xAxis instanceof Array)) { + xAxis = [xAxis]; + this.option.xAxis = xAxis; + } + var yAxis = this.option.yAxis; + if (yAxis && !(yAxis instanceof Array)) { + yAxis = [yAxis]; + this.option.yAxis = yAxis; + } + var zoomSeriesIndex = []; + var xAxisIndex; + var yAxisIndex; + var zOptIdx = this.zoomOption.xAxisIndex; + if (xAxis && zOptIdx == null) { + xAxisIndex = []; + for (var i = 0, l = xAxis.length; i < l; i++) { + if (xAxis[i].type == 'category' || xAxis[i].type == null) { + xAxisIndex.push(i); + } + } + } else { + if (zOptIdx instanceof Array) { + xAxisIndex = zOptIdx; + } else if (zOptIdx != null) { + xAxisIndex = [zOptIdx]; + } else { + xAxisIndex = []; + } + } + zOptIdx = this.zoomOption.yAxisIndex; + if (yAxis && zOptIdx == null) { + yAxisIndex = []; + for (var i = 0, l = yAxis.length; i < l; i++) { + if (yAxis[i].type == 'category') { + yAxisIndex.push(i); + } + } + } else { + if (zOptIdx instanceof Array) { + yAxisIndex = zOptIdx; + } else if (zOptIdx != null) { + yAxisIndex = [zOptIdx]; + } else { + yAxisIndex = []; + } + } + var serie; + for (var i = 0, l = series.length; i < l; i++) { + serie = series[i]; + if (serie.type != ecConfig.CHART_TYPE_LINE && serie.type != ecConfig.CHART_TYPE_BAR && serie.type != ecConfig.CHART_TYPE_SCATTER && serie.type != ecConfig.CHART_TYPE_K) { + continue; + } + for (var j = 0, k = xAxisIndex.length; j < k; j++) { + if (xAxisIndex[j] == (serie.xAxisIndex || 0)) { + zoomSeriesIndex.push(i); + break; + } + } + for (var j = 0, k = yAxisIndex.length; j < k; j++) { + if (yAxisIndex[j] == (serie.yAxisIndex || 0)) { + zoomSeriesIndex.push(i); + break; + } + } + if (this.zoomOption.xAxisIndex == null && this.zoomOption.yAxisIndex == null && serie.data && this.getDataFromOption(serie.data[0]) instanceof Array && (serie.type == ecConfig.CHART_TYPE_SCATTER || serie.type == ecConfig.CHART_TYPE_LINE || serie.type == ecConfig.CHART_TYPE_BAR)) { + zoomSeriesIndex.push(i); + } + } + var start = this._zoom.start != null ? this._zoom.start : this.zoomOption.start != null ? this.zoomOption.start : 0; + var end = this._zoom.end != null ? this._zoom.end : this.zoomOption.end != null ? this.zoomOption.end : 100; + if (start > end) { + start = start + end; + end = start - end; + start = start - end; + } + var size = Math.round((end - start) / 100 * (this.zoomOption.orient == 'horizontal' ? this._location.width : this._location.height)); + return { + start: start, + end: end, + start2: 0, + end2: 100, + size: size, + xAxisIndex: xAxisIndex, + yAxisIndex: yAxisIndex, + seriesIndex: zoomSeriesIndex, + scatterMap: this._zoom.scatterMap || {} + }; + }, + _backupData: function () { + this._originalData = { + xAxis: {}, + yAxis: {}, + series: {} + }; + var xAxis = this.option.xAxis; + var xAxisIndex = this._zoom.xAxisIndex; + for (var i = 0, l = xAxisIndex.length; i < l; i++) { + this._originalData.xAxis[xAxisIndex[i]] = xAxis[xAxisIndex[i]].data; + } + var yAxis = this.option.yAxis; + var yAxisIndex = this._zoom.yAxisIndex; + for (var i = 0, l = yAxisIndex.length; i < l; i++) { + this._originalData.yAxis[yAxisIndex[i]] = yAxis[yAxisIndex[i]].data; + } + var series = this.option.series; + var seriesIndex = this._zoom.seriesIndex; + var serie; + for (var i = 0, l = seriesIndex.length; i < l; i++) { + serie = series[seriesIndex[i]]; + this._originalData.series[seriesIndex[i]] = serie.data; + if (serie.data && this.getDataFromOption(serie.data[0]) instanceof Array && (serie.type == ecConfig.CHART_TYPE_SCATTER || serie.type == ecConfig.CHART_TYPE_LINE || serie.type == ecConfig.CHART_TYPE_BAR)) { + this._backupScale(); + this._calculScatterMap(seriesIndex[i]); + } + } + }, + _calculScatterMap: function (seriesIndex) { + this._zoom.scatterMap = this._zoom.scatterMap || {}; + this._zoom.scatterMap[seriesIndex] = this._zoom.scatterMap[seriesIndex] || {}; + var componentLibrary = require('../component'); + var Axis = componentLibrary.get('axis'); + var axisOption = zrUtil.clone(this.option.xAxis); + if (axisOption[0].type == 'category') { + axisOption[0].type = 'value'; + } + if (axisOption[1] && axisOption[1].type == 'category') { + axisOption[1].type = 'value'; + } + var vAxis = new Axis(this.ecTheme, null, false, { + xAxis: axisOption, + series: this.option.series + }, this, 'xAxis'); + var axisIndex = this.option.series[seriesIndex].xAxisIndex || 0; + this._zoom.scatterMap[seriesIndex].x = vAxis.getAxis(axisIndex).getExtremum(); + vAxis.dispose(); + axisOption = zrUtil.clone(this.option.yAxis); + if (axisOption[0].type == 'category') { + axisOption[0].type = 'value'; + } + if (axisOption[1] && axisOption[1].type == 'category') { + axisOption[1].type = 'value'; + } + vAxis = new Axis(this.ecTheme, null, false, { + yAxis: axisOption, + series: this.option.series + }, this, 'yAxis'); + axisIndex = this.option.series[seriesIndex].yAxisIndex || 0; + this._zoom.scatterMap[seriesIndex].y = vAxis.getAxis(axisIndex).getExtremum(); + vAxis.dispose(); + }, + _buildBackground: function () { + var width = this._location.width; + var height = this._location.height; + this.shapeList.push(new RectangleShape({ + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: false, + style: { + x: this._location.x, + y: this._location.y, + width: width, + height: height, + color: this.zoomOption.backgroundColor + } + })); + var maxLength = 0; + var xAxis = this._originalData.xAxis; + var xAxisIndex = this._zoom.xAxisIndex; + for (var i = 0, l = xAxisIndex.length; i < l; i++) { + maxLength = Math.max(maxLength, xAxis[xAxisIndex[i]].length); + } + var yAxis = this._originalData.yAxis; + var yAxisIndex = this._zoom.yAxisIndex; + for (var i = 0, l = yAxisIndex.length; i < l; i++) { + maxLength = Math.max(maxLength, yAxis[yAxisIndex[i]].length); + } + var seriesIndex = this._zoom.seriesIndex[0]; + var data = this._originalData.series[seriesIndex]; + var maxValue = Number.MIN_VALUE; + var minValue = Number.MAX_VALUE; + var value; + for (var i = 0, l = data.length; i < l; i++) { + value = this.getDataFromOption(data[i], 0); + if (this.option.series[seriesIndex].type == ecConfig.CHART_TYPE_K) { + value = value[1]; + } + if (isNaN(value)) { + value = 0; + } + maxValue = Math.max(maxValue, value); + minValue = Math.min(minValue, value); + } + var valueRange = maxValue - minValue; + var pointList = []; + var x = width / (maxLength - (maxLength > 1 ? 1 : 0)); + var y = height / (maxLength - (maxLength > 1 ? 1 : 0)); + var step = 1; + if (this.zoomOption.orient == 'horizontal' && x < 1) { + step = Math.floor(maxLength * 3 / width); + } else if (this.zoomOption.orient == 'vertical' && y < 1) { + step = Math.floor(maxLength * 3 / height); + } + for (var i = 0, l = maxLength; i < l; i += step) { + value = this.getDataFromOption(data[i], 0); + if (this.option.series[seriesIndex].type == ecConfig.CHART_TYPE_K) { + value = value[1]; + } + if (isNaN(value)) { + value = 0; + } + if (this.zoomOption.orient == 'horizontal') { + pointList.push([ + this._location.x + x * i, + this._location.y + height - 1 - Math.round((value - minValue) / valueRange * (height - 10)) + ]); + } else { + pointList.push([ + this._location.x + 1 + Math.round((value - minValue) / valueRange * (width - 10)), + this._location.y + y * (l - i - 1) + ]); + } + } + if (this.zoomOption.orient == 'horizontal') { + pointList.push([ + this._location.x + width, + this._location.y + height + ]); + pointList.push([ + this._location.x, + this._location.y + height + ]); + } else { + pointList.push([ + this._location.x, + this._location.y + ]); + pointList.push([ + this._location.x, + this._location.y + height + ]); + } + this.shapeList.push(new PolygonShape({ + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: { + pointList: pointList, + color: this.zoomOption.dataBackgroundColor + }, + hoverable: false + })); + }, + _buildFiller: function () { + this._fillerShae = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + draggable: true, + ondrift: this._ondrift, + ondragend: this._ondragend, + _type: 'filler' + }; + if (this.zoomOption.orient == 'horizontal') { + this._fillerShae.style = { + x: this._location.x + Math.round(this._zoom.start / 100 * this._location.width) + this._handleSize, + y: this._location.y, + width: this._zoom.size - this._handleSize * 2, + height: this._location.height, + color: this.zoomOption.fillerColor, + text: ':::', + textPosition: 'inside' + }; + } else { + this._fillerShae.style = { + x: this._location.x, + y: this._location.y + Math.round(this._zoom.start / 100 * this._location.height) + this._handleSize, + width: this._location.width, + height: this._zoom.size - this._handleSize * 2, + color: this.zoomOption.fillerColor, + text: '::', + textPosition: 'inside' + }; + } + this._fillerShae.highlightStyle = { + brushType: 'fill', + color: 'rgba(0,0,0,0)' + }; + this._fillerShae = new RectangleShape(this._fillerShae); + this.shapeList.push(this._fillerShae); + }, + _buildHandle: function () { + var detail = this.zoomOption.showDetail ? this._getDetail() : { + start: '', + end: '' + }; + this._startShape = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + draggable: true, + style: { + iconType: 'rectangle', + x: this._location.x, + y: this._location.y, + width: this._handleSize, + height: this._handleSize, + color: this.zoomOption.handleColor, + text: '=', + textPosition: 'inside' + }, + highlightStyle: { + text: detail.start, + brushType: 'fill', + textPosition: 'left' + }, + ondrift: this._ondrift, + ondragend: this._ondragend + }; + if (this.zoomOption.orient == 'horizontal') { + this._startShape.style.height = this._location.height; + this._endShape = zrUtil.clone(this._startShape); + this._startShape.style.x = this._fillerShae.style.x - this._handleSize, this._endShape.style.x = this._fillerShae.style.x + this._fillerShae.style.width; + this._endShape.highlightStyle.text = detail.end; + this._endShape.highlightStyle.textPosition = 'right'; + } else { + this._startShape.style.width = this._location.width; + this._endShape = zrUtil.clone(this._startShape); + this._startShape.style.y = this._fillerShae.style.y + this._fillerShae.style.height; + this._startShape.highlightStyle.textPosition = 'bottom'; + this._endShape.style.y = this._fillerShae.style.y - this._handleSize; + this._endShape.highlightStyle.text = detail.end; + this._endShape.highlightStyle.textPosition = 'top'; + } + this._startShape = new IconShape(this._startShape); + this._endShape = new IconShape(this._endShape); + this.shapeList.push(this._startShape); + this.shapeList.push(this._endShape); + }, + _buildFrame: function () { + var x = this.subPixelOptimize(this._location.x, 1); + var y = this.subPixelOptimize(this._location.y, 1); + this._startFrameShape = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: false, + style: { + x: x, + y: y, + width: this._location.width - (x > this._location.x ? 1 : 0), + height: this._location.height - (y > this._location.y ? 1 : 0), + lineWidth: 1, + brushType: 'stroke', + strokeColor: this.zoomOption.handleColor + } + }; + this._endFrameShape = zrUtil.clone(this._startFrameShape); + this._startFrameShape = new RectangleShape(this._startFrameShape); + this._endFrameShape = new RectangleShape(this._endFrameShape); + this.shapeList.push(this._startFrameShape); + this.shapeList.push(this._endFrameShape); + return; + }, + _syncHandleShape: function () { + if (this.zoomOption.orient == 'horizontal') { + this._startShape.style.x = this._fillerShae.style.x - this._handleSize; + this._endShape.style.x = this._fillerShae.style.x + this._fillerShae.style.width; + this._zoom.start = (this._startShape.style.x - this._location.x) / this._location.width * 100; + this._zoom.end = (this._endShape.style.x + this._handleSize - this._location.x) / this._location.width * 100; + } else { + this._startShape.style.y = this._fillerShae.style.y + this._fillerShae.style.height; + this._endShape.style.y = this._fillerShae.style.y - this._handleSize; + this._zoom.start = (this._location.y + this._location.height - this._startShape.style.y) / this._location.height * 100; + this._zoom.end = (this._location.y + this._location.height - this._endShape.style.y - this._handleSize) / this._location.height * 100; + } + this.zr.modShape(this._startShape.id); + this.zr.modShape(this._endShape.id); + this._syncFrameShape(); + this.zr.refreshNextFrame(); + }, + _syncFillerShape: function () { + var a; + var b; + if (this.zoomOption.orient == 'horizontal') { + a = this._startShape.style.x; + b = this._endShape.style.x; + this._fillerShae.style.x = Math.min(a, b) + this._handleSize; + this._fillerShae.style.width = Math.abs(a - b) - this._handleSize; + this._zoom.start = (Math.min(a, b) - this._location.x) / this._location.width * 100; + this._zoom.end = (Math.max(a, b) + this._handleSize - this._location.x) / this._location.width * 100; + } else { + a = this._startShape.style.y; + b = this._endShape.style.y; + this._fillerShae.style.y = Math.min(a, b) + this._handleSize; + this._fillerShae.style.height = Math.abs(a - b) - this._handleSize; + this._zoom.start = (this._location.y + this._location.height - Math.max(a, b)) / this._location.height * 100; + this._zoom.end = (this._location.y + this._location.height - Math.min(a, b) - this._handleSize) / this._location.height * 100; + } + this.zr.modShape(this._fillerShae.id); + this._syncFrameShape(); + this.zr.refreshNextFrame(); + }, + _syncFrameShape: function () { + if (this.zoomOption.orient == 'horizontal') { + this._startFrameShape.style.width = this._fillerShae.style.x - this._location.x; + this._endFrameShape.style.x = this._fillerShae.style.x + this._fillerShae.style.width; + this._endFrameShape.style.width = this._location.x + this._location.width - this._endFrameShape.style.x; + } else { + this._startFrameShape.style.y = this._fillerShae.style.y + this._fillerShae.style.height; + this._startFrameShape.style.height = this._location.y + this._location.height - this._startFrameShape.style.y; + this._endFrameShape.style.height = this._fillerShae.style.y - this._location.y; + } + this.zr.modShape(this._startFrameShape.id); + this.zr.modShape(this._endFrameShape.id); + }, + _syncShape: function () { + if (!this.zoomOption.show) { + return; + } + if (this.zoomOption.orient == 'horizontal') { + this._startShape.style.x = this._location.x + this._zoom.start / 100 * this._location.width; + this._endShape.style.x = this._location.x + this._zoom.end / 100 * this._location.width - this._handleSize; + this._fillerShae.style.x = this._startShape.style.x + this._handleSize; + this._fillerShae.style.width = this._endShape.style.x - this._startShape.style.x - this._handleSize; + } else { + this._startShape.style.y = this._location.y + this._location.height - this._zoom.start / 100 * this._location.height; + this._endShape.style.y = this._location.y + this._location.height - this._zoom.end / 100 * this._location.height - this._handleSize; + this._fillerShae.style.y = this._endShape.style.y + this._handleSize; + this._fillerShae.style.height = this._startShape.style.y - this._endShape.style.y - this._handleSize; + } + this.zr.modShape(this._startShape.id); + this.zr.modShape(this._endShape.id); + this.zr.modShape(this._fillerShae.id); + this._syncFrameShape(); + this.zr.refresh(); + }, + _syncData: function (dispatchNow) { + var target; + var start; + var end; + var length; + var data; + for (var key in this._originalData) { + target = this._originalData[key]; + for (var idx in target) { + data = target[idx]; + if (data == null) { + continue; + } + length = data.length; + start = Math.floor(this._zoom.start / 100 * length); + end = Math.ceil(this._zoom.end / 100 * length); + if (!(this.getDataFromOption(data[0]) instanceof Array) || this.option[key][idx].type == ecConfig.CHART_TYPE_K) { + this.option[key][idx].data = data.slice(start, end); + } else { + this._setScale(); + this.option[key][idx].data = this._synScatterData(idx, data); + } + } + } + if (!this._isSilence && (this.zoomOption.realtime || dispatchNow)) { + this.messageCenter.dispatch(ecConfig.EVENT.DATA_ZOOM, null, { zoom: this._zoom }, this.myChart); + } + }, + _synScatterData: function (seriesIndex, data) { + if (this._zoom.start === 0 && this._zoom.end == 100 && this._zoom.start2 === 0 && this._zoom.end2 == 100) { + return data; + } + var newData = []; + var scale = this._zoom.scatterMap[seriesIndex]; + var total; + var xStart; + var xEnd; + var yStart; + var yEnd; + if (this.zoomOption.orient == 'horizontal') { + total = scale.x.max - scale.x.min; + xStart = this._zoom.start / 100 * total + scale.x.min; + xEnd = this._zoom.end / 100 * total + scale.x.min; + total = scale.y.max - scale.y.min; + yStart = this._zoom.start2 / 100 * total + scale.y.min; + yEnd = this._zoom.end2 / 100 * total + scale.y.min; + } else { + total = scale.x.max - scale.x.min; + xStart = this._zoom.start2 / 100 * total + scale.x.min; + xEnd = this._zoom.end2 / 100 * total + scale.x.min; + total = scale.y.max - scale.y.min; + yStart = this._zoom.start / 100 * total + scale.y.min; + yEnd = this._zoom.end / 100 * total + scale.y.min; + } + var dataMappingMethods; + if (dataMappingMethods = scale.x.dataMappingMethods) { + xStart = dataMappingMethods.coord2Value(xStart); + xEnd = dataMappingMethods.coord2Value(xEnd); + } + if (dataMappingMethods = scale.y.dataMappingMethods) { + yStart = dataMappingMethods.coord2Value(yStart); + yEnd = dataMappingMethods.coord2Value(yEnd); + } + var value; + for (var i = 0, l = data.length; i < l; i++) { + value = data[i].value || data[i]; + if (value[0] >= xStart && value[0] <= xEnd && value[1] >= yStart && value[1] <= yEnd) { + newData.push(data[i]); + } + } + return newData; + }, + _setScale: function () { + var needScale = this._zoom.start !== 0 || this._zoom.end !== 100 || this._zoom.start2 !== 0 || this._zoom.end2 !== 100; + var axis = { + xAxis: this.option.xAxis, + yAxis: this.option.yAxis + }; + for (var key in axis) { + for (var i = 0, l = axis[key].length; i < l; i++) { + axis[key][i].scale = needScale || axis[key][i]._scale; + } + } + }, + _backupScale: function () { + var axis = { + xAxis: this.option.xAxis, + yAxis: this.option.yAxis + }; + for (var key in axis) { + for (var i = 0, l = axis[key].length; i < l; i++) { + axis[key][i]._scale = axis[key][i].scale; + } + } + }, + _getDetail: function () { + var key = [ + 'xAxis', + 'yAxis' + ]; + for (var i = 0, l = key.length; i < l; i++) { + var target = this._originalData[key[i]]; + for (var idx in target) { + var data = target[idx]; + if (data == null) { + continue; + } + var length = data.length; + var start = Math.floor(this._zoom.start / 100 * length); + var end = Math.ceil(this._zoom.end / 100 * length); + end -= end > 0 ? 1 : 0; + return { + start: this.getDataFromOption(data[start]), + end: this.getDataFromOption(data[end]) + }; + } + } + key = this.zoomOption.orient == 'horizontal' ? 'xAxis' : 'yAxis'; + var seriesIndex = this._zoom.seriesIndex[0]; + var axisIndex = this.option.series[seriesIndex][key + 'Index'] || 0; + var axisType = this.option[key][axisIndex].type; + var min = this._zoom.scatterMap[seriesIndex][key.charAt(0)].min; + var max = this._zoom.scatterMap[seriesIndex][key.charAt(0)].max; + var gap = max - min; + if (axisType == 'value') { + return { + start: min + gap * this._zoom.start / 100, + end: min + gap * this._zoom.end / 100 + }; + } else if (axisType == 'time') { + max = min + gap * this._zoom.end / 100; + min = min + gap * this._zoom.start / 100; + var formatter = ecDate.getAutoFormatter(min, max).formatter; + return { + start: ecDate.format(formatter, min), + end: ecDate.format(formatter, max) + }; + } + return { + start: '', + end: '' + }; + }, + __ondrift: function (shape, dx, dy) { + if (this.zoomOption.zoomLock) { + shape = this._fillerShae; + } + var detailSize = shape._type == 'filler' ? this._handleSize : 0; + if (this.zoomOption.orient == 'horizontal') { + if (shape.style.x + dx - detailSize <= this._location.x) { + shape.style.x = this._location.x + detailSize; + } else if (shape.style.x + dx + shape.style.width + detailSize >= this._location.x + this._location.width) { + shape.style.x = this._location.x + this._location.width - shape.style.width - detailSize; + } else { + shape.style.x += dx; + } + } else { + if (shape.style.y + dy - detailSize <= this._location.y) { + shape.style.y = this._location.y + detailSize; + } else if (shape.style.y + dy + shape.style.height + detailSize >= this._location.y + this._location.height) { + shape.style.y = this._location.y + this._location.height - shape.style.height - detailSize; + } else { + shape.style.y += dy; + } + } + if (shape._type == 'filler') { + this._syncHandleShape(); + } else { + this._syncFillerShape(); + } + if (this.zoomOption.realtime) { + this._syncData(); + } + if (this.zoomOption.showDetail) { + var detail = this._getDetail(); + this._startShape.style.text = this._startShape.highlightStyle.text = detail.start; + this._endShape.style.text = this._endShape.highlightStyle.text = detail.end; + this._startShape.style.textPosition = this._startShape.highlightStyle.textPosition; + this._endShape.style.textPosition = this._endShape.highlightStyle.textPosition; + } + return true; + }, + __ondragend: function () { + if (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 = true; + }, + ondragend: function (param, status) { + if (!this.isDragend || !param.target) { + return; + } + !this.zoomOption.realtime && this._syncData(); + status.dragOut = true; + status.dragIn = true; + if (!this._isSilence && !this.zoomOption.realtime) { + this.messageCenter.dispatch(ecConfig.EVENT.DATA_ZOOM, null, { zoom: this._zoom }, this.myChart); + } + status.needRefresh = false; + this.isDragend = false; + return; + }, + ondataZoom: function (param, status) { + status.needRefresh = true; + return; + }, + absoluteZoom: function (param) { + this._zoom.start = param.start; + this._zoom.end = param.end; + this._zoom.start2 = param.start2; + this._zoom.end2 = param.end2; + this._syncShape(); + this._syncData(true); + return; + }, + rectZoom: function (param) { + if (!param) { + this._zoom.start = this._zoom.start2 = 0; + this._zoom.end = this._zoom.end2 = 100; + this._syncShape(); + this._syncData(true); + return this._zoom; + } + var gridArea = this.component.grid.getArea(); + var rect = { + x: param.x, + y: param.y, + width: param.width, + height: param.height + }; + if (rect.width < 0) { + rect.x += rect.width; + rect.width = -rect.width; + } + if (rect.height < 0) { + rect.y += rect.height; + rect.height = -rect.height; + } + if (rect.x > gridArea.x + gridArea.width || rect.y > gridArea.y + gridArea.height) { + return false; + } + if (rect.x < gridArea.x) { + rect.x = gridArea.x; + } + if (rect.x + rect.width > gridArea.x + gridArea.width) { + rect.width = gridArea.x + gridArea.width - rect.x; + } + if (rect.y + rect.height > gridArea.y + gridArea.height) { + rect.height = gridArea.y + gridArea.height - rect.y; + } + var total; + var sdx = (rect.x - gridArea.x) / gridArea.width; + var edx = 1 - (rect.x + rect.width - gridArea.x) / gridArea.width; + var sdy = 1 - (rect.y + rect.height - gridArea.y) / gridArea.height; + var edy = (rect.y - gridArea.y) / gridArea.height; + if (this.zoomOption.orient == 'horizontal') { + total = this._zoom.end - this._zoom.start; + this._zoom.start += total * sdx; + this._zoom.end -= total * edx; + total = this._zoom.end2 - this._zoom.start2; + this._zoom.start2 += total * sdy; + this._zoom.end2 -= total * edy; + } else { + total = this._zoom.end - this._zoom.start; + this._zoom.start += total * sdy; + this._zoom.end -= total * edy; + total = this._zoom.end2 - this._zoom.start2; + this._zoom.start2 += total * sdx; + this._zoom.end2 -= total * edx; + } + this._syncShape(); + this._syncData(true); + return this._zoom; + }, + syncBackupData: function (curOption) { + var start; + var target = this._originalData['series']; + var curSeries = curOption.series; + var curData; + for (var i = 0, l = curSeries.length; i < l; i++) { + curData = curSeries[i].data || curSeries[i].eventList; + if (target[i]) { + start = Math.floor(this._zoom.start / 100 * target[i].length); + } else { + start = 0; + } + for (var j = 0, k = curData.length; j < k; j++) { + if (target[i]) { + target[i][j + start] = curData[j]; + } + } + } + }, + syncOption: function (magicOption) { + this.silence(true); + this.option = magicOption; + this.option.dataZoom = this.reformOption(this.option.dataZoom); + this.zoomOption = this.option.dataZoom; + if (!this.myChart.canvasSupported) { + this.zoomOption.realtime = false; + } + this.clear(); + this._location = this._getLocation(); + this._zoom = this._getZoom(); + this._backupData(); + if (this.option.dataZoom && this.option.dataZoom.show) { + this._buildShape(); + } + this._syncData(); + this.silence(false); + }, + silence: function (s) { + this._isSilence = s; + }, + getRealDataIndex: function (sIdx, dIdx) { + if (!this._originalData || this._zoom.start === 0 && this._zoom.end == 100) { + return dIdx; + } + var sreies = this._originalData.series; + if (sreies[sIdx]) { + return Math.floor(this._zoom.start / 100 * sreies[sIdx].length) + dIdx; + } + return -1; + }, + resize: function () { + this.clear(); + this._location = this._getLocation(); + this._zoom = this._getZoom(); + if (this.option.dataZoom.show) { + this._buildShape(); + } + } + }; + zrUtil.inherits(DataZoom, Base); + require('../component').define('dataZoom', DataZoom); + return DataZoom; +});define('echarts/component/categoryAxis', [ + 'require', + './base', + 'zrender/shape/Text', + 'zrender/shape/Line', + 'zrender/shape/Rectangle', + '../config', + 'zrender/tool/util', + 'zrender/tool/area', + '../component' +], function (require) { + var Base = require('./base'); + var TextShape = require('zrender/shape/Text'); + var LineShape = require('zrender/shape/Line'); + var RectangleShape = require('zrender/shape/Rectangle'); + var ecConfig = require('../config'); + ecConfig.categoryAxis = { + zlevel: 0, + z: 0, + show: true, + position: 'bottom', + name: '', + nameLocation: 'end', + nameTextStyle: {}, + boundaryGap: true, + axisLine: { + show: true, + onZero: true, + lineStyle: { + color: '#48b', + width: 2, + type: 'solid' + } + }, + axisTick: { + show: true, + interval: 'auto', + inside: false, + length: 5, + lineStyle: { + color: '#333', + width: 1 + } + }, + axisLabel: { + show: true, + interval: 'auto', + rotate: 0, + margin: 8, + textStyle: { color: '#333' } + }, + splitLine: { + show: true, + lineStyle: { + color: ['#ccc'], + width: 1, + type: 'solid' + } + }, + splitArea: { + show: false, + areaStyle: { + color: [ + 'rgba(250,250,250,0.3)', + 'rgba(200,200,200,0.3)' + ] + } + } + }; + var zrUtil = require('zrender/tool/util'); + var zrArea = require('zrender/tool/area'); + function CategoryAxis(ecTheme, messageCenter, zr, option, myChart, axisBase) { + if (option.data.length < 1) { + console.error('option.data.length < 1.'); + return; + } + Base.call(this, ecTheme, messageCenter, zr, option, myChart); + this.grid = this.component.grid; + for (var method in axisBase) { + this[method] = axisBase[method]; + } + this.refresh(option); + } + CategoryAxis.prototype = { + type: ecConfig.COMPONENT_TYPE_AXIS_CATEGORY, + _getReformedLabel: function (idx) { + var data = this.getDataFromOption(this.option.data[idx]); + var formatter = this.option.data[idx].formatter || this.option.axisLabel.formatter; + if (formatter) { + if (typeof formatter == 'function') { + data = formatter.call(this.myChart, data); + } else if (typeof formatter == 'string') { + data = formatter.replace('{value}', data); + } + } + return data; + }, + _getInterval: function () { + var interval = this.option.axisLabel.interval; + if (interval == 'auto') { + var fontSize = this.option.axisLabel.textStyle.fontSize; + var data = this.option.data; + var dataLength = this.option.data.length; + if (this.isHorizontal()) { + if (dataLength > 3) { + var gap = this.getGap(); + var isEnough = false; + var labelSpace; + var labelSize; + var step = Math.floor(0.5 / gap); + step = step < 1 ? 1 : step; + interval = Math.floor(15 / gap); + while (!isEnough && interval < dataLength) { + interval += step; + isEnough = true; + labelSpace = Math.floor(gap * interval); + for (var i = Math.floor((dataLength - 1) / interval) * interval; i >= 0; i -= interval) { + if (this.option.axisLabel.rotate !== 0) { + labelSize = fontSize; + } else if (data[i].textStyle) { + labelSize = zrArea.getTextWidth(this._getReformedLabel(i), this.getFont(zrUtil.merge(data[i].textStyle, this.option.axisLabel.textStyle))); + } else { + var label = this._getReformedLabel(i) + ''; + var wLen = (label.match(/\w/g) || '').length; + var oLen = label.length - wLen; + labelSize = wLen * fontSize * 2 / 3 + oLen * fontSize; + } + if (labelSpace < labelSize) { + isEnough = false; + break; + } + } + } + } else { + interval = 1; + } + } else { + if (dataLength > 3) { + var gap = this.getGap(); + interval = Math.floor(11 / gap); + while (gap * interval - 6 < fontSize && interval < dataLength) { + interval++; + } + } else { + interval = 1; + } + } + } else { + interval = typeof interval == 'function' ? 1 : interval - 0 + 1; + } + return interval; + }, + _buildShape: function () { + this._interval = this._getInterval(); + if (!this.option.show) { + return; + } + this.option.splitArea.show && this._buildSplitArea(); + this.option.splitLine.show && this._buildSplitLine(); + this.option.axisLine.show && this._buildAxisLine(); + this.option.axisTick.show && this._buildAxisTick(); + this.option.axisLabel.show && this._buildAxisLabel(); + for (var i = 0, l = this.shapeList.length; i < l; i++) { + this.zr.addShape(this.shapeList[i]); + } + }, + _buildAxisTick: function () { + var axShape; + var data = this.option.data; + var dataLength = this.option.data.length; + var tickOption = this.option.axisTick; + var length = tickOption.length; + var color = tickOption.lineStyle.color; + var lineWidth = tickOption.lineStyle.width; + var intervalFunction = typeof tickOption.interval == 'function' ? tickOption.interval : tickOption.interval == 'auto' ? typeof this.option.axisLabel.interval == 'function' ? this.option.axisLabel.interval : false : false; + var interval = intervalFunction ? 1 : tickOption.interval == 'auto' ? this._interval : tickOption.interval - 0 + 1; + var onGap = tickOption.onGap; + var optGap = onGap ? this.getGap() / 2 : typeof onGap == 'undefined' ? this.option.boundaryGap ? this.getGap() / 2 : 0 : 0; + var startIndex = optGap > 0 ? -interval : 0; + if (this.isHorizontal()) { + var yPosition = this.option.position == 'bottom' ? tickOption.inside ? this.grid.getYend() - length - 1 : this.grid.getYend() + 1 : tickOption.inside ? this.grid.getY() + 1 : this.grid.getY() - length - 1; + var x; + for (var i = startIndex; i < dataLength; i += interval) { + if (intervalFunction && !intervalFunction(i, data[i])) { + continue; + } + x = this.subPixelOptimize(this.getCoordByIndex(i) + (i >= 0 ? optGap : 0), lineWidth); + axShape = { + _axisShape: 'axisTick', + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: false, + style: { + xStart: x, + yStart: yPosition, + xEnd: x, + yEnd: yPosition + length, + strokeColor: color, + lineWidth: lineWidth + } + }; + this.shapeList.push(new LineShape(axShape)); + } + } else { + var xPosition = this.option.position == 'left' ? tickOption.inside ? this.grid.getX() + 1 : this.grid.getX() - length - 1 : tickOption.inside ? this.grid.getXend() - length - 1 : this.grid.getXend() + 1; + var y; + for (var i = startIndex; i < dataLength; i += interval) { + if (intervalFunction && !intervalFunction(i, data[i])) { + continue; + } + y = this.subPixelOptimize(this.getCoordByIndex(i) - (i >= 0 ? optGap : 0), lineWidth); + axShape = { + _axisShape: 'axisTick', + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: false, + style: { + xStart: xPosition, + yStart: y, + xEnd: xPosition + length, + yEnd: y, + strokeColor: color, + lineWidth: lineWidth + } + }; + this.shapeList.push(new LineShape(axShape)); + } + } + }, + _buildAxisLabel: function () { + var axShape; + var data = this.option.data; + var dataLength = this.option.data.length; + var labelOption = this.option.axisLabel; + var rotate = labelOption.rotate; + var margin = labelOption.margin; + var clickable = labelOption.clickable; + var textStyle = labelOption.textStyle; + var intervalFunction = typeof labelOption.interval == 'function' ? labelOption.interval : false; + var dataTextStyle; + if (this.isHorizontal()) { + var yPosition; + var baseLine; + if (this.option.position == 'bottom') { + yPosition = this.grid.getYend() + margin; + baseLine = 'top'; + } else { + yPosition = this.grid.getY() - margin; + baseLine = 'bottom'; + } + for (var i = 0; i < dataLength; i += this._interval) { + if (intervalFunction && !intervalFunction(i, data[i]) || this._getReformedLabel(i) === '') { + continue; + } + dataTextStyle = zrUtil.merge(data[i].textStyle || {}, textStyle); + axShape = { + zlevel: this.getZlevelBase(), + z: this.getZBase() + 3, + hoverable: false, + style: { + x: this.getCoordByIndex(i), + y: yPosition, + color: dataTextStyle.color, + text: this._getReformedLabel(i), + textFont: this.getFont(dataTextStyle), + textAlign: dataTextStyle.align || 'center', + textBaseline: dataTextStyle.baseline || baseLine + } + }; + if (rotate) { + axShape.style.textAlign = rotate > 0 ? this.option.position == 'bottom' ? 'right' : 'left' : this.option.position == 'bottom' ? 'left' : 'right'; + axShape.rotation = [ + rotate * Math.PI / 180, + axShape.style.x, + axShape.style.y + ]; + } + this.shapeList.push(new TextShape(this._axisLabelClickable(clickable, axShape))); + } + } else { + var xPosition; + var align; + if (this.option.position == 'left') { + xPosition = this.grid.getX() - margin; + align = 'right'; + } else { + xPosition = this.grid.getXend() + margin; + align = 'left'; + } + for (var i = 0; i < dataLength; i += this._interval) { + if (intervalFunction && !intervalFunction(i, data[i]) || this._getReformedLabel(i) === '') { + continue; + } + dataTextStyle = zrUtil.merge(data[i].textStyle || {}, textStyle); + axShape = { + zlevel: this.getZlevelBase(), + z: this.getZBase() + 3, + hoverable: false, + style: { + x: xPosition, + y: this.getCoordByIndex(i), + color: dataTextStyle.color, + text: this._getReformedLabel(i), + textFont: this.getFont(dataTextStyle), + textAlign: dataTextStyle.align || align, + textBaseline: dataTextStyle.baseline || i === 0 && this.option.name !== '' ? 'bottom' : i == dataLength - 1 && this.option.name !== '' ? 'top' : 'middle' + } + }; + if (rotate) { + axShape.rotation = [ + rotate * Math.PI / 180, + axShape.style.x, + axShape.style.y + ]; + } + this.shapeList.push(new TextShape(this._axisLabelClickable(clickable, axShape))); + } + } + }, + _buildSplitLine: function () { + var axShape; + var data = this.option.data; + var dataLength = this.option.data.length; + var sLineOption = this.option.splitLine; + var lineType = sLineOption.lineStyle.type; + var lineWidth = sLineOption.lineStyle.width; + var color = sLineOption.lineStyle.color; + color = color instanceof Array ? color : [color]; + var colorLength = color.length; + var intervalFunction = typeof this.option.axisLabel.interval == 'function' ? this.option.axisLabel.interval : false; + var onGap = sLineOption.onGap; + var optGap = onGap ? this.getGap() / 2 : typeof onGap == 'undefined' ? this.option.boundaryGap ? this.getGap() / 2 : 0 : 0; + dataLength -= onGap || typeof onGap == 'undefined' && this.option.boundaryGap ? 1 : 0; + if (this.isHorizontal()) { + var sy = this.grid.getY(); + var ey = this.grid.getYend(); + var x; + for (var i = 0; i < dataLength; i += this._interval) { + if (intervalFunction && !intervalFunction(i, data[i])) { + continue; + } + x = this.subPixelOptimize(this.getCoordByIndex(i) + optGap, lineWidth); + axShape = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: false, + style: { + xStart: x, + yStart: sy, + xEnd: x, + yEnd: ey, + strokeColor: color[i / this._interval % colorLength], + lineType: lineType, + lineWidth: lineWidth + } + }; + this.shapeList.push(new LineShape(axShape)); + } + } else { + var sx = this.grid.getX(); + var ex = this.grid.getXend(); + var y; + for (var i = 0; i < dataLength; i += this._interval) { + if (intervalFunction && !intervalFunction(i, data[i])) { + continue; + } + y = this.subPixelOptimize(this.getCoordByIndex(i) - optGap, lineWidth); + axShape = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: false, + style: { + xStart: sx, + yStart: y, + xEnd: ex, + yEnd: y, + strokeColor: color[i / this._interval % colorLength], + lineType: lineType, + lineWidth: lineWidth + } + }; + this.shapeList.push(new LineShape(axShape)); + } + } + }, + _buildSplitArea: function () { + var axShape; + var data = this.option.data; + var sAreaOption = this.option.splitArea; + var color = sAreaOption.areaStyle.color; + if (!(color instanceof Array)) { + axShape = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: false, + style: { + x: this.grid.getX(), + y: this.grid.getY(), + width: this.grid.getWidth(), + height: this.grid.getHeight(), + color: color + } + }; + this.shapeList.push(new RectangleShape(axShape)); + } else { + var colorLength = color.length; + var dataLength = this.option.data.length; + var intervalFunction = typeof this.option.axisLabel.interval == 'function' ? this.option.axisLabel.interval : false; + var onGap = sAreaOption.onGap; + var optGap = onGap ? this.getGap() / 2 : typeof onGap == 'undefined' ? this.option.boundaryGap ? this.getGap() / 2 : 0 : 0; + if (this.isHorizontal()) { + var y = this.grid.getY(); + var height = this.grid.getHeight(); + var lastX = this.grid.getX(); + var curX; + for (var i = 0; i <= dataLength; i += this._interval) { + if (intervalFunction && !intervalFunction(i, data[i]) && i < dataLength) { + continue; + } + curX = i < dataLength ? this.getCoordByIndex(i) + optGap : this.grid.getXend(); + axShape = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: false, + style: { + x: lastX, + y: y, + width: curX - lastX, + height: height, + color: color[i / this._interval % colorLength] + } + }; + this.shapeList.push(new RectangleShape(axShape)); + lastX = curX; + } + } else { + var x = this.grid.getX(); + var width = this.grid.getWidth(); + var lastYend = this.grid.getYend(); + var curY; + for (var i = 0; i <= dataLength; i += this._interval) { + if (intervalFunction && !intervalFunction(i, data[i]) && i < dataLength) { + continue; + } + curY = i < dataLength ? this.getCoordByIndex(i) - optGap : this.grid.getY(); + axShape = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: false, + style: { + x: x, + y: curY, + width: width, + height: lastYend - curY, + color: color[i / this._interval % colorLength] + } + }; + this.shapeList.push(new RectangleShape(axShape)); + lastYend = curY; + } + } + } + }, + refresh: function (newOption) { + if (newOption) { + this.option = this.reformOption(newOption); + this.option.axisLabel.textStyle = this.getTextStyle(this.option.axisLabel.textStyle); + } + this.clear(); + this._buildShape(); + }, + getGap: function () { + var dataLength = this.option.data.length; + var total = this.isHorizontal() ? this.grid.getWidth() : this.grid.getHeight(); + if (this.option.boundaryGap) { + return total / dataLength; + } else { + return total / (dataLength > 1 ? dataLength - 1 : 1); + } + }, + getCoord: function (value) { + var data = this.option.data; + var dataLength = data.length; + var gap = this.getGap(); + var position = this.option.boundaryGap ? gap / 2 : 0; + for (var i = 0; i < dataLength; i++) { + if (this.getDataFromOption(data[i]) == value) { + if (this.isHorizontal()) { + position = this.grid.getX() + position; + } else { + position = this.grid.getYend() - position; + } + return position; + } + position += gap; + } + }, + getCoordByIndex: function (dataIndex) { + if (dataIndex < 0) { + if (this.isHorizontal()) { + return this.grid.getX(); + } else { + return this.grid.getYend(); + } + } else if (dataIndex > this.option.data.length - 1) { + if (this.isHorizontal()) { + return this.grid.getXend(); + } else { + return this.grid.getY(); + } + } else { + var gap = this.getGap(); + var position = this.option.boundaryGap ? gap / 2 : 0; + position += dataIndex * gap; + if (this.isHorizontal()) { + position = this.grid.getX() + position; + } else { + position = this.grid.getYend() - position; + } + return position; + } + }, + getNameByIndex: function (dataIndex) { + return this.getDataFromOption(this.option.data[dataIndex]); + }, + getIndexByName: function (name) { + var data = this.option.data; + var dataLength = data.length; + for (var i = 0; i < dataLength; i++) { + if (this.getDataFromOption(data[i]) == name) { + return i; + } + } + return -1; + }, + getValueFromCoord: function () { + return ''; + }, + isMainAxis: function (dataIndex) { + return dataIndex % this._interval === 0; + } + }; + zrUtil.inherits(CategoryAxis, Base); + require('../component').define('categoryAxis', CategoryAxis); + return CategoryAxis; +});define('echarts/component/valueAxis', [ + 'require', + './base', + 'zrender/shape/Text', + 'zrender/shape/Line', + 'zrender/shape/Rectangle', + '../config', + '../util/date', + 'zrender/tool/util', + '../util/smartSteps', + '../util/accMath', + '../util/smartLogSteps', + '../component' +], function (require) { + var Base = require('./base'); + var TextShape = require('zrender/shape/Text'); + var LineShape = require('zrender/shape/Line'); + var RectangleShape = require('zrender/shape/Rectangle'); + var ecConfig = require('../config'); + ecConfig.valueAxis = { + zlevel: 0, + z: 0, + show: true, + position: 'left', + name: '', + nameLocation: 'end', + nameTextStyle: {}, + boundaryGap: [ + 0, + 0 + ], + axisLine: { + show: true, + onZero: true, + lineStyle: { + color: '#48b', + width: 2, + type: 'solid' + } + }, + axisTick: { + show: false, + inside: false, + length: 5, + lineStyle: { + color: '#333', + width: 1 + } + }, + axisLabel: { + show: true, + rotate: 0, + margin: 8, + textStyle: { color: '#333' } + }, + splitLine: { + show: true, + lineStyle: { + color: ['#ccc'], + width: 1, + type: 'solid' + } + }, + splitArea: { + show: false, + areaStyle: { + color: [ + 'rgba(250,250,250,0.3)', + 'rgba(200,200,200,0.3)' + ] + } + } + }; + var ecDate = require('../util/date'); + var zrUtil = require('zrender/tool/util'); + function ValueAxis(ecTheme, messageCenter, zr, option, myChart, axisBase, series) { + if (!series || series.length === 0) { + console.err('option.series.length == 0.'); + return; + } + Base.call(this, ecTheme, messageCenter, zr, option, myChart); + this.series = series; + this.grid = this.component.grid; + for (var method in axisBase) { + this[method] = axisBase[method]; + } + this.refresh(option, series); + } + ValueAxis.prototype = { + type: ecConfig.COMPONENT_TYPE_AXIS_VALUE, + _buildShape: function () { + this._hasData = false; + this._calculateValue(); + if (!this._hasData || !this.option.show) { + return; + } + this.option.splitArea.show && this._buildSplitArea(); + this.option.splitLine.show && this._buildSplitLine(); + this.option.axisLine.show && this._buildAxisLine(); + this.option.axisTick.show && this._buildAxisTick(); + this.option.axisLabel.show && this._buildAxisLabel(); + for (var i = 0, l = this.shapeList.length; i < l; i++) { + this.zr.addShape(this.shapeList[i]); + } + }, + _buildAxisTick: function () { + var axShape; + var data = this._valueList; + var dataLength = this._valueList.length; + var tickOption = this.option.axisTick; + var length = tickOption.length; + var color = tickOption.lineStyle.color; + var lineWidth = tickOption.lineStyle.width; + if (this.isHorizontal()) { + var yPosition = this.option.position === 'bottom' ? tickOption.inside ? this.grid.getYend() - length - 1 : this.grid.getYend() + 1 : tickOption.inside ? this.grid.getY() + 1 : this.grid.getY() - length - 1; + var x; + for (var i = 0; i < dataLength; i++) { + x = this.subPixelOptimize(this.getCoord(data[i]), lineWidth); + axShape = { + _axisShape: 'axisTick', + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: false, + style: { + xStart: x, + yStart: yPosition, + xEnd: x, + yEnd: yPosition + length, + strokeColor: color, + lineWidth: lineWidth + } + }; + this.shapeList.push(new LineShape(axShape)); + } + } else { + var xPosition = this.option.position === 'left' ? tickOption.inside ? this.grid.getX() + 1 : this.grid.getX() - length - 1 : tickOption.inside ? this.grid.getXend() - length - 1 : this.grid.getXend() + 1; + var y; + for (var i = 0; i < dataLength; i++) { + y = this.subPixelOptimize(this.getCoord(data[i]), lineWidth); + axShape = { + _axisShape: 'axisTick', + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: false, + style: { + xStart: xPosition, + yStart: y, + xEnd: xPosition + length, + yEnd: y, + strokeColor: color, + lineWidth: lineWidth + } + }; + this.shapeList.push(new LineShape(axShape)); + } + } + }, + _buildAxisLabel: function () { + var axShape; + var data = this._valueList; + var dataLength = this._valueList.length; + var rotate = this.option.axisLabel.rotate; + var margin = this.option.axisLabel.margin; + var clickable = this.option.axisLabel.clickable; + var textStyle = this.option.axisLabel.textStyle; + if (this.isHorizontal()) { + var yPosition; + var baseLine; + if (this.option.position === 'bottom') { + yPosition = this.grid.getYend() + margin; + baseLine = 'top'; + } else { + yPosition = this.grid.getY() - margin; + baseLine = 'bottom'; + } + for (var i = 0; i < dataLength; i++) { + axShape = { + zlevel: this.getZlevelBase(), + z: this.getZBase() + 3, + hoverable: false, + style: { + x: this.getCoord(data[i]), + y: yPosition, + color: typeof textStyle.color === 'function' ? textStyle.color(data[i]) : textStyle.color, + text: this._valueLabel[i], + textFont: this.getFont(textStyle), + textAlign: textStyle.align || 'center', + textBaseline: textStyle.baseline || baseLine + } + }; + if (rotate) { + axShape.style.textAlign = rotate > 0 ? this.option.position === 'bottom' ? 'right' : 'left' : this.option.position === 'bottom' ? 'left' : 'right'; + axShape.rotation = [ + rotate * Math.PI / 180, + axShape.style.x, + axShape.style.y + ]; + } + this.shapeList.push(new TextShape(this._axisLabelClickable(clickable, axShape))); + } + } else { + var xPosition; + var align; + if (this.option.position === 'left') { + xPosition = this.grid.getX() - margin; + align = 'right'; + } else { + xPosition = this.grid.getXend() + margin; + align = 'left'; + } + for (var i = 0; i < dataLength; i++) { + axShape = { + zlevel: this.getZlevelBase(), + z: this.getZBase() + 3, + hoverable: false, + style: { + x: xPosition, + y: this.getCoord(data[i]), + color: typeof textStyle.color === 'function' ? textStyle.color(data[i]) : textStyle.color, + text: this._valueLabel[i], + textFont: this.getFont(textStyle), + textAlign: textStyle.align || align, + textBaseline: textStyle.baseline || (i === 0 && this.option.name !== '' ? 'bottom' : i === dataLength - 1 && this.option.name !== '' ? 'top' : 'middle') + } + }; + if (rotate) { + axShape.rotation = [ + rotate * Math.PI / 180, + axShape.style.x, + axShape.style.y + ]; + } + this.shapeList.push(new TextShape(this._axisLabelClickable(clickable, axShape))); + } + } + }, + _buildSplitLine: function () { + var axShape; + var data = this._valueList; + var dataLength = this._valueList.length; + var sLineOption = this.option.splitLine; + var lineType = sLineOption.lineStyle.type; + var lineWidth = sLineOption.lineStyle.width; + var color = sLineOption.lineStyle.color; + color = color instanceof Array ? color : [color]; + var colorLength = color.length; + if (this.isHorizontal()) { + var sy = this.grid.getY(); + var ey = this.grid.getYend(); + var x; + for (var i = 0; i < dataLength; i++) { + x = this.subPixelOptimize(this.getCoord(data[i]), lineWidth); + axShape = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: false, + style: { + xStart: x, + yStart: sy, + xEnd: x, + yEnd: ey, + strokeColor: color[i % colorLength], + lineType: lineType, + lineWidth: lineWidth + } + }; + this.shapeList.push(new LineShape(axShape)); + } + } else { + var sx = this.grid.getX(); + var ex = this.grid.getXend(); + var y; + for (var i = 0; i < dataLength; i++) { + y = this.subPixelOptimize(this.getCoord(data[i]), lineWidth); + axShape = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: false, + style: { + xStart: sx, + yStart: y, + xEnd: ex, + yEnd: y, + strokeColor: color[i % colorLength], + lineType: lineType, + lineWidth: lineWidth + } + }; + this.shapeList.push(new LineShape(axShape)); + } + } + }, + _buildSplitArea: function () { + var axShape; + var color = this.option.splitArea.areaStyle.color; + if (!(color instanceof Array)) { + axShape = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: false, + style: { + x: this.grid.getX(), + y: this.grid.getY(), + width: this.grid.getWidth(), + height: this.grid.getHeight(), + color: color + } + }; + this.shapeList.push(new RectangleShape(axShape)); + } else { + var colorLength = color.length; + var data = this._valueList; + var dataLength = this._valueList.length; + if (this.isHorizontal()) { + var y = this.grid.getY(); + var height = this.grid.getHeight(); + var lastX = this.grid.getX(); + var curX; + for (var i = 0; i <= dataLength; i++) { + curX = i < dataLength ? this.getCoord(data[i]) : this.grid.getXend(); + axShape = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: false, + style: { + x: lastX, + y: y, + width: curX - lastX, + height: height, + color: color[i % colorLength] + } + }; + this.shapeList.push(new RectangleShape(axShape)); + lastX = curX; + } + } else { + var x = this.grid.getX(); + var width = this.grid.getWidth(); + var lastYend = this.grid.getYend(); + var curY; + for (var i = 0; i <= dataLength; i++) { + curY = i < dataLength ? this.getCoord(data[i]) : this.grid.getY(); + axShape = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: false, + style: { + x: x, + y: curY, + width: width, + height: lastYend - curY, + color: color[i % colorLength] + } + }; + this.shapeList.push(new RectangleShape(axShape)); + lastYend = curY; + } + } + } + }, + _calculateValue: function () { + if (isNaN(this.option.min - 0) || isNaN(this.option.max - 0)) { + var data = {}; + var xIdx; + var yIdx; + var legend = this.component.legend; + for (var i = 0, l = this.series.length; i < l; i++) { + if (this.series[i].type != ecConfig.CHART_TYPE_LINE && this.series[i].type != ecConfig.CHART_TYPE_BAR && this.series[i].type != ecConfig.CHART_TYPE_SCATTER && this.series[i].type != ecConfig.CHART_TYPE_K && this.series[i].type != ecConfig.CHART_TYPE_EVENTRIVER) { + continue; + } + if (legend && !legend.isSelected(this.series[i].name)) { + continue; + } + xIdx = this.series[i].xAxisIndex || 0; + yIdx = this.series[i].yAxisIndex || 0; + if (this.option.xAxisIndex != xIdx && this.option.yAxisIndex != yIdx) { + continue; + } + this._calculSum(data, i); + } + var oriData; + for (var i in data) { + oriData = data[i]; + for (var j = 0, k = oriData.length; j < k; j++) { + if (!isNaN(oriData[j])) { + this._hasData = true; + this._min = oriData[j]; + this._max = oriData[j]; + break; + } + } + if (this._hasData) { + break; + } + } + for (var i in data) { + oriData = data[i]; + for (var j = 0, k = oriData.length; j < k; j++) { + if (!isNaN(oriData[j])) { + this._min = Math.min(this._min, oriData[j]); + this._max = Math.max(this._max, oriData[j]); + } + } + } + var boundaryGap = this.option.type !== 'log' ? this.option.boundaryGap : [ + 0, + 0 + ]; + var gap = Math.abs(this._max - this._min); + this._min = isNaN(this.option.min - 0) ? this._min - Math.abs(gap * boundaryGap[0]) : this.option.min - 0; + this._max = isNaN(this.option.max - 0) ? this._max + Math.abs(gap * boundaryGap[1]) : this.option.max - 0; + if (this._min === this._max) { + if (this._max === 0) { + this._max = 1; + } else if (this._max > 0) { + this._min = this._max / this.option.splitNumber != null ? this.option.splitNumber : 5; + } else { + this._max = this._max / this.option.splitNumber != null ? this.option.splitNumber : 5; + } + } + if (this.option.type === 'time') { + this._reformTimeValue(); + } else if (this.option.type === 'log') { + this._reformLogValue(); + } else { + this._reformValue(this.option.scale); + } + } else { + this._hasData = true; + this._min = this.option.min - 0; + this._max = this.option.max - 0; + if (this.option.type === 'time') { + this._reformTimeValue(); + } else if (this.option.type === 'log') { + this._reformLogValue(); + } else { + this._customerValue(); + } + } + }, + _calculSum: function (data, i) { + var key = this.series[i].name || 'kener'; + var value; + var oriData; + if (!this.series[i].stack) { + data[key] = data[key] || []; + if (this.series[i].type != ecConfig.CHART_TYPE_EVENTRIVER) { + oriData = this.series[i].data; + for (var j = 0, k = oriData.length; j < k; j++) { + value = this.getDataFromOption(oriData[j]); + if (this.series[i].type === ecConfig.CHART_TYPE_K) { + data[key].push(value[0]); + data[key].push(value[1]); + data[key].push(value[2]); + data[key].push(value[3]); + } else if (value instanceof Array) { + if (this.option.xAxisIndex != -1) { + data[key].push(this.option.type != 'time' ? value[0] : ecDate.getNewDate(value[0])); + } + if (this.option.yAxisIndex != -1) { + data[key].push(this.option.type != 'time' ? value[1] : ecDate.getNewDate(value[1])); + } + } else { + data[key].push(value); + } + } + } else { + oriData = this.series[i].data; + for (var j = 0, k = oriData.length; j < k; j++) { + var evolution = oriData[j].evolution; + for (var m = 0, n = evolution.length; m < n; m++) { + data[key].push(ecDate.getNewDate(evolution[m].time)); + } + } + } + } else { + var keyP = '__Magic_Key_Positive__' + this.series[i].stack; + var keyN = '__Magic_Key_Negative__' + this.series[i].stack; + data[keyP] = data[keyP] || []; + data[keyN] = data[keyN] || []; + data[key] = data[key] || []; + oriData = this.series[i].data; + for (var j = 0, k = oriData.length; j < k; j++) { + value = this.getDataFromOption(oriData[j]); + if (value === '-') { + continue; + } + value = value - 0; + if (value >= 0) { + if (data[keyP][j] != null) { + data[keyP][j] += value; + } else { + data[keyP][j] = value; + } + } else { + if (data[keyN][j] != null) { + data[keyN][j] += value; + } else { + data[keyN][j] = value; + } + } + if (this.option.scale) { + data[key].push(value); + } + } + } + }, + _reformValue: function (scale) { + var smartSteps = require('../util/smartSteps'); + var splitNumber = this.option.splitNumber; + if (!scale && this._min >= 0 && this._max >= 0) { + this._min = 0; + } + if (!scale && this._min <= 0 && this._max <= 0) { + this._max = 0; + } + var stepOpt = smartSteps(this._min, this._max, splitNumber); + splitNumber = splitNumber != null ? splitNumber : stepOpt.secs; + this._min = stepOpt.min; + this._max = stepOpt.max; + this._valueList = stepOpt.pnts; + this._reformLabelData(); + }, + _reformTimeValue: function () { + var splitNumber = this.option.splitNumber != null ? this.option.splitNumber : 5; + var curValue = ecDate.getAutoFormatter(this._min, this._max, splitNumber); + var formatter = curValue.formatter; + var gapValue = curValue.gapValue; + this._valueList = [ecDate.getNewDate(this._min)]; + var startGap; + switch (formatter) { + case 'week': + startGap = ecDate.nextMonday(this._min); + break; + case 'month': + startGap = ecDate.nextNthOnMonth(this._min, 1); + break; + case 'quarter': + startGap = ecDate.nextNthOnQuarterYear(this._min, 1); + break; + case 'half-year': + startGap = ecDate.nextNthOnHalfYear(this._min, 1); + break; + case 'year': + startGap = ecDate.nextNthOnYear(this._min, 1); + break; + default: + if (gapValue <= 3600000 * 2) { + startGap = (Math.floor(this._min / gapValue) + 1) * gapValue; + } else { + startGap = ecDate.getNewDate(this._min - -gapValue); + startGap.setHours(Math.round(startGap.getHours() / 6) * 6); + startGap.setMinutes(0); + startGap.setSeconds(0); + } + break; + } + if (startGap - this._min < gapValue / 2) { + startGap -= -gapValue; + } + curValue = ecDate.getNewDate(startGap); + splitNumber *= 1.5; + while (splitNumber-- >= 0) { + if (formatter == 'month' || formatter == 'quarter' || formatter == 'half-year' || formatter == 'year') { + curValue.setDate(1); + } + if (this._max - curValue < gapValue / 2) { + break; + } + this._valueList.push(curValue); + curValue = ecDate.getNewDate(curValue - -gapValue); + } + this._valueList.push(ecDate.getNewDate(this._max)); + this._reformLabelData(function (formatterStr) { + return function (value) { + return ecDate.format(formatterStr, value); + }; + }(formatter)); + }, + _customerValue: function () { + var accMath = require('../util/accMath'); + var splitNumber = this.option.splitNumber != null ? this.option.splitNumber : 5; + var splitGap = (this._max - this._min) / splitNumber; + this._valueList = []; + for (var i = 0; i <= splitNumber; i++) { + this._valueList.push(accMath.accAdd(this._min, accMath.accMul(splitGap, i))); + } + this._reformLabelData(); + }, + _reformLogValue: function () { + var thisOption = this.option; + var result = require('../util/smartLogSteps')({ + dataMin: this._min, + dataMax: this._max, + logPositive: thisOption.logPositive, + logLabelBase: thisOption.logLabelBase, + splitNumber: thisOption.splitNumber + }); + this._min = result.dataMin; + this._max = result.dataMax; + this._valueList = result.tickList; + this._dataMappingMethods = result.dataMappingMethods; + this._reformLabelData(result.labelFormatter); + }, + _reformLabelData: function (innerFormatter) { + this._valueLabel = []; + var formatter = this.option.axisLabel.formatter; + if (formatter) { + for (var i = 0, l = this._valueList.length; i < l; i++) { + if (typeof formatter === 'function') { + this._valueLabel.push(innerFormatter ? formatter.call(this.myChart, this._valueList[i], innerFormatter) : formatter.call(this.myChart, this._valueList[i])); + } else if (typeof formatter === 'string') { + this._valueLabel.push(innerFormatter ? ecDate.format(formatter, this._valueList[i]) : formatter.replace('{value}', this._valueList[i])); + } + } + } else { + for (var i = 0, l = this._valueList.length; i < l; i++) { + this._valueLabel.push(innerFormatter ? innerFormatter(this._valueList[i]) : this.numAddCommas(this._valueList[i])); + } + } + }, + getExtremum: function () { + this._calculateValue(); + var dataMappingMethods = this._dataMappingMethods; + return { + min: this._min, + max: this._max, + dataMappingMethods: dataMappingMethods ? zrUtil.merge({}, dataMappingMethods) : null + }; + }, + refresh: function (newOption, newSeries) { + if (newOption) { + this.option = this.reformOption(newOption); + this.option.axisLabel.textStyle = zrUtil.merge(this.option.axisLabel.textStyle || {}, this.ecTheme.textStyle); + this.series = newSeries; + } + if (this.zr) { + this.clear(); + this._buildShape(); + } + }, + getCoord: function (value) { + if (this._dataMappingMethods) { + value = this._dataMappingMethods.value2Coord(value); + } + value = value < this._min ? this._min : value; + value = value > this._max ? this._max : value; + var result; + if (!this.isHorizontal()) { + result = this.grid.getYend() - (value - this._min) / (this._max - this._min) * this.grid.getHeight(); + } else { + result = this.grid.getX() + (value - this._min) / (this._max - this._min) * this.grid.getWidth(); + } + return result; + }, + getCoordSize: function (value) { + if (!this.isHorizontal()) { + return Math.abs(value / (this._max - this._min) * this.grid.getHeight()); + } else { + return Math.abs(value / (this._max - this._min) * this.grid.getWidth()); + } + }, + getValueFromCoord: function (coord) { + var result; + if (!this.isHorizontal()) { + coord = coord < this.grid.getY() ? this.grid.getY() : coord; + coord = coord > this.grid.getYend() ? this.grid.getYend() : coord; + result = this._max - (coord - this.grid.getY()) / this.grid.getHeight() * (this._max - this._min); + } else { + coord = coord < this.grid.getX() ? this.grid.getX() : coord; + coord = coord > this.grid.getXend() ? this.grid.getXend() : coord; + result = this._min + (coord - this.grid.getX()) / this.grid.getWidth() * (this._max - this._min); + } + if (this._dataMappingMethods) { + result = this._dataMappingMethods.coord2Value(result); + } + return result.toFixed(2) - 0; + }, + isMaindAxis: function (value) { + for (var i = 0, l = this._valueList.length; i < l; i++) { + if (this._valueList[i] === value) { + return true; + } + } + return false; + } + }; + zrUtil.inherits(ValueAxis, Base); + require('../component').define('valueAxis', ValueAxis); + return ValueAxis; +});define('echarts/util/date', [], function () { + var _timeGap = [ + { + formatter: 'hh : mm : ss', + value: 1000 + }, + { + formatter: 'hh : mm : ss', + value: 1000 * 5 + }, + { + formatter: 'hh : mm : ss', + value: 1000 * 10 + }, + { + formatter: 'hh : mm : ss', + value: 1000 * 15 + }, + { + formatter: 'hh : mm : ss', + value: 1000 * 30 + }, + { + formatter: 'hh : mm\nMM - dd', + value: 60000 + }, + { + formatter: 'hh : mm\nMM - dd', + value: 60000 * 5 + }, + { + formatter: 'hh : mm\nMM - dd', + value: 60000 * 10 + }, + { + formatter: 'hh : mm\nMM - dd', + value: 60000 * 15 + }, + { + formatter: 'hh : mm\nMM - dd', + value: 60000 * 30 + }, + { + formatter: 'hh : mm\nMM - dd', + value: 3600000 + }, + { + formatter: 'hh : mm\nMM - dd', + value: 3600000 * 2 + }, + { + formatter: 'hh : mm\nMM - dd', + value: 3600000 * 6 + }, + { + formatter: 'hh : mm\nMM - dd', + value: 3600000 * 12 + }, + { + formatter: 'MM - dd\nyyyy', + value: 3600000 * 24 + }, + { + formatter: 'week', + value: 3600000 * 24 * 7 + }, + { + formatter: 'month', + value: 3600000 * 24 * 31 + }, + { + formatter: 'quarter', + value: 3600000 * 24 * 380 / 4 + }, + { + formatter: 'half-year', + value: 3600000 * 24 * 380 / 2 + }, + { + formatter: 'year', + value: 3600000 * 24 * 380 + } + ]; + function getAutoFormatter(min, max, splitNumber) { + splitNumber = splitNumber > 1 ? splitNumber : 2; + var curValue; + var totalGap; + var formatter; + var gapValue; + for (var i = 0, l = _timeGap.length; i < l; i++) { + curValue = _timeGap[i].value; + totalGap = Math.ceil(max / curValue) * curValue - Math.floor(min / curValue) * curValue; + if (Math.round(totalGap / curValue) <= splitNumber * 1.2) { + formatter = _timeGap[i].formatter; + gapValue = _timeGap[i].value; + break; + } + } + if (formatter == null) { + formatter = 'year'; + curValue = 3600000 * 24 * 367; + totalGap = Math.ceil(max / curValue) * curValue - Math.floor(min / curValue) * curValue; + gapValue = Math.round(totalGap / (splitNumber - 1) / curValue) * curValue; + } + return { + formatter: formatter, + gapValue: gapValue + }; + } + function s2d(v) { + return v < 10 ? '0' + v : v; + } + function format(formatter, value) { + if (formatter == 'week' || formatter == 'month' || formatter == 'quarter' || formatter == 'half-year' || formatter == 'year') { + formatter = 'MM - dd\nyyyy'; + } + var date = getNewDate(value); + var y = date.getFullYear(); + var M = date.getMonth() + 1; + var d = date.getDate(); + var h = date.getHours(); + var m = date.getMinutes(); + var s = date.getSeconds(); + formatter = formatter.replace('MM', s2d(M)); + formatter = formatter.toLowerCase(); + formatter = formatter.replace('yyyy', y); + formatter = formatter.replace('yy', y % 100); + formatter = formatter.replace('dd', s2d(d)); + formatter = formatter.replace('d', d); + formatter = formatter.replace('hh', s2d(h)); + formatter = formatter.replace('h', h); + formatter = formatter.replace('mm', s2d(m)); + formatter = formatter.replace('m', m); + formatter = formatter.replace('ss', s2d(s)); + formatter = formatter.replace('s', s); + return formatter; + } + function nextMonday(value) { + value = getNewDate(value); + value.setDate(value.getDate() + 8 - value.getDay()); + return value; + } + function nextNthPerNmonth(value, nth, nmon) { + value = getNewDate(value); + value.setMonth(Math.ceil((value.getMonth() + 1) / nmon) * nmon); + value.setDate(nth); + return value; + } + function nextNthOnMonth(value, nth) { + return nextNthPerNmonth(value, nth, 1); + } + function nextNthOnQuarterYear(value, nth) { + return nextNthPerNmonth(value, nth, 3); + } + function nextNthOnHalfYear(value, nth) { + return nextNthPerNmonth(value, nth, 6); + } + function nextNthOnYear(value, nth) { + return nextNthPerNmonth(value, nth, 12); + } + function getNewDate(value) { + return value instanceof Date ? value : new Date(typeof value == 'string' ? value.replace(/-/g, '/') : value); + } + return { + getAutoFormatter: getAutoFormatter, + getNewDate: getNewDate, + format: format, + nextMonday: nextMonday, + nextNthPerNmonth: nextNthPerNmonth, + nextNthOnMonth: nextNthOnMonth, + nextNthOnQuarterYear: nextNthOnQuarterYear, + nextNthOnHalfYear: nextNthOnHalfYear, + nextNthOnYear: nextNthOnYear + }; +});define('echarts/util/smartSteps', [], function () { + var mySteps = [ + 10, + 20, + 25, + 50 + ]; + var mySections = [ + 4, + 5, + 6 + ]; + var custOpts; + var custSteps; + var custSecs; + var minLocked; + var maxLocked; + var MT = Math; + var MATH_ROUND = MT.round; + var MATH_FLOOR = MT.floor; + var MATH_CEIL = MT.ceil; + var MATH_ABS = MT.abs; + function MATH_LOG(n) { + return MT.log(MATH_ABS(n)) / MT.LN10; + } + function MATH_POW(n) { + return MT.pow(10, n); + } + function MATH_ISINT(n) { + return n === MATH_FLOOR(n); + } + function smartSteps(min, max, section, opts) { + custOpts = opts || {}; + custSteps = custOpts.steps || mySteps; + custSecs = custOpts.secs || mySections; + section = MATH_ROUND(+section || 0) % 99; + min = +min || 0; + max = +max || 0; + minLocked = maxLocked = 0; + if ('min' in custOpts) { + min = +custOpts.min || 0; + minLocked = 1; + } + if ('max' in custOpts) { + max = +custOpts.max || 0; + maxLocked = 1; + } + if (min > max) { + max = [ + min, + min = max + ][0]; + } + var span = max - min; + if (minLocked && maxLocked) { + return bothLocked(min, max, section); + } + if (span < (section || 5)) { + if (MATH_ISINT(min) && MATH_ISINT(max)) { + return forInteger(min, max, section); + } else if (span === 0) { + return forSpan0(min, max, section); + } + } + return coreCalc(min, max, section); + } + function makeResult(newMin, newMax, section, expon) { + expon = expon || 0; + var expStep = expNum((newMax - newMin) / section, -1); + var expMin = expNum(newMin, -1, 1); + var expMax = expNum(newMax, -1); + var minExp = MT.min(expStep.e, expMin.e, expMax.e); + if (expMin.c === 0) { + minExp = MT.min(expStep.e, expMax.e); + } else if (expMax.c === 0) { + minExp = MT.min(expStep.e, expMin.e); + } + expFixTo(expStep, { + c: 0, + e: minExp + }); + expFixTo(expMin, expStep, 1); + expFixTo(expMax, expStep); + expon += minExp; + newMin = expMin.c; + newMax = expMax.c; + var step = (newMax - newMin) / section; + var zoom = MATH_POW(expon); + var fixTo = 0; + var points = []; + for (var i = section + 1; i--;) { + points[i] = (newMin + step * i) * zoom; + } + if (expon < 0) { + fixTo = decimals(zoom); + step = +(step * zoom).toFixed(fixTo); + newMin = +(newMin * zoom).toFixed(fixTo); + newMax = +(newMax * zoom).toFixed(fixTo); + for (var i = points.length; i--;) { + points[i] = points[i].toFixed(fixTo); + +points[i] === 0 && (points[i] = '0'); + } + } else { + newMin *= zoom; + newMax *= zoom; + step *= zoom; + } + custSecs = 0; + custSteps = 0; + custOpts = 0; + return { + min: newMin, + max: newMax, + secs: section, + step: step, + fix: fixTo, + exp: expon, + pnts: points + }; + } + function expNum(num, digit, byFloor) { + digit = MATH_ROUND(digit % 10) || 2; + if (digit < 0) { + if (MATH_ISINT(num)) { + digit = ('' + MATH_ABS(num)).replace(/0+$/, '').length || 1; + } else { + num = num.toFixed(15).replace(/0+$/, ''); + digit = num.replace('.', '').replace(/^[-0]+/, '').length; + num = +num; + } + } + var expon = MATH_FLOOR(MATH_LOG(num)) - digit + 1; + var cNum = +(num * MATH_POW(-expon)).toFixed(15) || 0; + cNum = byFloor ? MATH_FLOOR(cNum) : MATH_CEIL(cNum); + !cNum && (expon = 0); + if (('' + MATH_ABS(cNum)).length > digit) { + expon += 1; + cNum /= 10; + } + return { + c: cNum, + e: expon + }; + } + function expFixTo(expnum1, expnum2, byFloor) { + var deltaExp = expnum2.e - expnum1.e; + if (deltaExp) { + expnum1.e += deltaExp; + expnum1.c *= MATH_POW(-deltaExp); + expnum1.c = byFloor ? MATH_FLOOR(expnum1.c) : MATH_CEIL(expnum1.c); + } + } + function expFixMin(expnum1, expnum2, byFloor) { + if (expnum1.e < expnum2.e) { + expFixTo(expnum2, expnum1, byFloor); + } else { + expFixTo(expnum1, expnum2, byFloor); + } + } + function getCeil(num, rounds) { + rounds = rounds || mySteps; + num = expNum(num); + var cNum = num.c; + var i = 0; + while (cNum > rounds[i]) { + i++; + } + if (!rounds[i]) { + cNum /= 10; + num.e += 1; + i = 0; + while (cNum > rounds[i]) { + i++; + } + } + num.c = rounds[i]; + return num; + } + function coreCalc(min, max, section) { + var step; + var secs = section || +custSecs.slice(-1); + var expStep = getCeil((max - min) / secs, custSteps); + var expSpan = expNum(max - min); + var expMin = expNum(min, -1, 1); + var expMax = expNum(max, -1); + expFixTo(expSpan, expStep); + expFixTo(expMin, expStep, 1); + expFixTo(expMax, expStep); + if (!section) { + secs = look4sections(expMin, expMax); + } else { + step = look4step(expMin, expMax, secs); + } + if (MATH_ISINT(min) && MATH_ISINT(max) && min * max >= 0) { + if (max - min < secs) { + return forInteger(min, max, secs); + } + secs = tryForInt(min, max, section, expMin, expMax, secs); + } + var arrMM = cross0(min, max, expMin.c, expMax.c); + expMin.c = arrMM[0]; + expMax.c = arrMM[1]; + if (minLocked || maxLocked) { + singleLocked(min, max, expMin, expMax); + } + return makeResult(expMin.c, expMax.c, secs, expMax.e); + } + function look4sections(expMin, expMax) { + var section; + var tmpStep, tmpMin, tmpMax; + var reference = []; + for (var i = custSecs.length; i--;) { + section = custSecs[i]; + tmpStep = getCeil((expMax.c - expMin.c) / section, custSteps); + tmpStep = tmpStep.c * MATH_POW(tmpStep.e); + tmpMin = MATH_FLOOR(expMin.c / tmpStep) * tmpStep; + tmpMax = MATH_CEIL(expMax.c / tmpStep) * tmpStep; + reference[i] = { + min: tmpMin, + max: tmpMax, + step: tmpStep, + span: tmpMax - tmpMin + }; + } + reference.sort(function (a, b) { + var delta = a.span - b.span; + if (delta === 0) { + delta = a.step - b.step; + } + return delta; + }); + reference = reference[0]; + section = reference.span / reference.step; + expMin.c = reference.min; + expMax.c = reference.max; + return section < 3 ? section * 2 : section; + } + function look4step(expMin, expMax, secs) { + var span; + var tmpMax; + var tmpMin = expMax.c; + var tmpStep = (expMax.c - expMin.c) / secs - 1; + while (tmpMin > expMin.c) { + tmpStep = getCeil(tmpStep + 1, custSteps); + tmpStep = tmpStep.c * MATH_POW(tmpStep.e); + span = tmpStep * secs; + tmpMax = MATH_CEIL(expMax.c / tmpStep) * tmpStep; + tmpMin = tmpMax - span; + } + var deltaMin = expMin.c - tmpMin; + var deltaMax = tmpMax - expMax.c; + var deltaDelta = deltaMin - deltaMax; + if (deltaDelta > tmpStep * 1.1) { + deltaDelta = MATH_ROUND(deltaDelta / tmpStep / 2) * tmpStep; + tmpMin += deltaDelta; + tmpMax += deltaDelta; + } + expMin.c = tmpMin; + expMax.c = tmpMax; + return tmpStep; + } + function tryForInt(min, max, section, expMin, expMax, secs) { + var span = expMax.c - expMin.c; + var step = span / secs * MATH_POW(expMax.e); + if (!MATH_ISINT(step)) { + step = MATH_FLOOR(step); + span = step * secs; + if (span < max - min) { + step += 1; + span = step * secs; + if (!section && step * (secs - 1) >= max - min) { + secs -= 1; + span = step * secs; + } + } + if (span >= max - min) { + var delta = span - (max - min); + expMin.c = MATH_ROUND(min - delta / 2); + expMax.c = MATH_ROUND(max + delta / 2); + expMin.e = 0; + expMax.e = 0; + } + } + return secs; + } + function forInteger(min, max, section) { + section = section || 5; + if (minLocked) { + max = min + section; + } else if (maxLocked) { + min = max - section; + } else { + var delta = section - (max - min); + var newMin = MATH_ROUND(min - delta / 2); + var newMax = MATH_ROUND(max + delta / 2); + var arrMM = cross0(min, max, newMin, newMax); + min = arrMM[0]; + max = arrMM[1]; + } + return makeResult(min, max, section); + } + function forSpan0(min, max, section) { + section = section || 5; + var delta = MT.min(MATH_ABS(max / section), section) / 2.1; + if (minLocked) { + max = min + delta; + } else if (maxLocked) { + min = max - delta; + } else { + min = min - delta; + max = max + delta; + } + return coreCalc(min, max, section); + } + function cross0(min, max, newMin, newMax) { + if (min >= 0 && newMin < 0) { + newMax -= newMin; + newMin = 0; + } else if (max <= 0 && newMax > 0) { + newMin -= newMax; + newMax = 0; + } + return [ + newMin, + newMax + ]; + } + function decimals(num) { + num = (+num).toFixed(15).split('.'); + return num.pop().replace(/0+$/, '').length; + } + function singleLocked(min, max, emin, emax) { + if (minLocked) { + var expMin = expNum(min, 4, 1); + if (emin.e - expMin.e > 6) { + expMin = { + c: 0, + e: emin.e + }; + } + expFixMin(emin, expMin); + expFixMin(emax, expMin); + emax.c += expMin.c - emin.c; + emin.c = expMin.c; + } else if (maxLocked) { + var expMax = expNum(max, 4); + if (emax.e - expMax.e > 6) { + expMax = { + c: 0, + e: emax.e + }; + } + expFixMin(emin, expMax); + expFixMin(emax, expMax); + emin.c += expMax.c - emax.c; + emax.c = expMax.c; + } + } + function bothLocked(min, max, section) { + var trySecs = section ? [section] : custSecs; + var span = max - min; + if (span === 0) { + max = expNum(max, 3); + section = trySecs[0]; + max.c = MATH_ROUND(max.c + section / 2); + return makeResult(max.c - section, max.c, section, max.e); + } + if (MATH_ABS(max / span) < 0.000001) { + max = 0; + } + if (MATH_ABS(min / span) < 0.000001) { + min = 0; + } + var step, deltaSpan, score; + var scoreS = [ + [ + 5, + 10 + ], + [ + 10, + 2 + ], + [ + 50, + 10 + ], + [ + 100, + 2 + ] + ]; + var reference = []; + var debugLog = []; + var expSpan = expNum(max - min, 3); + var expMin = expNum(min, -1, 1); + var expMax = expNum(max, -1); + expFixTo(expMin, expSpan, 1); + expFixTo(expMax, expSpan); + span = expMax.c - expMin.c; + expSpan.c = span; + for (var i = trySecs.length; i--;) { + section = trySecs[i]; + step = MATH_CEIL(span / section); + deltaSpan = step * section - span; + score = (deltaSpan + 3) * 3; + score += (section - trySecs[0] + 2) * 2; + if (section % 5 === 0) { + score -= 10; + } + for (var j = scoreS.length; j--;) { + if (step % scoreS[j][0] === 0) { + score /= scoreS[j][1]; + } + } + debugLog[i] = [ + section, + step, + deltaSpan, + score + ].join(); + reference[i] = { + secs: section, + step: step, + delta: deltaSpan, + score: score + }; + } + reference.sort(function (a, b) { + return a.score - b.score; + }); + reference = reference[0]; + expMin.c = MATH_ROUND(expMin.c - reference.delta / 2); + expMax.c = MATH_ROUND(expMax.c + reference.delta / 2); + return makeResult(expMin.c, expMax.c, reference.secs, expSpan.e); + } + return smartSteps; +});define('echarts/util/smartLogSteps', [ + 'require', + './number' +], function (require) { + var number = require('./number'); + var Mt = Math; + var mathLog = Mt.log; + var mathPow = Mt.pow; + var mathAbs = Mt.abs; + var mathCeil = Mt.ceil; + var mathFloor = Mt.floor; + var LOG_BASE = Mt.E; + var LN10 = Mt.LN10; + var LN2 = Mt.LN2; + var LN2D10 = LN2 / LN10; + var EPSILON = 1e-9; + var DEFAULT_SPLIT_NUMBER = 5; + var MIN_BASE_10_SPLIT_NUMBER = 2; + var SUPERSCRIPTS = { + '0': '⁰', + '1': '¹', + '2': '²', + '3': '³', + '4': '⁴', + '5': '⁵', + '6': '⁶', + '7': '⁷', + '8': '⁸', + '9': '⁹', + '-': '⁻' + }; + var logPositive; + var logLabelBase; + var logLabelMode; + var lnBase; + var custOpts; + var splitNumber; + var logMappingOffset; + var absMin; + var absMax; + var tickList; + function smartLogSteps(opts) { + clearStaticVariables(); + custOpts = opts || {}; + reformSetting(); + makeTicksList(); + return [ + makeResult(), + clearStaticVariables() + ][0]; + } + function clearStaticVariables() { + logPositive = custOpts = logMappingOffset = lnBase = absMin = absMax = splitNumber = tickList = logLabelBase = logLabelMode = null; + } + function reformSetting() { + logLabelBase = custOpts.logLabelBase; + if (logLabelBase == null) { + logLabelMode = 'plain'; + logLabelBase = 10; + lnBase = LN10; + } else { + logLabelBase = +logLabelBase; + if (logLabelBase < 1) { + logLabelBase = 10; + } + logLabelMode = 'exponent'; + lnBase = mathLog(logLabelBase); + } + splitNumber = custOpts.splitNumber; + splitNumber == null && (splitNumber = DEFAULT_SPLIT_NUMBER); + var dataMin = parseFloat(custOpts.dataMin); + var dataMax = parseFloat(custOpts.dataMax); + if (!isFinite(dataMin) && !isFinite(dataMax)) { + dataMin = dataMax = 1; + } else if (!isFinite(dataMin)) { + dataMin = dataMax; + } else if (!isFinite(dataMax)) { + dataMax = dataMin; + } else if (dataMin > dataMax) { + dataMax = [ + dataMin, + dataMin = dataMax + ][0]; + } + logPositive = custOpts.logPositive; + if (logPositive == null) { + logPositive = dataMax > 0 || dataMin === 0; + } + absMin = logPositive ? dataMin : -dataMax; + absMax = logPositive ? dataMax : -dataMin; + absMin < EPSILON && (absMin = EPSILON); + absMax < EPSILON && (absMax = EPSILON); + } + function makeTicksList() { + tickList = []; + var maxDataLog = fixAccurate(mathLog(absMax) / lnBase); + var minDataLog = fixAccurate(mathLog(absMin) / lnBase); + var maxExpon = mathCeil(maxDataLog); + var minExpon = mathFloor(minDataLog); + var spanExpon = maxExpon - minExpon; + var spanDataLog = maxDataLog - minDataLog; + if (logLabelMode === 'exponent') { + baseAnalysis(); + } else { + !(spanExpon <= MIN_BASE_10_SPLIT_NUMBER && splitNumber > MIN_BASE_10_SPLIT_NUMBER) ? baseAnalysis() : detailAnalysis(); + } + function baseAnalysis() { + if (spanExpon < splitNumber) { + splitNumber = spanExpon; + } + var stepExpon = mathFloor(fixAccurate(spanExpon / splitNumber)); + var splitNumberAdjust = mathCeil(fixAccurate(spanExpon / stepExpon)); + var spanExponAdjust = stepExpon * splitNumberAdjust; + var halfDiff = (spanExponAdjust - spanDataLog) / 2; + var minExponAdjust = mathFloor(fixAccurate(minDataLog - halfDiff)); + if (aroundZero(minExponAdjust - minDataLog)) { + minExponAdjust -= 1; + } + logMappingOffset = -minExponAdjust * lnBase; + for (var n = minExponAdjust; n - stepExpon <= maxDataLog; n += stepExpon) { + tickList.push(mathPow(logLabelBase, n)); + } + } + function detailAnalysis() { + var minDecimal = toDecimalFrom4Hex(minExpon, 0); + var endDecimal = minDecimal + 2; + while (minDecimal < endDecimal && toH(minDecimal + 1) + toK(minDecimal + 1) * LN2D10 < minDataLog) { + minDecimal++; + } + var maxDecimal = toDecimalFrom4Hex(maxExpon, 0); + var endDecimal = maxDecimal - 2; + while (maxDecimal > endDecimal && toH(maxDecimal - 1) + toK(maxDecimal - 1) * LN2D10 > maxDataLog) { + maxDecimal--; + } + logMappingOffset = -(toH(minDecimal) * LN10 + toK(minDecimal) * LN2); + for (var i = minDecimal; i <= maxDecimal; i++) { + var h = toH(i); + var k = toK(i); + tickList.push(mathPow(10, h) * mathPow(2, k)); + } + } + function toDecimalFrom4Hex(h, k) { + return h * 3 + k; + } + function toK(decimal) { + return decimal - toH(decimal) * 3; + } + function toH(decimal) { + return mathFloor(fixAccurate(decimal / 3)); + } + } + function makeResult() { + var resultTickList = []; + for (var i = 0, len = tickList.length; i < len; i++) { + resultTickList[i] = (logPositive ? 1 : -1) * tickList[i]; + } + !logPositive && resultTickList.reverse(); + var dataMappingMethods = makeDataMappingMethods(); + var value2Coord = dataMappingMethods.value2Coord; + var newDataMin = value2Coord(resultTickList[0]); + var newDataMax = value2Coord(resultTickList[resultTickList.length - 1]); + if (newDataMin === newDataMax) { + newDataMin -= 1; + newDataMax += 1; + } + return { + dataMin: newDataMin, + dataMax: newDataMax, + tickList: resultTickList, + logPositive: logPositive, + labelFormatter: makeLabelFormatter(), + dataMappingMethods: dataMappingMethods + }; + } + function makeLabelFormatter() { + if (logLabelMode === 'exponent') { + var myLogLabelBase = logLabelBase; + var myLnBase = lnBase; + return function (value) { + if (!isFinite(parseFloat(value))) { + return ''; + } + var sign = ''; + if (value < 0) { + value = -value; + sign = '-'; + } + return sign + myLogLabelBase + makeSuperscriptExponent(mathLog(value) / myLnBase); + }; + } else { + return function (value) { + if (!isFinite(parseFloat(value))) { + return ''; + } + return number.addCommas(formatNumber(value)); + }; + } + } + function makeDataMappingMethods() { + var myLogPositive = logPositive; + var myLogMappingOffset = logMappingOffset; + return { + value2Coord: function (x) { + if (x == null || isNaN(x) || !isFinite(x)) { + return x; + } + x = parseFloat(x); + if (!isFinite(x)) { + x = EPSILON; + } else if (myLogPositive && x < EPSILON) { + x = EPSILON; + } else if (!myLogPositive && x > -EPSILON) { + x = -EPSILON; + } + x = mathAbs(x); + return (myLogPositive ? 1 : -1) * (mathLog(x) + myLogMappingOffset); + }, + coord2Value: function (x) { + if (x == null || isNaN(x) || !isFinite(x)) { + return x; + } + x = parseFloat(x); + if (!isFinite(x)) { + x = EPSILON; + } + return myLogPositive ? mathPow(LOG_BASE, x - myLogMappingOffset) : -mathPow(LOG_BASE, -x + myLogMappingOffset); + } + }; + } + function fixAccurate(result) { + return +Number(+result).toFixed(14); + } + function formatNumber(num) { + return Number(num).toFixed(15).replace(/\.?0*$/, ''); + } + function makeSuperscriptExponent(exponent) { + exponent = formatNumber(Math.round(exponent)); + var result = []; + for (var i = 0, len = exponent.length; i < len; i++) { + var cha = exponent.charAt(i); + result.push(SUPERSCRIPTS[cha] || ''); + } + return result.join(''); + } + function aroundZero(val) { + return val > -EPSILON && val < EPSILON; + } + return smartLogSteps; +});define('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 (require) { + var ChartBase = require('./base'); + var PolylineShape = require('zrender/shape/Polyline'); + var IconShape = require('../util/shape/Icon'); + var HalfSmoothPolygonShape = require('../util/shape/HalfSmoothPolygon'); + require('../component/axis'); + require('../component/grid'); + require('../component/dataZoom'); + var ecConfig = require('../config'); + ecConfig.line = { + zlevel: 0, + z: 2, + clickable: true, + legendHoverLink: true, + xAxisIndex: 0, + yAxisIndex: 0, + dataFilter: 'nearest', + itemStyle: { + normal: { + label: { show: false }, + lineStyle: { + width: 2, + type: 'solid', + shadowColor: 'rgba(0,0,0,0)', + shadowBlur: 0, + shadowOffsetX: 0, + shadowOffsetY: 0 + } + }, + emphasis: { label: { show: false } } + }, + symbolSize: 2, + showAllSymbol: false + }; + var ecData = require('../util/ecData'); + var zrUtil = require('zrender/tool/util'); + var zrColor = require('zrender/tool/color'); + function Line(ecTheme, messageCenter, zr, option, myChart) { + ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); + this.refresh(option); + } + Line.prototype = { + type: ecConfig.CHART_TYPE_LINE, + _buildShape: function () { + this.finalPLMap = {}; + this._buildPosition(); + }, + _buildHorizontal: function (seriesArray, maxDataLength, locationMap, xMarkMap) { + var series = this.series; + var seriesIndex = locationMap[0][0]; + var serie = series[seriesIndex]; + var categoryAxis = this.component.xAxis.getAxis(serie.xAxisIndex || 0); + var valueAxis; + var x; + var y; + var lastYP; + var baseYP; + var lastYN; + var baseYN; + var curPLMap = {}; + var data; + var value; + for (var i = 0, l = maxDataLength; i < l; i++) { + if (categoryAxis.getNameByIndex(i) == null) { + break; + } + x = categoryAxis.getCoordByIndex(i); + for (var j = 0, k = locationMap.length; j < k; j++) { + valueAxis = this.component.yAxis.getAxis(series[locationMap[j][0]].yAxisIndex || 0); + baseYP = lastYP = baseYN = lastYN = valueAxis.getCoord(0); + for (var m = 0, n = locationMap[j].length; m < n; m++) { + seriesIndex = locationMap[j][m]; + serie = series[seriesIndex]; + data = serie.data[i]; + value = this.getDataFromOption(data, '-'); + curPLMap[seriesIndex] = curPLMap[seriesIndex] || []; + xMarkMap[seriesIndex] = xMarkMap[seriesIndex] || { + min: Number.POSITIVE_INFINITY, + max: Number.NEGATIVE_INFINITY, + sum: 0, + counter: 0, + average: 0 + }; + if (value === '-') { + if (curPLMap[seriesIndex].length > 0) { + this.finalPLMap[seriesIndex] = this.finalPLMap[seriesIndex] || []; + this.finalPLMap[seriesIndex].push(curPLMap[seriesIndex]); + curPLMap[seriesIndex] = []; + } + continue; + } + if (value >= 0) { + lastYP -= m > 0 ? valueAxis.getCoordSize(value) : baseYP - valueAxis.getCoord(value); + y = lastYP; + } else if (value < 0) { + lastYN += m > 0 ? valueAxis.getCoordSize(value) : valueAxis.getCoord(value) - baseYN; + y = lastYN; + } + curPLMap[seriesIndex].push([ + x, + y, + i, + categoryAxis.getNameByIndex(i), + x, + baseYP + ]); + if (xMarkMap[seriesIndex].min > value) { + xMarkMap[seriesIndex].min = value; + xMarkMap[seriesIndex].minY = y; + xMarkMap[seriesIndex].minX = x; + } + if (xMarkMap[seriesIndex].max < value) { + xMarkMap[seriesIndex].max = value; + xMarkMap[seriesIndex].maxY = y; + xMarkMap[seriesIndex].maxX = x; + } + xMarkMap[seriesIndex].sum += value; + xMarkMap[seriesIndex].counter++; + } + } + lastYP = this.component.grid.getY(); + var symbolSize; + for (var j = 0, k = locationMap.length; j < k; j++) { + for (var m = 0, n = locationMap[j].length; m < n; m++) { + seriesIndex = locationMap[j][m]; + serie = series[seriesIndex]; + data = serie.data[i]; + value = this.getDataFromOption(data, '-'); + if (value != '-') { + continue; + } + if (this.deepQuery([ + data, + serie, + this.option + ], 'calculable')) { + symbolSize = this.deepQuery([ + data, + serie + ], 'symbolSize'); + lastYP += symbolSize * 2 + 5; + y = lastYP; + this.shapeList.push(this._getCalculableItem(seriesIndex, i, categoryAxis.getNameByIndex(i), x, y, 'horizontal')); + } + } + } + } + for (var sId in curPLMap) { + if (curPLMap[sId].length > 0) { + this.finalPLMap[sId] = this.finalPLMap[sId] || []; + this.finalPLMap[sId].push(curPLMap[sId]); + curPLMap[sId] = []; + } + } + this._calculMarkMapXY(xMarkMap, locationMap, 'y'); + this._buildBorkenLine(seriesArray, this.finalPLMap, categoryAxis, 'horizontal'); + }, + _buildVertical: function (seriesArray, maxDataLength, locationMap, xMarkMap) { + var series = this.series; + var seriesIndex = locationMap[0][0]; + var serie = series[seriesIndex]; + var categoryAxis = this.component.yAxis.getAxis(serie.yAxisIndex || 0); + var valueAxis; + var x; + var y; + var lastXP; + var baseXP; + var lastXN; + var baseXN; + var curPLMap = {}; + var data; + var value; + for (var i = 0, l = maxDataLength; i < l; i++) { + if (categoryAxis.getNameByIndex(i) == null) { + break; + } + y = categoryAxis.getCoordByIndex(i); + for (var j = 0, k = locationMap.length; j < k; j++) { + valueAxis = this.component.xAxis.getAxis(series[locationMap[j][0]].xAxisIndex || 0); + baseXP = lastXP = baseXN = lastXN = valueAxis.getCoord(0); + for (var m = 0, n = locationMap[j].length; m < n; m++) { + seriesIndex = locationMap[j][m]; + serie = series[seriesIndex]; + data = serie.data[i]; + value = this.getDataFromOption(data, '-'); + curPLMap[seriesIndex] = curPLMap[seriesIndex] || []; + xMarkMap[seriesIndex] = xMarkMap[seriesIndex] || { + min: Number.POSITIVE_INFINITY, + max: Number.NEGATIVE_INFINITY, + sum: 0, + counter: 0, + average: 0 + }; + if (value === '-') { + if (curPLMap[seriesIndex].length > 0) { + this.finalPLMap[seriesIndex] = this.finalPLMap[seriesIndex] || []; + this.finalPLMap[seriesIndex].push(curPLMap[seriesIndex]); + curPLMap[seriesIndex] = []; + } + continue; + } + if (value >= 0) { + lastXP += m > 0 ? valueAxis.getCoordSize(value) : valueAxis.getCoord(value) - baseXP; + x = lastXP; + } else if (value < 0) { + lastXN -= m > 0 ? valueAxis.getCoordSize(value) : baseXN - valueAxis.getCoord(value); + x = lastXN; + } + curPLMap[seriesIndex].push([ + x, + y, + i, + categoryAxis.getNameByIndex(i), + baseXP, + y + ]); + if (xMarkMap[seriesIndex].min > value) { + xMarkMap[seriesIndex].min = value; + xMarkMap[seriesIndex].minX = x; + xMarkMap[seriesIndex].minY = y; + } + if (xMarkMap[seriesIndex].max < value) { + xMarkMap[seriesIndex].max = value; + xMarkMap[seriesIndex].maxX = x; + xMarkMap[seriesIndex].maxY = y; + } + xMarkMap[seriesIndex].sum += value; + xMarkMap[seriesIndex].counter++; + } + } + lastXP = this.component.grid.getXend(); + var symbolSize; + for (var j = 0, k = locationMap.length; j < k; j++) { + for (var m = 0, n = locationMap[j].length; m < n; m++) { + seriesIndex = locationMap[j][m]; + serie = series[seriesIndex]; + data = serie.data[i]; + value = this.getDataFromOption(data, '-'); + if (value != '-') { + continue; + } + if (this.deepQuery([ + data, + serie, + this.option + ], 'calculable')) { + symbolSize = this.deepQuery([ + data, + serie + ], 'symbolSize'); + lastXP -= symbolSize * 2 + 5; + x = lastXP; + this.shapeList.push(this._getCalculableItem(seriesIndex, i, categoryAxis.getNameByIndex(i), x, y, 'vertical')); + } + } + } + } + for (var sId in curPLMap) { + if (curPLMap[sId].length > 0) { + this.finalPLMap[sId] = this.finalPLMap[sId] || []; + this.finalPLMap[sId].push(curPLMap[sId]); + curPLMap[sId] = []; + } + } + this._calculMarkMapXY(xMarkMap, locationMap, 'x'); + this._buildBorkenLine(seriesArray, this.finalPLMap, categoryAxis, 'vertical'); + }, + _buildOther: function (seriesArray, maxDataLength, locationMap, xMarkMap) { + var series = this.series; + var curPLMap = {}; + var xAxis; + for (var j = 0, k = locationMap.length; j < k; j++) { + for (var m = 0, n = locationMap[j].length; m < n; m++) { + var seriesIndex = locationMap[j][m]; + var serie = series[seriesIndex]; + xAxis = this.component.xAxis.getAxis(serie.xAxisIndex || 0); + var yAxis = this.component.yAxis.getAxis(serie.yAxisIndex || 0); + var baseY = yAxis.getCoord(0); + curPLMap[seriesIndex] = curPLMap[seriesIndex] || []; + xMarkMap[seriesIndex] = xMarkMap[seriesIndex] || { + min0: Number.POSITIVE_INFINITY, + min1: Number.POSITIVE_INFINITY, + max0: Number.NEGATIVE_INFINITY, + max1: Number.NEGATIVE_INFINITY, + sum0: 0, + sum1: 0, + counter0: 0, + counter1: 0, + average0: 0, + average1: 0 + }; + for (var i = 0, l = serie.data.length; i < l; i++) { + var data = serie.data[i]; + var value = this.getDataFromOption(data, '-'); + if (!(value instanceof Array)) { + continue; + } + var x = xAxis.getCoord(value[0]); + var y = yAxis.getCoord(value[1]); + curPLMap[seriesIndex].push([ + x, + y, + i, + value[0], + x, + baseY + ]); + if (xMarkMap[seriesIndex].min0 > value[0]) { + xMarkMap[seriesIndex].min0 = value[0]; + xMarkMap[seriesIndex].minY0 = y; + xMarkMap[seriesIndex].minX0 = x; + } + if (xMarkMap[seriesIndex].max0 < value[0]) { + xMarkMap[seriesIndex].max0 = value[0]; + xMarkMap[seriesIndex].maxY0 = y; + xMarkMap[seriesIndex].maxX0 = x; + } + xMarkMap[seriesIndex].sum0 += value[0]; + xMarkMap[seriesIndex].counter0++; + if (xMarkMap[seriesIndex].min1 > value[1]) { + xMarkMap[seriesIndex].min1 = value[1]; + xMarkMap[seriesIndex].minY1 = y; + xMarkMap[seriesIndex].minX1 = x; + } + if (xMarkMap[seriesIndex].max1 < value[1]) { + xMarkMap[seriesIndex].max1 = value[1]; + xMarkMap[seriesIndex].maxY1 = y; + xMarkMap[seriesIndex].maxX1 = x; + } + xMarkMap[seriesIndex].sum1 += value[1]; + xMarkMap[seriesIndex].counter1++; + } + } + } + for (var sId in curPLMap) { + if (curPLMap[sId].length > 0) { + this.finalPLMap[sId] = this.finalPLMap[sId] || []; + this.finalPLMap[sId].push(curPLMap[sId]); + curPLMap[sId] = []; + } + } + this._calculMarkMapXY(xMarkMap, locationMap, 'xy'); + this._buildBorkenLine(seriesArray, this.finalPLMap, xAxis, 'other'); + }, + _buildBorkenLine: function (seriesArray, pointList, categoryAxis, curOrient) { + var orient = curOrient == 'other' ? 'horizontal' : curOrient; + var series = this.series; + var data; + for (var sIdx = seriesArray.length - 1; sIdx >= 0; sIdx--) { + var seriesIndex = seriesArray[sIdx]; + var serie = series[seriesIndex]; + var seriesPL = pointList[seriesIndex]; + if (serie.type === this.type && seriesPL != null) { + var bbox = this._getBbox(seriesIndex, orient); + var defaultColor = this._sIndex2ColorMap[seriesIndex]; + var lineWidth = this.query(serie, 'itemStyle.normal.lineStyle.width'); + var lineType = this.query(serie, 'itemStyle.normal.lineStyle.type'); + var lineColor = this.query(serie, 'itemStyle.normal.lineStyle.color'); + var normalColor = this.getItemStyleColor(this.query(serie, 'itemStyle.normal.color'), seriesIndex, -1); + var isFill = this.query(serie, 'itemStyle.normal.areaStyle') != null; + var fillNormalColor = this.query(serie, 'itemStyle.normal.areaStyle.color'); + for (var i = 0, l = seriesPL.length; i < l; i++) { + var singlePL = seriesPL[i]; + var isLarge = curOrient != 'other' && this._isLarge(orient, singlePL); + if (!isLarge) { + for (var j = 0, k = singlePL.length; j < k; j++) { + data = serie.data[singlePL[j][2]]; + if (this.deepQuery([ + data, + serie, + this.option + ], 'calculable') || this.deepQuery([ + data, + serie + ], 'showAllSymbol') || categoryAxis.type === 'categoryAxis' && categoryAxis.isMainAxis(singlePL[j][2]) && this.deepQuery([ + data, + serie + ], 'symbol') != 'none') { + this.shapeList.push(this._getSymbol(seriesIndex, singlePL[j][2], singlePL[j][3], singlePL[j][0], singlePL[j][1], orient)); + } + } + } else { + singlePL = this._getLargePointList(orient, singlePL, serie.dataFilter); + } + var polylineShape = new PolylineShape({ + zlevel: serie.zlevel, + z: serie.z, + style: { + miterLimit: lineWidth, + pointList: singlePL, + strokeColor: lineColor || normalColor || defaultColor, + lineWidth: lineWidth, + lineType: lineType, + smooth: this._getSmooth(serie.smooth), + smoothConstraint: bbox, + shadowColor: this.query(serie, 'itemStyle.normal.lineStyle.shadowColor'), + shadowBlur: this.query(serie, 'itemStyle.normal.lineStyle.shadowBlur'), + shadowOffsetX: this.query(serie, 'itemStyle.normal.lineStyle.shadowOffsetX'), + shadowOffsetY: this.query(serie, 'itemStyle.normal.lineStyle.shadowOffsetY') + }, + hoverable: false, + _main: true, + _seriesIndex: seriesIndex, + _orient: orient + }); + ecData.pack(polylineShape, series[seriesIndex], seriesIndex, 0, i, series[seriesIndex].name); + this.shapeList.push(polylineShape); + if (isFill) { + var halfSmoothPolygonShape = new HalfSmoothPolygonShape({ + zlevel: serie.zlevel, + z: serie.z, + style: { + miterLimit: lineWidth, + pointList: zrUtil.clone(singlePL).concat([ + [ + singlePL[singlePL.length - 1][4], + singlePL[singlePL.length - 1][5] + ], + [ + singlePL[0][4], + singlePL[0][5] + ] + ]), + brushType: 'fill', + smooth: this._getSmooth(serie.smooth), + smoothConstraint: bbox, + color: fillNormalColor ? fillNormalColor : zrColor.alpha(defaultColor, 0.5) + }, + highlightStyle: { brushType: 'fill' }, + hoverable: false, + _main: true, + _seriesIndex: seriesIndex, + _orient: orient + }); + ecData.pack(halfSmoothPolygonShape, series[seriesIndex], seriesIndex, 0, i, series[seriesIndex].name); + this.shapeList.push(halfSmoothPolygonShape); + } + } + } + } + }, + _getBbox: function (seriesIndex, orient) { + var bbox = this.component.grid.getBbox(); + var xMarkMap = this.xMarkMap[seriesIndex]; + if (xMarkMap.minX0 != null) { + return [ + [ + Math.min(xMarkMap.minX0, xMarkMap.maxX0, xMarkMap.minX1, xMarkMap.maxX1), + Math.min(xMarkMap.minY0, xMarkMap.maxY0, xMarkMap.minY1, xMarkMap.maxY1) + ], + [ + Math.max(xMarkMap.minX0, xMarkMap.maxX0, xMarkMap.minX1, xMarkMap.maxX1), + Math.max(xMarkMap.minY0, xMarkMap.maxY0, xMarkMap.minY1, xMarkMap.maxY1) + ] + ]; + } else if (orient === 'horizontal') { + bbox[0][1] = Math.min(xMarkMap.minY, xMarkMap.maxY); + bbox[1][1] = Math.max(xMarkMap.minY, xMarkMap.maxY); + } else { + bbox[0][0] = Math.min(xMarkMap.minX, xMarkMap.maxX); + bbox[1][0] = Math.max(xMarkMap.minX, xMarkMap.maxX); + } + return bbox; + }, + _isLarge: function (orient, singlePL) { + if (singlePL.length < 2) { + return false; + } else { + return orient === 'horizontal' ? Math.abs(singlePL[0][0] - singlePL[1][0]) < 0.5 : Math.abs(singlePL[0][1] - singlePL[1][1]) < 0.5; + } + }, + _getLargePointList: function (orient, singlePL, filter) { + var total; + if (orient === 'horizontal') { + total = this.component.grid.getWidth(); + } else { + total = this.component.grid.getHeight(); + } + var len = singlePL.length; + var newList = []; + if (typeof filter != 'function') { + switch (filter) { + case 'min': + filter = function (arr) { + return Math.max.apply(null, arr); + }; + break; + case 'max': + filter = function (arr) { + return Math.min.apply(null, arr); + }; + break; + case 'average': + filter = function (arr) { + var total = 0; + for (var i = 0; i < arr.length; i++) { + total += arr[i]; + } + return total / arr.length; + }; + break; + default: + filter = function (arr) { + return arr[0]; + }; + } + } + var windowData = []; + for (var i = 0; i < total; i++) { + var idx0 = Math.floor(len / total * i); + var idx1 = Math.min(Math.floor(len / total * (i + 1)), len); + if (idx1 <= idx0) { + continue; + } + for (var j = idx0; j < idx1; j++) { + windowData[j - idx0] = orient === 'horizontal' ? singlePL[j][1] : singlePL[j][0]; + } + windowData.length = idx1 - idx0; + var filteredVal = filter(windowData); + var nearestIdx = -1; + var minDist = Infinity; + for (var j = idx0; j < idx1; j++) { + var val = orient === 'horizontal' ? singlePL[j][1] : singlePL[j][0]; + var dist = Math.abs(val - filteredVal); + if (dist < minDist) { + nearestIdx = j; + minDist = dist; + } + } + var newItem = singlePL[nearestIdx].slice(); + if (orient === 'horizontal') { + newItem[1] = filteredVal; + } else { + newItem[0] = filteredVal; + } + newList.push(newItem); + } + return newList; + }, + _getSmooth: function (isSmooth) { + if (isSmooth) { + return 0.3; + } else { + return 0; + } + }, + _getCalculableItem: function (seriesIndex, dataIndex, name, x, y, orient) { + var series = this.series; + var color = series[seriesIndex].calculableHolderColor || this.ecTheme.calculableHolderColor || ecConfig.calculableHolderColor; + var itemShape = this._getSymbol(seriesIndex, dataIndex, name, x, y, orient); + itemShape.style.color = color; + itemShape.style.strokeColor = color; + itemShape.rotation = [ + 0, + 0 + ]; + itemShape.hoverable = false; + itemShape.draggable = false; + itemShape.style.text = undefined; + return itemShape; + }, + _getSymbol: function (seriesIndex, dataIndex, name, x, y, orient) { + var series = this.series; + var serie = series[seriesIndex]; + var data = serie.data[dataIndex]; + var itemShape = this.getSymbolShape(serie, seriesIndex, data, dataIndex, name, x, y, this._sIndex2ShapeMap[seriesIndex], this._sIndex2ColorMap[seriesIndex], '#fff', orient === 'vertical' ? 'horizontal' : 'vertical'); + itemShape.zlevel = serie.zlevel; + itemShape.z = serie.z + 1; + if (this.deepQuery([ + data, + serie, + this.option + ], 'calculable')) { + this.setCalculable(itemShape); + itemShape.draggable = true; + } + return itemShape; + }, + getMarkCoord: function (seriesIndex, mpData) { + var serie = this.series[seriesIndex]; + var xMarkMap = this.xMarkMap[seriesIndex]; + var xAxis = this.component.xAxis.getAxis(serie.xAxisIndex); + var yAxis = this.component.yAxis.getAxis(serie.yAxisIndex); + if (mpData.type && (mpData.type === 'max' || mpData.type === 'min' || mpData.type === 'average')) { + var valueIndex = mpData.valueIndex != null ? mpData.valueIndex : xMarkMap.maxX0 != null ? '1' : ''; + return [ + xMarkMap[mpData.type + 'X' + valueIndex], + xMarkMap[mpData.type + 'Y' + valueIndex], + xMarkMap[mpData.type + 'Line' + valueIndex], + xMarkMap[mpData.type + valueIndex] + ]; + } + return [ + typeof mpData.xAxis != 'string' && xAxis.getCoordByIndex ? xAxis.getCoordByIndex(mpData.xAxis || 0) : xAxis.getCoord(mpData.xAxis || 0), + typeof mpData.yAxis != 'string' && yAxis.getCoordByIndex ? yAxis.getCoordByIndex(mpData.yAxis || 0) : yAxis.getCoord(mpData.yAxis || 0) + ]; + }, + refresh: function (newOption) { + if (newOption) { + this.option = newOption; + this.series = newOption.series; + } + this.backupShapeList(); + this._buildShape(); + }, + ontooltipHover: function (param, tipShape) { + var seriesIndex = param.seriesIndex; + var dataIndex = param.dataIndex; + var seriesPL; + var singlePL; + var len = seriesIndex.length; + while (len--) { + seriesPL = this.finalPLMap[seriesIndex[len]]; + if (seriesPL) { + for (var i = 0, l = seriesPL.length; i < l; i++) { + singlePL = seriesPL[i]; + for (var j = 0, k = singlePL.length; j < k; j++) { + if (dataIndex === singlePL[j][2]) { + tipShape.push(this._getSymbol(seriesIndex[len], singlePL[j][2], singlePL[j][3], singlePL[j][0], singlePL[j][1], 'horizontal')); + } + } + } + } + } + }, + addDataAnimation: function (params, done) { + var series = this.series; + var aniMap = {}; + for (var i = 0, l = params.length; i < l; i++) { + aniMap[params[i][0]] = params[i]; + } + var x; + var dx; + var y; + var dy; + var seriesIndex; + var pointList; + var isHorizontal; + var aniCount = 0; + function animationDone() { + aniCount--; + if (aniCount === 0) { + done && done(); + } + } + function animationDuring(target) { + target.style.controlPointList = null; + } + for (var i = this.shapeList.length - 1; i >= 0; i--) { + seriesIndex = this.shapeList[i]._seriesIndex; + if (aniMap[seriesIndex] && !aniMap[seriesIndex][3]) { + if (this.shapeList[i]._main && this.shapeList[i].style.pointList.length > 1) { + pointList = this.shapeList[i].style.pointList; + dx = Math.abs(pointList[0][0] - pointList[1][0]); + dy = Math.abs(pointList[0][1] - pointList[1][1]); + isHorizontal = this.shapeList[i]._orient === 'horizontal'; + if (aniMap[seriesIndex][2]) { + if (this.shapeList[i].type === 'half-smooth-polygon') { + var len = pointList.length; + this.shapeList[i].style.pointList[len - 3] = pointList[len - 2]; + this.shapeList[i].style.pointList[len - 3][isHorizontal ? 0 : 1] = pointList[len - 4][isHorizontal ? 0 : 1]; + this.shapeList[i].style.pointList[len - 2] = pointList[len - 1]; + } + this.shapeList[i].style.pointList.pop(); + isHorizontal ? (x = dx, y = 0) : (x = 0, y = -dy); + } else { + this.shapeList[i].style.pointList.shift(); + if (this.shapeList[i].type === 'half-smooth-polygon') { + var targetPoint = this.shapeList[i].style.pointList.pop(); + isHorizontal ? targetPoint[0] = pointList[0][0] : targetPoint[1] = pointList[0][1]; + this.shapeList[i].style.pointList.push(targetPoint); + } + isHorizontal ? (x = -dx, y = 0) : (x = 0, y = dy); + } + this.shapeList[i].style.controlPointList = null; + this.zr.modShape(this.shapeList[i]); + } else { + if (aniMap[seriesIndex][2] && this.shapeList[i]._dataIndex === series[seriesIndex].data.length - 1) { + this.zr.delShape(this.shapeList[i].id); + continue; + } else if (!aniMap[seriesIndex][2] && this.shapeList[i]._dataIndex === 0) { + this.zr.delShape(this.shapeList[i].id); + continue; + } + } + this.shapeList[i].position = [ + 0, + 0 + ]; + aniCount++; + this.zr.animate(this.shapeList[i].id, '').when(this.query(this.option, 'animationDurationUpdate'), { + position: [ + x, + y + ] + }).during(animationDuring).done(animationDone).start(); + } + } + if (!aniCount) { + done && done(); + } + } + }; + function legendLineIcon(ctx, style, refreshNextFrame) { + var x = style.x; + var y = style.y; + var width = style.width; + var height = style.height; + var dy = height / 2; + if (style.symbol.match('empty')) { + ctx.fillStyle = '#fff'; + } + style.brushType = 'both'; + var symbol = style.symbol.replace('empty', '').toLowerCase(); + if (symbol.match('star')) { + dy = symbol.replace('star', '') - 0 || 5; + y -= 1; + symbol = 'star'; + } else if (symbol === 'rectangle' || symbol === 'arrow') { + x += (width - height) / 2; + width = height; + } + var imageLocation = ''; + if (symbol.match('image')) { + imageLocation = symbol.replace(new RegExp('^image:\\/\\/'), ''); + symbol = 'image'; + x += Math.round((width - height) / 2) - 1; + width = height = height + 2; + } + symbol = IconShape.prototype.iconLibrary[symbol]; + if (symbol) { + var x2 = style.x; + var y2 = style.y; + ctx.moveTo(x2, y2 + dy); + ctx.lineTo(x2 + 5, y2 + dy); + ctx.moveTo(x2 + style.width - 5, y2 + dy); + ctx.lineTo(x2 + style.width, y2 + dy); + var self = this; + symbol(ctx, { + x: x + 4, + y: y + 4, + width: width - 8, + height: height - 8, + n: dy, + image: imageLocation + }, function () { + self.modSelf(); + refreshNextFrame(); + }); + } else { + ctx.moveTo(x, y + dy); + ctx.lineTo(x + width, y + dy); + } + } + IconShape.prototype.iconLibrary['legendLineIcon'] = legendLineIcon; + zrUtil.inherits(Line, ChartBase); + require('../chart').define('line', Line); + return Line; +});define('echarts/util/shape/HalfSmoothPolygon', [ + 'require', + 'zrender/shape/Base', + 'zrender/shape/util/smoothBezier', + 'zrender/tool/util', + 'zrender/shape/Polygon' +], function (require) { + var Base = require('zrender/shape/Base'); + var smoothBezier = require('zrender/shape/util/smoothBezier'); + var zrUtil = require('zrender/tool/util'); + function HalfSmoothPolygon(options) { + Base.call(this, options); + } + HalfSmoothPolygon.prototype = { + type: 'half-smooth-polygon', + buildPath: function (ctx, style) { + var pointList = style.pointList; + if (pointList.length < 2) { + return; + } + if (style.smooth) { + var controlPoints = smoothBezier(pointList.slice(0, -2), style.smooth, false, style.smoothConstraint); + ctx.moveTo(pointList[0][0], pointList[0][1]); + var cp1; + var cp2; + var p; + var l = pointList.length; + for (var i = 0; i < l - 3; i++) { + cp1 = controlPoints[i * 2]; + cp2 = controlPoints[i * 2 + 1]; + p = pointList[i + 1]; + ctx.bezierCurveTo(cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]); + } + ctx.lineTo(pointList[l - 2][0], pointList[l - 2][1]); + ctx.lineTo(pointList[l - 1][0], pointList[l - 1][1]); + ctx.lineTo(pointList[0][0], pointList[0][1]); + } else { + require('zrender/shape/Polygon').prototype.buildPath(ctx, style); + } + return; + } + }; + zrUtil.inherits(HalfSmoothPolygon, Base); + return HalfSmoothPolygon; +});define('echarts/chart/bar', [ + 'require', + './base', + 'zrender/shape/Rectangle', + '../component/axis', + '../component/grid', + '../component/dataZoom', + '../config', + '../util/ecData', + 'zrender/tool/util', + 'zrender/tool/color', + '../chart' +], function (require) { + var ChartBase = require('./base'); + var RectangleShape = require('zrender/shape/Rectangle'); + require('../component/axis'); + require('../component/grid'); + require('../component/dataZoom'); + var ecConfig = require('../config'); + ecConfig.bar = { + zlevel: 0, + z: 2, + clickable: true, + legendHoverLink: true, + xAxisIndex: 0, + yAxisIndex: 0, + barMinHeight: 0, + barGap: '30%', + barCategoryGap: '20%', + itemStyle: { + normal: { + barBorderColor: '#fff', + barBorderRadius: 0, + barBorderWidth: 0, + label: { show: false } + }, + emphasis: { + barBorderColor: '#fff', + barBorderRadius: 0, + barBorderWidth: 0, + label: { show: false } + } + } + }; + var ecData = require('../util/ecData'); + var zrUtil = require('zrender/tool/util'); + var zrColor = require('zrender/tool/color'); + function Bar(ecTheme, messageCenter, zr, option, myChart) { + ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); + this.refresh(option); + } + Bar.prototype = { + type: ecConfig.CHART_TYPE_BAR, + _buildShape: function () { + this._buildPosition(); + }, + _buildNormal: function (seriesArray, maxDataLength, locationMap, xMarkMap, orient) { + var series = this.series; + var seriesIndex = locationMap[0][0]; + var serie = series[seriesIndex]; + var isHorizontal = orient == 'horizontal'; + var xAxis = this.component.xAxis; + var yAxis = this.component.yAxis; + var categoryAxis = isHorizontal ? xAxis.getAxis(serie.xAxisIndex) : yAxis.getAxis(serie.yAxisIndex); + var valueAxis; + var size = this._mapSize(categoryAxis, locationMap); + var gap = size.gap; + var barGap = size.barGap; + var barWidthMap = size.barWidthMap; + var barMaxWidthMap = size.barMaxWidthMap; + var barWidth = size.barWidth; + var barMinHeightMap = size.barMinHeightMap; + var barHeight; + var curBarWidth; + var interval = size.interval; + var x; + var y; + var lastP; + var baseP; + var lastN; + var baseN; + var barShape; + var data; + var value; + var islandR = this.deepQuery([ + this.ecTheme, + ecConfig + ], 'island.r'); + for (var i = 0, l = maxDataLength; i < l; i++) { + if (categoryAxis.getNameByIndex(i) == null) { + break; + } + isHorizontal ? x = categoryAxis.getCoordByIndex(i) - gap / 2 : y = categoryAxis.getCoordByIndex(i) + gap / 2; + for (var j = 0, k = locationMap.length; j < k; j++) { + var yAxisIndex = series[locationMap[j][0]].yAxisIndex || 0; + var xAxisIndex = series[locationMap[j][0]].xAxisIndex || 0; + valueAxis = isHorizontal ? yAxis.getAxis(yAxisIndex) : xAxis.getAxis(xAxisIndex); + baseP = lastP = baseN = lastN = valueAxis.getCoord(0); + for (var m = 0, n = locationMap[j].length; m < n; m++) { + seriesIndex = locationMap[j][m]; + serie = series[seriesIndex]; + data = serie.data[i]; + value = this.getDataFromOption(data, '-'); + xMarkMap[seriesIndex] = xMarkMap[seriesIndex] || { + min: Number.POSITIVE_INFINITY, + max: Number.NEGATIVE_INFINITY, + sum: 0, + counter: 0, + average: 0 + }; + curBarWidth = Math.min(barMaxWidthMap[seriesIndex] || Number.MAX_VALUE, barWidthMap[seriesIndex] || barWidth); + if (value === '-') { + continue; + } + if (value > 0) { + barHeight = m > 0 ? valueAxis.getCoordSize(value) : isHorizontal ? baseP - valueAxis.getCoord(value) : valueAxis.getCoord(value) - baseP; + if (n === 1 && barMinHeightMap[seriesIndex] > barHeight) { + barHeight = barMinHeightMap[seriesIndex]; + } + if (isHorizontal) { + lastP -= barHeight; + y = lastP; + } else { + x = lastP; + lastP += barHeight; + } + } else if (value < 0) { + barHeight = m > 0 ? valueAxis.getCoordSize(value) : isHorizontal ? valueAxis.getCoord(value) - baseN : baseN - valueAxis.getCoord(value); + if (n === 1 && barMinHeightMap[seriesIndex] > barHeight) { + barHeight = barMinHeightMap[seriesIndex]; + } + if (isHorizontal) { + y = lastN; + lastN += barHeight; + } else { + lastN -= barHeight; + x = lastN; + } + } else { + barHeight = 0; + if (isHorizontal) { + lastP -= barHeight; + y = lastP; + } else { + x = lastP; + lastP += barHeight; + } + } + xMarkMap[seriesIndex][i] = isHorizontal ? x + curBarWidth / 2 : y - curBarWidth / 2; + if (xMarkMap[seriesIndex].min > value) { + xMarkMap[seriesIndex].min = value; + if (isHorizontal) { + xMarkMap[seriesIndex].minY = y; + xMarkMap[seriesIndex].minX = xMarkMap[seriesIndex][i]; + } else { + xMarkMap[seriesIndex].minX = x + barHeight; + xMarkMap[seriesIndex].minY = xMarkMap[seriesIndex][i]; + } + } + if (xMarkMap[seriesIndex].max < value) { + xMarkMap[seriesIndex].max = value; + if (isHorizontal) { + xMarkMap[seriesIndex].maxY = y; + xMarkMap[seriesIndex].maxX = xMarkMap[seriesIndex][i]; + } else { + xMarkMap[seriesIndex].maxX = x + barHeight; + xMarkMap[seriesIndex].maxY = xMarkMap[seriesIndex][i]; + } + } + xMarkMap[seriesIndex].sum += value; + xMarkMap[seriesIndex].counter++; + if (i % interval === 0) { + barShape = this._getBarItem(seriesIndex, i, categoryAxis.getNameByIndex(i), x, y - (isHorizontal ? 0 : curBarWidth), isHorizontal ? curBarWidth : barHeight, isHorizontal ? barHeight : curBarWidth, isHorizontal ? 'vertical' : 'horizontal'); + this.shapeList.push(new RectangleShape(barShape)); + } + } + for (var m = 0, n = locationMap[j].length; m < n; m++) { + seriesIndex = locationMap[j][m]; + serie = series[seriesIndex]; + data = serie.data[i]; + value = this.getDataFromOption(data, '-'); + curBarWidth = Math.min(barMaxWidthMap[seriesIndex] || Number.MAX_VALUE, barWidthMap[seriesIndex] || barWidth); + if (value != '-') { + continue; + } + if (this.deepQuery([ + data, + serie, + this.option + ], 'calculable')) { + if (isHorizontal) { + lastP -= islandR; + y = lastP; + } else { + x = lastP; + lastP += islandR; + } + barShape = this._getBarItem(seriesIndex, i, categoryAxis.getNameByIndex(i), x, y - (isHorizontal ? 0 : curBarWidth), isHorizontal ? curBarWidth : islandR, isHorizontal ? islandR : curBarWidth, isHorizontal ? 'vertical' : 'horizontal'); + barShape.hoverable = false; + barShape.draggable = false; + barShape.style.lineWidth = 1; + barShape.style.brushType = 'stroke'; + barShape.style.strokeColor = serie.calculableHolderColor || this.ecTheme.calculableHolderColor || ecConfig.calculableHolderColor; + this.shapeList.push(new RectangleShape(barShape)); + } + } + isHorizontal ? x += curBarWidth + barGap : y -= curBarWidth + barGap; + } + } + this._calculMarkMapXY(xMarkMap, locationMap, isHorizontal ? 'y' : 'x'); + }, + _buildHorizontal: function (seriesArray, maxDataLength, locationMap, xMarkMap) { + return this._buildNormal(seriesArray, maxDataLength, locationMap, xMarkMap, 'horizontal'); + }, + _buildVertical: function (seriesArray, maxDataLength, locationMap, xMarkMap) { + return this._buildNormal(seriesArray, maxDataLength, locationMap, xMarkMap, 'vertical'); + }, + _buildOther: function (seriesArray, maxDataLength, locationMap, xMarkMap) { + var series = this.series; + for (var j = 0, k = locationMap.length; j < k; j++) { + for (var m = 0, n = locationMap[j].length; m < n; m++) { + var seriesIndex = locationMap[j][m]; + var serie = series[seriesIndex]; + var xAxisIndex = serie.xAxisIndex || 0; + var xAxis = this.component.xAxis.getAxis(xAxisIndex); + var baseX = xAxis.getCoord(0); + var yAxisIndex = serie.yAxisIndex || 0; + var yAxis = this.component.yAxis.getAxis(yAxisIndex); + var baseY = yAxis.getCoord(0); + xMarkMap[seriesIndex] = xMarkMap[seriesIndex] || { + min0: Number.POSITIVE_INFINITY, + min1: Number.POSITIVE_INFINITY, + max0: Number.NEGATIVE_INFINITY, + max1: Number.NEGATIVE_INFINITY, + sum0: 0, + sum1: 0, + counter0: 0, + counter1: 0, + average0: 0, + average1: 0 + }; + for (var i = 0, l = serie.data.length; i < l; i++) { + var data = serie.data[i]; + var value = this.getDataFromOption(data, '-'); + if (!(value instanceof Array)) { + continue; + } + var x = xAxis.getCoord(value[0]); + var y = yAxis.getCoord(value[1]); + var queryTarget = [ + data, + serie + ]; + var barWidth = this.deepQuery(queryTarget, 'barWidth') || 10; + var barHeight = this.deepQuery(queryTarget, 'barHeight'); + var orient; + var barShape; + if (barHeight != null) { + orient = 'horizontal'; + if (value[0] > 0) { + barWidth = x - baseX; + x -= barWidth; + } else if (value[0] < 0) { + barWidth = baseX - x; + } else { + barWidth = 0; + } + barShape = this._getBarItem(seriesIndex, i, value[0], x, y - barHeight / 2, barWidth, barHeight, orient); + } else { + orient = 'vertical'; + if (value[1] > 0) { + barHeight = baseY - y; + } else if (value[1] < 0) { + barHeight = y - baseY; + y -= barHeight; + } else { + barHeight = 0; + } + barShape = this._getBarItem(seriesIndex, i, value[0], x - barWidth / 2, y, barWidth, barHeight, orient); + } + this.shapeList.push(new RectangleShape(barShape)); + x = xAxis.getCoord(value[0]); + y = yAxis.getCoord(value[1]); + if (xMarkMap[seriesIndex].min0 > value[0]) { + xMarkMap[seriesIndex].min0 = value[0]; + xMarkMap[seriesIndex].minY0 = y; + xMarkMap[seriesIndex].minX0 = x; + } + if (xMarkMap[seriesIndex].max0 < value[0]) { + xMarkMap[seriesIndex].max0 = value[0]; + xMarkMap[seriesIndex].maxY0 = y; + xMarkMap[seriesIndex].maxX0 = x; + } + xMarkMap[seriesIndex].sum0 += value[0]; + xMarkMap[seriesIndex].counter0++; + if (xMarkMap[seriesIndex].min1 > value[1]) { + xMarkMap[seriesIndex].min1 = value[1]; + xMarkMap[seriesIndex].minY1 = y; + xMarkMap[seriesIndex].minX1 = x; + } + if (xMarkMap[seriesIndex].max1 < value[1]) { + xMarkMap[seriesIndex].max1 = value[1]; + xMarkMap[seriesIndex].maxY1 = y; + xMarkMap[seriesIndex].maxX1 = x; + } + xMarkMap[seriesIndex].sum1 += value[1]; + xMarkMap[seriesIndex].counter1++; + } + } + } + this._calculMarkMapXY(xMarkMap, locationMap, 'xy'); + }, + _mapSize: function (categoryAxis, locationMap, ignoreUserDefined) { + var res = this._findSpecialBarSzie(locationMap, ignoreUserDefined); + var barWidthMap = res.barWidthMap; + var barMaxWidthMap = res.barMaxWidthMap; + var barMinHeightMap = res.barMinHeightMap; + var sBarWidthCounter = res.sBarWidthCounter; + var sBarWidthTotal = res.sBarWidthTotal; + var barGap = res.barGap; + var barCategoryGap = res.barCategoryGap; + var gap; + var barWidth; + var interval = 1; + if (locationMap.length != sBarWidthCounter) { + if (!ignoreUserDefined) { + gap = typeof barCategoryGap === 'string' && barCategoryGap.match(/%$/) ? (categoryAxis.getGap() * (100 - parseFloat(barCategoryGap)) / 100).toFixed(2) - 0 : categoryAxis.getGap() - barCategoryGap; + if (typeof barGap === 'string' && barGap.match(/%$/)) { + barGap = parseFloat(barGap) / 100; + barWidth = +((gap - sBarWidthTotal) / ((locationMap.length - 1) * barGap + locationMap.length - sBarWidthCounter)).toFixed(2); + barGap = barWidth * barGap; + } else { + barGap = parseFloat(barGap); + barWidth = +((gap - sBarWidthTotal - barGap * (locationMap.length - 1)) / (locationMap.length - sBarWidthCounter)).toFixed(2); + } + if (barWidth <= 0) { + return this._mapSize(categoryAxis, locationMap, true); + } + } else { + gap = categoryAxis.getGap(); + barGap = 0; + barWidth = +(gap / locationMap.length).toFixed(2); + if (barWidth <= 0) { + interval = Math.floor(locationMap.length / gap); + barWidth = 1; + } + } + } else { + gap = sBarWidthCounter > 1 ? typeof barCategoryGap === 'string' && barCategoryGap.match(/%$/) ? +(categoryAxis.getGap() * (100 - parseFloat(barCategoryGap)) / 100).toFixed(2) : categoryAxis.getGap() - barCategoryGap : sBarWidthTotal; + barWidth = 0; + barGap = sBarWidthCounter > 1 ? +((gap - sBarWidthTotal) / (sBarWidthCounter - 1)).toFixed(2) : 0; + if (barGap < 0) { + return this._mapSize(categoryAxis, locationMap, true); + } + } + return this._recheckBarMaxWidth(locationMap, barWidthMap, barMaxWidthMap, barMinHeightMap, gap, barWidth, barGap, interval); + }, + _findSpecialBarSzie: function (locationMap, ignoreUserDefined) { + var series = this.series; + var barWidthMap = {}; + var barMaxWidthMap = {}; + var barMinHeightMap = {}; + var sBarWidth; + var sBarMaxWidth; + var sBarWidthCounter = 0; + var sBarWidthTotal = 0; + var barGap; + var barCategoryGap; + for (var j = 0, k = locationMap.length; j < k; j++) { + var hasFound = { + barWidth: false, + barMaxWidth: false + }; + for (var m = 0, n = locationMap[j].length; m < n; m++) { + var seriesIndex = locationMap[j][m]; + var queryTarget = series[seriesIndex]; + if (!ignoreUserDefined) { + if (!hasFound.barWidth) { + sBarWidth = this.query(queryTarget, 'barWidth'); + if (sBarWidth != null) { + barWidthMap[seriesIndex] = sBarWidth; + sBarWidthTotal += sBarWidth; + sBarWidthCounter++; + hasFound.barWidth = true; + for (var ii = 0, ll = m; ii < ll; ii++) { + var pSeriesIndex = locationMap[j][ii]; + barWidthMap[pSeriesIndex] = sBarWidth; + } + } + } else { + barWidthMap[seriesIndex] = sBarWidth; + } + if (!hasFound.barMaxWidth) { + sBarMaxWidth = this.query(queryTarget, 'barMaxWidth'); + if (sBarMaxWidth != null) { + barMaxWidthMap[seriesIndex] = sBarMaxWidth; + hasFound.barMaxWidth = true; + for (var ii = 0, ll = m; ii < ll; ii++) { + var pSeriesIndex = locationMap[j][ii]; + barMaxWidthMap[pSeriesIndex] = sBarMaxWidth; + } + } + } else { + barMaxWidthMap[seriesIndex] = sBarMaxWidth; + } + } + barMinHeightMap[seriesIndex] = this.query(queryTarget, 'barMinHeight'); + barGap = barGap != null ? barGap : this.query(queryTarget, 'barGap'); + barCategoryGap = barCategoryGap != null ? barCategoryGap : this.query(queryTarget, 'barCategoryGap'); + } + } + return { + barWidthMap: barWidthMap, + barMaxWidthMap: barMaxWidthMap, + barMinHeightMap: barMinHeightMap, + sBarWidth: sBarWidth, + sBarMaxWidth: sBarMaxWidth, + sBarWidthCounter: sBarWidthCounter, + sBarWidthTotal: sBarWidthTotal, + barGap: barGap, + barCategoryGap: barCategoryGap + }; + }, + _recheckBarMaxWidth: function (locationMap, barWidthMap, barMaxWidthMap, barMinHeightMap, gap, barWidth, barGap, interval) { + for (var j = 0, k = locationMap.length; j < k; j++) { + var seriesIndex = locationMap[j][0]; + if (barMaxWidthMap[seriesIndex] && barMaxWidthMap[seriesIndex] < barWidth) { + gap -= barWidth - barMaxWidthMap[seriesIndex]; + } + } + return { + barWidthMap: barWidthMap, + barMaxWidthMap: barMaxWidthMap, + barMinHeightMap: barMinHeightMap, + gap: gap, + barWidth: barWidth, + barGap: barGap, + interval: interval + }; + }, + _getBarItem: function (seriesIndex, dataIndex, name, x, y, width, height, orient) { + var series = this.series; + var barShape; + var serie = series[seriesIndex]; + var data = serie.data[dataIndex]; + var defaultColor = this._sIndex2ColorMap[seriesIndex]; + var queryTarget = [ + data, + serie + ]; + var normal = this.deepMerge(queryTarget, 'itemStyle.normal'); + var emphasis = this.deepMerge(queryTarget, 'itemStyle.emphasis'); + var normalBorderWidth = normal.barBorderWidth; + barShape = { + zlevel: serie.zlevel, + z: serie.z, + clickable: this.deepQuery(queryTarget, 'clickable'), + style: { + x: x, + y: y, + width: width, + height: height, + brushType: 'both', + color: this.getItemStyleColor(this.deepQuery(queryTarget, 'itemStyle.normal.color') || defaultColor, seriesIndex, dataIndex, data), + radius: normal.barBorderRadius, + lineWidth: normalBorderWidth, + strokeColor: normal.barBorderColor + }, + highlightStyle: { + color: this.getItemStyleColor(this.deepQuery(queryTarget, 'itemStyle.emphasis.color'), seriesIndex, dataIndex, data), + radius: emphasis.barBorderRadius, + lineWidth: emphasis.barBorderWidth, + strokeColor: emphasis.barBorderColor + }, + _orient: orient + }; + var barShapeStyle = barShape.style; + barShape.highlightStyle.color = barShape.highlightStyle.color || (typeof barShapeStyle.color === 'string' ? zrColor.lift(barShapeStyle.color, -0.3) : barShapeStyle.color); + barShapeStyle.x = Math.floor(barShapeStyle.x); + barShapeStyle.y = Math.floor(barShapeStyle.y); + barShapeStyle.height = Math.ceil(barShapeStyle.height); + barShapeStyle.width = Math.ceil(barShapeStyle.width); + if (normalBorderWidth > 0 && barShapeStyle.height > normalBorderWidth && barShapeStyle.width > normalBorderWidth) { + barShapeStyle.y += normalBorderWidth / 2; + barShapeStyle.height -= normalBorderWidth; + barShapeStyle.x += normalBorderWidth / 2; + barShapeStyle.width -= normalBorderWidth; + } else { + barShapeStyle.brushType = 'fill'; + } + barShape.highlightStyle.textColor = barShape.highlightStyle.color; + barShape = this.addLabel(barShape, serie, data, name, orient); + var barShapeStyleList = [ + barShapeStyle, + barShape.highlightStyle + ]; + for (var i = 0, l = barShapeStyleList.length; i < l; i++) { + var textPosition = barShapeStyleList[i].textPosition; + if (textPosition === 'insideLeft' || textPosition === 'insideRight' || textPosition === 'insideTop' || textPosition === 'insideBottom') { + var gap = 5; + switch (textPosition) { + case 'insideLeft': + barShapeStyleList[i].textX = barShapeStyle.x + gap; + barShapeStyleList[i].textY = barShapeStyle.y + barShapeStyle.height / 2; + barShapeStyleList[i].textAlign = 'left'; + barShapeStyleList[i].textBaseline = 'middle'; + break; + case 'insideRight': + barShapeStyleList[i].textX = barShapeStyle.x + barShapeStyle.width - gap; + barShapeStyleList[i].textY = barShapeStyle.y + barShapeStyle.height / 2; + barShapeStyleList[i].textAlign = 'right'; + barShapeStyleList[i].textBaseline = 'middle'; + break; + case 'insideTop': + barShapeStyleList[i].textX = barShapeStyle.x + barShapeStyle.width / 2; + barShapeStyleList[i].textY = barShapeStyle.y + gap / 2; + barShapeStyleList[i].textAlign = 'center'; + barShapeStyleList[i].textBaseline = 'top'; + break; + case 'insideBottom': + barShapeStyleList[i].textX = barShapeStyle.x + barShapeStyle.width / 2; + barShapeStyleList[i].textY = barShapeStyle.y + barShapeStyle.height - gap / 2; + barShapeStyleList[i].textAlign = 'center'; + barShapeStyleList[i].textBaseline = 'bottom'; + break; + } + barShapeStyleList[i].textPosition = 'specific'; + barShapeStyleList[i].textColor = barShapeStyleList[i].textColor || '#fff'; + } + } + if (this.deepQuery([ + data, + serie, + this.option + ], 'calculable')) { + this.setCalculable(barShape); + barShape.draggable = true; + } + ecData.pack(barShape, series[seriesIndex], seriesIndex, series[seriesIndex].data[dataIndex], dataIndex, name); + return barShape; + }, + getMarkCoord: function (seriesIndex, mpData) { + var serie = this.series[seriesIndex]; + var xMarkMap = this.xMarkMap[seriesIndex]; + var xAxis = this.component.xAxis.getAxis(serie.xAxisIndex); + var yAxis = this.component.yAxis.getAxis(serie.yAxisIndex); + var dataIndex; + var pos; + if (mpData.type && (mpData.type === 'max' || mpData.type === 'min' || mpData.type === 'average')) { + var valueIndex = mpData.valueIndex != null ? mpData.valueIndex : xMarkMap.maxX0 != null ? '1' : ''; + pos = [ + xMarkMap[mpData.type + 'X' + valueIndex], + xMarkMap[mpData.type + 'Y' + valueIndex], + xMarkMap[mpData.type + 'Line' + valueIndex], + xMarkMap[mpData.type + valueIndex] + ]; + } else if (xMarkMap.isHorizontal) { + dataIndex = typeof mpData.xAxis === 'string' && xAxis.getIndexByName ? xAxis.getIndexByName(mpData.xAxis) : mpData.xAxis || 0; + var x = xMarkMap[dataIndex]; + x = x != null ? x : typeof mpData.xAxis != 'string' && xAxis.getCoordByIndex ? xAxis.getCoordByIndex(mpData.xAxis || 0) : xAxis.getCoord(mpData.xAxis || 0); + pos = [ + x, + yAxis.getCoord(mpData.yAxis || 0) + ]; + } else { + dataIndex = typeof mpData.yAxis === 'string' && yAxis.getIndexByName ? yAxis.getIndexByName(mpData.yAxis) : mpData.yAxis || 0; + var y = xMarkMap[dataIndex]; + y = y != null ? y : typeof mpData.yAxis != 'string' && yAxis.getCoordByIndex ? yAxis.getCoordByIndex(mpData.yAxis || 0) : yAxis.getCoord(mpData.yAxis || 0); + pos = [ + xAxis.getCoord(mpData.xAxis || 0), + y + ]; + } + return pos; + }, + refresh: function (newOption) { + if (newOption) { + this.option = newOption; + this.series = newOption.series; + } + this.backupShapeList(); + this._buildShape(); + }, + addDataAnimation: function (params, done) { + var series = this.series; + var aniMap = {}; + for (var i = 0, l = params.length; i < l; i++) { + aniMap[params[i][0]] = params[i]; + } + var x; + var dx; + var y; + var dy; + var serie; + var seriesIndex; + var dataIndex; + var aniCount = 0; + function animationDone() { + aniCount--; + if (aniCount === 0) { + done && done(); + } + } + for (var i = this.shapeList.length - 1; i >= 0; i--) { + seriesIndex = ecData.get(this.shapeList[i], 'seriesIndex'); + if (aniMap[seriesIndex] && !aniMap[seriesIndex][3]) { + if (this.shapeList[i].type === 'rectangle') { + dataIndex = ecData.get(this.shapeList[i], 'dataIndex'); + serie = series[seriesIndex]; + if (aniMap[seriesIndex][2] && dataIndex === serie.data.length - 1) { + this.zr.delShape(this.shapeList[i].id); + continue; + } else if (!aniMap[seriesIndex][2] && dataIndex === 0) { + this.zr.delShape(this.shapeList[i].id); + continue; + } + if (this.shapeList[i]._orient === 'horizontal') { + dy = this.component.yAxis.getAxis(serie.yAxisIndex || 0).getGap(); + y = aniMap[seriesIndex][2] ? -dy : dy; + x = 0; + } else { + dx = this.component.xAxis.getAxis(serie.xAxisIndex || 0).getGap(); + x = aniMap[seriesIndex][2] ? dx : -dx; + y = 0; + } + this.shapeList[i].position = [ + 0, + 0 + ]; + aniCount++; + this.zr.animate(this.shapeList[i].id, '').when(this.query(this.option, 'animationDurationUpdate'), { + position: [ + x, + y + ] + }).done(animationDone).start(); + } + } + } + if (!aniCount) { + done && done(); + } + } + }; + zrUtil.inherits(Bar, ChartBase); + require('../chart').define('bar', Bar); + return Bar; +});define('echarts/chart/scatter', [ + 'require', + './base', + '../util/shape/Symbol', + '../component/axis', + '../component/grid', + '../component/dataZoom', + '../component/dataRange', + '../config', + 'zrender/tool/util', + 'zrender/tool/color', + '../chart' +], function (require) { + var ChartBase = require('./base'); + var SymbolShape = require('../util/shape/Symbol'); + require('../component/axis'); + require('../component/grid'); + require('../component/dataZoom'); + require('../component/dataRange'); + var ecConfig = require('../config'); + ecConfig.scatter = { + zlevel: 0, + z: 2, + clickable: true, + legendHoverLink: true, + xAxisIndex: 0, + yAxisIndex: 0, + symbolSize: 4, + large: false, + largeThreshold: 2000, + itemStyle: { + normal: { label: { show: false } }, + emphasis: { label: { show: false } } + } + }; + var zrUtil = require('zrender/tool/util'); + var zrColor = require('zrender/tool/color'); + function Scatter(ecTheme, messageCenter, zr, option, myChart) { + ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); + this.refresh(option); + } + Scatter.prototype = { + type: ecConfig.CHART_TYPE_SCATTER, + _buildShape: function () { + var series = this.series; + this._sIndex2ColorMap = {}; + this._symbol = this.option.symbolList; + this._sIndex2ShapeMap = {}; + this.selectedMap = {}; + this.xMarkMap = {}; + var legend = this.component.legend; + var seriesArray = []; + var serie; + var serieName; + var iconShape; + var iconType; + for (var i = 0, l = series.length; i < l; i++) { + serie = series[i]; + serieName = serie.name; + if (serie.type === ecConfig.CHART_TYPE_SCATTER) { + series[i] = this.reformOption(series[i]); + this.legendHoverLink = series[i].legendHoverLink || this.legendHoverLink; + this._sIndex2ShapeMap[i] = this.query(serie, 'symbol') || this._symbol[i % this._symbol.length]; + if (legend) { + this.selectedMap[serieName] = legend.isSelected(serieName); + this._sIndex2ColorMap[i] = zrColor.alpha(legend.getColor(serieName), 0.5); + iconShape = legend.getItemShape(serieName); + if (iconShape) { + var iconType = this._sIndex2ShapeMap[i]; + iconShape.style.brushType = iconType.match('empty') ? 'stroke' : 'both'; + iconType = iconType.replace('empty', '').toLowerCase(); + if (iconType.match('rectangle')) { + iconShape.style.x += Math.round((iconShape.style.width - iconShape.style.height) / 2); + iconShape.style.width = iconShape.style.height; + } + if (iconType.match('star')) { + iconShape.style.n = iconType.replace('star', '') - 0 || 5; + iconType = 'star'; + } + if (iconType.match('image')) { + iconShape.style.image = iconType.replace(new RegExp('^image:\\/\\/'), ''); + iconShape.style.x += Math.round((iconShape.style.width - iconShape.style.height) / 2); + iconShape.style.width = iconShape.style.height; + iconType = 'image'; + } + iconShape.style.iconType = iconType; + legend.setItemShape(serieName, iconShape); + } + } else { + this.selectedMap[serieName] = true; + this._sIndex2ColorMap[i] = zrColor.alpha(this.zr.getColor(i), 0.5); + } + if (this.selectedMap[serieName]) { + seriesArray.push(i); + } + } + } + this._buildSeries(seriesArray); + this.addShapeList(); + }, + _buildSeries: function (seriesArray) { + if (seriesArray.length === 0) { + return; + } + var series = this.series; + var seriesIndex; + var serie; + var data; + var value; + var xAxis; + var yAxis; + var pointList = {}; + var x; + var y; + for (var j = 0, k = seriesArray.length; j < k; j++) { + seriesIndex = seriesArray[j]; + serie = series[seriesIndex]; + if (serie.data.length === 0) { + continue; + } + xAxis = this.component.xAxis.getAxis(serie.xAxisIndex || 0); + yAxis = this.component.yAxis.getAxis(serie.yAxisIndex || 0); + pointList[seriesIndex] = []; + for (var i = 0, l = serie.data.length; i < l; i++) { + data = serie.data[i]; + value = this.getDataFromOption(data, '-'); + if (value === '-' || value.length < 2) { + continue; + } + x = xAxis.getCoord(value[0]); + y = yAxis.getCoord(value[1]); + pointList[seriesIndex].push([ + x, + y, + i, + data.name || '' + ]); + } + this.xMarkMap[seriesIndex] = this._markMap(xAxis, yAxis, serie.data, pointList[seriesIndex]); + this.buildMark(seriesIndex); + } + this._buildPointList(pointList); + }, + _markMap: function (xAxis, yAxis, data, pointList) { + var xMarkMap = { + min0: Number.POSITIVE_INFINITY, + max0: Number.NEGATIVE_INFINITY, + sum0: 0, + counter0: 0, + average0: 0, + min1: Number.POSITIVE_INFINITY, + max1: Number.NEGATIVE_INFINITY, + sum1: 0, + counter1: 0, + average1: 0 + }; + var value; + for (var i = 0, l = pointList.length; i < l; i++) { + value = data[pointList[i][2]].value || data[pointList[i][2]]; + if (xMarkMap.min0 > value[0]) { + xMarkMap.min0 = value[0]; + xMarkMap.minY0 = pointList[i][1]; + xMarkMap.minX0 = pointList[i][0]; + } + if (xMarkMap.max0 < value[0]) { + xMarkMap.max0 = value[0]; + xMarkMap.maxY0 = pointList[i][1]; + xMarkMap.maxX0 = pointList[i][0]; + } + xMarkMap.sum0 += value[0]; + xMarkMap.counter0++; + if (xMarkMap.min1 > value[1]) { + xMarkMap.min1 = value[1]; + xMarkMap.minY1 = pointList[i][1]; + xMarkMap.minX1 = pointList[i][0]; + } + if (xMarkMap.max1 < value[1]) { + xMarkMap.max1 = value[1]; + xMarkMap.maxY1 = pointList[i][1]; + xMarkMap.maxX1 = pointList[i][0]; + } + xMarkMap.sum1 += value[1]; + xMarkMap.counter1++; + } + var gridX = this.component.grid.getX(); + var gridXend = this.component.grid.getXend(); + var gridY = this.component.grid.getY(); + var gridYend = this.component.grid.getYend(); + xMarkMap.average0 = xMarkMap.sum0 / xMarkMap.counter0; + var x = xAxis.getCoord(xMarkMap.average0); + xMarkMap.averageLine0 = [ + [ + x, + gridYend + ], + [ + x, + gridY + ] + ]; + xMarkMap.minLine0 = [ + [ + xMarkMap.minX0, + gridYend + ], + [ + xMarkMap.minX0, + gridY + ] + ]; + xMarkMap.maxLine0 = [ + [ + xMarkMap.maxX0, + gridYend + ], + [ + xMarkMap.maxX0, + gridY + ] + ]; + xMarkMap.average1 = xMarkMap.sum1 / xMarkMap.counter1; + var y = yAxis.getCoord(xMarkMap.average1); + xMarkMap.averageLine1 = [ + [ + gridX, + y + ], + [ + gridXend, + y + ] + ]; + xMarkMap.minLine1 = [ + [ + gridX, + xMarkMap.minY1 + ], + [ + gridXend, + xMarkMap.minY1 + ] + ]; + xMarkMap.maxLine1 = [ + [ + gridX, + xMarkMap.maxY1 + ], + [ + gridXend, + xMarkMap.maxY1 + ] + ]; + return xMarkMap; + }, + _buildPointList: function (pointList) { + var series = this.series; + var serie; + var seriesPL; + var singlePoint; + var shape; + for (var seriesIndex in pointList) { + serie = series[seriesIndex]; + seriesPL = pointList[seriesIndex]; + if (serie.large && serie.data.length > serie.largeThreshold) { + this.shapeList.push(this._getLargeSymbol(serie, seriesPL, this.getItemStyleColor(this.query(serie, 'itemStyle.normal.color'), seriesIndex, -1) || this._sIndex2ColorMap[seriesIndex])); + continue; + } + for (var i = 0, l = seriesPL.length; i < l; i++) { + singlePoint = seriesPL[i]; + shape = this._getSymbol(seriesIndex, singlePoint[2], singlePoint[3], singlePoint[0], singlePoint[1]); + shape && this.shapeList.push(shape); + } + } + }, + _getSymbol: function (seriesIndex, dataIndex, name, x, y) { + var series = this.series; + var serie = series[seriesIndex]; + var data = serie.data[dataIndex]; + var dataRange = this.component.dataRange; + var rangColor; + if (dataRange) { + rangColor = isNaN(data[2]) ? this._sIndex2ColorMap[seriesIndex] : dataRange.getColor(data[2]); + if (!rangColor) { + return null; + } + } else { + rangColor = this._sIndex2ColorMap[seriesIndex]; + } + var itemShape = this.getSymbolShape(serie, seriesIndex, data, dataIndex, name, x, y, this._sIndex2ShapeMap[seriesIndex], rangColor, 'rgba(0,0,0,0)', 'vertical'); + itemShape.zlevel = serie.zlevel; + itemShape.z = serie.z; + itemShape._main = true; + return itemShape; + }, + _getLargeSymbol: function (serie, pointList, nColor) { + return new SymbolShape({ + zlevel: serie.zlevel, + z: serie.z, + _main: true, + hoverable: false, + style: { + pointList: pointList, + color: nColor, + strokeColor: nColor + }, + highlightStyle: { pointList: [] } + }); + }, + getMarkCoord: function (seriesIndex, mpData) { + var serie = this.series[seriesIndex]; + var xMarkMap = this.xMarkMap[seriesIndex]; + var xAxis = this.component.xAxis.getAxis(serie.xAxisIndex); + var yAxis = this.component.yAxis.getAxis(serie.yAxisIndex); + var pos; + if (mpData.type && (mpData.type === 'max' || mpData.type === 'min' || mpData.type === 'average')) { + var valueIndex = mpData.valueIndex != null ? mpData.valueIndex : 1; + pos = [ + xMarkMap[mpData.type + 'X' + valueIndex], + xMarkMap[mpData.type + 'Y' + valueIndex], + xMarkMap[mpData.type + 'Line' + valueIndex], + xMarkMap[mpData.type + valueIndex] + ]; + } else { + pos = [ + typeof mpData.xAxis != 'string' && xAxis.getCoordByIndex ? xAxis.getCoordByIndex(mpData.xAxis || 0) : xAxis.getCoord(mpData.xAxis || 0), + typeof mpData.yAxis != 'string' && yAxis.getCoordByIndex ? yAxis.getCoordByIndex(mpData.yAxis || 0) : yAxis.getCoord(mpData.yAxis || 0) + ]; + } + return pos; + }, + refresh: function (newOption) { + if (newOption) { + this.option = newOption; + this.series = newOption.series; + } + this.backupShapeList(); + this._buildShape(); + }, + ondataRange: function (param, status) { + if (this.component.dataRange) { + this.refresh(); + status.needRefresh = true; + } + return; + } + }; + zrUtil.inherits(Scatter, ChartBase); + require('../chart').define('scatter', Scatter); + return Scatter; +});define('echarts/component/dataRange', [ + 'require', + './base', + 'zrender/shape/Text', + 'zrender/shape/Rectangle', + '../util/shape/HandlePolygon', + '../config', + 'zrender/tool/util', + 'zrender/tool/event', + 'zrender/tool/area', + 'zrender/tool/color', + '../component' +], function (require) { + var Base = require('./base'); + var TextShape = require('zrender/shape/Text'); + var RectangleShape = require('zrender/shape/Rectangle'); + var HandlePolygonShape = require('../util/shape/HandlePolygon'); + var ecConfig = require('../config'); + ecConfig.dataRange = { + zlevel: 0, + z: 4, + show: true, + 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: false, + selectedMode: true, + hoverLink: true, + realtime: true, + color: [ + '#006edd', + '#e0ffff' + ], + textStyle: { color: '#333' } + }; + var zrUtil = require('zrender/tool/util'); + var zrEvent = require('zrender/tool/event'); + var zrArea = require('zrender/tool/area'); + var zrColor = require('zrender/tool/color'); + function DataRange(ecTheme, messageCenter, zr, option, myChart) { + Base.call(this, ecTheme, messageCenter, zr, option, myChart); + var self = this; + self._ondrift = function (dx, dy) { + return self.__ondrift(this, dx, dy); + }; + self._ondragend = function () { + return self.__ondragend(); + }; + self._dataRangeSelected = function (param) { + return self.__dataRangeSelected(param); + }; + self._dispatchHoverLink = function (param) { + return self.__dispatchHoverLink(param); + }; + self._onhoverlink = function (params) { + return self.__onhoverlink(params); + }; + this._selectedMap = {}; + this._range = {}; + this.refresh(option); + messageCenter.bind(ecConfig.EVENT.HOVER, this._onhoverlink); + } + DataRange.prototype = { + type: ecConfig.COMPONENT_TYPE_DATARANGE, + _textGap: 10, + _buildShape: function () { + this._itemGroupLocation = this._getItemGroupLocation(); + this._buildBackground(); + if (this._isContinuity()) { + this._buildGradient(); + } else { + this._buildItem(); + } + if (this.dataRangeOption.show) { + for (var i = 0, l = this.shapeList.length; i < l; i++) { + this.zr.addShape(this.shapeList[i]); + } + } + this._syncShapeFromRange(); + }, + _buildItem: function () { + var data = this._valueTextList; + var dataLength = data.length; + var itemName; + var itemShape; + var textShape; + var font = this.getFont(this.dataRangeOption.textStyle); + var lastX = this._itemGroupLocation.x; + var lastY = this._itemGroupLocation.y; + var itemWidth = this.dataRangeOption.itemWidth; + var itemHeight = this.dataRangeOption.itemHeight; + var itemGap = this.dataRangeOption.itemGap; + var textHeight = zrArea.getTextHeight('国', font); + var color; + if (this.dataRangeOption.orient == 'vertical' && this.dataRangeOption.x == 'right') { + lastX = this._itemGroupLocation.x + this._itemGroupLocation.width - itemWidth; + } + var needValueText = true; + if (this.dataRangeOption.text) { + needValueText = false; + if (this.dataRangeOption.text[0]) { + textShape = this._getTextShape(lastX, lastY, this.dataRangeOption.text[0]); + if (this.dataRangeOption.orient == 'horizontal') { + lastX += zrArea.getTextWidth(this.dataRangeOption.text[0], font) + this._textGap; + } else { + lastY += textHeight + this._textGap; + textShape.style.y += textHeight / 2 + this._textGap; + textShape.style.textBaseline = 'bottom'; + } + this.shapeList.push(new TextShape(textShape)); + } + } + for (var i = 0; i < dataLength; i++) { + itemName = data[i]; + color = this.getColorByIndex(i); + itemShape = this._getItemShape(lastX, lastY, itemWidth, itemHeight, this._selectedMap[i] ? color : '#ccc'); + itemShape._idx = i; + itemShape.onmousemove = this._dispatchHoverLink; + if (this.dataRangeOption.selectedMode) { + itemShape.clickable = true; + itemShape.onclick = this._dataRangeSelected; + } + this.shapeList.push(new RectangleShape(itemShape)); + if (needValueText) { + textShape = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: { + x: lastX + itemWidth + 5, + y: lastY, + color: this._selectedMap[i] ? this.dataRangeOption.textStyle.color : '#ccc', + text: data[i], + textFont: font, + textBaseline: 'top' + }, + highlightStyle: { brushType: 'fill' } + }; + if (this.dataRangeOption.orient == 'vertical' && this.dataRangeOption.x == 'right') { + textShape.style.x -= itemWidth + 10; + textShape.style.textAlign = 'right'; + } + textShape._idx = i; + textShape.onmousemove = this._dispatchHoverLink; + if (this.dataRangeOption.selectedMode) { + textShape.clickable = true; + textShape.onclick = this._dataRangeSelected; + } + this.shapeList.push(new TextShape(textShape)); + } + if (this.dataRangeOption.orient == 'horizontal') { + lastX += itemWidth + (needValueText ? 5 : 0) + (needValueText ? zrArea.getTextWidth(itemName, font) : 0) + itemGap; + } else { + lastY += itemHeight + itemGap; + } + } + if (!needValueText && this.dataRangeOption.text[1]) { + if (this.dataRangeOption.orient == 'horizontal') { + lastX = lastX - itemGap + this._textGap; + } else { + lastY = lastY - itemGap + this._textGap; + } + textShape = this._getTextShape(lastX, lastY, this.dataRangeOption.text[1]); + if (this.dataRangeOption.orient != 'horizontal') { + textShape.style.y -= 5; + textShape.style.textBaseline = 'top'; + } + this.shapeList.push(new TextShape(textShape)); + } + }, + _buildGradient: function () { + var itemShape; + var textShape; + var font = this.getFont(this.dataRangeOption.textStyle); + var lastX = this._itemGroupLocation.x; + var lastY = this._itemGroupLocation.y; + var itemWidth = this.dataRangeOption.itemWidth; + var itemHeight = this.dataRangeOption.itemHeight; + var textHeight = zrArea.getTextHeight('国', font); + var mSize = 10; + var needValueText = true; + if (this.dataRangeOption.text) { + needValueText = false; + if (this.dataRangeOption.text[0]) { + textShape = this._getTextShape(lastX, lastY, this.dataRangeOption.text[0]); + if (this.dataRangeOption.orient == 'horizontal') { + lastX += zrArea.getTextWidth(this.dataRangeOption.text[0], font) + this._textGap; + } else { + lastY += textHeight + this._textGap; + textShape.style.y += textHeight / 2 + this._textGap; + textShape.style.textBaseline = 'bottom'; + } + this.shapeList.push(new TextShape(textShape)); + } + } + var zrColor = require('zrender/tool/color'); + var per = 1 / (this.dataRangeOption.color.length - 1); + var colorList = []; + for (var i = 0, l = this.dataRangeOption.color.length; i < l; i++) { + colorList.push([ + i * per, + this.dataRangeOption.color[i] + ]); + } + if (this.dataRangeOption.orient == 'horizontal') { + itemShape = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: { + x: lastX, + y: lastY, + width: itemWidth * mSize, + height: itemHeight, + color: zrColor.getLinearGradient(lastX, lastY, lastX + itemWidth * mSize, lastY, colorList) + }, + hoverable: false + }; + lastX += itemWidth * mSize + this._textGap; + } else { + itemShape = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: { + x: lastX, + y: lastY, + width: itemWidth, + height: itemHeight * mSize, + color: zrColor.getLinearGradient(lastX, lastY, lastX, lastY + itemHeight * mSize, colorList) + }, + hoverable: false + }; + lastY += itemHeight * mSize + this._textGap; + } + this.shapeList.push(new RectangleShape(itemShape)); + this._calculableLocation = itemShape.style; + if (this.dataRangeOption.calculable) { + this._buildFiller(); + this._bulidMask(); + this._bulidHandle(); + } + this._buildIndicator(); + if (!needValueText && this.dataRangeOption.text[1]) { + textShape = this._getTextShape(lastX, lastY, this.dataRangeOption.text[1]); + this.shapeList.push(new TextShape(textShape)); + } + }, + _buildIndicator: function () { + var x = this._calculableLocation.x; + var y = this._calculableLocation.y; + var width = this._calculableLocation.width; + var height = this._calculableLocation.height; + var size = 5; + var pointList; + var textPosition; + if (this.dataRangeOption.orient == 'horizontal') { + if (this.dataRangeOption.y != 'bottom') { + pointList = [ + [ + x, + y + height + ], + [ + x - size, + y + height + size + ], + [ + x + size, + y + height + size + ] + ]; + textPosition = 'bottom'; + } else { + pointList = [ + [ + x, + y + ], + [ + x - size, + y - size + ], + [ + x + size, + y - size + ] + ]; + textPosition = 'top'; + } + } else { + if (this.dataRangeOption.x != 'right') { + pointList = [ + [ + x + width, + y + ], + [ + x + width + size, + y - size + ], + [ + x + width + size, + y + size + ] + ]; + textPosition = 'right'; + } else { + pointList = [ + [ + x, + y + ], + [ + x - size, + y - size + ], + [ + x - size, + y + size + ] + ]; + textPosition = 'left'; + } + } + this._indicatorShape = { + style: { + pointList: pointList, + color: '#fff', + __rect: { + x: Math.min(pointList[0][0], pointList[1][0]), + y: Math.min(pointList[0][1], pointList[1][1]), + width: size * (this.dataRangeOption.orient == 'horizontal' ? 2 : 1), + height: size * (this.dataRangeOption.orient == 'horizontal' ? 1 : 2) + } + }, + highlightStyle: { + brushType: 'fill', + textPosition: textPosition, + textColor: this.dataRangeOption.textStyle.color + }, + hoverable: false + }; + this._indicatorShape = new HandlePolygonShape(this._indicatorShape); + }, + _buildFiller: function () { + this._fillerShape = { + zlevel: this.getZlevelBase(), + z: this.getZBase() + 1, + style: { + x: this._calculableLocation.x, + y: this._calculableLocation.y, + width: this._calculableLocation.width, + height: this._calculableLocation.height, + color: 'rgba(255,255,255,0)' + }, + highlightStyle: { + strokeColor: 'rgba(255,255,255,0.5)', + lineWidth: 1 + }, + draggable: true, + ondrift: this._ondrift, + ondragend: this._ondragend, + onmousemove: this._dispatchHoverLink, + _type: 'filler' + }; + this._fillerShape = new RectangleShape(this._fillerShape); + this.shapeList.push(this._fillerShape); + }, + _bulidHandle: function () { + var x = this._calculableLocation.x; + var y = this._calculableLocation.y; + var width = this._calculableLocation.width; + var height = this._calculableLocation.height; + var font = this.getFont(this.dataRangeOption.textStyle); + var textHeight = zrArea.getTextHeight('国', font); + var textWidth = Math.max(zrArea.getTextWidth(this._textFormat(this.dataRangeOption.max), font), zrArea.getTextWidth(this._textFormat(this.dataRangeOption.min), font)) + 2; + var pointListStart; + var textXStart; + var textYStart; + var coverRectStart; + var pointListEnd; + var textXEnd; + var textYEnd; + var coverRectEnd; + if (this.dataRangeOption.orient == 'horizontal') { + if (this.dataRangeOption.y != 'bottom') { + pointListStart = [ + [ + x, + y + ], + [ + x, + y + height + textHeight + ], + [ + x - textHeight, + y + height + textHeight + ], + [ + x - 1, + y + height + ], + [ + x - 1, + y + ] + ]; + textXStart = x - textWidth / 2 - textHeight; + textYStart = y + height + textHeight / 2 + 2; + coverRectStart = { + x: x - textWidth - textHeight, + y: y + height, + width: textWidth + textHeight, + height: textHeight + }; + pointListEnd = [ + [ + x + width, + y + ], + [ + x + width, + y + height + textHeight + ], + [ + x + width + textHeight, + y + height + textHeight + ], + [ + x + width + 1, + y + height + ], + [ + x + width + 1, + y + ] + ]; + textXEnd = x + width + textWidth / 2 + textHeight; + textYEnd = textYStart; + coverRectEnd = { + x: x + width, + y: y + height, + width: textWidth + textHeight, + height: textHeight + }; + } else { + pointListStart = [ + [ + x, + y + height + ], + [ + x, + y - textHeight + ], + [ + x - textHeight, + y - textHeight + ], + [ + x - 1, + y + ], + [ + x - 1, + y + height + ] + ]; + textXStart = x - textWidth / 2 - textHeight; + textYStart = y - textHeight / 2 - 2; + coverRectStart = { + x: x - textWidth - textHeight, + y: y - textHeight, + width: textWidth + textHeight, + height: textHeight + }; + pointListEnd = [ + [ + x + width, + y + height + ], + [ + x + width, + y - textHeight + ], + [ + x + width + textHeight, + y - textHeight + ], + [ + x + width + 1, + y + ], + [ + x + width + 1, + y + height + ] + ]; + textXEnd = x + width + textWidth / 2 + textHeight; + textYEnd = textYStart; + coverRectEnd = { + x: x + width, + y: y - textHeight, + width: textWidth + textHeight, + height: textHeight + }; + } + } else { + textWidth += textHeight; + if (this.dataRangeOption.x != 'right') { + pointListStart = [ + [ + x, + y + ], + [ + x + width + textHeight, + y + ], + [ + x + width + textHeight, + y - textHeight + ], + [ + x + width, + y - 1 + ], + [ + x, + y - 1 + ] + ]; + textXStart = x + width + textWidth / 2 + textHeight / 2; + textYStart = y - textHeight / 2; + coverRectStart = { + x: x + width, + y: y - textHeight, + width: textWidth + textHeight, + height: textHeight + }; + pointListEnd = [ + [ + x, + y + height + ], + [ + x + width + textHeight, + y + height + ], + [ + x + width + textHeight, + y + textHeight + height + ], + [ + x + width, + y + 1 + height + ], + [ + x, + y + height + 1 + ] + ]; + textXEnd = textXStart; + textYEnd = y + height + textHeight / 2; + coverRectEnd = { + x: x + width, + y: y + height, + width: textWidth + textHeight, + height: textHeight + }; + } else { + pointListStart = [ + [ + x + width, + y + ], + [ + x - textHeight, + y + ], + [ + x - textHeight, + y - textHeight + ], + [ + x, + y - 1 + ], + [ + x + width, + y - 1 + ] + ]; + textXStart = x - textWidth / 2 - textHeight / 2; + textYStart = y - textHeight / 2; + coverRectStart = { + x: x - textWidth - textHeight, + y: y - textHeight, + width: textWidth + textHeight, + height: textHeight + }; + pointListEnd = [ + [ + x + width, + y + height + ], + [ + x - textHeight, + y + height + ], + [ + x - textHeight, + y + textHeight + height + ], + [ + x, + y + 1 + height + ], + [ + x + width, + y + height + 1 + ] + ]; + textXEnd = textXStart; + textYEnd = y + height + textHeight / 2; + coverRectEnd = { + x: x - textWidth - textHeight, + y: y + height, + width: textWidth + textHeight, + height: textHeight + }; + } + } + this._startShape = { + style: { + pointList: pointListStart, + text: this._textFormat(this.dataRangeOption.max), + textX: textXStart, + textY: textYStart, + textFont: font, + color: this.getColor(this.dataRangeOption.max), + rect: coverRectStart, + x: pointListStart[0][0], + y: pointListStart[0][1], + _x: pointListStart[0][0], + _y: pointListStart[0][1] + } + }; + this._startShape.highlightStyle = { + strokeColor: this._startShape.style.color, + lineWidth: 1 + }; + this._endShape = { + style: { + pointList: pointListEnd, + text: this._textFormat(this.dataRangeOption.min), + textX: textXEnd, + textY: textYEnd, + textFont: font, + color: this.getColor(this.dataRangeOption.min), + rect: coverRectEnd, + x: pointListEnd[0][0], + y: pointListEnd[0][1], + _x: pointListEnd[0][0], + _y: pointListEnd[0][1] + } + }; + this._endShape.highlightStyle = { + strokeColor: this._endShape.style.color, + lineWidth: 1 + }; + this._startShape.zlevel = this._endShape.zlevel = this.getZlevelBase(); + this._startShape.z = this._endShape.z = this.getZBase() + 1; + this._startShape.draggable = this._endShape.draggable = true; + this._startShape.ondrift = this._endShape.ondrift = this._ondrift; + this._startShape.ondragend = this._endShape.ondragend = this._ondragend; + this._startShape.style.textColor = this._endShape.style.textColor = this.dataRangeOption.textStyle.color; + this._startShape.style.textAlign = this._endShape.style.textAlign = 'center'; + this._startShape.style.textPosition = this._endShape.style.textPosition = 'specific'; + this._startShape.style.textBaseline = this._endShape.style.textBaseline = 'middle'; + this._startShape.style.width = this._endShape.style.width = 0; + this._startShape.style.height = this._endShape.style.height = 0; + this._startShape.style.textPosition = this._endShape.style.textPosition = 'specific'; + this._startShape = new HandlePolygonShape(this._startShape); + this._endShape = new HandlePolygonShape(this._endShape); + this.shapeList.push(this._startShape); + this.shapeList.push(this._endShape); + }, + _bulidMask: function () { + var x = this._calculableLocation.x; + var y = this._calculableLocation.y; + var width = this._calculableLocation.width; + var height = this._calculableLocation.height; + this._startMask = { + zlevel: this.getZlevelBase(), + z: this.getZBase() + 1, + style: { + x: x, + y: y, + width: this.dataRangeOption.orient == 'horizontal' ? 0 : width, + height: this.dataRangeOption.orient == 'horizontal' ? height : 0, + color: '#ccc' + }, + hoverable: false + }; + this._endMask = { + zlevel: this.getZlevelBase(), + z: this.getZBase() + 1, + style: { + x: this.dataRangeOption.orient == 'horizontal' ? x + width : x, + y: this.dataRangeOption.orient == 'horizontal' ? y : y + height, + width: this.dataRangeOption.orient == 'horizontal' ? 0 : width, + height: this.dataRangeOption.orient == 'horizontal' ? height : 0, + color: '#ccc' + }, + hoverable: false + }; + this._startMask = new RectangleShape(this._startMask); + this._endMask = new RectangleShape(this._endMask); + this.shapeList.push(this._startMask); + this.shapeList.push(this._endMask); + }, + _buildBackground: function () { + var padding = this.reformCssArray(this.dataRangeOption.padding); + this.shapeList.push(new RectangleShape({ + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: false, + style: { + x: this._itemGroupLocation.x - padding[3], + y: this._itemGroupLocation.y - padding[0], + width: this._itemGroupLocation.width + padding[3] + padding[1], + height: this._itemGroupLocation.height + padding[0] + padding[2], + brushType: this.dataRangeOption.borderWidth === 0 ? 'fill' : 'both', + color: this.dataRangeOption.backgroundColor, + strokeColor: this.dataRangeOption.borderColor, + lineWidth: this.dataRangeOption.borderWidth + } + })); + }, + _getItemGroupLocation: function () { + var data = this._valueTextList; + var dataLength = data.length; + var itemGap = this.dataRangeOption.itemGap; + var itemWidth = this.dataRangeOption.itemWidth; + var itemHeight = this.dataRangeOption.itemHeight; + var totalWidth = 0; + var totalHeight = 0; + var font = this.getFont(this.dataRangeOption.textStyle); + var textHeight = zrArea.getTextHeight('国', font); + var mSize = 10; + if (this.dataRangeOption.orient == 'horizontal') { + if (this.dataRangeOption.text || this._isContinuity()) { + totalWidth = (this._isContinuity() ? itemWidth * mSize + itemGap : dataLength * (itemWidth + itemGap)) + (this.dataRangeOption.text && typeof this.dataRangeOption.text[0] != 'undefined' ? zrArea.getTextWidth(this.dataRangeOption.text[0], font) + this._textGap : 0) + (this.dataRangeOption.text && typeof this.dataRangeOption.text[1] != 'undefined' ? zrArea.getTextWidth(this.dataRangeOption.text[1], font) + this._textGap : 0); + } else { + itemWidth += 5; + for (var i = 0; i < dataLength; i++) { + totalWidth += itemWidth + zrArea.getTextWidth(data[i], font) + itemGap; + } + } + totalWidth -= itemGap; + totalHeight = Math.max(textHeight, itemHeight); + } else { + var maxWidth; + if (this.dataRangeOption.text || this._isContinuity()) { + totalHeight = (this._isContinuity() ? itemHeight * mSize + itemGap : dataLength * (itemHeight + itemGap)) + (this.dataRangeOption.text && typeof this.dataRangeOption.text[0] != 'undefined' ? this._textGap + textHeight : 0) + (this.dataRangeOption.text && typeof this.dataRangeOption.text[1] != 'undefined' ? this._textGap + textHeight : 0); + maxWidth = Math.max(zrArea.getTextWidth(this.dataRangeOption.text && this.dataRangeOption.text[0] || '', font), zrArea.getTextWidth(this.dataRangeOption.text && this.dataRangeOption.text[1] || '', font)); + totalWidth = Math.max(itemWidth, maxWidth); + } else { + totalHeight = (itemHeight + itemGap) * dataLength; + itemWidth += 5; + maxWidth = 0; + for (var i = 0; i < dataLength; i++) { + maxWidth = Math.max(maxWidth, zrArea.getTextWidth(data[i], font)); + } + totalWidth = itemWidth + maxWidth; + } + totalHeight -= itemGap; + } + var padding = this.reformCssArray(this.dataRangeOption.padding); + var x; + var zrWidth = this.zr.getWidth(); + switch (this.dataRangeOption.x) { + case 'center': + x = Math.floor((zrWidth - totalWidth) / 2); + break; + case 'left': + x = padding[3] + this.dataRangeOption.borderWidth; + break; + case 'right': + x = zrWidth - totalWidth - padding[1] - this.dataRangeOption.borderWidth; + break; + default: + x = this.parsePercent(this.dataRangeOption.x, zrWidth); + x = isNaN(x) ? 0 : x; + break; + } + var y; + var zrHeight = this.zr.getHeight(); + switch (this.dataRangeOption.y) { + case 'top': + y = padding[0] + this.dataRangeOption.borderWidth; + break; + case 'bottom': + y = zrHeight - totalHeight - padding[2] - this.dataRangeOption.borderWidth; + break; + case 'center': + y = Math.floor((zrHeight - totalHeight) / 2); + break; + default: + y = this.parsePercent(this.dataRangeOption.y, zrHeight); + y = isNaN(y) ? 0 : y; + break; + } + if (this.dataRangeOption.calculable) { + var handlerWidth = Math.max(zrArea.getTextWidth(this.dataRangeOption.max, font), zrArea.getTextWidth(this.dataRangeOption.min, font)) + textHeight; + if (this.dataRangeOption.orient == 'horizontal') { + if (x < handlerWidth) { + x = handlerWidth; + } + if (x + totalWidth + handlerWidth > zrWidth) { + x -= handlerWidth; + } + } else { + if (y < textHeight) { + y = textHeight; + } + if (y + totalHeight + textHeight > zrHeight) { + y -= textHeight; + } + } + } + return { + x: x, + y: y, + width: totalWidth, + height: totalHeight + }; + }, + _getTextShape: function (x, y, text) { + return { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: { + x: this.dataRangeOption.orient == 'horizontal' ? x : this._itemGroupLocation.x + this._itemGroupLocation.width / 2, + y: this.dataRangeOption.orient == 'horizontal' ? this._itemGroupLocation.y + this._itemGroupLocation.height / 2 : y, + color: this.dataRangeOption.textStyle.color, + text: text, + textFont: this.getFont(this.dataRangeOption.textStyle), + textBaseline: this.dataRangeOption.orient == 'horizontal' ? 'middle' : 'top', + textAlign: this.dataRangeOption.orient == 'horizontal' ? 'left' : 'center' + }, + hoverable: false + }; + }, + _getItemShape: function (x, y, width, height, color) { + return { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: { + x: x, + y: y + 1, + width: width, + height: height - 2, + color: color + }, + highlightStyle: { + strokeColor: color, + lineWidth: 1 + } + }; + }, + __ondrift: function (shape, dx, dy) { + var x = this._calculableLocation.x; + var y = this._calculableLocation.y; + var width = this._calculableLocation.width; + var height = this._calculableLocation.height; + if (this.dataRangeOption.orient == 'horizontal') { + if (shape.style.x + dx <= x) { + shape.style.x = x; + } else if (shape.style.x + dx + shape.style.width >= x + width) { + shape.style.x = x + width - shape.style.width; + } else { + shape.style.x += dx; + } + } else { + if (shape.style.y + dy <= y) { + shape.style.y = y; + } else if (shape.style.y + dy + shape.style.height >= y + height) { + shape.style.y = y + height - shape.style.height; + } else { + shape.style.y += dy; + } + } + if (shape._type == 'filler') { + this._syncHandleShape(); + } else { + this._syncFillerShape(shape); + } + if (this.dataRangeOption.realtime) { + this._dispatchDataRange(); + } + return true; + }, + __ondragend: function () { + this.isDragend = true; + }, + ondragend: function (param, status) { + if (!this.isDragend || !param.target) { + return; + } + status.dragOut = true; + status.dragIn = true; + if (!this.dataRangeOption.realtime) { + this._dispatchDataRange(); + } + status.needRefresh = false; + this.isDragend = false; + return; + }, + _syncShapeFromRange: function () { + var range = this.dataRangeOption.range || {}; + var optRangeStart = range.start; + var optRangeEnd = range.end; + if (optRangeEnd < optRangeStart) { + optRangeStart = [ + optRangeEnd, + optRangeEnd = optRangeStart + ][0]; + } + this._range.end = optRangeStart != null ? optRangeStart : this._range.end != null ? this._range.end : 0; + this._range.start = optRangeEnd != null ? optRangeEnd : this._range.start != null ? this._range.start : 100; + if (this._range.start != 100 || this._range.end !== 0) { + if (this.dataRangeOption.orient == 'horizontal') { + var width = this._fillerShape.style.width; + this._fillerShape.style.x += width * (100 - this._range.start) / 100; + this._fillerShape.style.width = width * (this._range.start - this._range.end) / 100; + } else { + var height = this._fillerShape.style.height; + this._fillerShape.style.y += height * (100 - this._range.start) / 100; + this._fillerShape.style.height = height * (this._range.start - this._range.end) / 100; + } + this.zr.modShape(this._fillerShape.id); + this._syncHandleShape(); + } + }, + _syncHandleShape: function () { + var x = this._calculableLocation.x; + var y = this._calculableLocation.y; + var width = this._calculableLocation.width; + var height = this._calculableLocation.height; + if (this.dataRangeOption.orient == 'horizontal') { + this._startShape.style.x = this._fillerShape.style.x; + this._startMask.style.width = this._startShape.style.x - x; + this._endShape.style.x = this._fillerShape.style.x + this._fillerShape.style.width; + this._endMask.style.x = this._endShape.style.x; + this._endMask.style.width = x + width - this._endShape.style.x; + this._range.start = Math.ceil(100 - (this._startShape.style.x - x) / width * 100); + this._range.end = Math.floor(100 - (this._endShape.style.x - x) / width * 100); + } else { + this._startShape.style.y = this._fillerShape.style.y; + this._startMask.style.height = this._startShape.style.y - y; + this._endShape.style.y = this._fillerShape.style.y + this._fillerShape.style.height; + this._endMask.style.y = this._endShape.style.y; + this._endMask.style.height = y + height - this._endShape.style.y; + this._range.start = Math.ceil(100 - (this._startShape.style.y - y) / height * 100); + this._range.end = Math.floor(100 - (this._endShape.style.y - y) / height * 100); + } + this._syncShape(); + }, + _syncFillerShape: function (e) { + var x = this._calculableLocation.x; + var y = this._calculableLocation.y; + var width = this._calculableLocation.width; + var height = this._calculableLocation.height; + var a; + var b; + if (this.dataRangeOption.orient == 'horizontal') { + a = this._startShape.style.x; + b = this._endShape.style.x; + if (e.id == this._startShape.id && a >= b) { + b = a; + this._endShape.style.x = a; + } else if (e.id == this._endShape.id && a >= b) { + a = b; + this._startShape.style.x = a; + } + this._fillerShape.style.x = a; + this._fillerShape.style.width = b - a; + this._startMask.style.width = a - x; + this._endMask.style.x = b; + this._endMask.style.width = x + width - b; + this._range.start = Math.ceil(100 - (a - x) / width * 100); + this._range.end = Math.floor(100 - (b - x) / width * 100); + } else { + a = this._startShape.style.y; + b = this._endShape.style.y; + if (e.id == this._startShape.id && a >= b) { + b = a; + this._endShape.style.y = a; + } else if (e.id == this._endShape.id && a >= b) { + a = b; + this._startShape.style.y = a; + } + this._fillerShape.style.y = a; + this._fillerShape.style.height = b - a; + this._startMask.style.height = a - y; + this._endMask.style.y = b; + this._endMask.style.height = y + height - b; + this._range.start = Math.ceil(100 - (a - y) / height * 100); + this._range.end = Math.floor(100 - (b - y) / height * 100); + } + this._syncShape(); + }, + _syncShape: function () { + this._startShape.position = [ + this._startShape.style.x - this._startShape.style._x, + this._startShape.style.y - this._startShape.style._y + ]; + this._startShape.style.text = this._textFormat(this._gap * this._range.start + this.dataRangeOption.min); + this._startShape.style.color = this._startShape.highlightStyle.strokeColor = this.getColor(this._gap * this._range.start + this.dataRangeOption.min); + this._endShape.position = [ + this._endShape.style.x - this._endShape.style._x, + this._endShape.style.y - this._endShape.style._y + ]; + this._endShape.style.text = this._textFormat(this._gap * this._range.end + this.dataRangeOption.min); + this._endShape.style.color = this._endShape.highlightStyle.strokeColor = this.getColor(this._gap * this._range.end + this.dataRangeOption.min); + this.zr.modShape(this._startShape.id); + this.zr.modShape(this._endShape.id); + this.zr.modShape(this._startMask.id); + this.zr.modShape(this._endMask.id); + this.zr.modShape(this._fillerShape.id); + this.zr.refreshNextFrame(); + }, + _dispatchDataRange: function () { + this.messageCenter.dispatch(ecConfig.EVENT.DATA_RANGE, null, { + range: { + start: this._range.end, + end: this._range.start + } + }, this.myChart); + }, + __dataRangeSelected: function (param) { + if (this.dataRangeOption.selectedMode === 'single') { + for (var k in this._selectedMap) { + this._selectedMap[k] = false; + } + } + var idx = param.target._idx; + this._selectedMap[idx] = !this._selectedMap[idx]; + var valueMax; + var valueMin; + if (this._useCustomizedSplit()) { + valueMax = this._splitList[idx].max; + valueMin = this._splitList[idx].min; + } else { + valueMax = (this._colorList.length - idx) * this._gap + this.dataRangeOption.min; + valueMin = valueMax - this._gap; + } + this.messageCenter.dispatch(ecConfig.EVENT.DATA_RANGE_SELECTED, param.event, { + selected: this._selectedMap, + target: idx, + valueMax: valueMax, + valueMin: valueMin + }, this.myChart); + this.messageCenter.dispatch(ecConfig.EVENT.REFRESH, null, null, this.myChart); + }, + __dispatchHoverLink: function (param) { + var valueMin; + var valueMax; + if (this.dataRangeOption.calculable) { + var totalValue = this.dataRangeOption.max - this.dataRangeOption.min; + var curValue; + if (this.dataRangeOption.orient == 'horizontal') { + curValue = (1 - (zrEvent.getX(param.event) - this._calculableLocation.x) / this._calculableLocation.width) * totalValue; + } else { + curValue = (1 - (zrEvent.getY(param.event) - this._calculableLocation.y) / this._calculableLocation.height) * totalValue; + } + valueMin = curValue - totalValue * 0.05; + valueMax = curValue + totalValue * 0.05; + } else if (this._useCustomizedSplit()) { + var idx = param.target._idx; + valueMax = this._splitList[idx].max; + valueMin = this._splitList[idx].min; + } else { + var idx = param.target._idx; + valueMax = (this._colorList.length - idx) * this._gap + this.dataRangeOption.min; + valueMin = valueMax - this._gap; + } + this.messageCenter.dispatch(ecConfig.EVENT.DATA_RANGE_HOVERLINK, param.event, { + valueMin: valueMin, + valueMax: valueMax + }, this.myChart); + }, + __onhoverlink: function (param) { + if (this.dataRangeOption.show && this.dataRangeOption.hoverLink && this._indicatorShape && param && param.seriesIndex != null && param.dataIndex != null) { + var curValue = param.value; + if (curValue === '' || isNaN(curValue)) { + return; + } + if (curValue < this.dataRangeOption.min) { + curValue = this.dataRangeOption.min; + } else if (curValue > this.dataRangeOption.max) { + curValue = this.dataRangeOption.max; + } + if (this.dataRangeOption.orient == 'horizontal') { + this._indicatorShape.position = [ + (this.dataRangeOption.max - curValue) / (this.dataRangeOption.max - this.dataRangeOption.min) * this._calculableLocation.width, + 0 + ]; + } else { + this._indicatorShape.position = [ + 0, + (this.dataRangeOption.max - curValue) / (this.dataRangeOption.max - this.dataRangeOption.min) * this._calculableLocation.height + ]; + } + this._indicatorShape.style.text = this._textFormat(param.value); + this._indicatorShape.style.color = this.getColor(curValue); + this.zr.addHoverShape(this._indicatorShape); + } + }, + _textFormat: function (valueStart, valueEnd) { + var dataRangeOption = this.dataRangeOption; + if (valueStart !== -Number.MAX_VALUE) { + valueStart = (+valueStart).toFixed(dataRangeOption.precision); + } + if (valueEnd != null && valueEnd !== Number.MAX_VALUE) { + valueEnd = (+valueEnd).toFixed(dataRangeOption.precision); + } + if (dataRangeOption.formatter) { + if (typeof dataRangeOption.formatter == 'string') { + return dataRangeOption.formatter.replace('{value}', valueStart === -Number.MAX_VALUE ? 'min' : valueStart).replace('{value2}', valueEnd === Number.MAX_VALUE ? 'max' : valueEnd); + } else if (typeof dataRangeOption.formatter == 'function') { + return dataRangeOption.formatter.call(this.myChart, valueStart, valueEnd); + } + } + if (valueEnd == null) { + return valueStart; + } else { + if (valueStart === -Number.MAX_VALUE) { + return '< ' + valueEnd; + } else if (valueEnd === Number.MAX_VALUE) { + return '> ' + valueStart; + } else { + return valueStart + ' - ' + valueEnd; + } + } + }, + _isContinuity: function () { + var dataRangeOption = this.dataRangeOption; + return !(dataRangeOption.splitList ? dataRangeOption.splitList.length > 0 : dataRangeOption.splitNumber > 0) || dataRangeOption.calculable; + }, + _useCustomizedSplit: function () { + var dataRangeOption = this.dataRangeOption; + return dataRangeOption.splitList && dataRangeOption.splitList.length > 0; + }, + _buildColorList: function (splitNumber) { + this._colorList = zrColor.getGradientColors(this.dataRangeOption.color, Math.max((splitNumber - this.dataRangeOption.color.length) / (this.dataRangeOption.color.length - 1), 0) + 1); + if (this._colorList.length > splitNumber) { + var len = this._colorList.length; + var newColorList = [this._colorList[0]]; + var step = len / (splitNumber - 1); + for (var i = 1; i < splitNumber - 1; i++) { + newColorList.push(this._colorList[Math.floor(i * step)]); + } + newColorList.push(this._colorList[len - 1]); + this._colorList = newColorList; + } + if (this._useCustomizedSplit()) { + var splitList = this._splitList; + for (var i = 0, len = splitList.length; i < len; i++) { + if (splitList[i].color) { + this._colorList[i] = splitList[i].color; + } + } + } + }, + _buildGap: function (splitNumber) { + if (!this._useCustomizedSplit()) { + var precision = this.dataRangeOption.precision; + this._gap = (this.dataRangeOption.max - this.dataRangeOption.min) / splitNumber; + while (this._gap.toFixed(precision) - 0 != this._gap && precision < 5) { + precision++; + } + this.dataRangeOption.precision = precision; + this._gap = ((this.dataRangeOption.max - this.dataRangeOption.min) / splitNumber).toFixed(precision) - 0; + } + }, + _buildDataList: function (splitNumber) { + var valueTextList = this._valueTextList = []; + var dataRangeOption = this.dataRangeOption; + var useCustomizedSplit = this._useCustomizedSplit(); + for (var i = 0; i < splitNumber; i++) { + this._selectedMap[i] = true; + var text = ''; + if (useCustomizedSplit) { + var splitListItem = this._splitList[splitNumber - 1 - i]; + if (splitListItem.label != null) { + text = splitListItem.label; + } else if (splitListItem.single != null) { + text = this._textFormat(splitListItem.single); + } else { + text = this._textFormat(splitListItem.min, splitListItem.max); + } + } else { + text = this._textFormat(i * this._gap + dataRangeOption.min, (i + 1) * this._gap + dataRangeOption.min); + } + valueTextList.unshift(text); + } + }, + _buildSplitList: function () { + if (!this._useCustomizedSplit()) { + return; + } + var splitList = this.dataRangeOption.splitList; + var splitRangeList = this._splitList = []; + for (var i = 0, len = splitList.length; i < len; i++) { + var splitListItem = splitList[i]; + if (!splitListItem || splitListItem.start == null && splitListItem.end == null) { + throw new Error('Empty item exists in splitList!'); + } + var reformedItem = { + label: splitListItem.label, + color: splitListItem.color + }; + reformedItem.min = splitListItem.start; + reformedItem.max = splitListItem.end; + if (reformedItem.min > reformedItem.max) { + reformedItem.min = [ + reformedItem.max, + reformedItem.max = reformedItem.min + ][0]; + } + if (reformedItem.min === reformedItem.max) { + reformedItem.single = reformedItem.max; + } + if (reformedItem.min == null) { + reformedItem.min = -Number.MAX_VALUE; + } + if (reformedItem.max == null) { + reformedItem.max = Number.MAX_VALUE; + } + splitRangeList.push(reformedItem); + } + }, + refresh: function (newOption) { + if (newOption) { + this.option = newOption; + this.option.dataRange = this.reformOption(this.option.dataRange); + var dataRangeOption = this.dataRangeOption = this.option.dataRange; + if (!this._useCustomizedSplit() && (dataRangeOption.min == null || dataRangeOption.max == null)) { + throw new Error('option.dataRange.min or option.dataRange.max has not been defined.'); + } + if (!this.myChart.canvasSupported) { + dataRangeOption.realtime = false; + } + var splitNumber = this._isContinuity() ? 100 : this._useCustomizedSplit() ? dataRangeOption.splitList.length : dataRangeOption.splitNumber; + this._buildSplitList(); + this._buildColorList(splitNumber); + this._buildGap(splitNumber); + this._buildDataList(splitNumber); + } + this.clear(); + this._buildShape(); + }, + getColor: function (value) { + if (isNaN(value)) { + return null; + } + var idx; + if (!this._useCustomizedSplit()) { + if (this.dataRangeOption.min == this.dataRangeOption.max) { + return this._colorList[0]; + } + if (value < this.dataRangeOption.min) { + value = this.dataRangeOption.min; + } else if (value > this.dataRangeOption.max) { + value = this.dataRangeOption.max; + } + if (this.dataRangeOption.calculable) { + if (value - (this._gap * this._range.start + this.dataRangeOption.min) > 0.00005 || value - (this._gap * this._range.end + this.dataRangeOption.min) < -0.00005) { + return null; + } + } + idx = this._colorList.length - Math.ceil((value - this.dataRangeOption.min) / (this.dataRangeOption.max - this.dataRangeOption.min) * this._colorList.length); + if (idx == this._colorList.length) { + idx--; + } + } else { + var splitRangeList = this._splitList; + for (var i = 0, len = splitRangeList.length; i < len; i++) { + if (splitRangeList[i].min <= value && splitRangeList[i].max >= value) { + idx = i; + break; + } + } + } + if (this._selectedMap[idx]) { + return this._colorList[idx]; + } else { + return null; + } + }, + getColorByIndex: function (idx) { + if (idx >= this._colorList.length) { + idx = this._colorList.length - 1; + } else if (idx < 0) { + idx = 0; + } + return this._colorList[idx]; + }, + onbeforDispose: function () { + this.messageCenter.unbind(ecConfig.EVENT.HOVER, this._onhoverlink); + } + }; + zrUtil.inherits(DataRange, Base); + require('../component').define('dataRange', DataRange); + return DataRange; +});define('echarts/util/shape/HandlePolygon', [ + 'require', + 'zrender/shape/Base', + 'zrender/shape/Polygon', + 'zrender/tool/util' +], function (require) { + var Base = require('zrender/shape/Base'); + var PolygonShape = require('zrender/shape/Polygon'); + var zrUtil = require('zrender/tool/util'); + function HandlePolygon(options) { + Base.call(this, options); + } + HandlePolygon.prototype = { + type: 'handle-polygon', + buildPath: function (ctx, style) { + PolygonShape.prototype.buildPath(ctx, style); + }, + isCover: function (x, y) { + var originPos = this.transformCoordToLocal(x, y); + x = originPos[0]; + y = originPos[1]; + var rect = this.style.rect; + if (x >= rect.x && x <= rect.x + rect.width && y >= rect.y && y <= rect.y + rect.height) { + return true; + } else { + return false; + } + } + }; + zrUtil.inherits(HandlePolygon, Base); + return HandlePolygon; +});define('echarts/chart/k', [ + 'require', + './base', + '../util/shape/Candle', + '../component/axis', + '../component/grid', + '../component/dataZoom', + '../config', + '../util/ecData', + 'zrender/tool/util', + '../chart' +], function (require) { + var ChartBase = require('./base'); + var CandleShape = require('../util/shape/Candle'); + require('../component/axis'); + require('../component/grid'); + require('../component/dataZoom'); + var ecConfig = require('../config'); + ecConfig.k = { + zlevel: 0, + z: 2, + clickable: true, + hoverable: true, + legendHoverLink: false, + xAxisIndex: 0, + yAxisIndex: 0, + itemStyle: { + normal: { + color: '#fff', + color0: '#00aa11', + lineStyle: { + width: 1, + color: '#ff3200', + color0: '#00aa11' + }, + label: { show: false } + }, + emphasis: { label: { show: false } } + } + }; + var ecData = require('../util/ecData'); + var zrUtil = require('zrender/tool/util'); + function K(ecTheme, messageCenter, zr, option, myChart) { + ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); + this.refresh(option); + } + K.prototype = { + type: ecConfig.CHART_TYPE_K, + _buildShape: function () { + var series = this.series; + this.selectedMap = {}; + var _position2sIndexMap = { + top: [], + bottom: [] + }; + var xAxis; + for (var i = 0, l = series.length; i < l; i++) { + if (series[i].type === ecConfig.CHART_TYPE_K) { + series[i] = this.reformOption(series[i]); + this.legendHoverLink = series[i].legendHoverLink || this.legendHoverLink; + xAxis = this.component.xAxis.getAxis(series[i].xAxisIndex); + if (xAxis.type === ecConfig.COMPONENT_TYPE_AXIS_CATEGORY) { + _position2sIndexMap[xAxis.getPosition()].push(i); + } + } + } + for (var position in _position2sIndexMap) { + if (_position2sIndexMap[position].length > 0) { + this._buildSinglePosition(position, _position2sIndexMap[position]); + } + } + this.addShapeList(); + }, + _buildSinglePosition: function (position, seriesArray) { + var mapData = this._mapData(seriesArray); + var locationMap = mapData.locationMap; + var maxDataLength = mapData.maxDataLength; + if (maxDataLength === 0 || locationMap.length === 0) { + return; + } + this._buildHorizontal(seriesArray, maxDataLength, locationMap); + for (var i = 0, l = seriesArray.length; i < l; i++) { + this.buildMark(seriesArray[i]); + } + }, + _mapData: function (seriesArray) { + var series = this.series; + var serie; + var serieName; + var legend = this.component.legend; + var locationMap = []; + var maxDataLength = 0; + for (var i = 0, l = seriesArray.length; i < l; i++) { + serie = series[seriesArray[i]]; + serieName = serie.name; + this.selectedMap[serieName] = legend ? legend.isSelected(serieName) : true; + if (this.selectedMap[serieName]) { + locationMap.push(seriesArray[i]); + } + maxDataLength = Math.max(maxDataLength, serie.data.length); + } + return { + locationMap: locationMap, + maxDataLength: maxDataLength + }; + }, + _buildHorizontal: function (seriesArray, maxDataLength, locationMap) { + var series = this.series; + var seriesIndex; + var serie; + var xAxisIndex; + var categoryAxis; + var yAxisIndex; + var valueAxis; + var pointList = {}; + var candleWidth; + var data; + var value; + var barMaxWidth; + for (var j = 0, k = locationMap.length; j < k; j++) { + seriesIndex = locationMap[j]; + serie = series[seriesIndex]; + xAxisIndex = serie.xAxisIndex || 0; + categoryAxis = this.component.xAxis.getAxis(xAxisIndex); + candleWidth = serie.barWidth || Math.floor(categoryAxis.getGap() / 2); + barMaxWidth = serie.barMaxWidth; + if (barMaxWidth && barMaxWidth < candleWidth) { + candleWidth = barMaxWidth; + } + yAxisIndex = serie.yAxisIndex || 0; + valueAxis = this.component.yAxis.getAxis(yAxisIndex); + pointList[seriesIndex] = []; + for (var i = 0, l = maxDataLength; i < l; i++) { + if (categoryAxis.getNameByIndex(i) == null) { + break; + } + data = serie.data[i]; + value = this.getDataFromOption(data, '-'); + if (value === '-' || value.length != 4) { + continue; + } + pointList[seriesIndex].push([ + categoryAxis.getCoordByIndex(i), + candleWidth, + valueAxis.getCoord(value[0]), + valueAxis.getCoord(value[1]), + valueAxis.getCoord(value[2]), + valueAxis.getCoord(value[3]), + i, + categoryAxis.getNameByIndex(i) + ]); + } + } + this._buildKLine(seriesArray, pointList); + }, + _buildKLine: function (seriesArray, pointList) { + var series = this.series; + var nLineWidth; + var nLineColor; + var nLineColor0; + var nColor; + var nColor0; + var eLineWidth; + var eLineColor; + var eLineColor0; + var eColor; + var eColor0; + var serie; + var queryTarget; + var data; + var seriesPL; + var singlePoint; + var candleType; + var seriesIndex; + for (var sIdx = 0, len = seriesArray.length; sIdx < len; sIdx++) { + seriesIndex = seriesArray[sIdx]; + serie = series[seriesIndex]; + seriesPL = pointList[seriesIndex]; + if (this._isLarge(seriesPL)) { + seriesPL = this._getLargePointList(seriesPL); + } + if (serie.type === ecConfig.CHART_TYPE_K && seriesPL != null) { + queryTarget = serie; + nLineWidth = this.query(queryTarget, 'itemStyle.normal.lineStyle.width'); + nLineColor = this.query(queryTarget, 'itemStyle.normal.lineStyle.color'); + nLineColor0 = this.query(queryTarget, 'itemStyle.normal.lineStyle.color0'); + nColor = this.query(queryTarget, 'itemStyle.normal.color'); + nColor0 = this.query(queryTarget, 'itemStyle.normal.color0'); + eLineWidth = this.query(queryTarget, 'itemStyle.emphasis.lineStyle.width'); + eLineColor = this.query(queryTarget, 'itemStyle.emphasis.lineStyle.color'); + eLineColor0 = this.query(queryTarget, 'itemStyle.emphasis.lineStyle.color0'); + eColor = this.query(queryTarget, 'itemStyle.emphasis.color'); + eColor0 = this.query(queryTarget, 'itemStyle.emphasis.color0'); + for (var i = 0, l = seriesPL.length; i < l; i++) { + singlePoint = seriesPL[i]; + data = serie.data[singlePoint[6]]; + queryTarget = data; + candleType = singlePoint[3] < singlePoint[2]; + this.shapeList.push(this._getCandle(seriesIndex, singlePoint[6], singlePoint[7], singlePoint[0], singlePoint[1], singlePoint[2], singlePoint[3], singlePoint[4], singlePoint[5], candleType ? this.query(queryTarget, 'itemStyle.normal.color') || nColor : this.query(queryTarget, 'itemStyle.normal.color0') || nColor0, this.query(queryTarget, 'itemStyle.normal.lineStyle.width') || nLineWidth, candleType ? this.query(queryTarget, 'itemStyle.normal.lineStyle.color') || nLineColor : this.query(queryTarget, 'itemStyle.normal.lineStyle.color0') || nLineColor0, candleType ? this.query(queryTarget, 'itemStyle.emphasis.color') || eColor || nColor : this.query(queryTarget, 'itemStyle.emphasis.color0') || eColor0 || nColor0, this.query(queryTarget, 'itemStyle.emphasis.lineStyle.width') || eLineWidth || nLineWidth, candleType ? this.query(queryTarget, 'itemStyle.emphasis.lineStyle.color') || eLineColor || nLineColor : this.query(queryTarget, 'itemStyle.emphasis.lineStyle.color0') || eLineColor0 || nLineColor0)); + } + } + } + }, + _isLarge: function (singlePL) { + return singlePL[0][1] < 0.5; + }, + _getLargePointList: function (singlePL) { + var total = this.component.grid.getWidth(); + var len = singlePL.length; + var newList = []; + for (var i = 0; i < total; i++) { + newList[i] = singlePL[Math.floor(len / total * i)]; + } + return newList; + }, + _getCandle: function (seriesIndex, dataIndex, name, x, width, y0, y1, y2, y3, nColor, nLinewidth, nLineColor, eColor, eLinewidth, eLineColor) { + var series = this.series; + var serie = series[seriesIndex]; + var data = serie.data[dataIndex]; + var queryTarget = [ + data, + serie + ]; + var itemShape = { + zlevel: serie.zlevel, + z: serie.z, + clickable: this.deepQuery(queryTarget, 'clickable'), + hoverable: this.deepQuery(queryTarget, 'hoverable'), + style: { + x: x, + y: [ + y0, + y1, + y2, + y3 + ], + width: width, + color: nColor, + strokeColor: nLineColor, + lineWidth: nLinewidth, + brushType: 'both' + }, + highlightStyle: { + color: eColor, + strokeColor: eLineColor, + lineWidth: eLinewidth + }, + _seriesIndex: seriesIndex + }; + itemShape = this.addLabel(itemShape, serie, data, name); + ecData.pack(itemShape, serie, seriesIndex, data, dataIndex, name); + itemShape = new CandleShape(itemShape); + return itemShape; + }, + getMarkCoord: function (seriesIndex, mpData) { + var serie = this.series[seriesIndex]; + var xAxis = this.component.xAxis.getAxis(serie.xAxisIndex); + var yAxis = this.component.yAxis.getAxis(serie.yAxisIndex); + return [ + typeof mpData.xAxis != 'string' && xAxis.getCoordByIndex ? xAxis.getCoordByIndex(mpData.xAxis || 0) : xAxis.getCoord(mpData.xAxis || 0), + typeof mpData.yAxis != 'string' && yAxis.getCoordByIndex ? yAxis.getCoordByIndex(mpData.yAxis || 0) : yAxis.getCoord(mpData.yAxis || 0) + ]; + }, + refresh: function (newOption) { + if (newOption) { + this.option = newOption; + this.series = newOption.series; + } + this.backupShapeList(); + this._buildShape(); + }, + addDataAnimation: function (params, done) { + var series = this.series; + var aniMap = {}; + for (var i = 0, l = params.length; i < l; i++) { + aniMap[params[i][0]] = params[i]; + } + var x; + var dx; + var y; + var serie; + var seriesIndex; + var dataIndex; + var aniCount = 0; + function animationDone() { + aniCount--; + if (aniCount === 0) { + done && done(); + } + } + for (var i = 0, l = this.shapeList.length; i < l; i++) { + seriesIndex = this.shapeList[i]._seriesIndex; + if (aniMap[seriesIndex] && !aniMap[seriesIndex][3]) { + if (this.shapeList[i].type === 'candle') { + dataIndex = ecData.get(this.shapeList[i], 'dataIndex'); + serie = series[seriesIndex]; + if (aniMap[seriesIndex][2] && dataIndex === serie.data.length - 1) { + this.zr.delShape(this.shapeList[i].id); + continue; + } else if (!aniMap[seriesIndex][2] && dataIndex === 0) { + this.zr.delShape(this.shapeList[i].id); + continue; + } + dx = this.component.xAxis.getAxis(serie.xAxisIndex || 0).getGap(); + x = aniMap[seriesIndex][2] ? dx : -dx; + y = 0; + aniCount++; + this.zr.animate(this.shapeList[i].id, '').when(this.query(this.option, 'animationDurationUpdate'), { + position: [ + x, + y + ] + }).done(animationDone).start(); + } + } + } + if (!aniCount) { + done && done(); + } + } + }; + zrUtil.inherits(K, ChartBase); + require('../chart').define('k', K); + return K; +});define('echarts/chart/pie', [ + 'require', + './base', + 'zrender/shape/Text', + 'zrender/shape/Ring', + 'zrender/shape/Circle', + 'zrender/shape/Sector', + 'zrender/shape/Polyline', + '../config', + '../util/ecData', + 'zrender/tool/util', + 'zrender/tool/math', + 'zrender/tool/color', + '../chart' +], function (require) { + var ChartBase = require('./base'); + var TextShape = require('zrender/shape/Text'); + var RingShape = require('zrender/shape/Ring'); + var CircleShape = require('zrender/shape/Circle'); + var SectorShape = require('zrender/shape/Sector'); + var PolylineShape = require('zrender/shape/Polyline'); + var ecConfig = require('../config'); + ecConfig.pie = { + zlevel: 0, + z: 2, + clickable: true, + legendHoverLink: true, + center: [ + '50%', + '50%' + ], + radius: [ + 0, + '75%' + ], + clockWise: true, + startAngle: 90, + minAngle: 0, + selectedOffset: 10, + itemStyle: { + normal: { + borderColor: 'rgba(0,0,0,0)', + borderWidth: 1, + label: { + show: true, + position: 'outer' + }, + labelLine: { + show: true, + length: 20, + lineStyle: { + width: 1, + type: 'solid' + } + } + }, + emphasis: { + borderColor: 'rgba(0,0,0,0)', + borderWidth: 1, + label: { show: false }, + labelLine: { + show: false, + length: 20, + lineStyle: { + width: 1, + type: 'solid' + } + } + } + } + }; + var ecData = require('../util/ecData'); + var zrUtil = require('zrender/tool/util'); + var zrMath = require('zrender/tool/math'); + var zrColor = require('zrender/tool/color'); + function Pie(ecTheme, messageCenter, zr, option, myChart) { + ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); + var self = this; + self.shapeHandler.onmouseover = function (param) { + var shape = param.target; + var seriesIndex = ecData.get(shape, 'seriesIndex'); + var dataIndex = ecData.get(shape, 'dataIndex'); + var percent = ecData.get(shape, 'special'); + var center = [ + shape.style.x, + shape.style.y + ]; + var startAngle = shape.style.startAngle; + var endAngle = shape.style.endAngle; + var midAngle = ((endAngle + startAngle) / 2 + 360) % 360; + var defaultColor = shape.highlightStyle.color; + var label = self.getLabel(seriesIndex, dataIndex, percent, center, midAngle, defaultColor, true); + if (label) { + self.zr.addHoverShape(label); + } + var labelLine = self.getLabelLine(seriesIndex, dataIndex, center, shape.style.r0, shape.style.r, midAngle, defaultColor, true); + if (labelLine) { + self.zr.addHoverShape(labelLine); + } + }; + this.refresh(option); + } + Pie.prototype = { + type: ecConfig.CHART_TYPE_PIE, + _buildShape: function () { + var series = this.series; + var legend = this.component.legend; + this.selectedMap = {}; + this._selected = {}; + var center; + var radius; + var pieCase; + this._selectedMode = false; + var serieName; + for (var i = 0, l = series.length; i < l; i++) { + if (series[i].type === ecConfig.CHART_TYPE_PIE) { + series[i] = this.reformOption(series[i]); + this.legendHoverLink = series[i].legendHoverLink || this.legendHoverLink; + serieName = series[i].name || ''; + this.selectedMap[serieName] = legend ? legend.isSelected(serieName) : true; + if (!this.selectedMap[serieName]) { + continue; + } + center = this.parseCenter(this.zr, series[i].center); + radius = this.parseRadius(this.zr, series[i].radius); + this._selectedMode = this._selectedMode || series[i].selectedMode; + this._selected[i] = []; + if (this.deepQuery([ + series[i], + this.option + ], 'calculable')) { + pieCase = { + zlevel: series[i].zlevel, + z: series[i].z, + hoverable: false, + style: { + x: center[0], + y: center[1], + r0: radius[0] <= 10 ? 0 : radius[0] - 10, + r: radius[1] + 10, + brushType: 'stroke', + lineWidth: 1, + strokeColor: series[i].calculableHolderColor || this.ecTheme.calculableHolderColor || ecConfig.calculableHolderColor + } + }; + ecData.pack(pieCase, series[i], i, undefined, -1); + this.setCalculable(pieCase); + pieCase = radius[0] <= 10 ? new CircleShape(pieCase) : new RingShape(pieCase); + this.shapeList.push(pieCase); + } + this._buildSinglePie(i); + this.buildMark(i); + } + } + this.addShapeList(); + }, + _buildSinglePie: function (seriesIndex) { + var series = this.series; + var serie = series[seriesIndex]; + var data = serie.data; + var legend = this.component.legend; + var itemName; + var totalSelected = 0; + var totalSelectedValue0 = 0; + var totalValue = 0; + var maxValue = Number.NEGATIVE_INFINITY; + var singleShapeList = []; + for (var i = 0, l = data.length; i < l; i++) { + itemName = data[i].name; + this.selectedMap[itemName] = legend ? legend.isSelected(itemName) : true; + if (this.selectedMap[itemName] && !isNaN(data[i].value)) { + if (+data[i].value !== 0) { + totalSelected++; + } else { + totalSelectedValue0++; + } + totalValue += +data[i].value; + maxValue = Math.max(maxValue, +data[i].value); + } + } + if (totalValue === 0) { + return; + } + var percent = 100; + var clockWise = serie.clockWise; + var startAngle = (serie.startAngle.toFixed(2) - 0 + 360) % 360; + var endAngle; + var minAngle = serie.minAngle || 0.01; + var totalAngle = 360 - minAngle * totalSelected - 0.01 * totalSelectedValue0; + var defaultColor; + var roseType = serie.roseType; + var center; + var radius; + var r0; + var r1; + for (var i = 0, l = data.length; i < l; i++) { + itemName = data[i].name; + if (!this.selectedMap[itemName] || isNaN(data[i].value)) { + continue; + } + defaultColor = legend ? legend.getColor(itemName) : this.zr.getColor(i); + percent = data[i].value / totalValue; + if (roseType != 'area') { + endAngle = clockWise ? startAngle - percent * totalAngle - (percent !== 0 ? minAngle : 0.01) : percent * totalAngle + startAngle + (percent !== 0 ? minAngle : 0.01); + } else { + endAngle = clockWise ? startAngle - 360 / l : 360 / l + startAngle; + } + endAngle = endAngle.toFixed(2) - 0; + percent = (percent * 100).toFixed(2); + center = this.parseCenter(this.zr, serie.center); + radius = this.parseRadius(this.zr, serie.radius); + r0 = +radius[0]; + r1 = +radius[1]; + if (roseType === 'radius') { + r1 = data[i].value / maxValue * (r1 - r0) * 0.8 + (r1 - r0) * 0.2 + r0; + } else if (roseType === 'area') { + r1 = Math.sqrt(data[i].value / maxValue) * (r1 - r0) + r0; + } + if (clockWise) { + var temp; + temp = startAngle; + startAngle = endAngle; + endAngle = temp; + } + this._buildItem(singleShapeList, seriesIndex, i, percent, data[i].selected, center, r0, r1, startAngle, endAngle, defaultColor); + if (!clockWise) { + startAngle = endAngle; + } + } + this._autoLabelLayout(singleShapeList, center, r1); + for (var i = 0, l = singleShapeList.length; i < l; i++) { + this.shapeList.push(singleShapeList[i]); + } + singleShapeList = null; + }, + _buildItem: function (singleShapeList, seriesIndex, dataIndex, percent, isSelected, center, r0, r1, startAngle, endAngle, defaultColor) { + var series = this.series; + var midAngle = ((endAngle + startAngle) / 2 + 360) % 360; + var sector = this.getSector(seriesIndex, dataIndex, percent, isSelected, center, r0, r1, startAngle, endAngle, defaultColor); + ecData.pack(sector, series[seriesIndex], seriesIndex, series[seriesIndex].data[dataIndex], dataIndex, series[seriesIndex].data[dataIndex].name, percent); + singleShapeList.push(sector); + var label = this.getLabel(seriesIndex, dataIndex, percent, center, midAngle, defaultColor, false); + var labelLine = this.getLabelLine(seriesIndex, dataIndex, center, r0, r1, midAngle, defaultColor, false); + if (labelLine) { + ecData.pack(labelLine, series[seriesIndex], seriesIndex, series[seriesIndex].data[dataIndex], dataIndex, series[seriesIndex].data[dataIndex].name, percent); + singleShapeList.push(labelLine); + } + if (label) { + ecData.pack(label, series[seriesIndex], seriesIndex, series[seriesIndex].data[dataIndex], dataIndex, series[seriesIndex].data[dataIndex].name, percent); + label._labelLine = labelLine; + singleShapeList.push(label); + } + }, + getSector: function (seriesIndex, dataIndex, percent, isSelected, center, r0, r1, startAngle, endAngle, defaultColor) { + var series = this.series; + var serie = series[seriesIndex]; + var data = serie.data[dataIndex]; + var queryTarget = [ + data, + serie + ]; + var normal = this.deepMerge(queryTarget, 'itemStyle.normal') || {}; + var emphasis = this.deepMerge(queryTarget, 'itemStyle.emphasis') || {}; + var normalColor = this.getItemStyleColor(normal.color, seriesIndex, dataIndex, data) || defaultColor; + var emphasisColor = this.getItemStyleColor(emphasis.color, seriesIndex, dataIndex, data) || (typeof normalColor === 'string' ? zrColor.lift(normalColor, -0.2) : normalColor); + var sector = { + zlevel: serie.zlevel, + z: serie.z, + clickable: this.deepQuery(queryTarget, 'clickable'), + style: { + x: center[0], + y: center[1], + r0: r0, + r: r1, + startAngle: startAngle, + endAngle: endAngle, + brushType: 'both', + color: normalColor, + lineWidth: normal.borderWidth, + strokeColor: normal.borderColor, + lineJoin: 'round' + }, + highlightStyle: { + color: emphasisColor, + lineWidth: emphasis.borderWidth, + strokeColor: emphasis.borderColor, + lineJoin: 'round' + }, + _seriesIndex: seriesIndex, + _dataIndex: dataIndex + }; + if (isSelected) { + var midAngle = ((sector.style.startAngle + sector.style.endAngle) / 2).toFixed(2) - 0; + sector.style._hasSelected = true; + sector.style._x = sector.style.x; + sector.style._y = sector.style.y; + var offset = this.query(serie, 'selectedOffset'); + sector.style.x += zrMath.cos(midAngle, true) * offset; + sector.style.y -= zrMath.sin(midAngle, true) * offset; + this._selected[seriesIndex][dataIndex] = true; + } else { + this._selected[seriesIndex][dataIndex] = false; + } + if (this._selectedMode) { + sector.onclick = this.shapeHandler.onclick; + } + if (this.deepQuery([ + data, + serie, + this.option + ], 'calculable')) { + this.setCalculable(sector); + sector.draggable = true; + } + if (this._needLabel(serie, data, true) || this._needLabelLine(serie, data, true)) { + sector.onmouseover = this.shapeHandler.onmouseover; + } + sector = new SectorShape(sector); + return sector; + }, + getLabel: function (seriesIndex, dataIndex, percent, center, midAngle, defaultColor, isEmphasis) { + var series = this.series; + var serie = series[seriesIndex]; + var data = serie.data[dataIndex]; + if (!this._needLabel(serie, data, isEmphasis)) { + return; + } + var status = isEmphasis ? 'emphasis' : 'normal'; + var itemStyle = zrUtil.merge(zrUtil.clone(data.itemStyle) || {}, serie.itemStyle); + var labelControl = itemStyle[status].label; + var textStyle = labelControl.textStyle || {}; + var centerX = center[0]; + var centerY = center[1]; + var x; + var y; + var radius = this.parseRadius(this.zr, serie.radius); + var textAlign; + var textBaseline = 'middle'; + labelControl.position = labelControl.position || itemStyle.normal.label.position; + if (labelControl.position === 'center') { + x = centerX; + y = centerY; + textAlign = 'center'; + } else if (labelControl.position === 'inner' || labelControl.position === 'inside') { + radius = (radius[0] + radius[1]) * (labelControl.distance || 0.5); + x = Math.round(centerX + radius * zrMath.cos(midAngle, true)); + y = Math.round(centerY - radius * zrMath.sin(midAngle, true)); + defaultColor = '#fff'; + textAlign = 'center'; + } else { + radius = radius[1] - -itemStyle[status].labelLine.length; + x = Math.round(centerX + radius * zrMath.cos(midAngle, true)); + y = Math.round(centerY - radius * zrMath.sin(midAngle, true)); + textAlign = midAngle >= 90 && midAngle <= 270 ? 'right' : 'left'; + } + if (labelControl.position != 'center' && labelControl.position != 'inner' && labelControl.position != 'inside') { + x += textAlign === 'left' ? 20 : -20; + } + data.__labelX = x - (textAlign === 'left' ? 5 : -5); + data.__labelY = y; + var ts = new TextShape({ + zlevel: serie.zlevel, + z: serie.z + 1, + hoverable: false, + style: { + x: x, + y: y, + color: textStyle.color || defaultColor, + text: this.getLabelText(seriesIndex, dataIndex, percent, status), + textAlign: textStyle.align || textAlign, + textBaseline: textStyle.baseline || textBaseline, + textFont: this.getFont(textStyle) + }, + highlightStyle: { brushType: 'fill' } + }); + ts._radius = radius; + ts._labelPosition = labelControl.position || 'outer'; + ts._rect = ts.getRect(ts.style); + ts._seriesIndex = seriesIndex; + ts._dataIndex = dataIndex; + return ts; + }, + getLabelText: function (seriesIndex, dataIndex, percent, status) { + var series = this.series; + var serie = series[seriesIndex]; + var data = serie.data[dataIndex]; + var formatter = this.deepQuery([ + data, + serie + ], 'itemStyle.' + status + '.label.formatter'); + if (formatter) { + if (typeof formatter === 'function') { + return formatter.call(this.myChart, { + seriesIndex: seriesIndex, + seriesName: serie.name || '', + series: serie, + dataIndex: dataIndex, + data: data, + name: data.name, + value: data.value, + percent: percent + }); + } else if (typeof formatter === 'string') { + formatter = formatter.replace('{a}', '{a0}').replace('{b}', '{b0}').replace('{c}', '{c0}').replace('{d}', '{d0}'); + formatter = formatter.replace('{a0}', serie.name).replace('{b0}', data.name).replace('{c0}', data.value).replace('{d0}', percent); + return formatter; + } + } else { + return data.name; + } + }, + getLabelLine: function (seriesIndex, dataIndex, center, r0, r1, midAngle, defaultColor, isEmphasis) { + var series = this.series; + var serie = series[seriesIndex]; + var data = serie.data[dataIndex]; + if (this._needLabelLine(serie, data, isEmphasis)) { + var status = isEmphasis ? 'emphasis' : 'normal'; + var itemStyle = zrUtil.merge(zrUtil.clone(data.itemStyle) || {}, serie.itemStyle); + var labelLineControl = itemStyle[status].labelLine; + var lineStyle = labelLineControl.lineStyle || {}; + var centerX = center[0]; + var centerY = center[1]; + var minRadius = r1; + var maxRadius = this.parseRadius(this.zr, serie.radius)[1] - -labelLineControl.length; + var cosValue = zrMath.cos(midAngle, true); + var sinValue = zrMath.sin(midAngle, true); + return new PolylineShape({ + zlevel: serie.zlevel, + z: serie.z + 1, + hoverable: false, + style: { + pointList: [ + [ + centerX + minRadius * cosValue, + centerY - minRadius * sinValue + ], + [ + centerX + maxRadius * cosValue, + centerY - maxRadius * sinValue + ], + [ + data.__labelX, + data.__labelY + ] + ], + strokeColor: lineStyle.color || defaultColor, + lineType: lineStyle.type, + lineWidth: lineStyle.width + }, + _seriesIndex: seriesIndex, + _dataIndex: dataIndex + }); + } else { + return; + } + }, + _needLabel: function (serie, data, isEmphasis) { + return this.deepQuery([ + data, + serie + ], 'itemStyle.' + (isEmphasis ? 'emphasis' : 'normal') + '.label.show'); + }, + _needLabelLine: function (serie, data, isEmphasis) { + return this.deepQuery([ + data, + serie + ], 'itemStyle.' + (isEmphasis ? 'emphasis' : 'normal') + '.labelLine.show'); + }, + _autoLabelLayout: function (sList, center, r) { + var leftList = []; + var rightList = []; + for (var i = 0, l = sList.length; i < l; i++) { + if (sList[i]._labelPosition === 'outer' || sList[i]._labelPosition === 'outside') { + sList[i]._rect._y = sList[i]._rect.y; + if (sList[i]._rect.x < center[0]) { + leftList.push(sList[i]); + } else { + rightList.push(sList[i]); + } + } + } + this._layoutCalculate(leftList, center, r, -1); + this._layoutCalculate(rightList, center, r, 1); + }, + _layoutCalculate: function (tList, center, r, direction) { + tList.sort(function (a, b) { + return a._rect.y - b._rect.y; + }); + function _changeDown(start, end, delta, direction) { + for (var j = start; j < end; j++) { + tList[j]._rect.y += delta; + tList[j].style.y += delta; + if (tList[j]._labelLine) { + tList[j]._labelLine.style.pointList[1][1] += delta; + tList[j]._labelLine.style.pointList[2][1] += delta; + } + if (j > start && j + 1 < end && tList[j + 1]._rect.y > tList[j]._rect.y + tList[j]._rect.height) { + _changeUp(j, delta / 2); + return; + } + } + _changeUp(end - 1, delta / 2); + } + function _changeUp(end, delta) { + for (var j = end; j >= 0; j--) { + tList[j]._rect.y -= delta; + tList[j].style.y -= delta; + if (tList[j]._labelLine) { + tList[j]._labelLine.style.pointList[1][1] -= delta; + tList[j]._labelLine.style.pointList[2][1] -= delta; + } + if (j > 0 && tList[j]._rect.y > tList[j - 1]._rect.y + tList[j - 1]._rect.height) { + break; + } + } + } + function _changeX(sList, isDownList, center, r, direction) { + var x = center[0]; + var y = center[1]; + var deltaX; + var deltaY; + var length; + var lastDeltaX = direction > 0 ? isDownList ? Number.MAX_VALUE : 0 : isDownList ? Number.MAX_VALUE : 0; + for (var i = 0, l = sList.length; i < l; i++) { + deltaY = Math.abs(sList[i]._rect.y - y); + length = sList[i]._radius - r; + deltaX = deltaY < r + length ? Math.sqrt((r + length + 20) * (r + length + 20) - Math.pow(sList[i]._rect.y - y, 2)) : Math.abs(sList[i]._rect.x + (direction > 0 ? 0 : sList[i]._rect.width) - x); + if (isDownList && deltaX >= lastDeltaX) { + deltaX = lastDeltaX - 10; + } + if (!isDownList && deltaX <= lastDeltaX) { + deltaX = lastDeltaX + 10; + } + sList[i]._rect.x = sList[i].style.x = x + deltaX * direction; + if (sList[i]._labelLine) { + sList[i]._labelLine.style.pointList[2][0] = x + (deltaX - 5) * direction; + sList[i]._labelLine.style.pointList[1][0] = x + (deltaX - 20) * direction; + } + lastDeltaX = deltaX; + } + } + var lastY = 0; + var delta; + var len = tList.length; + var upList = []; + var downList = []; + for (var i = 0; i < len; i++) { + delta = tList[i]._rect.y - lastY; + if (delta < 0) { + _changeDown(i, len, -delta, direction); + } + lastY = tList[i]._rect.y + tList[i]._rect.height; + } + if (this.zr.getHeight() - lastY < 0) { + _changeUp(len - 1, lastY - this.zr.getHeight()); + } + for (var i = 0; i < len; i++) { + if (tList[i]._rect.y >= center[1]) { + downList.push(tList[i]); + } else { + upList.push(tList[i]); + } + } + _changeX(downList, true, center, r, direction); + _changeX(upList, false, center, r, direction); + }, + reformOption: function (opt) { + var _merge = zrUtil.merge; + opt = _merge(_merge(opt || {}, zrUtil.clone(this.ecTheme.pie || {})), zrUtil.clone(ecConfig.pie)); + opt.itemStyle.normal.label.textStyle = this.getTextStyle(opt.itemStyle.normal.label.textStyle); + opt.itemStyle.emphasis.label.textStyle = this.getTextStyle(opt.itemStyle.emphasis.label.textStyle); + this.z = opt.z; + this.zlevel = opt.zlevel; + return opt; + }, + refresh: function (newOption) { + if (newOption) { + this.option = newOption; + this.series = newOption.series; + } + this.backupShapeList(); + this._buildShape(); + }, + addDataAnimation: function (params, done) { + var series = this.series; + var aniMap = {}; + for (var i = 0, l = params.length; i < l; i++) { + aniMap[params[i][0]] = params[i]; + } + var aniCount = 0; + function animationDone() { + aniCount--; + if (aniCount === 0) { + done && done(); + } + } + var sectorMap = {}; + var textMap = {}; + var lineMap = {}; + var backupShapeList = this.shapeList; + this.shapeList = []; + var seriesIndex; + var isHead; + var dataGrow; + var deltaIdxMap = {}; + for (var i = 0, l = params.length; i < l; i++) { + seriesIndex = params[i][0]; + isHead = params[i][2]; + dataGrow = params[i][3]; + if (series[seriesIndex] && series[seriesIndex].type === ecConfig.CHART_TYPE_PIE) { + if (isHead) { + if (!dataGrow) { + sectorMap[seriesIndex + '_' + series[seriesIndex].data.length] = 'delete'; + } + deltaIdxMap[seriesIndex] = 1; + } else { + if (!dataGrow) { + sectorMap[seriesIndex + '_-1'] = 'delete'; + deltaIdxMap[seriesIndex] = -1; + } else { + deltaIdxMap[seriesIndex] = 0; + } + } + this._buildSinglePie(seriesIndex); + } + } + var dataIndex; + var key; + for (var i = 0, l = this.shapeList.length; i < l; i++) { + seriesIndex = this.shapeList[i]._seriesIndex; + dataIndex = this.shapeList[i]._dataIndex; + key = seriesIndex + '_' + dataIndex; + switch (this.shapeList[i].type) { + case 'sector': + sectorMap[key] = this.shapeList[i]; + break; + case 'text': + textMap[key] = this.shapeList[i]; + break; + case 'polyline': + lineMap[key] = this.shapeList[i]; + break; + } + } + this.shapeList = []; + var targeSector; + for (var i = 0, l = backupShapeList.length; i < l; i++) { + seriesIndex = backupShapeList[i]._seriesIndex; + if (aniMap[seriesIndex]) { + dataIndex = backupShapeList[i]._dataIndex + deltaIdxMap[seriesIndex]; + key = seriesIndex + '_' + dataIndex; + targeSector = sectorMap[key]; + if (!targeSector) { + continue; + } + if (backupShapeList[i].type === 'sector') { + if (targeSector != 'delete') { + aniCount++; + this.zr.animate(backupShapeList[i].id, 'style').when(400, { + startAngle: targeSector.style.startAngle, + endAngle: targeSector.style.endAngle + }).done(animationDone).start(); + } else { + aniCount++; + this.zr.animate(backupShapeList[i].id, 'style').when(400, deltaIdxMap[seriesIndex] < 0 ? { startAngle: backupShapeList[i].style.startAngle } : { endAngle: backupShapeList[i].style.endAngle }).done(animationDone).start(); + } + } else if (backupShapeList[i].type === 'text' || backupShapeList[i].type === 'polyline') { + if (targeSector === 'delete') { + this.zr.delShape(backupShapeList[i].id); + } else { + switch (backupShapeList[i].type) { + case 'text': + aniCount++; + targeSector = textMap[key]; + this.zr.animate(backupShapeList[i].id, 'style').when(400, { + x: targeSector.style.x, + y: targeSector.style.y + }).done(animationDone).start(); + break; + case 'polyline': + aniCount++; + targeSector = lineMap[key]; + this.zr.animate(backupShapeList[i].id, 'style').when(400, { pointList: targeSector.style.pointList }).done(animationDone).start(); + break; + } + } + } + } + } + this.shapeList = backupShapeList; + if (!aniCount) { + done && done(); + } + }, + onclick: function (param) { + var series = this.series; + if (!this.isClick || !param.target) { + return; + } + this.isClick = false; + var offset; + var target = param.target; + var style = target.style; + var seriesIndex = ecData.get(target, 'seriesIndex'); + var dataIndex = ecData.get(target, 'dataIndex'); + for (var i = 0, len = this.shapeList.length; i < len; i++) { + if (this.shapeList[i].id === target.id) { + seriesIndex = ecData.get(target, 'seriesIndex'); + dataIndex = ecData.get(target, 'dataIndex'); + if (!style._hasSelected) { + var midAngle = ((style.startAngle + style.endAngle) / 2).toFixed(2) - 0; + target.style._hasSelected = true; + this._selected[seriesIndex][dataIndex] = true; + target.style._x = target.style.x; + target.style._y = target.style.y; + offset = this.query(series[seriesIndex], 'selectedOffset'); + target.style.x += zrMath.cos(midAngle, true) * offset; + target.style.y -= zrMath.sin(midAngle, true) * offset; + } else { + target.style.x = target.style._x; + target.style.y = target.style._y; + target.style._hasSelected = false; + this._selected[seriesIndex][dataIndex] = false; + } + this.zr.modShape(target.id); + } else if (this.shapeList[i].style._hasSelected && this._selectedMode === 'single') { + seriesIndex = ecData.get(this.shapeList[i], 'seriesIndex'); + dataIndex = ecData.get(this.shapeList[i], 'dataIndex'); + this.shapeList[i].style.x = this.shapeList[i].style._x; + this.shapeList[i].style.y = this.shapeList[i].style._y; + this.shapeList[i].style._hasSelected = false; + this._selected[seriesIndex][dataIndex] = false; + this.zr.modShape(this.shapeList[i].id); + } + } + this.messageCenter.dispatch(ecConfig.EVENT.PIE_SELECTED, param.event, { + selected: this._selected, + target: ecData.get(target, 'name') + }, this.myChart); + this.zr.refreshNextFrame(); + } + }; + zrUtil.inherits(Pie, ChartBase); + require('../chart').define('pie', Pie); + return Pie; +});define('echarts/chart/radar', [ + 'require', + './base', + 'zrender/shape/Polygon', + '../component/polar', + '../config', + '../util/ecData', + 'zrender/tool/util', + 'zrender/tool/color', + '../util/accMath', + '../chart' +], function (require) { + var ChartBase = require('./base'); + var PolygonShape = require('zrender/shape/Polygon'); + require('../component/polar'); + var ecConfig = require('../config'); + ecConfig.radar = { + zlevel: 0, + z: 2, + clickable: true, + legendHoverLink: true, + polarIndex: 0, + itemStyle: { + normal: { + label: { show: false }, + lineStyle: { + width: 2, + type: 'solid' + } + }, + emphasis: { label: { show: false } } + }, + symbolSize: 2 + }; + var ecData = require('../util/ecData'); + var zrUtil = require('zrender/tool/util'); + var zrColor = require('zrender/tool/color'); + function Radar(ecTheme, messageCenter, zr, option, myChart) { + ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); + this.refresh(option); + } + Radar.prototype = { + type: ecConfig.CHART_TYPE_RADAR, + _buildShape: function () { + this.selectedMap = {}; + this._symbol = this.option.symbolList; + this._queryTarget; + this._dropBoxList = []; + this._radarDataCounter = 0; + var series = this.series; + var legend = this.component.legend; + var serieName; + for (var i = 0, l = series.length; i < l; i++) { + if (series[i].type === ecConfig.CHART_TYPE_RADAR) { + this.serie = this.reformOption(series[i]); + this.legendHoverLink = series[i].legendHoverLink || this.legendHoverLink; + serieName = this.serie.name || ''; + this.selectedMap[serieName] = legend ? legend.isSelected(serieName) : true; + if (this.selectedMap[serieName]) { + this._queryTarget = [ + this.serie, + this.option + ]; + if (this.deepQuery(this._queryTarget, 'calculable')) { + this._addDropBox(i); + } + this._buildSingleRadar(i); + this.buildMark(i); + } + } + } + this.addShapeList(); + }, + _buildSingleRadar: function (index) { + var legend = this.component.legend; + var iconShape; + var data = this.serie.data; + var defaultColor; + var name; + var pointList; + var calculable = this.deepQuery(this._queryTarget, 'calculable'); + for (var i = 0; i < data.length; i++) { + name = data[i].name || ''; + this.selectedMap[name] = legend ? legend.isSelected(name) : true; + if (!this.selectedMap[name]) { + continue; + } + if (legend) { + defaultColor = legend.getColor(name); + iconShape = legend.getItemShape(name); + if (iconShape) { + iconShape.style.brushType = this.deepQuery([ + data[i], + this.serie + ], 'itemStyle.normal.areaStyle') ? 'both' : 'stroke'; + legend.setItemShape(name, iconShape); + } + } else { + defaultColor = this.zr.getColor(i); + } + pointList = this._getPointList(this.serie.polarIndex, data[i]); + this._addSymbol(pointList, defaultColor, i, index, this.serie.polarIndex); + this._addDataShape(pointList, defaultColor, data[i], index, i, calculable); + this._radarDataCounter++; + } + }, + _getPointList: function (polarIndex, dataArr) { + var pointList = []; + var vector; + var polar = this.component.polar; + var value; + for (var i = 0, l = dataArr.value.length; i < l; i++) { + value = this.getDataFromOption(dataArr.value[i]); + vector = value != '-' ? polar.getVector(polarIndex, i, value) : false; + if (vector) { + pointList.push(vector); + } + } + return pointList; + }, + _addSymbol: function (pointList, defaultColor, dataIndex, seriesIndex, polarIndex) { + var series = this.series; + var itemShape; + var polar = this.component.polar; + for (var i = 0, l = pointList.length; i < l; i++) { + itemShape = this.getSymbolShape(this.deepMerge([ + series[seriesIndex].data[dataIndex], + series[seriesIndex] + ]), seriesIndex, series[seriesIndex].data[dataIndex].value[i], i, polar.getIndicatorText(polarIndex, i), pointList[i][0], pointList[i][1], this._symbol[this._radarDataCounter % this._symbol.length], defaultColor, '#fff', 'vertical'); + itemShape.zlevel = this.getZlevelBase(); + itemShape.z = this.getZBase() + 1; + ecData.set(itemShape, 'data', series[seriesIndex].data[dataIndex]); + ecData.set(itemShape, 'value', series[seriesIndex].data[dataIndex].value); + ecData.set(itemShape, 'dataIndex', dataIndex); + ecData.set(itemShape, 'special', i); + this.shapeList.push(itemShape); + } + }, + _addDataShape: function (pointList, defaultColor, data, seriesIndex, dataIndex, calculable) { + var series = this.series; + var queryTarget = [ + data, + this.serie + ]; + var nColor = this.getItemStyleColor(this.deepQuery(queryTarget, 'itemStyle.normal.color'), seriesIndex, dataIndex, data); + var nLineWidth = this.deepQuery(queryTarget, 'itemStyle.normal.lineStyle.width'); + var nLineType = this.deepQuery(queryTarget, 'itemStyle.normal.lineStyle.type'); + var nAreaColor = this.deepQuery(queryTarget, 'itemStyle.normal.areaStyle.color'); + var nIsAreaFill = this.deepQuery(queryTarget, 'itemStyle.normal.areaStyle'); + var shape = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: { + pointList: pointList, + brushType: nIsAreaFill ? 'both' : 'stroke', + color: nAreaColor || nColor || (typeof defaultColor === 'string' ? zrColor.alpha(defaultColor, 0.5) : defaultColor), + strokeColor: nColor || defaultColor, + lineWidth: nLineWidth, + lineType: nLineType + }, + highlightStyle: { + brushType: this.deepQuery(queryTarget, 'itemStyle.emphasis.areaStyle') || nIsAreaFill ? 'both' : 'stroke', + color: this.deepQuery(queryTarget, 'itemStyle.emphasis.areaStyle.color') || nAreaColor || nColor || (typeof defaultColor === 'string' ? zrColor.alpha(defaultColor, 0.5) : defaultColor), + strokeColor: this.getItemStyleColor(this.deepQuery(queryTarget, 'itemStyle.emphasis.color'), seriesIndex, dataIndex, data) || nColor || defaultColor, + lineWidth: this.deepQuery(queryTarget, 'itemStyle.emphasis.lineStyle.width') || nLineWidth, + lineType: this.deepQuery(queryTarget, 'itemStyle.emphasis.lineStyle.type') || nLineType + } + }; + ecData.pack(shape, series[seriesIndex], seriesIndex, data, dataIndex, data.name, this.component.polar.getIndicator(series[seriesIndex].polarIndex)); + if (calculable) { + shape.draggable = true; + this.setCalculable(shape); + } + shape = new PolygonShape(shape); + this.shapeList.push(shape); + }, + _addDropBox: function (index) { + var series = this.series; + var polarIndex = this.deepQuery(this._queryTarget, 'polarIndex'); + if (!this._dropBoxList[polarIndex]) { + var shape = this.component.polar.getDropBox(polarIndex); + shape.zlevel = this.getZlevelBase(); + shape.z = this.getZBase(); + this.setCalculable(shape); + ecData.pack(shape, series, index, undefined, -1); + this.shapeList.push(shape); + this._dropBoxList[polarIndex] = true; + } + }, + ondragend: function (param, status) { + var series = this.series; + if (!this.isDragend || !param.target) { + return; + } + var target = param.target; + var seriesIndex = ecData.get(target, 'seriesIndex'); + var dataIndex = ecData.get(target, 'dataIndex'); + this.component.legend && this.component.legend.del(series[seriesIndex].data[dataIndex].name); + series[seriesIndex].data.splice(dataIndex, 1); + status.dragOut = true; + status.needRefresh = true; + this.isDragend = false; + return; + }, + ondrop: function (param, status) { + var series = this.series; + if (!this.isDrop || !param.target) { + return; + } + var target = param.target; + var dragged = param.dragged; + var seriesIndex = ecData.get(target, 'seriesIndex'); + var dataIndex = ecData.get(target, 'dataIndex'); + var data; + var legend = this.component.legend; + var value; + if (dataIndex === -1) { + data = { + value: ecData.get(dragged, 'value'), + name: ecData.get(dragged, 'name') + }; + series[seriesIndex].data.push(data); + legend && legend.add(data.name, dragged.style.color || dragged.style.strokeColor); + } else { + var accMath = require('../util/accMath'); + data = series[seriesIndex].data[dataIndex]; + legend && legend.del(data.name); + data.name += this.option.nameConnector + ecData.get(dragged, 'name'); + value = ecData.get(dragged, 'value'); + for (var i = 0; i < value.length; i++) { + data.value[i] = accMath.accAdd(data.value[i], value[i]); + } + legend && legend.add(data.name, dragged.style.color || dragged.style.strokeColor); + } + status.dragIn = status.dragIn || true; + this.isDrop = false; + return; + }, + refresh: function (newOption) { + if (newOption) { + this.option = newOption; + this.series = newOption.series; + } + this.backupShapeList(); + this._buildShape(); + } + }; + zrUtil.inherits(Radar, ChartBase); + require('../chart').define('radar', Radar); + return Radar; +});define('echarts/component/polar', [ + 'require', + './base', + 'zrender/shape/Text', + 'zrender/shape/Line', + 'zrender/shape/Polygon', + 'zrender/shape/Circle', + 'zrender/shape/Ring', + '../config', + 'zrender/tool/util', + '../util/coordinates', + '../util/accMath', + '../util/smartSteps', + '../component' +], function (require) { + var Base = require('./base'); + var TextShape = require('zrender/shape/Text'); + var LineShape = require('zrender/shape/Line'); + var PolygonShape = require('zrender/shape/Polygon'); + var Circle = require('zrender/shape/Circle'); + var Ring = require('zrender/shape/Ring'); + var ecConfig = require('../config'); + ecConfig.polar = { + zlevel: 0, + z: 0, + center: [ + '50%', + '50%' + ], + radius: '75%', + startAngle: 90, + boundaryGap: [ + 0, + 0 + ], + splitNumber: 5, + name: { + show: true, + textStyle: { color: '#333' } + }, + axisLine: { + show: true, + lineStyle: { + color: '#ccc', + width: 1, + type: 'solid' + } + }, + axisLabel: { + show: false, + textStyle: { color: '#333' } + }, + splitArea: { + show: true, + areaStyle: { + color: [ + 'rgba(250,250,250,0.3)', + 'rgba(200,200,200,0.3)' + ] + } + }, + splitLine: { + show: true, + lineStyle: { + width: 1, + color: '#ccc' + } + }, + type: 'polygon' + }; + var zrUtil = require('zrender/tool/util'); + var ecCoordinates = require('../util/coordinates'); + function Polar(ecTheme, messageCenter, zr, option, myChart) { + Base.call(this, ecTheme, messageCenter, zr, option, myChart); + this.refresh(option); + } + Polar.prototype = { + type: ecConfig.COMPONENT_TYPE_POLAR, + _buildShape: function () { + for (var i = 0; i < this.polar.length; i++) { + this._index = i; + this.reformOption(this.polar[i]); + this._queryTarget = [ + this.polar[i], + this.option + ]; + this._createVector(i); + this._buildSpiderWeb(i); + this._buildText(i); + this._adjustIndicatorValue(i); + this._addAxisLabel(i); + } + for (var i = 0; i < this.shapeList.length; i++) { + this.zr.addShape(this.shapeList[i]); + } + }, + _createVector: function (index) { + var item = this.polar[index]; + var indicator = this.deepQuery(this._queryTarget, 'indicator'); + var length = indicator.length; + var startAngle = item.startAngle; + var dStep = 2 * Math.PI / length; + var radius = this._getRadius(); + var __ecIndicator = item.__ecIndicator = []; + var vector; + for (var i = 0; i < length; i++) { + vector = ecCoordinates.polar2cartesian(radius, startAngle * Math.PI / 180 + dStep * i); + __ecIndicator.push({ + vector: [ + vector[1], + -vector[0] + ] + }); + } + }, + _getRadius: function () { + var item = this.polar[this._index]; + return this.parsePercent(item.radius, Math.min(this.zr.getWidth(), this.zr.getHeight()) / 2); + }, + _buildSpiderWeb: function (index) { + var item = this.polar[index]; + var __ecIndicator = item.__ecIndicator; + var splitArea = item.splitArea; + var splitLine = item.splitLine; + var center = this.getCenter(index); + var splitNumber = item.splitNumber; + var strokeColor = splitLine.lineStyle.color; + var lineWidth = splitLine.lineStyle.width; + var show = splitLine.show; + var axisLine = this.deepQuery(this._queryTarget, 'axisLine'); + this._addArea(__ecIndicator, splitNumber, center, splitArea, strokeColor, lineWidth, show); + axisLine.show && this._addLine(__ecIndicator, center, axisLine); + }, + _addAxisLabel: function (index) { + var accMath = require('../util/accMath'); + var item = this.polar[index]; + var indicator = this.deepQuery(this._queryTarget, 'indicator'); + var __ecIndicator = item.__ecIndicator; + var axisLabel; + var vector; + var style; + var newStyle; + var splitNumber = this.deepQuery(this._queryTarget, 'splitNumber'); + var center = this.getCenter(index); + var vector; + var value; + var text; + var theta; + var offset; + var interval; + for (var i = 0; i < indicator.length; i++) { + axisLabel = this.deepQuery([ + indicator[i], + item, + this.option + ], 'axisLabel'); + if (axisLabel.show) { + var textStyle = this.deepQuery([ + axisLabel, + item, + this.option + ], 'textStyle'); + var formatter = this.deepQuery([ + axisLabel, + item + ], 'formatter'); + style = {}; + style.textFont = this.getFont(textStyle); + style.color = textStyle.color; + style = zrUtil.merge(style, axisLabel); + style.lineWidth = style.width; + vector = __ecIndicator[i].vector; + value = __ecIndicator[i].value; + theta = i / indicator.length * 2 * Math.PI; + offset = axisLabel.offset || 10; + interval = axisLabel.interval || 0; + if (!value) { + return; + } + for (var j = 1; j <= splitNumber; j += interval + 1) { + newStyle = zrUtil.merge({}, style); + text = accMath.accAdd(value.min, accMath.accMul(value.step, j)); + if (typeof formatter === 'function') { + text = formatter(text); + } else if (typeof formatter === 'string') { + text = formatter.replace('{a}', '{a0}').replace('{a0}', text); + } else { + text = this.numAddCommas(text); + } + newStyle.text = text; + newStyle.x = j * vector[0] / splitNumber + Math.cos(theta) * offset + center[0]; + newStyle.y = j * vector[1] / splitNumber + Math.sin(theta) * offset + center[1]; + this.shapeList.push(new TextShape({ + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: newStyle, + draggable: false, + hoverable: false + })); + } + } + } + }, + _buildText: function (index) { + var item = this.polar[index]; + var __ecIndicator = item.__ecIndicator; + var vector; + var indicator = this.deepQuery(this._queryTarget, 'indicator'); + var center = this.getCenter(index); + var style; + var textAlign; + var name; + var rotation; + var x = 0; + var y = 0; + var margin; + var textStyle; + for (var i = 0; i < indicator.length; i++) { + name = this.deepQuery([ + indicator[i], + item, + this.option + ], 'name'); + if (!name.show) { + continue; + } + textStyle = this.deepQuery([ + name, + item, + this.option + ], 'textStyle'); + style = {}; + style.textFont = this.getFont(textStyle); + style.color = textStyle.color; + if (typeof name.formatter == 'function') { + style.text = name.formatter.call(this.myChart, indicator[i].text, i); + } else if (typeof name.formatter == 'string') { + style.text = name.formatter.replace('{value}', indicator[i].text); + } else { + style.text = indicator[i].text; + } + __ecIndicator[i].text = style.text; + vector = __ecIndicator[i].vector; + if (Math.round(vector[0]) > 0) { + textAlign = 'left'; + } else if (Math.round(vector[0]) < 0) { + textAlign = 'right'; + } else { + textAlign = 'center'; + } + if (name.margin == null) { + vector = this._mapVector(vector, center, 1.1); + } else { + margin = name.margin; + x = vector[0] > 0 ? margin : -margin; + y = vector[1] > 0 ? margin : -margin; + x = vector[0] === 0 ? 0 : x; + y = vector[1] === 0 ? 0 : y; + vector = this._mapVector(vector, center, 1); + } + style.textAlign = textAlign; + style.x = vector[0] + x; + style.y = vector[1] + y; + if (name.rotate) { + rotation = [ + name.rotate / 180 * Math.PI, + vector[0], + vector[1] + ]; + } else { + rotation = [ + 0, + 0, + 0 + ]; + } + this.shapeList.push(new TextShape({ + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: style, + draggable: false, + hoverable: false, + rotation: rotation + })); + } + }, + getIndicatorText: function (polarIndex, indicatorIndex) { + return this.polar[polarIndex] && this.polar[polarIndex].__ecIndicator[indicatorIndex] && this.polar[polarIndex].__ecIndicator[indicatorIndex].text; + }, + getDropBox: function (index) { + var index = index || 0; + var item = this.polar[index]; + var center = this.getCenter(index); + var __ecIndicator = item.__ecIndicator; + var len = __ecIndicator.length; + var pointList = []; + var vector; + var shape; + var type = item.type; + if (type == 'polygon') { + for (var i = 0; i < len; i++) { + vector = __ecIndicator[i].vector; + pointList.push(this._mapVector(vector, center, 1.2)); + } + shape = this._getShape(pointList, 'fill', 'rgba(0,0,0,0)', '', 1); + } else if (type == 'circle') { + shape = this._getCircle('', 1, 1.2, center, 'fill', 'rgba(0,0,0,0)'); + } + return shape; + }, + _addArea: function (__ecIndicator, splitNumber, center, splitArea, strokeColor, lineWidth, show) { + var shape; + var scale; + var scale1; + var pointList; + var type = this.deepQuery(this._queryTarget, 'type'); + for (var i = 0; i < splitNumber; i++) { + scale = (splitNumber - i) / splitNumber; + if (show) { + if (type == 'polygon') { + pointList = this._getPointList(__ecIndicator, scale, center); + shape = this._getShape(pointList, 'stroke', '', strokeColor, lineWidth); + } else if (type == 'circle') { + shape = this._getCircle(strokeColor, lineWidth, scale, center, 'stroke'); + } + this.shapeList.push(shape); + } + if (splitArea.show) { + scale1 = (splitNumber - i - 1) / splitNumber; + this._addSplitArea(__ecIndicator, splitArea, scale, scale1, center, i); + } + } + }, + _getCircle: function (strokeColor, lineWidth, scale, center, brushType, color) { + var radius = this._getRadius(); + return new Circle({ + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: { + x: center[0], + y: center[1], + r: radius * scale, + brushType: brushType, + strokeColor: strokeColor, + lineWidth: lineWidth, + color: color + }, + hoverable: false, + draggable: false + }); + }, + _getRing: function (color, scale0, scale1, center) { + var radius = this._getRadius(); + return new Ring({ + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: { + x: center[0], + y: center[1], + r: scale0 * radius, + r0: scale1 * radius, + color: color, + brushType: 'fill' + }, + hoverable: false, + draggable: false + }); + }, + _getPointList: function (__ecIndicator, scale, center) { + var pointList = []; + var len = __ecIndicator.length; + var vector; + for (var i = 0; i < len; i++) { + vector = __ecIndicator[i].vector; + pointList.push(this._mapVector(vector, center, scale)); + } + return pointList; + }, + _getShape: function (pointList, brushType, color, strokeColor, lineWidth) { + return new PolygonShape({ + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: { + pointList: pointList, + brushType: brushType, + color: color, + strokeColor: strokeColor, + lineWidth: lineWidth + }, + hoverable: false, + draggable: false + }); + }, + _addSplitArea: function (__ecIndicator, splitArea, scale, scale1, center, colorInd) { + var indLen = __ecIndicator.length; + var color; + var colorArr = splitArea.areaStyle.color; + var colorLen; + var vector; + var vector1; + var pointList = []; + var indLen = __ecIndicator.length; + var shape; + var type = this.deepQuery(this._queryTarget, 'type'); + if (typeof colorArr == 'string') { + colorArr = [colorArr]; + } + colorLen = colorArr.length; + color = colorArr[colorInd % colorLen]; + if (type == 'polygon') { + for (var i = 0; i < indLen; i++) { + pointList = []; + vector = __ecIndicator[i].vector; + vector1 = __ecIndicator[(i + 1) % indLen].vector; + pointList.push(this._mapVector(vector, center, scale)); + pointList.push(this._mapVector(vector, center, scale1)); + pointList.push(this._mapVector(vector1, center, scale1)); + pointList.push(this._mapVector(vector1, center, scale)); + shape = this._getShape(pointList, 'fill', color, '', 1); + this.shapeList.push(shape); + } + } else if (type == 'circle') { + shape = this._getRing(color, scale, scale1, center); + this.shapeList.push(shape); + } + }, + _mapVector: function (vector, center, scale) { + return [ + vector[0] * scale + center[0], + vector[1] * scale + center[1] + ]; + }, + getCenter: function (index) { + var index = index || 0; + return this.parseCenter(this.zr, this.polar[index].center); + }, + _addLine: function (__ecIndicator, center, axisLine) { + var indLen = __ecIndicator.length; + var line; + var vector; + var lineStyle = axisLine.lineStyle; + var strokeColor = lineStyle.color; + var lineWidth = lineStyle.width; + var lineType = lineStyle.type; + for (var i = 0; i < indLen; i++) { + vector = __ecIndicator[i].vector; + line = this._getLine(center[0], center[1], vector[0] + center[0], vector[1] + center[1], strokeColor, lineWidth, lineType); + this.shapeList.push(line); + } + }, + _getLine: function (xStart, yStart, xEnd, yEnd, strokeColor, lineWidth, lineType) { + return new LineShape({ + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: { + xStart: xStart, + yStart: yStart, + xEnd: xEnd, + yEnd: yEnd, + strokeColor: strokeColor, + lineWidth: lineWidth, + lineType: lineType + }, + hoverable: false + }); + }, + _adjustIndicatorValue: function (index) { + var item = this.polar[index]; + var indicator = this.deepQuery(this._queryTarget, 'indicator'); + var len = indicator.length; + var __ecIndicator = item.__ecIndicator; + var max; + var min; + var data = this._getSeriesData(index); + var boundaryGap = item.boundaryGap; + var splitNumber = item.splitNumber; + var scale = item.scale; + var opts; + var smartSteps = require('../util/smartSteps'); + for (var i = 0; i < len; i++) { + if (typeof indicator[i].max == 'number') { + max = indicator[i].max; + min = indicator[i].min || 0; + opts = { + max: max, + min: min + }; + } else { + var value = this._findValue(data, i, splitNumber, boundaryGap); + min = value.min; + max = value.max; + } + if (!scale && min >= 0 && max >= 0) { + min = 0; + } + if (!scale && min <= 0 && max <= 0) { + max = 0; + } + var stepOpt = smartSteps(min, max, splitNumber, opts); + __ecIndicator[i].value = { + min: stepOpt.min, + max: stepOpt.max, + step: stepOpt.step + }; + } + }, + _getSeriesData: function (index) { + var data = []; + var serie; + var serieData; + var legend = this.component.legend; + var polarIndex; + for (var i = 0; i < this.series.length; i++) { + serie = this.series[i]; + if (serie.type != ecConfig.CHART_TYPE_RADAR) { + continue; + } + serieData = serie.data || []; + for (var j = 0; j < serieData.length; j++) { + polarIndex = this.deepQuery([ + serieData[j], + serie, + this.option + ], 'polarIndex') || 0; + if (polarIndex == index && (!legend || legend.isSelected(serieData[j].name))) { + data.push(serieData[j]); + } + } + } + return data; + }, + _findValue: function (data, index, splitNumber, boundaryGap) { + var max; + var min; + var one; + if (!data || data.length === 0) { + return; + } + function _compare(item) { + (item > max || max === undefined) && (max = item); + (item < min || min === undefined) && (min = item); + } + if (data.length == 1) { + min = 0; + } + if (data.length != 1) { + for (var i = 0; i < data.length; i++) { + _compare(this.getDataFromOption(data[i].value[index])); + } + } else { + one = data[0]; + for (var i = 0; i < one.value.length; i++) { + _compare(this.getDataFromOption(one.value[i])); + } + } + var gap = Math.abs(max - min); + min = min - Math.abs(gap * boundaryGap[0]); + max = max + Math.abs(gap * boundaryGap[1]); + if (min === max) { + if (max === 0) { + max = 1; + } else if (max > 0) { + min = max / splitNumber; + } else { + max = max / splitNumber; + } + } + return { + max: max, + min: min + }; + }, + getVector: function (polarIndex, indicatorIndex, value) { + polarIndex = polarIndex || 0; + indicatorIndex = indicatorIndex || 0; + var __ecIndicator = this.polar[polarIndex].__ecIndicator; + if (indicatorIndex >= __ecIndicator.length) { + return; + } + var indicator = this.polar[polarIndex].__ecIndicator[indicatorIndex]; + var center = this.getCenter(polarIndex); + var vector = indicator.vector; + var max = indicator.value.max; + var min = indicator.value.min; + var alpha; + if (typeof value == 'undefined') { + return center; + } + switch (value) { + case 'min': + value = min; + break; + case 'max': + value = max; + break; + case 'center': + value = (max + min) / 2; + break; + } + if (max != min) { + alpha = (value - min) / (max - min); + } else { + alpha = 0.5; + } + return this._mapVector(vector, center, alpha); + }, + isInside: function (vector) { + var polar = this.getNearestIndex(vector); + if (polar) { + return polar.polarIndex; + } + return -1; + }, + getNearestIndex: function (vector) { + var item; + var center; + var radius; + var polarVector; + var startAngle; + var indicator; + var len; + var angle; + var finalAngle; + for (var i = 0; i < this.polar.length; i++) { + item = this.polar[i]; + center = this.getCenter(i); + if (vector[0] == center[0] && vector[1] == center[1]) { + return { + polarIndex: i, + valueIndex: 0 + }; + } + radius = this._getRadius(); + startAngle = item.startAngle; + indicator = item.indicator; + len = indicator.length; + angle = 2 * Math.PI / len; + polarVector = ecCoordinates.cartesian2polar(vector[0] - center[0], center[1] - vector[1]); + if (vector[0] - center[0] < 0) { + polarVector[1] += Math.PI; + } + if (polarVector[1] < 0) { + polarVector[1] += 2 * Math.PI; + } + finalAngle = polarVector[1] - startAngle / 180 * Math.PI + Math.PI * 2; + if (Math.abs(Math.cos(finalAngle % (angle / 2))) * radius > polarVector[0]) { + return { + polarIndex: i, + valueIndex: Math.floor((finalAngle + angle / 2) / angle) % len + }; + } + } + }, + getIndicator: function (index) { + var index = index || 0; + return this.polar[index].indicator; + }, + refresh: function (newOption) { + if (newOption) { + this.option = newOption; + this.polar = this.option.polar; + this.series = this.option.series; + } + this.clear(); + this._buildShape(); + } + }; + zrUtil.inherits(Polar, Base); + require('../component').define('polar', Polar); + return Polar; +});define('echarts/util/coordinates', [ + 'require', + 'zrender/tool/math' +], function (require) { + var zrMath = require('zrender/tool/math'); + function polar2cartesian(r, theta) { + return [ + r * zrMath.sin(theta), + r * zrMath.cos(theta) + ]; + } + function cartesian2polar(x, y) { + return [ + Math.sqrt(x * x + y * y), + Math.atan(y / x) + ]; + } + return { + polar2cartesian: polar2cartesian, + cartesian2polar: cartesian2polar + }; +});define('echarts/chart/chord', [ + 'require', + './base', + 'zrender/shape/Text', + 'zrender/shape/Line', + 'zrender/shape/Sector', + '../util/shape/Ribbon', + '../util/shape/Icon', + 'zrender/shape/BezierCurve', + '../config', + '../util/ecData', + 'zrender/tool/util', + 'zrender/tool/vector', + '../data/Graph', + '../layout/Chord', + '../chart' +], function (require) { + 'use strict'; + var ChartBase = require('./base'); + var TextShape = require('zrender/shape/Text'); + var LineShape = require('zrender/shape/Line'); + var SectorShape = require('zrender/shape/Sector'); + var RibbonShape = require('../util/shape/Ribbon'); + var IconShape = require('../util/shape/Icon'); + var BezierCurveShape = require('zrender/shape/BezierCurve'); + var ecConfig = require('../config'); + ecConfig.chord = { + zlevel: 0, + z: 2, + clickable: true, + radius: [ + '65%', + '75%' + ], + center: [ + '50%', + '50%' + ], + padding: 2, + sort: 'none', + sortSub: 'none', + startAngle: 90, + clockWise: true, + ribbonType: true, + minRadius: 10, + maxRadius: 20, + symbol: 'circle', + showScale: false, + showScaleText: false, + itemStyle: { + normal: { + borderWidth: 0, + borderColor: '#000', + label: { + show: true, + rotate: false, + distance: 5 + }, + chordStyle: { + width: 1, + color: 'black', + borderWidth: 1, + borderColor: '#999', + opacity: 0.5 + } + }, + emphasis: { + borderWidth: 0, + borderColor: '#000', + chordStyle: { + width: 1, + color: 'black', + borderWidth: 1, + borderColor: '#999' + } + } + } + }; + var ecData = require('../util/ecData'); + var zrUtil = require('zrender/tool/util'); + var vec2 = require('zrender/tool/vector'); + var Graph = require('../data/Graph'); + var ChordLayout = require('../layout/Chord'); + function Chord(ecTheme, messageCenter, zr, option, myChart) { + ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); + this.scaleLineLength = 4; + this.scaleUnitAngle = 4; + this.refresh(option); + } + Chord.prototype = { + type: ecConfig.CHART_TYPE_CHORD, + _init: function () { + var series = this.series; + this.selectedMap = {}; + var chordSeriesMap = {}; + var chordSeriesGroups = {}; + for (var i = 0, l = series.length; i < l; i++) { + if (series[i].type === this.type) { + var _isSelected = this.isSelected(series[i].name); + this.selectedMap[series[i].name] = _isSelected; + if (_isSelected) { + this.buildMark(i); + } + this.reformOption(series[i]); + chordSeriesMap[series[i].name] = series[i]; + } + } + for (var i = 0, l = series.length; i < l; i++) { + if (series[i].type === this.type) { + if (series[i].insertToSerie) { + var referenceSerie = chordSeriesMap[series[i].insertToSerie]; + series[i]._referenceSerie = referenceSerie; + } else { + chordSeriesGroups[series[i].name] = [series[i]]; + } + } + } + for (var i = 0, l = series.length; i < l; i++) { + if (series[i].type === this.type) { + if (series[i].insertToSerie) { + var mainSerie = series[i]._referenceSerie; + while (mainSerie && mainSerie._referenceSerie) { + mainSerie = mainSerie._referenceSerie; + } + if (chordSeriesGroups[mainSerie.name] && this.selectedMap[series[i].name]) { + chordSeriesGroups[mainSerie.name].push(series[i]); + } + } + } + } + for (var name in chordSeriesGroups) { + this._buildChords(chordSeriesGroups[name]); + } + this.addShapeList(); + }, + _getNodeCategory: function (serie, group) { + return serie.categories && serie.categories[group.category || 0]; + }, + _getNodeQueryTarget: function (serie, group) { + var category = this._getNodeCategory(serie, group); + return [ + group, + category, + serie + ]; + }, + _getEdgeQueryTarget: function (serie, edge, type) { + type = type || 'normal'; + return [ + edge.itemStyle && edge.itemStyle[type], + serie.itemStyle[type].chordStyle + ]; + }, + _buildChords: function (series) { + var graphs = []; + var mainSerie = series[0]; + var nodeFilter = function (n) { + return n.layout.size > 0; + }; + var createEdgeFilter = function (graph) { + return function (e) { + return graph.getEdge(e.node2, e.node1); + }; + }; + for (var i = 0; i < series.length; i++) { + var serie = series[i]; + if (this.selectedMap[serie.name]) { + var graph; + if (serie.matrix) { + graph = this._getSerieGraphFromDataMatrix(serie, mainSerie); + } else if (serie.links) { + graph = this._getSerieGraphFromNodeLinks(serie, mainSerie); + } + graph.filterNode(nodeFilter, this); + if (serie.ribbonType) { + graph.filterEdge(createEdgeFilter(graph)); + } + graphs.push(graph); + graph.__serie = serie; + } + } + if (!graphs.length) { + return; + } + var mainGraph = graphs[0]; + if (!mainSerie.ribbonType) { + var minRadius = mainSerie.minRadius; + var maxRadius = mainSerie.maxRadius; + var min = Infinity, max = -Infinity; + mainGraph.eachNode(function (node) { + max = Math.max(node.layout.size, max); + min = Math.min(node.layout.size, min); + }); + var multiplier = (maxRadius - minRadius) / (max - min); + mainGraph.eachNode(function (node) { + var queryTarget = this._getNodeQueryTarget(mainSerie, node); + var symbolSize = this.query(queryTarget, 'symbolSize'); + if (max === min) { + node.layout.size = symbolSize || min; + } else { + node.layout.size = symbolSize || (node.layout.size - min) * multiplier + minRadius; + } + }, this); + } + var layout = new ChordLayout(); + layout.clockWise = mainSerie.clockWise; + layout.startAngle = mainSerie.startAngle * Math.PI / 180; + if (!layout.clockWise) { + layout.startAngle = -layout.startAngle; + } + layout.padding = mainSerie.padding * Math.PI / 180; + layout.sort = mainSerie.sort; + layout.sortSub = mainSerie.sortSub; + layout.directed = mainSerie.ribbonType; + layout.run(graphs); + var showLabel = this.query(mainSerie, 'itemStyle.normal.label.show'); + if (mainSerie.ribbonType) { + this._buildSectors(mainSerie, 0, mainGraph, mainSerie, graphs); + if (showLabel) { + this._buildLabels(mainSerie, 0, mainGraph, mainSerie, graphs); + } + for (var i = 0, j = 0; i < series.length; i++) { + if (this.selectedMap[series[i].name]) { + this._buildRibbons(series, i, graphs[j++], mainSerie); + } + } + if (mainSerie.showScale) { + this._buildScales(mainSerie, 0, mainGraph); + } + } else { + this._buildNodeIcons(mainSerie, 0, mainGraph, mainSerie, graphs); + if (showLabel) { + this._buildLabels(mainSerie, 0, mainGraph, mainSerie, graphs); + } + for (var i = 0, j = 0; i < series.length; i++) { + if (this.selectedMap[series[i].name]) { + this._buildEdgeCurves(series, i, graphs[j++], mainSerie, mainGraph); + } + } + } + this._initHoverHandler(series, graphs); + }, + _getSerieGraphFromDataMatrix: function (serie, mainSerie) { + var nodesData = []; + var count = 0; + var matrix = []; + for (var i = 0; i < serie.matrix.length; i++) { + matrix[i] = serie.matrix[i].slice(); + } + var data = serie.data || serie.nodes; + for (var i = 0; i < data.length; i++) { + var node = {}; + var group = data[i]; + group.rawIndex = i; + for (var key in group) { + if (key === 'name') { + node['id'] = group['name']; + } else { + node[key] = group[key]; + } + } + var category = this._getNodeCategory(mainSerie, group); + var name = category ? category.name : group.name; + this.selectedMap[name] = this.isSelected(name); + if (this.selectedMap[name]) { + nodesData.push(node); + count++; + } else { + matrix.splice(count, 1); + for (var j = 0; j < matrix.length; j++) { + matrix[j].splice(count, 1); + } + } + } + var graph = Graph.fromMatrix(nodesData, matrix, true); + graph.eachNode(function (n, idx) { + n.layout = { size: n.data.outValue }; + n.rawIndex = n.data.rawIndex; + }); + graph.eachEdge(function (e) { + e.layout = { weight: e.data.weight }; + }); + return graph; + }, + _getSerieGraphFromNodeLinks: function (serie, mainSerie) { + var graph = new Graph(true); + var nodes = serie.data || serie.nodes; + for (var i = 0, len = nodes.length; i < len; i++) { + var n = nodes[i]; + if (!n || n.ignore) { + continue; + } + var category = this._getNodeCategory(mainSerie, n); + var name = category ? category.name : n.name; + this.selectedMap[name] = this.isSelected(name); + if (this.selectedMap[name]) { + var node = graph.addNode(n.name, n); + node.rawIndex = i; + } + } + for (var i = 0, len = serie.links.length; i < len; i++) { + var e = serie.links[i]; + var n1 = e.source; + var n2 = e.target; + if (typeof n1 === 'number') { + n1 = nodes[n1]; + if (n1) { + n1 = n1.name; + } + } + if (typeof n2 === 'number') { + n2 = nodes[n2]; + if (n2) { + n2 = n2.name; + } + } + var edge = graph.addEdge(n1, n2, e); + if (edge) { + edge.rawIndex = i; + } + } + graph.eachNode(function (n) { + var value = n.data.value; + if (value == null) { + value = 0; + if (mainSerie.ribbonType) { + for (var i = 0; i < n.outEdges.length; i++) { + value += n.outEdges[i].data.weight || 0; + } + } else { + for (var i = 0; i < n.edges.length; i++) { + value += n.edges[i].data.weight || 0; + } + } + } + n.layout = { size: value }; + }); + graph.eachEdge(function (e) { + e.layout = { weight: e.data.weight == null ? 1 : e.data.weight }; + }); + return graph; + }, + _initHoverHandler: function (series, graphs) { + var mainSerie = series[0]; + var mainGraph = graphs[0]; + var self = this; + mainGraph.eachNode(function (node) { + node.shape.onmouseover = function () { + mainGraph.eachNode(function (n) { + n.shape.style.opacity = 0.1; + if (n.labelShape) { + n.labelShape.style.opacity = 0.1; + n.labelShape.modSelf(); + } + n.shape.modSelf(); + }); + for (var i = 0; i < graphs.length; i++) { + for (var j = 0; j < graphs[i].edges.length; j++) { + var e = graphs[i].edges[j]; + var queryTarget = self._getEdgeQueryTarget(graphs[i].__serie, e.data); + e.shape.style.opacity = self.deepQuery(queryTarget, 'opacity') * 0.1; + e.shape.modSelf(); + } + } + node.shape.style.opacity = 1; + if (node.labelShape) { + node.labelShape.style.opacity = 1; + } + for (var i = 0; i < graphs.length; i++) { + var n = graphs[i].getNodeById(node.id); + if (n) { + for (var j = 0; j < n.outEdges.length; j++) { + var e = n.outEdges[j]; + var queryTarget = self._getEdgeQueryTarget(graphs[i].__serie, e.data); + e.shape.style.opacity = self.deepQuery(queryTarget, 'opacity'); + var other = graphs[0].getNodeById(e.node2.id); + if (other) { + if (other.shape) { + other.shape.style.opacity = 1; + } + if (other.labelShape) { + other.labelShape.style.opacity = 1; + } + } + } + } + } + self.zr.refreshNextFrame(); + }; + node.shape.onmouseout = function () { + mainGraph.eachNode(function (n) { + n.shape.style.opacity = 1; + if (n.labelShape) { + n.labelShape.style.opacity = 1; + n.labelShape.modSelf(); + } + n.shape.modSelf(); + }); + for (var i = 0; i < graphs.length; i++) { + for (var j = 0; j < graphs[i].edges.length; j++) { + var e = graphs[i].edges[j]; + var queryTarget = [ + e.data, + mainSerie + ]; + e.shape.style.opacity = self.deepQuery(queryTarget, 'itemStyle.normal.chordStyle.opacity'); + e.shape.modSelf(); + } + } + self.zr.refreshNextFrame(); + }; + }); + }, + _buildSectors: function (serie, serieIdx, graph, mainSerie) { + var center = this.parseCenter(this.zr, mainSerie.center); + var radius = this.parseRadius(this.zr, mainSerie.radius); + var clockWise = mainSerie.clockWise; + var sign = clockWise ? 1 : -1; + graph.eachNode(function (node) { + var category = this._getNodeCategory(mainSerie, node.data); + var color = category ? this.getColor(category.name) : this.getColor(node.id); + var startAngle = node.layout.startAngle / Math.PI * 180 * sign; + var endAngle = node.layout.endAngle / Math.PI * 180 * sign; + var sector = new SectorShape({ + zlevel: serie.zlevel, + z: serie.z, + style: { + x: center[0], + y: center[1], + r0: radius[0], + r: radius[1], + startAngle: startAngle, + endAngle: endAngle, + brushType: 'fill', + opacity: 1, + color: color, + clockWise: clockWise + }, + clickable: mainSerie.clickable, + highlightStyle: { brushType: 'fill' } + }); + sector.style.lineWidth = this.deepQuery([ + node.data, + mainSerie + ], 'itemStyle.normal.borderWidth'); + sector.highlightStyle.lineWidth = this.deepQuery([ + node.data, + mainSerie + ], 'itemStyle.emphasis.borderWidth'); + sector.style.strokeColor = this.deepQuery([ + node.data, + mainSerie + ], 'itemStyle.normal.borderColor'); + sector.highlightStyle.strokeColor = this.deepQuery([ + node.data, + mainSerie + ], 'itemStyle.emphasis.borderColor'); + if (sector.style.lineWidth > 0) { + sector.style.brushType = 'both'; + } + if (sector.highlightStyle.lineWidth > 0) { + sector.highlightStyle.brushType = 'both'; + } + ecData.pack(sector, serie, serieIdx, node.data, node.rawIndex, node.id, node.category); + this.shapeList.push(sector); + node.shape = sector; + }, this); + }, + _buildNodeIcons: function (serie, serieIdx, graph, mainSerie) { + var center = this.parseCenter(this.zr, mainSerie.center); + var radius = this.parseRadius(this.zr, mainSerie.radius); + var r = radius[1]; + graph.eachNode(function (node) { + var startAngle = node.layout.startAngle; + var endAngle = node.layout.endAngle; + var angle = (startAngle + endAngle) / 2; + var x = r * Math.cos(angle); + var y = r * Math.sin(angle); + var queryTarget = this._getNodeQueryTarget(mainSerie, node.data); + var category = this._getNodeCategory(mainSerie, node.data); + var color = this.deepQuery(queryTarget, 'itemStyle.normal.color'); + if (!color) { + color = category ? this.getColor(category.name) : this.getColor(node.id); + } + var iconShape = new IconShape({ + zlevel: serie.zlevel, + z: serie.z + 1, + style: { + x: -node.layout.size, + y: -node.layout.size, + width: node.layout.size * 2, + height: node.layout.size * 2, + iconType: this.deepQuery(queryTarget, 'symbol'), + color: color, + brushType: 'both', + lineWidth: this.deepQuery(queryTarget, 'itemStyle.normal.borderWidth'), + strokeColor: this.deepQuery(queryTarget, 'itemStyle.normal.borderColor') + }, + highlightStyle: { + color: this.deepQuery(queryTarget, 'itemStyle.emphasis.color'), + lineWidth: this.deepQuery(queryTarget, 'itemStyle.emphasis.borderWidth'), + strokeColor: this.deepQuery(queryTarget, 'itemStyle.emphasis.borderColor') + }, + clickable: mainSerie.clickable, + position: [ + x + center[0], + y + center[1] + ] + }); + ecData.pack(iconShape, serie, serieIdx, node.data, node.rawIndex, node.id, node.category); + this.shapeList.push(iconShape); + node.shape = iconShape; + }, this); + }, + _buildLabels: function (serie, serieIdx, graph, mainSerie) { + var rotateLabel = this.query(mainSerie, 'itemStyle.normal.label.rotate'); + var labelDistance = this.query(mainSerie, 'itemStyle.normal.label.distance'); + var center = this.parseCenter(this.zr, mainSerie.center); + var radius = this.parseRadius(this.zr, mainSerie.radius); + var clockWise = mainSerie.clockWise; + var sign = clockWise ? 1 : -1; + graph.eachNode(function (node) { + var startAngle = node.layout.startAngle / Math.PI * 180 * sign; + var endAngle = node.layout.endAngle / Math.PI * 180 * sign; + var angle = (startAngle * -sign + endAngle * -sign) / 2; + angle %= 360; + if (angle < 0) { + angle += 360; + } + var isRightSide = angle <= 90 || angle >= 270; + angle = angle * Math.PI / 180; + var v = [ + Math.cos(angle), + -Math.sin(angle) + ]; + var distance = 0; + if (mainSerie.ribbonType) { + distance = mainSerie.showScaleText ? 35 + labelDistance : labelDistance; + } else { + distance = labelDistance + node.layout.size; + } + var start = vec2.scale([], v, radius[1] + distance); + vec2.add(start, start, center); + var labelShape = { + zlevel: serie.zlevel, + z: serie.z + 1, + hoverable: false, + style: { + text: node.data.label == null ? node.id : node.data.label, + textAlign: isRightSide ? 'left' : 'right' + } + }; + if (rotateLabel) { + labelShape.rotation = isRightSide ? angle : Math.PI + angle; + if (isRightSide) { + labelShape.style.x = radius[1] + distance; + } else { + labelShape.style.x = -radius[1] - distance; + } + labelShape.style.y = 0; + labelShape.position = center.slice(); + } else { + labelShape.style.x = start[0]; + labelShape.style.y = start[1]; + } + labelShape.style.color = this.deepQuery([ + node.data, + mainSerie + ], 'itemStyle.normal.label.textStyle.color') || '#000000'; + labelShape.style.textFont = this.getFont(this.deepQuery([ + node.data, + mainSerie + ], 'itemStyle.normal.label.textStyle')); + labelShape = new TextShape(labelShape); + this.shapeList.push(labelShape); + node.labelShape = labelShape; + }, this); + }, + _buildRibbons: function (series, serieIdx, graph, mainSerie) { + var serie = series[serieIdx]; + var center = this.parseCenter(this.zr, mainSerie.center); + var radius = this.parseRadius(this.zr, mainSerie.radius); + graph.eachEdge(function (edge, idx) { + var color; + var other = graph.getEdge(edge.node2, edge.node1); + if (!other || edge.shape) { + return; + } + if (other.shape) { + edge.shape = other.shape; + return; + } + var s0 = edge.layout.startAngle / Math.PI * 180; + var s1 = edge.layout.endAngle / Math.PI * 180; + var t0 = other.layout.startAngle / Math.PI * 180; + var t1 = other.layout.endAngle / Math.PI * 180; + if (series.length === 1) { + if (edge.layout.weight <= other.layout.weight) { + color = this.getColor(edge.node1.id); + } else { + color = this.getColor(edge.node2.id); + } + } else { + color = this.getColor(serie.name); + } + var queryTarget = this._getEdgeQueryTarget(serie, edge.data); + var queryTargetEmphasis = this._getEdgeQueryTarget(serie, edge.data, 'emphasis'); + var ribbon = new RibbonShape({ + zlevel: serie.zlevel, + z: serie.z, + style: { + x: center[0], + y: center[1], + r: radius[0], + source0: s0, + source1: s1, + target0: t0, + target1: t1, + brushType: 'both', + opacity: this.deepQuery(queryTarget, 'opacity'), + color: color, + lineWidth: this.deepQuery(queryTarget, 'borderWidth'), + strokeColor: this.deepQuery(queryTarget, 'borderColor'), + clockWise: mainSerie.clockWise + }, + clickable: mainSerie.clickable, + highlightStyle: { + brushType: 'both', + opacity: this.deepQuery(queryTargetEmphasis, 'opacity'), + lineWidth: this.deepQuery(queryTargetEmphasis, 'borderWidth'), + strokeColor: this.deepQuery(queryTargetEmphasis, 'borderColor') + } + }); + var node1, node2; + if (edge.layout.weight <= other.layout.weight) { + node1 = other.node1; + node2 = other.node2; + } else { + node1 = edge.node1; + node2 = edge.node2; + } + ecData.pack(ribbon, serie, serieIdx, edge.data, edge.rawIndex == null ? idx : edge.rawIndex, edge.data.name || node1.id + '-' + node2.id, node1.id, node2.id); + this.shapeList.push(ribbon); + edge.shape = ribbon; + }, this); + }, + _buildEdgeCurves: function (series, serieIdx, graph, mainSerie, mainGraph) { + var serie = series[serieIdx]; + var center = this.parseCenter(this.zr, mainSerie.center); + graph.eachEdge(function (e, idx) { + var node1 = mainGraph.getNodeById(e.node1.id); + var node2 = mainGraph.getNodeById(e.node2.id); + var shape1 = node1.shape; + var shape2 = node2.shape; + var queryTarget = this._getEdgeQueryTarget(serie, e.data); + var queryTargetEmphasis = this._getEdgeQueryTarget(serie, e.data, 'emphasis'); + var curveShape = new BezierCurveShape({ + zlevel: serie.zlevel, + z: serie.z, + style: { + xStart: shape1.position[0], + yStart: shape1.position[1], + xEnd: shape2.position[0], + yEnd: shape2.position[1], + cpX1: center[0], + cpY1: center[1], + lineWidth: this.deepQuery(queryTarget, 'width'), + strokeColor: this.deepQuery(queryTarget, 'color'), + opacity: this.deepQuery(queryTarget, 'opacity') + }, + highlightStyle: { + lineWidth: this.deepQuery(queryTargetEmphasis, 'width'), + strokeColor: this.deepQuery(queryTargetEmphasis, 'color'), + opacity: this.deepQuery(queryTargetEmphasis, 'opacity') + } + }); + ecData.pack(curveShape, serie, serieIdx, e.data, e.rawIndex == null ? idx : e.rawIndex, e.data.name || e.node1.id + '-' + e.node2.id, e.node1.id, e.node2.id); + this.shapeList.push(curveShape); + e.shape = curveShape; + }, this); + }, + _buildScales: function (serie, serieIdx, graph) { + var clockWise = serie.clockWise; + var center = this.parseCenter(this.zr, serie.center); + var radius = this.parseRadius(this.zr, serie.radius); + var sign = clockWise ? 1 : -1; + var sumValue = 0; + var maxValue = -Infinity; + var unitPostfix; + var unitScale; + if (serie.showScaleText) { + graph.eachNode(function (node) { + var val = node.data.value; + if (val > maxValue) { + maxValue = val; + } + sumValue += val; + }); + if (maxValue > 10000000000) { + unitPostfix = 'b'; + unitScale = 1e-9; + } else if (maxValue > 10000000) { + unitPostfix = 'm'; + unitScale = 0.000001; + } else if (maxValue > 10000) { + unitPostfix = 'k'; + unitScale = 0.001; + } else { + unitPostfix = ''; + unitScale = 1; + } + } + var unitValue = sumValue / (360 - serie.padding); + graph.eachNode(function (node) { + var startAngle = node.layout.startAngle / Math.PI * 180; + var endAngle = node.layout.endAngle / Math.PI * 180; + var scaleAngle = startAngle; + while (true) { + if (clockWise && scaleAngle > endAngle || !clockWise && scaleAngle < endAngle) { + break; + } + var theta = scaleAngle / 180 * Math.PI; + var v = [ + Math.cos(theta), + Math.sin(theta) + ]; + var start = vec2.scale([], v, radius[1] + 1); + vec2.add(start, start, center); + var end = vec2.scale([], v, radius[1] + this.scaleLineLength); + vec2.add(end, end, center); + var scaleShape = new LineShape({ + zlevel: serie.zlevel, + z: serie.z - 1, + hoverable: false, + style: { + xStart: start[0], + yStart: start[1], + xEnd: end[0], + yEnd: end[1], + lineCap: 'round', + brushType: 'stroke', + strokeColor: '#666', + lineWidth: 1 + } + }); + this.shapeList.push(scaleShape); + scaleAngle += sign * this.scaleUnitAngle; + } + if (!serie.showScaleText) { + return; + } + var scaleTextAngle = startAngle; + var step = unitValue * 5 * this.scaleUnitAngle; + var scaleValue = 0; + while (true) { + if (clockWise && scaleTextAngle > endAngle || !clockWise && scaleTextAngle < endAngle) { + break; + } + var theta = scaleTextAngle; + theta = theta % 360; + if (theta < 0) { + theta += 360; + } + var isRightSide = theta <= 90 || theta >= 270; + var textShape = new TextShape({ + zlevel: serie.zlevel, + z: serie.z - 1, + hoverable: false, + style: { + x: isRightSide ? radius[1] + this.scaleLineLength + 4 : -radius[1] - this.scaleLineLength - 4, + y: 0, + text: Math.round(scaleValue * 10) / 10 + unitPostfix, + textAlign: isRightSide ? 'left' : 'right' + }, + position: center.slice(), + rotation: isRightSide ? [ + -theta / 180 * Math.PI, + 0, + 0 + ] : [ + -(theta + 180) / 180 * Math.PI, + 0, + 0 + ] + }); + this.shapeList.push(textShape); + scaleValue += step * unitScale; + scaleTextAngle += sign * this.scaleUnitAngle * 5; + } + }, this); + }, + refresh: function (newOption) { + if (newOption) { + this.option = newOption; + this.series = newOption.series; + } + this.legend = this.component.legend; + if (this.legend) { + this.getColor = function (param) { + return this.legend.getColor(param); + }; + this.isSelected = function (param) { + return this.legend.isSelected(param); + }; + } else { + var colorMap = {}; + var count = 0; + this.getColor = function (key) { + if (colorMap[key]) { + return colorMap[key]; + } + if (!colorMap[key]) { + colorMap[key] = this.zr.getColor(count++); + } + return colorMap[key]; + }; + this.isSelected = function () { + return true; + }; + } + this.backupShapeList(); + this._init(); + }, + reformOption: function (opt) { + var _merge = zrUtil.merge; + opt = _merge(_merge(opt || {}, this.ecTheme.chord), ecConfig.chord); + opt.itemStyle.normal.label.textStyle = this.getTextStyle(opt.itemStyle.normal.label.textStyle); + this.z = opt.z; + this.zlevel = opt.zlevel; + } + }; + zrUtil.inherits(Chord, ChartBase); + require('../chart').define('chord', Chord); + return Chord; +});define('echarts/util/shape/Ribbon', [ + 'require', + 'zrender/shape/Base', + 'zrender/shape/util/PathProxy', + 'zrender/tool/util', + 'zrender/tool/area' +], function (require) { + var Base = require('zrender/shape/Base'); + var PathProxy = require('zrender/shape/util/PathProxy'); + var zrUtil = require('zrender/tool/util'); + var area = require('zrender/tool/area'); + function RibbonShape(options) { + Base.call(this, options); + this._pathProxy = new PathProxy(); + } + RibbonShape.prototype = { + type: 'ribbon', + buildPath: function (ctx, style) { + var clockWise = style.clockWise || false; + var path = this._pathProxy; + path.begin(ctx); + var cx = style.x; + var cy = style.y; + var r = style.r; + var s0 = style.source0 / 180 * Math.PI; + var s1 = style.source1 / 180 * Math.PI; + var t0 = style.target0 / 180 * Math.PI; + var t1 = style.target1 / 180 * Math.PI; + var sx0 = cx + Math.cos(s0) * r; + var sy0 = cy + Math.sin(s0) * r; + var sx1 = cx + Math.cos(s1) * r; + var sy1 = cy + Math.sin(s1) * r; + var tx0 = cx + Math.cos(t0) * r; + var ty0 = cy + Math.sin(t0) * r; + var tx1 = cx + Math.cos(t1) * r; + var ty1 = cy + Math.sin(t1) * r; + path.moveTo(sx0, sy0); + path.arc(cx, cy, style.r, s0, s1, !clockWise); + path.bezierCurveTo((cx - sx1) * 0.7 + sx1, (cy - sy1) * 0.7 + sy1, (cx - tx0) * 0.7 + tx0, (cy - ty0) * 0.7 + ty0, tx0, ty0); + if (style.source0 === style.target0 && style.source1 === style.target1) { + return; + } + path.arc(cx, cy, style.r, t0, t1, !clockWise); + path.bezierCurveTo((cx - tx1) * 0.7 + tx1, (cy - ty1) * 0.7 + ty1, (cx - sx0) * 0.7 + sx0, (cy - sy0) * 0.7 + sy0, sx0, sy0); + }, + getRect: function (style) { + if (style.__rect) { + return style.__rect; + } + if (!this._pathProxy.isEmpty()) { + this.buildPath(null, style); + } + return this._pathProxy.fastBoundingRect(); + }, + isCover: function (x, y) { + var rect = this.getRect(this.style); + if (x >= rect.x && x <= rect.x + rect.width && y >= rect.y && y <= rect.y + rect.height) { + return area.isInsidePath(this._pathProxy.pathCommands, 0, 'fill', x, y); + } + } + }; + zrUtil.inherits(RibbonShape, Base); + return RibbonShape; +});define('echarts/data/Graph', [ + 'require', + 'zrender/tool/util' +], function (require) { + var util = require('zrender/tool/util'); + 'use strict'; + var Graph = function (directed) { + this._directed = directed || false; + this.nodes = []; + this.edges = []; + this._nodesMap = {}; + this._edgesMap = {}; + }; + Graph.prototype.isDirected = function () { + return this._directed; + }; + Graph.prototype.addNode = function (id, data) { + if (this._nodesMap[id]) { + return this._nodesMap[id]; + } + var node = new Graph.Node(id, data); + this.nodes.push(node); + this._nodesMap[id] = node; + return node; + }; + Graph.prototype.getNodeById = function (id) { + return this._nodesMap[id]; + }; + Graph.prototype.addEdge = function (n1, n2, data) { + if (typeof n1 == 'string') { + n1 = this._nodesMap[n1]; + } + if (typeof n2 == 'string') { + n2 = this._nodesMap[n2]; + } + if (!n1 || !n2) { + return; + } + var key = n1.id + '-' + n2.id; + if (this._edgesMap[key]) { + return this._edgesMap[key]; + } + var edge = new Graph.Edge(n1, n2, data); + if (this._directed) { + n1.outEdges.push(edge); + n2.inEdges.push(edge); + } + n1.edges.push(edge); + if (n1 !== n2) { + n2.edges.push(edge); + } + this.edges.push(edge); + this._edgesMap[key] = edge; + return edge; + }; + Graph.prototype.removeEdge = function (edge) { + var n1 = edge.node1; + var n2 = edge.node2; + var key = n1.id + '-' + n2.id; + if (this._directed) { + n1.outEdges.splice(util.indexOf(n1.outEdges, edge), 1); + n2.inEdges.splice(util.indexOf(n2.inEdges, edge), 1); + } + n1.edges.splice(util.indexOf(n1.edges, edge), 1); + if (n1 !== n2) { + n2.edges.splice(util.indexOf(n2.edges, edge), 1); + } + delete this._edgesMap[key]; + this.edges.splice(util.indexOf(this.edges, edge), 1); + }; + Graph.prototype.getEdge = function (n1, n2) { + if (typeof n1 !== 'string') { + n1 = n1.id; + } + if (typeof n2 !== 'string') { + n2 = n2.id; + } + if (this._directed) { + return this._edgesMap[n1 + '-' + n2]; + } else { + return this._edgesMap[n1 + '-' + n2] || this._edgesMap[n2 + '-' + n1]; + } + }; + Graph.prototype.removeNode = function (node) { + if (typeof node === 'string') { + node = this._nodesMap[node]; + if (!node) { + return; + } + } + delete this._nodesMap[node.id]; + this.nodes.splice(util.indexOf(this.nodes, node), 1); + for (var i = 0; i < this.edges.length;) { + var edge = this.edges[i]; + if (edge.node1 === node || edge.node2 === node) { + this.removeEdge(edge); + } else { + i++; + } + } + }; + Graph.prototype.filterNode = function (cb, context) { + var len = this.nodes.length; + for (var i = 0; i < len;) { + if (cb.call(context, this.nodes[i], i)) { + i++; + } else { + this.removeNode(this.nodes[i]); + len--; + } + } + }; + Graph.prototype.filterEdge = function (cb, context) { + var len = this.edges.length; + for (var i = 0; i < len;) { + if (cb.call(context, this.edges[i], i)) { + i++; + } else { + this.removeEdge(this.edges[i]); + len--; + } + } + }; + Graph.prototype.eachNode = function (cb, context) { + var len = this.nodes.length; + for (var i = 0; i < len; i++) { + if (this.nodes[i]) { + cb.call(context, this.nodes[i], i); + } + } + }; + Graph.prototype.eachEdge = function (cb, context) { + var len = this.edges.length; + for (var i = 0; i < len; i++) { + if (this.edges[i]) { + cb.call(context, this.edges[i], i); + } + } + }; + Graph.prototype.clear = function () { + this.nodes.length = 0; + this.edges.length = 0; + this._nodesMap = {}; + this._edgesMap = {}; + }; + Graph.prototype.breadthFirstTraverse = function (cb, startNode, direction, context) { + if (typeof startNode === 'string') { + startNode = this._nodesMap[startNode]; + } + if (!startNode) { + return; + } + var edgeType = 'edges'; + if (direction === 'out') { + edgeType = 'outEdges'; + } else if (direction === 'in') { + edgeType = 'inEdges'; + } + for (var i = 0; i < this.nodes.length; i++) { + this.nodes[i].__visited = false; + } + if (cb.call(context, startNode, null)) { + return; + } + var queue = [startNode]; + while (queue.length) { + var currentNode = queue.shift(); + var edges = currentNode[edgeType]; + for (var i = 0; i < edges.length; i++) { + var e = edges[i]; + var otherNode = e.node1 === currentNode ? e.node2 : e.node1; + if (!otherNode.__visited) { + if (cb.call(otherNode, otherNode, currentNode)) { + return; + } + queue.push(otherNode); + otherNode.__visited = true; + } + } + } + }; + Graph.prototype.clone = function () { + var graph = new Graph(this._directed); + for (var i = 0; i < this.nodes.length; i++) { + graph.addNode(this.nodes[i].id, this.nodes[i].data); + } + for (var i = 0; i < this.edges.length; i++) { + var e = this.edges[i]; + graph.addEdge(e.node1.id, e.node2.id, e.data); + } + return graph; + }; + var Node = function (id, data) { + this.id = id; + this.data = data || null; + this.inEdges = []; + this.outEdges = []; + this.edges = []; + }; + Node.prototype.degree = function () { + return this.edges.length; + }; + Node.prototype.inDegree = function () { + return this.inEdges.length; + }; + Node.prototype.outDegree = function () { + return this.outEdges.length; + }; + var Edge = function (node1, node2, data) { + this.node1 = node1; + this.node2 = node2; + this.data = data || null; + }; + Graph.Node = Node; + Graph.Edge = Edge; + Graph.fromMatrix = function (nodesData, matrix, directed) { + if (!matrix || !matrix.length || matrix[0].length !== matrix.length || nodesData.length !== matrix.length) { + return; + } + var size = matrix.length; + var graph = new Graph(directed); + for (var i = 0; i < size; i++) { + var node = graph.addNode(nodesData[i].id, nodesData[i]); + node.data.value = 0; + if (directed) { + node.data.outValue = node.data.inValue = 0; + } + } + for (var i = 0; i < size; i++) { + for (var j = 0; j < size; j++) { + var item = matrix[i][j]; + if (directed) { + graph.nodes[i].data.outValue += item; + graph.nodes[j].data.inValue += item; + } + graph.nodes[i].data.value += item; + graph.nodes[j].data.value += item; + } + } + for (var i = 0; i < size; i++) { + for (var j = i; j < size; j++) { + var item = matrix[i][j]; + if (item === 0) { + continue; + } + var n1 = graph.nodes[i]; + var n2 = graph.nodes[j]; + var edge = graph.addEdge(n1, n2, {}); + edge.data.weight = item; + if (i !== j) { + if (directed && matrix[j][i]) { + var inEdge = graph.addEdge(n2, n1, {}); + inEdge.data.weight = matrix[j][i]; + } + } + } + } + return graph; + }; + return Graph; +});define('echarts/layout/Chord', ['require'], function (require) { + var ChordLayout = function (opts) { + opts = opts || {}; + this.sort = opts.sort || null; + this.sortSub = opts.sortSub || null; + this.padding = 0.05; + this.startAngle = opts.startAngle || 0; + this.clockWise = opts.clockWise == null ? false : opts.clockWise; + this.center = opts.center || [ + 0, + 0 + ]; + this.directed = true; + }; + ChordLayout.prototype.run = function (graphs) { + if (!(graphs instanceof Array)) { + graphs = [graphs]; + } + var gl = graphs.length; + if (!gl) { + return; + } + var graph0 = graphs[0]; + var nl = graph0.nodes.length; + var groups = []; + var sumSize = 0; + for (var i = 0; i < nl; i++) { + var g0node = graph0.nodes[i]; + var group = { + size: 0, + subGroups: [], + node: g0node + }; + groups.push(group); + var sumWeight = 0; + for (var k = 0; k < graphs.length; k++) { + var graph = graphs[k]; + var node = graph.getNodeById(g0node.id); + if (!node) { + continue; + } + group.size += node.layout.size; + var edges = this.directed ? node.outEdges : node.edges; + for (var j = 0; j < edges.length; j++) { + var e = edges[j]; + var w = e.layout.weight; + group.subGroups.push({ + weight: w, + edge: e, + graph: graph + }); + sumWeight += w; + } + } + sumSize += group.size; + var multiplier = group.size / sumWeight; + for (var j = 0; j < group.subGroups.length; j++) { + group.subGroups[j].weight *= multiplier; + } + if (this.sortSub === 'ascending') { + group.subGroups.sort(compareSubGroups); + } else if (this.sort === 'descending') { + group.subGroups.sort(compareSubGroups); + group.subGroups.reverse(); + } + } + if (this.sort === 'ascending') { + groups.sort(compareGroups); + } else if (this.sort === 'descending') { + groups.sort(compareGroups); + groups.reverse(); + } + var multiplier = (Math.PI * 2 - this.padding * nl) / sumSize; + var angle = this.startAngle; + var sign = this.clockWise ? 1 : -1; + for (var i = 0; i < nl; i++) { + var group = groups[i]; + group.node.layout.startAngle = angle; + group.node.layout.endAngle = angle + sign * group.size * multiplier; + group.node.layout.subGroups = []; + for (var j = 0; j < group.subGroups.length; j++) { + var subGroup = group.subGroups[j]; + subGroup.edge.layout.startAngle = angle; + angle += sign * subGroup.weight * multiplier; + subGroup.edge.layout.endAngle = angle; + } + angle = group.node.layout.endAngle + sign * this.padding; + } + }; + var compareSubGroups = function (a, b) { + return a.weight - b.weight; + }; + var compareGroups = function (a, b) { + return a.size - b.size; + }; + return ChordLayout; +});define('echarts/chart/force', [ + 'require', + './base', + '../data/Graph', + '../layout/Force', + 'zrender/shape/Line', + 'zrender/shape/BezierCurve', + 'zrender/shape/Image', + '../util/shape/Icon', + '../config', + '../util/ecData', + 'zrender/tool/util', + 'zrender/config', + 'zrender/tool/vector', + '../chart' +], function (require) { + 'use strict'; + var ChartBase = require('./base'); + var Graph = require('../data/Graph'); + var ForceLayout = require('../layout/Force'); + var LineShape = require('zrender/shape/Line'); + var BezierCurveShape = require('zrender/shape/BezierCurve'); + var ImageShape = require('zrender/shape/Image'); + var IconShape = require('../util/shape/Icon'); + var ecConfig = require('../config'); + ecConfig.force = { + zlevel: 1, + z: 2, + center: [ + '50%', + '50%' + ], + size: '100%', + preventOverlap: false, + coolDown: 0.99, + minRadius: 10, + maxRadius: 20, + ratioScaling: false, + large: false, + useWorker: false, + steps: 1, + scaling: 1, + gravity: 1, + symbol: 'circle', + symbolSize: 0, + linkSymbol: null, + linkSymbolSize: [ + 10, + 15 + ], + draggable: true, + clickable: true, + roam: false, + itemStyle: { + normal: { + label: { + show: false, + position: 'inside' + }, + nodeStyle: { + brushType: 'both', + borderColor: '#5182ab', + borderWidth: 1 + }, + linkStyle: { + color: '#5182ab', + width: 1, + type: 'line' + } + }, + emphasis: { + label: { show: false }, + nodeStyle: {}, + linkStyle: { opacity: 0 } + } + } + }; + var ecData = require('../util/ecData'); + var zrUtil = require('zrender/tool/util'); + var zrConfig = require('zrender/config'); + var vec2 = require('zrender/tool/vector'); + function Force(ecTheme, messageCenter, zr, option, myChart) { + var self = this; + ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); + this.__nodePositionMap = {}; + this._graph = new Graph(true); + this._layout = new ForceLayout(); + this._layout.onupdate = function () { + self._step(); + }; + this._steps = 1; + this.ondragstart = function () { + ondragstart.apply(self, arguments); + }; + this.ondragend = function () { + ondragend.apply(self, arguments); + }; + this.ondrop = function () { + }; + this.shapeHandler.ondragstart = function () { + self.isDragstart = true; + }; + this.onmousemove = function () { + onmousemove.apply(self, arguments); + }; + this.refresh(option); + } + Force.prototype = { + constructor: Force, + type: ecConfig.CHART_TYPE_FORCE, + _init: function () { + this.selectedMap = {}; + var legend = this.component.legend; + var series = this.series; + var serieName; + this.clear(); + for (var i = 0, l = series.length; i < l; i++) { + var serie = series[i]; + if (serie.type === ecConfig.CHART_TYPE_FORCE) { + series[i] = this.reformOption(series[i]); + serieName = series[i].name || ''; + this.selectedMap[serieName] = legend ? legend.isSelected(serieName) : true; + if (!this.selectedMap[serieName]) { + continue; + } + this.buildMark(i); + this._initSerie(serie, i); + break; + } + } + this.animationEffect(); + }, + _getNodeCategory: function (serie, node) { + return serie.categories && serie.categories[node.category || 0]; + }, + _getNodeQueryTarget: function (serie, node, type) { + type = type || 'normal'; + var category = this._getNodeCategory(serie, node) || {}; + return [ + node.itemStyle && node.itemStyle[type], + category && category.itemStyle && category.itemStyle[type], + serie.itemStyle[type].nodeStyle + ]; + }, + _getEdgeQueryTarget: function (serie, edge, type) { + type = type || 'normal'; + return [ + edge.itemStyle && edge.itemStyle[type], + serie.itemStyle[type].linkStyle + ]; + }, + _initSerie: function (serie, serieIdx) { + this._temperature = 1; + if (serie.matrix) { + this._graph = this._getSerieGraphFromDataMatrix(serie); + } else if (serie.links) { + this._graph = this._getSerieGraphFromNodeLinks(serie); + } + this._buildLinkShapes(serie, serieIdx); + this._buildNodeShapes(serie, serieIdx); + var panable = serie.roam === true || serie.roam === 'move'; + var zoomable = serie.roam === true || serie.roam === 'scale'; + this.zr.modLayer(this.getZlevelBase(), { + panable: panable, + zoomable: zoomable + }); + if (this.query('markPoint.effect.show') || this.query('markLine.effect.show')) { + this.zr.modLayer(ecConfig.EFFECT_ZLEVEL, { + panable: panable, + zoomable: zoomable + }); + } + this._initLayout(serie); + this._step(); + }, + _getSerieGraphFromDataMatrix: function (serie) { + var nodesData = []; + var count = 0; + var matrix = []; + for (var i = 0; i < serie.matrix.length; i++) { + matrix[i] = serie.matrix[i].slice(); + } + var data = serie.data || serie.nodes; + for (var i = 0; i < data.length; i++) { + var node = {}; + var group = data[i]; + for (var key in group) { + if (key === 'name') { + node['id'] = group['name']; + } else { + node[key] = group[key]; + } + } + var category = this._getNodeCategory(serie, group); + var name = category ? category.name : group.name; + this.selectedMap[name] = this.isSelected(name); + if (this.selectedMap[name]) { + nodesData.push(node); + count++; + } else { + matrix.splice(count, 1); + for (var j = 0; j < matrix.length; j++) { + matrix[j].splice(count, 1); + } + } + } + var graph = Graph.fromMatrix(nodesData, matrix, true); + graph.eachNode(function (n, idx) { + n.layout = { + size: n.data.value, + mass: 0 + }; + n.rawIndex = idx; + }); + graph.eachEdge(function (e) { + e.layout = { weight: e.data.weight }; + }); + return graph; + }, + _getSerieGraphFromNodeLinks: function (serie) { + var graph = new Graph(true); + var nodes = serie.data || serie.nodes; + for (var i = 0, len = nodes.length; i < len; i++) { + var n = nodes[i]; + if (!n || n.ignore) { + continue; + } + var category = this._getNodeCategory(serie, n); + var name = category ? category.name : n.name; + this.selectedMap[name] = this.isSelected(name); + if (this.selectedMap[name]) { + var node = graph.addNode(n.name, n); + node.rawIndex = i; + } + } + for (var i = 0, len = serie.links.length; i < len; i++) { + var e = serie.links[i]; + var n1 = e.source; + var n2 = e.target; + if (typeof n1 === 'number') { + n1 = nodes[n1]; + if (n1) { + n1 = n1.name; + } + } + if (typeof n2 === 'number') { + n2 = nodes[n2]; + if (n2) { + n2 = n2.name; + } + } + var edge = graph.addEdge(n1, n2, e); + if (edge) { + edge.rawIndex = i; + } + } + graph.eachNode(function (n) { + var value = n.data.value; + if (value == null) { + value = 0; + for (var i = 0; i < n.edges.length; i++) { + value += n.edges[i].data.weight || 0; + } + } + n.layout = { + size: value, + mass: 0 + }; + }); + graph.eachEdge(function (e) { + e.layout = { weight: e.data.weight == null ? 1 : e.data.weight }; + }); + return graph; + }, + _initLayout: function (serie) { + var graph = this._graph; + var len = graph.nodes.length; + var minRadius = this.query(serie, 'minRadius'); + var maxRadius = this.query(serie, 'maxRadius'); + this._steps = serie.steps || 1; + var layout = this._layout; + layout.center = this.parseCenter(this.zr, serie.center); + layout.width = this.parsePercent(serie.size, this.zr.getWidth()); + layout.height = this.parsePercent(serie.size, this.zr.getHeight()); + layout.large = serie.large; + layout.scaling = serie.scaling; + layout.ratioScaling = serie.ratioScaling; + layout.gravity = serie.gravity; + layout.temperature = 1; + layout.coolDown = serie.coolDown; + layout.preventNodeEdgeOverlap = serie.preventOverlap; + layout.preventNodeOverlap = serie.preventOverlap; + var min = Infinity; + var max = -Infinity; + for (var i = 0; i < len; i++) { + var gNode = graph.nodes[i]; + max = Math.max(gNode.layout.size, max); + min = Math.min(gNode.layout.size, min); + } + var divider = max - min; + for (var i = 0; i < len; i++) { + var gNode = graph.nodes[i]; + if (divider > 0) { + gNode.layout.size = (gNode.layout.size - min) * (maxRadius - minRadius) / divider + minRadius; + gNode.layout.mass = gNode.layout.size / maxRadius; + } else { + gNode.layout.size = (maxRadius - minRadius) / 2; + gNode.layout.mass = 0.5; + } + } + for (var i = 0; i < len; i++) { + var gNode = graph.nodes[i]; + if (typeof this.__nodePositionMap[gNode.id] !== 'undefined') { + gNode.layout.position = vec2.create(); + vec2.copy(gNode.layout.position, this.__nodePositionMap[gNode.id]); + } else if (typeof gNode.data.initial !== 'undefined') { + gNode.layout.position = vec2.create(); + vec2.copy(gNode.layout.position, gNode.data.initial); + } else { + var center = this._layout.center; + var size = Math.min(this._layout.width, this._layout.height); + gNode.layout.position = _randomInSquare(center[0], center[1], size * 0.8); + } + var style = gNode.shape.style; + var radius = gNode.layout.size; + style.width = style.width || radius * 2; + style.height = style.height || radius * 2; + style.x = -style.width / 2; + style.y = -style.height / 2; + vec2.copy(gNode.shape.position, gNode.layout.position); + } + len = graph.edges.length; + max = -Infinity; + for (var i = 0; i < len; i++) { + var e = graph.edges[i]; + if (e.layout.weight > max) { + max = e.layout.weight; + } + } + for (var i = 0; i < len; i++) { + var e = graph.edges[i]; + e.layout.weight /= max; + } + this._layout.init(graph, serie.useWorker); + }, + _buildNodeShapes: function (serie, serieIdx) { + var graph = this._graph; + var categories = this.query(serie, 'categories'); + graph.eachNode(function (node) { + var category = this._getNodeCategory(serie, node.data); + var queryTarget = [ + node.data, + category, + serie + ]; + var styleQueryTarget = this._getNodeQueryTarget(serie, node.data); + var emphasisStyleQueryTarget = this._getNodeQueryTarget(serie, node.data, 'emphasis'); + var shape = new IconShape({ + style: { + x: 0, + y: 0, + color: this.deepQuery(styleQueryTarget, 'color'), + brushType: 'both', + strokeColor: this.deepQuery(styleQueryTarget, 'strokeColor') || this.deepQuery(styleQueryTarget, 'borderColor'), + lineWidth: this.deepQuery(styleQueryTarget, 'lineWidth') || this.deepQuery(styleQueryTarget, 'borderWidth') + }, + highlightStyle: { + color: this.deepQuery(emphasisStyleQueryTarget, 'color'), + strokeColor: this.deepQuery(emphasisStyleQueryTarget, 'strokeColor') || this.deepQuery(emphasisStyleQueryTarget, 'borderColor'), + lineWidth: this.deepQuery(emphasisStyleQueryTarget, 'lineWidth') || this.deepQuery(emphasisStyleQueryTarget, 'borderWidth') + }, + clickable: serie.clickable, + zlevel: this.getZlevelBase(), + z: this.getZBase() + }); + if (!shape.style.color) { + shape.style.color = category ? this.getColor(category.name) : this.getColor(node.id); + } + shape.style.iconType = this.deepQuery(queryTarget, 'symbol'); + var symbolSize = this.deepQuery(queryTarget, 'symbolSize') || 0; + if (typeof symbolSize === 'number') { + symbolSize = [ + symbolSize, + symbolSize + ]; + } + shape.style.width = symbolSize[0] * 2; + shape.style.height = symbolSize[1] * 2; + if (shape.style.iconType.match('image')) { + shape.style.image = shape.style.iconType.replace(new RegExp('^image:\\/\\/'), ''); + shape = new ImageShape({ + style: shape.style, + highlightStyle: shape.highlightStyle, + clickable: shape.clickable, + zlevel: this.getZlevelBase(), + z: this.getZBase() + }); + } + if (this.deepQuery(queryTarget, 'itemStyle.normal.label.show')) { + shape.style.text = node.data.label == null ? node.id : node.data.label; + shape.style.textPosition = this.deepQuery(queryTarget, 'itemStyle.normal.label.position'); + shape.style.textColor = this.deepQuery(queryTarget, 'itemStyle.normal.label.textStyle.color'); + shape.style.textFont = this.getFont(this.deepQuery(queryTarget, 'itemStyle.normal.label.textStyle') || {}); + } + if (this.deepQuery(queryTarget, 'itemStyle.emphasis.label.show')) { + shape.highlightStyle.textPosition = this.deepQuery(queryTarget, 'itemStyle.emphasis.label.position'); + shape.highlightStyle.textColor = this.deepQuery(queryTarget, 'itemStyle.emphasis.label.textStyle.color'); + shape.highlightStyle.textFont = this.getFont(this.deepQuery(queryTarget, 'itemStyle.emphasis.label.textStyle') || {}); + } + if (this.deepQuery(queryTarget, 'draggable')) { + this.setCalculable(shape); + shape.dragEnableTime = 0; + shape.draggable = true; + shape.ondragstart = this.shapeHandler.ondragstart; + shape.ondragover = null; + } + var categoryName = ''; + if (typeof node.category !== 'undefined') { + var category = categories[node.category]; + categoryName = category && category.name || ''; + } + ecData.pack(shape, serie, serieIdx, node.data, node.rawIndex, node.data.name || '', node.category); + this.shapeList.push(shape); + this.zr.addShape(shape); + node.shape = shape; + }, this); + }, + _buildLinkShapes: function (serie, serieIdx) { + var graph = this._graph; + var len = graph.edges.length; + for (var i = 0; i < len; i++) { + var gEdge = graph.edges[i]; + var link = gEdge.data; + var source = gEdge.node1; + var target = gEdge.node2; + var otherEdge = graph.getEdge(target, source); + var queryTarget = this._getEdgeQueryTarget(serie, link); + var linkType = this.deepQuery(queryTarget, 'type'); + if (serie.linkSymbol && serie.linkSymbol !== 'none') { + linkType = 'line'; + } + var LinkShapeCtor = linkType === 'line' ? LineShape : BezierCurveShape; + var linkShape = new LinkShapeCtor({ + style: { + xStart: 0, + yStart: 0, + xEnd: 0, + yEnd: 0 + }, + clickable: this.query(serie, 'clickable'), + highlightStyle: {}, + zlevel: this.getZlevelBase(), + z: this.getZBase() + }); + if (otherEdge && otherEdge.shape) { + linkShape.style.offset = 4; + otherEdge.shape.style.offset = 4; + } + zrUtil.merge(linkShape.style, this.query(serie, 'itemStyle.normal.linkStyle'), true); + zrUtil.merge(linkShape.highlightStyle, this.query(serie, 'itemStyle.emphasis.linkStyle'), true); + if (typeof link.itemStyle !== 'undefined') { + if (link.itemStyle.normal) { + zrUtil.merge(linkShape.style, link.itemStyle.normal, true); + } + if (link.itemStyle.emphasis) { + zrUtil.merge(linkShape.highlightStyle, link.itemStyle.emphasis, true); + } + } + linkShape.style.lineWidth = linkShape.style.lineWidth || linkShape.style.width; + linkShape.style.strokeColor = linkShape.style.strokeColor || linkShape.style.color; + linkShape.highlightStyle.lineWidth = linkShape.highlightStyle.lineWidth || linkShape.highlightStyle.width; + linkShape.highlightStyle.strokeColor = linkShape.highlightStyle.strokeColor || linkShape.highlightStyle.color; + ecData.pack(linkShape, serie, serieIdx, gEdge.data, gEdge.rawIndex == null ? i : gEdge.rawIndex, gEdge.data.name || source.id + ' - ' + target.id, source.id, target.id); + this.shapeList.push(linkShape); + this.zr.addShape(linkShape); + gEdge.shape = linkShape; + if (serie.linkSymbol && serie.linkSymbol !== 'none') { + var symbolShape = new IconShape({ + style: { + x: -5, + y: 0, + width: serie.linkSymbolSize[0], + height: serie.linkSymbolSize[1], + iconType: serie.linkSymbol, + brushType: 'fill', + color: linkShape.style.strokeColor + }, + highlightStyle: { brushType: 'fill' }, + position: [ + 0, + 0 + ], + rotation: 0, + zlevel: this.getZlevelBase(), + z: this.getZBase() + }); + linkShape._symbolShape = symbolShape; + this.shapeList.push(symbolShape); + this.zr.addShape(symbolShape); + } + } + }, + _updateLinkShapes: function () { + var v = vec2.create(); + var n = vec2.create(); + var p1 = vec2.create(); + var p2 = vec2.create(); + var edges = this._graph.edges; + for (var i = 0, len = edges.length; i < len; i++) { + var edge = edges[i]; + var sourceShape = edge.node1.shape; + var targetShape = edge.node2.shape; + vec2.copy(p1, sourceShape.position); + vec2.copy(p2, targetShape.position); + var edgeShapeStyle = edge.shape.style; + vec2.sub(v, p1, p2); + vec2.normalize(v, v); + if (edgeShapeStyle.offset) { + n[0] = v[1]; + n[1] = -v[0]; + vec2.scaleAndAdd(p1, p1, n, edgeShapeStyle.offset); + vec2.scaleAndAdd(p2, p2, n, edgeShapeStyle.offset); + } else if (edge.shape.type === 'bezier-curve') { + edgeShapeStyle.cpX1 = (p1[0] + p2[0]) / 2 - (p2[1] - p1[1]) / 4; + edgeShapeStyle.cpY1 = (p1[1] + p2[1]) / 2 - (p1[0] - p2[0]) / 4; + } + edgeShapeStyle.xStart = p1[0]; + edgeShapeStyle.yStart = p1[1]; + edgeShapeStyle.xEnd = p2[0]; + edgeShapeStyle.yEnd = p2[1]; + edge.shape.modSelf(); + if (edge.shape._symbolShape) { + var symbolShape = edge.shape._symbolShape; + vec2.copy(symbolShape.position, p2); + vec2.scaleAndAdd(symbolShape.position, symbolShape.position, v, targetShape.style.width / 2 + 2); + var angle = Math.atan2(v[1], v[0]); + symbolShape.rotation = Math.PI / 2 - angle; + symbolShape.modSelf(); + } + } + }, + _syncNodePositions: function () { + var graph = this._graph; + for (var i = 0; i < graph.nodes.length; i++) { + var gNode = graph.nodes[i]; + var position = gNode.layout.position; + var node = gNode.data; + var shape = gNode.shape; + var fixX = shape.fixed || node.fixX; + var fixY = shape.fixed || node.fixY; + if (fixX === true) { + fixX = 1; + } else if (isNaN(fixX)) { + fixX = 0; + } + if (fixY === true) { + fixY = 1; + } else if (isNaN(fixY)) { + fixY = 0; + } + shape.position[0] += (position[0] - shape.position[0]) * (1 - fixX); + shape.position[1] += (position[1] - shape.position[1]) * (1 - fixY); + vec2.copy(position, shape.position); + var nodeName = node.name; + if (nodeName) { + var gPos = this.__nodePositionMap[nodeName]; + if (!gPos) { + gPos = this.__nodePositionMap[nodeName] = vec2.create(); + } + vec2.copy(gPos, position); + } + shape.modSelf(); + } + }, + _step: function (e) { + this._syncNodePositions(); + this._updateLinkShapes(); + this.zr.refreshNextFrame(); + if (this._layout.temperature > 0.01) { + this._layout.step(this._steps); + } else { + this.messageCenter.dispatch(ecConfig.EVENT.FORCE_LAYOUT_END, {}, {}, this.myChart); + } + }, + refresh: function (newOption) { + if (newOption) { + this.option = newOption; + this.series = this.option.series; + } + this.legend = this.component.legend; + if (this.legend) { + this.getColor = function (param) { + return this.legend.getColor(param); + }; + this.isSelected = function (param) { + return this.legend.isSelected(param); + }; + } else { + var colorMap = {}; + var count = 0; + this.getColor = function (key) { + if (colorMap[key]) { + return colorMap[key]; + } + if (!colorMap[key]) { + colorMap[key] = this.zr.getColor(count++); + } + return colorMap[key]; + }; + this.isSelected = function () { + return true; + }; + } + this._init(); + }, + dispose: function () { + this.clear(); + this.shapeList = null; + this.effectList = null; + this._layout.dispose(); + this._layout = null; + this.__nodePositionMap = {}; + }, + getPosition: function () { + var position = []; + this._graph.eachNode(function (n) { + if (n.layout) { + position.push({ + name: n.data.name, + position: Array.prototype.slice.call(n.layout.position) + }); + } + }); + return position; + } + }; + function ondragstart(param) { + if (!this.isDragstart || !param.target) { + return; + } + var shape = param.target; + shape.fixed = true; + this.isDragstart = false; + this.zr.on(zrConfig.EVENT.MOUSEMOVE, this.onmousemove); + } + function onmousemove() { + this._layout.temperature = 0.8; + this._step(); + } + function ondragend(param, status) { + if (!this.isDragend || !param.target) { + return; + } + var shape = param.target; + shape.fixed = false; + status.dragIn = true; + status.needRefresh = false; + this.isDragend = false; + this.zr.un(zrConfig.EVENT.MOUSEMOVE, this.onmousemove); + } + function _randomInSquare(x, y, size) { + var v = vec2.create(); + v[0] = (Math.random() - 0.5) * size + x; + v[1] = (Math.random() - 0.5) * size + y; + return v; + } + zrUtil.inherits(Force, ChartBase); + require('../chart').define('force', Force); + return Force; +});define('echarts/layout/Force', [ + 'require', + './forceLayoutWorker', + 'zrender/tool/vector' +], function (require) { + var ForceLayoutWorker = require('./forceLayoutWorker'); + var vec2 = require('zrender/tool/vector'); + var requestAnimationFrame = window.requestAnimationFrame || window.msRequestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || function (func) { + setTimeout(func, 16); + }; + var ArrayCtor = typeof Float32Array == 'undefined' ? Array : Float32Array; + var workerUrl; + function createWorkerUrl() { + if (typeof Worker !== 'undefined' && typeof Blob !== 'undefined') { + try { + var blob = new Blob([ForceLayoutWorker.getWorkerCode()]); + workerUrl = window.URL.createObjectURL(blob); + } catch (e) { + workerUrl = ''; + } + } + return workerUrl; + } + var ForceLayout = function (opts) { + if (typeof workerUrl === 'undefined') { + createWorkerUrl(); + } + opts = opts || {}; + this.width = opts.width || 500; + this.height = opts.height || 500; + this.center = opts.center || [ + this.width / 2, + this.height / 2 + ]; + this.ratioScaling = opts.ratioScaling || false; + this.scaling = opts.scaling || 1; + this.gravity = typeof opts.gravity !== 'undefined' ? opts.gravity : 1; + this.large = opts.large || false; + this.preventNodeOverlap = opts.preventNodeOverlap || false; + this.preventNodeEdgeOverlap = opts.preventNodeEdgeOverlap || false; + this.maxSpeedIncrease = opts.maxSpeedIncrease || 1; + this.onupdate = opts.onupdate || function () { + }; + this.temperature = opts.temperature || 1; + this.coolDown = opts.coolDown || 0.99; + this._layout = null; + this._layoutWorker = null; + var self = this; + var _$onupdate = this._$onupdate; + this._$onupdate = function (e) { + _$onupdate.call(self, e); + }; + }; + ForceLayout.prototype.updateConfig = function () { + var width = this.width; + var height = this.height; + var size = Math.min(width, height); + var config = { + center: this.center, + width: this.ratioScaling ? width : size, + height: this.ratioScaling ? height : size, + scaling: this.scaling || 1, + gravity: this.gravity || 1, + barnesHutOptimize: this.large, + preventNodeOverlap: this.preventNodeOverlap, + preventNodeEdgeOverlap: this.preventNodeEdgeOverlap, + maxSpeedIncrease: this.maxSpeedIncrease + }; + if (this._layoutWorker) { + this._layoutWorker.postMessage({ + cmd: 'updateConfig', + config: config + }); + } else { + for (var name in config) { + this._layout[name] = config[name]; + } + } + }; + ForceLayout.prototype.init = function (graph, useWorker) { + if (this._layoutWorker) { + this._layoutWorker.terminate(); + this._layoutWorker = null; + } + if (workerUrl && useWorker) { + try { + if (!this._layoutWorker) { + this._layoutWorker = new Worker(workerUrl); + this._layoutWorker.onmessage = this._$onupdate; + } + this._layout = null; + } catch (e) { + this._layoutWorker = null; + if (!this._layout) { + this._layout = new ForceLayoutWorker(); + } + } + } else { + if (!this._layout) { + this._layout = new ForceLayoutWorker(); + } + } + this.temperature = 1; + this.graph = graph; + var len = graph.nodes.length; + var positionArr = new ArrayCtor(len * 2); + var massArr = new ArrayCtor(len); + var sizeArr = new ArrayCtor(len); + for (var i = 0; i < len; i++) { + var n = graph.nodes[i]; + positionArr[i * 2] = n.layout.position[0]; + positionArr[i * 2 + 1] = n.layout.position[1]; + massArr[i] = typeof n.layout.mass === 'undefined' ? 1 : n.layout.mass; + sizeArr[i] = typeof n.layout.size === 'undefined' ? 1 : n.layout.size; + n.layout.__index = i; + } + len = graph.edges.length; + var edgeArr = new ArrayCtor(len * 2); + var edgeWeightArr = new ArrayCtor(len); + for (var i = 0; i < len; i++) { + var edge = graph.edges[i]; + edgeArr[i * 2] = edge.node1.layout.__index; + edgeArr[i * 2 + 1] = edge.node2.layout.__index; + edgeWeightArr[i] = edge.layout.weight || 1; + } + if (this._layoutWorker) { + this._layoutWorker.postMessage({ + cmd: 'init', + nodesPosition: positionArr, + nodesMass: massArr, + nodesSize: sizeArr, + edges: edgeArr, + edgesWeight: edgeWeightArr + }); + } else { + this._layout.initNodes(positionArr, massArr, sizeArr); + this._layout.initEdges(edgeArr, edgeWeightArr); + } + this.updateConfig(); + }; + ForceLayout.prototype.step = function (steps) { + var nodes = this.graph.nodes; + if (this._layoutWorker) { + var positionArr = new ArrayCtor(nodes.length * 2); + for (var i = 0; i < nodes.length; i++) { + var n = nodes[i]; + positionArr[i * 2] = n.layout.position[0]; + positionArr[i * 2 + 1] = n.layout.position[1]; + } + this._layoutWorker.postMessage(positionArr.buffer, [positionArr.buffer]); + this._layoutWorker.postMessage({ + cmd: 'update', + steps: steps, + temperature: this.temperature, + coolDown: this.coolDown + }); + for (var i = 0; i < steps; i++) { + this.temperature *= this.coolDown; + } + } else { + requestAnimationFrame(this._$onupdate); + for (var i = 0; i < nodes.length; i++) { + var n = nodes[i]; + vec2.copy(this._layout.nodes[i].position, n.layout.position); + } + for (var i = 0; i < steps; i++) { + this._layout.temperature = this.temperature; + this._layout.update(); + this.temperature *= this.coolDown; + } + } + }; + ForceLayout.prototype._$onupdate = function (e) { + if (this._layoutWorker) { + var positionArr = new Float32Array(e.data); + for (var i = 0; i < this.graph.nodes.length; i++) { + var n = this.graph.nodes[i]; + n.layout.position[0] = positionArr[i * 2]; + n.layout.position[1] = positionArr[i * 2 + 1]; + } + this.onupdate && this.onupdate(); + } else if (this._layout) { + for (var i = 0; i < this.graph.nodes.length; i++) { + var n = this.graph.nodes[i]; + vec2.copy(n.layout.position, this._layout.nodes[i].position); + } + this.onupdate && this.onupdate(); + } + }; + ForceLayout.prototype.dispose = function () { + if (this._layoutWorker) { + this._layoutWorker.terminate(); + } + this._layoutWorker = null; + this._layout = null; + }; + return ForceLayout; +});define('echarts/layout/forceLayoutWorker', [ + 'require', + 'zrender/tool/vector' +], function __echartsForceLayoutWorker(require) { + 'use strict'; + var vec2; + var inWorker = typeof window === 'undefined' && typeof require === 'undefined'; + if (inWorker) { + vec2 = { + create: function (x, y) { + var out = new Float32Array(2); + out[0] = x || 0; + out[1] = y || 0; + return out; + }, + dist: function (a, b) { + var x = b[0] - a[0]; + var y = b[1] - a[1]; + return Math.sqrt(x * x + y * y); + }, + len: function (a) { + var x = a[0]; + var y = a[1]; + return Math.sqrt(x * x + y * y); + }, + scaleAndAdd: function (out, a, b, scale) { + out[0] = a[0] + b[0] * scale; + out[1] = a[1] + b[1] * scale; + return out; + }, + scale: function (out, a, b) { + out[0] = a[0] * b; + out[1] = a[1] * b; + return out; + }, + add: function (out, a, b) { + out[0] = a[0] + b[0]; + out[1] = a[1] + b[1]; + return out; + }, + sub: function (out, a, b) { + out[0] = a[0] - b[0]; + out[1] = a[1] - b[1]; + return out; + }, + dot: function (v1, v2) { + return v1[0] * v2[0] + v1[1] * v2[1]; + }, + normalize: function (out, a) { + var x = a[0]; + var y = a[1]; + var len = x * x + y * y; + if (len > 0) { + len = 1 / Math.sqrt(len); + out[0] = a[0] * len; + out[1] = a[1] * len; + } + return out; + }, + negate: function (out, a) { + out[0] = -a[0]; + out[1] = -a[1]; + return out; + }, + copy: function (out, a) { + out[0] = a[0]; + out[1] = a[1]; + return out; + }, + set: function (out, x, y) { + out[0] = x; + out[1] = y; + return out; + } + }; + } else { + vec2 = require('zrender/tool/vector'); + } + var ArrayCtor = typeof Float32Array == 'undefined' ? Array : Float32Array; + function Region() { + this.subRegions = []; + this.nSubRegions = 0; + this.node = null; + this.mass = 0; + this.centerOfMass = null; + this.bbox = new ArrayCtor(4); + this.size = 0; + } + Region.prototype.beforeUpdate = function () { + for (var i = 0; i < this.nSubRegions; i++) { + this.subRegions[i].beforeUpdate(); + } + this.mass = 0; + if (this.centerOfMass) { + this.centerOfMass[0] = 0; + this.centerOfMass[1] = 0; + } + this.nSubRegions = 0; + this.node = null; + }; + Region.prototype.afterUpdate = function () { + this.subRegions.length = this.nSubRegions; + for (var i = 0; i < this.nSubRegions; i++) { + this.subRegions[i].afterUpdate(); + } + }; + Region.prototype.addNode = function (node) { + if (this.nSubRegions === 0) { + if (this.node == null) { + this.node = node; + return; + } else { + this._addNodeToSubRegion(this.node); + this.node = null; + } + } + this._addNodeToSubRegion(node); + this._updateCenterOfMass(node); + }; + Region.prototype.findSubRegion = function (x, y) { + for (var i = 0; i < this.nSubRegions; i++) { + var region = this.subRegions[i]; + if (region.contain(x, y)) { + return region; + } + } + }; + Region.prototype.contain = function (x, y) { + return this.bbox[0] <= x && this.bbox[2] >= x && this.bbox[1] <= y && this.bbox[3] >= y; + }; + Region.prototype.setBBox = function (minX, minY, maxX, maxY) { + this.bbox[0] = minX; + this.bbox[1] = minY; + this.bbox[2] = maxX; + this.bbox[3] = maxY; + this.size = (maxX - minX + maxY - minY) / 2; + }; + Region.prototype._newSubRegion = function () { + var subRegion = this.subRegions[this.nSubRegions]; + if (!subRegion) { + subRegion = new Region(); + this.subRegions[this.nSubRegions] = subRegion; + } + this.nSubRegions++; + return subRegion; + }; + Region.prototype._addNodeToSubRegion = function (node) { + var subRegion = this.findSubRegion(node.position[0], node.position[1]); + var bbox = this.bbox; + if (!subRegion) { + var cx = (bbox[0] + bbox[2]) / 2; + var cy = (bbox[1] + bbox[3]) / 2; + var w = (bbox[2] - bbox[0]) / 2; + var h = (bbox[3] - bbox[1]) / 2; + var xi = node.position[0] >= cx ? 1 : 0; + var yi = node.position[1] >= cy ? 1 : 0; + var subRegion = this._newSubRegion(); + subRegion.setBBox(xi * w + bbox[0], yi * h + bbox[1], (xi + 1) * w + bbox[0], (yi + 1) * h + bbox[1]); + } + subRegion.addNode(node); + }; + Region.prototype._updateCenterOfMass = function (node) { + if (this.centerOfMass == null) { + this.centerOfMass = vec2.create(); + } + var x = this.centerOfMass[0] * this.mass; + var y = this.centerOfMass[1] * this.mass; + x += node.position[0] * node.mass; + y += node.position[1] * node.mass; + this.mass += node.mass; + this.centerOfMass[0] = x / this.mass; + this.centerOfMass[1] = y / this.mass; + }; + function GraphNode() { + this.position = vec2.create(); + this.force = vec2.create(); + this.forcePrev = vec2.create(); + this.speed = vec2.create(); + this.speedPrev = vec2.create(); + this.mass = 1; + this.inDegree = 0; + this.outDegree = 0; + } + function GraphEdge(node1, node2) { + this.node1 = node1; + this.node2 = node2; + this.weight = 1; + } + function ForceLayout() { + this.barnesHutOptimize = false; + this.barnesHutTheta = 1.5; + this.repulsionByDegree = false; + this.preventNodeOverlap = false; + this.preventNodeEdgeOverlap = false; + this.strongGravity = true; + this.gravity = 1; + this.scaling = 1; + this.edgeWeightInfluence = 1; + this.center = [ + 0, + 0 + ]; + this.width = 500; + this.height = 500; + this.maxSpeedIncrease = 1; + this.nodes = []; + this.edges = []; + this.bbox = new ArrayCtor(4); + this._rootRegion = new Region(); + this._rootRegion.centerOfMass = vec2.create(); + this._massArr = null; + this._k = 0; + } + ForceLayout.prototype.nodeToNodeRepulsionFactor = function (mass, d, k) { + return k * k * mass / d; + }; + ForceLayout.prototype.edgeToNodeRepulsionFactor = function (mass, d, k) { + return k * mass / d; + }; + ForceLayout.prototype.attractionFactor = function (w, d, k) { + return w * d / k; + }; + ForceLayout.prototype.initNodes = function (positionArr, massArr, sizeArr) { + this.temperature = 1; + var nNodes = positionArr.length / 2; + this.nodes.length = 0; + var haveSize = typeof sizeArr !== 'undefined'; + for (var i = 0; i < nNodes; i++) { + var node = new GraphNode(); + node.position[0] = positionArr[i * 2]; + node.position[1] = positionArr[i * 2 + 1]; + node.mass = massArr[i]; + if (haveSize) { + node.size = sizeArr[i]; + } + this.nodes.push(node); + } + this._massArr = massArr; + if (haveSize) { + this._sizeArr = sizeArr; + } + }; + ForceLayout.prototype.initEdges = function (edgeArr, edgeWeightArr) { + var nEdges = edgeArr.length / 2; + this.edges.length = 0; + var edgeHaveWeight = typeof edgeWeightArr !== 'undefined'; + for (var i = 0; i < nEdges; i++) { + var sIdx = edgeArr[i * 2]; + var tIdx = edgeArr[i * 2 + 1]; + var sNode = this.nodes[sIdx]; + var tNode = this.nodes[tIdx]; + if (!sNode || !tNode) { + continue; + } + sNode.outDegree++; + tNode.inDegree++; + var edge = new GraphEdge(sNode, tNode); + if (edgeHaveWeight) { + edge.weight = edgeWeightArr[i]; + } + this.edges.push(edge); + } + }; + ForceLayout.prototype.update = function () { + var nNodes = this.nodes.length; + this.updateBBox(); + this._k = 0.4 * this.scaling * Math.sqrt(this.width * this.height / nNodes); + if (this.barnesHutOptimize) { + this._rootRegion.setBBox(this.bbox[0], this.bbox[1], this.bbox[2], this.bbox[3]); + this._rootRegion.beforeUpdate(); + for (var i = 0; i < nNodes; i++) { + this._rootRegion.addNode(this.nodes[i]); + } + this._rootRegion.afterUpdate(); + } else { + var mass = 0; + var centerOfMass = this._rootRegion.centerOfMass; + vec2.set(centerOfMass, 0, 0); + for (var i = 0; i < nNodes; i++) { + var node = this.nodes[i]; + mass += node.mass; + vec2.scaleAndAdd(centerOfMass, centerOfMass, node.position, node.mass); + } + if (mass > 0) { + vec2.scale(centerOfMass, centerOfMass, 1 / mass); + } + } + this.updateForce(); + this.updatePosition(); + }; + ForceLayout.prototype.updateForce = function () { + var nNodes = this.nodes.length; + for (var i = 0; i < nNodes; i++) { + var node = this.nodes[i]; + vec2.copy(node.forcePrev, node.force); + vec2.copy(node.speedPrev, node.speed); + vec2.set(node.force, 0, 0); + } + this.updateNodeNodeForce(); + if (this.gravity > 0) { + this.updateGravityForce(); + } + this.updateEdgeForce(); + if (this.preventNodeEdgeOverlap) { + this.updateNodeEdgeForce(); + } + }; + ForceLayout.prototype.updatePosition = function () { + var nNodes = this.nodes.length; + var v = vec2.create(); + for (var i = 0; i < nNodes; i++) { + var node = this.nodes[i]; + var speed = node.speed; + vec2.scale(node.force, node.force, 1 / 30); + var df = vec2.len(node.force) + 0.1; + var scale = Math.min(df, 500) / df; + vec2.scale(node.force, node.force, scale); + vec2.add(speed, speed, node.force); + vec2.scale(speed, speed, this.temperature); + vec2.sub(v, speed, node.speedPrev); + var swing = vec2.len(v); + if (swing > 0) { + vec2.scale(v, v, 1 / swing); + var base = vec2.len(node.speedPrev); + if (base > 0) { + swing = Math.min(swing / base, this.maxSpeedIncrease) * base; + vec2.scaleAndAdd(speed, node.speedPrev, v, swing); + } + } + var ds = vec2.len(speed); + var scale = Math.min(ds, 100) / (ds + 0.1); + vec2.scale(speed, speed, scale); + vec2.add(node.position, node.position, speed); + } + }; + ForceLayout.prototype.updateNodeNodeForce = function () { + var nNodes = this.nodes.length; + for (var i = 0; i < nNodes; i++) { + var na = this.nodes[i]; + if (this.barnesHutOptimize) { + this.applyRegionToNodeRepulsion(this._rootRegion, na); + } else { + for (var j = i + 1; j < nNodes; j++) { + var nb = this.nodes[j]; + this.applyNodeToNodeRepulsion(na, nb, false); + } + } + } + }; + ForceLayout.prototype.updateGravityForce = function () { + for (var i = 0; i < this.nodes.length; i++) { + this.applyNodeGravity(this.nodes[i]); + } + }; + ForceLayout.prototype.updateEdgeForce = function () { + for (var i = 0; i < this.edges.length; i++) { + this.applyEdgeAttraction(this.edges[i]); + } + }; + ForceLayout.prototype.updateNodeEdgeForce = function () { + for (var i = 0; i < this.nodes.length; i++) { + for (var j = 0; j < this.edges.length; j++) { + this.applyEdgeToNodeRepulsion(this.edges[j], this.nodes[i]); + } + } + }; + ForceLayout.prototype.applyRegionToNodeRepulsion = function () { + var v = vec2.create(); + return function applyRegionToNodeRepulsion(region, node) { + if (region.node) { + this.applyNodeToNodeRepulsion(region.node, node, true); + } else { + if (region.mass === 0 && node.mass === 0) { + return; + } + vec2.sub(v, node.position, region.centerOfMass); + var d2 = v[0] * v[0] + v[1] * v[1]; + if (d2 > this.barnesHutTheta * region.size * region.size) { + var factor = this._k * this._k * (node.mass + region.mass) / (d2 + 1); + vec2.scaleAndAdd(node.force, node.force, v, factor * 2); + } else { + for (var i = 0; i < region.nSubRegions; i++) { + this.applyRegionToNodeRepulsion(region.subRegions[i], node); + } + } + } + }; + }(); + ForceLayout.prototype.applyNodeToNodeRepulsion = function () { + var v = vec2.create(); + return function applyNodeToNodeRepulsion(na, nb, oneWay) { + if (na === nb) { + return; + } + if (na.mass === 0 && nb.mass === 0) { + return; + } + vec2.sub(v, na.position, nb.position); + var d2 = v[0] * v[0] + v[1] * v[1]; + if (d2 === 0) { + return; + } + var factor; + var mass = na.mass + nb.mass; + var d = Math.sqrt(d2); + vec2.scale(v, v, 1 / d); + if (this.preventNodeOverlap) { + d = d - na.size - nb.size; + if (d > 0) { + factor = this.nodeToNodeRepulsionFactor(mass, d, this._k); + } else if (d <= 0) { + factor = this._k * this._k * 10 * mass; + } + } else { + factor = this.nodeToNodeRepulsionFactor(mass, d, this._k); + } + if (!oneWay) { + vec2.scaleAndAdd(na.force, na.force, v, factor * 2); + } + vec2.scaleAndAdd(nb.force, nb.force, v, -factor * 2); + }; + }(); + ForceLayout.prototype.applyEdgeAttraction = function () { + var v = vec2.create(); + return function applyEdgeAttraction(edge) { + var na = edge.node1; + var nb = edge.node2; + vec2.sub(v, na.position, nb.position); + var d = vec2.len(v); + var w; + if (this.edgeWeightInfluence === 0) { + w = 1; + } else if (this.edgeWeightInfluence == 1) { + w = edge.weight; + } else { + w = Math.pow(edge.weight, this.edgeWeightInfluence); + } + var factor; + if (this.preventOverlap) { + d = d - na.size - nb.size; + if (d <= 0) { + return; + } + } + var factor = this.attractionFactor(w, d, this._k); + vec2.scaleAndAdd(na.force, na.force, v, -factor); + vec2.scaleAndAdd(nb.force, nb.force, v, factor); + }; + }(); + ForceLayout.prototype.applyNodeGravity = function () { + var v = vec2.create(); + return function (node) { + vec2.sub(v, this.center, node.position); + if (this.width > this.height) { + v[1] *= this.width / this.height; + } else { + v[0] *= this.height / this.width; + } + var d = vec2.len(v) / 100; + if (this.strongGravity) { + vec2.scaleAndAdd(node.force, node.force, v, d * this.gravity * node.mass); + } else { + vec2.scaleAndAdd(node.force, node.force, v, this.gravity * node.mass / (d + 1)); + } + }; + }(); + ForceLayout.prototype.applyEdgeToNodeRepulsion = function () { + var v12 = vec2.create(); + var v13 = vec2.create(); + var p = vec2.create(); + return function (e, n3) { + var n1 = e.node1; + var n2 = e.node2; + if (n1 === n3 || n2 === n3) { + return; + } + vec2.sub(v12, n2.position, n1.position); + vec2.sub(v13, n3.position, n1.position); + var len12 = vec2.len(v12); + vec2.scale(v12, v12, 1 / len12); + var len = vec2.dot(v12, v13); + if (len < 0 || len > len12) { + return; + } + vec2.scaleAndAdd(p, n1.position, v12, len); + var dist = vec2.dist(p, n3.position) - n3.size; + var factor = this.edgeToNodeRepulsionFactor(n3.mass, Math.max(dist, 0.1), 100); + vec2.sub(v12, n3.position, p); + vec2.normalize(v12, v12); + vec2.scaleAndAdd(n3.force, n3.force, v12, factor); + vec2.scaleAndAdd(n1.force, n1.force, v12, -factor); + vec2.scaleAndAdd(n2.force, n2.force, v12, -factor); + }; + }(); + ForceLayout.prototype.updateBBox = function () { + var minX = Infinity; + var minY = Infinity; + var maxX = -Infinity; + var maxY = -Infinity; + for (var i = 0; i < this.nodes.length; i++) { + var pos = this.nodes[i].position; + minX = Math.min(minX, pos[0]); + minY = Math.min(minY, pos[1]); + maxX = Math.max(maxX, pos[0]); + maxY = Math.max(maxY, pos[1]); + } + this.bbox[0] = minX; + this.bbox[1] = minY; + this.bbox[2] = maxX; + this.bbox[3] = maxY; + }; + ForceLayout.getWorkerCode = function () { + var str = __echartsForceLayoutWorker.toString(); + return str.slice(str.indexOf('{') + 1, str.lastIndexOf('return')); + }; + if (inWorker) { + var forceLayout = null; + self.onmessage = function (e) { + if (e.data instanceof ArrayBuffer) { + if (!forceLayout) + return; + var positionArr = new Float32Array(e.data); + var nNodes = positionArr.length / 2; + for (var i = 0; i < nNodes; i++) { + var node = forceLayout.nodes[i]; + node.position[0] = positionArr[i * 2]; + node.position[1] = positionArr[i * 2 + 1]; + } + return; + } + switch (e.data.cmd) { + case 'init': + if (!forceLayout) { + forceLayout = new ForceLayout(); + } + forceLayout.initNodes(e.data.nodesPosition, e.data.nodesMass, e.data.nodesSize); + forceLayout.initEdges(e.data.edges, e.data.edgesWeight); + break; + case 'updateConfig': + if (forceLayout) { + for (var name in e.data.config) { + forceLayout[name] = e.data.config[name]; + } + } + break; + case 'update': + var steps = e.data.steps; + if (forceLayout) { + var nNodes = forceLayout.nodes.length; + var positionArr = new Float32Array(nNodes * 2); + forceLayout.temperature = e.data.temperature; + for (var i = 0; i < steps; i++) { + forceLayout.update(); + forceLayout.temperature *= e.data.coolDown; + } + for (var i = 0; i < nNodes; i++) { + var node = forceLayout.nodes[i]; + positionArr[i * 2] = node.position[0]; + positionArr[i * 2 + 1] = node.position[1]; + } + self.postMessage(positionArr.buffer, [positionArr.buffer]); + } else { + var emptyArr = new Float32Array(); + self.postMessage(emptyArr.buffer, [emptyArr.buffer]); + } + break; + } + }; + } + return ForceLayout; +});define('echarts/chart/map', [ + 'require', + './base', + 'zrender/shape/Text', + 'zrender/shape/Path', + 'zrender/shape/Circle', + 'zrender/shape/Rectangle', + 'zrender/shape/Line', + 'zrender/shape/Polygon', + 'zrender/shape/Ellipse', + 'zrender/shape/Image', + '../component/dataRange', + '../component/roamController', + '../layer/heatmap', + '../config', + '../util/ecData', + 'zrender/tool/util', + 'zrender/config', + 'zrender/tool/event', + '../util/mapData/params', + '../util/mapData/textFixed', + '../util/mapData/geoCoord', + '../util/projection/svg', + '../util/projection/normal', + '../chart' +], function (require) { + var ChartBase = require('./base'); + var TextShape = require('zrender/shape/Text'); + var PathShape = require('zrender/shape/Path'); + var CircleShape = require('zrender/shape/Circle'); + var RectangleShape = require('zrender/shape/Rectangle'); + var LineShape = require('zrender/shape/Line'); + var PolygonShape = require('zrender/shape/Polygon'); + var EllipseShape = require('zrender/shape/Ellipse'); + var ZrImage = require('zrender/shape/Image'); + require('../component/dataRange'); + require('../component/roamController'); + var HeatmapLayer = require('../layer/heatmap'); + var ecConfig = require('../config'); + ecConfig.map = { + zlevel: 0, + z: 2, + mapType: 'china', + showLegendSymbol: true, + dataRangeHoverLink: true, + hoverable: true, + clickable: true, + itemStyle: { + normal: { + borderColor: 'rgba(0,0,0,0)', + borderWidth: 1, + areaStyle: { color: '#ccc' }, + label: { + show: false, + textStyle: { color: 'rgb(139,69,19)' } + } + }, + emphasis: { + borderColor: 'rgba(0,0,0,0)', + borderWidth: 1, + areaStyle: { color: 'rgba(255,215,0,0.8)' }, + label: { + show: false, + textStyle: { color: 'rgb(100,0,0)' } + } + } + } + }; + var ecData = require('../util/ecData'); + var zrUtil = require('zrender/tool/util'); + var zrConfig = require('zrender/config'); + var zrEvent = require('zrender/tool/event'); + var _mapParams = require('../util/mapData/params').params; + var _textFixed = require('../util/mapData/textFixed'); + var _geoCoord = require('../util/mapData/geoCoord'); + function Map(ecTheme, messageCenter, zr, option, myChart) { + ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); + var self = this; + self._onmousewheel = function (params) { + return self.__onmousewheel(params); + }; + self._onmousedown = function (params) { + return self.__onmousedown(params); + }; + self._onmousemove = function (params) { + return self.__onmousemove(params); + }; + self._onmouseup = function (params) { + return self.__onmouseup(params); + }; + self._onroamcontroller = function (params) { + return self.__onroamcontroller(params); + }; + self._ondrhoverlink = function (params) { + return self.__ondrhoverlink(params); + }; + this._isAlive = true; + this._selectedMode = {}; + this._activeMapType = {}; + this._clickable = {}; + this._hoverable = {}; + this._showLegendSymbol = {}; + this._selected = {}; + this._mapTypeMap = {}; + this._mapDataMap = {}; + this._nameMap = {}; + this._specialArea = {}; + this._refreshDelayTicket; + this._mapDataRequireCounter; + this._markAnimation = false; + this._hoverLinkMap = {}; + this._roamMap = {}; + this._scaleLimitMap = {}; + this._mx; + this._my; + this._mousedown; + this._justMove; + this._curMapType; + this.refresh(option); + this.zr.on(zrConfig.EVENT.MOUSEWHEEL, this._onmousewheel); + this.zr.on(zrConfig.EVENT.MOUSEDOWN, this._onmousedown); + messageCenter.bind(ecConfig.EVENT.ROAMCONTROLLER, this._onroamcontroller); + messageCenter.bind(ecConfig.EVENT.DATA_RANGE_HOVERLINK, this._ondrhoverlink); + } + Map.prototype = { + type: ecConfig.CHART_TYPE_MAP, + _buildShape: function () { + var series = this.series; + this.selectedMap = {}; + this._activeMapType = {}; + var legend = this.component.legend; + var seriesName; + var valueData = {}; + var mapType; + var data; + var name; + var mapSeries = {}; + var mapValuePrecision = {}; + var valueCalculation = {}; + for (var i = 0, l = series.length; i < l; i++) { + if (series[i].type == ecConfig.CHART_TYPE_MAP) { + series[i] = this.reformOption(series[i]); + mapType = series[i].mapType; + mapSeries[mapType] = mapSeries[mapType] || {}; + mapSeries[mapType][i] = true; + mapValuePrecision[mapType] = mapValuePrecision[mapType] || series[i].mapValuePrecision; + this._scaleLimitMap[mapType] = this._scaleLimitMap[mapType] || {}; + series[i].scaleLimit && zrUtil.merge(this._scaleLimitMap[mapType], series[i].scaleLimit, true); + this._roamMap[mapType] = series[i].roam || this._roamMap[mapType]; + if (this._hoverLinkMap[mapType] == null || this._hoverLinkMap[mapType]) { + this._hoverLinkMap[mapType] = series[i].dataRangeHoverLink; + } + this._nameMap[mapType] = this._nameMap[mapType] || {}; + series[i].nameMap && zrUtil.merge(this._nameMap[mapType], series[i].nameMap, true); + this._activeMapType[mapType] = true; + if (series[i].textFixed) { + zrUtil.merge(_textFixed, series[i].textFixed, true); + } + if (series[i].geoCoord) { + zrUtil.merge(_geoCoord, series[i].geoCoord, true); + } + this._selectedMode[mapType] = this._selectedMode[mapType] || series[i].selectedMode; + if (this._hoverable[mapType] == null || this._hoverable[mapType]) { + this._hoverable[mapType] = series[i].hoverable; + } + if (this._clickable[mapType] == null || this._clickable[mapType]) { + this._clickable[mapType] = series[i].clickable; + } + if (this._showLegendSymbol[mapType] == null || this._showLegendSymbol[mapType]) { + this._showLegendSymbol[mapType] = series[i].showLegendSymbol; + } + valueCalculation[mapType] = valueCalculation[mapType] || series[i].mapValueCalculation; + seriesName = series[i].name; + this.selectedMap[seriesName] = legend ? legend.isSelected(seriesName) : true; + if (this.selectedMap[seriesName]) { + valueData[mapType] = valueData[mapType] || {}; + data = series[i].data; + for (var j = 0, k = data.length; j < k; j++) { + name = this._nameChange(mapType, data[j].name); + valueData[mapType][name] = valueData[mapType][name] || { + seriesIndex: [], + valueMap: {}, + precision: 0 + }; + for (var key in data[j]) { + if (key != 'value') { + valueData[mapType][name][key] = data[j][key]; + } else if (!isNaN(data[j].value)) { + valueData[mapType][name].value == null && (valueData[mapType][name].value = 0); + valueData[mapType][name].precision = Math.max(this.getPrecision(+data[j].value), valueData[mapType][name].precision); + valueData[mapType][name].value += +data[j].value; + valueData[mapType][name].valueMap[i] = +data[j].value; + } + } + valueData[mapType][name].seriesIndex.push(i); + } + } + } + } + this._mapDataRequireCounter = 0; + for (var mt in valueData) { + this._mapDataRequireCounter++; + } + this._clearSelected(); + if (this._mapDataRequireCounter === 0) { + this.clear(); + this.zr && this.zr.delShape(this.lastShapeList); + this.lastShapeList = []; + } + for (var mt in valueData) { + for (var k in valueData[mt]) { + if (valueCalculation[mt] == 'average') { + valueData[mt][k].value /= valueData[mt][k].seriesIndex.length; + } + var value = valueData[mt][k].value; + if (value != null) { + valueData[mt][k].value = value.toFixed(mapValuePrecision[mt] == null ? valueData[mt][k].precision : mapValuePrecision[mt]) - 0; + } + } + this._mapDataMap[mt] = this._mapDataMap[mt] || {}; + if (this._mapDataMap[mt].mapData) { + this._mapDataCallback(mt, valueData[mt], mapSeries[mt])(this._mapDataMap[mt].mapData); + } else if (_mapParams[mt.replace(/\|.*/, '')].getGeoJson) { + this._specialArea[mt] = _mapParams[mt.replace(/\|.*/, '')].specialArea || this._specialArea[mt]; + _mapParams[mt.replace(/\|.*/, '')].getGeoJson(this._mapDataCallback(mt, valueData[mt], mapSeries[mt])); + } + } + }, + _mapDataCallback: function (mt, vd, ms) { + var self = this; + return function (md) { + if (!self._isAlive || self._activeMapType[mt] == null) { + return; + } + if (mt.indexOf('|') != -1) { + md = self._getSubMapData(mt, md); + } + self._mapDataMap[mt].mapData = md; + if (md.firstChild) { + self._mapDataMap[mt].rate = 1; + self._mapDataMap[mt].projection = require('../util/projection/svg'); + } else { + self._mapDataMap[mt].rate = 0.75; + self._mapDataMap[mt].projection = require('../util/projection/normal'); + } + self._buildMap(mt, self._getProjectionData(mt, md, ms), vd, ms); + self._buildMark(mt, ms); + if (--self._mapDataRequireCounter <= 0) { + self.addShapeList(); + self.zr.refreshNextFrame(); + } + self._buildHeatmap(mt); + }; + }, + _clearSelected: function () { + for (var k in this._selected) { + if (!this._activeMapType[this._mapTypeMap[k]]) { + delete this._selected[k]; + delete this._mapTypeMap[k]; + } + } + }, + _getSubMapData: function (mapType, mapData) { + var subType = mapType.replace(/^.*\|/, ''); + var features = mapData.features; + for (var i = 0, l = features.length; i < l; i++) { + if (features[i].properties && features[i].properties.name == subType) { + features = features[i]; + if (subType == 'United States of America' && features.geometry.coordinates.length > 1) { + features = { + geometry: { + coordinates: features.geometry.coordinates.slice(5, 6), + type: features.geometry.type + }, + id: features.id, + properties: features.properties, + type: features.type + }; + } + break; + } + } + return { + 'type': 'FeatureCollection', + 'features': [features] + }; + }, + _getProjectionData: function (mapType, mapData, mapSeries) { + var normalProjection = this._mapDataMap[mapType].projection; + var province = []; + var bbox = this._mapDataMap[mapType].bbox || normalProjection.getBbox(mapData, this._specialArea[mapType]); + var transform; + if (!this._mapDataMap[mapType].hasRoam) { + transform = this._getTransform(bbox, mapSeries, this._mapDataMap[mapType].rate); + } else { + transform = this._mapDataMap[mapType].transform; + } + var lastTransform = this._mapDataMap[mapType].lastTransform || { scale: {} }; + var pathArray; + if (transform.left != lastTransform.left || transform.top != lastTransform.top || transform.scale.x != lastTransform.scale.x || transform.scale.y != lastTransform.scale.y) { + pathArray = normalProjection.geoJson2Path(mapData, transform, this._specialArea[mapType]); + lastTransform = zrUtil.clone(transform); + } else { + transform = this._mapDataMap[mapType].transform; + pathArray = this._mapDataMap[mapType].pathArray; + } + this._mapDataMap[mapType].bbox = bbox; + this._mapDataMap[mapType].transform = transform; + this._mapDataMap[mapType].lastTransform = lastTransform; + this._mapDataMap[mapType].pathArray = pathArray; + var position = [ + transform.left, + transform.top + ]; + for (var i = 0, l = pathArray.length; i < l; i++) { + province.push(this._getSingleProvince(mapType, pathArray[i], position)); + } + if (this._specialArea[mapType]) { + for (var area in this._specialArea[mapType]) { + province.push(this._getSpecialProjectionData(mapType, mapData, area, this._specialArea[mapType][area], position)); + } + } + if (mapType == 'china') { + var leftTop = this.geo2pos(mapType, _geoCoord['南海诸岛'] || _mapParams['南海诸岛'].textCoord); + var scale = transform.scale.x / 10.5; + var textPosition = [ + 32 * scale + leftTop[0], + 83 * scale + leftTop[1] + ]; + if (_textFixed['南海诸岛']) { + textPosition[0] += _textFixed['南海诸岛'][0]; + textPosition[1] += _textFixed['南海诸岛'][1]; + } + province.push({ + name: this._nameChange(mapType, '南海诸岛'), + path: _mapParams['南海诸岛'].getPath(leftTop, scale), + position: position, + textX: textPosition[0], + textY: textPosition[1] + }); + } + return province; + }, + _getSpecialProjectionData: function (mapType, mapData, areaName, mapSize, position) { + mapData = this._getSubMapData('x|' + areaName, mapData); + var normalProjection = require('../util/projection/normal'); + var bbox = normalProjection.getBbox(mapData); + var leftTop = this.geo2pos(mapType, [ + mapSize.left, + mapSize.top + ]); + var rightBottom = this.geo2pos(mapType, [ + mapSize.left + mapSize.width, + mapSize.top + mapSize.height + ]); + var width = Math.abs(rightBottom[0] - leftTop[0]); + var height = Math.abs(rightBottom[1] - leftTop[1]); + var mapWidth = bbox.width; + var mapHeight = bbox.height; + var xScale = width / 0.75 / mapWidth; + var yScale = height / mapHeight; + if (xScale > yScale) { + xScale = yScale * 0.75; + width = mapWidth * xScale; + } else { + yScale = xScale; + xScale = yScale * 0.75; + height = mapHeight * yScale; + } + var transform = { + OffsetLeft: leftTop[0], + OffsetTop: leftTop[1], + scale: { + x: xScale, + y: yScale + } + }; + var pathArray = normalProjection.geoJson2Path(mapData, transform); + return this._getSingleProvince(mapType, pathArray[0], position); + }, + _getSingleProvince: function (mapType, path, position) { + var textPosition; + var name = path.properties.name; + var textFixed = _textFixed[name] || [ + 0, + 0 + ]; + if (_geoCoord[name]) { + textPosition = this.geo2pos(mapType, _geoCoord[name]); + } else if (path.cp) { + textPosition = [ + path.cp[0] + textFixed[0], + path.cp[1] + textFixed[1] + ]; + } else { + var bbox = this._mapDataMap[mapType].bbox; + textPosition = this.geo2pos(mapType, [ + bbox.left + bbox.width / 2, + bbox.top + bbox.height / 2 + ]); + textPosition[0] += textFixed[0]; + textPosition[1] += textFixed[1]; + } + path.name = this._nameChange(mapType, name); + path.position = position; + path.textX = textPosition[0]; + path.textY = textPosition[1]; + return path; + }, + _getTransform: function (bbox, mapSeries, rate) { + var series = this.series; + var mapLocation; + var x; + var cusX; + var y; + var cusY; + var width; + var height; + var zrWidth = this.zr.getWidth(); + var zrHeight = this.zr.getHeight(); + var padding = Math.round(Math.min(zrWidth, zrHeight) * 0.02); + for (var key in mapSeries) { + mapLocation = series[key].mapLocation || {}; + cusX = mapLocation.x || cusX; + cusY = mapLocation.y || cusY; + width = mapLocation.width || width; + height = mapLocation.height || height; + } + x = this.parsePercent(cusX, zrWidth); + x = isNaN(x) ? padding : x; + y = this.parsePercent(cusY, zrHeight); + y = isNaN(y) ? padding : y; + width = width == null ? zrWidth - x - 2 * padding : this.parsePercent(width, zrWidth); + height = height == null ? zrHeight - y - 2 * padding : this.parsePercent(height, zrHeight); + var mapWidth = bbox.width; + var mapHeight = bbox.height; + var xScale = width / rate / mapWidth; + var yScale = height / mapHeight; + if (xScale > yScale) { + xScale = yScale * rate; + width = mapWidth * xScale; + } else { + yScale = xScale; + xScale = yScale * rate; + height = mapHeight * yScale; + } + if (isNaN(cusX)) { + cusX = cusX || 'center'; + switch (cusX + '') { + case 'center': + x = Math.floor((zrWidth - width) / 2); + break; + case 'right': + x = zrWidth - width; + break; + } + } + if (isNaN(cusY)) { + cusY = cusY || 'center'; + switch (cusY + '') { + case 'center': + y = Math.floor((zrHeight - height) / 2); + break; + case 'bottom': + y = zrHeight - height; + break; + } + } + return { + left: x, + top: y, + width: width, + height: height, + baseScale: 1, + scale: { + x: xScale, + y: yScale + } + }; + }, + _buildMap: function (mapType, mapData, valueData, mapSeries) { + var series = this.series; + var legend = this.component.legend; + var dataRange = this.component.dataRange; + var seriesName; + var name; + var data; + var value; + var queryTarget; + var color; + var font; + var style; + var highlightStyle; + var shape; + var textShape; + for (var i = 0, l = mapData.length; i < l; i++) { + style = zrUtil.clone(mapData[i]); + highlightStyle = { + name: style.name, + path: style.path, + position: zrUtil.clone(style.position) + }; + name = style.name; + data = valueData[name]; + if (data) { + queryTarget = [data]; + seriesName = ''; + for (var j = 0, k = data.seriesIndex.length; j < k; j++) { + var serie = series[data.seriesIndex[j]]; + queryTarget.push(serie); + seriesName += serie.name + ' '; + if (legend && this._showLegendSymbol[mapType] && legend.hasColor(serie.name)) { + this.shapeList.push(new CircleShape({ + zlevel: serie.zlevel, + z: serie.z + 1, + position: zrUtil.clone(style.position), + _mapType: mapType, + style: { + x: style.textX + 3 + j * 7, + y: style.textY - 10, + r: 3, + color: legend.getColor(serie.name) + }, + hoverable: false + })); + } + } + value = data.value; + } else { + data = { + name: name, + value: '-' + }; + seriesName = ''; + queryTarget = []; + for (var key in mapSeries) { + queryTarget.push(series[key]); + } + value = '-'; + } + this.ecTheme.map && queryTarget.push(this.ecTheme.map); + queryTarget.push(ecConfig.map); + color = dataRange && !isNaN(value) ? dataRange.getColor(value) : null; + style.color = style.color || color || this.getItemStyleColor(this.deepQuery(queryTarget, 'itemStyle.normal.color'), data.seriesIndex, -1, data) || this.deepQuery(queryTarget, 'itemStyle.normal.areaStyle.color'); + style.strokeColor = style.strokeColor || this.deepQuery(queryTarget, 'itemStyle.normal.borderColor'); + style.lineWidth = style.lineWidth || this.deepQuery(queryTarget, 'itemStyle.normal.borderWidth'); + highlightStyle.color = this.getItemStyleColor(this.deepQuery(queryTarget, 'itemStyle.emphasis.color'), data.seriesIndex, -1, data) || this.deepQuery(queryTarget, 'itemStyle.emphasis.areaStyle.color') || style.color; + highlightStyle.strokeColor = this.deepQuery(queryTarget, 'itemStyle.emphasis.borderColor') || style.strokeColor; + highlightStyle.lineWidth = this.deepQuery(queryTarget, 'itemStyle.emphasis.borderWidth') || style.lineWidth; + style.brushType = highlightStyle.brushType = style.brushType || 'both'; + style.lineJoin = highlightStyle.lineJoin = 'round'; + style._name = highlightStyle._name = name; + font = this.deepQuery(queryTarget, 'itemStyle.normal.label.textStyle'); + textShape = { + zlevel: this.getZlevelBase(), + z: this.getZBase() + 1, + position: zrUtil.clone(style.position), + _mapType: mapType, + _geo: this.pos2geo(mapType, [ + style.textX, + style.textY + ]), + style: { + brushType: 'fill', + x: style.textX, + y: style.textY, + text: this.getLabelText(name, value, queryTarget, 'normal'), + _name: name, + textAlign: 'center', + color: this.deepQuery(queryTarget, 'itemStyle.normal.label.show') ? this.deepQuery(queryTarget, 'itemStyle.normal.label.textStyle.color') : 'rgba(0,0,0,0)', + textFont: this.getFont(font) + } + }; + textShape._style = zrUtil.clone(textShape.style); + textShape.highlightStyle = zrUtil.clone(textShape.style); + if (this.deepQuery(queryTarget, 'itemStyle.emphasis.label.show')) { + textShape.highlightStyle.text = this.getLabelText(name, value, queryTarget, 'emphasis'); + textShape.highlightStyle.color = this.deepQuery(queryTarget, 'itemStyle.emphasis.label.textStyle.color') || textShape.style.color; + font = this.deepQuery(queryTarget, 'itemStyle.emphasis.label.textStyle') || font; + textShape.highlightStyle.textFont = this.getFont(font); + } else { + textShape.highlightStyle.color = 'rgba(0,0,0,0)'; + } + shape = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + position: zrUtil.clone(style.position), + style: style, + highlightStyle: highlightStyle, + _style: zrUtil.clone(style), + _mapType: mapType + }; + if (style.scale != null) { + shape.scale = zrUtil.clone(style.scale); + } + textShape = new TextShape(textShape); + switch (shape.style.shapeType) { + case 'rectangle': + shape = new RectangleShape(shape); + break; + case 'line': + shape = new LineShape(shape); + break; + case 'circle': + shape = new CircleShape(shape); + break; + case 'polygon': + shape = new PolygonShape(shape); + break; + case 'ellipse': + shape = new EllipseShape(shape); + break; + default: + shape = new PathShape(shape); + if (shape.buildPathArray) { + shape.style.pathArray = shape.buildPathArray(shape.style.path); + } + break; + } + if (this._selectedMode[mapType] && (this._selected[name] && data.selected !== false) || data.selected === true) { + textShape.style = textShape.highlightStyle; + shape.style = shape.highlightStyle; + } + textShape.clickable = shape.clickable = this._clickable[mapType] && (data.clickable == null || data.clickable); + if (this._selectedMode[mapType]) { + this._selected[name] = this._selected[name] != null ? this._selected[name] : data.selected; + this._mapTypeMap[name] = mapType; + if (data.selectable == null || data.selectable) { + shape.clickable = textShape.clickable = true; + shape.onclick = textShape.onclick = this.shapeHandler.onclick; + } + } + if (this._hoverable[mapType] && (data.hoverable == null || data.hoverable)) { + textShape.hoverable = shape.hoverable = true; + shape.hoverConnect = textShape.id; + textShape.hoverConnect = shape.id; + } else { + textShape.hoverable = shape.hoverable = false; + } + ecData.pack(textShape, { + name: seriesName, + tooltip: this.deepQuery(queryTarget, 'tooltip') + }, 0, data, 0, name); + this.shapeList.push(textShape); + ecData.pack(shape, { + name: seriesName, + tooltip: this.deepQuery(queryTarget, 'tooltip') + }, 0, data, 0, name); + this.shapeList.push(shape); + } + }, + _buildMark: function (mapType, mapSeries) { + this._seriesIndexToMapType = this._seriesIndexToMapType || {}; + this.markAttachStyle = this.markAttachStyle || {}; + var position = [ + this._mapDataMap[mapType].transform.left, + this._mapDataMap[mapType].transform.top + ]; + if (mapType == 'none') { + position = [ + 0, + 0 + ]; + } + for (var sIdx in mapSeries) { + this._seriesIndexToMapType[sIdx] = mapType; + this.markAttachStyle[sIdx] = { + position: position, + _mapType: mapType + }; + this.buildMark(sIdx); + } + }, + _buildHeatmap: function (mapType) { + var series = this.series; + for (var i = 0, l = series.length; i < l; i++) { + if (series[i].heatmap) { + var data = series[i].heatmap.data; + if (series[i].heatmap.needsTransform === false) { + var geo = []; + for (var j = 0, len = data.length; j < len; ++j) { + geo.push([ + data[j][3], + data[j][4], + data[j][2] + ]); + } + var pos = [ + 0, + 0 + ]; + } else { + var geoData = series[i].heatmap._geoData; + if (geoData === undefined) { + series[i].heatmap._geoData = []; + for (var j = 0, len = data.length; j < len; ++j) { + series[i].heatmap._geoData[j] = data[j]; + } + geoData = series[i].heatmap._geoData; + } + var len = data.length; + for (var id = 0; id < len; ++id) { + data[id] = this.geo2pos(mapType, [ + geoData[id][0], + geoData[id][1] + ]); + } + var pos = [ + this._mapDataMap[mapType].transform.left, + this._mapDataMap[mapType].transform.top + ]; + } + var layer = new HeatmapLayer(series[i].heatmap); + var canvas = layer.getCanvas(data[0][3] ? geo : data, this.zr.getWidth(), this.zr.getHeight()); + var image = new ZrImage({ + zlevel: this.getZlevelBase(), + z: this.getZBase() + 1, + position: pos, + scale: [ + 1, + 1 + ], + hoverable: false, + style: { + x: 0, + y: 0, + image: canvas, + width: canvas.width, + height: canvas.height + } + }); + image.type = 'heatmap'; + image._mapType = mapType; + this.shapeList.push(image); + this.zr.addShape(image); + } + } + }, + getMarkCoord: function (seriesIndex, mpData) { + return mpData.geoCoord || _geoCoord[mpData.name] ? this.geo2pos(this._seriesIndexToMapType[seriesIndex], mpData.geoCoord || _geoCoord[mpData.name]) : [ + 0, + 0 + ]; + }, + getMarkGeo: function (mpData) { + return mpData.geoCoord || _geoCoord[mpData.name]; + }, + _nameChange: function (mapType, name) { + return this._nameMap[mapType][name] || name; + }, + getLabelText: function (name, value, queryTarget, status) { + var formatter = this.deepQuery(queryTarget, 'itemStyle.' + status + '.label.formatter'); + if (formatter) { + if (typeof formatter == 'function') { + return formatter.call(this.myChart, name, value); + } else if (typeof formatter == 'string') { + formatter = formatter.replace('{a}', '{a0}').replace('{b}', '{b0}'); + formatter = formatter.replace('{a0}', name).replace('{b0}', value); + return formatter; + } + } else { + return name; + } + }, + _findMapTypeByPos: function (mx, my) { + var transform; + var left; + var top; + var width; + var height; + for (var mapType in this._mapDataMap) { + transform = this._mapDataMap[mapType].transform; + if (!transform || !this._roamMap[mapType] || !this._activeMapType[mapType]) { + continue; + } + left = transform.left; + top = transform.top; + width = transform.width; + height = transform.height; + if (mx >= left && mx <= left + width && my >= top && my <= top + height) { + return mapType; + } + } + return; + }, + __onmousewheel: function (params) { + if (this.shapeList.length <= 0) { + return; + } + for (var i = 0, l = this.shapeList.length; i < l; i++) { + var shape = this.shapeList[i]; + if (shape.__animating) { + return; + } + } + var event = params.event; + var mx = zrEvent.getX(event); + var my = zrEvent.getY(event); + var delta; + var eventDelta = zrEvent.getDelta(event); + var mapType; + var mapTypeControl = params.mapTypeControl; + if (!mapTypeControl) { + mapTypeControl = {}; + mapType = this._findMapTypeByPos(mx, my); + if (mapType && this._roamMap[mapType] && this._roamMap[mapType] != 'move') { + mapTypeControl[mapType] = true; + } + } + function scalePolyline(shapeStyle, delta) { + for (var i = 0; i < shapeStyle.pointList.length; i++) { + var point = shapeStyle.pointList[i]; + point[0] *= delta; + point[1] *= delta; + } + var controlPointList = shapeStyle.controlPointList; + if (controlPointList) { + for (var i = 0; i < controlPointList.length; i++) { + var point = controlPointList[i]; + point[0] *= delta; + point[1] *= delta; + } + } + } + function scaleMarkline(shapeStyle, delta) { + shapeStyle.xStart *= delta; + shapeStyle.yStart *= delta; + shapeStyle.xEnd *= delta; + shapeStyle.yEnd *= delta; + if (shapeStyle.cpX1 != null) { + shapeStyle.cpX1 *= delta; + shapeStyle.cpY1 *= delta; + } + } + var haveScale = false; + for (mapType in mapTypeControl) { + if (mapTypeControl[mapType]) { + haveScale = true; + var transform = this._mapDataMap[mapType].transform; + var left = transform.left; + var top = transform.top; + var width = transform.width; + var height = transform.height; + var geoAndPos = this.pos2geo(mapType, [ + mx - left, + my - top + ]); + if (eventDelta > 0) { + delta = 1.2; + if (this._scaleLimitMap[mapType].max != null && transform.baseScale >= this._scaleLimitMap[mapType].max) { + continue; + } + } else { + delta = 1 / 1.2; + if (this._scaleLimitMap[mapType].min != null && transform.baseScale <= this._scaleLimitMap[mapType].min) { + continue; + } + } + transform.baseScale *= delta; + transform.scale.x *= delta; + transform.scale.y *= delta; + transform.width = width * delta; + transform.height = height * delta; + this._mapDataMap[mapType].hasRoam = true; + this._mapDataMap[mapType].transform = transform; + geoAndPos = this.geo2pos(mapType, geoAndPos); + transform.left -= geoAndPos[0] - (mx - left); + transform.top -= geoAndPos[1] - (my - top); + this._mapDataMap[mapType].transform = transform; + this.clearEffectShape(true); + for (var i = 0, l = this.shapeList.length; i < l; i++) { + var shape = this.shapeList[i]; + if (shape._mapType == mapType) { + var shapeType = shape.type; + var shapeStyle = shape.style; + shape.position[0] = transform.left; + shape.position[1] = transform.top; + switch (shapeType) { + case 'path': + case 'symbol': + case 'circle': + case 'rectangle': + case 'polygon': + case 'line': + case 'ellipse': + case 'heatmap': + shape.scale[0] *= delta; + shape.scale[1] *= delta; + break; + case 'mark-line': + scaleMarkline(shapeStyle, delta); + break; + case 'polyline': + scalePolyline(shapeStyle, delta); + break; + case 'shape-bundle': + for (var j = 0; j < shapeStyle.shapeList.length; j++) { + var subShape = shapeStyle.shapeList[j]; + if (subShape.type == 'mark-line') { + scaleMarkline(subShape.style, delta); + } else if (subShape.type == 'polyline') { + scalePolyline(subShape.style, delta); + } + } + break; + case 'icon': + case 'image': + geoAndPos = this.geo2pos(mapType, shape._geo); + shapeStyle.x = shapeStyle._x = geoAndPos[0] - shapeStyle.width / 2; + shapeStyle.y = shapeStyle._y = geoAndPos[1] - shapeStyle.height / 2; + break; + default: + geoAndPos = this.geo2pos(mapType, shape._geo); + shapeStyle.x = geoAndPos[0]; + shapeStyle.y = geoAndPos[1]; + if (shapeType == 'text') { + shape._style.x = shape.highlightStyle.x = geoAndPos[0]; + shape._style.y = shape.highlightStyle.y = geoAndPos[1]; + } + } + this.zr.modShape(shape.id); + } + } + } + } + if (haveScale) { + zrEvent.stop(event); + this.zr.refreshNextFrame(); + var self = this; + clearTimeout(this._refreshDelayTicket); + this._refreshDelayTicket = setTimeout(function () { + self && self.shapeList && self.animationEffect(); + }, 100); + this.messageCenter.dispatch(ecConfig.EVENT.MAP_ROAM, params.event, { type: 'scale' }, this.myChart); + } + }, + __onmousedown: function (params) { + if (this.shapeList.length <= 0) { + return; + } + var target = params.target; + if (target && target.draggable) { + return; + } + var event = params.event; + var mx = zrEvent.getX(event); + var my = zrEvent.getY(event); + var mapType = this._findMapTypeByPos(mx, my); + if (mapType && this._roamMap[mapType] && this._roamMap[mapType] != 'scale') { + this._mousedown = true; + this._mx = mx; + this._my = my; + this._curMapType = mapType; + this.zr.on(zrConfig.EVENT.MOUSEUP, this._onmouseup); + var self = this; + setTimeout(function () { + self.zr.on(zrConfig.EVENT.MOUSEMOVE, self._onmousemove); + }, 100); + } + }, + __onmousemove: function (params) { + if (!this._mousedown || !this._isAlive) { + return; + } + var event = params.event; + var mx = zrEvent.getX(event); + var my = zrEvent.getY(event); + var transform = this._mapDataMap[this._curMapType].transform; + transform.hasRoam = true; + transform.left -= this._mx - mx; + transform.top -= this._my - my; + this._mx = mx; + this._my = my; + this._mapDataMap[this._curMapType].transform = transform; + for (var i = 0, l = this.shapeList.length; i < l; i++) { + if (this.shapeList[i]._mapType == this._curMapType) { + this.shapeList[i].position[0] = transform.left; + this.shapeList[i].position[1] = transform.top; + this.zr.modShape(this.shapeList[i].id); + } + } + this.messageCenter.dispatch(ecConfig.EVENT.MAP_ROAM, params.event, { type: 'move' }, this.myChart); + this.clearEffectShape(true); + this.zr.refreshNextFrame(); + this._justMove = true; + zrEvent.stop(event); + }, + __onmouseup: function (params) { + var event = params.event; + this._mx = zrEvent.getX(event); + this._my = zrEvent.getY(event); + this._mousedown = false; + var self = this; + setTimeout(function () { + self._justMove && self.animationEffect(); + self._justMove = false; + self.zr.un(zrConfig.EVENT.MOUSEMOVE, self._onmousemove); + self.zr.un(zrConfig.EVENT.MOUSEUP, self._onmouseup); + }, 120); + }, + __onroamcontroller: function (params) { + var event = params.event; + event.zrenderX = this.zr.getWidth() / 2; + event.zrenderY = this.zr.getHeight() / 2; + var mapTypeControl = params.mapTypeControl; + var top = 0; + var left = 0; + var step = params.step; + switch (params.roamType) { + case 'scaleUp': + event.zrenderDelta = 1; + this.__onmousewheel({ + event: event, + mapTypeControl: mapTypeControl + }); + return; + case 'scaleDown': + event.zrenderDelta = -1; + this.__onmousewheel({ + event: event, + mapTypeControl: mapTypeControl + }); + return; + case 'up': + top = -step; + break; + case 'down': + top = step; + break; + case 'left': + left = -step; + break; + case 'right': + left = step; + break; + } + var transform; + var curMapType; + for (curMapType in mapTypeControl) { + if (!this._mapDataMap[curMapType] || !this._activeMapType[curMapType]) { + continue; + } + transform = this._mapDataMap[curMapType].transform; + transform.hasRoam = true; + transform.left -= left; + transform.top -= top; + this._mapDataMap[curMapType].transform = transform; + } + for (var i = 0, l = this.shapeList.length; i < l; i++) { + curMapType = this.shapeList[i]._mapType; + if (!mapTypeControl[curMapType] || !this._activeMapType[curMapType]) { + continue; + } + transform = this._mapDataMap[curMapType].transform; + this.shapeList[i].position[0] = transform.left; + this.shapeList[i].position[1] = transform.top; + this.zr.modShape(this.shapeList[i].id); + } + this.messageCenter.dispatch(ecConfig.EVENT.MAP_ROAM, params.event, { type: 'move' }, this.myChart); + this.clearEffectShape(true); + this.zr.refreshNextFrame(); + clearTimeout(this.dircetionTimer); + var self = this; + this.dircetionTimer = setTimeout(function () { + self.animationEffect(); + }, 150); + }, + __ondrhoverlink: function (param) { + var curMapType; + var value; + for (var i = 0, l = this.shapeList.length; i < l; i++) { + curMapType = this.shapeList[i]._mapType; + if (!this._hoverLinkMap[curMapType] || !this._activeMapType[curMapType]) { + continue; + } + value = ecData.get(this.shapeList[i], 'value'); + if (value != null && value >= param.valueMin && value <= param.valueMax) { + this.zr.addHoverShape(this.shapeList[i]); + } + } + }, + onclick: function (params) { + if (!this.isClick || !params.target || this._justMove || params.target.type == 'icon') { + return; + } + this.isClick = false; + var target = params.target; + var name = target.style._name; + var len = this.shapeList.length; + var mapType = target._mapType || ''; + if (this._selectedMode[mapType] == 'single') { + for (var p in this._selected) { + if (this._selected[p] && this._mapTypeMap[p] == mapType) { + for (var i = 0; i < len; i++) { + if (this.shapeList[i].style._name == p && this.shapeList[i]._mapType == mapType) { + this.shapeList[i].style = this.shapeList[i]._style; + this.zr.modShape(this.shapeList[i].id); + } + } + p != name && (this._selected[p] = false); + } + } + } + this._selected[name] = !this._selected[name]; + for (var i = 0; i < len; i++) { + if (this.shapeList[i].style._name == name && this.shapeList[i]._mapType == mapType) { + if (this._selected[name]) { + this.shapeList[i].style = this.shapeList[i].highlightStyle; + } else { + this.shapeList[i].style = this.shapeList[i]._style; + } + this.zr.modShape(this.shapeList[i].id); + } + } + this.messageCenter.dispatch(ecConfig.EVENT.MAP_SELECTED, params.event, { + selected: this._selected, + target: name + }, this.myChart); + this.zr.refreshNextFrame(); + var self = this; + setTimeout(function () { + self.zr.trigger(zrConfig.EVENT.MOUSEMOVE, params.event); + }, 100); + }, + refresh: function (newOption) { + if (newOption) { + this.option = newOption; + this.series = newOption.series; + } + if (this._mapDataRequireCounter > 0) { + this.clear(); + } else { + this.backupShapeList(); + } + this._buildShape(); + this.zr.refreshHover(); + }, + ondataRange: function (param, status) { + if (this.component.dataRange) { + this.refresh(); + status.needRefresh = true; + } + return; + }, + pos2geo: function (mapType, p) { + if (!this._mapDataMap[mapType].transform) { + return null; + } + return this._mapDataMap[mapType].projection.pos2geo(this._mapDataMap[mapType].transform, p); + }, + getGeoByPos: function (mapType, p) { + if (!this._mapDataMap[mapType].transform) { + return null; + } + var position = [ + this._mapDataMap[mapType].transform.left, + this._mapDataMap[mapType].transform.top + ]; + if (p instanceof Array) { + p[0] -= position[0]; + p[1] -= position[1]; + } else { + p.x -= position[0]; + p.y -= position[1]; + } + return this.pos2geo(mapType, p); + }, + geo2pos: function (mapType, p) { + if (!this._mapDataMap[mapType].transform) { + return null; + } + return this._mapDataMap[mapType].projection.geo2pos(this._mapDataMap[mapType].transform, p); + }, + getPosByGeo: function (mapType, p) { + if (!this._mapDataMap[mapType].transform) { + return null; + } + var pos = this.geo2pos(mapType, p); + pos[0] += this._mapDataMap[mapType].transform.left; + pos[1] += this._mapDataMap[mapType].transform.top; + return pos; + }, + getMapPosition: function (mapType) { + if (!this._mapDataMap[mapType].transform) { + return null; + } + return [ + this._mapDataMap[mapType].transform.left, + this._mapDataMap[mapType].transform.top + ]; + }, + onbeforDispose: function () { + this._isAlive = false; + this.zr.un(zrConfig.EVENT.MOUSEWHEEL, this._onmousewheel); + this.zr.un(zrConfig.EVENT.MOUSEDOWN, this._onmousedown); + this.messageCenter.unbind(ecConfig.EVENT.ROAMCONTROLLER, this._onroamcontroller); + this.messageCenter.unbind(ecConfig.EVENT.DATA_RANGE_HOVERLINK, this._ondrhoverlink); + } + }; + zrUtil.inherits(Map, ChartBase); + require('../chart').define('map', Map); + return Map; +});define('zrender/shape/Path', [ + 'require', + './Base', + './util/PathProxy', + '../tool/util' +], function (require) { + var Base = require('./Base'); + var PathProxy = require('./util/PathProxy'); + var PathSegment = PathProxy.PathSegment; + var vMag = function (v) { + return Math.sqrt(v[0] * v[0] + v[1] * v[1]); + }; + var vRatio = function (u, v) { + return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v)); + }; + var vAngle = function (u, v) { + return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(vRatio(u, v)); + }; + var Path = function (options) { + Base.call(this, options); + }; + Path.prototype = { + type: 'path', + buildPathArray: function (data, x, y) { + if (!data) { + return []; + } + x = x || 0; + y = y || 0; + var cs = data; + var cc = [ + 'm', + 'M', + 'l', + 'L', + 'v', + 'V', + 'h', + 'H', + 'z', + 'Z', + 'c', + 'C', + 'q', + 'Q', + 't', + 'T', + 's', + 'S', + 'a', + 'A' + ]; + cs = cs.replace(/-/g, ' -'); + cs = cs.replace(/ /g, ' '); + cs = cs.replace(/ /g, ','); + cs = cs.replace(/,,/g, ','); + var n; + for (n = 0; n < cc.length; n++) { + cs = cs.replace(new RegExp(cc[n], 'g'), '|' + cc[n]); + } + var arr = cs.split('|'); + var ca = []; + var cpx = 0; + var cpy = 0; + for (n = 1; n < arr.length; n++) { + var str = arr[n]; + var c = str.charAt(0); + str = str.slice(1); + str = str.replace(new RegExp('e,-', 'g'), 'e-'); + var p = str.split(','); + if (p.length > 0 && p[0] === '') { + p.shift(); + } + for (var i = 0; i < p.length; i++) { + p[i] = parseFloat(p[i]); + } + while (p.length > 0) { + if (isNaN(p[0])) { + break; + } + var cmd = null; + var points = []; + var ctlPtx; + var ctlPty; + var prevCmd; + var rx; + var ry; + var psi; + var fa; + var fs; + var x1 = cpx; + var y1 = cpy; + switch (c) { + case 'l': + cpx += p.shift(); + cpy += p.shift(); + cmd = 'L'; + points.push(cpx, cpy); + break; + case 'L': + cpx = p.shift(); + cpy = p.shift(); + points.push(cpx, cpy); + break; + case 'm': + cpx += p.shift(); + cpy += p.shift(); + cmd = 'M'; + points.push(cpx, cpy); + c = 'l'; + break; + case 'M': + cpx = p.shift(); + cpy = p.shift(); + cmd = 'M'; + points.push(cpx, cpy); + c = 'L'; + break; + case 'h': + cpx += p.shift(); + cmd = 'L'; + points.push(cpx, cpy); + break; + case 'H': + cpx = p.shift(); + cmd = 'L'; + points.push(cpx, cpy); + break; + case 'v': + cpy += p.shift(); + cmd = 'L'; + points.push(cpx, cpy); + break; + case 'V': + cpy = p.shift(); + cmd = 'L'; + points.push(cpx, cpy); + break; + case 'C': + points.push(p.shift(), p.shift(), p.shift(), p.shift()); + cpx = p.shift(); + cpy = p.shift(); + points.push(cpx, cpy); + break; + case 'c': + points.push(cpx + p.shift(), cpy + p.shift(), cpx + p.shift(), cpy + p.shift()); + cpx += p.shift(); + cpy += p.shift(); + cmd = 'C'; + points.push(cpx, cpy); + break; + case 'S': + ctlPtx = cpx; + ctlPty = cpy; + prevCmd = ca[ca.length - 1]; + if (prevCmd.command === 'C') { + ctlPtx = cpx + (cpx - prevCmd.points[2]); + ctlPty = cpy + (cpy - prevCmd.points[3]); + } + points.push(ctlPtx, ctlPty, p.shift(), p.shift()); + cpx = p.shift(); + cpy = p.shift(); + cmd = 'C'; + points.push(cpx, cpy); + break; + case 's': + ctlPtx = cpx, ctlPty = cpy; + prevCmd = ca[ca.length - 1]; + if (prevCmd.command === 'C') { + ctlPtx = cpx + (cpx - prevCmd.points[2]); + ctlPty = cpy + (cpy - prevCmd.points[3]); + } + points.push(ctlPtx, ctlPty, cpx + p.shift(), cpy + p.shift()); + cpx += p.shift(); + cpy += p.shift(); + cmd = 'C'; + points.push(cpx, cpy); + break; + case 'Q': + points.push(p.shift(), p.shift()); + cpx = p.shift(); + cpy = p.shift(); + points.push(cpx, cpy); + break; + case 'q': + points.push(cpx + p.shift(), cpy + p.shift()); + cpx += p.shift(); + cpy += p.shift(); + cmd = 'Q'; + points.push(cpx, cpy); + break; + case 'T': + ctlPtx = cpx, ctlPty = cpy; + prevCmd = ca[ca.length - 1]; + if (prevCmd.command === 'Q') { + ctlPtx = cpx + (cpx - prevCmd.points[0]); + ctlPty = cpy + (cpy - prevCmd.points[1]); + } + cpx = p.shift(); + cpy = p.shift(); + cmd = 'Q'; + points.push(ctlPtx, ctlPty, cpx, cpy); + break; + case 't': + ctlPtx = cpx, ctlPty = cpy; + prevCmd = ca[ca.length - 1]; + if (prevCmd.command === 'Q') { + ctlPtx = cpx + (cpx - prevCmd.points[0]); + ctlPty = cpy + (cpy - prevCmd.points[1]); + } + cpx += p.shift(); + cpy += p.shift(); + cmd = 'Q'; + points.push(ctlPtx, ctlPty, cpx, cpy); + break; + case 'A': + rx = p.shift(); + ry = p.shift(); + psi = p.shift(); + fa = p.shift(); + fs = p.shift(); + x1 = cpx, y1 = cpy; + cpx = p.shift(), cpy = p.shift(); + cmd = 'A'; + points = this._convertPoint(x1, y1, cpx, cpy, fa, fs, rx, ry, psi); + break; + case 'a': + rx = p.shift(); + ry = p.shift(); + psi = p.shift(); + fa = p.shift(); + fs = p.shift(); + x1 = cpx, y1 = cpy; + cpx += p.shift(); + cpy += p.shift(); + cmd = 'A'; + points = this._convertPoint(x1, y1, cpx, cpy, fa, fs, rx, ry, psi); + break; + } + for (var j = 0, l = points.length; j < l; j += 2) { + points[j] += x; + points[j + 1] += y; + } + ca.push(new PathSegment(cmd || c, points)); + } + if (c === 'z' || c === 'Z') { + ca.push(new PathSegment('z', [])); + } + } + return ca; + }, + _convertPoint: function (x1, y1, x2, y2, fa, fs, rx, ry, psiDeg) { + var psi = psiDeg * (Math.PI / 180); + var xp = Math.cos(psi) * (x1 - x2) / 2 + Math.sin(psi) * (y1 - y2) / 2; + var yp = -1 * Math.sin(psi) * (x1 - x2) / 2 + Math.cos(psi) * (y1 - y2) / 2; + var lambda = xp * xp / (rx * rx) + yp * yp / (ry * ry); + if (lambda > 1) { + rx *= Math.sqrt(lambda); + ry *= Math.sqrt(lambda); + } + var f = Math.sqrt((rx * rx * (ry * ry) - rx * rx * (yp * yp) - ry * ry * (xp * xp)) / (rx * rx * (yp * yp) + ry * ry * (xp * xp))); + if (fa === fs) { + f *= -1; + } + if (isNaN(f)) { + f = 0; + } + var cxp = f * rx * yp / ry; + var cyp = f * -ry * xp / rx; + var cx = (x1 + x2) / 2 + Math.cos(psi) * cxp - Math.sin(psi) * cyp; + var cy = (y1 + y2) / 2 + Math.sin(psi) * cxp + Math.cos(psi) * cyp; + var theta = vAngle([ + 1, + 0 + ], [ + (xp - cxp) / rx, + (yp - cyp) / ry + ]); + var u = [ + (xp - cxp) / rx, + (yp - cyp) / ry + ]; + var v = [ + (-1 * xp - cxp) / rx, + (-1 * yp - cyp) / ry + ]; + var dTheta = vAngle(u, v); + if (vRatio(u, v) <= -1) { + dTheta = Math.PI; + } + if (vRatio(u, v) >= 1) { + dTheta = 0; + } + if (fs === 0 && dTheta > 0) { + dTheta = dTheta - 2 * Math.PI; + } + if (fs === 1 && dTheta < 0) { + dTheta = dTheta + 2 * Math.PI; + } + return [ + cx, + cy, + rx, + ry, + theta, + dTheta, + psi, + fs + ]; + }, + buildPath: function (ctx, style) { + var path = style.path; + var x = style.x || 0; + var y = style.y || 0; + style.pathArray = style.pathArray || this.buildPathArray(path, x, y); + var pathArray = style.pathArray; + var pointList = style.pointList = []; + var singlePointList = []; + for (var i = 0, l = pathArray.length; i < l; i++) { + if (pathArray[i].command.toUpperCase() == 'M') { + singlePointList.length > 0 && pointList.push(singlePointList); + singlePointList = []; + } + var p = pathArray[i].points; + for (var j = 0, k = p.length; j < k; j += 2) { + singlePointList.push([ + p[j], + p[j + 1] + ]); + } + } + singlePointList.length > 0 && pointList.push(singlePointList); + for (var i = 0, l = pathArray.length; i < l; i++) { + var c = pathArray[i].command; + var p = pathArray[i].points; + switch (c) { + case 'L': + ctx.lineTo(p[0], p[1]); + break; + case 'M': + ctx.moveTo(p[0], p[1]); + break; + case 'C': + ctx.bezierCurveTo(p[0], p[1], p[2], p[3], p[4], p[5]); + break; + case 'Q': + ctx.quadraticCurveTo(p[0], p[1], p[2], p[3]); + break; + case 'A': + var cx = p[0]; + var cy = p[1]; + var rx = p[2]; + var ry = p[3]; + var theta = p[4]; + var dTheta = p[5]; + var psi = p[6]; + var fs = p[7]; + var r = rx > ry ? rx : ry; + var scaleX = rx > ry ? 1 : rx / ry; + var scaleY = rx > ry ? ry / rx : 1; + ctx.translate(cx, cy); + ctx.rotate(psi); + ctx.scale(scaleX, scaleY); + ctx.arc(0, 0, r, theta, theta + dTheta, 1 - fs); + ctx.scale(1 / scaleX, 1 / scaleY); + ctx.rotate(-psi); + ctx.translate(-cx, -cy); + break; + case 'z': + ctx.closePath(); + break; + } + } + return; + }, + getRect: function (style) { + if (style.__rect) { + return style.__rect; + } + var lineWidth; + if (style.brushType == 'stroke' || style.brushType == 'fill') { + lineWidth = style.lineWidth || 1; + } else { + lineWidth = 0; + } + var minX = Number.MAX_VALUE; + var maxX = Number.MIN_VALUE; + var minY = Number.MAX_VALUE; + var maxY = Number.MIN_VALUE; + var x = style.x || 0; + var y = style.y || 0; + var pathArray = style.pathArray || this.buildPathArray(style.path); + for (var i = 0; i < pathArray.length; i++) { + var p = pathArray[i].points; + for (var j = 0; j < p.length; j++) { + if (j % 2 === 0) { + if (p[j] + x < minX) { + minX = p[j]; + } + if (p[j] + x > maxX) { + maxX = p[j]; + } + } else { + if (p[j] + y < minY) { + minY = p[j]; + } + if (p[j] + y > maxY) { + maxY = p[j]; + } + } + } + } + var rect; + if (minX === Number.MAX_VALUE || maxX === Number.MIN_VALUE || minY === Number.MAX_VALUE || maxY === Number.MIN_VALUE) { + rect = { + x: 0, + y: 0, + width: 0, + height: 0 + }; + } else { + rect = { + x: Math.round(minX - lineWidth / 2), + y: Math.round(minY - lineWidth / 2), + width: maxX - minX + lineWidth, + height: maxY - minY + lineWidth + }; + } + style.__rect = rect; + return rect; + } + }; + require('../tool/util').inherits(Path, Base); + return Path; +});define('zrender/shape/Ellipse', [ + 'require', + './Base', + '../tool/util' +], function (require) { + var Base = require('./Base'); + var Ellipse = function (options) { + Base.call(this, options); + }; + Ellipse.prototype = { + type: 'ellipse', + buildPath: function (ctx, style) { + var k = 0.5522848; + var x = style.x; + var y = style.y; + var a = style.a; + var b = style.b; + var ox = a * k; + var oy = b * k; + ctx.moveTo(x - a, y); + ctx.bezierCurveTo(x - a, y - oy, x - ox, y - b, x, y - b); + ctx.bezierCurveTo(x + ox, y - b, x + a, y - oy, x + a, y); + ctx.bezierCurveTo(x + a, y + oy, x + ox, y + b, x, y + b); + ctx.bezierCurveTo(x - ox, y + b, x - a, y + oy, x - a, y); + ctx.closePath(); + }, + getRect: function (style) { + if (style.__rect) { + return style.__rect; + } + var lineWidth; + if (style.brushType == 'stroke' || style.brushType == 'fill') { + lineWidth = style.lineWidth || 1; + } else { + lineWidth = 0; + } + style.__rect = { + x: Math.round(style.x - style.a - lineWidth / 2), + y: Math.round(style.y - style.b - lineWidth / 2), + width: style.a * 2 + lineWidth, + height: style.b * 2 + lineWidth + }; + return style.__rect; + } + }; + require('../tool/util').inherits(Ellipse, Base); + return Ellipse; +});define('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 (require) { + var Base = require('./base'); + var RectangleShape = require('zrender/shape/Rectangle'); + var SectorShape = require('zrender/shape/Sector'); + var CircleShape = require('zrender/shape/Circle'); + var ecConfig = require('../config'); + ecConfig.roamController = { + zlevel: 0, + z: 4, + show: true, + 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 zrUtil = require('zrender/tool/util'); + var zrColor = require('zrender/tool/color'); + var zrEvent = require('zrender/tool/event'); + function RoamController(ecTheme, messageCenter, zr, option, myChart) { + this.rcOption = {}; + if (!option.roamController || !option.roamController.show) { + return; + } + if (!option.roamController.mapTypeControl) { + console.error('option.roamController.mapTypeControl has not been defined.'); + return; + } + Base.call(this, ecTheme, messageCenter, zr, option, myChart); + this.rcOption = option.roamController; + var self = this; + this._drictionMouseDown = function (params) { + return self.__drictionMouseDown(params); + }; + this._drictionMouseUp = function (params) { + return self.__drictionMouseUp(params); + }; + this._drictionMouseMove = function (params) { + return self.__drictionMouseMove(params); + }; + this._drictionMouseOut = function (params) { + return self.__drictionMouseOut(params); + }; + this._scaleHandler = function (params) { + return self.__scaleHandler(params); + }; + this.refresh(option); + } + RoamController.prototype = { + type: ecConfig.COMPONENT_TYPE_ROAMCONTROLLER, + _buildShape: function () { + if (!this.rcOption.show) { + return; + } + this._itemGroupLocation = this._getItemGroupLocation(); + this._buildBackground(); + this._buildItem(); + for (var i = 0, l = this.shapeList.length; i < l; i++) { + this.zr.addShape(this.shapeList[i]); + } + }, + _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 (direction) { + var r = this._itemGroupLocation.r; + var x = this._itemGroupLocation.x + r; + var y = this._itemGroupLocation.y + r; + var sectorShape = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: { + x: x, + y: y, + r: r, + startAngle: -45, + endAngle: 45, + color: this.rcOption.handleColor, + text: '>', + textX: x + r / 2 + 4, + textY: y - 0.5, + textAlign: 'center', + textBaseline: 'middle', + textPosition: 'specific', + textColor: this.rcOption.fillerColor, + textFont: Math.floor(r / 2) + 'px arial' + }, + highlightStyle: { + color: zrColor.lift(this.rcOption.handleColor, -0.2), + brushType: 'fill' + }, + clickable: true + }; + switch (direction) { + case 'up': + sectorShape.rotation = [ + Math.PI / 2, + x, + y + ]; + break; + case 'left': + sectorShape.rotation = [ + Math.PI, + x, + y + ]; + break; + case 'down': + sectorShape.rotation = [ + -Math.PI / 2, + x, + y + ]; + break; + } + sectorShape = new SectorShape(sectorShape); + sectorShape._roamType = direction; + sectorShape.onmousedown = this._drictionMouseDown; + sectorShape.onmouseup = this._drictionMouseUp; + sectorShape.onmousemove = this._drictionMouseMove; + sectorShape.onmouseout = this._drictionMouseOut; + return sectorShape; + }, + _getScaleShape: function (text) { + var width = this._itemGroupLocation.width; + var height = this._itemGroupLocation.height - width; + height = height < 0 ? 20 : height; + var r = Math.min(width / 2 - 5, height) / 2; + var x = this._itemGroupLocation.x + (text === 'scaleDown' ? width - r : r); + var y = this._itemGroupLocation.y + this._itemGroupLocation.height - r; + var scaleShape = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: { + x: x, + y: y, + r: r, + color: this.rcOption.handleColor, + text: text === 'scaleDown' ? '-' : '+', + textX: x, + textY: y - 2, + textAlign: 'center', + textBaseline: 'middle', + textPosition: 'specific', + textColor: this.rcOption.fillerColor, + textFont: Math.floor(r) + 'px verdana' + }, + highlightStyle: { + color: zrColor.lift(this.rcOption.handleColor, -0.2), + brushType: 'fill' + }, + clickable: true + }; + scaleShape = new CircleShape(scaleShape); + scaleShape._roamType = text; + scaleShape.onmousedown = this._scaleHandler; + return scaleShape; + }, + _buildBackground: function () { + var padding = this.reformCssArray(this.rcOption.padding); + this.shapeList.push(new RectangleShape({ + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: false, + style: { + x: this._itemGroupLocation.x - padding[3], + y: this._itemGroupLocation.y - padding[0], + width: this._itemGroupLocation.width + padding[3] + padding[1], + height: this._itemGroupLocation.height + padding[0] + padding[2], + brushType: this.rcOption.borderWidth === 0 ? 'fill' : 'both', + color: this.rcOption.backgroundColor, + strokeColor: this.rcOption.borderColor, + lineWidth: this.rcOption.borderWidth + } + })); + }, + _getItemGroupLocation: function () { + var padding = this.reformCssArray(this.rcOption.padding); + var width = this.rcOption.width; + var height = this.rcOption.height; + var zrWidth = this.zr.getWidth(); + var zrHeight = this.zr.getHeight(); + var x; + switch (this.rcOption.x) { + case 'center': + x = Math.floor((zrWidth - width) / 2); + break; + case 'left': + x = padding[3] + this.rcOption.borderWidth; + break; + case 'right': + x = zrWidth - width - padding[1] - padding[3] - this.rcOption.borderWidth * 2; + break; + default: + x = this.parsePercent(this.rcOption.x, zrWidth); + break; + } + var y; + switch (this.rcOption.y) { + case 'top': + y = padding[0] + this.rcOption.borderWidth; + break; + case 'bottom': + y = zrHeight - height - padding[0] - padding[2] - this.rcOption.borderWidth * 2; + break; + case 'center': + y = Math.floor((zrHeight - height) / 2); + break; + default: + y = this.parsePercent(this.rcOption.y, zrHeight); + break; + } + return { + x: x, + y: y, + r: width / 2, + width: width, + height: height + }; + }, + __drictionMouseDown: function (params) { + this.mousedown = true; + this._drictionHandlerOn(params); + }, + __drictionMouseUp: function (params) { + this.mousedown = false; + this._drictionHandlerOff(params); + }, + __drictionMouseMove: function (params) { + if (this.mousedown) { + this._drictionHandlerOn(params); + } + }, + __drictionMouseOut: function (params) { + this._drictionHandlerOff(params); + }, + _drictionHandlerOn: function (params) { + this._dispatchEvent(params.event, params.target._roamType); + clearInterval(this.dircetionTimer); + var self = this; + this.dircetionTimer = setInterval(function () { + self._dispatchEvent(params.event, params.target._roamType); + }, 100); + zrEvent.stop(params.event); + }, + _drictionHandlerOff: function (params) { + clearInterval(this.dircetionTimer); + }, + __scaleHandler: function (params) { + this._dispatchEvent(params.event, params.target._roamType); + zrEvent.stop(params.event); + }, + _dispatchEvent: function (event, roamType) { + this.messageCenter.dispatch(ecConfig.EVENT.ROAMCONTROLLER, event, { + roamType: roamType, + mapTypeControl: this.rcOption.mapTypeControl, + step: this.rcOption.step + }, this.myChart); + }, + refresh: function (newOption) { + if (newOption) { + this.option = newOption || this.option; + this.option.roamController = this.reformOption(this.option.roamController); + this.rcOption = this.option.roamController; + } + this.clear(); + this._buildShape(); + } + }; + zrUtil.inherits(RoamController, Base); + require('../component').define('roamController', RoamController); + return RoamController; +});define('echarts/layer/heatmap', ['require'], function (require) { + var defaultOptions = { + blurSize: 30, + gradientColors: [ + 'blue', + 'cyan', + 'lime', + 'yellow', + 'red' + ], + minAlpha: 0.05, + valueScale: 1, + opacity: 1 + }; + var BRUSH_SIZE = 20; + var GRADIENT_LEVELS = 256; + function Heatmap(opt) { + this.option = opt; + if (opt) { + for (var i in defaultOptions) { + if (opt[i] !== undefined) { + this.option[i] = opt[i]; + } else { + this.option[i] = defaultOptions[i]; + } + } + } else { + this.option = defaultOptions; + } + } + Heatmap.prototype = { + getCanvas: function (data, width, height) { + var brush = this._getBrush(); + var gradient = this._getGradient(); + var r = BRUSH_SIZE + this.option.blurSize; + var canvas = document.createElement('canvas'); + canvas.width = width; + canvas.height = height; + var ctx = canvas.getContext('2d'); + var len = data.length; + for (var i = 0; i < len; ++i) { + var p = data[i]; + var x = p[0]; + var y = p[1]; + var value = p[2]; + var alpha = Math.min(1, Math.max(value * this.option.valueScale || this.option.minAlpha, this.option.minAlpha)); + ctx.globalAlpha = alpha; + ctx.drawImage(brush, x - r, y - r); + } + var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height); + var pixels = imageData.data; + var len = pixels.length / 4; + while (len--) { + var id = len * 4 + 3; + var alpha = pixels[id] / 256; + var colorOffset = Math.floor(alpha * (GRADIENT_LEVELS - 1)); + pixels[id - 3] = gradient[colorOffset * 4]; + pixels[id - 2] = gradient[colorOffset * 4 + 1]; + pixels[id - 1] = gradient[colorOffset * 4 + 2]; + pixels[id] *= this.option.opacity; + } + ctx.putImageData(imageData, 0, 0); + return canvas; + }, + _getBrush: function () { + if (!this._brushCanvas) { + this._brushCanvas = document.createElement('canvas'); + var r = BRUSH_SIZE + this.option.blurSize; + var d = r * 2; + this._brushCanvas.width = d; + this._brushCanvas.height = d; + var ctx = this._brushCanvas.getContext('2d'); + ctx.shadowOffsetX = d; + ctx.shadowBlur = this.option.blurSize; + ctx.shadowColor = 'black'; + ctx.beginPath(); + ctx.arc(-r, r, BRUSH_SIZE, 0, Math.PI * 2, true); + ctx.closePath(); + ctx.fill(); + } + return this._brushCanvas; + }, + _getGradient: function () { + if (!this._gradientPixels) { + var levels = GRADIENT_LEVELS; + var canvas = document.createElement('canvas'); + canvas.width = 1; + canvas.height = levels; + var ctx = canvas.getContext('2d'); + var gradient = ctx.createLinearGradient(0, 0, 0, levels); + var len = this.option.gradientColors.length; + for (var i = 0; i < len; ++i) { + if (typeof this.option.gradientColors[i] === 'string') { + gradient.addColorStop((i + 1) / len, this.option.gradientColors[i]); + } else { + gradient.addColorStop(this.option.gradientColors[i].offset, this.option.gradientColors[i].color); + } + } + ctx.fillStyle = gradient; + ctx.fillRect(0, 0, 1, levels); + this._gradientPixels = ctx.getImageData(0, 0, 1, levels).data; + } + return this._gradientPixels; + } + }; + return Heatmap; +});define('echarts/util/mapData/params', ['require'], function (require) { + function decode(json) { + if (!json.UTF8Encoding) { + return json; + } + var features = json.features; + for (var f = 0; f < features.length; f++) { + var feature = features[f]; + var coordinates = feature.geometry.coordinates; + var encodeOffsets = feature.geometry.encodeOffsets; + for (var c = 0; c < coordinates.length; c++) { + var coordinate = coordinates[c]; + if (feature.geometry.type === 'Polygon') { + coordinates[c] = decodePolygon(coordinate, encodeOffsets[c]); + } else if (feature.geometry.type === 'MultiPolygon') { + for (var c2 = 0; c2 < coordinate.length; c2++) { + var polygon = coordinate[c2]; + coordinate[c2] = decodePolygon(polygon, encodeOffsets[c][c2]); + } + } + } + } + json.UTF8Encoding = false; + return json; + } + function decodePolygon(coordinate, encodeOffsets) { + var result = []; + var prevX = encodeOffsets[0]; + var prevY = encodeOffsets[1]; + for (var i = 0; i < coordinate.length; i += 2) { + var x = coordinate.charCodeAt(i) - 64; + var y = coordinate.charCodeAt(i + 1) - 64; + x = x >> 1 ^ -(x & 1); + y = y >> 1 ^ -(y & 1); + x += prevX; + y += prevY; + prevX = x; + prevY = y; + result.push([ + x / 1024, + y / 1024 + ]); + } + return result; + } + var mapParams = { + 'none': { + getGeoJson: function (callback) { + callback({ + type: 'FeatureCollection', + features: [{ + type: 'Feature', + geometry: { + coordinates: [], + encodeOffsets: [], + type: 'Polygon' + }, + properties: {} + }] + }); + } + }, + 'world': { + getGeoJson: function (callback) { + require(['./geoJson/world_geo'], function (md) { + callback(decode(md)); + }); + } + }, + 'china': { + getGeoJson: function (callback) { + require(['./geoJson/china_geo'], function (md) { + callback(decode(md)); + }); + } + }, + '南海诸岛': { + textCoord: [ + 126, + 25 + ], + getPath: function (leftTop, scale) { + var pList = [ + [ + [ + 0, + 3.5 + ], + [ + 7, + 11.2 + ], + [ + 15, + 11.9 + ], + [ + 30, + 7 + ], + [ + 42, + 0.7 + ], + [ + 52, + 0.7 + ], + [ + 56, + 7.7 + ], + [ + 59, + 0.7 + ], + [ + 64, + 0.7 + ], + [ + 64, + 0 + ], + [ + 5, + 0 + ], + [ + 0, + 3.5 + ] + ], + [ + [ + 13, + 16.1 + ], + [ + 19, + 14.7 + ], + [ + 16, + 21.7 + ], + [ + 11, + 23.1 + ], + [ + 13, + 16.1 + ] + ], + [ + [ + 12, + 32.2 + ], + [ + 14, + 38.5 + ], + [ + 15, + 38.5 + ], + [ + 13, + 32.2 + ], + [ + 12, + 32.2 + ] + ], + [ + [ + 16, + 47.6 + ], + [ + 12, + 53.2 + ], + [ + 13, + 53.2 + ], + [ + 18, + 47.6 + ], + [ + 16, + 47.6 + ] + ], + [ + [ + 6, + 64.4 + ], + [ + 8, + 70 + ], + [ + 9, + 70 + ], + [ + 8, + 64.4 + ], + [ + 6, + 64.4 + ] + ], + [ + [ + 23, + 82.6 + ], + [ + 29, + 79.8 + ], + [ + 30, + 79.8 + ], + [ + 25, + 82.6 + ], + [ + 23, + 82.6 + ] + ], + [ + [ + 37, + 70.7 + ], + [ + 43, + 62.3 + ], + [ + 44, + 62.3 + ], + [ + 39, + 70.7 + ], + [ + 37, + 70.7 + ] + ], + [ + [ + 48, + 51.1 + ], + [ + 51, + 45.5 + ], + [ + 53, + 45.5 + ], + [ + 50, + 51.1 + ], + [ + 48, + 51.1 + ] + ], + [ + [ + 51, + 35 + ], + [ + 51, + 28.7 + ], + [ + 53, + 28.7 + ], + [ + 53, + 35 + ], + [ + 51, + 35 + ] + ], + [ + [ + 52, + 22.4 + ], + [ + 55, + 17.5 + ], + [ + 56, + 17.5 + ], + [ + 53, + 22.4 + ], + [ + 52, + 22.4 + ] + ], + [ + [ + 58, + 12.6 + ], + [ + 62, + 7 + ], + [ + 63, + 7 + ], + [ + 60, + 12.6 + ], + [ + 58, + 12.6 + ] + ], + [ + [ + 0, + 3.5 + ], + [ + 0, + 93.1 + ], + [ + 64, + 93.1 + ], + [ + 64, + 0 + ], + [ + 63, + 0 + ], + [ + 63, + 92.4 + ], + [ + 1, + 92.4 + ], + [ + 1, + 3.5 + ], + [ + 0, + 3.5 + ] + ] + ]; + var str = ''; + var left = leftTop[0]; + var top = leftTop[1]; + for (var i = 0, l = pList.length; i < l; i++) { + str += 'M ' + ((pList[i][0][0] * scale + left).toFixed(2) - 0) + ' ' + ((pList[i][0][1] * scale + top).toFixed(2) - 0) + ' '; + for (var j = 1, k = pList[i].length; j < k; j++) { + str += 'L ' + ((pList[i][j][0] * scale + left).toFixed(2) - 0) + ' ' + ((pList[i][j][1] * scale + top).toFixed(2) - 0) + ' '; + } + } + return str + ' Z'; + } + }, + '新疆': { + getGeoJson: function (callback) { + require(['./geoJson/xin_jiang_geo'], function (md) { + callback(decode(md)); + }); + } + }, + '西藏': { + getGeoJson: function (callback) { + require(['./geoJson/xi_zang_geo'], function (md) { + callback(decode(md)); + }); + } + }, + '内蒙古': { + getGeoJson: function (callback) { + require(['./geoJson/nei_meng_gu_geo'], function (md) { + callback(decode(md)); + }); + } + }, + '青海': { + getGeoJson: function (callback) { + require(['./geoJson/qing_hai_geo'], function (md) { + callback(decode(md)); + }); + } + }, + '四川': { + getGeoJson: function (callback) { + require(['./geoJson/si_chuan_geo'], function (md) { + callback(decode(md)); + }); + } + }, + '黑龙江': { + getGeoJson: function (callback) { + require(['./geoJson/hei_long_jiang_geo'], function (md) { + callback(decode(md)); + }); + } + }, + '甘肃': { + getGeoJson: function (callback) { + require(['./geoJson/gan_su_geo'], function (md) { + callback(decode(md)); + }); + } + }, + '云南': { + getGeoJson: function (callback) { + require(['./geoJson/yun_nan_geo'], function (md) { + callback(decode(md)); + }); + } + }, + '广西': { + getGeoJson: function (callback) { + require(['./geoJson/guang_xi_geo'], function (md) { + callback(decode(md)); + }); + } + }, + '湖南': { + getGeoJson: function (callback) { + require(['./geoJson/hu_nan_geo'], function (md) { + callback(decode(md)); + }); + } + }, + '陕西': { + getGeoJson: function (callback) { + require(['./geoJson/shan_xi_1_geo'], function (md) { + callback(decode(md)); + }); + } + }, + '广东': { + getGeoJson: function (callback) { + require(['./geoJson/guang_dong_geo'], function (md) { + callback(decode(md)); + }); + } + }, + '吉林': { + getGeoJson: function (callback) { + require(['./geoJson/ji_lin_geo'], function (md) { + callback(decode(md)); + }); + } + }, + '河北': { + getGeoJson: function (callback) { + require(['./geoJson/he_bei_geo'], function (md) { + callback(decode(md)); + }); + } + }, + '湖北': { + getGeoJson: function (callback) { + require(['./geoJson/hu_bei_geo'], function (md) { + callback(decode(md)); + }); + } + }, + '贵州': { + getGeoJson: function (callback) { + require(['./geoJson/gui_zhou_geo'], function (md) { + callback(decode(md)); + }); + } + }, + '山东': { + getGeoJson: function (callback) { + require(['./geoJson/shan_dong_geo'], function (md) { + callback(decode(md)); + }); + } + }, + '江西': { + getGeoJson: function (callback) { + require(['./geoJson/jiang_xi_geo'], function (md) { + callback(decode(md)); + }); + } + }, + '河南': { + getGeoJson: function (callback) { + require(['./geoJson/he_nan_geo'], function (md) { + callback(decode(md)); + }); + } + }, + '辽宁': { + getGeoJson: function (callback) { + require(['./geoJson/liao_ning_geo'], function (md) { + callback(decode(md)); + }); + } + }, + '山西': { + getGeoJson: function (callback) { + require(['./geoJson/shan_xi_2_geo'], function (md) { + callback(decode(md)); + }); + } + }, + '安徽': { + getGeoJson: function (callback) { + require(['./geoJson/an_hui_geo'], function (md) { + callback(decode(md)); + }); + } + }, + '福建': { + getGeoJson: function (callback) { + require(['./geoJson/fu_jian_geo'], function (md) { + callback(decode(md)); + }); + } + }, + '浙江': { + getGeoJson: function (callback) { + require(['./geoJson/zhe_jiang_geo'], function (md) { + callback(decode(md)); + }); + } + }, + '江苏': { + getGeoJson: function (callback) { + require(['./geoJson/jiang_su_geo'], function (md) { + callback(decode(md)); + }); + } + }, + '重庆': { + getGeoJson: function (callback) { + require(['./geoJson/chong_qing_geo'], function (md) { + callback(decode(md)); + }); + } + }, + '宁夏': { + getGeoJson: function (callback) { + require(['./geoJson/ning_xia_geo'], function (md) { + callback(decode(md)); + }); + } + }, + '海南': { + getGeoJson: function (callback) { + require(['./geoJson/hai_nan_geo'], function (md) { + callback(decode(md)); + }); + } + }, + '台湾': { + getGeoJson: function (callback) { + require(['./geoJson/tai_wan_geo'], function (md) { + callback(decode(md)); + }); + } + }, + '北京': { + getGeoJson: function (callback) { + require(['./geoJson/bei_jing_geo'], function (md) { + callback(decode(md)); + }); + } + }, + '天津': { + getGeoJson: function (callback) { + require(['./geoJson/tian_jin_geo'], function (md) { + callback(decode(md)); + }); + } + }, + '上海': { + getGeoJson: function (callback) { + require(['./geoJson/shang_hai_geo'], function (md) { + callback(decode(md)); + }); + } + }, + '香港': { + getGeoJson: function (callback) { + require(['./geoJson/xiang_gang_geo'], function (md) { + callback(decode(md)); + }); + } + }, + '澳门': { + getGeoJson: function (callback) { + require(['./geoJson/ao_men_geo'], function (md) { + callback(decode(md)); + }); + } + } + }; + return { + decode: decode, + params: mapParams + }; +});define('echarts/util/mapData/textFixed', [], function () { + return { + '广东': [ + 0, + -10 + ], + '香港': [ + 10, + 10 + ], + '澳门': [ + -10, + 18 + ], + '黑龙江': [ + 0, + 20 + ], + '天津': [ + 5, + 5 + ], + '深圳市': [ + -35, + 0 + ], + '红河哈尼族彝族自治州': [ + 0, + 20 + ], + '楚雄彝族自治州': [ + -5, + 15 + ], + '石河子市': [ + -5, + 5 + ], + '五家渠市': [ + 0, + -10 + ], + '昌吉回族自治州': [ + 10, + 10 + ], + '昌江黎族自治县': [ + 0, + 20 + ], + '陵水黎族自治县': [ + 0, + 20 + ], + '东方市': [ + 0, + 20 + ], + '渭南市': [ + 0, + 20 + ] + }; +});define('echarts/util/mapData/geoCoord', [], function () { + return { + 'Russia': [ + 100, + 60 + ], + 'United States of America': [ + -99, + 38 + ] + }; +});define('echarts/util/projection/svg', [ + 'require', + 'zrender/shape/Path' +], function (require) { + var PathShape = require('zrender/shape/Path'); + function toFloat(str) { + return parseFloat(str || 0); + } + function getBbox(root) { + var svgNode = root.firstChild; + while (!(svgNode.nodeName.toLowerCase() == 'svg' && svgNode.nodeType == 1)) { + svgNode = svgNode.nextSibling; + } + var x = toFloat(svgNode.getAttribute('x')); + var y = toFloat(svgNode.getAttribute('y')); + var width = toFloat(svgNode.getAttribute('width')); + var height = toFloat(svgNode.getAttribute('height')); + return { + left: x, + top: y, + width: width, + height: height + }; + } + function geoJson2Path(root, transform) { + var scale = [ + transform.scale.x, + transform.scale.y + ]; + var elList = []; + function _getShape(root) { + var tagName = root.tagName; + if (shapeBuilders[tagName]) { + var obj = shapeBuilders[tagName](root, scale); + if (obj) { + obj.scale = scale; + obj.properties = { name: root.getAttribute('name') || '' }; + obj.id = root.id; + extendCommonAttributes(obj, root); + elList.push(obj); + } + } + var shapes = root.childNodes; + for (var i = 0, len = shapes.length; i < len; i++) { + _getShape(shapes[i]); + } + } + _getShape(root); + return elList; + } + function pos2geo(obj, p) { + var point = p instanceof Array ? [ + p[0] * 1, + p[1] * 1 + ] : [ + p.x * 1, + p.y * 1 + ]; + return [ + point[0] / obj.scale.x, + point[1] / obj.scale.y + ]; + } + function geo2pos(obj, p) { + var point = p instanceof Array ? [ + p[0] * 1, + p[1] * 1 + ] : [ + p.x * 1, + p.y * 1 + ]; + return [ + point[0] * obj.scale.x, + point[1] * obj.scale.y + ]; + } + function trim(str) { + return str.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); + } + function extendCommonAttributes(obj, xmlNode) { + var color = xmlNode.getAttribute('fill'); + var strokeColor = xmlNode.getAttribute('stroke'); + var lineWidth = xmlNode.getAttribute('stroke-width'); + var opacity = xmlNode.getAttribute('opacity'); + if (color && color != 'none') { + obj.color = color; + if (strokeColor) { + obj.brushType = 'both'; + obj.strokeColor = strokeColor; + } else { + obj.brushType = 'fill'; + } + } else if (strokeColor && strokeColor != 'none') { + obj.strokeColor = strokeColor; + obj.brushType = 'stroke'; + } + if (lineWidth && lineWidth != 'none') { + obj.lineWidth = parseFloat(lineWidth); + } + if (opacity && opacity != 'none') { + obj.opacity = parseFloat(opacity); + } + } + function parsePoints(str) { + var list = trim(str).replace(/,/g, ' ').split(/\s+/); + var points = []; + for (var i = 0; i < list.length;) { + var x = parseFloat(list[i++]); + var y = parseFloat(list[i++]); + points.push([ + x, + y + ]); + } + return points; + } + var shapeBuilders = { + path: function (xmlNode, scale) { + var path = xmlNode.getAttribute('d'); + var rect = PathShape.prototype.getRect({ path: path }); + return { + shapeType: 'path', + path: path, + cp: [ + (rect.x + rect.width / 2) * scale[0], + (rect.y + rect.height / 2) * scale[1] + ] + }; + }, + rect: function (xmlNode, scale) { + var x = toFloat(xmlNode.getAttribute('x')); + var y = toFloat(xmlNode.getAttribute('y')); + var width = toFloat(xmlNode.getAttribute('width')); + var height = toFloat(xmlNode.getAttribute('height')); + return { + shapeType: 'rectangle', + x: x, + y: y, + width: width, + height: height, + cp: [ + (x + width / 2) * scale[0], + (y + height / 2) * scale[1] + ] + }; + }, + line: function (xmlNode, scale) { + var x1 = toFloat(xmlNode.getAttribute('x1')); + var y1 = toFloat(xmlNode.getAttribute('y1')); + var x2 = toFloat(xmlNode.getAttribute('x2')); + var y2 = toFloat(xmlNode.getAttribute('y2')); + return { + shapeType: 'line', + xStart: x1, + yStart: y1, + xEnd: x2, + yEnd: y2, + cp: [ + (x1 + x2) * 0.5 * scale[0], + (y1 + y2) * 0.5 * scale[1] + ] + }; + }, + circle: function (xmlNode, scale) { + var cx = toFloat(xmlNode.getAttribute('cx')); + var cy = toFloat(xmlNode.getAttribute('cy')); + var r = toFloat(xmlNode.getAttribute('r')); + return { + shapeType: 'circle', + x: cx, + y: cy, + r: r, + cp: [ + cx * scale[0], + cy * scale[1] + ] + }; + }, + ellipse: function (xmlNode, scale) { + var cx = parseFloat(xmlNode.getAttribute('cx') || 0); + var cy = parseFloat(xmlNode.getAttribute('cy') || 0); + var rx = parseFloat(xmlNode.getAttribute('rx') || 0); + var ry = parseFloat(xmlNode.getAttribute('ry') || 0); + return { + shapeType: 'ellipse', + x: cx, + y: cy, + a: rx, + b: ry, + cp: [ + cx * scale[0], + cy * scale[1] + ] + }; + }, + polygon: function (xmlNode, scale) { + var points = xmlNode.getAttribute('points'); + var min = [ + Infinity, + Infinity + ]; + var max = [ + -Infinity, + -Infinity + ]; + if (points) { + points = parsePoints(points); + for (var i = 0; i < points.length; i++) { + var p = points[i]; + min[0] = Math.min(p[0], min[0]); + min[1] = Math.min(p[1], min[1]); + max[0] = Math.max(p[0], max[0]); + max[1] = Math.max(p[1], max[1]); + } + return { + shapeType: 'polygon', + pointList: points, + cp: [ + (min[0] + max[0]) / 2 * scale[0], + (min[1] + max[1]) / 2 * scale[0] + ] + }; + } + }, + polyline: function (xmlNode, scale) { + var obj = shapeBuilders.polygon(xmlNode, scale); + return obj; + } + }; + return { + getBbox: getBbox, + geoJson2Path: geoJson2Path, + pos2geo: pos2geo, + geo2pos: geo2pos + }; +});define('echarts/util/projection/normal', [], function () { + function getBbox(json, specialArea) { + specialArea = specialArea || {}; + if (!json.srcSize) { + parseSrcSize(json, specialArea); + } + return json.srcSize; + } + function parseSrcSize(json, specialArea) { + specialArea = specialArea || {}; + convertorParse.xmin = 360; + convertorParse.xmax = -360; + convertorParse.ymin = 180; + convertorParse.ymax = -180; + var shapes = json.features; + var geometries; + var shape; + for (var i = 0, len = shapes.length; i < len; i++) { + shape = shapes[i]; + if (shape.properties.name && specialArea[shape.properties.name]) { + continue; + } + switch (shape.type) { + case 'Feature': + convertorParse[shape.geometry.type](shape.geometry.coordinates); + break; + case 'GeometryCollection': + geometries = shape.geometries; + for (var j = 0, len2 = geometries.length; j < len2; j++) { + convertorParse[geometries[j].type](geometries[j].coordinates); + } + break; + } + } + json.srcSize = { + left: convertorParse.xmin.toFixed(4) * 1, + top: convertorParse.ymin.toFixed(4) * 1, + width: (convertorParse.xmax - convertorParse.xmin).toFixed(4) * 1, + height: (convertorParse.ymax - convertorParse.ymin).toFixed(4) * 1 + }; + return json; + } + var convertor = { + formatPoint: function (p) { + return [ + (p[0] < -168.5 && p[1] > 63.8 ? p[0] + 360 : p[0]) + 168.5, + 90 - p[1] + ]; + }, + makePoint: function (p) { + var self = this; + var point = self.formatPoint(p); + if (self._bbox.xmin > p[0]) { + self._bbox.xmin = p[0]; + } + if (self._bbox.xmax < p[0]) { + self._bbox.xmax = p[0]; + } + if (self._bbox.ymin > p[1]) { + self._bbox.ymin = p[1]; + } + if (self._bbox.ymax < p[1]) { + self._bbox.ymax = p[1]; + } + var x = (point[0] - convertor.offset.x) * convertor.scale.x + convertor.offset.left; + var y = (point[1] - convertor.offset.y) * convertor.scale.y + convertor.offset.top; + return [ + x, + y + ]; + }, + Point: function (coordinates) { + coordinates = this.makePoint(coordinates); + return coordinates.join(','); + }, + LineString: function (coordinates) { + var str = ''; + var point; + for (var i = 0, len = coordinates.length; i < len; i++) { + point = convertor.makePoint(coordinates[i]); + if (i === 0) { + str = 'M' + point.join(','); + } else { + str = str + 'L' + point.join(','); + } + } + return str; + }, + Polygon: function (coordinates) { + var str = ''; + for (var i = 0, len = coordinates.length; i < len; i++) { + str = str + convertor.LineString(coordinates[i]) + 'z'; + } + return str; + }, + MultiPoint: function (coordinates) { + var arr = []; + for (var i = 0, len = coordinates.length; i < len; i++) { + arr.push(convertor.Point(coordinates[i])); + } + return arr; + }, + MultiLineString: function (coordinates) { + var str = ''; + for (var i = 0, len = coordinates.length; i < len; i++) { + str += convertor.LineString(coordinates[i]); + } + return str; + }, + MultiPolygon: function (coordinates) { + var str = ''; + for (var i = 0, len = coordinates.length; i < len; i++) { + str += convertor.Polygon(coordinates[i]); + } + return str; + } + }; + var convertorParse = { + formatPoint: convertor.formatPoint, + makePoint: function (p) { + var self = this; + var point = self.formatPoint(p); + var x = point[0]; + var y = point[1]; + if (self.xmin > x) { + self.xmin = x; + } + if (self.xmax < x) { + self.xmax = x; + } + if (self.ymin > y) { + self.ymin = y; + } + if (self.ymax < y) { + self.ymax = y; + } + }, + Point: function (coordinates) { + this.makePoint(coordinates); + }, + LineString: function (coordinates) { + for (var i = 0, len = coordinates.length; i < len; i++) { + this.makePoint(coordinates[i]); + } + }, + Polygon: function (coordinates) { + for (var i = 0, len = coordinates.length; i < len; i++) { + this.LineString(coordinates[i]); + } + }, + MultiPoint: function (coordinates) { + for (var i = 0, len = coordinates.length; i < len; i++) { + this.Point(coordinates[i]); + } + }, + MultiLineString: function (coordinates) { + for (var i = 0, len = coordinates.length; i < len; i++) { + this.LineString(coordinates[i]); + } + }, + MultiPolygon: function (coordinates) { + for (var i = 0, len = coordinates.length; i < len; i++) { + this.Polygon(coordinates[i]); + } + } + }; + function geoJson2Path(json, transform, specialArea) { + specialArea = specialArea || {}; + convertor.scale = null; + convertor.offset = null; + if (!json.srcSize) { + parseSrcSize(json, specialArea); + } + transform.offset = { + x: json.srcSize.left, + y: json.srcSize.top, + left: transform.OffsetLeft || 0, + top: transform.OffsetTop || 0 + }; + convertor.scale = transform.scale; + convertor.offset = transform.offset; + var shapes = json.features; + var geometries; + var pathArray = []; + var val; + var shape; + for (var i = 0, len = shapes.length; i < len; i++) { + shape = shapes[i]; + if (shape.properties.name && specialArea[shape.properties.name]) { + continue; + } + if (shape.type == 'Feature') { + pushApath(shape.geometry, shape); + } else if (shape.type == 'GeometryCollection') { + geometries = shape.geometries; + for (var j = 0, len2 = geometries.length; j < len2; j++) { + val = geometries[j]; + pushApath(val, val); + } + } + } + var shapeType; + var shapeCoordinates; + var str; + function pushApath(gm, shape) { + shapeType = gm.type; + shapeCoordinates = gm.coordinates; + convertor._bbox = { + xmin: 360, + xmax: -360, + ymin: 180, + ymax: -180 + }; + str = convertor[shapeType](shapeCoordinates); + pathArray.push({ + path: str, + cp: shape.properties.cp ? convertor.makePoint(shape.properties.cp) : convertor.makePoint([ + (convertor._bbox.xmin + convertor._bbox.xmax) / 2, + (convertor._bbox.ymin + convertor._bbox.ymax) / 2 + ]), + properties: shape.properties, + id: shape.id + }); + } + return pathArray; + } + function pos2geo(obj, p) { + var x; + var y; + if (p instanceof Array) { + x = p[0] * 1; + y = p[1] * 1; + } else { + x = p.x * 1; + y = p.y * 1; + } + x = x / obj.scale.x + obj.offset.x - 168.5; + x = x > 180 ? x - 360 : x; + y = 90 - (y / obj.scale.y + obj.offset.y); + return [ + x, + y + ]; + } + function geo2pos(obj, p) { + convertor.offset = obj.offset; + convertor.scale = obj.scale; + return p instanceof Array ? convertor.makePoint([ + p[0] * 1, + p[1] * 1 + ]) : convertor.makePoint([ + p.x * 1, + p.y * 1 + ]); + } + return { + getBbox: getBbox, + geoJson2Path: geoJson2Path, + pos2geo: pos2geo, + geo2pos: geo2pos + }; +});define('echarts/util/mapData/geoJson/an_hui_geo', [], function () { + return { + 'type': 'FeatureCollection', + 'features': [ + { + 'type': 'Feature', + 'id': '3415', + 'properties': { + 'name': '六安市', + 'cp': [ + 116.3123, + 31.8329 + ], + 'childNum': 6 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@„„nJ‚UXUVƒ°U„ÑnU@mlLVaVln@@bn@VU@xlb@lšLnKlšƒVI„JšUVxnI@lVL@b„Ž°VX@˜b„x„nVVUnVVnU‚›@kX@VwV@„al¥UUnUWa@ƒ@wĸU„LU¥lKUa@aUI@alLVaUƒ¯anƒWkUKm@XV@VaXlW@aU_UWVUƒI¯@ma¯W¯™™I@UU@WWU@U@@UU@VkV@@WUUm@UaU@„lK@IUK„L@KWmXUWaXI@ƒ@a@a@U@U@KV¥lw„k°b²JVIVKlV@UX„la„Ul`œUVLVVVUšJ„U@Lnm@_VK@KUIW@™J@Xk@WW@U—ƒmm™XmWk@kK@aUUƒVmmkUwUmWL™@WmU@™UJmUULkKWakLWVkIƒlƒwULƒW@X°lUJ@°ULƒWV—wmJ@bmb¯Vkm@@WkWm¯wƒL@lkXƒWmXym¯UImJUbkV™@Vn¯„@V@lUbƒ@mk@maUxmlUbULWn@J—LmKUkWKkwUKƒbm„X„WxkVUKmLkVV@JUUWL@xkJUUƒV@X@VVlUbVX@xk¤šx‚¼œxWxn„‚nn@Þ¼„JVb°aVn„@šmlnXU„JlbVlkz@‚lUŽlXJmxVxXnWxXÈWlUŽ@šUxU@VX@xUL@šUÆmLnV@lWXk@@JlbXblnlJ'], + 'encodeOffsets': [[ + 118710, + 33351 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3408', + 'properties': { + 'name': '安庆市', + 'cp': [ + 116.7517, + 30.5255 + ], + 'childNum': 9 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@n°‚znW„XlW@k„K°xXn‚l@Xn@l‚°Una@anI˜xXU„ŽVK@¯VIkW¯X@‚„VK„x„klJXUlKXblLVKnVVIšŽV@Xn‚@šŽXKVnVxlŽnn„UlmV@²óUkV™lW„b„lƒšƒn@VVVIn@lw@WVIXblV„@Èx‚aUaVIVVnKVLšK„ƒln@b²K@»U£ƒÑķƒġÝÅb™K™a@Im@ۍ„@kWÓkkmKÅnóJƒUÅ£›W@w„ĕ@wĉţ¯¯ƒUkK±l¯Uƒ¥UÑkÝUķ»Ý¥¯™JƒIUŽVbUl¯ÈV¼VJU¼Vb@bkLUl@„VJ@bUXǚ@lkVmXmKkLVxš‚Ž„VƒL@VkVVVlzW˜kbmLUUUbVbUV™šlÒnJlUnLllUL@bU„Vx„l‚LXVƦÈVU¦WJ'], + 'encodeOffsets': [[ + 118834, + 31759 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3411', + 'properties': { + 'name': '滁州市', + 'cp': [ + 118.1909, + 32.536 + ], + 'childNum': 7 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@š„@`nnl@„xšK@X°KXV˜IXVlbXVWnX‚lL@šÈ»‚LVan@VJ„êVVn@‚X@laÞbVaƒyn@„_‚xnWVXnWl@VnUVkI@l‚nXKVLVV@V@kW@LlVô„@J@bVnnKnkVa@»lç@ƒnwšKma™UUUVњ@n™mWXalI@alVn@VwUaVU„@„nlaôJnU„VVXlJšaXXVK@UšV@VWx@nXVWšXVšUlLUbV‚ULVVnUVbUbVbš@@a„KÆnnKVK@U@UU@@a„@Vƒ°¯ÈJVIlķ@aa˜UaVKU_@mkxUI@aƒUlyU@@™wkKWmUbUnUVWbkJW_J@bƒn@Vm@@KULk@V@@bVbÅm@LW@UVVbkK@UkKWL@VULUKWIUJUbkK@_WVXU›Jka@XƒVa@kšy@aVIUUW@@m„UlLœKWÑUKVan@UkVmmIXKƒaVaUwVU@UmykU¯@±UUL@WUIVUU@KkIWaƒaU@kUUaǃUó»mKƒk¯@y@kWK@bkI¯`mn™l¯XWlkVUzUJlbUbVJl@nnm„@VULV`XnWƗbmUUn™JmUknƒJ¯km@ƒyk@kU›xL@VUbmnn¤lX@`™z@JmaULUVl@Xn@xllkXWa—aW@UVmUbƒ@mVXšWxXbWbUŽƒÒnVVnVVUL'], + 'encodeOffsets': [[ + 120004, + 33520 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3418', + 'properties': { + 'name': '宣城市', + 'cp': [ + 118.8062, + 30.6244 + ], + 'childNum': 7 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@Vb@„XL˜JXxlIXxlVlV@I²¤šnlUnVšU@VULWVUJ@Lnb@lV@UnV@@VVVlLnbnJ‚UVkUUVWn@@anUVnVJVIV‚@@nUJVbUb‚„@VUbVK@bn@VbnIlxkllXVlXKWUXUlL°¤UVVb@bš„UlkXW‚ƒxXz@‚„Ila„UlƒnUlJVInVÆJ„U„LVUnV„K°@VnlVnxV@XLlK@wVL@KnUlJXU˜bnKVLX„lUw@VWlLXKm@@a„@VLnmlIVVnKn@škVašVlwk@@a@k@ƒVIUa™@maUa@wna@kmWƒ™UUmVUIVǗ@aƒKm™aƒ™kU™J@InmUUaVa„k‚lX@Vk@m@VU@wnK@alKVUkUkKƒbmUkmƒ@U£WVk@@UÝbbƒaÇx@b@WVUa¯ƒ@wVwUUV@VwnK@KWaŁ@KšIUyUI@WmXó™UbWaKm™@km@IUyƒIUaWKƒx@zUKUL@llVUnkLVVkJWX@VUKUVƒIkVWakb@VWb@n@JkXUlmL@xkL@`VxšLUÈUJ@Vm@@bmIUlUL@VUVVbknm@mKUw™KVÈ@J@LV±kkJUIƒl'], + 'encodeOffsets': [[ + 120803, + 31247 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3412', + 'properties': { + 'name': '阜阳市', + 'cp': [ + 115.7629, + 32.9919 + ], + 'childNum': 6 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@V™nƒš@ša„k°aš±@‚¥@UUI@aUmlwUUx›b@¥XU@mmI@a@Kn@@_W@@W„I@mšUVVXUl@XaV@‚K@I@a„LX@aVI°K@KVL„UUw‚yXkšK@kšKÆbXnlK@k@a„JlU@w@U@»@aXKWƒn_‚JXkVKnƒ@°LlKXƒW@¯Uƒ@aUK@kmJUw™VƒIUJ™„kŽmL™K@kka@wUVm@@am@UkUbkK@nmVƒÒ¯VU„WVVmIƒƒULk@ƒƒma@kkKƒƒ@nUbUamU™`UUVUkKVkkƒW@@bkmƒnƒmUXVKXVƒL@VƒbU„m‚™bVXJ@nmKÅI@KWKUXVJUL@VUKUX@KUKWL@LUJmaXXm@kVVV@L@VUL@VlK@L@V@LUK@VUb@UUU@°@nVxU`‚Lkn@`@XVJ@X™Vm„k@UKmV¯LVVn±Wm@Ub@JlLUl„@VLk„@lmVVn@bnV@V°IV™šaVJXI°K°V@XXVlVVU„nšKVlUš„bWXnV@bV`U„„@@m@@‚ƒ@nxmn@bXVlL@¤nb„Ul¦šVVUnJVU„Vl@@bÞL'], + 'encodeOffsets': [[ + 118418, + 34392 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3413', + 'properties': { + 'name': '宿州市', + 'cp': [ + 117.5208, + 33.6841 + ], + 'childNum': 5 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@@UWU@bkW@aWU@aUIkWV™lLXb„lVIUVV@‚mn@V_n@VaUK@I‚@UašanJVU„@lV„UVnnKVVlaUa„I@wnK‚Lnll@nVlk@wVKXkl@@b„bUJ@V‚U@U„UUyVk@aVUXwlWXX‚WU¹@aU™@WUI@mlUšn„J@Il@šaXbV@VKl@XxVL@W„IšJlb„@„al@„IUUm@@aVK@¥¯—@mUķ¯bWƒk£Vm@akm@VaÅ@UVWaƒ@UJWkƒJ—UƒbWbU@UlƒXk@ƒamV@K¯nk@ƒlU@Uxmz@bU`ÇbUbÅVm£U@Ww™x@akLUK@UlakwUJWVkLmaUal@n_ƒmVUnKVUUmÅXWa™@kJmx@XUJ@bVLXxl@VVUVV„UbkLWbU@@lUVV„VVX„›K@XkJ@nU@@bV@VxUVlb„U@xXLWŽn@UxVbVĊ„V@b@XV`mnkJ@kUKmbƒaU@VbnbÆx@XU@@`k@@bl„™@@bkL@WƒakXWaU@Vmkx@XWW@@wUUUbƒJ™U¯V™@¯ÞU@WxXŽlL@bkb@ŽlVlnb™JW@kkU@mbkaWJ—IVlmz¯`UnU@mb™@@„ƒ`@bkVlœnV@b@šV@„aVxn@Vx‚KXnl@nbVK„bVK@a„_V@Vƒ„w@W„LlwnK@UmIU@VWš@šUÈ@lKnal„wš@@V°@šaUmlUUw@„ƒV@@UXK'], + 'encodeOffsets': [[ + 119836, + 35061 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3410', + 'properties': { + 'name': '黄山市', + 'cp': [ + 118.0481, + 29.9542 + ], + 'childNum': 5 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@lXnlWX@VUJVnUJVzXJVx„kVJlI²l‚U@K@IUǚLVxnLn@lmUaVU@UVKVknJ@an@@UVIVǙKUw@_lK@wnKVklW@I@mXa@UlaXblU„JVUVL@UXWlIUUlKVmkU@kVKVL@y„wXLVb„JVz@Jlnš@nŽ‚LXbVaôšnW@la@UVWUa@@a@mk@WIk@VwUa¯¥m@UUVK@ImK@aX£ƒkK›ÅV™a™™ƒ_@±ƒakXWW—LƒƒƒnU@@a@¯mK@L™JUWwUV™VmbXX@lWLn`mzUJUb™Lƒ„k@makVWmkX™ambkKknƒaƒ@ƒaƒb@‚U@Unm@—ƒWVƒ@VbUbUJWIk@@lmL@°UVUVm„nš™@@kmWkb@xƒ_m@@aU@b@JlŽUz™lWxXn„@‚b²@l`„IVl„UlL@VšK„nVbUl@VlIn@@b„bVWUk‚@@bX@Valb@bnb°Vn@„xVKlbVnV@V‚x„L@ln@UXVV‚L˜'], + 'encodeOffsets': [[ + 120747, + 31095 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3414', + 'properties': { + 'name': '巢湖市', + 'cp': [ + 117.7734, + 31.4978 + ], + 'childNum': 5 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@VV@blL@ŽXlWnnšnŽ˜„@VXXl@@WšIX@VJ@LšxŎxlnšŽ@bXJVblX@VVbUVn@VbUVlb@LnJVbVLV‚XLšÒVL„ÒšV„bVIVylUXk°Wšknm°_lJ@aXL@l‚z°@„lnLô¼V‚È„VUUaVKU@WW@@UUa@knmVLlaV@„a@kšak±@UmwkKmk™lj™ÝUUkL@mlIVmnÝWkkUÝ@KƑĉ™a@»ƒmma@mX™¤¯Uƒw@ƒ@UU@bU±±L@akmƒ„™LUKmLUUUJVbbÇwƒ@kUWaUJ@Xkxm@UJUUm@™„k„ƒ‚ƒakXUšVl±ôU@kn'], + 'encodeOffsets': [[ + 119847, + 32007 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3416', + 'properties': { + 'name': '亳州市', + 'cp': [ + 116.1914, + 33.4698 + ], + 'childNum': 4 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@lU@Un@@anUlw@KVmUwlaX_lKna@KU@@kWKUU@ankW™XK˜@@V²VVIÈU@al@VaÈamK@wU™@klaUƒV@XƒVUU»WUUbkmUkVmk@aÈw@mWU@VkIkVWKUÑķXȭºU¯lƒ@kkLWmÅa™L@l™LWlzVxƒVUK@L¯LUJ@bWƒK@b@JLU@Wbk@WVUU™V@nƒJ@XX@@`m@@L@bnJ@nWV@¦œa‚wVVkxVn@bVJ@V¦@Ž™²¯bƒl™b™@m„UšUŽƒŽ@¼ƒ¦Xb‚UV`@nnxUxWLkUkVWKkV@XV@@VVL@VX„@lVV@L@blL@`šL@xXKVL‚@„VnUš@lwnU@ml@XnV@@UVW°LnalƒUI@aUK@a‚a@U„kXW@I@mWL@UXK@UVW@U‚@@k„Wn‚@@V„@XblaVxšL@bVKXb„IlJ'], + 'encodeOffsets': [[ + 119183, + 34594 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3417', + 'properties': { + 'name': '池州市', + 'cp': [ + 117.3889, + 30.2014 + ], + 'childNum': 4 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': [ + '@@„V°°ĊŤ@xƒĖ@xœXƤ„VôIÆmnLllXÔ@lƒÜŽn@@JšbšLÆaĢÞĸ„°VVUUKVanK@UV@VL„VVn„ln@‚xnklxXamk@WV@Xa˜@naVk„Klk™@mkUWwkJWw—IWK@ƒUaUwWIUyVIUmVI@UXWmkkW‚—KUUVWm@@kƒKw@U‚UUmkaULƒwm@¯Uma@akaUbW@@a@VlUXƒa@am@kJ@UVkUaƒm™L@UkKƒVUkƒJk_±@aƒ@WmXwÇkkaVaUa±ƒœwV@VkƒwnyUaW@UU¯amLk@m™@kmmU™™¯K@L@lUX¯ƒWlkXƒŽVb„bƒVUL@J@LVKnlJXnlb@`nXlalV@bnL@Vnb˜¼@lXbWlkL™K@zUJmIUxUVUVmX', + '@@llUL@VlxšL@a@UƒwXa¯@' + ], + 'encodeOffsets': [ + [ + 119543, + 30781 + ], + [ + 120061, + 31152 + ] + ] + } + }, + { + 'type': 'Feature', + 'id': '3401', + 'properties': { + 'name': '合肥市', + 'cp': [ + 117.29, + 32.0581 + ], + 'childNum': 4 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@„L„xV‚ĊLÞkšVlVVXaWaXwW™nU„@‚anVVUX@˜bXblWkk@wWmk@VUVKnb@Išy@_kWm£nmVa@U‚KœwlVl@„zn@°l„IlmnVšIVmnV˜aXÅWmU_VK@Unƒmmk@UIVakaƒa™UƒÑUK™ÑWKUUKUamI@KkaVUUam@VUUa@UkWUaWI@a™kmōw™wUL@`mn@KƒV™IUVUUUK›Vk_ƒVkbWƒ@VkUULUJ±I¯aƒlkxU¦@L@V@V@b@b@„WJXbWVXn@LƒKVL@JkLƒŽV@Vbn@VV@XU@UlV@@VV@V@XXV@@VšJ°š°Xnb°@„JUVVXV`@bkXWŽUbU@WŽn@VLXlm„°bV„UbkK@bVJ@bVbkLV¦ƒKķV@x@„XbmVVVk¦'], + 'encodeOffsets': [[ + 119678, + 33323 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3403', + 'properties': { + 'name': '蚌埠市', + 'cp': [ + 117.4109, + 33.1073 + ], + 'childNum': 4 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@VÒXLlUlJ@UXV@nÇx@bnlUVllnVaXVV¼UVW„U@V„²wVV@Vl@„VnwlIš@XbÆWVnUVmLUV„nm`k@VbnblKXUVIlxkb@VVLlK@bšwXxV@n¤ÆUVaÈaV_@anyVwV@„kl@°m@LnU„bl@„WVkV@Xa„a˜V„IXl‚IV‚„@XbVUÆ@XKWwUkmW@_UmnIlJXkWKXmV@‚w@_XV@Kl@kU@KlX@@UUUUKWLm@klJVUUmk@mXUWmXwƒ`m@„zUbÝakbW@m@UUƒéUIm@UbKǼ@™kKWXmWUkaWU—JWU¯L@W™Lƒwk@mm@_™ƒÅl™UVkmWUnV@VWLUb™bƑĬ¯l'], + 'encodeOffsets': [[ + 119543, + 33722 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3402', + 'properties': { + 'name': '芜湖市', + 'cp': [ + 118.3557, + 31.0858 + ], + 'childNum': 4 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@„bVaV@XllLXU°ŽlL@V@VUnVl¯Ikš›VUVU@@b@lUXUWmb„n@¼šbƒĊ‚LÞ@lVXlmÞUnkJ@nlKVVšÞXklWVaVI@aUKn»lL@Kn@‚XXwlm@mn°@„V@Wy„wXlWVk™ƒ@aUaVU¯£kKWVXVWLUkkWlkkwmJUam@@aULVa@UƒVaUaVI@m‚@UUJUIUmmV@bm@UXVVUlVmImakKUU@UU@VmU@@kma@KVIXUVK@U™VmUkV™m±£@JkU@nlšk‚ƒLUlmb—@WbU@@XnlWb'], + 'encodeOffsets': [[ + 120814, + 31585 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3406', + 'properties': { + 'name': '淮北市', + 'cp': [ + 116.6968, + 33.6896 + ], + 'childNum': 3 + }, + 'geometry': { + 'type': 'MultiPolygon', + 'coordinates': [ + ['@@lnnK@¦n@@V‚V„@@VV@nIV„V@VW²a@b@bVnUVVV@V™z@lš@°UšV„IVaVV@x@ŽXX@WlwUnV@XblW„b@XlK@aš@kƒ@al@@_V@@WÅwmaUaV@„bnaVL@llInmU_@W@aƒUUĉUaVwm@XWK@wƒVkaVUUwU@@aV@@mlI@WœLWƒUUUƒVU@kV@XalKVaUƒVUUUk@WwUK@aVI@WƒUk@@UUU±xkb@lVš@xnLÇbUbk@@bÇVUJ±U@U—@WLXšml@bVVXL@lV@@LmbkLW`kbVxUn@LkxmV@bm@@VkV'], + ['@@VVVkV@¥@UV@U@VUUJƒkWakKUšlXVJ@bXV@blX@aXV@V'] + ], + 'encodeOffsets': [ + [[ + 119183, + 34594 + ]], + [[ + 119836, + 35061 + ]] + ] + } + }, + { + 'type': 'Feature', + 'id': '3404', + 'properties': { + 'name': '淮南市', + 'cp': [ + 116.7847, + 32.7722 + ], + 'childNum': 2 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@°kƒīšaVaXK@U‚UVmnXUlšVÆkVKUUUmmU„ÑkU™UÝlĉKUƒwƒKƒbU@UxW@@lœmVUUVmUUƒmƒw—aW„kL¯K@Žm„ULWlIm`X„WL@b@¼@V@xkVƒI@b@l@lk„V°Ȯ¹ĸW'], + 'encodeOffsets': [[ + 119543, + 33722 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3405', + 'properties': { + 'name': '马鞍山市', + 'cp': [ + 118.6304, + 31.5363 + ], + 'childNum': 2 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@šNJnllLnxV@laXLVKma„aXbVI„bVKVVVIVyn@n_ƒƒW@@ƒ„UnJlUVVXlLnaUWlV@VV„IXW@_W@XK@K@UVUUwVamÑXmmwƒw™KUnUK™çU@ƒJƒU¯@mŽ@nknWxWm@@LkKm¼VL@bUJUbkXWl'], + 'encodeOffsets': [[ + 121219, + 32288 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3407', + 'properties': { + 'name': '铜陵市', + 'cp': [ + 117.9382, + 30.9375 + ], + 'childNum': 3 + }, + 'geometry': { + 'type': 'MultiPolygon', + 'coordinates': [ + ['@@„ÒV¤@¼V²@aVV@Ž@„„x°Vš£nW‚@nbnaVXVW@k@aV@VUœUl™°JUkVm@U@UkK¯WVkKWkU@Ubƒakwmlwm@ƒkUmƒUUKU@@VmLUbVLUV¯U'], + ['@@LllUL@VlxšL@a@UƒwXamK'] + ], + 'encodeOffsets': [ + [[ + 120522, + 31529 + ]], + [[ + 120094, + 31146 + ]] + ] + } + } + ], + 'UTF8Encoding': true + }; +});define('echarts/util/mapData/geoJson/ao_men_geo', [], function () { + return { + 'type': 'FeatureCollection', + 'features': [{ + 'type': 'Feature', + 'id': '8200', + 'properties': { + 'name': '澳门', + 'cp': [ + 113.5715, + 22.1583 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@HQFMDIDGBI@E@EEKEGCEIGGEKEMGSEU@CBEDAJAP@F@LBT@JCHMPOdADCFADAB@LFLDFFP@DAB@@AF@D@B@@FBD@FADHBBHAD@FAJ@JEDCJI`gFIJW'], + 'encodeOffsets': [[ + 116325, + 22699 + ]] + } + }], + 'UTF8Encoding': true + }; +});define('echarts/util/mapData/geoJson/bei_jing_geo', [], function () { + return { + 'type': 'FeatureCollection', + 'features': [ + { + 'type': 'Feature', + 'id': '110228', + 'properties': { + 'name': '密云县', + 'cp': [ + 117.0923, + 40.5121 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@vIHZDZQtDLNMXIbHRCXXITbJ@H`LGPRDDJNCLHTOCWFGvGBUJMKGFO^IHWXITQCI’Y^AXGfRˆDXF`DJOLB~G\\DZIHHpErUVMhHb]\\M†BVF@FTP`@zTbD\\@~M\\K`H^EVODWICAakAQXoIcCOCIgGYNWFWNGGKKGaJEGMEIKYJUT_J_Go@_SyQaSFMEGTcYOQLIIi@EKAUPCV[EEXQCW|aMUMAaYCYNIDGGACIMGGSKDQGaF_C[GaB@GOIiOKAYL“mI@CN]F[SWWAcKKI@HMUimEKbeYQYISNUOcBKPIFBNgvDPGZYFSf]CMSIWGEUFgDIQ[MeDMJS@RR@LphFPCHaBAJKF@J]IBJO@HlO@@RKAMPJHCNDJTHFP@ZGNANBRFH@J_fM^ONJNF\\VTDJHDON@XRND\\XRCPVETCLBVKDFJINHRGPRV@\\CLJN@VbXbLVT'], + 'encodeOffsets': [[ + 119561, + 41684 + ]] + } + }, + { + 'type': 'Feature', + 'id': '110116', + 'properties': { + 'name': '怀柔区', + 'cp': [ + 116.6377, + 40.6219 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@JHTVHXCHPfnDJGHNDJSB[JSBGVSAOH@PMPuDEHHXZN@PHF@ZLJ@LHVYJA\\OFWP]BMtMBSRGV[JeVAPQVIFENMD¡–@^NV\\JH@NNL@NM\\kTQ\\I^FNIpBHGTBFFAZQfKDIXQTLXFXNNVMVHRGpCFLlRLEVBBH`IVO\\G`RDPAXLXBXORHZEHTDLLN@VGTMrQNFPeASKG@GMOAKBYMK@GTUHUXSHMVDNMOUEOZMJML@^KRACMZEZMRQLUHE@OFENPR@DI\\ChMHIDG\\GJMDWHCKGMDCIQCHO_K@GaIJSWWQDaGWJMNCKRsCYGYuJUSaKaW@UIMDK@[QUHOGQJMEILCAUDKFSOUQD[WMC‚Q@WPMGCCIUSE[IMPMN]`e@IEGAQBMHM@YEOSGCIDMIGNOLB@QP@GkP@AI^J@ILEBIbADGEOog@KQQWSekWQQUOFKZLF@PUNmIaHIUeBCTSHENcJa@_IWSaGu`GLSBKJQFOXGDXVQVOBIHcDSJWBEFGTMH[^mLaXcHiKElTRKtFXZ`MHMPCNRDxZˆB\\ICIHK@KŽHbIVFZ@BPnGTGbDXRDJaZKRiGEFSFEJhjFNZFjn'], + 'encodeOffsets': [[ + 119314, + 41552 + ]] + } + }, + { + 'type': 'Feature', + 'id': '110111', + 'properties': { + 'name': '房山区', + 'cp': [ + 115.8453, + 39.7163 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@h@bl@HRJDZ``TA\\VVD^H`\\pF\\JŒ`JGv@ZO\\GPSTEjPTR`FnEbDTDHEhLFMTK@ETSPULKEI@OVISKSJACEQNQbV˜IXGDIN@dMB[IIBcN]ZHNLP@XOWCFWŠCNRHTpATD@^NVNLED@Rh@jCEF}E[OOHUEW]W@QGGDIQSH_MmFmCUT_K]i@MHCMW—FCF‹E{BMHMPOHKS]CFNGBELDH_@BcAKOACESAOBELaXAROB@FODMEDWJAG[aE@UM@DImEWJMC@OeCA{aE[@{L@MINUCQXKfUJORCHqJBF@TCXWNQX]M[EAJO@@KMBQJIC]EWMCCUBEBFHKDOTMBGNGF]MWDBRDdMDQVyE@LPVHDCP@JVVMTG~HNSH[CmRUvHPHBbA\\PTNRC\\YNJ€PRARPJDDR'], + 'encodeOffsets': [[ + 118343, + 40770 + ]] + } + }, + { + 'type': 'Feature', + 'id': '110229', + 'properties': { + 'name': '延庆县', + 'cp': [ + 116.1543, + 40.5286 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@^AXOPEB[ZIGU@KKI@YGE@OYMGWFGvCNO@OPGTBHUTA\\ITACIGMIHmCOeDGGWSUIGimYEEMgiFITEFEjHLQbYCIWQaCSHmHAOY@UEaJG@LGLDJ[J‡AwYQCDMNONGY_EWLsSQFkMO[NWAIGaIYL@HMBOKiOQDWEUDMQSF_QIUBWdg@[NaAKQ@M]OQ@WhgLUMMFYQDIRCEUZOOCIOJ[KIUMKL@HIDKVEBM`HJAJSJUdBLGNEdMBMO[BYEWJSNKNaD]PE\\SjOT_RQVEZPpƒNQXfŠNA~lNG`@PNLp¼RFLfbdKbATUh@FSNWjGFZVLFHVA~X¨PPROfFJbNJPLFbENJPrEFNPFRHDDJdENJLVEPBJTVTHGHFRFH@PXP\\ORQHW\\BjWFDERLPPBbB\\E`B\\D\\L`@F]FCnJ^AZL'], + 'encodeOffsets': [[ + 119262, + 41751 + ]] + } + }, + { + 'type': 'Feature', + 'id': '110109', + 'properties': { + 'name': '门头沟区', + 'cp': [ + 115.8, + 39.9957 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@V@XMnGPY²‰JQNEhH\\AZMPDVTTDZCPiJkHSHCjIdFtEHITCNITQEKUAMCEIKCECABYESKFWAKBEIIHABGDCKCAIHMHALKEI\\CFIBILIJQZS]BBEECS@E@@C]COKI@CABAAEEDMGƒCH]A[M@CJWH—JaUMRFRBDTITLUJ@PFJKLOVST@FSLENgKGFSCaCmF_ESQiOSFOT[HYPu@IH‹_[IoE_[]GUC[USB__CYQI@Gakg@qZeHQNMNV\\FVLPgJAFJPRLCH[XcPELUT[JiV_EELFTADBXRTRLJC@fHXHHbPd`fR@NfT`@TLplHMpCEJHJBVLFŽ@JT‚VnG^KXDXHNVGRLRXFJVdDHSNWLGfEzA'], + 'encodeOffsets': [[ + 118635, + 41113 + ]] + } + }, + { + 'type': 'Feature', + 'id': '110114', + 'properties': { + 'name': '昌平区', + 'cp': [ + 116.1777, + 40.2134 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@VNLJI\\JPPDYPFVQDCJZRNEVNhKXgR@^P@NLRbB\\Mh@XcVARJE`RTCNFV€XRCjPPLNA@GZKbJJHXB\\MNPjLdGbWnK\\]NGHSFEXATIdCJGPARUWUHCPWRELITAHKv_E@iYCaW_BQ\\Y@QIO@QDCIGZCEMWGFMFAFgHEDOCSqKCCFGAMKEAC@ODGCGs@WH@KQA@EE@CE@GEA@EH@GGUEEJEAYD@JM@@DAA@FHD@FTJEHUC@JUBKCKG@G[CIIQReAYhO@OXGDO@@FF@IHJFCPEBACBIAAKDOABXARHPNEHGbQAAKQFGIAM[C@WHKaGiCEGOA‹HUKCIokSCUSOCYN[BgGMFIR±ŠOZmHWNU@ShbbXDHVXXGJ^lZ@PZ\\Nb@\\FHJAD'], + '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'], + 'encodeOffsets': [[ + 118940, + 40953 + ]] + } + }, + { + 'type': 'Feature', + 'id': '110102', + 'properties': { + 'name': '西城区', + 'cp': [ + 116.3631, + 39.9353 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@XBDA@EIACM@IJAD]BC@SFABISAD]H@@OAEDQEW@BLE„MD@FLDh@@LDBF@@M`J@fTB@H'], + 'encodeOffsets': [[ + 119175, + 40932 + ]] + } + }, + { + 'type': 'Feature', + 'id': '110101', + 'properties': { + 'name': '东城区', + 'cp': [ + 116.418, + 39.9367 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@DBf@@VDA@OF@@CT@FEH@@GADBMTBBECCRCGG@YS@@gDK@A‘C@PG@C^TBAJEB@TADC^IB@J'], + 'encodeOffsets': [[ + 119182, + 40921 + ]] + } + }, + { + 'type': 'Feature', + 'id': '110104', + 'properties': { + 'name': '宣武区', + 'cp': [ + 116.3603, + 39.8852 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@RBX@RFFCŽBFU@aK@WA}CCJGAEFkCBRFD@JB@@N'], + 'encodeOffsets': [[ + 119118, + 40855 + ]] + } + }, + { + 'type': 'Feature', + 'id': '110103', + 'properties': { + 'name': '崇文区', + 'cp': [ + 116.4166, + 39.8811 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@XBL@@bEV’D@BX@AC@MHA@EIBCCDSEMmB@EIDBME@@MG@EDUCENWD@H'], + 'encodeOffsets': [[ + 119175, + 40829 + ]] + } + } + ], + 'UTF8Encoding': true + }; +});define('echarts/util/mapData/geoJson/china_geo', [], function () { + return { + 'type': 'FeatureCollection', + 'features': [ + { + 'type': 'Feature', + 'id': 'xin_jiang', + 'properties': { + 'name': '新疆', + 'cp': [ + 84.9023, + 41.748 + ], + 'childNum': 18 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@@›ρȁôƧƦóəʵסʵóƪԫʵѵͩƧͩړ›υࡓɛʵ@ȃ@óᇑѵƨɝɚôóНѺͩɜ̏ԭʵôƧɞñ@υƩ—݇ȂóƩƧ@ѵȂυœƥŌਗ—॥ɛóʵѵƧѹ˜݇̍ࢯ˜əɞυ˜ρͩ̏óਙƨƧŋôōóš̍ͩóʵן›óŋړͪƧѶ@ɜԭ—ԫƦɛȄ̍›ɝȄöςƩȂ̏œñȀ̏œƩóóŎə˜@Ő̎@ɞȀɝŎôƨóנѵȄƧ@óŏɝœóɜôŎ̍ͨςŎ@ƨóôƨɞ݈ʶóƨφó̎Ȁƨ̍ԮòѸԮמ@ѺȀ@ƪၬֆòȂñ̐òȂɜ˜óƨ̒Ŏ̑߼@φρȀ@Ő๐ς̎Ƨφ@ɝφڔ೦Ԯǿࢰ@ƦŏԮƨƨȄƧ۬ɜʶڔŐɚɚóŐôƨ߼˜ôƧƧó̐ƥóŏѺǿƦȁφƧς˜ƨƧ̒@ɜƥƦυ̐ɛƪͩƩəƪʷ̑ə@ȃƨʵנŋྸōਚԭԪ—@ɝƨŋ̒օςʵôƧ'], + 'encodeOffsets': [[ + 98730, + 43786 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'xi_zang', + 'properties': { + 'name': '西藏', + 'cp': [ + 88.7695, + 31.6846 + ], + 'childNum': 7 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ôŌנœôʶ̎ͪô™óŎƨŌਚƧ̐ôςͪφ—ɚɝࢰ—݈̎Ѻ—Ѷƨôʶ०ɜਘ˜Ʀŋφ›Ѷȁ̍—ôŏɚŋ@̑ə—@ŏò̍ɜ›óƥôʷƧ̍φѹԪ̍ע@Ѹʷɜ@ôñנ@Ѷɛɞô̐ŏѶƨѸƧƥōƦœôŏô—@ƧôƩ̒ŋƨŌƦǿô̎ɜȁ̒—óʶѶôôО̒›ςƥɜНφσɛȁ̎υƨఱƧŏ@ʵƥœ@ŌóóóͩƨƧóŋ̑õóɞóɝԩͪɝρôƧ̍ƧѹͨڑŎ̑ōóƧࢭͩ̏ѵɝóఱóóԪυô@̒ƥŌ̏Ƨ̑Ȅ݇ŎƧ›ѵӏ@ɛõŏɛȄôӒƧŌѵǿɝ˜Ƨŋԫ@̏ʴƥ@óǿ̑Ȁóǿ̍ςóóυô@ʶɛñρƦƩŐó̎óœѵó̑ͪࢯОóɜן˜Ƨ̏ƥȄ߻̎̏̐ןŎɝɜöɞƩȀôöɛȀóͪ̐ƨƪ̍̎ȂƥԪυО@φɞ˜ôƪ'], + 'encodeOffsets': [[ + 80911, + 35146 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'nei_meng_gu', + 'properties': { + 'name': '内蒙古', + 'cp': [ + 117.5977, + 44.3408 + ], + 'childNum': 12 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ኊȁ૊ö߼ƩɜɛנñԮɛѶóԮô@ȁѸóמ̎ගѺၬ@߼ʶԮӒ߼̎@ŐѹӒ̒Ԫƨöග̑ѶȄ̒ς।œѶɚöɞɜʴڔôôȂ̎—ѺȀς—ƨ˜ƪóԪ—ɜôɛОਕڔԭ˜ѵ̍ѹȂԫ›ɛƥ̍Ȃóɜ̎ô@ʶ݊ੲࢮʵږͪנƨôȂƧ˜̐ͪ@ŐƦƨφԬѶɜôƦ@ŐƧôôƦəŐ̏›@ŐڒѶԬô̐ʳԩНςōôŏɞ@ƨȂѶəóƧ̒ػ̎ó̐Őנóƨô̒@ƨɚɚ@עԫɛɛ@ȁυͩƥʳòևρ—̑ࡗƧͪ༃ॣԮփ̎Ʀ@ôô@ôō@š@ȁѵóƨ̍υȃóʵɛƨƥóυȂóəƪ›̐ρƧͩɜԭڔȄ̎عƧȁ̐ŏó̍ɛ›ƥƧ̑óρŐ@Ƨ̏˜ɝəɛ˜߻ͩ̍ͩɝО̍ƪƧóóӓƨóƧʳ݇@ɝςƪœ@ʴƩ—ƧƦôƨɛȄə›Ƨŋυ›óͩѵ@ɝǿóŌן̍ɛ˜óО̍œ̑̏ôȁ̍ŏòȁñóƦͩ@ǿə@ɛƧ̑˜ρȁυô̍օѹœóȃə™@ȂσʵѷƪòƩ̍—ôó߻ۯôʳƧ™óšõʵѵóѹɜ̍ȂѹôɛŌφֈƩͨρóυӑóޟఱ̑݇ͪóƪƨŌóȄڔԬƩςםñ̑ȃѵŐԭŏƨȁɛǿρôõɚɛóƧОə@ѹ̐ѵöԪͨôͪɛ̒ןŏƧƥóôƥƧɛŌôóɝó@̒݇Ӓ̒Ō@Ŏԭࢰ'], + 'encodeOffsets': [[ + 99540, + 43830 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'qing_hai', + 'properties': { + 'name': '青海', + 'cp': [ + 96.2402, + 35.4199 + ], + 'childNum': 8 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ƨ@ôƪ݈ȁƪ˜@φɝòóƨԮʶɛ̐ѹͪôОəóƧɞᇒѶ@ôږô@ǿѶ›ƪȁςœɜͩφ˜ςŋɞôѶɛƨŌɞ—@ɚςŐñԪॢͩƨȂɞóƨŐ̎ŏעӏ̎óƧƦôœ̒ȁɜ›ςͩ̒œɚɛƨôƨɝφɛóȁƨŋóóɚͩƨóóƩ@ƧəŋƦƩ̍@ƧƧôǿυ̑@ȁɞǿõŏρƥסɚƧóτԫɞœôƧƦ@ñȃòñƥóυôôѹѵ—@ŏ̏Ȅɝó@ȂəŌóəѹƦ@Ő̍Ōυ݈ԩŐƧóôƧ̑›ôʵɞƧ̑ѵôƩɞƧ̑œóНѵóôʵ̑˜ɛȂó̍ƥȀƧŋ̑Ōóƪ@ƨó˜óŐƥ›ƦŎѷƨѵƧ̏Őɝóѵɜן@óòɛ@ѷʸס@ԩ̎υѺƨ̎óʸôƦɛœñ̎@Őɚ˜@̒əŌóŐ̎˜'], + 'encodeOffsets': [[ + 91890, + 36945 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'si_chuan', + 'properties': { + 'name': '四川', + 'cp': [ + 102.9199, + 30.1904 + ], + 'childNum': 21 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ô˜ôŋó̑Ԯ̒ɛОמͪƨōöͫ߼ƥôȃƨóóñôƧóƧôōڔŏƨŐ@Ŏô˜òƥѺŎ@ōɜóנ˜ôǿô›ƦôԮ̍ɜôɚ›Ƨ—ñɛɚȁ̍Ƨɛևυ@óóôŋρԭɝ@Ƨʸ̍ŏυɜƧƧóƧƨȁρ̍ƨȃɚ—ôʵφóô̑̏Ȃ̑ʵɜʵɞ@ƨʳסƩóŎə—óɜƧôƩƧρ˜óôôô@ŎƧƨƨƪѹ˜ó̍̍Ʃ@̏ѹНôޟ̍Ʃóƪυɝɛ—əƨôŎɛȀ@Ȃ@ñɝʶ@Ōρנ̏—õóɛͨƨȂѵОɛʵ@̏ƩŐó߼Ƨల̍φɜȂυτɛОρƦɝƨóƪ̒Ѷɝƨóʶ̒œóƨƨôԪŏφ݇̎ŋ@ŏѺƥôɚɚŋ@ȁɞô̐ȃ@ŐѶ˜óѺφóƦôñòòȄ'], + 'encodeOffsets': [[ + 104220, + 34336 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'hei_long_jiang', + 'properties': { + 'name': '黑龙江', + 'cp': [ + 128.1445, + 48.5156 + ], + 'childNum': 13 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ᇔȂਚНƨŐѶŏöƥςŏñƧƦóƨȁ@óƨ—óȁφӑóóƨ˜óǿ̎̑ôНɞ—ó̑ɜə߼›̎ǿ̒ôڒӑφ@Ƨȁ̎̏ƥƩ̎ρశ˜ôȂςƨφ@נɞ݈˜̑ƥƧɛƨʵƧȃƥ@Ƨƥ@ŏ̑ԩôɝρρóɛƧ›ƩͩƧó߻ʸ̍ʷѹƥɞڕõ̍öɝυ—̍ȂƧ̐̑ŏóƨñŋѹóóȁ̍›̏Ԭõʸ̏ŏ@ǿ̍@ƧОυ@ñƨòȀƥŎ̑ŐѵóɛŌóȂԫōƧŎѹñ̍ʶóОן@Ƨ̎Ѷô@Ȃ@™óŎó@@ó̍ƥԭք༄।ƨͩ̒ࡘς˜ñֈƦʴφͪ@ȂɜɜסԬə@Ƨə̑@Ƨóןô̏ŏ̍ô̑ؼôƨѵɚƧȁɝ@óŐρŎԪО̏ʴ'], + 'encodeOffsets': [[ + 124380, + 54630 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'gan_su', + 'properties': { + 'name': '甘肃', + 'cp': [ + 95.7129, + 40.166 + ], + 'childNum': 14 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ڔôԮࢯ@ō̑ŋ݈ӑ@̑ɞôóôɜŋƦƨôóƨƦנŐɜ̑óͩԩͧѶõѺ̏ɚ@ƨНɜôöəςóɜȀƧȂԮŐѶŏ̒ȄמòƪρړԫôȃƧŋôƩ݈ͩɚ@@ǿɜ@φͩóŏɜӑƧōôǿ̎›ôƥƪóõ›ö@ô—ƨ˜ôƧƦôó̒ɜ@ɞŌõʶ̏Ő@ȀóôƨȂ@ʶע@@ƥ୾ӑó̑óŋôʵóɛړ@@ƩöóƩóρ—ɛƨ̑@óʷƥƥ̎ɛƧ›ôōƧǿôͩѵôɝȃɞȁõƧρóó—@ōƧŏړŐóŎôƨóƨôòƧôóȄ߻ƦõͬƧŎםͩɜНԭ̑ô̒óŌó—ƥ@óƨɝ›σԬƨôעəςƦöŐɝȀ@Ȃφ̒óȀƨƨ̎@ƥƪɚŌ@ƨôƪƧôəͪôôƧŌôȂυɜƧɞƧóəɜ̑›ρͪɛœ̑Ȃó›ƨƥ̍ôסӐ̍ŐƧŏɝôƧȁॡͪòԩρŏ@əɝ˜ƧŋѵɜɝóρŌυ—ɛͪρ›ƩȂѵœ@Ȁڕó@ȄɜʶφࡔڔœƨͪѶͪԬʶôƩעʶɚʶƥôóƨςȂ'], + 'encodeOffsets': [[ + 98730, + 43740 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'yun_nan', + 'properties': { + 'name': '云南', + 'cp': [ + 101.8652, + 25.1807 + ], + 'childNum': 16 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ôɞôɝ̒öôŌƧƨôͪôô@ŋƦ›@ʶƨŐô߻ƪŏ@̐ɜʶѶНƧȁɜͧöô̐˜ςן@ŋɞʵ@ò@ȁɜǿóōɚƧɜ˜φɞôƩ̎ƪóޠѺО@̐̎ƪô̎Ѻ—ƧƩƨƧ@ōóóôóς—ƪƨƨóôɛó̑ԭ—ƥŌɛǿɝƨɛͩô›@ǿƨȁѺŌɚɛ̍ןѶНɛƧôóƥȁƦͩôŎɞ—ƨ̑ɜ—òôφ@ƨʵ@ɛѹōóȃəƨυǿóʵρƧƧŌƩɛ̏ȄñƧƧȀɝ̍ԩʶƧ̑υ—óŌƥʳɚӑóНƥô̑›óӒѵʵѹœƧӐןôƪφõŌƪ̒ԫŌƧؼƨƨס›ρȁƧœƨȂóʶó@@ʴƨôôφ̎Ŏ@Ȁƨ—ƪɚƨœóƨôôôςóޤƧŌƩŋƧԪ'], + 'encodeOffsets': [[ + 100530, + 28800 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'guang_xi', + 'properties': { + 'name': '广西', + 'cp': [ + 108.2813, + 23.6426 + ], + 'childNum': 14 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ƦŋѺ̎ڔʵƨŐ@ƦמȄƪôóȂɜŌɚͩɜ@öóɜôôȂƦôɜȁ@ɞφ›óȄ̎›ƨʶɞŋƨʴɚǿ̐̎Ԭ@ôñ@̏ƨ›ρ۫ô›ɚƨƨНƪŐ̎›ƥóƦʵƥŋ@ȃóƥƧ@@ŏɝǿôυƧȁѵɛ@əóŏ̑@@ə̍›óƧó—@ȁƩ˜ρóòНƥô@Ӓ̑@óŎ̍ƥσŎυ@̍ƨ@Ō̑ôóͪƨ̒óŌړœ̏Ŏ@ŌôȄѺŎ@ɜƧʶυ@ñóɛ˜Ƨ̒ɝ˜óōƥͪ'], + 'encodeOffsets': [[ + 107011, + 25335 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'hu_nan', + 'properties': { + 'name': '湖南', + 'cp': [ + 111.5332, + 27.3779 + ], + 'childNum': 14 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@@քɜОƨ@öŐמóƪôƩɚ̒Ő߼ȁςͩɜòƪ—ɜȀò—ñɝò—Ѻͪ@ŏƨŋóɝôǿƨ™ɚȃóəƨȃѵͩó̍@ȃƨóóƥƨƧ@ʵƦ›óͩɜ—ɛóñԭɛōυȂ̍ƧƦō@ɛƥ—ɛȀ̑œóʷóō̍œƩŏƧОəƧóœς۬Ƨœ@̐óòԫ@̏̍əȀƧʳɝŌóɞƧ˜ƨɜóŐƨò@ȄƧŌρŋóôԪОóʶ@̎óȄ'], + 'encodeOffsets': [[ + 111870, + 29161 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'shan_xi_1', + 'properties': { + 'name': '陕西', + 'cp': [ + 109.5996, + 35.6396 + ], + 'childNum': 10 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ςôöƨɝȂɞȄѶóóͪƨȀóŎƨœ̍ɜƦƦôʸ̒@ɜƧς˜ƪôõô@ƪڔ@ôɜóʶôŌô̒୽Ӓ@Ʀ@Ѻ̎ɜѺɛѶôöʶô™ƨšóʴ߼۰óô̎˜ñƪѸƩτʶ@ȁòŋəѹóǿ̑ʵ@ȁ̒ʷυփô݉ôН̏ط@ȁƨóô̏ƪõ@ʳ̐ʵ@ɝɛŋƩŌɛóןôƧŋ̒ó@ŏ̐ƥ@ŏυ@ƧƧôן̏@ƥȂѹɜəœɛóԭ̎ƥóóœóȀן—ɛô@ŎѹōñƦ'], + 'encodeOffsets': [[ + 108001, + 33705 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'guang_dong', + 'properties': { + 'name': '广东', + 'cp': [ + 113.4668, + 22.8076 + ], + 'childNum': 21 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': [ + '@@@Ȃô˜ôƨ̎œ@ɚ̒@ôŐ@ɚѶɜƨȂóφɞȀ@Őƨ@ôƦ@ȄƦŌƥʶƦôôŎôʸ̒›ɜǿƦ˜@ɜƥŎ̎ƨφȁɜŎòƥԮŎƨōóŏɛƧɝəɞƧ߼ɜςȃñȄƦŎ̒ōôòƨəƨ˜ɚН@əƨ̏ƪʵυŌəɛóəԭŏəœóŏѹœρʵɝƦ̏™ƥʳѶ›öō̑óóŋρȀυƧƥɛѹōƧôן—ɛŏѵ@óŋôʵɝ›ƪԩõ@Ƨō̍@Ƨ@@ƦɝԮƪО@@', + '@@X¯aWĀ„@l' + ], + 'encodeOffsets': [ + [ + 112411, + 21916 + ], + [ + 116325, + 22697 + ] + ] + } + }, + { + 'type': 'Feature', + 'id': 'ji_lin', + 'properties': { + 'name': '吉林', + 'cp': [ + 126.4746, + 43.5938 + ], + 'childNum': 9 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@נ@ôН̎ʵѺòƨōԬŎôȁɜŋѶô̒ŏƦōñǿòƧφ@ƨН̎@@Ȁ̐Őöʷ̐ԫ̎œôȂѺôòŌôƧ̒Őƨ̏̎ȁφ˜@ŋƩͩםȃƨ—@ȁ̑ʶ@Ōóôɛœƥѹ̑—συ݇@ɜρƧȃࢯƨôœəȂɛōƩɛ̏υρóõœƪʴυφ@ʶôŌóœρք@ɜƧ@ɝǿƧͪρȀƩó̏ŐƨȂ̍غړȃɛԮƨͪ̏ςƩœôɚφȁƦôɜƧôʶφȄ'], + 'encodeOffsets': [[ + 126181, + 47341 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'he_bei', + 'properties': { + 'name': '河北', + 'cp': [ + 115.4004, + 37.9688 + ], + 'childNum': 11 + }, + 'geometry': { + 'type': 'MultiPolygon', + 'coordinates': [ + ['@@Ʃ̒̏ŌѺ̒Ʃ˜óȄƧŌƥͪòôñȂ̎ŐóȂ̒̐̎›ôНɜ—נ̎ôŋɞȀѶ@ôͪφœƨŌɚœɜȃóƧƨƥƪ˜@ʳƩ›ɞρ݈@υНφʵɜ˜ƦρƨƧ̍ɝóɛѹ̍ρŏ̑ôóƨ@œƧƦôƨɛ@ƥƨ@ȂƦ@@ôəŐƧʶƨŌυœ̍̎ɛŋôōɝ@óƧ̍›ƦʵѵʳôʵɜŏςôƪŋƨŌɚ@ôНƥƧ@ōѸɛ̐ô̎ʵѵНԭ@̍̍Ƨò@ȁɝ@əρυͩƪ̏ƩõƧŎƧōóšॡȄɛʶɜȀ@ɞςѶƧœƥςɛŐ@ɚɜɜ@Ŏôôςœƪς'], + ['@@õə@Ƨɛ˜@ŐóƦφô'] + ], + 'encodeOffsets': [ + [[ + 117271, + 40455 + ]], + [[ + 120061, + 41040 + ]] + ] + } + }, + { + 'type': 'Feature', + 'id': 'hu_bei', + 'properties': { + 'name': '湖北', + 'cp': [ + 112.2363, + 31.1572 + ], + 'childNum': 17 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ñȄυƦöŐƩ˜óנƨƨφ@@Ő̏Ʀ@Ő̑ôƨŌנóɜôƪŋɜŌѶօڔə݈òɞōɜŎôӏƦóƨô̒óôȃƨó̎ŐôƧƪ@ƨȁςƧə̑̎Н@̍Ƨŏρôԭͩԫ—̍ʵƧšóȀôɞƧŌ@Őѹͩñ˜òɞñ˜ɛǿƩ˜ɛñρͪ߻Ȃ̑ŏƪəƩóםôõŏƧ@ɛНƥȄó›̑ѺƧ›ôφóƨƨƦƪóɜŐôóòôƨóφ̐ƨóƦ̎'], + 'encodeOffsets': [[ + 112860, + 31905 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'gui_zhou', + 'properties': { + 'name': '贵州', + 'cp': [ + 106.6113, + 26.9385 + ], + 'childNum': 9 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ɜȀƦŋԮ˜ô̒ɚ˜ôōעƪƧʴɝ@ɛʶ̒ʶ̐ȁƦœóȂô@ôŏ@ōô—ƨʶѸô@ʶƨ˜ɞó@ōτöòυƨ@@əƨô@ɛ̒@Ʀɜôȃ@̍ôʵԩНôóςŌƨŋ@ȃƧñôŏƧɛƨ—ôɝƧʵ̍œôȃυœ@ɝɛȂƥóóȁɛóõôɛ@əͪɛŋôȁƩóםȃ@ƥƧŏړʶѹ̍ƥŌƦȂóôɜƨѵО̎נəɜѹŋƧȂ@ȀóœɜͪɞƧ'], + 'encodeOffsets': [[ + 106651, + 27901 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'shan_dong', + 'properties': { + 'name': '山东', + 'cp': [ + 118.7402, + 36.4307 + ], + 'childNum': 17 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@Ʃ̐φͪɚςɞ@@Ȃƨñ̎̎Ԯ@ѶОƨƧڔ@φН̑ŋ@Ʃ̒ǿ̎@ƨɜԬςôʶ̐ʶöԫƨƧנƥɜŎôō̎@ôŏóρƧŏԫôóƧԩó@ƥɜƧԭóƨʵɛƨ߻ӑɜНԩ˜óô̑óƧʳə™óɛƧ@õȀƧœ̍ȃɛŐóŏυО̍—óɝƩ—ԩ@ƧɚԫȄɚʶƨ˜ɞʶԪ̐ړɛƪ̒'], + 'encodeOffsets': [[ + 118261, + 37036 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'jiang_xi', + 'properties': { + 'name': '江西', + 'cp': [ + 116.0156, + 27.29 + ], + 'childNum': 11 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ƧȄôɚəȄ̎ʶԬ˜ԮͪςóƨŐƪ›τɞƦōƥƧ@ŏςôóŐôô̒ʷѶ—ƪƩƩǿ@ō̒ɛôυ@—Ƨȁѹɛəƨѹ̑ƨ̏óƥѵʷô̍ɛȁôŏɝǿƧԫƧ›ôʳƥōòȃρȄ߻ɛɝƨɞɚɜƨôŐƧŎԭōñƦòԮɜôɛ˜ôͪƥœ@ʶƧƨôƦƧô@Ȅô̎Ѷͪ'], + 'encodeOffsets': [[ + 117000, + 29025 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'he_nan', + 'properties': { + 'name': '河南', + 'cp': [ + 113.4668, + 33.8818 + ], + 'childNum': 17 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@φ˜̎ƪ̐˜ɞȄɚ@@Ȃעó̎ŌѺ̒ôֆॢȃô™ƨŎƨōƪöƩ̑ڔɜԩ̏ɝʵƧ—əʵԬȃƨəԪ@@Ƨ̒ŏô̍υȁƧɚ̍ôóŋ@ɝƧŋõ̑σ—@ŏɜŋôɝ̒ƧɚôôطρóóɛƩ@óƨ̍ŏƧôóȄ̑ôƧóƥôóӐɛōɝŎ݇ñړɚѵֆ@ɞ̏ʶ@ʴƩöó̐'], + 'encodeOffsets': [[ + 113040, + 35416 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'liao_ning', + 'properties': { + 'name': '辽宁', + 'cp': [ + 122.3438, + 41.0889 + ], + 'childNum': 14 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ƨʴƧôôӔƨô̎ƩɞН̎ͪ߼ͪɜ—ɞɚ̐—@ƨςŏ̒ôƦƨɜœô̎ƪôςǿƨͩɞȀƨ@@ɛςփô›óŋ@ʵφυƩʳö›॥փρѹס@əɛ@ͩࢯ@ѹʵρ—ƩʶφȀƧ݈̒۬óʸɝŎѵ@ԭԫןɛƧƨƥςɛ—υʶφО'], + 'encodeOffsets': [[ + 122131, + 42301 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'shan_xi_2', + 'properties': { + 'name': '山西', + 'cp': [ + 112.4121, + 37.6611 + ], + 'childNum': 11 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ɚѺñŌɚšôȄѺ›̎ֆφóςȂ̒—ɜƨɚ@@Ȁƨŋôȃƪ—ѹ̑̐ŋƪ̑Ʃρρ›óó@ōɛɛ@əɜŏƦρƨ›ρѵ@ɝɛǿɜʵóօѹ̑̍ŋסô@ȁə@ɝȃ̏—̍Ʃυ—Ƨô@Ȃ̐ظóОó݊φք̑ʸ@Ȃ̒ʶôȀ'], + 'encodeOffsets': [[ + 113581, + 39645 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'an_hui', + 'properties': { + 'name': '安徽', + 'cp': [ + 117.2461, + 32.0361 + ], + 'childNum': 17 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ó̎̑Ő@ƨƪ˜Ѷǿɜ̑φ—Ʀʵ̐˜Ƨѵôóƪôôυς—ƨȂɞŏ@̍ԫôò̑ƥ—óȃѶͩƧƥôŏѺœôŏƦ—@›ƥͩƧ—ôȁυó@̑ƧɛѵʵƩƪѵ˜̑ʸóóôŏρó@ŐƦƨƥŎσɝƩœ@̎̍Оɚ̒ρƨƧȂôɜςôóظəó̑ƨóɞɛŌ@Őτ˜ö̒ƨŌ@ɞôŌ̎óƨəφȂ'], + 'encodeOffsets': [[ + 119431, + 34741 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'fu_jian', + 'properties': { + 'name': '福建', + 'cp': [ + 118.3008, + 25.9277 + ], + 'childNum': 9 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@̎›óȁƨӑ̒—̎ɚƨͩφŐƨɝ̎ŋóŏρ—@ōƨ›òʳəóƨō̏˜õɛƧ@ƨѵƧōəŏóŋƧô̑ɝɛʳƥ@@óɛõ@Ƨ̑ƧóȁəƧ̑—Ƨ̐@ɚəОƧ—Ƨɚóñ̑ŎóʴƨœƨԬɞȀóŐɜȂó̎ѶʸôƦƧ̐Ѻ̒ɚƧѺɜƨȂ'], + 'encodeOffsets': [[ + 121321, + 28981 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'zhe_jiang', + 'properties': { + 'name': '浙江', + 'cp': [ + 120.498, + 29.0918 + ], + 'childNum': 11 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@Ѷʶƨɜ@̒φôóȂƨ˜Ʀͪ@œ̐˜Ѹ̍τȂ̒̑נŐמôƪƧôӑ̑›@ƥρͩƨօ̏@@υɝó@ŋɛ@ôƩəóƧѵυó@ƩɜŋƧ@̍ŌƧɞυŏƧͪ̍ə̑˜ƧӒôȂ̍œ@˜óφ̑ɜ@ŎƪȀ'], + 'encodeOffsets': [[ + 121051, + 30105 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'jiang_su', + 'properties': { + 'name': '江苏', + 'cp': [ + 120.0586, + 32.915 + ], + 'childNum': 13 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ôɞ̎˜φНôŐɜŏ̎Ȅƨ›öǿƨ@ôɜɚšƨʴ̒ôôó@Ƨ̎əԮȃԪૉöͩ̐ƧòʵφƧôʵ@óړɜóŏɜǿƧ›ɝρσȁѷ̎̏—ƥ˜óŐѹ›óŐƨƦѵͪôȄƦ˜ñ̒Ԭó@̎ɝŐƧȁρ˜óφƩóóôƨѶ̏—ƥʶυ˜ɛ̒ѵȀ'], + 'encodeOffsets': [[ + 119161, + 35460 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'chong_qing', + 'properties': { + 'name': '重庆', + 'cp': [ + 107.7539, + 30.1904 + ], + 'childNum': 40 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@əȂòɜƨ˜ѺɛƦȁ̐@ƪ—õŏφƥòȃƥ̍Ƨôυ̏ƧôñóóôɛŏƩôƧƥôƧóυƨœ̒ѹôœƦȃ@փƥɛ̑@@ɜƧó@ɚƧ@ñφσõ@ŎɝôƧ—@ʵѷóƧʵó˜@ŎóŐó@ôȁƥ›ó̒υôóʶə˜ƧȄς̎ƧȂôƨƨƨφɛ̎Őƨʷɞ@ςԮóŌôôφ@ɜֈ̎ƨ'], + 'encodeOffsets': [[ + 111150, + 32446 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'ning_xia', + 'properties': { + 'name': '宁夏', + 'cp': [ + 105.9961, + 37.3096 + ], + 'childNum': 5 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ల̒ôޠφӒςôƪͧυևɜŋѺó̎ȁ̍ɛ@ѹס@@ʵƧȁôó@ǿ̐ŏöʵɝŋɛ@ô̑ƥóóƨƧ—ó˜ôœó@ƩôóƦ̍œóȀƨŎɛӒôŐυͪɛ@@Ȁə@'], + 'encodeOffsets': [[ + 106831, + 38340 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'hai_nan', + 'properties': { + 'name': '海南', + 'cp': [ + 109.9512, + 19.2041 + ], + 'childNum': 18 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@φɜƦʶ̐ôφô̎@ƨŎö@τʵƦ˜ԩ۫õН̏óƥȃƧ@Ʃəםƨ̑Ʀ@ޤ'], + 'encodeOffsets': [[ + 111240, + 19846 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'tai_wan', + 'properties': { + 'name': '台湾', + 'cp': [ + 121.0254, + 23.5986 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ô—ƩɝöƧɝѵəޣ̏ρƩԭóōóͪρɞƧОôԪ݈ଦѶɜ̒ɛ'], + 'encodeOffsets': [[ + 124831, + 25650 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'bei_jing', + 'properties': { + 'name': '北京', + 'cp': [ + 116.4551, + 40.2539 + ], + 'childNum': 19 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@óóó›υóôƥ@ŏóóə@ƧŋƩŌρóɛŐóʶѶʴƥʶ̎œôƨɞ@óŎɜŌ̎̍φ›Ƨŋƨʵ'], + 'encodeOffsets': [[ + 120241, + 41176 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'tian_jin', + 'properties': { + 'name': '天津', + 'cp': [ + 117.4219, + 39.4189 + ], + 'childNum': 18 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ôôɜ—@ƨöɚôœôôɚŏ@óƥ@@ȁƦƧɜ@óƧƨƥ@›ƧóəН̏óѷɜ@ŎƦƨóО'], + 'encodeOffsets': [[ + 119610, + 40545 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'shang_hai', + 'properties': { + 'name': '上海', + 'cp': [ + 121.4648, + 31.2891 + ], + 'childNum': 19 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ɞςƨœɛȀôŐڔɛóυô̍ןŏ̑̒'], + 'encodeOffsets': [[ + 123840, + 31771 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'xiang_gang', + 'properties': { + 'name': '香港', + 'cp': [ + 114.2578, + 22.3242 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@óɛƩ@ρ@óœôȀɚŎƨ@ö@@ōƨ@'], + 'encodeOffsets': [[ + 117361, + 22950 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'ao_men', + 'properties': { + 'name': '澳门', + 'cp': [ + 113.5547, + 22.1484 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@X¯aWĀ„@l'], + 'encodeOffsets': [[ + 116325, + 22697 + ]] + } + } + ], + 'UTF8Encoding': true + }; +});define('echarts/util/mapData/geoJson/chong_qing_geo', [], function () { + return { + 'type': 'FeatureCollection', + 'features': [ + { + 'type': 'Feature', + 'id': '500242', + 'properties': { + 'name': '酉阳土家族苗族自治县', + 'cp': [ + 108.8196, + 28.8666 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@XJ°œlJX@lbl@XbV@VLnJlxnbšƒUU@IVK@lVIVwnJlU@n@J@L@Jn@l_nWVLVln@@blLšmV@@xœÔ‚`nœ™xV‚ÈLlx„LVxVVšƒV_U»VWn_m¥XwVmnX°ƒlmUUVwÞaVƒk@a@mmIUa@™mwk@™ƒm@@U¯a@UV@@K™@ykkmwkV@kU@ƒÑƒVkKWLÅamaUm@kyU@WkU@Ua™IUašVaUUmUUa@aVLXKWa¯UUbmJXnWnX`l@@xkzWÆ@V„LU¦‚x@b@JkIkJ@LmbUamJwm@óxƒnk@V„@x„ŽVnUVmVUVŽUbVlUbkXWŽ'], + 'encodeOffsets': [[ + 110914, + 29695 + ]] + } + }, + { + 'type': 'Feature', + 'id': '500236', + 'properties': { + 'name': '奉节县', + 'cp': [ + 109.3909, + 30.9265 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@WVXb‚UnK@x@b‚²kxmKkl¯_ƒVV°™VU@bnKVVV@@nkŽ@n›bn‚@š°@VLČUš@°WV@V™nU@InKVl@nU„b˜KnX„WlknLlKUwnalLša„VlUXmWk@UU@UWWIUyķ¹XaWW@X™ƒKUIVm„U@W@UVU@KV@n»VkUkÇmUmVIUmULUbm@ƒwUaƒKkkm¯ÑUL@bWVnx@VmxUI@„klmkkK@aƒK@IlJ@I¯ƒk@mak@mnkJVL@bV@Ub„„W`UUUV™I@VƒU@VVbUJVLUVVbUX„VVxk¦VJUnVxnVVUšJV@Ubl@@bXV@L'], + 'encodeOffsets': [[ + 111781, + 31658 + ]] + } + }, + { + 'type': 'Feature', + 'id': '500238', + 'properties': { + 'name': '巫溪县', + 'cp': [ + 109.3359, + 31.4813 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@nLWbX‚VLVU„V@KšIVl@b„@lbšU„VnU@JÆU@V@n°KĢUl@VbÞKšVš@„_„V‚KXU‚U@KXƒ@wlkkU@mWKUU@UôJ@XV@œaVmÞIVaVLƒƒ@»kmƒ@ƒUkL™U@aU@WWƒLUUU™™KkbƒwWa@KU@kaƒXmW—LƒamVk@UmL@JmVUšU@¯X™@ċVUK¯@ÅnWK™LkKULWK@UXK@wW@™LkV@bVLƒlXn›`¯xU„°LnŽlV@n°Lnl'], + 'encodeOffsets': [[ + 111488, + 32361 + ]] + } + }, + { + 'type': 'Feature', + 'id': '500234', + 'properties': { + 'name': '开县', + 'cp': [ + 108.4131, + 31.2561 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@n@na‚I„wš@@VVK„LVbVxnVÆUnanKWXamKmk¯K@mkUm¯KVƒ°w@Wm@UIUUlKUU@a¯KWanwmUXamKkUWUnU@KƒkUwWKXaWLUWkImaUUUƒƒKka±k@lƒ¯w™wmbUƒ™ƒkXm@UJkIW‚XXƒbƒmƒ„UJ™XUV@°šKlšlVXV@xmbnV@blV@VšœU`UL@V™a@bULlb°VXbܚ@V@bƒL@J„xnLVb@lVb@V@@z˜bXWšX„KVLV‚š@@bUVVL@b„„lVna@ll@„zl@@J'], + 'encodeOffsets': [[ + 111150, + 32434 + ]] + } + }, + { + 'type': 'Feature', + 'id': '500243', + 'properties': { + 'name': '彭水苗族土家族自治县', + 'cp': [ + 108.2043, + 29.3994 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@„Jlb@nVV@bXb@ÆlL„Ul`nVKU¼VxkbW„nlUxlXX‚@°°WnnJ@VUn@J„k°L@VlV@nUJ„x@bVVVz@VnLla„KnalVlIUŽ„¼@nV@@anKUwVal@UlJœƒlI@akU@UWXKVI‚¯Uak@@KmkXWÜkXWykIWwXw@laXamkVUUym_XmlkkmmakwmIUKU@Wak@kaW@kI¯›WIk¦VŽƒUUƒmaUV@XkVUV±aUb¯b¯¥m@@ImJ—@mƒmL@kUKUkkJƒbV¦'], + 'encodeOffsets': [[ + 110408, + 29729 + ]] + } + }, + { + 'type': 'Feature', + 'id': '500235', + 'properties': { + 'name': '云阳县', + 'cp': [ + 108.8306, + 31.0089 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@lb„LV„VVnblJVXXKWbXLVx„l@LmVXVVl‚nLWbnVmxXb°L@bVVkLVVVJn@@X‚‚œ_Wm„kUK@alUšKX@@xWL@VXLVKlLšKXLÆm@™mœa@ml@mU@UUmL@aVšUU¯„U°`lknLlw±@a@wmLVWaXU@KWU@ak@VaU@™IUVmUUwVmUIl¥UwƒUVWUaVUUKVIUa@UUUUJƒUUm™kƒ„nl@„@VWV@L¯aUb™Ulxƒ@@b@VULUx@VUxVV™U@bU@mxU„U@mUVŽklkkƒ@WxknlxK@amLƒKU„K'], + 'encodeOffsets': [[ + 111016, + 31742 + ]] + } + }, + { + 'type': 'Feature', + 'id': '500101', + 'properties': { + 'name': '万州区', + 'cp': [ + 108.3911, + 30.6958 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ĸĊVI„ƒ„n„aWWXlJVIn@lWš„V„našx°xk„l@²Ž‚LVƒ„LnK@b‚LkwlmXw„@lllkUnVV@VƒnwV@@ašVUUVw@UVwVK@U@a„@kwšVVa°b@KXU@U@ƒmk„ƒÇсaml™kUVmn@VULU˜m@kUVkUaƒwUWm@Uw¯„mKUUmVUUULUKU„W@XbWVkaWwkUU™ƒ™k@maUbmbVlk¦ƒxUVUIWVU„kJVVkL@UmJ™UUVU@lLUVU„lx„@@VbƒJ™U™L¯¤@Vƒ„'], + 'encodeOffsets': [[ + 110464, + 31551 + ]] + } + }, + { + 'type': 'Feature', + 'id': '500229', + 'properties': { + 'name': '城口县', + 'cp': [ + 108.7756, + 31.9098 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@VK@w¯L@m@UÅV@ImVƒU™Vkaƒ@@aUk™J@LƒUUVUKmLmbÅVmUUwUaƒKUL@U™@ƒxJmbm@nVJ@X@VkV‚n™lƒLXx™@ƒb@bUVƒLU`UnƒbU@@ŽmVVX@JX@VLVVšklV—„‚`@bUL@V„LVKn@‚U@„UJkn@lmLmK@X@Jn@mb„nÞWVXnJ‚k„KČÑÆ@VK@knaÜmXlUČW°kôÇƁ@a@yÞ_VmƒUnU@K'], + 'encodeOffsets': [[ + 111893, + 32513 + ]] + } + }, + { + 'type': 'Feature', + 'id': '500116', + 'properties': { + 'name': '江津区', + 'cp': [ + 106.2158, + 28.9874 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@„InWUUlU@LVašlX@°²lÒXxlK@Ul@@Un@UaVJ@I@W@UƒUUVUwVIUKUa‚UUVwn@Üx@XUlnn‚bœJ@¥VklKUUlk@ynU@kVƒUUVWnI@¥V£VWVIUKU@UVƒa@n@Vm@@nlUaVkUwƒJ@blLkLW@XWmXkmmLn™@m@U@UVm@™„UVUUlakUVa„ƒVkV@@wnaWUk@VwkƒlmVIkUUxmJ@U„™@KƒIkx±V@IUm@K@IUKkbWKUbn„m„@bmVnbmb@xkxUJ@ULW`@bX@WVXL@Vƒš¯„mk¯@UJ@VmLUaWnX@WJ@nkKkxW@UIV@@KkImmkK@UW@XaWIU@U‚ƒIkbWb„xXŽlLVbnV@bWlX@VxVLnl@nÆÞVÜ'], + 'encodeOffsets': [[ + 108585, + 30032 + ]] + } + }, + { + 'type': 'Feature', + 'id': '500240', + 'properties': { + 'name': '石柱土家族自治县', + 'cp': [ + 108.2813, + 30.1025 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@„š@kl@š¼UbmVXJ@bV@nxVIVJULVVk@@LWbnJVU@bVbUJ@blLXnWV—@mbnV‚@V„„bn@VJVLnaVanbl@„šVšlVXxlbXUWaX@VƒUUVwUUVm@I@WmI@a„mlLœ™lK@alwnUV@kóVaƒÝk@UlbVK@™VU»VUUVWUƒ@U`ULkwm@@KmU@knKƒ»VkJkUmbƒLkbmK@UUyUU@aƒwm@@XXJ@VVLVVUbVnUJVX@K„„k`WXXJWXUbmW@bkL™Um`Xnƒb@JVL@LU@™°VVXKVnUxVLUbmJ'], + 'encodeOffsets': [[ + 110588, + 30769 + ]] + } + }, + { + 'type': 'Feature', + 'id': '500237', + 'properties': { + 'name': '巫山县', + 'cp': [ + 109.8853, + 31.1188 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@kVƒU™bkKmbVxkLmKkllbV@@LXb„xlašLVšVV„KXXV@@bšVlK„V„@ln@¼°KXa„U@Ulw°JXalIUa„ÝWXW@kVU@ƒVUVWUUUamUw@aVamwn@VUUƒlLXWm£@wÇĉkKklmLUÒ¯ƒWn™@ğ±kwmaWm¼U@@LUV@V@XƒVUnVJ„LWš@‚XXWbĸºVzXJVXV@@VXlWn'], + 'encodeOffsets': [[ + 112399, + 31917 + ]] + } + }, + { + 'type': 'Feature', + 'id': '500102', + 'properties': { + 'name': '涪陵区', + 'cp': [ + 107.3364, + 29.6796 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@nèVblĖVVnLšŽ„@šx‚V„n@nšJ@L„UVVX@lbUJV@@nn@VVVK@z„˜V@nzVJVUlmX@@_VVVbnaVal@@knW@wnaƒVK@aVI„J@£kUVW@‚wXUVJ„amƒ@Ikƒƒƒƒ_X¥ƒ@WwkKkwmŽ™šƒkUxƒnÅmm¥™WV@Um@UlVL@JU@@Xƒ@UVkKVk™KVk™Kkb@bmJVXU„VVUbU@@`W_UV¯b'], + 'encodeOffsets': [[ + 109508, + 30207 + ]] + } + }, + { + 'type': 'Feature', + 'id': '500230', + 'properties': { + 'name': '丰都县', + 'cp': [ + 107.8418, + 29.9048 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@Þè@XUK@LlV@blbUJ@„„V@bnV‚@VVVXU@ƒlbXal@VXnKV@maXUރ@amk@aVKXV‚anbš£°mnIVaUKVwUmWLUUš¯V@@KUK@I„aWmn_šVlK@anXVaXWWIXWl_ƒƒ@LUWVIUmVaUUUK@UWI@Wn@VI@mkU@U¯Kƒl@ImVÅLƒwU¤óbUU@wWXkmm@LU@@VUIWVUL@JUnƒaƒx@Jn„ƒbUIWVx@ŽUXlV@¤ƒIUJ@bUL„Žmb@xmX@lk@UbmbUaUU@`W@kn'], + 'encodeOffsets': [[ + 110048, + 30713 + ]] + } + }, + { + 'type': 'Feature', + 'id': '500232', + 'properties': { + 'name': '武隆县', + 'cp': [ + 107.655, + 29.35 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@l„„w„bVm@IVKXUVJ@UV@@KnnWlX@xVVôaV£„xÆKnUVm@UmIXm¯¯@WkWVwmkXƒlaUwV»ULmk_ƒVkK@ÅWa@aUU@mkaƒIƒb@‚n¼ƒnm‚_@mmK@UƒLUVVmI@aUJ@XWJ@U`UIkm±kk@@lULmUmKUnVšnlUVmI@VkVlx™bkIƒVmLUxkKUŽ‚Xš‚n¦Æn„mVw„lš™nlxlLXx„@W¦„`„„'], + 'encodeOffsets': [[ + 110262, + 30291 + ]] + } + }, + { + 'type': 'Feature', + 'id': '500119', + 'properties': { + 'name': '南川区', + 'cp': [ + 107.1716, + 29.1302 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@VšUbVJVUn@VLX@WVXVVI@VUVWxU@mš@ĊX@@¼V°aVUX`@_V@VaUUVƒUWnI@alašLUlšLUllLVU„@@WV@@IUKVkn@@VlLVwnK„UlJšakwlU@UnJVUmkU™VmXa@wVK@UUw™@VƒVI@akƒ@alInwlKXUmaUW@wWLk™™KVak_ÇaUƒƒV@šXbƒLVxUlWIk@UK@V™@ƒkU@VbUVUlVnƒLUV@lVXmxkV@L@V@Vk@WbUwmL@JUI@xVxkx'], + 'encodeOffsets': [[ + 109463, + 29830 + ]] + } + }, + { + 'type': 'Feature', + 'id': '500241', + 'properties': { + 'name': '秀山土家族苗族自治县', + 'cp': [ + 109.0173, + 28.5205 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@XlV@lzn@VŽnbÆbXKlL„U„ÒV@@llUnxll@zšŽ@LU@@V°b@Vn@š„l@VÑUƒnK@UšU@aUaƒkVm@K¯wƒklmnn„Ul`nI@almkIUwmWVkUaƒkkJmUUa@K@aU@@_m@@wUyVUUa@Umƒ@awl@Wka±„UkUykIWV™b@bUVk@›aU@UXU‚UIWakUWmUxUV@nUVWbšŽ@XXVVŽmXXŽ@VƒbVLkVWx'], + 'encodeOffsets': [[ + 111330, + 29183 + ]] + } + }, + { + 'type': 'Feature', + 'id': '500114', + 'properties': { + 'name': '黔江区', + 'cp': [ + 108.7207, + 29.4708 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@VX@V@LV@VJUL@lVnnxlb@VXV‚XV@@W„@UIVK@kUKna@£VWUaVUUalIVJVIUW„_lm@bXKV@mn@J„UUw@KnIVll@VanLVmUkVKXLVKUIVamw@UaU_lw„KlwUWV_Ua@aUa@KUšwm›_›Ó@wU@™nkK@am@UkUKmXk`m@@I@K@I@mkVmIUxUJ@kUL@JVV™„lnklWnn`VzUVnlWbkb@WxXxlJXzWŽÛlWXnl@Ll@Vb°UJWLX@VlV@bkJ'], + 'encodeOffsets': [[ + 111106, + 30420 + ]] + } + }, + { + 'type': 'Feature', + 'id': '500117', + 'properties': { + 'name': '合川区', + 'cp': [ + 106.3257, + 30.108 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@XKVXlK„ƒVL@UnV@aValXXK„U@WVwUaVU@IV@@aVW„L@U@anVV@@bVK@UVL@bnJWL@VnUnb˜@@JnIlVl‚@@bXIWbn@UKVLVKXLlaV@VVnK@bVL„m„IVƒ@KmknUUWVI@aVJ@_„WU_VmUwƒU@K™ƒVak@am¯mJU_UJUkU@WkIV`UI@JV@LmmU@@mƒbUzś™@„VK@nUKƒ„ƒb™akb@UWK@bkVVbV„Û@@`ƒXk@WŽ@n@lXL@bmb@VVJUn@JnUlnUlmX@`XLlbkJW@kzlb@`@b@b'], + 'encodeOffsets': [[ + 108529, + 31101 + ]] + } + }, + { + 'type': 'Feature', + 'id': '500222', + 'properties': { + 'name': '綦江县', + 'cp': [ + 106.6553, + 28.8171 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@@¦‚@X„lVX@@UVKl„VUX@lanVlUVbXWVXVƒ„VVUnKVUlwUwU@UJ@nmVkUV™lwXam@VaUUUw@W@kk»mV@UmKkwVKVUU@@LUKVI@mV@XVWxnXVKUUUK@wWU@UUWnUlLXa‚mUI„am@wI@K@amIm‚UUkI@m‚akUkKWUUanƒ@wƒamLVxk@UVmUUL@Vm@kV@I@ak@@bWVXJlLVbVL@š@bn@@`Un„@WbUKULWVXbƒ@UVmbX„WVƒb@bVmxUKUƒV@šUn@V@V@nmšnKlnnWWXX@lKkK@a„IVxUlVb‚k@mn@@U@m„bVUV@VLUJUXU¤'], + 'encodeOffsets': [[ + 109137, + 29779 + ]] + } + }, + { + 'type': 'Feature', + 'id': '500233', + 'properties': { + 'name': '忠县', + 'cp': [ + 107.8967, + 30.3223 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@VLÞĊ„U@Wš@¼V‚„@lk@w²mlšVUœ„llšVnI@VlKUUlIVƒXUVJVU„wl¥UkUKUIm@ƒaUƒ@mUna˜@XUWmkK@aVIUa@aUVmIXa@Kl@UUVKUIUJmwU@@aWInUVa™»k@@lƒ™¯n™¤mabWUUL@bnl@b݄WVnbU@mLUWk@Wbka@„WVUU@UmUmVkUULV„lVUx„l@L@VƒbÈÒlb'], + 'encodeOffsets': [[ + 110239, + 31146 + ]] + } + }, + { + 'type': 'Feature', + 'id': '500228', + 'properties': { + 'name': '梁平县', + 'cp': [ + 107.7429, + 30.6519 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@XLV@VV@b°°nšƒnkb@bƒšnJWVXblIUVšxWnUJnVVLVU„JlUnLVK@UnUVJš²nKVbVKla@aXlJ„k„Klb„ƒ@U°£šKšV„IUa@ƒ@kwVƒVUkKV@VUkk›ƒUVk™±n@xklƒ@U@»™‚@XƒVÝĉUJnxWb@UX›KkVUbUKWUkVmkkLU`›b'], + 'encodeOffsets': [[ + 109980, + 31247 + ]] + } + }, + { + 'type': 'Feature', + 'id': '500113', + 'properties': { + 'name': '巴南区', + 'cp': [ + 106.7322, + 29.4214 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@nxnVlJlUXLƒ¦@x@Vl@nKVVX@V_V@@KlVXU„@lKlxXIl@ÈĊ@Vl@n_VJlŽnVlnb„²VVVJVVmUUkĕUamçU@»W@@ĉn™V@XwVU@UUJWUXUW@UKm@UVUIVaU™UVmLUVƒUU„UWWXUakVmUkbW@UVkƒUL@VW@kUWƒ@mJUXVVU„@lmV@zklVVkLUl@¦›I'], + 'encodeOffsets': [[ + 108990, + 30061 + ]] + } + }, + { + 'type': 'Feature', + 'id': '500223', + 'properties': { + 'name': '潼南县', + 'cp': [ + 105.7764, + 30.1135 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@@a@a@_kalyX@lIkaWK@_nWVkkmmV@IVmUI@Una@aWK@k@mkbWaknmJUk@mk@@kUal@Uaš@Wa@aXLlwUKlkkƒ@KmI@VUJ@Lk@@VUUmL@amJU£kKUaWakLmU@bVVUbnbWV@xkL@bUb‚xUxVbXJVbUVWIUVU@kLWxkKWV@n¯VUbU@@VVX@VmaUL@VUK@VVbn@lVnI‚@@lnLULm@Ub@Žl@na„@lK@XVVkJ@b@zl@@VnV@bVb@J@bnXV`lXXmVI@W@InbV@@aVKUblKVLUanLlmnLlK'], + 'encodeOffsets': [[ + 108529, + 31101 + ]] + } + }, + { + 'type': 'Feature', + 'id': '500118', + 'properties': { + 'name': '永川区', + 'cp': [ + 105.8643, + 29.2566 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@@b܄nWVLX„lxV„VxXxlVn@@bVblK@a@UnLVJV@@UnLVU@VXaVKVXš@n`WUÿ@IUKlaUUUkWyUÛÅÝ@mmkUKUwW@Xk@amUUakKWƒwXaƒK@VVLklƒXVlkxV„UL@bm@Vxn`ƒIVxUVkLVšUšl@@lkXmmƒVUn@VV@Xb'], + 'encodeOffsets': [[ + 108192, + 30038 + ]] + } + }, + { + 'type': 'Feature', + 'id': '500231', + 'properties': { + 'name': '垫江县', + 'cp': [ + 107.4573, + 30.2454 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@šĊ°¤nҘ¼œaV_lKnllUXVVLValUœLVW‚@XamwVIUKkaÇфa@U@KƒkVwkUUƒVKlVnU@aƒU@ƒVIka@akU@KVL@WÝçUV@Vmbů@L™KƒnnJW„ƒVkxlL@VX@VxmnXVWxUb@bkn'], + 'encodeOffsets': [[ + 109812, + 30961 + ]] + } + }, + { + 'type': 'Feature', + 'id': '500112', + 'properties': { + 'name': '渝北区', + 'cp': [ + 106.7212, + 29.8499 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@@bVVXL‚a@lnbWn@L„@XVlK@VVLUVlbkLUKVVVL@VšnX‚VL@VV@UbVb@x@¦UxVb@bUJƒL@L„VVxlK@™nk@U@W„UVLlKXV„@VblU@UUKVU@wn@VJVanLlkX@VaVK™¯@a@U@U@ƒVaUK„kUUƒ±maUkm@UUkbm@@Vk@@JƒwU@Ub@I@JmwUL@aƒ@@KkVÇLkƒWkƒ@kUU@@xUVmKUnllUb'], + 'encodeOffsets': [[ + 109013, + 30381 + ]] + } + }, + { + 'type': 'Feature', + 'id': '500115', + 'properties': { + 'name': '长寿区', + 'cp': [ + 107.1606, + 29.9762 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@VVšU„bX‚lX„¥l@XnVmlxUx„@@blVnnôĀlm@aVaXwWUnmUwW@@UkKlw„UXƒmI„mšL@KÆ°na@UUImyU@ƒ—@yULUUm@@mU@VIkaW@UUƒV@K™I@mƒmU™wƒ@™mKUnU‚UIƒlVLUb@„@V@V@bš°ULUbW@klmKUbUIm@@xUVVL'], + 'encodeOffsets': [[ + 109429, + 30747 + ]] + } + }, + { + 'type': 'Feature', + 'id': '500225', + 'properties': { + 'name': '大足县', + 'cp': [ + 105.7544, + 29.6136 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@XUmaVaUU@anVlKXbValU@aV@@IXKš@@bV@VxVK@UXLlUšJXa@_‚@@aVK—ÅWVkwWaƒƒwUa@am@kUWLU@kWmX@ykI@W@UV@na@LlLV@UƒkwWƒUKmXX`mIVl@bXLWVkbkkƒx@`VXm@@J@U@UUKUxk@WbUIVl@VXLW„ƒJUkUlUImxXlmb@X@VUJUnVbšW@UV@@VVX@bnW@LVxUnlJUV@n„@VxVIn@l`„UVVVL'], + 'encodeOffsets': [[ + 108270, + 30578 + ]] + } + }, + { + 'type': 'Feature', + 'id': '500224', + 'properties': { + 'name': '铜梁县', + 'cp': [ + 106.0291, + 29.8059 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@VblLV¤nI@bnKVV@Ul@@KVI@UnJ@Ll„klVLkxWK@bXb™@Vbk@Vb@ll@@nVlnIlmXblaXl@„W@_Ü@UƒUalU@aXL@Vlašb„a„ƒVL@mUL@ƒUUƒƒÇXUW›X_WaƒƒUƒ»m_™@UWULWb@UUVmK@VU@UImK@V@bkL„x‚„XblxXU˜ÆUL@b@@`Wb™IkVWK@VULUwU@@a™@WL@JU@@bkVUb'], + 'encodeOffsets': [[ + 108316, + 30527 + ]] + } + }, + { + 'type': 'Feature', + 'id': '500226', + 'properties': { + 'name': '荣昌县', + 'cp': [ + 105.5127, + 29.4708 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@VI@U@WnaWknwVJVkVl„IXƒWK@UUkVJXal@VwVL@V@V@In@UW@_„wlllaXUWK@aUknJW_ۃ@aWaU@@UVm„UUaUImJVnÅUmVUm`kUUVWLnVU@VVmXƒK@„nxmŽULkx™ImJ@nU`@X@Vkn@`@nlV@nVJVaX„VLnK@bVV@nV@lbXWš@'], + 'encodeOffsets': [[ + 108012, + 30392 + ]] + } + }, + { + 'type': 'Feature', + 'id': '500227', + 'properties': { + 'name': '璧山县', + 'cp': [ + 106.2048, + 29.5807 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@XzVlVVkbVL@JVĀXŽ‚¼V„„„XbW`XœWVȎ„„VVšŽVkV@@UXa@alK@IƒƒU@UKWUyUI@wVUUWVak@VUkƒW¹@WXI@yVIUK@kWwkѯ±W@™kUb@KkVVVmXƒJ'], + 'encodeOffsets': [[ + 108585, + 30032 + ]] + } + }, + { + 'type': 'Feature', + 'id': '500109', + 'properties': { + 'name': '北碚区', + 'cp': [ + 106.5674, + 29.8883 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@X‚VLV@„„@JkL@bWb@VU@UlƜVy„a@nV@nn@KU@IVJU_lJXV@VlVIV`nIn°@b‚lUbš„„KVI@aUaVw@¥@wUaVaU@@UUKW™m@UUKUUVLlKkaVUUK@UkLWUƒ@@KXmma@kbWKUU@aUamLnÞ@VWLk@@Wm@ULU@@U™KUVWI'], + 'encodeOffsets': [[ + 108855, + 30449 + ]] + } + }, + { + 'type': 'Feature', + 'id': '500110', + 'properties': { + 'name': '万盛区', + 'cp': [ + 106.908, + 28.9325 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@VIV@@wVJ@InKVxXal@@U@U@KlUnwUW@kVU„KUmVkUa@I@KW@@bk@@mƒU@m@k@a@aƒIUxmJk@ƒwULƒwkKmVVX@VXV@xVLVVULmWXwWUU@@nUJVL@KV@UVULlxnL@VnUl¼@l@XVxVVUbn@WbkxUšlVnU@m'], + 'encodeOffsets': [[ + 109452, + 29779 + ]] + } + }, + { + 'type': 'Feature', + 'id': '500107', + 'properties': { + 'name': '九龙坡区', + 'cp': [ + 106.3586, + 29.4049 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@XK‚L@Vš@XbV@lW@UV@@VXIV@U™VKlL@KnnJ@VV@VU@I„@@mVUVWUUmL@V¯LUK@UV@UU@a@U@yU@WLUK@X@KUVmL@ƒ@aXI@w@ammVk@WÛwm@UxVVVbVLUJVxVU„V@V@X@JUIVbm@@Vk@@VkL@lVLUJ@zWJ@X'], + 'encodeOffsets': [[ + 108799, + 30241 + ]] + } + }, + { + 'type': 'Feature', + 'id': '500106', + 'properties': { + 'name': '沙坪坝区', + 'cp': [ + 106.3696, + 29.6191 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@Xºl„UVl@UbVXUV@xVJVzXJVUšL@VV@VKn@@Xl@XK@UmÝnKVbVakkVm@k„ƒUK@UmIm@LkKULVšU@WJ@UU@@VkXU@Wa™@@UKWL'], + 'encodeOffsets': [[ + 108799, + 30241 + ]] + } + }, + { + 'type': 'Feature', + 'id': '500108', + 'properties': { + 'name': '南岸区', + 'cp': [ + 106.6663, + 29.5367 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@VV„JVL@bUVVnl`XIlwXJlw°nnl‚IXW@UÇĉk@WJkwkLƒ@WVkU@LU@U`W@UXUV@n'], + 'encodeOffsets': [[ + 109092, + 30241 + ]] + } + }, + { + 'type': 'Feature', + 'id': '500105', + 'properties': { + 'name': '江北区', + 'cp': [ + 106.8311, + 29.6191 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@nLVU@wV@lV„@Xll„ÈKlU@L„@@bVKnx@I@JVaV@„x@Il@@Un@laVVn@mkUIm`k@WXJmk¯mkxWIkxWJk_UmVUUKƒ@UU™@ƒ„@l'], + 'encodeOffsets': [[ + 109013, + 30319 + ]] + } + }, + { + 'type': 'Feature', + 'id': '500104', + 'properties': { + 'name': '大渡口区', + 'cp': [ + 106.4905, + 29.4214 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@k@@U@w„¥WKkVkImUmwa@b@xWJ@b@„nKVU@L@WVLXKV@@z@V@bVVU@@VVL°K@U'], + 'encodeOffsets': [[ + 109080, + 30190 + ]] + } + }, + { + 'type': 'Feature', + 'id': '500111', + 'properties': { + 'name': '双桥区', + 'cp': [ + 105.7874, + 29.4928 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@WwUwU@kK@KmbU@@V@XlJ@znWlXV@XK'], + 'encodeOffsets': [[ + 108372, + 30235 + ]] + } + }, + { + 'type': 'Feature', + 'id': '500103', + 'properties': { + 'name': '渝中区', + 'cp': [ + 106.5344, + 29.5477 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@VLš@VV„@VL@aUKƒIUUƒ@@JUVU@'], + 'encodeOffsets': [[ + 109036, + 30257 + ]] + } + } + ], + 'UTF8Encoding': true + }; +});define('echarts/util/mapData/geoJson/fu_jian_geo', [], function () { + return { + 'type': 'FeatureCollection', + 'features': [ + { + 'type': 'Feature', + 'id': '3507', + 'properties': { + 'name': '南平市', + 'cp': [ + 118.136, + 27.2845 + ], + 'childNum': 10 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@@knyƒk@ƒKU¥šwV@nkƒWƒzUmk@@lKUa@aVI@UƒKUamKUUVaUI‚@Xƒ@UV@K±IUVVlUbUbUL@KWUXmWk@KkXmmkŃKUƒ™a@amUƒbkUkKWUnwUƒÇwV™UUƒÝUKV£U™@ƒnKWwXLVKm¥@wUXkmWk@ƒ@wX@lU„@šyVImaXwVƒƒ@kŽƒnU@mbk@mlUXƒmU@mV@n@bnW@bUIWJ—ImVUKWbUK@nkKƒaU@W_VUUmWmL@UU@™bUWUL@V@bmVUz@`mUUVVbXL@V™L@lmLUxmVamXkW@xWbU„VbUxkU±@ÅUmmkLUbW@@`kLknVlV@lbXxlVUXVV™ŽU„U@UbWŽkIWVUUUJkI@llbUxVL@V™VƒUU°ULUmWXUV@VULWb@™xm@UaVLVKUa@ƒw@V›bkmVambUUm@@VkK@„@b„xlxX@‚„n¤@Xƒ@@lkLWV@Žn„V„kb@bWJXLWx@nkxmm™bXn@VWVUn@VnJ@bVXl@„™VJXnWbX`lL„UlJVI@Žœ@VXV@Vl@bn@@Æmn@VšxXU@mVIlxšVššnI„l@nVJ‚aXI@mlU@aXkVm°klmnVV_naš°@V@xܦXK„V‚nnUlVXbVK‚LXKV@naV@@VVl@@lXblXšWnLlbVK²nš@@‚VLUnlV@lƒXxô°‚V@UnaUUlKXLVUVVUbVVlUnJVX„@VW@an@lb„@nl@VU@anƒšUVW@kƒaUm@InVVKVU@kUW@Uam@km@kVa@a@™nwšU@WlI@mVI@WXaW_nƒ@™nƒlkkW@U‚¥@kV@Uw@wUƒ@@IXK‚¥VIn@nU@`@Xl@VV„LnašW‚bVaUwnU„@VIšKlV'], + 'encodeOffsets': [[ + 122119, + 28086 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3504', + 'properties': { + 'name': '三明市', + 'cp': [ + 117.5317, + 26.3013 + ], + 'childNum': 11 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@lL@Un@VVna‚bnUlœa@U‚x@„VbULUKVbn@šw‚@XaVK@UVUXWVnVKV¯„VšU@UUKVwka@klJVIVVXUlJXVaV@VƒšUUVWkUWwkaU@UklmlK@_X@ValKnnÆV²@lVVwUaVƒXa@wlXnW‚bnUVwnK@kšK@UWKUaVUnV@_VynU@a@UVKVXšaV@@VnKnXVV‚UX`V@„blL@mVLXaVLnU˜JXIVJ@amX@a@mnUV@„nVWnkl@naV@„ml„@@KmKUam@UU@ƒ@UlKU™Vk™U™K@aVaUwV™U¥UIkJ@wmI@‚mbkwkVW@UXƒKULU`™IVKUa@LƒkkVmUU@WlULUWÅU@I@ƒWW™nU@@w@a@ƒUam_XyVIVWkkƒ@mwVKXUV@nw˜VXkWƒÅ™U@ƒaƒU¯KUnƒK@ƒ¯šmUƒLXŽVLnWVbVbUVm@Ub¯¼W@amƒ`kb™amLUUUƒ™aUXV`@x@XmJ@n@L@xkJUU@kU@mWm@kUUwUUVWl@VUkIƒy@kkaVUUm™IWVXbWxU@k„mVkK@nWVX¦WxU@@bkx@VU@WŽk@™kUbmJUUmkUW@_kKWKƒ@knV¤kIUKWLUbV‚@Wbk@@VWL@VkI@lUXVxUVU@@mWIƒV@a¯nUaƒaUV@„ƒJ™b@bÞ°VbUš@X™aUVmL@‚VXblŽnV„°˜n@Vnx„@VUUUlK@InJVb@„Vlnn@V™L@VWJU„x@XlJUVVVl@LUUUJ@Lƒ„@lUL°¦k˜V„VnV@„xV„„l@blLnlšLVaXll@šnVUn@‚xn@nml°‚X@lb'], + '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ôa΀U„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¼@è™xWô—nƒx™KmkkJWI@UKWaƒUUaamn@lnbWšXXWK™@VxUVkU™V@U™LmlnVWXXVmbUbkVVV@bm@UVnš@bW@@VXx‚n@V„n@bV‚UX'], + 'encodeOffsets': [[ + 121388, + 26264 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3502', + 'properties': { + 'name': '厦门市', + 'cp': [ + 118.1689, + 24.6478 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@@VlUV@nanL@V@V@L@blK@V„wl@XalbVKnnl@VL„W„»È@lVUIVK@a@UUw„WUU™šƒš@„_™aƒK™@™bkkm@UƒkõŁxóL™l@¦@Vƒb@bk@VŽƒnVln@Vb„b@xmÆnœ@x@x™x'], + 'encodeOffsets': [[ + 120747, + 25465 + ]] + } + } + ], + 'UTF8Encoding': true + }; +});define('echarts/util/mapData/geoJson/gan_su_geo', [], function () { + return { + 'type': 'FeatureCollection', + 'features': [ + { + 'type': 'Feature', + 'id': '6209', + 'properties': { + 'name': '酒泉市', + 'cp': [ + 96.2622, + 40.4517 + ], + 'childNum': 8 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ÇnÅaĉ@ƒU¯¥›UŹ‚ƒ£™WUýUU±JkkUw‚yÞIČxĊĕĊ¯š¥ÆUkţ™UÅÓ±¼™IUx¯UƒÒƑ‚ݐŰƒKÝnğ°ÅU@Žƒ@Vn@þš¼¯šWnŎ°XLWlnVnbWnƒVXxmbƒa—bóUƒlǕUUa™IUmlU™ƒš¥™kƒ¥ĉwkkƒÝɛa@¯™™U¯°mVƒkVnKlƒōÑÇÑU@kl™UġŽkUŻnUW™@š¯ƒk»šmWV£UKnUƒmUw‚w@ƒUIVaX™šwm»Èmmwn¯ċ™¯LĉŽUƒJUalka±Va@U‚k@ƒÛф¯WmnUaɝ¤Ûmƒn¯m±x@wóxÛLġÒUx¯VƒÈ™JUbóz݃ÇKĉ¯ōlÝUŎWl¯nťbÝ@¯ǩLġmV@ƯĢkÆm™ĊkVťLɃmÝXó°@„ĢbVŽóVݦɱ@Ƨaġ„UV„ĠÇÈV¼UVţwmbJÇwˋa™XmǯKkkmŽƒbXšm¼V¼ǬŚ²¤ôŰÆƴô̐ŤǪnɆӨ¼ɆLÆłUĊšxŎƞȘǔˎǬǪnƨŮǬö°»šġ„„ÞÜÆĸÒĊ„ǀbƾèôÈ@¼¯þŤĸƧ°VĀ¯b@lÈĊ‚šʠń̐„ȘKǀŽֲॗţÿǕý@ʊǓƨóÆÑǖŃôw@΋ʈƆÅÈVVĊV„óĊÅ@ÞƒĬV@Þīš@°Ž„V@ĸĢƒ°XτƜĠ@ÈaÜ¥Őƅ‚™nğóĕVġUůƿŋ—ĕƒa±V—UťÇğÑ'], + 'encodeOffsets': [[ + 101892, + 40821 + ]] + } + }, + { + 'type': 'Feature', + 'id': '6207', + 'properties': { + 'name': '张掖市', + 'cp': [ + 99.7998, + 38.7433 + ], + 'childNum': 9 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ÈÒŎÒk„mLUŽlŽU„¯nV°šš@°ɜb„ÞĠaÈ»ĸl‚š„LVUÈ@Ċ@ýUm„@@ÆVĠ¯Þm„LƯޏƒ„Ñ°VVwšJ²»ÆԚVlŤÅV™¦ĉ°ĉĖċwÝJzVxll²IVVVþšX„¤źœV°¦„VĊ@ÆbÈmǔLĸĠ¯Ģaô¯ĸmÆÛUƒlÇĸk°XyĊUǔV„ǩnmV»ƒa@ýnK°n@l¥@»ż„Ċ¤m皃@£ČU@mƒmVkÞUƐ±²¹°‚ĠwÅƑŃU¯™›V¯aÈŁšƒÇ»™ġn_°xŎKlxœklx„@Þw‚„„@Æm²b‚DzLlkšWXať¯ĊaœÑšK±w@wƒUÅçV±Uk™@@„¯š¯xƒU™±±UU°ōxVxÅÔō°ó¯UÝ¦óbÝþƒ@ĉÈóUV‚Ux„„@VŽUVÝwÅÈǎóVkk¯JǐkmmL@„™KÇx@bkš™@U°ķ²ó`ƒš™šmn¯°ƒUwlÅkUƒ`™¦ɛô™Žķz@ŽÅnÇ°U¼¯KmVk²ƒJƒ¼ƏÞķôš¤ULƒ@mnğ`™šÇnUxÇ@Ûÿ™U@ƒƒkŻŽ@x@móJkŃ¥VŹĉóÒĉlċ°ķ„Uƽ܃@›x'], + 'encodeOffsets': [[ + 99720, + 40090 + ]] + } + }, + { + 'type': 'Feature', + 'id': '6230', + 'properties': { + 'name': '甘南藏族自治州', + 'cp': [ + 102.9199, + 34.6893 + ], + 'childNum': 9 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ލš™nKlnšwX¥WÝXk˜xÞUnƒ°aĊVnUUKlÞĶWXnĠ¥ô»„™@nmVL@¤°™Vz„JšanU@aÆwna@k›ƒU¯šyX_›aĉb™ƒ„wƒéXkWwÅaš¯V¥mƒ¯UƒƒI@ƒš@„mšb°aÈçšUš¥@»‚knwɜƇ°I°ÑÈmVU™¯Xa@w‚W@wšV¯Č¥l¯Uwnm@k˜aUaóKkk@™Ça™b@ŽÒWa¯IÇxÛam¼™VUƒxÒl‚@zÝÒ¯bÝaĉVĉwDŽW›zJ™mJn²mܯUƒ¯ĉ@ġ¤Åb@²nšmlƒ@@Ž„„U„ƒLVxšV™„U¼Ålma™b@ƒ°™l@WIUƒ¯@mƒ™@™™ó„™„@U›zţyƒXÇU™ÇVUUVLkbWakVWmUbkkƒKUÆ»nƒ°Knk@aƒUVmšnk»l¯Ģ›lw@_kKVU@ƒnaƒ@lUk@¯¥mV@kmbW™b¯Åõa@mkU@kƒÇŽkU@›`@™óó—bl¼Uxƒn„¼šlVȄx@blVkVVnƒ`XÈġÈ@ǃK£ÝJmUUnUĖmlU„mKUn™VÅaUw›Uĉ`¯n¯wW¼nxVŽ™š@bĉnƒ‚kIċŘkXUŽ±Ò™xšÈ@ŽX°`l„œV˜IȯĊV„ƒšVVan@VašUVażVmšblkÈW„ƒWIXa„alL@wVb„„V„¦lL@lĠ™n҄U‚nk‚šL@ÆÞkšÞšK‚bñþW¦Û„ċVƒ„ULUºkÈlŎUxÆxÞUUxšÒ‚x„@XbšL@lÆ@„ÒlXVln@„bm¼ƒJ@„Ån„šƒx@bnšĠm„xVXmbÈè@ŽĊ£ČW˜w'], + 'encodeOffsets': [[ + 105210, + 36349 + ]] + } + }, + { + 'type': 'Feature', + 'id': '6206', + 'properties': { + 'name': '武威市', + 'cp': [ + 103.0188, + 38.1061 + ], + 'childNum': 4 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@±¯¥@klwU»ƒƒÞÝmwKm¯™™ç@™kVÇUL¯lVUKġ„ġm@a@U„@X£°l°LŎÇ@aōVÝw™ÔƒKUŽÅš„WJ¯lm@ÛVWa™@klĉUmaƒLUanaƒ™ƒk¯J„™™±KkXóÜÅxƒ²Ç‚@„„nUÒĊb°@™ÆkL™Ž™XÇÆ@xÝn—xWxţ„¯¤ƒI@Æn„ƒVV„VlU²Æè„V@x²x™L›ÒĉbŦ°Wb™Xklބš@l¤šXĊ`„wl@ĢÈŎm@bšnV‚Ubƒ„@șÆÛLƒèǚUÒŦlĸ™`°ĮʟÆǓbĉôϚĊƚĢnŤé΀ÑĸĀĊ¦„@@l°lœ¦Ȯ¦ɆÞĊKŤ™ĵĸů„»mŁyġ™ķŭ@Çɱȭ¯mƧUĊķnŁŻ»UaU™˜ƛɞÝƨů'], + 'encodeOffsets': [[ + 106336, + 38543 + ]] + } + }, + { + 'type': 'Feature', + 'id': '6212', + 'properties': { + 'name': '陇南市', + 'cp': [ + 105.304, + 33.5632 + ], + 'childNum': 9 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@šÈÞ@l`UmVƒ¼œŽ‚@nnÆwVlnVVa„LVƒÈ_‚ÿރ@n„a„xÆ@„lš_š@VxnK@llLnxmÈŎJnbUxšI°Žl@n¦‚lÈIlmX¥„k°@šk‚J„k²é˜@klaUaVaU@@ÝnIWnmnx‚k„ºÞ„„aV™°„V@nw‚KšxôbÞ£šVšU„bšþšLn»mƒVw„IšJ°Ž@„nb@°°I„ġUkÇKVƒ™™@ů»lƒ„Lnmƒ£@anK@Ñ܍n@»mL@£™yk„UUmbUÞÝ@kyÇbó»™XUxƒWVzb±mÝbXaƒwUamL¯»@wUKVwm¯ĵJ°ÅUWVk„KVk°wÈVšVуlUšƒ¥škmVamknƒUw¯¯ƒbċ¥ÅKƒk™Kk„™VċVk£kKVw‚Ñ„a@kóyÛ¯ÇVk™ów›š—Xō¥Ç¼ów™Ž¯U±‚k„ƒ@x›IĉÒÅVmÈnšÜ@n°„bUbÝV‚ŽUnnJ¯Į@‚m¦nV܃@„„L°JXb‚Ñ@šaÈb@šllôLVb—b@lmnVxk°ċ¦U°™Ž@xX@xWbš°UVÇn¯Ò¯Jɛƈmxl@¼'], + 'encodeOffsets': [[ + 106527, + 34943 + ]] + } + }, + { + 'type': 'Feature', + 'id': '6210', + 'properties': { + 'name': '庆阳市', + 'cp': [ + 107.5342, + 36.2 + ], + 'childNum': 8 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@kw‚ĉ—»VamƒƒV¯wƒIóVkl¯™Km™Vō¯ÝWkL@bÝKō¦@Ž™„@š™Lx›@b@l™a@km@@l¯nm@UaÅ@ƒ„óWUXm¥™nƒw`@UUxķôÇ°ğ¦@„VJš_n‚‚IVŽnalxkX„JWn¯šnVƒLšxl¤nnVbklVX@xnxmV@bUK@nm@@xƒV—°±aÅnƒŽkUWnUaƒx@m™n@ƒ¯LƒššmUĀlU@lV@blLUblxklkIÇx¯°‚UXbšaVŽUnšV@°‚LUlnbšX@`°nVmbnÆmV‚kLmK™¦UŽ@X„y@kl@U„°K@¼XbW„ƒš@b„WnLVa„VšƒVz@xlVČ¥lbUxލlV„U@nÆWôn²™VJlU„Ƨ„LnmÜLXa˜n@mœw@wlUlV²mšblwšVȃlLލ„±@lVnUlxnkma@mškšJ@kXV‚U@mn@š¼VXUƒVƒlLnmVbôaVnWV»ÈUl°È¯ÆIn›ÆU@kk»mKkÆġk¯@»mƒk—¯@óÇlÇ@—Vykkl™Uml¯Þ™@w'], + 'encodeOffsets': [[ + 111229, + 36383 + ]] + } + }, + { + 'type': 'Feature', + 'id': '6204', + 'properties': { + 'name': '白银市', + 'cp': [ + 104.8645, + 36.5076 + ], + 'childNum': 6 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@VKUȚl@šè°šnŽ‚LnxÝބ„V¼kx@l‚¦²°ĊóĠ„™Ċ»š@ÈxšaĊxlwÈVŤa@¯²aÇ£ƒJk£lƒnUÞ@°šô™@y„wl»lIX¥Ǫnw@ÑÞWla„ÅlL@ƒUwĉakƒl@ƒš¯mwna°J„V¯nUVÓÞÑm£²óWaUƒÇ@óÝUçV»ÈkkW@¯‚xV@XlK@wX@Vmm_@wÈݙKU¯ÇwVwÅK¯VƒkƒJ™™™XkWVaƒImŽ¯Uk„ÇlVšœĀV°mxóšk„@¼ó„WxĉÜU@Ub‚zÛJÇk@‚ÆnVlԙ@kŽ„x™ô@ĬWL¯ƒƒK@aÛImm™@ƒIUaƒ@™™UŽÇêU¤VÒÇx¯ÒV„šš™lk@Wbĉ¦UbkWV_‚y¯Lƒaó„kŽ@b@nmbkx„°'], + 'encodeOffsets': [[ + 106077, + 37885 + ]] + } + }, + { + 'type': 'Feature', + 'id': '6211', + 'properties': { + 'name': '定西市', + 'cp': [ + 104.5569, + 35.0848 + ], + 'childNum': 7 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@„a‚V²wVJV_@„LlanÅllŦçÜӚ_šlnƒWaôk„xUš„bmV@È°lèšnk°l¦„`@nnL‚@ÈlÜIyVaV@ĊÛXwôƒ@»lƒô™nwU¯›ÿU™Èklƒ°Vn„JUblXšWšš„I„l°U„ƒVƒš—@aVVVmnL@„lƒ„UUw‚mkƒš£„bV¥VUVwۂƒlaÇÝރmk£ƒLUy¯L@WlkKW_XaWƒ—mƒ„ġU@a™k™‚ƒakXkmVwmŹVƒU™b™WƒónmwnWW£„KÈnV¥ƒ¥„ƒÆ_k™lW„bU¯„V°aôbnaVwmaōInÇmwkK@kmLUw™@™`ƒkÅ@ƒwƒb@m݄ĀÇ`U„ƒKUbmUUkÅxmm@›„»nUVk_Ý@™Ç™¦™VÇè¯b™aƒn™@@„„JV„°Žn„U¦™°ÆbXxWl„êƒxš„ĊaœbW`™zV°œ„@lmbÅx@bmV™bƒI™`™¦@ÒUVUI@ƃL@bš¼@ššŽ@„šlmxnL„°ULƒŽƒÞğޛ°kLUŽƒL™°™xVŽ„n„KVƒl@šzX@'], + 'encodeOffsets': [[ + 106122, + 36794 + ]] + } + }, + { + 'type': 'Feature', + 'id': '6205', + 'properties': { + 'name': '天水市', + 'cp': [ + 105.6445, + 34.6289 + ], + 'childNum': 6 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@UyȍVƒVUnn@ƒVU„`UblzšJnk‚@Vb„KU„°l„wš„„W°„nkVŽ‚UÈlš£°V@n¥šV„kl™kU˜±U„ƒn™ƒlw¯UkwmKUlmkUmnkym@ō@U„mWÈU°l°anlJškUKlU„¯Èm@kmWV»kkÝLUWUx±b™@¯ma@ƒ¯™IƒJUxn„m¼™K™ýƒa™V™Uݤóa™wLmxU@¯ƒUšƒb݃ƒ¹lmwmnXŽmJ@ÞV@UbVbkblŽ—@±êƒlI™l¯@ƒlW¦knÇJkm¥k@¯™Jmbóa¯bƒUV°ƒakXlšÅ`ƒ„„¦U¦ÇmƒLX¤mXnxm‚„ôšXša„VźUnŽUxlnlW„bššl@bĢV„ƒ˜nX„WbX`lLXk@Ž°KVz„Kl¤„nÞ݂Èkb„‚܁'], + 'encodeOffsets': [[ + 108180, + 35984 + ]] + } + }, + { + 'type': 'Feature', + 'id': '6201', + 'properties': { + 'name': '兰州市', + 'cp': [ + 103.5901, + 36.3043 + ], + 'childNum': 5 + }, + 'geometry': { + 'type': 'MultiPolygon', + 'coordinates': [ + ['@@lW²LššƒŽ°I„l„šmbVb„KnbĊVlkš@XbÜU@Žkn°‚XIƒÆ™V„LšÓÞxŎUlôƒ„b°KzU`lXVaĊ¥Xal@šk™™Uƒ°ÑÈwUтV£ÈéVšš„@Vb„Jš@nnÜJ@b„L°„XK@īšóƒwlš@kÓmUÅmK@mƒ_k¥l¯™mkçǯ@nUƒaV™ƒwólXbm„™k™`ÛÔťèkkmÆkbƒK@U`UI±xUƒbWlX„mbVbÅÒólkƒƒIWJkšƒ@ƒz—KŻ¼™@™xUx󎃄¯LWb@ŽÅ҄„±¦U`nbťĀUšVb„LšŽ„U'], + ['@@ƒ¯lwna@mōȯK¯kW¤ƒ@@V@bĢnĢƒVLU‚°k'] + ], + 'encodeOffsets': [ + [[ + 105188, + 37649 + ]], + [[ + 106077, + 37885 + ]] + ] + } + }, + { + 'type': 'Feature', + 'id': '6208', + 'properties': { + 'name': '平凉市', + 'cp': [ + 107.0728, + 35.321 + ], + 'childNum': 7 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': [ + '@@ÆLUxÈxV°šLÇÞ@xn`Ü@X@nĊŽÆwnJmwUx‚aUkšw@V@w„aVmlLXÝl@X‚VĢmV°@nl@UUUWK@w„ÿVI²Òlmš@nÝĊýVV@nšJ°„„šUłm@kV¼nK›ĢȤôK„blnKllVk²aĠ¥È¯ĸóVw@V‚_„xšmn¦VWôX„ƒÆ@Vbn@°m@kn@@lšb@k‚aœ@‚wšK@™šƒ@UlKVaƒWX™W²¹lӄw@_°›n@@_lKōķW™@ŽmLUWƒn™»Û@›l_Ç`ƒÛmm°ÅbWb@š—VWbƒUUKDŽÅaġlmkUġlƒ»—Lƒl™Um¦@Ž¯U™¤ÇkVUml¯ƒƒX™ƒƒx¯kVƒƒLUa@ml™IkyVaƒ_UV@„mmUVU„ÇŽVzUxUVU¦ƒa™¤l„nVxƒVk„@ƒmKUnUU@b™˜U„ƒ„', + '@@@Žż@™mlkƒġk' + ], + 'encodeOffsets': [ + [ + 107877, + 36338 + ], + [ + 108439, + 36265 + ] + ] + } + }, + { + 'type': 'Feature', + 'id': '6229', + 'properties': { + 'name': '临夏回族自治州', + 'cp': [ + 103.2715, + 35.5737 + ], + 'childNum': 8 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@š@ż»˜L„y„@l™XI„Jl„ôkÆÑUanaWƒXkW@™yk@U„ƒLƒmUšwš¯„KVlKœ¯Ġ݄݄VKƒ¯mKnw™k@ƒ™@™™»@a„K@ÅVJVU@њ¥š_Uy¯š@£UKmn@‚ƒšó¼ğ¦WmĵXݎkŽVLmVĉU¯bm„ÝV—wWlXÞW¦™xkmmL™šÝŽœ„±U@Vގ™š@„ÅÈW°X„ܼƨyUĮnŽWŽnXÝxUx°lVXJlôV'], + 'encodeOffsets': [[ + 105548, + 37075 + ]] + } + }, + { + 'type': 'Feature', + 'id': '6203', + 'properties': { + 'name': '金昌市', + 'cp': [ + 102.074, + 38.5126 + ], + 'childNum': 2 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@šĢȼ™„Çł°bœU°šV‚ƒń‚ÆǖŰnšÆ„ōĬǔaʠůĭš_kķÆ¥VÑș„çÜKšÅ@DŽƒVaU™m@aōnġÇk@ƒxĉ_™Wk£™@݃±KÈ±aÅnƒ@ƒÝxƒ@kw›lkwōL¯wm`'], + 'encodeOffsets': [[ + 103849, + 38970 + ]] + } + }, + { + 'type': 'Feature', + 'id': '6202', + 'properties': { + 'name': '嘉峪关市', + 'cp': [ + 98.1738, + 39.8035 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@llĊx„¦šl™¦š„kVVnšJVbǖV„kôV˜a„bnaWw„UXmmamUXkWKō¯Xm°™™»ĉÇ@UVƒK™ķkǼğb'], + 'encodeOffsets': [[ + 100182, + 40664 + ]] + } + } + ], + 'UTF8Encoding': true + }; +});define('echarts/util/mapData/geoJson/guang_dong_geo', [], function () { + return { + 'type': 'FeatureCollection', + 'features': [ + { + 'type': 'Feature', + 'id': '4418', + 'properties': { + 'name': '清远市', + 'cp': [ + 112.9175, + 24.3292 + ], + 'childNum': 8 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@lǯkÿƒaV¯™VaÈU„¥ÆDŽIlxšmnb‚Uœxl™„Uôl°kš„„Wl„š@ô™VwUanUl@„xVkšaX¥‚kU»„aš¯±@kka@ƒUwmUkwƒJk™˜„±k@ƒ™™L@ÝWUwV݃—xÇU¯ŽÇX@m™Åƒ@@yĉ£VmUwȗ»ÇšUn„lUnWU¯`Ukƒ@@„™x„Ž@bÇxX¼ƒVVš¯LšĀk‚ÝLƒ„¯@VŽƒĀ¯lnĊW¦kVÇôkUDŽUK@ţ™U@a™™ó܃UU»ƒ@™¦k@Vx„KVb„n‚š@„Æ™„l„@xšƒbWšnlU„lxÈlV„È°Æ„@¼™„@x„šWxœŎ‚V„šK°„š¥ššnƒÆkŎ@ÈÑm™„K@¥šk@™ô@„nôV'], + 'encodeOffsets': [[ + 115707, + 25527 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4402', + 'properties': { + 'name': '韶关市', + 'cp': [ + 113.7964, + 24.7028 + ], + 'childNum': 8 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@W™Xk±Ñ@ƒUw™mUwĉwlmn@Æwn£mkIš¥ÇÅ@¥šaƒón£nWWwš£V`Þ@šnVml@xô¼„IV¥ƒkUmkamUkVWwÛ»móƒ£UVÅKmn@x™@kbmm¯a™Xka›VĉaUb݃ƒ²—‚lš„IlxnVVx@„lb@l²™°ƒbV¼lW¦™bUlƒwk@mVVbUxóš™@kƒƒX™ƒ¯lókƒVkš›wVma™nkwƒJÅȃ¦ÇVUbšŽU°„blĀ°ŽkÈ@x™¦Æܙ°@„°„¦óa™VUôlUlbXl@nÜV„„nKlŽnIVÞ°Wš„°U@bnm@¥šIVƒ²Ulƒ°VnalzXyl_Vyƒ¦lƒœLlxš„@ŽÞbšKm„knVWanwƒÑVwČº˜@n_ÞV„aVŽÜIœl@„˜KȚ„VJ@aš£È@˜™@km™„aV¯W@_ƒa¯KmbkÇkLmwƒ@Å¥'], + 'encodeOffsets': [[ + 117147, + 25549 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4408', + 'properties': { + 'name': '湛江市', + 'cp': [ + 110.3577, + 20.9894 + ], + 'childNum': 6 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@@ƒkXƒ™@a„UUċlk„Jƒk„™@wVJXUWk°W@nKnwlUlš²ƒ„blU@‚lI„l@„XbW„šxnm@lW@w„wU‚JX¯VU°`ŎóˋkÝÝkÅ@ÇmğÈřmw™aĵV›xUہ»°™ĠǷnýmóX¥ɅĵҏÇ@°²ĊUĖ±ĮU¤Ç°™Ā¯ɐnżUĊĊĬV@脎@ԃÒU¼l¤nƒĠb„êVĠ°Èy„zVaV‚nUÆL„ašbVl„wÆ@'], + 'encodeOffsets': [[ + 113040, + 22416 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4414', + 'properties': { + 'name': '梅州市', + 'cp': [ + 116.1255, + 24.1534 + ], + 'childNum': 8 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@„‚nԚlW¼x‚¦@lœVl™lLkè„a@zš¤ƒĖ„¼UxlnUKUbÝlU¼lb@„Vx„V„klJÈwV¯š@ĠlÛĖšnƒbkšÆźÞƒUÈôklmšL„¥‚LœW˜„„™nKUkVa°V„x@IVV@x°bUk„a™a@mV@„@y„w‚L„ÑUwVUšV„‚„U‚bÞVVann‚@XwÇÿš¯²aVamkXaÆ»@»nw@¥›UXaƒkbWa¯KUw@¥m@kwmLU»UU™J@kmU@UUWUƒ@ƒyƒanwmçÛl¯ƒŽ¯UƒmKUmƒwVkmÝXbW@XWÝbƒk¯@±‚w@»U@W¯Å@ƒÇ¥UƒU@ƒƒ™IU™ƒakJƒĀ„ꃰšþƒXkamŽ@Žƒ_J°m‚@X'], + 'encodeOffsets': [[ + 118125, + 24419 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4416', + 'properties': { + 'name': '河源市', + 'cp': [ + 114.917, + 23.9722 + ], + 'childNum': 6 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@°VlmX¹laĢÒlm„@„„šVš£‚‚@¦Ģklynn¼lW°z„W„„°VbÈV@lÆbnn‚JškX„šVÆašÅ„W@™ƒUUw@ƒkaV»ÞkVaVLkmVwƒ»„ĕ™£@yƒblçkKkš›U@k¥‚wX»™kmӃ@Wn¯‚I„`@nlb„W™ý„¯ƒé„ÿlI@™XUmWUwƒ@@UJU„Ç„mKUV@x™„ţk¯¯LWƒƒnUxK@ű»Vwa¯š@¤WX@ŽÛ¦@¤ÇIȼWxXŽƒ@Wx—w›ŽUnVbÅèmVa±²UWl@Žk„lȄ¤nôܼXxlUnVlbVn„lU¦ƒJó»@wnkmU™‚Ý@U_™¤XxmXm¤„ô™b@¦Èƙ¦lJn'], + 'encodeOffsets': [[ + 117057, + 25167 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4412', + 'properties': { + 'name': '肇庆市', + 'cp': [ + 112.1265, + 23.5822 + ], + 'childNum': 7 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@l@š¥„@V¼„Vôۚš@bšV@ŤVLȃlVÈólUX¥mĉ°k„ÿU°@„ƒÞKl™ÿ°KU™„UW»Èw@aƒšw@ƒ„@nm@w›£kÓVUVn„Kš™k¥™£Vamƒ@nkKkbÆǫma—kmLU¥™UmƒÛwmVU™mUƒJ—ÇaUxÇIn`mb@Þ¯b@„nJ@nl„U‚V„lVU„L›W¯—Û`Ç_¯`mš¯I™bĉWċzx±J™xš¯ÆUƒƒ_k@™šƒJ@Umb„šXôlLš˜n¦@¼ĊxlUXŽ˜xUbL‚Ġ„UnVĊwlšUš„b@lW„X„‚m²˜@ÞWxXš‚Unb'], + 'encodeOffsets': [[ + 114627, + 24818 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4413', + 'properties': { + 'name': '惠州市', + 'cp': [ + 114.6204, + 23.1647 + ], + 'childNum': 4 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@lbšW°bnnlaš@@wnmÆLVUkÇlƒ@Xk‚V²±‚bnUÆçUaVmœ˜xXw„@WXwÇ»ÈJ@£Ü¥@XW@£°™‚bUx²¼@ƂLVw„mX„°K°Ťlšƒ@wVUnLȃVƒVIky±wkƒKU¯ƒÅkƒ™XġÑۃlwUwlm@m„nKWašÅm›¯óÇmğb¯alĉUwķbmb@lÞÒVn—šmĀŹ@VŽƒbVŽUnmakLm`@xĉkklVÔVJVn—lV„UnmJmaLUbl‚™zmŽkL™a™‚ō@@zš‚V¦UŽV²kJ„nÜU@˜VXUŽL@„lJƒL@bݤUnVŽ—b@xVnlK²„Vx°V„xlI„lkVl²k¤@n'], + 'encodeOffsets': [[ + 116776, + 24492 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4409', + 'properties': { + 'name': '茂名市', + 'cp': [ + 111.0059, + 22.0221 + ], + 'childNum': 5 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@‚LnÇlk„KnkÆL„ƒUm™ÈxlUœJló°n@ššanŽš„„a@ƒ˜@X_@mÝóóU@a™aU¯mL¯ƒƒkV¯™ÇVwkw@V±Ŏ£@™™@šalw±Vk@m„Åm¯™ÿŃƧIÇ`ōô¯_UVW°IV‚ƒx@xkX@Žmn™wXƒWa@ƒƒkkJ@kVƒa±„k™kVmxmL@‚¯XXlWVUI@xƒš„lƒIklVȃV@b„šlW@„@nUxVblVxkôlx™n„‚y„šnIƻư„aXwlK„bVnƒŽXb‚L„¤„k‚L—èƒVV¼ƒŽ²IlĠVX„ynz°KVx°@VlœLlblKœš'], + 'encodeOffsets': [[ + 113761, + 23237 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4407', + 'properties': { + 'name': '江门市', + 'cp': [ + 112.6318, + 22.1484 + ], + 'childNum': 5 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@lUXx°JWnnƚXVš„W„X@„šºVLV¯nU‚Vnb™ô„x‚aXmW™XIšŽUb°xlK„l¯œK˜xXÞ°ŽšXÈ¥Ü@„ĉޏU™‚çš»nóƒVma—x‚¯UÅU¥Ý¯@ƒƒç@ș@çĉÅUmU籃ĉKÝxÝ_ÅJƒk¯»ó¯nmèkǀšŽWxœ¼mnUÜġ°@¦@ƒxƒLkŽÇaVnUxV„™šVlnIlbnÆÆKX¦'], + 'encodeOffsets': [[ + 114852, + 22928 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4417', + 'properties': { + 'name': '阳江市', + 'cp': [ + 111.8298, + 22.0715 + ], + 'childNum': 4 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@°„nKV°šb@bôVÞô@n„VlÒôÆUnlnn@lmkmVkƒaÈkÆƄ™k¥‚ÅÞ»ÆKXkW¥ÅLmÅkamJUkš™UƒVwUmÈbl„K„w‚@@¥Ģ¯VÛnm›»Xw™lƿ™@kbW™—aʵ@óL›l¯ƽ@™ƒƒLn°ƒÆ@nUl‚²kx™b@‚š@šō¤U²@ŽlxUxšÈU°lŽ„'], + 'encodeOffsets': [[ + 114053, + 22782 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4453', + 'properties': { + 'name': '云浮市', + 'cp': [ + 111.7859, + 22.8516 + ], + 'childNum': 5 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@@V„Iš™l@„`V„°Å™šw²I‚wČyĊXša°Jn™°_È`Ü_°˜œX‚KVƒkUUƒVkƒ@mmI@ƒ°a@Ýnam_ÈJVwlĉX@„šlUšómaUmVU°UK™¹@ƒƒWƒXU™™WmÅXm¯IWwkVWlÅLݼÆl¦ƒšÅÅÇl„bUllnknm@kmVmóÅkуUW`—@@„ƒb™ƒm™b@™¯mkô›IkVÇwnš„VƒÅKmlƒLklmȁKƒšVĊK°²„`n˜¤n„U„bWl„xVx™LUx@°nXm`VklVxmnnx'], + 'encodeOffsets': [[ + 114053, + 23873 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4401', + 'properties': { + 'name': '广州市', + 'cp': [ + 113.5107, + 23.2196 + ], + 'childNum': 13 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@Ș¼VxUnĊ¤@z„@šÆ@nÈW°ÈV˜w„ŽUÞVxÞX@ŽšK„šl@ބVaĊbœU@ml£k±lUƒkkJƒw¯UUw±ƒkLUm@w˜aUVmÞ£@a„KkI@ƒ‚KVUW@—ÛVƒmlIU±VU¥™@yğzƧǃƒšƽĠřšÅnī±m@ƒ²¯lƒ°@nÝÆóUll@XnÝVU¦mVV°—„V¼™Jƒn„b@°mbn„ƒ‚@²¯‚¯wVwƒ@@nmxX¤¯L@ŽVLU„m@@l'], + 'encodeOffsets': [[ + 115673, + 24019 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4415', + 'properties': { + 'name': '汕尾市', + 'cp': [ + 115.5762, + 23.0438 + ], + 'childNum': 4 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@@‚„@VxnXWV@š„bVššJ„„V@ÞÅU¥Ċxš£UWU‚wÅUU¥WVUkĊÇnkV`°LV™„wƒƒnU@™„ƒlbĊ¯„Vnalšš@@çkUÝ¥ġaó¯ÅaÅLŻÆUýmy¯ó@ĉÆó„ȯw™ÆXbmLƒ‚@nknVxkx܄ĢҚW„Æl„V°„Ll‚²xlz'], + 'encodeOffsets': [[ + 118193, + 23806 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4452', + 'properties': { + 'name': '揭阳市', + 'cp': [ + 116.1255, + 23.313 + ], + 'childNum': 5 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@V„Ȧ„Æ@X°V@@¼‚x²°@„lÞaWXX@‚aÞWlnUŽ„xVnnL„‚°V„@k‚mĢl@„ak™@mlk°aXƒ±„nwm±™²¯JV²@ƒwW˜—_mƒa„V»ƒU@m¯ĉUф™šJl™„ašbVn„lĸLlƅÛDZwÝ@ĉxó@è™@k™mbƒUĉ°kaƒ„@šmV„„ƒxUš¯KU_mlĉÈVlXUV¦ÆVxVŽVX™¤ĉwV¦ÝÆ'], + 'encodeOffsets': [[ + 118384, + 24036 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4404', + 'properties': { + 'name': '珠海市', + 'cp': [ + 113.7305, + 22.1155 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': [ + '@@„è@„Þ°V¦VƁ°˜wnb„UÆ»nçƏ@nxܤ²llU°VnÈJސ°UôéšķUklƒô£VVˌKÞV°£n¥ƒ£ȗ™Ýy¯¯mÅkw¯bÇĔğ@Ýn¯ĊƒVğōŁŻƒķJ@Ț', + '@@X¯kmèVbnJ‚™' + ], + 'encodeOffsets': [ + [ + 115774, + 22602 + ], + [ + 116325, + 22697 + ] + ] + } + }, + { + 'type': 'Feature', + 'id': '4406', + 'properties': { + 'name': '佛山市', + 'cp': [ + 112.8955, + 23.1097 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@Èb˜Ž„InVVšnUÜxn„šVV¦nK˜lnbÅǬlalL@mn„Ubš¤l¦™šƒLUmUVlԜ¤@xmnVl°_XVVmƒkVmș@kn@VƒUK@°KW£nw@m„@Ux°x°@±„mƒna@¯ƒa„mšIU»˜ƒU¯nUV¥ÞUWmk@Vk¯™Ukn›ÑWݐƒĊÛ@Ǧ™W¯Wݗw›Lk°ƒkL¯wVa™WJXšWnbƒwkVƒ™W@kĊ'], + 'encodeOffsets': [[ + 115088, + 23316 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4451', + 'properties': { + 'name': '潮州市', + 'cp': [ + 116.7847, + 23.8293 + ], + 'childNum': 3 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@°ŽÜknèmx„b„z„@V‚VX@VnV@lšIVVV¼nKlxn@@¦Vx°LXbla„ŽWbœV°£¯™W@nW@™‚aUñVœwWš»@¥ŤÅUÝǓÝóV@ńǎkUVmƒIUwÅVWÇX¹›—@W„¯bkl@nlšƒb@‚kġŽn@l'], + 'encodeOffsets': [[ + 119161, + 24306 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4405', + 'properties': { + 'name': '汕头市', + 'cp': [ + 117.1692, + 23.3405 + ], + 'childNum': 2 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@‚@U±°Iš±n²mx²ƒ˜@œWºXÈÆUVx„JUnlVȍ@ŃôUǔÞVçn»VyĢÛVm@»kaÝUǼóšÛÈķKċ¥X„¥Wwğk™ƒ¯@ƒwķKƒkUm™aƒbkš™IƒšVÒ°Ċ@n„VU¼ƒ‚„bn˜`X—„x'], + 'encodeOffsets': [[ + 119251, + 24059 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4403', + 'properties': { + 'name': '深圳市', + 'cp': [ + 114.5435, + 22.5439 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ÞLš„@xšbV„šVšK°™X°Kô¥Vw@anU„胐š‚lkĊl@wn_lKnbVmU„aUź@nÿ˜™UmÝѯUƒbk„@ÆkxŻ@™aÇX—wƒJƒƒ¯LķÝUĕ™ó™ĸóêWº@b²nmĬ™Æ'], + 'encodeOffsets': [[ + 116404, + 23265 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4419', + 'properties': { + 'name': '东莞市', + 'cp': [ + 113.8953, + 22.901 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@Ŏ@ššblKnšykVa‚KnbnIVmUƒ˜kUmUIUә„ƒçmV@bUxó¦¯LW‚¯š™L™UUƒ™a@w™ƒÝKğŚ™ƾ„„ƨÈĠy'], + 'encodeOffsets': [[ + 116573, + 23670 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4420', + 'properties': { + 'name': '中山市', + 'cp': [ + 113.4229, + 22.478 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@‚XœÒlmšV°ôÞÅ@m„¯°k„±‚@@aX¹¯VݏÇIUmV¯kk‚±Û£mw@‚Őmèżmô™¼èVš'], + 'encodeOffsets': [[ + 115887, + 23209 + ]] + } + } + ], + 'UTF8Encoding': true + }; +});define('echarts/util/mapData/geoJson/guang_xi_geo', [], function () { + return { + 'type': 'FeatureCollection', + 'features': [ + { + 'type': 'Feature', + 'id': '4510', + 'properties': { + 'name': '百色市', + 'cp': [ + 106.6003, + 23.9227 + ], + 'childNum': 12 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@lklWXL@VšI‚l@XnJn@VUUalk@mK@kny@UlU@a°™„ƒUU@VmaU@Ua@UWw@ƒn@KmLm@alkšmnI‚m@an@VIUamWÅImwU@@a@K„X@JVL„UVmUaVkUa@m„@@Ulmkk°ƒUaVUlKXbVwVIkaVmUk@KVk@a„aW¯m@w„¥laœX@KmaškVmnUl@nxVKšInU@yVaVIV@na°KlxX@@_lmXšUV`VIV™V@„n@lšbn@@WUkValK@²yl@„„VUV@@K°L@KU@@UVaXIVVV@naVkVa@K@UUK@UUa™LWa—w@m@K@UVVƒ@mVUUVKnL„mVL„K‚bVK@UUIk›mI@mUIVK@IUK@VkLƒ@WU@mU@WmUk@ƒI@VƒJk@WwX_@amK@UUWkIƒ„ƒK@LVb@mVmakL@J@bU@Ux@xƒbmI@`ƒIwm@UbmKUaUWa¯UkJWV@XƒJUU¯LUmV@ma@kkamKwƒLUUmWVkkm@aVUUkVKnVVUmXK@UW@km@Ukkm@@W@U™kUy@I@aUUmbƒ¤U@kUmL@bmJU@Ua@wkLWWkL@Uƒ@VaU@ƒLUakKWbkUWVkKkLVLUV@JVbƒz@Vƒ„@ƒVmUU@kVmK¯@VƒU_™VWakVmIUKUaU@@bml@XU@@V@LmKUV„mVUKƒƒKƒbkaUXƒKUL@x@V@l@„mxU¦„V@ŽlL@V@Ln@@VV@„nlKUaV@nLUbmJnL@VWLkbmV„@@L„W‚„XLlx„VVIVV@x@V²blUVm„LVUœK@kWWXUlV@Xl`„LX„l@@VšŽƒn@VnbVš@lVUVUÈVbš@@`UXU`l@@XUVm@kš@xmVknUJVXUbmKULmbx@VlJ@LVbkKUbVLÇUUVƒUVmU@VaUkUKƒVUwmLkUUVVlƒbka™XmwƒKUšVVU@@V±Uk@VWUUm»XamU™bƒKk™`ƒ„™U@UnWW_kKmbUVUVmnUV@„nJVUlšUbU@UV@n@JmI@VmbnVUXlx¯ŽkKmnVV@L@V™bkV™Umm™@Ub¯LmlUƒL@VWLkmkLmmn£WmnKU_mW™š™bnbmxƒ@U¦UJU„@Xmlk¦@‚mnUUm@@Jn@lV„ÔVJnIVW„I@a„ƒÆK@I@aVK„IlŽÞnnl@nl`nbÆX²l@xV„@llbVn²ŽVVl@nn„V@IlW@Un@@kVa°KšnÈmVaVXUlaVƒÈU„VlwôUlynIVašan@lVXb‚Iš@n¥la@Kš_n‚@bÆx@XnJV„nKVz@`VXVšU`@bƒ¦UV@VšIlx„UnV‚K„XÈbšVllšbVbnVn@'], + 'encodeOffsets': [[ + 109126, + 25684 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4512', + 'properties': { + 'name': '河池市', + 'cp': [ + 107.8638, + 24.5819 + ], + 'childNum': 11 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@lLVl„bVV@nXVlI@JVX„mšn„W°b„IVV@‚ln„@nalVUb„nW‚@kVkÒlbVKn²°bUŽlV²@˜X@`nb„aUI@ƒ°wlU@aXJVI@aVK@wUamIXm‚@XUV@@bV@Vm„ImnUUwVaVKXU‚nVK@akƒVwV@nL@UV`n@@X‚lnIUJl@X¦˜V@aUIVm@anƒV@UwnL@VlbVL@KVVXUWƒ„wUUVUka@UVJnUlbnalbVVn@°„„LV`Þ@šXVxV@@bVlUVVbXnWlXnmlš@XXWVXJmbUI@V„llUVkn@@VWV@Vnb„@VXUJVnn`lLVk„a„»lVšLnw@WV@lInw@WnU@U@m‚knUVó„K‚wUmUXUƒU@@wVJVIl@XKVVVbVI„J@Un@lŽVLnm„b@U@Ul@nUš°VUVJnnVJV@„@mVU@ƒ@wkUVwkKWk™yUUkU@alkÈ@lJ@x„Ilƒ@UUWVkUw@Kn@@kmaƒVUl™UUL™ÇƒUUKl@UUmL@aXU@mlUUwmKkUUVKVUƒaƒKUnK@U@Vl@XUWU„KlwX@šb@K‚@XkV@UwWJka@aUwmV@U™@@U@wUm@»kLWVkIWŽXnmV@VkbmKƒLUbk™Va@aƒa@@aVU@aVak£@ƒ±UkVU¯V™UUƒJVƒUIƒ@kxmUmWUbL›w@K@aU@@aVU@Kma@aka@_VWkk@UWVUKULWKULUš@KUnƒwVaUKƒxU@UmaƒL—m@kVmVa@UkƒmI@ƒ@KmIkxU@@K™U@mmakI@VƒLkmWkkJ™_U‚@V@L@n˜xXbšKVb@VVL@V@LUbUlmbU@UUWJUb@VV@@L¯K@LU@UVƒƒk@±z@‚kLUbVl@Xm@™akm@ƒU@UšUJU_™VWŽkn@`W@kw¯LmbU@UJUb@zmV™JULmwk@mVUn™lnb@L›Wkbƒ¦@x°nXŽƒb@bUl@LVlUnlbUJUxWakLUVVb¯„llkn@Vƒ@@nVbUlVbUnƒVUK@IƒW@L@bV@nxÆJnXVbUJm@@bnmJ™nkl@b‚nnK@L„m‚@Xx@VVbV@nb@UVVƒ„¯š@bkV@Vmz@lnLl@kŽVbUVm@mI@Wk™J@UWKkXkl'], + 'encodeOffsets': [[ + 109126, + 25684 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4503', + 'properties': { + 'name': '桂林市', + 'cp': [ + 110.5554, + 25.318 + ], + 'childNum': 13 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@nU@J‚X@`XLm¦Vb`lšVXXWš@VblČnVšŽlanLnmVLšK@_Vaƒ¥@kUa„@VmVb„aV@XVVzlVVK@knKVmX£VKšLlbnš@b@llL@xĊôXaV@°È@¤„bn„V@@Wl_„V„U@W„nVamw„wVbn@„K‚VšLX@VmVUxlV@šnVV_nK@m‚I@Wn@@IšUĊ@@wVWX@@I°VVm@wmU@m@IUƒV™kƒlkUmmkÅV@@aV@@Wn_UKla@kšaV„šlVanb@k„@@KlVn@@aV@nIWW™UUaVU@™kKmwU@UImKk@UU@w@W@‚™k@™UkWƒ@mk_W@Ua@a™ƒƒ@—¯ƒmV£@mƒUUam@—kWakƒVama@UUm@nw@alaUmnUlVlIœV‚™šLVyk£Vm@k@UUJkƒK@kmKUw™KkWK@UXImyVwnI@m‚ƒkUlkUKkUVmƒw@kkJWUÈm@_k@@aƒaW@U„UJUwU@@IWKkƒmUUV@nVl@bVb@bU‚UXƒakw@ƒWUkbkKƒbm@™xUlkLm@@wmKUX@‚™UaVW™XVmU@@UUUƒxkmWXkKkUWaUaUb™L@`UL@LV`UXmK@VmakLVbkL‚xUJUIVbUVVb¯KƒV@Xnl@lVXbmÒnV@L@VWKkVUIWJkIƒŽUamUUbm@U„kU@JUbW@X„WxUam@kbVVUnUJmUUV@bƒU@UUV™@ƒVk@ƒbƒmULV¦U@V„U`VLUL@xVbn@UJ@nWJXXVŽVV@bkxVbUx‚Lšš@x„¦@šU‚lXUVVlULV@@šnŽU„ƒb@xl„nJVnlVknUlVUbmŽU@ƒbVš„x'], + 'encodeOffsets': [[ + 112399, + 26500 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4501', + 'properties': { + 'name': '南宁市', + 'cp': [ + 108.479, + 23.1152 + ], + 'childNum': 7 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@lKnbnU‚@Ua@K„L„ƒlJVX@VnL@bW`Xxl@„I@U„Jl@nV@X‚V@nXV„@lK@UVL@JULVJ@nnJlœVJ@VULaƒLUKƒnmKULVVUŽ@nU„š`lIXlln„K@UlJnb@nšV@LV@lwnJ@L@„nJl„@VUbUn@l˜n„KnbVŽV@„wVLUb„xVm@LV™VKXLVKVLXU@VllUX@`lb@bnb‚L@ŽUV@bV@@b@Lœx‚KVanXVƒUUmVUUUaVUky‚UUa„ImK@mUUVUkKU_@W@UVVVIUW„UVaVU@UUKnƒ@k@al@ll@bnL@b„VUV˜X@Vœ@@b‚Knblmn@V_@aUalL@a@akK@kVKUKlwUUnV¥VmU_VWVIVaX@Va„alńK@LVJnalL@LnK„wlVUw‚mX@VXšƒlLUVnblaUmVUVwXU@Wm¯Va@ÞKnw@w™mšk„»‚UVW²a@_mW@U@I„y„LVUUKW@@™„LX@VUV@@yVU@UV@nwUUmJka@IU@ƒmƒVkaW@UwUX@`ƒ@kLWUk@mƒkUUm@k‚UUWkUƒkWxk@@VƒK@nV@UVaƒUUJmIkVƒ@UamLUbkVmamLka™@ƒ‚kmL¯WI@wJmwƒx@akU@aUKmbkaW_nW@_U@Wm@a@wkwUKmƒk@ƒbkb›w@mKUkkU@J@bW@kVWz@bVUa›VUx@„ULkJWbXVVXƒ`@œmJUVU@@Lk@WbU@UJlnXlm„Vx@Ln@‚b@K„LX„WJUUW@kƒaUVUbmV@nnV@n@lVLƒVmLX‚mXkV±@kxÅL›šUbJWIÅJ@I‚mXalkUamKkškL±aVwKƒUU@mÞnbWJX„m„@lbmKULWUUVkaƒbnn@Vl@VVV@VƒbVbnLWLXJWxXLV@@VV'], + 'encodeOffsets': [[ + 109958, + 23806 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4502', + 'properties': { + 'name': '柳州市', + 'cp': [ + 109.3799, + 24.9774 + ], + 'childNum': 7 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ƒwU™„aV@nVaUVklmkUUmmIkƒ@w„aVƒm@™U@VKUkVUkWV@™ƒ¥@w™™KVwUalw@aUUUWWXI@mVIm@Ua@wVKUKV_UƒV@U¥VK„n„al@„Uš@VU@V„V@aVUnVVIVmUUlan@VbXwWƒX@Va@IlVVƒn@VanVVb„lJXIVJlUXL@U@KmUnÑWakU@mkƒJUI@mk™@wUmmUV@JXaWIXWmaUIƒJƒkk@W„nJ@„ƒaUak@›kkJ@kUKU_ƒ@myUóWUkm¥kUmL@KUKm@k_UmVa@ƒk@@UmU@mm_—JWIUVUŽWLUlbVUJÇVUIVwƒKUVk@mU@n@lUL@Km@@l@L™VƒzJmUU¤m@UbV²U`U@@¼Vn@x@Vš@@VnUVx@blbXIVxU@Wl@@L™aW@kxƒLXVWVk@@U@VmLVŽ„L„bUVULVV‚lnLVxkV@nWV@bnKVVk@VL„VšÈVKšVVk„Unb@lm@@LVxUlVX@Vk„ƒJ@wkIÇ@kl@blVVVšzXllLUxlV@x@„UV@nƒ‚U@UImmUIUV™¯mVk@@V@VƒamnUKkm@@VƒIUJUaUUWLk@UJUI@xV@V„VWVnxƒLUômVV„@VkVVVUnV@UVkL@VVV@bVxla@bkXVJVn„`nU@bƒb@bVL@VnJ@„l@šV„aU@@_lW@UUU@Unƒlll@XLl@@UX@°bVWVanLlknVV@VVX@VVƒnUŽVLmbXJ@nllXX@`VXƒlmaXVWk@Wkƒw—J@„VL@J‚bnU@bn@@bVKUnVJVIVVVL²a@bV@@Vl@nUVakalmš„UL@VUL@V‚a@mXl@nK@UlK„L@Vl@@nkllb@š„Vnn@‚šnV„™V°l„šVInwlKXxlU°Žn@@ƒ‚I@UnVlakUJWkUK@anUWK@_ÞJ@U'], + 'encodeOffsets': [[ + 112399, + 26500 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4514', + 'properties': { + 'name': '崇左市', + 'cp': [ + 107.3364, + 22.4725 + ], + 'childNum': 7 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@@JVzšl@V@Xn@ll@VlnX@@VWLnŽUVmUULVlUV@blnUlnXVV„K‚xnLlb@lnbU@Vn°KVV„I@WXUlI°VXb‚VVbnLVan@‚x„J@_nJ„a@wVwV@@a@IU@UU@WKXwWIXKmKUa„a@U‚UUUk@@Umm„albVUXVVKnL‚a@knƒWƒXImanÝV@„V‚LUx²blKl™nLVbklWbn@JÆIXJ‚IVaœ™ÆKlw²@lUnWWnK„UUK@k@mmU@mnUVaVU„b@lVXVXIWƒƒK@Lam@@KUwnƒWkkmVIV@Xal@@KV@VUnI@›„_UWWUkam@kkm@ka@mƒk@wkJWIUU@WXkW™XkWWLUUƒ@UakLƒW™XV±VIVWUU@anUWaUK@IU@Vak@@UUKWaƒ@m@ak@@wUkla@mUaUklakwVƒ¯¯@WWUkLkKmaƒ™kLUnV`UxWX@Jkn@bmlƒakkk@ƒb@l¯bm„ƒbJ›b@VXn„bVV@„ƒbƒJUkkKWVU@mœÛVUUW@UVUJWXkVkKmUL@WW@U„Vl@XXKW„XJ@XVlmbUxnnm@UlVnV@XVm¦VJb@šmLkKÇbXblVkn@l@bWnX`V@@IVV@ŽV„V°n@@_naÆVVbUVVbUJnzlVUl‚XkV@Vlx@X„VnxƒbƒKUK@b¯VVUV™L'], + 'encodeOffsets': [[ + 109227, + 23440 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4513', + 'properties': { + 'name': '来宾市', + 'cp': [ + 109.7095, + 23.8403 + ], + 'childNum': 6 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@nVlw„@VJU„„IVVUšV°lU²V@„l¤Ub@bUV@b‚@„b@bUblšVa„KnLla@UnUWmXlJXUlKV@V_U±Van@V£nV‚I„yšU@K@kn@@LVK@k@mnVl@VU„LUxVJÈUVIU‚aVkXKVVUXJ˜In`@nnV@Vl@@„UbVnl`n@VL@LnKlVn¦VlôXV‚nz„@V`VL@llIœll@Vb„b@ƒmIXƒl@„l„IVJnbWXXJWb@IU‚nVVn@xlš@nVJ„I@W„U°LUaVUUaVJVIwlKUalKnb@UnLVWU_@KVK@_šKVa„@VKU¯VLVKn@la„aUkU@maVU„J@k™@Um@XmbkyVaUIUU@KV@laVn@KXKWUkUk@ƒaW™UUVw@aXKmƒVaUUkšmIƒlUU@wUa™xUmmU™¯™U@WƒLUmVIUym@UVmUa@wmw@çm@aWLU„™JUIUamKmL@™aƒx¯¥ƒkU¥U@±„k„UVmKU_mJUbkKm„ƒLÅǙ_@WWUXUmaVUkK™„UWW@nVxkUƒxmL@KkKmbUI@KƒLkƃbUbW@UbUJUXV`UnU¦mŽVVkxVLUL@llL@b@bkKVb@bU`m@knmaL@a›@@U—WVUƒU@amK@akkk@@b@lm„VL@VUVUbƒVVXUJUU@V@XV`lLUVVV@nnLƒJVbVlzUVVbVVnUVVU„'], + 'encodeOffsets': [[ + 111083, + 24599 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4509', + 'properties': { + 'name': '玉林市', + 'cp': [ + 110.2148, + 22.3792 + ], + 'childNum': 6 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@VJUXVVXlWX@V™xVnX@@`ššULWŽUXÅbWK@mULUUmJ@n¯b@l@VULVx„x‚XU`VXXJVI„V@nm`@nUŽVXn@lWVn@b@Jn@nU@Lm`@Xn@WJƒ¦U@@VnL„lV@@Xl`nIlJnkVL„w@KVK@UšaVL@bVKX™lUUKVK@I„VšL„a@U@WšLUlVL@bU@@blb@VlbUxVbXUVJ@xVL„U„lV@VU„bVLnKl„XJ@L‚b@an@VanL@`VLšKV_UWl@U_„a@WVInlVUUUVm@I@W@wVakIWm@U@ƒXwlaVbnI@ƒm»Va@aXaVLšU„»@aVa@k™KkL@KmU@WƒzUK@wU@VWUUVUUKUa@mKmbUK@_nWVaUkVaUaVUVLXKVƒVUVmVI@UkKkLm`UkW@UwWW_„UaU@WakXmK@xUXƒJkƒUUWUk@Wl—mJ@km@@aUKzmyVk„a@kkWVUU¯lmU@@w‚kkmV@Vk@mÅIƒ‚Ukƒaƒ@Ub@m@UUU`mUbWaWmb™X™XKWIXUWm@љ@y@UkIUJUUWLUWƒL@UkVUxW@kaWbKWnXxW¦n„m`XLVlUbVbUx™I@JmLUKUb@VW@@bkL@b@VlU@xkš@L@lƒxXxWXX°V@VVVbUVV@UVVbULVnVJUb²b‚aUb@VVVVInlV@VnXaVUšlI„VUb'], + 'encodeOffsets': [[ + 112478, + 22872 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4504', + 'properties': { + 'name': '梧州市', + 'cp': [ + 110.9949, + 23.5052 + ], + 'childNum': 6 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@VbXblVlLXWln„wVV@VV@UnšWUXVbš‚@VWXa@kVK„UaVaVkšUlyX@Vaƒ—VmUwUaVU@UÈymI@aU°@š™nWV@VaVaw@IV@VmnLVK@kmmna@™„™VbVI@aV@XbW`U„„LUVVx„@VbUV@bl@VLXblJn¦lL„°°@n™@K@UlLnK„a°LWbnJ„¦UÒV„UllLlVnKnbWnn„V`„w‚@@Xa±™n™l@XKV_„WVkVa@kVyUa@wU£UW@UIVW‚@@a—wWaX_WKkVmUULmak@UJUI@±m»™—k@m»VyUIm™nmmwnkUmVaVIUn_mW@»Vk„@VwkmmUXa@IƒaVm—mƒ@Wm_U@mIUWóLmUk@laXmmkUK@UmKULUUmWULƒ@VakU™@Ub@bƒ¼™VUKWb@bUbn¼@„mJUakbWx@„@VXnlJUb@x@X@JUnVVUVmkUJ@XƒbV`k@VXU`™LUK@_mKUbm@@b@„U`@nlV@b„UnbVbn@@`VbUbVV¯bm@@mJXb@bVnUllVXUlbUl@LU¦VVmŽkLVb@b™l@V@XlK@V@nUJUz„°mŽwmLmlXbWVU@UUUlƒIU@VVmV@@¦‚bXbWxX„WlXVWL@LUmkbU@@LVVVJUblzna@WVnš@@lƒIUVnbV@Vlƒbkbm@ULUKV°ULƒ@'], + 'encodeOffsets': [[ + 112973, + 24863 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4511', + 'properties': { + 'name': '贺州市', + 'cp': [ + 111.3135, + 24.4006 + ], + 'childNum': 4 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@nL@xn@lKVkšwn@„alLlaXV@„lx„bVWV@aUa@aUk@mVUnVl„XL@JV@VxVIVƒX@„b@bl@@`ÇnXVlI@l„xUnlVVLkllV„@nmJUxnzWJ@VXLlŽšLVxnL@l„LlŽVI@V@lUnl¤Uz™Kš@„Vl@š„L‚l„Lnš‚b@VnVVU@k„a‚Knxn@VkVJ@ńUlakmWIUaVanm@_UK@UVWUa@klXam™U@Vmƒ™VIXW„@lUVknVlKVLXŽVXšW@b@VlšnnVL@KXL‚Kn@lb@UnW°@Va„X„WVb°aVa@I¯aUkUaVKVwƒaXk@a„a‚™@wkm@alanUVw@alK@Umkw@UƒaUmU@WXUaUK@UW@UaVWI@¥Xa@w@WWšVƒXwƒU@mKUXUWVU@a¯kl@akU@UULmK¯VUVW@U_m`U@@xVbUz@lUbUlƒXU`WLk@mš²šWb@Ž@ƒxU_mƒXmmamLkUkKVkUƒVу¥mIXa¯KƒbmLkK@V@Lmš¯@ƒ¯kKm¥kIWaUKk@@aVUUaƒ@UwVUƒKVƒX_WaU@@bUJUaƒš@šmbnn@lULmKUnU@@J‚xUbUbU@mX™š¯@VŽ@bnJÇz@VUVVbVxUn„˜UbW@kz™VUlUbVbƒŽUL@lWb'], + 'encodeOffsets': [[ + 113220, + 24947 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4507', + 'properties': { + 'name': '钦州市', + 'cp': [ + 109.0283, + 22.0935 + ], + 'childNum': 3 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@@IlVVlnL‚@œxla„al@n„VLlx@x@bXnV@@`mXX`lbnaVL@blV@b„wnx‚I@xXJ°nK‚l„š@lbnKnblUVanKVb„@lUnJVI„VUb@V‚U@m„L@Ul@Xw„llVVXV@lVnlVn„l@XVlK„@@_VWVxX@lb„U„nV@@JlbnIlmnVV@UwVK@U@k°a@mnIVVVK@nXLÆaVWXVK™™@_W@Umšw@UXWWkUUVWUIVaƒUkJ™UVWbUmU@mkUJUU@UVab±aVaUIUmVKUaVUU@VUUaUUU@W¯XWWw„w@k@Kl™@wkV@U@alK@aX@@UmIUWUIƒ@mmkXU`U_WJUnUJmUk@@amLU@UVW@UkU@@VƒbUWVUk@@wmKkUWLUWX@JmIƒlUkkKWKkLWU@UKWa@bU@@a@_UKWƒUUUmJmw@nV_@ġğKóLmbU¼VÆ@xUXƒ@Um@wklVnUn›lkaUV@„lV²WVklWXXbWlkVkIm`UUƒLƒUU@UWƒx@XU@@lWLU@kbUbV`UXllUV@bmb@LnKVbULm‚šnVVIV`X@'], + 'encodeOffsets': [[ + 110881, + 22742 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4508', + 'properties': { + 'name': '贵港市', + 'cp': [ + 109.9402, + 23.3459 + ], + 'childNum': 3 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@n@VzUJ‚nVŽ„K@XšVš°nVVnšwVb@xVV„knJl™VVUbn„WL@bUxVVXš„bl@lVXkWƒXwWaa@¥‚@nUUUV@„JVkVVV@XUWanknK‚xnƒ¯VyVI@m@UkL@W@Ušk@aUalKnUUV¥@KVkkaWVkUVkUm@aWanI@n@°aUUVaUa@_m@UamaƒV@akU@mV_@ƒa@KWIkƒmLUKƒaUVU@ƒkƒVUK@wUIWVUaVwka@Uka@aV@@aUKVk™K@X@Vƒb™KƒU@JULVLkVWšUL@aUK™b@VUL@LƒxUKmlkImJk_@WU@ƒkmK@UV@„¥XIm@@Wn_@KmVm@@I@aUmkXm@UWV@mn_@mƒUUJWIUWV_WƒwU@mUknVVmxU@@VUV@zU@UVW@ƒK@šX@VLUVƒKƒz@J@VnX@`±bUXVƒ¼™lšn@xmxÝL@‚Ubn°@XWVUxUVVnkbWVXV@Xš`ÆȄKnƒlLVanIV`nLVUlƒ²ƒV@V¦„l°¦„w‚b@šnKnLVbVJšIVƒXK@b‚n@ènx@xVbUnV‚'], + 'encodeOffsets': [[ + 112568, + 24255 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4506', + 'properties': { + 'name': '防城港市', + 'cp': [ + 108.0505, + 21.9287 + ], + 'childNum': 3 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@XV@X°°U„lxkbVlVb@nkbVl@xl@@b@n„‚XbVL@Vl@UbV@@JVLXbmV@bVVUXUJU²šW„XlKVb„@VVXKlXšWlXXWV@VXJlI@x„l@nlbn@lln@lbXalIVK@ƒVwœUVb‚U@aXylUX@@aW@U_UJmU™nVKUamL@Kna@aVUkkVWU_ValaV@XK@kV@@W„wVXV@„V„KVVn_lJlUXkWaXWlkXU‚±kU@ƒVUlbœkVmUmlk™¯Ý™™W@mb@¦VxULm™kJUU@ma¯wƒmkX@VóJ±bUVUXÝWk™lWXXlƒxUaƒbƒIğ™Ç@U@mVUKkkm@UJm@XnWV@x'], + 'encodeOffsets': [[ + 110070, + 22174 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4505', + 'properties': { + 'name': '北海市', + 'cp': [ + 109.314, + 21.6211 + ], + 'childNum': 2 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@VaVLnK@IšJVwUaVaUkWKn_mƒX¥WwXm‚LXalbU£UyV„Å@ݙwm@™°l›LÅUƒmk™mwÛaƑLÝUUm@ȣƃV_„Ó@£UƒƒUVƒ„™¼U°W̄™ÞVbXbôx@b@bmV@ǃ™UÝ@@ĢU`m@ŽnxnIVV‚VX„VL@`@bV@@aXbVL‚@XVlKXLlLVl„knJ@I‚WVXXKlVnL@xl@UVVX„a@UV@VlX@VUV@nK@bl@nVVIVmXIV`V_lWnn„@VJVXnJ'], + 'encodeOffsets': [[ + 112242, + 22444 + ]] + } + } + ], + 'UTF8Encoding': true + }; +});define('echarts/util/mapData/geoJson/gui_zhou_geo', [], function () { + return { + 'type': 'FeatureCollection', + 'features': [ + { + 'type': 'Feature', + 'id': '5203', + 'properties': { + 'name': '遵义市', + 'cp': [ + 106.908, + 28.1744 + ], + 'childNum': 14 + }, + 'geometry': { + 'type': 'MultiPolygon', + 'coordinates': [ + ['@@@UnUlJn„w‚JU°VL@bnVšU„wlJ@XƒŽXVlU@klVUJknl„UllL@bUJ@xULUlƒ„UblVkblbnw‚UXmla@„wV@VK@L@UXaVKVLXWƒUVa@U@Im@@W@£UKUakKWIXU@al@@llUnL@W@Un@@VlUV@VIUanKl@Xb@lmxVb@b°bb@nlJVVnnJ@b@L‚V@ln„@LmV@Vx@blnVK„nlJXIlw„J@҄b@nlK@Un@UL@VVVVUUUVK„l„@VUVL„J@UVUUw„@Wm@™„UV„ÈVlbUb@JšLlŽX@@x„„ƒLmŽk@@nlx@bUJUzVJ„@@LVxUV@bWxnLnVVK@_‚K²xVbV@n¥@aVI@b„@l@Va„Knb@n‚`n„mmý„W@ƒU_šwV@VlVV@Vn@n„˜@nI@Jn@°¦VaUU@™„mVVWVaUńU@aVKnƒVbVUmmU@a@kUw™m@aUUmUUJ¯lakU‚aXaWUUaVƒkk„amkmUnVlULƒVlJ@XU@UJWUUw„k@aU@WbkWƒL@U@WU@@XUKmV@aUVwUĕUJUamUUVUÑm™nIVJ@kl@XalJVn@KVLœ¥@UWIXWmU@mVUKnUWLUKUaWUUKVU@U@anUny@UlUkK@w@a@aVUƒ»UkVw@Wmk—JƒÅmUUVmwXalLXWWUnam@XkƒJ@UVU@U@W„@@U@I@Wl@Ènlw@KXLWb„lVUkalKUU„VVaV@@wnIlaUmkUƒKWU@KkUkLWaƒKUUWUn@VƒK@LnnWJUIƒVkUWVnV@V™@@XƒK@VUIUJ@IWJkX@VVJ™IƒVkK@I@UVaUWk@m„@wnUWKk@mxk@@„lV@b„xmb@x@VUmLkUƒJ@nVV@b@VkLVbU`¯I›l@™U_UW@UU@™™ƒK¯wm@™xƒL¯¥kIƒ™ƒ‚@bkbƒ@Ua@ƒm@kkW@XVbmV@ŽkV@bWbUbV@„¦ƒxXlmVk@ƒ¦™bkaWL@KUImK@wUK@VUI™b@bmK@LÅy@akXW@kbWlXblL@ŽULUbƒ`@U™kUymX¯@mšUJUUJƒL@Lm@@WX@lU„VlšXll„@l@Èk°V°Ž„X@VU@UVll@XUJVXUVm@@VXLWlnV@Xƒšk@mVULnxV@@bm‚kL@VWLUbU@UVm@ƒb@ķ¥UnmJ@UUVƒkkJUšlÔU`UIW@ƒ°kLUlUI@WVI™U@mWKkXk@ƒ‚WU@bXšW„@J@xX@l@LVl@xšLVxXX@x‚KnxVknb‚KVV@U„L„WlXU`@nUlšX@llVXšVU„KlkUKlI@anKVLXKVaUIVWV_VK@VnLlU„»VKVL„m'], + ['@@@KlKkUUVVX'] + ], + '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@UXlWb—¼WLUKUb°„UlVbkbVL@VƒšƒJ@nVlUbUXmJ@VX@lbUbU@@bWb@VnLVJ@bVVUz„ŽVL@lnL@b™VVVULmKUk™Jkbm@ƒxVb@V—kƒKVnnV@b@ŽWXU‚„nV„l‚VVXVJUXlVXbWV@VU@Ubk@@KWbUUmL@JnXV°XJ@_‚`UbkXVVlÆkbƒ@VLXVV@‚V@k„KXX@`V@@n'], + 'encodeOffsets': [[ + 108912, + 26905 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5222', + 'properties': { + 'name': '铜仁地区', + 'cp': [ + 108.6218, + 28.0096 + ], + 'childNum': 10 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@°a@aÈbVUlU@aVKnVV„VUlyX¹lWVa@U™VƒnUVU@m™@mUl@„mÞw„@‚xnIVbna@KVI‚J@kwV¥ƒUXÇVkVW@kkKWU@aXUWmnIVa°VXbmL@VVbnVVVUb™VbšJVbVKXkVKVanU@aWnWUWa@U™nk@mVIVK@wXxlLXbVJVlKœbl@VI@mšaXalVV„VbX@@ašalnkx@b@V‚b@Vnx@bVVUXn¤WXn@Vl@Vlzn@š`@I@KUU@ƒV£namVkXa@aVK‚nnU@anVlKƒa@UUU@amk@»kƒU¯@aš„VWnkWmkImU@akaVm@»VUV@UKnkW¯XWlkUKnIWaš@nmlIXmWUnwUwWm@wULmaUJkIUaƒaWa—klwkwmJmU@bkJ@XUJ¯W@XbWbUKUkWJUUVKnn@UmmXUWa@mU@@UI@WmXVykwm@kaULWwU@¯ƒlKUUVU@mU@UkmaUbmV@b—š‚xVnVUJVnƒ„@Jn@@bl@@knJVblInV°@nx@„mbU@UWUbm@ULVVVb@LkJmXkm™VWIUJUXUKVwƒV™UƒŽkLkUƒ@W`Um™kVmIUƒ@kƒ@@a¯lÝ¥kmJUƒn™KƒÑmbUb@Wb™ak@mWU@UbƒUVVkLlbUVƒkXaWK@LkxÇmk@@X@J@Vƒ@@X@VUV@V„IWln@mbXVWXkKWbnxVUnV„ƘInl@XUxVl„¼UV@b@b@xlLkV@VmzmV@b@VUVVLXVVbVLXKmVVLU‚@nnVWXXJ@V›¦UK@LUmkIWbk@@lUImJnšVÒVUnVVbVIVĖUxV‚@bnUVL@WV@@X@V„KlXXaV@@bƒlVxXVVIV@@WkI„UVKUkVmlnnŽƒbllU„VbXVWbblVkb°ŽVInVVV@bšnVx@l@bnVVnUŽUam„UL@bƒVVÆUbUXU‚ƒn@šVVUb'], + 'encodeOffsets': [[ + 110667, + 29785 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5223', + 'properties': { + 'name': '黔西南布依族苗族自治州', + 'cp': [ + 105.5347, + 25.3949 + ], + 'childNum': 8 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@VL@Vl@@IXW@kVUVbnW@XlKVVnU„VlL@b„aVbƒb@xX‚°ÔUxV@kbm@VxkxWJœ„V¦ƒŽ@ÈnšVKšxWXJmV@n„Ò@xVbn@@blLk`VX@bššla²JVUlnn@U±lw@wnw@mlwVIX@@m@klKnk‚a„KnwmmXkƍVm„Uš¥l@nb°n@„aVwVmVIVnI@a„¯@mšU°ƒl@@VnI@JV@UV@b@IUbVJmXöºƒzllUbVa@aXUl@„U@llLnKVaUa@UmK@UšwV„bnKV@VwVK@UXƒV@Vbn@‚w@U„WnX‚@„a@m„I„™@UUKlaUaVk¯ƒVaVLXK˜»XaWk¯mƒkğwmW@mIƒVkwƒJUIšÇVwU™UkVKkƒm@UkmU@WÅwm£Vƒ„m¤¯IkJWa™_™lUbmJzÝJk„ƒUÇVU„ƒ‚@bU„Ýn™m¯LUb@`mL@VkL@VƒUmmk@UU±Umka@kUƒ@ķymUkk@mmkÝmUaUakImV@V@VÅLƒ¦ƒJUXmJXšWb@n°Æœx‚¼nV@LlbUŽUbmL¯@ÞbV¤nbVx@bUVlblIœ™@KVVUnVJUn@VlLUlmLUUUxmK@I@@VW@@bU@UJmUkLVVUl@b@V'], + 'encodeOffsets': [[ + 107157, + 25965 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5202', + 'properties': { + 'name': '六盘水市', + 'cp': [ + 104.7546, + 26.0925 + ], + 'childNum': 5 + }, + 'geometry': { + 'type': 'MultiPolygon', + 'coordinates': [ + ['@@ôyVL@nXJV„Ub„x‚bUŽlšU„@ŽšnŽVbV@naVw„a‚VUXVx„x„bnaWmXaƒ_@y°aVUkaVI„aVamkXa@WVU@aUUlUXwVV@UVšbVUnKUwVa°a„bVIlan@manw@VšklJXI@m„LVVVUVK@U„ǃk@KUa@UkaVU@UVWV_XWVXVWlLXKlLXaÆKšwVL@akKm@Uwƒ@@XUVk@VUI@wWK@aUV™I@UkK@ƒmL™Wƒ@kImJƒUÅVmkXUW@UJkx@nmx@xkxV²m@kmUV±Ikb™™@aUWl_kK@am@Ua@wƒÑ@mnUWIX™wULm™@DŽU¥›ƒXIlwUwn@laU@Vw¯ÓW@w„aUaƒb@akKƒUmVUUkL@WmXUaUV@lWX@Jk@@UUKULmLUJmzkKmVX°VšUnWKUL™ƒƒL@mU@UnVJ@b@„UV@Xƒ`m_@l@@bmbXJmnnš@°˜wnn@ŽVLX@V‚@nVl@nk@@b‚l@nn°WlXzW`XXVKnUlxVbUb@‚V„Xb@Ž‚VxÈbVlnbmn@ŽkVUL@„ƒŽmLUVVL'], + ['@@@ƒ@UmWUwkU@Um@@VkL@V@„„‚@„V@VkV@nbVa'] + ], + 'encodeOffsets': [ + [[ + 107089, + 27181 + ]], + [[ + 107213, + 27479 + ]] + ] + } + }, + { + 'type': 'Feature', + 'id': '5204', + 'properties': { + 'name': '安顺市', + 'cp': [ + 105.9082, + 25.9882 + ], + 'childNum': 6 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@lL@bUK™xÅLWbkKWLkKUXUWWXU`UX@VUVlb@VVb@L„l°xXx‚bšbXUVb‚VnU„xšKlL°šnUlVn@UmVU@kUUVašblVXKV@ƄXþlXUxnU@mVK@_@ml@UU„@šblU@KnLVyUw„@@UmkšWVw@UVK@VXzVK@n„VVUUW@kVJnlaš@nKW™kaWL@U—™õb@JU@mU@@_WWƒL@lUU@WUUK„@lakÅUUlWVa_@`WIU¯mW@InKVVXa@Ll@VaV@@UXUWakUVWUIUW‚UkUƒƒmVXW@@amUUm„L˜l@UUa„wn@lašIVlnLVKUUšU@amK@kUKƒVyUU@aUImK@UXa@aV@VakaW@@UnIVWVaUkƒb@mWƒX@Vxm@UaU@W„@VULUxU@mLƒaUŽ™x@VnL@VVbUbmLkK@kƒVk@WV@bUbVakk„yõ¹nWUIVa@J@aVUU@@ImJ@Uk@¯„™V@nƒ°@bmJUUJUnUxƒbm@¯Žmak@™¦ƒVUnŎWlnnmxƒLbmlkL@l@nWVnlÆU„VnIlJ„@šXnK@„lL@VšJVU@bXL@xVJUl@VU@W„@Vxn@'], + 'encodeOffsets': [[ + 108237, + 26792 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5201', + 'properties': { + 'name': '贵阳市', + 'cp': [ + 106.6992, + 26.7682 + ], + 'childNum': 5 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@nŽlLX„VJ„LVblJ„n°ln„„LlVnKlU@nUUa@WlX@l„n@‚Vb„@la@a„„šlJ°¦„Kšwn@°x„LVkUmmwUmk_la„bšK@UlK@UUm@wƒL™mnwmw@U@¯@KnL@aša‚ġXWW@UKbƒKWX—JƒIWakJ@_kWƒkƒKUU@UVKk@@Ula™mV_X@WKXKƒ@WUUnUK@kU@WJU@@UnK@LVUVJVkUK@UUJm_@UaVaV@UU@Wƒw@aV@Xkmmm@kw@IVa@KVLXU@`lLX@VKm_@yƒI@WœU@UlVl@UanU@Uƒm@U„aWaU@Ukƒ@XJmXVbkV@ŽƒIUVUbWUUKmbk@kwmV@K@mWUXUakb›KUUUJVb@LU@@VkL˜š@VXKlbXšmL™@kbm‚UI@lVXUVƒU@mULWy@UUL@VUx™Xnl@Vƒ@VxUzmK@LkV™aƒ@VVk@@n@`UL@nmV@bmJ@Xœ`WX°WVƒn@xnxnIl`VbnVlwXUlLl‚„_nV@b@bl°„V„nWJkx@nmx@b'], + 'encodeOffsets': [[ + 108945, + 27760 + ]] + } + } + ], + 'UTF8Encoding': true + }; +});define('echarts/util/mapData/geoJson/hai_nan_geo', [], function () { + return { + 'type': 'FeatureCollection', + 'features': [ + { + 'type': 'Feature', + 'id': '469003', + 'properties': { + 'name': '儋州市', + 'cp': [ + 109.3291, + 19.5653 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@஼jpnr’``ŽpRVHʘ̤žZt^JÖA˜[†CâlTébQhRPOhMBcRSQiROE[FYdGNOEIH]MgEAMLLIAG_WMCSL@ED]PCLYC[ZIHgjSxJTMbHNEFCMEE_HSDFHSLECRNSFDRICHNADGPI\\RZGIJTIAHLDQOHG`GTNCOIC@eIGDWHIS[kiE[FMbECZS@KKS[FDWsCeRuU_DUQNOE[LKGUBM¨EDQP@HWHGDImXƒCog_~‹I_fGDG|QDUWKBC\\ore|}[KLsISBHVXHCN`lNdQLOnFJSXcUEJMCKSHOUMDIm_‹DI`kNDIGEYFM\\YPEEIPMSGLIKOVAU_EBGQ@CIk`WGGDUM_XcIOLCJphHT_NCISG_R@V]\\OjSGAQSAKF]@q^mGFKSW^cQUC[]T}SGD@^_ˆaRUTO@OHATŸ”'], + 'encodeOffsets': [[ + 111506, + 20018 + ]] + } + }, + { + 'type': 'Feature', + 'id': '469005', + 'properties': { + 'name': '文昌市', + 'cp': [ + 110.8905, + 19.7823 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@€hIJ¤Ī¯LQDaFßL[VQìw€G‚F~Z^Ab[€¹ZYöpFº lN®D´INQQk]U‘[GSU©S_­c‹}aoSiA£cŁ¡©EiQeU­qWoESKSSOmwŸćõWkàmJMAAMMCWHGoM]gA[FGZLZCTURFNBncVOXCdGB@TSbk\\gDOKMNKWQHIvXDJ\\VDTXPERHJMFNj@OwX@LOTGzL^GHN^@RPHPE^KTDhhtBjZL[Pg@MNGLEdHV[HbRb@JHEV_NKLBRTPZhERHJcH^HDRlZJOPGdDJPOpXTETaV[GOZXTARQTRLBLWDa^QAF`ENUPBP…\\Eji`yºEvåà'], + 'encodeOffsets': [[ + 113115, + 20665 + ]] + } + }, + { + 'type': 'Feature', + 'id': '469033', + 'properties': { + 'name': '乐东黎族自治县', + 'cp': [ + 109.0283, + 18.6301 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ªVLP`@PEdNRAHOPEAKHEVL`GZBJfvdTAXNNTZJFPrHHNpKTD\\ILHbEVd^J‚OHLh@NNBnHP`\\xH@NBRLJTlŽNv_^CTLd@bNDVFbxdFV€UPBTKOGEOUO@OEBXQP[H_EI\\EbeYa@UO_J‹MEJ_IEDKJUGMDcNUd_FMTEJSGoZ]EIYGO[YW‘gEQ]a@WHEDQKUSDUGAbYBUpSCYNiWqOSQEoF[UcQISWWNMSDe_cLQ_UBiKQOOASQAWgS­ā]ZaŽSPÝZ]XMXSŒ[^oVËNgNKlE RôEø'], + 'encodeOffsets': [[ + 111263, + 19164 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4602', + 'properties': { + 'name': '三亚市', + 'cp': [ + 109.3716, + 18.3698 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@®ĂhTBXTRPBRPjLVAR`dKf`TC‚NXMTXRJVdE\\FpTRrPjXZMTDVoZABaVHTCLVCRGF@X^bFR’hZXP\\ZHHMA[^wBWXJlW¤EJ[bCTOF‹WWMm@ILMGWQ@DQ^QNWFSHEbF`OXNbO„VNKTEPDTLTCCVTREfvfEHNbRAENH^RJXCFHNFRpVGHWISDOTMVCZeGamaLoLÛD¹¹ėgsia{OųE—Tt‰lɂwr}jŸR±E{L}j]HąKÃT[P'], + 'encodeOffsets': [[ + 111547, + 18737 + ]] + } + }, + { + 'type': 'Feature', + 'id': '469036', + 'properties': { + 'name': '琼中黎族苗族自治县', + 'cp': [ + 109.8413, + 19.0736 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@bRFnHNbHŒgN@NPEnbXP@bND`NT\\@\\QZb@`@J]V@XhžDpW„nCJGHGXO@CR§FANHVKLF\\MPVR`CvVfQtDPKpGHG@S`WJP~^dSTHWX\\RHTFACQTIAUPOU@MG__IaYSFQK‘NSbORHXCZeTFJg„B`YBMNMFi~IVDV[tGJWXGDQRGF]ˆJrALgESLSAYDGIaFeXQLS\\MKSLSQYJY}eKO[EHiGSaK[Yw[bmdURgEK^_kcSGEOHKIAS]aFSU@Y]IWFUTYlkP_CUOUEkmYbSQK@EMWUuAU\\M@EpK^_ZMDQ^OXwC_ZODBrERURGVVZ\\DTXcFWNIAWJWAYUUFYEWLQQaCIZeDM`cLKRGpanJZQd'], + 'encodeOffsets': [[ + 112153, + 19488 + ]] + } + }, + { + 'type': 'Feature', + 'id': '469007', + 'properties': { + 'name': '东方市', + 'cp': [ + 108.8498, + 19.0414 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ºŸx‹JYZQ”IŠYXLl@dR\\WZEn]bA\\S~F`KXaDeTiNO^EEKWEDQXITBXaWaDQMUJOIaTWf@NJV@dSxGZ‰Fu_@WMKAUˆ}AQ@MwG_[GOAmMMg@GKP]IUcaFKG[JSCoLGMqGEOYIMSWMSBucIeYA_HUKGFBLOFGPQBcMOF_@KO©UAtERadwZQ\\@ÊJÒgòUĪRlR°KĮVŽLJ'], + 'encodeOffsets': [[ + 111208, + 19833 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4601', + 'properties': { + 'name': '海口市', + 'cp': [ + 110.3893, + 19.8516 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ńZƂtĢ¬æßFuz¹j_Fi†[AOVOFME_RBb]XCAKQKRSBQWSPY\\HbUFSWSPoIOcCOHIPkYCQ]GdGGIFQYgSOAQLK`MFUIGa@aQ\\GGUFcHKNMh@\\OYKAigsCgLSF]GOQO]@GM]HyKSHKPW@Pxi@EMINYREXWRQ@MQcFGWIAwXGRH\\yDI`KJIdOCGRNPNtd\\UTMbQYi@]JeYOWaL[EcICMUJqWGDNZEXGJWFEXNbZRELFV]XQbAZFrYVUBCLNFCHmJaMIDDHXHEhQNXZ_TARFHVB@DTQIRR@YHAJVnAbKFUEMLd\\c^ÍÞ'], + 'encodeOffsets': [[ + 112711, + 20572 + ]] + } + }, + { + 'type': 'Feature', + 'id': '469006', + 'properties': { + 'name': '万宁市', + 'cp': [ + 110.3137, + 18.8388 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@^J@ZTVbET^JBGLFPTHld]`FLQhcVanx\\\\ZbLHTGj\\FLP~fIZRZPVTQFSVAFJE^NDLEE[~LjsxVTG\\NZZNGlLRRGLJTV@hPZANN^@T\\NEPPbDZXO`d^HSvcJDIV\\XZAJUFCLNP@PQ¤@[ïKLÑIÏ]ÇE±I{uƒ­YśUćFcYUmsVeBSVgB[RO@aYYPO^]@UVaNeDShMLG\\EfFVE\\F`'], + 'encodeOffsets': [[ + 112657, + 19182 + ]] + } + }, + { + 'type': 'Feature', + 'id': '469027', + 'properties': { + 'name': '澄迈县', + 'cp': [ + 109.9937, + 19.7314 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@T\\GJCXJH@fJDDPNCNJENN^NLHBNSx@DDYbBLLDRbjZTj@`XXTlG^Xr@PJLW\\WLTlWR@HDJTD@X_PO@STMDNTMVV@NLDM`M\\XM\\JNBH[PYZ‡úYzŸ`Ċ\\ÎÝd]c[NKVFLEBaUmBIZGQ@JQSR@CUAEGBQ`SWYRMFgWGCGJCbNnIDGMEDKVAZUEqBYRa^WEUFKYQMaFWXEHIFWMYHCrXVIIiaK@aMCUYNSIISTwXALKH@XWXIEIJQCG[IEQDE_XSBaa[AIPW@]RS[FWS[CD]PEBYNGFSaSyJG]@ugEUDQlGHiBKHUIoNSKqHFaPMICK]UUHIPDJMuCA[SCPIDIOILGAEmU[POPBVSJDREBGS[QXWSGcT}]IO_X@TGHoHOLCX\\ELT@LYTD‚aFENF\\lj'], + 'encodeOffsets': [[ + 112385, + 19987 + ]] + } + }, + { + 'type': 'Feature', + 'id': '469030', + 'properties': { + 'name': '白沙黎族自治县', + 'cp': [ + 109.3703, + 19.211 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@D\\RV]dTXELnHr]^@LETBBRTHPi^[@U`QTHDJ`MGSogDIPKdJ`WVNHCXHl_DJR@AH`FBVPUJLHKNTJOFFZON[ZEHFCJlMJ_ŒCn`CJVNGPLTNDFIdVTWEIPmRKMc_kDMWGGUTAtJLK~\\f{pqD[LAVXRCH{HC`eŒJ`}@W^U@I@_Ya[R[@MSC_aMO@aWFmMOM@‹haGGMEmaQ[@MESHaIQJQ……MckBIw[AOSKKAMPSDSLOAV_@@`KJRbKRDfMdHZERgAWVsDMTUHqOUr@VQXTT@Tƒfg‚L^NH\\@heTCZaESNObHPƒHeZF\\X^ElM^F^'], + 'encodeOffsets': [[ + 111665, + 19890 + ]] + } + }, + { + 'type': 'Feature', + 'id': '469002', + 'properties': { + 'name': '琼海市', + 'cp': [ + 110.4208, + 19.224 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@TP\\pATHTGlZDJGAQjE\\Rb@jVBDCN`JZ[NCNHNXbULPrP\\KNbMTLjJJRFP`“pNLZz^FLRHjVPZ@hxVKbHBHMNNJFRlLzGPnNHhIrHHADcPWdUAmEMVQDSKYHY\\EhBN^HpXGNDBNNBnIß‹Å_g{³So]ã@ORO@KMEDIVYB[WJUICudGTc]P_YWaCOOMFS[]@MMYBgOU@ISHKQQkKMHYY[MSHwUit}KF\\KFMCF]EIUBETSROUKTLT[NKTWREfJbCHBZKTFTKh'], + 'encodeOffsets': [[ + 112763, + 19595 + ]] + } + }, + { + 'type': 'Feature', + 'id': '469031', + 'properties': { + 'name': '昌江黎族自治县', + 'cp': [ + 109.0407, + 19.2137 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@`ZĤd–`òüˆ˜ “BSPGP@VSbQ`‡@]HC~T^SE]N]FkW]E[fY„GGOPaTMbFDYfS@g[MGK]h„e@SSSRW@UVqrPVGNStCXUhBFQGYNcCeLQQaLI@_`@EUwcEaCUaMc@SK]Du`MSkKI‡~BVNL@X`‚EvYŠwHcTU@MIe@SXJbIPNVCRXbWbSAWJCRXFFL]FMPSjCfWb_L}E[TaBm^YF[XcQk@WK‰Z“JYRIZwŒ¹ '], + 'encodeOffsets': [[ + 111208, + 19833 + ]] + } + }, + { + 'type': 'Feature', + 'id': '469028', + 'properties': { + 'name': '临高县', + 'cp': [ + 109.6957, + 19.8063 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@jD`hNd\\^dZädĒH´Op@ˆùZY\\OAGIMN[[W_NCNMKU@NUMSNCTSP@`O@WSCCI@GXQSkXKX[IK@OWqH]SkWW@_SiiYQaKCAKZaCCw@MTGAMKM]FMMIMDSM_HGHRPKCBGSJJIYH[QOJCHMBDGQJECMTDQKFGTCEGTF`NFEDMFaGSNwIiTGhYJD\\KZODC^@FTKND`XBHKJNKFBNhG^FJMPcHEZF\\QPRjQTAdgNOPgQaRSê'], + 'encodeOffsets': [[ + 112122, + 20431 + ]] + } + }, + { + 'type': 'Feature', + 'id': '469034', + 'properties': { + 'name': '陵水黎族自治县', + 'cp': [ + 109.9924, + 18.5415 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@R]NC`YL]FoN@V[vBXVFNL@TRZalnVFVP`DlOZkVSXEE_F[EUFeH[NKTgfCbMVU^@P]ZObZP@\\QhATUfAtUasñiāEoI]eYǯ@aKmaeƒWuCºKÜKpnbHbYfUDSNCPJTRAHJTDJSfDNLHXC``VBNGTYCQDIXMDSP@xLNEFRNXBIpVNLXah@RgF@`qOML@LJNSPLbaHAh@Jdj'], + 'encodeOffsets': [[ + 112409, + 19261 + ]] + } + }, + { + 'type': 'Feature', + 'id': '469026', + 'properties': { + 'name': '屯昌县', + 'cp': [ + 110.0377, + 19.362 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@\\OnVBFKHPJCJOJTDB\\vDINOCGJVVL^JDONEbrGTLpMVJLGjAHGRkVChF@vH^zIbTETMHAZOFC^\\DXT\\EffAP\\PdAV@UIYfS|S@YPICMeM@sC[_A]VQEwyHSMuNcAUlQJMVGMS@mVBZPFO\\CSFQK[LqDMACiUa@[QiFBRIHYCHkGSBS[oSOqB‡IE^QHCRWHIXsHU\\UC}JEjMNAN_ZƒAIhSEYfWDQGaPMTL’ERZTJb``NHV@'], + 'encodeOffsets': [[ + 112513, + 19852 + ]] + } + }, + { + 'type': 'Feature', + 'id': '469025', + 'properties': { + 'name': '定安县', + 'cp': [ + 110.3384, + 19.4698 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@JjDNdJ\\FbKPXfZ^Ij@RZNaVSc[MsMOHQPDJcLIJ_zCG[HQxWJBHXdENRR@XQFWZQQGOFSWUCI[WCJuRGLXNMPLhCl[Ta@SqGgJMGOmyHkKEQMINMAGaGULgwY@UOGiKQ]EYyMK”oO_QEIIKiNSMa[LqOKOaVMWMGMDY\\_IKrL\\ERT[DEPYOUA@nNTUHINkRBVMdNvGTxzRF^U`BD\\@tfNDNOJ@Z{TeTJZ@VU€cB[OBOeeQT@^OXBJb\\AbWTF`RCJFH\\RDJIJFXW@WLGBKxWTSJJMTVZND@bbL'], + 'encodeOffsets': [[ + 112903, + 20139 + ]] + } + }, + { + 'type': 'Feature', + 'id': '469035', + 'properties': { + 'name': '保亭黎族苗族自治县', + 'cp': [ + 109.6284, + 18.6108 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@FJp@fxpQ\\ApN\\GNPNBM`HLMrXLXj\\PEHnI@WUCEM\\GTc\\GZYHTPBHRCPTd€H\\K\\@HXi–BJILJJAVNTOZJNtFPC`YxDPWci@IBgbGKaTOIM@KNKrP@_hE@QbgKWUMJoWAQMFEKM@wTONCJWRCZDHSAM_UD_GWMKeCITSCGIQBGXUHQoMEEGWDQIG]FMQBMaFGueFeSQDUSDSKOCSFMLƒUaPWM_PaEGFETMX]RCRR@HXKN@JNnXXEŒSPaDI\\£FkXWIAX]xB\\GN'], + 'encodeOffsets': [[ + 112031, + 19071 + ]] + } + }, + { + 'type': 'Feature', + 'id': '469001', + 'properties': { + 'name': '五指山市', + 'cp': [ + 109.5282, + 18.8299 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@TCNOLBTLBPx\\AJdl†NR†RIbJTGNF\\@RcIYbmHoLQdKN_fCJYbDRRXKZFVEZVXBXIJBXMdESW[CUYHUVQFQAqsEIMPYMSBUIIJKAIj•GW[@[LGScDOGQOAGSYZ[HSd[HFNVD@XmJFG[OWiWKNqGKN_MAMO[HoM[BoRewo@Y^HpITSFENc`MVCdHNIVCLJFI`NFIŒP`@VZbaf[FFJG`O\\WRFA@PVPFPPH'], + 'encodeOffsets': [[ + 111973, + 19401 + ]] + } + } + ], + 'UTF8Encoding': true + }; +});define('echarts/util/mapData/geoJson/hei_long_jiang_geo', [], function () { + return { + 'type': 'FeatureCollection', + 'features': [ + { + 'type': 'Feature', + 'id': '2311', + 'properties': { + 'name': '黑河市', + 'cp': [ + 127.1448, + 49.2957 + ], + 'childNum': 6 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@VÈÞ@Žkx˜nXŽ°VÈa°V@kôw„b‚š„JVškXlVUx„„@ŽlL@xkVV°ƒ„VbxlVUnVxk@ƒ„ƒKkŽVb„Il„@°kVl„@„™lÆnkll@@V„VXƒŽš@V„²bUlƒVlV„U„VÇn@nkJšŽlkVbœ@›x²V@n°VUnlKU„n`@n°bWLnVUblVUVVbknV`°kkŽl@@V°@nz„J@XšxlWXb°n@bƒĠlbXb™bVbƒJ@Všb„a@„„@lbUbšVmnœ@lšVmnIW‚œ@WbÞ@„n@x°@š„ĢaƐéϚnœ„‚lČ¯ĠŻÈwm@ôçU™mm£Xy°UV™›@wÈ£Ǫ¯kõÝçUњ™Uķ‚ƒĢkVфÆšÞU°nŎ¥ČUĊx°m°¦żVƐœx°ƒÇ£@y„UônރÆ@Èĉ°Kô¦šW„kWU—bÇ»@™ÈĕWÇÈ£ŤU@›n£ÆUUKVamanwŃmÝJ¯k@JƒIkaVaUUÇbkaÆÑkWmÝUۙ™Ý@™ƒwnU±ƒ@kkV¯KUkƒJƒ¼U¦ƒšÅ@ówķaķůV¥Uaó@Åwmƒƒ_kVƒwĉ‚ĉmmn_V»™a@U™ƒVwķóƒ‚U¦LǫéóXÇmōLǓÇķxÝkƒƒĉ™kmakbUĶ°@W¼„@bƒšÈÆ@Ė™L„l@„°J¯„mkl¯L݃±L—amJ@¼ƒ„™VƧUó„™UX˜ċb¯ńVbkÆÝI@llx„k°V²šV@Uxގ˜L@b„@b™`ƒšÇzkókݤ@ğ¯Wƒ™LĉǙLmmnċVkbUaƒL@Ž¯„‚bU°ğL݂Ý@'], + 'encodeOffsets': [[ + 127744, + 50102 + ]] + } + }, + { + 'type': 'Feature', + 'id': '2327', + 'properties': { + 'name': '大兴安岭地区', + 'cp': [ + 124.1016, + 52.2345 + ], + 'childNum': 3 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@k›ƒϙmƏêġb™ƒ¯@@wƒmÝ@XV@IlŽl@bUxl¯VlV™bV@ULVlUV™_kx™VVV™ÈÝJ@„¯šU„™lm¯x@xóÒĉ¼m„¯Wƒxţ@Uz¯ƒWwnUwťƒ@knƒWƒ£óVƒUUwğyó¦WI—Vmm™I@±kwÇ@@bƒ@ĉ¼ó@¯wó@¯aó¼›KՃaUwmWUwÅI@aƒKó@Ua™LƒaƒVÅwō¼UUÝl±I—¤VxÇx@zkJmnn‚mbnz™xlŽƒl¯ČkJl™°@„kb„Žmx@x™@kêmVnŽWxôXšxU°„bWLóJnÇWĵ„V¦™ŽƒUUb™b™ÆġK™šk¯™VU±aXmċÑUwĉKġ„k„™ŽVxk„ÇKkbƒIƒ‚ÛXWl¯bƒŽ™X¯K™bĊš„„ÞVƚnŽĸ²lxUŽ°n°òÈb‚¦—xVbƒŽƒ@¯„Vx@¯VķÞČlĊ°KĸŽȘI°¤ČIôŽò»ƨnȰKǬ¦ôWŎÈƨwlƒnKVXmbX`lbšwkVW‚XXŽ„L°a„ƾaĊ£nƒ°@°¥ŎzÞ¥‚»œalwôkƒJ„a@ĶK„£„bU°ĊxźVÈUĠ¥ƨ™VI@XU°x°Ln¥šw°UmwXm݁V¥ĢŽ°@nU@mÆ£š¯lKœšÜw@aÅU‚¥UaÝIkmV²‚nn@Ķ»@Uk¥VKÞ@ÞÛ@ƒkVmĢa@_ƒJómƒǖ¯Æw—óÇa@alƒUwšwĢřšk@wÆWXUWXƒWa™m@_ƒ»ÇéXaĸwVa@ÝKkUWkX‚kšKXxƒn@lĊV@¯m¯nřÆwš¥'], + 'encodeOffsets': [[ + 130084, + 52206 + ]] + } + }, + { + 'type': 'Feature', + 'id': '2301', + 'properties': { + 'name': '哈尔滨市', + 'cp': [ + 127.9688, + 45.368 + ], + 'childNum': 11 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@°`„_šJlUšŽ@„„@V¦°JUšŽnLôlnŤ@@šÈaUÒVbkbl¤ƒzk°ÇVÛô°IlVUVôU„xÆU„Ž@bźĀ„º@¦šb@l²‚UVlœ@°ÒĠxšnXxÆVô¼Þ@Üx²KލlƒVÑ°UȰôlwô@²ƒĸ°„lanV@„šVŎUll@bÈnÜm„wĢ@la@ÝÞb°UXb˜lŎ²ÆškšV‚I@ŽnJnĠŽ°knƒÜbĢwna@a˜kÞKƒĀ„a‚™œ‚‚IVbU¥wĠwkô˜xnLƒċVçkaUƒ±IUmnġW„°WôĉšalƒÞÅĵ¯@W¹XÝaƒb¯a±X¯ºLƒaVƒmkLóƒƒbkaƒVUKVkkKV_@aÝykk±L@ƒÅU@yV_™aU¥ówÇx™@UkVƒn@lƒkÅlwšWVwUkĉmkklW@šašbVwnWWƒ—wWL™™@Ušƒ™UƒÇLšÇmƒ„@wƒJĉƒL¥@ƒÝ_@a¯y„UWw¯ƒ¯Uġx¯aÝXVmaU£ó±›¯nwƒa¯óÅVƒXman™„Uƒ›lUXkWa@mkI„›ğaƒm™IklÇU™„kĊƒƒzkKƒš„lU„ōĬlš™„@ŽnX°@llUxŹ²mKĉVWwk@UbUK@bmVmI—ƒVmwaWxXlWȁšmºšÞÆbUxV@ĵńWÆĉLkWUbƒaWzkbĉ`U„±LklōwUVÝ£™UW`Uwk@mk¯VkaõVX@WbL™K@XƧºWzxƒK@lmX@bkVVÆk¼Vbk@Vn'], + 'encodeOffsets': [[ + 128712, + 46604 + ]] + } + }, + { + 'type': 'Feature', + 'id': '2302', + 'properties': { + 'name': '齐齐哈尔市', + 'cp': [ + 124.541, + 47.5818 + ], + 'childNum': 11 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@Þ@ށĠKV¯a°ƒ@„KVblaČU‚mnnšKĊȚKX„°ŽĠ@Þ£ôllÈy„™š_@a‚ƒ@a—KݍVwU@±™¯Uƒlkw@kÞJlÅUa°ŃČaW—šVôƒƨVšU„ƒ@»nI˜b²Kބ°Klkn°ƒ¯I@ƒƒkšK@ĕÇń™@aƒX»¯@VĵlaÿVamI@aÅÝउýƒĊȗJƒôȁÅkmƑۃ@kxġ@@l™aVk¯»ƒīŹaƒkƒ¥Å¯™JUaWU@@w™aƒ»„KUkÆkUm„UmwÛ±±UUbUŽUXƒwWwÆÝk™lkUanaWwnKl™kal¯ka™ƽa›kÅx™a¯@™amb¯V™lÇwÛĀ™V@x™šmêVƜVV‚aôV„wÈx@šˌx„¦VÞ¯VšlmX@‚ƒL@¯Ua¯LmV@„„°X„ċK™V™ƒ@UƒÈ@‚¥@w—ƒġIU™km¥Źwƒ¦¯lmn@°kxVV@¦óam„n¦l@nx™lĉVóšmx™n™ÒĉĀĊ¼„þ„šǔêÞ°ˌĠÞÒ°ĀɲĀƨźˤȤƨĊ°w@£nymwnkUUV¥ôÑVmkÆmUUVa™mVIkmô„lxkXÞþƒbl„ƒl@kV„ƆƒV„xV@š¼VÒ@šŽUŽšnnނJ'], + 'encodeOffsets': [[ + 127744, + 50102 + ]] + } + }, + { + 'type': 'Feature', + 'id': '2310', + 'properties': { + 'name': '牡丹江市', + 'cp': [ + 129.7815, + 44.7089 + ], + 'childNum': 7 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@U`lLUlVL„Ulb„aô„lKnŽU„„b‚K°¹²W°b„aÞb˜knyUlUkamř²L@m°@lšmš²n`ôÅlK„x„ÜKnxV@„l@œƒ›ÅXyW_k@™wm™ŹĕmƒX™»‚ƒÛ™l°ƒôšÈ„»š—ô˜ô_WW@Uœal»šwU@@wšUVƒš@VƒXI@w‚Ģ͑ÞȻ›aU_@mUkly@¯óV»XmWUXUWmnm¥nUUaWLk»Æ²IÇa™wÅaÝ°¯nUa±a™ƒ™@¦õÆğ„@„™@Åb›xU܁nÇłlb¯¦„ôó»mƒ—@±ƒUk@Wwƒa¯xU„V°ƒxXbǎŁUV™™ƒK@¹ƒKUaȯ@ōݙXƒal™ƒlÛkalÇUǫÇńÇakbÝƆ¯nlš¯Ž@¼™VUx@x¯W¼™Æ¯šmĖ„Ĭ¯ČƒVk‚ķÅmxœ°ô²V¤‚bUnÞW°bĢw°V°„XxƒV°z@bÞ`@„‚¦„KĊŽ„I@xƒŽn„™ÈÈK‚„šV™„@VššXK˜xX„mXUx™a™b@‚kXllĊnVlUx™XkxlÆk„m@U„Vlš@ÈwôxV¦šbU`@zÆV@„²KllÞz@b'], + 'encodeOffsets': [[ + 132672, + 46936 + ]] + } + }, + { + 'type': 'Feature', + 'id': '2312', + 'properties': { + 'name': '绥化市', + 'cp': [ + 126.7163, + 46.8018 + ], + 'childNum': 10 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ऊþÆÞ@bnJUb‚ĀnblŽĊš„„ÞlĸwǔÈŎKÈnôWǬê‚KV¥„ĸôUxš„@VšbU¼m`nnĊŽĊ„xlUšmkaVÿšLšwš@°»UmbKmݙUšwUmVknKUUl¯ƒKU™ƒUȃ‚™nK@ĠkX±lX„°„L@¯¥@wV_m›ĵ¯Ww™L¯ƒUkōƒÇVU™l›w—V󁱃¯aƒVka°wVk°mÞ¯Ŧřƙl™²™Ŏk™U@ƒmUkb¯ƒķŽ±„ó@kxȯó¯VUÒk„ÝŽ±LÛwÝ@ó»ÅUWw™mğw¯Ñ›@UkV±@k™a@¥ƒ¹Źÿ@aƒÅVƒwóVVUkU¯JÜóÈUl¯„yk£laUaVÑÇb@™ţ@kmómK™V¯IU¥ƒ@@ƒ™kV™Iƒ`@ô™¼„blU„lƒ™bÈb@xÇKkĢɳaÅɆō@ƒŽVƒK@z™@@¥ÆKnÜ@@aۏUw›wnU‚ķ@ƒ_ƒV°Ž@„klVššnULVVÞbVl@°™@nx™n°LŚÆlV„ȃmU²@VmĠLƒx„n¯xkWƒzšJ‚wnLmbXbW°šÆ‚™²™@™Žšx@JVx„L‚Ā²Æ°I¯º‚È@ÒnÈ'], + 'encodeOffsets': [[ + 128352, + 48421 + ]] + } + }, + { + 'type': 'Feature', + 'id': '2307', + 'properties': { + 'name': '伊春市', + 'cp': [ + 129.1992, + 47.9608 + ], + 'childNum': 3 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ƒKƒ¯kWW²ğl@ŽmLšÇ„„VVš„Lk°VVmLUlVn™xšVnނLnaVŽ¯¼™@™x™KUĀlb™n„`n„Æxô@VbU¦ĸŰĸbôxÆ@„™V¥„»„IVl°LUŽll@²„mV„x@ššÞܚÞVnŽlXÅÒlbÈaVVUblb„J@I°lÞIn‚Æ„mxnbUbVLÅVm¤@œţVǤXÈÇĖ@šÈ¼˜aXVÜaXbWŽnzŎašř„KôbšUlw@¯naÆKnUU¯Üa@mkkVUĊm„™żÝ‚ǖŽ‚K„™°L²lÆI@ƒ¯¥ĉƛVaÞk@ÝVaĠlnUVwƒœómaƒ@™wĉ@™a™VƒxamX@aƒ@UaÅLƒaVWƒ_nWm£nWm_ÅV¯ƒm@m„󤁚ݦƒ¯ÅalmX£ƒ™VWUŚw™mÇ@@IV™„WUw@ašI@„k@wŎ»Wƒ„ƒ™ÅVaœK›Ika@¥lUkUlwÅwVyÈwWU@a¯U°m—Ç@UçƒaVa¯mV»ÅwÝUlƒUk™V@k„mUk‚X£šw°@@ǃaÝIƒƒam™Ûam„¯lğmmI@J™U™l±ÅōŽ—kWa¯VÝa@Þkbġ@ƒxÛnÇm@akkōVōl±škšÅšťŚÝ°¯nUl¯xlb„U°b²„ô‚˜Uœxšk‚VÈUŎ„Vl°„šKXxĶ°nœU`@x°¦@'], + 'encodeOffsets': [[ + 131637, + 48556 + ]] + } + }, + { + 'type': 'Feature', + 'id': '2308', + 'properties': { + 'name': '佳木斯市', + 'cp': [ + 133.0005, + 47.5763 + ], + 'childNum': 7 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@nš„b‚„ÞJ„b@ȯ@™xW¤Vlƒn@lšUVlk„ÞVÆxU¼°nUb„bVèÈ@˜ŽnIn‚@šĢmlUw°™żƒ‚VUn@lnL@VôbšwĊ‚lœ„JķĸĢl„wôwƨxVVUƒŦšxšLź™Èš°`nnĠwŎJސĶwôJ„@¤Xn܄ĸlšn°¼È°lŽ„„Uš‚b„xš@„l@ÞÞÈm°„lôwšL°¼ĸ‚°Þ²nĠ@ôwÞ`ŤI„V„ÒĠU„„@„VJĸbƄ²@°ŽĊKšœ„JĶaĢȰ@ô¥°nš¤‚bČUš@Vx„mUw@a݁ţƒÇ™ķƒ@ĕķīU¯²@ÆmVÑô¯X¥ċç@™ĉ»U¥ÝţKWVÅkUVÝŎUmǍÝx¯aķxÛUóL¯a±óōb¯™ƒÑŃVÿƒ_Åķ„a@UƒK@wm@Van@UmmLVa—@VImmXUWƒÝUřƒKUwÝUUƒkVƒk@l¯X›‚Å_ƒJ¯k™Jm„ÅLƒa@¥U@¯Vƒz¯@ƒ`@¼šmxƥšŏKÛk@±laÛ@@Xm@™ƒ@xƽ@WŎnšˣĕÅ@@aÅ@@nÝbǏ¯@ƒ_U›kUWƒkb™wÝU@ç„Wlw@anIƒ¯lyœX°m°VšašÛšm@„mVwÞK°ƒšXlaXmm_ƒ@UƒkwÝK@ƒVI™ƒXmV»ƒI@aƒ¯ğW™bġaU_¯JU¯ġŽƒ„ĉ„k„ō`±nÝÆk„™bóĊ¯Xƒ‚ĢX‚mVn²JV„lbUè„ČmK—wlóğx‚xV¦UaJ›šƒbƑÿÝL—l@bmbġx'], + 'encodeOffsets': [[ + 132615, + 47740 + ]] + } + }, + { + 'type': 'Feature', + 'id': '2303', + 'properties': { + 'name': '鸡西市', + 'cp': [ + 132.7917, + 45.7361 + ], + 'childNum': 4 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@‚LšKVVnkšbVšÈb‚²U°VnklVlaÈL@anU°ÜmXV`œnôLƒèšxlŽšLX„˜L²ašVVmÈX@ķ˜lnU„Èl`ȹš@ŤŽ°U@x„KnnV„mlnnUl‚lVnnaŎwlVÞ҄@n¦šLVŽ°lšwVk„Lšaގl„n҄š@xmLÞ¤Wnœ¼‚WÈLVVUxlÈô„„WVaU_VKšKXUÆbn™‚nôK„bÞw°bÆWXamVwœK˜™Uw¯WUk„UlJUwVUa™@@kmyzm›ĉw@kVwškƒW¯ÅKU_Vmƒƒ™xU@aW@@kK@w„a@Kƒ@@kVUƒaky°_Vm™kna¯K@™ƒL™wġk@@IÇóX™ƒwVakmV@mwXUWanƒlĉ@ǙUw™KƒƒóšܛNJۄm°@›w—Å@ƒ±b¯Wƒ¹„WVwŹĕ¯kVmōb¯w@aƒwmV™UUb™V™IkaVwķ™xk¼›b@VXXó`󗙘ƒ¼Çó™¯„kŽÜš„š¼WŽn„źĖnššxl@X`WzœÆ'], + 'encodeOffsets': [[ + 133921, + 46716 + ]] + } + }, + { + 'type': 'Feature', + 'id': '2305', + 'properties': { + 'name': '双鸭山市', + 'cp': [ + 133.5938, + 46.7523 + ], + 'childNum': 5 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@™UƒƒUwó™mÑÞÑUÝÝUkmmŃyV¯ī„¥ƒUÿĉ¯mÇkaWbÅX¯aÝxƒaóLmmšÅaWV™LULV`UbƒXóƒkÇVwUUÇKX›»XmÝ£nK@wƒ™mÑkƒÝ™bƒKUl™x¯kU™Km¥ƒ@ÝÑkUōxmbUmkVkmmnkUƒmmƒL@w¯Vţ™@Ǻk_ƒÇmV—k@ĸVx‚VÈ°lLkllšUbōwƒnVW¼nlUx¯XmWUnÝ@™xÝUó¼¯J@LVbkJWnkb™W¯„ÝLUxƒn@‚™n™Ü™b¯U¯n›Wkz„°mJ@bkxƒX@èÞVšxlaX„lVVœ„`°@ȐÞa@mÆ@@bÆ@ˤĖm™Xōƾ@@wš„n@@WÜ@kb@²ÜlŐLƦ™nw™@»„_°@„y°UV@@¦„bÆKnƒšI°l„IÆ`œ°W@k„llUV„ÞVVx„LƚÞVX„WVnnUJ˜@UbnKVnm@Ubn@@x„L@VƒbÆĸ„`UĀƄ„Ò°šŎa²ô°bôKÜVĸw°bÞwȎVnÞōVUÆlXU'], + 'encodeOffsets': [[ + 137577, + 48578 + ]] + } + }, + { + 'type': 'Feature', + 'id': '2306', + 'properties': { + 'name': '大庆市', + 'cp': [ + 124.7717, + 46.4282 + ], + 'childNum': 5 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@mÇ@сǰ¹¯J±ÅÿƒKUw‚I@™wšš@š±Å‚™X¯WanamKx™I„ylX°wƒm„wğKUn±@nVDŽUƒÅkƙ¯Kšmmwš@@¯UkÝaUUVK™mU™lk@ƒ¯„U„`ĸ@V‚mœxVxܐ@bÛ@m‚ÅL@¦š@@y„L‚U„Ŏ@ÆɅɴblġÈL@wÇaša„ƒkkVƒaš»@ó¯_ÝJ™wÇaÅXny›U¯¥Å„@w™bÝa™Lmm@@ƒVUŽlbğVmš™¯Xƒm_ƒ`¯_Ux™m™L™a¯b@mƒaó¦Çk™¤V„@bóJknVx™VXx±aƒLUbVxkLVlLWlƒ@nX@VÅbWlÈnƒx„bWšÅbmŽ@xœbml°b™„XbW„XVmnn`ƒLmšnbmb@šk@mwU@@š¯Jlbk°lbkšmLXxmbVbkllšÅނxX„xVWVVa²VܲnxƒVVnÅlVlƒL„¼šb@xV@XŽVbšIÆ°„¦„lźb„Ĭ°¼Ulšb@kĢ@lw„@ƒÜlnȂƄóȘI„ĉ'], + 'encodeOffsets': [[ + 128352, + 48421 + ]] + } + }, + { + 'type': 'Feature', + 'id': '2304', + 'properties': { + 'name': '鹤岗市', + 'cp': [ + 130.4407, + 47.7081 + ], + 'childNum': 3 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@Þ¥‚™ô£nƒn@°„ÆUn`mXn¤mX„`UX„bÆKVb„@@bnW‚b„wšUšbĊ@šx„@nbšWVmƒ_mm@ó»Um„ŘWXkĠ»²¯‚¯nķšwŎ@ĊšŎK°bĸUnјKȦĠÈbÆknJššÆUĢV°IšŽšVƾƒwaV™ƒƒkÇ¯¯»™mķkۃWm@£ƒóIĵxݏōIğxmm¯_ǙŹš™K™wťŽ„UVUŽƧwóxƒxġkĸķƒIk›ĉ™xóa@UmK@kVmUŻ„¯šVxkŽġn™‚@mmJ¯n°V@bXVÇxUzÆxkxlVkV@¦lbœJ›LUbšÆƒ„X„ō¼@xƒl@™J@bVxƒXUš@JÈ@šn™xVÆUXš‚„W¤knÆb„°'], + 'encodeOffsets': [[ + 132998, + 49478 + ]] + } + }, + { + 'type': 'Feature', + 'id': '2309', + 'properties': { + 'name': '七台河市', + 'cp': [ + 131.2756, + 45.9558 + ], + 'childNum': 2 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@²mŎ_lƒĊƒ„ƒĢV°°IV`ĢbšaĠX„°@b„JU¼Wnš„UJ@„ÞLlxV„„@n`lIUa@K°Iô»ÞVšwÞ@VmnX°WVwmkX»‚U„mŎxVak™lkkKǯUUwÇWUn™U±b—KWƒ™Kk™w„çóK›mU_nW¯ÛmV@bÇKkbkUml¯U±VÇaU™™amlUU™LK›„k@ƒU@mwÛLƒŽƒwkLóÆm_™±™nkŽ¯@@n±KnŚlbkVV‚mz—lWXº@Ķ°'], + 'encodeOffsets': [[ + 133369, + 47228 + ]] + } + } + ], + 'UTF8Encoding': true + }; +});define('echarts/util/mapData/geoJson/he_bei_geo', [], function () { + return { + 'type': 'FeatureCollection', + 'features': [ + { + 'type': 'Feature', + 'id': '1308', + 'properties': { + 'name': '承德市', + 'cp': [ + 117.5757, + 41.4075 + ], + 'childNum': 11 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@lLnlmxn„„IVVlUnb@VVxXJWL@LގVnnV„J˜_@wkmšK„b‚x„wXk˜WXXšKlb²K@nVVVb„L@WlU²„lKVnUJVz@VVb@lżmVUVnbôaVX@°Ub@lWbXš@b@bVb°x„@VxÈLVlšaÆ@Þb²k°@lVUŽ@Xn@VW‚LXb@¤VXšKVVVLnm°_ƨ¤@aUIVa„alkX›°k„™V@„alwUVy„U@k󙰃na°UVUUmUÆw@mkLVUƒWVI„WšLnn@xlVnK„myU@ƒU°UXaV@U¥ƒU@Uƙ@aVUkWU¯ƒaU@WLUV@bkbmKULmKkUVUkmVIUwlWV²™Uml°U@W„LUwVm@UUK@_ƒKUUÜaXw@ƒVKUU@mVIUUlmnIVVVbÈVlKnbVKš@nI˜@nVnwVLVK„K„„˜Vnb@aUIVW@In™°@lVnIš@lWĢ@°UVL@b„@VyUUƒa@w@WUnU@Wǯ™K@UkkJWaÛbmk@mVaÞU@amkWƒ@mXUKkÿƒ£@a„kl@Um°UXwla„al@nmlXnW°znW@aƒwV™@ƒakbĉ¥VmU@ƒIƒVƒUƒJkUmWU™KbmkUaƒKkUVU@KV@@klw—™WaU@kmƒXVènbmlUUƒKƒX¯JkbƒI@JmIUWU@ƒLml@XkJ@U™kƒK@aVKwWa—IWwƒmUƒ@mU@J@UaċU™aUUƒVkI±ƒk@UUƒ@UbVVm@UVKƒLƒlkIWaULUWƒXUJU„ƒ@WbUb@lkXUxm@@JVn@J@b„nƒb@Vkx@bšLU‚Æn„JšaVXnKVVmzX‚°V@_lJXxWXƒK¯bÅamUƒ@lUI›bñJ@LÇKkIÇ`kxWL@„ƒ@@bUVUb¯xWKk„Å„VlULW@ƒŽn¦Ul@I™lmUUUVm@kWƒnkKma¯XUKWmnwVwÝL„mŽ™VUbUVWb@Lnxm„xVŽmbXx›¦@„nb@`™„ƒVƒ@kbƒLU„mVUlkbVXkºmnm@@xk¦šbĢÜlš'], + 'encodeOffsets': [[ + 118868, + 42784 + ]] + } + }, + { + 'type': 'Feature', + 'id': '1307', + 'properties': { + 'name': '张家口市', + 'cp': [ + 115.1477, + 40.8527 + ], + 'childNum': 15 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@k™ġۙal¥@wn@nml¹UWlaVknUVƒ„Kla„@„Ušƒ@_ma@ƒœ¥WwnaU‚wnƒmw@KXaVUVašUnmWUk°™lƒnUVUXWVw™IWVóKUI@WXƒxUU@mma@kUKWLkw@yk@ƒaVkUUċaUU@Wk@Unm@UVmLm±IUƒkJ™kWƒ@a„I@m@U„ƒVƒ„Ula„@VXVƒXmVwnkWKƒKU_k@m¥ƒmX_™JmnU@km@U@KmU™VƒU@U™@Umk@@LƒmW@Û£Wƒka@wk™@aƒI@mmk@mUa@UmUƒIƒwW@aWUƒbU@kbÇ@kwƒ@makVUk™U@aƒm@aU@mxkUƒbƒKUXUƒ±KXVWLUK@wkU@V™@WXUa@WbUxƒJIƒŽ@¦VèVVX@±ê¯KUIƒ`¯UULVx@Vƒ@UKƒIƒVkLmVkKmš@nUJÝbkIUJVXšVVxVbU„VJ„Un™°bV„mlU°„XnK@Ul@lVÈVUXšx@W„@VXšV‚KÞb„n@VnbV„m`ƒUx™kW@UVkL™Km¼@lUnUJVnV„XV@Vm@@LV„klƒIkl@VƒWlŽULWKUL@mJ„@blbUVUlmzUJUxm@UUbċÜk@Ub@VšLVV„¦ôbVŽmšUKUkU@m„„@VlVn¼WbUJ¯@@„°šnIllÈl˜@nXšWlLœk‚J@bkxlxkxlXUlklJƒšXL@bW„n`@nƎXxlL@xl@Xb‚LœKlVlIXblVUbUJW@lX@VL@VVŽšXšJšw„n@WnL°K„bVbl@VI@K„@U@nmVmV@XUWI@aXm@™VUUkWmn@lmUUk@mUmK@UnwVĉ@ƒƒmU_V@XJôVVUšLVUn@šllUnJl_n@šml@XŽlLlw²LVJUL@VmbVblVXmVnlš@Ť¦„nn@܎@bšl„@@XV`„Unb@VlLVb²J‚Xn¥ÆÑ@¥Þ@'], + 'encodeOffsets': [[ + 118868, + 42784 + ]] + } + }, + { + 'type': 'Feature', + 'id': '1306', + 'properties': { + 'name': '保定市', + 'cp': [ + 115.0488, + 39.0948 + ], + 'childNum': 23 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@VbXWš@@UlV@xVLXKWU²LV„VW„L„alVnwV@@b„n@bšVVllUnb„@lxÈ@laV@„aXV@b‚X„x„J‚nV@VVb@nnl@n„J@blšl@„ašƒU_VWUwVUškUm™Ukb±mVwœU@VIUW@UWk„@VU@ynL„m@IV@‚bnK„LVaVmnIlaXwV@@WVL°@@xnX„@V`V@VbUVVLVKnwnL@ll@@_V@VVnaÆ@œKVXÆ@nƒ@wƒKmU—™Wm@km@kÜKXU@ÑW±nIUwVƒ„Kla@I°wU±kškmm¯mƒ_ƒJnƒaƒwW@IVaUama@wƒUƒmU@mVw@aXk@mWa@£km@aƒ_kVmUnWW@¯bƒkUmk@ƒVÇm@@kUU™KUU™@UVUamVUaWIkb@xU@@amUkKƒVkam@@kVUkUWmKmUkLUb@xmJƒ™U@UImVÛVmnUwƒJƒU@VƒX@UWm@Ub°¦UšmxklmX@`ULU@@UW@@xkn¯@makV™UmxUb™°ƒlUšƒbUbƒnUJƒUUVƒa™LkbUU›JUU@mUUUƒJkaƒ@™xUIWJƒUnƒJ@V™zƒ@kb@`@bln@l™bƒŽ@X@š@š„@Xl‚bnbVb„@„„VJlInlšbVw@U„K„l@lbnan@Vb‚JôLn‚UzlV@lÈLVbVK@LVx—VWXX`WxXz‚bV`UXV¤nx@„bVlVnVlUL'], + 'encodeOffsets': [[ + 117304, + 40512 + ]] + } + }, + { + 'type': 'Feature', + 'id': '1302', + 'properties': { + 'name': '唐山市', + 'cp': [ + 118.4766, + 39.6826 + ], + 'childNum': 11 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@„@VVl@²„lJ„UVVšbČVVb‚@@InV„@‚V„nXx˜JXb‚xUL@b„Lšl@VlI@Wnk„KV@VXnJ@I„Jla°I„W„LVVnkmaUç„WVkôaܯ„@nV°wnJlaV@VUnUUaW¯wXWWwna@£UaWKU¯ƒ¯@aVUkKUamUUƒn»‚an™„IVwUWlkš@„LlWVakU@K„_lƒšbÞU°@šy°n„@„KÈkWW™ţ¥ĉōƒkġWUw¯£¯ƒÇwţwƒ@kK@kƒ¥ÝwÅbǤېťV™lW°@ĸ™x@VVVULVLkl@V@Xƒ`Ub@Xm@UWbƒk@ÆVbnLWV@lnXUbl‚@X¯lmU™VkKWLkK@_UK@U@UmmUxmVXLWVULkU@`W@ULUK@XlJXzV@@xml@VU@UX@Kk@WbUK@Xn`ƒXmJnšmškxUVbUVlVVxUbV@nKlL„kVKÞbVKXI°KVšmVUIUKULVxVJVLkV@Vƒ@UbU@WUU@UbUK@b@nƒV@VkLmb@b'], + 'encodeOffsets': [[ + 120398, + 41159 + ]] + } + }, + { + 'type': 'Feature', + 'id': '1309', + 'properties': { + 'name': '沧州市', + 'cp': [ + 116.8286, + 38.2104 + ], + 'childNum': 15 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@@ln@UȄŽl@Vn„l°aX@mXnVlU„`@bln@¤Xb@nWl@bUx@nnV‚„„V@xnbVbUb@J‚X„x„b‚mXa@k„UVwlW„k„KôVm@w™kkK@kl»Èƒm™VKXkla°@XVV@VI@ml@@Vn@VX@V@J„@VxUzVVšš²blVk¦@šĠ@@»š@VK@VÈLlK@XnJ@alIUl„a„VVbš@„n@a„U@WUIV@mUn@mKXml@lL@LnWšb@XV@@a„VVb„V„@VV„IVWÈb˜IÈ»ƒǟlWšaVUÅUƒƒ™Um@kVU™WVkaUwmaóUƒJUU¯ÑU¥mk™¯UaƒKÅnÇyóXmWÛX¯aċbÛa›J—W™ÝU¯»ƒaóóUm@IƒšVVl@bƒLUJWLX@@xšXUxl¤V@V„nVUV„XVbVš@Ž„@@VVn„°VŽ@ţU¯VƒUmƒUWV@mUXƒaƒbUKUwUaÇKn„ƒVk¦Wb@VnLmV@bkV@n„xW`Å_UVƒV@bƒUklVX@VmlUƒx@VVL@x—VWVL@VW@UUm@'], + 'encodeOffsets': [[ + 118485, + 39280 + ]] + } + }, + { + 'type': 'Feature', + 'id': '1301', + 'properties': { + 'name': '石家庄市', + 'cp': [ + 114.4995, + 38.1006 + ], + 'childNum': 19 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@la„@šy@U„I‚m„VXIVJšw„@lb„IVVnV‚@VVœIVVlašK„bVU„VVI„mVa„aV™„kš¯VanwšVlUnb°@lm@wX@@VV@VK@_nWlknwV™¯¥Van@VX‚@„W@U„V„IVxnmÜUnUVJV@„šnI@wValKnV@k‚mU£na@mVk°K„LVa@UU@UƒmknWWkXU@aWW@@km@UaU@@klK@UkaWaUnamm@U„a¯wWU@UkƒL@ŽUn@x™V™lUXVJUb™LmU@aUWUkmKkLUUm@mW—XƒaƒmmkkWUm@@U¯JUUm™kU¯@mKĉxÝwÝ¥LƒUóŽmwkUUUWVkKm™kKmLX„lxVLVxXJ@nVJnz@VWL@`nX@šƒxƒ@kVUUmJmIXx„JV„ƒnUVƒ@UVV„@LUšƒ`UXVVƒ„ƒlXL@l@b@VmX@b™xn°™UƒbkKWLXlW@@bƒK„mKULmakLUlmb@šXb@xmXU`V„b@`lLx@nWVXL@‚°WlXnlb„KVK„XVb@˜X@l_lJ@V@XnŽ„I'], + 'encodeOffsets': [[ + 116562, + 39691 + ]] + } + }, + { + 'type': 'Feature', + 'id': '1305', + 'properties': { + 'name': '邢台市', + 'cp': [ + 114.8071, + 37.2821 + ], + 'childNum': 18 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@nKlLnšlLXUVVlVnxô„V‚KÞ¦ÞxĊwnL°@lVnšVV°I@Vn@V‚lXnl„n„b˜WnXn@VVlKnLVlVX@bnVšKVaUIVWškšU@wVm@¯@U¥VmU_°lšK„k‚w@LX‚Va„U@wšUƒUUKlUóW@UVUœUlƒ°K„wlKU_na„KVnlKkkšWWa@IœJVa@IlJnU@„KVUUmVlaXUl@lm@kXWÝÑnkƒ™±™k@wğ›@@U@mKĉLmVJ@zmlnŽWLUÝJU_ƒ@@šmJkXUVlbklÝ@Ýa™b¯@¯±JÅwġaUU@ƒkU™@mVI±bUKƒL™WUXƒJkaƒLóKULWbUVkKmnk@@bmLUŽƒl@b@mnmJkUULƒaƒbnŽmn@lVV@¦n@„l@b‚znx@`Vz@b„xnV@xl„lbnKVx'], + 'encodeOffsets': [[ + 116764, + 38346 + ]] + } + }, + { + 'type': 'Feature', + 'id': '1304', + 'properties': { + 'name': '邯郸市', + 'cp': [ + 114.4775, + 36.535 + ], + 'childNum': 18 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@„bVKlVnInm‚@@a„kVnK@al@nmlLVUXaVKôL„Klb„IVWšX„KVL²a‚JnUš@lV@„VVĢbÆx²I°Ž°@šaÞbÞ@lkkaVUlWnI@™„@V`ÞI‚VXKmnk@y‚InUĊKƒÇkUUamUUkƒƒ@aU@U™ƒk@WUwVkVJVkkw°a@„mK@UX@VV„LVW@wšwVa@¯Xm@@lUIWaU@UWkXWmU@UwmUkKmn@lkVƒ²™VƒaULUVmJUUUwƒLma@™UmkIUm›L—mVšmx@b™LUamKÅL@VmbkU¯KÝamzkJUb±Vkb™L@lU@WIkJƒzkKmKƒnUalWkkKW@@nkbk@WW¯XUVUJ@XlJ@Xƒ@XlWLkUƒ`VUnaWa„UV@UVIƒaUxUUmVƒK@I@W@DŽU@@U@bƒ‚@nmKXmx™@UxkVWUX„@`VLlL@`™zX‚Ýb@b‚„@VUVkIUJVz°KVlnLlKnL„xlLVVUVlXUJ@nn‚„I@mVUlbn@@Žm„@bV„nV'], + 'encodeOffsets': [[ + 116528, + 37885 + ]] + } + }, + { + 'type': 'Feature', + 'id': '1303', + 'properties': { + 'name': '秦皇岛市', + 'cp': [ + 119.2126, + 40.0232 + ], + 'childNum': 5 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@lnV@Xb˜škx@lU@@LUVlV„LVbnl‚ašLXVVn‚l„I„V„U„JV@UnĊ¦la„bš@nJ°UmƒV@„wn@VU„JVI°bnWlXnWVLVK²b‚akk„lI@aUaVƒUwVUUalaVwnUVak¥šX@W‚kœLVÓm„mUK@_lWš@n_UK@alÅ@ğÅƑŃݍmƒ@їţÇlƒLƒ@¯m™z¯@ÝV™ak„ƒ`@LlVUbkXƒK™@klVXUxƒJmšbm¼V„nVVblLUV@b„°V°XLVb@¤mbXxWX°xXŽVbmVUVU@kbmI¯xmUƒ@Û°óbUl'], + 'encodeOffsets': [[ + 121411, + 41254 + ]] + } + }, + { + 'type': 'Feature', + 'id': '1311', + 'properties': { + 'name': '衡水市', + 'cp': [ + 115.8838, + 37.7161 + ], + 'childNum': 11 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@„KVlV@X°xƒb@VnnmbVŽXblb@VkL@lV@Vbn@@l‚@XX@bWVXlmXnlV„V@@VUbƒK¯LUl@nmbV¤n@l‚LXnlVUV@ln@lb„UlLnV@bV@@wlaXJVbnUVbVUš@VVšLVVn@VVX@@U‚KXU˜U@wUK@U„wVnk@UUWlk„V@a„UVUÆ`X_ƒw@mlU@anUmK@UXal¥„UmƒÈLVbVxVL„a„bVW@nXU‚Vn„„V°UŤV@Uƒ¯Um@Uƒ@@U™UaƒWVUmUUƒU@k£Vw™W@wW@XKƒIUa@wU@@al@UK@_mKXKƒbUU@aVKmš@Xmƒƒ±@kbÇakLğVaUw@a@ƒmkUJƒk@ykw@£ƒWX@lknk@WVkbUŽVnUVƒL@‚mVkI@JUb›I@JXb™XllkLUmƒLmbV`kLƒx¯Lk„›VUV@VôXkVVL„V™V@xƒVUbW@Kxƒl™L¯kV`UnV¦°@'], + 'encodeOffsets': [[ + 118024, + 38549 + ]] + } + }, + { + 'type': 'Feature', + 'id': '1310', + 'properties': { + 'name': '廊坊市', + 'cp': [ + 116.521, + 39.0509 + ], + 'childNum': 9 + }, + 'geometry': { + 'type': 'MultiPolygon', + 'coordinates': [ + ['@@la„Ušš@šUnL@VWbklWxnIVV„V@X„JlbUlšXVbn@@K„mV@@X°WVInJmn²@lmVbnL@amKV_kwlmX@@LVamaXaƒaVU@UnJVanLlUkaW@UaVakK@IlKUU@an@ln@alKUƒkIVa@a@klaUKUV@UkUV¯šKVƒV@kUmƒU@@a¯ImJUU@VV@UL@Uƒ@@WXUWa@Ukwm™@ƒX@@w@al@@aVIUmVUUUVWUknK@I@™l¥kU±a™™UUVyUwƒ@@I@UUWm@@Uk@@nUJU@WU¯@kbWlULnšÇ„k¼@llLšl@xUnóŽƒLƒlkXUxƒV@lWb„I„`°nnn™llŽV²¯x@JkbƒLU„VxmJX²@ÒWVÛL@lln@‚Xn˜šnV„L'], + ['@@@kX@Valaa@KWI@UXW@WanaUIW@UaUKķŽk_W@UVUKUš@bƒ@UamxVXnJUbWVXLVbn@W°kb@U@Wó¼mIU¼k`V„@bVbl@„lX@lUôVlUœIV`lX„Vn@lUlVn@„l@UVaƒIUWl£Um™VWU@@UUKlUUUnƒVL@KšUnLVWUa›@™U'] + ], + 'encodeOffsets': [ + [[ + 119037, + 40467 + ]], + [[ + 119970, + 40776 + ]] + ] + } + } + ], + 'UTF8Encoding': true + }; +});define('echarts/util/mapData/geoJson/he_nan_geo', [], function () { + 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@IUWVUnLlUlVXKVwmk@W@—VWa„¥@k@lnƒUIÇKUaU@ƒUUVmIUV™Uk¥ƒVma@¯k@Wanwmƒ„@@n@@m@UIVƒkUVamUXWƒaV™U_™@ƒmUVUImW@aUIĉK@VmI™b@lU@@n™JƒkU™@KƒIUmmLk@UVm@UŽm@@LkbU„mJXlbV‚@xUbƒ@@bkK@LWx@ƒbUn@xmbÅW@nWLUKUbUVƒK™U@LUK¯„mU@šVV@xULUŽVL@bU`WšUz¯aUamKUaƒ@@xkX@x'], + 'encodeOffsets': [[ + 116832, + 34527 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4114', + 'properties': { + 'name': '商丘市', + 'cp': [ + 115.741, + 34.2828 + ], + 'childNum': 8 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@XVl@lLȃ„@VkV@V»UanƒWX@VaÆÇô@ÈaVX@xVJXUÞU‚aVLĸbXKl„V@šm°Vn_ny˜XX»mUk¥lK@a„_@yšInaVKVa°_@WXI@ƒ@K‚VnIlbnaV@„l„@‚a@_w@ƒlwUKm™Xa@UV@š»Vƒšw@kUKVUUm@w±VUXUKUwmJUUƒ@km@@±mXkmUI™@mm™KUwkbWakLWaUIkJmŽƒX@l@@VUX@JWbX@VbULWbƒlUVULknlV@bVJk„mb¯KknWmk@@nmVkx™@ƒVmU¯KUnUL™@ƒJUIV™maÅaUm¯X›l™kk@@lk@WI@yUUU@ƒb@aUaƒUmVk@ƒƒ`nxUXlb@lšLVxUbUbVbUll„k„VlÝVUnkVmKUXm@klƒ@ƒnUx@xnxƒn@`VX@V²x@V@b@„Wl@zU`VUVVb„L@Vƒb™W@bkXllkLWV@V„@VVÈwlVœ@@X˜K²Llb„WnnÆL@VnJWn'], + 'encodeOffsets': [[ + 118024, + 35680 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4112', + 'properties': { + 'name': '三门峡市', + 'cp': [ + 110.8301, + 34.3158 + ], + 'childNum': 6 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@WKUmUI°ƒU@@UmU@KnK@IƒaU@makKUa@_‚KnmVU„L@a‚ƒ@IXm@KWkkKVkUU@aUW@UUIVaƒymwkbU@ƒx™LVUWWkk@WUkJk_WWk@WI„ƒUK݄k@WKULka™@mwĉ¥mXUK™@@bƒm@k—VWwkU@m™UUƒlI„™Wm@™@Uk@@KškVmn@lwn@@Ul@Xm˜UXUmVсkmkV™KUaVamaUXnƒ‚@ykLUKƒ@™WwKmKnUm@UmƒƒaU@mUk@kL@lƒxċxUnkVmnXxWb@`kzWJ@V—LmVUn™lmUL@lW@Ub@VšXUbš`VLUbUJ@nmnUlUUm@@bUJlnU„š‚U@lxkbƒ@@XƒJUnƒ@kb¯VVVmlXXlJlzn@VlkVW@bkK™bmškŽUbVb„lƒXVxšKÈnšwÞlĊKlšVnKlwX@lL@xlUnVn„@šl@lmX@ƄÈb°¼ÈwVJlx„_°xšašlšUÈxlUnbVxnL@lllšbm„n@nb‚@@V„L@V„@@„VLšJnIVVlKnV„_'], + 'encodeOffsets': [[ + 114661, + 35911 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4107', + 'properties': { + 'name': '新乡市', + 'cp': [ + 114.2029, + 35.3595 + ], + 'childNum': 9 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@XVlL„K°bUblbUbšl@nX@W„XVVKVkš@@Žmb@„Ubn„W`kL„LƒV@VVLnKlVXIlVš@@a„@l£nWlƒkVa„@°bnUlLVlna‚bnUVUXKlU@ƒ@lk@a„I°y„@ôkUU@wšmôšnkWakml™UkVmkUlmUUm@nkUKWanamU„LXW@U‚VnUln„`l„œblL°KXV@ĠJ@L°„šJšUVw„anK@UUImmƒkK@¯±Um@IVmUmmÅnWaUK¯aUk„w@W±kVƒx™U™VƒwƒnÅJUIWaÝJóI—bm`ÝbÅImJUI¯¥¯@mU¯UƒJmnUVóUkl±V@zXl„bWVXL@bm„mº@@XmJUXU°llk„@nWJk@U„@¦U`m¯ŽWx'], + 'encodeOffsets': [[ + 116100, + 36349 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4104', + 'properties': { + 'name': '平顶山市', + 'cp': [ + 112.9724, + 33.739 + ], + 'childNum': 8 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@l¤UbVL@V„LVb²VlKlaX@„„lbš@lxUVULƒbšln²VJUbW@@L„b@`nL@nVV@LVŽUbUVm„kVl„ƒlXbl@Xn°ŽVK@_°`²IVVV@VUVJnInaWK@Uš@„K„LÆ@nmlXXWVUUw@klKVa@knyVkVanI‚JXUl@XbVUl@@aša@mXk‚bnK@UlK@UUUVaXaWmkUm¥n—WmXaWaœkl@VmÞb„KVL@aVI@mUwVm„@KōméUL™KVaUk@kUK@U˜WXI@VlKXU‚@VVnInVV@VLlK@UUƒkKU_@ƒWWUwU™@klƒn@ƒƒ@Imb—@@m›nUKÛ@mKUkWVXxmbVLXŽVVU²VV@xÅnmWmLU@kbmJ@b¯š™IUb™JƒUUxVl@z@bU`W@Ub¯nUJUbƒ@WLUKULkU@aWKƒ@aƒbmL@ƒlmUk@@bUL™ƒWJUI™°@ƒŽ¯aWLk@mbUb¯b'], + 'encodeOffsets': [[ + 114942, + 34527 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4101', + 'properties': { + 'name': '郑州市', + 'cp': [ + 113.4668, + 34.6234 + ], + 'childNum': 8 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@@nWVUKÅ@W„nVnI‚ŽV@œkƂšwV@šnn@lxÞlnôJ˜zXJl@nalUČVlƒl@²UlkôVVUnm„I°VnV°@°¦VJnIÆJÞan_VmU@ama™@kU˜¥kaUklw@UIV¥kVUI@ƒmmUÅmUlƒwVU@amU—JWbUakVƒ—Vé¯Im`ƒk—@ƒwVWmLkU¯ŽƒXkWmLmx@UUƒbm@@x™J@LbW@UUVWUkVKƒ@ka™IUamKUkkmmLƒUkJUVWXkWmnÅ@ƒKƒL™@@VXLmbmJUIUVU@ULWVkK@nWVXL@lVn@¤„b‚kôKXKlL@¦²V@JƒL±@„@VU@WV@X@`XXmb@Žšblaœn@Jƒb@V'], + 'encodeOffsets': [[ + 115617, + 35584 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4105', + 'properties': { + 'name': '安阳市', + 'cp': [ + 114.5325, + 36.0022 + ], + 'childNum': 6 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@°kVaV¥kVmUkWkWVkVKUwkkmKUU@a„wWWXWakKWkXmlašIVmX¥ƒU@a„@WnK@kƒƒ™V™I¯ƒ@KğI@WU¯LkK›akƒƒ_kmmVU@VWXƒKnVmbXbVLmln@VVknlVUnVlkšlnXbmlmlXblnÈlWbn@@nšK@V„L„bVV°VVzšlnš@V™xƒI™b™ŽU@WLUa¯V™UkWõ@¯kkmxk¼l‚„XUlVbVLnlULmU@lƒLkVUlƒX@xW@¯mUƒ@UmIUW™L@aXa˜kU™¯anƒWk°@k™kKmmUIWaambUkkKmV¯aƒ@UblŽk„mXk¤ƒ@@b™@UbULWVnb@lUVVnmšnVVU„J@bWXX@WJkL@blVU°UV@XlWnXUbW@UVkVšVWbnLUJWLUK@Lnn@blVU‚„nUblxVUVJXU„a˜@Ub„LnUVV@mVIVVn@UbV@‚XbmbUV„_lVXUWanJVI@WkI@WVIVU°WXXl@la@mX@lLXl‚kVbœm‚X„ylIXJV@@kšKla²UVa„IVyÞb°LlVna@UÆKnLVbšK@anwU™'], + 'encodeOffsets': [[ + 117676, + 36917 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4102', + 'properties': { + 'name': '开封市', + 'cp': [ + 114.5764, + 34.6124 + ], + 'childNum': 6 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@lUVbXa˜InV@bUV„x‚knVVÆnn@„VJlUU¦VJ@kxVllb—¦lVš@nb@bVŽUn˜aôJÞIXbVJÆI„m„xšUšV„w‚U²l@XƒxVl°bVLXb‚`XklUnmVblLœ@lmšx°LVK@UXIVašWlL@Ukƒ°KkVaVUXmmI@UÅKmmƒXka±K—L@W›@kUÇxUUƒ@@UXUlKkklW@ašX„a@UƒKUaVUUV_@yXk@ƒ@a@U±w@UUW@_„mmw@wVw„mUaÇbUa¯UUkmWkn±JÅxmIbUxmKmn—JWw„kUaƒK@a¯@ƒbk@mVUIWƒ—Lmwm@Ua@WJUb@LUl™@UUmLUbWJ@VL@VmXWWzUJUꄘ'], + 'encodeOffsets': [[ + 116641, + 35280 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4108', + 'properties': { + 'name': '焦作市', + 'cp': [ + 112.8406, + 35.1508 + ], + 'childNum': 8 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@V@VL@x@bXŽWV@XkššlUŽWX@J„@nI@KlL„KšUVaV@œJlL@KUk@KÞL‚l²_‚@nWlL„UVVš@nLWVUJVn@anV@a„wÞUVLVx„b„@lW„@lbXn‚Vn@@¼šL°mšKVn@bnl@nVK@blb„L„W„U@VWLXV@nlKn@lVVbXw°nV_@¥Vƒl@XI@mlƒkkV¯VWnI@W‚@n¹nƒ@aWKXUƒaWk@yk@k„ċUkVmbk@WI—yóImÝkkwm@™mU@™xŁ›lU@mJƒX™ak@ƒx¯V@¼¯Vm„UmmIkVWK@UXIl@UWVUU@mVUI¯b¯@™lmKzWKUa™nƒJ@nƒlbÝ@@b'], + 'encodeOffsets': [[ + 114728, + 35888 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4110', + 'properties': { + 'name': '许昌市', + 'cp': [ + 113.6975, + 34.0466 + ], + 'childNum': 6 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@lI„VnKlnVlnLVbšJlb„@ULVlUXVVX@‚a@KšI@wn@„aVV‚@nwnKlX„W°lVnKUX„x˜@„ln_°JVIXy‚XnW@U‚K@UXIVanKVVš@Vk@KVaXI‚@Vbn@nx˜KnaU™l™ƒn™Va@ƒXa@™VçUUla@aUK@wmUƒLk`kIWVkLmK@V@XUlƒn@JXV@nm„™bU‚óIƒmUa±@@ÑóVUUk@UlKVU@akWVUUlUUaUK@UUKWbUkÅJ@XWaƒ@XbmJ@nUJ@bUKƒLÝaUnk@›lXbWbXnm˜n¦lVXnWbUbVV@VkL@VmLaWl@n™b@bk@UVWak@WVImJUbUlmz@lUbkL@lVx'], + 'encodeOffsets': [[ + 115797, + 35089 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4109', + 'properties': { + 'name': '濮阳市', + 'cp': [ + 115.1917, + 35.799 + ], + 'childNum': 6 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@lLXbW‚XXƒx@bVVnLllVxULUl‚XXlVlUnlŽU¦Ub¯l˜nœK@V‚bVb@šXbVL„KVxVVnIlašb„a„¥lU@wnalLnVVlVLXnlWVXn@@lVI@WnU@mƒÅW¥—aW_k@WwXy@kmƒ@wU„mš„š¦šlUxVLV@UwšJ°xš@VX„@Vb„@š`VX@VX@llšIVbnJlI„bšV„l„˜J@ƒmѯLóa@ƒƒKUa„k™ƒ™Xƒ@UK@wU@ƒlWUUݯImW¯aƒLUKU@ƒkƒ»k@mƒwƒa@UnKWI@ƒUU@akVWK—k@a±ƒbóUWKXUmk™KUmLƒbUx„„@lmLXŽƒ@@b„VW¦Un™JkbWnXl'], + 'encodeOffsets': [[ + 117642, + 36501 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4111', + 'properties': { + 'name': '漯河市', + 'cp': [ + 113.8733, + 33.6951 + ], + 'childNum': 3 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@@Lƒ‚UnVxnIWa„@Xb@WÆIVlXaVL@VVLVbkVVŽUVlX@bUVkLV‚l@VVôU@Ò²@Vb„nôJVšanƒ@mWU@I„mVk@WkI@wmak™@wlW@w„@VbnLVb°bVyX™V_@aUKVVK@wUU@™™a™K@kmbXVmJUXƒ`kn™nƒK@aU@mw™akb±@¯ƒUUÝKUUU@WU@VkLUKU@mUmJUU@WVkL@UWJ—X@VVL@lVlUbšLVKnêƎ'], + 'encodeOffsets': [[ + 116348, + 34431 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4106', + 'properties': { + 'name': '鹤壁市', + 'cp': [ + 114.3787, + 35.744 + ], + 'childNum': 3 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ó™™n@xVVólƒ@¯zƒJ@bkl@@„kVWLUVmVXbVJnnlLlš¯@Xlm„°bVš—lWb@bšKVXnJ@VV„°nX@@w„WVklU„K@knVVKmkUKUaVkƒWkl»nwlŽ°lö@lXšV°UVbXKV@šša„Jšw@Um™™kUy¯UUUƒaƒK@U™L@mm@XaÇkkmWank'], + 'encodeOffsets': [[ + 117158, + 36338 + ]] + } + } + ], + 'UTF8Encoding': true + }; +});define('echarts/util/mapData/geoJson/hu_bei_geo', [], function () { + return { + 'type': 'FeatureCollection', + 'features': [ + { + 'type': 'Feature', + 'id': '4228', + 'properties': { + 'name': '恩施土家族苗族自治州', + 'cp': [ + 109.5007, + 30.2563 + ], + 'childNum': 8 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@VK‚bX@lbUVnL°„@VlVnUl@VUX@„aVƒmaXƒlašUUU@wmaVUn@Vƒnmmk@m™U@kna™aU¥Vam™X_@WƒU™mW@_kƒVaVKnL‚lœ@VVal@k¥@kUW@kUKVUlUVсW@kÇaU»ValmkUVUVak™@aƒV¯_@W‚UkmVUlU@aœƒƒalI@akkVWUaWXUWwœWVbÆ@„„l„alIVK@U™m@UU„W@al²a‚¯UağÇm@ƒbkk@wƒ@@W™aULmxƒIU‚™ƒb¯@U`UX™JmL¯aƒKX›WUL@aknmK™@aWUXaWm@I@UÅmVU@™™aUV@b™VƒI@WkU›bXkm@VakwUKULWKXmJ@XUK@ƒmL@KUwVaUI@KU@mmn™mXka@»V@@UUaƒw¯yVk@ƒUUVmmkÛÈU@mWUnmx„šmlUbV¦UlbWVUL@UUƒ™IUmÇKV„VbUVVxkn™LUxV`VX@š„„kJVVUXWaUVVlUnmKUbkI@WULmK@L@LVlƒLnmUIWV@aknƒ`VXUJIVlUVVbUX@¤mbnLm‚m@UXk@mm@Ukaƒ¥@kV@@KkU@aUKWbkLWVkIVŽk@UbVlmX@bU@@mmL@bn`@Ln@llVLVk„@XVVU@`VXUš‚¼k`VULka@VllVIn¤VU@@bl܃bkx@bkL›škKƒn@bn@@b@JUnV`UnVbVKlVXUlbn@°ƒVx„@@b„nVbUllVn@V—VK@UnW@UVUšlnk‚VÈޚxVb„VVI„xVaÆ@@aka@UVaU@@a„k@Wl@nbVIƎ@Jk@„L@VlXnlla@VJnw@UmwXU@aVK°ÒnllnLlb„xnKVaV@l¦²nVl@llL„x@XVVœ‚Ķš@našx@U@al™XUVa‚LÈþV°XxWXkK@šmLnlUb@b‚xnLVlVVkb@UJ@xWXXš'], + 'encodeOffsets': [[ + 112816, + 32052 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4203', + 'properties': { + 'name': '十堰市', + 'cp': [ + 110.5115, + 32.3877 + ], + 'childNum': 9 + }, + 'geometry': { + 'type': 'MultiPolygon', + 'coordinates': [ + ['@@@a@w@kV@nbVK@ƒnUla„@la„Ål@nlVakwWX@WkLšaVmšwV@anK@UlIXmWkk@@mmLkWlwk@U_mKXwWK@U¯K@UU@ƒVUa™kmƒkI™yUUVUmanU@mlwkƒ@_mWXaƒUWU@ǃ@U@aUaVwUKUIƒVkK@UWIXƒmaV@k@Vm@UnwlƒUamk@V@„ULUamxUJkU@Iƒ`WkkK¯XWak@@W@IUV™LWJkXkaÇVUKƒ@kUmbmUUƒUKƒbkKWUkI@ƒkKÝ@@aƒUm»nI@mƒU@UnWV_@aUmWbkLUl¯b@a›kkk@WkkJm_k@UV±@J@b›nU@@WÝIUJVbXL@nlJkx@„Wn@VkJmb—LmUƒ`VbUL@xVn„@XVƒŽ@„mVVnnJVbU„ƒx@„V„nVUbVVƒx@šn„™bUK@bƒ„@bƒJ„šm²„VU‚lbXzVJV„„JVbn@@Xmb@V@bVJÈ@‚Vnkn@°aVVV@šX„KnalLVmšUnnVKVlnLWlXX„Klk°š™šXŽWškLUVVV@nU@ml¯nmbk@W`Å@mb—LWm¯UƒxnêVèk@mbƒVƒnUK™@kKmXk@@JUI›lÛLllnbVnlJ@LULnlÆaVLnŽV@nkVJ„@lkô@²bÆm°w„L„WV@VXšKšVXI@W°ÆVšK„b°U„JVIVV„¦XKVL@l‚InaVÝnUl@@bX@‚™nmVL@lVL„lVLVUnbVW@xXn˜bœU°¤V@š™„a@kWKUUn@VlnL@UV@Ü»@mX@V_ƒakaÞ@VK‚¯@kkW'], + ['@@mUkUUm@nllVKXXVK'] + ], + 'encodeOffsets': [ + [[ + 113918, + 33739 + ]], + [[ + 113817, + 32811 + ]] + ] + } + }, + { + 'type': 'Feature', + 'id': '4205', + 'properties': { + 'name': '宜昌市', + 'cp': [ + 111.1707, + 30.7617 + ], + 'childNum': 9 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@°`„U@blšUbUVlVkn‚ŽUbV¼Èb@l‚XUÒkVUVVL@lVX@ll¦k@UbU‚›@kmKULUbl„@`nXšŽ„V@XW`nšUbV¦šbmb@lšV@nnlmnU„m@UVnb@xVV™VkbW„nb‚VnVa@an@UaVU‚JXnWlXX@l„¦@ŽlKÆX„bX‚V@VV„@°¯°xXx‚XV@nV°UVWU_VWXkmaVnWVkn@lln@lb@UVLXWlnX@˜aXUmaVK@UXU„U@WVI‚W„XXV‚U@¥VKœ@‚Uގ„„‚a²LlV@kV@UanKma@UVUnK@UVLXyVL‚knJ@UV@@UXKWUXaV@Vb@mVLnKW„m@aUUm@@UkK@Ula„LXKWaXI@alKlmUk@wVKXL@m@WWn@UVa@K@wna@aW_XWWkXbVW@k@U¯WWwka@UUaVIVƒkU@m±@U@@wVKkaš_@VV@XUVwU¥‚šyUkm@V±ÈUKk»ÇL„m˜mLk@ó£kmWwƒm@U„IkWKXwWU@ƒkLƒwkbmaƒbkK@VƒLkmWIUKkUUƒÇIǫJ™XÅJULVŽÇLUVƒ@UK™@kI@WVI@UaƒWmXVVUL`±kÅLmKkƒƒkƒÅ@Ua›XXxWVXŽVbUXll@bkJ„b›„@bkVUVlnV@X'], + 'encodeOffsets': [[ + 112906, + 30961 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4206', + 'properties': { + 'name': '襄樊市', + 'cp': [ + 111.9397, + 31.9263 + ], + 'childNum': 7 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': [ + '@@@Xl@Xb°WlLXl„_@JlVVInwVbVK@ƒ@UnlVbk„mx@VUnl@U@nbW„XJ@VlL„UVJVLUxVb@b@VȄ‚@XV„VWbnX@`l„kx@nmVnbUVVVšzlJn„šlVb„UV@@V°L@VXLWxnLV`l@kxlXnK@nl@XlWn„`Xnl@@UVa@VÈKš£VLVanW°U@UVU„@„`VIn‚mV@„nV@Xa@aVW@UšalkXKšblI„yƍXnlJXbl@@VV@nklU@`„nVK„LVKVb@V„U@UÈK„UVKšIlUX@V`lIVbn@nblVVmV@@XXJšUVV@knKVn@`@X‚VnK„wlLVmUUU@ƒU@aXL@WlU@UUW@UmU@KkLWaXkWmXUWm@U@ƒnk@UmK@U@UaUVUUKV_@al@namWUI@KUƒK@aV@WUIƒbƒ¥ULUJkIm™ƒK@U@K™V@U@a@UkU@K@wVaUwlU@mUƒULmKUkV@@anIWmUK@I¯„mKkl@LUb±lUakLmk@WwUKÝVUIm`¯n@Uk@makJU_@ƒƒJma¯ImwUVkKƒb™aUÅ@wWaU@VU@mXIVmmUkJkwm@mIlUKWzUK@VmLUV@VnbmLVbU@@lkU±KbƒƒÝV›@UL@¦VWUƒWXUJ@XƒVWV@VULnbWV—bW@kmWXUK@Vkam@kkm@UlmXUŽnbWlUXV`UX¯VmUU@Ul@Lll@nnJ@LƒnWmbmš@b™`ƒš', + '@@kUUm@nllVKXXVKmU' + ], + 'encodeOffsets': [ + [ + 113423, + 32597 + ], + [ + 113794, + 32800 + ] + ] + } + }, + { + 'type': 'Feature', + 'id': '4211', + 'properties': { + 'name': '黄冈市', + 'cp': [ + 115.2686, + 30.6628 + ], + 'childNum': 10 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@VVUnWVXnVJ@„‚U@V@VXŽV@@IVJUnŽ@V@L@KlIVlVanLVbnVlI„ƒn@@a@Kl@@I„JlI@aXU@KlK„kVblJXU„VlU@V„bVkVKXn@VlxVa²I@VlVUxln@bšJXklaVWnLmÅ@y@k@ašI@W@aXIlVVaV@nnlKnLVW@IUa@a@K„UVVlI@wXKVV@IUƒla„@lUXwWƒnƒnalLlxXLll°@XwVKVaXIl™nb˜@nln@Va@U@k°ƒUmÆUVaXI„JV¯ÇUmmkU@WaKmakVm@U@aVKkkmKkVmIkÇ°£@aUUVaVVnKlkX‚mkƒ@ƒlUVaX@@Um@‚™UmlUXV„UVU@w‚K²¥Ua@I@UV™l@U™V±UIUÇ°»VkUmVI@a@U™m™ĉ™¯V±bŹĖğaÇL¯lmŽkX@‚óĀ@ŽmšÝêb±WkLƒn@xXx@Ž@b@V@LW@UbƒlţXƒ`kxWnXô¯¦ÆV@L@JVLƒxkK@V@bkz°l‚lXz@J„UlVla@XUV„bVKXnW`XXV@laVV@V„X@V¯xƒx@xULVbUJ@n@LU@VmmakbUK@b™IWWUUVkUmkLm@VJkb@nUJƒ@`V@kX™aUaVmmLkUmJ@Uk@U„±lkzmJUb@b„VUxVXU¤ƒL@JƒX@VlL@JkLUVU@mnUl„¦@V'], + 'encodeOffsets': [[ + 117181, + 32063 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4210', + 'properties': { + 'name': '荆州市', + 'cp': [ + 113.291, + 30.0092 + ], + 'childNum': 7 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ÈJV„lVVLXJln„K@UlL„anbla„xlK@„XVWxXLlƒJ@V„nXxlnô¤l@nKn—‚ƒÈKl¼VL²Ç‚Un@Vl™zŽV¦UxWVU@@U™`lbUL@xV@²@@nlVU„UJVb@VlbXx°XVWX_VKUwVKVa@UVKUUVk@KnblaUU@wnWl@UX@lÆ@@a„IVmUk„™šxVJ„U„bܙ@Uk@WWnk@Vƒ„™Vm@I@m@Un@m™XUlVlUnJ@knJVU°@@aÆLX@ƒllL@¦nJV@XblLVa²U@UlWš@VX@`@LV@@bXJlIXml_lJœU°b„KÆLnVVl‚@ö—Vƒ‚mXaVIĢllUlVnLVlX@@b‚ašnnxšV„L‚bn@°ÆXmmkĉƒ¯w±™™™Uċ@KÝÅƧŃÝ癙Uw¯ƒm™¯k@W‚kV@¯UIUJW¼kb™Uƒwk@W`@¦Uônb@VƚlÈ@VU@ƒƒ£UWWnUÆUnmJkUÇ£VWUI@aUU@WkI@Uƒa@JW@k£kaWVUKmnkKƒb™kkVWb—VmUUmwU@kk›@UakUUa@V@nlx@lUb±lUbnnWLUyk@UamœUK™@mlk@Wb@VXL@x@xWI@a¯Ž¯V@bVn@LkKmL@`XmKmVU@@bkL@V±bk@Uaƒa™L™KUVƒIƒ„™W™XamVVbUK@b@Lm@UWkxULWVUnm@UlUX'], + 'encodeOffsets': [[ + 113918, + 30764 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4208', + 'properties': { + 'name': '荆门市', + 'cp': [ + 112.6758, + 30.9979 + ], + 'childNum': 4 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@n@lxlInVUnWJ@nUVV@Xb@xVƚb„alLVUnx°Jnb„I@„V`lInbl@@V°mn_VJÞUVLXx‚@nllKVb²kVa@KlknL°ƒ@JVLXnmJ@bU@VlnLVKV„@nX@lUšKVaXal@VKn@¥°L@Unw˜bnašV@KV@VUX@lVXI@KW@@IXWV@laVL„„KlaXUVVnkVWV@lwXblIXWVkVmšaU£VaUmVIkU@y@WakKUamU@UUK@kmK@w@@mK@LƒV¯™U@WwkmULƒamVVUU@ƒƒIƒbUKUa™kmƒm@UakLmxU@UÒWlULţÿmwkIUm@a‚kÈblW@UVƒUUk@JW@XkWWUkUKUIlw@aUWknWUUmnIWƒ™aUwVaۚƒaƒVUI™wƒšVlUnƒJ@bÅ@@kVWk@mX@xVVkbma@LUlVVUL@VUbULVxULW`UX@V@lUXWaXlWXX`@bmb@x@LUb@VmŽXX@‚@nWKUL@xVlknkL@bWJXbWLƒKkb@VlL@Vn@VV@bƒnX‚mLUK@nUaU@WbXVWL@VU@@V'], + 'encodeOffsets': [[ + 114548, + 31984 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4212', + 'properties': { + 'name': '咸宁市', + 'cp': [ + 114.2578, + 29.6631 + ], + 'childNum': 6 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ÞƂLČ@šV‚š²š°xĊ„nlWnŎ¯m@aƒK@„„°‚n„Jšwn™VIUaÆJšÅ@wšwV™XW@aV_l@²V°lĊwlaXLšwlUkalVVaX@lVXI@a˜UXJ@U°UU¥VIVKVklanLVa@VÈIVV@nk@aVa@mV_@a„K@klKUa@UnKWk@@lU@@UW@@nUWUwmaVIXƒ„lV@mLXblJ@kV@kk@KU@WƒkUWVÅwkLmW@UmL@lUL™KULƒak@maUUÝwUJƒIb›KUUƒ@š™aWK@kUWVkUwVw@™mÝ@™I@wkW@a›ww@LU¥™kƒJ@nVJƒIkVVnkV›UkyUIUl@xWUkaW@@°kz„ŽWxkLUWmzk@@bVVVš„b@‚@XlVœ@Vl@bVbUn™`Wn—@Wb„VVI@`„LVbXLV`mnU@@lƒL@LUŽƒak@ƒLk@WbUJn¦@lVb@xVb@n'], + 'encodeOffsets': [[ + 116303, + 30567 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4213', + 'properties': { + 'name': '随州市', + 'cp': [ + 113.4338, + 31.8768 + ], + 'childNum': 2 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@„@nš`lw„k„ƒ„UmUVWX@lk„@VanUĠ¼V@@mX@@nVV‚VXLmJVLnK@b„V@@J„@VUn@VaVUUUVWVLV@@Kk_@almaVkUU@WVƒVUVLXmmk@wUaUKUV@°™@kmaUaÈmW„mUƒVklaX@lVnxl@@UnaUk@ƒVUVwVK„nš@VVn@VbVJUknUmmVmk_Vw„KUUm™Vak¥@UVKVIkW@UmIVWkIVƒkmmLkwmVUƒ@LƒUU@VVXL@JmLUbmK@UUKmkKUUmVUaUnÇlk¯™mJUnmLUaUJUaWL@UkJ™ƒUƒ@ƒaklkU@¯@KWLUmUUWVkbƒLƒŽUKkbU@WX@JX@@LWJkUW@UVU@@L™Umb—amx@V¯K@¦mŽULk@WbUb™LkVW@kVVxUb@x@LlV@V@b@VšU@L@V„LnšlJVIVK„¦„aVJ@XUŽ@b„LV‚@LVJnXmbk@@bU`VLUVV‚b@V@VnL@Vml@„@VXnWVXnWlXblK@LnV@VVX@VkV@XWK@b„VV@VV'], + 'encodeOffsets': [[ + 115830, + 33154 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4209', + 'properties': { + 'name': '孝感市', + 'cp': [ + 113.9502, + 31.1188 + ], + 'childNum': 7 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@VnXK@L@°lVlk„b„@„VšlI@VXKVbVIVbnKVmnI°šlŽÈkVmVbnUVVlLnVL@VnLVanK@IWKUUV@„V@KV„nUlxnKlnU„lJUXnJ@VlXUJUL@Vl¦UbnšVVƒLUxl`UnnnmVVlnVK„bšmVX@a°Ý°LšaXJV@VUnKVXVK@LnKlLUbVVX@VwVJVn„@@UU¥V@@UUK@ƒmaUVUkkJ@L@K@UmVUI@JU@W@U@UV@ƒUIWmXUVmUUÇ@UVmIlmnmakK@akaW@UwVUkKVnUlKVwk™ƒVU_WKUkVW@UXaWkUa@w@VU@XaW±@IkbƒKƒb¯L@WƒXkWƒ@UakL@UV@UmVUmL@UXWVL@ašUƒVUUUVU@yUUƒIUa@wUKWVU@kƒ™™Wk¯UkwVKƒLUx™K@nVxUlUUWVUmw@wƒUUyXWlX¦WbUV@„U‚@blbUVVbXXƒl@lVL@bk@lxkVVnVx™¦ƒ`UnkL@V@L@Ž‚@@xnL@lVL@VnVVblLXb@‚@zlVUJVnUbV¤™bUnUlWXkJWakxU@UXml'], + 'encodeOffsets': [[ + 116033, + 32091 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4201', + 'properties': { + 'name': '武汉市', + 'cp': [ + 114.3896, + 30.6628 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@nbnm‚knJVUÈ@@Uƒ¥VknmV@VUlK@IkK@U„W@I„KV£UWVwƒU@aVanIly²kVƒl@@VnIlVnKUnVbšblWU@@_„‚VI@mlaUIn@lKVnUlVVXXšJ@aVLlanbUnV@@K@mVIUaVK@w„w°w@UƒW@UUUkbU@WWX_WmULƒaVU@WkbkUƒV@IWyk¯kly@a@UlL„wUK@I@KÅUW@ѱUm@wl¥kaƒ@@_Vw@ķƒa@akw@ƒkKW£XVUVwVwUaU@VUU™™xWKkbĉx¯k±Uk@U`@bWXUš™x@x™ÆÅIVbUJmš™xƒImƒ¯@ƒ™Umx™nUVVbnJV„@Lƒ@@ŽkV@bVnƒ@UVULlx°VXlššl„V@XUVL@xVb„JVV@zUVVVUV„™V@bUKWX@VnKUVVnU@@VlKVb„@lX„W@X°K„a„Lla@JX²Wb@ŽUV@@xVbXlWb@VUXVlXLV`Uš„lŽUxkLmVUŽlLUVVxX@lb@blL'], + 'encodeOffsets': [[ + 117000, + 32097 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4202', + 'properties': { + 'name': '黄石市', + 'cp': [ + 115.0159, + 29.9213 + ], + 'childNum': 3 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@VšUVV@VbUx„aWUœblUVmnKlX@bXJVIlVUxVVVIU‚zlx¯š@‚VbnL@x‚x@UVaXK„b˜@Xk‚WU_Vm²klW„XVK„Žl@nXV@@w„mlK²X‚aÞén™@ôÿ@lWn°kUKmmUљUmm@ƒwkImWU@UakL@bVLUVċ@™bUK@alIXKWK@™nXnKmkUVwƒ@¯b@L„lUL±W™n@KULUaW@kL@lƒL@bU`@nUb@bmlU@UÇJ@UUbmKkblŽUULUJV¦¯V@VWI—V@bWJkUW@UbkUlbkV'], + 'encodeOffsets': [[ + 117282, + 30685 + ]] + } + }, + { + 'type': 'Feature', + 'id': '429021', + 'properties': { + 'name': '神农架林区', + 'cp': [ + 110.4565, + 31.5802 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@n`lIXll@lœl@b°aVklKXaVn@bU`mX@V„V@nmJn¼„V@bÞ@lL@„lJXVlL„aVLV„nVnalV„@VLÈUlblWXIšKVU@J„™š_‚@an™na‚X„m@KmI@mkk@KVkWWw¯w¯°ƒ@UUU@WƒaÅWkL@ƒ¥@kWWXkWmIUVVbm@@bUbmUU„ƒbW@UVk@mVkU@U¯ƒmKVUkaW@aULƒÆVbƒb@VÅ@Un@VƒLWl¯Lš„'], + 'encodeOffsets': [[ + 112624, + 32266 + ]] + } + }, + { + 'type': 'Feature', + 'id': '429006', + 'properties': { + 'name': '天门市', + 'cp': [ + 113.0273, + 30.6409 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@@K@UlKVm„_š¥UwUmlUkwl@@aUK@k„kWWUaVUka@aV@ƒVUXaW¥Xk@WWIklm@ÅxmI™VÝUkxkaƒ„@bWJaUL@„W@™l¯UULU‚ƒbƒkV™Ua¯bm¤UnÇUkmUšUx˜b@VkXÇal@bVnlJnxŤĀVKXkVÑV@nwlKVbn@n„šlVbVL„a„J@„VV‚UnU„bVKlnXxV@°š„U@KnL'], + 'encodeOffsets': [[ + 116056, + 31636 + ]] + } + }, + { + 'type': 'Feature', + 'id': '429004', + 'properties': { + 'name': '仙桃市', + 'cp': [ + 113.3789, + 30.3003 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@VK°VškX@@ƒVK‚bXI@a„ƒlblwÞVšUnJÆwn@lkXJ@X‚WVz„V@xnx‚VXUVVVkUw@mšLVw„KVU„@Um@alU@„@@KUƒmIUaVUšmnwmw™mb@aW@UkmKkUkVġkUJWbnU„õ˜@UkmUÅKƒL¯a›VkIk`WnkJƒ@xVLUVVbUbk@WlXbm„VxnxUblbUV™@@VUV@nVL'], + 'encodeOffsets': [[ + 115662, + 31259 + ]] + } + }, + { + 'type': 'Feature', + 'id': '429005', + 'properties': { + 'name': '潜江市', + 'cp': [ + 112.7637, + 30.3607 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@UbVxšbX„mJVnXVlmVX@bkxVJVLVlXXWlX@@IVl„V‚U—aVwV™lnÈVVmn£°aVbUš„l„aVUK@mVU@Uš@VUkaVamwUwnƒWaXkl@VaUaVUUK@w„WI@aU@@K@_UW™@kX@V±VUbkKWaU@mI@¥kK„kW@ÅK@b¯@UVmI@lmIkVkUWVnšm@@V@n@JUnƒšU„@ŽmlXXl@@V'], + 'encodeOffsets': [[ + 115234, + 31118 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4207', + 'properties': { + 'name': '鄂州市', + 'cp': [ + 114.7302, + 30.4102 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@°¥WóXmlw„_ŤW„kVaX@@K@U@a@WwU@mWk@ƒULƒWkX±lUnV`XWl—@ƒaWLUb@Vw@wmKUa@°™kw‚yVUJUUVwkUUJWI@akWmLUnkV›aXVƒbUxUVWX¤lL@„lx@b„b@ĸUx@`„@lbk¦@x‚n²VƄX@'], + 'encodeOffsets': [[ + 117541, + 31349 + ]] + } + } + ], + 'UTF8Encoding': true + }; +});define('echarts/util/mapData/geoJson/hu_nan_geo', [], function () { + return { + 'type': 'FeatureCollection', + 'features': [ + { + 'type': 'Feature', + 'id': '4312', + 'properties': { + 'name': '怀化市', + 'cp': [ + 109.9512, + 27.4438 + ], + 'childNum': 12 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': [ + '@@@n„‚@b@XnJ@k°x@aVUnl‚UXnV@@VnJWUJV„nIVV°ŽUbVVVL@Ž²LUVa°V@aV@nm‚UXblLXWVXVmVLVK@an_„`@X@l°„VlXXW`nX@Jmn@b„@nV@Lm`„bUb‚n@VUVl@nIVbUlƒV@LkJUnVV@xVblVUbU@ƒzUKU@mx@xUnn@@WV@lbUb@šnVWXX‚V@VIV@VUnJ@VUz@JWbXllI@VXVVL@ŽVn@„„Wlb@„Žl„XVlL„aV@VJ@XX`„kVwVl@bk„‚bUŽlVXIlƒnLVa„mVwV@@nV@XaVJVbX@lwV@n„@nV@VWnIVVUŽÆ@Xx‚a@I„UUKmk@mVƒ„IXmWUš™VJnUVU@anaVwk™›U@UXa@W™@m_@a¯@@K@UVƒ„bnK@blIlbXa@WW_n@VƒU@¯bmyƒUkUJÇÅ@WU@kWKÅwƒnm°KVkmankVWnXVWV@UƒƒwXkV@mƒ„UlLnaƒVaX@VUn@VnVK@xlnXWšU@a™@@klak™Vw™mUaV@™wmIÛ`m—@mVUXmlIXƒV‚I@K@aU@UaV_UK@wkUmmUKWXŽmVkUƒL@mƒƒU_nK‚™@aVU@Ukak»@U™™@ymUƒ„¯™ƒUUƒVKkam@™nka@ƒmwkLWb¯mkaƒ_VaVKUƒ™IUw@kKmU@WK@UnƒmaULkU@wUalWV¹U@@WUI@WU@‚_@W@U@mƒU@WbbUK@Um@@UmbUwWWkk@WU„a@anUUwlWUwUU@wlJVUnnV@@mnI@m‚K@U@w„a@wUm@_mƒVUUaVUkƒƒƒ_kċUk™VWLƒ@mlU@kn¥W@UwUWV@VÝU@lXLWVUbVLXlVIl‚knmU@VUJk@@„ƒ@™kVmwmVkxU@@XmVUb@xnKVLl@VxUxkIU`@bWVXX@JWL@bkb„¤@bmUUU¯Kƒkmb@V™VU„VVn@@„Vb@`lnœxmb„lUn‚bk„@xU„mV@bmWbUV@VJ„Il@nVUb‚K@nn@VbnJVIlJVkXJ@X@lmx@bnnWVXJWXU@UlU@mk@@llb°x„IUbnJ@VWbXVmI@JVX@bk‚@bWL@JUXUK@U@Uƒ`n@@Xm@XVW@@nX@@`ƒImxU@@JUI@KƒLmK@UÅUUV@VW@™¯kUU@UamVUUmJ@n„xmLKƒkmJkwkKm_mKXU@aƒU@b@Wk@ma@zUJVUmbUlU@™xnXlWlXXblK„¤V@@nUVVLkVš„l@Xb@VVK‚nXKVx@znW@X‚@@lVK@X@JXbWbnn@JUamLVVXIVxnK@aWUX@˜x@VnI@WlI@anV„IVxk‚l@lbXXšxVVVJVInbV@@ln¦ml@XXVWbkJWb', + '@@XLVKVXVKUa@UUUmV@l' + ], + 'encodeOffsets': [ + [ + 112050, + 28384 + ], + [ + 112174, + 27394 + ] + ] + } + }, + { + 'type': 'Feature', + 'id': '4311', + 'properties': { + 'name': '永州市', + 'cp': [ + 111.709, + 25.752 + ], + 'childNum': 10 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@lxUXV‚lXUVnlVĢ„JVbUXVJV@XUW¯„VIUK@klW@Un@„nl@V`XUVL@l@šVx@„XXW`UnUbšxUlVnUšV„lb@VnJšUVVVInJlUšVnwVklKnw„LVJVšV@nIV@nbVa@KVVVUUa„KV_nVVJ@_VW„nV@n¥lI@anƒl¥X_VKlwVlULUVVVš@šU@VXL˜ƒ@IUmn@VU@wmKXUWU@m²šl@VIXWWkWUkWlkIVamUXamUnmWUU@@Un™lK@XJl@kVUk@mWKXkl@@aVU@UVWUUVa„In`VUVLnw@U@K@Uƒƒ@w@UVmUUƒ™°K@UnV@bV@Xk@KVm@amk„aU£VWUUmUUwm`UbULka›KXU@kVmU™@aV_UWVIn@˜y„XXK@klmV„V_kWVUn@WUU@UƒmaU@™wnwWanUmmXkƒam@UakLmK@b™xUUUU@Km¥Vaƒ¯@ƒkUaVUlm„UU@mUUÇmUk™Uyƒb™bUa™XUWWbÅLmL@V™aL@WWXUKmmk@a@UUK™XW¥kU@VƒUkxmVkUWbUJnVJ@nVJXzWxkŽ@lVbUX@VVL@`mbUnšŽUn™VV¼k@Ulm@mwLƒb@lmLUK@UamƒWkƒK@£Ua@ƒ›UkJkUmbVlkX@bWbUŽVŽnnUVl„@bšbVK@VX@lb„V@nU¤šx‚²„Knblb@x„V„ô@šlŽ@b@l@XWxnVl@„VV@XLVl‚LUŽUXV`šbXXmJU@@bm@UUkLW@UlUKWUUb™wUm™L@nklVVmVXXm@@bUKlÆn„‚XkllVUVVL@nUbV‚@V@nnV@xUn¯U@JW@UX@xĉ@™`m@@LV@b'], + 'encodeOffsets': [[ + 113671, + 26989 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4305', + 'properties': { + 'name': '邵阳市', + 'cp': [ + 110.9619, + 26.8121 + ], + 'childNum': 10 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@XIlJšI„VVK@n@VVVKnLVwVmnLVK@U„@šw„J@wVIƚ°X@ÜȄUÈxll@kn@VwVaXJWXn@@WVL@UUKVKV_U@@aVK„x@U„aV@lk„@XylbUaV_šVnal@W„U@a„I@aV@@aVUl@Xm‚UXWaXml@@kk@ma@V_UnUV™UUWJUa@kkaWLUmk@@LUVWUkJWkK@¼UnWJƒIkV@b@JUIm@Ul™V™m@Uw@a@kWƒXWKUknW@ƒWUU@k™mx™UkVmIUJUU™VmI@UkaUƒV™UmVk™wVaVmX_WW@ƒUw@™@kUKWVU_k@ƒmm@@VkX@lVLUJƒX°WVU@UIVWUaƒIUġmkVUkWUVWkwWXk`mI@¥kUVƒUƒUn±@m›XkWknV„UVmmU@@XƒVƒUk`@Xƒƒƒk@¥¯»mbĉó@mkU@kU™ƒƒ™KmX@˜UnmL@lULkKUƒWUU@ƒbUaUnƒ@Vb@l„¦Ub@l™@UKmnƒKUnl„UVVbUVn„@`Vn@xƒb@x@VL@nmJ@nU@mmUVkI@xVVVxkXVxmV@bƒbXVl@Xl‚XVxna@Vn@@VVL‚aXaV@n„‚@@V@X`V@@XVJ@XV@UºkXVb@xlVVKnbm„@VXLV@n‚lL@VxšJV„ULUb„`lb°nXalKnx@„lbšmn@lbULV„„V°š„ƒnV@zšš@Vl¼lb@VUV@bšmLV`„„@n„KlVnU‚XWVLnnlV@xVLU`VbV@'], + 'encodeOffsets': [[ + 113535, + 28322 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4310', + 'properties': { + 'name': '郴州市', + 'cp': [ + 113.2361, + 25.8673 + ], + 'childNum': 10 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@²zVaVlnVl@nšVk„Jl_XJlIVmnL@mV@VXn@lV@‚XzV@lyV¯²U@UlJ@XVKnVVIXl@UVLV`@n@J„I@mlI„KVLnUlVUVVLXašKVLl@nb@ŽW„XV°KUnVV„L@xVJ„L@b@LUVVVU„˜VXbmbVbn@@lUbm@x@XVVVŽ@@˜@bkImx@Vm@Xbƒb@l°XU¤„a‚L„mnL@bl@@™VUX@VxnV˜anLnƒWƒ¥XKVwnUWXmVIUWÆLVx„L„w@wVmlU@¥XƒWUkwlÇn_Uw„WV@VU°wnU—ƒy@aVškVlnL@lVn„w@VlJ@b„X„x@bVKnb@U@WVUl@@Vnbl@XLlK@aVLVKnxÞn@a„LlmUaVU™ƒm@ÅknUmaUKmVk@m™kk@UlWUkVm@w@kUU@W™U¯™¥@w„Ç@aVIlUV@kUWU@UUm»@k@mKVkUKUwƒaUaUa›@k„kUWJkImaU@UK™@maUzk`@zƒy@XmJkL@UUJmUkV@z›@kŽkVmK@¦UbWL@a@UbmKmwUK™Xk›VUUkmVkw@UUKmL@WUIWa—JW_k@@WmI@mk@WkWULUUVKUUVm@šU„bš@‚nUǃ@U@w„™V@Ua@aƒL@ak„›l@k™UƒJƒwó@@L@V@„™`@œƒJ@xnn™šmV@bkJmUó@ƒn—JW„UUmƒU@UV@Lk„WlnnmVXbmxšxV@nbV„V@XVm@UVlXU`ƒUŽkn@lWLƒW—zm@UJVXU`@bVšUn@lWVœLlbVKVan_VxnVVVUXV¤ƒbnl@bUn@LWlU@@amU@V¯L„šVVUn@V@x„„@V@L@VmxUKUVm_ƒJUbVV'], + 'encodeOffsets': [[ + 114930, + 26747 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4307', + 'properties': { + 'name': '常德市', + 'cp': [ + 111.4014, + 29.2676 + ], + 'childNum': 8 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@l™U™mkUwUyV™@VW@¯Va—VmUU@KVUVUVLnaWƒnkUÓV_@mVU@݄w@ƒka@kVmƒUmK@IkaUamKkXWaUW@WUk„™@@KVU@aU@™L@J@XÇVUKVak_mWkLWakVUbmLUUmlUVKUU@kUWW@UImJ@xkLkKm@@Xƒ@ó݃@UUk@UKƒV™ƒULƒKƒXkWWbkaƒIUƒWU@mUk@WLaUJġ™ƒ@@XÈÆVIl‚„Vnz°aV@U„m@X`@XWbkakJ@amLƒaU„@V@L°@@bn`š@@XWb@VœVlšUxmb@bUVmVUI™šXVWnƒJU„@nnlVLƒV@JbWzk`m@UVK²V‚x„k„LVl„@Vn@V„„°xVKVkœVVlUblx@bU„‚Æœ@@nVnUll„kx@VW@@VkLWxUL@bÝ@kKkVõV@bkXVVUVƒ@ƒVkUkV›LkV™a™@@™ƒ¯xUxmX@JVb°WXkK@Vm@k„Vb™bn¤‚xUXkJƒblxnXÆK²l‚_@Wnašn@ŽUL@b‚JnIlV„@lUœ@@¯ô@lWȂIVKVm„U@aXaV@lwVXn@@K@UVKUUnU‚bn@lWšX„ƒlJnUšLšKV@„„l@²a@UlK@aV@naVX„WV_nKlL@KUm@a°U°@VXL@a@wWmXal@„k„@VLn›V@@bl@VnX@mwVa²aVU@mk@'], + 'encodeOffsets': [[ + 114976, + 30201 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4331', + 'properties': { + 'name': '湘西土家族苗族自治州', + 'cp': [ + 109.7864, + 28.6743 + ], + 'childNum': 8 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@@KšL@wnK±nƒnm‚—@WUk„ƒÜÈn@n»@mVamk„mšU„„l@V™nmmU@wUan¯VKšLn„VWlInyWUœI@WWk@KXU˜n@mnUmU@WœƒmkV@ƒkXašaVaUm‚Ikƒƒ@kaƒX@ƒUm@UKWU@UkJWkXa@IVy@UmIUVU@UJU@WXWmU@™VakaU@@Xm@Vm@wnwV@VL„yV@VakUUa@wUUVmlI@K„UVkUamJk@VU@UmVaƒan_@KmUƒ@@anm@ImWX_WWUk¯ƒ@k@Wƒ_m`@bULUKUnUWWXkKWaVmnU@@b¯UUbVŽ±K@UKUUVa¯UUmJUƒVIXmI@UU@WmVmkUV@b¯w@lmI@W@aƒ@m¯LXbmJVLklWL@V@XXŽmbVVU@@VU²Ul@VlX@bš`Xx›zUmkUVÒlŽ@bXLWxXVlš@V„bkLma@nmVmULVbmVUb@lnzmbUÒVl@°nLV„lJkn@bmJk_ƒVmmkblxÈx@LUb„xVb@V™n@JmLVŽUš@„nV@¦VbnJ@lVVbkx™bm@UxVLV@n`UnVVV„kl°z„xVb@VU@@ÆlXnWm¦nbVK@XVVUVVl@X„KUV@nVL@WnIWŽXLVKVLlxUbVKXVWbn@@UnKVLVb„JšU@aVU°b'], + 'encodeOffsets': [[ + 112354, + 30325 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4304', + 'properties': { + 'name': '衡阳市', + 'cp': [ + 112.4121, + 26.7902 + ], + 'childNum': 9 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@lšV@XV@„mXVlXL„W‚X@l@bVxn@šŽšUVkn@VJ@I@alU„JXIVm@»‚LXllIXVVU@Kl@VnXKlb@lVbXIVVUšmVVU`@nbl@@lXLVVVKVbnXWJ@VXbWxXb„Ul™VK„¦nLVVUVVbšb„K@U˜LnK@Un@VxlUV`UnnL@VVL@JV@VUnxnKVbV@@VšIVUnJUVUl@nW„XllIUa„KVbÞLV¼²`V@VIUwlaVmXa@IWanK@U@m„kVƒVUVaX@lšnaVLÈ@‚¥@kkJUWJUaƒXkaUm‚wVXJ@_lWUU@¥n_‚KkamUK„™@amKƒnKƒbV£¯W@k„aWan@@UnwlJ@a@—@UUU@W‚wn@Va@km@UanaWa—UVƒUUVU@K@aƒKUI@wƒKUUVm¯LWUXƒ@mak@UK™LWbUKVUkUmVUKƒLkJ@nƒJ@I@mU_UK@VWkUJmUUL@WkI@V±VU°kzU@Wy@kUm@UWU@@nmKUnkJWIk`ƒIUlm™k@mUUkUb±yUX@VUV@bk@WlXL@nVlUl‚k@WI@ŽkLmš@VV@XVmnnVWbnVUblJXkVl‚XXlWXUJk@±™@nXVWVnL@xUVm@Vn@J—„WK@U™V™@UUVUVKUkkxULW`k¦m„@bkJm¦U@ƒmUX@`UImUU`ƒLVbUVUU@LUbmaU@mJU@U™UIƒKmxkLUl'], + 'encodeOffsets': [[ + 114222, + 27484 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4306', + 'properties': { + 'name': '岳阳市', + 'cp': [ + 113.2361, + 29.1357 + ], + 'childNum': 7 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@@wUklmUUmU@@UVm@wUaV_mmUKmwkIkJmUUnm@™™@UUƒbUKUƒmÛamm¯xVLkbÇƃUƒVUzkVUlƒUUKWLX¦W@ƒVUUUaƒKUbmLKm„@akU@aƒmVaUUVIVWkk@wkƒƒ@@xmLlmÅwmbVlXlÝIWVkK@kkVƒL@VWKU@Ublnaƒƒm@b@bšnW`@XUJk@UUWKƒk@UKƒnn‚@xmLUVm@kbVbV„nV@V„b‚@KnV„LWšXŽÆVĢ¦VblŽš„n„UJWz@ƙVóUVbkV™aÅx@¦lVUbVVknWKƒ„k@ƒwƒK™VU„Å„ƒl@zkb@`m_mJ@xX„mbVbœ@llV@n„@llbXL˜UXalUšl„alVnwnLVKlšVbX@@I„V@blJ@bVL@VVVUXȤ‚VnkVÑXmlbnš‚„VKkÑř@UmaVç@±XUlI„xlV„@VaX¯lUVVUšVJn—V@°°nŽ°„Vxĸł°¦šb²¦lJ@U@aUK@kUm@_m±VIXal@„Kl@„bV@K„K@k„m@UmUUaƒK@_UJƒaXU˜@Xmš_VmUk@WUk›@kU@a@m@UƒaUUU@al@ny‚XXWWwkly@¯n@@bnV@k@mVI‚„œVlUUmlU„JUw„I‚bXƒVaUal@K„b@ƒVKVkXVl@VkUU@ylUœVVaVL'], + 'encodeOffsets': [[ + 116888, + 29526 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4309', + 'properties': { + 'name': '益阳市', + 'cp': [ + 111.731, + 28.3832 + ], + 'childNum': 5 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@„ŽÆxXL@l‚V„@ĢšVI‚bXKl@nVV@„XVŽ„JlbXalX„W„LVKš„„UVLl@VV„@ôބ@@Wn@lLlK@wnIVJX@VX@lVVUL‚VnkVVnKValUXblKnXl`UbVLÈU@W@IšKV@@bUV@Lš@lƒXV‚@VXXblWnLVblb@JnL„VUn@llb@„ƒx@ÞUV@nU`VÔmlX„mbUKUVUV@LVVUn˜ŽUb@°UXš@U‚VzVxnlVškšVnlVnaWƒ@wnIn`@_la@y„kƃVƒšU„L„xl@„ƒXLlmUUVakU@¥ÆwšblUUaôVšU@ÅXyVImƒ™ƒkUaġ¥ÅUWX™ƒKmU@Lƒa@UmUUƒUalan@VUnK@wm„m‚L@V„lXLVVl@VI@WX_™m@a™¯mKUkwW¥UK@_UWWLUVkUWL@WUIkVƒU@JƒwkLUUmJVI@WkXm@VmkKUIU@mmm_@VUV™@™„kJċwUU@KUWkkW@IWW@km@klwkWVkkU™V¯m@kWLU`mIkmkXm@@`@L@xUKWkU@VL@JUU@mbUKVa¯WVnL@`lXUVkU@xW@UbUWVU@UJ@„lnU@m‚nÈmVƒa@bUL™wUb™@@VkxmUUƒ™UV›K@IƒUƒmk@akm@wmIƒŽkK@b™VWXkm@wULUmm@UVW@Ub„mbkKƒVn„U@Wl„xV„U@UXmWUXmlnbUl¯Lmn'], + 'encodeOffsets': [[ + 113378, + 28981 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4301', + 'properties': { + 'name': '长沙市', + 'cp': [ + 113.0823, + 28.2568 + ], + 'childNum': 5 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@lVUllXkx@lln@‚XX@JlXXl‚V@LVVČxlIšƒš@VU@Un`nnV@VJlLUnn@lW@XUJnIVVlK„x@I„VlUVJ@XXKlVVUXKVX@`VLX¦lxVŽnLš°‚an@„„‚bkmVaV@XL@U„KlU@llLXUÞJWkUknaÆxnŽ‚knK@w„@l„@xllUXUJVVUb„n@blV@bnƒ‚LnKVa„LVbVV„UX@W¥XKVL„VVklUVy„U„VÈÅlaUK°wnnÜbn‚V„VL„aVVš@šn@VmnVlIlJna„@Valkn@na@amwm@„UXw˜K@aUUVUUaVa—wWK@kU@UaW@kKUUƒƒ@k™W¯XWan@k„™mmÅ@@I@U@KmLkaVUƒKkLWVUƒk@UVmU@am@kkk¥ƒUƒVUK™„maUb@ŽUb™I@aƒKkkWm@W¯K¯b@VmaULVxUXlVk@UxVJVbUb@xULƒ@ULWW—LƒĕmxVVL@šVb™KUwƒaŲWwX@@WƒUWLU@VbkV@aU@@VUnmJ@VUn@VƒLUK@U‚mUIk@UÇmU@@UW@J@LƒbUmVI@aUmW@@bkXUx@lmLUbm@UbkJ@V@XmlUbkKm@ma@kUaVU@aUK@mImJUIkVƒUƒVUakbWwka@UWKkLUamKUXm`Å_U˜ƒULmaU@@lUV@X'], + 'encodeOffsets': [[ + 114582, + 28694 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4302', + 'properties': { + 'name': '株洲市', + 'cp': [ + 113.5327, + 27.0319 + ], + 'childNum': 6 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@X‚‚Unw„Ė˜KXXVK„@VK@wVaUaUIVwl@kUVWUwVKnb@U°a°LXŽ‚@Xnll„L@bšJVa@VanbšƒVL„U„V@al@@UV¯ÅÇ@Ummk™w@¯ƒyVwnUVVVUkmWV—nKVUƒa@WXkVKn@lUVU„VVVXIlV°VnI@VlKnV@mwVm@LXKWkU¥wWwƒƒ@k@m„X@KX¯V@VUVa@VnKWkœƒV@VUkm@aWa@wkUWwkmV£VÿXUVL@mVIXaò@nW@ašUš@@am™@aUU„UmXmWUk@ƒƒnUW@_maVm™wUkamaUL@aƒwƒW@akI@UƒxUm@kmKUk™lUŽ@b„zV˜m¯xUVU@ƒXVxm`kÈlxXVW„@¦kVUn@xƒxƒKUwÅKVXUJWnXŽmVUxWL„¦XŽm„mK—bmUUwW@UV@šk@ƒšVLnŽlbLm`@¦VVkX@`WIUŽxVnlb„WVbXIV‚lI@l¦Ç@UKmbk™W@UbUVU„ƒl@n@VmLXb@JWbUnkbVxUJUxWXXlWL@V@V@XXJWx„zUVVVVKnXW`@bkIUl‚„nLVJUbUIWVXlWV@XklVbnn@xlš'], + 'encodeOffsets': [[ + 115774, + 28587 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4308', + 'properties': { + 'name': '张家界市', + 'cp': [ + 110.5115, + 29.328 + ], + 'childNum': 3 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@@InWVw°wš„@š@šblUœKlUlV„U„@VUUUlW@aöUlUlLÞ@@aVKXwlK@UX@@UlwkƒVkUm@m›@ÅVƒ@akwVaUk›UUlUL¯wƒƒ@UUmƒ@UkƒKƒlw±UULVn@l_XyWwÅ@VUUmJUXU@@mmƒU@kxW@UaUIWbU@@mU@UxƒnUbmKk„WJkUValƒ@aUkUxƒlW_@WUIU@ƒbkKWUJVnUb™bWb„lU@nl›„@XnVmV@n—mWV@LXl@X›JXVmzkJUXmƒ™KULm°Vb@xnVmnUšk@ƒƒ™VƒnnlUb@nm¼m@Ûǃ„Vl@X˜mnm„²ŽmL@x™K@LUl@nULÆx@V@VXVWbXX˜l„@nLlm@bVKœX‚W„L°bnUš@VaVUš@šmšVw„JnwVK°zn@V‚Vb„a„@Ċ¼'], + 'encodeOffsets': [[ + 113288, + 30471 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4313', + 'properties': { + 'name': '娄底市', + 'cp': [ + 111.6431, + 27.7185 + ], + 'childNum': 5 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@lL„nJ@xln@bnlV„‚„@JœLVUšŽV„nVlw@Uš@VašxVK@a„bnUmÇnV@km@ƒ‚I@VUVVXVaX@@wlVVUkW@_mKXU°‚UbVLnaV@‚V@IUKV@XlVL@w@K@_n@lWlnnJV_XK@l°nšU@WVU@kV@nbVK„V—lƒ@nLlƒ„LXU@ƒlmkw@nW@UKVa¯IVn@@aVUUKl@nXVKVn²a˜ŽXblKnLlmVI@KUU@akLUaVa‚UXm@aƒ@wVUVKnLnWlXl‚n@@U@anUVm@U‚Inm@IUK@UmKVmU_kVUwm@@VmL—K@VƒL™aUaVUUUmKƒ¥ULkšƒVWaXwWa@UXImWUaULUUWKk@WnXbWŽVWnk@UV@bU@@bƒJ@bƒV@XkŽmb™UU`VbkaWzƒ@klU@ƒb@VƒwUL@bV@U`ULVL@VUK@Xm@XWWIUbUxm@@lkkÇwƒVÛÇW@¯Å™UJ@xƒI™xƒ@@VULmKUnUxmKULUUm@@‚ULƒU™JkIWJ@b@LJUW„kJWnUV@nn˜Ü_nJšxU@VbšnUxlškb@lš@'], + 'encodeOffsets': [[ + 113682, + 28699 + ]] + } + }, + { + 'type': 'Feature', + 'id': '4303', + 'properties': { + 'name': '湘潭市', + 'cp': [ + 112.5439, + 27.7075 + ], + 'childNum': 4 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@Æ`n_VWnLVblKXL@VlbXxlaVb„U„VlUVJnInJ‚@VL@bUVVb@lnbn@lLVank@W@UlIVan@VanK@kVwlW@aX@Vn@bUJVn„a@K‚IX@@VV@nŽVÈl@VJn@VVL„K@UVm@UnIVm@UV@@blUUaV@XK„V@XW@XxƱ„bVxšLUa@™UKWk™@wmmUalk@WXUWkXUVJVaUImKƒVklJ@aX_mWULUUVUƒyXwWI@W@U@UXKWkXWVwU@±_U»ÝKUaƒLVbkJkƒWmXk@UVVŽmIUV™J@UU@UamLmwUVU@mnJ@VUnmV@b@Vm@kkWmXmKULUV@x„Ž@bWnVUbVblK@bVV@LUJknmKkLWa—±bUmULmWk@VLUV@bm@U°JUbVLX@@mlxkn@„WVƒKk„mK@k„'], + 'encodeOffsets': [[ + 114683, + 28576 + ]] + } + } + ], + 'UTF8Encoding': true + }; +});define('echarts/util/mapData/geoJson/jiang_su_geo', [], function () { + return { + 'type': 'FeatureCollection', + 'features': [ + { + 'type': 'Feature', + 'id': '3209', + 'properties': { + 'name': '盐城市', + 'cp': [ + 120.2234, + 33.5577 + ], + 'childNum': 8 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@„n@‚°ĀÞ°@¦ULWKkx@bkLWb@lUlVXXJVbƒnUKmxXV@bm@@Xš‚„LޚܦXlVnš‚mzVJ@n@‚²ÞôkƃÞaȰĉ‚wnljÜó„éVÛnĊīČlj‚ĉ@ō@KÞUlU@ƒkklÇÈњÑlġXɛ@UġƒƒaU@U_ƒW@n™@kaUL@VW@kKmkUV@bkbWW@bkzma@ƒJWI@KUKULƒ@U¦™`@XUJ™U@KmXƒw¯KXkmy@aUIWJXXmV@K¯UU@@bVL@¤VLXbV@@JVXVK@„„JVn@bkKmakVVXUVVVlI@`U@nzVVƒb@¤n@@UlKXLVVšI@V@nV@V‚@ÈUx@šóVōšƒkÅWó@mU@bk@Ýwk@WbXxm@@J@zV@kVƒbV‚nLWVUX™WUXUŽWLUŽ@Wl°z@VkxU@UVWIxWJkbƒĬ„nW@@bUl'], + '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': { + 'name': '南京市', + 'cp': [ + 118.8062, + 31.9208 + ], + 'childNum': 3 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@k@ma@kUUVmVIUWVUUaVa@Ѳk°Jôk@Wmk¯KmX¯aUakKƒƒWU„@XU‚LXaV@@mUaVUUl@VmkaUXm@ƒWUUna°IlmV™m™IUW‚@Uk@@aV@VVX@„V‚I°»nm„U@VKVan@m»UaU@U_@WlIUa™aVaUala@¯n@‚ƒkaUkUUWKU@mwkUUmmL@K@ƒLmUUVƒKƒVÅImU—JƒƒVkVVLšèVLVU@W„L„V„š@nVÜULVŽUL@bW@XbWbkJƒUUVUxVXmVk@WUUkVmIƒV@„nbnVWbƒJU„kUULƒa@Jma@XkK@VVL@L@JƒLUVU@V¼ƒnXlƒbm@kbUKmn@lVb@VXXV‚UV@b@LVbÆxXbl@@lV@U„VV@XVK²VlIš`„UbVbUlVVn@WXn@@VUV@„@KmbVLXқLkKƒV@nX@VVUV@b™nVllbšmnb„IWVXU@`lLlknVnmlLlbUmVInK°nUƒU@l@VU@Vn@„ƒ@alI„`VIXaVaVa'], + 'encodeOffsets': [[ + 121928, + 33244 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3212', + 'properties': { + 'name': '泰州市', + 'cp': [ + 120.0586, + 32.5525 + ], + 'childNum': 5 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@lUU@@y@In@WwXal@Þxl@@anVô@ÆX„lŎ™ôU@™Vw@ÇUU@@m@U™JUUWKkL@Vm@@£„aUUmyV@@_kJUUVUUWlUnblL@aUmƒI@ƒULUW@IU@WaUK@£UK@aV@°V@LnUWWXIla„VV™@£UWlkXĕVLVWšb@kUalwUKU¯lU@mk£VôKȁVK@w„KVaUkķlUI±™ğ¥ÝUŹš™Ž¯ôm¦ƒĸ™‚@XXK@VVXUJ@nlbUx@blJkšmIUV@ÆnL@VmL@b@b@V@J@bnb‚U@UšJk¦mL@VVJkXk„ll@bƒ@@lƒXXVWlXnml@nÅU@ŽmbUVlVUXn`mb@zU@V‚VWX@¤š¦V@Xb'], + 'encodeOffsets': [[ + 122592, + 34015 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3202', + 'properties': { + 'name': '无锡市', + 'cp': [ + 120.3442, + 31.5527 + ], + 'childNum': 3 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@nLƒÒlxUVkL™am@™ƒkVWUULUxVVVbUV@bVLU‚nnź™ÞVĠ¦X™VUUaôw@KlUVw„WUwVa„@lUXƒWa@_X@WmkI@a@W„I@w@KmKUUk@@aVUšVVÅmJ_@W@a@I±wÛ@ƑÇkw±ƒ¯£mWĉUóçƒK¯VkUWK@XkV¯UWabƒmUa™UUb™lln@b@xƒbXŽWX`@„VxUblL@bn@Vb@`m@XbWnn@l¤„n@xnVlU„™VLÆWœkV@VbÞJ‚_nƒl@nKVU@aU™U@mVk°WVLUV¯bVXŽ˜bXlVn@VmL@x—V@bl„š‚@œnW@X@VVJ@²VJVU'], + 'encodeOffsets': [[ + 123064, + 32513 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3204', + 'properties': { + 'name': '常州市', + 'cp': [ + 119.4543, + 31.5582 + ], + 'childNum': 3 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@„L˜ŽnxUbVVƒL@xnnW‚nn@VVXn@‚yœImx„„°ƒšL„a‚¥n@VkšKVw„W@nX„VJ@b‚@UVn„ƒ@UnUV@L‚b@`VLklVÞn„Æ@VaXLl™ÈJšmmVUK@aVUUaUUVwVKXVlUš„n@šblKVUkw„ÑmKUVUI@±UI@U@WmX@›™kƒ@a˜U@wnK@UUmWk—aWU°aVUUK¯XUl@nVŽVš@bUVmLk@m„`ÝIUaU@›lÅXUKƒškVmU@wƒmk£m@XmWan@@_Uam@@akKVaUw@ƒW_XW„a@w@akmm@mL@UJmnUKƒ@@XnJWLkKUb@„Vxk„WƒL—aWVUImVULUK@L@lkLVVVllb„m@@°kbVbUbšbVbkJ@XV`V@Vbn¼'], + 'encodeOffsets': [[ + 122097, + 32389 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3211', + 'properties': { + 'name': '镇江市', + 'cp': [ + 119.4763, + 31.9702 + ], + 'childNum': 4 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@šVĊKšn„VÆUn„„J@UWKXkVLlKVwX„šVlbVK„„nJÆaš„ķn¥°óÇIkšWKUbÅ@mƒUÝlkUK@_a@KVUVm„@mƒVU@@aUIWƒ@mƒXUx™LUlm@¦ƒb™K¯„ƒƒnw›Jzm@UW@UmmXmm@w„KUUVamw—ƒKm@UbUL@ŽƒVmn¯¼JƒUW@UUU@@bl@@VŽVXšJšnnU‚‚k¯JmbVV„Xn@VWlbUnk@VVUŽVb@nU@WbKWVƒ@XV„„lLVb°bnW°Lnl@X'], + 'encodeOffsets': [[ + 122097, + 32997 + ]] + } + } + ], + 'UTF8Encoding': true + }; +});define('echarts/util/mapData/geoJson/jiang_xi_geo', [], function () { + return { + 'type': 'FeatureCollection', + 'features': [ + { + 'type': 'Feature', + 'id': '3607', + 'properties': { + 'name': '赣州市', + 'cp': [ + 115.2795, + 25.8124 + ], + 'childNum': 18 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@„`l@Èbln„@„KVLl@„V@bȎlnšKXkVlVL@„lJnb„¦VKVVnX„W@w°@VU„mln„UV`šU„bVUV@„xnKVI°KXKVkVL@al@Xa„LVlULWV™VVL@b„x@VXVmb@x@V™VV@nn¤„šlb°b°KXXWbX`lbXx‚z@x„`VIVUnK„L‚x„WXLVKVbVLVU@wnW°b„@nalX„‚mXVJn@U²mKkVl„U@@xlnœaVmlKnœ@JVLlŽnVššl@XXÆèVlUX@xVLXVšb°W@wnUWmXk@K‚LVwUmUkUKUw@wVaVK@kƒ@WnkUKWkwlmXL@KVUlLVKXmWU„L@ašL@malaVk@aa‚ašƒnXš@VVUblb„Jn˜ƒXa„V‚wn£„K@UWmUk@ƒUaWIV@b™JW@KmmU@aUUUkmKkVKlUU™nKVU„lVaV£Å¥WUUK@UkUUw@m@mIkƒƒUUWƒLƒK¯Uw°¯@wUKUbƒKmƒ@kkKUL@UUKV¥U@manw@k@U@Wm@@U@Wwkm„wWaUU@UUmV¯kwƒ@@kmƒkKkUW@UK@ÅV@XWWkXa@Ul@Va@KVaUUU@ƒaXwla@UkVWaXk@K@lmkUmV@Vmbk@ƒ»XIƒ¥VUkƒVUVU@anKVUƒKUalU@wX@˜™@a@K—@ÝwƒL@ŽUnÇlUIkJmn@ŽƒbVVb@VmnkLƒV¯U@ƒ±l—IWmƒ@kaUI@aÇU@K@KUIkbWbƒJUIUyƒX¯ƒUbU@méUUmUk„WK—xWIkJm@V¥U_UJUwmVkšƒUU@ƒƒƒ@knƒwm@UmkWJkL@n@VW@@‚U@knm@kUml@xÅxƒ@@XUJlb„@VX„JVxn@lbV„@lULnV@VlnV@bWV@bXL@lVLVb„V@blLn@Vl„K@xln@bX@lašLVbnKUVVb„KlXVVkxƒV@nnVUb‚lV@@z—°WWkbƒIk‚WL@LUJ@bUI@b™`@UmI@mkK¯XW™™mUV¯@UUVUUam@@VULWUJƒIm`IUJ›KUkW@Uxn‚WbnnmlXbmIUVmV@Vnb@V™LUKWLnÒVVV@V„UL@„kJUV@bƒÈ@ŽšV°šŽ@XVV@l@xUz'], + 'encodeOffsets': [[ + 116753, + 26596 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3608', + 'properties': { + 'name': '吉安市', + 'cp': [ + 114.884, + 26.9659 + ], + 'childNum': 12 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@lxnb@V@bV@ln@‚n„‚lInš@blVXK‚nk¼@VUKWL@b™L@`UXU`ƒ@V¦XLĠ@lJ„¦@„nV@l°nn@‚mVXnaš@nb‚K„n@l„IVƒš@VanJ@_lKVVnš„L@L‚K@Vn@VbšUVanKlLnbnJVbšnWVnVVanI@‚Vb@L„bVKVanXVbVJVU@aXLll„bôlƼXxVLVK@Xn@ƒxnVVVmb@LnVVKVXV@@mnaVXUVnV˜K@_UaUmšwnKV_‚anKVLš»„K@¯ÝU@›™U@kWlUn™lknK‚VnaUkma@ƒUIUwl»Åw@ƒVwV@n™‚n@ÈXlKVmna@kVw@anm‚@n_WWk@™™mUkUK@Im›kLUn›bkm@wV@kƒlUnLV±m@UInWƒkWmbƒ@¯amX@xUVUKUaULWKƒXwƒKmLUVUJƒ_@wyWwkaW_XaWW¯L¯akaƒ™m£@mUUš@U@wnaWU@Uƒw@aUKšUXUVKUkƒKWbk@@bUKUlWL¯LUJmLƒwU@UVƒa™VU_ƒVkmƒnUV¯@@xƒXmWUUULƒ¥makI@ƒUKUkWl™LkmǍ@aƒUk@UKƒLƒ@kmÇak@ƒ_VlkL@`lbnšlLVanLnbmVÆln@škJlbknmKUbÝmmwULUK@bkLWKULUUma@Kk@UV@L@llbVzšxUxnl@bVLmŽšŽ@IVJXœVlƒLV`@bn²@J™@™V@Xmbñ@WbUJ@bm@@LUĬU‚„¦lV@xXb@blnUV'], + 'encodeOffsets': [[ + 116652, + 27608 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3611', + 'properties': { + 'name': '上饶市', + 'cp': [ + 117.8613, + 28.7292 + ], + 'childNum': 12 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@„„@„V‚š„„I°`nm¤²@bVJUVVXUl@Vmb@xV@XbmVVœ@lkLmbn`VbnU‚@Va„UnbVllUXV„a@w°VW@_VWšLššnVlbšLVbnl„KšnVK@IUW@_@am@™‚ÑUólK@U@WU@VwU@UI@aUU‚aXƒƒ@kwmJV@yX@k‚anƒƒ@mkwVmmI@aUU@aUUW@kVkV@@anKš»„XVWnIVUl`@_„W@wlUœV@UWKnU‚bnŽ°InJl„UV@VnI‚b„Wn@VklL@l@Vn²m@U`kI@bWJƒnV@°VXnJm„XVmx@VVL@bkLmWULUmU@ƒbWXb@llnX@‚xkxVV„nVV@¤nL‚nVxnJVXX@˜ššbn`VI„b„@„blmlLnaV@„blWXnlUnbl@„ƒšKVanUVmm_XK@kWWnašU@UnaWUXa›ƒXamUkKmXUWƒLX¯WakKm™nUWwXa@KW_„aXWW_@WnIVl@XU‚LnWVknK@ImyUUÆbXK„Û@W@IÆUnƒVÝlkVK@mUIVwkUVaUm@aVIVyXIƒaÈwmmk@UnanVUmÅaó»lwšW@kkUVmUK@WKLƒUmWULkamK™Lk@Wa@wk@UU@U@mbUIWVKUXWmkUmVm›U@LkakKƒw@w@U™¯ƒ‚ƒUUn¯l@bmn@xkJWxkL@VkI@mƒkmJUI@V@b@VVxnbWlkÈkVƒLƒbkKmVƒL@V@²nxW‚kLUL@xlKVx„bXmVnšWJ@ޙ°@n™xUKUw±`UImVmnU@kalm@akwƒU@UUJmxU@@Uƒ@kU@Um@@Kn™ƒVm@k™KmkU@@WUnkLWxkVUwmKmLkU™bmKUbVŽ@xUnkJ@n±ŽšUxVXUšWJ@LUb™lUnm@ƒW@nknUJUVm@kXllknVbÆK„VVbš¼V„@šUl'], + 'encodeOffsets': [[ + 119194, + 29751 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3604', + 'properties': { + 'name': '九江市', + 'cp': [ + 115.4224, + 29.3774 + ], + 'childNum': 12 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@WUkVUkmaƒVUb@mVUam_nalK@kU›nUWaU@@wna@UVkUWVUUI@a‚±n£m¯_ƒJ™ƒU@ƒƒƒĉ¦Ul@UV™Km™mLlm@ğ¹m`Uk¯@@UVK¯™@UUK@amkmKkVVUa@UkUƒKƒŽUa™L@VVXUJ™@ƒnƒ@™š™WUbƒnVb¯V@LÅlÝIƒJÅkݙm@Ua™WUU@UmUXmmwVUUKWUX±mUam@kWƒzUaVmÇw@aÅLmKXƒ‚UWKkL@W¯IƒwVw™lkUƒJ@Um@ÛÈWŽKUxWkƒaUU@KkLVl@„UKUX±KUb@nVVUbUVmaUlUL@„ƒaUL@‚@nUlWzX`@„V@lx²„@Vlb@bšVÞ@°nl@UxVL@lUbVV@n²xVUVmnUÞb‚a„J@IšV°xnbl@nbÆ@VwnK@VnXlK°xnUlVX„V@Vl@L@lk@W_XK@KƒkWxUL@J„nVx@aX@VVUa˜IXlmL@bVVX@VbnK‚a²XVWƒk°a„@UnV¤nbmLmW@XbmJUbVL„aÞK„L@K@U@aVKlbV@nXlJœxV@VnšŽVȚ„ÞKôbźĕČmV@ĊšŽ²xÆIšV@Þ¦ĸ¼ÞVlŽVÞnxln°Jœk‚LXWVUVUVwnJVI@yn@lXlaXmWI@w—»ma@UmK@akKkXmW@_kaWakKWk@@K@IšWƒkUa„ƒ'], + 'encodeOffsets': [[ + 119487, + 30319 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3610', + 'properties': { + 'name': '抚州市', + 'cp': [ + 116.4441, + 27.4933 + ], + 'childNum': 11 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@°V°UnÜ@n@lnLlV@bšV°L„lnLllVzVVXlV„V@@L@xX@WlX„m@UVƒL@V@n„°škVmVUnKlaXxVbšnlU@lVVnaVI@aX@V„šJš@V„@b„b@šVbš‚@X@lUL@Ž@VlIVm@wUVanLšalVnKnLVxlUXwlKVm@k@Una@mWIXKWUÛVƒk@a@UVWn@@kl@@W„XlW@_Um@UVK@a„LnalInWV@@xnI@¥‚K„—šm@kKmƒnk@mlI„¤laXbVblknV@U‚KXVlUXa‚@@Unw@±mU@ak_±a@ƒUJUIƒVKW_Xa@aWU™šK@mmUVa@IXa@UWmšannlmX¯WKXwVUVwƒ@XUlK@klJXa@kƒkmm@Uwƒw@¯ƒW¯kw@WmbULƒaUUU@mVUU™WmkUb™KmkkK@aƒkUƒ¯¥Uƒl—ƒm@akU@mš@KVIVV@KUkUVUkaƒUWb—„mƒIkaVaUU™@mW™„b‚b@bUlkb‚b@n™K@bƒKXVWnULkKUV@LWKknlxXŽVLml@X„Ž@lULUb@xVxVLVlVnUxK@LWlXnmV@x¯X™aWUUK@wVWUkÅçm`@mn@bUx@lmbUnkLÇWm@mšU@Ux@„Æxk¼VxVJ@„nbVlmbUmLklmškVlX@‚VœšV@°Þ'], + 'encodeOffsets': [[ + 118508, + 28396 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3609', + 'properties': { + 'name': '宜春市', + 'cp': [ + 115.0159, + 28.3228 + ], + 'childNum': 10 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@@VlbnK@b@JšLlUnx±ĀXxÆW„X@lš@V„@@blJ@nX@˜xUbVVUbVV@b—VmnmJœ„@bmbm@klUbƒLmbœš@lVb@xUX@bVVVbV¤@LVV„bXlVw‚LXÜÇn@@V„IlVškUx„x°J@XlKXLV„‚WnLÆK@bÈxUnVb„ylXn@Vbn‚W²XV‚LVVUŽnxWnnV@VVVšXVbn@ޚÆl„IÞJÆk@K°UUa„mVa@UUUš»@wV@VƒkkUKUVW£U@UmW@@aXkVUnVlKVV„UUkVmU™@kWaUanU„VVamIX¥W@@aUaUVW@_mW@UnIVVn@VbVm@bVL@anKVUkƒWK„UXV‚Ikx‚@na„bVK„b@nVJ„_V›@Vw„‚VUVVXUlUUaV@X@VblašbnKlkVaXaƒ¯@m@U„KVUn@WƒXkW@@w@KU@UƒWkUUUykkmKƒk¯K™U@akUmK@k@mmÛ¯V¯U@‚ƒL™¼UKmLbU`mL™xVnVb@`—LmUVUUWmb@nU@UWULmU@KnaUUmU„wmJ¯IUJWIkVkaWVUIUlWaUIUVkKmbUIƒÒlVUnnŽ@VlLUJ@bUX¯@ƒaWVUKUXƒKUbm@UwKWa@a@VkUWn™@Uak@mbX„WJXbm@mL—aWVk@™wƒL@WmanU@knwWmkaWL—KWUXaƒU@¥l„UVVVbnwƒ¥nKV™»@aUk@a@UƒJ@kƒmLma™@mbUWnm@ULǺ@LXnmxUŽm@UbkbW@@akLmWk@UXmJmUkV@VUXVlULmKUxkL@lmXnJ@X‚l°Vnb@bU@WbKUX@VmKUX'], + 'encodeOffsets': [[ + 116652, + 28666 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3601', + 'properties': { + 'name': '南昌市', + 'cp': [ + 116.0046, + 28.6633 + ], + 'childNum': 6 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@šXš™„@„mš@VIUW@UšKVb„„LlV@VVbUŽlUnLnl@bVL@V°šUL@V°@Vln_Ġºn@‚knKnššLVU@VkĊ¥Vk@™Uƒ™»UaƒUÅLUalmkklWn@VUVIlm@m„Xn@VmškVa@KXIV™UWVw‚™²@m@U@VK@k@W™Ua@™ƒa@aUƒ™@™IUƒW@@bUJmbUU@kkV™mUaWwkbmLUVUn™lWbUbklmL™akbUaW@U@VbkVWVUUUVƒUx@‚Uœƒ`UI@mƒaULƒamb@lwJWUƒVXLl„UVmL@bUK@aUnUam@UUmJ@VnX@`UXVŽVb@bX@W¦nJUbƒUmVVbXb@lVšUnVlƒVUUkLmUUVWl@bX@VnV@X¤VUVLllU„U@@x™¼VV@V'], + 'encodeOffsets': [[ + 118249, + 29700 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3602', + 'properties': { + 'name': '景德镇市', + 'cp': [ + 117.334, + 29.3225 + ], + 'childNum': 3 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@VVX@Vbmz„xUlU@mbmL@V²xVbUVVblbX@šVškVykValKVI@bn@n`lVWnX@l„L@™WKnƒVIVa@¯nK@alIXJVIVWUw‚ƒn@nU˜„nK@alI@a@anKm_™a—™W@UWmIUwmmK@£UUƒmUUlwwW@km@kWaX„aV@VnVKnXlK@aUK@UnwWUnƒmIUW@¯mU„XI@alJV_n@m±@U@kkKUlm@ƒXamJ@UVUkƒmI¯JmamVXL@V›UkV@xƒX@`k_UVmJUXƒW™¼mL@bU@UllX@VV@bVV@bnJUnlx@n„Žm„b@lWŽ@zU‚nIlx„@W„bVV@bVJV@UxV@@X@VkLVôÒ‚šn@@b@`VX@J'], + 'encodeOffsets': [[ + 119903, + 30409 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3603', + 'properties': { + 'name': '萍乡市', + 'cp': [ + 113.9282, + 27.4823 + ], + 'childNum': 4 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@VWnL@UVW‚LXaV@@ama¯Uk@WmInW@klKVwnLVKUkVW@UlUnVnIVWl@nXlK@bX@laVan@VnwWm@KȹVK¯m@kmU@ƒƒ¥kIğ@WKU¥„@V_VW@_šK@aXKVL@Ul»mWLkU@am™kJƒm@kmU@@a@UmakwU@›„Xlƒ@VXk`UIW¼kWWX@‚œ@l‚xV¦XlW@Ubn„@ŽmUkL@UmJ¯UkUWVUaƒUlm@UXWl„nUJ@LmLU˜nXll@bUVUUmVUn„Ž@¦šxlŽnn@VÆÈU°kbV„VxllnL@VnVVUl@V„„anL'], + 'encodeOffsets': [[ + 116652, + 28666 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3606', + 'properties': { + 'name': '鹰潭市', + 'cp': [ + 117.0813, + 28.2349 + ], + 'childNum': 3 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@@XV@nlšL@lUnš„mŽ@Ln@@VlV„@@VV@nwVI@V„Vlx@bknlbV@nmnUVJ‚_²‚VxVLšw@mš¯@ÝXIm™nUWƒaUwkL@wVKlKXmw@±@U„KnUlL„a„KlUlÇXkmaUw@U@a@Uƒ™UkwUJ@zWJ™w@WbkVWUL@VmUklUaWakbƒ£kJ@nmln„lL@Ž™nƒ˜L@¦mJ@wU@mXkJmbƒK@bUL@VVn@`kXƒW@Xk@@lm@UX@V@b„lÜUXVWLXJ@nmb@V@l'], + 'encodeOffsets': [[ + 119599, + 29025 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3605', + 'properties': { + 'name': '新余市', + 'cp': [ + 114.95, + 27.8174 + ], + 'childNum': 2 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@m@@WULUKWwÅ»ókƒakkWK@bUVUIUamWUbULƒa@KUa@mJUbmUXU™mUamImakKmLUb™VUam@@UL@KƒKm™UUkL@`mIUb™@U„@V@bVl@bš¼UŽmL„¦mxUaUUƒVkŽ@¦„VWbXV˜LXKlbXnmx@lmVnb@X„Kšxl@XU˜bnKn@WaXIWƒnal@Vbš@XmlV@U@bXb‚LVxn@Va„LVWVLXU„b°@VW@aVIkK@UmVmkU„ÑVJnalLVUVJXbVkVJXUlblUXJVI°JnI'], + 'encodeOffsets': [[ + 118182, + 28542 + ]] + } + } + ], + 'UTF8Encoding': true + }; +});define('echarts/util/mapData/geoJson/ji_lin_geo', [], function () { + return { + 'type': 'FeatureCollection', + 'features': [ + { + 'type': 'Feature', + 'id': '2224', + 'properties': { + 'name': '延边朝鲜族自治州', + 'cp': [ + 129.397, + 43.2587 + ], + 'childNum': 8 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@Wxĵ„mš@„ó¤VX@@xܼƨš²xWxƒV„V@„XVƒ„„„ƒbWšXllaÞU°Ċ„@ô¼„LôÝWanV¥ƒÑnĉ°¥šÅX¥°¯@w°w@»°k£°mÈŹ‚mÈbƃŎ¦„K°z@Žkxl¦UbU¤šššklV„KŤÞȰ@@bšV@nVVUlÞ¦lUllœVlU°ÑU¯Vƒ°w„bXxl@VŽ²„˜@n„ô¼ƒó°™kmVk²ĕ‚w@wV™ÞÞ@@Ġƒö»˜¯œ@‚„šbnb°mÞ¯°V°„ÈJmX¥mam™UřƒUƒlaU¯™ƒ@w™Kk—l±n@@wƒkÝVUUl±¯I¯b™a™lƒ@™kLmakbƒ@ġƒŹé°™Þb°šékƒƒLm™„wX™‚aÅb@bVlƒbVb—ÒVbUb›UUanwƒakbVŽUV›ak„¯„UŽƒLmxV°UxnôŻX@J„Xkl‚bkbĉaƒbƒWU„ƒ@ƒk„WUU¯@@klmƒ@@™Å@aƒwWXlKkI@WbUaVIUanUƒƒ@ĕƒ¯K™„mUnWUwm@£ċèkUmbUmm@@nkJUalwk@@nmWUan_óaWmnw±KœIƒwl@UmƒI@an@@mlUÅmV_™KUkƒ@U`@_ƒKUmU™@U¯™mmb¯@kb™ImV¯ƒƒLkbƒKƒƒÛ@ÇnɱJóaÝĢkb@„›x—ÒÇllœ@‚Ž²V‚„ÆUVV„UÇ°X„óxlV¯„lV@bƒV@n—x›@—¤@„șŎnxV¼knšJ‚nšKX°˜¦UlnVbUbÆVnÞWVX¦llšb@l°œVJôÒnLVbšbXŽ'], + 'encodeOffsets': [[ + 131086, + 44798 + ]] + } + }, + { + 'type': 'Feature', + 'id': '2202', + 'properties': { + 'name': '吉林市', + 'cp': [ + 126.8372, + 43.6047 + ], + 'childNum': 6 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ôl‚zšaÈV°„šK@„mŽ—LWl™nšVxUV‚È@ŽÝĬUÈn‚ôLša‚„²VmĀkV@„ĠĊnU@b„V@b˜@nl°UVnÞaôJ@bš™V„¦mlkššbmVXx¯@Vxm„nbƒ„šbÈK‚V@bÈL„wĠyônšmnbÜ@nn„V˜x@n²K‚„„J@k„al@nxÞU„Lź±Vwkw¯LWWUš™kŎīVwƒw„°y„Vĕ°wÈVlkÛ»@wW@Uô£@ƒn™ĶƒXwW™aUamKóÑUI¯›@k™akkW¥XUmÝÅUVaUa‚mVk—¥W¯™Lm™IlmU»mwȚō@ƒ˜£kJUÇk@am¯y¯UVwƒa@wġx¦ƒKƒƒ¯X°Ċ¯¦U°ċWULÅa±b¯@UkÅWmVƒ™ƒkIUlóŽċ¹™`óIƒlX„WŽXxmbUƒLݏƒbƧ@ƒx¯bƒÈ—l@xƒš¯zƒaݤ@nšm„VWb²bmn¯J¯Ò@n„š'], + 'encodeOffsets': [[ + 128701, + 44303 + ]] + } + }, + { + 'type': 'Feature', + 'id': '2208', + 'properties': { + 'name': '白城市', + 'cp': [ + 123.0029, + 45.2637 + ], + 'childNum': 5 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ó™ǩŁ@WlwUaƑwÛÅÇéĉamKƒōÇ@Iƒ™ôġVƒȁÑŹçƒ™ÝUƧċĉwóóÝ@Ƒ»ğL¯ll²@ƆÅV@¦m‚Åb@nmlU²VxšlUn™@VbnW„bÇbk҃š„n@èlnlšU҄Ž°Lšx@¼ĉb@҄šUŽċxՃènLVxƒÒƒbÅJ±a@_ÅJÅnƒŽVb„Kl„nUÜĊ@„Uš™xXVÆn„mšVššJÞ¯V™ĠwšƒXw°xWL„x„KV¦ôU„wVÝǬóÞޙ¼‚‚„ÞkŽVôȘxބU„lVn¦ÞšĊa°w„b°@šbÆw„lŤL²`„z°@V@@™nJVnl@@¥nUmmn„@mwnmmUnk@mlwUaƒLnƒ›wn¯°anƒWakI„ƒÇmXwÆamUXUlJXa‚UUklKUknmÞV@‚K@VWÞ@VkUwVƒ'], + 'encodeOffsets': [[ + 127350, + 46553 + ]] + } + }, + { + 'type': 'Feature', + 'id': '2207', + 'properties': { + 'name': '松原市', + 'cp': [ + 124.0906, + 44.7198 + ], + 'childNum': 5 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@„šźèȂÒU„óĢ„š@JŎȄ‚‚LnŽĊbÈêÜƃxVbkx@XǪłôš„kÞ`„šW„b@n°ašbšKšnVw°`š_X`W„š¦„ĊIkmVšakw‚K„x°UÞb„U@lšƒl@°¦œVW„šaÞbšxÞI@mVI@ƒVkŚUWK„¥nL‚a@ƒ„@ȍ„@°ƒÆ@nU@KÞalkUwVékUWw„™kU›VkkƒJk¯@»ókƒV¯ÆÇI@bĉô¯@™ķw¯nmmÅL¯wƒVƒUÞy@UówÇLkmm@@UóxkkĉmL¯wVwkWWX™mLõm@kűV_ƒƒô»ÛƒÆ¯@™Va™VšaĠVlmğwķUóÝƽ£ÇJkbǫaƽLW@nxݤkzƒy¯XɅm@VšôÇX¯Ė¯ºÝnUŽnLVlUÔmV'], + 'encodeOffsets': [[ + 126068, + 45580 + ]] + } + }, + { + 'type': 'Feature', + 'id': '2201', + 'properties': { + 'name': '长春市', + 'cp': [ + 125.8154, + 44.2584 + ], + 'childNum': 5 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@„U°xÆKnn°mĸxš°@Ċó@aÈJ°Å„Uôl@¼l°„IllœUlVƒšXxlVUêVxkllnÈUVll@Vx²IÞ¤VUlVnIôlރlwô_„›„bVaĶLXÅÞÇ@K˜¯@wÛaƒçn¥š¯WXyW¯XwƒUmmÛ@ma™nómğzƒxÇK@aUÇL™a„ƒmanƒUw°@WwnU™al™nkƒ¥šU™@aóIÝbUm¯Vmk—@@aƒU@amVğĉ@ƒlUnÿ±Uƒ™bóKmVÇÞī@ÇVUUw‚™šmXk˜Kn@ƒ™L¯ƒÇU™byókōè@b‚n@lÝX@x¯ô@ƙUV_maXm@aóƒJWxnX@ŽVVnĖVnUJ@nōÆǼV¼kxƒLklÝw@xƒx@zV`ÅbmxU±xU„nnm‚kn‚ŽğU™bUŽ‚šUb@šÅ°Ü„󼄄U`Ʋ@lön‚KšnXWlXUx°xnKĊllôw@Vn@lnÈKôx@VÝz„V'], + 'encodeOffsets': [[ + 128262, + 45940 + ]] + } + }, + { + 'type': 'Feature', + 'id': '2206', + 'properties': { + 'name': '白山市', + 'cp': [ + 127.2217, + 42.0941 + ], + 'childNum': 5 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@Ušl¦kÒÆ°„IlÒU¤ôz„¼lJš„U„n‚ÆXVl°@²aÆbVKČXV¯°¥¯ĉ°W„„„L‚¥Ģw@x„bUx°V°zn‚‚b@ÈlVŽlIœ@˜w@m„U@akU°ƒkUôwWƒÈ¯VUƒVUƒÅ±U›@kÈk˜Ñœw@ƒlaÞġƒUÞ£@ƅ‚KnÑĢ¯@W‚aUaVUVkkw@a¯@¯™Ý™ƒVXnW@@WkXmK@xkKUb@bW@Uw¯„mmb@WKUbmUbUaWbƒJĉIVW@I—l±LkšmU™bUm™@ƒnkKWa¯n™@„`Ubma™„ĉL@bƚ—@W`ƒL@n¯‚Xb‚@kb@x™Lƒ„™@V‚kL±™™mlUIU¥mL@lÅx@_laƒƒ@U—aƒV@kmmƒK„£ƒƒLƒƒmKUnÅKVbmXVlèĉUUbml„ĢŤƒIlŽ¯bǦœl‚@ô¼Ģ„@x°„l¤„n„a„l@x™b'], + 'encodeOffsets': [[ + 129567, + 43262 + ]] + } + }, + { + 'type': 'Feature', + 'id': '2205', + 'properties': { + 'name': '通化市', + 'cp': [ + 125.9583, + 41.8579 + ], + 'childNum': 7 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ÆlXnĠxĢ°lÈ°š„K„°kXm‚@¦Vbk„ŤJšnݤk„VÞVVkȄb°y„™@w˜k„Ç°a„wƨ@„aސ„K‚VnaWwXWƒ„kôJš_ČºôVkƒ»óyV£kуJůlÑk¥V™ša@wƒkƒbƒmk£¯ƒ@wġƒó»@›kÈ¥°ak„JÆ£ƒġnkVaĊVkçWUnUaÆLVmnL„„‚KU™±@—„m@a¯U„bmV¯m@_ƒK™™U™ƒaƒÅ™Wó¹ƒ@UanmWak@@wmI@y™@mk„JVa™@UaƒIkJ@n™@Um±kkxƒm™Ik„ƒbÇm@Ž°bXn„V@Ž°ÈmlÞ¼¯XVº¯Lm„kWWXLmVVlknƒ@@lnWƙ„Vxbmšnšm„¯lÝaVȁè@¼V„„b™„ÆŽ°ÞUVšJ„„kx›I—xƒƒƒIV¤™ÒXxmn'], + 'encodeOffsets': [[ + 128273, + 43330 + ]] + } + }, + { + 'type': 'Feature', + 'id': '2203', + 'properties': { + 'name': '四平市', + 'cp': [ + 124.541, + 43.4894 + ], + 'childNum': 5 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@Ɇn°W„zlyÞ£mwX@ƾKǬblaÈIƾ¤ôÞĸVĠxnmmVƒ²w‚VnwÆaU_@y„w@wÞxlk„KlwU»È»ŎÅ@mVIUmmĕUU@mWXw„Iô‚@bWnnbU`‚šV@Å°ó@wÞW@km@aŎ烙@m°Ñ°Inm±aXaƒU™n@mƑšU¦@šÇŽ¯aU£šaU™ġ¦ÅҙJōUŻókUÇ@™¥¯ak¯mUVak@@aċçÅaUƒm¦Ý`XbƄ@n`ƒI™xĊÞōÞml@šUb@Wl™_¯JkšÇUÝÆÅb@n™„llUb¯„±a@ƒ—ƒWĉJġĀ¯™Unóšm¤œxôaVnƒxôI@x„V@bmƙ„@lnLmޯޙxVb¯þ'], + 'encodeOffsets': [[ + 126293, + 45124 + ]] + } + }, + { + 'type': 'Feature', + 'id': '2204', + 'properties': { + 'name': '辽源市', + 'cp': [ + 125.343, + 42.7643 + ], + 'childNum': 3 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@żôŎVšIÆÑĢ¥Vš™bV¤°bȍ@™V¥ƒ™Þ£lÇUUUÝlƒÞ£™mţIlƒUa@¥nlWƒ¯ƒL¯™kÇġ¯ğwWmÅk¯UƒVU„„bWlXlmnƒbUx¯xVVknlŽUbV„ÇKUb@„™VnbmlnzUº±bmJUbWÈnèm҄š@X`WL'], + 'encodeOffsets': [[ + 127879, + 44168 + ]] + } + } + ], + 'UTF8Encoding': true + }; +});define('echarts/util/mapData/geoJson/liao_ning_geo', [], function () { + return { + 'type': 'FeatureCollection', + 'features': [ + { + 'type': 'Feature', + 'id': '2102', + 'properties': { + 'name': '大连市', + 'cp': [ + 122.2229, + 39.4409 + ], + 'childNum': 5 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@‚IÞmVk@wXWÜbnwlLnU„@‚nLlbXW@a‚wnbl@XL‚aš@Ċ¥@LULnJ@xVnmV@VXXV@VJkn@VÜKXXôJlb„xl@„IVbnJVLUbn‚lnVw„JVU@ƒXU‚aUUlwn@°ƒn„VKnV°_VJšwl@nwlV„IXWlIVVnK@IWmkIVaVU@WÈUlmU@U„WUalkXġŻ@kIƒ»mm™akUm›ĉUŁV»²ġVĕ@aUU؍IɃ`ȃ@kƒw@ƒUƒmwĉ™@ƒWķсIĉÇbÝLkymbIƒwÇmÛbmbU„¯ÜõÈkÆVbŎxnXVÆnšǪ¦„bš¤Uš™xÝnĉÒmĊVȄ¤Èš„bƼ„Ā„„ÆÆބźb„VVbX„‚°²¤'], + 'encodeOffsets': [[ + 124786, + 41102 + ]] + } + }, + { + 'type': 'Feature', + 'id': '2113', + 'properties': { + 'name': '朝阳市', + 'cp': [ + 120.0696, + 41.4899 + ], + 'childNum': 6 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@na@UVI@m„ÑW™kaV¥UI@wl@„aÈbšm@wVašk„@@K@kƒ™@a@UUmƒUUalmU@KÇUű¯@±kUKVkUaƒaU@¥m@@¯k@WLUmkn@mmIkm@amU@wVmkU@Klk@U—m˜aXIWWUL™aULVbƒmk@UUmUk±™_Uym@mbkImaX¯WW™xWKzU@WƒkJWwkV™@Um@UbVVVVXb@VWX—@WŽ@Vkb@V™nUK±aUUlwX™ÇWKknU@mmUkƒLUVƒVUUVƒUaƒw™bkKmwnIƒ™kJ@nmbƒ`kmVkLWwUm@UUU™K@UmaUa@UUaWK@mUƒ¯Wkk¯VmUUŽ„xVXUVmL¯ymXkWUbmXUKƒVknWx¯JVnkLƒl@VVxnxlĀVL²WlX„l@bÝVUn@bnlÜaXblIVl@šš@Ȧ@VmbXV‚@@x„VVnUn@`°@VnXU@K@„VV@VmbnVn@ln@b„xƒ°Ub@bšLV`Ånƒ„W@@lUšnnWVU@Vbkl@Xl`XxV„UblŽkX@Ž°¦V„UVVbUlkV›@UbVbkLUxmJkXšš@b‚bœxVKÆlXX˜bnŽnala@ƒUk@U„VVklKVUXKVU°KVan@VUnLšKVL„WVaU_@mmUXa@m˜wXwVkVWXk‚k@›„k@klm@wXKl@U@KVUUUVaUƒV@„alL„xUx@b°°VnnVšxlIXJmx„LUVlV@bnX@Všb„aVx‚@XJ@b‚n@VŽVXȄl@llX@lU„Vô°°@ބVbn@‚V„k„@VW'], + 'encodeOffsets': [[ + 123919, + 43262 + ]] + } + }, + { + 'type': 'Feature', + 'id': '2106', + 'properties': { + 'name': '丹东市', + 'cp': [ + 124.541, + 40.4242 + ], + 'childNum': 4 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@lzXJ‚U@š²x‚@@Vš„@bUVmKUn„°n@lnVK„„nV@n@VlV„°WbXn@‚VzƒJ@¦@bkb‚bUl@bkbƒJ¯zƒWULWbklV„nb™¦VJ@„„K°U„kl@@W„bVn°@„Všm²U˜nX`„UÜLXmVXlKVbUVVnUbn˜ƒX@VUL@lUbWxš@²kl`n@Vlb„@nUVWVLVU@aV@²bl@ÈmšxWX„VÈU„JV„l@„„la„WnX‚KÈkÈ@Va°bÆm„@XV°IVV°UnalƒVUn@UwVU„@@VVJ„I@bl@XK@wWmXU‚UVbkJVXnJVI@mƒknwlKXL@`l@VI@UUaVKÞn„aVm@aÇ£XW„U@aÇUU@mbkKm£™@WW™ƒL@@Kk@kl›U—bWKUkUU¯UõÛƒmUUaVU„U@WU_W@kVkJƒ_WKkV@bUL™¯¯ƒ±mk¯ġƒğÑ@UmwƒKUakƒ™ƒa@a„m¥ÝƒIUWmk@w™mţ—L›KʝbȗKWĢklVbƒX@VV‚knÇV@XUVUblJXn@J'], + 'encodeOffsets': [[ + 126372, + 40967 + ]] + } + }, + { + 'type': 'Feature', + 'id': '2112', + 'properties': { + 'name': '铁岭市', + 'cp': [ + 124.2773, + 42.7423 + ], + 'childNum': 7 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@XJm@¯šmXUlnVbUJƒU@bV@UJWL@VXLmJVbkXlJXxVL@b@V@n@b@`Vbk@lxknV@VV™V@bUL@bV@@bVK@VXLWLXJ@LV@nbWJ@IUV„x@LVJUXVxVx@VV@@LXJWL@VU@@L@VnL@bVVmVX@@VVInJmbnLWVnVULVVU@VVmX@@JVz‚l@„nVVKVXރ@mk_lm„UUWV_nJlUÞÑÞVVUVƒVL„UVJ@I„Vna‚@@KV@XwWknwnKlalU„w„aĉݚwšJl_@aUaƒKUUU@WU@WXUÆ@@UVK@n@UnVVšblK@bœllb@b„bW@Xbl@UlnLl°°bš¦nKlVnI„V@UWU@WXkƒw@am@nm@aVw@I@KUaVIm±XÑlknJVnVJšaX_VaUaVKmwnkmmn@lU@U@mnašXlKUmUIVmklaUK@UlUVUW@U™kVm™a@UUU@JmUU@@bmb—KWV¯XUKm@ka@UVKVk@aUKmLkKUUÝUmbXbÇJ@k@WU_@m™™@klm@UXKVaUI@KWUXaƒÇWk™aWUkWUL±U@lUU@ƒUJƒI@V¯JmIm@@aU@Uwƒa™@UV@VkI›V¯aUkƒWkb@bVL„@@VVVUXW@Uaƒ@@b—‚ÝbUV݄@ŽƒLmUkVUbVllLUV@LššXŽWbUXm@U`@„kxlnnJlbnIllšLX„lVlUXmVK„n‚V@L'], + 'encodeOffsets': [[ + 126720, + 43572 + ]] + } + }, + { + 'type': 'Feature', + 'id': '2101', + 'properties': { + 'name': '沈阳市', + 'cp': [ + 123.1238, + 42.1216 + ], + 'childNum': 5 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ȚĊÜ°„b„L‚lÞxUbUn±‚@ÈnVÆL@xnLšlUVƒbƒxkImJkn@V±LUxkV@bšbšKVKnzVl@L°@Va„xÞUlbôxVVœ@@V±bnŽ@llXL˜ŽöXĶŽnal@nkVJVI@aU@@aVK@ašUUUU@lmkwl@Ua@_@a@m@U@aUKWwkIlWUanIWK@UXKVIU@@a„VVIUa‚mVknW°™n@WI@KUƒmULWnkVkUWƒ™KkkmJkamIkmlw@ƒV_n@VWXaW™™@KVUkKUkValUnV„K@ÞƒVUÞa˜@a„@VbX@VWUU@Uƒ@UK@ala@IkKmUUa@U@ƒVƒkk™WVwU_@KÜUXbl@V¥XUVmƒƒƒXa‚kŃlUUkIm`UIUJW@UIKmkm@UUJƒImmU@ƒVUXU`mIUbUK@LƒJUU™l@Xƒ@UbƒJ™kU@ƒŽn„m@Uam@@ƒ™aUmLKƒwƒ™mWXUK@kUaÇa@JUIUa@aƒKVUƒUXmƒUy™_@lmbkLUKWLX`‚n@bVL@JXL„‚WX@Vnb@Vm@UbnVmL@V@x@LUbVV@V@LƒUVl@mb¯U@xU@UVVV@X@VVblJ@bn„VKUn„x@llnL±¤™b@k`VXÆK@„kV@¼kl@bWIUl@VmLnbm@@JXXmb'], + 'encodeOffsets': [[ + 125359, + 43139 + ]] + } + }, + { + 'type': 'Feature', + 'id': '2104', + 'properties': { + 'name': '抚顺市', + 'cp': [ + 124.585, + 41.8579 + ], + 'childNum': 4 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@„XVl°bœUlJ@UVUš@„bVxV@@bn@nJ°I@U„J‚I„VV@V@k²VVKlXXVšb‚lÈX„ŽWbXV@LVJUbWL@Vkn@lšš@nV`@X@lÈIWanaÞVVVlLnKVL@bUlUL@Vlbn@VL°WXU˜Lna@aV@nV@IVV@VšbUnšl@V‚XnKVa@U„UnyWkXaƒaVk@ašašbnm@_WKXmWanU@alaU—l@XJVLVxX@˜wnKnVlwƒƒ™@V_@a¯¥@UkKWUaUU‚anK@IƒaU@WUaVw@klUVyUUVUUÇ@Iôbša@mnUma@kXa@UWak@Wa—l@a›@WUƒLmU@U`mIUU™`mUk@@UUK±nkJƒbUam@kwm@@a@UU@Ua@@K@ƒVK@kmKU_UKƒUUaĉWmkkL@`™LƒnmlkLkbmK@k™@Ulmb@b™„@Ž„xUVƒIUlmVXXƒxm@™JUUk@WUk@ƒakx±@¯x¯Umb™KUUVmUU¯UmVVn™WkÆ„lWb„„„ŽUnWVU¦k@WaÛV@LV`UxšXllU„@„@VVbnVlL@J'], + 'encodeOffsets': [[ + 126754, + 42992 + ]] + } + }, + { + 'type': 'Feature', + 'id': '2114', + 'properties': { + 'name': '葫芦岛市', + 'cp': [ + 120.1575, + 40.578 + ], + 'childNum': 4 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ll°X„ŽnV‚@XLVb@VVbnb@VšLVV@VVnXxlKnU‚l„_na@mlI„šmJnxlLša„xVbU„VV„UVU„KVlnnV@lmXLšÈWŽkxVV²bVLšm@Ula@UX˜@XW@UWaUUUUVan@V‚š@lUXxlIX„V@‚yXLšw‚ŽXXW°nblJnan@Vzš`l²nVVVl@„nUaVKšbVKnXVaUaVUšyšnXK@kVK‚@X@m@m‚LXa„LWƒU¯„w@™ƒa@UVw„¥°™ó¯¯y¯ƒUǯ»›w¯Iƒm—¯Ç™UUl™¯»ţKċÑţķm¯w@mU_ómk¼VnU`±IkbVlƒnnŽU¼±Lk`@X™Wl¦UbmVUxkXVlkbllU„Vb@bkVmx@XVV@Jb±aULkKWXkWmX¯aUJmIkVm@ƒxU@n„'], + 'encodeOffsets': [[ + 122097, + 41575 + ]] + } + }, + { + 'type': 'Feature', + 'id': '2109', + 'properties': { + 'name': '阜新市', + 'cp': [ + 122.0032, + 42.2699 + ], + 'childNum': 4 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@šXnb°lš„VlnXVJ„LlVnl@zÆxnK@b„blKVLn@@V„aVLVK@L@Vl@XVVInVVKVwlUXwlKšL„ššVVb@aV@X„lUXbVW@n„lWnXKV@@V@XUVVLUVV@@bVVV@@ln@VbVUXV‚I„xVanJ@UšIVWšL@UV@@¤V@nInw˜W„k„lnIVx‚lnzUVÇJ¦VVÜLĸUnW@aV_šWĊXXa‚Knkl@nm™L™a@alUVw²K@UlmnIlJ„w„aVU™kmK@wÅKmU@DzVmVaÝwkƒKƒaÛ¯șĉķ¥ğ¥ƒ@kUWkƏī݃ƒ@@akU„K@KWIUm¯nƒU¯JmwUVmIkJÇLm@™UImJUU@aW@U@@nUb™JƒaƒbXVWn@UVmX@V@b„š@l@Lƒ@™lUb@x™nÇaƒbk@@xVJU¦lbXšƒÒ@nUJ@Vmb'], + 'encodeOffsets': [[ + 123919, + 43262 + ]] + } + }, + { + 'type': 'Feature', + 'id': '2107', + 'properties': { + 'name': '锦州市', + 'cp': [ + 121.6626, + 41.4294 + ], + 'childNum': 5 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@nJ@nlmVnXKl@@°n@@¦‚V„bVbUlVL²l°@ƲÈV@LV‚knVb„VVnnWVU‚@XmWU„a„bšIVa@mV@X@@bVVnIVJ@š‚nÈKlInJVUnx°I„V°mVnXJ@LƒLlV@b„@ބƐĬXllV„@Ġ¦ĸ¦naWW@In@manK@UVkXJ@alk@»lU@ƒÅLUWl_@ša²£‚Kkm@kƒwVmULmƒ@akIUa@U@WUUVU™aÝ@ğ›wkƒƒmĉ£UWƒ@@bÇL@m—a@_mKƒlƒXUwKƒLţÓ@UWw@K@U„I@m™U@UV¥„@°UnJ°@@_™KUwƒW@UnaWUmmI@m™ķwUaÇLóVĵwݙUUW™¯šƒ¦Ux@V„b@šƒxV°X„ƒKWbK@n@nW‚@UL@lWL™m™zUVVbUbmWXXWJ—b˜n@Vkl@LlVUn@xnV@bln'], + 'encodeOffsets': [[ + 123694, + 42391 + ]] + } + }, + { + 'type': 'Feature', + 'id': '2103', + 'properties': { + 'name': '鞍山市', + 'cp': [ + 123.0798, + 40.6055 + ], + 'childNum': 4 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@l„œxĠŽÞ@šbV@@w°Vna‚@Uk„V@K@UUUVa@K@w@UnKmUVan@@Uma@UXWƒWK@IUK@amW_XKVLlKna@kmKVak@VU„@VmšU@anIÆan@‚a„šUVnb@blLV`ÞLlU„bna‚Kn@naVU@¥°IVK@anUUKVaƒUVak™@mJƒkXƒ™UVwkƒVUUa°U@Wƒ@WlkXWlIXUlJlaœx‚IVVXLšll@nLV@lLXl„KĊzš¥maUƒlkXaVK„X°y„Ila@aVkala@a@¥„IUy@WmXaƒ¯kU@U@mmUƒƒULkmm@ƒ¯VmnLVU@a™ƒ@U@±w@™VWIkymLUUkJWXƒJkUmxk@™xUI¯`mUULmƒ¯„m@kxVVbWV@„UVƒIUx@bkšVšVVšxUbVV@V@zšJVXU‚lnk@@lkLƒlƒLUU±Jkšm@UIUVƒLUVU@™K@UƒnnV@l@Ll„ƒaUJ@zn`@nWlƒIUVUUUV±Ln‚@nmL@VUVkLVlUxVLVlÅXma™@@akLmWUX@JUnVJVkXJ@X@`WX„VUVUIlb„W@bVUVL@`Un@¦U`@bUV@z@Jm@@XV`„LUL¯J@IVKmKÅI@J™nWVnLnšVxV¤™z@bmV@VUV@bUL'], + 'encodeOffsets': [[ + 125123, + 42447 + ]] + } + }, + { + 'type': 'Feature', + 'id': '2105', + 'properties': { + 'name': '本溪市', + 'cp': [ + 124.1455, + 41.1987 + ], + 'childNum': 3 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@lb@Vn„lnVVUb@šVJ@nnJ@bmXUx@xVbkbkŽWLUxnl@Ul@„xWx@nUV@¼Ull„knkK@bmbnl‚LVJX@VIVJn_lJVVšXUmnU°VVVUnVVšLna°V°w²@lw„bl@XVl@VVšIn@„wWWnUVk„JVUƒw@šƒ@anaVkš@@lnLlalKnk„mšK@_lKnlĊXVb„VVLV`nL@lUL@„@L@‚VbV@@V@bn@lxn@Vb„alI²mVL@Vl@nVš_VVnJV_‚@nV„K‚V@Xœ‚@b˜kXbl@XblylUUkš™@Xa@UVIlK@UUWVU„Llm@UUUnKWU@K@UXm„XVa@U°KVUUWUk@ašUVKkaWkƒKUknaWa@U—@m@mk@ƒaUJk@@_WKkLmx„l@nUJmIUWlIUaVWVXn@xWLk@@aƒJUI@Uƒ@UVVxm@UVk„mb¯VUU¯JWUƒ@Ån¯aUbÇ@ÇlLmWƒXkbƒƒk@UƒƒIÇVƒUXW™wÇnk@±aU@@bUVUKUXmVƒ@kaUm@k_±l™@XwVa@kVK@U„Wm—VaUmVUUakLUWWnÛKƒVW_—m±V™nƒU¯@Umƒa@Xk@ƒl¯V'], + 'encodeOffsets': [[ + 126552, + 41839 + ]] + } + }, + { + 'type': 'Feature', + 'id': '2108', + 'properties': { + 'name': '营口市', + 'cp': [ + 122.4316, + 40.4297 + ], + 'childNum': 4 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ĊĖƐn¤„„°Ċ¯ŎWšô„@xXb‚wnKl@nX@VUVƒKmL@VU@Ux݄@Vlb„x„U@VUb@b‚kœ`‚IUlVUn„V@@UV@@JnXlK@bš@nbÆWUkUKVwUklKVU@UnK@mm²KVUVVVU„JXk@mm_@yVI„bkƒ@K@kmU„m@VšLV@VU„KVUVJn@l™²IVV„K„klK@kl@kmVUW™I@y@UUUVa™wUUU™l™@akmmVaUKmIUaƒJk@ƒwkaóIWWÛL@UlmUIU@WW@UnUUm@wmIVK@Kĉ¦™@bWKk@max@bWXkamKƒ@mVkKmxÛaWX@xUlÝnJ'], + 'encodeOffsets': [[ + 124786, + 41102 + ]] + } + }, + { + 'type': 'Feature', + 'id': '2110', + 'properties': { + 'name': '辽阳市', + 'cp': [ + 123.4094, + 41.1383 + ], + 'childNum': 5 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@š`Vz„‚Wn„VUV„L@bVbVJ@IÈbVb@lVLXW‚n„š„x‚LnKVŽšb@„n@Vbn@mƒ„V@šl„IVa„@@WškVV„I@KVLVanJV_VW„UV@nn„JVI‚Vn@na@alLlmkƒVk@»VU@mXwƒwk@@VmkVwXKllaUa@wVwnW@amI@mUI@™VaUUkmmƒ@UkaƒL@ƒUIĉyƒLWkkKU@mKk@™kWKUUJ›wkbkIWVkJWXkl@X„‚@X¯VVbUVl„UxšVW„„lnIš@l‚Ub„VUbVLmV@bUL¯J@¦UVmbm@LmbƒakVÝKU_kK@amaVUƒ™bm@ÅbmJ@b™VUnƒ@UVl@UbnL'], + 'encodeOffsets': [[ + 125562, + 42194 + ]] + } + }, + { + 'type': 'Feature', + 'id': '2111', + 'properties': { + 'name': '盘锦市', + 'cp': [ + 121.9482, + 41.0449 + ], + 'childNum': 3 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@Vbĸx‚š@nnJVnXŽmb@V„XVxšL@`¯@mI¯Vƒ@U¦@VšV@nƒJ@V@LXx@VŤÔ„K‚LVx„W„knL@`˜b@nÈK@a„@VXĊ¤„nVK@aVU@UnU@ašyU£Uwm™mKXUšm@IÆJnLUL@J°IVKƒKU_@Wn@@I@yVU@aV_@¥Vm@_UKUV@aƒXkaVJVUƒUXW@_@WWIUlUIVm@IVW@IU@@VU@mƒUVVkJ›_l@aVa@UƒVƒwka@UރVwV@@UnK„LVU@UmWk@mLxWa@wóƒUVUIÇÆĉ¦¯¦¯xʟJ'], + 'encodeOffsets': [[ + 124392, + 41822 + ]] + } + } + ], + 'UTF8Encoding': true + }; +});define('echarts/util/mapData/geoJson/nei_meng_gu_geo', [], function () { + return { + 'type': 'FeatureCollection', + 'features': [ + { + 'type': 'Feature', + 'id': '1507', + 'properties': { + 'name': '呼伦贝尔市', + 'cp': [ + 120.8057, + 50.2185 + ], + 'childNum': 13 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@„m@Łkƒ™Žƒklƒôƒ@£kJ°ý™ɅķÑó¤ğLĉÅlÇğŁW¯¯›™ƥóÿlwkţÈéÝƛó™°ÞÅxV¤ĉĖWƒ¯lȭţυ̃ɱÿķƅˋğɱřÝţϙȍƧĊţ@¯kWKUKm¹Å@ķJU@ƧÑƧ„ō¥˹Ɔ@L@„Þ‚VLnš@VōČWJX¦@JŻbU@ţÞmVU@ȁýóbkWWLƒƒÅ™¯UWġkmóƒ±UŹôV¼ƽ¼ƒł̥ĖƽǬʉxĉŽŻȗKΕ̛ʵƨʟÞ˹»Ƨţ»Ǖō˷Ȍ±ȚʊĠUɾɜɨmÜ֞߼˸ƅȂ¯ǖKˢğÈÒǔnƾŎՂ@šĊbôô̐¼ƒ@ĊôĊŽÞĀ™xšĖƧL±ŽœŽ‚Uš°U„°ĬƒČ°ÜƒêɴȂVł°@ƒ„nxŎèƒbȄÞȌ΀ǸlŽ²IlxĊl²ÒmšôĖ™Èl„ĵºm„ÈêVþ„xɛČʉÇĵVmš„ÒƒÈɆôƐŰǀĊ°ÆǬĮƾb„yĊ@ĠšƒXǀċm»ôw°Ûk¥Çm¯ç™kkÇǫţǕéX_ĶWǖīŎaÆĵĸĊ@ȚȘ‚™ĊLĢĉ„VÆĉʊÇĕóaU¥šĉ°mkÅ°ġUĠřk°mƒÑČÿ˜ÛƒWĸ£ʠšÆxÈÞŎÞ»ʈ²ĊÇČalÒ°Ť±ĸz„ŽĊKȲm¤Ŏ@Ò°¼nyȂUźīǖƳÈē°@šÝĶƒ@ƒÈkl¥Ççkxk™›JXÇƒUÅ@˜£k»„óƿīÛ@lÅJl¥óý@¯ƽġƍÅan™ċ™°é¯¹'], + 'encodeOffsets': [[ + 128194, + 51014 + ]] + } + }, + { + 'type': 'Feature', + 'id': '1529', + 'properties': { + 'name': '阿拉善盟', + 'cp': [ + 102.019, + 40.1001 + ], + 'childNum': 3 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@™ƏnǟƨʫšŹɆÿ°¯ÆV²ˢ™żÿ@ÝÆŁȰ¯ȀƳĉó™™@ğkyš¹@īš›ƒwl£Źƒƒ¯Ŧé@™ÇÇxŋĉƩUUŃōL™Ç™ĵóÝnƒóç@™™ó@ġƒƱ„¥ƒç™WUçÆōƒ@é—çťK™çȭVһƽ̻aW¥ȁ£ʵNJǓƲɳޗǔlżÞmĠóĬȂɲȮ@ÈĢŮźÔnĶŻǠšŎȭœгŃċóȭţΗÆƑÞƧÅΫóȘǫɱȁġlÛkÇ°ȁÈnšõl¯ô„ÞɛÝkĢóWĊ„zÇɼʝ@ÇÈķlUČÅÜķnέƒǓKȮŎŎb°ĢǀŌ@ȼôĬmĠğŰōĖƧbЇƧōx@ķó£Ål±ĀƧīXÝġƃêĉK°Ýʇƅ@ΌʉżÅÒϱʈ@˺ƾ֛।࡬ţશóЈèʞUš¤Ґ_޸Ƒʠɽ̦ÝɜL׈ɛϜóȂJϚÈ@ǟͪaÞ»Ȯź'], + 'encodeOffsets': [[ + 107764, + 42750 + ]] + } + }, + { + 'type': 'Feature', + 'id': '1525', + 'properties': { + 'name': '锡林郭勒盟', + 'cp': [ + 115.6421, + 44.176 + ], + 'childNum': 12 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ʶĬĊIȘƨƨŽ@ĬÛĢșŤĉĬƒĀóšU‚ÈŚÜènŦƐȤȄłϰUƨťƾÑ܆ğɲƜǔÈèʈƲĊƞƒšɆ¯̼V˺Ò˺ȂŤVĢêU܃x„Āˌ˘ƨ„Æ°ѢmÞżU¼ÆlŎ@ĊçŎnÈÒͪŎźƒĸU°lżwUb°°°Vš£ÞlĠĉĊLޏɆnźÞ„n¦ĊaȂīġŃ¯Iĉůl»kƒ„™Çý„¥Ŏ¯ƒén£ġљÝȭxƒÇ™@Åçķ»óƱŎ¥™çWÿmlóa£Çb™yVÅČÇV»ÝU¯™KĉýǕċţnġ¯»ÇōUm»ğƒÑ™wƏbċÇŎċwˋÈÛÿʉÑ°Łkw@óÇ»ĉw™¥VÑŹU™mW»ğğljVÿŤÅźī@ř¯ğnõƐ@ÞÅnŁVljóJƒwĊÑkĕÝw¯nk¥ŏaó¦ĉƒV¦Å`ğуÑÝ@mwn¯m±@óƒÛKˍƏǓ±UšÝ™a¯lƒōšșk„èƒĬގn@ŤġŰk°ċx@œĉ`Ƨĕ°@ţÒĉwmĉ@ƒƒnƒƒa„™¥ķnƒÞĉVóÆókĉŽķ@ÝkƧƧÛaƒ°Ç@ÝÈU˜óbݼ@„ÛÒV°™@V¼ˋL™ÞɅŤŹǠVÞȗŤÇĖŚōbȁƜ'], + 'encodeOffsets': [[ + 113817, + 44421 + ]] + } + }, + { + 'type': 'Feature', + 'id': '1506', + 'properties': { + 'name': '鄂尔多斯市', + 'cp': [ + 108.9734, + 39.2487 + ], + 'childNum': 8 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ĶL²ĬVłƑkkl@Ȏ™ŘWńÈĬȗ¯™ºlz@ĠššĊôŦô„ÒĠ°kÞܚ™n@¤„UĸèĸbŌÈXŽĸLlÒĢxɲÆ¤ÈÛƾJÈÝ°UšÅĶ»²VW¯ĸJôšbk‚V@ôlbnĊyÈzVôašb@ĸ‚ÞUl°yǬ²Ǭm°ššk„±lbn°@È»˜JX„VŎÑÆJ@k„LšƒÆl²™Ġ²ʊůĊġ‚řóƛÞÅ@m„ƒmLUÿóĉƧ@™»L@„›`ČĸmšȗÑţů±ĉğl¯Ā™wǎƒçƧŤÛI@±ÜĉǓçō°Uwô™ǫůķƳř±bÅ£™ÓÇwnÑó@ȁƽ@™ƒÇƧĢón»ŏĕóĊ¯b„Å™™VȯÅImƒōKU„™LǓ±Ýxċ—ŋ˜V±Āȗ°™„Źl±šÛ@WÒȁŚŹНŚÅèŌô„¼°ȰɞȂVĊ'], + 'encodeOffsets': [[ + 109542, + 39983 + ]] + } + }, + { + 'type': 'Feature', + 'id': '1504', + 'properties': { + 'name': '赤峰市', + 'cp': [ + 118.6743, + 43.2642 + ], + 'childNum': 10 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ɲŁĢljĊwƾōÞĭ°_ŎŃźȹƒUČÿl»¯ôķVÿǬƽ™ɅġÅÑǫ»̐ʟȣU™¯wVWݍÈġW»Þ¹m݃ɛŎÿŎōͩůV¹›ō™éċ™óŹÅVVĢǩʈ@Ėċ@ķšÛšV°¯xÇÅţ¥™»°Ûô™ĉʟ„¥WýČ¥™w‚灻±mnÅķ¥ˋVƒbUÒġ»ÅxğLƧ™ƒbWĖÅxš¦U°ÝVóŰlô²@š¥ÜÞÛô„V@²±`š¦™„™¯Ý@„ŽÅ„VÒō¼ôš™¤V²ŹĬÇĊƑƒţxƒç¯Lk»ʟlƽýmłÝÆƏ@mö°Ġ@ŚŹĬţÆUĀĠNJĠŽX¼šnźVUҚ¦Ċxȼ@ôlx¯łʊÒÜĀˌÇČxƍČÈƐašx„ÒĠŽn¼ŎVȐ‚¼Ģ°ŤmǖČĊþšLV°ÞŽU¼ċÈUƚzÈa‚¤ôbkŽ‚nXĀšè'], + 'encodeOffsets': [[ + 122232, + 46328 + ]] + } + }, + { + 'type': 'Feature', + 'id': '1508', + 'properties': { + 'name': '巴彦淖尔市', + 'cp': [ + 107.5562, + 41.3196 + ], + 'childNum': 7 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@²@Ζǀݴʶհĸ„˜ƒ¦Ķ™̒Uˌ¼ӾÇƾ¼̨UÞĉ˜Ƨ—éÝ»ƒĕĉ—ƐȍœōǪakó‚ó¯a@™ôţ™aV¯Þ¯°@²él¥ĵğťwōxó¯k±š—Vó@™aóbUÇyĉzmŽkaóŽU@l™aó‚ķIX°±Uĵ¼™Æ¯VÇÞƽIÇÜÅ£ɱŽġwkÑķKWŋÇķaķçƒV@£šmۙlÝğ¯ƒÑťóǿƴȯ°Åł@ÞŻĀˡš±ŽÅU¯°ɅĀ™źƧʬmǠšƐ'], + 'encodeOffsets': [[ + 107764, + 42750 + ]] + } + }, + { + 'type': 'Feature', + 'id': '1505', + 'properties': { + 'name': '通辽市', + 'cp': [ + 121.4758, + 43.9673 + ], + 'childNum': 8 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ôƲĸ¼Æèš@„ÈȮwƾ»ʠĢ¥VÆ@²¥@»Ŏњ¯ĊJŤ£k»ÆÇX¯̼ōšī°aX£ôƒƾȁź¥„ƒ™aôŤ™ĢL°ƒĸ@Ȯ¼ÈÒʈŚôVXůÆaĠƛÈKƒķšĉôÿ@ğÈĉ™»ÇVn™ĉV›wXĠÝ°šČÿĸwVƒ™¯¯ǵ±™ĉ‚ǫ™ÅÅm»²Ż±ƽIm¥ţÈķ@¯šƧJV»ÞUÝç¯UġºU£ţŽóaÅÅlƒƒ™Ƨī¯K¯Þ݃ğL̑ȍƽ@ōŎōĀƑɜnÞݺX¼ÇĢގUX°xVšʠȤ̏Ǭ¼ÆÒɆĢšŽǫƾUĀóĸ°‚k¼ċĀƑVŹȺōń¯`ÝĮƽŎĉxġNJɱłō¦'], + 'encodeOffsets': [[ + 122097, + 46379 + ]] + } + }, + { + 'type': 'Feature', + 'id': '1509', + 'properties': { + 'name': '乌兰察布市', + 'cp': [ + 112.5769, + 41.77 + ], + 'childNum': 11 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ʠǠÞĸɲȺƒÒȂƛŎaƙÈĕȘţUÝźǟɆţšÝˌKU»š@U¯ÜÑ@ƒÞ»ôaV—ÞÇÈ@„¯ÜbƨƨÞlĸ@ĊôlôÅĊU„Ýĸmš¦ƒŽ„bm„„„Ċ@n‚ĊxŤÑ@¯‚ƨĖĊ_@›Čwl¯™ƒȭL›Ý„»ƽ¯ķů„Ǔ@ÇǓbċ™ÅÅÆwÿĠÇU£óaƒ¥¯aŎğĠţkw°»¯ůlÝĵkǻݰɱƧǫaóôɱ»Çk¯ŃóƒʇŐŻ›ĉNJŻĢ„Ž¯ÒÈUl°ƒx°n„Ò™Ĭón™Ċğ°ÇŚĉ¦ʵVƒ°°ĬÛżÇJȁńʇʹó˂ƽŎ›Æţ¦'], + 'encodeOffsets': [[ + 112984, + 43763 + ]] + } + }, + { + 'type': 'Feature', + 'id': '1522', + 'properties': { + 'name': '兴安盟', + 'cp': [ + 121.3879, + 46.1426 + ], + 'childNum': 6 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ÆXnlŎ°@LVLĠþœxĊUȮĊnU„ĠV@żaW¯XIŎġƒ¥Ý@K@w@K@I˺ŻŎ¦ƨƒƨÒŎIÆ@X@VºnX°lŎ@ƾĉˤƒȘǷȘÑÝݚÞbVţĸÿŤxÈĖƐŽêÇKnĸ¥ô@›ķÞUnÒl@UŚaƒīˋƒ¯ÑƧx@±kXřƐƏÛéV™ˋ»lō¯ĉ„ÅÇÓǫޗĖġV@ğ»›°ĵ„ÇÞǓ¼¯m˜ÛÅŃĉĠÇƾb²çƒ™šéż¯VƒƒğÞml»ōÑV痻V¯™¯šĕÆU¯y°k¯¯V»ôDŽѰa@Źk™ġKţšóŽšbƒ„Ź¦ƽȂó„W¤¯b™Ĭ̻ŎW°ÅÈl¼ţ¤ĉI™°ōÒ@¼±¦Å@UŽġ¦ʟŽƽ¼šÞĢÒm¤„êō°ƒ¦Èþƒšl„k¼ĊŰ°JĢńȁĬ„°ƒżn‚ÇbV„ݼ@¼óĸţ¤@°Ånšl'], + 'encodeOffsets': [[ + 122412, + 48482 + ]] + } + }, + { + 'type': 'Feature', + 'id': '1502', + 'properties': { + 'name': '包头市', + 'cp': [ + 110.3467, + 41.4899 + ], + 'childNum': 5 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@źxżĀǔÆǬVȘĀŤ¥œÅƾōôˁʈͳȂŃÈIÜŻ¯ī„¯ōm™¯ɱĖ¯ƒķÒÝIÝ»ÅV™ƒlÅôфġ™ğVmÞnnƒWçkW܁XƝÆwU»Șĕš£ĉÑ𱱚Åk™„ƒK@lÅIō҃UW‚—IǼ¯@m‚kaƒ²™l¯™ǫnǫ±¯zkŽÝVķUô™˜l²ô°ŎwŦxĶĠk¦±ê¯@Ý°U°šbóŤ@š°bôlôǩb›ŎƏȎĊ˜„ĖÞ¼˜ê—ƨÝĊ'], + 'encodeOffsets': [[ + 112017, + 43465 + ]] + } + }, + { + 'type': 'Feature', + 'id': '1501', + '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': true + }; +});define('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', + 'coordinates': ['@@U¯ķó±ÇÛ¯™ķmbXb›@kb@Vĉxm@@UkKWXX`m@ƒ„@LULV`@L—@mU@lƒU™x™aÝVUX@VUL™x™VkLWVšš@J„nVLXVlŽUV@zl‚VL@V@b„„n@lU²WVLlLVbUŽVxUx@xǀL˜xôҜk‚K²ŽVa‚U@wXa@W™ÈĉUa@‚bÈk„m@¯'], + 'encodeOffsets': [[ + 109542, + 39938 + ]] + } + } + ], + 'UTF8Encoding': true + }; +});define('echarts/util/mapData/geoJson/qing_hai_geo', [], function () { + return { + 'type': 'FeatureCollection', + 'features': [ + { + 'type': 'Feature', + 'id': '6328', + 'properties': { + 'name': '海西蒙古族藏族自治州', + 'cp': [ + 94.9768, + 37.1118 + ], + 'childNum': 7 + }, + 'geometry': { + 'type': 'MultiPolygon', + 'coordinates': [ + ['@@„V£°š@laœXô±źwš™ô@„Ulƒża܍n™Kƒw@U„aƒ™ša²L‚mÈLƚÈxlaUa„wÞmÜbÞUšnJ°a„kôƒ‚ÑkwÝVğwÇ@ÝkkV¯¥@ò„»„nŤ¥XImw@mVwša@Åw™mLkaW—wƒ¥l»kçƒó„»@ƒWÑĉŽğ@ĉ„™‚Ń„UwóřVómĵ»™™Ý@VǕ¯kšÝĊÅk™°ÓUklkU±šI„ÇÞkƒ±@šƽJƒ™@UġIk@W¦™VÑșÓÅnťKULnŽ¯X›ƒ@¯mUÛ@WřmóKknōbƒxÝ@ƒŽU@kw@ÿÇLţšÝUkšmwƒŽk™lċVŚU¦™ŽƒLkUWlÅÑ@aƒ@ÅѱUóġŹ¼ƒÈĉmŻ@@wkw™Kl¯U™ġ@—„lÇU™Ó¯_ƒ‚Waĉ²Åló¼VbknƒKǎÅ@ƧĢō°Ý@ğ„W™ÅxUUm@™‚ÝXۂW„ULUè¯@mbUaƒLƒbUWġxIUJWz™a¯b™y™@ōÈóLU`ÇXUl™UĉV¯n›mÛbǕLklƒUĉVƒšóaġ„ƏbġKţnkbÝmmnÝWȭȃŽÝXţWókUÇl¯U¯‚ġUɅĀ@°¯„„š¯„VÆnmJ@ĊķnóJUbÝXUlVškL@lVxnnmb@¤Vzš`ÞÞŤ@„VnÆJV„°b„UôJkzlŽkl@²óš@ÆÇ°kĖƒšÇbÛU@lmb™XV˜kzƒV™ŽɅĀXˢlń„ĬŹ@›éÅ@ĉńÆ°ğbUšlŽɜ_°‚@xŦ˜škbVbƒKĢ„ŤVŎŽ°@żÈźlĊ„ôKôb@nôxŦ„Æ@ôŽŎL@þÆb@šnnšWˌbÈx‚InaŎxlU@Ѳ±ƒğVUĢƒƨbɲ@Þ¥ôUUķWVô¯ĊWʶnôaŤˁ@£nmnIôŽǪK°xUXô@Ŧa°m‚kXÆÞVŎkĊ°ÞLȄôyVašIlwX°UVwĢÑÜKôw@nV@œm°nmŽn„Ü‚ɞ£VbmŽXnƒ°ÜÒ@xx@V‚b²UlbkxVnšJUnVVĊ°KȚm°nxÇnn¤±¦@ŽUXVV@„lV„„bmVVȁŽVxšÒ™°šIšbźaȃšbVwš@šƒVL„™ƾÑ@ƒŦô¯ĊkôÑ'], + ['@@„@šƒ„@n„òVœa‚w²bVxšxÜaČVô_ĊJšIVmšL„a°@Ŏ¥XlK@ƒšk„l„KVbUb˜@nUĢn‚aÈ@lmǬ»Ġ¯œn‚mnƒƨVy™Ñǖ™Ġ»ɲInŽ‚@@ÅĢƳ@¯°™ôV„KÈbVIÇ¥¯@Ýó„™@ÑnīWKšƒk™‚k@¥š™¯™Åa™Xƒ±VÅw@±Ġ¯@»™š™n™Wmw@ƒ™@¯ƒVƒUUWçƒKĉ„a±VkkƒV¯w™x@šUJ‚x@bknÇb™mÅ@Uw±U¯¦UŽ™Kmš¯I¯Žť¼ğĊ™@ǃŹÈ¯@Ý»ÇnˡJƒbÛèÇnƒ„ÅK¯„ġĠŹW¼Ålm„@¤n²ƒŽÝb@b„š¯lƒ¯@ƒšÅ¤W„™¼nV@x„„°@Vx„@lbUblbX¼W‚œšÇ²lšUŽ@¼ŽV¦@bÇlVxUbVxÞbVšœbm¦ƒVV„'] + ], + 'encodeOffsets': [ + [[ + 100452, + 39719 + ]], + [[ + 91980, + 35742 + ]] + ] + } + }, + { + 'type': 'Feature', + 'id': '6327', + 'properties': { + 'name': '玉树藏族自治州', + 'cp': [ + 93.5925, + 33.9368 + ], + 'childNum': 6 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ɆÿĢV°°VÈklVôŤXÞW„ȮÇÞXnmÞnlaŤmĢLƐaĢƒôb„™ĊU„VlkǖKÜaœn°mĊUšVVkÈWV_ôKŎǚ@šz°ašbXyVI‚JĢwVX„a„KVbna°@VçVKXƒÜÞWšn@VVÆwXšĠƒÞ@Ŏ¯ƨġÆ@ȍ„LlmUaô»ÆkĊ±Xb„°`šÔV‚kȘƒĢ@Všk°šLlx@xż@Ċn„Çź»ôĢ²VÆ҄@@bÆÒXklV„KšV¥Æ™ČUšk‚l„nxl™çƒ¥ċç@±m¥ƒwÅJƒ@™™™Vƒ„mÈIléÈa°U¥™™@kÞV‚K²ÑWƒ°w²Ñ‚K²ñšyƐ„ÝšVmw„»kkWĉ—JWUƒVÅwƒL™mÅ@@ƒmw„kn¥Vу»°™°@@»„¯„Lla„JônV‚UůƒU@W¯Umѯ¯k@WykU@¯„wV¥ƒkVwţƒk»šwWǜĉĶçšK„ƒÞ™ÇaĉbƒI™lUƒ@kwƒWƒXUƒ°w™±@UšKn£Wĉ—KWxƒkĕVƒšamwXw™@™„Wmnk@aƒVkƒ™bĉLƒl™Imm„wUÇ‚Wx™nÝJn@¥Æ™kwƒaXƒÜĉ™¯ÅV¯¤mkƒx¯kķܙ²VWôŹVUƒƒ@V£™¥@ƒ°wn@™m@¯@UbUôķŽmn@ÆÛ@ÇýVaUÇĊVƒ@Çlğ—¯xÝŤ™lVÈÈVƒx„ƒ¤Vx™„kK@™@ƒx@„kVƒĖġ¥kIWbXŽŎx@nƒxÅUW`ƒ_—@±ŽUa™LUxƒK¯„WbkVlb—bmŽƒLÛÆWIUwƒWkwÝV@kI›ŽéUb›UUk™V¯Km¯k@Umݐ¯m¯›m—L›Þĉ‚ÛUm™ġ£UxkKm°™Lw›šk@kšƒVm„ƒKVUk›@¯a¯Ģ™móKUU™x™ImlÅn™™ÇbXèVVU„°„@ŽšŽ@„‚xXnmš™ššŽ@¼ğ°@²ÆxU‚„²šWÆb°š™š@¦llš™„XLmĬ@҃šÞô°@ȦUJÇaƒLóU¯š@°ġƴ@Ɓ@mɱJğ¼ǕššÒUzƧ‚m„n›mğ°ǫ¼knÇ@bġmmV—@VaUaƒLƒk™l@„kLW‚ō¦¯@ƒb™KUn™JĉIó`ċUÛb™wUw±ax›bñUmƒƒ@™„ƒ@—bƒaƒbǏÅXm˜„ƒÝ„ÅôVbގ™bl„UšÞVޚ„U‚°„VUxƒ@U„V„@l`™¼nL@Ċ„LW„„¤kXķWġXUVVVķ„UbVb@°kVVxÈa‚@ȦĊbšaźJ„U@Ț„„˜Vœƒlš@XkôaWƒĢ™Þ@laĸUÆb²mÞLĠ™ÞÑôbšÒĊa„JVbm¦'], + 'encodeOffsets': [[ + 93285, + 37030 + ]] + } + }, + { + 'type': 'Feature', + 'id': '6326', + 'properties': { + 'name': '果洛藏族自治州', + 'cp': [ + 99.3823, + 34.0466 + ], + 'childNum': 6 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ÞVŤ™ÈK@ĀlxV@„Þ@„wŎalmôLšnXÆÜ@nV‚°@œ„°WmVKŦLÆmȚԂҚUX¥l@ĢJVš@„ŽƾI@w™W°™™Ån¥›kÅÝVwôƒÈç„@lÑĊĕša„JnaÆLVw°kny°UnkÆVȍĊll¦„Vƾ@@™nUźƒÈǂIn°X„wÞKô¦VWV£„@£°ókċ±I™™am¯Va™»ČĉV¥°™@m„k„¥l@„Ċm@ašU™mwXƒ@wÆxšmĢ_„`VnÆbšKVw„@@ƒnUVğVmVVöIlŽl@@çÛmƒ£UDŽw°@VUƒ¯»m¯ƒJōĖÅLƒa@»ĉĢ±`U_k`ÇçšóƒkX™lK@ƒakÝރš£WċkÝ™kxƒJݯÅw™xķxmIÅx„@k±J@ýŋš›¤UœkŽmV™°ÅÝxkwmġƒnÝVU„š¦ƒŤlmšóXk¤™UKƒç™@mVkK@klīƒ£mš¯VUbƒW¯¼ċb¯ĵam¼mVX„m@k¤ÇX‚ÇbƒUƒ„¯J¯„¯È@˜™bVXVҙ¤V¼kxݚV„@l‚V—„WxÛ¦Wš¯šmKnlŽkŽ‚šU‚@nƑUĉ„Ý@ǺۄċUĉ¥™UƒÞŏ™z±òL±Ò¯xX„±ÒLÝU@lššV¦¯‚ÇbkêÇJƒnU„šš@š„‚ÆI„xn¦‚‚@²Č脦‚è'], + 'encodeOffsets': [[ + 99709, + 36130 + ]] + } + }, + { + 'type': 'Feature', + 'id': '6325', + 'properties': { + 'name': '海南藏族自治州', + 'cp': [ + 100.3711, + 35.9418 + ], + 'childNum': 5 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@VxƒŽńƒš@ĊĠŽĊXÒ°UƾĕÞm°£nb@‚@LUUW„Ûº@nlÆǬšĠ£ÞV°UXb‚VȂǵ„éƒ@kWanm°@™x„z„K°¯ĠVšƒVƒkw™Lnm°kÞxÆa„¥@‚wnĉƏ@™œ_l›š_VwšmĸèŤÅČU@™˜Wn@ÑmKU™nğƒK@ƒ°¯UÿV£nmšLl™„UƒUÛé±óókkmƒnƒakV@Ç°óÝXƒWəÞťIţxmm™VÛUVȂÓnWyȁĉkƒVš°WnkĊa„¥‚_œK°ÿWna@ƒmU¯wƒlÝIU¤UXó¥ÝLƒx¯WmJÇÈŹ„mV@šƽ@ƒUk¥ĉkċŽÅUml¯Vmz¯lUxÅKmbƒI™bĉĖk҃@Çèó„UxÆޜlm¦šÆ¯ššX@x™Ž@Ž„²ÝlƒÈ™JV²klVl¯ÔlšĉƙްlUǖÞ@ššĶ¼nŽUôôŚ'], + 'encodeOffsets': [[ + 101712, + 37632 + ]] + } + }, + { + 'type': 'Feature', + 'id': '6322', + 'properties': { + 'name': '海北藏族自治州', + 'cp': [ + 100.3711, + 37.9138 + ], + 'childNum': 4 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ōmġxƽUm±Lǿþġԙ@kxmWƒb¯I¯‚mIUx@bƒbŹVǎƒkĵbƒlĉI¯¥ƒUšm@ƒÆ¯È@šašóšUlƒČ»@w›œ»›wXaƒƒó°ţç݄kUƒaV¥ÅbÝw¯lmnšKlxU„™„ğU¯°ƒLƒyšw¯@mnXb‚l„@ƒêȁǶUWa¯VÝUğ¤ǫ™kÅ@mܹXƒVV@K@ma¯¤ÝnƽĖ¯V@„ƒ¼„ôlèk¼„¦˜xXŽlbnKšÆx@Ž™bUx@nnxWJţ¦ƒmƒ¼ñ@Ž°¦lUÞlÈ@ĠxÞUlxÒó„ƒl¯bmI™ŽÝVÛaÝnƒxVbkbÇwřÇKn±K™b„šƒb@V„xšLmŽÛŽŻbk„ƒVó@™šŹxó²›Wkb™@¯U¤ƒźĊ@lUX„°lÆôU„ƒlLX‚aœV°wšxUb°xÜôÈKVkÈmlwškÈKšwšK™™VUŤĉŎ»„»„Il¥na°LV»²¯Üy@wĢƒ°ĸwlwĢw°±„_lVkš@°ƒbƒÆ¯zƒ‚„š„@l_„@Ģ±lŚVlUaރ„LVƒnKlnȏ°IllČa˜wÞÑ°x„UU™@wƒVkmĠLô»„KÞýôaÞ¥ôĀÞmƁ„™‚mUƒŎV¥Èl°²°a²¥V„@@w„amm@Ñn@Æ£żƒVƒĠ£@W„¯Þƒšl@š»@Uk@'], + 'encodeOffsets': [[ + 105087, + 37992 + ]] + } + }, + { + 'type': 'Feature', + 'id': '6323', + 'properties': { + 'name': '黄南藏族自治州', + 'cp': [ + 101.5686, + 35.1178 + ], + 'childNum': 4 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ôl²ôÜê„VƒVkš™KmnU¤VĀ¯°@„„LmĠVšnLÈL@alb@al@n°Vš_XmWUÈamaVIn@n‚aV£œóVWƒ™U£°ašxÈ¥@™‚aĊwȹ@óša™ƒğbm@k„w@mƒaÆw@ƒ„In¯mmƒ@UkkWƒÑÅ@@kċÅçVkÝJÅkVykŹl¥@¯š™ĢU܃X¥òý—mmX™ÝÅlmU@£™Wly™XW»Åbƒl@aI›»k@klm@UxUUƒVƒ¼¯Xƒl™aUnķ‚ƒI@x™@¯„ƒK™„ĉUU`óšlČ¯ô@¤ƒÞJ„k°xVŽ„n@ŽmbXŽ¯Ā›L`ƒ¦ĉbml¯X™ŽUŽl„ȂĊXzm‚ȁÔU‚ÜVšUnnŤwŦJɚ݄XÞW¯ô@ÈlU„b„mln'], + 'encodeOffsets': [[ + 103984, + 36344 + ]] + } + }, + { + 'type': 'Feature', + 'id': '6321', + 'properties': { + 'name': '海东地区', + 'cp': [ + 102.3706, + 36.2988 + ], + 'childNum': 6 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@@҄bš¤ÆI°ôU¼š°UŽnnWx™š@b¯L@lUUWbXxWl„ƨnxVUllš„XVŽUŽnL@lȀý²KVnƾ‚ĢwV»ƒ@mÞ£nÆƒÞÑmL™ƒKUaVżĕƒWVk²ƒƒÆÝ@ƒXw°@„ô™@a°wóUUmIk™™aVmÞwmknyƒ¹VÿƧnŏm£X»˜™naV±„Ýw@ašb@aƒm¯„ĉVó¦kÝWKUU@WanU™b@ôǺĉxb@šÇ¦™w¯bV¤„šUX›ôU¤bmm@UJnbÇbXVWn™`¯Umk@@bka@bÇK'], + 'encodeOffsets': [[ + 104108, + 37030 + ]] + } + }, + { + 'type': 'Feature', + 'id': '6301', + 'properties': { + 'name': '西宁市', + 'cp': [ + 101.4038, + 36.8207 + ], + 'childNum': 4 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@@kmKVUƒWk™VkUmwƒƧXkWwXaVV@k°K@aš™XwmmV™¯V»¯óÅJ™£ƒamŽ—X@šċVţÆķç™nUx™`kœ›`@šÅmĊx@Žƒ¦U¦„blVރŤèô¯„„Wbœx›¼œŽ@xċ¼k„™V™ô™bÇ@Å°@„™n„V°¦ĊJ„kĶa„lȍźU„a@aVwnJ°°J„anXlwš@ĢÓ'], + 'encodeOffsets': [[ + 104356, + 38042 + ]] + } + } + ], + 'UTF8Encoding': true + }; +});define('echarts/util/mapData/geoJson/shang_hai_geo', [], function () { + return { + 'type': 'FeatureCollection', + 'features': [ + { + 'type': 'Feature', + 'id': '310230', + 'properties': { + 'name': '崇明县', + 'cp': [ + 121.5637, + 31.5383 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@uŏu»GPIV±ÐɃŜ{\\qJmC[W\\t„¾ÕjÕp‡nα|ěÔe`²„ †nZzZ~V|B^IpUbU†{bs\\a\\OvQ’Kªs†Mň£RAhQĤ‹lA`GĂA@ĥWĝO“'], + 'encodeOffsets': [[ + 124908, + 32105 + ]] + } + }, + { + 'type': 'Feature', + 'id': '310119', + 'properties': { + 'name': '南汇区', + 'cp': [ + 121.8755, + 30.954 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@`y”ĉNǕDwǏ»ƒÖLxCdJ`HB@LBTD@CPFXANC@@PGBKNECCBB@EBFHEDDDSNKAUNBDMNqf[HcDCCcF…@EFGLEBa@ACoCCDDD@LGHD@DJFBBJED@BGAEGGFKIGDBDLBAD@FHBEF@RFDMLE@SGANFFJBANPH@@E@FJjRIACDMDOEKLFD@DbDAJI@AP@BGHFBCBGDCC@DCA@CECGH@FKCEHFJGBFDIHACEDNJDCVFBDCRKRLDLITB@CjNJI^DBCfNVDHDFKHAFGDIICDWBIF@@CFAjFJNJBBHD@CJ@AEFJ@@DH@BFBCPDBMFEQGDIFCNDHIP@HDABFACBJFHEBSZC@DP@@JDBƤ~'], + 'encodeOffsets': [[ + 124854, + 31907 + ]] + } + }, + { + 'type': 'Feature', + 'id': '310120', + 'properties': { + 'name': '奉贤区', + 'cp': [ + 121.5747, + 30.8475 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@~T~JjZdDbLXDLCB_J@@FHFZJJIAGH@HGR@BENBLID@@LFCDF\\FpDBDb@FAHKFE†@dEDDdC\\GreNMACVMLBTMCCFCEGFAA@DAFDLMHA@OD@BMEWDOC@AS@KGAI_DcKw„ÕísƝ‘åĆctKbMBQ@EGEBEJ@@MBKL@BJB@FIBGKE@ABG@@FMFCPL@AjCD@ZOFCJIDICIlKJHNGJALH@@FPDCTJDGDBNCn'], + 'encodeOffsets': [[ + 124274, + 31722 + ]] + } + }, + { + 'type': 'Feature', + 'id': '310115', + 'properties': { + 'name': '浦东新区', + 'cp': [ + 121.6928, + 31.2561 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@EN@JJLNHjLJNR^GRYVBNZJRBV@PDvbLNDN@LGNER@nCNQNuT_TIVFV\\Z\\XnDrI|[Ʉś²ÏJUHOƣ}CA@IO@@CYDATGFIEDAEBBAGCO@GJMCEDCJRHEFANOCADAEG@@CI@FE@BDIC@AGIAIMiEEB@DE@AJCXJDCJEHGBELGCUCeMAD]CIJiM@DSAKJKCLQDQACUECDMIFCBDJGECHAEIWCK@GLMCCGEACNKCEJG@MMBMC@@CIJUINT@JAJSTEPZZCP'], + 'encodeOffsets': [[ + 124383, + 31915 + ]] + } + }, + { + 'type': 'Feature', + 'id': '310116', + 'properties': { + 'name': '金山区', + 'cp': [ + 121.2657, + 30.8112 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@L@BIHFN@@EE@@EFBDGDAADVDD@@EF@CA@IIsRE@GDAF@BF@CV@|FBCHBLCNHAFCADBMDCFZXHILBVEEQA@MWFARJJ@DCX@@TEFBLHAAERE@AJABRPBNK\\BrJ\\VHGND@CNADKDADQjGAGNC@GJ@FCFFHC@JF@@dLBDSFADHVG\\DTEPDDHJALIJkJDJCDIPE@YDCBiK@DONE@EH@BAF@HLJA@EIA@ALKNA@@FIFAFHR@NALadsæąyQY@ƒA±DʼnXUVI^BF@FFF@HBJEDFFGFEBSRkVEXGHFBMFIVW@GAEEFOIAIPKABGWEKFSCQLQBSEIBC\\FdBLRR@JGACFDDEF@AWB@LJJYNABBA@CUEGPaO_AIE@MYMFIGAEFECHSAAKAO\\[JEDB@E@MMA@@AGBKMGDFFCDDFEDFJF@NPBAFLHFH@EDDHBADDC@DDCDHHCDDFDABDAD@FEFOBCJ[D@HEDDNJBDDHABJIBBvGLBJAH'], + 'encodeOffsets': [[ + 123901, + 31695 + ]] + } + }, + { + 'type': 'Feature', + 'id': '310118', + 'properties': { + 'name': '青浦区', + 'cp': [ + 121.1751, + 31.1909 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@RUNKdOFDJCbRFMLAHPLDN@JGL@@APBWYCKN@TU@SHGCEJIDIJKVIZVNM`iNY@CIE@CA@KBOEGEUFCCSADEIEFCDDDIDDHC@CKIeDCG@IG@DHWFEEGCH@@GO@@O]CNpeEQDBFME[JC]DGF@CKOA@QSB@GB@@GW@@ED@AQIJIAAFE@@DO@CFI@KNG@CDACAFEGKGBEGBDCCAIFCCLIECFI@MBCLDHGNAHSF@DMB@EEKBA@@C]DEICFG@ADBHGFKCDAKKHKD@@FHGAANGEEFCHKCECBCKG@ADKCNE\\[A[I@@mGBDQQEO@BCE@AI[AML@JGACLOAFKEMM@EQKC@CUCBCCBCHEA@FF@@FM@GEAJK@GNF@EXPH@FD@M^@HIADJCFDBER@DK@@DE@CAKFOCCBDHIBCNSB@GFC@GQEEOWFICGDUAEJIDBTAHJHEB@DIF@NE@H|HBDBEH@DKBAHEF@HEEUB@FGFGCCCE@AHOB@NH@PRLVNNFBX@RC€PbAvMtBfH@DJF@ELBFA@EH@HNED@FFB@HLC@CJ@@DJ@PIRf@HE@CFF@GPHD@DKE@FFBEFFD@DEFCA@DD@IjCRFBAHFDKD@HF@@PM@H@BlbDJDBFEF@DLXB@HCD@@IFCBIFEJD@FDC@FBALLF@PAACJERACAJCBD@EL@JD'], + 'encodeOffsets': [[ + 124061, + 32028 + ]] + } + }, + { + 'type': 'Feature', + 'id': '310117', + 'properties': { + 'name': '松江区', + 'cp': [ + 121.1984, + 31.0268 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@@DLDFRN@FNELPBDKHB@INK\\BBJF@ADP@RFCRHA@nJ@B\\[\\MFLDBCH@DLDADFGLEDFFMHBBGH@EC@GLLLCBLDHEAGBCH@DEFJ^C@DB@LAFFA@CNE@GTMBGHKCAD@NEJFDKJDDJEDBCDHAAFLHFHBEBDDCH@LMJ@DEP@@CF@BEJBJIBRC@@FX@@HA@@HTA@RPBDLE@CHD^\\INFAERCfFMo^D@PP@@HG@HDFFXECGH@@JDHfCLJ@DGDCCCJCCEDJFCFTBDDVEHFPFLAB@NBFCFKFC@CHIACNOHWHCAAFIDD@CDAGEI@ACFMF@R@R_@GQED@EGFEQEDE_IAHKAEXCQUOQCUDEN@ZI\\DDmAMHCICDSOC@EG@BKHIGMIBCGOCSF[CUHCGEBCTKA@cE@@IGDEEEDI@@HMDBHiHCRCBCLMB@DMCGH[UqI[AMLOAAQIB@BQFBFGBAKFE@SW@CDI@QIEBNXB@FRUFKAGJYWDENCCADBBEMGKDGAAD{EU@@DAEE@CB@HQFJt@JDBE@@FC@'], + 'encodeOffsets': [[ + 123933, + 31687 + ]] + } + }, + { + 'type': 'Feature', + 'id': '310114', + 'properties': { + 'name': '嘉定区', + 'cp': [ + 121.2437, + 31.3625 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@F@LI@IDKJADKIEJICADGACFECCJ@HKCAFOHAJI@aCBEE@ICAEB[GFGCKL@FGEIFADMLCAEJM@ELQECEIG@BE^QKKLQCA@EHBIGQ[GEHOMGGDHKH@JOECFCjCBEFDNCACMBCILGTABDLEEOEIG@GFIMM@CGKFBFCDE@@GEAGEEACIcGaHMFITIHDN[AKF@FS@OA@BK@IHM@KCGOKBENaQIDECcPMLQVFHFB@BFBKLGD@FAJOVGIACQ@A`LPCB@JEF@RU@ANS@@RCL\\HIFpRBFRBBDKLLDADJDGBFDABHBEDNF@DGBBBADKDAHC@\\JJFBDEH[DEFDH\\LX@XLBLbT@DNJLDCEL@VJABJNDHB@HBHYFBAA@GNFB@@AFB@AFABFLFBHFCL@HJBAFBLC@DN@HN'], + 'encodeOffsets': [[ + 124213, + 32254 + ]] + } + }, + { + 'type': 'Feature', + 'id': '310113', + 'properties': { + 'name': '宝山区', + 'cp': [ + 121.4346, + 31.4051 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ˆmÖoÖiƒ½[s[YEUJU`SCIEBCCWJY_LIICDWU@@FaBCJIB[ICH[@@CDKEE@MK@@IMCAEBCH@AMFI@SMGEFGB@FK@BHCAIFJNQD@FEBDFMBKGACG@ECWH@@CDDTOEEBGEK@GC@EE@GPHFR\\JHGA@FDBKRLL]RAFH@FJFDKR@FINBFKDCNEBFJEHK@DLEH\\HFADB@JFFDA@bIJGBEPDBGLI@DDEFBDCHDBIJJFCLIBCL@JKJE@ADHDBHJ@HIBBDFHBBAEIJ@BJFAVL¢ˆ'], + 'encodeOffsets': [[ + 124300, + 32302 + ]] + } + }, + { + 'type': 'Feature', + 'id': '310112', + 'properties': { + 'name': '闵行区', + 'cp': [ + 121.4992, + 31.0838 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@T@@ELE\\BCMJGJSNEbGdHDJFBJAFIEIFCEWG@@gMENSFCVJFAxR~B@IH@AIiI@GE@FGEAFQPDRiV[\\DFSGMHAXHDOMCJCDETBBNVJJI@DD@ANNNH@FILDDMFBDHNDHKL@XDFGLD@EHGFD@DDB@CDDHCDAEAHG@ABOJ@BIaC@CECLKPFNCDCJBiQEIF@@@OGBMIAEEBMTHF@NKEC@QFEGA@EBCKAACHCLJHEFHHB@AFCAIEACIC@HG@KCCDC[ECEED@KC@KJMAAFQ@GHG@BHIJYIGE@EI@A`KDWCaKcCiY}I}S[CYJM@CFDVPRRVWDFžLBBG`JCFRFEFFHC@RF@HQ`Q@E@ENBDJ@HFCB@DCCEJBBGDGXMPBDGJ@DEDELEDMA@DJF@DMZ_jMNYUUJILCJIJDFGH@TSVM@DLXZ'], + 'encodeOffsets': [[ + 124165, + 32010 + ]] + } + }, + { + 'type': 'Feature', + 'id': '310110', + 'properties': { + 'name': '杨浦区', + 'cp': [ + 121.528, + 31.2966 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@V@CXJDKJZ`XIDDFADJvSRMDM@mFQHM@KCMKMuaOCU@BDAJSX@HKJGD@PNJCJWAGT@R'], + 'encodeOffsets': [[ + 124402, + 32064 + ]] + } + }, + { + 'type': 'Feature', + 'id': '310107', + 'properties': { + 'name': '普陀区', + 'cp': [ + 121.3879, + 31.2602 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@F@@FHDL@HFFAPFCSDC@@XGFDH@BDLHNACEFA@ERCIMJEDBAGL@@EHAFENHHJ\\ONQBQCIBC[MKACKI@GGGH@I_G@CW@[DMHCDIBMTDHN@JNHEH@FJFPKFACSBKHDJNABDMDECAFiDEDFDIPG@GLHCNH'], + 'encodeOffsets': [[ + 124248, + 32045 + ]] + } + }, + { + 'type': 'Feature', + 'id': '310104', + 'properties': { + 'name': '徐汇区', + 'cp': [ + 121.4333, + 31.1607 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@RADL\\NCPHFfLJaJ@FWLGMGIK@IFMDOYYFOTSBI@IMSAMSACFIDNDCPWGGBHNET[CU\\QjOCERFBEHF@@HjJBJG@@J'], + 'encodeOffsets': [[ + 124327, + 31941 + ]] + } + }, + { + 'type': 'Feature', + 'id': '310105', + 'properties': { + 'name': '长宁区', + 'cp': [ + 121.3852, + 31.2115 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@HFFB@HF@DCAELENSJADCNG\\CX@@D`H@JHGHHJ@BINBFUGEDO[MCKQB}AwQEBUIEDMTNF@hH@FXEDFJEJIB'], + 'encodeOffsets': [[ + 124250, + 31987 + ]] + } + }, + { + 'type': 'Feature', + 'id': '310108', + 'properties': { + 'name': '闸北区', + 'cp': [ + 121.4511, + 31.2794 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@CSG@BQGODUPWTOBQAAFMECKBGEMFKEOHADDJARMR[PGI@TEJBNG@ADBFND@JL@@NFFCL@D\\@DG\\JJADI'], + 'encodeOffsets': [[ + 124385, + 32068 + ]] + } + }, + { + 'type': 'Feature', + 'id': '310109', + 'properties': { + 'name': '虹口区', + 'cp': [ + 121.4882, + 31.2788 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@bA@E@QHSXBDIMI@OHCLI@GTWBIACQAYIOFGCENBBARSPOXCVHPARH@DT'], + 'encodeOffsets': [[ + 124385, + 32068 + ]] + } + }, + { + 'type': 'Feature', + 'id': '310101', + 'properties': { + 'name': '黄浦区', + 'cp': [ + 121.4868, + 31.219 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@NEHFLAFDHDPEAMZUHQQ]IMKJG@EPERABHBGRUCCNGV'], + 'encodeOffsets': [[ + 124379, + 31992 + ]] + } + }, + { + 'type': 'Feature', + 'id': '310103', + 'properties': { + 'name': '卢湾区', + 'cp': [ + 121.4758, + 31.2074 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@VDHQGABAFQFOH@LIiKKHEXI@IbAFZB'], + 'encodeOffsets': [[ + 124385, + 31974 + ]] + } + }, + { + 'type': 'Feature', + 'id': '310106', + 'properties': { + 'name': '静安区', + 'cp': [ + 121.4484, + 31.2286 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@DLLB\\NPGLFHUDMYABEeKEVMAAJ'], + 'encodeOffsets': [[ + 124343, + 31979 + ]] + } + } + ], + 'UTF8Encoding': true + }; +});define('echarts/util/mapData/geoJson/shan_dong_geo', [], function () { + return { + 'type': 'FeatureCollection', + 'features': [ + { + 'type': 'Feature', + 'id': '3706', + 'properties': { + 'name': '烟台市', + 'cp': [ + 120.7397, + 37.5128 + ], + 'childNum': 9 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ŤLšLllVń²è°xżĢĠÆl҄šŤbœ„V¤ĊXnŽlĢVĊ„Òš„È°ĊŰÞè˜L„±@џn»VUźċ²»ÆkôVɆkĊŃ²kŤVVwUUVmUaƒ@KkU@ƒmUmmk@UwUkmW@UVIXa@ƒmw@a™KULƒaƒx@Uk@UbWU@yULmK¯@kXƒVUwm@@JUUknWKUVƒLUbU@™wWykIƒa@w@mUI@ašUVynIWa„k„@@W„bl@@knmƒK@wnIl™°Kna@V¥ğ@ġUķ»™¥@UōJƒX¯¤k@™wmI¯‚k@mwƒak@@šlX@bUJ@VƒbknWxkLkxlŽšLVlkLmŽšb@bU@ƒbU@VbU`Vb@n„L@Žmb—U@˜VnUVmnU@mm™@kIUWVIUK›VkkUJUnmL@VmLUaVWaXamU@™™U@KUUmVƒU—JƒU™VÇwğn™mƒ@mXĉV@l¯xnô'], + 'encodeOffsets': [[ + 122446, + 38042 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3713', + 'properties': { + 'name': '临沂市', + 'cp': [ + 118.3118, + 35.2936 + ], + 'childNum': 10 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@˜bXlƒl@zlV@lXXmŽkbVVlš„U@Vn@@Vmb@XšKšVX„WJ@XXl@„‚ŽÈbVLšUl`„@XXV@VVUxVbUxVbš¦„@‚WnXVJ@bnVUzl@„°Æx„U„KlU@mUUnUlUVWVUnVV@XX°V@Všll@Vk„aXVl@Ux@bmbXLlKlb@b@bUJn@@„„b@n°x°K@an@@UlLVKVbXb@bVVnK°LVa@UVa@™Xw‚KVxnLšU°@naV@UWUkWƒULmV—wÝKUUla@aó_@mƒK@aUU@ƒWUkwVm@aVI°W„@@IUw@a±¯@¥kUVUm@a‚wkw™@ƒK@kVKk@maXalI@alL„WXblaVLVU„V@LnKš@„l@w˜aXašLlnUl„LšmV@n°J@_VmnIVym£UKmI@WnIVm@anUVmÇ_kġIÅWUXÇm@U@ݯÅ@ƒ™@naWƒ™IVW@IkK@klKn@naWIƒmk@ƒaƒbkKkLWn™WkLWmk_ƒ@UaVƒUKmLUw@mn£WwUmU™ƒaóV@UkUm@UKULUwmJUX@WW@XҙzVblJXŽWXk@UVWK—X‚¤UL@xU@ƒ@ƒVUaU@@XmVkLmWkXUyÝLmKXnVŽ@n@l™x@bWLnVVn™`knULmxUl„„WLXŽVb@VƒK@z¯x¯¼Wx™KUn@bk@ƒlƒVVVz'], + 'encodeOffsets': [[ + 120241, + 36119 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3707', + 'properties': { + 'name': '潍坊市', + 'cp': [ + 119.0918, + 36.524 + ], + 'childNum': 9 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@l@@UšK@Ž@L@bX@@VlL@JƒLUVnX@`ÜXn`V²mJ@bU@@n„b@l°xnnĸVƚ°@„ƒĊ£Þ@lWnÑnkʶJmó°w@kk»V@»ƒ¥k@V@kw@wVm„a˜Å„mšaô£ŎƒXI@mln„Kla@mV_UKƒ@kUkw@alW™IU»™mƒ—@WUIl±UUÅU›bkJƒ@a@wUKUaVIÆmXIWaka@m@Ul£XKVw@ƒUIƒJUkmJ™ƒVkU@a„ƒWK—ImVƒ@UxmL@bX`WXU@U`ÇkUak@@°UblXk‚mLUKmL@VULóƒƒVk@@Vlbn@Ub@ċaUJUbƒIUlVLUVVbVKX„VlVXU@mb¯@™VmKUwLWx@šUb@VUb¯KmLUU@aWaUaULkK@Vm@@b¯L¯w@mƒa@ƒm@UUU@U¦lJUXƒVƒmkb@nm„XVWŽkb™IVxUV@VUbWLXVƒLW`Ux@nk@Vn@x@VkJ@œV`mXkŽ@V„xV@lVššI@VULš˜VU„IV`°bVXXx„V@VWVnL@xV„Ub'], + 'encodeOffsets': [[ + 121332, + 37840 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3702', + 'properties': { + 'name': '青岛市', + 'cp': [ + 120.4651, + 36.3373 + ], + 'childNum': 6 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@„@nU˜JXLƒ„@blVU‚š„nIVl„IVJ@„UxWLk¤@V@nlbXbWJÅnUJVbVL@x@b„ŽlIœaÆVVVk²VJ@X„˜šnV¼šJkX@blxlV„@VLU`@nkbƒLkm@nWJō„ó¤™bƒn—ƃbUn@xlxU@l@„¦@¼UŽl¼ĊUnW„@šnĠmÈxšU„V˜I„VnUVV@LšV@šnVWbXb‚UVbnK@UnKVmVIllœUVLUJVXlJš@nnV@nmVUUm@—˜Vna@ƒK@mUaV_UaV@„aV@@a™anlKUk™KklwlKXwlm„a@UVI@akW@™l@„bnxl@°nJšxl@°£„WŎIUÑn»lašmô¹Ŏ¥VaUUkƒmkġWɱIUUŹ`›@kk@ĉƨřV¥_Ç@™Ĭƒ¤ÝL¯m¯£ƽóķwUW±ī¯kōaĉĕ™kğmó°ƒbW@UKkLUaƒVmz@V@ŽUxVn'], + 'encodeOffsets': [[ + 122389, + 36580 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3717', + 'properties': { + 'name': '菏泽市', + 'cp': [ + 115.6201, + 35.2057 + ], + 'childNum': 9 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@@¥šIVUÈmÞ»@UlU@Un@VW@UVmkk@aVUUKVÝ@UVknK@UV@VVnIVƒ@wnƒmwmKXaWaXI@UV@Vy²blkVKkam™U@kb@Um@VmUkmƒKmkXKWwkU@Ulƒ@UnK@UVUUm‚KXwšUVL„w‚K„U„@@Wl@@wUkV¥—@@I@W@_V@VWUw@UUa@aƒaWa—@@_mKUw™l¯amzmV—@WK™nU@kƒWLķaUKbÝVmV@UWÇbÛ@ƒX™°UbW@XŽm„Vlk²UJUbmLÇxÅWUzl‚¯Ll„@VkK™XUbWJ@bU@¯@™ƒkbƒLmKka™„@l™_WšXºVbUz@J‚n²V@¤lX„Ž„nV°šLn`WbXLôVlKVUšxXn˜lXLlU@bVV@„XJWLUVnVV@„„@n‚l„°nn‚V„KÈbVXÆJU°VnXV„kV@@xVL„@šWlb'], + 'encodeOffsets': [[ + 118654, + 36726 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3708', + 'properties': { + 'name': '济宁市', + 'cp': [ + 116.8286, + 35.3375 + ], + 'childNum': 11 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@nam_nKlVLXa„Il`š_@KVVXI@m@w‚ƒ„@@k@Kšnô@n`VbV@@L„L@KVVn@VX@‚VL„Jl„š@VUUƒU@Uam@Uk„wšKWaXamkJmIUVUÈblašUnV@kVKl@@lXL°kVJ@VÈnVJUX@V‚LXl@xVLnU‚@VK„V@a„IUaV@„bĊU„x„K‚kVJXUlV„ƒ„UVašI@WUI@KlUnw„mWk@WXIWƒ™U™L@Wna@Um@@UƒVk™UUlanWW@kkU@y„kWk—aWVUlÝbUU@kƒJUIU@@ƒ™JmaókƒLKǃUUkKWLk@WbkUUaƒbmKn¯°¥V@XwV@VanaVaU_@Wlk@WÈ@VUÈVVۂm„aklKȯlLVUX@lK@aX@@kV@VmV@VwnJV_UWUwƒX™am@kW@wVUkKVIUUVmU@UV@IVK@aUL@aƒV@Lm„UKmx@ŽômLkUWJ@šnXmlUxUL@Vkn›VUšU„@V™L™`Ub±LkV@kUKÇbÛ@ƒU™Wó_mJƒ@Wk@@Xƒ@ƒVLƒxUK™VWxLVnUV@VmL@Vk„@VlVXxWLnl‚Ln„VlUnn@@VlaV@nšlbULkl±aUzU@@VWJXbWbnLnxm„@xU„mJUUU@@VmLUl@VUÞVLUV@bllUn@VUXm@@VkV@VݼÇnUV™J@¦nnƒlnVlL@„Þb°KVV'], + 'encodeOffsets': [[ + 118834, + 36844 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3714', + 'properties': { + 'name': '德州市', + 'cp': [ + 116.6858, + 37.2107 + ], + 'childNum': 11 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@„¤@VmbVXnVVbVJššX@Žll@z„lVInl@„@bVxUbĠ‚l@Èbla„IšxXVWb@L™@n‚ULWVXXšWWLnL@`@LUVVL@lVn„JšU@UUk‚a„™nš‚Vôô„b°¼V‚ސXš˜‚œIÜbČa˜bôW„XÞWÈzÆmnLVJ°ÈnlV²lbnW@™@UƒUV™šmnwmkkKWƒkla@mVIUKUa™aUwmn™JU@@amIk@@bVlkX@mmUklUUƒƒa@_UaUUƒV@wƒw™WkXmW@I@WUaÝU@UXaWUU@UUVW@UUUWUn¥nUVa@m@k@alU@wk™LWa@UUm@@wnmU™wla@anKn_@alK@ݙ_ƒ@@WUUUmlkaƒIƒyU@UwU_Wa¯yU_mWUwkImm@InWWUk@@UVWV—kW¯U@VƒL@b¯b@l±¦@šVV@lUbV„@škxVnUšl¼XV@b@lV@nIWxnbƒ‚™@UU™LƒxÅxm¯ƒaUƒ™wU@mUÅVÝKULm@bmKUXó@'], + 'encodeOffsets': [[ + 118542, + 37801 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3716', + 'properties': { + 'name': '滨州市', + 'cp': [ + 117.8174, + 37.4963 + ], + 'childNum': 7 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@Vb@`„bV„kVlnV@nlWUk@al@nJ@bV@šInmVxšbVbVLUJ@nkb‚lX„lLnlmx™nUš„V@V@šmXn˜lbĸ@nnVx‚b@lnXV@UJ@nVxšxnxVbÆVn¯ƒĕ‚@@wÈçUÇlķVIœb‚@„Çmk@¥k@UkUK@aWakUóJW_UW@wkkWK@U@Kš@XUƒƒUkmUUalKXala@U@kkWlkÈl@kšV„mVIVmU_‚a„ƒƒwnwVW@wƒwUƒ@wU£ƒwkJWIyUI±bk‚VUJ@nmV™Ukl„Xmx@lnbW„kVƒUkLWŽƒxkKUUmUkb™J±—LÇxUKmkUmkkW™™a„mUaVkšJÆ_²KĠ@U„W@w„U‚¥nUWwK@aÝUkÅVaVK@akLWƒƒƒ¯I@bnbVx¯JW„ñšWbUL@šƒŽnV@VmbkUUV@IÇak@@bWak@WJUœJWL@bXV@„‚@„V„Jlb@zUlUŽUImšnbV‚mz@°UV@V™bV@@V@L@xLmKUnmJVX„J@VkLW@UVUL@b'], + 'encodeOffsets': [[ + 120083, + 38442 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3715', + 'properties': { + 'name': '聊城市', + 'cp': [ + 115.9167, + 36.4032 + ], + 'childNum': 8 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ô@VWnL‚an@VKÞLÆUnVV@šxV„„bn°Æw„wšKVVš@„maXwmJU@@k@aWUk»V™Umlw@™UƒVa@kUU@™²¥@k°a@a„K@U›ƒU@mmm@ów—ѱ¥¯@@w™Kmw—I›¥kU¯UmakJmIUaƒVkKUkm@VUUa™Uƒ@UaƒKUK¯@™w™UVŽUIUKVw™k™¥™wƒbVŽ@xn„@lWnXxlL@`„XlJX¦l°XxW¦@¦Ul™n@Ž™@@Um@@VXVmx@¯bllUnUJ@VULVn@b„xV‚VL@b„„VlnVVblV„ÈnVlIVJœLô„lJ@xl²„'], + 'encodeOffsets': [[ + 118542, + 37801 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3705', + 'properties': { + 'name': '东营市', + 'cp': [ + 118.7073, + 37.5513 + ], + 'childNum': 5 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ͬUǪlô@°Uœw°ōĠ¯š»Ģ炻XÇ@w™wƑa™ÇƒkwVƑ¯@řķUmm¯w@kƒa@mV@@anIU±m_ÛW@_mWVU„K@IkK@UW@@a@K@™L@Vk@±U@UV@lm@mUU@kLm„„xV¤@xV„„x@xUXmx„xƒ„bV`UnUJƒn™U@lÇkkllX@l@VkbWbkLVbnVVl„„WV™@@L@VXLll@xVXX`ôIlVXb@bVLVll@@¦nlƒÈ@›aUJkĸVÈÇè@x'], + 'encodeOffsets': [[ + 121005, + 39066 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3701', + 'properties': { + 'name': '济南市', + 'cp': [ + 117.1582, + 36.8701 + ], + 'childNum': 5 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@²¦˜Òôxn@nn‚@V‚œ„°VlXU˜UX@Vl@XVmX@JnnlJVxnXV`°zXbV`VxV@„z„JlbkŽVnVV@X„@š`@ÞkL@bm`mL@bkbšxnVm@xn@VV‚@XbšKl@xkV@b@l@nUbmVm¦XVVV@VUXVVV@XVWb@VÞVVb@X@JnXlWšX„x@x„UVV@aVKVUX@lK@UƒIUWnIVmnL‚K@w@K@UU@ša@UVU@¯nyUman™VJVVk@ykaƒIƒU@@ƒWU@aXK‚IV›XIl@Xb@al@Èb@JVUlVna@UmU„@™VKXaò™Xƒ°IUwma@aU@UU@wVW@фw@a™I±`kbƒUkw™UmJ@UkmÇUUkmKknUVƒ@mJUkaWkƒa@KmKkUƒLmyXa¯_@WmImmbƒLmUkVUbUVƒJ™bƒUkkWJkUƒl™IUm™k™Lƒ›„lK@knaVmkI@mWaƒLUK™UU@@VmLUVLWK@UUUƒWUkkVmx@„Vl™¦'], + 'encodeOffsets': [[ + 119014, + 37041 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3709', + 'properties': { + 'name': '泰安市', + 'cp': [ + 117.0264, + 36.0516 + ], + 'childNum': 5 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@n¼šŽW„nxšL@x°@š¥Uk@ƒnwlUVl„XVV@VXL‚KVUnK@UV@šVVL„KXb@nlJUnmb@lkLƒ‚„œšKšlVnšJ„klVXIll„Vša„IVUValUnV„K‚annnJ@X°`Wbnz„KlVnL‚Ž@L„bXl‚bVlnI„@VUU@UmVƒ@U@Uš¥@VmV@@_Ua@m°@@ƒ„kmUUm@UVmn@nX‚@@a„anJVUVL„mlIVJn@nkVLVa@KVmVLXVVLš@@U°bn@VaV@@K@aVkœbWaXUVymU@aUImWXƒ@™¥UaVwUaVwUUU@WWƒ@k_™VUKÇa@ƒƒnmxkV@LVJ@X™JUbƒVƒ„kUWVUIlƒLƒwĉVƒaU@VbƒJ@bƒUUL@mVUK@wWkK@UVWUIÇm@UUI¯lWK@kk@UL@lmU™VkbÇaUVVnJlIn‚WbXb™LƒxVln@VbV@V„UV™@kƒƒIUK@UWm@UU@LƒK@KU@Uam_ó@™m@L@lƒ@„@x@nWJUU@L™`k_ƒJWbUKkmLn`mb'], + 'encodeOffsets': [[ + 118834, + 36844 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3710', + 'properties': { + 'name': '威海市', + 'cp': [ + 121.9482, + 37.1393 + ], + 'childNum': 4 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@VbUnVVUxĊ¼š¼ô@Þф¯‚WǬLŎUÆW„¹Uǃō¯ÑƒÝkţ™™ţóġ™óL™ł̥U™wm¥kÝmkkKóbÝ@U¦@‚mb¯LkšmJ@x„Lmn@lk@ƒa@Xƒ@ƒlXbmJUz™V@bVJ@n@x„blJXzšxV@Va„KVUXLlmVV@In@Vx„UlW°@nLVK@zXVVal@@V„w„bVKšL@bnx@„WbUJ@VnXVlVxl@nnnV@„lV@L„‚'], + 'encodeOffsets': [[ + 124842, + 38312 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3711', + 'properties': { + 'name': '日照市', + 'cp': [ + 119.2786, + 35.5023 + ], + 'childNum': 3 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@UaVUUKVk„JVaVIČb@Vam@ka@Ul@„Uô„VK@UnKVLnKlkWVa@¯l@VbÈlV_V@XWW_@anKVwUmVw@@Uny„UVblKVLX@„aô¯ó¥mÛĊÿÈ¥š™Þ¹lUīƒ¯Kĉ¼ʟbÇV™U™ŽUŽ™XmakJUnmV@bUnmJ@XnJVLn¤UzmJUn@`¯ImŽU@™nƒKVkkm™KWb—b@xƒk™@mL@KƒUUVUKkbWaƒXkK@bkJWbnbl@UL@l„Lš@lxx@b‚nUVlV@¦²°@bVx@Jƒ@¯XUJ@bUnlxVŽ„X@‚VV@b„L@nô`@bkbVVÞL˜xnU'], + 'encodeOffsets': [[ + 121883, + 36895 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3703', + 'properties': { + 'name': '淄博市', + 'cp': [ + 118.0371, + 36.6064 + ], + 'childNum': 4 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@nƒlKV@nVn@@kVU‚@²VVaUƒ@wmKXU@UƒUWwUW¯aU_ƒJUV™—VK@U™JU™@kUƒw@UlnWU_@›lI@U@wUml@@mVwX_„KWUXKVa@UVUUwšJlaXWUnƒ@mla„n„UVWkIV¥V@VVVI@a@akakLWKna@aVwk@WUƒbUlk@™k@U¯UWWU@mUUVUXkVmVVV@nkVƒLƒVÅwƒ¯k@WVXb›aUl@bV@@b@xkVVXVxkJ@nk@@ŽVLUlVb‚VXUVVUzV‚™LVbUbV„VWVkLmškJ@n±@UxU„VVkV@bƒx@ÒUX@xVVV@°J„„X„lK@bULUblÆÞV@b‚LXxmV¦ƒV@xƒXVŽğ@±LÅ`™IUlVbƒnšbXšllVnnlVLÈw˜K²ŽšIlanVVVlL„wXlK„VlUXƒma@knwƒWlkšVnU@mVIUl²aVJ‚zXJlI'], + 'encodeOffsets': [[ + 121129, + 37891 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3704', + 'properties': { + 'name': '枣庄市', + 'cp': [ + 117.323, + 34.8926 + ], + 'childNum': 2 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@‚yUU„U„kl@@aVmšLXw°»°w@y„L@UUaWXKƒƒVknwVKlmš_UmmUXK@ašw@k@mUWmUL@ƒ@™@£@KƒbÝV@akw™aULmƒƒbUK™LUU@lm@—°mL@nUJVxVXU`mIUxU@UnU@@lW@@bkLW@UVkKÇ°kLlŽƒbnUÜÇUUVÇ@@Xkl@XV`UbmbUbU@WxU@¯¦m°nL„aVblVXal@XKlLVVȄ‚L„KôlnbšI@„V@VJ„I@lVVÞaVkXU'], + 'encodeOffsets': [[ + 120241, + 36119 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3712', + 'properties': { + 'name': '莱芜市', + 'cp': [ + 117.6526, + 36.2714 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@lmnLVlÈVln@VnIšVlx„Vla²_šJlUUUVƒVw²@@mlIn™lKXU‚UUƒVaUašKUVyUUWVUUaVkUK@l@@mlIUwUWlU@w@aU@@LU@Ubm@¯a@V™@UKWUUKUn@LUbUKmlm@UIkJƒnUKUVmIƒb@b@mWm@Un@VVnnVƒl@„¯@@nVb@`U@Un@Ž™¦@V@VU„VnV@'], + 'encodeOffsets': [[ + 120173, + 37334 + ]] + } + } + ], + 'UTF8Encoding': true + }; +});define('echarts/util/mapData/geoJson/shan_xi_1_geo', [], function () { + return { + 'type': 'FeatureCollection', + 'features': [ + { + 'type': 'Feature', + 'id': '6108', + 'properties': { + 'name': '榆林市', + 'cp': [ + 109.8743, + 38.205 + ], + 'childNum': 12 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@™ýVƒnIW»ƒW@»kUÇL—݃U¯¥ÇIUWWїUWwX¯mƒ@»n@ÜÈķô™@a±kȱƒw„ÑmwçċmU»ÆkkVyIm™ĉÿ@ƒÝ¹ƒWnwÇVš™Åaƒzmmĉ¦ó™kVmx™xU¼VškVm_UlVlk„°IV‚kmJa›¦k™™LmmV@XmKnšlUô›VXbƒbƒ@UaÇLğܙ™Åwƒ£mKnmċwÅ@UkƒbmaVƒƒƒn@m¯aU™Jm_k˜@kWXyl@@kÅamw™LU™Þ™ƒ™mWÅzUKƒš™Uk±@™b@nnK‚bX¤mzVšŽVxÇn„‚¯„@ÒknWƒƒVUbkķÈÑWkk@Va™™U@„mUkbƒÝÅ@Ý¥ÇbkĬ™XV`kLǍVmalUUa™nV±nwmkƒJ@Inƒ°KVw¯UnÅ@¥™ƒ™U±bUU˜±œmWbÛKWnUm`UƒVK@bmnœm‚Èż@V„L@xƒxmš„Ť°nŽ@VmK™²VlšlKk„ô@„êÜV@VXLlmš¦UššV°Ș¯²ÿ@¥š@ƁĊ˜²IšmĶnnb°b„KVƒĸLl„Þ@UȮš™Ü°IVƒÞÝސlŽœx@ŽķĀWŽ„Ux„èƐ@š°ŽXnšlĊĖ°m„nƒšV„²V°ÒƦ„aބ„˜@zll@bÞĀšlš¼nKĊ¼óȂb²±šIǪÒ¯ĖV@„lxnVlk„JlaXwŌĉ„„@VnŽššlÆĕ„UÆLœèŌŤôxȚlUœ@šxlaUċĕXm„IWmnkšVVƒ„VW_@aÈWUUmk@ƒ¯çVm»™±W¯n¥V™mkXw±ÇVwƒ'], + 'encodeOffsets': [[ + 113592, + 39645 + ]] + } + }, + { + 'type': 'Feature', + 'id': '6106', + 'properties': { + 'name': '延安市', + 'cp': [ + 109.1052, + 36.4252 + ], + 'childNum': 13 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@@kkÇmIšmUwVkUƒƒU²WmšVkm@m`mIĢĕUƒVa@™mXƒƒÿVVkyUýšĕ@l_UmnƒW„KVkţ™™¥™aƒwğ@™@aôƒ„ƒWa„kUmƒa¯¯™a±£kx™mmxUwÝ@xmU™b¯K™wó„Ý@kmm¹Ub@lklVbmnnVUV@x›UknƧJUX@ŽƒLÇWkw™LķƧÅwWJk„ƒLkþĉxWz™JUnǚkš@Ɛk¼ÜÔÈKšè@°lșÆk¦l„n@l¼@l¯L™°UU™VÇ°ƒ¹—`m¼mXk‚™bUaƒV@U¯x@¦™Ç™„UUmlmUVm„nnmlkw™@@šƒ¦Å‚ÇLmx¯Iklš„@¦mÆ°VUx¯Lm„@J„InlmxU²šmVbkV‚bUnȎlKU_šWlīÈaÞ¦Æ@„ÞlanV@ƒšVšUbl@XlÇÒĸlŽVa„UX„lm@Ñ°ƒƒÈmUw‚U™nyW£amL@mša²@lšV„™VLÆynX„šÝšVššKnxÆb@lk@WzXŽ@ll—n`šIV‚°b@n„m„„‚Unb„aVlÆ@ČxmnnL„¤ÆxššĠÛÈKVb„@„aWaœU‚ókVm™nL@W‚UnnšKlšœ¥‚bnIlU¯JlƒUkVkn`lUU™V»šwnwlUôšĊ¥nn„yÆb'], + 'encodeOffsets': [[ + 113074, + 37862 + ]] + } + }, + { + 'type': 'Feature', + 'id': '6107', + 'properties': { + 'name': '汉中市', + 'cp': [ + 106.886, + 33.0139 + ], + 'childNum': 11 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@lKnb@n„lWb°bkxĸwVb@ł„nlŽ„ƒĊ¥šL@XŽl™ÈƒVblÈK‚b„akVwôml²`‚nœ@‚nVKœl˜k²xŎƒ°¦VU„JĊw@çnWçރVkUóÛ@¥kwš™šUmƒX¯WšÑkƒ@UymIUwlUn¥‚mUk²a°¯V»@™ÝVș„ÝċÅÅVl»@l@a°±@_kammÅb™a@ƒƒm@ż™KknõĠ—@mšƒ„¯LÅw›‚—LVxmb@¼kV™@mw¯wVakKW»X±¼¯Vkxƒb„¼WŽ@nx@x±bóakbƒ@ÝmU™@ķÓÛL™kƒVUm™k¯¤ÝLUlÝ@Ýz™š„x@x™°™™™bƒmƒX¯aUJW¯—k@bÇWƒwÛwWxƒ@XWlb@Žƒ„VŽÈUlwšLnl°VlUô¦œU°¤VšUxVXUxlbkVVlƒI„°„ÅVlU°m@k„ÇU¯xUlƒLUlVL@b™°ĠInĠ°ÈnK‚„@xÞa²n‚aUyšXUKVkšWô¼Èa‚z°JXUVÇV_„JVƒšz@Žnb'], + 'encodeOffsets': [[ + 109137, + 34392 + ]] + } + }, + { + 'type': 'Feature', + 'id': '6109', + 'properties': { + 'name': '安康市', + 'cp': [ + 109.1162, + 32.7722 + ], + 'childNum': 10 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@„bĊaƨèšwôô„¼šb°ašXVƒÞVUÞ@‚aXƒm¥kImx¯¯ƒV@anU@UÇéğL@ƒ¯¥V£mƒ@ÝÈb„K‚™„X°wČÿ˜ƒ„b@xÈblxȯĊ„„mÆUVƒ„nÈ@ƨÜLĢ¥ƒŹnƒ°Vnn˜K„aô_ȃšwU‚aXmnW‚¯kl›LXƒÇ™ō¦ÝaÅVmbğUn¥±wÅéVƒan¥ƒ„U„»°am¥„£ƒÝ@ƒ„wVw™¥nU„уUmmVwmķIÅaóVWxkblb@ból@œğÒĉ¤ċXƒ˜¯X™xk„Ç@óÆÅx@š™xķ_kmݎǣkblb@`¯²@bk‚‚@k¼ÆUČƃÞǚÞU@šU¼¯°±bVlnm¦kVVxnJVz@‚l„™ÒXW°n„™V™šlx@¦ôÜVUl݄Xèm@è'], + 'encodeOffsets': [[ + 110644, + 34521 + ]] + } + }, + { + 'type': 'Feature', + 'id': '6110', + 'properties': { + 'name': '商洛市', + 'cp': [ + 109.8083, + 33.761 + ], + 'childNum': 7 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@²nl‚ôbš„°aVwnKÞIš`°wšXôw°VĊ°@ŽÅš„ÞÆV„zÞK@xšŽ@a‚LŚ@b@ŽnLlƒ@šln„mnLVw„a„bVƒ‚VnbU¼„Vƒ°„bl„šbÈ@ĶŦb˜@nÇ@amIyUI@ĠVmôƒU™ƒVwkwlanJ„¯lwó¥@an°Jš_„‚@š™nóƒó@£l¥UwmašÑ@ƒUm±V_ƒJ—£›J—UW¥¯@ƒ_k¯¼mUƒVUè¯b@wmL™»ğVmağI¯¤ċIUW™XƒKĵ¦ķaƒJUb™IƒlUóVmk@WÅÅÇ@ƒmU„ÅVƒnĉƒÇ°kwÇa@wƒa—„ċĀ¯xƒWšƒLÇa@Þn„U¤°¦@„ĠKÈê@VmV@b„U°°nwlJn¦W„bÝ@VŽ'], + 'encodeOffsets': [[ + 111454, + 34628 + ]] + } + }, + { + 'type': 'Feature', + 'id': '6103', + 'properties': { + 'name': '宝鸡市', + 'cp': [ + 107.1826, + 34.3433 + ], + 'childNum': 10 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@@ƒ„£@›°Išb@¯°ynŹƒaUƒlƒU£„Umšĵĉ@@ylUÞ@@£kWU¯WaU£¯ÇV¥ƒ@kb¯wƒn™¥ÇkUÇnUƒ@¯±›kULm›@m±_kŽónUxlŽƒbaÇLkŽUaDŽkšW@™Kĉ¦ƒ„kƒm@ŁUaķxlw¯aXaƒk@mmakL@šmšÛŽ@¼m„@l„XV`ƒn™KUš°°@²š¤UÈ@VxmôƒxKl„VV²aVw„Xla„Vlx@UVnŽÇnk°ƒVVL™lkI™šƒJÇk¯V@šknƘn@lznmlVkzVŽ„VVxš@Ux„z@x±¼VxxU„l‚kb˜@„¼Čk˜VXlĠkôV²w‚LUKlwœJ@a‚IV¥Þƒn¯Ün„‚„@nk˜l²kÆ@š°„aVbnI@™š‚Ťn'], + 'encodeOffsets': [[ + 110408, + 35815 + ]] + } + }, + { + 'type': 'Feature', + 'id': '6105', + 'properties': { + 'name': '渭南市', + 'cp': [ + 109.7864, + 35.0299 + ], + 'childNum': 11 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@@ÈôL„xUŽ°„Þ@mŽÈnl¤nUôL‚wX`@ÞÝL™ŽUšmLô„„ŽôbVbnºlnÞ@ôƒšx°LšanV‚wÞ@Vxnwšnlw²¤šb°°„bVnƒlXbƒ„ó„@bš‚Ġ@„xšbš¦ŤšV™Xġ„£W¥ƽɽƒó@ýóƝÝ»„£X™mƅšĊkUƒ„@™™šó„kťaĵŽÇ@™akƒƒa„¯ƒUV»maUU„ƒaƒbUxmKƒnkm@™k„mK@ƒxó@¯n¯KǦ@ôÅèlxkx°nƒƾ¯KU¯WķL@VÝIUb™yWbX¼Ç°'], + 'encodeOffsets': [[ + 111589, + 35657 + ]] + } + }, + { + 'type': 'Feature', + 'id': '6104', + 'properties': { + 'name': '咸阳市', + 'cp': [ + 108.4131, + 34.8706 + ], + 'childNum': 14 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@šIXyĊwlý„KlƒXIVaķƒ™»a›£„¯aVU@a™‚wÈō‚ašL²»‚VœUln°WȯW»XašzVaÞJ@Uƒ»@¯Ýbğwly@£kÑţ±Wу@ka™IUƒƒnƒ@¯ƒómţU™b™U¯lÇIÝb@¤Ý@kV@zĊ@™ĶnƒVV¤k„V„„bmź¯z@°™a¯J@œƒ¤@„„bUx™bƒ„@`™xUÔ±ºVXœW‚„UnUJ‚LĢ¯ÈKlblmÈXŎ°šU„°LšŽlkÞKš@Èxl_°ĶUÒkblš'], + 'encodeOffsets': [[ + 111229, + 36394 + ]] + } + }, + { + 'type': 'Feature', + 'id': '6101', + 'properties': { + 'name': '西安市', + 'cp': [ + 109.1162, + 34.2004 + ], + 'childNum': 5 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@°²@‚„mVVÈÈlš¦„m°xla„@U¦°ÈV¤XbV°lXÞaÈJ°kšVšaŤVôn°„„@„mV„šJlb„@XÒŤ²lÒ@¤kzĠxÞa@°„¼ĸK°XV‚°L„ƽ¯mlwkwÆç@óÈ¥°L°mô@„w@aƙK@b™@wÝLƒyÅUƒÝƙ@ĉ¯¯Uóx™W¯x™_ÝJmLUx¯b™ƒóak±mÝUU„™W¯b™aƒ»óó™xƧçĉbƒaĉxƒIUV¯¥ō„±w—l'], + 'encodeOffsets': [[ + 110206, + 34532 + ]] + } + }, + { + 'type': 'Feature', + 'id': '6102', + 'properties': { + 'name': '铜川市', + 'cp': [ + 109.0393, + 35.1947 + ], + 'childNum': 2 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ÆxĸƨšKlxÈX„K@VWƨIlmœV@wVUmUnmUalk@kVaUaóaƒóƒnKV™šÞK@ÝW_xóKmVk£ÇmnÝ@¯ƒVƒwóK@ǯXkm›VU±¼™KbÇŎx‚š@bUV°bƒœ¤‚bš¼ĸ„Ub'], + 'encodeOffsets': [[ + 111477, + 36192 + ]] + } + } + ], + 'UTF8Encoding': true + }; +});define('echarts/util/mapData/geoJson/shan_xi_2_geo', [], function () { + return { + 'type': 'FeatureCollection', + 'features': [ + { + 'type': 'Feature', + 'id': '1409', + 'properties': { + 'name': '忻州市', + 'cp': [ + 112.4561, + 38.8971 + ], + 'childNum': 14 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@Vx@lnbn¦WlnnUšmš°š²VšV‚VVVnUn„ºlz@l„„@Jƒ@kXWVXl@Lƒa@„ƒKUL„ŽlbnKlLnK‚LnKÆXn°šbVV@bUVl°Un@LnaVJUbW@UX²l‚@ČwlVVIšWnkÆa°„„anV‚Kn°™UW¯@™aVUVk@Un@„aV@ValwUanmWU„k@WVUUanaVwnLVl°@nk@mVU@UVK@w„LVKVU@ƒ„K@UUKVUV@@bnL„a‚V„aôšlIXmlKX_°KVV@bVV„@šzV`kblI„V„Ul‚šL@bnV@V„Ċll„„VlIXW@k„a‚U²blKšVnIlJ„albXXlWVn°JnšnL@l@XlJlaX@„X˜W²@l_VmnKšU„blU@mnkVK„¯@U@ƒma@kX¥VƒmakkƒLƒa@aƒ@WIUUVXWWnk@a°a@kkm@kUUmJm@WUUUIk`m@V—kaWWkX™KmƒXk¯ƒ@WKƒLkak@±bƒw@ƒaƒa@akaƒ@ma¯@ƒL—KÇÅkKWbkmġ™±ÅUƒLUK™VVkƒm¯LUVVbƒ„UwUW¯bm„ƒULƒxWJ—@ƒklmkUm@@KnwVkVK@akwƒ@@a¯bƒKkn›VUI™b¯mmbk@UbmKUL@xUUƒ@klmLUŽlVXI‚VVVUVUœU`mLXVWbXnW`Ų°xmŽxU@mĉƒƒwU@mbU@UƒmbkVW¦kJ™@ƒX@`¯Im@UlUVVnb@bWJXnmbƒJUU™UUaƒ@UamIkaƒxƒ@@x@b'], + '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ÞDŽ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™ŽU@Wbk@ƒxk@WX¯VۙƒWÝbÝUkVUU@alI@a@akLWa™m@U¯UUmÇL@K@aU@¯VUkƒKmX@`@œkJ@nV‚Ub@lbVÆXVW„ULU`VbkLUV@XWl@bXJ˜@VbV@Vl'], + 'encodeOffsets': [[ + 115335, + 41209 + ]] + } + }, + { + 'type': 'Feature', + 'id': '1404', + 'properties': { + 'name': '长治市', + 'cp': [ + 112.8625, + 36.4746 + ], + 'childNum': 12 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@Uk™Lky@I‚JVa@mÞaWšy@_W@_WƒXVlUVwš@nw°K@m„UƒVaƒmVkU@mmmnLVUmKXa™U@IlKVUnK@UmWkX@WV_Vƒ@akU@a„KWIXyƒIUVmUn™Ua@WaXUVKVmkUWVkUƒLU@@VƒbƒKbƒIUmƒ@mbVL—x›WUUkn±V¯wƒbÅJUbmLkbmKÅKƒbVnUbƒV™KUb™KUbmLKmƒb™aƒKkUm@UŽnn‚VnxUVlUxl¼ƒk¯JUbU@Vbk@WšU@UVóI@`¯nWxkLƒK@nk`Wn@lUnƒVnm‚ƒXU`@mb@lkV@„VnklVVUblz@`nbWnnJ„IVJ@XUVV„UV@lÆXšxnKlL@mšaȍll„I„ašLV`„UlVV@@b@XJWUb@˜™n@L„@lJn@@UVKVaœUlnlJXb„k˜Wn_@mn@VkVK@a°@XklKVUUwVWUšƒĊƚ@šU²@@blLVWn@@bVa„XllVnnaVmša@¯VLnan@‚šmVm@knUVJ'], + 'encodeOffsets': [[ + 116269, + 37637 + ]] + } + }, + { + 'type': 'Feature', + 'id': '1406', + 'properties': { + 'name': '朔州市', + 'cp': [ + 113.0713, + 39.6991 + ], + 'childNum': 5 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@XXWVXVWnnlnn@èƼ@„„xlš„ŽV„nblšššVŽÈUVl‚š@„blnœL܃ĊmUkU@Ua‚—@WI@aXk@WVUlKUaV_VKXƒWUUÅka@VaU@mlI@›@_nW„LVl°UV@@b@LÈKVn°V@VšnXblK@b@bkJ@bVVlUÞVÞa„Xܚ°UXWl@„wl@XaV@šÝa@aa@IVyƍ@aƒƒXUWknwna@w‚JXw°ƒWÈ¥kI@W@kmKm™¯IUmkXWWkaƒbkImJ™UkL±aVƒb@lWXkJƒUkƒĉkƒ@UmU@a™KkƒVƒUkJlaU_™yƒ@UU@aUU¯LW`kLWnkJó™ƒbUƒbmK@aU@UVVL@VƒL@„UVULƒK@xUL@VUV@nml¯@UkmKUxmbVbUV@XƒlXVmnVbkxUbU@ƒbm@@VUlUVšb°@VX¯šm‚'], + 'encodeOffsets': [[ + 114615, + 40562 + ]] + } + }, + { + 'type': 'Feature', + 'id': '1405', + 'properties': { + 'name': '晋城市', + 'cp': [ + 112.7856, + 35.6342 + ], + 'childNum': 6 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@lV„Lšb„an‚LnKVašLVašL„UVaUm„aÆLnLlanKVaÆI„a°x²UlmVVœX˜wUKna„@Vn„J‚a„L„a@UV@@alUkKVKnkmmVwUk„w@ƒ™@kxWUXƒW@@mƒk@aUa@a¯aƒLkKmwkUm@kL@K@aWIXmƒVƒXƒWkUVakL@UVKƒw@aUK@UUKmLU@¯n™KUwVƒUIWJUWmka™@UXƒJƒk@UkmW@kLWKVƒx@bmI@VUaVU@a¯@UUmVKmX@±`kÝKVxUL±akL@V™bƒLkKmVƒ@XWVUbƒVXb@lm@@lW@@xk„lVUbnnmbUšlJ@„@L„@@V„b@‚WXš„UlkxVV@„šwn@ÜmnLlVkzƒ`UbmL@Vš@XL˜m„VnIÞ@VU°x@VnL˜x„V@LU°'], + 'encodeOffsets': [[ + 115223, + 36895 + ]] + } + }, + { + 'type': 'Feature', + 'id': '1401', + 'properties': { + 'name': '太原市', + 'cp': [ + 112.3352, + 37.9413 + ], + 'childNum': 5 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@„@VV@wVKnLVal@na°nšaVJœUlm„L°a@b„@lx@bULUlmx@Ln@lVkn„l˜@XI„w‚K„Vnƒ°aVXVx„ƒUaVU°K„nUlšUVL„KÆVš²Ģ‚lnXalLÈƘL„KUaVkUanmWU™a@WwkUWU¯y¯Ñ@anIl@@aVU„m„I„ymUƒLUUVakaU@@LmJkw±LKmVUI@W¯™VaU_l™kbW@kK@mƒUkaVƒmVaU™ƒIVmalk™W@wnIVy@klkWUU›VI@ƒƒUƒVkam@knU@mmmK@bblVUX@VkLV`@n±KU„ULƒ‚UnVVńUbÇKmV—Imbm@k¼ó@Ul™b@VmV@bXmaƒK@›UUxkV‚V@„xW„UxVnkVVJ@XnJ@XlV²LƂVbnL@lš@°'], + 'encodeOffsets': [[ + 114503, + 39134 + ]] + } + }, + { + 'type': 'Feature', + 'id': '1403', + 'properties': { + 'name': '阳泉市', + 'cp': [ + 113.4778, + 38.0951 + ], + 'childNum': 3 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@°@nb„@lb@b„b„b‚@„x²al@lb„KXU@m‚kUWkkmUUƒVwV@XUW@™naVklKXblKnL‚ƒnLVanImaXKlL„ašV@U@KUKW„alƒXK@£WKXUV@VU„ƒUUVW„_V™@W@@K„@šƒUƒƒIWmXUmƒULƒn™JkImmÝaUbLƒK@UƒWk@mn™Uƒ@kVWb@Ubmx@lƒzUxƒ`U„ULml@„XWlƒ@UV@nk@U‚Vb@X™Jm™@@Vknƒyk@ƒzƒJƒnUV@bk@mJ@b°Ò°zXVlVXx‚@šbXVmnVbUlVb'], + 'encodeOffsets': [[ + 115864, + 39336 + ]] + } + } + ], + 'UTF8Encoding': true + }; +});define('echarts/util/mapData/geoJson/si_chuan_geo', [], function () { + return { + 'type': 'FeatureCollection', + 'features': [ + { + 'type': 'Feature', + 'id': '5133', + 'properties': { + 'name': '甘孜藏族自治州', + 'cp': [ + 99.9207, + 31.0803 + ], + 'childNum': 18 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ƒaXamƒ¯wm@±°wUwV@UaVw²Kš™„U@UƒU„¥‚a„ƒ@£Þ™ôx‚Knkm™X¥™IUƒÝUwlk°V„@ƒÈ™‚KUwlkUyV¹„mšx²Xll„ÑW»š„l„w°UŎ„nƒ„„˜Jœƒl¯°V@wôIVÇn™nUllšLšVǚLô¼XW£@±„@¥k_ÇJƒkUéƒkšƒƒwXa@ƒšLlw²™Vx„b‚mš¼ÈxlLȃ„VWÞn¯mǙÑUÝlÛkwlĉmƒULmwUJ™ç@wkm@ÑlUX™ƒÑôġƒVa™ƒUф¯@wķÓkbV„mnU@@y¯IķKƒV@¹šaƒé@k„mÞU°¥@a¯@anKlblU„¥@óğç@Çw@wkla„çݱk¯±@ğÝUÛmݯwƒ@kb±¯akXWÜkXUÆÇUš¤X_Ɛw„V@¤ƒXU‚ƒbUƒŽƒIUlÇUkŽġ@™aXČmlUlèUV@„mVk¦Vxš@¦±š¯ƒƒ¯¯anlWš¯nƒƒÅw@w°KVak£m@klƒKknÇU™»óKšīlaUaV£@™™¯@ƙU™VƒÛÝÇXƒÇl—ÓlŹ„»WUğJ¯£mx™Lĵô›ºX„VlUll²bl„„lŽƒxónn°ÝšU¼mJUš¯nƒƒƒV@êĉ°Uĸ™w™@mƒ@¯kmXamѯaUwÝKU¥„mÅn¥Wmn™ƒ¹n±ƑƆÇôXê±NJnšƒ‚UôlĖkȂVÒ¯¼VnƒȮ¯ĀnƆ˜Ģ@Žk°V°¯ĢVlkšVxm¼X²™Ŏ@ŽVxknWÜ°U‚¯n™Æݜ@`„ôݲÒƒ‚Çzn‚mX@x„è°K°Å„UČĬóĖ݄ƒ˜ó¼ÅêƒÒƒbmšk@V„Ž˜„@ҁl@nĉܛê—x@Ėml՛J¯¦óxȭ°ÝmŽ¯Lĵè›Ā@Ɓ„l°żƒ‚šX@xmŽkV@z@‚„°blŽnÞ°J@bn@ƼUVƒUóŽóLƒ°X°ÝLƒxUn„°ƒĬƒn@lnL@ŽÆ@šn„KÆxnUnV˜InĬmÆnxŎ¼ĊIĢóÞ@ĊƒƨbUƒ‚mV¥lkƒ‚wnL„mšÅÆ¥Xƒ˜wU@w‚wUÞ™@alUUŚU™Vkkm°aU—°Ó°w°U„ƒ„b°aš²K˜¯œĕ˜@ÈbޏĊaš»„XVm°In„‚Ĭk¼Vb„ašJšôš£VĊan™‚k„ů™™nƒÜU@anKnĮ‚bÈmƎš»nI‚霣Ġ™'], + 'encodeOffsets': [[ + 103073, + 33295 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5132', + 'properties': { + 'name': '阿坝藏族羌族自治州', + 'cp': [ + 102.4805, + 32.4536 + ], + 'childNum': 13 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@l@@þ²I@lƒ„VL°wnJ°Uĸ™Ŏè„Ilw„V°¤nĮ™¤Ý„lè„L@„ƒ„@x„l™è²ôĊ_ĊġVÈôJżīlbXšÆÈVŽkxÇVƒ„n°„¦Üb@è@nn@@°šUÈ¥WDŽ_Uala¯¯UǙkƒ»„mVwk»˜k²°VxlL@¤œ_@x‚`ȍ‚Ėöb˜š@l²alX„a@bnK°¦VK@nnWmx@nUnl@@lƒlĉk°l°UXkmW@Unš`k„ÇL„ŽW„ÛÈVxšVVlVk@l„IXb@ylXÈW˜Į„WŤzœy@šmIƒŽ²šJ‚š@nŽ°@V„„J°a„Å@ƒŎkVǚk™aUw„KVw™™Vƒ„@nkm™@±ôkô™ĊJš¼šInÑm±nIššÞ‚XȃĊxĊUÈbÜyÈ£Vkw@kVUV™„m@ša„»ÜbÈmƒUXwÝxƒUn¥@°ġ™Å‚aœJVk™aW¯Û@W¥—UŏĶ™@¯kUƒŃ@ašI@mmanwސ‚W@œ™mw°»Uřk¹±W„xVx¯¦U°ƒzţW™w@°ÇVÑk¯@„y°aš£š@šmšnl¼„ašÝÝakwUƒ±aĉImlĵn@ƒm@kkVƒ¯Ñm™ĸ™°x„l™œ@˜ƒXVÞmlÛݙĉUÅ¥mwÅ¥VaUw›™XġċaVůÛŹlwU¯U™ó±™xÛV±¯¯n¯mċƒLmnĊm‚™@™_kJWaXmwUƒĉK™»™@mwX݃UDŽkKÇw™»nƒaUw±škx™K@„Wb„x™„„lVê„lÈIl`@¦ƒŽ@²X¤Wó»™KUșŽ™KkkmVmšUÈóJ@x¯Uk°›„—Iƒƒm„ōƒ¯Vƒxƒk™ŽX¼ƒÒkk±W™wƒnUºVzklVxLǚ@„ƒŽ¯UklVxސV„šJW¦nšmlLówݚ@¤ƒ„bƒ¦„V@VƒV™š±LUxVbU@Vx¯x@²n‚°xn„Wb„b'], + 'encodeOffsets': [[ + 103073, + 33295 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5134', + 'properties': { + 'name': '凉山彝族自治州', + 'cp': [ + 101.9641, + 27.6746 + ], + 'childNum': 17 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ĶóšKnw°¤ĠIXVƒ¼kź˜Ôk‚„ÈWŽÞȄÜUVšÅš°@šš‚@U¤Vbkb™ĬôLš¼ÈVlm„Llkn@l¤Ub¯L@xÆx„„°mX™mk°b„°°„²™@¥‚™Uwl¥nU@ƒVUkçVnkWċšbĢ@lÈVVk„J„‚V„aV„W@£ƒUƏxW`™£ÈVVÅlWXÛlW°b²la„@°xnÞVÜĠÞ²@l°Þ²ƒèkblŽ@xÈx@Ġènal£nU‚Dz@‚ÞK„nn¤@¼˜°U¼„nV‚šXU‚šbn™ĠUVbUlVš°LX„@lV„èÜUnK@_ƒyXVyUwmIU»Vƒ„kÇ¥šÿkkV¯m±n@ƒn¯ÜanVVƄz@Ž‚bœwÜb„m@wša@kƒmk»@™a@VUUó„w˜@nb°mš„XŽmnVbގVôanwšJ‚ak£lw„˜šLšÅnÝ@wl¥IÇӃ@U™™Lƒ¼kVǃÅó¯kVmmw@ƒn_‚Vn»°LÅ»@éÇçŹīVÇÝ@ÝğU™ƒaVݙ™š¯ķlŭġlƒ@óÞۂċ@¯nkUӄ—m±™IVġUwóKUn±¯—K›w»ƒKݐV„nl@„óxUwţ›£ĉƒUmŗÇ݃K™„ÝUlmKƒ£UVŽ@ÞȎW¦„Ò@Ĭšnny‚@nÒmœVŽ—¼@°Vbl@VlnUUwl™°a@„œ„@llnk°lbnKWĀnŽU„VxUŽ‚²Å‚m¦Û›ÇŚƒaU„Vbš@¦m`móX™Umm™xÅ@±Þn虲™U¯»m™ƒV—m@wƒU@wݚÝmLƒa@„™VÇUk„l°¯„VlkVƒ¦UšmxƒaULUèVx@„kIUxmWV¼¯VmȯšU„nl›È—@m»Å™ƒVWxÅbÅğW@kƒm@kVV¦mlnn@‚ō„l¦Åƙxkœ'], + 'encodeOffsets': [[ + 102466, + 28756 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5107', + 'properties': { + 'name': '绵阳市', + 'cp': [ + 104.7327, + 31.8713 + ], + 'childNum': 8 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@„ńlV°š@Őĵ˜VX»ÆUĊќJ‚w„@È»m»š£°Kšk@ÇnÑƍš@„w°JUwnw@wšbVbš@VlźLUw„aƒ»„aUklyUUVakwWXwWƒUxkLƒmn¥mšwk™˜UX™lJ„w@aƒIk°X„¥Wƒ²l¥šaU™„IlmkklƒÈL@m°nlWU™aW—š@Vƒ„@UaV¥@ašk@Çk¹ƒK@a™K@kƒKkšÇX@VU@kx±V™èkIWwUVUkkKÇ@ƒa@wkml¯@kUWn£Wa„aVwnaV݃w¯@UaWx—n›JńUxUšma@L@„mbUŽU±VVnkxUƙ„VŽm@kkKW°„X@¤ÇUkÆÇnU¦¯ŽkƒmLVwÅK@UóbÇƁVƒ¦™L@‚±êX¦mVޚkÜÝnWU—„›@kšƒŽ¯wķšnš°ÒU„lln@@„ĶmnkĊJ²bV„lxÞb™Þƒbk»™m™n™@™¤¯bƒz@Žl°UÒ¯È@ŽšxŤX„yV¯°¥Uwƒw²XlºVŚ¯¼nx›š@ŽXݏmxnb@n™J@b'], + 'encodeOffsets': [[ + 106448, + 33694 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5117', + 'properties': { + 'name': '达州市', + 'cp': [ + 107.6111, + 31.333 + ], + 'childNum': 7 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@Uxn°‚bnŽlUnÒƃnn@n‚¤„LnxlU„ššV@„Æl„x°XXxl`XœƒVW‚œL˜è—„±nÈbƒŽ°b@š²x°Kܼ°ĉ„V¦lJnU@¦šÞ‚JÞğ„mšLÞ»šxU„lb„VÆann„alŽ„VƍX@lnŎV„mU™maÅXƒa@aWmœ@‚£@wĉJVƒkk‚kkmƒnk@ƒmna@šal„Kš™‚J@Þwm‚ÅŃ@ambkUƒƒ@™™KUġKU@m‚ak¯±ƒ„a@aĉÑÅaVwšXlwƒ±—V¥l@@a™kƒ›@@£šmƒĉÝónWV@ŽnÝÇÇx—UmbƒaVkkk@m„@m°ƒÝýXm›akÅīƒ@@ƒmb@@xmšnbƒ@mxšŽkWL@ƒ¯b@WUXmWœWKkbm@kx™Xmm@LUl„xlêóK™nUš„all™LƒlLó°m¯JVšU„K„„@x˜K²Āô¦l°'], + 'encodeOffsets': [[ + 109519, + 31917 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5108', + 'properties': { + 'name': '广元市', + 'cp': [ + 105.6885, + 32.2284 + ], + 'childNum': 5 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ÆL„Ċx°»Ŧ¦˜W„™šLȄ@xÞKÜ°ÞnVxÅĀlÒnJ°a@w„V¯l@XWknKnw˜VȚ°XXa˜lX°VI°b„W„nšaššš¥@ƒw°™n@šyÆ@nkÞ@°¯lJn„°IÈl‚UšlXÅ@ķlUV¥VUUÝޙUUƒ@UwƒJUkĉm@ýƒƒlk™WUwVwWJk@VUK™lUkaVƒUƒmLk„m@ƒƒ@Uƒ›Ik`@„™UmlUkV¯ÇXKÝ_mm¯@Uƒ`kwmƒl¼±KV¯—¯Vk±Vk±kzma™KUnDZ™bk¦±ŽX„ƒ¦¯Wl„J@bƒxkIWš—Vlš™xnŽm¦„nlKVwX„WxXŽlxUbVVkzVlƒb„¼ƒbVxŹKUk™@Ua™a@xmxVx¯Iƒx™@ŎmÒ@șl¯L™¤n¼'], + 'encodeOffsets': [[ + 107146, + 33452 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5118', + 'properties': { + 'name': '雅安市', + 'cp': [ + 102.6672, + 29.8938 + ], + 'childNum': 8 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ln@xšèVInxVKn„‚ĊklxkÜVޚÒnÈm°nxš@š¼ĊLV„nx‚WXblIš`š@nmĉn‚KȄôÅlUÑmU„K²¹@ÇÅVÓůVýÞW„‚UVmX„ÆbnwšKUÿ‚™@UmmIUb¯¥Uwƒ™¯™Çmš™„çmanUm»UUƒl—kƒ¤ƒa¯bV™U_WĕmÇŚ±ĢUlƒUl™ÛVƒçkUƒ@WŽ¯KU™VkUağVmš™aV™WUƒmV»—¯@»m£ƒmÝLŽ±@ÈmVk¤mb@ôƒ¦kVkamL@b°‚@b¯¦ÝVƒn@l„ê™b@º„UĸL°J@zV@nmUƒlaĸÔ@xƒ°VҚ„Ub„‚óĢ„ÒWškV@Ò'], + 'encodeOffsets': [[ + 104727, + 30797 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5115', + 'properties': { + 'name': '宜宾市', + 'cp': [ + 104.6558, + 28.548 + ], + 'childNum': 10 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@VlÈnl‚XnWLX`m„²nV‚@b°xĢçlnšVm‚nn„@@„°‚UzšlV°nޘÒkxl„w„`UnVb„mšL@albÞKÈۚmܼ°@Xǚ@wmW@ńKĊL„lV„šLVŎçÞL²±‚ğkw@Uƒy@¹lKX™lKVa@w™™Č@‚w@a˜ÇU¯n™@@wġak—™aō‚ƒƒK@Å»VakUWmķwkbğ¥mL™akš™@ġރ°¯xVVÞ@VšxVš—VWx„XlxU‚™@k²WVŃULmèULVĊklĠ„VœJVx±nŃ¯¦mwğ@mƒƒlğkkl±@kšUk@¯±Ç™Kƒ—kxl¤b™Imx'], + 'encodeOffsets': [[ + 106099, + 29279 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5111', + 'properties': { + 'name': '乐山市', + 'cp': [ + 103.5791, + 29.1742 + ], + 'childNum': 9 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@kšVŽk„ššÆkšV²UlºÈIlxƒLXèÜlU„„XU‚mkƒbVè„x°@„@¼°Knnn@m˜ÆIUbnJ@bVI°b°±@nK@mVakkƒKl¯nbšmĸ„èl@VnÈl‚UUw„wmwnm°¥„L„™lLnU@Va™ImbkƒmK„ƒƒnk@mƒb™ƒƒLV„JVUUƒ„VnkVmb@a¯JUaÆkk¥„IW¥„Klw—ÑmÝU¯™kVy¯@ƒƒ@mmn™Ukmġè¯w@aU±mnƒW_XKWmkÇmUkóbUÝUanmW™ƒ¯nma—@ƒxVôUV@šb@‚l¼„n@l™b@xƒnÛa›xa@ƒyUÅmUÛbm°@„m‚n²U°ll™ĀȦƒlU„V¼nJVxUz‚W„z@`mL'], + 'encodeOffsets': [[ + 105480, + 29993 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5113', + 'properties': { + 'name': '南充市', + 'cp': [ + 106.2048, + 31.1517 + ], + 'childNum': 7 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ȲVmšLnblyl²²UUl˜°U°²L‚»„knlx„_VŽ°@nnÞ`WL°ÈUŽVlnkšV@ƒl_œJV„‚@„„n@lƒnKV£™Çšƒ„UV¯šm„@laX˜U„‚UbVx„@VkôJU°Jn™@™‚wUk°wnUƒV_nJmknmm¯Vwk¯ó¥±ÿ—L@wƒƒƒLVU™kU›bX¯mykI@a±Kk¦ULmaXƒƒVm¯ƒK—z±ƒklUIVbÇJšƒkL¯™l™ƒU™ÿ™UƒlUkJƒUmŽUUkVVklKk@@a™U@„™J„²ƒxƒ¦kĬ@¼±ºXnWb—xƒU@xƒx@lšL@b„Llº@șl@bU¦Vbƒ@U„™@X˜‚bVškX¯m@nÇKk„llknƒJVš'], + 'encodeOffsets': [[ + 107989, + 32282 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5119', + 'properties': { + 'name': '巴中市', + 'cp': [ + 107.0618, + 31.9977 + ], + 'childNum': 4 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@V„U„lbkVšŽVLUŽl@XI‚ŽUxVxšXkl„„@þĊnVl„IVx„@VVݚVÞUVU¦kV@ĸWÆô²š@VÞnš@Vaôb²W@‚K@XUmÑUW°¯°Ina@y„_lWn¼lLUbô¼„Kla@™nkUyô—Æx°@šn£™Ý@¥mVkIU¥Ċƒ‚¯Û»¯L±w@™¯a„Ça²m˜ƒ—ç›KX„UW›k_Ww¯WƒwÅk@ƒ™Uƒ™kVmwƒK£@mmmńmÑkVmamnnlmIU`V„m¯xVlx@šmš¯IV‚óIUlƒ@UwVaƒ—VW‚kbƒ@™nU°ƒV™„šÈU¤'], + 'encodeOffsets': [[ + 108957, + 32569 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5105', + 'properties': { + 'name': '泸州市', + 'cp': [ + 105.4578, + 28.493 + ], + 'childNum': 5 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@VVXwVKn„˜wnVƒn„l@b¯xmKUbVn°°X°@blLšènV„@Vn‚l@U„LnmmUna„VV_ĶV@wnJ„„l@@kkKVólaUwnJm„wUlm@ašUaôKVnJWbޚ@VšwVLX¥VVš_Þ`šw„WƒÞŹmmnIn¥Wƒ@k„WV¯@ƒ°kI™ŽƒLk¼Ç@k¤±Xk˜™nmݯUlÅÛKWV¯kƒlUwkLƒÓ™@U—@ƒ‚w@ġXV„˜WX„š@UbVbšV›š_kÇV™lU°lnwŎ¦ÞaƯnmm¯šU„™m¥nkVmkƒl_ó¥¯UÇl¯@™ƒ™L™kƒ`¯ķLUy¯@mw—¼ķ°ġ_řU°mlšnÇVUޚ„@‚ƒš_ƒJUnV‚UXšbl˜Ģb@x@mšV°—È‚b@‚xċ@šš@xUbkLWškL@º„zV‚@lxĠ±²'], + 'encodeOffsets': [[ + 107674, + 29639 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5101', + 'properties': { + 'name': '成都市', + 'cp': [ + 103.9526, + 30.7617 + ], + 'childNum': 11 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@°n°m²°ÜUšw²ŽôVš°ŽVkxÜźUŰČb‚ŽĢlaÈL„»ƒ@k„wVǂ@„ƒnÛƻșUÝ°Kl_„V°Uš`Vbn@VbÈLšaVU@ƨ»V™nIl™šUUa„±lIk±š@VnKmÅ@WaƒK¦™lVōškK™Ý@maXÇmw¯IU‚@kƒVƒwUmVIƒƒƒç—ÿƒU±ŽÅ@¯È@xƒK@wƒLUbÇKō@mÝ£@yóUóóUxkI@WlIUaƒbƒaŽVĀ™LmxÅaWƒUnVƒÝXUþÆ°UÔÈÆ@±ºƒLnVVÒkóÆ'], + 'encodeOffsets': [[ + 105492, + 31534 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5120', + 'properties': { + 'name': '资阳市', + 'cp': [ + 104.9744, + 30.1575 + ], + 'childNum': 4 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@„è„„UJVn„x„U@lV°JnxWÈnbÞ@šŽlLŎ™Ušk‚¥„LXbÆ@nŽmLU‚@zlbXmlnVynL„çšJVb‚UnómUnamU„an¥lKV_²aValWô„n@nƒ‚bVœK°¯VblW@kkƒlUnlV£°W@w„UXk°KVwƒmVkwVyVI@wkmƒVÅ_Umm@Uÿmbk£™xUaVw±V¼V¤kLWxU@Uk™bƒyƒXšómƒ°V@@zÝÒkKƒn™±U@@_VVkƒÇaVwnLWalm@@kkVVl™¦kIV`±n@w„Kƒƒk²™aƒVUUV¤™nkxmUkVWVnLUbVbƒ`kUU„mLU‚mX@`ÅbǚXbWLXŽ›n'], + 'encodeOffsets': [[ + 106695, + 31062 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5104', + 'properties': { + 'name': '攀枝花市', + 'cp': [ + 101.6895, + 26.7133 + ], + 'childNum': 3 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@„b‚KÞnޙ@x„V@x˜n„Unš°¼šVš±mç²ÝÆ@šwnnšVWŽnôn_@¥‚™UaVƒ„bƙœÈ܎n¥Æ±VUwVƒmXÿmLkal¯km@k›ƒ@ƒ¯bkšVxmVUkk@Ua@¯˜»Un›mс@mz™m@īƒÑX¥Ç@ݙxU¦ƒšÅŽÇUkx@šlb„UWVX„mV@xĵĖ±@@Ž¯xUšÆLnÆm„šx@nXL±lUUVwKWak@WxkbšÞƒŽĉbUn@‚ƒ@@xó¦„Ŏ'], + 'encodeOffsets': [[ + 103602, + 27816 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5114', + 'properties': { + 'name': '眉山市', + 'cp': [ + 103.8098, + 30.0146 + ], + 'childNum': 6 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@„šVx°¦VanJVnš@„b„aVbkJ@XlJVwôôôV@zÞ¤@nƎÈLVa„K@x„L@w°ÇÆ@²„V˜ĀœmWXKWașÆa@_nWVnKVƒlV„_UaVamKXUWwnmmwœÑm£@ynUƒkWƒĉUkWVkkV±çkJmkKƒšƒK¯¦mnnxƒxVxVÇkUmk@ƒçķ™nmak°„LllUb@nmL@‚¯²¯aUJ@amIVaÅJn—m@mm¯L@»ƒŽ¯@ƒwUç„anlVƒWVƒÛkWç„KkwÇJk¹±V™UÅl™™ġV™²ÈƂnXĖV`Uš°a„b„£˜l„kVVn¼mVnbƒè™šÈn°š'], + 'encodeOffsets': [[ + 105683, + 30685 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5116', + 'properties': { + 'name': '广安市', + 'cp': [ + 106.6333, + 30.4376 + ], + 'childNum': 5 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@„VlIV‚„kšVšĀ„Vkš°šlK™„ÈIUaVJlk²„˜y„Ln°„UW„nbVKl¥²L@blJnzW°œalV°Inô¯‚K„kšKkkƒbV™šmôLkéƒwVk@KnnšWlwn@laXL›ŽnXVW@X°a@„XKl™nw„@man™@w‚@na@„„@ƒw™ĕġġ™wUkUWb@mk@™¦ƒ¥mUÛb±yÅn@bml@kV@„ƒlknVbmVnlmš—bÇk¯bWyk@V_UamJ@I—@WaƒVXamIVWkUkbVaƒUUxƒ@VnkVU¼›bkKUxmK™„@WšƒxnV@n'], + 'encodeOffsets': [[ + 108518, + 31208 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5106', + 'properties': { + 'name': '德阳市', + 'cp': [ + 104.48, + 31.1133 + ], + 'childNum': 6 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@nUW¥²é@šK„¥‚UÈÅôa@VÆLUxnKl„°V¥ÈmlÅÈV@£ƒWX¯lLln@UšƒVÅlwUm²U‚VVna@ƒ@KnbV™VwƃœI˜mXwWƒkIVwÝĕVUa™IƒèmKUzkmWnka@y™@l²kJƒ²Vb™VkšmJUšƧ¼@UV™bÇKUam@Ua™_¯VƒUk`¯LVÞǚżm܃„@Uȃx@l„ƒ¼ÇKkbWŽœšVxUbƦnxƦĊV'], + 'encodeOffsets': [[ + 106594, + 32457 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5110', + 'properties': { + 'name': '内江市', + 'cp': [ + 104.8535, + 29.6136 + ], + 'childNum': 4 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@²èlUUllXĊVX„„lmV@zn¤›ÒnxmnXxlUnVlwšmU£VV„Ušbl±„„ƒL@x²mU_lJš¥UklU@ln@‚kXbmKUxÈbl„UU@`V@š²„mlLÞÑ@yU@„¯ôn‚™„W„zšaVlV@XwlKU£‚»—aVaUwm@mwUVUwkƒlVDzLlƒ„KV™m_@ykUmƒ@mU™çkKmxkIU‚Ý„@LUJ@n±„kº‚LXb™¼@mmIXa™@mamnkW™ƒKUƒƒxƒ_U`UklwUw™mUbƒV™²ƒakbƒmkn@`„UmҙšVxUb™I™`UƒaÝÈ'], + 'encodeOffsets': [[ + 106774, + 30342 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5109', + 'properties': { + 'name': '遂宁市', + 'cp': [ + 105.5347, + 30.6683 + ], + 'childNum': 4 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ÞĖUxlJX„Vb°@„xUÞmbUxƒbXbm¤VX@lk°ln@x„bÈ@lLVlVUXxlJšç²UlwV@@UÈWl™„L„w@w„V˜wXaWm²¹@»lī„¥„wƒ±šI@ƒšV@bl@kLUllUVVn@mmU„wX™ċbVb@VUkbmamšW@kƒa@™™k@ƒlaUa™@¯b@šmmwó@@lkXUa¯°›LU‚am„m@óƒkXUb±bU`kLm¦ƒbnVmbnVmô'], + 'encodeOffsets': [[ + 107595, + 31270 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5103', + 'properties': { + 'name': '自贡市', + 'cp': [ + 104.6667, + 29.2786 + ], + 'childNum': 3 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@lIÞDŽbVŽš_šJVaUwš™nуV@_lm„nla„bš±„UVašnVxkxVlV_„`„wV„„LšlXnmnbš@WbnJ@nš»WaKl¹²ƒ@mVI@KރVlJnw@aW¯¯¯UmVanL°w@aƒk„mmU—xmƒULWxUUÝKōèU™KUƒƒkĉKƒL@ÆnX@x™‚Wȯ@Û»™nÇÜÝLka@b™KƒnUaVmƒ_ƒxkƒLX¦ƒJl¦ÅlVb°I@bnaUŽmlƒUV„UVƒIUŽ„Kš„„a@nml„„ƒŽnLl„našJUbV@'], + 'encodeOffsets': [[ + 106752, + 30347 + ]] + } + } + ], + 'UTF8Encoding': true + }; +});define('echarts/util/mapData/geoJson/tai_wan_geo', [], function () { + return { + 'type': 'FeatureCollection', + 'features': [{ + 'type': 'Feature', + 'id': '7100', + 'properties': { + 'name': '台湾', + 'cp': [ + 121.0295, + 23.6082 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@\\sŽ@pS}aekgKSu™SsMß`¡CqZ·be@Q^o@‹gieMp‹‰]}•}Ľc_Kk…{™ù“A¡r‰[uom@эĥJiq©mʼnq¯Bq]ÙYgSåk_gwU­isTE…“‘ĕiqiUEkue_‰OSsZ‹aWKo¡­q“ycY£w}‹ĩ™ĕS§Z©S™N¥SyLÑ¡±Ks^IY‰PdƒY[Uo†Fp}´\\¬\\j]ˆe܍ò‹¤¡–ā a\\bn™U㺹Ìs¼j®[cíȈEŽĝĆ`ļf¶Š®K|VØDdKGpVnU‚FjpH—F`†B’[pMºxÖjbpÎxp€¬‚|ΟÜÒCŠ²®‚ÜAp„ZG~€Šd˜ÞàV¨|¸€`|Œ²tx~\\~|dFf^zG€ĄŚhœdL\\hĸž¼†ŠOªP®lV`p\\]Xpll˜æ¤œCpQ|oF}fMRi†NSon_²qämœM„NM‹\\•'], + 'encodeOffsets': [[ + 124853, + 25650 + ]] + } + }], + 'UTF8Encoding': true + }; +});define('echarts/util/mapData/geoJson/tian_jin_geo', [], function () { + return { + 'type': 'FeatureCollection', + 'features': [ + { + 'type': 'Feature', + 'id': '120225', + 'properties': { + 'name': '蓟县', + 'cp': [ + 117.4672, + 40.004 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@EUDAEI@WNMNCBFAHFFNACDJDPBD@@GD@DIFFHEFGDBDEQOFG@EI_KG@OcJQM]RMEKBGPG@[LaCIICBWKCEEG@WBQHCDFD@HSLEJI@IHWECFGAAEKCGDBFCBSBIDCKKHEADMJMFABKOKEQAA@IEEG@GIQAEK@OZEESMOL“lu@SLUTYFQCMG@@SQUAYKAACA@IB@BDB@B@DC@@BGAEFAA@BEGKJCC@AGAIHA@@JC@QEIP@@A@EGIDC@O@C@@@@CJCWKABFLBBEBSQGBAAMIEM@AKBcJEN@BEBCFMAEFEF@J@BG@BFABECKFG@AFQ@@F@BEB@@A@@AAAKAE@GFGDECEFEECBKIKDELDFEDYH@EIACDCHKBEB@BAAC@ADBHABKJIAIJICEDGDCD@@A@A@DHCHJHDFEFGBKRKBGIK@GIMHSBCH_BOJECCJCFKKMD@DNJEDEGC@OJCJHRUL@HRJ@H[DCNKDZHCTFDHCFFKR`TANVDFZRDLFARB@HPAPG`ILAR@TERNDFNHDLCLDDCXDYbHF@FEB@LDDVE@JPNfXPINCVDJJD@NJPAJHLXHDNANHhB@DPNLRMTBFRBHHr@`NBFEBOCCBIAQJDHCHLHFA@HSDCRLFTB@HEFLNF@PELBDJALFLTC@EPFLLP@tUHQJDfIHGTB^JTCPDLKAIBATFPADIEGECEMJ@JIAIHGECFEAGDI\\SPOXAFCL@BQTQBBTMZECYGAHA@GJAE@HCAEME@IECFKJADDBABLTHHG@ILEAMNDJCDHEBF@@JNFJELDFKTOT@JETBFFHBHEHKI@@IJEJ@XKEOUMS@AF@CEB'], + 'encodeOffsets': [[ + 120575, + 41009 + ]] + } + }, + { + 'type': 'Feature', + 'id': '120114', + 'properties': { + 'name': '武清区', + 'cp': [ + 117.0621, + 39.4121 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@FWôµ@IFCLIB@EHNBp]AGEAKAEDMGZKFGBGME@ILGP@HEFB@BXMEAHUGC@IHCLOD@X[NWHWPKAEF[@EKIOL@EKGBNMJ@EIEHKBIC@BAKMIACCFQZCF]DB@ERAKADIHGEIBCGIIECFaGLZO@EFCNGAGDGAKL@BMG@IE@ADSDEH[JGC@CGA@BMDeK@EIACFE@@GG@FIAMM@CCGC@EM@ADE@CFMAAGHBDKIEAJG@DOGCDEKAGIS@KFCHKAEHIE]BeKNO[IFIOELC@A]GMBKVYCDDgGAICARc@MW@AQE@DGI@@AQ@@BKBAIQQYEFW@CEADIGGBCEIiMEMF_LGEKMBBDWEBGRC@E_CHYGCH_IAED@FFBQh@FGJaJ}AHRAREF@bE\\C@CT`FHC@\\BBF@BID@HGDDJ@@FAHKBARECKDAZBJIVNHCTA@EREAMLHDAFFBVFFC@RNRETHD@FOJMACH@CAB@P@DF@@FGDWE@FFSIEMKQDYCCHKb^JADOCIDGNDBdBCFJB@EC\\A@BJEA@JAAAD@HHD@LFBCFF@BERDHNhZQHMBGHOACCEBWEGD@PSJKCGEUD@CINLFGHE@AJK@HDABBHTB@F`DBFLBBHEDARCFG@ABJBAPVFE^FBGLGCFG_BMLEXGAAFE@@JNRVJHFALFBEHQJCTbNDHCF@PlFLJSXCHFHfVBTNJ\\BPJXC^FAVNFCHFB@FFH@JF@\\ABCFD\\BDMCAAJKQBGAILOEGHILECQLWFENJHADC@QxNHFJNLDFA@CBA@D˜UÂmR@FBL@BD'], + 'encodeOffsets': [[ + 119959, + 40574 + ]] + } + }, + { + 'type': 'Feature', + 'id': '120115', + 'properties': { + 'name': '宝坻区', + 'cp': [ + 117.4274, + 39.5913 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@TZbB@JHD@DODCLM@AP@LL@BNH@ETFN@`E@DNG@CHLBCJA@AICFKDDBKA@\\N@AFNAGRBFjFFFL@DHLBLFQPcXAZMJ]GAVHAIZJFNE@JpDRRDCLFDGXA@EFF@CFFPDfEBDB@DCHCFCJDJIJBLI@I@CB@@ADBB@FALADGDC@@H@BB@FZGFCCE@@FMLALJDAFFFEFDFCB@@AHCF@L@@BBB@BB@FC@E@@R@BEL@HEFD@G@AH@AIB@@@FEFEBALDDEFAFO^IF@JCBBFPNJJ@D@PRDCEKBAXL@BIFD@T@JE@BHHJORFDI@@B@JGH@@B@BDDLIFFHCD@D@DEE@BAAAB@DAF@B@H@NGLJLMRDNMfGIEPMI@GDAKK@KIDIJ@GE@CFDN@FE@GFEPGV@TCDFKHBBF@RW@DD@@ID@TJFKIKLI@EP@IGBCLAEKLEN@KSHIGYACSD@SEAMBBMGEBMQBCMIGKFB[D@HDLPHDBC@IFITDLG@IIIFGVBNJDLN@VIRI@YIAIHIC@CLKZCBEE@JECEIHEAKGDGECBGEEM@@DA@CCCBBEGA[GEDBBoNAAH]MKiIAWKQoIIPMFQAEEDMH@FMSUYIeF@EK@BIOEKJEBICFKaKPFAFSE@LWCCFMHDDEKESBOGBKIEIODLG@CCDEQCEDWEMDIEIB@EHGEEDAEAa@@HqDEJGF[AECCFa@WCEIKAAEQB@FCAE^YDERDDJBLNABD@AJGLJF@FNIAMLH@FPKLJ@FE\\BFOLGXMXW\\C@KPGD@JHDGVFBWN@AEAGFO@KH@JNFAHEHYLNHFCLBFBBHo^MAFGA@KJED@Jó¶EX'], + 'encodeOffsets': [[ + 119959, + 40574 + ]] + } + }, + { + 'type': 'Feature', + 'id': '120223', + 'properties': { + 'name': '静海县', + 'cp': [ + 116.9824, + 38.8312 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@NGFMDATCNDR@CCbINEHNJA@C\\EEGVE@IhE–[˜w”epc¢·²›^QEKIEKIgiQDkehY£uSDBMkUDOJDHC@GF@CAFBFEN@C‹Q@BeP@@G@HD@@MHQKi@[IGCOCESE@GMA_OcCGDu`aˆ@VZzKDkJBLNXGDqKEWE@cFEFA@ƒISIi@@KMABJGBcMuFEzGVH\\ATSEUBeALCEMG@CEBUHUCGXaBPtUBBFIBFTDFF@DDKBFNGBJPHXDDMDCLJ^mBIHIL@LR\\@LCR[@@z@NFD@LLBNb@RHDBNTPT\\F@BJF@BXCFBHHBDLFB@HODADE@@JHVXCPDHCFTLBBFNCDCCCU@@GAABEHHZHBCAEdEjFDD@GfD@DXFCHF@ERFDLBH@'], + 'encodeOffsets': [[ + 119688, + 40010 + ]] + } + }, + { + 'type': 'Feature', + 'id': '120221', + 'properties': { + 'name': '宁河县', + 'cp': [ + 117.6801, + 39.3853 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@BFLBFJXDb@DEFD\\BHEFIrC@Gb@FBCBFFGH@FJAJFNCXFFCRDCFDDH@CKJPJFALPHTALFCFGCENDDKXF@ETEBO‚bLELJDFALIPFAJL@@FfEZJTVENG@CNFFRBNEJOpJLRBXjJNLG^BBpMAAFC\\HHBAFDADDB@@CN@FFAHFDCHLHFBJGFCFUNKJJTD\\XUXF\\^F@DDDQXXBRLRCBDFEVCDLVDpUl@LEDJHAPRFGL@CETGPBTCDDVI@CFF@GFDCCVGLKEK[Y@MECISG@BKNSCGCKWEAaEBEKNGFSECO@GGM@GYI@DÅCMLHPTF@DJHAVVNKEGDETJ^[TJNNd@NOAMFYJ@@GFANDPEJB^aOadSTQSI@MHBDIEOKCG@EEFCKCqXO@@DMFENCDDHCCGJ]AKFoDaGGHYFDHKJiCMFGC@EQ@AEHGAC@IEAATKOHGIC@IXIFEoƒGE[JCFCDHNmRADFZMF[EEBMO{GU@AOW@@]ZeHBDEHBKEfQkuIWBs‡@EC@d[@[^EDMTKCEEcI@cDAB@FCBCACmOCG{PYHeBgPwPFDDALFFFCHQGSD@BHFAR[TaFYXMASUiGFL@DQNCJI@@D@PLDN`ETEFIGMCGBCE‘~CAIFDPEHGEQPHJADFJGHCJLB'], + 'encodeOffsets': [[ + 120145, + 40295 + ]] + } + }, + { + 'type': 'Feature', + 'id': '120109', + 'properties': { + 'name': '大港区', + 'cp': [ + 117.3875, + 38.757 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@JFFL°_`ONJKDDFIFZN xlb~yFVNRŒrdJGzDPVFBCTNND\\UR@E`F@@Ip@IWGUoawOEE@ÏDgK{İEEMFëC—b…™@—KwOCDHHKBDJCDEEEAGHOABFABMCgDLSQ@CFEB‰MgYIDQINE@AUSwSAdYEHQMEyK[KI@GRMLE@@OqOoBOnpJ@BmEAFHL^FDB[C@BBDVFAHFJENB@sNEjQAMYsUgCSBGDJH@\\LjGR@NC@@G@HO@AfR@DŒM@EFEADBE@@HGDICCPlVANTC¤vgZlfRChjLJ'], + 'encodeOffsets': [[ + 120065, + 39771 + ]] + } + }, + { + 'type': 'Feature', + 'id': '120107', + 'properties': { + 'name': '塘沽区', + 'cp': [ + 117.6801, + 38.9987 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@|ODHnPBDADEDA@CB@ddJFFLDNSFC\\]\\@@cFDˆ@nACOMW@M@ITURBRZNHNWRQšoO•j½f‡cqŸAqeiDÿÍyÓįFL|Ch@ÐFFxPpbHVJXo@@JCTR^BPABQA]^MB@bE@@FQBFVJRH@FXtPNZSBAja@@NƒDTŽLJrQTHFXZFB`'], + 'encodeOffsets': [[ + 120391, + 40118 + ]] + } + }, + { + 'type': 'Feature', + 'id': '120111', + 'properties': { + 'name': '西青区', + 'cp': [ + 117.1829, + 39.0022 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@@LHAHRHATh`LHNHDG`HDGZ`D@FQDAHXFACNAFLVRTBFOfHDCVBFQH@HSXHEPFB@LDBF[bDbLFKJBFLADBDjLvCPEI]FGEIGCBEUSjcFiBIVWfaHCjN^HtwBBFGPBJGjFBEGECGDONMFAP]TDHQOWCMGAMHKIJEIGQ]aDlUG]VGEGDC„{PEbBZmE@@GH@BCA@FMQCFMYMJECELCMI_P¯`]R±œ¡¸od“f—x•\\gF@JUFFH[F@DIBGMMFaJDDQ@MCSDCBENMH'], + 'encodeOffsets': [[ + 119688, + 40010 + ]] + } + }, + { + 'type': 'Feature', + 'id': '120113', + 'properties': { + 'name': '北辰区', + 'cp': [ + 117.1761, + 39.2548 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ROHFFGCOJEDB’}DFHANDJHFEFSM_KC@O@CJ@DIRM@CEKKA…L…FKACHoLSJSIBETDJaEIIE]E]K[MYUYQILC@GF[MGNKEK@A@BCWECAIFEFYAGFOMI[OFuDiKACBCEKIAELaKaCE\\CA@KEAFOWGGTG@ERUACDeGEPSAUQKHE`FNjNFJADHHCJFB@DEXZFRRBJLA@AR@@BJ@CHF@BRX@@NQdDBBJhHCCZDLUNA^H@BKDPFEJ\\JMPfL^AJFFGLBDGLET@HJLBCFHDCPH@BIJFCLGABHNBDEF@BCN@@FHDDDN@BNEJH@@HF@DEJB@FfLNC@AHB@DHD\\IFGTCBCF@@JNH@ALKHBHCHBDMFEP@KYbHDEJF'], + 'encodeOffsets': [[ + 120139, + 40273 + ]] + } + }, + { + 'type': 'Feature', + 'id': '120110', + 'properties': { + 'name': '东丽区', + 'cp': [ + 117.4013, + 39.1223 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ZV\\N^L^FJFFJIbSCAFTJTIpKDGLB†E†KLBjHTVNBZWbE\\SBQGE@ATCRHDGEEKECBECxOhOfAZGA_YEEWSGqRKIS„C@Mb@BiTAMYsOEWG@IQEURA@EF@@acUOXQRYCUDCHDTEF[SUEgAYDcVGJM`iAWDWLQRMHUHgDsDBLHJFCFDFGHBFFVEAGHCJN@RJF‡PIhBD\\FENCPWA@LFBAFHBEJUEARCDIAEDQBRNa^'], + 'encodeOffsets': [[ + 120048, + 40134 + ]] + } + }, + { + 'type': 'Feature', + 'id': '120108', + 'properties': { + 'name': '汉沽区', + 'cp': [ + 117.8888, + 39.2191 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@LMEI\\MTABKN@FCDMH@COAcH[AoēA™M¡Wa[Meq™pQRMXMGQYQASV@J@NNXDPmBAtJXlveRLFGACFGAYf@^X@BPV@|HNPFA\\FNEEYBCnQGMDCDE\\IHFp„EFWJ@JJDGHLPBSFB@JBDGHBFR@@FHDNEjDLICGZEHGbHpCLE^BHIDDCGDCFMNE@CP@rWLDEDFFH@'], + 'encodeOffsets': [[ + 120859, + 40235 + ]] + } + }, + { + 'type': 'Feature', + 'id': '120112', + 'properties': { + 'name': '津南区', + 'cp': [ + 117.3958, + 38.9603 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@TLv@CNHFFBHGZFETNPhCVGNGRQXKXCjBN_HIdUZChBVF\\TFECSDGVCZDRQPWdVNA^]RBBAAOQ]DSE@F_Q@[VMCSMADUECOHycI‹qMQEU}zkaŸwENRDENB@ADG@@HF@YnaAOFƒ|CDFHUHH^kVbCR^JHIFLJNGHBDNPXGRSCO^EBMNCPDHHFAFiEIHOAEH'], + 'encodeOffsets': [[ + 120045, + 39982 + ]] + } + }, + { + 'type': 'Feature', + 'id': '120103', + 'properties': { + 'name': '河西区', + 'cp': [ + 117.2365, + 39.0804 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@d@hZNFdcLYXKRCtCMOFSYEGHEAGEDMu@SKAAsx]GMTGt'], + 'encodeOffsets': [[ + 119992, + 40041 + ]] + } + }, + { + 'type': 'Feature', + 'id': '120102', + 'properties': { + 'name': '河东区', + 'cp': [ + 117.2571, + 39.1209 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ZBVFFIGABEEA@KXBDOFM[EACJgˆOIE@QIMGDBHUFEEGAEHECEDGIAKQDWLKZcdQPEP@FOFBJTJ@HNORJf@DBCN'], + 'encodeOffsets': [[ + 120063, + 40098 + ]] + } + }, + { + 'type': 'Feature', + 'id': '120104', + 'properties': { + 'name': '南开区', + 'cp': [ + 117.1527, + 39.1065 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@NMVDCG\\E^B@HlB@YEDS@C…HsNSiMGDebUXAJEjidVTAFHDFJ'], + 'encodeOffsets': [[ + 119940, + 40093 + ]] + } + }, + { + 'type': 'Feature', + 'id': '120105', + 'properties': { + 'name': '河北区', + 'cp': [ + 117.2145, + 39.1615 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@DBXFADB@L@LFHM\\NHED@JKZRb]QMRAFCJBDCBQYADMCAe@QIMP@GSIAIPE@E[EGH@ZEF]^HJAXK@KF'], + 'encodeOffsets': [[ + 119980, + 40125 + ]] + } + }, + { + 'type': 'Feature', + 'id': '120106', + 'properties': { + 'name': '红桥区', + 'cp': [ + 117.1596, + 39.1663 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@J\\PNHEZBFEJELEL@BWGI^]FEkA@G]A[FDHUCMNEHJ^'], + 'encodeOffsets': [[ + 119942, + 40112 + ]] + } + }, + { + 'type': 'Feature', + 'id': '120101', + 'properties': { + 'name': '和平区', + 'cp': [ + 117.2008, + 39.1189 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@D†T@FCHG\\FFOROMEgYc@'], + 'encodeOffsets': [[ + 119992, + 40041 + ]] + } + } + ], + 'UTF8Encoding': true + }; +});define('echarts/util/mapData/geoJson/world_geo', [], function () { + return { + 'type': 'FeatureCollection', + 'offset': { + 'x': 170, + 'y': 90 + }, + 'features': [ + { + 'type': 'Feature', + 'id': 'AFG', + 'properties': { 'name': 'Afghanistan' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ࡪ͇وŐǬϠڐŶӂʮǚڦ۾njƀ̚ІɣʪҴMوǯʲĹ،˒˰Nj˖ϪԈiżŬĘͺβ̈Ҕȏĝʱʪ¡ý۷ͪ˟̊ǰώĊԼϖׂ×ࢀAƬʋӧĥяƹ७ĭࣗǭӫλȤΣĪллΛ–͑ɳ̡ߛ€ͦ։՗ɅΥԕ²ԋ͡ɿ̳þٝŋğɻسDҵӇ‡܍થΓבôǝȁԇņ࠿űටіހހåզُƚßՔ˟ڢάҢιŮɲؒ΂ਸ'], + 'encodeOffsets': [[ + 62680, + 36506 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'AGO', + 'properties': { 'name': 'Angola' }, + 'geometry': { + 'type': 'MultiPolygon', + 'coordinates': [ + ['@@ȸصʌԋȘ˕͐ѯ֊æˤŠҬşŲɀɂӨԶ®ƤіHñ̡৴RfՉǞ͕ūԑÖԫ˪̷­ৃȼüκsԴŴϦ¹ĘʹĩСƨϿů̿î́ყZᦵ֤ۋպԽ໳΁᎝Š׋Ж₭—ŵÏԃϞկ~ԉƝЙDžÿՈŜ݊̂ޒªΰ˚ݶȨΆӘռːϐĘج«ӊʣ̜ɡԚȵԎ®Ǩʶͬʭ߼ǣ֚сՐĄǎΌŔʒg̎ĸៜ['], + ['@@ɉėɣلͼδʪƘ̀˽̩ǯƍɍλ'] + ], + 'encodeOffsets': [ + [[ + 16719, + -6018 + ]], + [[ + 12736, + -5820 + ]] + ] + } + }, + { + 'type': 'Feature', + 'id': 'ALB', + 'properties': { 'name': 'Albania' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@Ń˷ŢέΒȳiə˗ŧ»˙ϷСƛÐgȂү˰ñАîֶŖʼƗƂÉˌθаÂƿɨôǴɥȪďȨ̂'], + 'encodeOffsets': [[ + 21085, + 42860 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'ARE', + 'properties': { 'name': 'United Arab Emirates' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@Ƭ¤ŒɱڂƂ۞uԖ{ֺ֪ظՠՎԮdž˹ŖڑѕGçճƪŝϝǑE΅ʓΏuͷǝDZᡋъ͏࡚Ț'], + 'encodeOffsets': [[ + 52818, + 24828 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'ARG', + 'properties': { 'name': 'Argentina' }, + 'geometry': { + 'type': 'MultiPolygon', + 'coordinates': [ + ['@@ߗ§ѓ̔ԑx࣑@Aሞ͒ϵрؿનԋ୲ȿϙп'], + ['@@Ӵ؇͠ڰॠ“ƊǷ໶ോۊŷਆاࡾ͡Ŧχࠡ౧ࡒɭ़ŷڔƈނ٢ƎݐжLjфӝiڣۻҩ֟΁ॅࠃ૭ଧȽڥɣࡹT࠷ǽȇÝիËѫ੨ܙŗ׃Հν§Ч߯ઁఛ҉။ǩउĎǰԅǣػƺщԋ̏ࡱř̪͕߱ɗŜ࠳֨ʧҠˆʢѧޛʻڭԹūࡋȣ҇ߏEڃљʋؿؙࠞߦǝ˿ݭ঳Ӄձটލͧ΅Ͽ˔ࢍ֔ӡΟ¨ީƀ᎓ŒΑӪhؾ֓Ą̃̏óࢺ٤φˈՒĭьѾܔ̬૘ěӲξDŽę̈́ϵǚˢΜϛ͈ȝॺ͸Ǣƙ਀ȠࡲɤݢԊ̨ʭࠐEޚَոo۰ӒࠎDޜɓƶϭฐԬࡺÿࠀ̜ބռ߂צԺʥ͢Ǭ˔ඔࣶд̀ࢎĹɂ۬ݺશȱ'] + ], + 'encodeOffsets': [ + [[ + -67072, + -56524 + ]], + [[ + -66524, + -22605 + ]] + ] + } + }, + { + 'type': 'Feature', + 'id': 'ARM', + 'properties': { 'name': 'Armenia' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@୞ƀǨə͌ƣǛɁ҄˽ʁˋΦɫϘƏl׋̣}΃ӢHżχCʝɤǩuͧʖرȼĄФƛ̒'], + 'encodeOffsets': [[ + 44629, + 42079 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'ATF', + 'properties': { 'name': 'French Southern and Antarctic Lands' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ը˃ߐĿˆDžɽϣಇÃq҂ŮΎÊǢ'], + 'encodeOffsets': [[ + 70590, + -49792 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'AUS', + 'properties': { 'name': 'Australia' }, + 'geometry': { + 'type': 'MultiPolygon', + 'coordinates': [ + ['@@ߺ́ҜŘپNJԎÉÐঽ˽́ēگ̉ɰ׍בǧ®ԫ€ԭܘŗֈӝܸtϬռõ'], + ['@@̢ڇբ̈́˦ΡЖ͟đϋǴܛŸнɄĹɬܕąѥ˖֭࣬ѭצЋ֞λŋȯӔՃࣧ͜ͲȂ;ηȴźƢࢹ׬ԩϸ͋ڀڹʀڭtӏËԳА܋µݓơϵɩݡjӕǕ׻χއثЭ̫ٱ˫гʝܧ͕нɅػʼnׁªˇӕ̇व‰ޡ·ϫ͙ԕέ۟ψԥƪżѬҝǃ݁؉ܩɪӉƄӑÔ߿ʐիԮƻْțьЭ;߱ĸˢРȯزЧ׉ݝƷѮҬŶӞ͘ЬãجہܑԿ˽͏ڛٽΊ~ҀԿ،ѹ̀ǂȘઃԚןz߯Цຓāછ̝ख़˫ߡÈࢻљܯȗljѱ̳Ϳ܉qՅõݑƶ׿ğֽԁ҃ʕœуʁЗˋؕ֛Bࢽ՜ҋDŽlӖкŘƚȒ‡̠ĺאģӼѻࡖƏӒ˜ӎͭնsʚϋͰĽڄӓڔřΪτε˳ެиʑʞ͗aјеڎă˄țʦĠӠǢȸŘрęӮΎ؀Úٕ΢׀ۀˬЦΪٜ̰ϤàɴĻڎ̺ԚĤŶȀɞüҬoࢨʖҚώɊ҆ӲѐœͲvҘט܎ΠܩΦǚ̗Ј˂ТψǻĸٖҠаȮͨцƜ`ɼτĭdɂτŦОŔبϫҲӽՂMՖÿDZҦДڪϜɘſȾκӒԘ̒јıۺǂeі؛ˢ҂Ū֎ȻҀ·ۼɋʈĐԶʵӬʊ͂ñȠNJϬеɡ͉҇ͻ˿ƒĮͱʙп̗ЭÔʁڜҫ٨ˏѠ́؈ӻʂBѰɍŶʷߤ˵ֈ˼ǐҊǠόľҤʰڞŝОÔʔīӔŌنLjǠŽˬȮѾdžҦtʈ̸̾ʂЩÎՃȾķ˜Λ̨ёÚӇ‡̥'] + ], + 'encodeOffsets': [ + [[ + 148888, + -41771 + ]], + [[ + 147008, + -14093 + ]] + ] + } + }, + { + 'type': 'Feature', + 'id': 'AUT', + 'properties': { 'name': 'Austria' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@Û΃ӁCǎǻ˧էLJƗܽsщȏۛÞயɐȉ̊ࠧƣĭDžԗŢѕxϝƶźȴƬʪ²ьɹŤɜݎ•׸ƮЖ}ˀǣþƜšո̠ń̒ϰز˓ӀΆ̐ÚٶʱЂªϰǁãŃČ̅'], + 'encodeOffsets': [[ + 17388, + 49279 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'AZE', + 'properties': { 'name': 'Azerbaijan' }, + 'geometry': { + 'type': 'MultiPolygon', + 'coordinates': [ + ['@@ʞɣψDGŻ΄ӡֽŒщϰƃ͆Ǫv'], + ['@@ϊËƞɈԈͺѴѵђ׭ϺŸʸɧۗãƣٵƟ̭̍ȝvзȽ¥ԻѲ̂дʝʚ̿×যإk׌ϗƐΥɬʂˌ҃˾ǜɂ͋ƤǧɚȶƎضʍҐ¹ŘIJбҔɔŚʀ…׀ԙ'] + ], + 'encodeOffsets': [ + [[ + 46083, + 40694 + ]], + [[ + 48511, + 42210 + ]] + ] + } + }, + { + 'type': 'Feature', + 'id': 'BDI', + 'properties': { 'name': 'Burundi' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@Á০ɃϢԜßʲӎҀŸͧǸȏT˗ȹǭ͛ѫ̧̥΍Ÿ'], + 'encodeOffsets': [[ + 30045, + -4607 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'BEL', + 'properties': { 'name': 'Belgium' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@؜áުǪՐοҦȝħ֧ɕĝһܿϦћßדІϷͶϷ`ũ̒ڪǔ'], + 'encodeOffsets': [[ + 3395, + 52579 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'BEN', + 'properties': { 'name': 'Benin' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ۛįȹ׆žኞǛǦЮ̇̌ʱʞņѶ̀ĨǠξЪĀȀʤˮʘ̠F٘ә˩ȎӽǓͷĘɧСԳʵʳǁՉt՗µണ'], + 'encodeOffsets': [[ + 2757, + 6410 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'BFA', + 'properties': { 'name': 'Burkina Faso' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ֹɐϽ‹̍Ƀϗǰƥ˦ϙǾÅӦɮΤo˴ښۢŬּɲȴОœΚǢŘɎٴϖdžˀ޼ΒҦŢɀLJՠJáСŔϣӀչ€НॺȏmֻǿʣЩÿǟν˿ħ݁lϳâ˓ƉωÖร¡qӉŘم'], + 'encodeOffsets': [[ + -2895, + 9874 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'BGD', + 'properties': { 'name': 'Bangladesh' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@i׽̉ŶÆگʉѬµєDžКΕӨޟ’ü΋˃ҳΧǠũƵʃĠ͗øŽۖ̅لƜԒԫɤȆ̪Հ̼؅Ѽ֮̔ږεВ£ô׏ߞřު^Ӟƛϯ܅ϕµʷӍҢѥƎ՞ɶFѶ೯'], + 'encodeOffsets': [[ + 94897, + 22571 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'BGR', + 'properties': { 'name': 'Bulgaria' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ʎΉ͚Ö٦ſ௾«иɌবȜ̩ؒӴĕѥΏ̫׹˔ӏܣŒࡥ˃Uлޅÿס̊ڧɱة|Ñ֊сːƒŢĝĴƘˌ͌ˀСδ÷̬ȸȐ'], + 'encodeOffsets': [[ + 23201, + 45297 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'BHS', + 'properties': { 'name': 'The Bahamas' }, + 'geometry': { + 'type': 'MultiPolygon', + 'coordinates': [ + ['@@ȵ£ɇӜ̿ʐǾՔʨ‘ۣ̎Jӥ'], + ['@@ࣷƅÏ̴Ђäֈ{~ɕ'], + ['@@ƟׯƷņ`ѮϓͪCĪڐϗ'] + ], + 'encodeOffsets': [ + [[ + -79395, + 24330 + ]], + [[ + -79687, + 27218 + ]], + [[ + -78848, + 27229 + ]] + ] + } + }, + { + 'type': 'Feature', + 'id': 'BIH', + 'properties': { 'name': 'Bosnia and Herzegovina' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@̦FȿσМ͓ūЃȡ™ƽû˙țūҥݓ͈ͅΘ͋Ȅϭ̾ǻʺЩϾǬΒ̞ȕǼǨϾnܠƓ׈\\Ϟȅ'], + 'encodeOffsets': [[ + 19462, + 45937 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'BLR', + 'properties': { 'name': 'Belarus' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@߼Mࣰ̈́ȚӄېːÿϔԜƚ͖ࣘࢮɁŢȻѲĴࠒȧĊЁǷɧՄս΂Ƴ»Ʊ֦Ʃʎɡ͝ǿڳˆljÿȠ˧ȸ՝ܝ¹ʵȁÃхͭĆݷ¡əȞ̿ƥ́ŨڍjफȬࡕàٱmҡɩГeϐʷϴԌǢLͰɷ͌™ϊ'], + 'encodeOffsets': [[ + 24048, + 55207 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'BLZ', + 'properties': { 'name': 'Belize' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@OŮĸžƴı̞ԔDŽZHūDŽGaɭƋεôŻĕ̝ÀăīщǓɟƱǓ̅ʣ@àॆPژ'], + 'encodeOffsets': [[ + -91282, + 18236 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'BMU', + 'properties': { 'name': 'Bermuda' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@OEMA]NOGNG\\Q^McMOI_OK@CQSGa@WNLVWHFLJXVFGJ`ZRTDLeeWKIHGIK@@[MQNi`]VDTBHCJAPBJLVFjT^LV\\RJZRn^RH`TfJjZHHOTTFJP_NOX[EYQQKMEJOLANJH@HQHAARF@ZEPS[U_IcRQXE@EEKKOCGGCQCOGISKYGUC'], + 'encodeOffsets': [[ + -66334, + 33083 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'BOL', + 'properties': { 'name': 'Bolivia' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@य़”͟گӳ؈વȲ۫ݹ؅ŗ͡୆ҋऺˆ߾ѳ΢ŏ؆ЫֲՌ࣢αۺȖ˰ƭ̶͠рh܎¤נǸ˶ܩഠزíѠnȈʪ݀;Ѷ͂સƚęؽļ͓ãࣰ֛ݫऴƑ̻ͦ֨ǕΐʑՈTӦʟšӟǐʕZγʓa͒এྖ“ūӟĜͧҞɽȤԹƫڋɯρĄӏʿǥaʶ޳јޭ^ัʓЕ݋sҋͥ৕ƉǸ'], + 'encodeOffsets': [[ + -64354, + -22563 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'BRA', + 'properties': { 'name': 'Brazil' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@૮ନॆࠄ֠΂ۼҪjڤуӞеLJǒӜŖӼBҦ̡ƴ̿Ƌ̻œį͔ýޔƿʤ֥ɪ΃ǏࢱLjÈଜʝҴˀǦăӐɰςƬڌȣԺҝɾěͨŬӠྕ”͑ঐʔbYδǏʖ™ӠӥʠՇSΏʒ֧ǖ̼ͥळƒ࣯ݬä֜Ļ͔Ěؾષƙѵ́ܿͽȇʩџmرîӃƟϡĪÈ౨ۏӷݏv҄ͅ֏¶DzΰұԞΓݴɜƶA΢ԖʎċҔɊ̈Ôϼ०ֲێNJŔŴݴŸϚᘰpθſӔύ̬LؐӀƒǚē†͐ӯĔYՀ࿖k˦̂ɸˉǐӷǂļҨѻٸÆnjʲشȞΊƐĮΤ׸ʆ¯Ǯ܅ðśՊ’֞ϓɒǀþجŅڜȿʐȤ؀žल̮͎̾ŏʂѪšȜȗʼnσ̀ŵȖϷɷ̏ƅ܏ɌыÔϳԬϿЮ¥Ģǒˆ˜ϠƦ˚ɢҬíȲŠҚçøǢƗǘĎʐͺõЈĒӔDZξǥʺɪȊ•ŘɿДÒ͒͊ʴؤӼޒ˺¢ȺҫҼ฽҈Ƒxׅمەʾʩ๤ƁŠࡃٔր੐̟ඊԡШӱƏҫ঎ʶ࿐ѹఴŽఔ۝੸व٪ʏܖ‘̦˅˸੭Ɣԗͯ൹ёշஅୡՙोثܯȿgɻءÒ༽ɹಓęօˇͧƫ૱࡛઱ƛࢁڹηȟԋ࣯Fೕ͓סύवʗ঩ڝ܅࠯ũطƔҫƽࡓȏЧחҥट๕݉ڗ֯Ͻϥߛ։ӑɷӈψЊӟֲڇҬࡹՠ̹{ࡅٰձę'], + '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ନύʐ֛ƛ˧ɚٙىʱٹ̕ϡΥŽˏ¥čȹ໽A౥MϛƷࢵ؃Ŀßˍ͝ޗ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ഫļᖁ˔̃ҦĹжࡇξ჋ĺঅʼ͂ΈႾÁ'], + ['@@ŗ٣٩̇޹£༝Ϋ഍ŹଗǼ@@ුؼႮծಆ[ସŬ'], + ['@@ϣy༽Âɡɼၜ]מƻĵĩ'], + ['@@༩ʋఝ˔ڼˎ௮Đஈſ˩ʥ'], + ['@@৽ǏඉBbŤࡴʦҌદǝ'], + ['@@కǥۃȚέ͂áΎજ‘ӪÅ৐̇ɫ̣'], + ['@@͜Ε൏Ĥ൩˘ሏŒߺʠ৫ȮÕ͐࿶ŕᗢ̫ٞЍ'], + ['@@০˕ଽʟ༇ك๥Óდņࣗ΄^̦ڔɢ໡Oए˨ՑϠ׌ώ׊ʲࡴÎοȖዜ¨੶҅මǵ൞ǃڒև'], + ['@@ᖢßᅮŅ໤ɫ™ɡᏅη᎙ǟݻȉᆬJጡԙേʃ෯ۇႿƓՙǡᡷěୈĿׇƭ۞бߙ˽ಛʃЋ͡୫ʣŞȏ෬lȳᖟԋᔧɴឿŻధĸཟªĿЖ༊Ȑб؆ԢÐᖤγ଩բഹLjڼ͘๰Ȩʄ̊஋͠ΥѠᘞ—ڒĝ಼̪ቃĬ᰽Á๣˸۩ͼগʘȁ˺దLjঘ‚࿲ƌం̺ਬ©ࣤɽٔҒૐƈບĢᢲ–Ҁĝ᝚ƚᆔÁᆒÁ'] + ], + 'encodeOffsets': [ + [[ + -65192, + 47668 + ]], + [[ + -63289, + 50284 + ]], + [[ + -126474, + 49675 + ]], + [[ + -57481, + 51904 + ]], + [[ + -135895, + 55337 + ]], + [[ + -81168, + 63651 + ]], + [[ + -83863, + 64216 + ]], + [[ + -87205, + 67234 + ]], + [[ + -77686, + 68761 + ]], + [[ + -97943, + 70767 + ]], + [[ + -92720, + 71166 + ]], + [[ + -116907, + 74877 + ]], + [[ + -107008, + 75183 + ]], + [[ + -78172, + 74858 + ]], + [[ + -88639, + 74914 + ]], + [[ + -102764, + 75617 + ]], + [[ + -95433, + 74519 + ]], + [[ + -123351, + 73097 + ]], + [[ + -95859, + 76780 + ]], + [[ + -100864, + 78562 + ]], + [[ + -110808, + 78031 + ]], + [[ + -96956, + 78949 + ]], + [[ + -118987, + 79509 + ]], + [[ + -96092, + 79381 + ]], + [[ + -112831, + 79562 + ]], + [[ + -112295, + 80489 + ]], + [[ + -98130, + 79931 + ]], + [[ + -102461, + 80205 + ]], + [[ + -89108, + 81572 + ]], + [[ + -70144, + 85101 + ]] + ] + } + }, + { + 'type': 'Feature', + 'id': 'CHE', + 'properties': { 'name': 'Switzerland' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ƫŹȳϞƵіwá΅χƙةŀǻ͹ЏơƄһ˵Л¡αǶ˽ςБſ^ϠؚҾɈϤûɲƞ܎MǦǼ࣒ʱ'], + 'encodeOffsets': [[ + 9825, + 48666 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'CHL', + 'properties': { 'name': 'Chile' }, + 'geometry': { + 'type': 'MultiPolygon', + 'coordinates': [ + ['@@Bም࣒@Ԓw˧ͻܛʻЭ‚ӻä؏ʨ࢟ŨੑҸ࡫Ҏୃशۘǭ୼֗૜̟ѢϬ˘ֺޠΎװı'], + ['@@͢୅؆ŘĺɁ˿ࢍࣵг€ඓǫ˓ʦ͡ץԹջ߁̛ރĀ߿ԫࡹϮฏɔƵCޛӑࠍpۯٍշFޙʮࠏԉ̧ɣݡȟࡱƚ৿ͷǡȞॹϜ͇ˡΛ϶ǙĚ̓νǃĜӱ̫૗ѽܓĮыˇՑ٣υôࢹ̧̐֔ÄgؽΒө᎔őުſݝPЙȷݷ̣Ɖ޹Σoॅ˚१ג@@ਲ਼ӔˁՒʄӰх֒Ņ෤Φ߰ࢴٰౣʔߞݒ˸ඊत̏Ѯგ֝ɠʿ਻ՉŠ˂ல˺༒ϮָʍࠎéूΠ„Ԩപ׈എΤబȗ఼ʤۚĵਞӮਆưྺ˒ნˀሤÕ൘ǩ஄ќɌɦњЬֱŐ؅ѴΡ˅߽Ҍह'] + ], + 'encodeOffsets': [ + [[ + -70281, + -53899 + ]], + [[ + -69857, + -22010 + ]] + ] + } + }, + { + 'type': 'Feature', + 'id': 'CHN', + 'properties': { 'name': 'China' }, + 'geometry': { + 'type': 'MultiPolygon', + 'coordinates': [ + [ + '@@ԑഓΫۏѷ܂ĩخӶࠜڦَϨʡƣԓ', + '@@ܩЗۏʺyܢаϠࣾɾӚoȊ͍σσșӟ' + ], + ['@@ฬˍ঺ׯͼ߃౨Cܰͨ൸ʜѳݱ͙̭˽ः֡ࠇ৵ƪܝ̑ɜܙť঳ѕwLяթӺͯһಙαƀѹܩŒЍ˂ֽ׭ऑҋۃա୭ʑأϽࣝɭ҂ϴǭ͞ږ֠ѹѲܷ̓ॉ׏ԫթ࠙¡ѓϻѸ֩یƏ„ϕڔʕस׶ݚ͝լuƌѱஓɻϻҏࠇућיࣜҥͦࠝԞޓ֮٥_دՅɯȪ҃ӶʻŻۃɇڗҷ÷ؗࣧڹિޭোିޡୟۻृĩԣύ̃˘Ӈй୭сࢵŹ˻ࢱҭ·ə؎Ȧ͘ૻːЇƍࡍɔЏ΀ƄӜޏƶЙܑ̀҃ࠇīڡJ҉ȳѥūŶ॥҃x÷Ȣ}Ύ؝ʓεƸر͂ʔۤՏǎȧޜࢱƓĴাߔۮ”ۚ{٠νȨ˭ӶӭÙࣟŲ˴ΜϿԺ׳Ν۵ȸॷ՗އسڳĿοɦѹr׷Țґɇ֋رëڌԟǭওĈोȖڿτٵǔ˯ЖҽŦࡓոکʴΑȩଢ଼טࠛՒɽऐ׾ő‚іͭјĐۆࣙঠ൧ͼʝ٦ةϼƫʌųӎˆ͜ԛȔ˟ďɇިʈȔśȠߤЈ׈ǐࢸő͆՜ંIJͮ̚೜ҔŠȐãӐּɔݱฦဘͲјȈ؆ຒဠˡҲϞ¢ࡆۦĀٖ֔͢èɚו۸ѽப̿׆ڱ͕ঙ̢ηূƝଆŝ৪ԻԲġϤޟӲӿऒnჄȉ૤Ŝࠦůఔԛ৮BόʽঐҌബ̈ాŒঘ̒׾҈ך˰Ƌˤˍ͔ѴըӀùࡺǝ࠸Ѿ౲͚؞֊נʆ௠ŐڐĥĠ̘ݿזګː٥̳ࠣžӇŃɏΆר࠾Цو৚̓ஆՎQτݸࢾҲːWҪңȦۜмਰƲ૜vసʡ݈̱԰ࡏ̀α̊ԩ̶ࠕ'] + ], + 'encodeOffsets': [ + [ + [ + 124701, + 24980 + ], + [ + 112988, + 19127 + ] + ], + [[ + 130722, + 50955 + ]] + ] + } + }, + { + 'type': 'Feature', + 'id': 'CIV', + 'properties': { 'name': 'Ivory Coast' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ϣUוǒ՟Wহƥ׍ʍ̯ࠫNjvÞۖĄŀ}ͨΣΚˉÈʕɲǾώčО ʔƄB¸ξÝnjĄŜ̸ĶȹڨȗΎæ˸ǘÞŊúɸųٮOƸʖƢgʎĦžΫȞłΌŰϚǽƦ˥Ϙǯ̎ɄϾŒֺɏɠ஡Ο۷ɕेθܣ›ͧ'], + 'encodeOffsets': [[ + -2924, + 5115 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'CMR', + 'properties': { 'name': 'Cameroon' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@Ľ°ӻŇԝŒЋÅ൅nŬڒ͟֊ϧƚǟϖɋŦXɶɎתЎ߸ʒRԄӮ͈bҾΉ־˲ĀΔȌͺžь҆ΊǞךDzȊŢѨɜ՚۾ٲ¬˨ĠƲͫͰ‚ˌʂ¶ͮ՟Ê֏‹֏ҜޅҷTʁÏϥČǻЅӸөμƛŠΏˆ׃ſɩх࡛ȫƳÝٳČΝåʡЈѭð̴̟џϨ˓œϥĘʏÓґڛȤڷɜ੗'], + 'encodeOffsets': [[ + 13390, + 2322 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'COD', + 'properties': { 'name': 'Democratic Republic of the Congo' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@»ঙͶŕˑ̗͓ɟ͍ѫǯϷ±ګț͍Oهʍɹ‹ԃŗÝýҟɄϡÂ৥ưޝċѧǘӣӤҹҒ੕ͥĒ૿ƙɣĵʇՙȊχƫষĻࡇɨƫט͝ɲƴìٟࣟR·Ҧ̳ΨٟŠȋѰԣ˅ڧŞ˫ϢՕüϽqµʾ́rϥºԳųιtȻû®ৄ˩̸ÕԬŬԒǝ͖eՊ৳Qò̢ѕG­ƣԵɁӧűȿҫŠˣş։å͏Ѱȗ˖ʋԌȷض៛\\̍ķʑh΋œşʼɊʀμƎɎ̪ǰɚđ˼͐ҜSÄʃ̼ƩӶՄӨШɆːƒ۔θࠆϬўքМĪˌt̰Ǝ̆«ӊŀݖǐԾʦ҈¸Ԕúה͜ѐҊ˔۔˷՘ؚ̳ĉظǏʦԖŘÞϦčनоͨDZ˖~ŴȲ̺ðلėբoˤĚԘۙϘķɤƖϲÅҶDzȦΫ݊֏'], + 'encodeOffsets': [[ + 31574, + 3594 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'COG', + 'properties': { 'name': 'Republic of the Congo' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@̿˾ʩƗͻγۏࢸٖҪ̓֌˾ɂ֦ĺäό҆Зݐ•ʴЈł֒ĝڀЉӺζ঄ȽǘسçɻѢÔξ੘ڸɛڜȣÔҒѰ޲ԆѼ֪Ɨդ±·ԓʥ҇ǏԽĿݕ¬Ӊƍ̅s̯ĩˋփЛϫѝηࠅ„ۓɅˏӧЧӵՃ̻ƪÃʄқT˻͏əĒ'], + 'encodeOffsets': [[ + 13308, + -4895 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'COL', + 'properties': { 'name': 'Colombia' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ΫȤЭ˨ʅƅ܉Ŝȱΰƽ_࠿Ӓŕʺ̼ڛтȢ̦иÊΞՆ͐Ѵ̳ȦDŽӦȏސǸɚƃ܄ͻ҄ņТ˔ÑǂʠțӶĺŬѢـהΌĚT˦ƺ܂ӖϸՊfäǪڂéڌъ͞ȊОК̖»ɚɛǍ˱գƕɇп͗ʋʓ̷Ĺ׵ɷӭѢÇņϭȄȁâ͹ij̵ˆǫȸéȨ̉ઊĄӦŃעܡͼĚ؂­ӐĪ̔ƟƱҍȇ˯ß׻ǜ֑ʆʟ†ȉэл̨ȃɠ̋ʰ࠹ǁĻǏӸɷˊ˥́࿕lZԿӰē…͏ǙĔҿƑK؏ώ̫ƀӓoηϙᘯп҂ʣpժࡤٟϾԍị̈ƤҧɝصŀӵࢤϳɐˍІ֑Њɡā'], + 'encodeOffsets': [[ + -77182, + -155 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'CRI', + 'properties': { 'name': 'Costa Rica' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@җȆǟǮĬƤ‰ȄɷȪͥǔ́ņÅʖəƮÄʑǗȩȓɸˑĊŗǞLʮŎˆʁŠȖnjŴňֆɝȖŊˊéƔǥʜÇȪDzɈҙ͖ͷЂΩ͗õLͷǪűűıƱëǟ©Ǖ'], + 'encodeOffsets': [[ + -84956, + 8423 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'CUB', + 'properties': { 'name': 'Cuba' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ܨÑڊW߄˹̭ͮ޺Ĩ̔ȡ܈ԳԺϛˢ\\ԆǟÕʁئ“ٌ΅ıȟ֑Ń֡¥׃âளą֜Ҷ΁ɔէÈ̃ʐȥӎӃ޵ɦʥǬભž̋ǐ̀ɀࠗ¨׿ѧΏ[ťȳеğΫĂѺʸǼ̤ϞȈіǎَĄȰĢ'], + 'encodeOffsets': [[ + -84242, + 23746 + ]] + } + }, + { + 'type': 'Feature', + 'id': '-99', + 'properties': { 'name': 'Northern Cyprus' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ÐJŨȮ؄Yކʢ֧ΧÔƿęˆLJÙűj¥iĎѾNjVɫïƿ¬'], + 'encodeOffsets': [[ + 33518, + 35984 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'CYP', + 'properties': { 'name': 'Cyprus' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@€ãࡱͿЩŊȟͶЎŒǀ«ɬðnjUÒ½j覎ŲiLjÚ̇'], + 'encodeOffsets': [[ + 34789, + 35900 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'CZE', + 'properties': { 'name': 'Czech Republic' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ϯǂЁ©ٵʲ̏Ùҿ΅ر˔ӃΰѕȬėΠƧʠؒǾ̸Ⱦ׾ǎɂdžɜīϒĖЊ˓ؼñ¿ɳҘǧŲɒּĥĄʿز»ϮЯʡCŽƯȕ—ÅȑLJ¡wý˹ēϋbšȁ'], + 'encodeOffsets': [[ + 17368, + 49764 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'DEU', + 'properties': { 'name': 'Germany' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@d͗ࡔțS̗ࡢǂҾɰॊͧІˋȞёɹɣ̨̙Ⱥ҅ß́Έ՛ϑĕɛĬɁDž׽Ǎ̷ȽؑǽƨʟĘΟіȫӄί̑ϯ̟ŃŢշýƛʿǤЕ~׷ƭݍ–ţɛыɺʩ±࣑ʲǥǻ܍Nń״ьֺ௅ƸЇɘ´ςǗȐĨ֨ƗࢢԎ@Ɉ͂Ⱦޔƿ˴ǐDz۰°Ƽȃ֮вȓ̀ӈٌōՠŸ'], + 'encodeOffsets': [[ + 10161, + 56303 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'DJI', + 'properties': { 'name': 'Djibouti' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ȤʹΑӏȩήɯ̱҇ȅƬȭÏҷb_ʮßɶ˴Ѐ̐ϊήñʪȴ'], + 'encodeOffsets': [[ + 44116, + 13005 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'DNK', + 'properties': { 'name': 'Denmark' }, + 'geometry': { + 'type': 'MultiPolygon', + 'coordinates': [ + ['@@ԋڹ࢟ӄŝΒ௼˨ˎу'], + ['@@ȵ̓ʡĞ؁؁ɮХ՟ŷًŎͽҲ}࡬Ɣɪʌʦ݌À̐ɴڮʂƒѝʟ˙ĶɽҘŵ'] + ], + 'encodeOffsets': [ + [[ + 12995, + 56945 + ]], + [[ + 11175, + 57814 + ]] + ] + } + }, + { + 'type': 'Feature', + 'id': 'DOM', + 'properties': { 'name': 'Dominican Republic' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ŀƞپIӾɏɜtƴ̕Ҡhʡϐ‰Ю̷̯ͿЍǼϫ•ˡ¢ƱƵ͑½ŷȲˣťͳֻɏƆ§ʎjɬɍʦȲƚÞ͒óҜ'], + 'encodeOffsets': [[ + -73433, + 20188 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'DZA', + 'properties': { 'name': 'Algeria' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ᮩཽᝩ࿷இϑटćU՘ϵƌԹʊȧЀᬻᆴᬻᆴṕᎠfnj@ÊQ঺ബب࠼Ÿێɦ͎тচͪ˜جӢòϞ̶સƚƸ͜ɛDz̃ࢲ¹Ԟ́ՠ߰ҠࣦƢՌΎ߶ʰ෎Ƭർæшůߊͨ࣌P΀ȝֺ¾ǟћƄߟȡۙԭҵôمۊԃRȯԮ͹Ϊຝ˖ݏ°ϵƧۇÔϥŃҟòՇͫΗӺؓŽέ̘ҵϼƸڒϷςՃ'], + 'encodeOffsets': [[ + 12288, + 24035 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'ECU', + 'properties': { 'name': 'Ecuador' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@҂غǻξ͍ϵԉςǞʀƙބ̎ŴƺԼ͆զÍ΄ҢǸ׀Ͱࡀӑƾ`Ȳί܊śʆƆЮ˧άȣŞٓʽճࣷ࢟য়ͧԥܵǃ֣Ӆ΋ΙъͻĞ΍áw̮ʈȨıΔ'], + 'encodeOffsets': [[ + -82229, + -3486 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'EGY', + 'properties': { 'name': 'Egypt' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ɽͷǹىɫѩȝƥ˩˔ϛϒ׵ஸđùΐࢯԪࡋٌವ̴ҙ˒ӃݮछǗƣ‚ճ঒ݭƨǣΏ@Ὁ@⁩@@ᶶ@Ჴʥڲɐ԰Żά̤Ж૦b߲ɝ࠲ʛϴſ٨ˊΌʊݎêװŃɮеȜ˜ڨȣټ³аɄւ෽'], + 'encodeOffsets': [[ + 35761, + 30210 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'ERI', + 'properties': { 'name': 'Eritrea' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@˻˖ΉӰϋ˒ɏܷ̄ͶֻXȭǬӯȡԛϢʽط঑ǬęʹβఀĊ֒ˆʴؤƐьӒӦঃɴޗҢУବߏҲӍҖӝˀ˿аʧʩȳέò'], + 'encodeOffsets': [[ + 43368, + 12844 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'ESP', + 'properties': { 'name': 'Spain' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@¦״΃θஒ؆ਊƱ૾NࣂƝۦªമƒͰ͛໺ϡ̨ǺीϝআŊ®ӥߓ֓ઁǯõ˱ԩү͕ہ͞ӑӟϑǹճىǗש٥੧_ߟhՃ͍̓ͅЩê̵˴ʃӚ޷žé˦̶̀Śɬ̃ʢɶրͳԌδè’ЈƎŬZپϲɪɻфөˆƝŁӹCɁЬ΃ū̥ɇ'], + 'encodeOffsets': [[ + -9251, + 42886 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'EST', + 'properties': { 'name': 'Estonia' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ĮӸ̱ŁՓ̘ñӘਫ਼ɼ੔Ũ࣮Ƒࢂ|Ŵƣׯӝʞ޵ΫˉۙDܡ̸ρļ܏Ʃ'], + 'encodeOffsets': [[ + 24897, + 59181 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'ETH', + 'properties': { 'name': 'Ethiopia' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ԜϡӰȢȮǫּWܸ͵ɐ̃όˑΊӯ˼˕̏ω˳Ͽàɵ`ʭҸaȮÐȆƫǽ̴̕ҧ̴Й̛͎ᩨঽۺNᛛᡃફ™ݟףաeɯ˅ַB͹˴ލΙʝΓ֕àȃĬȟwˇT੟܌ב@˹ˢ@ҾѧƘӻࣴϥȚƧʹэЦԧÒ˸ӐҀrŲʰ[ݲʞࢠЊɾĎ΄ήٜԔи΀ࠠƆܠ঒ǫʾظ'], + 'encodeOffsets': [[ + 38816, + 15319 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'FIN', + 'properties': { 'name': 'Finland' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ūיಀ֓ޡى঎ख़֡ܛݴس΅յఘֻ́ѓޭӟᅡੵໃá๑̯ൃǯӡҞ߿ˠȈࠢСݶАӪނՆ኎࣮֖Ǭē΢ୟЈ˳͜uಒ಻ֲ૩ЪԊɞतѻલ¦ࣘȭߠϊЬ؞ಬ˶઄ͯΡכ'], + 'encodeOffsets': [[ + 29279, + 70723 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'FJI', + 'properties': { 'name': 'Fiji' }, + 'geometry': { + 'type': 'MultiPolygon', + 'coordinates': [ + ['@@̂ʍƓѭԳŗҩļąτ͖̀ϤĻȼƐ'], + ['@@՛ǯŅ̼оǤˊ°Ӱˀ@ЧՕȷ'], + ['@@é­@ШǨžĽЗ'] + ], + 'encodeOffsets': [ + [[ + 182655, + -17756 + ]], + [[ + 183669, + -17204 + ]], + [[ + -184235, + -16897 + ]] + ] + } + }, + { + 'type': 'Feature', + 'id': 'FLK', + 'properties': { 'name': 'Falkland Islands' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@৘Ԍ܎ȿԌʹڦϙʥ̋ଋʥϙ̌܋ϙпϚ'], + 'encodeOffsets': [[ + -62668, + -53094 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'FRA', + 'properties': { 'name': 'France' }, + 'geometry': { + 'type': 'MultiPolygon', + 'coordinates': [ + ['@@ˣ٭ϡǠș֢ǜ̺ը͎Ɯܛ'], + ['@@הЅќà݀ϥȊñʎjЈɗெƷыֹŃ׳ɱƝϣü‚ɇؙҽ]ϟВƀ˾ρ“ʁʚ̿̅ʯɐٱҖŃĩηݿӅစɬ௧˗ĩԑঅʼnिϞ̧ǹ໹Ϣͯ͜ѢԎdžူࢁࢤإю౹͒čؖઠǾථɏˇॎߌέዠپʨێܾǞŪ̑ϸ_ϸ͵'] + ], + 'encodeOffsets': [ + [[ + 9790, + 43165 + ]], + [[ + 3675, + 51589 + ]] + ] + } + }, + { + 'type': 'Feature', + 'id': 'GAB', + 'properties': { 'name': 'Gabon' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ࡹࡔ։ۚԙࢄ‚˨ǾˎȲؔǜخ˴¶௢SOৠЌÆԞőӼňľ¯ÓνɼѡشèȾǗεঃЊӹĞٿŁ֑ʳЇݏ–҅Иãϋ֥Ĺ˽Ɂ̈́֋ٕҩ'], + 'encodeOffsets': [[ + 11361, + -4074 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'GBR', + 'properties': { 'name': 'United Kingdom' }, + 'geometry': { + 'type': 'MultiPolygon', + 'coordinates': [ + ['@@҉ֽًǦԱ[ǦҊǥ҈۴–ࣔԳ'], + ['@@࣋ࣧࡦŘऄIɕۅݯݩࢄÃäĕݠ঱ֺƇԬढ़ʈͧৰDžķ՝ѓʗͲѣݱѯ૳Rෝɱϻǒ։ϿޥĪם͍ҁǘ௼ࢨݪǺOBಽƔʃͰ࢜ʺҡҐdžռఢ÷D@ŮӤ֛Ԯ_\\৵ƨȧɬ̨ϒˡɴҍЇ·߶щє̨ࢆٶھڤá০ì'] + ], + 'encodeOffsets': [ + [[ + -5797, + 55864 + ]], + [[ + -3077, + 60043 + ]] + ] + } + }, + { + 'type': 'Feature', + 'id': 'GEO', + 'properties': { 'name': 'Georgia' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@Ųάȿִӟ̲ҭĬ̯ʴĺIJ܄ƝఆƋଦЕƦƻԚƂ޶ǭʴ·Նșɓřвғŗıҏºصʎȵƍଢ଼ſ߳Юࣅ¡'], + 'encodeOffsets': [[ + 42552, + 42533 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'GHA', + 'properties': { 'name': 'Ghana' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@೉ӯҳ˽ݳʑݡʆœͨηܤɖैΠ۸ɟ஢ŗنrӊฤ¢ϊÕ˔ƊϴáÕʿΖџC؍Ąڍɂ̫ȅݳäйɢՓȈ̍'], + 'encodeOffsets': [[ + 1086, + 6072 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'GIN', + 'properties': { 'name': 'Guinea' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ʃtǡͷʁJǏǴÈͶΗԨɕħǵmɳ³V̮Ƈɘ‚ʔǻΜɹ̜ڥDțǁɵoƝǷīɹ҅σρӼ͛͢ɋŊȿǖħϊūȂʓƐώЦʮeɖƘȄDƄŎï˨ĢĖd˶МU؀ȱȄlÚĤҜáŨ´¶̭ƆBɖŒƔƒɸɇάãɲǺ˖ŒȬŠǚuȈȁĴɳΆΙǣɏ˙ǴĊŀį«ʡʲʍǗÝå˷Ș΍Ⱥڧ̷ĵăśÞNj·νƃA'], + 'encodeOffsets': [[ + -8641, + 7871 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'GMB', + 'properties': { 'name': 'Gambia' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ņόࣶzȎȦˊ`ͨȷʼIˢƚǞʏεȋιdέǰ̷ȗƭQȫŝއl'], + 'encodeOffsets': [[ + -17245, + 13468 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'GNB', + 'properties': { 'name': 'Guinea Bissau' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@҅ΘΝÈȕʀLŸʯǴÁǶѼƌ˦ɦĨ༈•c˵ġĕð˧ƃōȃCɕƗʭfύХ'], + 'encodeOffsets': [[ + -15493, + 11306 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'GNQ', + 'properties': { 'name': 'Equatorial Guinea' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ƿŴ़̀െmPয়௡T˳µ'], + 'encodeOffsets': [[ + 9721, + 1035 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'GRC', + 'properties': { 'name': 'Greece' }, + 'geometry': { + 'type': 'MultiPolygon', + 'coordinates': [ + ['@@Ҡ˱ٺ¶شÑqƣҜĶĿʛ௃íTƒਁǎƺΦ'], + ['@@ʹՁȥĥԟ|ѫĀৱɓ׌ҿяƋҳAѻўƿȁȊԅрЁ̓ǿҴϯжʑ^ӅޥɠʜѕՓĕ͈ݏ֏Yۍμ̿ڦƧ֒͝ϮљӐÉʆϸТ¼˚˘Ũjɚռö͌ȀҖgƒƦdž„ت{ڨɲע̉ކĀVмЦɝ'] + ], + 'encodeOffsets': [ + [[ + 24269, + 36562 + ]], + [[ + 27243, + 42560 + ]] + ] + } + }, + { + 'type': 'Feature', + 'id': 'GRL', + 'properties': { 'name': 'Greenland' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ᬜԆ᱒›ੴ̴ᲈĄ䀦Ŀ㉊ڗ༅͕ộ™⭏ćшƫᲐĠᡚ́࿈ʴۦ̝इӧᒞ̺✘͚ᠼNjҾΫ⃝ױӃȕ᧑ơወ¡ছؕگկ€ध৚շಽ“൧ˇ༂ѽȢ܋࣍ýઞܡህÑঈ΁˟̑இŽ୥E੆֩\\Ϗပΐћɣଌȿ઼ԣ͈ڱກlj٫͖ਣӘ˼֭উѵᕖ•୆¯ᖯܵᗿڏឧ́ओIࢅ͓ୟࢱᅵכׅ“૧ȷ஽ȝܛԱ[כыտോڧͺٿϗ۝љࠍஅ½఍ۈဿLࠁҢ֕ࠐฝਲэոŗݮ୓ޢ̢ئ֗̒ࠪচొ̺ͨΘǬڀॡ̕қůݯţਏ˜Éְ͢҂ެ\\႔ɟ෿Քݩ˾࠷ş۫ȼम޴ԝ̺ڗ׈ৡࢼ੯͚XΚᖷӮᄻÖᖟ‘Ꮕ×ইˌวՈᕂ˄ၚ¬≹ɖ቉΄Ś͜ẊИᶎИ̪͘ᗗ̠ܺͰ᯲ז௢ĚΓϘጲɜᣚƂᣖRࣺʽᕺҨፘ̽୺áპ˙ፅҐŘή'], + 'encodeOffsets': [[ + -47886, + 84612 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'GTM', + 'properties': { 'name': 'Guatemala' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ћƦԻfϩǖҍΌrʖĮȠšƾКۆ઄Ft˸Ƌ¾ġǺ̵Ț̹ˬϜDBӂ޸BަUOڗßॅʤ@˚ƱòŰʘŃϥ͍ЉɻÏljâǑǧɇȟ½¬ıƿġ˽Ƀ}ŭ'], + 'encodeOffsets': [[ + -92257, + 14065 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'GUF', + 'properties': { 'name': 'French Guiana' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@͉͑ГÑŗʀȉ–ʹɩνǦɈΪòϤƢή͛ӸáֺѪܠ˸ğؤȥࢸۿƔ·ӻޑʳأ'], + 'encodeOffsets': [[ + -53817, + 2565 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'GUY', + 'properties': { 'name': 'Guyana' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ր̯Դյzџ̈́o҈Чͪ̇Ƈݱԛɕ°ȣƹџϊ؏ːAŎӃԢܳȱ‰ҫî˙ɡϟƥ˅—ġǑЭ¦ԫЀÓϴɋьƆܐɸ̐ȕϸ˿ŶŊτțȘѩ™ْ֩ɬɲiϲԬƊȾƾ˽̸ô̬ږӲ'], + 'encodeOffsets': [[ + -61192, + 8568 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'HND', + 'properties': { 'name': 'Honduras' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ơˀʭòÐʹŗĞǣÒσij‹ŔʩƈǷǚʛìǨɈáǒÐNJЊɼϦ͎ĔȂƨʊ\\þ垦ϸùϲv˒ĢİĦˎ©ȪÉɘnǖòϨśƄkʲƿʐį̏Źɜɳ˽jśŕ̇ŋɃAȅŃǙœƛźĕ{ŇȩăRaǥ̉ɳƹıđĽʛǞǹɣǫPȟqlЭūQĿȓʽ“'], + 'encodeOffsets': [[ + -89412, + 13297 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'HRV', + 'properties': { 'name': 'Croatia' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@Ȳ͗ˊʇ͓̓ϝȆׇ[ܟƔϽmǻǧ̝ȖǫΑЪϽǼʹϮ̽͌ȃ͆Ηݔ͇ġƛ߃̶ӣ̢ޑʠ۹ؤǞØϥΞe˲եƄʱγʝˮn̆Šbג…Ƹƚ˸ƍͤgGɼ̈ĒĈͺڞɠˊĻؼέۜlj̼Ų'], + 'encodeOffsets': [[ + 19282, + 47011 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'HTI', + 'properties': { 'name': 'Haiti' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@Ԣ™ܰƁôқÝ͑ȱƙɎʥiɫ֏ƜЅÍԡÔϽƿ҉ʾö˔ޜśيã̢ȈϧθP͎ՋžȌɶ'], + 'encodeOffsets': [[ + -74946, + 20394 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'HUN', + 'properties': { 'name': 'Hungary' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@˨ըǍǼӂDÜ΄ђɋ̲ğ۸ļäǚͮ~ЦžĜÃЂŀȠȢˠ¼࣒ʭǴĒҲɭÎɣԡǭЉ֫ԕ֭کǁԽš١ə̻űۛNJػήˉļǍ˴ƗV'], + 'encodeOffsets': [[ + 16592, + 47977 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'IDN', + 'properties': { 'name': 'Indonesia' }, + 'geometry': { + 'type': 'MultiPolygon', + 'coordinates': [ + ['@@Λe૝ך޴ǒѴʭ̎ʭ»ɩ'], + ['@@ܙȁijĶø˸ΰԢࠨͬĐǓfʫշع'], + ['@@̢ɣԲèȼΥॿǛ׉őҍP̀ӚҤPɤ̖'], + ['@@ūұ౅ʅૣľE̬ښǪՂʥ֔Üݬ̮'], + ['@@ྔċȂΌ༘З̪կీƵਐӿय़͋ऍ͸ݻwࢍØ޻ưঅ͎؝ČΓŁ໕ΌƣΰޑØּߤ৶·ڴ͡ΒÛŘ̗'], + ['@@ѝֱćنƬ̠Ǭ˴ȒʗCЏ'], + ['@@̿˥ׅƸǏΰࡘ¢Ⱦˣ'], + ['@@̨ٝۿΌۯìӃÅׇˆȦҦਠ”ऎʕ'], + ['@@ɼയ࢈ԉ۰ࢼ८ԔݜBܘ̉خ̛ࣘLJbᩑbᩑݟې࡟ǜȷʇ੡}ΦۂՈɺɕࣲЕ۸࿃܆ۗêృަʛУ͑óȏ̮GκٛЮ̢ࣞ״gëɠ௵DͩԄݥƺΡдଈȰњ˜ഘ·Ƃ̹'], + ['@@ڭ࠭كlj߱ǐඓ¥ܽŧţٍݪݛҒϠ༪˸çϯλŪιӯ͙݉ߒ੿Ƶ˿ݲॻQտ҅ʙ̐͡Мی࠙͗ȻɶŊ͖؅ӲØࠌ֕ʭîও”றՓũίʚʌޜŽ߸ΛPʻֺΎվŤښф౎ǮΎ܎ذپʛ੖śॴ–ࠨ؎Ʀȉ'], + ['@@©ܽџĈŷԝΌѷɽĵ͹Ւʟ੺ǚڤ˨̨ÔҝӸóĀ΃'], + ['@@सާহį˫ֵšݿַ߱u࠷͕౻ŭ̚ॕϙͫԤ׳´лːৃ̟̩Оս¯ۗĬŹૺнɺЕܘŝ݀ĮުԂ֐Ɩָ֗ӅըǠ՜ÑӪъЖôߒɽۆǶњୠ͔̈̆क़ॲ@ܰƙӍݷآߓơϭ'], + ['@@छkۻ۰અۊέԚٍۄзؾٕ୴۪݅ʙܠ̳ڀݵՊѭܘمҺࢗऒóђզ‘ಢNjݔࠓٮ֫ҪΓߔࣙࡢ_ۺֹӠ۳٘ϥͳۉӖ̞̅sƜו̊ҵؠõФՏɁ਱‘ಟ'] + ], + 'encodeOffsets': [ + [[ + 123613, + -10485 + ]], + [[ + 127423, + -10383 + ]], + [[ + 120730, + -8289 + ]], + [[ + 125854, + -8288 + ]], + [[ + 111231, + -6940 + ]], + [[ + 137959, + -6363 + ]], + [[ + 130304, + -3542 + ]], + [[ + 133603, + -3168 + ]], + [[ + 137363, + -1179 + ]], + [[ + 128247, + 1454 + ]], + [[ + 131777, + 1160 + ]], + [[ + 120705, + 1872 + ]], + [[ + 108358, + -5992 + ]] + ] + } + }, + { + 'type': 'Feature', + 'id': 'IND', + 'properties': { 'name': 'India' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ࣚটďۅͮїѕ׽ŒɾएࠜՑ୞חՑϟ͛޻ࠀͅߊЭરһସʼnӜёٮāৠȝ۪bĪͪŋՖÞβԠǮìڋlǙކ͉Ոƀ܀Çۈ|ÐԪ΁ˎڴŀވشॸ՘۶ȷ״ΞЀԹ˳Λ࣠űÜ͇̍Ʒèԫ׷Ʋછׅ~ӓҩ۵§ХϏۗځȒࢇȏ˹ĚΣгȥѵ೰ɵEƍ՝ҡѦʸӎϖ¶ϰ܆ӝƜީ]ߝŚóאБ¤ڕζ֭̓؆ѻԿ̻ȅ̩Ԭɣƛԑ̆كžەţֱ̫Zਛǩ´ك҃ӻ௃֡ळ঩كՋ࠷ջCϭлȹݳ̝Ͻ«ʥٙǪધ®ۡΣߙI෗ѣ¡ϣٙʰˣދʃ˱֯͵ʍߑ޸ϳ୴͑ࡒ̍Јѿ߰ȻੂơՀޅ଼Α࿀ʣ੾HৰǍ޾௣ԉףĶ઱৲И̤ʝͤড܊֖֔ᇜCǗܞҽюĩ٨ջϘऒࢢঊÙ࢞ࢢՄ࡞ࠄࡈ_״ܒӠڳд֪݂̇̕Ьβ౤ȱपŰߺ۸'], + 'encodeOffsets': [[ + 79706, + 36346 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'IRL', + 'properties': { 'name': 'Ireland' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ƒ׷ًݣ๯ӹ஑Ŷڼ࢚ѭࡢତڄٌϼǦ҇ǥ҉Բ\\ٌǥ'], + 'encodeOffsets': [[ + -6346, + 55161 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'IRN', + 'properties': { 'name': 'Iran' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@݈njװӔ֚{τƾװýघэڤğ।ݓظ‰òۻ΁਷ɱؑκŭΫҡˠڡàՓِƙæեݿݿжѵ͸ԓߦυx݉ДƋêϯ௉ѡ̓উཌྷʪࣷȖेŊΧਐЕƪ٣ƭࡑНਇ˦ࡑ٦߳ʈ֗ߘا૪ҍƋՕ˦̻͝ҭѴS҂ˍ@Ɛ،ѝٔ਍Ң׉ߜȜپц̂ÙӬտʨխ৊ҟڨǐʼʿ६ּʈƄͅъϯ־ő̤~রئ̀Øʞʙ́гԼѱȾ¦ˈإߖǩ׎у஠ƟಾɞĄȞ'], + 'encodeOffsets': [[ + 55216, + 38092 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'IRQ', + 'properties': { 'name': 'Iraq' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@րʧÚӫх́țٽ׊ߛ਎ҡўٓƏ؋ˎ@TҁҮѳӿ¤֟ê؝߭༟äᛍၖఫךৡɪ͹৾ᇶ࢔͆৬āؘҢȺјԾΰž঎Ň̐ɉЖƚծ৉'], + 'encodeOffsets': [[ + 46511, + 36842 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'ISL', + 'properties': { 'name': 'Iceland' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@șիॊֵથٙᝓֹܣƵૉŮᚑˈࠠψᆧЪ๪ǎ—ʘᄋȜ֨նౠŰಸ֭౨Ҝ੒ʃൌ҄ආÑ'], + 'encodeOffsets': [[ + -14856, + 68051 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'ISR', + 'properties': { 'name': 'Israel' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ƥ˅̣Ŝǫ֓ɂĥɋř—ɛЄŖp͛нഉց෾ʔˢ˶ɞϼǠيŤɆzVˬCþƦɤ\\`·ŕŵhM'], + 'encodeOffsets': [[ + 36578, + 33495 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'ITA', + 'properties': { 'name': 'Italy' }, + 'geometry': { + 'type': 'MultiPolygon', + 'coordinates': [ + ['@@̟ڋŲʹǭѝٝ̈́ёĞ୩ѐŞќজûࡪĠْò'], + ['@@Ԍ׭ş૕ϣÂ΁˫͇ɞ‘২ȓӒҨ¥рʼ'], + ['@@ரɏĝЯȬΧڝŪہ̗²зĻʇˠё߀чцۛदڱچLȲȃɽǗݪ̥ؠʩܜѫĔƿƽ̛үϼܳƐΝի؈̷ıѫΗ¹҅ܛΕÝHʲǢҊǼǶ͝ӤʱшΑŀʛδգƴεͶثÆٿϜޑմ֯ӜʿࠪйĮہˤϯŕӝϵΓÕĪθҕńɏٲ̆ʰʙ̀”ʂβǵМ¢Ҽ˶ƢƃА€ǼͺتĿψƚâΆԘšĮdžࠨƤȊ̉'] + ], + 'encodeOffsets': [ + [[ + 15893, + 39149 + ]], + [[ + 9432, + 42200 + ]], + [[ + 12674, + 47890 + ]] + ] + } + }, + { + 'type': 'Feature', + 'id': 'JAM', + 'properties': { 'name': 'Jamaica' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@֢÷ҀȫƔɯןeʭƗҹƊӑ̪ĶȔΜÎȒƒ'], + 'encodeOffsets': [[ + -79431, + 18935 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'JOR', + 'properties': { 'name': 'Jordan' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@Ʀˆपͫ࿪ࣆͺ৽Džų၅у࠸࠿ˣƛƑ˭ٙřȩ̡εʵधƆƒŨоഊo͜Ůʚ@Ԥ'], + 'encodeOffsets': [[ + 36399, + 33172 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'JPN', + 'properties': { 'name': 'Japan' }, + 'geometry': { + 'type': 'MultiPolygon', + 'coordinates': [ + ['@@ņ˽ҿԕΉːљțɝӭշʈRЊҬԆӌīΊΜؠǹ'], + ['@@́ڡƤсѩף੹Ѓ๏½ணॡ͔֡“غษȃষЃঝe࡞أ֗෗իΝН͜ȶݶՏʒͿ־ߐʶѲՈࡌѢ؞ָာʤ࣎ǣࢠ๺֔Б௾ࡀӌ͜ՈਈƟा΢ՎࣀƸҞୗ}ڻޥࡍbࢁ'], + ['@@נǵרΤȈहఝɯ݁࠱೓ָқँण]ř࠴д٨࣌²ʖ୐ʜټন࢓٤˯'] + ], + 'encodeOffsets': [ + [[ + 137870, + 34969 + ]], + [[ + 144360, + 38034 + ]], + [[ + 147365, + 45235 + ]] + ] + } + }, + { + 'type': 'Feature', + 'id': 'KAZ', + 'properties': { 'name': 'Kazakhstan' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ӕƹ્דο׹̹KɱЊ੫‚ǡێХNÚࡆ৓ؘ෷ßডũߣݶۋ͆ಥ׼ƽðᓗӹᶽљ£יچ֧ɼॕǩχ˧±ȲȶΖDž̊অ˺ϛݮҩɆ…˜ࠊāŽؘ܎ƎܼűƲࠎƭԲ࠿£܍ȴঃσ޵ǭяƌĐўՙ֘دw܉֬ӞِʕǢڢऊࡺӣŀؘჄࣴಾtᇢ׉঺ͻࢼΠ೰j੺ѥʔʠ୼—ɂЊഷ׀߮Цƿɮ߮ɔ؅ֺϬ˼Ḯ̈ШȺᑆ̴ݰΒຢǹ˄ࢉ࢚Ȳઆ˹éҝ߮´ᑌߎ̭ˁ੶٭ሠᒑ҄ѰୄӛீɎҪƯКӟטNjΨΥ઎ŒѾԣٕ֓ۥÿ¡ࡅұϝဟˢ؅ຑїȇဗͱݲลֻɓäӏԭŬу̠ఝĖඃx̧ġ஥ΞӉǧŽӹ൩̂փşȉρ'], + 'encodeOffsets': [[ + 72666, + 43281 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'KEN', + 'properties': { 'name': 'Kenya' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ӾۙיͱȹΕ̿Õšףˑ͹Ǐ֑ͷ˥஻ࡀËӤᵁႌƙĢSࢺʊ;а֌̨ؔσ॰įтЉ׎ԬԈ֬ֆѨƗ@ҽ˺ˡג@੠܋ˈSȠxȄī֖ßʞΔގΚͺ˳ָAܽ॑Xᵣ'], + 'encodeOffsets': [[ + 41977, + -878 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'KGZ', + 'properties': { 'name': 'Kyrgyzstan' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ȊςքŠ൪́žӺӊǨ஦Ν̨Ģ඄wఞĕф̟Ԯūşȏ೛ғ̙ͭઁıͅ՛ࢷŒׇǏߣЇŜȟʇȓཟŵਡ˘࣫ÝĂӜࣴƕ̮ʸٖĉ੾؂঻ѸױȽإ͂۶ծʟĊ'], + 'encodeOffsets': [[ + 72666, + 43281 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'KHM', + 'properties': { 'name': 'Cambodia' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@΁Ѭыࢄȣ২ՠۨઘdž߀ťۚ͡Ϟׄݖ̱Ȝ֕Ļ৕ඳ٧τԙࢥÓܫͷ۱Ū'], + 'encodeOffsets': [[ + 105982, + 10888 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'KOR', + 'properties': { 'name': 'South Korea' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ܨযȺխPॷ̓ҥݽljڥΏݳïĥҚƼـχ࢔ذƚֻܘÂúϒ‡͞Ϝצ¢ΨÈŨȮ'], + 'encodeOffsets': [[ + 131431, + 39539 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'CS-KM', + 'properties': { 'name': 'Kosovo' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@›ǣŃPĘ́ȩĐdzɦƾȌȪÒŜ˨ư²Ţşƾ¿ŌƅƒŸǎƻŢLĥȳijij„×ȉӹŻ'], + 'encodeOffsets': [[ + 21261, + 43062 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'KWT', + 'properties': { 'name': 'Kuwait' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@Ǭχõȓ˔هשuȽАݟĆ؞߮֠é'], + 'encodeOffsets': [[ + 49126, + 30696 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'LAO', + 'properties': { 'name': 'Laos' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@˚Ϝœ܆ڹܸ¿ٕࠦھٍÎǛ̉ӯyʣƨࢯԅoݬȸࢮ֧ž³ԎηʸǴ̲ܐնøȡ҄wŵ०ѦŬӮڏϖޅਚO͚ܹ՝ɗʉ̟৔ԉۦ঳Ռ݋َ׏ɄץƵ࠿ݕ̲ϝ׃ۙ͢'], + 'encodeOffsets': [[ + 107745, + 14616 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'LBN', + 'properties': { 'name': 'Lebanon' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ɣ[ýƥ˫D̘ۄмעfˆϘ§Ɛͣқ̓ȷҟ'], + 'encodeOffsets': [[ + 36681, + 34077 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'LBR', + 'properties': { 'name': 'Liberia' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ɗQࡽАޅٖ܏Ң֣ըȪː¬ʔϜҘϺϺǶnɖĨΘԧÇ͵ǐdzʂIǢ͸ʄsŸʓĎНǽύʖɱˊÇΤΙ~ͧăĿÝە'], + 'encodeOffsets': [[ + -7897, + 4470 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'LBY', + 'properties': { 'name': 'Libya' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ק̷ҿҤ೧βρՄڑϸϻƷ̗ҶήӹؔͬΘñՈńҠÓϦƨۈ¯϶˕ݐШȜðΠėΒ־͔ʶːЦʌ´٦দ́ΜðۮƓ૞ϓЀݛݮǍஆΙࣆйЦɔЖϮț٠˂Ф؄ЀׂŘ଒ǣ˺ϑ̺Iˌƛ࠴ıȲˣ̣ЕżΫɏԯʦڱ@Ჳ@ᶵ@့ॱGYΙ‧ྐ‧ྒࡓҟ'], + 'encodeOffsets': [[ + 15208, + 23412 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'LKA', + 'properties': { 'name': 'Sri Lanka' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ų࢓ΙʇܵȓЍڜƫீϠ഼׆ұϺסО࢓'], + 'encodeOffsets': [[ + 83751, + 7704 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'LSO', + 'properties': { 'name': 'Lesotho' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@̆ʩʳУƛ˛ҳſƹˍ̛ċؿ٨҄ՐҖ͢ϼǠξʵ'], + 'encodeOffsets': [[ + 29674, + -29650 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'LTU', + 'properties': { 'name': 'Lithuania' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ãɊĚɲχƄࢡƨDZ۸२ʴඬÁࠜĊŞǩ҂Ã߲СĀϓۏˏșӃ࣯̓߻NȫʶљĜ'], + 'encodeOffsets': [[ + 23277, + 55632 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'LUX', + 'properties': { 'name': 'Luxembourg' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ǘȏ³ρʍiȉòĞҼɖŽ'], + 'encodeOffsets': [[ + 6189, + 51332 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'LVA', + 'properties': { 'name': 'Latvia' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@†نЮՆߊ˼ڜعڪhNJ٤ܐƪςĻܢ̷ۚCКȕîС˒ӷ͕ࣗԛƙ߱ТҁÄŝǪࠛĉණÂ१ʳ'], + 'encodeOffsets': [[ + 21562, + 57376 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'MAR', + 'properties': { 'name': 'Morocco' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ԒΥߜÎࢊȃκU͂՟ºԝ̄ࢱɜDZƷ͛ષƙϝ̵ӡñ—ثঙ͍ͩсۍɥ࠻ŷഫاRহŷ@@@p҉Ա˓ȑϡ@̥Ŋ۹ě˛ٻʿÕЁ੕ୟ࣡ˣୋ΅ϗĵ̡ቅãaD ϶͒ɮ˞ѪÃ˶̀פҴՖ˲ƊɞӬp҂̤Բ̪֔Ւ࡬f\\ц͔ްĢڎָтɠۮۮȿਸ਼͊ܢŔѶդ֨ࡈϦخΐ֘࢈˄ԪؤI'], + 'encodeOffsets': [[ + -5318, + 36614 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'MDA', + 'properties': { 'name': 'Moldova' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ȨŮ֒ĊؤʽΊϞɥÑ˵̪ƏŨΗ̊ɇÏűƾčɝ×ӷ|ĉŜǫãÒƭɱˍƥ˽ɁĝƯϦĘΪςӝԂˉΠʹʠʯĈ'], + 'encodeOffsets': [[ + 27259, + 49379 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'MDG', + 'properties': { 'name': 'Madagascar' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ɠΥȺ։Ɗঢ়ɒϽĉЗƩʙ˷ӰǁʝLjثõΥɵȗ¿܅ͧওб୅ԯཧ͑ୟϛইہȣܻΡӛɊڙ̜ɳѺÇݘ̑ڠù؂Ʈ؄ϰƢD˪Дِø՚șЈǃՌãޠ̊ҺŔՒмŒҶǤ̶Ʋτ\\ӐӎۖԮʦцŗάΦĵҪ׎fԐ˦ϔ̊ί'], + 'encodeOffsets': [[ + 50733, + -12769 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'MEX', + 'properties': { 'name': 'Mexico' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@͙݅ƥ؁Õ૷ąЧƤқʺЧǚٳ֎سȞӏ͢бࢾɝΐΙ݄ɾٚĎؼưՊƠՖ΂ȨӬè۸Ƣʖ֬ɚࢶȚݔ‡ԚîȬDZ…ЙҋԁȥԝƸƥűγɁٽɅɎǭcǃY̝ԓƳIJķPŭޥV޷AAӁϛC̺˫̶șĢǹƌ½s˷ઃEЙۅŢƽĭȟqʕ्ࣞџ˘ۇɖҷÓګ́чĉץɜؿDŽ޹ϬؿŠ्ϸ۱ВɃɤҹº࡯ˈΓϦࣗӊсՌȧЦ˪ĈđʈȖɔJ̄˱Ϙùͮ˭ъ݋࠴ࡋڀУԼܝ΄ƷȴŸԲѓȞӹФȽהҍæӣѸϿФ™ˀҍو̓٠^͔؇ͬ˫™ӑɴƇͿƔЕĆف̀΋خׁƒȡŸÓŎ˽Ƭ\\ǜթʮɇǴ̕Նё˨ޯʠρɸϿ²ѷКƒͶϡ̨ϑqƭΝ̱ƫJɛԞջӎ؃РїɈ„ؚŵҖЏʺֿϒŏŇɃɖԭȰӷӦÖÚΊ³̸̼ŽϜ٩׶ӱɶ̱Հ̷վϳڦͿݲॖÞ੪ĞÿǑ౔СኀףဪPژ@DΌผ@̪̕јˇԀσ˨ѭȾҥѢʩۤʥՊڒۊhפͱфֹ̄ӯӸӏȂחɾЃپʹ׮ȁ͞|'], + 'encodeOffsets': [[ + -99471, + 26491 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'MKD', + 'properties': { 'name': 'Macedonia' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ńOœǤӺżȊ˺¶ϴbтˏÒ։DžƒƑƥҕh͋ǿջõΑȴšήń˸'], + 'encodeOffsets': [[ + 21085, + 42860 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'MLI', + 'properties': { 'name': 'Mali' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@˰ƶƘӶˊpזɻӄǖ͖ÇŴȈ⁚^ȈךƣļЛ⋈Л⋆౾dᬼᆳᬼᆳȨϿԺʉ϶ƋV՗ठĈFካҟ֗íԭݛƃ଩ï̳̗ա՟IȿLjҥš޻ΑDžʿٳϕŗɍΙǡНŔɱȳūֻڙۡp˳ɭΣÆӥ΋ůȝŁŽάʍĥơhƷʕ٭PɷŴʼnùʱʎ¬ʢĿİdzĉ˚Ǥɐ΅ΚijɴȇȂǙvȫş˕őɱǹΫäɷɈƓ„ɕőƅAµ̮žʾí̽͘ʀǓӔԺ'], + 'encodeOffsets': [[ + -12462, + 14968 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'MMR', + 'properties': { 'name': 'Myanmar' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ӫηץ›ϥࣥΟƳО݅ՔؗΈօ̭ܵ̃ƹȪу֖ڙĪҷ_ϵ͠ދң޵Сࡷăذʴ٠˯ӼæࣸͽѤ˛৔Ʊਗ਼εۢօуॕ׳ҽöԳȠ̂ਪǫ޾څॺļ̢ӭņ׭ۆÅڰ̊ŵj׾дȦęΤȐ˺Ž࢈ڂȑϐۘ¨ЦҪ۶}Ӕજ׆׸ƱçԬ̎ƸÛ͈ӮÚˮӵξȧ|ٟ“ۙߓۭijঽࢲƔȨޛՐǍʓۣز́ζƷ؞ʔ~΍܏յdẕӓȗ'], + 'encodeOffsets': [[ + 101933, + 20672 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'MNE', + 'properties': { 'name': 'Montenegro' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ÁǀηЯÊˋǫÞɽ˞εǖĢƜŬҦ˚ȜƾüɠƟŬśˠě͌ǧçïƽȋɧó'], + 'encodeOffsets': [[ + 20277, + 43521 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'MNG', + 'properties': { 'name': 'Mongolia' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ࢮƢ྄ܤ౬Єܴʳ࢚]֘Ͻ࠼‰ௐɁࠈגͿӶࢊࢊश΍ނįনɍLjؿஜΛߐƺਫ਼ŌࡆōࠖЗԚѕެT੒Ƌޜȼૈƒ௸פԌĝѰ˭ৌêХهק࠽ɐ΅ӈńࠤŽ٦̴ڬˏހוğ̗ڏĦ௟ŏןʅ؝։౱͙࠷ѽࡹǞҿúѳէˎ͓ƌˣי˯׽҇গ̑ఽ‹ഫ̇এҋϋʾ৭AఓԜࠥŰૣśჃȊऑmӱԀϣޠԱĢ৩ԼଅŞুƞ̡θ͖চׅڲன̀۷Ѿəז'], + 'encodeOffsets': [[ + 89858, + 50481 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'MOZ', + 'properties': { 'name': 'Mozambique' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@لæ৞ʁɖńגt̚ʦԌaऀ͜ڞӤƊϕ“࠷ľ݅ಿƨЫʣ׷͙׍՗Եޏ͉ृСॉ͓ࣕƵוׯ΋ȗí׳ЌُǔӱZʣƪ¦{ࠗƋϷȤƝűΓΗ̗ۗ˳য়ҕρ̳ðΟɊÉíѵّRïϊůϖí̠ƬपɓװГஂࢬ॔ɜ؆ŶúĨӶƉʞ˜غǐ׌E੠ѥ˒ЏÔǹȼϳǰ۫gÅ̼āװᢈۘӚЕɴüͨɅ¸͵ǯϷØסոԱʲ׌ζǰíઊΙ؈̣˖̅]ɽદɾٔ'], + 'encodeOffsets': [[ + 35390, + -11796 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'MRT', + 'properties': { 'name': 'Mauritania' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@և־ԗؤ֍ɞГʚҵUЧǽйð˽ˏïҐɺаŀߊģࠨĵкČмɑЎѵδǾˬᾔMǃ௎ȴќ߀øᒸ᪂©F౞Ṗ᎟౽cМ⋅М⋇ƤĻȇי⁙]ųȇ͕ÈӃǕוɼˉoƗӵ˯Ƶ'], + 'encodeOffsets': [[ + -12462, + 14968 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'MWI', + 'properties': { 'name': 'Malawi' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ɽٓɾથ̆^̤˕Κ؇îઉεǯʱ׋շԲ×עǰϸ·ͶͧɆɳûәЖѵɔʮޮ˄̈LJۢǚڼƞɪɉ܌Ѕϐ࠘ƽǜɵ˶Ϲɾଡ'], + 'encodeOffsets': [[ + 35390, + -11796 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'MYS', + 'properties': { 'name': 'Malaysia' }, + 'geometry': { + 'type': 'MultiPolygon', + 'coordinates': [ + ['@@àћֈĶ˞ΈȘýӸԓΜ֛¶֣ęϡĆ˿Öӻ̒ɵͤݑe˳׫Éߑخ঵ښįђӟ֚ś̡۠ҜĠؔȃΤƤƮۈρ'], + ['@@أ˹ܯƚॱ@̅ॗ͓̇љୟۅǵߑɾЕóөщ՛Òէǟַӆƕ֘؜˽ٮǀǜ܆άǂ৖Ǻ׾ڔЬՐϦѥǮ˺В¸՜œа٪אшڀͼHќыžιֆɻ۬ʧÑ֝͡¥ƮЧ'] + ], + 'encodeOffsets': [ + [[ + 103502, + 6354 + ]], + [[ + 121466, + 4586 + ]] + ] + } + }, + { + 'type': 'Feature', + 'id': 'NAM', + 'properties': { 'name': 'Namibia' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@رٌؖ͡ȃࠊȷ،˯ಒm৒ŅҞ͛Όѡۜѳ৘ǽՆۃࠐ»٢КdžԊƞհ}ԄϝŶÐ₮˜׌Е᎞ş໴΂یȒհµͨȍPéӁȍʭC՛͍ͣΎಕ̍سƒ{Ჽࠣ‡BយA᷋ݣѕҋÕՇDŽϗÔƗάͩɰГг'], + 'encodeOffsets': [[ + 16738, + -29262 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'NCL', + 'properties': { 'name': 'New Caledonia' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ېԵѨϭ͉ȫҥɪ׹ϚէѼ։פś˶β[Һ˹φ˷ˎɻ'], + 'encodeOffsets': [[ + 169759, + -21585 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'NER', + 'properties': { 'name': 'Niger' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@nּॹȐОҿպœϤâТբ̴̘ପðݜƄîԮҠ֘Eኬஈϒᝪ࿸᮪ཾ೨αӀңר̸ȸಯ̾ɓ`ˋΔ˽ǻί͕ၻ«ધੳߋγૉΔ̵CեբmčЃʁµˋƻm֩ंȟ’ځҷٱʔҍ¸ʏşӯ~ӷΧѓq৯ѢЉȵѓb̿͆ࡅ̼ࣗıɕǻşӗʋ͹ÍݣٗӚ̟E˭ʗ'], + 'encodeOffsets': [[ + 2207, + 12227 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'NGA', + 'properties': { 'name': 'Nigeria' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ࢍ̡͉¬͓ȉڥl҇Ղˡ؊שֆكYݍB¶തs՘ǂՊʶʴТԴėɨǔ͸ȍӾ˪ÎݤʌͺŠӘɖǼࣘIJࡆ̻̀ͅєaЊȶৰѡєrӸΨӰ}ʐŠҎ·ٲʓڂҸȠ‘֪ँƼnͬͯğƱ«˧۽ٱɛՙšѧDZȉǝי҅ΉŽыȋ͹ÿΓֽ˱ҽΊ͇aԃӭʑQЍ߷ɍש'], + 'encodeOffsets': [[ + 8705, + 4887 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'NIC', + 'properties': { 'name': 'Nicaragua' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@̃ˆϽͺȁ˲Ο˄сϜĤžƒŵÚÒʾ”ŀȔŬRkЮȠrǬOǺɤʜǝĒľƺIJ̊ɴbǦĄQňȪĖ|ƜŹǚ›ȆńɄB̈ŌŜŖ˾iïă§ȉĐ̫ȗ˹ěͷυ®ɏtϙŹĉýΫÌɛǣɋ ɩźƏȩDZʛÈƓǦˉêȕʼnօɞųŇ'], + 'encodeOffsets': [[ + -87769, + 11355 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'NLD', + 'properties': { 'name': 'Netherlands' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ۦyǀ˳Ƚޓɇ́ԍ@ƘࢡҥȞՏπީǩ؛âѠɲ݀ఆଲΘ'], + 'encodeOffsets': [[ + 6220, + 54795 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'NOR', + 'properties': { 'name': 'Norway' }, + 'geometry': { + 'type': 'MultiPolygon', + 'coordinates': [ + ['@@᥆ؙઍɣऄՅෛ͵ڵû΢לઃͰಫ˵Ы؝ߟωࣗȮ઱¥णѼԉɝԷ“ūփནƊɝҵ߭Hևױ࠿झಫ஁̨˹̇ͫ࠯bձ޿¾૟՞э˥ধֻۧυӛ֝Ԫဋঁ૫ȟ୏є̛ࣚˇ኶ޞզᕠ۶ဌࢂ໤୦፺ྴඦلᘼ੊ᇎπ൪­౮ۢ໖›ພǘ'], + ['@@ም΅๝Ȝ׆ɐԕˎეǚͮ̿ொȍ'], + ['@@᪖صᑟͥұأ݅ǁЍۡৣᅵԢނ̘ఽʐ࿕܂ٷڄᘎ̜Ң̋஦\\͊˼௾ˆ੖̋'], + ['@@࿮̏ఝҍ᝱ı៙ƖƫɴஹdँϬᣴɼ௞ȫࡘʤᑺȽ'] + ], + 'encodeOffsets': [ + [[ + 28842, + 72894 + ]], + [[ + 25318, + 79723 + ]], + [[ + 18690, + 81615 + ]], + [[ + 26059, + 82338 + ]] + ] + } + }, + { + 'type': 'Feature', + 'id': 'NPL', + 'properties': { 'name': 'Nepal' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ÝαŌՕĩͩ۩aয়Ȟ٭ĂӛђଷŊયҼ߉Ю߿͆͜޼ՒϠΒȪڪʳࡔշҾť˰ЕٶǓۀσौȕঔć'], + 'encodeOffsets': [[ + 90236, + 28546 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'NZL', + 'properties': { 'name': 'New Zealand' }, + 'geometry': { + 'type': 'MultiPolygon', + 'coordinates': [ + ['@@Ȓ΋װ;ʐΡBΝ̹ϳչإїͷ̴З٭Yܗ̓ɣջӋࡗڇϓнʇޝlխˢࣱÐƗ̰Ҍذ੐ࠦժǀ׾͌ܜѰԎѦώظ͈ɆŰҶלϴȆΧ'], + ['@@،ࢫlָϜɯŲًڰ˛֨ãӒ͎юĭȯݗʯӫٛjɡʭþαūƻͅҏзֹ٭ͯƟɘΕŨӞ۔˟ҨࣛͲz̦؈̌ƚ٨Ÿլͻ֜vƪБΎڋݔΗת̸àҚұٺɑʂݡ'] + ], + 'encodeOffsets': [ + [[ + 177173, + -41901 + ]], + [[ + 178803, + -37024 + ]] + ] + } + }, + { + 'type': 'Feature', + 'id': 'OMN', + 'properties': { 'name': 'Oman' }, + 'geometry': { + 'type': 'MultiPolygon', + 'coordinates': [ + ['@@ֹ̻ϟªǩȧƉэļ֗ÿĻϯFԽ̻ćХȓǯԹP͡ɃJͻПɷҩĂ֗˳ϱ³˝טٿ൴ᠾ࠾֖၂ϩתv͸ʔΐFΆϞǒƩŞèմіHϖֵҸ̧؞ŋӼƳϜӕɨ˧̞ŃCȉ̩ԃƅɽΟˏ'], + ['@@ʼnƳDž˺ʔ˺ľñā΍'] + ], + 'encodeOffsets': [ + [[ + 60274, + 21621 + ]], + [[ + 57745, + 26518 + ]] + ] + } + }, + { + 'type': 'Feature', + 'id': 'PAK', + 'properties': { 'name': 'Pakistan' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@تϻʞ٥൨ͻ߹۷ऩůౣȲЫα̖݁̈֩ڴгܑӟ`׳ࠃࡇՃ࡝࢝ࢡউÚऑࢡռϗĪ٧ҾэǘܝᇛD֓֕؛Ɇʣ؀٭٘໻ǁിeஃŝ̈́ঊொѢéϰГƌw݊ߥφͷԔеѶඨѕࡀŲԈŅǞȂגóદĈ܎ҶӈشCĠɼٞŌ̴ý͢ʀ±ԌΦԖ՘Ɇͥ֊ߜɴ̢•͒мΜĩмȣΤӬμࣘǮ८ĮѐƺӨĦ'], + 'encodeOffsets': [[ + 76962, + 38025 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'PAN', + 'properties': { 'name': 'Panama' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@˫ʎǵҒȺɢɅÎƿˤлɸοÁǝ̇ͻɁǽ‡ĉǩВҗɯŅŧŭϷ©ơԈŋƛˡ¸ǝ͸·ÈɓİέCǻĩŶªǖìǠƲŲIJǩŲK͸͘ö̠̝iDZͲ›ĀæɴȵЮÔΨɄԜǞ˺ʤҬ·‹ĉҶ…ώơ˜ʧ̈́ɵĹūȜӵǁʟ˓ÒŅС'], + 'encodeOffsets': [[ + -79750, + 7398 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'PER', + 'properties': { 'name': 'Peru' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ɥљћɋࡅӘñΈရࡊທࣾ٫԰ΏۜƐʎ܅ાࠣ༄ߍီ΅Ϥ˃ؤٷպױͼ˖ϒПߢʼךڢՎIJΓʇȧx̭ΎâͼĝΚщӆΌDŽ֤ԦܶৠͨࣸࢠʾմŝٔɢĂ֒ЉˎЅϴɏӶࢣضĿҨɞ̤ƣԎð٠Ͻթࡣʤoрҁݳ œųۍlj॥ֱÓϻɉ̇ČғԕʍBΡɛƵΔݳҲԝDZί֐µ͆҃ݐuېӸÇ౧ϢĩӄƠܪടǷ˵£ןg܍͟пƮ̵ȕ˯β۹Ջ࣡'], + 'encodeOffsets': [[ + -71260, + -18001 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'PHL', + 'properties': { 'name': 'Philippines' }, + 'geometry': { + 'type': 'MultiPolygon', + 'coordinates': [ + ['@@Đ֏ºҽ˹ޑ̫ࡨϽэˎإʉϿ঩Ӧɿ؊ʰЎՑЈˁΑЃثҵƑʖ͢۾ՌʀҜ̈́̔ϝٔɰƎϒרv·ٰڼЋêхÐ̱'], + ['@@̟ˡˁՍ˃ʝԫ׈ǦɤɂɾĢԸҨ¸Ɖ֣جߺāߡ'], + ['@@ૣߕЬט؈԰Ԏ׊Ѱ࠲Ʈۅևҧѳֿ'], + ['@@Ԏʹ՘BgΗϳΣՕʧ‡ϸÒєŽА'], + ['@@ʀभ٫ɞj˭ȶԯЍȋ•עʧªƁԘӶãY͈ԣٜ߮mɴ̻'], + ['@@ɟܩέоѓ٘ܚ‰̡̈'], + ['@@ԮʉʶɖüɇƍΑ˼׻ɛۥӷ˥ƁڳȊڝѾġϊIJਾүăҙ˜ȫēϯٻЮ̵Ѵɍ̯՗ԊރůлȆ¨ΎˀɊʣȘŇ̡бӚűμߨͺˡĔೄ˜ހԘA'] + ], + 'encodeOffsets': [ + [[ + 129410, + 8617 + ]], + [[ + 126959, + 10526 + ]], + [[ + 121349, + 9540 + ]], + [[ + 124809, + 12178 + ]], + [[ + 128515, + 12455 + ]], + [[ + 124445, + 13384 + ]], + [[ + 124234, + 18949 + ]] + ] + } + }, + { + 'type': 'Feature', + 'id': 'PNG', + 'properties': { 'name': 'Papua New Guinea' }, + 'geometry': { + 'type': 'MultiPolygon', + 'coordinates': [ + ['@@ɽčε͔ρՔǷ٘ŜĆĜʡʬȏРՑЈ˵ŝɽ'], + ['@@ѯçƃɽҟȱћȟѽBۏʔӑɺêʺݬũҠàŶЖŦrĆѽӐÜʂ˼Ҹ̚ġӸԌfǜƏgү˯ԡ'], + ['@@ݤտղࢻӖ„‘ω٬ƛʥǁࣀΝġʏ֋ÏȷɔܟĦࡕŴٷ՚ӉҦѧ݀ભπ܇ʇԡˣńإڇ˿һƖࢅ–aᩒaᩒภ׃༊ӓׄїҴхŸӵඔԱȲѽޛěȄ֕'], + ['@@ʿɡǁӸȝ͘ϝ˞ӍΪ؇ʚɺȮҒɻ˸ȁΜȫʹΛ͊ˏĶѧ'] + ], + 'encodeOffsets': [ + [[ + 159622, + -6983 + ]], + [[ + 155631, + -5609 + ]], + [[ + 150725, + -7565 + ]], + [[ + 156816, + -4607 + ]] + ] + } + }, + { + 'type': 'Feature', + 'id': 'POL', + 'properties': { 'name': 'Poland' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@·՜à̂ȹ̧҆̚ɺɤȝђָʘ಼ϴ੒˴࠼ƙÚȱ߸Yਚħ໶^њěȬʵšωɸ͋KͯԋǡʸϳfϏцܻěɽзįރۥɒϗǿ¶ߙ͔؁šЇĒӹǵч̖Ήŕ³¼ϭаر¼ăˀֻĦűɑҗǨÀɴػòЉ˔'], + 'encodeOffsets': [[ + 15378, + 52334 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'PRI', + 'properties': { 'name': 'Puerto Rico' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@јõưǕɋɃمLӫ‡·άŢŬیK'], + 'encodeOffsets': [[ + -67873, + 18960 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'PRK', + 'properties': { 'name': 'North Korea' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@Şƥ͉ºη˵ʣ˷Ž׽ѣȅƫƧ̓ʝ֓ƏηɥηįġͰƋӈσŧȭΧÇץ¡͝ϛϑˆÁùСdžĵƿʙé‡ǀɑüɥƆɰφȤİõƶɆҒÅƎөĠЇɤۄբऒҌ־׮Ўˁܪ‹ſѺಚβͰҼժӹ'], + 'encodeOffsets': [[ + 133776, + 43413 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'PRT', + 'properties': { 'name': 'Portugal' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@̦Ɉ΄ŬɂЫӺDƞłӪ‡ɼуϱɩYٽƍū‘Їγçʹԋɵտ̄ʡřɫ̵̿ê˥ͷɓѷŠџġŸڂÿԬϓþȩ͈äռͰ̨ÒͼǪԎkΤǙ̠™˲'], + 'encodeOffsets': [[ + -9251, + 42886 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'PRY', + 'properties': { 'name': 'Paraguay' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ͦ৖tҌЖ݌าʔޮ]޴їbʵʞҳÇଛࢲLJ΄ǐ֦ɩǀʣþޓİ͓̼›̀ƌ̢ƳAҥŕӻǑӛƍݏށ١ړƇऻŸࡑɮࠢ౨ťψࡽ͢ਅبۉŸ໵ൌ'], + 'encodeOffsets': [[ + -64189, + -22783 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'QAT', + 'properties': { 'name': 'Qatar' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ÇؔɨѲɰĜʬˁdӯǽӳɵÑʫǖ'], + 'encodeOffsets': [[ + 52030, + 25349 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'ROU', + 'properties': { 'name': 'Romania' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@δǶԴġՠGϸȳ˺źبĄɄȠΠ@ʰćʺʟˊΟӞԁ€ρėΩưϥϒƹЂƊϠƟpɏПǹʯĀɻ৥ӳĖ̪ؑফțзɋ௽¬٥ƀ͙ÕʍΊƵƦȚƘȷŀ˃ȋөʔßΌԟȢĥˌҕͤڪǂԖ֮Њ֬ԢǮ'], + 'encodeOffsets': [[ + 23256, + 49032 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'RUS', + 'properties': { 'name': 'Russia' }, + 'geometry': { + 'type': 'MultiPolygon', + 'coordinates': [ + ['@@ࡌ๫కˤԫ்ࠌࡳyוُԒսٱƻ۸Ĥࠊħ࣢Țٌš૴ӯࠜôରަϮͭϴϐŠɔ։̆ߵuࠟΎࡑ'], + ['@@໵]ਙĨȒτ୊˚ࢢƧψƃęɱäɉ'], + ['@@֦Ƚțؐᗸű࿨޻࠭λ൛ēsࠑͳǩ޽~ٗ̊ૣʖȉθ࡟Ǝॗʼnҗ̎Ǽ̸৓ȥϚЃӉΣ@„Ꮪٛᔺ࠳ïԷ'], + ['@@ः©ƭˌੲΖ@ַ'], + ['@@ળ»@ָň–܈E௒ʉïŗࡽȩ'], + ['@@ౡMႣĤƧ¬ߘͪੀþஞ͏ĸə'], + ['@@ॿͩഉø༛ͨȪ˖༨ųᑔɗ'], + ['@@ډرᶽzඃȣမղҎ׀૎ǂᕞ™ᴬѽ'], + ['@@ӹóᩣŊɟώູɦūҒ࡮Ƕ…Ҟသܒޙĺ፨݆ɩϢሤѺ᪪բ᫠ǀ෴̸࿐Ŋאͩ֟ʻᲗз᢭Џᤙߝఫࠍ೉߱Ǡۥྎۏ'], + ['@@ɨгސȲឤYቈЧڬ̿ȽѧङʝᕅүفʟਬşఖɃݴDŽєաτɔഊƂ᧪ƑȴϽ↲ů´ٜᄼƥഄLബѷϮ՝ӹΙੌڋ೔Ϳ߸ࢦഖϙ෢ɦྼʵؤʀൖş؅ޮૐζ䢀ձܐӿᔲٛ₎DŽာƑ۪΍Ĺؙਜʇ૴Ǥ๰vཚǑཪĢะݛਪˎڷ՞ϐώᧆɻფºᝂБ୲ν@”MKઇσઝÖݶҁԄەϲɧĮΏɑɝ༧Ǿ᚝مݛĭ౽ן௛ԧ̱ϣய׊ᔗڇϣ̸ߵΫ૱Ř˓ց৙߽Šͻड़ȋő௣ޭ‹Ϋ۱Δα฽ѕ̅ॡభȳʥ࡟ே޳ׂ̳έ௬ҵለИ୘܀ԆªϾರȊຊ੒คࡺຢڢڮஆ৷ëԍۗᒉइۍਖᓧ˷ᑃටۚԧሙɕಝēÔ؊ಯŶ਩ЭᢵƠ᪏ʟᨩ࿛ủጝ೚ŁаՃࠄȅ՞оईÃௌऍ†܍ځ࠽ë্ϛഉ్௓˯ׇଙ঑ଇॻթӹ૩ӱՉYՇФૻؙſ˩ŝƦKѐіxŦ঴ɛܚܞ̒৶Ʃ֢ࠈ˾ऄ͚̮Ѵݲ൷ʛܯͧ౧Dͻ߄হװหˎ̵ࠖ̉Ԫ̿βԯࡐ̲݇షʢ૛uਯƱۛлҤȥXҩұˑݷࢻRσஅՍ৙̈́োéѯˮԋĞ௷ףેƑޛȻੑƌޫSԙіࠕИࡅŎ੝ŋߏƹ஛ΜLJـধɎށİवΎࢉࢉ΀ӵࠇב௏ɂ࠻Š֗Ͼ࢙^ܳʴ౫Ѓྃܣࢭơ͡çѽԤઍőΧΦחnjЙӠҩưிɍୃӜ҃ѯሟᒒੵٮ̮˂ᑋߍ߭³êҞઅ˺࢙ȱ˃ࢊມǺݯΑᑅ̳Чȹḭ̇ϫ˻؆ֹ߭ɓǀɭ߭ХസֿɁЉ୻˜ʓʟ੹Ѧ೯iࢻΟহͼᇡ׊ಽsჃࣳĿؗࡹӤڡउʖǡӝُ܊֫ذx՚֗ďѝѐƋϥӽ߿Ƒ࠳ࢁކߕĉ֣ࣼফԇ͹ƝɇωÌֿԚɿ†ՅȚʳΈ޵ǮԙƁƥƼଥЖఅƌ܃ƞĹıੱ܂य़̈́ܩӴؒƈۤ۰ҹͪఌ΄uȀݯƉ‚ώѠɼ߼ÖƄ˪ȅҪ΀ѰWʚఉ˚ӭUԯЀ١ƃ੩̐lǒ̗θڟ¤éʼɀǞ՝ӈࢋąʭ¦Ƀȑ̽”ȷ՞ȟ˨NJĀڴ‡͞Ȁʍɢ֥ƪ¼Ʋ΁ƴՃվǸɨĉЂࠑȨѱijšȼࢭɂˑӸíТЙȖάˊʝ޶װӞųƤक़ҬࢡЎᅢ੶ޮӠ͂єగּΆնݳش֢ܜ঍ग़ޢي౿֔ŬךڶüොͶࢀ̈൦ԕᘨȧṺो٤ЋÆ֓टѳ൏ɡ⏷ٔ؟Ńൌ؛ÂϵÆ࡫ઌʯڂɓňРԑΰ՘͈᎖Թ۾Ȳ֣؜ዦࠖޢµ޸̋Ӫ׀۫ԄЪԊءԶᚠˑӔҹ੡ĻNҳڌ˽ಜǼȶ՚ჶАᰪܞي£ࠣԙਬĕ׼˼༾xఢΐफ़ԏॖ֌ࢡӢѪˤ២ʫ୒ʿᴾॣ֚ѰࡡѺ{ǴৣĈˢЌ҅ټ}ː༄ݾրކزǒᕮɛǬұߕڽԺˋ˒חȏଵऒԧέ֕࿫஝०ŭ̢ͮऎɎɞжܮЎөӌϼֈࣿêȫҲڢࡈણۆຒ֦șװмnѴүͧ߷࣐Ƶϥ؄ඤͦლ¬༈ӏݛ۪ċࣆศǞ፾™ᆘŌہѮংւॲx࿎иᕠŐ˪ɲᕂþیȋሴҀ໲aɶδߤΨጤΈ෸˗ଥȷበŹ'], + ['@@ⵙ͕ໞીےĦقÃᒈӋʟͿ'], + ['@@૽ōݱÛśƏঙƑ࣫ȦӐʾል~࿞ƶ౨XǢɧӘȬߊƐఞǿ͗ŷ'], + ['@@ᆳĿᚉʎඅ͎٣׾଩ǔᔆָᆎȎ࿌чኬ߻ȹݯ'] + ], + 'encodeOffsets': [ + [[ + 147096, + 51966 + ]], + [[ + 23277, + 55632 + ]], + [[ + -179214, + 68183 + ]], + [[ + 184320, + 72533 + ]], + [[ + -182982, + 72595 + ]], + [[ + 147051, + 74970 + ]], + [[ + 154350, + 76887 + ]], + [[ + 148569, + 77377 + ]], + [[ + 58917, + 72418 + ]], + [[ + 109538, + 78822 + ]], + [[ + 107598, + 80187 + ]], + [[ + 52364, + 82481 + ]], + [[ + 102339, + 80775 + ]] + ] + } + }, + { + 'type': 'Feature', + 'id': 'RWA', + 'properties': { 'name': 'Rwanda' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ͬӃµӵʏŁѿÆʱӍԛàþҠŘތԄʎɺȰďԈʸ'], + 'encodeOffsets': [[ + 31150, + -1161 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'ESH', + 'properties': { 'name': 'Western Sahara' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@oҊŸ@@ÉeNjEౝ᪁ª‚ᒷ޿÷ȳћDŽ்ᾓNǽ˫˜΢bCቆäĶ̢ΆϘˤୌୠ࣢Ђ੖ˀÖ˜ټۺĜ̦ʼnϢ@˔ȒԲ‚'], + 'encodeOffsets': [[ + -9005, + 27772 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'SAU', + 'properties': { 'name': 'Saudi Arabia' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ʼnΪʩʨÝͲѡ̞҃۴ʁۆׇ׀ϑƐ֋ߠīא–ӾӕञϿ͠ґǨˡӖ°ȎɹѦʕȊ͝زԟڴѓ־лIžҦœ̌ļͲनƅζʶȪ̢ٚŚƒˮˤƜ࠷ࡀ၆фdžŴৢɩబיᛎၕ༠ãݠąȾЏתv͠ܥаȓƠִ̏Λ¼΍ċ˩ł˯ʎɽŐ˟ŲȵʬǕɶÒdž͍Žș࡙͐ᡌщǞDzϪש֕၁ᠽ࠽ᝑ͑޷ϙ׻ࢥϹƕɁˬ͏§߻ĎƷČॹmɫùΉɔɝЭĒΟρˋ'], + 'encodeOffsets': [[ + 43807, + 16741 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'SDN', + 'properties': { 'name': 'Sudan' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@śhdмĵ̀џͨĵ؄ĶبϳÌÍȇԍ©Ȭʕðԍңңл؅џđ۹Ӫͅǥđʓџǃ…ǥ࠵@řǦ؃†̡ƝɳîѝӬƟɲ؃ŗɱϵɏݣ˿ǁʳğå ̅ʎÃʼƌΔE΄ӛՀĩάZȰ̱ʜUӦǭ͖̍µĎ̰ɒΖħΐˢʴǫȞɞ԰ϨئܦÏ¥ ZΚॲH@း@Ὂ@ῼ@˔ࠗȁƳŪࡻ্̰͌ȷҠ̳ыӑأƏ˅ʳĉ֑α௿ĚͳƅܟͿࠟԓзέٛč΃Љɽʝ࢟Dij'], + 'encodeOffsets': [[ + 34779, + 9692 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'SDS', + 'properties': { 'name': 'South Sudan' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@Xٽűʯѿq˷ӏԨÑюХƨͳϦșӼࣳ֫օԫԇԫϭסFگȟՕȊ΋ɭ݉֐ȥάҵDZϱÆɣƕϗĸԗۚƉˊعͪɅԌΕζ֟ѬS˘ҡͼ֯͠ʴĠ̀ǂɐݤɲ϶؄ŘƠɱўӫɴí̢ƞ؄…Śǥ࠶@†ǦѠDŽĒʔ͆ǦۺөѠĒм؆ҤҤïԎȫʖԎªÎȈϴËĵاĶ؃ѠͧĶ˿cлŜg'], + 'encodeOffsets': [[ + 34779, + 9692 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'SEN', + 'properties': { 'name': 'Senegal' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@΍ٺн̚φDŽРמȦќ˾ːкïШǾҶVДʙ֎ɝԘأֈֽžԹǔӓ̾ɿî͗ʽŧ³қâÙģȃk׿ȲЛV༇–ɥħ˥‚ѻƋƏ٢ވkȬŞƮR̸ȘήǯκcζȌǝʐˡƙʻJͧȸˉ_ȍȥࣵy'], + 'encodeOffsets': [[ + -17114, + 13922 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'SLB', + 'properties': { 'name': 'Solomon Islands' }, + 'geometry': { + 'type': 'MultiPolygon', + 'coordinates': [ + ['@@ɾ˿חN͉ԬԈȯǜ‰'], + ['@@͝mԧĎǫżÀͮֈƁ˜ǭƎə'], + ['@@ųƹحܰǫԈ˺@̠ڥʹЗ'], + ['@@–ǛڅΦҟ̠̿˪ŰĐϮȫېϭȢˉ'], + ['@@Ǘ³οȒ·Ί¨ƖԈΡͰ˛'] + ], + 'encodeOffsets': [ + [[ + 166010, + -10734 + ]], + [[ + 164713, + -10109 + ]], + [[ + 165561, + -9830 + ]], + [[ + 163713, + -8537 + ]], + [[ + 161320, + -7524 + ]] + ] + } + }, + { + 'type': 'Feature', + 'id': 'SLE', + 'properties': { 'name': 'Sierra Leone' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ɧØ؁ͺѩ҈Ƨ̬Ĺت҆τĬɺƞǸɶpȜǂڦCɺ̛ǼˁʓƈɗṶɴ´ϹϹϛҗ«ʓȩˏ'], + 'encodeOffsets': [[ + -11713, + 6949 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'SLV', + 'properties': { 'name': 'El Salvador' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ġȡӡ^̡Ą΍ǘұÀʃǶ~Ů˾ɄǀĢ«IJȠ¾ʜëǸǙʪƇŒœτĴǤÑŘĝÏͳ'], + 'encodeOffsets': [[ + -89900, + 13706 + ]] + } + }, + { + 'type': 'Feature', + 'id': '-99', + 'properties': { 'name': 'Somaliland' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ϛԩד۫۹Mᩧা͍̜̳К̳ҨǾ̖̲҈˚ƹǒΏϜΗкGߊɌࣴĴ݌ʼиÆ̚ƶӎˆKaE΋Aࡑ@ѫ'], + '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ȰۉԄóنԮҶȢۚƃߠǠќࣶͺךĵ}ы܊̲ÒljпЫMϱ̆ȽōܫփхDŽқѤaɄЍ͊ſ³٥Хʋʵˏֽ͓ĘΑïΟЧț'], + 'encodeOffsets': [[ + 9710, + 31035 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'TUR', + 'properties': { 'name': 'Turkey' }, + 'geometry': { + 'type': 'MultiPolygon', + 'coordinates': [ + ['@@஺͗ঐżܤõলѬࣆ¢ߴЭƜ̑ăУزȻͨʕֻʇˀ५ǏʻҠڧЕƙ̏Ɋ঍ňίŽॗŽҏbॳ̿ەEҁǀऍɹ˝ǐ¯ҷɣǿɣǿ̱Ϡ͈͂ԟí۱ȖֿәౣĥڹҊࣟ†ȗΑׇij߻҄ࣻeӽ࠶ؗҰЦٸՓВठߨಒ’Μྀٔŏ৞հ঒ʄർlุף'], + ['@@۫ҏ˃Ϻ\\ǦȦĦʺՂХɞࡦ˄ܤőĴ͓ܼ˓Ƶȵি±Ωʷ'] + ], + 'encodeOffsets': [ + [[ + 37800, + 42328 + ]], + [[ + 27845, + 41668 + ]] + ] + } + }, + { + 'type': 'Feature', + 'id': 'TZA', + 'properties': { 'name': 'United Republic of Tanzania' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ƚġᵂႋÌӣ஼࠿ϱਙ¸Ӊՠ̩~ɓɳԓ¶ʭÇГ̌Ճΐ̰ࠡǿڝӣࣿ͛ԋb̙ʥבsɕŃঢ়ʂكåɽଢ˵ϺǛɶࠗƾӉʨՕƘͯƘΗɈґ੖ӣҺǗӤČѨƯޞΎ ̨̦͜ѬȺǮS˘ǷȐ·ͨʐł¶Ӷͫӄ̎Ķऄ[ႎà'], + 'encodeOffsets': [[ + 34718, + -972 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'UGA', + 'properties': { 'name': 'Uganda' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ः\\̍ĵԇʷȯĐPوȜ͎²ڬǰϸ͎Ѭ͔ɠ˒̘͵Ŗ¼চΌɮՖȉڰȠעEԬϮЊ׍İсτ९̧ؓЯ֋ʉͽTࢹႍß'], + 'encodeOffsets': [[ + 32631, + -1052 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'UKR', + 'properties': { 'name': 'Ukraine' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@̾“ɄȒʮ¥ࢌĆ՞Ӈȿǝêʻڠ£̘ηkǑ੪̏٢Ƅ԰ϿӮVఊ˙XʙͿѯȆҩƃ˩߻Õџɻύڡã֑˕޽«ܣ̻¸ԹЪȭࡨ¼Ǐ̛ँơଛӟұǠȄЂࣽʘƨLjߪ˪ʑȔಯɆË̼ީĻ̷ҧٱةϟƠЁƉϑƺɂĞƦ˾ɲˎÑƮǬäĊśӸ{ɞØƽĎÐŲ̉ɈŧΘ̩ƐÒ˶ϝɦΉŽأʾ֑ĉȧŭΟ@Ƀȟاă˹ŹϷȴ՟HԳĢγǵÍɤұɮǐͺɸɔȀµɑϘބۦиİĜɾхܼДҢɪٲnࡖßबȫڎi͂ŧ̀Ʀɚȝݸ¢ͮąÄцʶȂܞº'], + 'encodeOffsets': [[ + 32549, + 53353 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'URY', + 'properties': { 'name': 'Uruguay' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ղĚࡆٯ̺|ࡺ՟ڈҫӠֱχЉɸӇεՇॉұاǚғěޥΰ֫ԟҬÞլǾȈS࠸ɤࡺȾڦ'], + 'encodeOffsets': [[ + -59008, + -30941 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'USA', + 'properties': { 'name': 'United States of America' }, + 'geometry': { + 'type': 'MultiPolygon', + 'coordinates': [ + ['@@ũƕȽŤ|ɾƓ̨¦ĤƤƎÍǔ¸þÜe͐ƙƬñƌőɊ̍q¯͟ǵˏſ'], + ['@@˭ÑƟǮīèQÀĈî̘āɘŹëĵ'], + ['@@ĝ҉|Úĸа•'], + ['@@­µÓŻˆŃȒ’ɤŚêÃʐ˥'], + ['@@ıĉ˱ƴªÖŸĈȘijȝ'], + ['@@Ƭңʼƛז½࡬ƅࠂʹڼŊਖɓ˞Tݨʄ߂̧ࠒ͗ں˩ٶˏĈəȢĉ½ĉɦǎĔ¦ȣǜƅɴ@ŬĹĽƫ࢖ЁǶށǚܳʗӹЁҥȁ̍mēĦť˸Ɓɂ@ঊ҆ࡾƀસмfĐ÷ʰƉǒϜƆࠜHޘAˎ͞ŀàࢶ؄ϜƸ౦N໾BĎȺː¦Φž̖Ϣʲٺٚي˨ə֜ƜώʏAଧռӅƢ˝࣋Пࡷ̃ࢱʝѻӿƛȋSѽˤѽΒsė̬ʦȇãʇ֥ƋЗhةƥλ¥ӥ¥۫ʏఀǂʠǃ୳ʥ՗C|ĺʭɷʚǹ׽ؑ٧×Ɏȁª˟ɀǪҍȼƭ^ͅˏ͛ҿڡûʺֲѕ͎įۦljεǴՑևƀׂ˓˜ߛʊÍĖ̃ŠࡁՕدࢇʝցӱнÁэ̱ţ˭इձӁЍЅӽŻׯƪ׍ˬܗώשLεЊঅ֥—͛ȿԡʣŃЯĺƁς͋ȖѻܢϹٞű͢Ǥ֐ɽҦٻ۲͟źࡑϡƭ¦СϼՃȺोŁݗĤٙÍΏſƲɟaͽǴǓLJō̵Ů́ǃ؍€طѺܻĿ؏ȚԹÏۻȝއح࠳γҝБȕϗUׅ¨ЕDŽ˹͝{׭ȂٽʺɽЄȁטӷӐ̃ӰуֺףͲۉgՉڑۣʦѡʪȽҦ˧Ѯӿτїˈ̩̖ป@C΋ڗ@ဩOቿפ౓ТĀǒ੩ĝॕÝƙіխӚϻĴğʌһ¦̝ɪޭĊɉƌĹҢࠁࡊ۩ୠˆȚχˤٯ۴řۆ҃ҞȀۢ…ܜˍ٢͠ߊĸނĺނƱૼˇܘʓ϶ĸǐ௒˷҂ߋȺɜƇې˷ێᛸ@᠂@ࠜ@ᢢ@៚@ᡀ@ᡄ@᭰@ᮞBაAF͔˴J'], + ['@@࠽͋ѕɐŽЀބ̘҆Ÿ֐ÉΤʻܫЍ'], + ['@@ԧŽսƾԛɮࠦƞښùĂ͑'], + ['@@԰DžԾĒڸɛ࠲őéĝُDZٕǾ͋Ʋݍµȧôº̈́'], + ['@@؊ϛώnjහ»¹ȕ౾ƛࡨČᄚ˅ྤā٨ʼn૦Ǝౢʧࣲŝ@@MᷱIⷍࠠ{ࠌɵהρݜցࠈҺࡈ˖Ҁѡ֤·ޒϙՂ׽࡮य़ේ՗xՋұЙҥ͂ݍˌʃܺએںҍߎ߯Ä೷rটʌ჉ࢎߩDŽ฽̜୑í࿻ϬৃΨटǯǦ׏ҫÁঁǫ݉˱झdzťӶϚࠚࣀʶɱɂੱҵֵ֑௅ױؚСߏ׿ࣗΗࡁʱȻωಽѡ˅ϿছΫֽÞ޷ɻ࡝˹ۧ˫෹ʉſƘऀϾࠔʸࣆҠਬĨвΈ୘ԊȈǚب̒ƢْђӸॹʫ˓Ơҕ̧շюɧ̝̽м࠿ͳԩBïԄƲ̮ե̚થLJ܁ЀַȬIӈ٩Ϊ͘ӘۆҸ̚њںÖ־ƇڴМ؎ï٘ʼƻϨҹưج͖ԩWࢻǽʯȃڏȄஏĥ௷ȬΛ͸੟Ӧ୾ΘመШ۔@ŕнᄢŽڽԶਕ͌ױр߫ΨଽˈҺѲ๰‚ਗ਼ϦȨФ࡬ЎࠊĪཪώޜÉಐ҄ౚǭ'] + ], + 'encodeOffsets': [ + [[ + -159275, + 19542 + ]], + [[ + -159825, + 21140 + ]], + [[ + -160520, + 21686 + ]], + [[ + -161436, + 21834 + ]], + [[ + -163169, + 22510 + ]], + [[ + -97093, + 50575 + ]], + [[ + -156678, + 58487 + ]], + [[ + -169553, + 61348 + ]], + [[ + -175853, + 65314 + ]], + [[ + -158789, + 72856 + ]] + ] + } + }, + { + 'type': 'Feature', + 'id': 'UZB', + 'properties': { 'name': 'Uzbekistan' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@xԦૣά࢝ЪշЄ॥׈Яࡾ˭ƴࣥ͏ǤěڢଅѺ۽ӥܕ́Ɛхॅ[ᶾᓘӺƾïದ׻یͅߤݵঢŪ෸à৔ؗÙࡅЦMǢۍ੬ɲЉ̺Lπ׺૎הӖƺʠĉ۵խئ́ײȾ়ѷ੽؁ٕĊ΍uţɺǪ϶૱țˋաЋҫۭ ɓυؠȧǺصҿࡗهǰҳN'], + 'encodeOffsets': [[ + 68116, + 38260 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'VEN', + 'properties': { 'name': 'Venezuela' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@yȣӱĭ˜ϡYѭυӥ͆ڙδÆȌ؈ʻ̒§َਸ਼΀řІ̎ˆ̞ןל_մҵ˧ݮQ࣌ĔӖϕٞĻҼʾXɄਨ¼৖\\܉ʛ˼Їڦ×ِЯƆڧѬn͢ȣڕӱó̫˾̷ȽƽԫƉjϱɫɱّ֪Őʁ̭͍ऱ̽׿Žʏȣڛɀثņƿýϔɑ‘֝ŜՉ܆ï°ǭ׷ʅĭΣΉƏسȝNjʱٷÅҧѼʯ࠺ɟ̧̌Ȅюм…ȊʅʠǛ֒à׼Ȉ˰ƲҎ̓Ơӏĩ؁®ͻęסܢӥńઉăȧ̊ȷê‡ǬĴ̶áͺȃȂŅϮѡÈɸӮĺ׶ʔ̸͘ʌɈрդƖ'], + 'encodeOffsets': [[ + -73043, + 12059 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'VNM', + 'properties': { 'name': 'Vietnam' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@૭ܗ۫ߍȁ׍٠ࢭ޺ળނԱԞګϪ།ŕ๓۫փ१եۇ۫਷ޱ̧ՠʀ֬دӌܬ͸ࢦÔσԚප٨ļ৖ț֖ƶࡀɃצٍאՋ݌ۥ঴৓Ԋʊ̠՞ɘ͙ܺਙPϕކӭڐҊȴڢIࠈĬܒ҄К̿ސƵƃӛАͿࡎɓ'], + 'encodeOffsets': [[ + 110644, + 22070 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'VUT', + 'properties': { 'name': 'Vanuatu' }, + 'geometry': { + 'type': 'MultiPolygon', + 'coordinates': [ + ['@@ˣō˭ςŒɤՆӗ'], + ['@@ƌڱɥŀǩ­ťɴi٢Дʵ'] + ], + 'encodeOffsets': [ + [[ + 171874, + -16861 + ]], + [[ + 171119, + -15292 + ]] + ] + } + }, + { + 'type': 'Feature', + 'id': 'PSE', + 'properties': { 'name': 'West Bank' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@@ԣŭʙЃŕ˜ɜɌŚɁĦǬ̤֔ś'], + 'encodeOffsets': [[ + 36399, + 33172 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'YEM', + 'properties': { 'name': 'Yemen' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@؉ɥNjύo˹࠷Οഇϻݩףυ±ʥºӭΑ՗lj۷©ɃµǿɛəÕŻɇеlˍœ׉¨ɓӬzҠƍʜǑتʋΊǚ¤đϨĸNJ™ξςˌđΠɞЮΊɓɬúॺnƸċ߼č͐¨ɂ˫ϺƖ׼ࢦ޸Ϛᝒ͒ڀ൳˞ח'], + 'encodeOffsets': [[ + 54384, + 17051 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'ZAF', + 'properties': { 'name': 'South Africa' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': [ + '@@ǏŧΣяɻћӇ׻ोࢁףԋًϣ࢛͙ѓ«ŇɷԛŰеDž࣫NJԙĹΏ¬ࡿͩܓƃԱͅϡoΣ̚˳fαϒŸśŏɦLӰ˙֞˔ƴs٤ս޼х܈AF׽તДдͪɯƘΫϘÓՈǃҌÖݤіB᷌ɨűӾߙûԟȈ̏׼ĒрϒЊʨȶДЦȚΠķВɽۂ£՞ȜĐʾƨДҚäʨ͂˪֔ݮغஒؤ΂UОƛ˲Ķ҂ċД஁ɔׯƫऩî̟чƶʏÑāʓɯ̿T̃ԆҕӮĜǢώْQȿؑıۥɑϛֵщ', + '@@νʶϻǟҕ҃͡Տـ٧̜ČƺˎҴƀƜ˜ʴФ̅ʪ' + ], + 'encodeOffsets': [ + [ + 32278, + -29959 + ], + [ + 29674, + -29650 + ] + ] + } + }, + { + 'type': 'Feature', + 'id': 'ZMB', + 'properties': { 'name': 'Zambia' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ІϏɊ܋ƝɩǙڻLjۡ˃̇ʭޭѶɓᢇۗĂׯٍřӍͯĹ̛̅ßܵۓҭխ˳o˗ĬऱĠƯÚOêͧȎկ¶ۋȑչԾ֣یžᦶშYí̂Ű̀ƧЀĪТėʺ̂q¶ʽϾrՖûˬϡڨŝԤˆȌѯ٠ş̴ΧΈҥ٠Që࣠ɱƳח͞ɧƬļࡈƬসȉψʈ՚ɤĶ଀ƚͦđΘɇͰƗՖƗӊʧ'], + 'encodeOffsets': [[ + 33546, + -9452 + ]] + } + }, + { + 'type': 'Feature', + 'id': 'ZWE', + 'properties': { 'name': 'Zimbabwe' }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ҁČ˱ĵНƜ΁VՙϞٯźʙՒC̒έĞ्ई˃ӢǛƮ͓ڤलğ˘ī˴pҮծܶ۔̜àĺ̆ӎͰَŚÆ̻۬hϴǯǺȻАÓѦˑF੟Ǐ׋—عƊʝħӵŵùɛ؅ࢫ॓'], + 'encodeOffsets': [[ + 31941, + -22785 + ]] + } + } + ], + 'UTF8Encoding': true + }; +});define('echarts/util/mapData/geoJson/xiang_gang_geo', [], function () { + return { + 'type': 'FeatureCollection', + 'features': [{ + 'type': 'Feature', + 'id': '8100', + 'properties': { + 'name': '香港', + 'cp': [ + 114.2784, + 22.3057 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@™@}ScTʟ@cWuJÁ–]„l¦RLj¼BĄà˜ ŽH@TOHCTDDDHDNAT@PEHDDNJLX@BABALHFF@DKHADBBLDHHFBLEJB@GDBBFBADDB@@KFAFBBJJA@BB@@FFDDADFF@FADDDBJC@AFBD@@DDD@DAA@D@DB@DHHBFJBBFEHDFAN@DGDC@DLCBDDCFDlAFBFCBEF@BC@GDAB@FD@DZJ‚X´HĐMja@Ý`p_PCZ@lLnRGSDMFK|a\\Y}­ƒ§™Mën'], + 'encodeOffsets': [[ + 117078, + 22678 + ]] + } + }], + 'UTF8Encoding': true + }; +});define('echarts/util/mapData/geoJson/xin_jiang_geo', [], function () { + return { + 'type': 'FeatureCollection', + 'features': [ + { + 'type': 'Feature', + 'id': '6528', + 'properties': { + 'name': '巴音郭楞蒙古自治州', + 'cp': [ + 88.1653, + 39.6002 + ], + 'childNum': 9 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@˜@ÈÒĊanwŎV„™Ȯ¦ͪŃĢ„ÜōȂçČéƐżLɆóĊ‚ĊaʊŁ±¯²Um»ˌmÈ»V™ʠţWÑůǓ郙ôƑƒğÆīŎī@Ƿ™wô™˺LÞ¯ƨVǪуšĢ™ȘV°wĢŽôk°¯ƒ»΀@Ȃ»ĸŽǔ@΀ƒ͔ôôLɆó̐ÝɜLɲōͪƒƨóŤK@ī@IU܃ÛmȻţǩÝ˹ÛljťǓǫō@Ɲ²¯VçōKͿŁΗÇţ»ƽ™ɅƑLÓŏÅÅɱV@ÝĊU¯ÑĊĭÞLšÞŎJ±̃XȣˌōlƒUÈ¯ŎKÆƅ°™XÑܱnŗġV¯™óaUƒƧUōŁ„Ñ™±„çɲ¥lĉkğ°ƒk¥˜ƒnğţL¯ÝÝUƽĬ΁lķ°@„ō„XÿݯV»ŹLʉÞɱŤĉó°ÝJ™¦ÝKÝ£ţܙÈĉ@ƒxǩUċƑ@ky͓¹™`U²ĉVġ»ğa¯¥ť@ĉ™‚ó@ŻÛÛJƒw¯nó¯ġWƽʩķÝɛwĉĕݼȭÞķō@ó£Å΀ƑŽ¯ôȯÞ¯Ȱ™ÆōèĉXǼó@ݚnºƒĸ„ÞVƜĸȚUʶõˀĵĖɱŎÝĖVࢰӒѢ°˘nϚVˌ™ÈmɼĵŦW¤öʊõʔ@°ÈXVŽ™ènŎȁb¯ǫĉ„±Èğ`ġwōÔğ»mVVŽ„Ý¥ó@™ĸķô@ššbX„ĶmV²²`Þ_˜˜ɴbͪÈ°„ÞWĸÈŌmބškɲŽÈUÆ»n¼ǬVķĸźô¯°n¦ɄǜÈ'], + 'encodeOffsets': [[ + 86986, + 44534 + ]] + } + }, + { + 'type': 'Feature', + 'id': '6532', + 'properties': { + 'name': '和田地区', + 'cp': [ + 81.167, + 36.9855 + ], + 'childNum': 8 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ƨ¥šèź٨ΘƑᩄbUࢯÞĕɲōĶĕöʿVʵķșUƛƒÝ„ķm¹Þ™ô@È»ĊWŎçšÅ°ȯȰÝ°óƒÆͿĉ»̽çnƒmɱĵƧºóU™™ƽ@±wóL¯°̻L±Æ¯Vƴķb¯VÇ¥ğ²Ǖbk¥ÇKlÅɱġ@у™óK@™ÇaÝXğţxĉČǫķê¯K@уaŹ„ƑKƒ¼¯Vóaónġw™óÞéU™ġbóĉğÇl¹™aUóğKW„Vůn›ÇŋƑ›ķnʇ»óxĉw™çÇ°Åw™°ċ„XŽ™„ób±ƒkÈÇJ—ƒm²ţx@ÒݎšŦǺn„ó¼n°ÇbUÒ±¼XĸĠłƽXmwĉºƒzÈÜmnxmx²ĖmҚbnŽƧêUºĊêÆVóĖóUĉ¼ÅĬƑ°ɆƆŻŚlłÞLš¼nĠƒ¼@ޙšÞź@ŎÞ°VšɄɴжϼِ͈Ŏ„'], + 'encodeOffsets': [[ + 81293, + 39764 + ]] + } + }, + { + 'type': 'Feature', + 'id': '6522', + 'properties': { + 'name': '哈密地区', + 'cp': [ + 93.7793, + 42.9236 + ], + 'childNum': 3 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@WnŐÆĶLĢ¦ţºź„lxÅĸƽŚ‚Ʉ—Į˜è@ô²ÞUĔƐńV°¯ĸX¦Ɛm̐bƒ»Ɇa΀šĢ™ƐLˤ™ȘÑnƒІljĸÿn¯ĶaŎ¯ĢĕȘ¯°΂œla¯¥™ǕǔwˤӱlťО̻nŻmɃĕċţUw°WUóƨÅţķ°ýV±óÅǓéʉ¯ƽŁƒéōǖȁÝƏůǕw˹ǫȗǓƧǕVý™é@ĬţLƧôͩ„ɱŎɛK̏ÞɅôóK@²@°ōؚ¼lŦ¯ŰóƜÛlV¼ķ¼ƒ°kȰ™Ű„ĠƒǬ™ŚÝŎmĖ`@ÇÜn„'], + 'encodeOffsets': [[ + 93387, + 44539 + ]] + } + }, + { + 'type': 'Feature', + 'id': '6529', + 'properties': { + 'name': '阿克苏地区', + 'cp': [ + 82.9797, + 41.0229 + ], + 'childNum': 10 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': [ + '@@VƚxˌŎÞŎƒ°n„ȂÒ°²VĊ¯VğƾˍǬƨÞÞKÈÞĊVźôɆÞĢèŌôWČ²ŤVÞĸʶbl‚¯ôn_VÆĸlmÞnVź_ĸ¼Ȯmǖ„šéĸW°°„ĸJ„kʠ¼Æw°¤ÈƒlxɆzČºĶI²ÆǔUš°ô@Þ¦‚ƒUnUĠ¼ŎÓĢxĠ_²ÇĊƒǬ°ŽȂamōšçUÇW@¯öʓõʉX£ĶťnɻšÇUˋmϙ¯˗ӑѡᩃaΗƒœɜ°xWƴUxɃÒˣ¤Ʌwğ„ʉōóÝŹ±°ȗ@¯„ƃ²¼', + '@@ō™гwȁ¥Ƨ°ŹÑķV™¼ÞêĊ»‚lĵšm¦ÅW@ĀôÈźaɜxÈbÞÆĶIОŘnIÇŃÛÝĊÑĠƏ' + ], + 'encodeOffsets': [ + [ + 80022, + 41294 + ], + [ + 83914, + 41474 + ] + ] + } + }, + { + 'type': 'Feature', + 'id': '6543', + 'properties': { + 'name': '阿勒泰地区', + 'cp': [ + 88.2971, + 47.0929 + ], + 'childNum': 7 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ɲˣĊIÈ¥‚ÅU±Ċýkō°ƒĉƽó»ĶƽXóʵʵ™ȯƑÅȁɅ¯ĉ@ÇሗK֛@@ˤV֜ʵрƒǬVĸƑŎ@ƆϯÑóŽķ@ʇ»ķ¦έmlÈĸĊX¼WźÛÞÝѸ‚ĢČþ„ĀĊôάVö¼ĊUƨ°°èŎČUÜƐóôVôôŽ²êȘlˌç°`n²ǬŽĊaš™ƒÛ°±kğmm»š@°ÝɆÛÅÇVaݍVm͔ğôÝÈb‚„@„ƒ™n¯š™ÜUĢÑĊ@źīżWŤÈǖWôŁÆI²ÓƨL@ŽĊX„mmÑÆ»ȰÑkƒĶō@ý°m—¯'], + 'encodeOffsets': [[ + 92656, + 48460 + ]] + } + }, + { + 'type': 'Feature', + 'id': '6531', + 'properties': { + 'name': '喀什地区', + 'cp': [ + 77.168, + 37.8534 + ], + 'childNum': 13 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': [ + '@@Č@°ƒĠ„ôÓô@Ŏĉ@Ƴĸ@Ť£ĢlVôWVóřXĉŤêÞ@ƐÒĢÑlèÈV@šĠIk°ÆŘ@ÈÈĀ@ǶťÒğ@š„@ÒĉlŻ_@šƧĖÅĬōÆ@bźÞnƒƒlVœÝĬšWƼʇ„ƒÝÅ@ÇÅÈwWóĉ±ğz‚ĬČƨƂÝIĉݯbÇÑĉƒ¯ʈV°xUŰĊ¤ƪ_ôÓɚI@lȚXȮ™ŎlɴȘ՘š„¦ɲÆʈ_ɴŽźŽôÞʊŎĠƒɆxˤ£ɄÑVwXƳ¯w›ɛŹ٧™çƧ¦ōƒُ͇еϻɃɳU™Ý¯@ōÝŹš™@݄»mğ™»ÝKkŁżřɅƅƒ¯ÆīĊ»ôVôĕÅUĉéV¹ƨém™anѱĕnwmwnÇۄyĉ¹ŹlŏkĵèķmōÞġKñÔċKÅèĉzƒŽ„ômxȗÿƿI@þÅČÝKÝ°@¼ÈVºš@ÅĢšÆUċłn„ÝÆǕČĵJm£ÝJ¦@ĊƒxV°ƏLċ¼ǩ™@™m@ÅĢómÇÆğ¹Çš™ÆšĖÞKšx„wô¦ÆÑÆL²ÆƾŽU„Ž±ŚÅŻĖ@ĬŤÈñ„@ǔÇx„Èǃ', + '@@VÇ™ţ°ğUĠ¯mk¯ó¥ķIġÿƏbƒ„ĉa±ÒĸĀlKU„_m»nwšŽ„m@ÈŤ¦ĉbÞ°±Þżł̦°ĢŁVé' + ], + 'encodeOffsets': [ + [ + 76624, + 39196 + ], + [ + 81507, + 40877 + ] + ] + } + }, + { + 'type': 'Feature', + 'id': '6542', + 'properties': { + 'name': '塔城地区', + 'cp': [ + 86.6272, + 45.8514 + ], + 'childNum': 7 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': [ + '@@ήnĸ¥ʈ¼ĸ@ôϰÒ@ƅƒōUķƑǫʶпU֛܃LګK@΋ĸ@Æ£ÞġÅĠċšLV݄»™@Å»Ýnm¯š»nŻĊ@nķŃ@¯ómóÛÝǟ¯aÝóȭ¥ƒšōUmxĉbÇї@›bUº¯X¯ÆƧbVÒĉnǕw¯°ƑŽV„—ŽÇ@kx±Uƒšɱn™ŽÅKƒ„¯ƒĠǠU°ɜL@°ƒxnĬ‚ĀŋŎÇLƒŽğšϱÞέƜkôÅĀǕłƒĸĊŤUŰĢ°„¦ȂϰÜɨ°x@°żǠÆƈČVĠ»ČL°ÇšbĊÑ̐óÞlĶwބɆVÞwǬxǪţȼÜLŐĶˢ@', + '@@óKĵĀV͈ĉłƾNJÆŤƒzXl°ƒÆL²¼źŽôÈĢǔ™¦l„ô°ɜÞʊĠğŃm»ʵƳƑʝȗīV¥¯ĉ°Ñ@ŃÅI™»ĉmğn™ƒašƒċƨbš™Vğ—w›ġ¯@Uōa™ĉÝJğÑÆŎkŎÞĀlźƒ¦' + ], + 'encodeOffsets': [ + [ + 87593, + 48184 + ], + [ + 86884, + 45760 + ] + ] + } + }, + { + 'type': 'Feature', + 'id': '6523', + 'properties': { + 'name': '昌吉回族自治州', + 'cp': [ + 89.6814, + 44.4507 + ], + 'childNum': 7 + }, + 'geometry': { + 'type': 'MultiPolygon', + 'coordinates': [ + ['@@መL@È°ĊȂɆƒÆĊ£„ťôWÓɆbĢÅŎƒÆ¦ČÑW¥°ķU¯ƏŃVē±Ý@ó—ç˜ĭɃƾřÆķkwŹƒŤ¹ġ¥ĵKŏÅXmˍщwǓ¤Ƒ@wóōVķ£ɱšġôÛa±Òȁ„óèţIVŽƽ¼k¤ó¹ġJmx—»ÝUƒ²™@ÅƃĸǫŎ„ĊmŎǬ՘'], + ['@@Þô°bÞǠôÜôn@°ĸń˜Ƕkłƒ¼UޙKğȂÆÝĢŤķ@@ΌڬL܄K@ˣȂ˭lĉńW¥ĵVÆý@ŃÞēUŃȗƅ@ŹƩǕĉ»k»Ç™VğóřX™ŻKƏŽċêȁèÛŎġƒͩń'] + ], + 'encodeOffsets': [ + [[ + 90113, + 46080 + ]], + [[ + 87638, + 44579 + ]] + ] + } + }, + { + 'type': 'Feature', + 'id': '6530', + 'properties': { + 'name': '克孜勒苏柯尔克孜自治州', + 'cp': [ + 74.6301, + 39.5233 + ], + 'childNum': 4 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ˎǫĠƽ°UUĉ¯±ȁÑmƒ„¯Ýōˋō™wUű»ÅƑ°ƒȘ@²¯ɳʇ`ɱŃ¥՗™ɳȗōkȭšșW@kəJóÔƩ`ĉ£Vů¯wU°ʇĊ„ÈÒ°aĊÞÞJŁċƧīĠyĊ²XôÇxÈÆÆ@„ÞʈƒÅ»™XÞīU›Ƒkm„ŹÝ@aŎÅÆīƨĕ@™ż`Ċk@љƒĠ@ŦÑ@ǵÇÿ@ÇÅŗl¯ğJ@™ÇUkçġÒƏÑÝ@ţéWĊôŚUŽóXUġkţ¤ķ@@ƴōĊó@óÔğƒ¯„ċ@@Қ¤kôˣŰ͓„k»ƒKX¯ċwƧôğɐšÒôIVƙš¯UķǬķšnŽ™¼ôb°ÒȰVVÈÞ°ƒĸó¤V¼°„V°²êƒlĢ҂Uƨ¦ôȰƴĊVV¼ǖIċĊ„ÞɜéšnČW˸Ǹša„řÈw±īšçĸ¤ĊšôšwšŽĸUĢ¦˜éǖĬ„Āô¼lÞkÒ°x°ƆÞx„šÆV²ǔ»„b°wގȘ¥°n„šŎV@°„„ʠè‚ŰȂb'], + 'encodeOffsets': [[ + 80269, + 42396 + ]] + } + }, + { + 'type': 'Feature', + 'id': '6521', + 'properties': { + 'name': '吐鲁番地区', + 'cp': [ + 89.6375, + 42.4127 + ], + 'childNum': 3 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ôK„ĉǪa²¼lÜô@ʠê°Ĭ™ôȂƒ²ÑÜbĢóɲ™ĸ¤ŎUô@xƒŽǔ£ъxˎmƒÈÛ@‚_nĕÞōšř„ǫƒğšůlȯ„¯ĸ»U»Ükôƛ°ůkť™»Ŏŗ@¯@±͓óͿ„Ǔ@ķȁ¼Ϳ@Ƒ¼¯°ólġ¯xȗUġšƑ™ǩÒƧUÝ°˹Kóššx@ǸōĬÅĬƑĠ󃄚ǔêÆ°XÒʟŤUšÇ¼ˋnn¼±V²°ȂUŌݜbʟǔɅô@żǬaҎÈ'], + 'encodeOffsets': [[ + 90248, + 44371 + ]] + } + }, + { + 'type': 'Feature', + 'id': '6540', + 'properties': { + 'name': '伊犁哈萨克自治州', + 'cp': [ + 82.5513, + 43.5498 + ], + 'childNum': 10 + }, + 'geometry': { + 'type': 'MultiPolygon', + 'coordinates': [ + ['@@ĉ„ÆŘȁ̐mÞ¯ĀX°±¼@ƾ¯ƴ°ŎÝþŋ¦WÜÞbȂĉźUœÇmwVUȂóô@ȰÝ΀nÆJn™ƾ™ʠ™ŌLČóǪ¯œ¥ǔaǖšŌaôÝĢLšx„ƒÆLšɲm„™²VlwÈ@˜Uƒƒ°¯ǖxĊmUÑƨa°Å°WV¹œa›ÇɃÈm¥°¯ŹóĸķǫUm»Å¼ÇVɱ™l݃ŋnķÇÝX¯ƒͩÇɳa——Ý`±_U±ĵnWƒ™a@™ĸóšķ™¯ǓV±ÅĵJċ¹ɅykwDŽ¯£Åxʟ»ƒlķI¯ƒX¯ķ‚™êǕƒȭnķ»Ź`±„kÞ@Žš„Ýô@Þ°xšŤŎIƨÆUxōš¯²ǔĬǬlUŚ'], + ['@@ÞĀlźƒ¦¯ĸŤKޙšƒċƨbš™Vğ—w›ġ¯@ţƽJ'] + ], + 'encodeOffsets': [ + [[ + 82722, + 44337 + ]], + [[ + 86817, + 45456 + ]] + ] + } + }, + { + 'type': 'Feature', + 'id': '6527', + 'properties': { + 'name': '博尔塔拉蒙古自治州', + 'cp': [ + 81.8481, + 44.6979 + ], + 'childNum': 3 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ήƛϲÝĠ™„ÈKŌōÿmī„w@¯ɛKV¯ğǟ°Ƒ™wġKóÞŋbǕ™Ǔb›¦ǩ°ċôŋKʟšƽšmšÅImŽͿŽȯÞó@ȁôUVnx›ÈŹVȁĊÝabŻ£¯°l„óxȂŤĸkĊšÞyĊêĊmĢxV„ƨÈŽĠX„ŽΘÆĠÔź‚Ɇţ°LXƾŤŤb'], + 'encodeOffsets': [[ + 84555, + 46311 + ]] + } + }, + { + 'type': 'Feature', + 'id': '6501', + 'properties': { + 'name': '乌鲁木齐市', + 'cp': [ + 87.9236, + 43.5883 + ], + 'childNum': 4 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@šŽWŽôŚUĠȚl¼Ċ¼ƪǖ@źȘƆ@ýlܚXVŘޙš¦V¼kĖó҃èkĊȁˮ֜@ǫ՗nōƒĉǬō„ķÆŚ@„±ÞV˜¼nwĢIôºl£ƾ»UŤJôçšó¯īʟéó@kÛ±»ǩbƒĊóLҍÇǫb@ŻɆóʠǓ›aŋÞȁVʉłĉbĉɅô'], + 'encodeOffsets': [[ + 88887, + 44146 + ]] + } + }, + { + 'type': 'Feature', + 'id': '6502', + 'properties': { + 'name': '克拉玛依市', + 'cp': [ + 85.2869, + 45.5054 + ], + 'childNum': 2 + }, + 'geometry': { + 'type': 'MultiPolygon', + 'coordinates': [ + ['@@ɜÞʊĊýVaŃm»ʵƳƑʝȗīV¥¯ĉ°Ñ@ŃÅI™»ĉmğn™ƒaݚţL°ķóKĵĀV͈ĉłƾNJÆŤƒzXl°ƒÆL²¼źŽôÈĢǔ™¦l„ô°'], + ['@@ƾIŤ@UUwōa™ĉÝJğÑÆŎkŎ'] + ], + 'encodeOffsets': [ + [[ + 87424, + 47245 + ]], + [[ + 86817, + 45456 + ]] + ] + } + }, + { + 'type': 'Feature', + 'id': '659002', + 'properties': { + 'name': '阿拉尔市', + 'cp': [ + 81.2769, + 40.6549 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@nIÇŃÛÝĊÑĠƏō™гwȁ¥Ƨ°ŹÑķV™¼ÞêĊ»‚lĵšm¦ÅW@ĀôÈźaɜxÈbÞÆĶIОŘ'], + 'encodeOffsets': [[ + 83824, + 41929 + ]] + } + }, + { + 'type': 'Feature', + 'id': '659003', + 'properties': { + 'name': '图木舒克市', + 'cp': [ + 79.1345, + 39.8749 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@VéVÇ™ţ°ğUĠ¯mk¯ó¥ķIġÿƏbƒ„ĉa±ÒĸĀlKU„_m»nwšŽ„m@ÈŤ¦ĉbÞ°±Þżł̦°ĢŁ'], + 'encodeOffsets': [[ + 81496, + 40962 + ]] + } + }, + { + 'type': 'Feature', + 'id': '659004', + 'properties': { + 'name': '五家渠市', + 'cp': [ + 87.5391, + 44.3024 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@„çôÑlĕU»™¥ÝšUŗ™WkÛ@þVńÝĔ@ńÅþĶUX¦Æƒ'], + 'encodeOffsets': [[ + 89674, + 45636 + ]] + } + }, + { + 'type': 'Feature', + 'id': '659001', + 'properties': { + 'name': '石河子市', + 'cp': [ + 86.0229, + 44.2914 + ], + 'childNum': 1 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@lŁ—ǵm‚ĉ@mż™¼n°ÞmƼš@'], + 'encodeOffsets': [[ + 88178, + 45529 + ]] + } + } + ], + 'UTF8Encoding': true + }; +});define('echarts/util/mapData/geoJson/xi_zang_geo', [], function () { + return { + 'type': 'FeatureCollection', + 'features': [ + { + 'type': 'Feature', + 'id': '5424', + 'properties': { + 'name': '那曲地区', + 'cp': [ + 88.1982, + 33.3215 + ], + 'childNum': 10 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ƨʔĸbܺÞwnxźbÞ°ô@„ĶŽĸIȼĊJŎÈôUšÝƒ¤ǔLސŎ@ĢŽȘblƒôL„ÇźçȤôLš¥ÞIÞ¯Ķxʊťƨ™ƿÑĉXVķŦ¯ȂKÇǕšÑ¯IUš£¯Óƿ£VĕōÞÿÆwƒƑ„£ǖxÞĕ±ÇÝaUÑȃU¯‚UōÈ݃wWŁĵ™±Ý„óĢÿ°IÞ±mÅĢ¯mÿ„¥°UnÑŤĢĕĶwǬŻͪwŎ¼źÇĢ„ĠĕˎŁ°óƨ¼Èa‚m@¥°wǔ„ǖ°ŽƨÇŤœšġƨ„ŎŃôbÈÛŎĊ°@Ġw²ÑÞJƃÆb²ƒ°êĊUނlȲƒV„ÈKĊÒĸĉ›»ÅôťUÅǃk¯@ǂÑklǁÅl™Ģ™VÑóƒ@°@„ÛĸƒV¯ƒÇĊ™n¯Uĕšƽ¯m›¯b™È@Ò°Ĭƒbĵ›¼„‚kxķýÇJk£ÝaUÑÅóĶǟkÓʉnĉƒÝ¼Ƒ„ó»Þmn£m™Č¯@ƒȮÿV¯ĸƒ™k@Ýówƒ»ğ„ġ±ǓLō„ƒšV¼Əèķĉ™è±b@Òţ„UÑóakƒl£™Ó@¯L@™ÇlUóȁš¯aġÈÅĕÝLķ¯Ė¯@WĬ—x‚ÒÈnW°ţôU²ǓÓġ²V°¯ôƒǔÝL—ċšk™š»Ý»Ýš¯ÞƒVƒwۄÝÇōͩÈĉċ»ĉm¯£W¥ţKkóġƏW@¯±kōŽÈ›b@җšÇaƒÆ¯a™„ƒkóŽÛƒÇ¦Ýa¯šÝ™ĉ@ǻۄmƒǓxķƛ¯lVĀÅÞġb™™ÇJUÅV™ĖƑW™zō»ōšƒW™n@è¯ÞóVkwƩnkźÇބҙޯƒƒýğÇUxÆÈnè±bĉÝ»ÈуwšwÞ@m»ÈV@ýÇ°ķ™xƒa„ݯXċ¥ƒÈóW@ôkxlnxVÈóĊkŤġ¼@°¯ŰƑL̻۱ŎÝV—Þ›VƒÇÞŎÇakƞ‚š@èğŎĸżšƾ°ÒšLÞôĠKȰĖźVÈÒĠ„¤™VôšŽU„ÈþťL@ôǬÞlÜÈnÇÒUŚ™@šĊƨW°™°Xƒ‚@ČÇþ„ƴĉÒķ¦@ŽĢôWĀôłUÞĢǬ™ź°¼š@ƒôV°„bUÆnzm¤ƽĸƒÈ'], + 'encodeOffsets': [[ + 88133, + 36721 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5425', + 'properties': { + 'name': '阿里地区', + 'cp': [ + 82.3645, + 32.7667 + ], + 'childNum': 7 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@„Çƾķn£myVŃaU¯„ó™@¯»šŹġǫVÝóŁXÿġó@ĸ¥ĊуƳÈý@ċ„Wš¯X¯ĉƧ‚™š@VřÈÑÇmkÛǫÝ@óŦKÇýVƒ™U󚏃£ğÇÑŹUȯĕğLÝó™K¯Ñ™ƽķŻĠō@灙lƝÈbƍÈ݂„œU˜ÝÞU²ō̼ůƒK°ů@¯UK±—ĊƧbōÇmçÈġƒóšÅób™™źóš¥kīƯól™ç™KôĵUƒÅ„VŃķ¥nÅŏm¯¹Å‚™»@ÑǍóxÝkʇȤU¤ķb@ƒ¯ĊÇx¯ĸĉKm°šĀk¦l„„KnĬȀƾÛ¦WÆŐmNJĉ°ōUţ¤UšŎ°šŎKÞłÆ„Ǔ¦ƒÞ™‚™„ř¯bmUÝl¯Um™ğl¯£șwŎǫaÝnĉĶƒk@¯™K™šō»ĉn™aÞ»ťnkml™ĸ¥UŚŻkÑťƒĉV™ôó°LôīĠU„ÿĉǕÅz±Kƒ¤„²ō¤¯Ė¯UÝ¥Vĵ™óÈťÝwķșÑk¤ó„™ƒWýĵĕ™„VĠƒV󍃎Ǔ„ķ°k±VU±ţ¦UǟÝřJVљ¥XUċUŎlÛƆǕÆȗƆ¯wŏÞÅ@™šĉl݁óŽƒÒ™nUôńlxólÝôێ±™™LÛôÝL@‚ġ¯X¯ÇUżóa󤛼XÒġŎóLk¦‚ôżĸĠ™¼™KġƆô¦„ÆƑÔĉĶ¯ImÒ°¦n°¯Þl˜ÝČn„ƒÒšKĠޚĕkƒlýƾťœšôI‚ĖŤÒnƜm¼¯lnżóÞ@Ůó¦™ôƽĖċŚn°Ý°ôÈUƜƒblÞóŽ@Žǖô°UÈƆ°X„þôŽô‚lѢšŽ²Ėm¦°š@¤™XŽĊblܚzkºƒĖmX„šŎWVšóÞn°lĠxȚa°»żLźƒ„b@Æ°XĠÝȚxĊĕŤaȚ‚°È@„„@èŤ¦Ü¼œW˜ÞkŽÈ@V°lŤkŎ±²¦ƐUšlj°aÈÑŎbĢƒŎbÆ¥ÞIȘlššôVÈU‚™šb„kɲĶn„mnXb̼òƾĖŎ@ĢȂÑôÓĠĖʊšĊÔ'], + 'encodeOffsets': [[ + 88133, + 36721 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5423', + 'properties': { + 'name': '日喀则地区', + 'cp': [ + 86.2427, + 29.5093 + ], + 'childNum': 18 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ĶĖXþš„ôƒl£šÒĸÇÞxÇŦšôUĶÞ¦°V°ĕŎ£ƒ±„£²LÆyĊǖƒĀğVóĬ¯KóôUš‚ĊŦ„lҙżVÆķ¦kšlnŦmݼšbĊmŎ¼š™šL@°„lĊĵÞmǬbƍȚx°¤Ġknš°VÞkVn°aƒŚš‚š„Ýǔ¥ÅƒÝŁōL¯™ōV™Ť£ŎVĊ¯nljƏXÅÜ¥ǿƽmīƒLkƒl¥™ÿn¯ĊL°ķÈw°ĉ@ƑĸaV£ʈȣÞlôwȎ@Қ¼Æ°ºŐnmÆĸ¦UńƃV„óĶšLšèôkÅ°lĬ™¦Źôššôa™Æ„ôÇĢnèŎÈƨa˜ĉ²‚VLĢ»lţôĉUǂwkmlw@óôX„ÇȦ°WƒÞ„b‚wĸšÈ¯@þÇUn¼Ý@™x„xÇńÞ¼ĊŽ²amçÅÇVwĠȄþ°„šÝƒÑÈÝlŹƪmlxôU°Ý@çšm„XŎ™Ŏ¼šyƒXšĕÆUVÈIššĢaÆÝUÿ°kĸƜǔwn„܃ȼĊ@ޚ°™Þbȥ܄ô„lšƒ°b„ÅÈb˜™@ќa‚ǯUU¯Vġš»ƒ™¯aV¯Ç°Å™mnÑŤçǬVǬ™±ĉ¯¥Vĕ¯Ýk£˜ō—w@±ġÛ°ÇVїƒ@ۘa@ČL™Ƴ™„ƒÇa¯¤ÝIĵ¼U¥ƿōķÅţŻókÝóĕ‚¥¯™U»Æ£X¯ġŃÛkÝ°V°ó¼¯èWôÞĖ„ȎƒŽkĀƧĀówm¥¯JŹÝJݙōVVŁaݐƑ@ƒ˜ğŭǂ¯_ƒ˜ĵ—›VnxŃón›ƒĵxÇĖĉVÝÈğV™Ò󃯐±Żĉ£ķÆÅL™Ljĉý˜ţۃ¯VƒnV¤ÝÈ@°ÅÞݤ™ŰğŁm¦ÝxóKƒ¥ɱÈUĠôêVôÛ¼ÇWÝçĵaō¦óĖƧlÇĢƑŽnŎDŽV¼¼‚ºÛ@m¦ƽ„ĉmm¯ÝKÛç¯bŏłĬ™bƒ¼ÅLmŽ„xť°ÅU™šÝXkŽÝmĉ¦W„¯K„ÒknÝaV„Ýè¯KɅńÝKnÞ¯¼'], + 'encodeOffsets': [[ + 84117, + 30927 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5426', + 'properties': { + 'name': '林芝地区', + 'cp': [ + 95.4602, + 29.1138 + ], + 'childNum': 7 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@‚VÈłVôÈk@š°K@ŽšÔk¤l„ôbVÒŤƒ@ѲašçĸĊƐçU»„™ŎƒǔKĢ²Ġƒ„¼ôx@ޚlƨĬ„Ul¯ÈLV‚šÞJ„°Ünʊ„wÜbXê‚VÞ¯°ššanaU°wƼɴÑWÑ°mÈýÈam¥Þ£Ť@„¥ôblÞĢ„ź¥ôxÈÅmݚ™ƒĕŃV»ĉōŤōnóƒ»ÈīķIUƒĠÑ°ġĸLÞ¯VÒƂ@Ābš¼WôÈ@V¼ôóŤKÈÑU»šwVǫżnWÒÈx™¼‚lŦ£ĊōŤx²¯@ƒÆƒU¯šçÆ@„¤°£„é°k°lšůÈó@¯ŤÇÈĉƒkkÿó¥ÝXķљÜ@ÒóŚÝ¯°ĉówÇ±¦ÅJUÒĉĀķw¯°mĖ¯„±akxÝÅnƒ™»lуK@¯lU™¯UVѯóĊ¯mōğVǓƅƒÞƒWÝÈÛ@ƿô¯ÜġzÅþ¯ólmôʇġĊÅUͿřŏȁˋŁóÇˡōƧƒÇb™w°Ķôk¦šÒƒnUþġҙÔkǔķèó@ƒ²@ŘōńĵyƒzġaݤÅIƒ¤Ƀť¦ğѯ¤ķbóš¯ó±ŽU²°¤ČÜVnÈƂ„ŚŎ°ôĢ„þÆzèVĀǎĀǘƒXŹÑ¯¤ówċķk¦šłUÒġzÇ@ƒ™ÆÝx@²Þ@Ƥ„Uô¦Uš°x„U'], + 'encodeOffsets': [[ + 94737, + 30809 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5421', + 'properties': { + 'name': '昌都地区', + 'cp': [ + 97.0203, + 30.7068 + ], + 'childNum': 11 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@™ŽVĖm°ĉš„ÈU°ķ„ƒÜ¯@@ô„UÒġškš‚ÆkÈlŽÒ@Èl°È„VÆóŦƂœ¼‚a„ÅĢ™Ʉwnōw@¥Ŏ¦°ŹÞmVš°wnÿƒw„wÝw@¯šmÞŗ°wĠ˜ĸkÞğlĔ²¦°@„ĕĸwVóšal@nĢÇĊn°@¦šŽźUXçǔůĸVš™ÆK„ÈÝĠš²ÅĔô@lšŽÈ_m˜„zǖl„šaU¼ôwV°¯¦‚ĬÈa„l@Čǎ„¼™„nŽ˜I„xô»ɜ@ƨ¥ɆŁ„ŃǪȁkƛƨȍʊȡóĭ›@—ÈÇVƒůރĸƅmēƨť™ÅÈʉVǵ°ġVŭÅɧ°ÿnɛš£mƒķ²ŃóÑUĉ°mÇ»¯@mxUĀ¯èţ°ȁÝç„ġU¯ÆÇţÈ@°Çô™Ű¯k¯lƒê¯¤ƒ£Å@™èV°Å„@„±°ţwĉŎť¤kš»ÇwXÑŻmUǬ™xV¼ÇÒţLóôU»Ç@X󙻂a@ÿŁUÑÝ°ķK¯ĢğÒV„ĸJÇĬ„¼môţŎĊŎU¼Æ„„Ė™šnÞÇÆówŹ¦ġƒkÝóaƒ¦ţ@ݤn¦ÇbÇþ¯nXÒɳÒÅ»¯xVmb™b¯™Ý°UWéÛaƒxʉÛmƒ¯ÝI™‚UÇKk°ƒVƧīķ„U°ȭĀ@„ċ°nšm¤Ýnô¼ƒƒÞ»Ċ„ʊmlÔĵǠÆôVÒÞbl¤ÈIĸþlwƒœ»ĶŽ„a¯ī@њǰanœƾ°'], + 'encodeOffsets': [[ + 97302, + 31917 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5422', + 'properties': { + 'name': '山南地区', + 'cp': [ + 92.2083, + 28.3392 + ], + 'childNum': 12 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@°ÞUĖ°¦²ĊôÇÜLǖĀɜŽȘŰÞLĸźêÞ@UÜUŤ°ɞ¯Ü„°WŦĀmŎ„¦ĢyVљŁl¥Čĸôx°£źÒ„Wȗ‚ÿȍUÿ‚çÅyƒýóġō¯ƒřŁmÇÛUċŽ¯£V±²°ôô™ĸa°£ĠÒŦ¥ɄŽ„£ÆJÞ£Ģb„yĶzŎŃ@ŗ„±ô@ĸçlǓšÓĢÑVý„m™Ñl¥ĵó‚¯̻̥™ƛǫÝһÇƧĉyţ¼ҍēVĶĉŎ°ĸmšÞVÝĸ™ÒÛaċ„ó™ŹĖƒèÈÈl¼k¤ÝX@`ސŏ¼Æō¼ÇçĉKUÝÝ£ğ¤@¦ġl¯Òġĉ¯óš™móxÝÞğVšƴċK@—b@ܘ„UÒ¯ÈĢÜ@²˜x—Ŏl¤'], + 'encodeOffsets': [[ + 92363, + 29672 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5401', + 'properties': { + 'name': '拉萨市', + 'cp': [ + 91.1865, + 30.1465 + ], + 'childNum': 8 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@Ŏ²l@°‚XĢƐlôŤLX¦°¤ĊnČ¼ÇĊŎͪÞÈ܃„x„U°Ýޙ޼™¼lšČ™˜ŽÞK„Ǔ°óU¯Ģ±ǔÔV±ŤóX¯ÇmÑ˜wXī°@°ĕĸÞKÆĖĢÇ°bȂ™ÇŁUƒV¯wV™ó¥ƒVÅ£Ý@@±ÞwšÅ‚„È@ƒ¥nōťÿ¯Xۃɝ°ţ¯ÛVVÝ@ŹéķÝKȗůɛǕÿÛKóÈǫšǫUţèmҚn¯Æ°ÈU‚°b„š™¼UĢV°°V'], + 'encodeOffsets': [[ + 92059, + 30696 + ]] + } + } + ], + 'UTF8Encoding': true + }; +});define('echarts/util/mapData/geoJson/yun_nan_geo', [], function () { + return { + 'type': 'FeatureCollection', + 'features': [ + { + 'type': 'Feature', + 'id': '5308', + 'properties': { + 'name': '普洱市', + 'cp': [ + 100.7446, + 23.4229 + ], + 'childNum': 10 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@U‚ô²‚a@Ž²²Ķ¥œV°šĶ²bl¤kVxl‚@œ°‚Ś²@˜„„y„@ô¦¯„@xƒxVxU„VššbVšÜm¼Ŏ„„ĢmºXXWÆ@ĀœšmŽmXU°ÅÒm¼Þx°w„@°‚XêĠ°»nV°U„l@k„@V±ôī@£‚ƒČŃÆ£„KÞý@¥‚k@y„a@—nWV„UVƒšwƒmƒ£Jƒknm@wmkn‚X„˜šX„¥mUUlUnbš¯°ŽnkƒVInlIUw°n™mk@@mlanXlanmšk@wVWUw™_@éĠašnmUaÜ£ƒmXƒ¥¯@@„óUmݯ¯ÞÝlKnxô£š»„»Ġ„J°aV„UÝÿV¥ÛbƒI@wmŽón¯yÛL@ƒWkŎmș`IWa¯K@¯mUnmaXm™bmak„¯ŽƒĢ™ÒÝm¯mV¯KÇb¯KۜWW™X@a™V™knċLUWV™kXóW@k™a@ƒób¯Uƒwmb¥UUlaU¥U£maķšƒKXkƒmÝ@kwmѯk±ċbUUVakaġ¦ƒƒkL@`ƒœ™a¯xƒm™Åƒ™LUWƒ@ċnŎUV°LkL@b°°@¤š²ƒ‚šnôôk„l°kè›ÒÈzV¤È„WôôƒnV@„ƒ¦@¼Ux'], + 'encodeOffsets': [[ + 101903, + 23637 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5325', + 'properties': { + 'name': '红河哈尼族彝族自治州', + 'cp': [ + 103.0408, + 23.6041 + ], + 'childNum': 13 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@°°nÞôV@ƒ°@„¦WŽ„nÛ¤Vbmn™ğb@êš`VxUX@xš„ƏÞUnn˜WÞĸĢƒšÈ@ŽÇè@zÛÜWšÅêlš²„˜KnV¯ĖĊx@bk@@„°JÆ£Èbl„nnm°nlUkVUUwVm„Kn„‚nVŽÞxVLX¥laX@@xl@VzȎVmšk@b°šÈĸmŽV¦`W„XšƒbUb‚bX¼°x@ašVVkn@lþnXUlVxŤÅ„y‚IUƒka‚IŎĊ@lXx@b„z@‚ô„ƒ¥„_V@l‚n@„ôy@al_l`nmƒÈ»@kƒmXwWK™U¯»™a™Å@wƒmUÝKUa™UUƒ™wWƒ@w²»@kƃV£—mm£VKkÑV@@»nwƒ¥™ƒ@kƙnllIVlnLVakalknJšWmnaUaVÑVVލn¥m@ƒ„¯Uÿl™@™™™VçƒaXaV¯UyVLVkš@nJlšXLlŽkxlbla²Òl@nVJVkšx„KlkUaVķÝÑU@Åm¯@±™Uó°ğńķĠmU™Ñ@ǯ¯Å¼@nml@°¯¯`@w™£@¯Çƒk@ƒ»nmċ¯U»™I™Ž¯LÇĶÛn@bó°™U›šwmŽ¯„™Umǯa„™ƒ™ƒI@ykIƒVUŽ¯bƒIğŽƒ¼™¼ó¤mwkLÝÞ'], + 'encodeOffsets': [[ + 104243, + 23429 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5326', + 'properties': { + 'name': '文山壮族苗族自治州', + 'cp': [ + 104.8865, + 23.5712 + ], + 'childNum': 8 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@šwô„š@²¯maUmôUÆxš@Xš˜bÞInlVUVw„JVaU„K°¥„xmÞXnlKlnna°@ĊČ„ÆwUmnkl@°ƒƒ£nyn@VV@Vak™ƒ@@kÞ݄bmx°Vnw°klÞInĖÞVlKl™@Xa°„„KlV„U@šJnx‚U@ÈĢbUKlm@ak_‚wšanWUk°ƒl»„k@Wk@lwU_ƒ@UalóU¥ƒÇnƒ™kJWƒ@mVXx±bƒK@nV±a@™Åa™£ÝK²ƒWknamKknǏk¯ƒaV™™V¯ĀƒU™„™Ò¥ƒI@mm¯¯xōW@@`k@ó»ƒUU¯lm£ÅWlĵ„w@mmwÅmWU@y±U—xmwU„¯Uƒ¥Ý¥¯£m@kŽÇVUV°VbklƒL™wUlUIm‚k@±ÑkbkalwkWKk™mI™@UlUKVzU°Wb„bU蚚@škšVĀƒ°@„n‚m¦ÝŽUUUÒVbmbXn™‚mIkllbUbmKUkkJmkŚ@lš„„¦mx@¼U@lÒULn¤˜nU¤Å„@l±¼@xX„šxV„šVVbÞLVŽ„n@xšÆšb°¼šV'], + 'encodeOffsets': [[ + 106504, + 25037 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5303', + 'properties': { + 'name': '曲靖市', + 'cp': [ + 103.9417, + 25.7025 + ], + 'childNum': 9 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ȦlKÞĕUV¯Um¯„ÇVUnVVUƒĉn™ĊÇƾLn°°È„JÆw„@lbÞa„¦V„XJ°¯W¯„aÞJVkUša„ƒ@lKnÅmWUk¯a¯»@m±@уkkbWWX_WÓU»_l™kÑm@U»m@l@IWċn¯l@VanV„UV™UVwVx„KȄVmUē‚@„ƒn@VÝÆL„w„VVwnVlmkUVÑÇ°ka@k™ÿÝaÞUl£™›—ċĕX±±ĉƒa@UnVnalónk@wl™UVmkÝJ—aW™™@ÅwóVVnnb±°™@óƒ™xXLWx„n@lǼn„m‚k_k`@bózƒ‚m@kU@ƒ`„¦óƒ@nWš@ÜÅXWw@ƒyƒb¦@ÒlnUb@x™lܐk‚@²Ç@Uƒ¯bmy@kV@bƒb„¦U`lLVx@b—Ll¼Þ¤@„°VVބU@WސUb›J@nnš@lnnm„šxUŽƒUUbƒK@šÇwklkUƒVWakn@ŽlbU@@„ULVxkKUn‚°¯Ò@¼™„kmƒ¦m@kl™Ȱ@lU„l¦„@Vl°wšnnþĊUÆbUx™b„ŽV„šĖU°„a‚nnašV„al@@b'], + 'encodeOffsets': [[ + 106099, + 27653 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5323', + 'properties': { + 'name': '楚雄彝族自治州', + 'cp': [ + 101.6016, + 25.3619 + ], + 'childNum': 10 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@mҁXU`Wnšš™@Xl±¦š„Uxnbl°knmKUx„„ƒxVôUx°¼ôÒȄ°JlnÞKĠœW°¦ƒ„Vx²JVwš_°¥@UV@@wnymknK¯I@‚™²b°ƒš£V¥šwU‚V„¤nLškÆJÈwôô°„l»Č¯ƒġVƒUU@@ƒ°ƒƒÝXl@U»°Å„@U„¯@w±¯VmUUlm@m™„ÑnIVyUwmak£Vwm±—@Çw@nƒ@UxkwlÇnL‚mkř@±Žk™ka@kóJV¯Ç»U£lw¯™Xalbl¥¯UXƒ@a˜™UaÈL@ÇVIVƒkaU¯mm™akLWkUJ¯Umxnšƒ@ƒkUx¯xƒ„mWÅīÝkkbƒŤƒbkxWmXwWk¯wƒKkƒƒLŤċń„@¤óĬU²ƒ@@lƒk¯VmU¯¼@xV@k°l°kbUš°nm‚VnUš@°„š„UVèރÆbUÒÞnU¦›V—¼lô„@Vl'], + 'encodeOffsets': [[ + 103433, + 26196 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5329', + 'properties': { + 'name': '大理白族自治州', + 'cp': [ + 99.9536, + 25.6805 + ], + 'childNum': 12 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@lbœKVIUa˜@²m@b™xôÒÜxXLmbnšl@š„„K°šš¼k„Uô‚xôlV¦nJ„Uš™Ænšm„@šx„ÆwšbXšÆôô„LUVwôK@wlmšaVwœ@WknmƒIUmlnJla@_™@kÝmKUašÑm¯Xw°aUaVl»²JV„bÆJkôĶĀ²VVk„mšbVwUó„wƒƒVwnLlmk¯maVw™ƒ²¥Wkš@™™XmV_‚WnÑUkƒ@k󘻜UV¥ÝmVÑÅa݄UçƒVƒ™@¯V™Umn¯mV™lak¯l¯U@@wğŽW鯁ƒ@¯xÝw¯š¯Jċa¯U¥mLU¤„bÞȤƒbÇLWUwmIUVW¼kbš`U„Vb¯L±ĊÛkƒÿÝKkwƒKţê™UĉþƒÈƒV¯ÞVbUŽ°KVšk²Ý‚mI—ƒmV@kƒm™UkšVxm„¯KXÈķJU¦V°ULWxšL@môƒšb@bkx±LnVUŽVLnkÜWnwlLŃmW@kkJU_ƒV„šWĊ„Þ'], + 'encodeOffsets': [[ + 101408, + 26770 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5309', + 'properties': { + 'name': '临沧市', + 'cp': [ + 99.613, + 24.0546 + ], + 'childNum': 8 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@‚xĢ„l`²X°ŽV„šx@x°Þ°KXašğUњW‚bnIl`X²°b„xl°„„šV@xVxk¦mb„l@xšXV‚ÆzX¤™Æ˜k°„kx@lźêlaX»VUnJVx‚XÈK„aÝȣƒaV£nKV¦°‚Čb°I°™n»ÆÑV¯nWn›™@ÿXÅWWn¹ƒġōƒn»‚ÛU™™aU™VƒUw„w@w°ƒó¥ƒ@ƒz—ƒ±@ř›¯@kUwlk£±aĵŽ¯™›Uĵ¦±±@bó±VÝ@ó¤ƒw¯I@mńóm±XŽ¯IólƒK@š°Ullb™zkKlln@@ԙºƒUmVk²ôҙx™ŎUVóLƒb„ŽmÈnŽmbnl‚a„x@z„@Ǝ„¦kš'], + 'encodeOffsets': [[ + 101251, + 24734 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5334', + 'properties': { + 'name': '迪庆藏族自治州', + 'cp': [ + 99.4592, + 27.9327 + ], + 'childNum': 3 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@W™Xwƒ™@akk@y›—k°īX¥›Uóķ¯w@n»UaVaUۃ¯ƒmV¼k‚™Þċô@n¯xÛÒm„V‚¯Ô@xƒ‚@šk™wm™Åa@ƒUa‚݁¯VŃyV„a@ÿšn»ÝVmank™mmÞÅôƒ@n£±›ğzÇmU¦™Vm„nÜmbn@°nV@xmzÅ@mºV¦k°ln¤š¼õô„n@xkƃIUxUš@Ťƒ¦VšmVkmkXW¤XzVx@ƚx™¼ƒÞ¯b@lVš™ĸގV„m¼XŽm¦V„ŽÞ@Ǝš¹Vón¥ÆKn„‚KX¯x@èĊȱłXšaÆxnlV@UÛlȻkğV¥„m²ljmÅÞĕƒƛm°„ÆmX¤mznƃŽV¦ÞVVb°bnÞWbnŽ°l@V„È@„‚VĵĊ±@ó„InxÆw„¥@£Þ›W¯ĸ£UƒUK‚ƒk±akkkbmWmÈķ„aÆÇU—ȃÆW@wmknmU¯'], + 'encodeOffsets': [[ + 102702, + 28401 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5306', + 'properties': { + 'name': '昭通市', + 'cp': [ + 104.0955, + 27.6031 + ], + 'childNum': 11 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@mƒnK@wmƒUř¥mšóXǓŏmX@Ž—VƒmL@xţ™nk@mlUšŻÒğŋ@ƒL@mmLkm™š@b™XŎW¼ka¯lÇŹ¯aÇ»™ÝÝ_@m„@@a™@UklwUm@ak@ƒb™UmbmƒbV¯™ĕUƒƒšaVwÅaĉVmý™m¯xUkƒ@k¥VƒUXƒ¤VÈm`@„—ńÇÜ@Ākn‚ĔkƞÆĠ„™Þš‚U„VôƆÞI@ŽUxƦn„l@ĊĊnxUÒ°¦Vb¯WUnWŽIml@xn„Ubô¤‚¼ÈxlI„»šKVš„@ÈԂJkšUĖ±ÆVb@nœ„VÜVUVƒšL„wĠl„kn„Ġ@nx°¥Æ„²mUwƒ@m™mÅUl¯UњÑUm„Lll„Il±š@VkwƒW@w°@U»™kUóI°ƒ„»ĢтL„™š`nUĠ²lm„bôV@n„JUxƦX¦l@š‚ŎUƒV„@lV„KVřV£UaÞU™ƒnW@¯VU@ó™'], + 'encodeOffsets': [[ + 107787, + 28244 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5301', + 'properties': { + 'name': '昆明市', + 'cp': [ + 102.9199, + 25.4663 + ], + 'childNum': 11 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@n@Vk‚VUn²°@xƒ°Vƒ@¯ÆV¼k@WŽ„Þ¯„@„@‚VVU„„Ģċ°k¼V„Ċxœ¤Ōœx°mVkƒÑȏšL‚°„x°Xœ°VmĊLVxUĖ°bX¦VW@kšȯlkn@„¥lnšƒ@»°Ñ¯VmlLUwVK@ƒV@ka@lmXb„UlVlkÈx@™„LVa„VV™wnƒmm@km™@mœIVaݏ@XƒVUݯU@ƒÝ£k»˜K@aUwkKV_ƒ¥„a@alU@nz°aV„È@@±lÛšk@wVakm@т¥„a„z‚@XxÆW@ÛX™@m@ƒy@aWw@kōĉJlbV„JƒzţÆUwVkmWkým@Ul™U@b¯wVºƒU™VUêšĠƒXUaUbVĊUŽWXUmkK™™WnUUU™V™ƒƒVV™Ý@kk±‚™¯ƒƒLkƒš±WkXlVklƒ@ƒwXbmLƒ›VUIVmk@Ubma@kkaVKUƒ™kmlXLWn™J¯ÒĊ°@zkºlLUŤn@@n›ô@lƁnmKkÈlxVw„@@mÈx˜@n²Uxl¤nbVxUzmJƒÒnš'], + 'encodeOffsets': [[ + 104828, + 25999 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5307', + 'properties': { + 'name': '丽江市', + 'cp': [ + 100.448, + 26.955 + ], + 'childNum': 5 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@l@™„@w°ÓUnƒÜÑ°w@mČóšÝlU»n°„„VÜUbVbm¼@Ž°xôĸœVW¦¯Ĭlœ˜@zll@b„šWxXš‚a„X@ÆĠÆaXwl@XaƦn¼˜Jn@mnKW¯È»V¯°ak™VanXVwl@VyUĕVU„bÈīlaUk°ƒk¯lƒ²V˜Ukƛô@ƒ„I@mVwĊa„™ƒVaka„™ÆbUŽVLšaXIWKUw™ƒ„aWÑÅKUaVk°ƒ@Uw„ƒ¯¥›XğÝLkm¯Iǃóѯ»™aƒnUl±UĵÿlóÅIƒaU‚±Ik¼UŽVb¯bWxn°™ÒVbnLlޚ@@`kbmIkŽVn„JmnXl›@Ux™bkn@xóLUxVŽƒKóóŐW™™aÅxƒŽ™wƒ@™nÅm™šƒV™„ƒôX„ƒLlVU¤ƒb¦m¼™Ž@ĀƒbU‚„zUƂ°ÞVb@„Æbnššx'], + 'encodeOffsets': [[ + 101937, + 28227 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5328', + 'properties': { + 'name': '西双版纳傣族自治州', + 'cp': [ + 100.8984, + 21.8628 + ], + 'childNum': 3 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@l²°ŽnÒlxÞ@„nWl„Lĸ™nbV¤V¦kbVV‚¦na„x°Vôa@„šb@lôXlWUšVXČKlmššU@bšWXXܛ°LÈa°LnU°‚ÞnšÑ„ġ°lƒnbšaƒ¯¯KWƒœó@kmK@UšĉV@k°„VV¹„a@y‚_ċl_nÓlL@anI@ƒóWl£VU—ƒl™kĕl™šKVw„U@™kVƒam¯ÅL@bƒ‚Ýk@Vn„UbÇbÝwÅ@ċ¥¯lk‚¼ÅŽ™Ò°b@¦nlUn@ŽÇV„mƁbWôU@ÝÅōm™¯ƒaU™™mk™WWw—@±ƒ™n¯U™è™a™Lƒ¯mƒL™škwƒl@°mnÈÒ¯šów@V™xƒĀU¤°Įƒ°Xl'], + 'encodeOffsets': [[ + 102376, + 22579 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5305', + 'properties': { + 'name': '保山市', + 'cp': [ + 99.0637, + 24.9884 + ], + 'childNum': 5 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@X°„Il‚@¦ƒŽÈ¼m¼ÞaÞÅl„ÈxV¼šlVôÈÆlLޣȺlkUƒ‚ƒUw„¯UĕVwĊ@n¦mlnVĸIWÇ°LnƒUwl™šV„n@lnU˜„nJށl±U™¯LVUa°Ý„U„ÇĊýšVŤé„LlxÞL„ĀÜl²ĉ°KUaVƒ™_Źé@klw¯ƒlÅ—šW£ÅyU™W@wƒknal¥Uw@w™Uƒƒk¯ƒw¯aW±k_mJa™XVҙĠWb¯L¯Ý@w™wUƒ¯±Wk_ġƒwƒwōKmb@¤„bk°lĖƒô„UJƒšVnÅlťUš¯°VbnbWxX„m„ÞššWUĀ™L™yWzÛKmbUxVKkn݃kŽVšĀċ¤Ux„@Ž¯Žm@ƒ¦'], + 'encodeOffsets': [[ + 100440, + 25943 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5304', + 'properties': { + 'name': '玉溪市', + 'cp': [ + 101.9312, + 23.8898 + ], + 'childNum': 9 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@l„„L°xXlWxXnlw„a„ţlaÞlÆĬnX„ƒ°wVw„l„@m™nw°VVIXllKšbnnV°lbU„UJ@ÈÇKVb—š@bW„°Vk¦kaWb°škxV¤È¼U°ôI@llblš²š@‚@œó@mm@VţkKl¹@yĉ¯°ÑšIXmWKnkšlV„ULlb@lnbVal@UnVJœU‚„nKWa„x„@lkkUlW²X„™‚l„K°„šl²@lšÞUŽ„U‚„UšVšVVXmššlLVnXWVUĉVaVb„W™ğVéšU„VU¹W»aVa„aW™Xƒ‚_U¥nÇķ¯™@a™lUnǍUyk@@wW@kbW¦UKÝwUmmƒƒLUnVxUVVlk¯mmnƒmkÇaŤ¯I@ƒl@@aĉw°ĕmU—L±ƒk™ÆéX™ÜÛ@yÈç@™Çġ„Ýķ—XmmÝVՙƒ™lmnkbmWkb@nl@nŽmš¯VxkJmUJ„ml¯™°makVVnVƒ¦™Wƒ—Wmnl@xmn„l‚I„¤„n™xU„ƒVUŽmX@˜ƒb@zl@¦Ýþ'], + 'encodeOffsets': [[ + 103703, + 24874 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5333', + 'properties': { + 'name': '怒江傈僳族自治州', + 'cp': [ + 99.1516, + 26.5594 + ], + 'childNum': 4 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@WyX£lWlnnUU™„¥@ţV™Vw„JlÅ@wƒmö󙻂£kml¯U¥n¹Æ@ny@wmU@¯mnamÛnƒšUV¥ÈnĠy²œm¤„@ÆónݚnmlnbÞU‚¥„aV£kU„KWƒ„óšƒmIU¥ókwVólƒ™»¯™ƒL™ƒk@m™naWKÛwóњw@a±n—@VbUJ›LkaƒÝXĉƒ™„UV`lI@lnXÆƑkKmxÛXmlUKVmU²Klw@a™aó„@n™KXwVKU¯V¥mUnkm¥ĉ@UxVĖƒ°Vx„V„klmޙkKWĀkVWšnl°Lnm@°ŽUxlV@nk¦™JVÈ°ŽVÒ@nX°@ÆlUômlnôƒ²nxmłnVV„¯x@Èm°XblVUšl°@xkXU¤WXX‚W„Xƃ„mkÅJmށw±bƒxUīkKmÅVUĖÝèV„kx@š›lX„lnk¤ƒLkŽ‚Ėk¦‚xUššL°‚¯Ė@LnK@b°xVI„¥Ua°Ñ@»nm@¹‚KŎÞÈWln²n'], + 'encodeOffsets': [[ + 101071, + 28891 + ]] + } + }, + { + 'type': 'Feature', + 'id': '5331', + 'properties': { + 'name': '德宏傣族景颇族自治州', + 'cp': [ + 98.1299, + 24.5874 + ], + 'childNum': 5 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@„¥n@°@ƒVwČ£™ÿUlÞ„lmULVwnaÜLXyšzšKVÿ™XݙnƒWƒXwmaUa°¯V™ŦŽÆkUm„™VIƒ„ókĕl¯ƒa@£nama™@¯m¯œó@óyţbġkÅm±ÛammVkƒLwU`Wk@VƒkUmŃlUUKmbkkUVUwƒ¦óŽ°¼šbn°ô¦lºƒz@xšŽ¯„™@UŽ°nƒšU¤ţU„°VƆ@ÈmlnzÞl°¦Æa„xUxƒLkxWƒn@‚š²ŰšW„™‚@°ÈXl°Llx'], + 'encodeOffsets': [[ + 100440, + 25943 + ]] + } + } + ], + 'UTF8Encoding': true + }; +});define('echarts/util/mapData/geoJson/zhe_jiang_geo', [], function () { + return { + 'type': 'FeatureCollection', + 'features': [ + { + 'type': 'Feature', + 'id': '3311', + 'properties': { + 'name': '丽水市', + 'cp': [ + 119.5642, + 28.1854 + ], + 'childNum': 9 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@@V‚bVl@Xn‚UXƒKVŽ@¦nxlUXV‚n„KVmnL‚UV@bn¤lLXK˜²„`nnlJXIVJ‚I„Vnn°KnnVll@VLXWV@UkVaVK„zV@„ƒšVVaUK@U»VUl@@WnUUƒ@wVLn@Vwl@XW°LVbn@VU‚@X„l`@XnKVbkl@XVJlUnlV„„xlL@lnXl„@VšUnV°°„@a„UVLXblWVXn@VVUV@Lš¤VLV„U‚VbnalLUUVX_laVa„WVzXKV@@a@KUmImmXama@kU@yVIUK‚aVa@kXK@aWU@VIUmW@kkVm„Uš@VwUa@K@k@Uƒ`@kUKVk@UV@VaUm²Vy@klUUWUkVmUa@_ƒKVaXa›XmƒU@mUlWkaUXƒ@mmkL@w™JƒnVVÅbWKXa™@@I@aƒJUUÇ@V„UL™W@akLmb@K@a™XXw@mƒVmUVkUy@£@aU@@VkUWm@kUKƒXUWU_mW@wkkmJUUkLWWUXƒW@IkJ@k@mW_kӃ_Ul™Lƒm@I@aUa¯m@kƒa¯LUJƒ@mVVxUb™a@LUKkXƒbm@Uak@@a@Um`ƒIUbUJ@nUVW@@LnVV@lšUbVlUX@`š@blXklW„Ušm„Xlm¦U@@V¯bml@š@nUb@llnn@VbX@lV@ŽUVULmU@JVn„bVbkb™VWxU@@nUVk@'], + 'encodeOffsets': [[ + 121546, + 28992 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3301', + 'properties': { + 'name': '杭州市', + 'cp': [ + 119.5313, + 29.8773 + ], + 'childNum': 6 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@X@l„°KXXlW„b@²„`šššb‚I„šX`l@„@bWl@n@VnLUV@V„@°¦@šl@XVlU@š@xVbUb@Vkb@‚@XVJVz™J@Lޚ@VmLUxUJ@LU„Vx‚b„xXUl@VaÈw„b‚aÞa@Vl@XUVx@V@V„LlbnV„al@lb„Vnn‚LnKnL@VlbVJXalIšb@KUU@mVInJ˜„U„Vl@xUšVLnUš@UÞaV@lkV@UanK„L@UlKVUnbÆmn@@nUlVnVJl@@UXU„L@WVIVJVxVLXV@IÜKnbn@V¥V@@I@ƒƒ„y°b@UUwnk°ÆƨVlUšçXm›£aƒÇ™IkVƒ@WV@@aWIUWUIkb@WW@UnƒK@UU@kaWVkƒVIVVnU@UWVUV@VmVkKkWIkVWaULU`UImJUImm—U@ƒƒwmwUV™IUWVkUamaU@mV—kƒb@KVU@aVU@anKULVJ‚U@kÛU™JUV›kkƒVakU@ƒaVwkW@UWkXmWaULUaUK@XƒJUUmƒVU@UVƒUkJ@ImwmKU@k„@lU„W@@akKm„kamIkWl_UwVm@UkaVUUaƒ@UamakbWlkL@aUalU@mkL@U@U™lmK@XkKm@Ýakb@xƒnXbƒ`ƒnUUU@›™U@™wU@@ƒmKkkƒV¯U@lULUbVbUb@V‚a@L™ºÝb@bLmK™x@VUL@bk@mxULWl'], + 'encodeOffsets': [[ + 121185, + 30184 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3303', + 'properties': { + 'name': '温州市', + 'cp': [ + 120.498, + 27.8119 + ], + 'childNum': 9 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@ll@xnXV`VX„WVL@lXnlV@UV@@b@¤VzUlnV„U@nWxšW@b@LnalK@bšXVKUƒÈ@VV„I@b@Jš@WbXLÆaUU„mšI@xlKnn„@VWlbkXV‚@n„VWnœ‚WbUb„L@`VbUnVlVXkV@lUz±‚VnUbU@@VUlVL@l„_@V@l@LVbV@XLV`VÈlxn@lU@aœaVV‚k„@XJ@nl@@LU`°LVb„L°a@a„UVy@anI@a„a‚nV@²wÜJX@VšVV°k„na@WVk„aWwU@m@™ƒkƒaUĕ™ÝšÝŤnÈa„aóI›»@±X™WkUķ@kV±kw™ƒUkWw„™UƒÝ»ÛkɳlImaUaWóXÿǬk‚UnWVmmk™KţnŏÞğl™„UlUx@XWb„V@JkXƒ°mb@VULVxUVk@@LWWk@WIkšƒUkJmUkVmI@yƒ@Ua™kLm‚U@mUUUkaVk™@mK@UlUU@UmKmbUUUJ@n@KVLUL@VkJWXX`mnULWlkL@JVLVb@°kxkU@LVŽ™V@„VLV`UL@VUX'], + 'encodeOffsets': [[ + 122502, + 28334 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3302', + 'properties': { + 'name': '宁波市', + 'cp': [ + 121.5967, + 29.6466 + ], + 'childNum': 6 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@Ċ¦ĸĀ°‚nXÞVšKškƨƑźÿ°»n„@wô¥ÜbœU°ÆXÞWóçĉݱIUƒÈ¥@U°wÆ»²mm_@aXƒVKÞVlk@akk›̅@£X»VwƏXWa¯aȗb™KƽۃĊ™xƒLóŽk@ƒƒƒ@¯nƒKUL@xkL›ÑkWULUUmJUXVŽU@mŽUX¯@V`mbXbV@@nn¤WXšx@škJ@nVVUVl²UbÝVUVk@Wx@V@„ƒVXzmlaƒL@VlLU`„XUVVVUnl@VbnJlnUVVnƒlUKkbmnn„VxlJnxmbU@UL@KUV™X@xmb@lk@mnVVUš™è'], + 'encodeOffsets': [[ + 123784, + 30977 + ]] + } + }, + { + 'type': 'Feature', + 'id': '3309', + 'properties': { + 'name': '舟山市', + 'cp': [ + 122.2559, + 30.2234 + ], + 'childNum': 3 + }, + 'geometry': { + 'type': 'Polygon', + 'coordinates': ['@@l΢ƒʠþÆVĢLĊƒǬXĊ܄XôV„ÑÆw„ƒlšƏÈóVĭVǓ@ƒĉwɛkmK@ĉXīWaĉUĵÝmƒ¯ĉƒwĉ±±nż¯x@VǦV„²JĊÞôèÝXÅW¯›VÛaó¦@xƒŽmŽ¯¼ŹĀ'], + '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': true + }; +});define('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 (require) { + var ChartBase = require('./base'); + var GaugePointerShape = require('../util/shape/GaugePointer'); + var TextShape = require('zrender/shape/Text'); + var LineShape = require('zrender/shape/Line'); + var RectangleShape = require('zrender/shape/Rectangle'); + var CircleShape = require('zrender/shape/Circle'); + var SectorShape = require('zrender/shape/Sector'); + var ecConfig = require('../config'); + ecConfig.gauge = { + zlevel: 0, + z: 2, + center: [ + '50%', + '50%' + ], + clickable: true, + legendHoverLink: true, + radius: '75%', + startAngle: 225, + endAngle: -45, + min: 0, + max: 100, + splitNumber: 10, + axisLine: { + show: true, + lineStyle: { + color: [ + [ + 0.2, + '#228b22' + ], + [ + 0.8, + '#48b' + ], + [ + 1, + '#ff4500' + ] + ], + width: 30 + } + }, + axisTick: { + show: true, + splitNumber: 5, + length: 8, + lineStyle: { + color: '#eee', + width: 1, + type: 'solid' + } + }, + axisLabel: { + show: true, + textStyle: { color: 'auto' } + }, + splitLine: { + show: true, + length: 30, + lineStyle: { + color: '#eee', + width: 2, + type: 'solid' + } + }, + pointer: { + show: true, + length: '80%', + width: 8, + color: 'auto' + }, + title: { + show: true, + offsetCenter: [ + 0, + '-40%' + ], + textStyle: { + color: '#333', + fontSize: 15 + } + }, + detail: { + show: true, + backgroundColor: 'rgba(0,0,0,0)', + borderWidth: 0, + borderColor: '#ccc', + width: 100, + height: 40, + offsetCenter: [ + 0, + '40%' + ], + textStyle: { + color: 'auto', + fontSize: 30 + } + } + }; + var ecData = require('../util/ecData'); + var accMath = require('../util/accMath'); + var zrUtil = require('zrender/tool/util'); + function Gauge(ecTheme, messageCenter, zr, option, myChart) { + ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); + this.refresh(option); + } + Gauge.prototype = { + type: ecConfig.CHART_TYPE_GAUGE, + _buildShape: function () { + var series = this.series; + this._paramsMap = {}; + this.selectedMap = {}; + for (var i = 0, l = series.length; i < l; i++) { + if (series[i].type === ecConfig.CHART_TYPE_GAUGE) { + this.selectedMap[series[i].name] = true; + series[i] = this.reformOption(series[i]); + this.legendHoverLink = series[i].legendHoverLink || this.legendHoverLink; + this._buildSingleGauge(i); + this.buildMark(i); + } + } + this.addShapeList(); + }, + _buildSingleGauge: function (seriesIndex) { + var serie = this.series[seriesIndex]; + this._paramsMap[seriesIndex] = { + center: this.parseCenter(this.zr, serie.center), + radius: this.parseRadius(this.zr, serie.radius), + startAngle: serie.startAngle.toFixed(2) - 0, + endAngle: serie.endAngle.toFixed(2) - 0 + }; + this._paramsMap[seriesIndex].totalAngle = this._paramsMap[seriesIndex].startAngle - this._paramsMap[seriesIndex].endAngle; + this._colorMap(seriesIndex); + this._buildAxisLine(seriesIndex); + this._buildSplitLine(seriesIndex); + this._buildAxisTick(seriesIndex); + this._buildAxisLabel(seriesIndex); + this._buildPointer(seriesIndex); + this._buildTitle(seriesIndex); + this._buildDetail(seriesIndex); + }, + _buildAxisLine: function (seriesIndex) { + var serie = this.series[seriesIndex]; + if (!serie.axisLine.show) { + return; + } + var min = serie.min; + var total = serie.max - min; + var params = this._paramsMap[seriesIndex]; + var center = params.center; + var startAngle = params.startAngle; + var totalAngle = params.totalAngle; + var colorArray = params.colorArray; + var lineStyle = serie.axisLine.lineStyle; + var lineWidth = this.parsePercent(lineStyle.width, params.radius[1]); + var r = params.radius[1]; + var r0 = r - lineWidth; + var sectorShape; + var lastAngle = startAngle; + var newAngle; + for (var i = 0, l = colorArray.length; i < l; i++) { + newAngle = startAngle - totalAngle * (colorArray[i][0] - min) / total; + sectorShape = this._getSector(center, r0, r, newAngle, lastAngle, colorArray[i][1], lineStyle, serie.zlevel, serie.z); + lastAngle = newAngle; + sectorShape._animationAdd = 'r'; + ecData.set(sectorShape, 'seriesIndex', seriesIndex); + ecData.set(sectorShape, 'dataIndex', i); + this.shapeList.push(sectorShape); + } + }, + _buildSplitLine: function (seriesIndex) { + var serie = this.series[seriesIndex]; + if (!serie.splitLine.show) { + return; + } + var params = this._paramsMap[seriesIndex]; + var splitNumber = serie.splitNumber; + var min = serie.min; + var total = serie.max - min; + var splitLine = serie.splitLine; + var length = this.parsePercent(splitLine.length, params.radius[1]); + var lineStyle = splitLine.lineStyle; + var color = lineStyle.color; + var center = params.center; + var startAngle = params.startAngle * Math.PI / 180; + var totalAngle = params.totalAngle * Math.PI / 180; + var r = params.radius[1]; + var r0 = r - length; + var angle; + var sinAngle; + var cosAngle; + for (var i = 0; i <= splitNumber; i++) { + angle = startAngle - totalAngle / splitNumber * i; + sinAngle = Math.sin(angle); + cosAngle = Math.cos(angle); + this.shapeList.push(new LineShape({ + zlevel: serie.zlevel, + z: serie.z + 1, + hoverable: false, + style: { + xStart: center[0] + cosAngle * r, + yStart: center[1] - sinAngle * r, + xEnd: center[0] + cosAngle * r0, + yEnd: center[1] - sinAngle * r0, + strokeColor: color === 'auto' ? this._getColor(seriesIndex, min + total / splitNumber * i) : color, + lineType: lineStyle.type, + lineWidth: lineStyle.width, + shadowColor: lineStyle.shadowColor, + shadowBlur: lineStyle.shadowBlur, + shadowOffsetX: lineStyle.shadowOffsetX, + shadowOffsetY: lineStyle.shadowOffsetY + } + })); + } + }, + _buildAxisTick: function (seriesIndex) { + var serie = this.series[seriesIndex]; + if (!serie.axisTick.show) { + return; + } + var params = this._paramsMap[seriesIndex]; + var splitNumber = serie.splitNumber; + var min = serie.min; + var total = serie.max - min; + var axisTick = serie.axisTick; + var tickSplit = axisTick.splitNumber; + var length = this.parsePercent(axisTick.length, params.radius[1]); + var lineStyle = axisTick.lineStyle; + var color = lineStyle.color; + var center = params.center; + var startAngle = params.startAngle * Math.PI / 180; + var totalAngle = params.totalAngle * Math.PI / 180; + var r = params.radius[1]; + var r0 = r - length; + var angle; + var sinAngle; + var cosAngle; + for (var i = 0, l = splitNumber * tickSplit; i <= l; i++) { + if (i % tickSplit === 0) { + continue; + } + angle = startAngle - totalAngle / l * i; + sinAngle = Math.sin(angle); + cosAngle = Math.cos(angle); + this.shapeList.push(new LineShape({ + zlevel: serie.zlevel, + z: serie.z + 1, + hoverable: false, + style: { + xStart: center[0] + cosAngle * r, + yStart: center[1] - sinAngle * r, + xEnd: center[0] + cosAngle * r0, + yEnd: center[1] - sinAngle * r0, + strokeColor: color === 'auto' ? this._getColor(seriesIndex, min + total / l * i) : color, + lineType: lineStyle.type, + lineWidth: lineStyle.width, + shadowColor: lineStyle.shadowColor, + shadowBlur: lineStyle.shadowBlur, + shadowOffsetX: lineStyle.shadowOffsetX, + shadowOffsetY: lineStyle.shadowOffsetY + } + })); + } + }, + _buildAxisLabel: function (seriesIndex) { + var serie = this.series[seriesIndex]; + if (!serie.axisLabel.show) { + return; + } + var splitNumber = serie.splitNumber; + var min = serie.min; + var total = serie.max - min; + var textStyle = serie.axisLabel.textStyle; + var textFont = this.getFont(textStyle); + var color = textStyle.color; + var params = this._paramsMap[seriesIndex]; + var center = params.center; + var startAngle = params.startAngle; + var totalAngle = params.totalAngle; + var r0 = params.radius[1] - this.parsePercent(serie.splitLine.length, params.radius[1]) - 5; + var angle; + var sinAngle; + var cosAngle; + var value; + for (var i = 0; i <= splitNumber; i++) { + value = accMath.accAdd(min, accMath.accMul(accMath.accDiv(total, splitNumber), i)); + angle = startAngle - totalAngle / splitNumber * i; + sinAngle = Math.sin(angle * Math.PI / 180); + cosAngle = Math.cos(angle * Math.PI / 180); + angle = (angle + 360) % 360; + this.shapeList.push(new TextShape({ + zlevel: serie.zlevel, + z: serie.z + 1, + hoverable: false, + style: { + x: center[0] + cosAngle * r0, + y: center[1] - sinAngle * r0, + color: color === 'auto' ? this._getColor(seriesIndex, value) : color, + text: this._getLabelText(serie.axisLabel.formatter, value), + textAlign: angle >= 110 && angle <= 250 ? 'left' : angle <= 70 || angle >= 290 ? 'right' : 'center', + textBaseline: angle >= 10 && angle <= 170 ? 'top' : angle >= 190 && angle <= 350 ? 'bottom' : 'middle', + textFont: textFont, + shadowColor: textStyle.shadowColor, + shadowBlur: textStyle.shadowBlur, + shadowOffsetX: textStyle.shadowOffsetX, + shadowOffsetY: textStyle.shadowOffsetY + } + })); + } + }, + _buildPointer: function (seriesIndex) { + var serie = this.series[seriesIndex]; + if (!serie.pointer.show) { + return; + } + var total = serie.max - serie.min; + var pointer = serie.pointer; + var params = this._paramsMap[seriesIndex]; + var length = this.parsePercent(pointer.length, params.radius[1]); + var width = this.parsePercent(pointer.width, params.radius[1]); + var center = params.center; + var value = this._getValue(seriesIndex); + value = value < serie.max ? value : serie.max; + var angle = (params.startAngle - params.totalAngle / total * (value - serie.min)) * Math.PI / 180; + var color = pointer.color === 'auto' ? this._getColor(seriesIndex, value) : pointer.color; + var pointShape = new GaugePointerShape({ + zlevel: serie.zlevel, + z: serie.z + 1, + clickable: this.query(serie, 'clickable'), + style: { + x: center[0], + y: center[1], + r: length, + startAngle: params.startAngle * Math.PI / 180, + angle: angle, + color: color, + width: width, + shadowColor: pointer.shadowColor, + shadowBlur: pointer.shadowBlur, + shadowOffsetX: pointer.shadowOffsetX, + shadowOffsetY: pointer.shadowOffsetY + }, + highlightStyle: { + brushType: 'fill', + width: width > 2 ? 2 : width / 2, + color: '#fff' + } + }); + ecData.pack(pointShape, this.series[seriesIndex], seriesIndex, this.series[seriesIndex].data[0], 0, this.series[seriesIndex].data[0].name, value); + this.shapeList.push(pointShape); + this.shapeList.push(new CircleShape({ + zlevel: serie.zlevel, + z: serie.z + 2, + hoverable: false, + style: { + x: center[0], + y: center[1], + r: pointer.width / 2.5, + color: '#fff' + } + })); + }, + _buildTitle: function (seriesIndex) { + var serie = this.series[seriesIndex]; + if (!serie.title.show) { + return; + } + var data = serie.data[0]; + var name = data.name != null ? data.name : ''; + if (name !== '') { + var title = serie.title; + var offsetCenter = title.offsetCenter; + var textStyle = title.textStyle; + var textColor = textStyle.color; + var params = this._paramsMap[seriesIndex]; + var x = params.center[0] + this.parsePercent(offsetCenter[0], params.radius[1]); + var y = params.center[1] + this.parsePercent(offsetCenter[1], params.radius[1]); + this.shapeList.push(new TextShape({ + zlevel: serie.zlevel, + z: serie.z + (Math.abs(x - params.center[0]) + Math.abs(y - params.center[1]) < textStyle.fontSize * 2 ? 2 : 1), + hoverable: false, + style: { + x: x, + y: y, + color: textColor === 'auto' ? this._getColor(seriesIndex) : textColor, + text: name, + textAlign: 'center', + textFont: this.getFont(textStyle), + shadowColor: textStyle.shadowColor, + shadowBlur: textStyle.shadowBlur, + shadowOffsetX: textStyle.shadowOffsetX, + shadowOffsetY: textStyle.shadowOffsetY + } + })); + } + }, + _buildDetail: function (seriesIndex) { + var serie = this.series[seriesIndex]; + if (!serie.detail.show) { + return; + } + var detail = serie.detail; + var offsetCenter = detail.offsetCenter; + var color = detail.backgroundColor; + var textStyle = detail.textStyle; + var textColor = textStyle.color; + var params = this._paramsMap[seriesIndex]; + var value = this._getValue(seriesIndex); + var x = params.center[0] - detail.width / 2 + this.parsePercent(offsetCenter[0], params.radius[1]); + var y = params.center[1] + this.parsePercent(offsetCenter[1], params.radius[1]); + this.shapeList.push(new RectangleShape({ + zlevel: serie.zlevel, + z: serie.z + (Math.abs(x + detail.width / 2 - params.center[0]) + Math.abs(y + detail.height / 2 - params.center[1]) < textStyle.fontSize ? 2 : 1), + hoverable: false, + style: { + x: x, + y: y, + width: detail.width, + height: detail.height, + brushType: 'both', + color: color === 'auto' ? this._getColor(seriesIndex, value) : color, + lineWidth: detail.borderWidth, + strokeColor: detail.borderColor, + shadowColor: detail.shadowColor, + shadowBlur: detail.shadowBlur, + shadowOffsetX: detail.shadowOffsetX, + shadowOffsetY: detail.shadowOffsetY, + text: this._getLabelText(detail.formatter, value), + textFont: this.getFont(textStyle), + textPosition: 'inside', + textColor: textColor === 'auto' ? this._getColor(seriesIndex, value) : textColor + } + })); + }, + _getValue: function (seriesIndex) { + return this.getDataFromOption(this.series[seriesIndex].data[0]); + }, + _colorMap: function (seriesIndex) { + var serie = this.series[seriesIndex]; + var min = serie.min; + var total = serie.max - min; + var color = serie.axisLine.lineStyle.color; + if (!(color instanceof Array)) { + color = [[ + 1, + color + ]]; + } + var colorArray = []; + for (var i = 0, l = color.length; i < l; i++) { + colorArray.push([ + color[i][0] * total + min, + color[i][1] + ]); + } + this._paramsMap[seriesIndex].colorArray = colorArray; + }, + _getColor: function (seriesIndex, value) { + if (value == null) { + value = this._getValue(seriesIndex); + } + var colorArray = this._paramsMap[seriesIndex].colorArray; + for (var i = 0, l = colorArray.length; i < l; i++) { + if (colorArray[i][0] >= value) { + return colorArray[i][1]; + } + } + return colorArray[colorArray.length - 1][1]; + }, + _getSector: function (center, r0, r, startAngle, endAngle, color, lineStyle, zlevel, z) { + return new SectorShape({ + zlevel: zlevel, + z: z, + hoverable: false, + style: { + x: center[0], + y: center[1], + r0: r0, + r: r, + startAngle: startAngle, + endAngle: endAngle, + brushType: 'fill', + color: color, + shadowColor: lineStyle.shadowColor, + shadowBlur: lineStyle.shadowBlur, + shadowOffsetX: lineStyle.shadowOffsetX, + shadowOffsetY: lineStyle.shadowOffsetY + } + }); + }, + _getLabelText: function (formatter, value) { + if (formatter) { + if (typeof formatter === 'function') { + return formatter.call(this.myChart, value); + } else if (typeof formatter === 'string') { + return formatter.replace('{value}', value); + } + } + return value; + }, + refresh: function (newOption) { + if (newOption) { + this.option = newOption; + this.series = newOption.series; + } + this.backupShapeList(); + this._buildShape(); + } + }; + zrUtil.inherits(Gauge, ChartBase); + require('../chart').define('gauge', Gauge); + return Gauge; +});define('echarts/util/shape/GaugePointer', [ + 'require', + 'zrender/shape/Base', + 'zrender/tool/util', + './normalIsCover' +], function (require) { + var Base = require('zrender/shape/Base'); + var zrUtil = require('zrender/tool/util'); + function GaugePointer(options) { + Base.call(this, options); + } + GaugePointer.prototype = { + type: 'gauge-pointer', + buildPath: function (ctx, style) { + var r = style.r; + var width = style.width; + var angle = style.angle; + var x = style.x - Math.cos(angle) * width * (width >= r / 3 ? 1 : 2); + var y = style.y + Math.sin(angle) * width * (width >= r / 3 ? 1 : 2); + angle = style.angle - Math.PI / 2; + ctx.moveTo(x, y); + ctx.lineTo(style.x + Math.cos(angle) * width, style.y - Math.sin(angle) * width); + ctx.lineTo(style.x + Math.cos(style.angle) * r, style.y - Math.sin(style.angle) * r); + ctx.lineTo(style.x - Math.cos(angle) * width, style.y + Math.sin(angle) * width); + ctx.lineTo(x, y); + return; + }, + getRect: function (style) { + if (style.__rect) { + return style.__rect; + } + var width = style.width * 2; + var xStart = style.x; + var yStart = style.y; + var xEnd = xStart + Math.cos(style.angle) * style.r; + var yEnd = yStart - Math.sin(style.angle) * style.r; + style.__rect = { + x: Math.min(xStart, xEnd) - width, + y: Math.min(yStart, yEnd) - width, + width: Math.abs(xStart - xEnd) + width, + height: Math.abs(yStart - yEnd) + width + }; + return style.__rect; + }, + isCover: require('./normalIsCover') + }; + zrUtil.inherits(GaugePointer, Base); + return GaugePointer; +});define('echarts/chart/funnel', [ + 'require', + './base', + 'zrender/shape/Text', + 'zrender/shape/Line', + 'zrender/shape/Polygon', + '../config', + '../util/ecData', + '../util/number', + 'zrender/tool/util', + 'zrender/tool/color', + 'zrender/tool/area', + '../chart' +], function (require) { + var ChartBase = require('./base'); + var TextShape = require('zrender/shape/Text'); + var LineShape = require('zrender/shape/Line'); + var PolygonShape = require('zrender/shape/Polygon'); + var ecConfig = require('../config'); + ecConfig.funnel = { + zlevel: 0, + z: 2, + clickable: true, + legendHoverLink: true, + x: 80, + y: 60, + x2: 80, + y2: 60, + min: 0, + max: 100, + minSize: '0%', + maxSize: '100%', + sort: 'descending', + gap: 0, + funnelAlign: 'center', + itemStyle: { + normal: { + borderColor: '#fff', + borderWidth: 1, + label: { + show: true, + position: 'outer' + }, + labelLine: { + show: true, + length: 10, + lineStyle: { + width: 1, + type: 'solid' + } + } + }, + emphasis: { + borderColor: 'rgba(0,0,0,0)', + borderWidth: 1, + label: { show: true }, + labelLine: { show: true } + } + } + }; + var ecData = require('../util/ecData'); + var number = require('../util/number'); + var zrUtil = require('zrender/tool/util'); + var zrColor = require('zrender/tool/color'); + var zrArea = require('zrender/tool/area'); + function Funnel(ecTheme, messageCenter, zr, option, myChart) { + ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); + this.refresh(option); + } + Funnel.prototype = { + type: ecConfig.CHART_TYPE_FUNNEL, + _buildShape: function () { + var series = this.series; + var legend = this.component.legend; + this._paramsMap = {}; + this._selected = {}; + this.selectedMap = {}; + var serieName; + for (var i = 0, l = series.length; i < l; i++) { + if (series[i].type === ecConfig.CHART_TYPE_FUNNEL) { + series[i] = this.reformOption(series[i]); + this.legendHoverLink = series[i].legendHoverLink || this.legendHoverLink; + serieName = series[i].name || ''; + this.selectedMap[serieName] = legend ? legend.isSelected(serieName) : true; + if (!this.selectedMap[serieName]) { + continue; + } + this._buildSingleFunnel(i); + this.buildMark(i); + } + } + this.addShapeList(); + }, + _buildSingleFunnel: function (seriesIndex) { + var legend = this.component.legend; + var serie = this.series[seriesIndex]; + var data = this._mapData(seriesIndex); + var location = this._getLocation(seriesIndex); + this._paramsMap[seriesIndex] = { + location: location, + data: data + }; + var itemName; + var total = 0; + var selectedData = []; + for (var i = 0, l = data.length; i < l; i++) { + itemName = data[i].name; + this.selectedMap[itemName] = legend ? legend.isSelected(itemName) : true; + if (this.selectedMap[itemName] && !isNaN(data[i].value)) { + selectedData.push(data[i]); + total++; + } + } + if (total === 0) { + return; + } + var funnelCase = this._buildFunnelCase(seriesIndex); + var align = serie.funnelAlign; + var gap = serie.gap; + var height = total > 1 ? (location.height - (total - 1) * gap) / total : location.height; + var width; + var lastY = location.y; + var lastWidth = serie.sort === 'descending' ? this._getItemWidth(seriesIndex, selectedData[0].value) : number.parsePercent(serie.minSize, location.width); + var next = serie.sort === 'descending' ? 1 : 0; + var centerX = location.centerX; + var pointList = []; + var x; + var polygon; + var lastPolygon; + for (var i = 0, l = selectedData.length; i < l; i++) { + itemName = selectedData[i].name; + if (this.selectedMap[itemName] && !isNaN(selectedData[i].value)) { + width = i <= l - 2 ? this._getItemWidth(seriesIndex, selectedData[i + next].value) : serie.sort === 'descending' ? number.parsePercent(serie.minSize, location.width) : number.parsePercent(serie.maxSize, location.width); + switch (align) { + case 'left': + x = location.x; + break; + case 'right': + x = location.x + location.width - lastWidth; + break; + default: + x = centerX - lastWidth / 2; + } + polygon = this._buildItem(seriesIndex, selectedData[i]._index, legend ? legend.getColor(itemName) : this.zr.getColor(selectedData[i]._index), x, lastY, lastWidth, width, height, align); + lastY += height + gap; + lastPolygon = polygon.style.pointList; + pointList.unshift([ + lastPolygon[0][0] - 10, + lastPolygon[0][1] + ]); + pointList.push([ + lastPolygon[1][0] + 10, + lastPolygon[1][1] + ]); + if (i === 0) { + if (lastWidth === 0) { + lastPolygon = pointList.pop(); + align == 'center' && (pointList[0][0] += 10); + align == 'right' && (pointList[0][0] = lastPolygon[0]); + pointList[0][1] -= align == 'center' ? 10 : 15; + if (l == 1) { + lastPolygon = polygon.style.pointList; + } + } else { + pointList[pointList.length - 1][1] -= 5; + pointList[0][1] -= 5; + } + } + lastWidth = width; + } + } + if (funnelCase) { + pointList.unshift([ + lastPolygon[3][0] - 10, + lastPolygon[3][1] + ]); + pointList.push([ + lastPolygon[2][0] + 10, + lastPolygon[2][1] + ]); + if (lastWidth === 0) { + lastPolygon = pointList.pop(); + align == 'center' && (pointList[0][0] += 10); + align == 'right' && (pointList[0][0] = lastPolygon[0]); + pointList[0][1] += align == 'center' ? 10 : 15; + } else { + pointList[pointList.length - 1][1] += 5; + pointList[0][1] += 5; + } + funnelCase.style.pointList = pointList; + } + }, + _buildFunnelCase: function (seriesIndex) { + var serie = this.series[seriesIndex]; + if (this.deepQuery([ + serie, + this.option + ], 'calculable')) { + var location = this._paramsMap[seriesIndex].location; + var gap = 10; + var funnelCase = { + hoverable: false, + style: { + pointListd: [ + [ + location.x - gap, + location.y - gap + ], + [ + location.x + location.width + gap, + location.y - gap + ], + [ + location.x + location.width + gap, + location.y + location.height + gap + ], + [ + location.x - gap, + location.y + location.height + gap + ] + ], + brushType: 'stroke', + lineWidth: 1, + strokeColor: serie.calculableHolderColor || this.ecTheme.calculableHolderColor || ecConfig.calculableHolderColor + } + }; + ecData.pack(funnelCase, serie, seriesIndex, undefined, -1); + this.setCalculable(funnelCase); + funnelCase = new PolygonShape(funnelCase); + this.shapeList.push(funnelCase); + return funnelCase; + } + }, + _getLocation: function (seriesIndex) { + var gridOption = this.series[seriesIndex]; + var zrWidth = this.zr.getWidth(); + var zrHeight = this.zr.getHeight(); + var x = this.parsePercent(gridOption.x, zrWidth); + var y = this.parsePercent(gridOption.y, zrHeight); + var width = gridOption.width == null ? zrWidth - x - this.parsePercent(gridOption.x2, zrWidth) : this.parsePercent(gridOption.width, zrWidth); + return { + x: x, + y: y, + width: width, + height: gridOption.height == null ? zrHeight - y - this.parsePercent(gridOption.y2, zrHeight) : this.parsePercent(gridOption.height, zrHeight), + centerX: x + width / 2 + }; + }, + _mapData: function (seriesIndex) { + var serie = this.series[seriesIndex]; + var funnelData = zrUtil.clone(serie.data); + for (var i = 0, l = funnelData.length; i < l; i++) { + funnelData[i]._index = i; + } + function numDescending(a, b) { + if (a.value === '-') { + return 1; + } else if (b.value === '-') { + return -1; + } + return b.value - a.value; + } + function numAscending(a, b) { + return -numDescending(a, b); + } + if (serie.sort != 'none') { + funnelData.sort(serie.sort === 'descending' ? numDescending : numAscending); + } + return funnelData; + }, + _buildItem: function (seriesIndex, dataIndex, defaultColor, x, y, topWidth, bottomWidth, height, align) { + var series = this.series; + var serie = series[seriesIndex]; + var data = serie.data[dataIndex]; + var polygon = this.getPolygon(seriesIndex, dataIndex, defaultColor, x, y, topWidth, bottomWidth, height, align); + ecData.pack(polygon, series[seriesIndex], seriesIndex, series[seriesIndex].data[dataIndex], dataIndex, series[seriesIndex].data[dataIndex].name); + this.shapeList.push(polygon); + var label = this.getLabel(seriesIndex, dataIndex, defaultColor, x, y, topWidth, bottomWidth, height, align); + ecData.pack(label, series[seriesIndex], seriesIndex, series[seriesIndex].data[dataIndex], dataIndex, series[seriesIndex].data[dataIndex].name); + this.shapeList.push(label); + if (!this._needLabel(serie, data, false)) { + label.invisible = true; + } + var labelLine = this.getLabelLine(seriesIndex, dataIndex, defaultColor, x, y, topWidth, bottomWidth, height, align); + this.shapeList.push(labelLine); + if (!this._needLabelLine(serie, data, false)) { + labelLine.invisible = true; + } + var polygonHoverConnect = []; + var labelHoverConnect = []; + if (this._needLabelLine(serie, data, true)) { + polygonHoverConnect.push(labelLine.id); + labelHoverConnect.push(labelLine.id); + } + if (this._needLabel(serie, data, true)) { + polygonHoverConnect.push(label.id); + labelHoverConnect.push(polygon.id); + } + polygon.hoverConnect = polygonHoverConnect; + label.hoverConnect = labelHoverConnect; + return polygon; + }, + _getItemWidth: function (seriesIndex, value) { + var serie = this.series[seriesIndex]; + var location = this._paramsMap[seriesIndex].location; + var min = serie.min; + var max = serie.max; + var minSize = number.parsePercent(serie.minSize, location.width); + var maxSize = number.parsePercent(serie.maxSize, location.width); + return (value - min) * (maxSize - minSize) / (max - min) + minSize; + }, + getPolygon: function (seriesIndex, dataIndex, defaultColor, xLT, y, topWidth, bottomWidth, height, align) { + var serie = this.series[seriesIndex]; + var data = serie.data[dataIndex]; + var queryTarget = [ + data, + serie + ]; + var normal = this.deepMerge(queryTarget, 'itemStyle.normal') || {}; + var emphasis = this.deepMerge(queryTarget, 'itemStyle.emphasis') || {}; + var normalColor = this.getItemStyleColor(normal.color, seriesIndex, dataIndex, data) || defaultColor; + var emphasisColor = this.getItemStyleColor(emphasis.color, seriesIndex, dataIndex, data) || (typeof normalColor === 'string' ? zrColor.lift(normalColor, -0.2) : normalColor); + var xLB; + switch (align) { + case 'left': + xLB = xLT; + break; + case 'right': + xLB = xLT + (topWidth - bottomWidth); + break; + default: + xLB = xLT + (topWidth - bottomWidth) / 2; + break; + } + var polygon = { + zlevel: serie.zlevel, + z: serie.z, + clickable: this.deepQuery(queryTarget, 'clickable'), + style: { + pointList: [ + [ + xLT, + y + ], + [ + xLT + topWidth, + y + ], + [ + xLB + bottomWidth, + y + height + ], + [ + xLB, + y + height + ] + ], + brushType: 'both', + color: normalColor, + lineWidth: normal.borderWidth, + strokeColor: normal.borderColor + }, + highlightStyle: { + color: emphasisColor, + lineWidth: emphasis.borderWidth, + strokeColor: emphasis.borderColor + } + }; + if (this.deepQuery([ + data, + serie, + this.option + ], 'calculable')) { + this.setCalculable(polygon); + polygon.draggable = true; + } + return new PolygonShape(polygon); + }, + getLabel: function (seriesIndex, dataIndex, defaultColor, x, y, topWidth, bottomWidth, height, align) { + var serie = this.series[seriesIndex]; + var data = serie.data[dataIndex]; + var location = this._paramsMap[seriesIndex].location; + var itemStyle = zrUtil.merge(zrUtil.clone(data.itemStyle) || {}, serie.itemStyle); + var status = 'normal'; + var labelControl = itemStyle[status].label; + var textStyle = labelControl.textStyle || {}; + var lineLength = itemStyle[status].labelLine.length; + var text = this.getLabelText(seriesIndex, dataIndex, status); + var textFont = this.getFont(textStyle); + var textAlign; + var textColor = defaultColor; + labelControl.position = labelControl.position || itemStyle.normal.label.position; + if (labelControl.position === 'inner' || labelControl.position === 'inside' || labelControl.position === 'center') { + textAlign = align; + textColor = Math.max(topWidth, bottomWidth) / 2 > zrArea.getTextWidth(text, textFont) ? '#fff' : zrColor.reverse(defaultColor); + } else if (labelControl.position === 'left') { + textAlign = 'right'; + } else { + textAlign = 'left'; + } + var textShape = { + zlevel: serie.zlevel, + z: serie.z + 1, + style: { + x: this._getLabelPoint(labelControl.position, x, location, topWidth, bottomWidth, lineLength, align), + y: y + height / 2, + color: textStyle.color || textColor, + text: text, + textAlign: textStyle.align || textAlign, + textBaseline: textStyle.baseline || 'middle', + textFont: textFont + } + }; + status = 'emphasis'; + labelControl = itemStyle[status].label || labelControl; + textStyle = labelControl.textStyle || textStyle; + lineLength = itemStyle[status].labelLine.length || lineLength; + labelControl.position = labelControl.position || itemStyle.normal.label.position; + text = this.getLabelText(seriesIndex, dataIndex, status); + textFont = this.getFont(textStyle); + textColor = defaultColor; + if (labelControl.position === 'inner' || labelControl.position === 'inside' || labelControl.position === 'center') { + textAlign = align; + textColor = Math.max(topWidth, bottomWidth) / 2 > zrArea.getTextWidth(text, textFont) ? '#fff' : zrColor.reverse(defaultColor); + } else if (labelControl.position === 'left') { + textAlign = 'right'; + } else { + textAlign = 'left'; + } + textShape.highlightStyle = { + x: this._getLabelPoint(labelControl.position, x, location, topWidth, bottomWidth, lineLength, align), + color: textStyle.color || textColor, + text: text, + textAlign: textStyle.align || textAlign, + textFont: textFont, + brushType: 'fill' + }; + return new TextShape(textShape); + }, + getLabelText: function (seriesIndex, dataIndex, status) { + var series = this.series; + var serie = series[seriesIndex]; + var data = serie.data[dataIndex]; + var formatter = this.deepQuery([ + data, + serie + ], 'itemStyle.' + status + '.label.formatter'); + if (formatter) { + if (typeof formatter === 'function') { + return formatter.call(this.myChart, { + seriesIndex: seriesIndex, + seriesName: serie.name || '', + series: serie, + dataIndex: dataIndex, + data: data, + name: data.name, + value: data.value + }); + } else if (typeof formatter === 'string') { + formatter = formatter.replace('{a}', '{a0}').replace('{b}', '{b0}').replace('{c}', '{c0}').replace('{a0}', serie.name).replace('{b0}', data.name).replace('{c0}', data.value); + return formatter; + } + } else { + return data.name; + } + }, + getLabelLine: function (seriesIndex, dataIndex, defaultColor, x, y, topWidth, bottomWidth, height, align) { + var serie = this.series[seriesIndex]; + var data = serie.data[dataIndex]; + var location = this._paramsMap[seriesIndex].location; + var itemStyle = zrUtil.merge(zrUtil.clone(data.itemStyle) || {}, serie.itemStyle); + var status = 'normal'; + var labelLineControl = itemStyle[status].labelLine; + var lineLength = itemStyle[status].labelLine.length; + var lineStyle = labelLineControl.lineStyle || {}; + var labelControl = itemStyle[status].label; + labelControl.position = labelControl.position || itemStyle.normal.label.position; + var lineShape = { + zlevel: serie.zlevel, + z: serie.z + 1, + hoverable: false, + style: { + xStart: this._getLabelLineStartPoint(x, location, topWidth, bottomWidth, align), + yStart: y + height / 2, + xEnd: this._getLabelPoint(labelControl.position, x, location, topWidth, bottomWidth, lineLength, align), + yEnd: y + height / 2, + strokeColor: lineStyle.color || defaultColor, + lineType: lineStyle.type, + lineWidth: lineStyle.width + } + }; + status = 'emphasis'; + labelLineControl = itemStyle[status].labelLine || labelLineControl; + lineLength = itemStyle[status].labelLine.length || lineLength; + lineStyle = labelLineControl.lineStyle || lineStyle; + labelControl = itemStyle[status].label || labelControl; + labelControl.position = labelControl.position; + lineShape.highlightStyle = { + xEnd: this._getLabelPoint(labelControl.position, x, location, topWidth, bottomWidth, lineLength, align), + strokeColor: lineStyle.color || defaultColor, + lineType: lineStyle.type, + lineWidth: lineStyle.width + }; + return new LineShape(lineShape); + }, + _getLabelPoint: function (position, x, location, topWidth, bottomWidth, lineLength, align) { + position = position === 'inner' || position === 'inside' ? 'center' : position; + switch (position) { + case 'center': + return align == 'center' ? x + topWidth / 2 : align == 'left' ? x + 10 : x + topWidth - 10; + case 'left': + if (lineLength === 'auto') { + return location.x - 10; + } else { + return align == 'center' ? location.centerX - Math.max(topWidth, bottomWidth) / 2 - lineLength : align == 'right' ? x - (topWidth < bottomWidth ? bottomWidth - topWidth : 0) - lineLength : location.x - lineLength; + } + break; + default: + if (lineLength === 'auto') { + return location.x + location.width + 10; + } else { + return align == 'center' ? location.centerX + Math.max(topWidth, bottomWidth) / 2 + lineLength : align == 'right' ? location.x + location.width + lineLength : x + Math.max(topWidth, bottomWidth) + lineLength; + } + } + }, + _getLabelLineStartPoint: function (x, location, topWidth, bottomWidth, align) { + return align == 'center' ? location.centerX : topWidth < bottomWidth ? x + Math.min(topWidth, bottomWidth) / 2 : x + Math.max(topWidth, bottomWidth) / 2; + }, + _needLabel: function (serie, data, isEmphasis) { + return this.deepQuery([ + data, + serie + ], 'itemStyle.' + (isEmphasis ? 'emphasis' : 'normal') + '.label.show'); + }, + _needLabelLine: function (serie, data, isEmphasis) { + return this.deepQuery([ + data, + serie + ], 'itemStyle.' + (isEmphasis ? 'emphasis' : 'normal') + '.labelLine.show'); + }, + refresh: function (newOption) { + if (newOption) { + this.option = newOption; + this.series = newOption.series; + } + this.backupShapeList(); + this._buildShape(); + } + }; + zrUtil.inherits(Funnel, ChartBase); + require('../chart').define('funnel', Funnel); + return Funnel; +});define('echarts/chart/eventRiver', [ + 'require', + './base', + '../layout/eventRiver', + 'zrender/shape/Polygon', + '../component/axis', + '../component/grid', + '../component/dataZoom', + '../config', + '../util/ecData', + '../util/date', + 'zrender/tool/util', + 'zrender/tool/color', + '../chart' +], function (require) { + var ChartBase = require('./base'); + var eventRiverLayout = require('../layout/eventRiver'); + var PolygonShape = require('zrender/shape/Polygon'); + require('../component/axis'); + require('../component/grid'); + require('../component/dataZoom'); + var ecConfig = require('../config'); + ecConfig.eventRiver = { + zlevel: 0, + z: 2, + clickable: true, + legendHoverLink: true, + itemStyle: { + normal: { + borderColor: 'rgba(0,0,0,0)', + borderWidth: 1, + label: { + show: true, + position: 'inside', + formatter: '{b}' + } + }, + emphasis: { + borderColor: 'rgba(0,0,0,0)', + borderWidth: 1, + label: { show: true } + } + } + }; + var ecData = require('../util/ecData'); + var ecDate = require('../util/date'); + var zrUtil = require('zrender/tool/util'); + var zrColor = require('zrender/tool/color'); + function EventRiver(ecTheme, messageCenter, zr, option, myChart) { + ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); + var self = this; + self._ondragend = function () { + self.isDragend = true; + }; + this.refresh(option); + } + EventRiver.prototype = { + type: ecConfig.CHART_TYPE_EVENTRIVER, + _buildShape: function () { + var series = this.series; + this.selectedMap = {}; + this._dataPreprocessing(); + var legend = this.component.legend; + var eventRiverSeries = []; + for (var i = 0; i < series.length; i++) { + if (series[i].type === this.type) { + series[i] = this.reformOption(series[i]); + this.legendHoverLink = series[i].legendHoverLink || this.legendHoverLink; + var serieName = series[i].name || ''; + this.selectedMap[serieName] = legend ? legend.isSelected(serieName) : true; + if (!this.selectedMap[serieName]) { + continue; + } + this.buildMark(i); + eventRiverSeries.push(this.series[i]); + } + } + eventRiverLayout(eventRiverSeries, this._intervalX, this.component.grid.getArea()); + this._drawEventRiver(); + this.addShapeList(); + }, + _dataPreprocessing: function () { + var series = this.series; + var xAxis; + var evolutionList; + for (var i = 0, iLen = series.length; i < iLen; i++) { + if (series[i].type === this.type) { + xAxis = this.component.xAxis.getAxis(series[i].xAxisIndex || 0); + for (var j = 0, jLen = series[i].data.length; j < jLen; j++) { + evolutionList = series[i].data[j].evolution; + for (var k = 0, kLen = evolutionList.length; k < kLen; k++) { + evolutionList[k].timeScale = xAxis.getCoord(ecDate.getNewDate(evolutionList[k].time) - 0); + evolutionList[k].valueScale = Math.pow(evolutionList[k].value, 0.8); + } + } + } + } + this._intervalX = Math.round(this.component.grid.getWidth() / 40); + }, + _drawEventRiver: function () { + var series = this.series; + for (var i = 0; i < series.length; i++) { + var serieName = series[i].name || ''; + if (series[i].type === this.type && this.selectedMap[serieName]) { + for (var j = 0; j < series[i].data.length; j++) { + this._drawEventBubble(series[i].data[j], i, j); + } + } + } + }, + _drawEventBubble: function (oneEvent, seriesIndex, dataIndex) { + var series = this.series; + var serie = series[seriesIndex]; + var serieName = serie.name || ''; + var data = serie.data[dataIndex]; + var queryTarget = [ + data, + serie + ]; + var legend = this.component.legend; + var defaultColor = legend ? legend.getColor(serieName) : this.zr.getColor(seriesIndex); + var normal = this.deepMerge(queryTarget, 'itemStyle.normal') || {}; + var emphasis = this.deepMerge(queryTarget, 'itemStyle.emphasis') || {}; + var normalColor = this.getItemStyleColor(normal.color, seriesIndex, dataIndex, data) || defaultColor; + var emphasisColor = this.getItemStyleColor(emphasis.color, seriesIndex, dataIndex, data) || (typeof normalColor === 'string' ? zrColor.lift(normalColor, -0.2) : normalColor); + var pts = this._calculateControlPoints(oneEvent); + var eventBubbleShape = { + zlevel: serie.zlevel, + z: serie.z, + clickable: this.deepQuery(queryTarget, 'clickable'), + style: { + pointList: pts, + smooth: 'spline', + brushType: 'both', + lineJoin: 'round', + color: normalColor, + lineWidth: normal.borderWidth, + strokeColor: normal.borderColor + }, + highlightStyle: { + color: emphasisColor, + lineWidth: emphasis.borderWidth, + strokeColor: emphasis.borderColor + }, + draggable: 'vertical', + ondragend: this._ondragend + }; + eventBubbleShape = new PolygonShape(eventBubbleShape); + this.addLabel(eventBubbleShape, serie, data, oneEvent.name); + ecData.pack(eventBubbleShape, series[seriesIndex], seriesIndex, series[seriesIndex].data[dataIndex], dataIndex, series[seriesIndex].data[dataIndex].name); + this.shapeList.push(eventBubbleShape); + }, + _calculateControlPoints: function (oneEvent) { + var intervalX = this._intervalX; + var posY = oneEvent.y; + var evolution = oneEvent.evolution; + var n = evolution.length; + if (n < 1) { + return; + } + var time = []; + var value = []; + for (var i = 0; i < n; i++) { + time.push(evolution[i].timeScale); + value.push(evolution[i].valueScale); + } + var pts = []; + pts.push([ + time[0], + posY + ]); + var i = 0; + for (i = 0; i < n - 1; i++) { + pts.push([ + (time[i] + time[i + 1]) / 2, + value[i] / -2 + posY + ]); + } + pts.push([ + (time[i] + (time[i] + intervalX)) / 2, + value[i] / -2 + posY + ]); + pts.push([ + time[i] + intervalX, + posY + ]); + pts.push([ + (time[i] + (time[i] + intervalX)) / 2, + value[i] / 2 + posY + ]); + for (i = n - 1; i > 0; i--) { + pts.push([ + (time[i] + time[i - 1]) / 2, + value[i - 1] / 2 + posY + ]); + } + return pts; + }, + ondragend: function (param, status) { + if (!this.isDragend || !param.target) { + return; + } + status.dragOut = true; + status.dragIn = true; + status.needRefresh = false; + this.isDragend = false; + }, + refresh: function (newOption) { + if (newOption) { + this.option = newOption; + this.series = newOption.series; + } + this.backupShapeList(); + this._buildShape(); + } + }; + zrUtil.inherits(EventRiver, ChartBase); + require('../chart').define('eventRiver', EventRiver); + return EventRiver; +});define('echarts/layout/eventRiver', ['require'], function (require) { + function eventRiverLayout(series, intervalX, area) { + var space = 4; + var scale = intervalX; + function importanceSort(a, b) { + var x = a.importance; + var y = b.importance; + return x > y ? -1 : x < y ? 1 : 0; + } + function indexOf(array, value) { + if (array.indexOf) { + return array.indexOf(value); + } + for (var i = 0, len = array.length; i < len; i++) { + if (array[i] === value) { + return i; + } + } + return -1; + } + for (var i = 0; i < series.length; i++) { + for (var j = 0; j < series[i].data.length; j++) { + if (series[i].data[j].weight == null) { + series[i].data[j].weight = 1; + } + var importance = 0; + for (var k = 0; k < series[i].data[j].evolution.length; k++) { + importance += series[i].data[j].evolution[k].valueScale; + } + series[i].data[j].importance = importance * series[i].data[j].weight; + } + series[i].data.sort(importanceSort); + } + for (var i = 0; i < series.length; i++) { + if (series[i].weight == null) { + series[i].weight = 1; + } + var importance = 0; + for (var j = 0; j < series[i].data.length; j++) { + importance += series[i].data[j].weight; + } + series[i].importance = importance * series[i].weight; + } + series.sort(importanceSort); + var minTime = Number.MAX_VALUE; + var maxTime = 0; + for (var i = 0; i < series.length; i++) { + for (var j = 0; j < series[i].data.length; j++) { + for (var k = 0; k < series[i].data[j].evolution.length; k++) { + var time = series[i].data[j].evolution[k].timeScale; + minTime = Math.min(minTime, time); + maxTime = Math.max(maxTime, time); + } + } + } + minTime = ~~minTime; + maxTime = ~~maxTime; + var flagForOffset = function () { + var length = maxTime - minTime + 1 + ~~intervalX; + if (length <= 0) { + return [0]; + } + var result = []; + while (length--) { + result.push(0); + } + return result; + }(); + var flagForPos = flagForOffset.slice(0); + var bubbleData = []; + var totalMaxy = 0; + var totalOffset = 0; + for (var i = 0; i < series.length; i++) { + for (var j = 0; j < series[i].data.length; j++) { + var e = series[i].data[j]; + e.time = []; + e.value = []; + var tmp; + var maxy = 0; + for (var k = 0; k < series[i].data[j].evolution.length; k++) { + tmp = series[i].data[j].evolution[k]; + e.time.push(tmp.timeScale); + e.value.push(tmp.valueScale); + maxy = Math.max(maxy, tmp.valueScale); + } + bubbleBound(e, intervalX, minTime); + e.y = findLocation(flagForPos, e, function (e, index) { + return e.ypx[index]; + }); + e._offset = findLocation(flagForOffset, e, function () { + return space; + }); + totalMaxy = Math.max(totalMaxy, e.y + maxy); + totalOffset = Math.max(totalOffset, e._offset); + bubbleData.push(e); + } + } + scaleY(bubbleData, area, totalMaxy, totalOffset); + } + function scaleY(bubbleData, area, maxY, offset) { + var height = area.height; + var offsetScale = offset / height > 0.5 ? 0.5 : 1; + var yBase = area.y; + var yScale = (area.height - offset) / maxY; + for (var i = 0, length = bubbleData.length; i < length; i++) { + var e = bubbleData[i]; + e.y = yBase + yScale * e.y + e._offset * offsetScale; + delete e.time; + delete e.value; + delete e.xpx; + delete e.ypx; + delete e._offset; + var evolutionList = e.evolution; + for (var k = 0, klen = evolutionList.length; k < klen; k++) { + evolutionList[k].valueScale *= yScale; + } + } + } + function line(x0, y0, x1, y1) { + if (x0 === x1) { + throw new Error('x0 is equal with x1!!!'); + } + if (y0 === y1) { + return function () { + return y0; + }; + } + var k = (y0 - y1) / (x0 - x1); + var b = (y1 * x0 - y0 * x1) / (x0 - x1); + return function (x) { + return k * x + b; + }; + } + function bubbleBound(e, intervalX, minX) { + var space = ~~intervalX; + var length = e.time.length; + e.xpx = []; + e.ypx = []; + var i = 0; + var x0 = 0; + var x1 = 0; + var y0 = 0; + var y1 = 0; + var newline; + for (; i < length; i++) { + x0 = ~~e.time[i]; + y0 = e.value[i] / 2; + if (i === length - 1) { + x1 = x0 + space; + y1 = 0; + } else { + x1 = ~~e.time[i + 1]; + y1 = e.value[i + 1] / 2; + } + newline = line(x0, y0, x1, y1); + for (var x = x0; x < x1; x++) { + e.xpx.push(x - minX); + e.ypx.push(newline(x)); + } + } + e.xpx.push(x1 - minX); + e.ypx.push(y1); + } + function findLocation(flags, e, yvalue) { + var pos = 0; + var length = e.xpx.length; + var i = 0; + var y; + for (; i < length; i++) { + y = yvalue(e, i); + pos = Math.max(pos, y + flags[e.xpx[i]]); + } + for (i = 0; i < length; i++) { + y = yvalue(e, i); + flags[e.xpx[i]] = pos + y; + } + return pos; + } + return eventRiverLayout; +});define('echarts/chart/venn', [ + 'require', + './base', + 'zrender/shape/Text', + 'zrender/shape/Circle', + 'zrender/shape/Path', + '../config', + '../util/ecData', + 'zrender/tool/util', + '../chart' +], function (require) { + var ChartBase = require('./base'); + var TextShape = require('zrender/shape/Text'); + var CircleShape = require('zrender/shape/Circle'); + var PathShape = require('zrender/shape/Path'); + var ecConfig = require('../config'); + ecConfig.venn = { + zlevel: 0, + z: 1, + calculable: false + }; + var ecData = require('../util/ecData'); + var zrUtil = require('zrender/tool/util'); + function Venn(ecTheme, messageCenter, zr, option, myChart) { + ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); + this.refresh(option); + } + Venn.prototype = { + type: ecConfig.CHART_TYPE_VENN, + _buildShape: function () { + this.selectedMap = {}; + this._symbol = this.option.symbolList; + this._queryTarget; + this._dropBoxList = []; + this._vennDataCounter = 0; + var series = this.series; + var legend = this.component.legend; + for (var i = 0; i < series.length; i++) { + if (series[i].type === ecConfig.CHART_TYPE_VENN) { + series[i] = this.reformOption(series[i]); + var serieName = series[i].name || ''; + this.selectedMap[serieName] = legend ? legend.isSelected(serieName) : true; + if (!this.selectedMap[serieName]) { + continue; + } + this._buildVenn(i); + } + } + this.addShapeList(); + }, + _buildVenn: function (seriesIndex) { + var r0; + var r1; + var serie = this.series[seriesIndex]; + var data = serie.data; + if (data[0].value > data[1].value) { + r0 = this.zr.getHeight() / 3; + r1 = r0 * Math.sqrt(data[1].value) / Math.sqrt(data[0].value); + } else { + r1 = this.zr.getHeight() / 3; + r0 = r1 * Math.sqrt(data[0].value) / Math.sqrt(data[1].value); + } + var x0 = this.zr.getWidth() / 2 - r0; + var coincideLengthAnchor = (r0 + r1) / 2 * Math.sqrt(data[2].value) / Math.sqrt((data[0].value + data[1].value) / 2); + var coincideLength = r0 + r1; + if (data[2].value !== 0) { + coincideLength = this._getCoincideLength(data[0].value, data[1].value, data[2].value, r0, r1, coincideLengthAnchor, Math.abs(r0 - r1), r0 + r1); + } + var x1 = x0 + coincideLength; + var y = this.zr.getHeight() / 2; + this._buildItem(seriesIndex, 0, data[0], x0, y, r0); + this._buildItem(seriesIndex, 1, data[1], x1, y, r1); + if (data[2].value !== 0 && data[2].value !== data[0].value && data[2].value !== data[1].value) { + var xLeft = (r0 * r0 - r1 * r1) / (2 * coincideLength) + coincideLength / 2; + var xRight = coincideLength / 2 - (r0 * r0 - r1 * r1) / (2 * coincideLength); + var h = Math.sqrt(r0 * r0 - xLeft * xLeft); + var rightLargeArcFlag = 0; + var leftLargeArcFlag = 0; + if (data[0].value > data[1].value && x1 < x0 + xLeft) { + leftLargeArcFlag = 1; + } + if (data[0].value < data[1].value && x1 < x0 + xRight) { + rightLargeArcFlag = 1; + } + this._buildCoincideItem(seriesIndex, 2, data[2], x0 + xLeft, y - h, y + h, r0, r1, rightLargeArcFlag, leftLargeArcFlag); + } + }, + _getCoincideLength: function (value0, value1, value2, r0, r1, coincideLengthAnchor, coincideLengthAnchorMin, coincideLengthAnchorMax) { + var x = (r0 * r0 - r1 * r1) / (2 * coincideLengthAnchor) + coincideLengthAnchor / 2; + var y = coincideLengthAnchor / 2 - (r0 * r0 - r1 * r1) / (2 * coincideLengthAnchor); + var alfa = Math.acos(x / r0); + var beta = Math.acos(y / r1); + var area0 = r0 * r0 * Math.PI; + var area2 = alfa * r0 * r0 - x * r0 * Math.sin(alfa) + beta * r1 * r1 - y * r1 * Math.sin(beta); + var scaleAnchor = area2 / area0; + var scale = value2 / value0; + var approximateValue = Math.abs(scaleAnchor / scale); + if (approximateValue > 0.999 && approximateValue < 1.001) { + return coincideLengthAnchor; + } else if (approximateValue <= 0.999) { + coincideLengthAnchorMax = coincideLengthAnchor; + coincideLengthAnchor = (coincideLengthAnchor + coincideLengthAnchorMin) / 2; + return this._getCoincideLength(value0, value1, value2, r0, r1, coincideLengthAnchor, coincideLengthAnchorMin, coincideLengthAnchorMax); + } else { + coincideLengthAnchorMin = coincideLengthAnchor; + coincideLengthAnchor = (coincideLengthAnchor + coincideLengthAnchorMax) / 2; + return this._getCoincideLength(value0, value1, value2, r0, r1, coincideLengthAnchor, coincideLengthAnchorMin, coincideLengthAnchorMax); + } + }, + _buildItem: function (seriesIndex, dataIndex, dataItem, x, y, r) { + var series = this.series; + var serie = series[seriesIndex]; + var circle = this.getCircle(seriesIndex, dataIndex, dataItem, x, y, r); + ecData.pack(circle, serie, seriesIndex, dataItem, dataIndex, dataItem.name); + this.shapeList.push(circle); + if (serie.itemStyle.normal.label.show) { + var label = this.getLabel(seriesIndex, dataIndex, dataItem, x, y, r); + ecData.pack(label, serie, seriesIndex, serie.data[dataIndex], dataIndex, serie.data[dataIndex].name); + this.shapeList.push(label); + } + }, + _buildCoincideItem: function (seriesIndex, dataIndex, dataItem, x, y0, y1, r0, r1, rightLargeArcFlag, leftLargeArcFlag) { + var series = this.series; + var serie = series[seriesIndex]; + var queryTarget = [ + dataItem, + serie + ]; + var normal = this.deepMerge(queryTarget, 'itemStyle.normal') || {}; + var emphasis = this.deepMerge(queryTarget, 'itemStyle.emphasis') || {}; + var normalColor = normal.color || this.zr.getColor(dataIndex); + var emphasisColor = emphasis.color || this.zr.getColor(dataIndex); + var path = 'M' + x + ',' + y0 + 'A' + r0 + ',' + r0 + ',0,' + rightLargeArcFlag + ',1,' + x + ',' + y1 + 'A' + r1 + ',' + r1 + ',0,' + leftLargeArcFlag + ',1,' + x + ',' + y0; + var style = { + color: normalColor, + path: path + }; + var shape = { + zlevel: serie.zlevel, + z: serie.z, + style: style, + highlightStyle: { + color: emphasisColor, + lineWidth: emphasis.borderWidth, + strokeColor: emphasis.borderColor + } + }; + shape = new PathShape(shape); + if (shape.buildPathArray) { + shape.style.pathArray = shape.buildPathArray(style.path); + } + ecData.pack(shape, series[seriesIndex], 0, dataItem, dataIndex, dataItem.name); + this.shapeList.push(shape); + }, + getCircle: function (seriesIndex, dataIndex, dataItem, x, y, r) { + var serie = this.series[seriesIndex]; + var queryTarget = [ + dataItem, + serie + ]; + var normal = this.deepMerge(queryTarget, 'itemStyle.normal') || {}; + var emphasis = this.deepMerge(queryTarget, 'itemStyle.emphasis') || {}; + var normalColor = normal.color || this.zr.getColor(dataIndex); + var emphasisColor = emphasis.color || this.zr.getColor(dataIndex); + var circle = { + zlevel: serie.zlevel, + z: serie.z, + clickable: true, + style: { + x: x, + y: y, + r: r, + brushType: 'fill', + opacity: 1, + color: normalColor + }, + highlightStyle: { + color: emphasisColor, + lineWidth: emphasis.borderWidth, + strokeColor: emphasis.borderColor + } + }; + if (this.deepQuery([ + dataItem, + serie, + this.option + ], 'calculable')) { + this.setCalculable(circle); + circle.draggable = true; + } + return new CircleShape(circle); + }, + getLabel: function (seriesIndex, dataIndex, dataItem, x, y, r) { + var serie = this.series[seriesIndex]; + var itemStyle = serie.itemStyle; + var queryTarget = [ + dataItem, + serie + ]; + var normal = this.deepMerge(queryTarget, 'itemStyle.normal') || {}; + var status = 'normal'; + var labelControl = itemStyle[status].label; + var textStyle = labelControl.textStyle || {}; + var text = this.getLabelText(dataIndex, dataItem, status); + var textFont = this.getFont(textStyle); + var textColor = normal.color || this.zr.getColor(dataIndex); + var textSize = textStyle.fontSize || 12; + var textShape = { + zlevel: serie.zlevel, + z: serie.z, + style: { + x: x, + y: y - r - textSize, + color: textStyle.color || textColor, + text: text, + textFont: textFont, + textAlign: 'center' + } + }; + return new TextShape(textShape); + }, + getLabelText: function (dataIndex, dataItem, status) { + var series = this.series; + var serie = series[0]; + var formatter = this.deepQuery([ + dataItem, + serie + ], 'itemStyle.' + status + '.label.formatter'); + if (formatter) { + if (typeof formatter == 'function') { + return formatter(serie.name, dataItem.name, dataItem.value); + } else if (typeof formatter == 'string') { + formatter = formatter.replace('{a}', '{a0}').replace('{b}', '{b0}').replace('{c}', '{c0}'); + formatter = formatter.replace('{a0}', serie.name).replace('{b0}', dataItem.name).replace('{c0}', dataItem.value); + return formatter; + } + } else { + return dataItem.name; + } + }, + refresh: function (newOption) { + if (newOption) { + this.option = newOption; + this.series = newOption.series; + } + this._buildShape(); + } + }; + zrUtil.inherits(Venn, ChartBase); + require('../chart').define('venn', Venn); + return Venn; +});define('echarts/chart/treemap', [ + 'require', + './base', + 'zrender/tool/area', + 'zrender/shape/Rectangle', + 'zrender/shape/Text', + 'zrender/shape/Line', + '../layout/TreeMap', + '../data/Tree', + '../config', + '../util/ecData', + 'zrender/config', + 'zrender/tool/event', + 'zrender/tool/util', + 'zrender/tool/color', + '../chart' +], function (require) { + var ChartBase = require('./base'); + var toolArea = require('zrender/tool/area'); + var RectangleShape = require('zrender/shape/Rectangle'); + var TextShape = require('zrender/shape/Text'); + var LineShape = require('zrender/shape/Line'); + var TreeMapLayout = require('../layout/TreeMap'); + var Tree = require('../data/Tree'); + var ecConfig = require('../config'); + ecConfig.treemap = { + zlevel: 0, + z: 1, + calculable: false, + clickable: true, + center: [ + '50%', + '50%' + ], + size: [ + '80%', + '80%' + ], + root: '', + itemStyle: { + normal: { + label: { + show: true, + x: 5, + y: 12, + textStyle: { + align: 'left', + color: '#000', + fontFamily: 'Arial', + fontSize: 13, + fontStyle: 'normal', + fontWeight: 'normal' + } + }, + breadcrumb: { + show: true, + textStyle: {} + }, + borderWidth: 1, + borderColor: '#ccc', + childBorderWidth: 1, + childBorderColor: '#ccc' + }, + emphasis: {} + } + }; + var ecData = require('../util/ecData'); + var zrConfig = require('zrender/config'); + var zrEvent = require('zrender/tool/event'); + var zrUtil = require('zrender/tool/util'); + var zrColor = require('zrender/tool/color'); + function Treemap(ecTheme, messageCenter, zr, option, myChart) { + ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); + this.refresh(option); + var self = this; + self._onclick = function (params) { + return self.__onclick(params); + }; + self.zr.on(zrConfig.EVENT.CLICK, self._onclick); + } + Treemap.prototype = { + type: ecConfig.CHART_TYPE_TREEMAP, + refresh: function (newOption) { + this.clear(); + if (newOption) { + this.option = newOption; + this.series = this.option.series; + } + this._treesMap = {}; + var series = this.series; + var legend = this.component.legend; + for (var i = 0; i < series.length; i++) { + if (series[i].type === ecConfig.CHART_TYPE_TREEMAP) { + series[i] = this.reformOption(series[i]); + var seriesName = series[i].name || ''; + this.selectedMap[seriesName] = legend ? legend.isSelected(seriesName) : true; + if (!this.selectedMap[seriesName]) { + continue; + } + this._buildSeries(series[i], i); + } + } + }, + _buildSeries: function (series, seriesIndex) { + var tree = Tree.fromOptionData(series.name, series.data); + this._treesMap[seriesIndex] = tree; + var treeRoot = series.root && tree.getNodeById(series.root) || tree.root; + this._buildTreemap(treeRoot, seriesIndex); + }, + _buildTreemap: function (treeRoot, seriesIndex) { + var shapeList = this.shapeList; + for (var i = 0; i < shapeList.length;) { + var shape = shapeList[i]; + if (ecData.get(shape, 'seriesIndex') === seriesIndex) { + this.zr.delShape(shapeList[i]); + shapeList.splice(i, 1); + } else { + i++; + } + } + var currentShapeLen = shapeList.length; + var series = this.series[seriesIndex]; + var itemStyle = series.itemStyle; + var treemapWidth = this.parsePercent(series.size[0], this.zr.getWidth()) || 400; + var treemapHeight = this.parsePercent(series.size[1], this.zr.getHeight()) || 500; + var center = this.parseCenter(this.zr, series.center); + var treemapX = center[0] - treemapWidth * 0.5; + var treemapY = center[1] - treemapHeight * 0.5; + var treemapArea = treemapWidth * treemapHeight; + var sum = 0; + var areaArr = []; + var children = treeRoot.children; + for (var i = 0; i < children.length; i++) { + sum += children[i].data.value; + } + for (var j = 0; j < children.length; j++) { + areaArr.push(children[j].data.value * treemapArea / sum); + } + var treeMapLayout = new TreeMapLayout({ + x: treemapX, + y: treemapY, + width: treemapWidth, + height: treemapHeight + }); + var locationArr = treeMapLayout.run(areaArr); + for (var k = 0; k < locationArr.length; k++) { + var dataItem = children[k].data; + var rect = locationArr[k]; + var queryTarget = [ + dataItem.itemStyle, + itemStyle + ]; + var itemStyleMerged = this.deepMerge(queryTarget); + if (!itemStyleMerged.normal.color) { + itemStyleMerged.normal.color = this.zr.getColor(k); + } + if (!itemStyleMerged.emphasis.color) { + itemStyleMerged.emphasis.color = itemStyleMerged.normal.color; + } + this._buildItem(dataItem, itemStyleMerged, rect, seriesIndex, k); + if (dataItem.children) { + this._buildChildrenTreemap(dataItem.children, itemStyleMerged, rect, seriesIndex); + } + } + if (this.query(series, 'itemStyle.normal.breadcrumb.show')) { + this._buildBreadcrumb(treeRoot, seriesIndex, treemapX, treemapY + treemapHeight); + } + for (var i = currentShapeLen; i < shapeList.length; i++) { + this.zr.addShape(shapeList[i]); + } + }, + _buildItem: function (dataItem, itemStyle, rect, seriesIndex, dataIndex) { + var series = this.series; + var rectangle = this.getRectangle(dataItem, itemStyle, rect); + ecData.pack(rectangle, series[seriesIndex], seriesIndex, dataItem, dataIndex, dataItem.name); + this.shapeList.push(rectangle); + }, + getRectangle: function (dataItem, itemStyle, rect) { + var emphasis = itemStyle.emphasis; + var normal = itemStyle.normal; + var textShape = this.getLabel(itemStyle, rect, dataItem.name, dataItem.value); + var hoverable = this.option.hoverable; + var rectangleShape = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: hoverable, + clickable: true, + style: zrUtil.merge({ + x: rect.x, + y: rect.y, + width: rect.width, + height: rect.height, + brushType: 'both', + color: normal.color, + lineWidth: normal.borderWidth, + strokeColor: normal.borderColor + }, textShape.style, true), + highlightStyle: zrUtil.merge({ + color: emphasis.color, + lineWidth: emphasis.borderWidth, + strokeColor: emphasis.borderColor + }, textShape.highlightStyle, true) + }; + return new RectangleShape(rectangleShape); + }, + getLabel: function (itemStyle, rect, name, value) { + var normalTextStyle = itemStyle.normal.label.textStyle; + var queryTarget = [ + itemStyle.emphasis.label.textStyle, + normalTextStyle + ]; + var emphasisTextStyle = this.deepMerge(queryTarget); + var formatter = itemStyle.normal.label.formatter; + var text = this.getLabelText(name, value, formatter); + var textFont = this.getFont(normalTextStyle); + var textWidth = toolArea.getTextWidth(text, textFont); + var textHeight = toolArea.getTextHeight(text, textFont); + var emphasisFormatter = this.deepQuery([ + itemStyle.emphasis, + itemStyle.normal + ], 'label.formatter'); + var emphasisText = this.getLabelText(name, value, emphasisFormatter); + var emphasisTextFont = this.getFont(emphasisTextStyle); + var emphasisTextWidth = toolArea.getTextWidth(text, emphasisTextFont); + var emphasisTextHeight = toolArea.getTextHeight(text, emphasisTextFont); + if (!itemStyle.normal.label.show) { + text = ''; + } else if (itemStyle.normal.label.x + textWidth > rect.width || itemStyle.normal.label.y + textHeight > rect.height) { + text = ''; + } + if (!itemStyle.emphasis.label.show) { + emphasisText = ''; + } else if (emphasisTextStyle.x + emphasisTextWidth > rect.width || emphasisTextStyle.y + emphasisTextHeight > rect.height) { + emphasisText = ''; + } + var textShape = { + style: { + textX: rect.x + itemStyle.normal.label.x, + textY: rect.y + itemStyle.normal.label.y, + text: text, + textPosition: 'specific', + textColor: normalTextStyle.color, + textFont: textFont + }, + highlightStyle: { + textX: rect.x + itemStyle.emphasis.label.x, + textY: rect.y + itemStyle.emphasis.label.y, + text: emphasisText, + textColor: emphasisTextStyle.color, + textPosition: 'specific' + } + }; + return textShape; + }, + getLabelText: function (name, value, formatter) { + if (formatter) { + if (typeof formatter === 'function') { + return formatter.call(this.myChart, name, value); + } else if (typeof formatter === 'string') { + formatter = formatter.replace('{b}', '{b0}').replace('{c}', '{c0}'); + formatter = formatter.replace('{b0}', name).replace('{c0}', value); + return formatter; + } + } else { + return name; + } + }, + _buildChildrenTreemap: function (data, itemStyle, rect, seriesIndex) { + var treemapArea = rect.width * rect.height; + var sum = 0; + var areaArr = []; + for (var i = 0; i < data.length; i++) { + sum += data[i].value; + } + for (var j = 0; j < data.length; j++) { + areaArr.push(data[j].value * treemapArea / sum); + } + var treeMapLayout = new TreeMapLayout({ + x: rect.x, + y: rect.y, + width: rect.width, + height: rect.height + }); + var locationArr = treeMapLayout.run(areaArr); + var lineWidth = itemStyle.normal.childBorderWidth; + var lineColor = itemStyle.normal.childBorderColor; + for (var k = 0; k < locationArr.length; k++) { + var item = locationArr[k]; + var lines = []; + if (rect.y.toFixed(2) !== item.y.toFixed(2)) { + lines.push(this._getLine(item.x, item.y, item.x + item.width, item.y, lineWidth, lineColor)); + } + if (rect.x.toFixed(2) !== item.x.toFixed(2)) { + lines.push(this._getLine(item.x, item.y, item.x, item.y + item.height, lineWidth, lineColor)); + } + if ((rect.y + rect.height).toFixed(2) !== (item.y + item.height).toFixed(2)) { + lines.push(this._getLine(item.x, item.y + item.height, item.x + item.width, item.y + item.height, lineWidth, lineColor)); + } + if ((rect.x + rect.width).toFixed(2) !== (item.x + item.width).toFixed(2)) { + lines.push(this._getLine(item.x + item.width, item.y, item.x + item.width, item.y + item.height, lineWidth, lineColor)); + } + for (var l = 0; l < lines.length; l++) { + ecData.set(lines[l], 'seriesIndex', seriesIndex); + this.shapeList.push(lines[l]); + } + } + }, + _getLine: function (xStart, yStart, xEnd, yEnd, lineWidth, lineColor) { + var lineShape = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: false, + style: { + xStart: xStart, + yStart: yStart, + xEnd: xEnd, + yEnd: yEnd, + lineWidth: lineWidth, + strokeColor: lineColor + } + }; + return new LineShape(lineShape); + }, + _buildBreadcrumb: function (treeRoot, seriesIndex, x, y) { + var stack = []; + var current = treeRoot; + while (current) { + stack.unshift(current.data.name); + current = current.parent; + } + var series = this.series[seriesIndex]; + var textStyle = this.query(series, 'itemStyle.normal.breadcrumb.textStyle') || {}; + var textEmphasisStyle = this.query(series, 'itemStyle.emphasis.breadcrumb.textStyle') || {}; + var commonStyle = { + y: y + 10, + textBaseline: 'top', + textAlign: 'left', + color: textStyle.color, + textFont: this.getFont(textStyle) + }; + var commonHighlightStyle = { + brushType: 'fill', + color: textEmphasisStyle.color || zrColor.lift(textStyle.color, -0.3), + textFont: this.getFont(textEmphasisStyle) + }; + for (var i = 0; i < stack.length; i++) { + var textShape = new TextShape({ + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: zrUtil.merge({ + x: x, + text: stack[i] + (stack.length - 1 - i ? ' > ' : '') + }, commonStyle), + clickable: true, + highlightStyle: commonHighlightStyle + }); + ecData.set(textShape, 'seriesIndex', seriesIndex); + ecData.set(textShape, 'name', stack[i]); + x += textShape.getRect(textShape.style).width; + this.shapeList.push(textShape); + } + }, + __onclick: function (params) { + var target = params.target; + if (target) { + var seriesIndex = ecData.get(target, 'seriesIndex'); + var name = ecData.get(target, 'name'); + var tree = this._treesMap[seriesIndex]; + var root = tree.getNodeById(name); + if (root && root.children.length) { + this._buildTreemap(root, seriesIndex); + } + } + } + }; + zrUtil.inherits(Treemap, ChartBase); + require('../chart').define('treemap', Treemap); + return Treemap; +});define('echarts/layout/TreeMap', ['require'], function (require) { + function TreeMapLayout(opts) { + var row = { + x: opts.x, + y: opts.y, + width: opts.width, + height: opts.height + }; + this.x = opts.x; + this.y = opts.y; + this.width = opts.width; + this.height = opts.height; + } + TreeMapLayout.prototype.run = function (areas) { + var out = []; + this._squarify(areas, { + x: this.x, + y: this.y, + width: this.width, + height: this.height + }, out); + return out; + }; + TreeMapLayout.prototype._squarify = function (areas, row, out) { + var layoutDirection = 'VERTICAL'; + var width = row.width; + var height = row.height; + if (row.width < row.height) { + layoutDirection = 'HORIZONTAL'; + width = row.height; + height = row.width; + } + var shapeArr = this._getShapeListInAbstractRow(areas, width, height); + for (var i = 0; i < shapeArr.length; i++) { + shapeArr[i].x = 0; + shapeArr[i].y = 0; + for (var j = 0; j < i; j++) { + shapeArr[i].y += shapeArr[j].height; + } + } + var nextRow = {}; + if (layoutDirection == 'VERTICAL') { + for (var k = 0; k < shapeArr.length; k++) { + out.push({ + x: shapeArr[k].x + row.x, + y: shapeArr[k].y + row.y, + width: shapeArr[k].width, + height: shapeArr[k].height + }); + } + nextRow = { + x: shapeArr[0].width + row.x, + y: row.y, + width: row.width - shapeArr[0].width, + height: row.height + }; + } else { + for (var l = 0; l < shapeArr.length; l++) { + out.push({ + x: shapeArr[l].y + row.x, + y: shapeArr[l].x + row.y, + width: shapeArr[l].height, + height: shapeArr[l].width + }); + } + nextRow = { + x: row.x, + y: row.y + shapeArr[0].width, + width: row.width, + height: row.height - shapeArr[0].width + }; + } + var nextAreaArr = areas.slice(shapeArr.length); + if (nextAreaArr.length === 0) { + return; + } else { + this._squarify(nextAreaArr, nextRow, out); + } + }; + TreeMapLayout.prototype._getShapeListInAbstractRow = function (areas, width, height) { + if (areas.length === 1) { + return [{ + width: width, + height: height + }]; + } + for (var count = 1; count < areas.length; count++) { + var shapeArr0 = this._placeFixedNumberRectangles(areas.slice(0, count), width, height); + var shapeArr1 = this._placeFixedNumberRectangles(areas.slice(0, count + 1), width, height); + if (this._isFirstBetter(shapeArr0, shapeArr1)) { + return shapeArr0; + } + } + }; + TreeMapLayout.prototype._placeFixedNumberRectangles = function (areaSubArr, width, height) { + var count = areaSubArr.length; + var shapeArr = []; + var sum = 0; + for (var i = 0; i < areaSubArr.length; i++) { + sum += areaSubArr[i]; + } + var cellWidth = sum / height; + for (var j = 0; j < count; j++) { + var cellHeight = height * areaSubArr[j] / sum; + shapeArr.push({ + width: cellWidth, + height: cellHeight + }); + } + return shapeArr; + }; + TreeMapLayout.prototype._isFirstBetter = function (shapeArr0, shapeArr1) { + var ratio0 = shapeArr0[0].height / shapeArr0[0].width; + ratio0 = ratio0 > 1 ? 1 / ratio0 : ratio0; + var ratio1 = shapeArr1[0].height / shapeArr1[0].width; + ratio1 = ratio1 > 1 ? 1 / ratio1 : ratio1; + if (Math.abs(ratio0 - 1) <= Math.abs(ratio1 - 1)) { + return true; + } + return false; + }; + return TreeMapLayout; +});define('echarts/data/Tree', [ + 'require', + 'zrender/tool/util' +], function (require) { + var zrUtil = require('zrender/tool/util'); + function TreeNode(id, data) { + this.id = id; + this.depth = 0; + this.height = 0; + this.children = []; + this.parent = null; + this.data = data || null; + } + TreeNode.prototype.add = function (child) { + var children = this.children; + if (child.parent === this) { + return; + } + children.push(child); + child.parent = this; + }; + TreeNode.prototype.remove = function (child) { + var children = this.children; + var idx = zrUtil.indexOf(children, child); + if (idx >= 0) { + children.splice(idx, 1); + child.parent = null; + } + }; + TreeNode.prototype.traverse = function (cb, context) { + cb.call(context, this); + for (var i = 0; i < this.children.length; i++) { + this.children[i].traverse(cb, context); + } + }; + TreeNode.prototype.updateDepthAndHeight = function (depth) { + var height = 0; + this.depth = depth; + for (var i = 0; i < this.children.length; i++) { + var child = this.children[i]; + child.updateDepthAndHeight(depth + 1); + if (child.height > height) { + height = child.height; + } + } + this.height = height + 1; + }; + TreeNode.prototype.getNodeById = function (id) { + if (this.id === id) { + return this; + } + for (var i = 0; i < this.children.length; i++) { + var res = this.children[i].getNodeById(id); + if (res) { + return res; + } + } + }; + function Tree(id) { + this.root = new TreeNode(id); + } + Tree.prototype.traverse = function (cb, context) { + this.root.traverse(cb, context); + }; + Tree.prototype.getSubTree = function (id) { + var root = this.getNodeById(id); + if (root) { + var tree = new Tree(root.id); + tree.root = root; + return tree; + } + }; + Tree.prototype.getNodeById = function (id) { + return this.root.getNodeById(id); + }; + Tree.fromOptionData = function (id, data) { + var tree = new Tree(id); + var rootNode = tree.root; + rootNode.data = { + name: id, + children: data + }; + function buildHierarchy(dataNode, parentNode) { + var node = new TreeNode(dataNode.name, dataNode); + parentNode.add(node); + var children = dataNode.children; + if (children) { + for (var i = 0; i < children.length; i++) { + buildHierarchy(children[i], node); + } + } + } + for (var i = 0; i < data.length; i++) { + buildHierarchy(data[i], rootNode); + } + tree.root.updateDepthAndHeight(0); + return tree; + }; + Tree.fromGraph = function (graph) { + function buildHierarchy(root) { + var graphNode = graph.getNodeById(root.id); + for (var i = 0; i < graphNode.outEdges.length; i++) { + var edge = graphNode.outEdges[i]; + var childTreeNode = treeNodesMap[edge.node2.id]; + root.children.push(childTreeNode); + buildHierarchy(childTreeNode); + } + } + var treeMap = {}; + var treeNodesMap = {}; + for (var i = 0; i < graph.nodes.length; i++) { + var node = graph.nodes[i]; + var treeNode; + if (node.inDegree() === 0) { + treeMap[node.id] = new Tree(node.id); + treeNode = treeMap[node.id].root; + } else { + treeNode = new TreeNode(node.id); + } + treeNode.data = node.data; + treeNodesMap[node.id] = treeNode; + } + var treeList = []; + for (var id in treeMap) { + buildHierarchy(treeMap[id].root); + treeMap[id].root.updateDepthAndHeight(0); + treeList.push(treeMap[id]); + } + return treeList; + }; + return Tree; +});define('echarts/chart/tree', [ + 'require', + './base', + '../util/shape/Icon', + 'zrender/shape/Image', + 'zrender/shape/Line', + 'zrender/shape/BezierCurve', + '../layout/Tree', + '../data/Tree', + '../config', + '../util/ecData', + 'zrender/config', + 'zrender/tool/event', + 'zrender/tool/util', + '../chart' +], function (require) { + var ChartBase = require('./base'); + var GOLDEN_SECTION = 0.618; + var IconShape = require('../util/shape/Icon'); + var ImageShape = require('zrender/shape/Image'); + var LineShape = require('zrender/shape/Line'); + var BezierCurveShape = require('zrender/shape/BezierCurve'); + var TreeLayout = require('../layout/Tree'); + var TreeData = require('../data/Tree'); + var ecConfig = require('../config'); + ecConfig.tree = { + zlevel: 1, + z: 2, + calculable: false, + clickable: true, + rootLocation: {}, + orient: 'vertical', + symbol: 'circle', + symbolSize: 20, + nodePadding: 30, + layerPadding: 100, + itemStyle: { + normal: { + label: { show: true }, + lineStyle: { + width: 1, + color: '#777', + type: 'curve' + } + }, + emphasis: {} + } + }; + var ecData = require('../util/ecData'); + var zrConfig = require('zrender/config'); + var zrEvent = require('zrender/tool/event'); + var zrUtil = require('zrender/tool/util'); + function Tree(ecTheme, messageCenter, zr, option, myChart) { + ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); + this.refresh(option); + } + Tree.prototype = { + type: ecConfig.CHART_TYPE_TREE, + _buildShape: function (series, seriesIndex) { + var data = series.data[0]; + this.tree = TreeData.fromOptionData(data.name, data.children); + this.tree.root.data = data; + this._setTreeShape(series); + this.tree.traverse(function (treeNode) { + this._buildItem(treeNode, series, seriesIndex); + if (treeNode.children.length > 0) { + this._buildLink(treeNode, series); + } + }, this); + var panable = series.roam === true || series.roam === 'move'; + var zoomable = series.roam === true || series.roam === 'scale'; + this.zr.modLayer(this.getZlevelBase(), { + panable: panable, + zoomable: zoomable + }); + if (this.query('markPoint.effect.show') || this.query('markLine.effect.show')) { + this.zr.modLayer(ecConfig.EFFECT_ZLEVEL, { + panable: panable, + zoomable: zoomable + }); + } + this.addShapeList(); + }, + _buildItem: function (treeNode, serie, seriesIndex) { + var queryTarget = [ + treeNode.data, + serie + ]; + var symbol = this.deepQuery(queryTarget, 'symbol'); + var normal = this.deepMerge(queryTarget, 'itemStyle.normal') || {}; + var emphasis = this.deepMerge(queryTarget, 'itemStyle.emphasis') || {}; + var normalColor = normal.color || this.zr.getColor(); + var emphasisColor = emphasis.color || this.zr.getColor(); + var angle = -treeNode.layout.angle || 0; + if (treeNode.id === this.tree.root.id) { + angle = 0; + } + var textPosition = 'right'; + if (Math.abs(angle) >= Math.PI / 2 && Math.abs(angle) < Math.PI * 3 / 2) { + angle += Math.PI; + textPosition = 'left'; + } + var rotation = [ + angle, + treeNode.layout.position[0], + treeNode.layout.position[1] + ]; + var shape = new IconShape({ + zlevel: this.getZlevelBase(), + z: this.getZBase() + 1, + rotation: rotation, + clickable: this.deepQuery(queryTarget, 'clickable'), + style: { + x: treeNode.layout.position[0] - treeNode.layout.width * 0.5, + y: treeNode.layout.position[1] - treeNode.layout.height * 0.5, + width: treeNode.layout.width, + height: treeNode.layout.height, + iconType: symbol, + color: normalColor, + brushType: 'both', + lineWidth: normal.borderWidth, + strokeColor: normal.borderColor + }, + highlightStyle: { + color: emphasisColor, + lineWidth: emphasis.borderWidth, + strokeColor: emphasis.borderColor + } + }); + if (shape.style.iconType.match('image')) { + shape.style.image = shape.style.iconType.replace(new RegExp('^image:\\/\\/'), ''); + shape = new ImageShape({ + rotation: rotation, + style: shape.style, + highlightStyle: shape.highlightStyle, + clickable: shape.clickable, + zlevel: this.getZlevelBase(), + z: this.getZBase() + }); + } + if (this.deepQuery(queryTarget, 'itemStyle.normal.label.show')) { + shape.style.text = treeNode.data.label == null ? treeNode.id : treeNode.data.label; + shape.style.textPosition = this.deepQuery(queryTarget, 'itemStyle.normal.label.position'); + if (serie.orient === 'radial' && shape.style.textPosition !== 'inside') { + shape.style.textPosition = textPosition; + } + shape.style.textColor = this.deepQuery(queryTarget, 'itemStyle.normal.label.textStyle.color'); + shape.style.textFont = this.getFont(this.deepQuery(queryTarget, 'itemStyle.normal.label.textStyle') || {}); + } + if (this.deepQuery(queryTarget, 'itemStyle.emphasis.label.show')) { + shape.highlightStyle.textPosition = this.deepQuery(queryTarget, 'itemStyle.emphasis.label.position'); + shape.highlightStyle.textColor = this.deepQuery(queryTarget, 'itemStyle.emphasis.label.textStyle.color'); + shape.highlightStyle.textFont = this.getFont(this.deepQuery(queryTarget, 'itemStyle.emphasis.label.textStyle') || {}); + } + ecData.pack(shape, serie, seriesIndex, treeNode.data, 0, treeNode.id); + this.shapeList.push(shape); + }, + _buildLink: function (parentNode, serie) { + var lineStyle = serie.itemStyle.normal.lineStyle; + if (lineStyle.type === 'broken') { + this._buildBrokenLine(parentNode, lineStyle, serie); + return; + } + for (var i = 0; i < parentNode.children.length; i++) { + var xStart = parentNode.layout.position[0]; + var yStart = parentNode.layout.position[1]; + var xEnd = parentNode.children[i].layout.position[0]; + var yEnd = parentNode.children[i].layout.position[1]; + switch (lineStyle.type) { + case 'curve': + this._buildBezierCurve(parentNode, parentNode.children[i], lineStyle, serie); + break; + case 'broken': + break; + default: + var shape = this._getLine(xStart, yStart, xEnd, yEnd, lineStyle); + this.shapeList.push(shape); + } + } + }, + _buildBrokenLine: function (parentNode, lineStyle, serie) { + var solidLineStyle = zrUtil.clone(lineStyle); + solidLineStyle.type = 'solid'; + var shapes = []; + var xStart = parentNode.layout.position[0]; + var yStart = parentNode.layout.position[1]; + var orient = serie.orient; + var yEnd = parentNode.children[0].layout.position[1]; + var xMiddle = xStart; + var yMiddle = yStart + (yEnd - yStart) * (1 - GOLDEN_SECTION); + var xMiddleStart = parentNode.children[0].layout.position[0]; + var yMiddleStart = yMiddle; + var xMiddleEnd = parentNode.children[parentNode.children.length - 1].layout.position[0]; + var yMiddleEnd = yMiddle; + if (orient === 'horizontal') { + var xEnd = parentNode.children[0].layout.position[0]; + xMiddle = xStart + (xEnd - xStart) * (1 - GOLDEN_SECTION); + yMiddle = yStart; + xMiddleStart = xMiddle; + yMiddleStart = parentNode.children[0].layout.position[1]; + xMiddleEnd = xMiddle; + yMiddleEnd = parentNode.children[parentNode.children.length - 1].layout.position[1]; + } + shapes.push(this._getLine(xStart, yStart, xMiddle, yMiddle, solidLineStyle)); + shapes.push(this._getLine(xMiddleStart, yMiddleStart, xMiddleEnd, yMiddleEnd, solidLineStyle)); + for (var i = 0; i < parentNode.children.length; i++) { + xEnd = parentNode.children[i].layout.position[0]; + yEnd = parentNode.children[i].layout.position[1]; + if (orient === 'horizontal') { + yMiddleStart = yEnd; + } else { + xMiddleStart = xEnd; + } + shapes.push(this._getLine(xMiddleStart, yMiddleStart, xEnd, yEnd, solidLineStyle)); + } + this.shapeList = this.shapeList.concat(shapes); + }, + _getLine: function (xStart, yStart, xEnd, yEnd, lineStyle) { + if (xStart === xEnd) { + xStart = xEnd = this.subPixelOptimize(xStart, lineStyle.width); + } + if (yStart === yEnd) { + yStart = yEnd = this.subPixelOptimize(yStart, lineStyle.width); + } + return new LineShape({ + zlevel: this.getZlevelBase(), + hoverable: false, + style: zrUtil.merge({ + xStart: xStart, + yStart: yStart, + xEnd: xEnd, + yEnd: yEnd, + lineType: lineStyle.type, + strokeColor: lineStyle.color, + lineWidth: lineStyle.width + }, lineStyle, true) + }); + }, + _buildBezierCurve: function (parentNode, treeNode, lineStyle, serie) { + var offsetRatio = GOLDEN_SECTION; + var orient = serie.orient; + var xStart = parentNode.layout.position[0]; + var yStart = parentNode.layout.position[1]; + var xEnd = treeNode.layout.position[0]; + var yEnd = treeNode.layout.position[1]; + var cpX1 = xStart; + var cpY1 = (yEnd - yStart) * offsetRatio + yStart; + var cpX2 = xEnd; + var cpY2 = (yEnd - yStart) * (1 - offsetRatio) + yStart; + if (orient === 'horizontal') { + cpX1 = (xEnd - xStart) * offsetRatio + xStart; + cpY1 = yStart; + cpX2 = (xEnd - xStart) * (1 - offsetRatio) + xStart; + cpY2 = yEnd; + } else if (orient === 'radial') { + if (parentNode.id === this.tree.root.id) { + cpX1 = (xEnd - xStart) * offsetRatio + xStart; + cpY1 = (yEnd - yStart) * offsetRatio + yStart; + cpX2 = (xEnd - xStart) * (1 - offsetRatio) + xStart; + cpY2 = (yEnd - yStart) * (1 - offsetRatio) + yStart; + } else { + var xStartOrigin = parentNode.layout.originPosition[0]; + var yStartOrigin = parentNode.layout.originPosition[1]; + var xEndOrigin = treeNode.layout.originPosition[0]; + var yEndOrigin = treeNode.layout.originPosition[1]; + var rootX = this.tree.root.layout.position[0]; + var rootY = this.tree.root.layout.position[1]; + cpX1 = xStartOrigin; + cpY1 = (yEndOrigin - yStartOrigin) * offsetRatio + yStartOrigin; + cpX2 = xEndOrigin; + cpY2 = (yEndOrigin - yStartOrigin) * (1 - offsetRatio) + yStartOrigin; + var rad = (cpX1 - this.minX) / this.width * Math.PI * 2; + cpX1 = cpY1 * Math.cos(rad) + rootX; + cpY1 = cpY1 * Math.sin(rad) + rootY; + rad = (cpX2 - this.minX) / this.width * Math.PI * 2; + cpX2 = cpY2 * Math.cos(rad) + rootX; + cpY2 = cpY2 * Math.sin(rad) + rootY; + } + } + var shape = new BezierCurveShape({ + zlevel: this.getZlevelBase(), + hoverable: false, + style: zrUtil.merge({ + xStart: xStart, + yStart: yStart, + cpX1: cpX1, + cpY1: cpY1, + cpX2: cpX2, + cpY2: cpY2, + xEnd: xEnd, + yEnd: yEnd, + strokeColor: lineStyle.color, + lineWidth: lineStyle.width + }, lineStyle, true) + }); + this.shapeList.push(shape); + }, + _setTreeShape: function (serie) { + var treeLayout = new TreeLayout({ + nodePadding: serie.nodePadding, + layerPadding: serie.layerPadding + }); + this.tree.traverse(function (treeNode) { + var queryTarget = [ + treeNode.data, + serie + ]; + var symbolSize = this.deepQuery(queryTarget, 'symbolSize'); + if (typeof symbolSize === 'number') { + symbolSize = [ + symbolSize, + symbolSize + ]; + } + treeNode.layout = { + width: symbolSize[0], + height: symbolSize[1] + }; + }, this); + treeLayout.run(this.tree); + var orient = serie.orient; + var rootX = serie.rootLocation.x; + var rootY = serie.rootLocation.y; + var zrWidth = this.zr.getWidth(); + var zrHeight = this.zr.getHeight(); + if (rootX === 'center') { + rootX = zrWidth * 0.5; + } else { + rootX = this.parsePercent(rootX, zrWidth); + } + if (rootY === 'center') { + rootY = zrHeight * 0.5; + } else { + rootY = this.parsePercent(rootY, zrHeight); + } + rootY = this.parsePercent(rootY, zrHeight); + if (orient === 'horizontal') { + rootX = isNaN(rootX) ? 10 : rootX; + rootY = isNaN(rootY) ? zrHeight * 0.5 : rootY; + } + if (orient === 'radial') { + rootX = isNaN(rootX) ? zrWidth * 0.5 : rootX; + rootY = isNaN(rootY) ? zrHeight * 0.5 : rootY; + } else { + rootX = isNaN(rootX) ? zrWidth * 0.5 : rootX; + rootY = isNaN(rootY) ? 10 : rootY; + } + var originRootX = this.tree.root.layout.position[0]; + if (orient === 'radial') { + var minX = Infinity; + var maxX = 0; + var maxWidth = 0; + this.tree.traverse(function (treeNode) { + maxX = Math.max(maxX, treeNode.layout.position[0]); + minX = Math.min(minX, treeNode.layout.position[0]); + maxWidth = Math.max(maxWidth, treeNode.layout.width); + }); + this.width = maxX - minX + 2 * maxWidth; + this.minX = minX; + } + this.tree.traverse(function (treeNode) { + var x; + var y; + if (orient === 'vertical' && serie.direction === 'inverse') { + x = treeNode.layout.position[0] - originRootX + rootX; + y = rootY - treeNode.layout.position[1]; + } else if (orient === 'vertical') { + x = treeNode.layout.position[0] - originRootX + rootX; + y = treeNode.layout.position[1] + rootY; + } else if (orient === 'horizontal' && serie.direction === 'inverse') { + y = treeNode.layout.position[0] - originRootX + rootY; + x = rootX - treeNode.layout.position[1]; + } else if (orient === 'horizontal') { + y = treeNode.layout.position[0] - originRootX + rootY; + x = treeNode.layout.position[1] + rootX; + } else { + x = treeNode.layout.position[0]; + y = treeNode.layout.position[1]; + treeNode.layout.originPosition = [ + x, + y + ]; + var r = y; + var angle = (x - minX) / this.width * Math.PI * 2; + x = r * Math.cos(angle) + rootX; + y = r * Math.sin(angle) + rootY; + treeNode.layout.angle = angle; + } + treeNode.layout.position[0] = x; + treeNode.layout.position[1] = y; + }, this); + }, + refresh: function (newOption) { + this.clear(); + if (newOption) { + this.option = newOption; + this.series = this.option.series; + } + var series = this.series; + var legend = this.component.legend; + for (var i = 0; i < series.length; i++) { + if (series[i].type === ecConfig.CHART_TYPE_TREE) { + series[i] = this.reformOption(series[i]); + var seriesName = series[i].name || ''; + this.selectedMap[seriesName] = legend ? legend.isSelected(seriesName) : true; + if (!this.selectedMap[seriesName]) { + continue; + } + this._buildSeries(series[i], i); + } + } + }, + _buildSeries: function (series, seriesIndex) { + this._buildShape(series, seriesIndex); + } + }; + zrUtil.inherits(Tree, ChartBase); + require('../chart').define('tree', Tree); + return Tree; +});define('echarts/layout/Tree', [ + 'require', + 'zrender/tool/vector' +], function (require) { + var vec2 = require('zrender/tool/vector'); + function TreeLayout(opts) { + opts = opts || {}; + this.nodePadding = opts.nodePadding || 30; + this.layerPadding = opts.layerPadding || 100; + this._layerOffsets = []; + this._layers = []; + } + TreeLayout.prototype.run = function (tree) { + this._layerOffsets.length = 0; + for (var i = 0; i < tree.root.height + 1; i++) { + this._layerOffsets[i] = 0; + this._layers[i] = []; + } + this._updateNodeXPosition(tree.root); + var root = tree.root; + this._updateNodeYPosition(root, 0, root.layout.height); + }; + TreeLayout.prototype._updateNodeXPosition = function (node) { + var minX = Infinity; + var maxX = -Infinity; + node.layout.position = node.layout.position || vec2.create(); + for (var i = 0; i < node.children.length; i++) { + var child = node.children[i]; + this._updateNodeXPosition(child); + var x = child.layout.position[0]; + if (x < minX) { + minX = x; + } + if (x > maxX) { + maxX = x; + } + } + if (node.children.length > 0) { + node.layout.position[0] = (minX + maxX) / 2; + } else { + node.layout.position[0] = 0; + } + var off = this._layerOffsets[node.depth] || 0; + if (off > node.layout.position[0]) { + var shift = off - node.layout.position[0]; + this._shiftSubtree(node, shift); + for (var i = node.depth + 1; i < node.height + node.depth; i++) { + this._layerOffsets[i] += shift; + } + } + this._layerOffsets[node.depth] = node.layout.position[0] + node.layout.width + this.nodePadding; + this._layers[node.depth].push(node); + }; + TreeLayout.prototype._shiftSubtree = function (root, offset) { + root.layout.position[0] += offset; + for (var i = 0; i < root.children.length; i++) { + this._shiftSubtree(root.children[i], offset); + } + }; + TreeLayout.prototype._updateNodeYPosition = function (node, y, prevLayerHeight) { + node.layout.position[1] = y; + var layerHeight = 0; + for (var i = 0; i < node.children.length; i++) { + layerHeight = Math.max(node.children[i].layout.height, layerHeight); + } + var layerPadding = this.layerPadding; + if (typeof layerPadding === 'function') { + layerPadding = layerPadding(node.depth); + } + for (var i = 0; i < node.children.length; i++) { + this._updateNodeYPosition(node.children[i], y + layerPadding + prevLayerHeight, layerHeight); + } + }; + return TreeLayout; +});define('echarts/chart/wordCloud', [ + 'require', + './base', + 'zrender/shape/Text', + '../layout/WordCloud', + '../component/grid', + '../component/dataRange', + '../config', + '../util/ecData', + 'zrender/tool/util', + 'zrender/tool/color', + '../chart' +], function (require) { + var ChartBase = require('./base'); + var TextShape = require('zrender/shape/Text'); + var CloudLayout = require('../layout/WordCloud'); + require('../component/grid'); + require('../component/dataRange'); + var ecConfig = require('../config'); + var ecData = require('../util/ecData'); + var zrUtil = require('zrender/tool/util'); + var zrColor = require('zrender/tool/color'); + ecConfig.wordCloud = { + zlevel: 0, + z: 2, + clickable: true, + center: [ + '50%', + '50%' + ], + size: [ + '40%', + '40%' + ], + textRotation: [ + 0, + 90 + ], + textPadding: 0, + autoSize: { + enable: true, + minSize: 12 + }, + itemStyle: { + normal: { + textStyle: { + fontSize: function (data) { + return data.value; + } + } + } + } + }; + function Cloud(ecTheme, messageCenter, zr, option, myChart) { + ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); + this.refresh(option); + } + Cloud.prototype = { + type: ecConfig.CHART_TYPE_WORDCLOUD, + refresh: function (newOption) { + if (newOption) { + this.option = newOption; + this.series = newOption.series; + } + this._init(); + }, + _init: function () { + var series = this.series; + this.backupShapeList(); + var legend = this.component.legend; + for (var i = 0; i < series.length; i++) { + if (series[i].type === ecConfig.CHART_TYPE_WORDCLOUD) { + series[i] = this.reformOption(series[i]); + var serieName = series[i].name || ''; + this.selectedMap[serieName] = legend ? legend.isSelected(serieName) : true; + if (!this.selectedMap[serieName]) { + continue; + } + this.buildMark(i); + this._initSerie(series[i]); + } + } + }, + _initSerie: function (serie) { + var textStyle = serie.itemStyle.normal.textStyle; + var size = [ + this.parsePercent(serie.size[0], this.zr.getWidth()) || 200, + this.parsePercent(serie.size[1], this.zr.getHeight()) || 200 + ]; + var center = this.parseCenter(this.zr, serie.center); + var layoutConfig = { + size: size, + wordletype: { autoSizeCal: serie.autoSize }, + center: center, + rotate: serie.textRotation, + padding: serie.textPadding, + font: textStyle.fontFamily, + fontSize: textStyle.fontSize, + fontWeight: textStyle.fontWeight, + fontStyle: textStyle.fontStyle, + text: function (d) { + return d.name; + }, + data: serie.data + }; + var clouds = new CloudLayout(layoutConfig); + var self = this; + clouds.end(function (d) { + self._buildShapes(d); + }); + clouds.start(); + }, + _buildShapes: function (data) { + var len = data.length; + for (var i = 0; i < len; i++) { + this._buildTextShape(data[i], 0, i); + } + this.addShapeList(); + }, + _buildTextShape: function (oneText, seriesIndex, dataIndex) { + var series = this.series; + var serie = series[seriesIndex]; + var serieName = serie.name || ''; + var data = serie.data[dataIndex]; + var queryTarget = [ + data, + serie + ]; + var legend = this.component.legend; + var defaultColor = legend ? legend.getColor(serieName) : this.zr.getColor(seriesIndex); + var normal = this.deepMerge(queryTarget, 'itemStyle.normal') || {}; + var emphasis = this.deepMerge(queryTarget, 'itemStyle.emphasis') || {}; + var normalColor = this.getItemStyleColor(normal.color, seriesIndex, dataIndex, data) || defaultColor; + var emphasisColor = this.getItemStyleColor(emphasis.color, seriesIndex, dataIndex, data) || (typeof normalColor === 'string' ? zrColor.lift(normalColor, -0.2) : normalColor); + var textShape = new TextShape({ + zlevel: serie.zlevel, + z: serie.z, + hoverable: true, + clickable: this.deepQuery(queryTarget, 'clickable'), + style: { + x: 0, + y: 0, + text: oneText.text, + color: normalColor, + textFont: [ + oneText.style, + oneText.weight, + oneText.size + 'px', + oneText.font + ].join(' '), + textBaseline: 'alphabetic', + textAlign: 'center' + }, + highlightStyle: { + brushType: emphasis.borderWidth ? 'both' : 'fill', + color: emphasisColor, + lineWidth: emphasis.borderWidth || 0, + strokeColor: emphasis.borderColor + }, + position: [ + oneText.x, + oneText.y + ], + rotation: [ + -oneText.rotate / 180 * Math.PI, + 0, + 0 + ] + }); + ecData.pack(textShape, serie, seriesIndex, data, dataIndex, data.name); + this.shapeList.push(textShape); + } + }; + zrUtil.inherits(Cloud, ChartBase); + require('../chart').define('wordCloud', Cloud); + return Cloud; +});define('echarts/layout/WordCloud', [ + 'require', + '../layout/WordCloudRectZero', + 'zrender/tool/util' +], function (require) { + var ZeroArray = require('../layout/WordCloudRectZero'); + var zrUtil = require('zrender/tool/util'); + function CloudLayout(option) { + this._init(option); + } + CloudLayout.prototype = { + start: function () { + var board = null; + var maxWit = 0; + var maxHit = 0; + var maxArea = 0; + var i = -1; + var tags = []; + var maxBounds = null; + var data = this.wordsdata; + var dfop = this.defaultOption; + var wordletype = dfop.wordletype; + var size = dfop.size; + var that = this; + var zeroArrayObj = new ZeroArray({ + type: wordletype.type, + width: size[0], + height: size[1] + }); + zeroArrayObj.calculate(function (options) { + board = options.initarr; + maxWit = options.maxWit; + maxHit = options.maxHit; + maxArea = options.area; + maxBounds = options.imgboard; + startStep(); + }, this); + return this; + function startStep() { + that.totalArea = maxArea; + if (wordletype.autoSizeCal.enable) { + that._autoCalTextSize(data, maxArea, maxWit, maxHit, wordletype.autoSizeCal.minSize); + } + if (dfop.timer) { + clearInterval(dfop.timer); + } + dfop.timer = setInterval(step, 0); + step(); + } + function step() { + var start = +new Date(); + var n = data.length; + var d; + while (+new Date() - start < dfop.timeInterval && ++i < n && dfop.timer) { + d = data[i]; + d.x = size[0] >> 1; + d.y = size[1] >> 1; + that._cloudSprite(d, data, i); + if (d.hasText && that._place(board, d, maxBounds)) { + tags.push(d); + d.x -= size[0] >> 1; + d.y -= size[1] >> 1; + } + } + if (i >= n) { + that.stop(); + that._fixTagPosition(tags); + dfop.endcallback(tags); + } + } + }, + _fixTagPosition: function (tags) { + var center = this.defaultOption.center; + for (var i = 0, len = tags.length; i < len; i++) { + tags[i].x += center[0]; + tags[i].y += center[1]; + } + }, + stop: function () { + if (this.defaultOption.timer) { + clearInterval(this.defaultOption.timer); + this.defaultOption.timer = null; + } + return this; + }, + end: function (v) { + if (v) { + this.defaultOption.endcallback = v; + } + return this; + }, + _init: function (option) { + this.defaultOption = {}; + this._initProperty(option); + this._initMethod(option); + this._initCanvas(); + this._initData(option.data); + }, + _initData: function (datas) { + var that = this; + var thatop = that.defaultOption; + this.wordsdata = datas.map(function (d, i) { + d.text = thatop.text.call(that, d, i); + d.font = thatop.font.call(that, d, i); + d.style = thatop.fontStyle.call(that, d, i); + d.weight = thatop.fontWeight.call(that, d, i); + d.rotate = thatop.rotate.call(that, d, i); + d.size = ~~thatop.fontSize.call(that, d, i); + d.padding = thatop.padding.call(that, d, i); + return d; + }).sort(function (a, b) { + return b.value - a.value; + }); + }, + _initMethod: function (option) { + var dfop = this.defaultOption; + dfop.text = option.text ? functor(option.text) : cloudText; + dfop.font = option.font ? functor(option.font) : cloudFont; + dfop.fontSize = option.fontSize ? functor(option.fontSize) : cloudFontSize; + dfop.fontStyle = option.fontStyle ? functor(option.fontStyle) : cloudFontNormal; + dfop.fontWeight = option.fontWeight ? functor(option.fontWeight) : cloudFontNormal; + dfop.rotate = option.rotate ? newCloudRotate(option.rotate) : cloudRotate; + dfop.padding = option.padding ? functor(option.padding) : cloudPadding; + dfop.center = option.center; + dfop.spiral = archimedeanSpiral; + dfop.endcallback = function () { + }; + dfop.rectangularSpiral = rectangularSpiral; + dfop.archimedeanSpiral = archimedeanSpiral; + function cloudText(d) { + return d.name; + } + function cloudFont() { + return 'sans-serif'; + } + function cloudFontNormal() { + return 'normal'; + } + function cloudFontSize(d) { + return d.value; + } + function cloudRotate() { + return 0; + } + function newCloudRotate(rotate) { + return function () { + return rotate[Math.round(Math.random() * (rotate.length - 1))]; + }; + } + function cloudPadding() { + return 0; + } + function archimedeanSpiral(size) { + var e = size[0] / size[1]; + return function (t) { + return [ + e * (t *= 0.1) * Math.cos(t), + t * Math.sin(t) + ]; + }; + } + function rectangularSpiral(size) { + var dy = 4; + var dx = dy * size[0] / size[1]; + var x = 0; + var y = 0; + return function (t) { + var sign = t < 0 ? -1 : 1; + switch (Math.sqrt(1 + 4 * sign * t) - sign & 3) { + case 0: + x += dx; + break; + case 1: + y += dy; + break; + case 2: + x -= dx; + break; + default: + y -= dy; + break; + } + return [ + x, + y + ]; + }; + } + function functor(v) { + return typeof v === 'function' ? v : function () { + return v; + }; + } + }, + _initProperty: function (option) { + var dfop = this.defaultOption; + dfop.size = option.size || [ + 256, + 256 + ]; + dfop.wordletype = option.wordletype; + dfop.words = option.words || []; + dfop.timeInterval = Infinity; + dfop.timer = null; + dfop.spirals = { + archimedean: dfop.archimedeanSpiral, + rectangular: dfop.rectangularSpiral + }; + zrUtil.merge(dfop, { + size: [ + 256, + 256 + ], + wordletype: { + type: 'RECT', + areaPresent: 0.058, + autoSizeCal: { + enable: true, + minSize: 12 + } + } + }); + }, + _initCanvas: function () { + var cloudRadians = Math.PI / 180; + var cw = 1 << 11 >> 5; + var ch = 1 << 11; + var canvas; + var ratio = 1; + if (typeof document !== 'undefined') { + canvas = document.createElement('canvas'); + canvas.width = 1; + canvas.height = 1; + ratio = Math.sqrt(canvas.getContext('2d').getImageData(0, 0, 1, 1).data.length >> 2); + canvas.width = (cw << 5) / ratio; + canvas.height = ch / ratio; + } else { + canvas = new Canvas(cw << 5, ch); + } + var c = canvas.getContext('2d'); + c.fillStyle = c.strokeStyle = 'red'; + c.textAlign = 'center'; + this.defaultOption.c = c; + this.defaultOption.cw = cw; + this.defaultOption.ch = ch; + this.defaultOption.ratio = ratio; + this.defaultOption.cloudRadians = cloudRadians; + }, + _cloudSprite: function (d, data, di) { + if (d.sprite) { + return; + } + var cw = this.defaultOption.cw; + var ch = this.defaultOption.ch; + var c = this.defaultOption.c; + var ratio = this.defaultOption.ratio; + var cloudRadians = this.defaultOption.cloudRadians; + c.clearRect(0, 0, (cw << 5) / ratio, ch / ratio); + var x = 0; + var y = 0; + var maxh = 0; + var n = data.length; + --di; + while (++di < n) { + d = data[di]; + c.save(); + c.font = d.style + ' ' + d.weight + ' ' + ~~((d.size + 1) / ratio) + 'px ' + d.font; + var w = c.measureText(d.text + 'm').width * ratio; + var h = d.size << 1; + if (d.rotate) { + var sr = Math.sin(d.rotate * cloudRadians); + var cr = Math.cos(d.rotate * cloudRadians); + var wcr = w * cr; + var wsr = w * sr; + var hcr = h * cr; + var hsr = h * sr; + w = Math.max(Math.abs(wcr + hsr), Math.abs(wcr - hsr)) + 31 >> 5 << 5; + h = ~~Math.max(Math.abs(wsr + hcr), Math.abs(wsr - hcr)); + } else { + w = w + 31 >> 5 << 5; + } + if (h > maxh) { + maxh = h; + } + if (x + w >= cw << 5) { + x = 0; + y += maxh; + maxh = 0; + } + if (y + h >= ch) { + break; + } + c.translate((x + (w >> 1)) / ratio, (y + (h >> 1)) / ratio); + if (d.rotate) { + c.rotate(d.rotate * cloudRadians); + } + c.fillText(d.text, 0, 0); + if (d.padding) { + c.lineWidth = 2 * d.padding; + c.strokeText(d.text, 0, 0); + } + c.restore(); + d.width = w; + d.height = h; + d.xoff = x; + d.yoff = y; + d.x1 = w >> 1; + d.y1 = h >> 1; + d.x0 = -d.x1; + d.y0 = -d.y1; + d.hasText = true; + x += w; + } + var pixels = c.getImageData(0, 0, (cw << 5) / ratio, ch / ratio).data; + var sprite = []; + while (--di >= 0) { + d = data[di]; + if (!d.hasText) { + continue; + } + var w = d.width; + var w32 = w >> 5; + var h = d.y1 - d.y0; + for (var i = 0; i < h * w32; i++) { + sprite[i] = 0; + } + x = d.xoff; + if (x == null) { + return; + } + y = d.yoff; + var seen = 0; + var seenRow = -1; + for (var j = 0; j < h; j++) { + for (var i = 0; i < w; i++) { + var k = w32 * j + (i >> 5); + var m = pixels[(y + j) * (cw << 5) + (x + i) << 2] ? 1 << 31 - i % 32 : 0; + sprite[k] |= m; + seen |= m; + } + if (seen) { + seenRow = j; + } else { + d.y0++; + h--; + j--; + y++; + } + } + d.y1 = d.y0 + seenRow; + d.sprite = sprite.slice(0, (d.y1 - d.y0) * w32); + } + }, + _place: function (board, tag, maxBounds) { + var size = this.defaultOption.size; + var perimeter = [ + { + x: 0, + y: 0 + }, + { + x: size[0], + y: size[1] + } + ]; + var startX = tag.x; + var startY = tag.y; + var maxDelta = Math.sqrt(size[0] * size[0] + size[1] * size[1]); + var s = this.defaultOption.spiral(size); + var dt = Math.random() < 0.5 ? 1 : -1; + var t = -dt; + var dxdy; + var dx; + var dy; + while (dxdy = s(t += dt)) { + dx = ~~dxdy[0]; + dy = ~~dxdy[1]; + if (Math.min(dx, dy) > maxDelta) { + break; + } + tag.x = startX + dx; + tag.y = startY + dy; + if (tag.x + tag.x0 < 0 || tag.y + tag.y0 < 0 || tag.x + tag.x1 > size[0] || tag.y + tag.y1 > size[1]) { + continue; + } + if (!cloudCollide(tag, board, size[0])) { + if (collideRects(tag, maxBounds)) { + var sprite = tag.sprite; + var w = tag.width >> 5; + var sw = size[0] >> 5; + var lx = tag.x - (w << 4); + var sx = lx & 127; + var msx = 32 - sx; + var h = tag.y1 - tag.y0; + var x = (tag.y + tag.y0) * sw + (lx >> 5); + var last; + for (var j = 0; j < h; j++) { + last = 0; + for (var i = 0; i <= w; i++) { + board[x + i] |= last << msx | (i < w ? (last = sprite[j * w + i]) >>> sx : 0); + } + x += sw; + } + delete tag.sprite; + return true; + } + } + } + return false; + function cloudCollide(tag, board, sw) { + sw >>= 5; + var sprite = tag.sprite; + var w = tag.width >> 5; + var lx = tag.x - (w << 4); + var sx = lx & 127; + var msx = 32 - sx; + var h = tag.y1 - tag.y0; + var x = (tag.y + tag.y0) * sw + (lx >> 5); + var last; + for (var j = 0; j < h; j++) { + last = 0; + for (var i = 0; i <= w; i++) { + if ((last << msx | (i < w ? (last = sprite[j * w + i]) >>> sx : 0)) & board[x + i]) { + return true; + } + } + x += sw; + } + return false; + } + function collideRects(a, maxBounds) { + return maxBounds.row[a.y] && maxBounds.cloumn[a.x] && a.x >= maxBounds.row[a.y].start && a.x <= maxBounds.row[a.y].end && a.y >= maxBounds.cloumn[a.x].start && a.y <= maxBounds.cloumn[a.x].end; + } + }, + _autoCalTextSize: function (data, shapeArea, maxwidth, maxheight, minSize) { + var sizesum = sum(data, function (k) { + return k.size; + }); + var i = data.length; + var maxareapre = 0.25; + var minTextSize = minSize; + var cw = this.defaultOption.cw; + var ch = this.defaultOption.ch; + var c = this.defaultOption.c; + var ratio = this.defaultOption.ratio; + var cloudRadians = this.defaultOption.cloudRadians; + var d; + var dpre; + while (i--) { + d = data[i]; + dpre = d.size / sizesum; + if (maxareapre) { + d.areapre = dpre < maxareapre ? dpre : maxareapre; + } else { + d.areapre = dpre; + } + d.area = shapeArea * d.areapre; + d.totalarea = shapeArea; + measureTextWitHitByarea(d); + } + function measureTextWitHitByarea(d) { + c.clearRect(0, 0, (cw << 5) / ratio, ch / ratio); + c.save(); + c.font = d.style + ' ' + d.weight + ' ' + ~~((d.size + 1) / ratio) + 'px ' + d.font; + var w = c.measureText(d.text + 'm').width * ratio, h = d.size << 1; + w = w + 31 >> 5 << 5; + c.restore(); + d.aw = w; + d.ah = h; + var k, rw, rh; + if (d.rotate) { + var sr = Math.sin(d.rotate * cloudRadians); + var cr = Math.cos(d.rotate * cloudRadians); + var wcr = w * cr; + var wsr = w * sr; + var hcr = h * cr; + var hsr = h * sr; + rw = Math.max(Math.abs(wcr + hsr), Math.abs(wcr - hsr)) + 31 >> 5 << 5; + rh = ~~Math.max(Math.abs(wsr + hcr), Math.abs(wsr - hcr)); + } + if (d.size <= minTextSize || d.rotate && w * h <= d.area && rw <= maxwidth && rh <= maxheight || w * h <= d.area && w <= maxwidth && h <= maxheight) { + d.area = w * h; + return; + } + if (d.rotate && rw > maxwidth && rh > maxheight) { + k = Math.min(maxwidth / rw, maxheight / rh); + } else if (w > maxwidth || h > maxheight) { + k = Math.min(maxwidth / w, maxheight / h); + } else { + k = Math.sqrt(d.area / (d.aw * d.ah)); + } + d.size = ~~(k * d.size); + if (d.size < minSize) { + d.size = minSize; + return; + } + return measureTextWitHitByarea(d); + } + function sum(dts, callback) { + var j = dts.length; + var ressum = 0; + while (j--) { + ressum += callback(dts[j]); + } + return ressum; + } + } + }; + return CloudLayout; +});define('echarts/layout/WordCloudRectZero', ['require'], function (require) { + function ZeroArray(option) { + this.defaultOption = { type: 'RECT' }; + this._init(option); + } + ZeroArray.prototype = { + RECT: '_calculateRect', + _init: function (option) { + this._initOption(option); + this._initCanvas(); + }, + _initOption: function (option) { + for (k in option) { + this.defaultOption[k] = option[k]; + } + }, + _initCanvas: function () { + var canvas = document.createElement('canvas'); + canvas.width = 1; + canvas.height = 1; + var ratio = Math.sqrt(canvas.getContext('2d').getImageData(0, 0, 1, 1).data.length >> 2); + canvas.width = this.defaultOption.width; + canvas.height = this.defaultOption.height; + if (canvas.getContext) { + var ctx = canvas.getContext('2d'); + } + this.canvas = canvas; + this.ctx = ctx; + this.ratio = ratio; + }, + calculate: function (callback, callbackObj) { + var calType = this.defaultOption.type, calmethod = this[calType]; + this[calmethod].call(this, callback, callbackObj); + }, + _calculateReturn: function (result, callback, callbackObj) { + callback.call(callbackObj, result); + }, + _calculateRect: function (callback, callbackObj) { + var result = {}, width = this.defaultOption.width >> 5 << 5, height = this.defaultOption.height; + result.initarr = this._rectZeroArray(width * height); + result.area = width * height; + result.maxHit = height; + result.maxWit = width; + result.imgboard = this._rectBoard(width, height); + this._calculateReturn(result, callback, callbackObj); + }, + _rectBoard: function (width, height) { + var row = []; + for (var i = 0; i < height; i++) { + row.push({ + y: i, + start: 0, + end: width + }); + } + var cloumn = []; + for (var i = 0; i < width; i++) { + cloumn.push({ + x: i, + start: 0, + end: height + }); + } + return { + row: row, + cloumn: cloumn + }; + }, + _rectZeroArray: function (num) { + var a = [], n = num, i = -1; + while (++i < n) + a[i] = 0; + return a; + } + }; + return ZeroArray; +});define('echarts/chart/heatmap', [ + 'require', + './base', + '../layer/heatmap', + '../config', + '../util/ecData', + 'zrender/tool/util', + 'zrender/tool/color', + 'zrender/shape/Image', + '../chart' +], function (require) { + var ChartBase = require('./base'); + var HeatmapLayer = require('../layer/heatmap'); + var ecConfig = require('../config'); + var ecData = require('../util/ecData'); + var zrUtil = require('zrender/tool/util'); + var zrColor = require('zrender/tool/color'); + var zrImage = require('zrender/shape/Image'); + ecConfig.heatmap = { + zlevel: 0, + z: 2, + clickable: true + }; + function Heatmap(ecTheme, messageCenter, zr, option, myChart) { + ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); + this.refresh(option); + } + Heatmap.prototype = { + type: ecConfig.CHART_TYPE_HEATMAP, + refresh: function (newOption) { + this.clear(); + if (newOption) { + this.option = newOption; + this.series = newOption.series; + } + this._init(); + }, + _init: function () { + var series = this.series; + this.backupShapeList(); + var len = series.length; + for (var i = 0; i < len; ++i) { + if (series[i].type === ecConfig.CHART_TYPE_HEATMAP) { + series[i] = this.reformOption(series[i]); + var layer = new HeatmapLayer(series[i]); + var canvas = layer.getCanvas(series[i].data, this.zr.getWidth(), this.zr.getHeight()); + var image = new zrImage({ + position: [ + 0, + 0 + ], + scale: [ + 1, + 1 + ], + hoverable: this.option.hoverable, + style: { + x: 0, + y: 0, + image: canvas, + width: canvas.width, + height: canvas.height + } + }); + this.shapeList.push(image); + } + } + this.addShapeList(); + } + }; + zrUtil.inherits(Heatmap, ChartBase); + require('../chart').define('heatmap', Heatmap); + return Heatmap; +}); +var zrender = require('zrender'); +zrender.tool = { + color : require('zrender/tool/color'), + math : require('zrender/tool/math'), + util : require('zrender/tool/util'), + vector : require('zrender/tool/vector'), + area : require('zrender/tool/area'), + event : require('zrender/tool/event') +} + +zrender.animation = { + Animation : require('zrender/animation/Animation'), + Cip : require('zrender/animation/Clip'), + easing : require('zrender/animation/easing') +} +var echarts = require('echarts'); +echarts.config = require('echarts/config'); + +echarts.util = { + mapData : { + params : require('echarts/util/mapData/params') + } +} + + +require("echarts/chart/line"); + +require("echarts/chart/bar"); + +require("echarts/chart/scatter"); + +require("echarts/chart/k"); + +require("echarts/chart/pie"); + +require("echarts/chart/radar"); + +require("echarts/chart/chord"); + +require("echarts/chart/force"); + +require("echarts/chart/map"); + +require("echarts/chart/gauge"); + +require("echarts/chart/funnel"); + +require("echarts/chart/eventRiver"); + +require("echarts/chart/venn"); + +require("echarts/chart/treemap"); + +require("echarts/chart/tree"); + +require("echarts/chart/wordCloud"); + +require("echarts/chart/heatmap"); + +_global['echarts'] = echarts; +_global['zrender'] = zrender; + +})(window); diff --git a/Bootstrap.Admin/wwwroot/lib/echart/echarts-all.min.js b/Bootstrap.Admin/wwwroot/lib/echart/echarts-all.min.js new file mode 100644 index 00000000..f30ec178 --- /dev/null +++ b/Bootstrap.Admin/wwwroot/lib/echart/echarts-all.min.js @@ -0,0 +1,35 @@ +!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(".","")-0r;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 ready before init.")},__onevent:function(e){e.__echartsId=e.__echartsId||this.id;var t=e.__echartsId===this.id;switch(this._curEventType||(this._curEventType=e.type),e.type){case a.EVENT.LEGEND_SELECTED:this._onlegendSelected(e);break;case a.EVENT.DATA_ZOOM:if(!t){var i=this.component.dataZoom;i&&(i.silence(!0),i.absoluteZoom(e.zoom),i.silence(!1))}this._ondataZoom(e);break;case a.EVENT.DATA_RANGE:t&&this._ondataRange(e);break;case a.EVENT.MAGIC_TYPE_CHANGED:if(!t){var n=this.component.toolbox;n&&(n.silence(!0),n.setMagicType(e.magicType),n.silence(!1))}this._onmagicTypeChanged(e);break;case a.EVENT.DATA_VIEW_CHANGED:t&&this._ondataViewChanged(e);break;case a.EVENT.TOOLTIP_HOVER:t&&this._tooltipHover(e);break;case a.EVENT.RESTORE:this._onrestore();break;case a.EVENT.REFRESH:t&&this._onrefresh(e);break;case a.EVENT.TOOLTIP_IN_GRID:case a.EVENT.TOOLTIP_OUT_GRID:if(t){if(this._connected){var o=this.component.grid;o&&(e.x=(e.event.zrenderX-o.getX())/o.getWidth(),e.y=(e.event.zrenderY-o.getY())/o.getHeight())}}else{var o=this.component.grid;o&&this._zr.trigger("mousemove",{connectTrigger:!0,zrenderX:o.getX()+e.x*o.getWidth(),zrenderY:o.getY()+e.y*o.getHeight()})}}if(this._connected&&t&&this._curEventType===e.type){for(var r in this._connected)this._connected[r].connectedEventHandler(e);this._curEventType=null}(!t||!this._connected&&t)&&(this._curEventType=null)},_onclick:function(e){if(n(this,"onclick",e),e.target){var t=this._eventPackage(e.target);t&&null!=t.seriesIndex&&this._messageCenter.dispatch(a.EVENT.CLICK,e.event,t,this)}},_ondblclick:function(e){if(n(this,"ondblclick",e),e.target){var t=this._eventPackage(e.target);t&&null!=t.seriesIndex&&this._messageCenter.dispatch(a.EVENT.DBLCLICK,e.event,t,this)}},_onmouseover:function(e){if(e.target){var t=this._eventPackage(e.target);t&&null!=t.seriesIndex&&this._messageCenter.dispatch(a.EVENT.HOVER,e.event,t,this)}},_onmouseout:function(e){if(e.target){var t=this._eventPackage(e.target);t&&null!=t.seriesIndex&&this._messageCenter.dispatch(a.EVENT.MOUSEOUT,e.event,t,this)}},_ondragstart:function(e){this._status={dragIn:!1,dragOut:!1,needRefresh:!1},n(this,"ondragstart",e)},_ondragenter:function(e){n(this,"ondragenter",e)},_ondragover:function(e){n(this,"ondragover",e)},_ondragleave:function(e){n(this,"ondragleave",e)},_ondrop:function(e){n(this,"ondrop",e,this._status),this._island.ondrop(e,this._status)},_ondragend:function(e){if(n(this,"ondragend",e,this._status),this._timeline&&this._timeline.ondragend(e,this._status),this._island.ondragend(e,this._status),this._status.needRefresh){this._syncBackupData(this._option);var t=this._messageCenter;t.dispatch(a.EVENT.DATA_CHANGED,e.event,this._eventPackage(e.target),this),t.dispatch(a.EVENT.REFRESH,null,null,this)}},_onlegendSelected:function(e){this._status.needRefresh=!1,n(this,"onlegendSelected",e,this._status),this._status.needRefresh&&this._messageCenter.dispatch(a.EVENT.REFRESH,null,null,this)},_ondataZoom:function(e){this._status.needRefresh=!1,n(this,"ondataZoom",e,this._status),this._status.needRefresh&&this._messageCenter.dispatch(a.EVENT.REFRESH,null,null,this)},_ondataRange:function(e){this._clearEffect(),this._status.needRefresh=!1,n(this,"ondataRange",e,this._status),this._status.needRefresh&&this._zr.refreshNextFrame()},_onmagicTypeChanged:function(){this._clearEffect(),this._render(this._toolbox.getMagicOption())},_ondataViewChanged:function(e){this._syncBackupData(e.option),this._messageCenter.dispatch(a.EVENT.DATA_CHANGED,null,e,this),this._messageCenter.dispatch(a.EVENT.REFRESH,null,null,this)},_tooltipHover:function(e){var t=[];n(this,"ontooltipHover",e,t)},_onrestore:function(){this.restore()},_onrefresh:function(e){this._refreshInside=!0,this.refresh(e),this._refreshInside=!1},_syncBackupData:function(e){this.component.dataZoom&&this.component.dataZoom.syncBackupData(e)},_eventPackage:function(t){if(t){var i=e("./util/ecData"),n=i.get(t,"seriesIndex"),a=i.get(t,"dataIndex");return a=-1!=n&&this.component.dataZoom?this.component.dataZoom.getRealDataIndex(n,a):a,{seriesIndex:n,seriesName:(i.get(t,"series")||{}).name,dataIndex:a,data:i.get(t,"data"),name:i.get(t,"name"),value:i.get(t,"value"),special:i.get(t,"special")}}},_noDataCheck:function(e){for(var t=e.series,i=0,n=t.length;n>i;i++)if(t[i].type==a.CHART_TYPE_MAP||t[i].data&&t[i].data.length>0||t[i].markPoint&&t[i].markPoint.data&&t[i].markPoint.data.length>0||t[i].markLine&&t[i].markLine.data&&t[i].markLine.data.length>0||t[i].nodes&&t[i].nodes.length>0||t[i].links&&t[i].links.length>0||t[i].matrix&&t[i].matrix.length>0||t[i].eventList&&t[i].eventList.length>0)return!1;var o=this._option&&this._option.noDataLoadingOption||this._themeConfig.noDataLoadingOption||a.noDataLoadingOption||{text:this._option&&this._option.noDataText||this._themeConfig.noDataText||a.noDataText,effect:this._option&&this._option.noDataEffect||this._themeConfig.noDataEffect||a.noDataEffect};return this.clear(),this.showLoading(o),!0},_render:function(t){if(this._mergeGlobalConifg(t),!this._noDataCheck(t)){var i=t.backgroundColor;if(i)if(l||-1==i.indexOf("rgba"))this.dom.style.backgroundColor=i;else{var n=i.split(",");this.dom.style.filter="alpha(opacity="+100*n[3].substring(0,n[3].lastIndexOf(")"))+")",n.length=3,n[0]=n[0].replace("a",""),this.dom.style.backgroundColor=n.join(",")+")"}this._zr.clearAnimation(),this._chartList=[];var o=e("./chart"),r=e("./component");(t.xAxis||t.yAxis)&&(t.grid=t.grid||{},t.dataZoom=t.dataZoom||{});for(var s,h,m,V=["title","legend","tooltip","dataRange","roamController","grid","dataZoom","xAxis","yAxis","polar"],U=0,d=V.length;d>U;U++)h=V[U],m=this.component[h],t[h]?(m?m.refresh&&m.refresh(t):(s=r.get(/^[xy]Axis$/.test(h)?"axis":h),m=new s(this._themeConfig,this._messageCenter,this._zr,t,this,h),this.component[h]=m),this._chartList.push(m)):m&&(m.dispose(),this.component[h]=null,delete this.component[h]);for(var p,c,u,y={},U=0,d=t.series.length;d>U;U++)c=t.series[U].type,c?y[c]||(y[c]=!0,p=o.get(c),p?(this.chart[c]?(u=this.chart[c],u.refresh(t)):u=new p(this._themeConfig,this._messageCenter,this._zr,t,this),this._chartList.push(u),this.chart[c]=u):console.error(c+" has not been required.")):console.error("series["+U+"] chart type has not been defined.");for(c in this.chart)c==a.CHART_TYPE_ISLAND||y[c]||(this.chart[c].dispose(),this.chart[c]=null,delete this.chart[c]);this.component.grid&&this.component.grid.refixAxisShape(this.component),this._island.refresh(t),this._toolbox.refresh(t),t.animation&&!t.renderAsImage?this._zr.refresh():this._zr.render();var g="IMG"+this.id,b=document.getElementById(g);t.renderAsImage&&l?(b?b.src=this.getDataURL(t.renderAsImage):(b=this.getImage(t.renderAsImage),b.id=g,b.style.position="absolute",b.style.left=0,b.style.top=0,this.dom.firstChild.appendChild(b)),this.un(),this._zr.un(),this._disposeChartList(),this._zr.clear()):b&&b.parentNode.removeChild(b),b=null,this._option=t}},restore:function(){this._clearEffect(),this._option=o.clone(this._optionRestore),this._disposeChartList(),this._island.clear(),this._toolbox.reset(this._option,!0),this._render(this._option)},refresh:function(e){this._clearEffect(),e=e||{};var t=e.option;!this._refreshInside&&t&&(t=this.getOption(),o.merge(t,e.option,!0),o.merge(this._optionRestore,e.option,!0),this._toolbox.reset(t)),this._island.refresh(t),this._toolbox.refresh(t),this._zr.clearAnimation();for(var i=0,n=this._chartList.length;n>i;i++)this._chartList[i].refresh&&this._chartList[i].refresh(t);this.component.grid&&this.component.grid.refixAxisShape(this.component),this._zr.refresh()},_disposeChartList:function(){this._clearEffect(),this._zr.clearAnimation();for(var e=this._chartList.length;e--;){var t=this._chartList[e];if(t){var i=t.type;this.chart[i]&&delete this.chart[i],this.component[i]&&delete this.component[i],t.dispose&&t.dispose()}}this._chartList=[]},_mergeGlobalConifg:function(t){for(var i=["backgroundColor","calculable","calculableColor","calculableHolderColor","nameConnector","valueConnector","animation","animationThreshold","animationDuration","animationDurationUpdate","animationEasing","addDataAnimation","symbolList","DRAG_ENABLE_TIME"],n=i.length;n--;){var o=i[n];null==t[o]&&(t[o]=null!=this._themeConfig[o]?this._themeConfig[o]:a[o])}var r=t.color;r&&r.length||(r=this._themeConfig.color||a.color),this._zr.getColor=function(t){var i=e("zrender/tool/color");return i.getColor(t,r)},l||(t.animation=!1,t.addDataAnimation=!1)},setOption:function(e,t){return e.timeline?this._setTimelineOption(e):this._setOption(e,t)},_setOption:function(e,t,i){return!t&&this._option?this._option=o.merge(this.getOption(),o.clone(e),!0):(this._option=o.clone(e),!i&&this._timeline&&this._timeline.dispose()),this._optionRestore=o.clone(this._option),this._option.series&&0!==this._option.series.length?(this.component.dataZoom&&(this._option.dataZoom||this._option.toolbox&&this._option.toolbox.feature&&this._option.toolbox.feature.dataZoom&&this._option.toolbox.feature.dataZoom.show)&&this.component.dataZoom.syncOption(this._option),this._toolbox.reset(this._option),this._render(this._option),this):void this._zr.clear()},getOption:function(){function e(e){var n=i._optionRestore[e];if(n)if(n instanceof Array)for(var a=n.length;a--;)t[e][a].data=o.clone(n[a].data);else t[e].data=o.clone(n.data)}var t=o.clone(this._option),i=this;return e("xAxis"),e("yAxis"),e("series"),t},setSeries:function(e,t){return t?(this._option.series=e,this.setOption(this._option,t)):this.setOption({series:e}),this},getSeries:function(){return this.getOption().series},_setTimelineOption:function(t){this._timeline&&this._timeline.dispose();var i=e("./component/timeline"),n=new i(this._themeConfig,this._messageCenter,this._zr,t,this);return this._timeline=n,this.component.timeline=this._timeline,this},addData:function(e,t,i,n,r){function s(){if(V._zr){V._zr.clearAnimation();for(var e=0,t=X.length;t>e;e++)X[e].motionlessOnce=h.addDataAnimation&&X[e].addDataAnimation;V._messageCenter.dispatch(a.EVENT.REFRESH,null,{option:h},V)}}for(var l=e instanceof Array?e:[[e,t,i,n,r]],h=this.getOption(),m=this._optionRestore,V=this,U=0,d=l.length;d>U;U++){e=l[U][0],t=l[U][1],i=l[U][2],n=l[U][3],r=l[U][4];var p=m.series[e],c=i?"unshift":"push",u=i?"pop":"shift";if(p){var y=p.data,g=h.series[e].data;if(y[c](t),g[c](t),n||(y[u](),t=g[u]()),null!=r){var b,f;if(p.type===a.CHART_TYPE_PIE&&(b=m.legend)&&(f=b.data)){var k=h.legend.data;if(f[c](r),k[c](r),!n){var x=o.indexOf(f,t.name);-1!=x&&f.splice(x,1),x=o.indexOf(k,t.name),-1!=x&&k.splice(x,1)}}else if(null!=m.xAxis&&null!=m.yAxis){var _,L,W=p.xAxisIndex||0;(null==m.xAxis[W].type||"category"===m.xAxis[W].type)&&(_=m.xAxis[W].data,L=h.xAxis[W].data,_[c](r),L[c](r),n||(_[u](),L[u]())),W=p.yAxisIndex||0,"category"===m.yAxis[W].type&&(_=m.yAxis[W].data,L=h.yAxis[W].data,_[c](r),L[c](r),n||(_[u](),L[u]()))}}this._option.series[e].data=h.series[e].data}}this._zr.clearAnimation();for(var X=this._chartList,v=0,w=function(){v--,0===v&&s()},U=0,d=X.length;d>U;U++)h.addDataAnimation&&X[U].addDataAnimation&&(v++,X[U].addDataAnimation(l,w));return this.component.dataZoom&&this.component.dataZoom.syncOption(h),this._option=h,h.addDataAnimation||setTimeout(s,0),this},addMarkPoint:function(e,t){return this._addMark(e,t,"markPoint")},addMarkLine:function(e,t){return this._addMark(e,t,"markLine")},_addMark:function(e,t,i){var n,a=this._option.series;if(a&&(n=a[e])){var r=this._optionRestore.series,s=r[e],l=n[i],h=s[i];l=n[i]=l||{data:[]},h=s[i]=h||{data:[]};for(var m in t)"data"===m?(l.data=l.data.concat(t.data),h.data=h.data.concat(t.data)):"object"!=typeof t[m]||null==l[m]?l[m]=h[m]=t[m]:(o.merge(l[m],t[m],!0),o.merge(h[m],t[m],!0));var V=this.chart[n.type];V&&V.addMark(e,t,i)}return this},delMarkPoint:function(e,t){return this._delMark(e,t,"markPoint")},delMarkLine:function(e,t){return this._delMark(e,t,"markLine")},_delMark:function(e,t,i){var n,a,o,r=this._option.series;if(!(r&&(n=r[e])&&(a=n[i])&&(o=a.data)))return this;t=t.split(" > ");for(var s=-1,l=0,h=o.length;h>l;l++){var m=o[l];if(m instanceof Array){if(m[0].name===t[0]&&m[1].name===t[1]){s=l;break}}else if(m.name===t[0]){s=l;break}}if(s>-1){o.splice(s,1),this._optionRestore.series[e][i].data.splice(s,1);var V=this.chart[n.type];V&&V.delMark(e,t.join(" > "),i)}return this},getDom:function(){return this.dom},getZrender:function(){return this._zr},getDataURL:function(e){if(!l)return"";if(0===this._chartList.length){var t="IMG"+this.id,i=document.getElementById(t);if(i)return i.src}var n=this.component.tooltip;switch(n&&n.hideTip(),e){case"jpeg":break;default:e="png"}var a=this._option.backgroundColor;return a&&"rgba(0,0,0,0)"===a.replace(" ","")&&(a="#fff"),this._zr.toDataURL("image/"+e,a)},getImage:function(e){var t=this._optionRestore.title,i=document.createElement("img");return i.src=this.getDataURL(e),i.title=t&&t.text||"ECharts",i},getConnectedDataURL:function(t){if(!this.isConnected())return this.getDataURL(t);var i=this.dom,n={self:{img:this.getDataURL(t),left:i.offsetLeft,top:i.offsetTop,right:i.offsetLeft+i.offsetWidth,bottom:i.offsetTop+i.offsetHeight}},a=n.self.left,o=n.self.top,r=n.self.right,s=n.self.bottom;for(var l in this._connected)i=this._connected[l].getDom(),n[l]={img:this._connected[l].getDataURL(t),left:i.offsetLeft,top:i.offsetTop,right:i.offsetLeft+i.offsetWidth,bottom:i.offsetTop+i.offsetHeight},a=Math.min(a,n[l].left),o=Math.min(o,n[l].top),r=Math.max(r,n[l].right),s=Math.max(s,n[l].bottom);var h=document.createElement("div");h.style.position="absolute",h.style.left="-4000px",h.style.width=r-a+"px",h.style.height=s-o+"px",document.body.appendChild(h);var m=e("zrender").init(h),V=e("zrender/shape/Image");for(var l in n)m.addShape(new V({style:{x:n[l].left-a,y:n[l].top-o,image:n[l].img}}));m.render();var U=this._option.backgroundColor;U&&"rgba(0,0,0,0)"===U.replace(/ /g,"")&&(U="#fff");var d=m.toDataURL("image/png",U);return setTimeout(function(){m.dispose(),h.parentNode.removeChild(h),h=null},100),d},getConnectedImage:function(e){var t=this._optionRestore.title,i=document.createElement("img");return i.src=this.getConnectedDataURL(e),i.title=t&&t.text||"ECharts",i},on:function(e,t){return this._messageCenterOutSide.bind(e,t,this),this},un:function(e,t){return this._messageCenterOutSide.unbind(e,t),this},connect:function(e){if(!e)return this;if(this._connected||(this._connected={}),e instanceof Array)for(var t=0,i=e.length;i>t;t++)this._connected[e[t].id]=e[t];else this._connected[e.id]=e;return this},disConnect:function(e){if(!e||!this._connected)return this;if(e instanceof Array)for(var t=0,i=e.length;i>t;t++)delete this._connected[e[t].id];else delete this._connected[e.id];for(var n in this._connected)return this;return this._connected=!1,this},connectedEventHandler:function(e){e.__echartsId!=this.id&&this._onevent(e)},isConnected:function(){return!!this._connected},showLoading:function(t){var i={bar:e("zrender/loadingEffect/Bar"),bubble:e("zrender/loadingEffect/Bubble"),dynamicLine:e("zrender/loadingEffect/DynamicLine"),ring:e("zrender/loadingEffect/Ring"),spin:e("zrender/loadingEffect/Spin"),whirling:e("zrender/loadingEffect/Whirling")};this._toolbox.hideDataView(),t=t||{};var n=t.textStyle||{};t.textStyle=n;var r=o.merge(o.merge(o.clone(n),this._themeConfig.textStyle),a.textStyle);n.textFont=r.fontStyle+" "+r.fontWeight+" "+r.fontSize+"px "+r.fontFamily,n.text=t.text||this._option&&this._option.loadingText||this._themeConfig.loadingText||a.loadingText,null!=t.x&&(n.x=t.x),null!=t.y&&(n.y=t.y),t.effectOption=t.effectOption||{},t.effectOption.textStyle=n;var s=t.effect;return("string"==typeof s||null==s)&&(s=i[t.effect||this._option&&this._option.loadingEffect||this._themeConfig.loadingEffect||a.loadingEffect]||i.spin),this._zr.showLoading(new s(t.effectOption)),this},hideLoading:function(){return this._zr.hideLoading(),this},setTheme:function(t){if(t){if("string"==typeof t)switch(t){case"macarons":t=e("./theme/macarons");break;case"infographic":t=e("./theme/infographic");break;default:t={}}else t=t||{};this._themeConfig=t}if(!l){var i=this._themeConfig.textStyle;i&&i.fontFamily&&i.fontFamily2&&(i.fontFamily=i.fontFamily2),i=a.textStyle,i.fontFamily=i.fontFamily2}this._timeline&&this._timeline.setTheme(!0),this._optionRestore&&this.restore()},resize:function(){var e=this;return function(){if(e._clearEffect(),e._zr.resize(),e._option&&e._option.renderAsImage&&l)return e._render(e._option),e;e._zr.clearAnimation(),e._island.resize(),e._toolbox.resize(),e._timeline&&e._timeline.resize();for(var t=0,i=e._chartList.length;i>t;t++)e._chartList[t].resize&&e._chartList[t].resize();return e.component.grid&&e.component.grid.refixAxisShape(e.component),e._zr.refresh(),e._messageCenter.dispatch(a.EVENT.RESIZE,null,null,e),e}},_clearEffect:function(){this._zr.modLayer(a.EFFECT_ZLEVEL,{motionBlur:!1}),this._zr.painter.clearLayer(a.EFFECT_ZLEVEL)},clear:function(){return this._disposeChartList(),this._zr.clear(),this._option={},this._optionRestore={},this.dom.style.backgroundColor=null,this},dispose:function(){var e=this.dom.getAttribute(V);e&&delete m[e],this._island.dispose(),this._toolbox.dispose(),this._timeline&&this._timeline.dispose(),this._messageCenter.unbind(),this.clear(),this._zr.dispose(),this._zr=null}},s}),i("echarts/config",[],function(){var e={CHART_TYPE_LINE:"line",CHART_TYPE_BAR:"bar",CHART_TYPE_SCATTER:"scatter",CHART_TYPE_PIE:"pie",CHART_TYPE_RADAR:"radar",CHART_TYPE_VENN:"venn",CHART_TYPE_TREEMAP:"treemap",CHART_TYPE_TREE:"tree",CHART_TYPE_MAP:"map",CHART_TYPE_K:"k",CHART_TYPE_ISLAND:"island",CHART_TYPE_FORCE:"force",CHART_TYPE_CHORD:"chord",CHART_TYPE_GAUGE:"gauge",CHART_TYPE_FUNNEL:"funnel",CHART_TYPE_EVENTRIVER:"eventRiver",CHART_TYPE_WORDCLOUD:"wordCloud",CHART_TYPE_HEATMAP:"heatmap",COMPONENT_TYPE_TITLE:"title",COMPONENT_TYPE_LEGEND:"legend",COMPONENT_TYPE_DATARANGE:"dataRange",COMPONENT_TYPE_DATAVIEW:"dataView",COMPONENT_TYPE_DATAZOOM:"dataZoom",COMPONENT_TYPE_TOOLBOX:"toolbox",COMPONENT_TYPE_TOOLTIP:"tooltip",COMPONENT_TYPE_GRID:"grid",COMPONENT_TYPE_AXIS:"axis",COMPONENT_TYPE_POLAR:"polar",COMPONENT_TYPE_X_AXIS:"xAxis",COMPONENT_TYPE_Y_AXIS:"yAxis",COMPONENT_TYPE_AXIS_CATEGORY:"categoryAxis",COMPONENT_TYPE_AXIS_VALUE:"valueAxis",COMPONENT_TYPE_TIMELINE:"timeline",COMPONENT_TYPE_ROAMCONTROLLER:"roamController",backgroundColor:"rgba(0,0,0,0)",color:["#ff7f50","#87cefa","#da70d6","#32cd32","#6495ed","#ff69b4","#ba55d3","#cd5c5c","#ffa500","#40e0d0","#1e90ff","#ff6347","#7b68ee","#00fa9a","#ffd700","#6699FF","#ff6666","#3cb371","#b8860b","#30e0e0"],markPoint:{clickable:!0,symbol:"pin",symbolSize:10,large:!1,effect:{show:!1,loop:!0,period:15,type:"scale",scaleSize:2,bounceDistance:10},itemStyle:{normal:{borderWidth:2,label:{show:!0,position:"inside"}},emphasis:{label:{show:!0}}}},markLine:{clickable:!0,symbol:["circle","arrow"],symbolSize:[2,4],smoothness:.2,precision:2,effect:{show:!1,loop:!0,period:15,scaleSize:2},bundling:{enable:!1,maxTurningAngle:45},itemStyle:{normal:{borderWidth:1.5,label:{show:!0,position:"end"},lineStyle:{type:"dashed"}},emphasis:{label:{show:!1},lineStyle:{}}}},textStyle:{decoration:"none",fontFamily:"Arial, Verdana, sans-serif",fontFamily2:"微软雅黑",fontSize:12,fontStyle:"normal",fontWeight:"normal"},EVENT:{REFRESH:"refresh",RESTORE:"restore",RESIZE:"resize",CLICK:"click",DBLCLICK:"dblclick",HOVER:"hover",MOUSEOUT:"mouseout",DATA_CHANGED:"dataChanged",DATA_ZOOM:"dataZoom",DATA_RANGE:"dataRange",DATA_RANGE_SELECTED:"dataRangeSelected",DATA_RANGE_HOVERLINK:"dataRangeHoverLink",LEGEND_SELECTED:"legendSelected",LEGEND_HOVERLINK:"legendHoverLink",MAP_SELECTED:"mapSelected",PIE_SELECTED:"pieSelected",MAGIC_TYPE_CHANGED:"magicTypeChanged",DATA_VIEW_CHANGED:"dataViewChanged",TIMELINE_CHANGED:"timelineChanged",MAP_ROAM:"mapRoam",FORCE_LAYOUT_END:"forceLayoutEnd",TOOLTIP_HOVER:"tooltipHover",TOOLTIP_IN_GRID:"tooltipInGrid",TOOLTIP_OUT_GRID:"tooltipOutGrid",ROAMCONTROLLER:"roamController"},DRAG_ENABLE_TIME:120,EFFECT_ZLEVEL:10,effectBlendAlpha:.95,symbolList:["circle","rectangle","triangle","diamond","emptyCircle","emptyRectangle","emptyTriangle","emptyDiamond"],loadingEffect:"spin",loadingText:"数据读取中...",noDataEffect:"bubble",noDataText:"暂无数据",calculable:!1,calculableColor:"rgba(255,165,0,0.6)",calculableHolderColor:"#ccc",nameConnector:" & ",valueConnector:": ",animation:!0,addDataAnimation:!0,animationThreshold:2e3,animationDuration:2e3,animationDurationUpdate:500,animationEasing:"ExponentialOut"};return e}),i("zrender/tool/util",["require","../dep/excanvas"],function(e){function t(e){return e&&1===e.nodeType&&"string"==typeof e.nodeName}function i(e){if("object"==typeof e&&null!==e){var n=e;if(e instanceof Array){n=[];for(var a=0,o=e.length;o>a;a++)n[a]=i(e[a])}else if(!y[g.call(e)]&&!t(e)){n={};for(var r in e)e.hasOwnProperty(r)&&(n[r]=i(e[r]))}return n}return e}function n(e,i,n,o){if(i.hasOwnProperty(n)){var r=e[n];"object"!=typeof r||y[g.call(r)]||t(r)?!o&&n in e||(e[n]=i[n]):a(e[n],i[n],o)}}function a(e,t,i){for(var a in t)n(e,t,a,i);return e}function o(){if(!U)if(e("../dep/excanvas"),window.G_vmlCanvasManager){var t=document.createElement("div");t.style.position="absolute",t.style.top="-1000px",document.body.appendChild(t),U=G_vmlCanvasManager.initElement(t).getContext("2d")}else U=document.createElement("canvas").getContext("2d");return U}function r(e,t){if(e.indexOf)return e.indexOf(t);for(var i=0,n=e.length;n>i;i++)if(e[i]===t)return i;return-1}function s(e,t){function i(){}var n=e.prototype;i.prototype=t.prototype,e.prototype=new i;for(var a in n)e.prototype[a]=n[a];e.constructor=e}function l(e,t,i){if(e&&t)if(e.forEach&&e.forEach===p)e.forEach(t,i);else if(e.length===+e.length)for(var n=0,a=e.length;a>n;n++)t.call(i,e[n],n,e);else for(var o in e)e.hasOwnProperty(o)&&t.call(i,e[o],o,e)}function h(e,t,i){if(e&&t){if(e.map&&e.map===c)return e.map(t,i);for(var n=[],a=0,o=e.length;o>a;a++)n.push(t.call(i,e[a],a,e));return n}}function m(e,t,i){if(e&&t){if(e.filter&&e.filter===u)return e.filter(t,i);for(var n=[],a=0,o=e.length;o>a;a++)t.call(i,e[a],a,e)&&n.push(e[a]);return n}}function V(e,t){return function(){e.apply(t,arguments)}}var U,d=Array.prototype,p=d.forEach,c=d.map,u=d.filter,y={"[object Function]":1,"[object RegExp]":1,"[object Date]":1,"[object Error]":1,"[object CanvasGradient]":1},g=Object.prototype.toString;return{inherits:s,clone:i,merge:a,getContext:o,indexOf:r,each:l,map:h,filter:m,bind:V}}),i("zrender/tool/event",["require","../mixin/Eventful"],function(e){"use strict";function t(e){return"undefined"!=typeof e.zrenderX&&e.zrenderX||"undefined"!=typeof e.offsetX&&e.offsetX||"undefined"!=typeof e.layerX&&e.layerX||"undefined"!=typeof e.clientX&&e.clientX}function i(e){return"undefined"!=typeof e.zrenderY&&e.zrenderY||"undefined"!=typeof e.offsetY&&e.offsetY||"undefined"!=typeof e.layerY&&e.layerY||"undefined"!=typeof e.clientY&&e.clientY}function n(e){return"undefined"!=typeof e.zrenderDelta&&e.zrenderDelta||"undefined"!=typeof e.wheelDelta&&e.wheelDelta||"undefined"!=typeof e.detail&&-e.detail}var a=e("../mixin/Eventful"),o="function"==typeof window.addEventListener?function(e){e.preventDefault(),e.stopPropagation(),e.cancelBubble=!0}:function(e){e.returnValue=!1,e.cancelBubble=!0};return{getX:t,getY:i,getDelta:n,stop:o,Dispatcher:a}}),i("zrender/tool/env",[],function(){function e(e){var t=this.os={},i=this.browser={},n=e.match(/Web[kK]it[\/]{0,1}([\d.]+)/),a=e.match(/(Android);?[\s\/]+([\d.]+)?/),o=e.match(/(iPad).*OS\s([\d_]+)/),r=e.match(/(iPod)(.*OS\s([\d_]+))?/),s=!o&&e.match(/(iPhone\sOS)\s([\d_]+)/),l=e.match(/(webOS|hpwOS)[\s\/]([\d.]+)/),h=l&&e.match(/TouchPad/),m=e.match(/Kindle\/([\d.]+)/),V=e.match(/Silk\/([\d._]+)/),U=e.match(/(BlackBerry).*Version\/([\d.]+)/),d=e.match(/(BB10).*Version\/([\d.]+)/),p=e.match(/(RIM\sTablet\sOS)\s([\d.]+)/),c=e.match(/PlayBook/),u=e.match(/Chrome\/([\d.]+)/)||e.match(/CriOS\/([\d.]+)/),y=e.match(/Firefox\/([\d.]+)/),g=e.match(/MSIE ([\d.]+)/),b=n&&e.match(/Mobile\//)&&!u,f=e.match(/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/)&&!u,g=e.match(/MSIE\s([\d.]+)/);return(i.webkit=!!n)&&(i.version=n[1]),a&&(t.android=!0,t.version=a[2]),s&&!r&&(t.ios=t.iphone=!0,t.version=s[2].replace(/_/g,".")),o&&(t.ios=t.ipad=!0,t.version=o[2].replace(/_/g,".")),r&&(t.ios=t.ipod=!0,t.version=r[3]?r[3].replace(/_/g,"."):null),l&&(t.webos=!0,t.version=l[2]),h&&(t.touchpad=!0),U&&(t.blackberry=!0,t.version=U[2]),d&&(t.bb10=!0,t.version=d[2]),p&&(t.rimtabletos=!0,t.version=p[2]),c&&(i.playbook=!0),m&&(t.kindle=!0,t.version=m[1]),V&&(i.silk=!0,i.version=V[1]),!V&&t.android&&e.match(/Kindle Fire/)&&(i.silk=!0),u&&(i.chrome=!0,i.version=u[1]),y&&(i.firefox=!0,i.version=y[1]),g&&(i.ie=!0,i.version=g[1]),b&&(e.match(/Safari/)||t.ios)&&(i.safari=!0),f&&(i.webview=!0),g&&(i.ie=!0,i.version=g[1]),t.tablet=!!(o||c||a&&!e.match(/Mobile/)||y&&e.match(/Tablet/)||g&&!e.match(/Phone/)&&e.match(/Touch/)),t.phone=!(t.tablet||t.ipod||!(a||s||l||U||d||u&&e.match(/Android/)||u&&e.match(/CriOS\/([\d.]+)/)||y&&e.match(/Mobile/)||g&&e.match(/Touch/))),{browser:i,os:t,canvasSupported:document.createElement("canvas").getContext?!0:!1}}return e(navigator.userAgent)}),i("zrender",["zrender/zrender"],function(e){return e}),i("zrender/zrender",["require","./dep/excanvas","./tool/util","./tool/log","./tool/guid","./Handler","./Painter","./Storage","./animation/Animation","./tool/env"],function(e){function t(e){return function(){e._needsRefreshNextFrame&&e.refresh()}}e("./dep/excanvas");var i=e("./tool/util"),n=e("./tool/log"),a=e("./tool/guid"),o=e("./Handler"),r=e("./Painter"),s=e("./Storage"),l=e("./animation/Animation"),h={},m={};m.version="2.1.1",m.init=function(e){var t=new V(a(),e);return h[t.id]=t,t},m.dispose=function(e){if(e)e.dispose();else{for(var t in h)h[t].dispose();h={}}return m},m.getInstance=function(e){return h[e]},m.delInstance=function(e){return delete h[e],m};var V=function(i,n){this.id=i,this.env=e("./tool/env"),this.storage=new s,this.painter=new r(n,this.storage),this.handler=new o(n,this.storage,this.painter),this.animation=new l({stage:{update:t(this)}}),this.animation.start();var a=this;this.painter.refreshNextFrame=function(){a.refreshNextFrame()},this._needsRefreshNextFrame=!1;var a=this,h=this.storage,m=h.delFromMap;h.delFromMap=function(e){var t=h.get(e);a.stopAnimation(t),m.call(h,e)}};return V.prototype.getId=function(){return this.id},V.prototype.addShape=function(e){return this.addElement(e),this},V.prototype.addGroup=function(e){return this.addElement(e),this},V.prototype.delShape=function(e){return this.delElement(e),this},V.prototype.delGroup=function(e){return this.delElement(e),this},V.prototype.modShape=function(e,t){return this.modElement(e,t),this},V.prototype.modGroup=function(e,t){return this.modElement(e,t),this},V.prototype.addElement=function(e){return this.storage.addRoot(e),this._needsRefreshNextFrame=!0,this},V.prototype.delElement=function(e){return this.storage.delRoot(e),this._needsRefreshNextFrame=!0,this},V.prototype.modElement=function(e,t){return this.storage.mod(e,t),this._needsRefreshNextFrame=!0,this},V.prototype.modLayer=function(e,t){return this.painter.modLayer(e,t),this._needsRefreshNextFrame=!0,this},V.prototype.addHoverShape=function(e){return this.storage.addHover(e),this},V.prototype.render=function(e){return this.painter.render(e),this._needsRefreshNextFrame=!1,this},V.prototype.refresh=function(e){return this.painter.refresh(e),this._needsRefreshNextFrame=!1,this},V.prototype.refreshNextFrame=function(){return this._needsRefreshNextFrame=!0,this},V.prototype.refreshHover=function(e){return this.painter.refreshHover(e),this},V.prototype.refreshShapes=function(e,t){return this.painter.refreshShapes(e,t),this},V.prototype.resize=function(){return this.painter.resize(),this},V.prototype.animate=function(e,t,a){var o=this;if("string"==typeof e&&(e=this.storage.get(e)),e){var r;if(t){for(var s=t.split("."),l=e,h=0,m=s.length;m>h;h++)l&&(l=l[s[h]]);l&&(r=l)}else r=e;if(!r)return void n('Property "'+t+'" is not existed in element '+e.id); + +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,text:t+this._valueConnector+i,textFont:r},draggable:!0,hoverable:!0,onmousewheel:this.shapeHandler.onmousewheel,_type:"island"};"#fff"===l.style.color&&(l.style.color=e.style.strokeColor),this.setCalculable(l),l.dragEnableTime=0,o.pack(l,{name:a},-1,i,-1,t),l=new n(l),this.shapeList.push(l),this.zr.addShape(l)},del:function(e){this.zr.delShape(e.id);for(var t=[],i=0,n=this.shapeList.length;n>i;i++)this.shapeList[i].id!=e.id&&t.push(this.shapeList[i]);this.shapeList=t},ondrop:function(e,t){if(this.isDrop&&e.target){var i=e.target,n=e.dragged;this._combine(i,n),this.zr.modShape(i.id),t.dragIn=!0,this.isDrop=!1}},ondragend:function(e,t){var i=e.target;this.isDragend?t.dragIn&&(this.del(i),t.needRefresh=!0):t.dragIn||(i.style.x=s.getX(e.event),i.style.y=s.getY(e.event),this.add(i),t.needRefresh=!0),this.isDragend=!1}},r.inherits(t,i),e("../chart").define("island",t),t}),i("echarts/component/toolbox",["require","./base","zrender/shape/Line","zrender/shape/Image","zrender/shape/Rectangle","../util/shape/Icon","../config","zrender/tool/util","zrender/config","zrender/tool/event","./dataView","../component"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.dom=o.dom,this._magicType={},this._magicMap={},this._isSilence=!1,this._iconList,this._iconShapeMap={},this._featureTitle={},this._featureIcon={},this._featureColor={},this._featureOption={},this._enableColor="red",this._disableColor="#ccc",this._markShapeList=[];var r=this;r._onMark=function(e){r.__onMark(e)},r._onMarkUndo=function(e){r.__onMarkUndo(e)},r._onMarkClear=function(e){r.__onMarkClear(e)},r._onDataZoom=function(e){r.__onDataZoom(e)},r._onDataZoomReset=function(e){r.__onDataZoomReset(e)},r._onDataView=function(e){r.__onDataView(e)},r._onRestore=function(e){r.__onRestore(e)},r._onSaveAsImage=function(e){r.__onSaveAsImage(e)},r._onMagicType=function(e){r.__onMagicType(e)},r._onCustomHandler=function(e){r.__onCustomHandler(e)},r._onmousemove=function(e){return r.__onmousemove(e)},r._onmousedown=function(e){return r.__onmousedown(e)},r._onmouseup=function(e){return r.__onmouseup(e)},r._onclick=function(e){return r.__onclick(e)}}var i=e("./base"),n=e("zrender/shape/Line"),a=e("zrender/shape/Image"),o=e("zrender/shape/Rectangle"),r=e("../util/shape/Icon"),s=e("../config");s.toolbox={zlevel:0,z:6,show:!1,orient:"horizontal",x:"right",y:"top",color:["#1e90ff","#22bb22","#4b0082","#d2691e"],disableColor:"#ddd",effectiveColor:"red",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,itemSize:16,showTitle:!0,feature:{mark:{show:!1,title:{mark:"辅助线开关",markUndo:"删除辅助线",markClear:"清空辅助线"},lineStyle:{width:1,color:"#1e90ff",type:"dashed"}},dataZoom:{show:!1,title:{dataZoom:"区域缩放",dataZoomReset:"区域缩放后退"}},dataView:{show:!1,title:"数据视图",readOnly:!1,lang:["数据视图","关闭","刷新"]},magicType:{show:!1,title:{line:"折线图切换",bar:"柱形图切换",stack:"堆积",tiled:"平铺",force:"力导向布局图切换",chord:"和弦图切换",pie:"饼图切换",funnel:"漏斗图切换"},type:[]},restore:{show:!1,title:"还原"},saveAsImage:{show:!1,title:"保存为图片",type:"png",lang:["点击保存"]}}};var l=e("zrender/tool/util"),h=e("zrender/config"),m=e("zrender/tool/event"),V="stack",U="tiled";return t.prototype={type:s.COMPONENT_TYPE_TOOLBOX,_buildShape:function(){this._iconList=[];var e=this.option.toolbox;this._enableColor=e.effectiveColor,this._disableColor=e.disableColor;var t=e.feature,i=[];for(var n in t)if(t[n].show)switch(n){case"mark":i.push({key:n,name:"mark"}),i.push({key:n,name:"markUndo"}),i.push({key:n,name:"markClear"});break;case"magicType":for(var a=0,o=t[n].type.length;o>a;a++)t[n].title[t[n].type[a]+"Chart"]=t[n].title[t[n].type[a]],t[n].option&&(t[n].option[t[n].type[a]+"Chart"]=t[n].option[t[n].type[a]]),i.push({key:n,name:t[n].type[a]+"Chart"});break;case"dataZoom":i.push({key:n,name:"dataZoom"}),i.push({key:n,name:"dataZoomReset"});break;case"saveAsImage":this.canvasSupported&&i.push({key:n,name:"saveAsImage"});break;default:i.push({key:n,name:n})}if(i.length>0){for(var r,n,a=0,o=i.length;o>a;a++)r=i[a].name,n=i[a].key,this._iconList.push(r),this._featureTitle[r]=t[n].title[r]||t[n].title,t[n].icon&&(this._featureIcon[r]=t[n].icon[r]||t[n].icon),t[n].color&&(this._featureColor[r]=t[n].color[r]||t[n].color),t[n].option&&(this._featureOption[r]=t[n].option[r]||t[n].option);this._itemGroupLocation=this._getItemGroupLocation(),this._buildBackground(),this._buildItem();for(var a=0,o=this.shapeList.length;o>a;a++)this.zr.addShape(this.shapeList[a]);this._iconShapeMap.mark&&(this._iconDisable(this._iconShapeMap.markUndo),this._iconDisable(this._iconShapeMap.markClear)),this._iconShapeMap.dataZoomReset&&0===this._zoomQueue.length&&this._iconDisable(this._iconShapeMap.dataZoomReset)}},_buildItem:function(){var t,i,n,o,s=this.option.toolbox,l=this._iconList.length,h=this._itemGroupLocation.x,m=this._itemGroupLocation.y,V=s.itemSize,U=s.itemGap,d=s.color instanceof Array?s.color:[s.color],p=this.getFont(s.textStyle);"horizontal"===s.orient?(i=this._itemGroupLocation.y/this.zr.getHeight()<.5?"bottom":"top",n=this._itemGroupLocation.x/this.zr.getWidth()<.5?"left":"right",o=this._itemGroupLocation.y/this.zr.getHeight()<.5?"top":"bottom"):i=this._itemGroupLocation.x/this.zr.getWidth()<.5?"right":"left",this._iconShapeMap={};for(var c=this,u=0;l>u;u++){switch(t={type:"icon",zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:h,y:m,width:V,height:V,iconType:this._iconList[u],lineWidth:1,strokeColor:this._featureColor[this._iconList[u]]||d[u%d.length],brushType:"stroke"},highlightStyle:{lineWidth:1,text:s.showTitle?this._featureTitle[this._iconList[u]]:void 0,textFont:p,textPosition:i,strokeColor:this._featureColor[this._iconList[u]]||d[u%d.length]},hoverable:!0,clickable:!0},this._featureIcon[this._iconList[u]]&&(t.style.image=this._featureIcon[this._iconList[u]].replace(new RegExp("^image:\\/\\/"),""),t.style.opacity=.8,t.highlightStyle.opacity=1,t.type="image"),"horizontal"===s.orient&&(0===u&&"left"===n&&(t.highlightStyle.textPosition="specific",t.highlightStyle.textAlign=n,t.highlightStyle.textBaseline=o,t.highlightStyle.textX=h,t.highlightStyle.textY="top"===o?m+V+10:m-10),u===l-1&&"right"===n&&(t.highlightStyle.textPosition="specific",t.highlightStyle.textAlign=n,t.highlightStyle.textBaseline=o,t.highlightStyle.textX=h+V,t.highlightStyle.textY="top"===o?m+V+10:m-10)),this._iconList[u]){case"mark":t.onclick=c._onMark;break;case"markUndo":t.onclick=c._onMarkUndo;break;case"markClear":t.onclick=c._onMarkClear;break;case"dataZoom":t.onclick=c._onDataZoom;break;case"dataZoomReset":t.onclick=c._onDataZoomReset;break;case"dataView":if(!this._dataView){var y=e("./dataView");this._dataView=new y(this.ecTheme,this.messageCenter,this.zr,this.option,this.myChart)}t.onclick=c._onDataView;break;case"restore":t.onclick=c._onRestore;break;case"saveAsImage":t.onclick=c._onSaveAsImage;break;default:this._iconList[u].match("Chart")?(t._name=this._iconList[u].replace("Chart",""),t.onclick=c._onMagicType):t.onclick=c._onCustomHandler}"icon"===t.type?t=new r(t):"image"===t.type&&(t=new a(t)),this.shapeList.push(t),this._iconShapeMap[this._iconList[u]]=t,"horizontal"===s.orient?h+=V+U:m+=V+U}},_buildBackground:function(){var e=this.option.toolbox,t=this.reformCssArray(this.option.toolbox.padding);this.shapeList.push(new o({zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:this._itemGroupLocation.x-t[3],y:this._itemGroupLocation.y-t[0],width:this._itemGroupLocation.width+t[3]+t[1],height:this._itemGroupLocation.height+t[0]+t[2],brushType:0===e.borderWidth?"fill":"both",color:e.backgroundColor,strokeColor:e.borderColor,lineWidth:e.borderWidth}}))},_getItemGroupLocation:function(){var e=this.option.toolbox,t=this.reformCssArray(this.option.toolbox.padding),i=this._iconList.length,n=e.itemGap,a=e.itemSize,o=0,r=0;"horizontal"===e.orient?(o=(a+n)*i-n,r=a):(r=(a+n)*i-n,o=a);var s,l=this.zr.getWidth();switch(e.x){case"center":s=Math.floor((l-o)/2);break;case"left":s=t[3]+e.borderWidth;break;case"right":s=l-o-t[1]-e.borderWidth;break;default:s=e.x-0,s=isNaN(s)?0:s}var h,m=this.zr.getHeight();switch(e.y){case"top":h=t[0]+e.borderWidth;break;case"bottom":h=m-r-t[2]-e.borderWidth;break;case"center":h=Math.floor((m-r)/2);break;default:h=e.y-0,h=isNaN(h)?0:h}return{x:s,y:h,width:o,height:r}},__onmousemove:function(e){this._marking&&(this._markShape.style.xEnd=m.getX(e.event),this._markShape.style.yEnd=m.getY(e.event),this.zr.addHoverShape(this._markShape)),this._zooming&&(this._zoomShape.style.width=m.getX(e.event)-this._zoomShape.style.x,this._zoomShape.style.height=m.getY(e.event)-this._zoomShape.style.y,this.zr.addHoverShape(this._zoomShape),this.dom.style.cursor="crosshair",m.stop(e.event)),this._zoomStart&&"pointer"!=this.dom.style.cursor&&"move"!=this.dom.style.cursor&&(this.dom.style.cursor="crosshair")},__onmousedown:function(e){if(!e.target){this._zooming=!0;var t=m.getX(e.event),i=m.getY(e.event),n=this.option.dataZoom||{};return this._zoomShape=new o({zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:t,y:i,width:1,height:1,brushType:"both"},highlightStyle:{lineWidth:2,color:n.fillerColor||s.dataZoom.fillerColor,strokeColor:n.handleColor||s.dataZoom.handleColor,brushType:"both"}}),this.zr.addHoverShape(this._zoomShape),!0}},__onmouseup:function(){if(!this._zoomShape||Math.abs(this._zoomShape.style.width)<10||Math.abs(this._zoomShape.style.height)<10)return this._zooming=!1,!0;if(this._zooming&&this.component.dataZoom){this._zooming=!1;var e=this.component.dataZoom.rectZoom(this._zoomShape.style);e&&(this._zoomQueue.push({start:e.start,end:e.end,start2:e.start2,end2:e.end2}),this._iconEnable(this._iconShapeMap.dataZoomReset),this.zr.refreshNextFrame())}return!0},__onclick:function(e){if(!e.target)if(this._marking)this._marking=!1,this._markShapeList.push(this._markShape),this._iconEnable(this._iconShapeMap.markUndo),this._iconEnable(this._iconShapeMap.markClear),this.zr.addShape(this._markShape),this.zr.refreshNextFrame();else if(this._markStart){this._marking=!0;var t=m.getX(e.event),i=m.getY(e.event);this._markShape=new n({zlevel:this.getZlevelBase(),z:this.getZBase(),style:{xStart:t,yStart:i,xEnd:t,yEnd:i,lineWidth:this.query(this.option,"toolbox.feature.mark.lineStyle.width"),strokeColor:this.query(this.option,"toolbox.feature.mark.lineStyle.color"),lineType:this.query(this.option,"toolbox.feature.mark.lineStyle.type")}}),this.zr.addHoverShape(this._markShape)}},__onMark:function(e){var t=e.target;if(this._marking||this._markStart)this._resetMark(),this.zr.refreshNextFrame();else{this._resetZoom(),this.zr.modShape(t.id,{style:{strokeColor:this._enableColor}}),this.zr.refreshNextFrame(),this._markStart=!0;var i=this;setTimeout(function(){i.zr&&i.zr.on(h.EVENT.CLICK,i._onclick)&&i.zr.on(h.EVENT.MOUSEMOVE,i._onmousemove)},10)}return!0},__onMarkUndo:function(){if(this._marking)this._marking=!1;else{var e=this._markShapeList.length;if(e>=1){var t=this._markShapeList[e-1];this.zr.delShape(t.id),this.zr.refreshNextFrame(),this._markShapeList.pop(),1===e&&(this._iconDisable(this._iconShapeMap.markUndo),this._iconDisable(this._iconShapeMap.markClear))}}return!0},__onMarkClear:function(){this._marking&&(this._marking=!1);var e=this._markShapeList.length;if(e>0){for(;e--;)this.zr.delShape(this._markShapeList.pop().id);this._iconDisable(this._iconShapeMap.markUndo),this._iconDisable(this._iconShapeMap.markClear),this.zr.refreshNextFrame()}return!0},__onDataZoom:function(e){var t=e.target;if(this._zooming||this._zoomStart)this._resetZoom(),this.zr.refreshNextFrame(),this.dom.style.cursor="default";else{this._resetMark(),this.zr.modShape(t.id,{style:{strokeColor:this._enableColor}}),this.zr.refreshNextFrame(),this._zoomStart=!0;var i=this;setTimeout(function(){i.zr&&i.zr.on(h.EVENT.MOUSEDOWN,i._onmousedown)&&i.zr.on(h.EVENT.MOUSEUP,i._onmouseup)&&i.zr.on(h.EVENT.MOUSEMOVE,i._onmousemove)},10),this.dom.style.cursor="crosshair"}return!0},__onDataZoomReset:function(){return this._zooming&&(this._zooming=!1),this._zoomQueue.pop(),this._zoomQueue.length>0?this.component.dataZoom.absoluteZoom(this._zoomQueue[this._zoomQueue.length-1]):(this.component.dataZoom.rectZoom(),this._iconDisable(this._iconShapeMap.dataZoomReset),this.zr.refreshNextFrame()),!0},_resetMark:function(){this._marking=!1,this._markStart&&(this._markStart=!1,this._iconShapeMap.mark&&this.zr.modShape(this._iconShapeMap.mark.id,{style:{strokeColor:this._iconShapeMap.mark.highlightStyle.strokeColor}}),this.zr.un(h.EVENT.CLICK,this._onclick),this.zr.un(h.EVENT.MOUSEMOVE,this._onmousemove))},_resetZoom:function(){this._zooming=!1,this._zoomStart&&(this._zoomStart=!1,this._iconShapeMap.dataZoom&&this.zr.modShape(this._iconShapeMap.dataZoom.id,{style:{strokeColor:this._iconShapeMap.dataZoom.highlightStyle.strokeColor}}),this.zr.un(h.EVENT.MOUSEDOWN,this._onmousedown),this.zr.un(h.EVENT.MOUSEUP,this._onmouseup),this.zr.un(h.EVENT.MOUSEMOVE,this._onmousemove))},_iconDisable:function(e){"image"!=e.type?this.zr.modShape(e.id,{hoverable:!1,clickable:!1,style:{strokeColor:this._disableColor}}):this.zr.modShape(e.id,{hoverable:!1,clickable:!1,style:{opacity:.3}})},_iconEnable:function(e){"image"!=e.type?this.zr.modShape(e.id,{hoverable:!0,clickable:!0,style:{strokeColor:e.highlightStyle.strokeColor}}):this.zr.modShape(e.id,{hoverable:!0,clickable:!0,style:{opacity:.8}})},__onDataView:function(){return this._dataView.show(this.option),!0},__onRestore:function(){return this._resetMark(),this._resetZoom(),this.messageCenter.dispatch(s.EVENT.RESTORE,null,null,this.myChart),!0},__onSaveAsImage:function(){var e=this.option.toolbox.feature.saveAsImage,t=e.type||"png";"png"!=t&&"jpeg"!=t&&(t="png");var i;i=this.myChart.isConnected()?this.myChart.getConnectedDataURL(t):this.zr.toDataURL("image/"+t,this.option.backgroundColor&&"rgba(0,0,0,0)"===this.option.backgroundColor.replace(" ","")?"#fff":this.option.backgroundColor);var n=document.createElement("div");n.id="__echarts_download_wrap__",n.style.cssText="position:fixed;z-index:99999;display:block;top:0;left:0;background-color:rgba(33,33,33,0.5);text-align:center;width:100%;height:100%;line-height:"+document.documentElement.clientHeight+"px;";var a=document.createElement("a");a.href=i,a.setAttribute("download",(e.name?e.name:this.option.title&&(this.option.title.text||this.option.title.subtext)?this.option.title.text||this.option.title.subtext:"ECharts")+"."+t),a.innerHTML='图片另存为":e.lang?e.lang[0]:"点击保存")+'"/>',n.appendChild(a),document.body.appendChild(n),a=null,n=null,setTimeout(function(){var e=document.getElementById("__echarts_download_wrap__");e&&(e.onclick=function(){var e=document.getElementById("__echarts_download_wrap__");e.onclick=null,e.innerHTML="",document.body.removeChild(e),e=null},e=null)},500)},__onMagicType:function(e){this._resetMark();var t=e.target._name;return this._magicType[t]||(this._magicType[t]=!0,t===s.CHART_TYPE_LINE?this._magicType[s.CHART_TYPE_BAR]=!1:t===s.CHART_TYPE_BAR&&(this._magicType[s.CHART_TYPE_LINE]=!1),t===s.CHART_TYPE_PIE?this._magicType[s.CHART_TYPE_FUNNEL]=!1:t===s.CHART_TYPE_FUNNEL&&(this._magicType[s.CHART_TYPE_PIE]=!1),t===s.CHART_TYPE_FORCE?this._magicType[s.CHART_TYPE_CHORD]=!1:t===s.CHART_TYPE_CHORD&&(this._magicType[s.CHART_TYPE_FORCE]=!1),t===V?this._magicType[U]=!1:t===U&&(this._magicType[V]=!1),this.messageCenter.dispatch(s.EVENT.MAGIC_TYPE_CHANGED,e.event,{magicType:this._magicType},this.myChart)),!0},setMagicType:function(e){this._resetMark(),this._magicType=e,!this._isSilence&&this.messageCenter.dispatch(s.EVENT.MAGIC_TYPE_CHANGED,null,{magicType:this._magicType},this.myChart)},__onCustomHandler:function(e){var t=e.target.style.iconType,i=this.option.toolbox.feature[t].onclick;"function"==typeof i&&i.call(this,this.option)},reset:function(e,t){if(t&&this.clear(),this.query(e,"toolbox.show")&&this.query(e,"toolbox.feature.magicType.show")){var i=e.toolbox.feature.magicType.type,n=i.length;for(this._magicMap={};n--;)this._magicMap[i[n]]=!0;n=e.series.length;for(var a,o;n--;)a=e.series[n].type,this._magicMap[a]&&(o=e.xAxis instanceof Array?e.xAxis[e.series[n].xAxisIndex||0]:e.xAxis,o&&"category"===(o.type||"category")&&(o.__boundaryGap=null!=o.boundaryGap?o.boundaryGap:!0),o=e.yAxis instanceof Array?e.yAxis[e.series[n].yAxisIndex||0]:e.yAxis,o&&"category"===o.type&&(o.__boundaryGap=null!=o.boundaryGap?o.boundaryGap:!0),e.series[n].__type=a,e.series[n].__itemStyle=l.clone(e.series[n].itemStyle||{})),(this._magicMap[V]||this._magicMap[U])&&(e.series[n].__stack=e.series[n].stack)}this._magicType=t?{}:this._magicType||{};for(var r in this._magicType)if(this._magicType[r]){this.option=e,this.getMagicOption();break}var s=e.dataZoom;if(s&&s.show){var h=null!=s.start&&s.start>=0&&s.start<=100?s.start:0,m=null!=s.end&&s.end>=0&&s.end<=100?s.end:100;h>m&&(h+=m,m=h-m,h-=m),this._zoomQueue=[{start:h,end:m,start2:0,end2:100}]}else this._zoomQueue=[]},getMagicOption:function(){var e,t;if(this._magicType[s.CHART_TYPE_LINE]||this._magicType[s.CHART_TYPE_BAR]){for(var i=this._magicType[s.CHART_TYPE_LINE]?!1:!0,n=0,a=this.option.series.length;a>n;n++)t=this.option.series[n].type,(t==s.CHART_TYPE_LINE||t==s.CHART_TYPE_BAR)&&(e=this.option.xAxis instanceof Array?this.option.xAxis[this.option.series[n].xAxisIndex||0]:this.option.xAxis,e&&"category"===(e.type||"category")&&(e.boundaryGap=i?!0:e.__boundaryGap),e=this.option.yAxis instanceof Array?this.option.yAxis[this.option.series[n].yAxisIndex||0]:this.option.yAxis,e&&"category"===e.type&&(e.boundaryGap=i?!0:e.__boundaryGap));this._defaultMagic(s.CHART_TYPE_LINE,s.CHART_TYPE_BAR)}if(this._defaultMagic(s.CHART_TYPE_CHORD,s.CHART_TYPE_FORCE),this._defaultMagic(s.CHART_TYPE_PIE,s.CHART_TYPE_FUNNEL),this._magicType[V]||this._magicType[U])for(var n=0,a=this.option.series.length;a>n;n++)this._magicType[V]?(this.option.series[n].stack="_ECHARTS_STACK_KENER_2014_",t=V):this._magicType[U]&&(this.option.series[n].stack=null,t=U),this._featureOption[t+"Chart"]&&l.merge(this.option.series[n],this._featureOption[t+"Chart"]||{},!0);return this.option},_defaultMagic:function(e,t){if(this._magicType[e]||this._magicType[t])for(var i=0,n=this.option.series.length;n>i;i++){var a=this.option.series[i].type;(a==e||a==t)&&(this.option.series[i].type=this._magicType[e]?e:t,this.option.series[i].itemStyle=l.clone(this.option.series[i].__itemStyle),a=this.option.series[i].type,this._featureOption[a+"Chart"]&&l.merge(this.option.series[i],this._featureOption[a+"Chart"]||{},!0))}},silence:function(e){this._isSilence=e},resize:function(){this._resetMark(),this.clear(),this.option&&this.option.toolbox&&this.option.toolbox.show&&this._buildShape(),this._dataView&&this._dataView.resize()},hideDataView:function(){this._dataView&&this._dataView.hide()},clear:function(e){this.zr&&(this.zr.delShape(this.shapeList),this.shapeList=[],e||(this.zr.delShape(this._markShapeList),this._markShapeList=[]))},onbeforDispose:function(){this._dataView&&(this._dataView.dispose(),this._dataView=null),this._markShapeList=null},refresh:function(e){e&&(this._resetMark(),this._resetZoom(),e.toolbox=this.reformOption(e.toolbox),this.option=e,this.clear(!0),e.toolbox.show&&this._buildShape(),this.hideDataView())}},l.inherits(t,i),e("../component").define("toolbox",t),t}),i("echarts/component",[],function(){var e={},t={};return e.define=function(i,n){return t[i]=n,e},e.get=function(e){return t[e]},e}),i("echarts/component/title",["require","./base","zrender/shape/Text","zrender/shape/Rectangle","../config","zrender/tool/util","zrender/tool/area","zrender/tool/color","../component"],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("zrender/shape/Text"),a=e("zrender/shape/Rectangle"),o=e("../config");o.title={zlevel:0,z:6,show:!0,text:"",subtext:"",x:"left",y:"top",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:5,textStyle:{fontSize:18,fontWeight:"bolder",color:"#333"},subtextStyle:{color:"#aaa"}};var r=e("zrender/tool/util"),s=e("zrender/tool/area"),l=e("zrender/tool/color");return t.prototype={type:o.COMPONENT_TYPE_TITLE,_buildShape:function(){if(this.titleOption.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(){var e=this.titleOption.text,t=this.titleOption.link,i=this.titleOption.target,a=this.titleOption.subtext,o=this.titleOption.sublink,r=this.titleOption.subtarget,s=this.getFont(this.titleOption.textStyle),h=this.getFont(this.titleOption.subtextStyle),m=this._itemGroupLocation.x,V=this._itemGroupLocation.y,U=this._itemGroupLocation.width,d=this._itemGroupLocation.height,p={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{y:V,color:this.titleOption.textStyle.color,text:e,textFont:s,textBaseline:"top"},highlightStyle:{color:l.lift(this.titleOption.textStyle.color,1),brushType:"fill"},hoverable:!1};t&&(p.hoverable=!0,p.clickable=!0,p.onclick=function(){i&&"self"==i?window.location=t:window.open(t)});var c={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{y:V+d,color:this.titleOption.subtextStyle.color,text:a,textFont:h,textBaseline:"bottom"},highlightStyle:{color:l.lift(this.titleOption.subtextStyle.color,1),brushType:"fill"},hoverable:!1};switch(o&&(c.hoverable=!0,c.clickable=!0,c.onclick=function(){r&&"self"==r?window.location=o:window.open(o)}),this.titleOption.x){case"center":p.style.x=c.style.x=m+U/2,p.style.textAlign=c.style.textAlign="center";break;case"left":p.style.x=c.style.x=m,p.style.textAlign=c.style.textAlign="left";break;case"right":p.style.x=c.style.x=m+U,p.style.textAlign=c.style.textAlign="right";break;default:m=this.titleOption.x-0,m=isNaN(m)?0:m,p.style.x=c.style.x=m}this.titleOption.textAlign&&(p.style.textAlign=c.style.textAlign=this.titleOption.textAlign),this.shapeList.push(new n(p)),""!==a&&this.shapeList.push(new n(c))},_buildBackground:function(){var e=this.reformCssArray(this.titleOption.padding);this.shapeList.push(new a({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.titleOption.borderWidth?"fill":"both",color:this.titleOption.backgroundColor,strokeColor:this.titleOption.borderColor,lineWidth:this.titleOption.borderWidth}}))},_getItemGroupLocation:function(){var e,t=this.reformCssArray(this.titleOption.padding),i=this.titleOption.text,n=this.titleOption.subtext,a=this.getFont(this.titleOption.textStyle),o=this.getFont(this.titleOption.subtextStyle),r=Math.max(s.getTextWidth(i,a),s.getTextWidth(n,o)),l=s.getTextHeight(i,a)+(""===n?0:this.titleOption.itemGap+s.getTextHeight(n,o)),h=this.zr.getWidth();switch(this.titleOption.x){case"center":e=Math.floor((h-r)/2);break;case"left":e=t[3]+this.titleOption.borderWidth;break;case"right":e=h-r-t[1]-this.titleOption.borderWidth;break;default:e=this.titleOption.x-0,e=isNaN(e)?0:e}var m,V=this.zr.getHeight();switch(this.titleOption.y){case"top":m=t[0]+this.titleOption.borderWidth;break;case"bottom":m=V-l-t[2]-this.titleOption.borderWidth;break;case"center":m=Math.floor((V-l)/2);break;default:m=this.titleOption.y-0,m=isNaN(m)?0:m}return{x:e,y:m,width:r,height:l}},refresh:function(e){e&&(this.option=e,this.option.title=this.reformOption(this.option.title),this.titleOption=this.option.title,this.titleOption.textStyle=this.getTextStyle(this.titleOption.textStyle),this.titleOption.subtextStyle=this.getTextStyle(this.titleOption.subtextStyle)),this.clear(),this._buildShape()}},r.inherits(t,i),e("../component").define("title",t),t}),i("echarts/component/tooltip",["require","./base","../util/shape/Cross","zrender/shape/Line","zrender/shape/Rectangle","../config","../util/ecData","zrender/config","zrender/tool/event","zrender/tool/area","zrender/tool/color","zrender/tool/util","zrender/shape/Base","../component"],function(e){function t(e,t,o,r,s){i.call(this,e,t,o,r,s),this.dom=s.dom;var l=this;l._onmousemove=function(e){return l.__onmousemove(e)},l._onglobalout=function(e){return l.__onglobalout(e)},this.zr.on(h.EVENT.MOUSEMOVE,l._onmousemove),this.zr.on(h.EVENT.GLOBALOUT,l._onglobalout),l._hide=function(e){return l.__hide(e)},l._tryShow=function(e){return l.__tryShow(e)},l._refixed=function(e){return l.__refixed(e)},l._setContent=function(e,t){return l.__setContent(e,t)},this._tDom=this._tDom||document.createElement("div"),this._tDom.onselectstart=function(){return!1},this._tDom.onmouseover=function(){l._mousein=!0},this._tDom.onmouseout=function(){l._mousein=!1},this._tDom.className="echarts-tooltip",this._tDom.style.position="absolute",this.hasAppend=!1,this._axisLineShape&&this.zr.delShape(this._axisLineShape.id),this._axisLineShape=new a({zlevel:this.getZlevelBase(),z:this.getZBase(),invisible:!0,hoverable:!1}),this.shapeList.push(this._axisLineShape),this.zr.addShape(this._axisLineShape),this._axisShadowShape&&this.zr.delShape(this._axisShadowShape.id),this._axisShadowShape=new a({zlevel:this.getZlevelBase(),z:1,invisible:!0,hoverable:!1}),this.shapeList.push(this._axisShadowShape),this.zr.addShape(this._axisShadowShape),this._axisCrossShape&&this.zr.delShape(this._axisCrossShape.id),this._axisCrossShape=new n({zlevel:this.getZlevelBase(),z:this.getZBase(),invisible:!0,hoverable:!1}),this.shapeList.push(this._axisCrossShape),this.zr.addShape(this._axisCrossShape),this.showing=!1,this.refresh(r)}var i=e("./base"),n=e("../util/shape/Cross"),a=e("zrender/shape/Line"),o=e("zrender/shape/Rectangle"),r=new o({}),s=e("../config");s.tooltip={zlevel:1,z:8,show:!0,showContent:!0,trigger:"item",islandFormatter:"{a}
{b} : {c}",showDelay:20,hideDelay:100,transitionDuration:.4,enterable:!1,backgroundColor:"rgba(0,0,0,0.7)",borderColor:"#333",borderRadius:4,borderWidth:0,padding:5,axisPointer:{type:"line",lineStyle:{color:"#48b",width:2,type:"solid"},crossStyle:{color:"#1e90ff",width:1,type:"dashed"},shadowStyle:{color:"rgba(150,150,150,0.3)",width:"auto",type:"default"}},textStyle:{color:"#fff"}};var l=e("../util/ecData"),h=e("zrender/config"),m=e("zrender/tool/event"),V=e("zrender/tool/area"),U=e("zrender/tool/color"),d=e("zrender/tool/util"),p=e("zrender/shape/Base");return t.prototype={type:s.COMPONENT_TYPE_TOOLTIP,_gCssText:"position:absolute;display:block;border-style:solid;white-space:nowrap;",_style:function(e){if(!e)return"";var t=[];if(e.transitionDuration){var i="left "+e.transitionDuration+"s,top "+e.transitionDuration+"s";t.push("transition:"+i),t.push("-moz-transition:"+i),t.push("-webkit-transition:"+i),t.push("-o-transition:"+i)}e.backgroundColor&&(t.push("background-Color:"+U.toHex(e.backgroundColor)),t.push("filter:alpha(opacity=70)"),t.push("background-Color:"+e.backgroundColor)),null!=e.borderWidth&&t.push("border-width:"+e.borderWidth+"px"),null!=e.borderColor&&t.push("border-color:"+e.borderColor),null!=e.borderRadius&&(t.push("border-radius:"+e.borderRadius+"px"),t.push("-moz-border-radius:"+e.borderRadius+"px"),t.push("-webkit-border-radius:"+e.borderRadius+"px"),t.push("-o-border-radius:"+e.borderRadius+"px"));var n=e.textStyle;n&&(n.color&&t.push("color:"+n.color),n.decoration&&t.push("text-decoration:"+n.decoration),n.align&&t.push("text-align:"+n.align),n.fontFamily&&t.push("font-family:"+n.fontFamily),n.fontSize&&t.push("font-size:"+n.fontSize+"px"),n.fontSize&&t.push("line-height:"+Math.round(3*n.fontSize/2)+"px"),n.fontStyle&&t.push("font-style:"+n.fontStyle),n.fontWeight&&t.push("font-weight:"+n.fontWeight));var a=e.padding;return null!=a&&(a=this.reformCssArray(a),t.push("padding:"+a[0]+"px "+a[1]+"px "+a[2]+"px "+a[3]+"px")),t=t.join(";")+";"},__hide:function(){this._lastDataIndex=-1,this._lastSeriesIndex=-1,this._lastItemTriggerId=-1,this._tDom&&(this._tDom.style.display="none");var e=!1;this._axisLineShape.invisible||(this._axisLineShape.invisible=!0, +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.component[c].getAxis(u);for(var y=0,g=l.length;g>y;y++)this._isSelected(l[y].name)&&l[y][c+"Index"]===u&&"axis"===this.deepQuery([l[y],this.option],"tooltip.trigger")&&(r=this.query(l[y],"tooltip.showContent")||r,a=this.query(l[y],"tooltip.formatter")||a,o=this.query(l[y],"tooltip.position")||o,U+=this._style(this.query(l[y],"tooltip")),null!=l[y].stack&&"xAxis"==c?(h.unshift(l[y]),V.unshift(y)):(h.push(l[y]),V.push(y)));this.messageCenter.dispatch(s.EVENT.TOOLTIP_HOVER,this._event,{seriesIndex:V,dataIndex:i},this.myChart);var b;"xAxis"==c?(d=this.subPixelOptimize(n.getCoordByIndex(i),this._axisLineWidth),p=m.getY(this._event),b=[d,this.component.grid.getY(),d,this.component.grid.getYend()]):(d=m.getX(this._event),p=this.subPixelOptimize(n.getCoordByIndex(i),this._axisLineWidth),b=[this.component.grid.getX(),p,this.component.grid.getXend(),p]),this._styleAxisPointer(h,b[0],b[1],b[2],b[3],n.getGap(),d,p)}else d=m.getX(this._event),p=m.getY(this._event),this._styleAxisPointer(l,this.component.grid.getX(),p,this.component.grid.getXend(),p,0,d,p),i>=0?this._showItemTrigger(!0):(clearTimeout(this._hidingTicket),clearTimeout(this._showingTicket),this._tDom.style.display="none");if(h.length>0){if(this._lastItemTriggerId=-1,this._lastDataIndex!=i||this._lastSeriesIndex!=V[0]){this._lastDataIndex=i,this._lastSeriesIndex=V[0];var f,k;if("function"==typeof a){for(var x=[],y=0,g=h.length;g>y;y++)f=h[y].data[i],k=this.getDataFromOption(f,"-"),x.push({seriesIndex:V[y],seriesName:h[y].name||"",series:h[y],dataIndex:i,data:f,name:n.getNameByIndex(i),value:k,0:h[y].name||"",1:n.getNameByIndex(i),2:k,3:f});this._curTicket="axis:"+i,this._tDom.innerHTML=a.call(this.myChart,x,this._curTicket,this._setContent)}else if("string"==typeof a){this._curTicket=0/0,a=a.replace("{a}","{a0}").replace("{b}","{b0}").replace("{c}","{c0}");for(var y=0,g=h.length;g>y;y++)a=a.replace("{a"+y+"}",this._encodeHTML(h[y].name||"")),a=a.replace("{b"+y+"}",this._encodeHTML(n.getNameByIndex(i))),f=h[y].data[i],f=this.getDataFromOption(f,"-"),a=a.replace("{c"+y+"}",f instanceof Array?f:this.numAddCommas(f));this._tDom.innerHTML=a}else{this._curTicket=0/0,a=this._encodeHTML(n.getNameByIndex(i));for(var y=0,g=h.length;g>y;y++)a+="
"+this._encodeHTML(h[y].name||"")+" : ",f=h[y].data[i],f=this.getDataFromOption(f,"-"),a+=f instanceof Array?f:this.numAddCommas(f);this._tDom.innerHTML=a}}if(r===!1||!this.option.tooltip.showContent)return;this.hasAppend||(this._tDom.style.left=this._zrWidth/2+"px",this._tDom.style.top=this._zrHeight/2+"px",this.dom.firstChild.appendChild(this._tDom),this.hasAppend=!0),this._show(o,d+10,p+10,U)}},_showPolarTrigger:function(e,t){if(null==this.component.polar||null==e||null==t||0>t)return!1;var i,n,a,o=this.option.series,r=[],s=[],l="";if("axis"===this.option.tooltip.trigger){if(!this.option.tooltip.show)return!1;i=this.option.tooltip.formatter,n=this.option.tooltip.position}for(var h=this.option.polar[e].indicator[t].text,V=0,U=o.length;U>V;V++)this._isSelected(o[V].name)&&o[V].polarIndex===e&&"axis"===this.deepQuery([o[V],this.option],"tooltip.trigger")&&(a=this.query(o[V],"tooltip.showContent")||a,i=this.query(o[V],"tooltip.formatter")||i,n=this.query(o[V],"tooltip.position")||n,l+=this._style(this.query(o[V],"tooltip")),r.push(o[V]),s.push(V));if(r.length>0){for(var d,p,c,u=[],V=0,U=r.length;U>V;V++){d=r[V].data;for(var y=0,g=d.length;g>y;y++)p=d[y],this._isSelected(p.name)&&(p=null!=p?p:{name:"",value:{dataIndex:"-"}},c=this.getDataFromOption(p.value[t]),u.push({seriesIndex:s[V],seriesName:r[V].name||"",series:r[V],dataIndex:t,data:p,name:p.name,indicator:h,value:c,0:r[V].name||"",1:p.name,2:c,3:h}))}if(u.length<=0)return;if(this._lastItemTriggerId=-1,this._lastDataIndex!=t||this._lastSeriesIndex!=s[0])if(this._lastDataIndex=t,this._lastSeriesIndex=s[0],"function"==typeof i)this._curTicket="axis:"+t,this._tDom.innerHTML=i.call(this.myChart,u,this._curTicket,this._setContent);else if("string"==typeof i){i=i.replace("{a}","{a0}").replace("{b}","{b0}").replace("{c}","{c0}").replace("{d}","{d0}");for(var V=0,U=u.length;U>V;V++)i=i.replace("{a"+V+"}",this._encodeHTML(u[V].seriesName)),i=i.replace("{b"+V+"}",this._encodeHTML(u[V].name)),i=i.replace("{c"+V+"}",this.numAddCommas(u[V].value)),i=i.replace("{d"+V+"}",this._encodeHTML(u[V].indicator));this._tDom.innerHTML=i}else{i=this._encodeHTML(u[0].name)+"
"+this._encodeHTML(u[0].indicator)+" : "+this.numAddCommas(u[0].value);for(var V=1,U=u.length;U>V;V++)i+="
"+this._encodeHTML(u[V].name)+"
",i+=this._encodeHTML(u[V].indicator)+" : "+this.numAddCommas(u[V].value);this._tDom.innerHTML=i}if(a===!1||!this.option.tooltip.showContent)return;return this.hasAppend||(this._tDom.style.left=this._zrWidth/2+"px",this._tDom.style.top=this._zrHeight/2+"px",this.dom.firstChild.appendChild(this._tDom),this.hasAppend=!0),this._show(n,m.getX(this._event),m.getY(this._event),l),!0}},_showItemTrigger:function(e){if(this._curTarget){var t,i,n,a=l.get(this._curTarget,"series"),o=l.get(this._curTarget,"seriesIndex"),r=l.get(this._curTarget,"data"),h=l.get(this._curTarget,"dataIndex"),V=l.get(this._curTarget,"name"),U=l.get(this._curTarget,"value"),d=l.get(this._curTarget,"special"),p=l.get(this._curTarget,"special2"),c=[r,a,this.option],u="";if("island"!=this._curTarget._type){var y=e?"axis":"item";this.option.tooltip.trigger===y&&(t=this.option.tooltip.formatter,i=this.option.tooltip.position),this.query(a,"tooltip.trigger")===y&&(n=this.query(a,"tooltip.showContent")||n,t=this.query(a,"tooltip.formatter")||t,i=this.query(a,"tooltip.position")||i,u+=this._style(this.query(a,"tooltip"))),n=this.query(r,"tooltip.showContent")||n,t=this.query(r,"tooltip.formatter")||t,i=this.query(r,"tooltip.position")||i,u+=this._style(this.query(r,"tooltip"))}else this._lastItemTriggerId=0/0,n=this.deepQuery(c,"tooltip.showContent"),t=this.deepQuery(c,"tooltip.islandFormatter"),i=this.deepQuery(c,"tooltip.islandPosition");this._lastDataIndex=-1,this._lastSeriesIndex=-1,this._lastItemTriggerId!==this._curTarget.id&&(this._lastItemTriggerId=this._curTarget.id,"function"==typeof t?(this._curTicket=(a.name||"")+":"+h,this._tDom.innerHTML=t.call(this.myChart,{seriesIndex:o,seriesName:a.name||"",series:a,dataIndex:h,data:r,name:V,value:U,percent:d,indicator:d,value2:p,indicator2:p,0:a.name||"",1:V,2:U,3:d,4:p,5:r,6:o,7:h},this._curTicket,this._setContent)):"string"==typeof t?(this._curTicket=0/0,t=t.replace("{a}","{a0}").replace("{b}","{b0}").replace("{c}","{c0}"),t=t.replace("{a0}",this._encodeHTML(a.name||"")).replace("{b0}",this._encodeHTML(V)).replace("{c0}",U instanceof Array?U:this.numAddCommas(U)),t=t.replace("{d}","{d0}").replace("{d0}",d||""),t=t.replace("{e}","{e0}").replace("{e0}",l.get(this._curTarget,"special2")||""),this._tDom.innerHTML=t):(this._curTicket=0/0,this._tDom.innerHTML=a.type===s.CHART_TYPE_RADAR&&d?this._itemFormatter.radar.call(this,a,V,U,d):a.type===s.CHART_TYPE_EVENTRIVER?this._itemFormatter.eventRiver.call(this,a,V,U,r):""+(null!=a.name?this._encodeHTML(a.name)+"
":"")+(""===V?"":this._encodeHTML(V)+" : ")+(U instanceof Array?U:this.numAddCommas(U))));var g=m.getX(this._event),b=m.getY(this._event);this.deepQuery(c,"tooltip.axisPointer.show")&&this.component.grid?this._styleAxisPointer([a],this.component.grid.getX(),b,this.component.grid.getXend(),b,0,g,b):this._hide(),n!==!1&&this.option.tooltip.showContent&&(this.hasAppend||(this._tDom.style.left=this._zrWidth/2+"px",this._tDom.style.top=this._zrHeight/2+"px",this.dom.firstChild.appendChild(this._tDom),this.hasAppend=!0),this._show(i,g+20,b-20,u))}},_itemFormatter:{radar:function(e,t,i,n){var a="";a+=this._encodeHTML(""===t?e.name||"":t),a+=""===a?"":"
";for(var o=0;o";return a},chord:function(e,t,i,n,a){if(null==a)return this._encodeHTML(t)+" ("+this.numAddCommas(i)+")";var o=this._encodeHTML(t),r=this._encodeHTML(n);return""+(null!=e.name?this._encodeHTML(e.name)+"
":"")+o+" -> "+r+" ("+this.numAddCommas(i)+")
"+r+" -> "+o+" ("+this.numAddCommas(a)+")"},eventRiver:function(e,t,i,n){var a="";a+=this._encodeHTML(""===e.name?"":e.name+" : "),a+=this._encodeHTML(t),a+=""===a?"":"
",n=n.evolution;for(var o=0,r=n.length;r>o;o++)a+='
',n[o].detail&&(n[o].detail.img&&(a+=''),a+='
'+n[o].time+"
",a+='',a+=n[o].detail.text+"
",a+="
");return a}},_styleAxisPointer:function(e,t,i,n,a,o,r,s){if(e.length>0){var l,h,m=this.option.tooltip.axisPointer,V=m.type,U={line:{},cross:{},shadow:{}};for(var d in U)U[d].color=m[d+"Style"].color,U[d].width=m[d+"Style"].width,U[d].type=m[d+"Style"].type;for(var p=0,c=e.length;c>p;p++)l=e[p],h=this.query(l,"tooltip.axisPointer.type"),V=h||V,h&&(U[h].color=this.query(l,"tooltip.axisPointer."+h+"Style.color")||U[h].color,U[h].width=this.query(l,"tooltip.axisPointer."+h+"Style.width")||U[h].width,U[h].type=this.query(l,"tooltip.axisPointer."+h+"Style.type")||U[h].type);if("line"===V){var u=U.line.width,y=t==n;this._axisLineShape.style={xStart:y?this.subPixelOptimize(t,u):t,yStart:y?i:this.subPixelOptimize(i,u),xEnd:y?this.subPixelOptimize(n,u):n,yEnd:y?a:this.subPixelOptimize(a,u),strokeColor:U.line.color,lineWidth:u,lineType:U.line.type},this._axisLineShape.invisible=!1,this.zr.modShape(this._axisLineShape.id)}else if("cross"===V){var g=U.cross.width;this._axisCrossShape.style={brushType:"stroke",rect:this.component.grid.getArea(),x:this.subPixelOptimize(r,g),y:this.subPixelOptimize(s,g),text:("( "+this.component.xAxis.getAxis(0).getValueFromCoord(r)+" , "+this.component.yAxis.getAxis(0).getValueFromCoord(s)+" )").replace(" , "," ").replace(" , "," "),textPosition:"specific",strokeColor:U.cross.color,lineWidth:g,lineType:U.cross.type},this.component.grid.getXend()-r>100?(this._axisCrossShape.style.textAlign="left",this._axisCrossShape.style.textX=r+10):(this._axisCrossShape.style.textAlign="right",this._axisCrossShape.style.textX=r-10),s-this.component.grid.getY()>50?(this._axisCrossShape.style.textBaseline="bottom",this._axisCrossShape.style.textY=s-10):(this._axisCrossShape.style.textBaseline="top",this._axisCrossShape.style.textY=s+10),this._axisCrossShape.invisible=!1,this.zr.modShape(this._axisCrossShape.id)}else"shadow"===V&&((null==U.shadow.width||"auto"===U.shadow.width||isNaN(U.shadow.width))&&(U.shadow.width=o),t===n?Math.abs(this.component.grid.getX()-t)<2?(U.shadow.width/=2,t=n+=U.shadow.width/2):Math.abs(this.component.grid.getXend()-t)<2&&(U.shadow.width/=2,t=n-=U.shadow.width/2):i===a&&(Math.abs(this.component.grid.getY()-i)<2?(U.shadow.width/=2,i=a+=U.shadow.width/2):Math.abs(this.component.grid.getYend()-i)<2&&(U.shadow.width/=2,i=a-=U.shadow.width/2)),this._axisShadowShape.style={xStart:t,yStart:i,xEnd:n,yEnd:a,strokeColor:U.shadow.color,lineWidth:U.shadow.width},this._axisShadowShape.invisible=!1,this.zr.modShape(this._axisShadowShape.id));this.zr.refreshNextFrame()}},__onmousemove:function(e){if(clearTimeout(this._hidingTicket),clearTimeout(this._showingTicket),!this._mousein||!this._enterable){var t=e.target,i=m.getX(e.event),n=m.getY(e.event);if(t){this._curTarget=t,this._event=e.event,this._event.zrenderX=i,this._event.zrenderY=n;var a;if(this._needAxisTrigger&&this.component.polar&&-1!=(a=this.component.polar.isInside([i,n])))for(var o=this.option.series,l=0,h=o.length;h>l;l++)if(o[l].polarIndex===a&&"axis"===this.deepQuery([o[l],this.option],"tooltip.trigger")){this._curTarget=null;break}this._showingTicket=setTimeout(this._tryShow,this._showDelay)}else this._curTarget=!1,this._event=e.event,this._event.zrenderX=i,this._event.zrenderY=n,this._needAxisTrigger&&this.component.grid&&V.isInside(r,this.component.grid.getArea(),i,n)?this._showingTicket=setTimeout(this._tryShow,this._showDelay):this._needAxisTrigger&&this.component.polar&&-1!=this.component.polar.isInside([i,n])?this._showingTicket=setTimeout(this._tryShow,this._showDelay):(!this._event.connectTrigger&&this.messageCenter.dispatch(s.EVENT.TOOLTIP_OUT_GRID,this._event,null,this.myChart),this._hidingTicket=setTimeout(this._hide,this._hideDelay))}},__onglobalout:function(){clearTimeout(this._hidingTicket),clearTimeout(this._showingTicket),this._hidingTicket=setTimeout(this._hide,this._hideDelay)},__setContent:function(e,t){this._tDom&&(e===this._curTicket&&(this._tDom.innerHTML=t),setTimeout(this._refixed,20))},ontooltipHover:function(e,t){if(!this._lastTipShape||this._lastTipShape&&this._lastTipShape.dataIndex!=e.dataIndex){this._lastTipShape&&this._lastTipShape.tipShape.length>0&&(this.zr.delShape(this._lastTipShape.tipShape),this.shapeList.length=2);for(var i=0,n=t.length;n>i;i++)t[i].zlevel=this.getZlevelBase(),t[i].z=this.getZBase(),t[i].style=p.prototype.getHighlightStyle(t[i].style,t[i].highlightStyle),t[i].draggable=!1,t[i].hoverable=!1,t[i].clickable=!1,t[i].ondragend=null,t[i].ondragover=null,t[i].ondrop=null,this.shapeList.push(t[i]),this.zr.addShape(t[i]);this._lastTipShape={dataIndex:e.dataIndex,tipShape:t}}},ondragend:function(){this._hide()},onlegendSelected:function(e){this._selectedMap=e.selected},_setSelectedMap:function(){this._selectedMap=this.component.legend?d.clone(this.component.legend.getSelectedMap()):{}},_isSelected:function(e){return null!=this._selectedMap[e]?this._selectedMap[e]:!0},showTip:function(e){if(e){var t,i=this.option.series;if(null!=e.seriesIndex)t=e.seriesIndex;else for(var n=e.seriesName,a=0,o=i.length;o>a;a++)if(i[a].name===n){t=a;break}var r=i[t];if(null!=r){var m=this.myChart.chart[r.type],V="axis"===this.deepQuery([r,this.option],"tooltip.trigger");if(m)if(V){var U=e.dataIndex;switch(m.type){case s.CHART_TYPE_LINE:case s.CHART_TYPE_BAR:case s.CHART_TYPE_K:case s.CHART_TYPE_RADAR:if(null==this.component.polar||r.data[0].value.length<=U)return;var d=r.polarIndex||0,p=this.component.polar.getVector(d,U,"max");this._event={zrenderX:p[0],zrenderY:p[1]},this._showPolarTrigger(d,U)}}else{var c,u,y=m.shapeList;switch(m.type){case s.CHART_TYPE_LINE:case s.CHART_TYPE_BAR:case s.CHART_TYPE_K:case s.CHART_TYPE_TREEMAP:case s.CHART_TYPE_SCATTER:for(var U=e.dataIndex,a=0,o=y.length;o>a;a++)if(null==y[a]._mark&&l.get(y[a],"seriesIndex")==t&&l.get(y[a],"dataIndex")==U){this._curTarget=y[a],c=y[a].style.x,u=m.type!=s.CHART_TYPE_K?y[a].style.y:y[a].style.y[0];break}break;case s.CHART_TYPE_RADAR:for(var U=e.dataIndex,a=0,o=y.length;o>a;a++)if("polygon"===y[a].type&&l.get(y[a],"seriesIndex")==t&&l.get(y[a],"dataIndex")==U){this._curTarget=y[a];var p=this.component.polar.getCenter(r.polarIndex||0);c=p[0],u=p[1];break}break;case s.CHART_TYPE_PIE:for(var g=e.name,a=0,o=y.length;o>a;a++)if("sector"===y[a].type&&l.get(y[a],"seriesIndex")==t&&l.get(y[a],"name")==g){this._curTarget=y[a];var b=this._curTarget.style,f=(b.startAngle+b.endAngle)/2*Math.PI/180;c=this._curTarget.style.x+Math.cos(f)*b.r/1.5,u=this._curTarget.style.y-Math.sin(f)*b.r/1.5;break}break;case s.CHART_TYPE_MAP:for(var g=e.name,k=r.mapType,a=0,o=y.length;o>a;a++)if("text"===y[a].type&&y[a]._mapType===k&&y[a].style._name===g){this._curTarget=y[a],c=this._curTarget.style.x+this._curTarget.position[0],u=this._curTarget.style.y+this._curTarget.position[1];break}break;case s.CHART_TYPE_CHORD:for(var g=e.name,a=0,o=y.length;o>a;a++)if("sector"===y[a].type&&l.get(y[a],"name")==g){this._curTarget=y[a];var b=this._curTarget.style,f=(b.startAngle+b.endAngle)/2*Math.PI/180;return c=this._curTarget.style.x+Math.cos(f)*(b.r-2),u=this._curTarget.style.y-Math.sin(f)*(b.r-2),void this.zr.trigger(h.EVENT.MOUSEMOVE,{zrenderX:c,zrenderY:u})}break;case s.CHART_TYPE_FORCE:for(var g=e.name,a=0,o=y.length;o>a;a++)if("circle"===y[a].type&&l.get(y[a],"name")==g){this._curTarget=y[a],c=this._curTarget.position[0],u=this._curTarget.position[1];break}}null!=c&&null!=u&&(this._event={zrenderX:c,zrenderY:u},this.zr.addHoverShape(this._curTarget),this.zr.refreshHover(),this._showItemTrigger())}}}},hideTip:function(){this._hide()},refresh:function(e){if(this._zrHeight=this.zr.getHeight(),this._zrWidth=this.zr.getWidth(),this._lastTipShape&&this._lastTipShape.tipShape.length>0&&this.zr.delShape(this._lastTipShape.tipShape),this._lastTipShape=!1,this.shapeList.length=2,this._lastDataIndex=-1,this._lastSeriesIndex=-1,this._lastItemTriggerId=-1,e){this.option=e,this.option.tooltip=this.reformOption(this.option.tooltip),this.option.tooltip.textStyle=d.merge(this.option.tooltip.textStyle,this.ecTheme.textStyle),this._needAxisTrigger=!1,"axis"===this.option.tooltip.trigger&&(this._needAxisTrigger=!0);for(var t=this.option.series,i=0,n=t.length;n>i;i++)if("axis"===this.query(t[i],"tooltip.trigger")){this._needAxisTrigger=!0;break}this._showDelay=this.option.tooltip.showDelay,this._hideDelay=this.option.tooltip.hideDelay,this._defaultCssText=this._style(this.option.tooltip),this._setSelectedMap(),this._axisLineWidth=this.option.tooltip.axisPointer.lineStyle.width,this._enterable=this.option.tooltip.enterable,!this._enterable&&this._tDom.className.indexOf(h.elementClassName)<0&&(this._tDom.className+=" "+h.elementClassName)}if(this.showing){var a=this;setTimeout(function(){a.zr.trigger(h.EVENT.MOUSEMOVE,a.zr.handler._event)},50)}},onbeforDispose:function(){this._lastTipShape&&this._lastTipShape.tipShape.length>0&&this.zr.delShape(this._lastTipShape.tipShape),clearTimeout(this._hidingTicket),clearTimeout(this._showingTicket),this.zr.un(h.EVENT.MOUSEMOVE,this._onmousemove),this.zr.un(h.EVENT.GLOBALOUT,this._onglobalout),this.hasAppend&&this.dom.firstChild&&this.dom.firstChild.removeChild(this._tDom),this._tDom=null},_encodeHTML:function(e){return String(e).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}},d.inherits(t,i),e("../component").define("tooltip",t),t}),i("echarts/component/legend",["require","./base","zrender/shape/Text","zrender/shape/Rectangle","zrender/shape/Sector","../util/shape/Icon","../util/shape/Candle","../config","zrender/tool/util","zrender/tool/area","../component"],function(e){function t(e,t,n,a,o){if(!this.query(a,"legend.data"))return void console.error("option.legend.data has not been defined.");i.call(this,e,t,n,a,o);var r=this;r._legendSelected=function(e){r.__legendSelected(e)},r._dispatchHoverLink=function(e){return r.__dispatchHoverLink(e)},this._colorIndex=0,this._colorMap={},this._selectedMap={},this._hasDataMap={},this.refresh(a)}var i=e("./base"),n=e("zrender/shape/Text"),a=e("zrender/shape/Rectangle"),o=e("zrender/shape/Sector"),r=e("../util/shape/Icon"),s=e("../util/shape/Candle"),l=e("../config");l.legend={zlevel:0,z:4,show:!0,orient:"horizontal",x:"center",y:"top",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,itemWidth:20,itemHeight:14,textStyle:{color:"#333"},selectedMode:!0};var h=e("zrender/tool/util"),m=e("zrender/tool/area");t.prototype={type:l.COMPONENT_TYPE_LEGEND,_buildShape:function(){if(this.legendOption.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(){var e,t,i,a,o,s,l,V,U=this.legendOption.data,d=U.length,p=this.legendOption.textStyle,c=this.zr.getWidth(),u=this.zr.getHeight(),y=this._itemGroupLocation.x,g=this._itemGroupLocation.y,b=this.legendOption.itemWidth,f=this.legendOption.itemHeight,k=this.legendOption.itemGap;"vertical"===this.legendOption.orient&&"right"===this.legendOption.x&&(y=this._itemGroupLocation.x+this._itemGroupLocation.width-b);for(var x=0;d>x;x++)o=h.merge(U[x].textStyle||{},p),s=this.getFont(o),e=this._getName(U[x]),l=this._getFormatterName(e),""!==e?(t=U[x].icon||this._getSomethingByName(e).type,V=this.getColor(e),"horizontal"===this.legendOption.orient?200>c-y&&b+5+m.getTextWidth(l,s)+(x===d-1||""===U[x+1]?0:k)>=c-y&&(y=this._itemGroupLocation.x,g+=f+k):200>u-g&&f+(x===d-1||""===U[x+1]?0:k)>=u-g&&("right"===this.legendOption.x?y-=this._itemGroupLocation.maxWidth+k:y+=this._itemGroupLocation.maxWidth+k,g=this._itemGroupLocation.y),i=this._getItemShapeByType(y,g,b,f,this._selectedMap[e]&&this._hasDataMap[e]?V:"#ccc",t,V),i._name=e,i=new r(i),a={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:y+b+5,y:g+f/2,color:this._selectedMap[e]?"auto"===o.color?V:o.color:"#ccc",text:l,textFont:s,textBaseline:"middle"},highlightStyle:{color:V,brushType:"fill"},hoverable:!!this.legendOption.selectedMode,clickable:!!this.legendOption.selectedMode},"vertical"===this.legendOption.orient&&"right"===this.legendOption.x&&(a.style.x-=b+10,a.style.textAlign="right"),a._name=e,a=new n(a),this.legendOption.selectedMode&&(i.onclick=a.onclick=this._legendSelected,i.onmouseover=a.onmouseover=this._dispatchHoverLink,i.hoverConnect=a.id,a.hoverConnect=i.id),this.shapeList.push(i),this.shapeList.push(a),"horizontal"===this.legendOption.orient?y+=b+5+m.getTextWidth(l,s)+k:g+=f+k):"horizontal"===this.legendOption.orient?(y=this._itemGroupLocation.x,g+=f+k):("right"===this.legendOption.x?y-=this._itemGroupLocation.maxWidth+k:y+=this._itemGroupLocation.maxWidth+k,g=this._itemGroupLocation.y);"horizontal"===this.legendOption.orient&&"center"===this.legendOption.x&&g!=this._itemGroupLocation.y&&this._mLineOptimize()},_getName:function(e){return"undefined"!=typeof e.name?e.name:e},_getFormatterName:function(e){var t,i=this.legendOption.formatter;return t="function"==typeof i?i.call(this.myChart,e):"string"==typeof i?i.replace("{name}",e):e},_getFormatterNameFromData:function(e){var t=this._getName(e);return this._getFormatterName(t)},_mLineOptimize:function(){for(var e=[],t=this._itemGroupLocation.x,i=2,n=this.shapeList.length;n>i;i++)this.shapeList[i].style.x===t?e.push((this._itemGroupLocation.width-(this.shapeList[i-1].style.x+m.getTextWidth(this.shapeList[i-1].style.text,this.shapeList[i-1].style.textFont)-t))/2):i===n-1&&e.push((this._itemGroupLocation.width-(this.shapeList[i].style.x+m.getTextWidth(this.shapeList[i].style.text,this.shapeList[i].style.textFont)-t))/2);for(var a=-1,i=1,n=this.shapeList.length;n>i;i++)this.shapeList[i].style.x===t&&a++,0!==e[a]&&(this.shapeList[i].style.x+=e[a])},_buildBackground:function(){var e=this.reformCssArray(this.legendOption.padding);this.shapeList.push(new a({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.legendOption.borderWidth?"fill":"both",color:this.legendOption.backgroundColor,strokeColor:this.legendOption.borderColor,lineWidth:this.legendOption.borderWidth}}))},_getItemGroupLocation:function(){var e=this.legendOption.data,t=e.length,i=this.legendOption.itemGap,n=this.legendOption.itemWidth+5,a=this.legendOption.itemHeight,o=this.legendOption.textStyle,r=this.getFont(o),s=0,l=0,V=this.reformCssArray(this.legendOption.padding),U=this.zr.getWidth()-V[1]-V[3],d=this.zr.getHeight()-V[0]-V[2],p=0,c=0;if("horizontal"===this.legendOption.orient){l=a;for(var u=0;t>u;u++)if(""!==this._getName(e[u])){var y=m.getTextWidth(this._getFormatterNameFromData(e[u]),e[u].textStyle?this.getFont(h.merge(e[u].textStyle||{},o)):r);p+n+y+i>U?(p-=i,s=Math.max(s,p),l+=a+i,p=0):(p+=n+y+i,s=Math.max(s,p-i))}else p-=i,s=Math.max(s,p),l+=a+i,p=0}else{for(var u=0;t>u;u++)c=Math.max(c,m.getTextWidth(this._getFormatterNameFromData(e[u]),e[u].textStyle?this.getFont(h.merge(e[u].textStyle||{},o)):r));c+=n,s=c;for(var u=0;t>u;u++)""!==this._getName(e[u])?p+a+i>d?(s+=c+i,p-=i,l=Math.max(l,p),p=0):(p+=a+i,l=Math.max(l,p-i)):(s+=c+i,p-=i,l=Math.max(l,p),p=0)}U=this.zr.getWidth(),d=this.zr.getHeight();var g;switch(this.legendOption.x){case"center":g=Math.floor((U-s)/2);break;case"left":g=V[3]+this.legendOption.borderWidth;break;case"right":g=U-s-V[1]-V[3]-2*this.legendOption.borderWidth;break;default:g=this.parsePercent(this.legendOption.x,U)}var b;switch(this.legendOption.y){case"top":b=V[0]+this.legendOption.borderWidth;break;case"bottom":b=d-l-V[0]-V[2]-2*this.legendOption.borderWidth;break;case"center":b=Math.floor((d-l)/2);break;default:b=this.parsePercent(this.legendOption.y,d)}return{x:g,y:b,width:s,height:l,maxWidth:c}},_getSomethingByName:function(e){for(var t,i=this.option.series,n=0,a=i.length;a>n;n++){if(i[n].name===e)return{type:i[n].type,series:i[n],seriesIndex:n,data:null,dataIndex:-1};if(i[n].type===l.CHART_TYPE_PIE||i[n].type===l.CHART_TYPE_RADAR||i[n].type===l.CHART_TYPE_CHORD||i[n].type===l.CHART_TYPE_FORCE||i[n].type===l.CHART_TYPE_FUNNEL||i[n].type===l.CHART_TYPE_TREEMAP){t=i[n].categories||i[n].data||i[n].nodes;for(var o=0,r=t.length;r>o;o++)if(t[o].name===e)return{type:i[n].type,series:i[n],seriesIndex:n,data:t[o],dataIndex:o}}}return{type:"bar",series:null,seriesIndex:-1,data:null,dataIndex:-1}},_getItemShapeByType:function(e,t,i,n,a,o,r){var s,h="#ccc"===a?r:a,m={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{iconType:"legendicon"+o,x:e,y:t,width:i,height:n,color:a,strokeColor:a,lineWidth:2},highlightStyle:{color:h,strokeColor:h,lineWidth:1},hoverable:this.legendOption.selectedMode,clickable:this.legendOption.selectedMode};if(o.match("image")){var s=o.replace(new RegExp("^image:\\/\\/"),"");o="image"}switch(o){case"line":m.style.brushType="stroke",m.highlightStyle.lineWidth=3;break;case"radar":case"venn":case"tree":case"treemap":case"scatter":m.highlightStyle.lineWidth=3;break;case"k":m.style.brushType="both",m.highlightStyle.lineWidth=3,m.highlightStyle.color=m.style.color=this.deepQuery([this.ecTheme,l],"k.itemStyle.normal.color")||"#fff",m.style.strokeColor="#ccc"!=a?this.deepQuery([this.ecTheme,l],"k.itemStyle.normal.lineStyle.color")||"#ff3200":a;break;case"image":m.style.iconType="image",m.style.image=s,"#ccc"===a&&(m.style.opacity=.5)}return m},__legendSelected:function(e){var t=e.target._name;if("single"===this.legendOption.selectedMode)for(var i in this._selectedMap)this._selectedMap[i]=!1;this._selectedMap[t]=!this._selectedMap[t],this.messageCenter.dispatch(l.EVENT.LEGEND_SELECTED,e.event,{selected:this._selectedMap,target:t},this.myChart)},__dispatchHoverLink:function(e){this.messageCenter.dispatch(l.EVENT.LEGEND_HOVERLINK,e.event,{target:e.target._name},this.myChart)},refresh:function(e){if(e){this.option=e||this.option,this.option.legend=this.reformOption(this.option.legend),this.legendOption=this.option.legend;var t,i,n,a,o=this.legendOption.data||[];if(this.legendOption.selected)for(var r in this.legendOption.selected)this._selectedMap[r]="undefined"!=typeof this._selectedMap[r]?this._selectedMap[r]:this.legendOption.selected[r];for(var s=0,h=o.length;h>s;s++)t=this._getName(o[s]),""!==t&&(i=this._getSomethingByName(t),i.series?(this._hasDataMap[t]=!0,a=!i.data||i.type!==l.CHART_TYPE_PIE&&i.type!==l.CHART_TYPE_FORCE&&i.type!==l.CHART_TYPE_FUNNEL?[i.series]:[i.data,i.series],n=this.getItemStyleColor(this.deepQuery(a,"itemStyle.normal.color"),i.seriesIndex,i.dataIndex,i.data),n&&i.type!=l.CHART_TYPE_K&&this.setColor(t,n),this._selectedMap[t]=null!=this._selectedMap[t]?this._selectedMap[t]:!0):this._hasDataMap[t]=!1)}this.clear(),this._buildShape()},getRelatedAmount:function(e){for(var t,i=0,n=this.option.series,a=0,o=n.length;o>a;a++)if(n[a].name===e&&i++,n[a].type===l.CHART_TYPE_PIE||n[a].type===l.CHART_TYPE_RADAR||n[a].type===l.CHART_TYPE_CHORD||n[a].type===l.CHART_TYPE_FORCE||n[a].type===l.CHART_TYPE_FUNNEL){t=n[a].type!=l.CHART_TYPE_FORCE?n[a].data:n[a].categories;for(var r=0,s=t.length;s>r;r++)t[r].name===e&&"-"!=t[r].value&&i++}return i},setColor:function(e,t){this._colorMap[e]=t},getColor:function(e){return this._colorMap[e]||(this._colorMap[e]=this.zr.getColor(this._colorIndex++)),this._colorMap[e]},hasColor:function(e){return this._colorMap[e]?this._colorMap[e]:!1},add:function(e,t){ +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=a.length;s>r;r++)o.addColorStop(a[r][0],a[r][1]);return o.__nonRecursion=!0,o}function h(e,t,i){e=p(e),t=p(t),e=I(e),t=I(t);for(var n=[],a=(t[0]-e[0])/i,o=(t[1]-e[1])/i,r=(t[2]-e[2])/i,s=(t[3]-e[3])/i,l=0,h=e[0],m=e[1],U=e[2],d=e[3];i>l;l++)n[l]=V([S(Math.floor(h),[0,255]),S(Math.floor(m),[0,255]),S(Math.floor(U),[0,255]),d.toFixed(4)-0],"rgba"),h+=a,m+=o,U+=r,d+=s;return h=t[0],m=t[1],U=t[2],d=t[3],n[l]=V([h,m,U,d],"rgba"),n}function m(e,t){var i=[],n=e.length;if(void 0===t&&(t=20),1===n)i=h(e[0],e[0],t);else if(n>1)for(var a=0,o=n-1;o>a;a++){var r=h(e[a],e[a+1],t);o-1>a&&r.pop(),i=i.concat(r)}return i}function V(e,t){if(t=t||"rgb",e&&(3===e.length||4===e.length)){if(e=C(e,function(e){return e>1?Math.ceil(e):e}),t.indexOf("hex")>-1)return"#"+((1<<24)+(e[0]<<16)+(e[1]<<8)+ +e[2]).toString(16).slice(1);if(t.indexOf("hs")>-1){var i=C(e.slice(1,3),function(e){return e+"%"});e[1]=i[0],e[2]=i[1]}return t.indexOf("a")>-1?(3===e.length&&e.push(1),e[3]=S(e[3],[0,1]),t+"("+e.slice(0,4).join(",")+")"):t+"("+e.slice(0,3).join(",")+")"}}function U(e){e=L(e),e.indexOf("rgba")<0&&(e=p(e));var t=[],i=0;return e.replace(/[\d.]+/g,function(e){e=3>i?0|e:+e,t[i++]=e}),t}function d(e,t){if(!E(e))return e;var i=I(e),n=i[3];return"undefined"==typeof n&&(n=1),e.indexOf("hsb")>-1?i=F(i):e.indexOf("hsl")>-1&&(i=T(i)),t.indexOf("hsb")>-1||t.indexOf("hsv")>-1?i=A(i):t.indexOf("hsl")>-1&&(i=M(i)),i[3]=n,V(i,t)}function p(e){return d(e,"rgba")}function c(e){return d(e,"rgb")}function u(e){return d(e,"hex")}function y(e){return d(e,"hsva")}function g(e){return d(e,"hsv")}function b(e){return d(e,"hsba")}function f(e){return d(e,"hsb")}function k(e){return d(e,"hsla")}function x(e){return d(e,"hsl")}function _(e){for(var t in G)if(u(G[t])===u(e))return t;return null}function L(e){return String(e).replace(/\s+/g,"")}function W(e){if(G[e]&&(e=G[e]),e=L(e),e=e.replace(/hsv/i,"hsb"),/^#[\da-f]{3}$/i.test(e)){e=parseInt(e.slice(1),16);var t=(3840&e)<<8,i=(240&e)<<4,n=15&e;e="#"+((1<<24)+(t<<4)+t+(i<<4)+i+(n<<4)+n).toString(16).slice(1)}return e}function X(e,t){if(!E(e))return e;var i=t>0?1:-1;"undefined"==typeof t&&(t=0),t=Math.abs(t)>1?1:Math.abs(t),e=c(e);for(var n=I(e),a=0;3>a;a++)n[a]=1===i?n[a]*(1-t)|0:(255-n[a])*t+n[a]|0;return"rgb("+n.join(",")+")"}function v(e){if(!E(e))return e;var t=I(p(e));return t=C(t,function(e){return 255-e}),V(t,"rgb")}function w(e,t,i){if(!E(e)||!E(t))return e;"undefined"==typeof i&&(i=.5),i=1-S(i,[0,1]);for(var n=2*i-1,a=I(p(e)),o=I(p(t)),r=a[3]-o[3],s=((n*r===-1?n:(n+r)/(1+n*r))+1)/2,l=1-s,h=[],m=0;3>m;m++)h[m]=a[m]*s+o[m]*l;var U=a[3]*i+o[3]*(1-i);return U=Math.max(0,Math.min(1,U)),1===a[3]&&1===o[3]?V(h,"rgb"):(h[3]=U,V(h,"rgba"))}function K(){return"#"+(Math.random().toString(16)+"0000").slice(2,8)}function I(e){e=W(e);var t=e.match(R);if(null===t)throw new Error("The color format error");var i,n,a,o=[];if(t[2])i=t[2].replace("#","").split(""),a=[i[0]+i[1],i[2]+i[3],i[4]+i[5]],o=C(a,function(e){return S(parseInt(e,16),[0,255])});else if(t[4]){var r=t[4].split(",");n=r[3],a=r.slice(0,3),o=C(a,function(e){return e=Math.floor(e.indexOf("%")>0?2.55*parseInt(e,0):e),S(e,[0,255])}),"undefined"!=typeof n&&o.push(S(parseFloat(n),[0,1]))}else if(t[5]||t[6]){var s=(t[5]||t[6]).split(","),l=parseInt(s[0],0)/360,h=s[1],m=s[2];n=s[3],o=C([h,m],function(e){return S(parseFloat(e)/100,[0,1])}),o.unshift(l),"undefined"!=typeof n&&o.push(S(parseFloat(n),[0,1]))}return o}function J(e,t){if(!E(e))return e;null===t&&(t=1);var i=I(p(e));return i[3]=S(Number(t).toFixed(4),[0,1]),V(i,"rgba")}function C(e,t){if("function"!=typeof t)throw new TypeError;for(var i=e?e.length:0,n=0;i>n;n++)e[n]=t(e[n]);return e}function S(e,t){return e<=t[0]?e=t[0]:e>=t[1]&&(e=t[1]),e}function E(e){return e instanceof Array||"string"==typeof e}function F(e){var t,i,n,a=e[0],o=e[1],r=e[2];if(0===o)t=255*r,i=255*r,n=255*r;else{var s=6*a;6===s&&(s=0);var l=0|s,h=r*(1-o),m=r*(1-o*(s-l)),V=r*(1-o*(1-(s-l))),U=0,d=0,p=0;0===l?(U=r,d=V,p=h):1===l?(U=m,d=r,p=h):2===l?(U=h,d=r,p=V):3===l?(U=h,d=m,p=r):4===l?(U=V,d=h,p=r):(U=r,d=h,p=m),t=255*U,i=255*d,n=255*p}return[t,i,n]}function T(e){var t,i,n,a=e[0],o=e[1],r=e[2];if(0===o)t=255*r,i=255*r,n=255*r;else{var s;s=.5>r?r*(1+o):r+o-o*r;var l=2*r-s;t=255*z(l,s,a+1/3),i=255*z(l,s,a),n=255*z(l,s,a-1/3)}return[t,i,n]}function z(e,t,i){return 0>i&&(i+=1),i>1&&(i-=1),1>6*i?e+6*(t-e)*i:1>2*i?t:2>3*i?e+(t-e)*(2/3-i)*6:e}function A(e){var t,i,n=e[0]/255,a=e[1]/255,o=e[2]/255,r=Math.min(n,a,o),s=Math.max(n,a,o),l=s-r,h=s;if(0===l)t=0,i=0;else{i=l/s;var m=((s-n)/6+l/2)/l,V=((s-a)/6+l/2)/l,U=((s-o)/6+l/2)/l;n===s?t=U-V:a===s?t=1/3+m-U:o===s&&(t=2/3+V-m),0>t&&(t+=1),t>1&&(t-=1)}return t=360*t,i=100*i,h=100*h,[t,i,h]}function M(e){var t,i,n=e[0]/255,a=e[1]/255,o=e[2]/255,r=Math.min(n,a,o),s=Math.max(n,a,o),l=s-r,h=(s+r)/2;if(0===l)t=0,i=0;else{i=.5>h?l/(s+r):l/(2-s-r);var m=((s-n)/6+l/2)/l,V=((s-a)/6+l/2)/l,U=((s-o)/6+l/2)/l;n===s?t=U-V:a===s?t=1/3+m-U:o===s&&(t=2/3+V-m),0>t&&(t+=1),t>1&&(t-=1)}return t=360*t,i=100*i,h=100*h,[t,i,h]}var O,P=e("../tool/util"),D=["#ff9277"," #dddd00"," #ffc877"," #bbe3ff"," #d5ffbb","#bbbbff"," #ddb000"," #b0dd00"," #e2bbff"," #ffbbe3","#ff7777"," #ff9900"," #83dd00"," #77e3ff"," #778fff","#c877ff"," #ff77ab"," #ff6600"," #aa8800"," #77c7ff","#ad77ff"," #ff77ff"," #dd0083"," #777700"," #00aa00","#0088aa"," #8400dd"," #aa0088"," #dd0000"," #772e00"],N=D,B="rgba(255,255,0,0.5)",H=B,R=/^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+%?)?)\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+)?)%?\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+)?)%?\s*\))\s*$/i,G={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#0ff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000",blanchedalmond:"#ffebcd",blue:"#00f",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#0ff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgrey:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#f0f",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",grey:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#789",lightslategrey:"#789",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#0f0",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#f0f",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#f00",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#fff",whitesmoke:"#f5f5f5",yellow:"#ff0",yellowgreen:"#9acd32"};return{customPalette:t,resetPalette:i,getColor:n,getHighlightColor:r,customHighlight:a,resetHighlight:o,getRadialGradient:s,getLinearGradient:l,getGradientColors:m,getStepColors:h,reverse:v,mix:w,lift:X,trim:L,random:K,toRGB:c,toRGBA:p,toHex:u,toHSL:x,toHSLA:k,toHSB:f,toHSBA:b,toHSV:g,toHSVA:y,toName:_,toColor:V,toArray:U,alpha:J,getData:I}}),i("echarts/component/timeline",["require","./base","zrender/shape/Rectangle","../util/shape/Icon","../util/shape/Chain","../config","zrender/tool/util","zrender/tool/area","zrender/tool/event","../component"],function(e){function t(e,t,i,a,o){n.call(this,e,t,i,a,o);var r=this;if(r._onclick=function(e){return r.__onclick(e)},r._ondrift=function(e,t){return r.__ondrift(this,e,t)},r._ondragend=function(){return r.__ondragend()},r._setCurrentOption=function(){var e=r.timelineOption;r.currentIndex%=e.data.length;var t=r.options[r.currentIndex]||{};r.myChart._setOption(t,e.notMerge,!0),r.messageCenter.dispatch(s.EVENT.TIMELINE_CHANGED,null,{currentIndex:r.currentIndex,data:null!=e.data[r.currentIndex].name?e.data[r.currentIndex].name:e.data[r.currentIndex]},r.myChart)},r._onFrame=function(){r._setCurrentOption(),r._syncHandleShape(),r.timelineOption.autoPlay&&(r.playTicket=setTimeout(function(){return r.currentIndex+=1,!r.timelineOption.loop&&r.currentIndex>=r.timelineOption.data.length?(r.currentIndex=r.timelineOption.data.length-1,void r.stop()):void r._onFrame()},r.timelineOption.playInterval))},this.setTheme(!1),this.options=this.option.options,this.currentIndex=this.timelineOption.currentIndex%this.timelineOption.data.length,this.timelineOption.notMerge||0===this.currentIndex||(this.options[this.currentIndex]=l.merge(this.options[this.currentIndex],this.options[0])),this.timelineOption.show&&(this._buildShape(),this._syncHandleShape()),this._setCurrentOption(),this.timelineOption.autoPlay){var r=this;this.playTicket=setTimeout(function(){r.play()},null!=this.ecTheme.animationDuration?this.ecTheme.animationDuration:s.animationDuration)}}function i(e,t){var i=2,n=t.x+i,a=t.y+i+2,r=t.width-i,s=t.height-i,l=t.symbol;if("last"===l)e.moveTo(n+r-2,a+s/3),e.lineTo(n+r-2,a),e.lineTo(n+2,a+s/2),e.lineTo(n+r-2,a+s),e.lineTo(n+r-2,a+s/3*2),e.moveTo(n,a),e.lineTo(n,a);else if("next"===l)e.moveTo(n+2,a+s/3),e.lineTo(n+2,a),e.lineTo(n+r-2,a+s/2),e.lineTo(n+2,a+s),e.lineTo(n+2,a+s/3*2),e.moveTo(n,a),e.lineTo(n,a);else if("play"===l)if("stop"===t.status)e.moveTo(n+2,a),e.lineTo(n+r-2,a+s/2),e.lineTo(n+2,a+s),e.lineTo(n+2,a);else{var h="both"===t.brushType?2:3;e.rect(n+2,a,h,s),e.rect(n+r-h-2,a,h,s)}else if(l.match("image")){var m="";m=l.replace(new RegExp("^image:\\/\\/"),""),l=o.prototype.iconLibrary.image,l(e,{x:n,y:a,width:r,height:s,image:m})}}var n=e("./base"),a=e("zrender/shape/Rectangle"),o=e("../util/shape/Icon"),r=e("../util/shape/Chain"),s=e("../config");s.timeline={zlevel:0,z:4,show:!0,type:"time",notMerge:!1,realtime:!0,x:80,x2:80,y2:0,height:50,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,controlPosition:"left",autoPlay:!1,loop:!0,playInterval:2e3,lineStyle:{width:1,color:"#666",type:"dashed"},label:{show:!0,interval:"auto",rotate:0,textStyle:{color:"#333"}},checkpointStyle:{symbol:"auto",symbolSize:"auto",color:"auto",borderColor:"auto",borderWidth:"auto",label:{show:!1,textStyle:{color:"auto"}}},controlStyle:{itemSize:15,itemGap:5,normal:{color:"#333"},emphasis:{color:"#1e90ff"}},symbol:"emptyDiamond",symbolSize:4,currentIndex:0};var l=e("zrender/tool/util"),h=e("zrender/tool/area"),m=e("zrender/tool/event");return t.prototype={type:s.COMPONENT_TYPE_TIMELINE,_buildShape:function(){if(this._location=this._getLocation(),this._buildBackground(),this._buildControl(),this._chainPoint=this._getChainPoint(),this.timelineOption.label.show)for(var e=this._getInterval(),t=0,i=this._chainPoint.length;i>t;t+=e)this._chainPoint[t].showLabel=!0;this._buildChain(),this._buildHandle();for(var t=0,n=this.shapeList.length;n>t;t++)this.zr.addShape(this.shapeList[t])},_getLocation:function(){var e,t=this.timelineOption,i=this.reformCssArray(this.timelineOption.padding),n=this.zr.getWidth(),a=this.parsePercent(t.x,n),o=this.parsePercent(t.x2,n);null==t.width?(e=n-a-o,o=n-o):(e=this.parsePercent(t.width,n),o=a+e);var r,s,l=this.zr.getHeight(),h=this.parsePercent(t.height,l);return null!=t.y?(r=this.parsePercent(t.y,l),s=r+h):(s=l-this.parsePercent(t.y2,l),r=s-h),{x:a+i[3],y:r+i[0],x2:o-i[1],y2:s-i[2],width:e-i[1]-i[3],height:h-i[0]-i[2]}},_getReformedLabel:function(e){var t=this.timelineOption,i=null!=t.data[e].name?t.data[e].name:t.data[e],n=t.data[e].formatter||t.label.formatter;return n&&("function"==typeof n?i=n.call(this.myChart,i):"string"==typeof n&&(i=n.replace("{value}",i))),i},_getInterval:function(){var e=this._chainPoint,t=this.timelineOption,i=t.label.interval;if("auto"===i){var n=t.label.textStyle.fontSize,a=t.data,o=t.data.length;if(o>3){var r,s,l=!1;for(i=0;!l&&o>i;){i++,l=!0;for(var m=i;o>m;m+=i){if(r=e[m].x-e[m-i].x,0!==t.label.rotate)s=n;else if(a[m].textStyle)s=h.getTextWidth(e[m].name,e[m].textFont);else{var V=e[m].name+"",U=(V.match(/\w/g)||"").length,d=V.length-U;s=U*n*2/3+d*n}if(s>r){l=!1;break}}}}else i=1}else i=i-0+1;return i},_getChainPoint:function(){function e(e){return null!=h[e].name?h[e].name:h[e]+""}var t,i=this.timelineOption,n=i.symbol.toLowerCase(),a=i.symbolSize,o=i.label.rotate,r=i.label.textStyle,s=this.getFont(r),h=i.data,m=this._location.x,V=this._location.y+this._location.height/4*3,U=this._location.x2-this._location.x,d=h.length,p=[];if(d>1){var c=U/d;if(c=c>50?50:20>c?5:c,U-=2*c,"number"===i.type)for(var u=0;d>u;u++)p.push(m+c+U/(d-1)*u);else{p[0]=new Date(e(0).replace(/-/g,"/")),p[d-1]=new Date(e(d-1).replace(/-/g,"/"))-p[0];for(var u=1;d>u;u++)p[u]=m+c+U*(new Date(e(u).replace(/-/g,"/"))-p[0])/p[d-1];p[0]=m+c}}else p.push(m+U/2);for(var y,g,b,f,k,x=[],u=0;d>u;u++)m=p[u],y=h[u].symbol&&h[u].symbol.toLowerCase()||n,y.match("empty")?(y=y.replace("empty",""),b=!0):b=!1,y.match("star")&&(g=y.replace("star","")-0||5,y="star"),t=h[u].textStyle?l.merge(h[u].textStyle||{},r):r,f=t.align||"center",o?(f=o>0?"right":"left",k=[o*Math.PI/180,m,V-5]):k=!1,x.push({x:m,n:g,isEmpty:b,symbol:y,symbolSize:h[u].symbolSize||a,color:h[u].color,borderColor:h[u].borderColor,borderWidth:h[u].borderWidth,name:this._getReformedLabel(u),textColor:t.color,textAlign:f,textBaseline:t.baseline||"middle",textX:m,textY:V-(o?5:0),textFont:h[u].textStyle?this.getFont(t):s,rotation:k,showLabel:!1});return x},_buildBackground:function(){var e=this.timelineOption,t=this.reformCssArray(this.timelineOption.padding),i=this._location.width,n=this._location.height;(0!==e.borderWidth||"rgba(0,0,0,0)"!=e.backgroundColor.replace(/\s/g,""))&&this.shapeList.push(new a({zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:this._location.x-t[3],y:this._location.y-t[0],width:i+t[1]+t[3],height:n+t[0]+t[2],brushType:0===e.borderWidth?"fill":"both",color:e.backgroundColor,strokeColor:e.borderColor,lineWidth:e.borderWidth}}))},_buildControl:function(){var e=this,t=this.timelineOption,i=t.lineStyle,n=t.controlStyle;if("none"!==t.controlPosition){var a,r=n.itemSize,s=n.itemGap;"left"===t.controlPosition?(a=this._location.x,this._location.x+=3*(r+s)):(a=this._location.x2-(3*(r+s)-s),this._location.x2-=3*(r+s));var h=this._location.y,m={zlevel:this.getZlevelBase(),z:this.getZBase()+1,style:{iconType:"timelineControl",symbol:"last",x:a,y:h,width:r,height:r,brushType:"stroke",color:n.normal.color,strokeColor:n.normal.color,lineWidth:i.width},highlightStyle:{color:n.emphasis.color,strokeColor:n.emphasis.color,lineWidth:i.width+1},clickable:!0};this._ctrLastShape=new o(m),this._ctrLastShape.onclick=function(){e.last()},this.shapeList.push(this._ctrLastShape),a+=r+s,this._ctrPlayShape=new o(l.clone(m)),this._ctrPlayShape.style.brushType="fill",this._ctrPlayShape.style.symbol="play",this._ctrPlayShape.style.status=this.timelineOption.autoPlay?"playing":"stop",this._ctrPlayShape.style.x=a,this._ctrPlayShape.onclick=function(){"stop"===e._ctrPlayShape.style.status?e.play():e.stop()},this.shapeList.push(this._ctrPlayShape),a+=r+s,this._ctrNextShape=new o(l.clone(m)),this._ctrNextShape.style.symbol="next",this._ctrNextShape.style.x=a,this._ctrNextShape.onclick=function(){e.next()},this.shapeList.push(this._ctrNextShape)}},_buildChain:function(){var e=this.timelineOption,t=e.lineStyle;this._timelineShae={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:this._location.x,y:this.subPixelOptimize(this._location.y,t.width),width:this._location.x2-this._location.x,height:this._location.height,chainPoint:this._chainPoint,brushType:"both",strokeColor:t.color,lineWidth:t.width,lineType:t.type},hoverable:!1,clickable:!0,onclick:this._onclick},this._timelineShae=new r(this._timelineShae),this.shapeList.push(this._timelineShae)},_buildHandle:function(){var e=this._chainPoint[this.currentIndex],t=e.symbolSize+1;t=5>t?5:t,this._handleShape={zlevel:this.getZlevelBase(),z:this.getZBase()+1,hoverable:!1,draggable:!0,style:{iconType:"diamond",n:e.n,x:e.x-t,y:this._location.y+this._location.height/4-t,width:2*t,height:2*t,brushType:"both",textPosition:"specific",textX:e.x,textY:this._location.y-this._location.height/4,textAlign:"center",textBaseline:"middle"},highlightStyle:{},ondrift:this._ondrift,ondragend:this._ondragend},this._handleShape=new o(this._handleShape),this.shapeList.push(this._handleShape)},_syncHandleShape:function(){if(this.timelineOption.show){var e=this.timelineOption,t=e.checkpointStyle,i=this._chainPoint[this.currentIndex];this._handleShape.style.text=t.label.show?i.name:"",this._handleShape.style.textFont=i.textFont,this._handleShape.style.n=i.n,"auto"===t.symbol?this._handleShape.style.iconType="none"!=i.symbol?i.symbol:"diamond":(this._handleShape.style.iconType=t.symbol,t.symbol.match("star")&&(this._handleShape.style.n=t.symbol.replace("star","")-0||5,this._handleShape.style.iconType="star"));var n;"auto"===t.symbolSize?(n=i.symbolSize+2,n=5>n?5:n):n=t.symbolSize-0,this._handleShape.style.color="auto"===t.color?i.color?i.color:e.controlStyle.emphasis.color:t.color,this._handleShape.style.textColor="auto"===t.label.textStyle.color?this._handleShape.style.color:t.label.textStyle.color,this._handleShape.highlightStyle.strokeColor=this._handleShape.style.strokeColor="auto"===t.borderColor?i.borderColor?i.borderColor:"#fff":t.borderColor,this._handleShape.style.lineWidth="auto"===t.borderWidth?i.borderWidth?i.borderWidth:0:t.borderWidth-0,this._handleShape.highlightStyle.lineWidth=this._handleShape.style.lineWidth+1,this.zr.animate(this._handleShape.id,"style").when(500,{x:i.x-n,textX:i.x,y:this._location.y+this._location.height/4-n,width:2*n,height:2*n}).start("ExponentialOut")}},_findChainIndex:function(e){var t=this._chainPoint,i=t.length;if(e<=t[0].x)return 0;if(e>=t[i-1].x)return i-1;for(var n=0;i-1>n;n++)if(e>=t[n].x&&e<=t[n+1].x)return Math.abs(e-t[n].x)=n[a-1].x-n[a-1].symbolSize?(e.style.x=n[a-1].x-n[a-1].symbolSize,i=a-1):(e.style.x+=t,i=this._findChainIndex(e.style.x));var o=n[i],r=o.symbolSize+2;if(e.style.iconType=o.symbol,e.style.n=o.n,e.style.textX=e.style.x+r/2,e.style.y=this._location.y+this._location.height/4-r,e.style.width=2*r,e.style.height=2*r,e.style.text=o.name,i===this.currentIndex)return!0;if(this.currentIndex=i,this.timelineOption.realtime){clearTimeout(this.playTicket);var s=this;this.playTicket=setTimeout(function(){s._setCurrentOption()},200)}return!0},__ondragend:function(){this.isDragend=!0},ondragend:function(e,t){this.isDragend&&e.target&&(!this.timelineOption.realtime&&this._setCurrentOption(),t.dragOut=!0,t.dragIn=!0,t.needRefresh=!1,this.isDragend=!1,this._syncHandleShape())},last:function(){return this.timelineOption.autoPlay&&this.stop(),this.currentIndex-=1,this.currentIndex<0&&(this.currentIndex=this.timelineOption.data.length-1),this._onFrame(),this.currentIndex},next:function(){return this.timelineOption.autoPlay&&this.stop(),this.currentIndex+=1,this.currentIndex>=this.timelineOption.data.length&&(this.currentIndex=0),this._onFrame(),this.currentIndex},play:function(e,t){return this._ctrPlayShape&&"playing"!=this._ctrPlayShape.style.status&&(this._ctrPlayShape.style.status="playing",this.zr.modShape(this._ctrPlayShape.id),this.zr.refreshNextFrame()),this.timelineOption.autoPlay=null!=t?t:!0,this.timelineOption.autoPlay||clearTimeout(this.playTicket),this.currentIndex=null!=e?e:this.currentIndex+1,this.currentIndex>=this.timelineOption.data.length&&(this.currentIndex=0),this._onFrame(),this.currentIndex},stop:function(){return this._ctrPlayShape&&"stop"!=this._ctrPlayShape.style.status&&(this._ctrPlayShape.style.status="stop",this.zr.modShape(this._ctrPlayShape.id),this.zr.refreshNextFrame()),this.timelineOption.autoPlay=!1,clearTimeout(this.playTicket),this.currentIndex},resize:function(){this.timelineOption.show&&(this.clear(),this._buildShape(),this._syncHandleShape())},setTheme:function(e){this.timelineOption=this.reformOption(l.clone(this.option.timeline)),this.timelineOption.label.textStyle=this.getTextStyle(this.timelineOption.label.textStyle),this.timelineOption.checkpointStyle.label.textStyle=this.getTextStyle(this.timelineOption.checkpointStyle.label.textStyle),this.myChart.canvasSupported||(this.timelineOption.realtime=!1),this.timelineOption.show&&e&&(this.clear(),this._buildShape(),this._syncHandleShape())},onbeforDispose:function(){clearTimeout(this.playTicket)}},o.prototype.iconLibrary.timelineControl=i,l.inherits(t,n),e("../component").define("timeline",t),t}),i("zrender/shape/Image",["require","./Base","../tool/util"],function(e){var t=e("./Base"),i=function(e){t.call(this,e)};return i.prototype={type:"image",brush:function(e,t,i){var n=this.style||{};t&&(n=this.getHighlightStyle(n,this.highlightStyle||{}));var a=n.image,o=this;if(this._imageCache||(this._imageCache={}),"string"==typeof a){var r=a;this._imageCache[r]?a=this._imageCache[r]:(a=new Image,a.onload=function(){a.onload=null,o.modSelf(),i()},a.src=r,this._imageCache[r]=a)}if(a){if("IMG"==a.nodeName.toUpperCase())if(window.ActiveXObject){if("complete"!=a.readyState)return}else if(!a.complete)return;var s=n.width||a.width,l=n.height||a.height,h=n.x,m=n.y;if(!a.width||!a.height)return;if(e.save(),this.doClip(e),this.setContext(e,n),this.setTransform(e),n.sWidth&&n.sHeight){var V=n.sx||0,U=n.sy||0;e.drawImage(a,V,U,n.sWidth,n.sHeight,h,m,s,l)}else if(n.sx&&n.sy){var V=n.sx,U=n.sy,d=s-V,p=l-U;e.drawImage(a,V,U,d,p,h,m,s,l)}else e.drawImage(a,h,m,s,l);n.width||(n.width=s),n.height||(n.height=l),this.style.width||(this.style.width=s),this.style.height||(this.style.height=l),this.drawText(e,n,this.style),e.restore()}},getRect:function(e){return{x:e.x,y:e.y,width:e.width,height:e.height}},clearCache:function(){this._imageCache={}}},e("../tool/util").inherits(i,t),i}),i("zrender/loadingEffect/Bar",["require","./Base","../tool/util","../tool/color","../shape/Rectangle"],function(e){function t(e){i.call(this,e)}var i=e("./Base"),n=e("../tool/util"),a=e("../tool/color"),o=e("../shape/Rectangle");return n.inherits(t,i),t.prototype._start=function(e,t){var i=n.merge(this.options,{textStyle:{color:"#888"},backgroundColor:"rgba(250, 250, 250, 0.8)",effectOption:{x:0,y:this.canvasHeight/2-30,width:this.canvasWidth,height:5,brushType:"fill",timeInterval:100}}),r=this.createTextShape(i.textStyle),s=this.createBackgroundShape(i.backgroundColor),l=i.effectOption,h=new o({highlightStyle:n.clone(l)});return h.highlightStyle.color=l.color||a.getLinearGradient(l.x,l.y,l.x+l.width,l.y+l.height,[[0,"#ff6400"],[.5,"#ffe100"],[1,"#b1ff00"]]),null!=i.progress?(e(s),h.highlightStyle.width=this.adjust(i.progress,[0,1])*i.effectOption.width,e(h),e(r),void t()):(h.highlightStyle.width=0,setInterval(function(){e(s),h.highlightStyle.widthc;c++){var u="random"==l.color?a.alpha(a.random(),.3):l.color;U[c]=new o({highlightStyle:{x:Math.ceil(Math.random()*d),y:Math.ceil(Math.random()*p),r:Math.ceil(40*Math.random()),brushType:m,color:u,strokeColor:u,lineWidth:V},animationY:Math.ceil(20*Math.random())})}return setInterval(function(){e(s);for(var i=0;h>i;i++){var n=U[i].highlightStyle;n.y-U[i].animationY+n.r<=0&&(U[i].highlightStyle.y=p+n.r,U[i].highlightStyle.x=Math.ceil(Math.random()*d)),U[i].highlightStyle.y-=U[i].animationY,e(U[i])}e(r),t()},l.timeInterval)},t}),i("zrender/loadingEffect/DynamicLine",["require","./Base","../tool/util","../tool/color","../shape/Line"],function(e){function t(e){i.call(this,e)}var i=e("./Base"),n=e("../tool/util"),a=e("../tool/color"),o=e("../shape/Line");return n.inherits(t,i),t.prototype._start=function(e,t){for(var i=n.merge(this.options,{textStyle:{color:"#fff"},backgroundColor:"rgba(0, 0, 0, 0.8)",effectOption:{n:30,lineWidth:1,color:"random",timeInterval:100}}),r=this.createTextShape(i.textStyle),s=this.createBackgroundShape(i.backgroundColor),l=i.effectOption,h=l.n,m=l.lineWidth,V=[],U=this.canvasWidth,d=this.canvasHeight,p=0;h>p;p++){var c=-Math.ceil(1e3*Math.random()),u=Math.ceil(400*Math.random()),y=Math.ceil(Math.random()*d),g="random"==l.color?a.random():l.color;V[p]=new o({highlightStyle:{xStart:c,yStart:y,xEnd:c+u,yEnd:y,strokeColor:g,lineWidth:m},animationX:Math.ceil(100*Math.random()),len:u})}return setInterval(function(){e(s);for(var i=0;h>i;i++){var n=V[i].highlightStyle;n.xStart>=U&&(V[i].len=Math.ceil(400*Math.random()),n.xStart=-400,n.xEnd=-400+V[i].len,n.yStart=Math.ceil(Math.random()*d),n.yEnd=n.yStart),n.xStart+=V[i].animationX,n.xEnd+=V[i].animationX,e(V[i])}e(r),t()},l.timeInterval)},t}),i("zrender/loadingEffect/Ring",["require","./Base","../tool/util","../tool/color","../shape/Ring","../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("../shape/Ring"),r=e("../shape/Sector");return n.inherits(t,i),t.prototype._start=function(e,t){var i=n.merge(this.options,{textStyle:{color:"#07a"},backgroundColor:"rgba(250, 250, 250, 0.8)",effect:{x:this.canvasWidth/2,y:this.canvasHeight/2,r0:60,r:100,color:"#bbdcff",brushType:"fill",textPosition:"inside",textFont:"normal 30px verdana",textColor:"rgba(30, 144, 255, 0.6)",timeInterval:100}}),s=i.effect,l=i.textStyle; + +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","#588dd5","#f5994e","#c05050","#59678c","#c9ab00","#7eb00a","#6f5553","#c14089"],title:{textStyle:{fontWeight:"normal",color:"#008acd"}},dataRange:{itemWidth:15,color:["#5ab1ef","#e0ffff"]},toolbox:{color:["#1e90ff","#1e90ff","#1e90ff","#1e90ff"],effectiveColor:"#ff4500"},tooltip:{backgroundColor:"rgba(50,50,50,0.5)",axisPointer:{type:"line",lineStyle:{color:"#008acd"},crossStyle:{color:"#008acd"},shadowStyle:{color:"rgba(200,200,200,0.2)"}}},dataZoom:{dataBackgroundColor:"#efefff",fillerColor:"rgba(182,162,222,0.2)",handleColor:"#008acd"},grid:{borderColor:"#eee"},categoryAxis:{axisLine:{lineStyle:{color:"#008acd"}},splitLine:{lineStyle:{color:["#eee"]}}},valueAxis:{axisLine:{lineStyle:{color:"#008acd"}},splitArea:{show:!0,areaStyle:{color:["rgba(250,250,250,0.1)","rgba(200,200,200,0.1)"]}},splitLine:{lineStyle:{color:["#eee"]}}},polar:{axisLine:{lineStyle:{color:"#ddd"}},splitArea:{show:!0,areaStyle:{color:["rgba(250,250,250,0.2)","rgba(200,200,200,0.2)"]}},splitLine:{lineStyle:{color:"#ddd"}}},timeline:{lineStyle:{color:"#008acd"},controlStyle:{normal:{color:"#008acd"},emphasis:{color:"#008acd"}},symbol:"emptyCircle",symbolSize:3},bar:{itemStyle:{normal:{barBorderRadius:5},emphasis:{barBorderRadius:5}}},line:{smooth:!0,symbol:"emptyCircle",symbolSize:3},k:{itemStyle:{normal:{color:"#d87a80",color0:"#2ec7c9",lineStyle:{color:"#d87a80",color0:"#2ec7c9"}}}},scatter:{symbol:"circle",symbolSize:4},radar:{symbol:"emptyCircle",symbolSize:3},map:{itemStyle:{normal:{areaStyle:{color:"#ddd"},label:{textStyle:{color:"#d87a80"}}},emphasis:{areaStyle:{color:"#fe994e"}}}},force:{itemStyle:{normal:{linkStyle:{color:"#1e90ff"}}}},chord:{itemStyle:{normal:{borderWidth:1,borderColor:"rgba(128, 128, 128, 0.5)",chordStyle:{lineStyle:{color:"rgba(128, 128, 128, 0.5)"}}},emphasis:{borderWidth:1,borderColor:"rgba(128, 128, 128, 0.5)",chordStyle:{lineStyle:{color:"rgba(128, 128, 128, 0.5)"}}}}},gauge:{axisLine:{lineStyle:{color:[[.2,"#2ec7c9"],[.8,"#5ab1ef"],[1,"#d87a80"]],width:10}},axisTick:{splitNumber:10,length:15,lineStyle:{color:"auto"}},splitLine:{length:22,lineStyle:{color:"auto"}},pointer:{width:5}},textStyle:{fontFamily:"微软雅黑, Arial, Verdana, sans-serif"}};return e}),i("echarts/theme/infographic",[],function(){var e={color:["#C1232B","#B5C334","#FCCE10","#E87C25","#27727B","#FE8463","#9BCA63","#FAD860","#F3A43B","#60C0DD","#D7504B","#C6E579","#F4E001","#F0805A","#26C0C0"],title:{textStyle:{fontWeight:"normal",color:"#27727B"}},dataRange:{x:"right",y:"center",itemWidth:5,itemHeight:25,color:["#C1232B","#FCCE10"]},toolbox:{color:["#C1232B","#B5C334","#FCCE10","#E87C25","#27727B","#FE8463","#9BCA63","#FAD860","#F3A43B","#60C0DD"],effectiveColor:"#ff4500"},tooltip:{backgroundColor:"rgba(50,50,50,0.5)",axisPointer:{type:"line",lineStyle:{color:"#27727B",type:"dashed"},crossStyle:{color:"#27727B"},shadowStyle:{color:"rgba(200,200,200,0.3)"}}},dataZoom:{dataBackgroundColor:"rgba(181,195,52,0.3)",fillerColor:"rgba(181,195,52,0.2)",handleColor:"#27727B"},grid:{borderWidth:0},categoryAxis:{axisLine:{lineStyle:{color:"#27727B"}},splitLine:{show:!1}},valueAxis:{axisLine:{show:!1},splitArea:{show:!1},splitLine:{lineStyle:{color:["#ccc"],type:"dashed"}}},polar:{axisLine:{lineStyle:{color:"#ddd"}},splitArea:{show:!0,areaStyle:{color:["rgba(250,250,250,0.2)","rgba(200,200,200,0.2)"]}},splitLine:{lineStyle:{color:"#ddd"}}},timeline:{lineStyle:{color:"#27727B"},controlStyle:{normal:{color:"#27727B"},emphasis:{color:"#27727B"}},symbol:"emptyCircle",symbolSize:3},line:{itemStyle:{normal:{borderWidth:2,borderColor:"#fff",lineStyle:{width:3}},emphasis:{borderWidth:0}},symbol:"circle",symbolSize:3.5},k:{itemStyle:{normal:{color:"#C1232B",color0:"#B5C334",lineStyle:{width:1,color:"#C1232B",color0:"#B5C334"}}}},scatter:{itemStyle:{normal:{borderWidth:1,borderColor:"rgba(200,200,200,0.5)"},emphasis:{borderWidth:0}},symbol:"star4",symbolSize:4},radar:{symbol:"emptyCircle",symbolSize:3},map:{itemStyle:{normal:{areaStyle:{color:"#ddd"},label:{textStyle:{color:"#C1232B"}}},emphasis:{areaStyle:{color:"#fe994e"},label:{textStyle:{color:"rgb(100,0,0)"}}}}},force:{itemStyle:{normal:{linkStyle:{color:"#27727B"}}}},chord:{itemStyle:{normal:{borderWidth:1,borderColor:"rgba(128, 128, 128, 0.5)",chordStyle:{lineStyle:{color:"rgba(128, 128, 128, 0.5)"}}},emphasis:{borderWidth:1,borderColor:"rgba(128, 128, 128, 0.5)",chordStyle:{lineStyle:{color:"rgba(128, 128, 128, 0.5)"}}}}},gauge:{center:["50%","80%"],radius:"100%",startAngle:180,endAngle:0,axisLine:{show:!0,lineStyle:{color:[[.2,"#B5C334"],[.8,"#27727B"],[1,"#C1232B"]],width:"40%"}},axisTick:{splitNumber:2,length:5,lineStyle:{color:"#fff"}},axisLabel:{textStyle:{color:"#fff",fontWeight:"bolder"}},splitLine:{length:"5%",lineStyle:{color:"#fff"}},pointer:{width:"40%",length:"80%",color:"#fff"},title:{offsetCenter:[0,-20],textStyle:{color:"auto",fontSize:20}},detail:{offsetCenter:[0,0],textStyle:{color:"auto",fontSize:40}}},textStyle:{fontFamily:"微软雅黑, Arial, Verdana, sans-serif"}};return e}),i("zrender/dep/excanvas",["require"],function(){return document.createElement("canvas").getContext?G_vmlCanvasManager=!1:!function(){function e(){return this.context_||(this.context_=new f(this))}function t(e,t){var i=O.call(arguments,2);return function(){return e.apply(t,i.concat(O.call(arguments)))}}function i(e){return String(e).replace(/&/g,"&").replace(/"/g,""")}function n(e,t,i){e.namespaces[t]||e.namespaces.add(t,i,"#default#VML")}function a(e){if(n(e,"g_vml_","urn:schemas-microsoft-com:vml"),n(e,"g_o_","urn:schemas-microsoft-com:office:office"),!e.styleSheets.ex_canvas_){var t=e.createStyleSheet();t.owningElement.id="ex_canvas_",t.cssText="canvas{display:inline-block;overflow:hidden;text-align:left;width:300px;height:150px}"}}function o(e){var t=e.srcElement;switch(e.propertyName){case"width":t.getContext().clearRect(),t.style.width=t.attributes.width.nodeValue+"px",t.firstChild.style.width=t.clientWidth+"px";break;case"height":t.getContext().clearRect(),t.style.height=t.attributes.height.nodeValue+"px",t.firstChild.style.height=t.clientHeight+"px"}}function r(e){var t=e.srcElement;t.firstChild&&(t.firstChild.style.width=t.clientWidth+"px",t.firstChild.style.height=t.clientHeight+"px")}function s(){return[[1,0,0],[0,1,0],[0,0,1]]}function l(e,t){for(var i=s(),n=0;3>n;n++)for(var a=0;3>a;a++){for(var o=0,r=0;3>r;r++)o+=e[n][r]*t[r][a];i[n][a]=o}return i}function h(e,t){t.fillStyle=e.fillStyle,t.lineCap=e.lineCap,t.lineJoin=e.lineJoin,t.lineWidth=e.lineWidth,t.miterLimit=e.miterLimit,t.shadowBlur=e.shadowBlur,t.shadowColor=e.shadowColor,t.shadowOffsetX=e.shadowOffsetX,t.shadowOffsetY=e.shadowOffsetY,t.strokeStyle=e.strokeStyle,t.globalAlpha=e.globalAlpha,t.font=e.font,t.textAlign=e.textAlign,t.textBaseline=e.textBaseline,t.scaleX_=e.scaleX_,t.scaleY_=e.scaleY_,t.lineScale_=e.lineScale_}function m(e){var t=e.indexOf("(",3),i=e.indexOf(")",t+1),n=e.substring(t+1,i).split(",");return(4!=n.length||"a"!=e.charAt(3))&&(n[3]=1),n}function V(e){return parseFloat(e)/100}function U(e,t,i){return Math.min(i,Math.max(t,e))}function d(e){var t,i,n,a,o,r;if(a=parseFloat(e[0])/360%360,0>a&&a++,o=U(V(e[1]),0,1),r=U(V(e[2]),0,1),0==o)t=i=n=r;else{var s=.5>r?r*(1+o):r+o-r*o,l=2*r-s;t=p(l,s,a+1/3),i=p(l,s,a),n=p(l,s,a-1/3)}return"#"+D[Math.floor(255*t)]+D[Math.floor(255*i)]+D[Math.floor(255*n)]}function p(e,t,i){return 0>i&&i++,i>1&&i--,1>6*i?e+6*(t-e)*i:1>2*i?t:2>3*i?e+(t-e)*(2/3-i)*6:e}function c(e){if(e in R)return R[e];var t,i=1;if(e=String(e),"#"==e.charAt(0))t=e;else if(/^rgb/.test(e)){for(var n,a=m(e),t="#",o=0;3>o;o++)n=-1!=a[o].indexOf("%")?Math.floor(255*V(a[o])):+a[o],t+=D[U(n,0,255)];i=+a[3]}else if(/^hsl/.test(e)){var a=m(e);t=d(a),i=a[3]}else t=H[e]||e;return R[e]={color:t,alpha:i}}function u(e){if(Y[e])return Y[e];var t,i=document.createElement("div"),n=i.style;try{n.font=e,t=n.fontFamily.split(",")[0]}catch(a){}return Y[e]={style:n.fontStyle||G.style,variant:n.fontVariant||G.variant,weight:n.fontWeight||G.weight,size:n.fontSize||G.size,family:t||G.family}}function y(e,t){var i={};for(var n in e)i[n]=e[n];var a=parseFloat(t.currentStyle.fontSize),o=parseFloat(e.size);return i.size="number"==typeof e.size?e.size:-1!=e.size.indexOf("px")?o:-1!=e.size.indexOf("em")?a*o:-1!=e.size.indexOf("%")?a/100*o:-1!=e.size.indexOf("pt")?o/.75:a,i}function g(e){return e.style+" "+e.variant+" "+e.weight+" "+e.size+"px '"+e.family+"'"}function b(e){return Q[e]||"square"}function f(e){this.m_=s(),this.mStack_=[],this.aStack_=[],this.currentPath_=[],this.strokeStyle="#000",this.fillStyle="#000",this.lineWidth=1,this.lineJoin="miter",this.lineCap="butt",this.miterLimit=1*A,this.globalAlpha=1,this.font="12px 微软雅黑",this.textAlign="left",this.textBaseline="alphabetic",this.canvas=e;var t="width:"+e.clientWidth+"px;height:"+e.clientHeight+"px;overflow:hidden;position:absolute",i=e.ownerDocument.createElement("div");i.style.cssText=t,e.appendChild(i);var n=i.cloneNode(!1);n.style.backgroundColor="#fff",n.style.filter="alpha(opacity=0)",e.appendChild(n),this.element_=i,this.scaleX_=1,this.scaleY_=1,this.lineScale_=1}function k(e,t,i,n){e.currentPath_.push({type:"bezierCurveTo",cp1x:t.x,cp1y:t.y,cp2x:i.x,cp2y:i.y,x:n.x,y:n.y}),e.currentX_=n.x,e.currentY_=n.y}function x(e,t){var i=c(e.strokeStyle),n=i.color,a=i.alpha*e.globalAlpha,o=e.lineScale_*e.lineWidth;1>o&&(a*=o),t.push("')}function _(e,t,i,n){var a=e.fillStyle,o=e.scaleX_,r=e.scaleY_,s=n.x-i.x,l=n.y-i.y;if(a instanceof v){var h=0,m={x:0,y:0},V=0,U=1;if("gradient"==a.type_){var d=a.x0_/o,p=a.y0_/r,u=a.x1_/o,y=a.y1_/r,g=L(e,d,p),b=L(e,u,y),f=b.x-g.x,k=b.y-g.y;h=180*Math.atan2(f,k)/Math.PI,0>h&&(h+=360),1e-6>h&&(h=0)}else{var g=L(e,a.x0_,a.y0_);m={x:(g.x-i.x)/s,y:(g.y-i.y)/l},s/=o*A,l/=r*A;var x=C.max(s,l);V=2*a.r0_/x,U=2*a.r1_/x-V}var _=a.colors_;_.sort(function(e,t){return e.offset-t.offset});for(var W=_.length,X=_[0].color,K=_[W-1].color,I=_[0].alpha*e.globalAlpha,J=_[W-1].alpha*e.globalAlpha,S=[],E=0;W>E;E++){var F=_[E];S.push(F.offset*U+V+" "+F.color)}t.push('')}else if(a instanceof w){if(s&&l){var T=-i.x,z=-i.y;t.push("')}}else{var M=c(e.fillStyle),O=M.color,P=M.alpha*e.globalAlpha;t.push('')}}function L(e,t,i){var n=e.m_;return{x:A*(t*n[0][0]+i*n[1][0]+n[2][0])-M,y:A*(t*n[0][1]+i*n[1][1]+n[2][1])-M}}function W(e){return isFinite(e[0][0])&&isFinite(e[0][1])&&isFinite(e[1][0])&&isFinite(e[1][1])&&isFinite(e[2][0])&&isFinite(e[2][1])}function X(e,t,i){if(W(t)&&(e.m_=t,e.scaleX_=Math.sqrt(t[0][0]*t[0][0]+t[0][1]*t[0][1]),e.scaleY_=Math.sqrt(t[1][0]*t[1][0]+t[1][1]*t[1][1]),i)){var n=t[0][0]*t[1][1]-t[0][1]*t[1][0];e.lineScale_=z(T(n))}}function v(e){this.type_=e,this.x0_=0,this.y0_=0,this.r0_=0,this.x1_=0,this.y1_=0,this.r1_=0,this.colors_=[]}function w(e,t){switch(I(e),t){case"repeat":case null:case"":this.repetition_="repeat";break;case"repeat-x":case"repeat-y":case"no-repeat":this.repetition_=t;break;default:K("SYNTAX_ERR")}this.src_=e.src,this.width_=e.width,this.height_=e.height}function K(e){throw new J(e)}function I(e){e&&1==e.nodeType&&"IMG"==e.tagName||K("TYPE_MISMATCH_ERR"),"complete"!=e.readyState&&K("INVALID_STATE_ERR")}function J(e){this.code=this[e],this.message=e+": DOM Exception "+this.code}var C=Math,S=C.round,E=C.sin,F=C.cos,T=C.abs,z=C.sqrt,A=10,M=A/2,O=(+navigator.userAgent.match(/MSIE ([\d.]+)?/)[1],Array.prototype.slice);a(document);var P={init:function(e){var i=e||document;i.createElement("canvas"),i.attachEvent("onreadystatechange",t(this.init_,this,i))},init_:function(e){for(var t=e.getElementsByTagName("canvas"),i=0;iN;N++)for(var B=0;16>B;B++)D[16*N+B]=N.toString(16)+B.toString(16);var H={aliceblue:"#F0F8FF",antiquewhite:"#FAEBD7",aquamarine:"#7FFFD4",azure:"#F0FFFF",beige:"#F5F5DC",bisque:"#FFE4C4",black:"#000000",blanchedalmond:"#FFEBCD",blueviolet:"#8A2BE2",brown:"#A52A2A",burlywood:"#DEB887",cadetblue:"#5F9EA0",chartreuse:"#7FFF00",chocolate:"#D2691E",coral:"#FF7F50",cornflowerblue:"#6495ED",cornsilk:"#FFF8DC",crimson:"#DC143C",cyan:"#00FFFF",darkblue:"#00008B",darkcyan:"#008B8B",darkgoldenrod:"#B8860B",darkgray:"#A9A9A9",darkgreen:"#006400",darkgrey:"#A9A9A9",darkkhaki:"#BDB76B",darkmagenta:"#8B008B",darkolivegreen:"#556B2F",darkorange:"#FF8C00",darkorchid:"#9932CC",darkred:"#8B0000",darksalmon:"#E9967A",darkseagreen:"#8FBC8F",darkslateblue:"#483D8B",darkslategray:"#2F4F4F",darkslategrey:"#2F4F4F",darkturquoise:"#00CED1",darkviolet:"#9400D3",deeppink:"#FF1493",deepskyblue:"#00BFFF",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1E90FF",firebrick:"#B22222",floralwhite:"#FFFAF0",forestgreen:"#228B22",gainsboro:"#DCDCDC",ghostwhite:"#F8F8FF",gold:"#FFD700",goldenrod:"#DAA520",grey:"#808080",greenyellow:"#ADFF2F",honeydew:"#F0FFF0",hotpink:"#FF69B4",indianred:"#CD5C5C",indigo:"#4B0082",ivory:"#FFFFF0",khaki:"#F0E68C",lavender:"#E6E6FA",lavenderblush:"#FFF0F5",lawngreen:"#7CFC00",lemonchiffon:"#FFFACD",lightblue:"#ADD8E6",lightcoral:"#F08080",lightcyan:"#E0FFFF",lightgoldenrodyellow:"#FAFAD2",lightgreen:"#90EE90",lightgrey:"#D3D3D3",lightpink:"#FFB6C1",lightsalmon:"#FFA07A",lightseagreen:"#20B2AA",lightskyblue:"#87CEFA",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#B0C4DE",lightyellow:"#FFFFE0",limegreen:"#32CD32",linen:"#FAF0E6",magenta:"#FF00FF",mediumaquamarine:"#66CDAA",mediumblue:"#0000CD",mediumorchid:"#BA55D3",mediumpurple:"#9370DB",mediumseagreen:"#3CB371",mediumslateblue:"#7B68EE",mediumspringgreen:"#00FA9A",mediumturquoise:"#48D1CC",mediumvioletred:"#C71585",midnightblue:"#191970",mintcream:"#F5FFFA",mistyrose:"#FFE4E1",moccasin:"#FFE4B5",navajowhite:"#FFDEAD",oldlace:"#FDF5E6",olivedrab:"#6B8E23",orange:"#FFA500",orangered:"#FF4500",orchid:"#DA70D6",palegoldenrod:"#EEE8AA",palegreen:"#98FB98",paleturquoise:"#AFEEEE",palevioletred:"#DB7093",papayawhip:"#FFEFD5",peachpuff:"#FFDAB9",peru:"#CD853F",pink:"#FFC0CB",plum:"#DDA0DD",powderblue:"#B0E0E6",rosybrown:"#BC8F8F",royalblue:"#4169E1",saddlebrown:"#8B4513",salmon:"#FA8072",sandybrown:"#F4A460",seagreen:"#2E8B57",seashell:"#FFF5EE",sienna:"#A0522D",skyblue:"#87CEEB",slateblue:"#6A5ACD",slategray:"#708090",slategrey:"#708090",snow:"#FFFAFA",springgreen:"#00FF7F",steelblue:"#4682B4",tan:"#D2B48C",thistle:"#D8BFD8",tomato:"#FF6347",turquoise:"#40E0D0",violet:"#EE82EE",wheat:"#F5DEB3",whitesmoke:"#F5F5F5",yellowgreen:"#9ACD32"},R={},G={style:"normal",variant:"normal",weight:"normal",size:12,family:"微软雅黑"},Y={},Q={butt:"flat",round:"round"},Z=f.prototype;Z.clearRect=function(){this.textMeasureEl_&&(this.textMeasureEl_.removeNode(!0),this.textMeasureEl_=null),this.element_.innerHTML=""},Z.beginPath=function(){this.currentPath_=[]},Z.moveTo=function(e,t){var i=L(this,e,t);this.currentPath_.push({type:"moveTo",x:i.x,y:i.y}),this.currentX_=i.x,this.currentY_=i.y},Z.lineTo=function(e,t){var i=L(this,e,t);this.currentPath_.push({type:"lineTo",x:i.x,y:i.y}),this.currentX_=i.x,this.currentY_=i.y},Z.bezierCurveTo=function(e,t,i,n,a,o){var r=L(this,a,o),s=L(this,e,t),l=L(this,i,n);k(this,s,l,r)},Z.quadraticCurveTo=function(e,t,i,n){var a=L(this,e,t),o=L(this,i,n),r={x:this.currentX_+2/3*(a.x-this.currentX_),y:this.currentY_+2/3*(a.y-this.currentY_)},s={x:r.x+(o.x-this.currentX_)/3,y:r.y+(o.y-this.currentY_)/3};k(this,r,s,o)},Z.arc=function(e,t,i,n,a,o){i*=A;var r=o?"at":"wa",s=e+F(n)*i-M,l=t+E(n)*i-M,h=e+F(a)*i-M,m=t+E(a)*i-M;s!=h||o||(s+=.125);var V=L(this,e,t),U=L(this,s,l),d=L(this,h,m);this.currentPath_.push({type:r,x:V.x,y:V.y,radius:i,xStart:U.x,yStart:U.y,xEnd:d.x,yEnd:d.y})},Z.rect=function(e,t,i,n){this.moveTo(e,t),this.lineTo(e+i,t),this.lineTo(e+i,t+n),this.lineTo(e,t+n),this.closePath()},Z.strokeRect=function(e,t,i,n){var a=this.currentPath_;this.beginPath(),this.moveTo(e,t),this.lineTo(e+i,t),this.lineTo(e+i,t+n),this.lineTo(e,t+n),this.closePath(),this.stroke(),this.currentPath_=a},Z.fillRect=function(e,t,i,n){var a=this.currentPath_;this.beginPath(),this.moveTo(e,t),this.lineTo(e+i,t),this.lineTo(e+i,t+n),this.lineTo(e,t+n),this.closePath(),this.fill(),this.currentPath_=a},Z.createLinearGradient=function(e,t,i,n){var a=new v("gradient");return a.x0_=e,a.y0_=t,a.x1_=i,a.y1_=n,a},Z.createRadialGradient=function(e,t,i,n,a,o){var r=new v("gradientradial");return r.x0_=e,r.y0_=t,r.r0_=i,r.x1_=n,r.y1_=a,r.r1_=o,r},Z.drawImage=function(e){var t,i,n,a,o,r,s,l,h=e.runtimeStyle.width,m=e.runtimeStyle.height;e.runtimeStyle.width="auto",e.runtimeStyle.height="auto";var V=e.width,U=e.height;if(e.runtimeStyle.width=h,e.runtimeStyle.height=m,3==arguments.length)t=arguments[1],i=arguments[2],o=r=0,s=n=V,l=a=U;else if(5==arguments.length)t=arguments[1],i=arguments[2],n=arguments[3],a=arguments[4],o=r=0,s=V,l=U;else{if(9!=arguments.length)throw Error("Invalid number of arguments");o=arguments[1],r=arguments[2],s=arguments[3],l=arguments[4],t=arguments[5],i=arguments[6],n=arguments[7],a=arguments[8]}var d=L(this,t,i),p=[],c=10,u=10,y=b=1;if(p.push(" '),(o||r)&&p.push('
'),p.push('
'),(o||r)&&p.push("
"),p.push("
"),this.element_.insertAdjacentHTML("BeforeEnd",p.join(""))},Z.stroke=function(e){var t=[],i=10,n=10;t.push("o.x)&&(o.x=l.x),(null==a.y||l.yo.y)&&(o.y=l.y))}t.push(' ">'),e?_(this,t,a,o):x(this,t),t.push(""),this.element_.insertAdjacentHTML("beforeEnd",t.join(""))},Z.fill=function(){this.stroke(!0)},Z.closePath=function(){this.currentPath_.push({type:"close"})},Z.save=function(){var e={};h(this,e),this.aStack_.push(e),this.mStack_.push(this.m_),this.m_=l(s(),this.m_)},Z.restore=function(){this.aStack_.length&&(h(this.aStack_.pop(),this),this.m_=this.mStack_.pop())},Z.translate=function(e,t){var i=[[1,0,0],[0,1,0],[e,t,1]];X(this,l(i,this.m_),!1)},Z.rotate=function(e){var t=F(e),i=E(e),n=[[t,i,0],[-i,t,0],[0,0,1]];X(this,l(n,this.m_),!1)},Z.scale=function(e,t){var i=[[e,0,0],[0,t,0],[0,0,1]];X(this,l(i,this.m_),!0)},Z.transform=function(e,t,i,n,a,o){var r=[[e,t,0],[i,n,0],[a,o,1]];X(this,l(r,this.m_),!0)},Z.setTransform=function(e,t,i,n,a,o){var r=[[e,t,0],[i,n,0],[a,o,1]];X(this,r,!0)},Z.drawText_=function(e,t,n,a,o){var r=this.m_,s=1e3,l=0,h=s,m={x:0,y:0},V=[],U=y(u(this.font),this.element_),d=g(U),p=this.element_.currentStyle,c=this.textAlign.toLowerCase();switch(c){case"left":case"center":case"right":break;case"end":c="ltr"==p.direction?"right":"left";break;case"start":c="rtl"==p.direction?"right":"left";break;default:c="left"}switch(this.textBaseline){case"hanging":case"top":m.y=U.size/1.75;break;case"middle":break;default:case null:case"alphabetic":case"ideographic":case"bottom":m.y=-U.size/2.25}switch(c){case"right":l=s,h=.05;break;case"center":l=h=s/2}var b=L(this,t+m.x,n+m.y);V.push(''),o?x(this,V):_(this,V,{x:-l,y:0},{x:h,y:U.size});var f=r[0][0].toFixed(3)+","+r[1][0].toFixed(3)+","+r[0][1].toFixed(3)+","+r[1][1].toFixed(3)+",0,0",k=S(b.x/A)+","+S(b.y/A);V.push('','',''),this.element_.insertAdjacentHTML("beforeEnd",V.join(""))},Z.fillText=function(e,t,i,n){this.drawText_(e,t,i,n,!1)},Z.strokeText=function(e,t,i,n){this.drawText_(e,t,i,n,!0)},Z.measureText=function(e){if(!this.textMeasureEl_){var t='';this.element_.insertAdjacentHTML("beforeEnd",t),this.textMeasureEl_=this.element_.lastChild}var i=this.element_.ownerDocument;this.textMeasureEl_.innerHTML="";try{this.textMeasureEl_.style.font=this.font}catch(n){}return this.textMeasureEl_.appendChild(i.createTextNode(e)),{width:this.textMeasureEl_.offsetWidth}},Z.clip=function(){},Z.arcTo=function(){},Z.createPattern=function(e,t){return new w(e,t)},v.prototype.addColorStop=function(e,t){t=c(t),this.colors_.push({offset:e,color:t.color,alpha:t.alpha})};var q=J.prototype=new Error;q.INDEX_SIZE_ERR=1,q.DOMSTRING_SIZE_ERR=2,q.HIERARCHY_REQUEST_ERR=3,q.WRONG_DOCUMENT_ERR=4,q.INVALID_CHARACTER_ERR=5,q.NO_DATA_ALLOWED_ERR=6,q.NO_MODIFICATION_ALLOWED_ERR=7,q.NOT_FOUND_ERR=8,q.NOT_SUPPORTED_ERR=9,q.INUSE_ATTRIBUTE_ERR=10,q.INVALID_STATE_ERR=11,q.SYNTAX_ERR=12,q.INVALID_MODIFICATION_ERR=13,q.NAMESPACE_ERR=14,q.INVALID_ACCESS_ERR=15,q.VALIDATION_ERR=16,q.TYPE_MISMATCH_ERR=17,G_vmlCanvasManager=P,CanvasRenderingContext2D=f,CanvasGradient=v,CanvasPattern=w,DOMException=J}(),G_vmlCanvasManager}),i("zrender/mixin/Eventful",["require"],function(){var e=function(){this._handlers={}};return e.prototype.one=function(e,t,i){var n=this._handlers;return t&&e?(n[e]||(n[e]=[]),n[e].push({h:t,one:!0,ctx:i||this}),this):this},e.prototype.bind=function(e,t,i){var n=this._handlers;return t&&e?(n[e]||(n[e]=[]),n[e].push({h:t,one:!1,ctx:i||this}),this):this},e.prototype.unbind=function(e,t){var i=this._handlers;if(!e)return this._handlers={},this;if(t){if(i[e]){for(var n=[],a=0,o=i[e].length;o>a;a++)i[e][a].h!=t&&n.push(i[e][a]);i[e]=n}i[e]&&0===i[e].length&&delete i[e]}else delete i[e];return this},e.prototype.dispatch=function(e){if(this._handlers[e]){var t=arguments,i=t.length;i>3&&(t=Array.prototype.slice.call(t,1));for(var n=this._handlers[e],a=n.length,o=0;a>o;){switch(i){case 1:n[o].h.call(n[o].ctx);break;case 2:n[o].h.call(n[o].ctx,t[1]);break;case 3:n[o].h.call(n[o].ctx,t[1],t[2]);break;default:n[o].h.apply(n[o].ctx,t)}n[o].one?(n.splice(o,1),a--):o++}}return this},e.prototype.dispatchWithContext=function(e){if(this._handlers[e]){var t=arguments,i=t.length;i>4&&(t=Array.prototype.slice.call(t,1,t.length-1));for(var n=t[t.length-1],a=this._handlers[e],o=a.length,r=0;o>r;){switch(i){case 1:a[r].h.call(n);break;case 2:a[r].h.call(n,t[1]);break;case 3:a[r].h.call(n,t[1],t[2]);break;default:a[r].h.apply(n,t)}a[r].one?(a.splice(r,1),o--):r++}}return this},e}),i("zrender/tool/log",["require","../config"],function(e){var t=e("../config");return function(){if(0!==t.debugMode)if(1==t.debugMode)for(var e in arguments)throw new Error(arguments[e]);else if(t.debugMode>1)for(var e in arguments)console.log(arguments[e])}}),i("zrender/tool/guid",[],function(){var e=2311;return function(){return"zrender__"+e++}}),i("zrender/Handler",["require","./config","./tool/env","./tool/event","./tool/util","./tool/vector","./tool/matrix","./mixin/Eventful"],function(e){"use strict";function t(e,t){return function(i,n){return e.call(t,i,n)}}function i(e,t){return function(i,n,a){return e.call(t,i,n,a)}}function n(e){for(var i=d.length;i--;){var n=d[i];e["_"+n+"Handler"]=t(c[n],e)}}function a(e,t,i){if(this._draggingTarget&&this._draggingTarget.id==e.id||e.isSilent())return!1;var n=this._event;if(e.isCover(t,i)){e.hoverable&&this.storage.addHover(e);for(var a=e.parent;a;){if(a.clipShape&&!a.clipShape.isCover(this._mouseX,this._mouseY))return!1;a=a.parent}return this._lastHover!=e&&(this._processOutShape(n),this._processDragLeave(n),this._lastHover=e,this._processDragEnter(n)),this._processOverShape(n),this._processDragOver(n),this._hasfound=1,!0}return!1}var o=e("./config"),r=e("./tool/env"),s=e("./tool/event"),l=e("./tool/util"),h=e("./tool/vector"),m=e("./tool/matrix"),V=o.EVENT,U=e("./mixin/Eventful"),d=["resize","click","dblclick","mousewheel","mousemove","mouseout","mouseup","mousedown","touchstart","touchend","touchmove"],p=function(e){if(window.G_vmlCanvasManager)return!0;e=e||window.event;var t=e.toElement||e.relatedTarget||e.srcElement||e.target;return t&&t.className.match(o.elementClassName)},c={resize:function(e){e=e||window.event,this._lastHover=null,this._isMouseDown=0,this.dispatch(V.RESIZE,e)},click:function(e,t){if(p(e)||t){e=this._zrenderEventFixed(e);var i=this._lastHover;(i&&i.clickable||!i)&&this._clickThreshold<5&&this._dispatchAgency(i,V.CLICK,e),this._mousemoveHandler(e)}},dblclick:function(e,t){if(p(e)||t){e=e||window.event,e=this._zrenderEventFixed(e);var i=this._lastHover;(i&&i.clickable||!i)&&this._clickThreshold<5&&this._dispatchAgency(i,V.DBLCLICK,e),this._mousemoveHandler(e)}},mousewheel:function(e,t){if(p(e)||t){e=this._zrenderEventFixed(e);var i=e.wheelDelta||-e.detail,n=i>0?1.1:1/1.1,a=!1,o=this._mouseX,r=this._mouseY;this.painter.eachBuildinLayer(function(t){var i=t.position;if(t.zoomable){t.__zoom=t.__zoom||1;var l=t.__zoom;l*=n,l=Math.max(Math.min(t.maxZoom,l),t.minZoom),n=l/t.__zoom,t.__zoom=l,i[0]-=(o-i[0])*(n-1),i[1]-=(r-i[1])*(n-1),t.scale[0]*=n,t.scale[1]*=n,t.dirty=!0,a=!0,s.stop(e)}}),a&&this.painter.refresh(),this._dispatchAgency(this._lastHover,V.MOUSEWHEEL,e),this._mousemoveHandler(e)}},mousemove:function(e,t){if((p(e)||t)&&!this.painter.isLoading()){e=this._zrenderEventFixed(e),this._lastX=this._mouseX,this._lastY=this._mouseY,this._mouseX=s.getX(e),this._mouseY=s.getY(e);var i=this._mouseX-this._lastX,n=this._mouseY-this._lastY;this._processDragStart(e),this._hasfound=0,this._event=e,this._iterateAndFindHover(),this._hasfound||((!this._draggingTarget||this._lastHover&&this._lastHover!=this._draggingTarget)&&(this._processOutShape(e), +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=0;o--){var r=n[o];if(t!==r.zlevel&&(i=this.painter.getLayer(r.zlevel,i),a[0]=this._mouseX,a[1]=this._mouseY,i.needTransform&&(m.invert(e,i.transform),h.applyTransform(a,a,e))),this._findHover(r,a[0],a[1]))break}}}();var y=[{x:10},{x:-20},{x:10,y:10},{y:-20}];return u.prototype._mobileFindFixed=function(e){this._lastHover=null,this._mouseX=e.zrenderX,this._mouseY=e.zrenderY,this._event=e,this._iterateAndFindHover();for(var t=0;!this._lastHover&&ts;s++){var h=e[s];if(n!==h.zlevel&&(i&&(i.needTransform&&o.restore(),o.flush&&o.flush()),n=h.zlevel,i=this.getLayer(n),i.isBuildin||r("ZLevel "+n+" has been used by unkown layer "+i.id),o=i.ctx,i.unusedCount=0,(i.dirty||t)&&i.clear(),i.needTransform&&(o.save(),i.setTransform(o))),(i.dirty||t)&&!h.invisible&&(!h.onbrush||h.onbrush&&!h.onbrush(o,!1)))if(a.catchBrushException)try{h.brush(o,!1,this.refreshNextFrame)}catch(m){r(m,"brush error of "+h.type,h)}else h.brush(o,!1,this.refreshNextFrame);h.__dirty=!1}i&&(i.needTransform&&o.restore(),o.flush&&o.flush()),this.eachBuildinLayer(this._postProcessLayer)},h.prototype.getLayer=function(e){var t=this._layers[e];return t||(t=new l(e,this),t.isBuildin=!0,this._layerConfig[e]&&o.merge(t,this._layerConfig[e],!0),t.updateTransform(),this.insertLayer(e,t),t.initContext()),t},h.prototype.insertLayer=function(e,t){if(this._layers[e])return void r("ZLevel "+e+" has been used already");if(!n(t))return void r("Layer of zlevel "+e+" is not valid");var i=this._zlevelList.length,a=null,o=-1;if(i>0&&e>this._zlevelList[0]){for(o=0;i-1>o&&!(this._zlevelList[o]e);o++);a=this._layers[this._zlevelList[o]]}this._zlevelList.splice(o+1,0,e);var s=a?a.dom:this._bgDom;s.nextSibling?s.parentNode.insertBefore(t.dom,s.nextSibling):s.parentNode.appendChild(t.dom),this._layers[e]=t},h.prototype.eachLayer=function(e,t){for(var i=0;in;n++){var o=e[n],r=o.zlevel,s=t[r];if(s){if(s.elCount++,s.dirty)continue;s.dirty=o.__dirty}}this.eachBuildinLayer(function(e,t){i[t]!==e.elCount&&(e.dirty=!0)})},h.prototype.refreshShapes=function(e,t){for(var i=0,n=e.length;n>i;i++){var a=e[i];a.modSelf()}return this.refresh(t),this},h.prototype.setLoadingEffect=function(e){return this._loadingEffect=e,this},h.prototype.clear=function(){return this.eachBuildinLayer(this._clearLayer),this},h.prototype._clearLayer=function(e){e.clear()},h.prototype.modLayer=function(e,t){if(t){this._layerConfig[e]?o.merge(this._layerConfig[e],t,!0):this._layerConfig[e]=t;var i=this._layers[e];i&&o.merge(i,this._layerConfig[e],!0)}},h.prototype.delLayer=function(e){var t=this._layers[e];t&&(this.modLayer(e,{position:t.position,rotation:t.rotation,scale:t.scale}),t.dom.parentNode.removeChild(t.dom),delete this._layers[e],this._zlevelList.splice(o.indexOf(this._zlevelList,e),1))},h.prototype.refreshHover=function(){this.clearHover();for(var e=this.storage.getHoverShapes(!0),t=0,i=e.length;i>t;t++)this._brushHover(e[t]);var n=this._layers.hover.ctx;return n.flush&&n.flush(),this.storage.delHover(),this},h.prototype.clearHover=function(){var e=this._layers.hover;return e&&e.clear(),this},h.prototype.showLoading=function(e){return this._loadingEffect&&this._loadingEffect.stop(),e&&this.setLoadingEffect(e),this._loadingEffect.start(this),this.loading=!0,this},h.prototype.hideLoading=function(){return this._loadingEffect.stop(),this.clearHover(),this.loading=!1,this},h.prototype.isLoading=function(){return this.loading},h.prototype.resize=function(){var e=this._domRoot;e.style.display="none";var t=this._getWidth(),i=this._getHeight();if(e.style.display="",this._width!=t||i!=this._height){this._width=t,this._height=i,e.style.width=t+"px",e.style.height=i+"px";for(var n in this._layers)this._layers[n].resize(t,i);this.refresh(null,!0)}return this},h.prototype.clearLayer=function(e){var t=this._layers[e];t&&t.clear()},h.prototype.dispose=function(){this.isLoading()&&this.hideLoading(),this.root.innerHTML="",this.root=this.storage=this._domRoot=this._layers=null},h.prototype.getDomHover=function(){return this._layers.hover.dom},h.prototype.toDataURL=function(e,t,i){if(window.G_vmlCanvasManager)return null;var n=new l("image",this);this._bgDom.appendChild(n.dom),n.initContext();var o=n.ctx;n.clearColor=t||"#fff",n.clear();var s=this;this.storage.iterShape(function(e){if(!e.invisible&&(!e.onbrush||e.onbrush&&!e.onbrush(o,!1)))if(a.catchBrushException)try{e.brush(o,!1,s.refreshNextFrame)}catch(t){r(t,"brush error of "+e.type,e)}else e.brush(o,!1,s.refreshNextFrame)},{normal:"up",update:!0});var h=n.dom.toDataURL(e,i);return o=null,this._bgDom.removeChild(n.dom),h},h.prototype.getWidth=function(){return this._width},h.prototype.getHeight=function(){return this._height},h.prototype._getWidth=function(){var e=this.root,t=e.currentStyle||document.defaultView.getComputedStyle(e);return((e.clientWidth||parseInt(t.width,10))-parseInt(t.paddingLeft,10)-parseInt(t.paddingRight,10)).toFixed(0)-0},h.prototype._getHeight=function(){var e=this.root,t=e.currentStyle||document.defaultView.getComputedStyle(e);return((e.clientHeight||parseInt(t.height,10))-parseInt(t.paddingTop,10)-parseInt(t.paddingBottom,10)).toFixed(0)-0},h.prototype._brushHover=function(e){var t=this._layers.hover.ctx;if(!e.onbrush||e.onbrush&&!e.onbrush(t,!0)){var i=this.getLayer(e.zlevel);if(i.needTransform&&(t.save(),i.setTransform(t)),a.catchBrushException)try{e.brush(t,!0,this.refreshNextFrame)}catch(n){r(n,"hoverBrush error of "+e.type,e)}else e.brush(t,!0,this.refreshNextFrame);i.needTransform&&t.restore()}},h.prototype._shapeToImage=function(t,i,n,a,o){var r=document.createElement("canvas"),s=r.getContext("2d");r.style.width=n+"px",r.style.height=a+"px",r.setAttribute("width",n*o),r.setAttribute("height",a*o),s.clearRect(0,0,n*o,a*o);var l={position:i.position,rotation:i.rotation,scale:i.scale};i.position=[0,0,0],i.rotation=0,i.scale=[1,1],i&&i.brush(s,!1);var h=e("./shape/Image"),m=new h({id:t,style:{x:0,y:0,image:r}});return null!=l.position&&(m.position=i.position=l.position),null!=l.rotation&&(m.rotation=i.rotation=l.rotation),null!=l.scale&&(m.scale=i.scale=l.scale),m},h.prototype._createShapeToImageProcessor=function(){if(window.G_vmlCanvasManager)return i;var e=this;return function(t,i,n,o){return e._shapeToImage(t,i,n,o,a.devicePixelRatio)}},h}),i("zrender/Storage",["require","./tool/util","./Group"],function(e){"use strict";function t(e,t){return e.zlevel==t.zlevel?e.z==t.z?e.__renderidx-t.__renderidx:e.z-t.z:e.zlevel-t.zlevel}var i=e("./tool/util"),n=e("./Group"),a={hover:!1,normal:"down",update:!1},o=function(){this._elements={},this._hoverElements=[],this._roots=[],this._shapeList=[],this._shapeListOffset=0};return o.prototype.iterShape=function(e,t){if(t||(t=a),t.hover)for(var i=0,n=this._hoverElements.length;n>i;i++){var o=this._hoverElements[i];if(o.updateTransform(),e(o))return this}switch(t.update&&this.updateShapeList(),t.normal){case"down":for(var n=this._shapeList.length;n--;)if(e(this._shapeList[n]))return this;break;default:for(var i=0,n=this._shapeList.length;n>i;i++)if(e(this._shapeList[i]))return this}return this},o.prototype.getHoverShapes=function(e){for(var i=[],n=0,a=this._hoverElements.length;a>n;n++){i.push(this._hoverElements[n]);var o=this._hoverElements[n].hoverConnect;if(o){var r;o=o instanceof Array?o:[o];for(var s=0,l=o.length;l>s;s++)r=o[s].id?o[s]:this.get(o[s]),r&&i.push(r)}}if(i.sort(t),e)for(var n=0,a=i.length;a>n;n++)i[n].updateTransform();return i},o.prototype.getShapeList=function(e){return e&&this.updateShapeList(),this._shapeList},o.prototype.updateShapeList=function(){this._shapeListOffset=0;for(var e=0,i=this._roots.length;i>e;e++){var n=this._roots[e];this._updateAndAddShape(n)}this._shapeList.length=this._shapeListOffset;for(var e=0,i=this._shapeList.length;i>e;e++)this._shapeList[e].__renderidx=e;this._shapeList.sort(t)},o.prototype._updateAndAddShape=function(e,t){if(!e.ignore)if(e.updateTransform(),e.clipShape&&(e.clipShape.parent=e,e.clipShape.updateTransform(),t?(t=t.slice(),t.push(e.clipShape)):t=[e.clipShape]),"group"==e.type){for(var i=0;i0},o.prototype.addRoot=function(e){this._elements[e.id]||(e instanceof n&&e.addChildrenToStorage(this),this.addToMap(e),this._roots.push(e))},o.prototype.delRoot=function(e){if("undefined"==typeof e){for(var t=0;tt;t++)this.delRoot(e[t]);else{var r;r="string"==typeof e?this._elements[e]:e;var s=i.indexOf(this._roots,r);s>=0&&(this.delFromMap(r.id),this._roots.splice(s,1),r instanceof n&&r.delChildrenFromStorage(this))}},o.prototype.addToMap=function(e){return e instanceof n&&(e._storage=this),e.modSelf(),this._elements[e.id]=e,this},o.prototype.get=function(e){return this._elements[e]},o.prototype.delFromMap=function(e){var t=this._elements[e];return t&&(delete this._elements[e],t instanceof n&&(t._storage=null)),this},o.prototype.dispose=function(){this._elements=this._renderList=this._roots=this._hoverElements=null},o}),i("zrender/animation/Animation",["require","./Clip","../tool/color","../tool/util","../tool/event"],function(e){"use strict";function t(e,t){return e[t]}function i(e,t,i){e[t]=i}function n(e,t,i){return(t-e)*i+e}function a(e,t,i,a,o){var r=e.length;if(1==o)for(var s=0;r>s;s++)a[s]=n(e[s],t[s],i);else for(var l=e[0].length,s=0;r>s;s++)for(var h=0;l>h;h++)a[s][h]=n(e[s][h],t[s][h],i)}function o(e){switch(typeof e){case"undefined":case"string":return!1}return"undefined"!=typeof e.length}function r(e,t,i,n,a,o,r,l,h){var m=e.length;if(1==h)for(var V=0;m>V;V++)l[V]=s(e[V],t[V],i[V],n[V],a,o,r);else for(var U=e[0].length,V=0;m>V;V++)for(var d=0;U>d;d++)l[V][d]=s(e[V][d],t[V][d],i[V][d],n[V][d],a,o,r)}function s(e,t,i,n,a,o,r){var s=.5*(i-e),l=.5*(n-t);return(2*(t-i)+s+l)*r+(-3*(t-i)-2*s-l)*o+s*a+t}function l(e){if(o(e)){var t=e.length;if(o(e[0])){for(var i=[],n=0;t>n;n++)i.push(c.call(e[n]));return i}return c.call(e)}return e}function h(e){return e[0]=Math.floor(e[0]),e[1]=Math.floor(e[1]),e[2]=Math.floor(e[2]),"rgba("+e.join(",")+")"}var m=e("./Clip"),V=e("../tool/color"),U=e("../tool/util"),d=e("../tool/event").Dispatcher,p=window.requestAnimationFrame||window.msRequestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(e){setTimeout(e,16)},c=Array.prototype.slice,u=function(e){e=e||{},this.stage=e.stage||{},this.onframe=e.onframe||function(){},this._clips=[],this._running=!1,this._time=0,d.call(this)};u.prototype={add:function(e){this._clips.push(e)},remove:function(e){if(e.__inStep)e.__needsRemove=!0;else{var t=U.indexOf(this._clips,e);t>=0&&this._clips.splice(t,1)}},_update:function(){for(var e=(new Date).getTime(),t=e-this._time,i=this._clips,n=i.length,a=[],o=[],r=0;n>r;r++){var s=i[r];s.__inStep=!0;var l=s.step(e);s.__inStep=!1,l&&(a.push(l),o.push(s))}for(var r=0;n>r;)i[r].__needsRemove?(i[r]=i[n-1],i.pop(),n--):r++;n=a.length;for(var r=0;n>r;r++)o[r].fire(a[r]);this._time=e,this.onframe(t),this.dispatch("frame",t),this.stage.update&&this.stage.update()},start:function(){function e(){t._running&&(p(e),t._update())}var t=this;this._running=!0,this._time=(new Date).getTime(),p(e)},stop:function(){this._running=!1},clear:function(){this._clips=[]},animate:function(e,t){t=t||{};var i=new y(e,t.loop,t.getter,t.setter);return i.animation=this,i},constructor:u},U.merge(u.prototype,d.prototype,!0);var y=function(e,n,a,o){this._tracks={},this._target=e,this._loop=n||!1,this._getter=a||t,this._setter=o||i,this._clipCount=0,this._delay=0,this._doneList=[],this._onframeList=[],this._clipList=[]};return y.prototype={when:function(e,t){for(var i in t)this._tracks[i]||(this._tracks[i]=[],0!==e&&this._tracks[i].push({time:0,value:l(this._getter(this._target,i))})),this._tracks[i].push({time:parseInt(e,10),value:t[i]});return this},during:function(e){return this._onframeList.push(e),this},start:function(e){var t=this,i=this._setter,l=this._getter,U="spline"===e,d=function(){if(t._clipCount--,0===t._clipCount){t._tracks={};for(var e=t._doneList.length,i=0;e>i;i++)t._doneList[i].call(t)}},p=function(p,c){var u=p.length;if(u){var y=p[0].value,g=o(y),b=!1,f=g&&o(y[0])?2:1;p.sort(function(e,t){return e.time-t.time});var k;if(u){k=p[u-1].time;for(var x=[],_=[],L=0;u>L;L++){x.push(p[L].time/k);var W=p[L].value;"string"==typeof W&&(W=V.toArray(W),0===W.length&&(W[0]=W[1]=W[2]=0,W[3]=1),b=!0),_.push(W)}var X,L,v,w,K,I,J,C=0,S=0;if(b)var E=[0,0,0,0];var F=function(e,o){if(S>o){for(X=Math.min(C+1,u-1),L=X;L>=0&&!(x[L]<=o);L--);L=Math.min(L,u-2)}else{for(L=C;u>L&&!(x[L]>o);L++);L=Math.min(L-1,u-2)}C=L,S=o;var m=x[L+1]-x[L];if(0!==m){if(v=(o-x[L])/m,U)if(K=_[L],w=_[0===L?L:L-1],I=_[L>u-2?u-1:L+1],J=_[L>u-3?u-1:L+2],g)r(w,K,I,J,v,v*v,v*v*v,l(e,c),f);else{var V;b?(V=r(w,K,I,J,v,v*v,v*v*v,E,1),V=h(E)):V=s(w,K,I,J,v,v*v,v*v*v),i(e,c,V)}else if(g)a(_[L],_[L+1],v,l(e,c),f);else{var V;b?(a(_[L],_[L+1],v,E,1),V=h(E)):V=n(_[L],_[L+1],v),i(e,c,V)}for(L=0;L=t[1]&&(e=t[1]),e},t.prototype.getLocation=function(e,t,i){var n=null!=e.x?e.x:"center";switch(n){case"center":n=Math.floor((this.canvasWidth-t)/2);break;case"left":n=0;break;case"right":n=this.canvasWidth-t}var a=null!=e.y?e.y:"center";switch(a){case"center":a=Math.floor((this.canvasHeight-i)/2);break;case"top":a=0;break;case"bottom":a=this.canvasHeight-i}return{x:n,y:a,width:t,height:i}},t}),i("zrender/Layer",["require","./mixin/Transformable","./tool/util","./config"],function(e){function t(){return!1}function i(e,t,i){var n=document.createElement(t),a=i.getWidth(),o=i.getHeight();return n.style.position="absolute",n.style.left=0,n.style.top=0,n.style.width=a+"px",n.style.height=o+"px",n.width=a*r.devicePixelRatio,n.height=o*r.devicePixelRatio,n.setAttribute("data-zr-dom-id",e),n}var n=e("./mixin/Transformable"),a=e("./tool/util"),o=window.G_vmlCanvasManager,r=e("./config"),s=function(e,a){this.id=e,this.dom=i(e,"canvas",a),this.dom.onselectstart=t,this.dom.style["-webkit-user-select"]="none",this.dom.style["user-select"]="none",this.dom.style["-webkit-touch-callout"]="none",this.dom.style["-webkit-tap-highlight-color"]="rgba(0,0,0,0)",this.dom.className=r.elementClassName,o&&o.initElement(this.dom),this.domBack=null,this.ctxBack=null,this.painter=a,this.unusedCount=0,this.config=null,this.dirty=!0,this.elCount=0,this.clearColor=0,this.motionBlur=!1,this.lastFrameAlpha=.7,this.zoomable=!1,this.panable=!1,this.maxZoom=1/0,this.minZoom=0,n.call(this)};return s.prototype.initContext=function(){this.ctx=this.dom.getContext("2d");var e=r.devicePixelRatio;1!=e&&this.ctx.scale(e,e)},s.prototype.createBackBuffer=function(){if(!o){this.domBack=i("back-"+this.id,"canvas",this.painter),this.ctxBack=this.domBack.getContext("2d");var e=r.devicePixelRatio;1!=e&&this.ctxBack.scale(e,e)}},s.prototype.resize=function(e,t){var i=r.devicePixelRatio;this.dom.style.width=e+"px",this.dom.style.height=t+"px",this.dom.setAttribute("width",e*i),this.dom.setAttribute("height",t*i),1!=i&&this.ctx.scale(i,i),this.domBack&&(this.domBack.setAttribute("width",e*i),this.domBack.setAttribute("height",t*i),1!=i&&this.ctxBack.scale(i,i))},s.prototype.clear=function(){var e=this.dom,t=this.ctx,i=e.width,n=e.height,a=this.clearColor&&!o,s=this.motionBlur&&!o,l=this.lastFrameAlpha,h=r.devicePixelRatio;if(s&&(this.domBack||this.createBackBuffer(),this.ctxBack.globalCompositeOperation="copy",this.ctxBack.drawImage(e,0,0,i/h,n/h)),t.clearRect(0,0,i/h,n/h),a&&(t.save(),t.fillStyle=this.clearColor,t.fillRect(0,0,i/h,n/h),t.restore()),s){var m=this.domBack;t.save(),t.globalAlpha=l,t.drawImage(m,0,0,i/h,n/h),t.restore()}},a.merge(s.prototype,n.prototype),s}),i("zrender/shape/Text",["require","../tool/area","./Base","../tool/util"],function(e){ +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.beginPath(),e.buildPath(t,i),t.closePath(),t.isPointInPath(n,a)}function o(e,t,n,a){return!i(e,t,n,a)}function r(e,t,i,n,a,o,r){if(0===a)return!1;var s=Math.max(a,5),l=0,h=e;if(r>t+s&&r>n+s||t-s>r&&n-s>r||o>e+s&&o>i+s||e-s>o&&i-s>o)return!1;if(e===i)return Math.abs(o-e)<=s/2;l=(t-n)/(e-i),h=(e*n-i*t)/(e-i);var m=l*o-r+h,V=m*m/(l*l+1);return s/2*s/2>=V}function s(e,t,i,n,a,o,r,s,l,h,m){if(0===l)return!1;var V=Math.max(l,5);if(m>t+V&&m>n+V&&m>o+V&&m>s+V||t-V>m&&n-V>m&&o-V>m&&s-V>m||h>e+V&&h>i+V&&h>a+V&&h>r+V||e-V>h&&i-V>h&&a-V>h&&r-V>h)return!1;var U=X.cubicProjectPoint(e,t,i,n,a,o,r,s,h,m,null);return V/2>=U}function l(e,t,i,n,a,o,r,s,l){if(0===r)return!1;var h=Math.max(r,5);if(l>t+h&&l>n+h&&l>o+h||t-h>l&&n-h>l&&o-h>l||s>e+h&&s>i+h&&s>a+h||e-h>s&&i-h>s&&a-h>s)return!1;var m=X.quadraticProjectPoint(e,t,i,n,a,o,s,l,null);return h/2>=m}function h(e,i,n,a,o,r,s,l,h){if(0===s)return!1;var m=Math.max(s,5);l-=e,h-=i;var V=Math.sqrt(l*l+h*h);if(V-m>n||n>V+m)return!1;if(Math.abs(a-o)>=C)return!0;if(r){var U=a;a=t(o),o=t(U)}else a=t(a),o=t(o);a>o&&(o+=C);var d=Math.atan2(h,l);return 0>d&&(d+=C),d>=a&&o>=d||d+C>=a&&o>=d+C}function m(e,t,i,n){for(var t=Math.max(t,10),a=0,o=e.length-1;o>a;a++){var s=e[a][0],l=e[a][1],h=e[a+1][0],m=e[a+1][1];if(r(s,l,h,m,t,i,n))return!0}return!1}function V(e,t,i,n,a,o){var r=(a-e)*(a-e)+(o-t)*(o-t);return n*n>r&&r>i*i}function U(e,t,i,n,a,o){return a>=e&&e+i>=a&&o>=t&&t+n>=o}function d(e,t,i,n,a){return i*i>(n-e)*(n-e)+(a-t)*(a-t)}function p(e,t,i,n,a,o,r,s,l){return h(e,t,(i+n)/2,a,o,r,n-i,s,l)}function c(e,t,i){for(var n=e.length,a=0,o=0,r=n-1;n>o;o++){var s=e[r][0],l=e[r][1],h=e[o][0],m=e[o][1];a+=u(s,l,h,m,t,i),r=o}return 0!==a}function u(e,t,i,n,a,o){if(o>t&&o>n||t>o&&n>o)return 0;if(n==t)return 0;var r=t>n?1:-1,s=(o-t)/(n-t),l=s*(i-e)+e;return l>a?r:0}function y(){var e=E[0];E[0]=E[1],E[1]=e}function g(e,t,i,n,a,o,r,s,l,h){if(h>t&&h>n&&h>o&&h>s||t>h&&n>h&&o>h&&s>h)return 0;var m=X.cubicRootAt(t,n,o,s,h,S);if(0===m)return 0;for(var V,U,d=0,p=-1,c=0;m>c;c++){var u=S[c],g=X.cubicAt(e,i,a,r,u);l>g||(0>p&&(p=X.cubicExtrema(t,n,o,s,E),E[1]1&&y(),V=X.cubicAt(t,n,o,s,E[0]),p>1&&(U=X.cubicAt(t,n,o,s,E[1]))),d+=2==p?uV?1:-1:uU?1:-1:U>s?1:-1:uV?1:-1:V>s?1:-1)}return d}function b(e,t,i,n,a,o,r,s){if(s>t&&s>n&&s>o||t>s&&n>s&&o>s)return 0;var l=X.quadraticRootAt(t,n,o,s,S);if(0===l)return 0;var h=X.quadraticExtremum(t,n,o);if(h>=0&&1>=h){for(var m=0,V=X.quadraticAt(t,n,o,h),U=0;l>U;U++){var d=X.quadraticAt(e,i,a,S[U]);r>d||(m+=S[U]V?1:-1:V>o?1:-1)}return m}var d=X.quadraticAt(e,i,a,S[0]);return r>d?0:t>o?1:-1}function f(e,i,n,a,o,r,s,l){if(l-=i,l>n||-n>l)return 0;var h=Math.sqrt(n*n-l*l);if(S[0]=-h,S[1]=h,Math.abs(a-o)>=C){a=0,o=C;var m=r?1:-1;return s>=S[0]+e&&s<=S[1]+e?m:0}if(r){var h=a;a=t(o),o=t(h)}else a=t(a),o=t(o);a>o&&(o+=C);for(var V=0,U=0;2>U;U++){var d=S[U];if(d+e>s){var p=Math.atan2(l,d),m=r?1:-1;0>p&&(p=C+p),(p>=a&&o>=p||p+C>=a&&o>=p+C)&&(p>Math.PI/2&&p<1.5*Math.PI&&(m=-m),V+=m)}}return V}function k(e,t,i,n,a){var o=0,m=0,V=0,U=0,d=0,p=!0,c=!0;i=i||"fill";for(var y="stroke"===i||"both"===i,k="fill"===i||"both"===i,x=0;x0&&(k&&(o+=u(m,V,U,d,n,a)),0!==o))return!0;U=L[L.length-2],d=L[L.length-1],p=!1,c&&"A"!==_.command&&(c=!1,m=U,V=d)}switch(_.command){case"M":m=L[0],V=L[1];break;case"L":if(y&&r(m,V,L[0],L[1],t,n,a))return!0;k&&(o+=u(m,V,L[0],L[1],n,a)),m=L[0],V=L[1];break;case"C":if(y&&s(m,V,L[0],L[1],L[2],L[3],L[4],L[5],t,n,a))return!0;k&&(o+=g(m,V,L[0],L[1],L[2],L[3],L[4],L[5],n,a)),m=L[4],V=L[5];break;case"Q":if(y&&l(m,V,L[0],L[1],L[2],L[3],t,n,a))return!0;k&&(o+=b(m,V,L[0],L[1],L[2],L[3],n,a)),m=L[2],V=L[3];break;case"A":var W=L[0],X=L[1],v=L[2],w=L[3],K=L[4],I=L[5],J=Math.cos(K)*v+W,C=Math.sin(K)*w+X;c?(c=!1,U=J,d=C):o+=u(m,V,J,C);var S=(n-W)*w/v+W;if(y&&h(W,X,w,K,K+I,1-L[7],t,S,a))return!0;k&&(o+=f(W,X,w,K,K+I,1-L[7],S,a)),m=Math.cos(K+I)*v+W,V=Math.sin(K+I)*w+X;break;case"z":if(y&&r(m,V,U,d,t,n,a))return!0;p=!0}}return k&&(o+=u(m,V,U,d,n,a)),0!==o}function x(e,t){var i=e+":"+t;if(v[i])return v[i];L=L||W.getContext(),L.save(),t&&(L.font=t),e=(e+"").split("\n");for(var n=0,a=0,o=e.length;o>a;a++)n=Math.max(L.measureText(e[a]).width,n);return L.restore(),v[i]=n,++K>J&&(K=0,v={}),n}function _(e,t){var i=e+":"+t;if(w[i])return w[i];L=L||W.getContext(),L.save(),t&&(L.font=t),e=(e+"").split("\n");var n=(L.measureText("国").width+2)*e.length;return L.restore(),w[i]=n,++I>J&&(I=0,w={}),n}var L,W=e("./util"),X=e("./curve"),v={},w={},K=0,I=0,J=5e3,C=2*Math.PI,S=[-1,-1,-1],E=[-1,-1];return{isInside:i,isOutside:o,getTextWidth:x,getTextHeight:_,isInsidePath:k,isInsidePolygon:c,isInsideSector:p,isInsideCircle:d,isInsideLine:r,isInsideRect:U,isInsidePolyline:m,isInsideCubicStroke:s,isInsideQuadraticStroke:l}}),i("zrender/shape/Base",["require","../tool/matrix","../tool/guid","../tool/util","../tool/log","../mixin/Transformable","../mixin/Eventful","../tool/area","../tool/color"],function(e){function t(t,n,a,o,r,s,l){r&&(t.font=r),t.textAlign=s,t.textBaseline=l;var h=i(n,a,o,r,s,l);n=(n+"").split("\n");var m=e("../tool/area").getTextHeight("国",r);switch(l){case"top":o=h.y;break;case"bottom":o=h.y+m;break;default:o=h.y+m/2}for(var V=0,U=n.length;U>V;V++)t.fillText(n[V],a,o),o+=m}function i(t,i,n,a,o,r){var s=e("../tool/area"),l=s.getTextWidth(t,a),h=s.getTextHeight("国",a);switch(t=(t+"").split("\n"),o){case"end":case"right":i-=l;break;case"center":i-=l/2}switch(r){case"top":break;case"bottom":n-=h*t.length;break;default:n-=h*t.length/2}return{x:i,y:n,width:l,height:h*t.length}}var n=window.G_vmlCanvasManager,a=e("../tool/matrix"),o=e("../tool/guid"),r=e("../tool/util"),s=e("../tool/log"),l=e("../mixin/Transformable"),h=e("../mixin/Eventful"),m=function(e){e=e||{},this.id=e.id||o();for(var t in e)this[t]=e[t];this.style=this.style||{},this.highlightStyle=this.highlightStyle||null,this.parent=null,this.__dirty=!0,this.__clipShapes=[],l.call(this),h.call(this)};m.prototype.invisible=!1,m.prototype.ignore=!1,m.prototype.zlevel=0,m.prototype.draggable=!1,m.prototype.clickable=!1,m.prototype.hoverable=!0,m.prototype.z=0,m.prototype.brush=function(e,t){var i=this.beforeBrush(e,t);switch(e.beginPath(),this.buildPath(e,i),i.brushType){case"both":e.fill();case"stroke":i.lineWidth>0&&e.stroke();break;default:e.fill()}this.drawText(e,i,this.style),this.afterBrush(e)},m.prototype.beforeBrush=function(e,t){var i=this.style;return this.brushTypeOnly&&(i.brushType=this.brushTypeOnly),t&&(i=this.getHighlightStyle(i,this.highlightStyle||{},this.brushTypeOnly)),"stroke"==this.brushTypeOnly&&(i.strokeColor=i.strokeColor||i.color),e.save(),this.doClip(e),this.setContext(e,i),this.setTransform(e),i},m.prototype.afterBrush=function(e){e.restore()};var V=[["color","fillStyle"],["strokeColor","strokeStyle"],["opacity","globalAlpha"],["lineCap","lineCap"],["lineJoin","lineJoin"],["miterLimit","miterLimit"],["lineWidth","lineWidth"],["shadowBlur","shadowBlur"],["shadowColor","shadowColor"],["shadowOffsetX","shadowOffsetX"],["shadowOffsetY","shadowOffsetY"]];m.prototype.setContext=function(e,t){for(var i=0,n=V.length;n>i;i++){var a=V[i][0],o=t[a],r=V[i][1];"undefined"!=typeof o&&(e[r]=o)}};var U=a.create();return m.prototype.doClip=function(e){if(this.__clipShapes&&!n)for(var t=0;t=i.x&&e<=i.x+i.width&&t>=i.y&&t<=i.y+i.height},m.prototype.drawText=function(e,i,n){if("undefined"!=typeof i.text&&i.text!==!1){var a=i.textColor||i.color||i.strokeColor;e.fillStyle=a;var o,r,s,l,h=10,m=i.textPosition||this.textPosition||"top";switch(m){case"inside":case"top":case"bottom":case"left":case"right":if(this.getRect){var V=(n||i).__rect||this.getRect(n||i);switch(m){case"inside":s=V.x+V.width/2,l=V.y+V.height/2,o="center",r="middle","stroke"!=i.brushType&&a==i.color&&(e.fillStyle="#fff");break;case"left":s=V.x-h,l=V.y+V.height/2,o="end",r="middle";break;case"right":s=V.x+V.width+h,l=V.y+V.height/2,o="start",r="middle";break;case"top":s=V.x+V.width/2,l=V.y-h,o="center",r="bottom";break;case"bottom":s=V.x+V.width/2,l=V.y+V.height+h,o="center",r="top"}}break;case"start":case"end":var U=i.pointList||[[i.xStart||0,i.yStart||0],[i.xEnd||0,i.yEnd||0]],d=U.length;if(2>d)return;var p,c,u,y;switch(m){case"start":p=U[1][0],c=U[0][0],u=U[1][1],y=U[0][1];break;case"end":p=U[d-2][0],c=U[d-1][0],u=U[d-2][1],y=U[d-1][1]}s=c,l=y;var g=Math.atan((u-y)/(c-p))/Math.PI*180;0>c-p?g+=180:0>u-y&&(g+=360),h=5,g>=30&&150>=g?(o="center",r="bottom",l-=h):g>150&&210>g?(o="right",r="middle",s-=h):g>=210&&330>=g?(o="center",r="top",l+=h):(o="left",r="middle",s+=h);break;case"specific":s=i.textX||0,l=i.textY||0,o="start",r="middle"}null!=s&&null!=l&&t(e,i.text,s,l,i.textFont,i.textAlign||o,i.textBaseline||r)}},m.prototype.modSelf=function(){this.__dirty=!0,this.style&&(this.style.__rect=null),this.highlightStyle&&(this.highlightStyle.__rect=null)},m.prototype.isSilent=function(){return!(this.hoverable||this.draggable||this.clickable||this.onmousemove||this.onmouseover||this.onmouseout||this.onmousedown||this.onmouseup||this.onclick||this.ondragenter||this.ondragover||this.ondragleave||this.ondrop)},r.merge(m.prototype,l.prototype,!0),r.merge(m.prototype,h.prototype,!0),m}),i("zrender/tool/curve",["require","./vector"],function(e){function t(e){return e>-u&&u>e}function i(e){return e>u||-u>e}function n(e,t,i,n,a){var o=1-a;return o*o*(o*e+3*a*t)+a*a*(a*n+3*o*i)}function a(e,t,i,n,a){var o=1-a;return 3*(((t-e)*o+2*(i-t)*a)*o+(n-i)*a*a)}function o(e,i,n,a,o,r){var s=a+3*(i-n)-e,l=3*(n-2*i+e),h=3*(i-e),m=e-o,V=l*l-3*s*h,U=l*h-9*s*m,d=h*h-3*l*m,p=0;if(t(V)&&t(U))if(t(l))r[0]=0;else{var c=-h/l;c>=0&&1>=c&&(r[p++]=c)}else{var u=U*U-4*V*d;if(t(u)){var b=U/V,c=-l/s+b,f=-b/2;c>=0&&1>=c&&(r[p++]=c),f>=0&&1>=f&&(r[p++]=f)}else if(u>0){var k=Math.sqrt(u),x=V*l+1.5*s*(-U+k),_=V*l+1.5*s*(-U-k);x=0>x?-Math.pow(-x,g):Math.pow(x,g),_=0>_?-Math.pow(-_,g):Math.pow(_,g);var c=(-l-(x+_))/(3*s);c>=0&&1>=c&&(r[p++]=c)}else{var L=(2*V*l-3*s*U)/(2*Math.sqrt(V*V*V)),W=Math.acos(L)/3,X=Math.sqrt(V),v=Math.cos(W),c=(-l-2*X*v)/(3*s),f=(-l+X*(v+y*Math.sin(W)))/(3*s),w=(-l+X*(v-y*Math.sin(W)))/(3*s);c>=0&&1>=c&&(r[p++]=c),f>=0&&1>=f&&(r[p++]=f),w>=0&&1>=w&&(r[p++]=w)}}return p}function r(e,n,a,o,r){var s=6*a-12*n+6*e,l=9*n+3*o-3*e-9*a,h=3*n-3*e,m=0;if(t(l)){if(i(s)){var V=-h/s;V>=0&&1>=V&&(r[m++]=V)}}else{var U=s*s-4*l*h;if(t(U))r[0]=-s/(2*l);else if(U>0){var d=Math.sqrt(U),V=(-s+d)/(2*l),p=(-s-d)/(2*l);V>=0&&1>=V&&(r[m++]=V),p>=0&&1>=p&&(r[m++]=p)}}return m}function s(e,t,i,n,a,o){var r=(t-e)*a+e,s=(i-t)*a+t,l=(n-i)*a+i,h=(s-r)*a+r,m=(l-s)*a+s,V=(m-h)*a+h;o[0]=e,o[1]=r,o[2]=h,o[3]=V,o[4]=V,o[5]=m,o[6]=l,o[7]=n}function l(e,t,i,a,o,r,s,l,h,m,V){var U,d=.005,p=1/0;b[0]=h,b[1]=m;for(var y=0;1>y;y+=.05){f[0]=n(e,i,o,s,y),f[1]=n(t,a,r,l,y);var g=c.distSquare(b,f);p>g&&(U=y,p=g)}p=1/0;for(var x=0;32>x&&!(u>d);x++){var _=U-d,L=U+d;f[0]=n(e,i,o,s,_),f[1]=n(t,a,r,l,_);var g=c.distSquare(f,b);if(_>=0&&p>g)U=_,p=g;else{k[0]=n(e,i,o,s,L),k[1]=n(t,a,r,l,L);var W=c.distSquare(k,b);1>=L&&p>W?(U=L,p=W):d*=.5}}return V&&(V[0]=n(e,i,o,s,U),V[1]=n(t,a,r,l,U)),Math.sqrt(p)}function h(e,t,i,n){var a=1-n;return a*(a*e+2*n*t)+n*n*i}function m(e,t,i,n){return 2*((1-n)*(t-e)+n*(i-t))}function V(e,n,a,o,r){var s=e-2*n+a,l=2*(n-e),h=e-o,m=0;if(t(s)){if(i(l)){var V=-h/l;V>=0&&1>=V&&(r[m++]=V)}}else{var U=l*l-4*s*h;if(t(U)){var V=-l/(2*s);V>=0&&1>=V&&(r[m++]=V)}else if(U>0){var d=Math.sqrt(U),V=(-l+d)/(2*s),p=(-l-d)/(2*s);V>=0&&1>=V&&(r[m++]=V),p>=0&&1>=p&&(r[m++]=p)}}return m}function U(e,t,i){var n=e+i-2*t;return 0===n?.5:(e-t)/n}function d(e,t,i,n,a){var o=(t-e)*n+e,r=(i-t)*n+t,s=(r-o)*n+o;a[0]=e,a[1]=o,a[2]=s,a[3]=s,a[4]=r,a[5]=i}function p(e,t,i,n,a,o,r,s,l){var m,V=.005,U=1/0;b[0]=r,b[1]=s;for(var d=0;1>d;d+=.05){f[0]=h(e,i,a,d),f[1]=h(t,n,o,d);var p=c.distSquare(b,f);U>p&&(m=d,U=p)}U=1/0;for(var y=0;32>y&&!(u>V);y++){var g=m-V,x=m+V;f[0]=h(e,i,a,g),f[1]=h(t,n,o,g);var p=c.distSquare(f,b);if(g>=0&&U>p)m=g,U=p;else{k[0]=h(e,i,a,x),k[1]=h(t,n,o,x);var _=c.distSquare(k,b);1>=x&&U>_?(m=x,U=_):V*=.5}}return l&&(l[0]=h(e,i,a,m),l[1]=h(t,n,o,m)),Math.sqrt(U)}var c=e("./vector"),u=1e-4,y=Math.sqrt(3),g=1/3,b=c.create(),f=c.create(),k=c.create();return{cubicAt:n,cubicDerivativeAt:a,cubicRootAt:o,cubicExtrema:r,cubicSubdivide:s,cubicProjectPoint:l,quadraticAt:h,quadraticDerivativeAt:m,quadraticRootAt:V,quadraticExtremum:U,quadraticSubdivide:d,quadraticProjectPoint:p}}),i("zrender/mixin/Transformable",["require","../tool/matrix","../tool/vector"],function(e){"use strict";function t(e){return e>-s&&s>e}function i(e){return e>s||-s>e}var n=e("../tool/matrix"),a=e("../tool/vector"),o=[0,0],r=n.translate,s=5e-5,l=function(){this.position||(this.position=[0,0]),"undefined"==typeof this.rotation&&(this.rotation=[0,0,0]),this.scale||(this.scale=[1,1,0,0]),this.needLocalTransform=!1,this.needTransform=!1};return l.prototype={constructor:l,updateNeedTransform:function(){this.needLocalTransform=i(this.rotation[0])||i(this.position[0])||i(this.position[1])||i(this.scale[0]-1)||i(this.scale[1]-1)},updateTransform:function(){this.updateNeedTransform();var e=this.parent&&this.parent.needTransform;if(this.needTransform=this.needLocalTransform||e,this.needTransform){var t=this.transform||n.create();if(n.identity(t),this.needLocalTransform){var a=this.scale;if(i(a[0])||i(a[1])){o[0]=-a[2]||0,o[1]=-a[3]||0;var s=i(o[0])||i(o[1]);s&&r(t,t,o),n.scale(t,t,a),s&&(o[0]=-o[0],o[1]=-o[1],r(t,t,o))}if(this.rotation instanceof Array){if(0!==this.rotation[0]){o[0]=-this.rotation[1]||0,o[1]=-this.rotation[2]||0;var s=i(o[0])||i(o[1]);s&&r(t,t,o),n.rotate(t,t,this.rotation[0]),s&&(o[0]=-o[0],o[1]=-o[1],r(t,t,o))}}else 0!==this.rotation&&n.rotate(t,t,this.rotation);(i(this.position[0])||i(this.position[1]))&&r(t,t,this.position)}e&&(this.needLocalTransform?n.mul(t,this.parent.transform,t):n.copy(t,this.parent.transform)),this.transform=t,this.invTransform=this.invTransform||n.create(),n.invert(this.invTransform,t)}},setTransform:function(e){if(this.needTransform){var t=this.transform;e.transform(t[0],t[1],t[2],t[3],t[4],t[5])}},lookAt:function(){var e=a.create();return function(i){this.transform||(this.transform=n.create());var o=this.transform;if(a.sub(e,i,this.position),!t(e[0])||!t(e[1])){a.normalize(e,e);var r=this.scale;o[2]=e[0]*r[1],o[3]=e[1]*r[1],o[0]=e[1]*r[0],o[1]=-e[0]*r[0],o[4]=this.position[0],o[5]=this.position[1],this.decomposeTransform()}}}(),decomposeTransform:function(){if(this.transform){var e=this.transform,t=e[0]*e[0]+e[1]*e[1],n=this.position,a=this.scale,o=this.rotation;i(t-1)&&(t=Math.sqrt(t));var r=e[2]*e[2]+e[3]*e[3];i(r-1)&&(r=Math.sqrt(r)),n[0]=e[4],n[1]=e[5],a[0]=t,a[1]=r,a[2]=a[3]=0,o[0]=Math.atan2(-e[1]/r,e[0]/t),o[1]=o[2]=0}},transformCoordToLocal:function(e,t){var i=[e,t];return this.needTransform&&this.invTransform&&a.applyTransform(i,i,this.invTransform),i}},l}),i("zrender/Group",["require","./tool/guid","./tool/util","./mixin/Transformable","./mixin/Eventful"],function(e){var t=e("./tool/guid"),i=e("./tool/util"),n=e("./mixin/Transformable"),a=e("./mixin/Eventful"),o=function(e){e=e||{},this.id=e.id||t();for(var i in e)this[i]=e[i];this.type="group",this.clipShape=null,this._children=[],this._storage=null,this.__dirty=!0,n.call(this),a.call(this)};return o.prototype.ignore=!1,o.prototype.children=function(){return this._children.slice()},o.prototype.childAt=function(e){return this._children[e]},o.prototype.addChild=function(e){e!=this&&e.parent!=this&&(e.parent&&e.parent.removeChild(e),this._children.push(e),e.parent=this,this._storage&&this._storage!==e._storage&&(this._storage.addToMap(e),e instanceof o&&e.addChildrenToStorage(this._storage)))},o.prototype.removeChild=function(e){var t=i.indexOf(this._children,e);t>=0&&this._children.splice(t,1),e.parent=null,this._storage&&(this._storage.delFromMap(e.id),e instanceof o&&e.delChildrenFromStorage(this._storage))},o.prototype.clearChildren=function(){for(var e=0;et)){t=Math.min(t,1);var n="string"==typeof this.easing?i[this.easing]:this.easing,a="function"==typeof n?n(t):t;return this.fire("frame",a),1==t?this.loop?(this.restart(),"restart"):(this.__needsRemove=!0,"destroy"):null}},restart:function(){var e=(new Date).getTime(),t=(e-this._startTime)%this._life;this._startTime=(new Date).getTime()-t+this.gap,this.__needsRemove=!1},fire:function(e,t){for(var i=0,n=this._targetPool.length;n>i;i++)this["on"+e]&&this["on"+e](this._targetPool[i],t)},constructor:t},t}),i("zrender/animation/easing",[],function(){var e={Linear:function(e){return e},QuadraticIn:function(e){return e*e},QuadraticOut:function(e){return e*(2-e)},QuadraticInOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)},CubicIn:function(e){return e*e*e},CubicOut:function(e){return--e*e*e+1},CubicInOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)},QuarticIn:function(e){return e*e*e*e},QuarticOut:function(e){return 1- --e*e*e*e},QuarticInOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)},QuinticIn:function(e){return e*e*e*e*e},QuinticOut:function(e){return--e*e*e*e*e+1},QuinticInOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)},SinusoidalIn:function(e){return 1-Math.cos(e*Math.PI/2)},SinusoidalOut:function(e){return Math.sin(e*Math.PI/2)},SinusoidalInOut:function(e){return.5*(1-Math.cos(Math.PI*e))},ExponentialIn:function(e){return 0===e?0:Math.pow(1024,e-1)},ExponentialOut:function(e){return 1===e?1:1-Math.pow(2,-10*e)},ExponentialInOut:function(e){return 0===e?0:1===e?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(-Math.pow(2,-10*(e-1))+2)},CircularIn:function(e){return 1-Math.sqrt(1-e*e)},CircularOut:function(e){return Math.sqrt(1- --e*e)},CircularInOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)},ElasticIn:function(e){var t,i=.1,n=.4;return 0===e?0:1===e?1:(!i||1>i?(i=1,t=n/4):t=n*Math.asin(1/i)/(2*Math.PI),-(i*Math.pow(2,10*(e-=1))*Math.sin(2*(e-t)*Math.PI/n)))},ElasticOut:function(e){var t,i=.1,n=.4;return 0===e?0:1===e?1:(!i||1>i?(i=1,t=n/4):t=n*Math.asin(1/i)/(2*Math.PI),i*Math.pow(2,-10*e)*Math.sin(2*(e-t)*Math.PI/n)+1)},ElasticInOut:function(e){var t,i=.1,n=.4;return 0===e?0:1===e?1:(!i||1>i?(i=1,t=n/4):t=n*Math.asin(1/i)/(2*Math.PI),(e*=2)<1?-.5*i*Math.pow(2,10*(e-=1))*Math.sin(2*(e-t)*Math.PI/n):i*Math.pow(2,-10*(e-=1))*Math.sin(2*(e-t)*Math.PI/n)*.5+1)},BackIn:function(e){var t=1.70158;return e*e*((t+1)*e-t)},BackOut:function(e){var t=1.70158;return--e*e*((t+1)*e+t)+1},BackInOut:function(e){var t=2.5949095;return(e*=2)<1?.5*e*e*((t+1)*e-t):.5*((e-=2)*e*((t+1)*e+t)+2)},BounceIn:function(t){return 1-e.BounceOut(1-t)},BounceOut:function(e){return 1/2.75>e?7.5625*e*e:2/2.75>e?7.5625*(e-=1.5/2.75)*e+.75:2.5/2.75>e?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},BounceInOut:function(t){return.5>t?.5*e.BounceIn(2*t):.5*e.BounceOut(2*t-1)+.5}};return e}),i("echarts/chart/base",["require","zrender/shape/Image","../util/shape/Icon","../util/shape/MarkLine","../util/shape/Symbol","zrender/shape/Polyline","zrender/shape/ShapeBundle","../config","../util/ecData","../util/ecAnimation","../util/ecEffect","../util/accMath","../component/base","../layout/EdgeBundling","zrender/tool/util","zrender/tool/area"],function(e){function t(e){return null!=e.x&&null!=e.y}function i(e,t,i,n,a){p.call(this,e,t,i,n,a);var o=this;this.selectedMap={},this.lastShapeList=[],this.shapeHandler={onclick:function(){o.isClick=!0},ondragover:function(e){var t=e.target;t.highlightStyle=t.highlightStyle||{};var i=t.highlightStyle,n=i.brushTyep,a=i.strokeColor,r=i.lineWidth;i.brushType="stroke",i.strokeColor=o.ecTheme.calculableColor||h.calculableColor,i.lineWidth="icon"===t.type?30:10,o.zr.addHoverShape(t),setTimeout(function(){i&&(i.brushType=n,i.strokeColor=a,i.lineWidth=r)},20)},ondrop:function(e){null!=m.get(e.dragged,"data")&&(o.isDrop=!0)},ondragend:function(){o.isDragend=!0}}}var n=e("zrender/shape/Image"),a=e("../util/shape/Icon"),o=e("../util/shape/MarkLine"),r=e("../util/shape/Symbol"),s=e("zrender/shape/Polyline"),l=e("zrender/shape/ShapeBundle"),h=e("../config"),m=e("../util/ecData"),V=e("../util/ecAnimation"),U=e("../util/ecEffect"),d=e("../util/accMath"),p=e("../component/base"),c=e("../layout/EdgeBundling"),u=e("zrender/tool/util"),y=e("zrender/tool/area");return i.prototype={setCalculable:function(e){return e.dragEnableTime=this.ecTheme.DRAG_ENABLE_TIME||h.DRAG_ENABLE_TIME,e.ondragover=this.shapeHandler.ondragover,e.ondragend=this.shapeHandler.ondragend,e.ondrop=this.shapeHandler.ondrop,e},ondrop:function(e,t){if(this.isDrop&&e.target&&!t.dragIn){var i,n=e.target,a=e.dragged,o=m.get(n,"seriesIndex"),r=m.get(n,"dataIndex"),s=this.series,l=this.component.legend;if(-1===r){if(m.get(a,"seriesIndex")==o)return t.dragOut=t.dragIn=t.needRefresh=!0,void(this.isDrop=!1);i={value:m.get(a,"value"),name:m.get(a,"name")},this.type===h.CHART_TYPE_PIE&&i.value<0&&(i.value=0);for(var V=!1,U=s[o].data,p=0,c=U.length;c>p;p++)U[p].name===i.name&&"-"===U[p].value&&(s[o].data[p].value=i.value,V=!0);!V&&s[o].data.push(i),l&&l.add(i.name,a.style.color||a.style.strokeColor)}else i=s[o].data[r]||"-",null!=i.value?(s[o].data[r].value="-"!=i.value?d.accAdd(s[o].data[r].value,m.get(a,"value")):m.get(a,"value"),(this.type===h.CHART_TYPE_FUNNEL||this.type===h.CHART_TYPE_PIE)&&(l&&1===l.getRelatedAmount(i.name)&&this.component.legend.del(i.name),i.name+=this.option.nameConnector+m.get(a,"name"),l&&l.add(i.name,a.style.color||a.style.strokeColor))):s[o].data[r]="-"!=i?d.accAdd(s[o].data[r],m.get(a,"value")):m.get(a,"value");t.dragIn=t.dragIn||!0,this.isDrop=!1;var u=this;setTimeout(function(){u.zr.trigger("mousemove",e.event)},300)}},ondragend:function(e,t){if(this.isDragend&&e.target&&!t.dragOut){var i=e.target,n=m.get(i,"seriesIndex"),a=m.get(i,"dataIndex"),o=this.series;if(null!=o[n].data[a].value){o[n].data[a].value="-";var r=o[n].data[a].name,s=this.component.legend;s&&0===s.getRelatedAmount(r)&&s.del(r)}else o[n].data[a]="-";t.dragOut=!0,t.needRefresh=!0,this.isDragend=!1}},onlegendSelected:function(e,t){var i=e.selected;for(var n in this.selectedMap)this.selectedMap[n]!=i[n]&&(t.needRefresh=!0),this.selectedMap[n]=i[n]},_buildPosition:function(){this._symbol=this.option.symbolList,this._sIndex2ShapeMap={},this._sIndex2ColorMap={},this.selectedMap={},this.xMarkMap={};for(var e,t,i,n,a=this.series,o={top:[],bottom:[],left:[],right:[],other:[]},r=0,s=a.length;s>r;r++)a[r].type===this.type&&(a[r]=this.reformOption(a[r]),this.legendHoverLink=a[r].legendHoverLink||this.legendHoverLink,e=a[r].xAxisIndex,t=a[r].yAxisIndex,i=this.component.xAxis.getAxis(e),n=this.component.yAxis.getAxis(t),i.type===h.COMPONENT_TYPE_AXIS_CATEGORY?o[i.getPosition()].push(r):n.type===h.COMPONENT_TYPE_AXIS_CATEGORY?o[n.getPosition()].push(r):o.other.push(r));for(var l in o)o[l].length>0&&this._buildSinglePosition(l,o[l]);this.addShapeList()},_buildSinglePosition:function(e,t){var i=this._mapData(t),n=i.locationMap,a=i.maxDataLength;if(0!==a&&0!==n.length){switch(e){case"bottom":case"top":this._buildHorizontal(t,a,n,this.xMarkMap);break;case"left":case"right":this._buildVertical(t,a,n,this.xMarkMap);break;case"other":this._buildOther(t,a,n,this.xMarkMap)}for(var o=0,r=t.length;r>o;o++)this.buildMark(t[o])}},_mapData:function(e){for(var t,i,n,a,o=this.series,r=0,s={},l="__kener__stack__",m=this.component.legend,V=[],U=0,d=0,p=e.length;p>d;d++){if(t=o[e[d]],n=t.name,this._sIndex2ShapeMap[e[d]]=this._sIndex2ShapeMap[e[d]]||this.query(t,"symbol")||this._symbol[d%this._symbol.length],m){if(this.selectedMap[n]=m.isSelected(n),this._sIndex2ColorMap[e[d]]=m.getColor(n),a=m.getItemShape(n)){var c=a.style;if(this.type==h.CHART_TYPE_LINE)c.iconType="legendLineIcon",c.symbol=this._sIndex2ShapeMap[e[d]];else if(t.itemStyle.normal.barBorderWidth>0){var u=a.highlightStyle;c.brushType="both",c.x+=1,c.y+=1,c.width-=2,c.height-=2,c.strokeColor=u.strokeColor=t.itemStyle.normal.barBorderColor,u.lineWidth=3}m.setItemShape(n,a)}}else this.selectedMap[n]=!0,this._sIndex2ColorMap[e[d]]=this.zr.getColor(e[d]);this.selectedMap[n]&&(i=t.stack||l+e[d],null==s[i]?(s[i]=r,V[r]=[e[d]],r++):V[s[i]].push(e[d])),U=Math.max(U,t.data.length)}return{locationMap:V,maxDataLength:U}},_calculMarkMapXY:function(e,t,i){for(var n=this.series,a=0,o=t.length;o>a;a++)for(var r=0,s=t[a].length;s>r;r++){var l=t[a][r],h="xy"==i?0:"",m=this.component.grid,V=e[l];if("-1"!=i.indexOf("x")){V["counter"+h]>0&&(V["average"+h]=V["sum"+h]/V["counter"+h]);var U=this.component.xAxis.getAxis(n[l].xAxisIndex||0).getCoord(V["average"+h]);V["averageLine"+h]=[[U,m.getYend()],[U,m.getY()]],V["minLine"+h]=[[V["minX"+h],m.getYend()],[V["minX"+h],m.getY()]],V["maxLine"+h]=[[V["maxX"+h],m.getYend()],[V["maxX"+h],m.getY()]],V.isHorizontal=!1}if(h="xy"==i?1:"","-1"!=i.indexOf("y")){V["counter"+h]>0&&(V["average"+h]=V["sum"+h]/V["counter"+h]);var d=this.component.yAxis.getAxis(n[l].yAxisIndex||0).getCoord(V["average"+h]);V["averageLine"+h]=[[m.getX(),d],[m.getXend(),d]],V["minLine"+h]=[[m.getX(),V["minY"+h]],[m.getXend(),V["minY"+h]]],V["maxLine"+h]=[[m.getX(),V["maxY"+h]],[m.getXend(),V["maxY"+h]]],V.isHorizontal=!0}}},addLabel:function(e,t,i,n,a){var o=[i,t],r=this.deepMerge(o,"itemStyle.normal.label"),s=this.deepMerge(o,"itemStyle.emphasis.label"),l=r.textStyle||{},h=s.textStyle||{}; + +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,"rgba(0,0,0,0)","horizontal"),a._mark="point",U=this.deepMerge([p[f],t],"effect"),U.show&&(a.effect=U),i.type===h.CHART_TYPE_MAP&&(a._geo=this.getMarkGeo(p[f])),m.pack(a,i,e,p[f],f,p[f].name,r),d.push(a)));return d},_markLine:function(){function e(e,t){e[t]=e[t]instanceof Array?e[t].length>1?e[t]:[e[t][0],e[t][0]]:[e[t],e[t]]}return function(i,n){var a=this.series[i],o=this.component,r=o.dataRange,s=o.legend;u.merge(u.merge(n,u.clone(this.ecTheme.markLine||{})),u.clone(h.markLine));var l=s?s.getColor(a.name):this.zr.getColor(i);e(n,"symbol"),e(n,"symbolSize"),e(n,"symbolRotate");for(var V=n.data,U=[],d=this.zr.getWidth(),p=this.zr.getHeight(),y=0;yy;y++){var K=U[y],I=K.rawEdge||K,g=I.rawData,x=null!=g.value?g.value:"",J=this.getMarkLineShape(n,i,g,y,K.points,W,I.color);J._mark="line";var C=this.deepMerge([g[0],g[1],n],"effect");C.show&&(J.effect=C,J.effect.large=n.large),a.type===h.CHART_TYPE_MAP&&(J._geo=[this.getMarkGeo(g[0]),this.getMarkGeo(g[1])]),m.pack(J,a,i,g[0],y,g[0].name+(""!==g[1].name?" > "+g[1].name:""),x),v.push(J)}return v}}(),getMarkCoord:function(){return[0,0]},getSymbolShape:function(e,t,i,o,r,s,l,h,V,U,d){var p=[i,e],c=this.getDataFromOption(i,"-");h=this.deepQuery(p,"symbol")||h;var u=this.deepQuery(p,"symbolSize");u="function"==typeof u?u(c):u,"number"==typeof u&&(u=[u,u]);var y=this.deepQuery(p,"symbolRotate"),g=this.deepMerge(p,"itemStyle.normal"),b=this.deepMerge(p,"itemStyle.emphasis"),f=null!=g.borderWidth?g.borderWidth:g.lineStyle&&g.lineStyle.width;null==f&&(f=h.match("empty")?2:0);var k=null!=b.borderWidth?b.borderWidth:b.lineStyle&&b.lineStyle.width;null==k&&(k=f+2);var x=this.getItemStyleColor(g.color,t,o,i),_=this.getItemStyleColor(b.color,t,o,i),L=u[0],W=u[1],X=new a({style:{iconType:h.replace("empty","").toLowerCase(),x:s-L,y:l-W,width:2*L,height:2*W,brushType:"both",color:h.match("empty")?U:x||V,strokeColor:g.borderColor||x||V,lineWidth:f},highlightStyle:{color:h.match("empty")?U:_||x||V,strokeColor:b.borderColor||g.borderColor||_||x||V,lineWidth:k},clickable:this.deepQuery(p,"clickable")});return h.match("image")&&(X.style.image=h.replace(new RegExp("^image:\\/\\/"),""),X=new n({style:X.style,highlightStyle:X.highlightStyle,clickable:this.deepQuery(p,"clickable")})),null!=y&&(X.rotation=[y*Math.PI/180,s,l]),h.match("star")&&(X.style.iconType="star",X.style.n=h.replace("empty","").replace("star","")-0||5),"none"===h&&(X.invisible=!0,X.hoverable=!1),X=this.addLabel(X,e,i,r,d),h.match("empty")&&(null==X.style.textColor&&(X.style.textColor=X.style.strokeColor),null==X.highlightStyle.textColor&&(X.highlightStyle.textColor=X.highlightStyle.strokeColor)),m.pack(X,e,t,i,o,r),X._x=s,X._y=l,X._dataIndex=o,X._seriesIndex=t,X},getMarkLineShape:function(e,t,i,n,a,r,l){var h=null!=i[0].value?i[0].value:"-",m=null!=i[1].value?i[1].value:"-",V=[i[0].symbol||e.symbol[0],i[1].symbol||e.symbol[1]],U=[i[0].symbolSize||e.symbolSize[0],i[1].symbolSize||e.symbolSize[1]];U[0]="function"==typeof U[0]?U[0](h):U[0],U[1]="function"==typeof U[1]?U[1](m):U[1];var d=[this.query(i[0],"symbolRotate")||e.symbolRotate[0],this.query(i[1],"symbolRotate")||e.symbolRotate[1]],p=[i[0],i[1],e],c=this.deepMerge(p,"itemStyle.normal");c.color=this.getItemStyleColor(c.color,t,n,i);var u=this.deepMerge(p,"itemStyle.emphasis");u.color=this.getItemStyleColor(u.color,t,n,i);var y=c.lineStyle,g=u.lineStyle,b=y.width;null==b&&(b=c.borderWidth);var f=g.width;null==f&&(f=null!=u.borderWidth?u.borderWidth:b+2);var k=this.deepQuery(p,"smoothness");this.deepQuery(p,"smooth")||(k=0);var x=r?s:o,_=new x({style:{symbol:V,symbolSize:U,symbolRotate:d,brushType:"both",lineType:y.type,shadowColor:y.shadowColor||y.color||c.borderColor||c.color||l,shadowBlur:y.shadowBlur,shadowOffsetX:y.shadowOffsetX,shadowOffsetY:y.shadowOffsetY,color:c.color||l,strokeColor:y.color||c.borderColor||c.color||l,lineWidth:b,symbolBorderColor:c.borderColor||c.color||l,symbolBorder:c.borderWidth},highlightStyle:{shadowColor:g.shadowColor,shadowBlur:g.shadowBlur,shadowOffsetX:g.shadowOffsetX,shadowOffsetY:g.shadowOffsetY,color:u.color||c.color||l,strokeColor:g.color||y.color||u.borderColor||c.borderColor||u.color||c.color||l,lineWidth:f,symbolBorderColor:u.borderColor||c.borderColor||u.color||c.color||l,symbolBorder:null==u.borderWidth?c.borderWidth+2:u.borderWidth},clickable:this.deepQuery(p,"clickable")}),L=_.style;return r?(L.pointList=a,L.smooth=k):(L.xStart=a[0][0],L.yStart=a[0][1],L.xEnd=a[1][0],L.yEnd=a[1][1],L.curveness=k,_.updatePoints(_.style)),_=this.addLabel(_,e,i[0],i[0].name+" : "+i[1].name)},getLargeMarkPointShape:function(e,t){var i,n,a,o,s,l,h=this.series[e],m=this.component,V=t.data,U=m.dataRange,d=m.legend,p=[V[0],t];if(d&&(n=d.getColor(h.name)),!U||(a=null!=V[0].value?V[0].value:"",n=isNaN(a)?n:U.getColor(a),o=this.deepQuery(p,"itemStyle.normal.color")||n,s=this.deepQuery(p,"itemStyle.emphasis.color")||o,null!=o||null!=s)){n=this.deepMerge(p,"itemStyle.normal").color||n;var c=this.deepQuery(p,"symbol")||"circle";c=c.replace("empty","").replace(/\d/g,""),l=this.deepMerge([V[0],t],"effect");var u=window.devicePixelRatio||1;return i=new r({style:{pointList:V,color:n,strokeColor:n,shadowColor:l.shadowColor||n,shadowBlur:(null!=l.shadowBlur?l.shadowBlur:8)*u,size:this.deepQuery(p,"symbolSize"),iconType:c,brushType:"fill",lineWidth:1},draggable:!1,hoverable:!1}),l.show&&(i.effect=l),i}},backupShapeList:function(){this.shapeList&&this.shapeList.length>0?(this.lastShapeList=this.shapeList,this.shapeList=[]):this.lastShapeList=[]},addShapeList:function(){var e,t,i=this.option.animationThreshold/(this.canvasSupported?2:4),n=this.lastShapeList,a=this.shapeList,o=n.length>0,r=o?this.query(this.option,"animationDurationUpdate"):this.query(this.option,"animationDuration"),s=this.query(this.option,"animationEasing"),l={},m={};if(this.option.animation&&!this.option.renderAsImage&&a.lengthV;V++)t=this._getAnimationKey(n[V]),t.match("undefined")?this.zr.delShape(n[V].id):(t+=n[V].type,l[t]?this.zr.delShape(n[V].id):l[t]=n[V]);for(var V=0,U=a.length;U>V;V++)t=this._getAnimationKey(a[V]),t.match("undefined")?this.zr.addShape(a[V]):(t+=a[V].type,m[t]=a[V]);for(t in l)m[t]||this.zr.delShape(l[t].id);for(t in m)l[t]?(this.zr.delShape(l[t].id),this._animateMod(l[t],m[t],r,s,0,o)):(e=this.type!=h.CHART_TYPE_LINE&&this.type!=h.CHART_TYPE_RADAR||0===t.indexOf("icon")?0:r/2,this._animateMod(!1,m[t],r,s,e,o));this.zr.refresh(),this.animationEffect()}else{this.motionlessOnce=!1,this.zr.delShape(n);for(var V=0,U=a.length;U>V;V++)this.zr.addShape(a[V])}},_getAnimationKey:function(e){return this.type!=h.CHART_TYPE_MAP&&this.type!=h.CHART_TYPE_TREEMAP&&this.type!=h.CHART_TYPE_VENN&&this.type!=h.CHART_TYPE_TREE?m.get(e,"seriesIndex")+"_"+m.get(e,"dataIndex")+(e._mark?e._mark:"")+(this.type===h.CHART_TYPE_RADAR?m.get(e,"special"):""):m.get(e,"seriesIndex")+"_"+m.get(e,"dataIndex")+(e._mark?e._mark:"undefined")},_animateMod:function(e,t,i,n,a,o){switch(t.type){case"polyline":case"half-smooth-polygon":V.pointList(this.zr,e,t,i,n);break;case"rectangle":V.rectangle(this.zr,e,t,i,n);break;case"image":case"icon":V.icon(this.zr,e,t,i,n,a);break;case"candle":o?this.zr.addShape(t):V.candle(this.zr,e,t,i,n);break;case"ring":case"sector":case"circle":o?"sector"===t.type?V.sector(this.zr,e,t,i,n):this.zr.addShape(t):V.ring(this.zr,e,t,i+(m.get(t,"dataIndex")||0)%20*100,n);break;case"text":V.text(this.zr,e,t,i,n);break;case"polygon":o?V.pointList(this.zr,e,t,i,n):V.polygon(this.zr,e,t,i,n);break;case"ribbon":V.ribbon(this.zr,e,t,i,n);break;case"gauge-pointer":V.gaugePointer(this.zr,e,t,i,n);break;case"mark-line":V.markline(this.zr,e,t,i,n);break;case"bezier-curve":case"line":V.line(this.zr,e,t,i,n);break;default:this.zr.addShape(t)}},animationMark:function(e,t,i){for(var i=i||this.shapeList,n=0,a=i.length;a>n;n++)i[n]._mark&&this._animateMod(!1,i[n],e,t,0,!0);this.animationEffect(i)},animationEffect:function(e){if(!e&&this.clearEffectShape(),e=e||this.shapeList,null!=e){var t=h.EFFECT_ZLEVEL;this.canvasSupported&&this.zr.modLayer(t,{motionBlur:!0,lastFrameAlpha:this.option.effectBlendAlpha||h.effectBlendAlpha});for(var i,n=0,a=e.length;a>n;n++)i=e[n],i._mark&&i.effect&&i.effect.show&&U[i._mark]&&(U[i._mark](this.zr,this.effectList,i,t),this.effectList[this.effectList.length-1]._mark=i._mark)}},clearEffectShape:function(e){var t=this.effectList;if(this.zr&&t&&t.length>0){e&&this.zr.modLayer(h.EFFECT_ZLEVEL,{motionBlur:!1}),this.zr.delShape(t);for(var i=0;il;l++)this.zr.addShape(this.shapeList[l]);this.zr.refreshNextFrame()}n[i].data=r}},delMark:function(e,t,i){i=i.replace("mark","").replace("large","").toLowerCase();var n=this.series[e];if(this.selectedMap[n.name]){for(var a=!1,o=[this.shapeList,this.effectList],r=2;r--;)for(var s=0,l=o[r].length;l>s;s++)if(o[r][s]._mark==i&&m.get(o[r][s],"seriesIndex")==e&&m.get(o[r][s],"name")==t){this.zr.delShape(o[r][s].id),o[r].splice(s,1),a=!0;break}a&&this.zr.refreshNextFrame()}}},u.inherits(i,p),i}),i("zrender/shape/Circle",["require","./Base","../tool/util"],function(e){"use strict";var t=e("./Base"),i=function(e){t.call(this,e)};return i.prototype={type:"circle",buildPath:function(e,t){e.moveTo(t.x+t.r,t.y),e.arc(t.x,t.y,t.r,0,2*Math.PI,!0)},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-e.r-t/2),y:Math.round(e.y-e.r-t/2),width:2*e.r+t,height:2*e.r+t},e.__rect}},e("../tool/util").inherits(i,t),i}),i("echarts/util/accMath",[],function(){function e(e,t){var i=e.toString(),n=t.toString(),a=0;try{a=n.split(".")[1].length}catch(o){}try{a-=i.split(".")[1].length}catch(o){}return(i.replace(".","")-0)/(n.replace(".","")-0)*Math.pow(10,a)}function t(e,t){var i=e.toString(),n=t.toString(),a=0;try{a+=i.split(".")[1].length}catch(o){}try{a+=n.split(".")[1].length}catch(o){}return(i.replace(".","")-0)*(n.replace(".","")-0)/Math.pow(10,a)}function i(e,t){var i=0,n=0;try{i=e.toString().split(".")[1].length}catch(a){}try{n=t.toString().split(".")[1].length}catch(a){}var o=Math.pow(10,Math.max(i,n));return(Math.round(e*o)+Math.round(t*o))/o}function n(e,t){return i(e,-t)}return{accDiv:e,accMul:t,accAdd:i,accSub:n}}),i("echarts/util/shape/Icon",["require","zrender/tool/util","zrender/shape/Star","zrender/shape/Heart","zrender/shape/Droplet","zrender/shape/Image","zrender/shape/Base"],function(e){function t(e,t){var i=t.x,n=t.y,a=t.width/16,o=t.height/16;e.moveTo(i,n+t.height),e.lineTo(i+5*a,n+14*o),e.lineTo(i+t.width,n+3*o),e.lineTo(i+13*a,n),e.lineTo(i+2*a,n+11*o),e.lineTo(i,n+t.height),e.moveTo(i+6*a,n+10*o),e.lineTo(i+14*a,n+2*o),e.moveTo(i+10*a,n+13*o),e.lineTo(i+t.width,n+13*o),e.moveTo(i+13*a,n+10*o),e.lineTo(i+13*a,n+t.height)}function i(e,t){var i=t.x,n=t.y,a=t.width/16,o=t.height/16;e.moveTo(i,n+t.height),e.lineTo(i+5*a,n+14*o),e.lineTo(i+t.width,n+3*o),e.lineTo(i+13*a,n),e.lineTo(i+2*a,n+11*o),e.lineTo(i,n+t.height),e.moveTo(i+6*a,n+10*o),e.lineTo(i+14*a,n+2*o),e.moveTo(i+10*a,n+13*o),e.lineTo(i+t.width,n+13*o)}function n(e,t){var i=t.x,n=t.y,a=t.width/16,o=t.height/16;e.moveTo(i+4*a,n+15*o),e.lineTo(i+9*a,n+13*o),e.lineTo(i+14*a,n+8*o),e.lineTo(i+11*a,n+5*o),e.lineTo(i+6*a,n+10*o),e.lineTo(i+4*a,n+15*o),e.moveTo(i+5*a,n),e.lineTo(i+11*a,n),e.moveTo(i+5*a,n+o),e.lineTo(i+11*a,n+o),e.moveTo(i,n+2*o),e.lineTo(i+t.width,n+2*o),e.moveTo(i,n+5*o),e.lineTo(i+3*a,n+t.height),e.lineTo(i+13*a,n+t.height),e.lineTo(i+t.width,n+5*o)}function a(e,t){var i=t.x,n=t.y,a=t.width/16,o=t.height/16;e.moveTo(i,n+3*o),e.lineTo(i+6*a,n+3*o),e.moveTo(i+3*a,n),e.lineTo(i+3*a,n+6*o),e.moveTo(i+3*a,n+8*o),e.lineTo(i+3*a,n+t.height),e.lineTo(i+t.width,n+t.height),e.lineTo(i+t.width,n+3*o),e.lineTo(i+8*a,n+3*o)}function o(e,t){var i=t.x,n=t.y,a=t.width/16,o=t.height/16;e.moveTo(i+6*a,n),e.lineTo(i+2*a,n+3*o),e.lineTo(i+6*a,n+6*o),e.moveTo(i+2*a,n+3*o),e.lineTo(i+14*a,n+3*o),e.lineTo(i+14*a,n+11*o),e.moveTo(i+2*a,n+5*o),e.lineTo(i+2*a,n+13*o),e.lineTo(i+14*a,n+13*o),e.moveTo(i+10*a,n+10*o),e.lineTo(i+14*a,n+13*o),e.lineTo(i+10*a,n+t.height)}function r(e,t){var i=t.x,n=t.y,a=t.width/16,o=t.height/16,r=t.width/2;e.lineWidth=1.5,e.arc(i+r,n+r,r-a,0,2*Math.PI/3),e.moveTo(i+3*a,n+t.height),e.lineTo(i+0*a,n+12*o),e.lineTo(i+5*a,n+11*o),e.moveTo(i,n+8*o),e.arc(i+r,n+r,r-a,Math.PI,5*Math.PI/3),e.moveTo(i+13*a,n),e.lineTo(i+t.width,n+4*o),e.lineTo(i+11*a,n+5*o)}function s(e,t){var i=t.x,n=t.y,a=t.width/16,o=t.height/16;e.moveTo(i,n),e.lineTo(i,n+t.height),e.lineTo(i+t.width,n+t.height),e.moveTo(i+2*a,n+14*o),e.lineTo(i+7*a,n+6*o),e.lineTo(i+11*a,n+11*o),e.lineTo(i+15*a,n+2*o)}function l(e,t){var i=t.x,n=t.y,a=t.width/16,o=t.height/16;e.moveTo(i,n),e.lineTo(i,n+t.height),e.lineTo(i+t.width,n+t.height),e.moveTo(i+3*a,n+14*o),e.lineTo(i+3*a,n+6*o),e.lineTo(i+4*a,n+6*o),e.lineTo(i+4*a,n+14*o),e.moveTo(i+7*a,n+14*o),e.lineTo(i+7*a,n+2*o),e.lineTo(i+8*a,n+2*o),e.lineTo(i+8*a,n+14*o),e.moveTo(i+11*a,n+14*o),e.lineTo(i+11*a,n+9*o),e.lineTo(i+12*a,n+9*o),e.lineTo(i+12*a,n+14*o)}function h(e,t){var i=t.x,n=t.y,a=t.width-2,o=t.height-2,r=Math.min(a,o)/2;n+=2,e.moveTo(i+r+3,n+r-3),e.arc(i+r+3,n+r-3,r-1,0,-Math.PI/2,!0),e.lineTo(i+r+3,n+r-3),e.moveTo(i+r,n),e.lineTo(i+r,n+r),e.arc(i+r,n+r,r,-Math.PI/2,2*Math.PI,!0),e.lineTo(i+r,n+r),e.lineWidth=1.5}function m(e,t){var i=t.x,n=t.y,a=t.width/16,o=t.height/16;n-=o,e.moveTo(i+1*a,n+2*o),e.lineTo(i+15*a,n+2*o),e.lineTo(i+14*a,n+3*o),e.lineTo(i+2*a,n+3*o),e.moveTo(i+3*a,n+6*o),e.lineTo(i+13*a,n+6*o),e.lineTo(i+12*a,n+7*o),e.lineTo(i+4*a,n+7*o),e.moveTo(i+5*a,n+10*o),e.lineTo(i+11*a,n+10*o),e.lineTo(i+10*a,n+11*o),e.lineTo(i+6*a,n+11*o),e.moveTo(i+7*a,n+14*o),e.lineTo(i+9*a,n+14*o),e.lineTo(i+8*a,n+15*o),e.lineTo(i+7*a,n+15*o)}function V(e,t){var i=t.x,n=t.y,a=t.width,o=t.height,r=a/16,s=o/16,l=2*Math.min(r,s);e.moveTo(i+r+l,n+s+l),e.arc(i+r,n+s,l,Math.PI/4,3*Math.PI),e.lineTo(i+7*r-l,n+6*s-l),e.arc(i+7*r,n+6*s,l,Math.PI/4*5,4*Math.PI),e.arc(i+7*r,n+6*s,l/2,Math.PI/4*5,4*Math.PI),e.moveTo(i+7*r-l/2,n+6*s+l),e.lineTo(i+r+l,n+14*s-l),e.arc(i+r,n+14*s,l,-Math.PI/4,2*Math.PI),e.moveTo(i+7*r+l/2,n+6*s),e.lineTo(i+14*r-l,n+10*s-l/2),e.moveTo(i+16*r,n+10*s),e.arc(i+14*r,n+10*s,l,0,3*Math.PI),e.lineWidth=1.5}function U(e,t){var i=t.x,n=t.y,a=t.width,o=t.height,r=Math.min(a,o)/2;e.moveTo(i+a,n+o/2),e.arc(i+r,n+r,r,0,2*Math.PI),e.arc(i+r,n,r,Math.PI/4,Math.PI/5*4),e.arc(i,n+r,r,-Math.PI/3,Math.PI/3),e.arc(i+a,n+o,r,Math.PI,Math.PI/2*3),e.lineWidth=1.5}function d(e,t){for(var i=t.x,n=t.y,a=t.width,o=t.height,r=Math.round(o/3),s=Math.round((r-2)/2),l=3;l--;)e.rect(i,n+r*l+s,a,2)}function p(e,t){for(var i=t.x,n=t.y,a=t.width,o=t.height,r=Math.round(a/3),s=Math.round((r-2)/2),l=3;l--;)e.rect(i+r*l+s,n,2,o)}function c(e,t){var i=t.x,n=t.y,a=t.width/16;e.moveTo(i+a,n),e.lineTo(i+a,n+t.height),e.lineTo(i+15*a,n+t.height),e.lineTo(i+15*a,n),e.lineTo(i+a,n),e.moveTo(i+3*a,n+3*a),e.lineTo(i+13*a,n+3*a),e.moveTo(i+3*a,n+6*a),e.lineTo(i+13*a,n+6*a),e.moveTo(i+3*a,n+9*a),e.lineTo(i+13*a,n+9*a),e.moveTo(i+3*a,n+12*a),e.lineTo(i+9*a,n+12*a)}function u(e,t){var i=t.x,n=t.y,a=t.width/16,o=t.height/16;e.moveTo(i,n),e.lineTo(i,n+t.height),e.lineTo(i+t.width,n+t.height),e.lineTo(i+t.width,n),e.lineTo(i,n),e.moveTo(i+4*a,n),e.lineTo(i+4*a,n+8*o),e.lineTo(i+12*a,n+8*o),e.lineTo(i+12*a,n),e.moveTo(i+6*a,n+11*o),e.lineTo(i+6*a,n+13*o),e.lineTo(i+10*a,n+13*o),e.lineTo(i+10*a,n+11*o),e.lineTo(i+6*a,n+11*o)}function y(e,t){var i=t.x,n=t.y,a=t.width,o=t.height;e.moveTo(i,n+o/2),e.lineTo(i+a,n+o/2),e.moveTo(i+a/2,n),e.lineTo(i+a/2,n+o)}function g(e,t){var i=t.width/2,n=t.height/2,a=Math.min(i,n);e.moveTo(t.x+i+a,t.y+n),e.arc(t.x+i,t.y+n,a,0,2*Math.PI),e.closePath()}function b(e,t){e.rect(t.x,t.y,t.width,t.height),e.closePath()}function f(e,t){var i=t.width/2,n=t.height/2,a=t.x+i,o=t.y+n,r=Math.min(i,n);e.moveTo(a,o-r),e.lineTo(a+r,o+r),e.lineTo(a-r,o+r),e.lineTo(a,o-r),e.closePath()}function k(e,t){var i=t.width/2,n=t.height/2,a=t.x+i,o=t.y+n,r=Math.min(i,n);e.moveTo(a,o-r),e.lineTo(a+r,o),e.lineTo(a,o+r),e.lineTo(a-r,o),e.lineTo(a,o-r),e.closePath()}function x(e,t){var i=t.x,n=t.y,a=t.width/16;e.moveTo(i+8*a,n),e.lineTo(i+a,n+t.height),e.lineTo(i+8*a,n+t.height/4*3),e.lineTo(i+15*a,n+t.height),e.lineTo(i+8*a,n),e.closePath()}function _(t,i){var n=e("zrender/shape/Star"),a=i.width/2,o=i.height/2;n.prototype.buildPath(t,{x:i.x+a,y:i.y+o,r:Math.min(a,o),n:i.n||5})}function L(t,i){var n=e("zrender/shape/Heart");n.prototype.buildPath(t,{x:i.x+i.width/2,y:i.y+.2*i.height,a:i.width/2,b:.8*i.height})}function W(t,i){var n=e("zrender/shape/Droplet");n.prototype.buildPath(t,{x:i.x+.5*i.width,y:i.y+.5*i.height,a:.5*i.width,b:.8*i.height})}function X(e,t){var i=t.x,n=t.y-t.height/2*1.5,a=t.width/2,o=t.height/2,r=Math.min(a,o);e.arc(i+a,n+o,r,Math.PI/5*4,Math.PI/5),e.lineTo(i+a,n+o+1.5*r),e.closePath()}function v(t,i,n){var a=e("zrender/shape/Image");this._imageShape=this._imageShape||new a({style:{}});for(var o in i)this._imageShape.style[o]=i[o];this._imageShape.brush(t,!1,n)}function w(e){I.call(this,e)}var K=e("zrender/tool/util"),I=e("zrender/shape/Base");return w.prototype={type:"icon",iconLibrary:{mark:t,markUndo:i,markClear:n,dataZoom:a,dataZoomReset:o,restore:r,lineChart:s,barChart:l,pieChart:h,funnelChart:m,forceChart:V,chordChart:U,stackChart:d,tiledChart:p,dataView:c,saveAsImage:u,cross:y,circle:g,rectangle:b,triangle:f,diamond:k,arrow:x,star:_,heart:L,droplet:W,pin:X,image:v},brush:function(t,i,n){var a=i?this.highlightStyle:this.style;a=a||{};var o=a.iconType||this.style.iconType;if("image"===o){var r=e("zrender/shape/Image");r.prototype.brush.call(this,t,i,n)}else{var a=this.beforeBrush(t,i);switch(t.beginPath(),this.buildPath(t,a,n),a.brushType){case"both":t.fill();case"stroke":a.lineWidth>0&&t.stroke();break;default:t.fill()}this.drawText(t,a,this.style),this.afterBrush(t)}},buildPath:function(e,t,i){this.iconLibrary[t.iconType]?this.iconLibrary[t.iconType].call(this,e,t,i):(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){return e.__rect?e.__rect:(e.__rect={x:Math.round(e.x),y:Math.round(e.y-("pin"==e.iconType?e.height/2*1.5:0)),width:e.width,height:e.height*("pin"===e.iconType?1.25:1)},e.__rect)},isCover:function(e,t){var i=this.transformCoordToLocal(e,t);e=i[0],t=i[1];var n=this.style.__rect;n||(n=this.style.__rect=this.getRect(this.style));var a=n.height<8||n.width<8?4:0;return e>=n.x-a&&e<=n.x+n.width+a&&t>=n.y-a&&t<=n.y+n.height+a}},K.inherits(w,I),w}),i("echarts/util/shape/MarkLine",["require","zrender/shape/Base","./Icon","zrender/shape/Line","zrender/shape/BezierCurve","zrender/tool/area","zrender/shape/util/dashedLineTo","zrender/tool/util","zrender/tool/curve"],function(e){function t(e){i.call(this,e),this.style.curveness>0&&this.updatePoints(this.style),this.highlightStyle.curveness>0&&this.updatePoints(this.highlightStyle)}var i=e("zrender/shape/Base"),n=e("./Icon"),a=e("zrender/shape/Line"),o=new a({}),r=e("zrender/shape/BezierCurve"),s=new r({}),l=e("zrender/tool/area"),h=e("zrender/shape/util/dashedLineTo"),m=e("zrender/tool/util"),V=e("zrender/tool/curve");return t.prototype={type:"mark-line",brush:function(e,t){var i=this.style;t&&(i=this.getHighlightStyle(i,this.highlightStyle||{})),e.save(),this.setContext(e,i),this.setTransform(e),e.save(),e.beginPath(),this.buildPath(e,i),e.stroke(),e.restore(),this.brushSymbol(e,i,0),this.brushSymbol(e,i,1),this.drawText(e,i,this.style),e.restore()},buildPath:function(e,t){var i=t.lineType||"solid";if(e.moveTo(t.xStart,t.yStart),t.curveness>0){var n=null;switch(i){case"dashed":n=[5,5];break;case"dotted":n=[1,1]}n&&e.setLineDash&&e.setLineDash(n),e.quadraticCurveTo(t.cpX1,t.cpY1,t.xEnd,t.yEnd)}else if("solid"==i)e.lineTo(t.xEnd,t.yEnd);else{var a=(t.lineWidth||1)*("dashed"==t.lineType?5:1);h(e,t.xStart,t.yStart,t.xEnd,t.yEnd,a)}},updatePoints:function(e){var t=e.curveness||0,i=1,n=e.xStart,a=e.yStart,o=e.xEnd,r=e.yEnd,s=(n+o)/2-i*(a-r)*t,l=(a+r)/2-i*(o-n)*t;e.cpX1=s,e.cpY1=l},brushSymbol:function(e,t,i){if("none"!=t.symbol[i]){e.save(),e.beginPath(),e.lineWidth=t.symbolBorder,e.strokeStyle=t.symbolBorderColor;var a=t.symbol[i].replace("empty","").toLowerCase();t.symbol[i].match("empty")&&(e.fillStyle="#fff");var o=t.xStart,r=t.yStart,s=t.xEnd,l=t.yEnd,h=0===i?o:s,m=0===i?r:l,U=t.curveness||0,d=null!=t.symbolRotate[i]?t.symbolRotate[i]-0:0;if(d=d/180*Math.PI,"arrow"==a&&0===d)if(0===U){var p=0===i?-1:1;d=Math.PI/2+Math.atan2(p*(l-r),p*(s-o))}else{var c=t.cpX1,u=t.cpY1,y=V.quadraticDerivativeAt,g=y(o,c,s,i),b=y(r,u,l,i);d=Math.PI/2+Math.atan2(b,g)}e.translate(h,m),0!==d&&e.rotate(d);var f=t.symbolSize[i];n.prototype.buildPath(e,{x:-f,y:-f,width:2*f,height:2*f,iconType:a}),e.closePath(),e.fill(),e.stroke(),e.restore()}},getRect:function(e){return e.curveness>0?s.getRect(e):o.getRect(e),e.__rect},isCover:function(e,t){var i=this.transformCoordToLocal(e,t);return e=i[0],t=i[1],this.isCoverRect(e,t)?this.style.curveness>0?l.isInside(s,this.style,e,t):l.isInside(o,this.style,e,t):!1}},m.inherits(t,i),t}),i("echarts/util/shape/Symbol",["require","zrender/shape/Base","zrender/shape/Polygon","zrender/tool/util","./normalIsCover"],function(e){function t(e){i.call(this,e)}var i=e("zrender/shape/Base"),n=e("zrender/shape/Polygon"),a=new n({}),o=e("zrender/tool/util");return t.prototype={type:"symbol",buildPath:function(e,t){var i=t.pointList,n=i.length;if(0!==n)for(var a,o,r,s,l,h=1e4,m=Math.ceil(n/h),V=i[0]instanceof Array,U=t.size?t.size:2,d=U,p=U/2,c=2*Math.PI,u=0;m>u;u++){e.beginPath(),a=u*h,o=a+h,o=o>n?n:o;for(var y=a;o>y;y++)if(t.random&&(r=t["randomMap"+y%20]/100,d=U*r*r,p=d/2),V?(s=i[y][0],l=i[y][1]):(s=i[y].x,l=i[y].y),3>d)e.rect(s-p,l-p,d,d);else switch(t.iconType){case"circle":e.moveTo(s,l),e.arc(s,l,p,0,c,!0);break;case"diamond":e.moveTo(s,l-p),e.lineTo(s+p/3,l-p/3),e.lineTo(s+p,l),e.lineTo(s+p/3,l+p/3),e.lineTo(s,l+p),e.lineTo(s-p/3,l+p/3),e.lineTo(s-p,l),e.lineTo(s-p/3,l-p/3),e.lineTo(s,l-p);break;default:e.rect(s-p,l-p,d,d)}if(e.closePath(),m-1>u)switch(t.brushType){case"both":e.fill(),t.lineWidth>0&&e.stroke();break;case"stroke":t.lineWidth>0&&e.stroke();break;default:e.fill()}}},getRect:function(e){return e.__rect||a.getRect(e)},isCover:e("./normalIsCover")},o.inherits(t,i),t}),i("zrender/shape/Polyline",["require","./Base","./util/smoothSpline","./util/smoothBezier","./util/dashedLineTo","./Polygon","../tool/util"],function(e){var t=e("./Base"),i=e("./util/smoothSpline"),n=e("./util/smoothBezier"),a=e("./util/dashedLineTo"),o=function(e){this.brushTypeOnly="stroke",this.textPosition="end",t.call(this,e)};return o.prototype={type:"polyline",buildPath:function(e,t){var n=t.pointList;if(!(n.length<2)){var o=Math.min(t.pointList.length,Math.round(t.pointListLength||t.pointList.length));if(t.smooth&&"spline"!==t.smooth){t.controlPointList||this.updateControlPoints(t);var r=t.controlPointList;e.moveTo(n[0][0],n[0][1]);for(var s,l,h,m=0;o-1>m;m++)s=r[2*m],l=r[2*m+1],h=n[m+1],e.bezierCurveTo(s[0],s[1],l[0],l[1],h[0],h[1])}else if("spline"===t.smooth&&(n=i(n),o=n.length),t.lineType&&"solid"!=t.lineType){if("dashed"==t.lineType||"dotted"==t.lineType){var V=(t.lineWidth||1)*("dashed"==t.lineType?5:1);e.moveTo(n[0][0],n[0][1]);for(var m=1;o>m;m++)a(e,n[m-1][0],n[m-1][1],n[m][0],n[m][1],V)}}else{e.moveTo(n[0][0],n[0][1]);for(var m=1;o>m;m++)e.lineTo(n[m][0],n[m][1])}}},updateControlPoints:function(e){e.controlPointList=n(e.pointList,e.smooth,!1,e.smoothConstraint)},getRect:function(t){return e("./Polygon").prototype.getRect(t)}},e("../tool/util").inherits(o,t),o}),i("zrender/shape/ShapeBundle",["require","./Base","../tool/util"],function(e){var t=e("./Base"),i=function(e){t.call(this,e)};return i.prototype={constructor:i,type:"shape-bundle",brush:function(e,t){var i=this.beforeBrush(e,t);e.beginPath();for(var n=0;n0&&e.stroke();break;default:e.fill()}this.drawText(e,i,this.style),this.afterBrush(e)},getRect:function(e){if(e.__rect)return e.__rect;for(var t=1/0,i=-(1/0),n=1/0,a=-(1/0),o=0;oh;h++)o[h]=[r[h][0],l];else for(var m=r[0][0],h=0;s>h;h++)o[h]=[m,r[h][1]];"half-smooth-polygon"==i.type&&(o[s-1]=p.clone(r[s-1]),o[s-2]=p.clone(r[s-2])),t={style:{pointList:o}}}o=t.style.pointList;var V=o.length;i.style.pointList=V==s?o:s>V?o.concat(r.slice(V)):o.slice(0,s),e.addShape(i),i.__animating=!0,e.animate(i.id,"style").when(n,{pointList:r}).during(function(){i.updateControlPoints&&i.updateControlPoints(i.style)}).done(function(){i.__animating=!1}).start(a)}function i(e,t){for(var i=arguments.length,n=2;i>n;n++){var a=arguments[n];e.style[a]=t.style[a]}}function n(e,t,n,a,o){var r=n.style;t||(t={position:n.position,style:{x:r.x,y:"vertical"==n._orient?r.y+r.height:r.y,width:"vertical"==n._orient?r.width:0,height:"vertical"!=n._orient?r.height:0}});var s=r.x,l=r.y,h=r.width,m=r.height,V=[n.position[0],n.position[1]];i(n,t,"x","y","width","height"),n.position=t.position,e.addShape(n),(V[0]!=t.position[0]||V[1]!=t.position[1])&&e.animate(n.id,"").when(a,{position:V}).start(o),n.__animating=!0,e.animate(n.id,"style").when(a,{x:s,y:l,width:h,height:m}).done(function(){n.__animating=!1}).start(o)}function a(e,t,i,n,a){if(!t){var o=i.style.y;t={style:{y:[o[0],o[0],o[0],o[0]]}}}var r=i.style.y;i.style.y=t.style.y,e.addShape(i),i.__animating=!0,e.animate(i.id,"style").when(n,{y:r}).done(function(){i.__animating=!1}).start(a)}function o(e,t,i,n,a){var o=i.style.x,r=i.style.y,s=i.style.r0,l=i.style.r;i.__animating=!0,"r"!=i._animationAdd?(i.style.r0=0,i.style.r=0,i.rotation=[2*Math.PI,o,r],e.addShape(i),e.animate(i.id,"style").when(n,{r0:s,r:l}).done(function(){i.__animating=!1}).start(a),e.animate(i.id,"").when(n,{rotation:[0,o,r]}).start(a)):(i.style.r0=i.style.r,e.addShape(i),e.animate(i.id,"style").when(n,{r0:s}).done(function(){i.__animating=!1}).start(a))}function r(e,t,n,a,o){t||(t="r"!=n._animationAdd?{ +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&&(a.style.y-=i.style.height/2*1.5);var y=100*(r.period+10*Math.random());e.modShape(i.id,{invisible:!0});var g=a.style.x+a.style.width/2/c,b=a.style.y+a.style.height/2/c;"scale"===r.type?(e.modShape(a.id,{scale:[.1,.1,g,b]}),e.animate(a.id,"",r.loop).when(y,{scale:[1,1,g,b]}).done(function(){i.effect.show=!1,e.delShape(a.id)}).start()):e.animate(a.id,"style",r.loop).when(y,{y:a.style.y-U}).when(2*y,{y:a.style.y}).done(function(){i.effect.show=!1,e.delShape(a.id)}).start()}function i(e,t,i,n){var a=i.effect,o=a.color||i.style.strokeColor||i.style.color,r=a.scaleSize,s=a.shadowColor||o,l="undefined"!=typeof a.shadowBlur?a.shadowBlur:2*r,h=window.devicePixelRatio||1,V=new m({zlevel:n,position:i.position,scale:i.scale,style:{pointList:i.style.pointList,iconType:i.style.iconType,color:o,strokeColor:o,shadowColor:s,shadowBlur:l*h,random:!0,brushType:"fill",lineWidth:1,size:i.style.size},draggable:!1,hoverable:!1});t.push(V),e.addShape(V),e.modShape(i.id,{invisible:!0});for(var U=Math.round(100*a.period),d={},p={},c=0;20>c;c++)V.style["randomMap"+c]=0,d={},d["randomMap"+c]=100,p={},p["randomMap"+c]=0,V.style["randomMap"+c]=100*Math.random(),e.animate(V.id,"style",!0).when(U,d).when(2*U,p).when(3*U,d).when(4*U,d).delay(Math.random()*U*c).start()}function n(e,t,i,n,a){var s=i.effect,h=i.style,m=s.color||h.strokeColor||h.color,V=s.shadowColor||h.strokeColor||m,c=h.lineWidth*s.scaleSize,u="undefined"!=typeof s.shadowBlur?s.shadowBlur:c,y=new r({zlevel:n,style:{x:u,y:u,r:c,color:m,shadowColor:V,shadowBlur:u},hoverable:!1}),g=0;if(p&&!a){var n=y.zlevel;y=e.shapeToImage(y,2*(c+u),2*(c+u)),y.zlevel=n,y.hoverable=!1,g=u}a||(o.clone(i,y),y.position=i.position,t.push(y),e.addShape(y));var b=function(){a||(i.effect.show=!1,e.delShape(y.id)),y.effectAnimator=null};if(i instanceof U){for(var f=[0],k=0,x=h.pointList,_=h.controlPointList,L=1;L0){var F=h.cpX1-g,T=h.cpY1-g;y.effectAnimator=e.animation.animate(y,{loop:s.loop}).when(E,{p:1}).during(function(t,i){y.style.x=l.quadraticAt(K,F,J,i),y.style.y=l.quadraticAt(I,T,C,i),a||e.modShape(y)}).done(b).start()}else y.effectAnimator=e.animation.animate(y.style,{loop:s.loop}).when(E,{x:J,y:C}).during(function(){a||e.modShape(y)}).done(b).start();y.effectAnimator.duration=E}return y}function a(e,t,i,a){var o=new V({style:{shapeList:[]},zlevel:a,hoverable:!1}),r=i.style.shapeList,s=i.effect;o.position=i.position;for(var l=0,h=[],m=0;ml&&(l=d.duration),0===m&&(o.style.color=U.style.color,o.style.shadowBlur=U.style.shadowBlur,o.style.shadowColor=U.style.shadowColor),h.push(d)}t.push(o),e.addShape(o);var p=function(){for(var e=0;e=0;o--)t=s.type==i.CHART_TYPE_PIE||s.type==i.CHART_TYPE_FUNNEL?n.get(s.shapeList[o],"name"):(n.get(s.shapeList[o],"series")||{}).name,t!=a||s.shapeList[o].invisible||s.shapeList[o].__animating||s.zr.addHoverShape(s.shapeList[o])},t&&t.bind(i.EVENT.LEGEND_HOVERLINK,this._onlegendhoverlink)}var i=e("../config"),n=e("../util/ecData"),a=e("../util/ecQuery"),o=e("../util/number"),r=e("zrender/tool/util");return t.prototype={canvasSupported:e("zrender/tool/env").canvasSupported,_getZ:function(e){if(null!=this[e])return this[e];var t=this.ecTheme[this.type];return t&&null!=t[e]?t[e]:(t=i[this.type],t&&null!=t[e]?t[e]:0)},getZlevelBase:function(){return this._getZ("zlevel")},getZBase:function(){return this._getZ("z")},reformOption:function(e){return e=r.merge(r.merge(e||{},r.clone(this.ecTheme[this.type]||{})),r.clone(i[this.type]||{})),this.z=e.z,this.zlevel=e.zlevel,e},reformCssArray:function(e){if(!(e instanceof Array))return[e,e,e,e];switch(e.length+""){case"4":return e;case"3":return[e[0],e[1],e[2],e[1]];case"2":return[e[0],e[1],e[0],e[1]];case"1":return[e[0],e[0],e[0],e[0]];case"0":return[0,0,0,0]}},getShapeById:function(e){for(var t=0,i=this.shapeList.length;i>t;t++)if(this.shapeList[t].id===e)return this.shapeList[t];return null},getFont:function(e){var t=this.getTextStyle(r.clone(e));return t.fontStyle+" "+t.fontWeight+" "+t.fontSize+"px "+t.fontFamily},getTextStyle:function(e){return r.merge(r.merge(e||{},this.ecTheme.textStyle),i.textStyle)},getItemStyleColor:function(e,t,i,n){return"function"==typeof e?e.call(this.myChart,{seriesIndex:t,series:this.series[t],dataIndex:i,data:n}):e},getDataFromOption:function(e,t){return null!=e?null!=e.value?e.value:e:t},subPixelOptimize:function(e,t){return e=t%2===1?Math.floor(e)+.5:Math.round(e)},resize:function(){this.refresh&&this.refresh(),this.clearEffectShape&&this.clearEffectShape(!0);var e=this;setTimeout(function(){e.animationEffect&&e.animationEffect()},200)},clear:function(){this.clearEffectShape&&this.clearEffectShape(),this.zr&&this.zr.delShape(this.shapeList),this.shapeList=[]},dispose:function(){this.onbeforDispose&&this.onbeforDispose(),this.clear(),this.shapeList=null,this.effectList=null,this.messageCenter&&this.messageCenter.unbind(i.EVENT.LEGEND_HOVERLINK,this._onlegendhoverlink),this.onafterDispose&&this.onafterDispose()},query:a.query,deepQuery:a.deepQuery,deepMerge:a.deepMerge,parsePercent:o.parsePercent,parseCenter:o.parseCenter,parseRadius:o.parseRadius,numAddCommas:o.addCommas,getPrecision:o.getPrecision},t}),i("echarts/layout/EdgeBundling",["require","../data/KDTree","zrender/tool/vector"],function(e){function t(e,t){e=e.array,t=t.array;var i=t[0]-e[0],n=t[1]-e[1],a=t[2]-e[2],o=t[3]-e[3];return i*i+n*n+a*a+o*o}function i(e){this.points=[e.mp0,e.mp1],this.group=e}function n(e){var t=e.points;t[0][1]0&&t(e[o],n[a-1])||(n[a++]=U(e[o]));return i[0]&&!t(n[0],i[0])&&(n=n.reverse()),n}for(var a=this._iterate(e),o=0;o++f&&(f=W,k=L,V(g,c),V(y,p),b=u)}if(k){s+=f;var X;k.group||(X=new a,o.push(X),X.addEdge(k)),X=k.group,V(X.mp0,y),V(X.mp1,g),X.ink=b,k.group.addEdge(m)}else{var X=new a;o.push(X),V(X.mp0,m.getStartPoint()),V(X.mp1,m.getEndPoint()),X.ink=m.ink,X.addEdge(m)}}}return{groups:o,edges:i,savedInk:s}},_calculateEdgeEdgeInk:function(){var e=[],t=[];return function(i,n,a,o){e[0]=i.getStartPoint(),e[1]=n.getStartPoint(),t[0]=i.getEndPoint(),t[1]=n.getEndPoint(),this._calculateMeetPoints(e,t,a,o);var r=m(e[0],a)+m(a,o)+m(o,t[0])+m(e[1],a)+m(o,t[1]);return r}}(),_calculateGroupEdgeInk:function(e,t,i,n){for(var a=[],o=[],r=0;rl;l++)s.add(e,e,i[l]);s.scale(e,e,1/r),r=n.length;for(var l=0;r>l;l++)s.add(t,t,n[l]);s.scale(t,t,1/r),this._limitTurningAngle(i,e,t,a),this._limitTurningAngle(n,t,e,o)}}(),_limitTurningAngle:function(){var e=l(),t=l(),i=l(),n=l();return function(a,o,r,l){var V=Math.cos(this.maxTurningAngle),U=Math.tan(this.maxTurningAngle);s.sub(e,o,r),s.normalize(e,e),s.copy(l,o);for(var d=0,p=0;py){s.scaleAndAdd(i,o,e,u*y);var g=m(i,c),b=g/U;s.scaleAndAdd(n,i,e,-b);var f=h(n,o);f>d&&(d=f,s.copy(l,n))}}}}()},o}),i("zrender/shape/Star",["require","../tool/math","./Base","../tool/util"],function(e){var t=e("../tool/math"),i=t.sin,n=t.cos,a=Math.PI,o=e("./Base"),r=function(e){o.call(this,e)};return r.prototype={type:"star",buildPath:function(e,t){var o=t.n;if(o&&!(2>o)){var r=t.x,s=t.y,l=t.r,h=t.r0;null==h&&(h=o>4?l*n(2*a/o)/n(a/o):l/3);var m=a/o,V=-a/2,U=r+l*n(V),d=s+l*i(V);V+=m;var p=t.pointList=[];p.push([U,d]);for(var c,u=0,y=2*o-1;y>u;u++)c=u%2===0?h:l,p.push([r+c*n(V),s+c*i(V)]),V+=m;p.push([U,d]),e.moveTo(p[0][0],p[0][1]);for(var u=0;ur;r+=2)e[0]=Math.min(e[0],e[0],o[r]),e[1]=Math.min(e[1],e[1],o[r+1]),i[0]=Math.max(i[0],i[0],o[r]),i[1]=Math.max(i[1],i[1],o[r+1]);break;case"Q":for(var r=0;4>r;r+=2)e[0]=Math.min(e[0],e[0],o[r]),e[1]=Math.min(e[1],e[1],o[r+1]),i[0]=Math.max(i[0],i[0],o[r]),i[1]=Math.max(i[1],i[1],o[r+1]);break;case"A":var s=o[0],l=o[1],h=o[2],m=o[3];e[0]=Math.min(e[0],e[0],s-h),e[1]=Math.min(e[1],e[1],l-m),i[0]=Math.max(i[0],i[0],s+h),i[1]=Math.max(i[1],i[1],l+m)}}return{x:e[0],y:e[1],width:i[0]-e[0],height:i[1]-e[1]}},n.prototype.begin=function(e){return this._ctx=e||null,this.pathCommands.length=0,this},n.prototype.moveTo=function(e,t){return this.pathCommands.push(new i("M",[e,t])),this._ctx&&this._ctx.moveTo(e,t),this},n.prototype.lineTo=function(e,t){return this.pathCommands.push(new i("L",[e,t])),this._ctx&&this._ctx.lineTo(e,t),this},n.prototype.bezierCurveTo=function(e,t,n,a,o,r){return this.pathCommands.push(new i("C",[e,t,n,a,o,r])),this._ctx&&this._ctx.bezierCurveTo(e,t,n,a,o,r),this},n.prototype.quadraticCurveTo=function(e,t,n,a){return this.pathCommands.push(new i("Q",[e,t,n,a])),this._ctx&&this._ctx.quadraticCurveTo(e,t,n,a),this},n.prototype.arc=function(e,t,n,a,o,r){return this.pathCommands.push(new i("A",[e,t,n,n,a,o-a,0,r?0:1])),this._ctx&&this._ctx.arc(e,t,n,a,o,r),this},n.prototype.arcTo=function(e,t,i,n,a){return this._ctx&&this._ctx.arcTo(e,t,i,n,a),this},n.prototype.rect=function(e,t,i,n){return this._ctx&&this._ctx.rect(e,t,i,n),this},n.prototype.closePath=function(){return this.pathCommands.push(new i("z")),this._ctx&&this._ctx.closePath(),this},n.prototype.isEmpty=function(){return 0===this.pathCommands.length},n.PathSegment=i,n}),i("zrender/shape/Line",["require","./Base","./util/dashedLineTo","../tool/util"],function(e){var t=e("./Base"),i=e("./util/dashedLineTo"),n=function(e){this.brushTypeOnly="stroke",this.textPosition="end",t.call(this,e)};return n.prototype={type:"line",buildPath:function(e,t){if(t.lineType&&"solid"!=t.lineType){if("dashed"==t.lineType||"dotted"==t.lineType){var n=(t.lineWidth||1)*("dashed"==t.lineType?5:1);i(e,t.xStart,t.yStart,t.xEnd,t.yEnd,n)}}else e.moveTo(t.xStart,t.yStart),e.lineTo(t.xEnd,t.yEnd)},getRect:function(e){if(e.__rect)return e.__rect;var t=e.lineWidth||1;return e.__rect={x:Math.min(e.xStart,e.xEnd)-t,y:Math.min(e.yStart,e.yEnd)-t,width:Math.abs(e.xStart-e.xEnd)+t,height:Math.abs(e.yStart-e.yEnd)+t},e.__rect}},e("../tool/util").inherits(n,t),n}),i("zrender/shape/BezierCurve",["require","./Base","../tool/util"],function(e){"use strict";var t=e("./Base"),i=function(e){this.brushTypeOnly="stroke",this.textPosition="end",t.call(this,e)};return i.prototype={type:"bezier-curve",buildPath:function(e,t){e.moveTo(t.xStart,t.yStart),"undefined"!=typeof t.cpX2&&"undefined"!=typeof t.cpY2?e.bezierCurveTo(t.cpX1,t.cpY1,t.cpX2,t.cpY2,t.xEnd,t.yEnd):e.quadraticCurveTo(t.cpX1,t.cpY1,t.xEnd,t.yEnd)},getRect:function(e){if(e.__rect)return e.__rect;var t=Math.min(e.xStart,e.xEnd,e.cpX1),i=Math.min(e.yStart,e.yEnd,e.cpY1),n=Math.max(e.xStart,e.xEnd,e.cpX1),a=Math.max(e.yStart,e.yEnd,e.cpY1),o=e.cpX2,r=e.cpY2;"undefined"!=typeof o&&"undefined"!=typeof r&&(t=Math.min(t,o),i=Math.min(i,r),n=Math.max(n,o),a=Math.max(a,r));var s=e.lineWidth||1;return e.__rect={x:t-s,y:i-s,width:n-t+s,height:a-i+s},e.__rect}},e("../tool/util").inherits(i,t),i}),i("zrender/shape/util/dashedLineTo",[],function(){var e=[5,5];return function(t,i,n,a,o,r){if(t.setLineDash)return e[0]=e[1]=r,t.setLineDash(e),t.moveTo(i,n),void t.lineTo(a,o);r="number"!=typeof r?5:r;var s=a-i,l=o-n,h=Math.floor(Math.sqrt(s*s+l*l)/r);s/=h,l/=h;for(var m=!0,V=0;h>V;++V)m?t.moveTo(i,n):t.lineTo(i,n),m=!m,i+=s,n+=l;t.lineTo(a,o)}}),i("zrender/shape/Polygon",["require","./Base","./util/smoothSpline","./util/smoothBezier","./util/dashedLineTo","../tool/util"],function(e){var t=e("./Base"),i=e("./util/smoothSpline"),n=e("./util/smoothBezier"),a=e("./util/dashedLineTo"),o=function(e){t.call(this,e)};return o.prototype={type:"polygon",buildPath:function(e,t){var o=t.pointList;if(!(o.length<2)){if(t.smooth&&"spline"!==t.smooth){var r=n(o,t.smooth,!0,t.smoothConstraint);e.moveTo(o[0][0],o[0][1]);for(var s,l,h,m=o.length,V=0;m>V;V++)s=r[2*V],l=r[2*V+1],h=o[(V+1)%m],e.bezierCurveTo(s[0],s[1],l[0],l[1],h[0],h[1])}else if("spline"===t.smooth&&(o=i(o,!0)),t.lineType&&"solid"!=t.lineType){if("dashed"==t.lineType||"dotted"==t.lineType){var U=t._dashLength||(t.lineWidth||1)*("dashed"==t.lineType?5:1);t._dashLength=U,e.moveTo(o[0][0],o[0][1]);for(var V=1,d=o.length;d>V;V++)a(e,o[V-1][0],o[V-1][1],o[V][0],o[V][1],U);a(e,o[o.length-1][0],o[o.length-1][1],o[0][0],o[0][1],U)}}else{e.moveTo(o[0][0],o[0][1]);for(var V=1,d=o.length;d>V;V++)e.lineTo(o[V][0],o[V][1]);e.lineTo(o[0][0],o[0][1])}e.closePath()}},getRect:function(e){if(e.__rect)return e.__rect;for(var t=Number.MAX_VALUE,i=Number.MIN_VALUE,n=Number.MAX_VALUE,a=Number.MIN_VALUE,o=e.pointList,r=0,s=o.length;s>r;r++)o[r][0]i&&(i=o[r][0]),o[r][1]a&&(a=o[r][1]);var l;return l="stroke"==e.brushType||"fill"==e.brushType?e.lineWidth||1:0,e.__rect={x:Math.round(t-l/2),y:Math.round(n-l/2),width:i-t+l,height:a-n+l},e.__rect}},e("../tool/util").inherits(o,t),o}),i("echarts/util/shape/normalIsCover",[],function(){return function(e,t){var i=this.transformCoordToLocal(e,t);return e=i[0],t=i[1],this.isCoverRect(e,t)}}),i("zrender/shape/util/smoothSpline",["require","../../tool/vector"],function(e){function t(e,t,i,n,a,o,r){var s=.5*(i-e),l=.5*(n-t);return(2*(t-i)+s+l)*r+(-3*(t-i)-2*s-l)*o+s*a+t}var i=e("../../tool/vector");return function(e,n){for(var a=e.length,o=[],r=0,s=1;a>s;s++)r+=i.distance(e[s-1],e[s]);var l=r/5;l=a>l?a:l;for(var s=0;l>s;s++){var h,m,V,U=s/(l-1)*(n?a:a-1),d=Math.floor(U),p=U-d,c=e[d%a];n?(h=e[(d-1+a)%a],m=e[(d+1)%a],V=e[(d+2)%a]):(h=e[0===d?d:d-1],m=e[d>a-2?a-1:d+1],V=e[d>a-3?a-1:d+2]);var u=p*p,y=p*u;o.push([t(h[0],c[0],m[0],V[0],p,u,y),t(h[1],c[1],m[1],V[1],p,u,y)])}return o}}),i("zrender/shape/util/smoothBezier",["require","../../tool/vector"],function(e){var t=e("../../tool/vector");return function(e,i,n,a){var o,r,s,l,h=[],m=[],V=[],U=[],d=!!a;if(d){s=[1/0,1/0],l=[-(1/0),-(1/0)];for(var p=0,c=e.length;c>p;p++)t.min(s,s,e[p]),t.max(l,l,e[p]);t.min(s,s,a[0]),t.max(l,l,a[1])}for(var p=0,c=e.length;c>p;p++){var o,r,u=e[p];if(n)o=e[p?p-1:c-1],r=e[(p+1)%c];else{if(0===p||p===c-1){h.push(t.clone(e[p]));continue}o=e[p-1],r=e[p+1]}t.sub(m,r,o),t.scale(m,m,i);var y=t.distance(u,o),g=t.distance(u,r),b=y+g;0!==b&&(y/=b,g/=b),t.scale(V,m,-y),t.scale(U,m,g);var f=t.add([],u,V),k=t.add([],u,U);d&&(t.max(f,f,s),t.min(f,f,l),t.max(k,k,s),t.min(k,k,l)),h.push(f),h.push(k)}return n&&h.push(t.clone(h.shift())),h}}),i("echarts/util/ecQuery",["require","zrender/tool/util"],function(e){function t(e,t){if("undefined"!=typeof e){if(!t)return e;t=t.split(".");for(var i=t.length,n=0;i>n;){if(e=e[t[n]],"undefined"==typeof e)return;n++}return e}}function i(e,i){for(var n,a=0,o=e.length;o>a;a++)if(n=t(e[a],i),"undefined"!=typeof n)return n}function n(e,i){for(var n,o=e.length;o--;){var r=t(e[o],i);"undefined"!=typeof r&&("undefined"==typeof n?n=a.clone(r):a.merge(n,r,!0))}return n}var a=e("zrender/tool/util");return{query:t,deepQuery:i,deepMerge:n}}),i("echarts/util/number",[],function(){function e(e){return e.replace(/^\s+/,"").replace(/\s+$/,"")}function t(t,i){return"string"==typeof t?e(t).match(/%$/)?parseFloat(t)/100*i:parseFloat(t):t}function i(e,i){return[t(i[0],e.getWidth()),t(i[1],e.getHeight())]}function n(e,i){i instanceof Array||(i=[0,i]);var n=Math.min(e.getWidth(),e.getHeight())/2;return[t(i[0],n),t(i[1],n)]}function a(e){return isNaN(e)?"-":(e=(e+"").split("."),e[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(e.length>1?"."+e[1]:""))}function o(e){for(var t=1,i=0;Math.round(e*t)/t!==e;)t*=10,i++;return i}return{parsePercent:t,parseCenter:i,parseRadius:n,addCommas:a,getPrecision:o}}),i("echarts/data/KDTree",["require","./quickSelect"],function(e){function t(e,t){this.left=null,this.right=null,this.axis=e,this.data=t}var i=e("./quickSelect"),n=function(e,t){e.length&&(t||(t=e[0].array.length),this.dimension=t,this.root=this._buildTree(e,0,e.length-1,0),this._stack=[],this._nearstNList=[])};return n.prototype._buildTree=function(e,n,a,o){if(n>a)return null;var r=Math.floor((n+a)/2);r=i(e,n,a,r,function(e,t){return e.array[o]-t.array[o]});var s=e[r],l=new t(o,s);return o=(o+1)%this.dimension,a>n&&(l.left=this._buildTree(e,n,r-1,o),l.right=this._buildTree(e,r+1,a,o)),l},n.prototype.nearest=function(e,t){var i=this.root,n=this._stack,a=0,o=1/0,r=null;for(i.data!==e&&(o=t(i.data,e),r=i),e.array[i.axis]s,h=!1;s*=s,o>s&&(s=t(i.data,e),o>s&&i.data!==e&&(o=s,r=i),h=!0),l?(h&&i.right&&(n[a++]=i.right),i.left&&(n[a++]=i.left)):(h&&i.left&&(n[a++]=i.left),i.right&&(n[a++]=i.right))}return r.data},n.prototype._addNearest=function(e,t,i){for(var n=this._nearstNList,a=e-1;a>0&&!(t>=n[a-1].dist);a--)n[a].dist=n[a-1].dist,n[a].node=n[a-1].node;n[a].dist=t,n[a].node=i},n.prototype.nearestN=function(e,t,i,n){if(0>=t)return n.length=0,n;for(var a=this.root,o=this._stack,r=0,s=this._nearstNList,l=0;t>l;l++)s[l]||(s[l]={}),s[l].dist=0,s[l].node=null;var h=i(a.data,e),m=0;for(a.data!==e&&(m++,this._addNearest(m,h,a)),e.array[a.axis]h,U=!1;h*=h,(t>m||hm||hm&&m++,this._addNearest(m,h,a)),U=!0),V?(U&&a.right&&(o[r++]=a.right),a.left&&(o[r++]=a.left)):(U&&a.left&&(o[r++]=a.left),a.right&&(o[r++]=a.right))}for(var l=0;m>l;l++)n[l]=s[l].node.data;return n.length=m,n},n}),i("echarts/data/quickSelect",["require"],function(){function e(e,t){return e-t}function t(e,t,i){var n=e[t];e[t]=e[i],e[i]=n}function i(e,i,n,a,o){for(var r=i;n>i;){var r=Math.round((n+i)/2),s=e[r];t(e,r,n),r=i;for(var l=i;n-1>=l;l++)o(s,e[l])>=0&&(t(e,l,r),r++);if(t(e,n,r),r===a)return r;a>r?i=r+1:n=r-1}return i}function n(t,n,a,o,r){return arguments.length<=3&&(o=n,r=2==arguments.length?e:a,n=0,a=t.length-1),i(t,n,a,o,r)}return n}),i("echarts/component/dataView",["require","./base","../config","zrender/tool/util","../component"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.dom=o.dom,this._tDom=document.createElement("div"),this._textArea=document.createElement("textArea"),this._buttonRefresh=document.createElement("button"),this._buttonRefresh.setAttribute("type","button"),this._buttonClose=document.createElement("button"),this._buttonClose.setAttribute("type","button"),this._hasShow=!1,this._zrHeight=n.getHeight(),this._zrWidth=n.getWidth(),this._tDom.className="echarts-dataview",this.hide(),this.dom.firstChild.appendChild(this._tDom),window.addEventListener?(this._tDom.addEventListener("click",this._stop),this._tDom.addEventListener("mousewheel",this._stop),this._tDom.addEventListener("mousemove",this._stop),this._tDom.addEventListener("mousedown",this._stop),this._tDom.addEventListener("mouseup",this._stop),this._tDom.addEventListener("touchstart",this._stop),this._tDom.addEventListener("touchmove",this._stop),this._tDom.addEventListener("touchend",this._stop)):(this._tDom.attachEvent("onclick",this._stop),this._tDom.attachEvent("onmousewheel",this._stop),this._tDom.attachEvent("onmousemove",this._stop),this._tDom.attachEvent("onmousedown",this._stop),this._tDom.attachEvent("onmouseup",this._stop))}var i=e("./base"),n=e("../config"),a=e("zrender/tool/util");return t.prototype={type:n.COMPONENT_TYPE_DATAVIEW,_lang:["Data View","close","refresh"],_gCssText:"position:absolute;display:block;overflow:hidden;transition:height 0.8s,background-color 1s;-moz-transition:height 0.8s,background-color 1s;-webkit-transition:height 0.8s,background-color 1s;-o-transition:height 0.8s,background-color 1s;z-index:1;left:0;top:0;",hide:function(){this._sizeCssText="width:"+this._zrWidth+"px;height:0px;background-color:#f0ffff;",this._tDom.style.cssText=this._gCssText+this._sizeCssText},show:function(e){this._hasShow=!0;var t=this.query(this.option,"toolbox.feature.dataView.lang")||this._lang;this.option=e,this._tDom.innerHTML='

'+(t[0]||this._lang[0])+"

";var i=this.query(this.option,"toolbox.feature.dataView.optionToContent");"function"!=typeof i?this._textArea.value=this._optionToContent():(this._textArea=document.createElement("div"),this._textArea.innerHTML=i(this.option)),this._textArea.style.cssText="display:block;margin:0 0 8px 0;padding:4px 6px;overflow:auto;width:100%;height:"+(this._zrHeight-100)+"px;",this._tDom.appendChild(this._textArea),this._buttonClose.style.cssText="float:right;padding:1px 6px;",this._buttonClose.innerHTML=t[1]||this._lang[1];var n=this;this._buttonClose.onclick=function(){n.hide()},this._tDom.appendChild(this._buttonClose),this.query(this.option,"toolbox.feature.dataView.readOnly")===!1?(this._buttonRefresh.style.cssText="float:right;margin-right:10px;padding:1px 6px;",this._buttonRefresh.innerHTML=t[2]||this._lang[2],this._buttonRefresh.onclick=function(){n._save()},this._textArea.readOnly=!1,this._textArea.style.cursor="default"):(this._buttonRefresh.style.cssText="display:none", +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.detachEvent("onmousemove",this._stop),this._tDom.detachEvent("onmousedown",this._stop),this._tDom.detachEvent("onmouseup",this._stop)),this._buttonRefresh.onclick=null,this._buttonClose.onclick=null,this._hasShow&&(this._tDom.removeChild(this._textArea),this._tDom.removeChild(this._buttonRefresh),this._tDom.removeChild(this._buttonClose)),this._textArea=null,this._buttonRefresh=null,this._buttonClose=null,this.dom.firstChild.removeChild(this._tDom),this._tDom=null}},a.inherits(t,i),e("../component").define("dataView",t),t}),i("echarts/util/shape/Cross",["require","zrender/shape/Base","zrender/shape/Line","zrender/tool/util","./normalIsCover"],function(e){function t(e){i.call(this,e)}var i=e("zrender/shape/Base"),n=e("zrender/shape/Line"),a=e("zrender/tool/util");return t.prototype={type:"cross",buildPath:function(e,t){var i=t.rect;t.xStart=i.x,t.xEnd=i.x+i.width,t.yStart=t.yEnd=t.y,n.prototype.buildPath(e,t),t.xStart=t.xEnd=t.x,t.yStart=i.y,t.yEnd=i.y+i.height,n.prototype.buildPath(e,t)},getRect:function(e){return e.rect},isCover:e("./normalIsCover")},a.inherits(t,i),t}),i("zrender/shape/Sector",["require","../tool/math","../tool/computeBoundingBox","../tool/vector","./Base","../tool/util"],function(e){var t=e("../tool/math"),i=e("../tool/computeBoundingBox"),n=e("../tool/vector"),a=e("./Base"),o=n.create(),r=n.create(),s=n.create(),l=n.create(),h=function(e){a.call(this,e)};return h.prototype={type:"sector",buildPath:function(e,i){var n=i.x,a=i.y,o=i.r0||0,r=i.r,s=i.startAngle,l=i.endAngle,h=i.clockWise||!1;s=t.degreeToRadian(s),l=t.degreeToRadian(l),h||(s=-s,l=-l);var m=t.cos(s),V=t.sin(s);e.moveTo(m*o+n,V*o+a),e.lineTo(m*r+n,V*r+a),e.arc(n,a,r,s,l,!h),e.lineTo(t.cos(l)*o+n,t.sin(l)*o+a),0!==o&&e.arc(n,a,o,l,s,h),e.closePath()},getRect:function(e){if(e.__rect)return e.__rect;var a=e.x,h=e.y,m=e.r0||0,V=e.r,U=t.degreeToRadian(e.startAngle),d=t.degreeToRadian(e.endAngle),p=e.clockWise;return p||(U=-U,d=-d),m>1?i.arc(a,h,m,U,d,!p,o,s):(o[0]=s[0]=a,o[1]=s[1]=h),i.arc(a,h,V,U,d,!p,r,l),n.min(o,o,r),n.max(s,s,l),e.__rect={x:o[0],y:o[1],width:s[0]-o[0],height:s[1]-o[1]},e.__rect}},e("../tool/util").inherits(h,a),h}),i("echarts/util/shape/Candle",["require","zrender/shape/Base","zrender/tool/util","./normalIsCover"],function(e){function t(e){i.call(this,e)}var i=e("zrender/shape/Base"),n=e("zrender/tool/util");return t.prototype={type:"candle",_numberOrder:function(e,t){return t-e},buildPath:function(e,t){var i=n.clone(t.y).sort(this._numberOrder);e.moveTo(t.x,i[3]),e.lineTo(t.x,i[2]),e.moveTo(t.x-t.width/2,i[2]),e.rect(t.x-t.width/2,i[2],t.width,i[1]-i[2]),e.moveTo(t.x,i[1]),e.lineTo(t.x,i[0])},getRect:function(e){if(!e.__rect){var t=0;("stroke"==e.brushType||"fill"==e.brushType)&&(t=e.lineWidth||1);var i=n.clone(e.y).sort(this._numberOrder);e.__rect={x:Math.round(e.x-e.width/2-t/2),y:Math.round(i[3]-t/2),width:e.width+t,height:i[0]-i[3]+t}}return e.__rect},isCover:e("./normalIsCover")},n.inherits(t,i),t}),i("zrender/tool/computeBoundingBox",["require","./vector","./curve"],function(e){function t(e,t,i){if(0!==e.length){for(var n=e[0][0],a=e[0][0],o=e[0][1],r=e[0][1],s=1;sa&&(a=l[0]),l[1]r&&(r=l[1])}t[0]=n,t[1]=o,i[0]=a,i[1]=r}}function i(e,t,i,n,a,r){var s=[];o.cubicExtrema(e[0],t[0],i[0],n[0],s);for(var l=0;l=2*Math.PI)return m[0]=e-i,m[1]=t-i,V[0]=e+i,void(V[1]=t+i);if(r[0]=Math.cos(n)*i+e,r[1]=Math.sin(n)*i+t,s[0]=Math.cos(o)*i+e,s[1]=Math.sin(o)*i+t,a.min(m,r,s),a.max(V,r,s),n%=2*Math.PI,0>n&&(n+=2*Math.PI),o%=2*Math.PI,0>o&&(o+=2*Math.PI),n>o&&!h?o+=2*Math.PI:o>n&&h&&(n+=2*Math.PI),h){var U=o;o=n,n=U}for(var d=0;o>d;d+=Math.PI/2)d>n&&(l[0]=Math.cos(d)*i+e,l[1]=Math.sin(d)*i+t,a.min(m,l,m),a.max(V,l,V))};return t.cubeBezier=i,t.quadraticBezier=n,t.arc=h,t}),i("echarts/util/shape/Chain",["require","zrender/shape/Base","./Icon","zrender/shape/util/dashedLineTo","zrender/tool/util","zrender/tool/matrix"],function(e){function t(e){i.call(this,e)}var i=e("zrender/shape/Base"),n=e("./Icon"),a=e("zrender/shape/util/dashedLineTo"),o=e("zrender/tool/util"),r=e("zrender/tool/matrix");return t.prototype={type:"chain",brush:function(e,t){var i=this.style;t&&(i=this.getHighlightStyle(i,this.highlightStyle||{})),e.save(),this.setContext(e,i),this.setTransform(e),e.save(),e.beginPath(),this.buildLinePath(e,i),e.stroke(),e.restore(),this.brushSymbol(e,i),e.restore()},buildLinePath:function(e,t){var i=t.x,n=t.y+5,o=t.width,r=t.height/2-10;if(e.moveTo(i,n),e.lineTo(i,n+r),e.moveTo(i+o,n),e.lineTo(i+o,n+r),e.moveTo(i,n+r/2),t.lineType&&"solid"!=t.lineType){if("dashed"==t.lineType||"dotted"==t.lineType){var s=(t.lineWidth||1)*("dashed"==t.lineType?5:1);a(e,i,n+r/2,i+o,n+r/2,s)}}else e.lineTo(i+o,n+r/2)},brushSymbol:function(e,t){var i=t.y+t.height/4;e.save();for(var a,o=t.chainPoint,r=0,s=o.length;s>r;r++){if(a=o[r],"none"!=a.symbol){e.beginPath();var l=a.symbolSize;n.prototype.buildPath(e,{iconType:a.symbol,x:a.x-l,y:i-l,width:2*l,height:2*l,n:a.n}),e.fillStyle=a.isEmpty?"#fff":t.strokeColor,e.closePath(),e.fill(),e.stroke()}a.showLabel&&(e.font=a.textFont,e.fillStyle=a.textColor,e.textAlign=a.textAlign,e.textBaseline=a.textBaseline,a.rotation?(e.save(),this._updateTextTransform(e,a.rotation),e.fillText(a.name,a.textX,a.textY),e.restore()):e.fillText(a.name,a.textX,a.textY))}e.restore()},_updateTextTransform:function(e,t){var i=r.create();if(r.identity(i),0!==t[0]){var n=t[1]||0,a=t[2]||0;(n||a)&&r.translate(i,i,[-n,-a]),r.rotate(i,i,t[0]),(n||a)&&r.translate(i,i,[n,a])}e.transform.apply(e,i)},isCover:function(e,t){var i=this.style;return e>=i.x&&e<=i.x+i.width&&t>=i.y&&t<=i.y+i.height?!0:!1}},o.inherits(t,i),t}),i("zrender/shape/Ring",["require","./Base","../tool/util"],function(e){var t=e("./Base"),i=function(e){t.call(this,e)};return i.prototype={type:"ring",buildPath:function(e,t){e.arc(t.x,t.y,t.r,0,2*Math.PI,!1),e.moveTo(t.x+t.r0,t.y),e.arc(t.x,t.y,t.r0,0,2*Math.PI,!0)},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-e.r-t/2),y:Math.round(e.y-e.r-t/2),width:2*e.r+t,height:2*e.r+t},e.__rect}},e("../tool/util").inherits(i,t),i}),i("echarts/component/axis",["require","./base","zrender/shape/Line","../config","../util/ecData","zrender/tool/util","zrender/tool/color","./categoryAxis","./valueAxis","../component"],function(e){function t(e,t,n,a,o,r){i.call(this,e,t,n,a,o),this.axisType=r,this._axisList=[],this.refresh(a)}var i=e("./base"),n=e("zrender/shape/Line"),a=e("../config"),o=e("../util/ecData"),r=e("zrender/tool/util"),s=e("zrender/tool/color");return t.prototype={type:a.COMPONENT_TYPE_AXIS,axisBase:{_buildAxisLine:function(){var e=this.option.axisLine.lineStyle.width,t=e/2,i={_axisShape:"axisLine",zlevel:this.getZlevelBase(),z:this.getZBase()+3,hoverable:!1},a=this.grid;switch(this.option.position){case"left":i.style={xStart:a.getX()-t,yStart:a.getYend(),xEnd:a.getX()-t,yEnd:a.getY(),lineCap:"round"};break;case"right":i.style={xStart:a.getXend()+t,yStart:a.getYend(),xEnd:a.getXend()+t,yEnd:a.getY(),lineCap:"round"};break;case"bottom":i.style={xStart:a.getX(),yStart:a.getYend()+t,xEnd:a.getXend(),yEnd:a.getYend()+t,lineCap:"round"};break;case"top":i.style={xStart:a.getX(),yStart:a.getY()-t,xEnd:a.getXend(),yEnd:a.getY()-t,lineCap:"round"}}var o=i.style;""!==this.option.name&&(o.text=this.option.name,o.textPosition=this.option.nameLocation,o.textFont=this.getFont(this.option.nameTextStyle),this.option.nameTextStyle.align&&(o.textAlign=this.option.nameTextStyle.align),this.option.nameTextStyle.baseline&&(o.textBaseline=this.option.nameTextStyle.baseline),this.option.nameTextStyle.color&&(o.textColor=this.option.nameTextStyle.color)),o.strokeColor=this.option.axisLine.lineStyle.color,o.lineWidth=e,this.isHorizontal()?o.yStart=o.yEnd=this.subPixelOptimize(o.yEnd,e):o.xStart=o.xEnd=this.subPixelOptimize(o.xEnd,e),o.lineType=this.option.axisLine.lineStyle.type,i=new n(i),this.shapeList.push(i)},_axisLabelClickable:function(e,t){return e?(o.pack(t,void 0,-1,void 0,-1,t.style.text),t.hoverable=!0,t.clickable=!0,t.highlightStyle={color:s.lift(t.style.color,1),brushType:"fill"},t):t},refixAxisShape:function(e,t){if(this.option.axisLine.onZero){var i;if(this.isHorizontal()&&null!=t)for(var n=0,a=this.shapeList.length;a>n;n++)"axisLine"===this.shapeList[n]._axisShape?(this.shapeList[n].style.yStart=this.shapeList[n].style.yEnd=this.subPixelOptimize(t,this.shapeList[n].stylelineWidth),this.zr.modShape(this.shapeList[n].id)):"axisTick"===this.shapeList[n]._axisShape&&(i=this.shapeList[n].style.yEnd-this.shapeList[n].style.yStart,this.shapeList[n].style.yStart=t-i,this.shapeList[n].style.yEnd=t,this.zr.modShape(this.shapeList[n].id));if(!this.isHorizontal()&&null!=e)for(var n=0,a=this.shapeList.length;a>n;n++)"axisLine"===this.shapeList[n]._axisShape?(this.shapeList[n].style.xStart=this.shapeList[n].style.xEnd=this.subPixelOptimize(e,this.shapeList[n].stylelineWidth),this.zr.modShape(this.shapeList[n].id)):"axisTick"===this.shapeList[n]._axisShape&&(i=this.shapeList[n].style.xEnd-this.shapeList[n].style.xStart,this.shapeList[n].style.xStart=e,this.shapeList[n].style.xEnd=e+i,this.zr.modShape(this.shapeList[n].id))}},getPosition:function(){return this.option.position},isHorizontal:function(){return"bottom"===this.option.position||"top"===this.option.position}},reformOption:function(e){if(!e||e instanceof Array&&0===e.length?e=[{type:a.COMPONENT_TYPE_AXIS_VALUE}]:e instanceof Array||(e=[e]),e.length>2&&(e=[e[0],e[1]]),"xAxis"===this.axisType){(!e[0].position||"bottom"!=e[0].position&&"top"!=e[0].position)&&(e[0].position="bottom"),e.length>1&&(e[1].position="bottom"===e[0].position?"top":"bottom");for(var t=0,i=e.length;i>t;t++)e[t].type=e[t].type||"category",e[t].xAxisIndex=t,e[t].yAxisIndex=-1}else{(!e[0].position||"left"!=e[0].position&&"right"!=e[0].position)&&(e[0].position="left"),e.length>1&&(e[1].position="left"===e[0].position?"right":"left");for(var t=0,i=e.length;i>t;t++)e[t].type=e[t].type||"value",e[t].xAxisIndex=-1,e[t].yAxisIndex=t}return e},refresh:function(t){var i;t&&(this.option=t,"xAxis"===this.axisType?(this.option.xAxis=this.reformOption(t.xAxis),i=this.option.xAxis):(this.option.yAxis=this.reformOption(t.yAxis),i=this.option.yAxis),this.series=t.series);for(var n=e("./categoryAxis"),a=e("./valueAxis"),o=Math.max(i&&i.length||0,this._axisList.length),r=0;o>r;r++)!this._axisList[r]||!t||i[r]&&this._axisList[r].type==i[r].type||(this._axisList[r].dispose&&this._axisList[r].dispose(),this._axisList[r]=!1),this._axisList[r]?this._axisList[r].refresh&&this._axisList[r].refresh(i?i[r]:!1,this.series):i&&i[r]&&(this._axisList[r]="category"===i[r].type?new n(this.ecTheme,this.messageCenter,this.zr,i[r],this.myChart,this.axisBase):new a(this.ecTheme,this.messageCenter,this.zr,i[r],this.myChart,this.axisBase,this.series))},getAxis:function(e){return this._axisList[e]},getAxisCount:function(){return this._axisList.length},clear:function(){for(var e=0,t=this._axisList.length;t>e;e++)this._axisList[e].dispose&&this._axisList[e].dispose();this._axisList=[]}},r.inherits(t,i),e("../component").define("axis",t),t}),i("echarts/component/grid",["require","./base","zrender/shape/Rectangle","../config","zrender/tool/util","../component"],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("zrender/shape/Rectangle"),a=e("../config");a.grid={zlevel:0,z:0,x:80,y:60,x2:80,y2:60,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"};var o=e("zrender/tool/util");return t.prototype={type:a.COMPONENT_TYPE_GRID,getX:function(){return this._x},getY:function(){return this._y},getWidth:function(){return this._width},getHeight:function(){return this._height},getXend:function(){return this._x+this._width},getYend:function(){return this._y+this._height},getArea:function(){return{x:this._x,y:this._y,width:this._width,height:this._height}},getBbox:function(){return[[this._x,this._y],[this.getXend(),this.getYend()]]},refixAxisShape:function(e){for(var t,i,n,o=e.xAxis._axisList.concat(e.yAxis?e.yAxis._axisList:[]),r=o.length;r--;)n=o[r],n.type==a.COMPONENT_TYPE_AXIS_VALUE&&n._min<0&&n._max>=0&&(n.isHorizontal()?t=n.getCoord(0):i=n.getCoord(0));if("undefined"!=typeof t||"undefined"!=typeof i)for(r=o.length;r--;)o[r].refixAxisShape(t,i)},refresh:function(e){if(e||this._zrWidth!=this.zr.getWidth()||this._zrHeight!=this.zr.getHeight()){this.clear(),this.option=e||this.option,this.option.grid=this.reformOption(this.option.grid);var t=this.option.grid;this._zrWidth=this.zr.getWidth(),this._zrHeight=this.zr.getHeight(),this._x=this.parsePercent(t.x,this._zrWidth),this._y=this.parsePercent(t.y,this._zrHeight);var i=this.parsePercent(t.x2,this._zrWidth),a=this.parsePercent(t.y2,this._zrHeight);this._width="undefined"==typeof t.width?this._zrWidth-this._x-i:this.parsePercent(t.width,this._zrWidth),this._width=this._width<=0?10:this._width,this._height="undefined"==typeof t.height?this._zrHeight-this._y-a:this.parsePercent(t.height,this._zrHeight),this._height=this._height<=0?10:this._height,this._x=this.subPixelOptimize(this._x,t.borderWidth),this._y=this.subPixelOptimize(this._y,t.borderWidth),this.shapeList.push(new n({zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:this._x,y:this._y,width:this._width,height:this._height,brushType:t.borderWidth>0?"both":"fill",color:t.backgroundColor,strokeColor:t.borderColor,lineWidth:t.borderWidth}})),this.zr.addShape(this.shapeList[0])}}},o.inherits(t,i),e("../component").define("grid",t),t}),i("echarts/component/dataZoom",["require","./base","zrender/shape/Rectangle","zrender/shape/Polygon","../util/shape/Icon","../config","../util/date","zrender/tool/util","../component"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o);var r=this;r._ondrift=function(e,t){return r.__ondrift(this,e,t)},r._ondragend=function(){return r.__ondragend()},this._fillerSize=30,this._isSilence=!1,this._zoom={},this.option.dataZoom=this.reformOption(this.option.dataZoom),this.zoomOption=this.option.dataZoom,this._handleSize=this.zoomOption.handleSize,this.myChart.canvasSupported||(this.zoomOption.realtime=!1),this._location=this._getLocation(),this._zoom=this._getZoom(),this._backupData(),this.option.dataZoom.show&&this._buildShape(),this._syncData()}var i=e("./base"),n=e("zrender/shape/Rectangle"),a=e("zrender/shape/Polygon"),o=e("../util/shape/Icon"),r=e("../config");r.dataZoom={zlevel:0,z:4,show:!1,orient:"horizontal",backgroundColor:"rgba(0,0,0,0)",dataBackgroundColor:"#eee",fillerColor:"rgba(144,197,237,0.2)",handleColor:"rgba(70,130,180,0.8)",handleSize:8,showDetail:!0,realtime:!0};var s=e("../util/date"),l=e("zrender/tool/util");return t.prototype={type:r.COMPONENT_TYPE_DATAZOOM,_buildShape:function(){this._buildBackground(),this._buildFiller(),this._buildHandle(),this._buildFrame();for(var e=0,t=this.shapeList.length;t>e;e++)this.zr.addShape(this.shapeList[e]);this._syncFrameShape()},_getLocation:function(){var e,t,i,n,a=this.component.grid;return"horizontal"==this.zoomOption.orient?(i=this.zoomOption.width||a.getWidth(),n=this.zoomOption.height||this._fillerSize,e=null!=this.zoomOption.x?this.zoomOption.x:a.getX(),t=null!=this.zoomOption.y?this.zoomOption.y:this.zr.getHeight()-n-2):(i=this.zoomOption.width||this._fillerSize,n=this.zoomOption.height||a.getHeight(),e=null!=this.zoomOption.x?this.zoomOption.x:2,t=null!=this.zoomOption.y?this.zoomOption.y:a.getY()),{x:e,y:t,width:i,height:n}},_getZoom:function(){var e=this.option.series,t=this.option.xAxis;!t||t instanceof Array||(t=[t],this.option.xAxis=t);var i=this.option.yAxis;!i||i instanceof Array||(i=[i],this.option.yAxis=i);var n,a,o=[],s=this.zoomOption.xAxisIndex;if(t&&null==s){n=[];for(var l=0,h=t.length;h>l;l++)("category"==t[l].type||null==t[l].type)&&n.push(l)}else n=s instanceof Array?s:null!=s?[s]:[];if(s=this.zoomOption.yAxisIndex,i&&null==s){a=[];for(var l=0,h=i.length;h>l;l++)"category"==i[l].type&&a.push(l)}else a=s instanceof Array?s:null!=s?[s]:[];for(var m,l=0,h=e.length;h>l;l++)if(m=e[l],m.type==r.CHART_TYPE_LINE||m.type==r.CHART_TYPE_BAR||m.type==r.CHART_TYPE_SCATTER||m.type==r.CHART_TYPE_K){for(var V=0,U=n.length;U>V;V++)if(n[V]==(m.xAxisIndex||0)){o.push(l);break}for(var V=0,U=a.length;U>V;V++)if(a[V]==(m.yAxisIndex||0)){o.push(l);break}null==this.zoomOption.xAxisIndex&&null==this.zoomOption.yAxisIndex&&m.data&&this.getDataFromOption(m.data[0])instanceof Array&&(m.type==r.CHART_TYPE_SCATTER||m.type==r.CHART_TYPE_LINE||m.type==r.CHART_TYPE_BAR)&&o.push(l)}var d=null!=this._zoom.start?this._zoom.start:null!=this.zoomOption.start?this.zoomOption.start:0,p=null!=this._zoom.end?this._zoom.end:null!=this.zoomOption.end?this.zoomOption.end:100;d>p&&(d+=p,p=d-p,d-=p);var c=Math.round((p-d)/100*("horizontal"==this.zoomOption.orient?this._location.width:this._location.height));return{start:d,end:p,start2:0,end2:100,size:c,xAxisIndex:n,yAxisIndex:a,seriesIndex:o,scatterMap:this._zoom.scatterMap||{}}},_backupData:function(){this._originalData={xAxis:{},yAxis:{},series:{}};for(var e=this.option.xAxis,t=this._zoom.xAxisIndex,i=0,n=t.length;n>i;i++)this._originalData.xAxis[t[i]]=e[t[i]].data;for(var a=this.option.yAxis,o=this._zoom.yAxisIndex,i=0,n=o.length;n>i;i++)this._originalData.yAxis[o[i]]=a[o[i]].data;for(var s,l=this.option.series,h=this._zoom.seriesIndex,i=0,n=h.length;n>i;i++)s=l[h[i]],this._originalData.series[h[i]]=s.data,s.data&&this.getDataFromOption(s.data[0])instanceof Array&&(s.type==r.CHART_TYPE_SCATTER||s.type==r.CHART_TYPE_LINE||s.type==r.CHART_TYPE_BAR)&&(this._backupScale(),this._calculScatterMap(h[i]))},_calculScatterMap:function(t){this._zoom.scatterMap=this._zoom.scatterMap||{},this._zoom.scatterMap[t]=this._zoom.scatterMap[t]||{};var i=e("../component"),n=i.get("axis"),a=l.clone(this.option.xAxis);"category"==a[0].type&&(a[0].type="value"),a[1]&&"category"==a[1].type&&(a[1].type="value");var o=new n(this.ecTheme,null,!1,{xAxis:a,series:this.option.series},this,"xAxis"),r=this.option.series[t].xAxisIndex||0;this._zoom.scatterMap[t].x=o.getAxis(r).getExtremum(),o.dispose(),a=l.clone(this.option.yAxis),"category"==a[0].type&&(a[0].type="value"),a[1]&&"category"==a[1].type&&(a[1].type="value"),o=new n(this.ecTheme,null,!1,{yAxis:a,series:this.option.series},this,"yAxis"),r=this.option.series[t].yAxisIndex||0,this._zoom.scatterMap[t].y=o.getAxis(r).getExtremum(),o.dispose()},_buildBackground:function(){var e=this._location.width,t=this._location.height;this.shapeList.push(new n({zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:this._location.x,y:this._location.y,width:e,height:t,color:this.zoomOption.backgroundColor}}));for(var i=0,o=this._originalData.xAxis,s=this._zoom.xAxisIndex,l=0,h=s.length;h>l;l++)i=Math.max(i,o[s[l]].length);for(var m=this._originalData.yAxis,V=this._zoom.yAxisIndex,l=0,h=V.length;h>l;l++)i=Math.max(i,m[V[l]].length);for(var U,d=this._zoom.seriesIndex[0],p=this._originalData.series[d],c=Number.MIN_VALUE,u=Number.MAX_VALUE,l=0,h=p.length;h>l;l++)U=this.getDataFromOption(p[l],0),this.option.series[d].type==r.CHART_TYPE_K&&(U=U[1]),isNaN(U)&&(U=0),c=Math.max(c,U),u=Math.min(u,U);var y=c-u,g=[],b=e/(i-(i>1?1:0)),f=t/(i-(i>1?1:0)),k=1;"horizontal"==this.zoomOption.orient&&1>b?k=Math.floor(3*i/e):"vertical"==this.zoomOption.orient&&1>f&&(k=Math.floor(3*i/t));for(var l=0,h=i;h>l;l+=k)U=this.getDataFromOption(p[l],0),this.option.series[d].type==r.CHART_TYPE_K&&(U=U[1]),isNaN(U)&&(U=0),g.push("horizontal"==this.zoomOption.orient?[this._location.x+b*l,this._location.y+t-1-Math.round((U-u)/y*(t-10))]:[this._location.x+1+Math.round((U-u)/y*(e-10)),this._location.y+f*(h-l-1)]);"horizontal"==this.zoomOption.orient?(g.push([this._location.x+e,this._location.y+t]),g.push([this._location.x,this._location.y+t])):(g.push([this._location.x,this._location.y]),g.push([this._location.x,this._location.y+t])),this.shapeList.push(new a({zlevel:this.getZlevelBase(),z:this.getZBase(),style:{pointList:g,color:this.zoomOption.dataBackgroundColor},hoverable:!1}))},_buildFiller:function(){this._fillerShae={zlevel:this.getZlevelBase(),z:this.getZBase(),draggable:!0,ondrift:this._ondrift,ondragend:this._ondragend,_type:"filler"},this._fillerShae.style="horizontal"==this.zoomOption.orient?{x:this._location.x+Math.round(this._zoom.start/100*this._location.width)+this._handleSize,y:this._location.y,width:this._zoom.size-2*this._handleSize,height:this._location.height,color:this.zoomOption.fillerColor,text:":::",textPosition:"inside"}:{x:this._location.x,y:this._location.y+Math.round(this._zoom.start/100*this._location.height)+this._handleSize,width:this._location.width,height:this._zoom.size-2*this._handleSize,color:this.zoomOption.fillerColor,text:"::",textPosition:"inside"},this._fillerShae.highlightStyle={brushType:"fill",color:"rgba(0,0,0,0)"},this._fillerShae=new n(this._fillerShae),this.shapeList.push(this._fillerShae)},_buildHandle:function(){var e=this.zoomOption.showDetail?this._getDetail():{start:"",end:""};this._startShape={zlevel:this.getZlevelBase(),z:this.getZBase(),draggable:!0,style:{iconType:"rectangle",x:this._location.x,y:this._location.y,width:this._handleSize,height:this._handleSize,color:this.zoomOption.handleColor,text:"=",textPosition:"inside"},highlightStyle:{text:e.start,brushType:"fill",textPosition:"left"},ondrift:this._ondrift,ondragend:this._ondragend},"horizontal"==this.zoomOption.orient?(this._startShape.style.height=this._location.height,this._endShape=l.clone(this._startShape),this._startShape.style.x=this._fillerShae.style.x-this._handleSize,this._endShape.style.x=this._fillerShae.style.x+this._fillerShae.style.width,this._endShape.highlightStyle.text=e.end,this._endShape.highlightStyle.textPosition="right"):(this._startShape.style.width=this._location.width,this._endShape=l.clone(this._startShape),this._startShape.style.y=this._fillerShae.style.y+this._fillerShae.style.height,this._startShape.highlightStyle.textPosition="bottom",this._endShape.style.y=this._fillerShae.style.y-this._handleSize,this._endShape.highlightStyle.text=e.end,this._endShape.highlightStyle.textPosition="top"),this._startShape=new o(this._startShape),this._endShape=new o(this._endShape),this.shapeList.push(this._startShape),this.shapeList.push(this._endShape)},_buildFrame:function(){var e=this.subPixelOptimize(this._location.x,1),t=this.subPixelOptimize(this._location.y,1);this._startFrameShape={zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:e,y:t,width:this._location.width-(e>this._location.x?1:0),height:this._location.height-(t>this._location.y?1:0),lineWidth:1,brushType:"stroke",strokeColor:this.zoomOption.handleColor}},this._endFrameShape=l.clone(this._startFrameShape),this._startFrameShape=new n(this._startFrameShape),this._endFrameShape=new n(this._endFrameShape),this.shapeList.push(this._startFrameShape),this.shapeList.push(this._endFrameShape)},_syncHandleShape:function(){"horizontal"==this.zoomOption.orient?(this._startShape.style.x=this._fillerShae.style.x-this._handleSize,this._endShape.style.x=this._fillerShae.style.x+this._fillerShae.style.width,this._zoom.start=(this._startShape.style.x-this._location.x)/this._location.width*100,this._zoom.end=(this._endShape.style.x+this._handleSize-this._location.x)/this._location.width*100):(this._startShape.style.y=this._fillerShae.style.y+this._fillerShae.style.height,this._endShape.style.y=this._fillerShae.style.y-this._handleSize,this._zoom.start=(this._location.y+this._location.height-this._startShape.style.y)/this._location.height*100,this._zoom.end=(this._location.y+this._location.height-this._endShape.style.y-this._handleSize)/this._location.height*100),this.zr.modShape(this._startShape.id),this.zr.modShape(this._endShape.id),this._syncFrameShape(),this.zr.refreshNextFrame()},_syncFillerShape:function(){var e,t;"horizontal"==this.zoomOption.orient?(e=this._startShape.style.x,t=this._endShape.style.x,this._fillerShae.style.x=Math.min(e,t)+this._handleSize,this._fillerShae.style.width=Math.abs(e-t)-this._handleSize,this._zoom.start=(Math.min(e,t)-this._location.x)/this._location.width*100,this._zoom.end=(Math.max(e,t)+this._handleSize-this._location.x)/this._location.width*100):(e=this._startShape.style.y,t=this._endShape.style.y,this._fillerShae.style.y=Math.min(e,t)+this._handleSize,this._fillerShae.style.height=Math.abs(e-t)-this._handleSize,this._zoom.start=(this._location.y+this._location.height-Math.max(e,t))/this._location.height*100,this._zoom.end=(this._location.y+this._location.height-Math.min(e,t)-this._handleSize)/this._location.height*100),this.zr.modShape(this._fillerShae.id),this._syncFrameShape(),this.zr.refreshNextFrame()},_syncFrameShape:function(){"horizontal"==this.zoomOption.orient?(this._startFrameShape.style.width=this._fillerShae.style.x-this._location.x,this._endFrameShape.style.x=this._fillerShae.style.x+this._fillerShae.style.width,this._endFrameShape.style.width=this._location.x+this._location.width-this._endFrameShape.style.x):(this._startFrameShape.style.y=this._fillerShae.style.y+this._fillerShae.style.height,this._startFrameShape.style.height=this._location.y+this._location.height-this._startFrameShape.style.y,this._endFrameShape.style.height=this._fillerShae.style.y-this._location.y),this.zr.modShape(this._startFrameShape.id),this.zr.modShape(this._endFrameShape.id)},_syncShape:function(){this.zoomOption.show&&("horizontal"==this.zoomOption.orient?(this._startShape.style.x=this._location.x+this._zoom.start/100*this._location.width,this._endShape.style.x=this._location.x+this._zoom.end/100*this._location.width-this._handleSize,this._fillerShae.style.x=this._startShape.style.x+this._handleSize,this._fillerShae.style.width=this._endShape.style.x-this._startShape.style.x-this._handleSize):(this._startShape.style.y=this._location.y+this._location.height-this._zoom.start/100*this._location.height,this._endShape.style.y=this._location.y+this._location.height-this._zoom.end/100*this._location.height-this._handleSize,this._fillerShae.style.y=this._endShape.style.y+this._handleSize,this._fillerShae.style.height=this._startShape.style.y-this._endShape.style.y-this._handleSize),this.zr.modShape(this._startShape.id),this.zr.modShape(this._endShape.id),this.zr.modShape(this._fillerShae.id),this._syncFrameShape(),this.zr.refresh())},_syncData:function(e){var t,i,n,a,o;for(var s in this._originalData){t=this._originalData[s];for(var l in t)o=t[l],null!=o&&(a=o.length,i=Math.floor(this._zoom.start/100*a),n=Math.ceil(this._zoom.end/100*a),this.getDataFromOption(o[0])instanceof Array&&this.option[s][l].type!=r.CHART_TYPE_K?(this._setScale(),this.option[s][l].data=this._synScatterData(l,o)):this.option[s][l].data=o.slice(i,n))}this._isSilence||!this.zoomOption.realtime&&!e||this.messageCenter.dispatch(r.EVENT.DATA_ZOOM,null,{zoom:this._zoom},this.myChart)},_synScatterData:function(e,t){if(0===this._zoom.start&&100==this._zoom.end&&0===this._zoom.start2&&100==this._zoom.end2)return t;var i,n,a,o,r,s=[],l=this._zoom.scatterMap[e]; + +"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.xt.x+t.width&&(i.width=t.x+t.width-i.x),i.y+i.height>t.y+t.height&&(i.height=t.y+t.height-i.y);var n,a=(i.x-t.x)/t.width,o=1-(i.x+i.width-t.x)/t.width,r=1-(i.y+i.height-t.y)/t.height,s=(i.y-t.y)/t.height;return"horizontal"==this.zoomOption.orient?(n=this._zoom.end-this._zoom.start,this._zoom.start+=n*a,this._zoom.end-=n*o,n=this._zoom.end2-this._zoom.start2,this._zoom.start2+=n*r,this._zoom.end2-=n*s):(n=this._zoom.end-this._zoom.start,this._zoom.start+=n*r,this._zoom.end-=n*s,n=this._zoom.end2-this._zoom.start2,this._zoom.start2+=n*a,this._zoom.end2-=n*o),this._syncShape(),this._syncData(!0),this._zoom},syncBackupData:function(e){for(var t,i,n=this._originalData.series,a=e.series,o=0,r=a.length;r>o;o++){i=a[o].data||a[o].eventList,t=n[o]?Math.floor(this._zoom.start/100*n[o].length):0;for(var s=0,l=i.length;l>s;s++)n[o]&&(n[o][s+t]=i[s])}},syncOption:function(e){this.silence(!0),this.option=e,this.option.dataZoom=this.reformOption(this.option.dataZoom),this.zoomOption=this.option.dataZoom,this.myChart.canvasSupported||(this.zoomOption.realtime=!1),this.clear(),this._location=this._getLocation(),this._zoom=this._getZoom(),this._backupData(),this.option.dataZoom&&this.option.dataZoom.show&&this._buildShape(),this._syncData(),this.silence(!1)},silence:function(e){this._isSilence=e},getRealDataIndex:function(e,t){if(!this._originalData||0===this._zoom.start&&100==this._zoom.end)return t;var i=this._originalData.series;return i[e]?Math.floor(this._zoom.start/100*i[e].length)+t:-1},resize:function(){this.clear(),this._location=this._getLocation(),this._zoom=this._getZoom(),this.option.dataZoom.show&&this._buildShape()}},l.inherits(t,i),e("../component").define("dataZoom",t),t}),i("echarts/component/categoryAxis",["require","./base","zrender/shape/Text","zrender/shape/Line","zrender/shape/Rectangle","../config","zrender/tool/util","zrender/tool/area","../component"],function(e){function t(e,t,n,a,o,r){if(a.data.length<1)return void console.error("option.data.length < 1.");i.call(this,e,t,n,a,o),this.grid=this.component.grid;for(var s in r)this[s]=r[s];this.refresh(a)}var i=e("./base"),n=e("zrender/shape/Text"),a=e("zrender/shape/Line"),o=e("zrender/shape/Rectangle"),r=e("../config");r.categoryAxis={zlevel:0,z:0,show:!0,position:"bottom",name:"",nameLocation:"end",nameTextStyle:{},boundaryGap:!0,axisLine:{show:!0,onZero:!0,lineStyle:{color:"#48b",width:2,type:"solid"}},axisTick:{show:!0,interval:"auto",inside:!1,length:5,lineStyle:{color:"#333",width:1}},axisLabel:{show:!0,interval:"auto",rotate:0,margin:8,textStyle:{color:"#333"}},splitLine:{show:!0,lineStyle:{color:["#ccc"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.3)","rgba(200,200,200,0.3)"]}}};var s=e("zrender/tool/util"),l=e("zrender/tool/area");return t.prototype={type:r.COMPONENT_TYPE_AXIS_CATEGORY,_getReformedLabel:function(e){var t=this.getDataFromOption(this.option.data[e]),i=this.option.data[e].formatter||this.option.axisLabel.formatter;return i&&("function"==typeof i?t=i.call(this.myChart,t):"string"==typeof i&&(t=i.replace("{value}",t))),t},_getInterval:function(){var e=this.option.axisLabel.interval;if("auto"==e){var t=this.option.axisLabel.textStyle.fontSize,i=this.option.data,n=this.option.data.length;if(this.isHorizontal())if(n>3){var a,o,r=this.getGap(),h=!1,m=Math.floor(.5/r);for(m=1>m?1:m,e=Math.floor(15/r);!h&&n>e;){e+=m,h=!0,a=Math.floor(r*e);for(var V=Math.floor((n-1)/e)*e;V>=0;V-=e){if(0!==this.option.axisLabel.rotate)o=t;else if(i[V].textStyle)o=l.getTextWidth(this._getReformedLabel(V),this.getFont(s.merge(i[V].textStyle,this.option.axisLabel.textStyle)));else{var U=this._getReformedLabel(V)+"",d=(U.match(/\w/g)||"").length,p=U.length-d;o=d*t*2/3+p*t}if(o>a){h=!1;break}}}}else e=1;else if(n>3){var r=this.getGap();for(e=Math.floor(11/r);t>r*e-6&&n>e;)e++}else e=1}else e="function"==typeof e?1:e-0+1;return e},_buildShape:function(){if(this._interval=this._getInterval(),this.option.show){this.option.splitArea.show&&this._buildSplitArea(),this.option.splitLine.show&&this._buildSplitLine(),this.option.axisLine.show&&this._buildAxisLine(),this.option.axisTick.show&&this._buildAxisTick(),this.option.axisLabel.show&&this._buildAxisLabel();for(var e=0,t=this.shapeList.length;t>e;e++)this.zr.addShape(this.shapeList[e])}},_buildAxisTick:function(){var e,t=this.option.data,i=this.option.data.length,n=this.option.axisTick,o=n.length,r=n.lineStyle.color,s=n.lineStyle.width,l="function"==typeof n.interval?n.interval:"auto"==n.interval&&"function"==typeof this.option.axisLabel.interval?this.option.axisLabel.interval:!1,h=l?1:"auto"==n.interval?this._interval:n.interval-0+1,m=n.onGap,V=m?this.getGap()/2:"undefined"==typeof m&&this.option.boundaryGap?this.getGap()/2:0,U=V>0?-h:0;if(this.isHorizontal())for(var d,p="bottom"==this.option.position?n.inside?this.grid.getYend()-o-1:this.grid.getYend()+1:n.inside?this.grid.getY()+1:this.grid.getY()-o-1,c=U;i>c;c+=h)(!l||l(c,t[c]))&&(d=this.subPixelOptimize(this.getCoordByIndex(c)+(c>=0?V:0),s),e={_axisShape:"axisTick",zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{xStart:d,yStart:p,xEnd:d,yEnd:p+o,strokeColor:r,lineWidth:s}},this.shapeList.push(new a(e)));else for(var u,y="left"==this.option.position?n.inside?this.grid.getX()+1:this.grid.getX()-o-1:n.inside?this.grid.getXend()-o-1:this.grid.getXend()+1,c=U;i>c;c+=h)(!l||l(c,t[c]))&&(u=this.subPixelOptimize(this.getCoordByIndex(c)-(c>=0?V:0),s),e={_axisShape:"axisTick",zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{xStart:y,yStart:u,xEnd:y+o,yEnd:u,strokeColor:r,lineWidth:s}},this.shapeList.push(new a(e)))},_buildAxisLabel:function(){var e,t,i=this.option.data,a=this.option.data.length,o=this.option.axisLabel,r=o.rotate,l=o.margin,h=o.clickable,m=o.textStyle,V="function"==typeof o.interval?o.interval:!1;if(this.isHorizontal()){var U,d;"bottom"==this.option.position?(U=this.grid.getYend()+l,d="top"):(U=this.grid.getY()-l,d="bottom");for(var p=0;a>p;p+=this._interval)V&&!V(p,i[p])||""===this._getReformedLabel(p)||(t=s.merge(i[p].textStyle||{},m),e={zlevel:this.getZlevelBase(),z:this.getZBase()+3,hoverable:!1,style:{x:this.getCoordByIndex(p),y:U,color:t.color,text:this._getReformedLabel(p),textFont:this.getFont(t),textAlign:t.align||"center",textBaseline:t.baseline||d}},r&&(e.style.textAlign=r>0?"bottom"==this.option.position?"right":"left":"bottom"==this.option.position?"left":"right",e.rotation=[r*Math.PI/180,e.style.x,e.style.y]),this.shapeList.push(new n(this._axisLabelClickable(h,e))))}else{var c,u;"left"==this.option.position?(c=this.grid.getX()-l,u="right"):(c=this.grid.getXend()+l,u="left");for(var p=0;a>p;p+=this._interval)V&&!V(p,i[p])||""===this._getReformedLabel(p)||(t=s.merge(i[p].textStyle||{},m),e={zlevel:this.getZlevelBase(),z:this.getZBase()+3,hoverable:!1,style:{x:c,y:this.getCoordByIndex(p),color:t.color,text:this._getReformedLabel(p),textFont:this.getFont(t),textAlign:t.align||u,textBaseline:t.baseline||0===p&&""!==this.option.name?"bottom":p==a-1&&""!==this.option.name?"top":"middle"}},r&&(e.rotation=[r*Math.PI/180,e.style.x,e.style.y]),this.shapeList.push(new n(this._axisLabelClickable(h,e))))}},_buildSplitLine:function(){var e,t=this.option.data,i=this.option.data.length,n=this.option.splitLine,o=n.lineStyle.type,r=n.lineStyle.width,s=n.lineStyle.color;s=s instanceof Array?s:[s];var l=s.length,h="function"==typeof this.option.axisLabel.interval?this.option.axisLabel.interval:!1,m=n.onGap,V=m?this.getGap()/2:"undefined"==typeof m&&this.option.boundaryGap?this.getGap()/2:0;if(i-=m||"undefined"==typeof m&&this.option.boundaryGap?1:0,this.isHorizontal())for(var U,d=this.grid.getY(),p=this.grid.getYend(),c=0;i>c;c+=this._interval)(!h||h(c,t[c]))&&(U=this.subPixelOptimize(this.getCoordByIndex(c)+V,r),e={zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{xStart:U,yStart:d,xEnd:U,yEnd:p,strokeColor:s[c/this._interval%l],lineType:o,lineWidth:r}},this.shapeList.push(new a(e)));else for(var u,y=this.grid.getX(),g=this.grid.getXend(),c=0;i>c;c+=this._interval)(!h||h(c,t[c]))&&(u=this.subPixelOptimize(this.getCoordByIndex(c)-V,r),e={zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{xStart:y,yStart:u,xEnd:g,yEnd:u,strokeColor:s[c/this._interval%l],lineType:o,lineWidth:r}},this.shapeList.push(new a(e)))},_buildSplitArea:function(){var e,t=this.option.data,i=this.option.splitArea,n=i.areaStyle.color;if(n instanceof Array){var a=n.length,r=this.option.data.length,s="function"==typeof this.option.axisLabel.interval?this.option.axisLabel.interval:!1,l=i.onGap,h=l?this.getGap()/2:"undefined"==typeof l&&this.option.boundaryGap?this.getGap()/2:0;if(this.isHorizontal())for(var m,V=this.grid.getY(),U=this.grid.getHeight(),d=this.grid.getX(),p=0;r>=p;p+=this._interval)s&&!s(p,t[p])&&r>p||(m=r>p?this.getCoordByIndex(p)+h:this.grid.getXend(),e={zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:d,y:V,width:m-d,height:U,color:n[p/this._interval%a]}},this.shapeList.push(new o(e)),d=m);else for(var c,u=this.grid.getX(),y=this.grid.getWidth(),g=this.grid.getYend(),p=0;r>=p;p+=this._interval)s&&!s(p,t[p])&&r>p||(c=r>p?this.getCoordByIndex(p)-h:this.grid.getY(),e={zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:u,y:c,width:y,height:g-c,color:n[p/this._interval%a]}},this.shapeList.push(new o(e)),g=c)}else e={zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:this.grid.getX(),y:this.grid.getY(),width:this.grid.getWidth(),height:this.grid.getHeight(),color:n}},this.shapeList.push(new o(e))},refresh:function(e){e&&(this.option=this.reformOption(e),this.option.axisLabel.textStyle=this.getTextStyle(this.option.axisLabel.textStyle)),this.clear(),this._buildShape()},getGap:function(){var e=this.option.data.length,t=this.isHorizontal()?this.grid.getWidth():this.grid.getHeight();return this.option.boundaryGap?t/e:t/(e>1?e-1:1)},getCoord:function(e){for(var t=this.option.data,i=t.length,n=this.getGap(),a=this.option.boundaryGap?n/2:0,o=0;i>o;o++){if(this.getDataFromOption(t[o])==e)return a=this.isHorizontal()?this.grid.getX()+a:this.grid.getYend()-a;a+=n}},getCoordByIndex:function(e){if(0>e)return this.isHorizontal()?this.grid.getX():this.grid.getYend();if(e>this.option.data.length-1)return this.isHorizontal()?this.grid.getXend():this.grid.getY();var t=this.getGap(),i=this.option.boundaryGap?t/2:0;return i+=e*t,i=this.isHorizontal()?this.grid.getX()+i:this.grid.getYend()-i},getNameByIndex:function(e){return this.getDataFromOption(this.option.data[e])},getIndexByName:function(e){for(var t=this.option.data,i=t.length,n=0;i>n;n++)if(this.getDataFromOption(t[n])==e)return n;return-1},getValueFromCoord:function(){return""},isMainAxis:function(e){return e%this._interval===0}},s.inherits(t,i),e("../component").define("categoryAxis",t),t}),i("echarts/component/valueAxis",["require","./base","zrender/shape/Text","zrender/shape/Line","zrender/shape/Rectangle","../config","../util/date","zrender/tool/util","../util/smartSteps","../util/accMath","../util/smartLogSteps","../component"],function(e){function t(e,t,n,a,o,r,s){if(!s||0===s.length)return void console.err("option.series.length == 0.");i.call(this,e,t,n,a,o),this.series=s,this.grid=this.component.grid;for(var l in r)this[l]=r[l];this.refresh(a,s)}var i=e("./base"),n=e("zrender/shape/Text"),a=e("zrender/shape/Line"),o=e("zrender/shape/Rectangle"),r=e("../config");r.valueAxis={zlevel:0,z:0,show:!0,position:"left",name:"",nameLocation:"end",nameTextStyle:{},boundaryGap:[0,0],axisLine:{show:!0,onZero:!0,lineStyle:{color:"#48b",width:2,type:"solid"}},axisTick:{show:!1,inside:!1,length:5,lineStyle:{color:"#333",width:1}},axisLabel:{show:!0,rotate:0,margin:8,textStyle:{color:"#333"}},splitLine:{show:!0,lineStyle:{color:["#ccc"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.3)","rgba(200,200,200,0.3)"]}}};var s=e("../util/date"),l=e("zrender/tool/util");return t.prototype={type:r.COMPONENT_TYPE_AXIS_VALUE,_buildShape:function(){if(this._hasData=!1,this._calculateValue(),this._hasData&&this.option.show){this.option.splitArea.show&&this._buildSplitArea(),this.option.splitLine.show&&this._buildSplitLine(),this.option.axisLine.show&&this._buildAxisLine(),this.option.axisTick.show&&this._buildAxisTick(),this.option.axisLabel.show&&this._buildAxisLabel();for(var e=0,t=this.shapeList.length;t>e;e++)this.zr.addShape(this.shapeList[e])}},_buildAxisTick:function(){var e,t=this._valueList,i=this._valueList.length,n=this.option.axisTick,o=n.length,r=n.lineStyle.color,s=n.lineStyle.width;if(this.isHorizontal())for(var l,h="bottom"===this.option.position?n.inside?this.grid.getYend()-o-1:this.grid.getYend()+1:n.inside?this.grid.getY()+1:this.grid.getY()-o-1,m=0;i>m;m++)l=this.subPixelOptimize(this.getCoord(t[m]),s),e={_axisShape:"axisTick",zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{xStart:l,yStart:h,xEnd:l,yEnd:h+o,strokeColor:r,lineWidth:s}},this.shapeList.push(new a(e));else for(var V,U="left"===this.option.position?n.inside?this.grid.getX()+1:this.grid.getX()-o-1:n.inside?this.grid.getXend()-o-1:this.grid.getXend()+1,m=0;i>m;m++)V=this.subPixelOptimize(this.getCoord(t[m]),s),e={_axisShape:"axisTick",zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{xStart:U,yStart:V,xEnd:U+o,yEnd:V,strokeColor:r,lineWidth:s}},this.shapeList.push(new a(e))},_buildAxisLabel:function(){var e,t=this._valueList,i=this._valueList.length,a=this.option.axisLabel.rotate,o=this.option.axisLabel.margin,r=this.option.axisLabel.clickable,s=this.option.axisLabel.textStyle;if(this.isHorizontal()){var l,h;"bottom"===this.option.position?(l=this.grid.getYend()+o,h="top"):(l=this.grid.getY()-o,h="bottom");for(var m=0;i>m;m++)e={zlevel:this.getZlevelBase(),z:this.getZBase()+3,hoverable:!1,style:{x:this.getCoord(t[m]),y:l,color:"function"==typeof s.color?s.color(t[m]):s.color,text:this._valueLabel[m],textFont:this.getFont(s),textAlign:s.align||"center",textBaseline:s.baseline||h}},a&&(e.style.textAlign=a>0?"bottom"===this.option.position?"right":"left":"bottom"===this.option.position?"left":"right",e.rotation=[a*Math.PI/180,e.style.x,e.style.y]),this.shapeList.push(new n(this._axisLabelClickable(r,e)))}else{var V,U;"left"===this.option.position?(V=this.grid.getX()-o,U="right"):(V=this.grid.getXend()+o,U="left");for(var m=0;i>m;m++)e={zlevel:this.getZlevelBase(),z:this.getZBase()+3,hoverable:!1,style:{x:V,y:this.getCoord(t[m]),color:"function"==typeof s.color?s.color(t[m]):s.color,text:this._valueLabel[m],textFont:this.getFont(s),textAlign:s.align||U,textBaseline:s.baseline||(0===m&&""!==this.option.name?"bottom":m===i-1&&""!==this.option.name?"top":"middle")}},a&&(e.rotation=[a*Math.PI/180,e.style.x,e.style.y]),this.shapeList.push(new n(this._axisLabelClickable(r,e)))}},_buildSplitLine:function(){var e,t=this._valueList,i=this._valueList.length,n=this.option.splitLine,o=n.lineStyle.type,r=n.lineStyle.width,s=n.lineStyle.color;s=s instanceof Array?s:[s];var l=s.length;if(this.isHorizontal())for(var h,m=this.grid.getY(),V=this.grid.getYend(),U=0;i>U;U++)h=this.subPixelOptimize(this.getCoord(t[U]),r),e={zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{xStart:h,yStart:m,xEnd:h,yEnd:V,strokeColor:s[U%l],lineType:o,lineWidth:r}},this.shapeList.push(new a(e));else for(var d,p=this.grid.getX(),c=this.grid.getXend(),U=0;i>U;U++)d=this.subPixelOptimize(this.getCoord(t[U]),r),e={zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{xStart:p,yStart:d,xEnd:c,yEnd:d,strokeColor:s[U%l],lineType:o,lineWidth:r}},this.shapeList.push(new a(e))},_buildSplitArea:function(){var e,t=this.option.splitArea.areaStyle.color;if(t instanceof Array){var i=t.length,n=this._valueList,a=this._valueList.length;if(this.isHorizontal())for(var r,s=this.grid.getY(),l=this.grid.getHeight(),h=this.grid.getX(),m=0;a>=m;m++)r=a>m?this.getCoord(n[m]):this.grid.getXend(),e={zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:h,y:s,width:r-h,height:l,color:t[m%i]}},this.shapeList.push(new o(e)),h=r;else for(var V,U=this.grid.getX(),d=this.grid.getWidth(),p=this.grid.getYend(),m=0;a>=m;m++)V=a>m?this.getCoord(n[m]):this.grid.getY(),e={zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:U,y:V,width:d,height:p-V,color:t[m%i]}},this.shapeList.push(new o(e)),p=V}else e={zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:this.grid.getX(),y:this.grid.getY(),width:this.grid.getWidth(),height:this.grid.getHeight(),color:t}},this.shapeList.push(new o(e))},_calculateValue:function(){if(isNaN(this.option.min-0)||isNaN(this.option.max-0)){for(var e,t,i={},n=this.component.legend,a=0,o=this.series.length;o>a;a++)!(this.series[a].type!=r.CHART_TYPE_LINE&&this.series[a].type!=r.CHART_TYPE_BAR&&this.series[a].type!=r.CHART_TYPE_SCATTER&&this.series[a].type!=r.CHART_TYPE_K&&this.series[a].type!=r.CHART_TYPE_EVENTRIVER||n&&!n.isSelected(this.series[a].name)||(e=this.series[a].xAxisIndex||0,t=this.series[a].yAxisIndex||0,this.option.xAxisIndex!=e&&this.option.yAxisIndex!=t||!this._calculSum(i,a)));var s;for(var a in i){s=i[a];for(var l=0,h=s.length;h>l;l++)if(!isNaN(s[l])){this._hasData=!0,this._min=s[l],this._max=s[l];break}if(this._hasData)break}for(var a in i){s=i[a];for(var l=0,h=s.length;h>l;l++)isNaN(s[l])||(this._min=Math.min(this._min,s[l]),this._max=Math.max(this._max,s[l]))}var m="log"!==this.option.type?this.option.boundaryGap:[0,0],V=Math.abs(this._max-this._min);this._min=isNaN(this.option.min-0)?this._min-Math.abs(V*m[0]):this.option.min-0,this._max=isNaN(this.option.max-0)?this._max+Math.abs(V*m[1]):this.option.max-0,this._min===this._max&&(0===this._max?this._max=1:this._max>0?this._min=this._max/this.option.splitNumber!=null?this.option.splitNumber:5:this._max=this._max/this.option.splitNumber!=null?this.option.splitNumber:5),"time"===this.option.type?this._reformTimeValue():"log"===this.option.type?this._reformLogValue():this._reformValue(this.option.scale)}else this._hasData=!0,this._min=this.option.min-0,this._max=this.option.max-0,"time"===this.option.type?this._reformTimeValue():"log"===this.option.type?this._reformLogValue():this._customerValue()},_calculSum:function(e,t){var i,n,a=this.series[t].name||"kener";if(this.series[t].stack){var o="__Magic_Key_Positive__"+this.series[t].stack,l="__Magic_Key_Negative__"+this.series[t].stack;e[o]=e[o]||[],e[l]=e[l]||[],e[a]=e[a]||[],n=this.series[t].data;for(var h=0,m=n.length;m>h;h++)i=this.getDataFromOption(n[h]),"-"!==i&&(i-=0,i>=0?null!=e[o][h]?e[o][h]+=i:e[o][h]=i:null!=e[l][h]?e[l][h]+=i:e[l][h]=i,this.option.scale&&e[a].push(i))}else if(e[a]=e[a]||[],this.series[t].type!=r.CHART_TYPE_EVENTRIVER){n=this.series[t].data;for(var h=0,m=n.length;m>h;h++)i=this.getDataFromOption(n[h]),this.series[t].type===r.CHART_TYPE_K?(e[a].push(i[0]),e[a].push(i[1]),e[a].push(i[2]),e[a].push(i[3])):i instanceof Array?(-1!=this.option.xAxisIndex&&e[a].push("time"!=this.option.type?i[0]:s.getNewDate(i[0])),-1!=this.option.yAxisIndex&&e[a].push("time"!=this.option.type?i[1]:s.getNewDate(i[1]))):e[a].push(i)}else{n=this.series[t].data;for(var h=0,m=n.length;m>h;h++)for(var V=n[h].evolution,U=0,d=V.length;d>U;U++)e[a].push(s.getNewDate(V[U].time))}},_reformValue:function(t){var i=e("../util/smartSteps"),n=this.option.splitNumber;!t&&this._min>=0&&this._max>=0&&(this._min=0),!t&&this._min<=0&&this._max<=0&&(this._max=0);var a=i(this._min,this._max,n);n=null!=n?n:a.secs,this._min=a.min,this._max=a.max,this._valueList=a.pnts,this._reformLabelData()},_reformTimeValue:function(){var e=null!=this.option.splitNumber?this.option.splitNumber:5,t=s.getAutoFormatter(this._min,this._max,e),i=t.formatter,n=t.gapValue;this._valueList=[s.getNewDate(this._min)];var a;switch(i){case"week":a=s.nextMonday(this._min);break;case"month":a=s.nextNthOnMonth(this._min,1);break;case"quarter":a=s.nextNthOnQuarterYear(this._min,1);break;case"half-year":a=s.nextNthOnHalfYear(this._min,1);break;case"year":a=s.nextNthOnYear(this._min,1);break;default:72e5>=n?a=(Math.floor(this._min/n)+1)*n:(a=s.getNewDate(this._min- -n),a.setHours(6*Math.round(a.getHours()/6)),a.setMinutes(0),a.setSeconds(0))}for(a-this._min=0&&(("month"==i||"quarter"==i||"half-year"==i||"year"==i)&&t.setDate(1),!(this._max-t=a;a++)this._valueList.push(t.accAdd(this._min,t.accMul(n,a)));this._reformLabelData()},_reformLogValue:function(){var t=this.option,i=e("../util/smartLogSteps")({dataMin:this._min,dataMax:this._max,logPositive:t.logPositive,logLabelBase:t.logLabelBase,splitNumber:t.splitNumber});this._min=i.dataMin,this._max=i.dataMax,this._valueList=i.tickList,this._dataMappingMethods=i.dataMappingMethods,this._reformLabelData(i.labelFormatter)},_reformLabelData:function(e){this._valueLabel=[];var t=this.option.axisLabel.formatter;if(t)for(var i=0,n=this._valueList.length;n>i;i++)"function"==typeof t?this._valueLabel.push(e?t.call(this.myChart,this._valueList[i],e):t.call(this.myChart,this._valueList[i])):"string"==typeof t&&this._valueLabel.push(e?s.format(t,this._valueList[i]):t.replace("{value}",this._valueList[i]));else for(var i=0,n=this._valueList.length;n>i;i++)this._valueLabel.push(e?e(this._valueList[i]):this.numAddCommas(this._valueList[i]))},getExtremum:function(){this._calculateValue();var e=this._dataMappingMethods;return{min:this._min,max:this._max,dataMappingMethods:e?l.merge({},e):null}},refresh:function(e,t){e&&(this.option=this.reformOption(e),this.option.axisLabel.textStyle=l.merge(this.option.axisLabel.textStyle||{},this.ecTheme.textStyle),this.series=t),this.zr&&(this.clear(),this._buildShape())},getCoord:function(e){this._dataMappingMethods&&(e=this._dataMappingMethods.value2Coord(e)),e=ethis._max?this._max:e;var t;return t=this.isHorizontal()?this.grid.getX()+(e-this._min)/(this._max-this._min)*this.grid.getWidth():this.grid.getYend()-(e-this._min)/(this._max-this._min)*this.grid.getHeight()},getCoordSize:function(e){return Math.abs(this.isHorizontal()?e/(this._max-this._min)*this.grid.getWidth():e/(this._max-this._min)*this.grid.getHeight())},getValueFromCoord:function(e){var t;return this.isHorizontal()?(e=ethis.grid.getXend()?this.grid.getXend():e,t=this._min+(e-this.grid.getX())/this.grid.getWidth()*(this._max-this._min)):(e=ethis.grid.getYend()?this.grid.getYend():e,t=this._max-(e-this.grid.getY())/this.grid.getHeight()*(this._max-this._min)),this._dataMappingMethods&&(t=this._dataMappingMethods.coord2Value(t)),t.toFixed(2)-0},isMaindAxis:function(e){for(var t=0,i=this._valueList.length;i>t;t++)if(this._valueList[t]===e)return!0;return!1}},l.inherits(t,i),e("../component").define("valueAxis",t),t}),i("echarts/util/date",[],function(){function e(e,t,i){i=i>1?i:2;for(var n,a,o,r,s=0,l=m.length;l>s;s++)if(n=m[s].value,a=Math.ceil(t/n)*n-Math.floor(e/n)*n,Math.round(a/n)<=1.2*i){o=m[s].formatter,r=m[s].value;break}return null==o&&(o="year",n=317088e5,a=Math.ceil(t/n)*n-Math.floor(e/n)*n,r=Math.round(a/(i-1)/n)*n),{formatter:o,gapValue:r}}function t(e){return 10>e?"0"+e:e}function i(e,i){("week"==e||"month"==e||"quarter"==e||"half-year"==e||"year"==e)&&(e="MM - dd\nyyyy");var n=h(i),a=n.getFullYear(),o=n.getMonth()+1,r=n.getDate(),s=n.getHours(),l=n.getMinutes(),m=n.getSeconds();return e=e.replace("MM",t(o)),e=e.toLowerCase(),e=e.replace("yyyy",a),e=e.replace("yy",a%100),e=e.replace("dd",t(r)),e=e.replace("d",r),e=e.replace("hh",t(s)),e=e.replace("h",s),e=e.replace("mm",t(l)),e=e.replace("m",l),e=e.replace("ss",t(m)),e=e.replace("s",m)}function n(e){return e=h(e),e.setDate(e.getDate()+8-e.getDay()),e}function a(e,t,i){return e=h(e),e.setMonth(Math.ceil((e.getMonth()+1)/i)*i),e.setDate(t),e}function o(e,t){return a(e,t,1)}function r(e,t){return a(e,t,3)}function s(e,t){return a(e,t,6)}function l(e,t){return a(e,t,12)}function h(e){return e instanceof Date?e:new Date("string"==typeof e?e.replace(/-/g,"/"):e)}var m=[{formatter:"hh : mm : ss",value:1e3},{formatter:"hh : mm : ss",value:5e3},{formatter:"hh : mm : ss",value:1e4},{formatter:"hh : mm : ss",value:15e3},{formatter:"hh : mm : ss",value:3e4},{formatter:"hh : mm\nMM - dd",value:6e4},{formatter:"hh : mm\nMM - dd",value:3e5},{formatter:"hh : mm\nMM - dd",value:6e5},{formatter:"hh : mm\nMM - dd",value:9e5},{formatter:"hh : mm\nMM - dd",value:18e5},{formatter:"hh : mm\nMM - dd",value:36e5},{formatter:"hh : mm\nMM - dd",value:72e5},{formatter:"hh : mm\nMM - dd",value:216e5},{formatter:"hh : mm\nMM - dd",value:432e5},{formatter:"MM - dd\nyyyy",value:864e5},{formatter:"week",value:6048e5},{formatter:"month",value:26784e5},{formatter:"quarter",value:8208e6},{formatter:"half-year",value:16416e6},{formatter:"year",value:32832e6}];return{getAutoFormatter:e,getNewDate:h,format:i,nextMonday:n,nextNthPerNmonth:a,nextNthOnMonth:o,nextNthOnQuarterYear:r,nextNthOnHalfYear:s,nextNthOnYear:l}}),i("echarts/util/smartSteps",[],function(){function e(e){return X.log(I(e))/X.LN10}function t(e){return X.pow(10,e)}function i(e){return e===w(e)}function n(e,t,n,a){b=a||{},f=b.steps||L,k=b.secs||W,n=v(+n||0)%99,e=+e||0,t=+t||0,x=_=0,"min"in b&&(e=+b.min||0,x=1),"max"in b&&(t=+b.max||0,_=1),e>t&&(t=[e,e=t][0]);var o=t-e;if(x&&_)return g(e,t,n);if((n||5)>o){if(i(e)&&i(t))return d(e,t,n);if(0===o)return p(e,t,n)}return h(e,t,n)}function a(e,i,n,a){a=a||0;var s=o((i-e)/n,-1),l=o(e,-1,1),h=o(i,-1),m=X.min(s.e,l.e,h.e);0===l.c?m=X.min(s.e,h.e):0===h.c&&(m=X.min(s.e,l.e)),r(s,{c:0,e:m}),r(l,s,1),r(h,s),a+=m,e=l.c,i=h.c;for(var V=(i-e)/n,U=t(a),d=0,p=[],c=n+1;c--;)p[c]=(e+V*c)*U;if(0>a){d=u(U),V=+(V*U).toFixed(d),e=+(e*U).toFixed(d),i=+(i*U).toFixed(d);for(var c=p.length;c--;)p[c]=p[c].toFixed(d),0===+p[c]&&(p[c]="0")}else e*=U,i*=U,V*=U;return k=0,f=0,b=0,{min:e,max:i,secs:n,step:V,fix:d,exp:a,pnts:p}}function o(n,a,o){a=v(a%10)||2,0>a&&(i(n)?a=(""+I(n)).replace(/0+$/,"").length||1:(n=n.toFixed(15).replace(/0+$/,""),a=n.replace(".","").replace(/^[-0]+/,"").length,n=+n));var r=w(e(n))-a+1,s=+(n*t(-r)).toFixed(15)||0;return s=o?w(s):K(s),!s&&(r=0),(""+I(s)).length>a&&(r+=1,s/=10),{c:s,e:r}}function r(e,i,n){var a=i.e-e.e;a&&(e.e+=a,e.c*=t(-a),e.c=n?w(e.c):K(e.c))}function s(e,t,i){e.et[n];)n++;if(!t[n])for(i/=10,e.e+=1,n=0;i>t[n];)n++;return e.c=t[n],e}function h(e,t,n){var s,h=n||+k.slice(-1),p=l((t-e)/h,f),u=o(t-e),g=o(e,-1,1),b=o(t,-1);if(r(u,p),r(g,p,1),r(b,p),n?s=V(g,b,h):h=m(g,b),i(e)&&i(t)&&e*t>=0){if(h>t-e)return d(e,t,h);h=U(e,t,n,g,b,h)}var L=c(e,t,g.c,b.c);return g.c=L[0],b.c=L[1],(x||_)&&y(e,t,g,b),a(g.c,b.c,h,b.e)}function m(e,i){for(var n,a,o,r,s=[],h=k.length;h--;)n=k[h],a=l((i.c-e.c)/n,f),a=a.c*t(a.e),o=w(e.c/a)*a,r=K(i.c/a)*a,s[h]={min:o,max:r,step:a,span:r-o};return s.sort(function(e,t){var i=e.span-t.span;return 0===i&&(i=e.step-t.step),i}),s=s[0],n=s.span/s.step,e.c=s.min,i.c=s.max,3>n?2*n:n}function V(e,i,n){for(var a,o,r=i.c,s=(i.c-e.c)/n-1;r>e.c;)s=l(s+1,f),s=s.c*t(s.e),a=s*n,o=K(i.c/s)*s,r=o-a;var h=e.c-r,m=o-i.c,V=h-m;return V>1.1*s&&(V=v(V/s/2)*s,r+=V,o+=V),e.c=r,i.c=o,s}function U(e,n,a,o,r,s){var l=r.c-o.c,h=l/s*t(r.e);if(!i(h)&&(h=w(h),l=h*s,n-e>l&&(h+=1,l=h*s,!a&&h*(s-1)>=n-e&&(s-=1,l=h*s)),l>=n-e)){var m=l-(n-e);o.c=v(e-m/2),r.c=v(n+m/2),o.e=0,r.e=0}return s}function d(e,t,i){if(i=i||5,x)t=e+i;else if(_)e=t-i;else{var n=i-(t-e),o=v(e-n/2),r=v(t+n/2),s=c(e,t,o,r);e=s[0],t=s[1]}return a(e,t,i)}function p(e,t,i){i=i||5;var n=X.min(I(t/i),i)/2.1;return x?t=e+n:_?e=t-n:(e-=n,t+=n),h(e,t,i)}function c(e,t,i,n){ +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)*Ct&&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.iconLibrary[h]){var V=t.x,U=t.y;e.moveTo(V,U+l),e.lineTo(V+5,U+l),e.moveTo(V+t.width-5,U+l),e.lineTo(V+t.width,U+l);var d=this;h(e,{x:n+4,y:a+4,width:r-8,height:s-8,n:l,image:m},function(){d.modSelf(),i()})}else e.moveTo(n,a+l),e.lineTo(n+r,a+l)}var n=e("./base"),a=e("zrender/shape/Polyline"),o=e("../util/shape/Icon"),r=e("../util/shape/HalfSmoothPolygon");e("../component/axis"),e("../component/grid"),e("../component/dataZoom");var s=e("../config");s.line={zlevel:0,z:2,clickable:!0,legendHoverLink:!0,xAxisIndex:0,yAxisIndex:0,dataFilter:"nearest",itemStyle:{normal:{label:{show:!1},lineStyle:{width:2,type:"solid",shadowColor:"rgba(0,0,0,0)",shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0}},emphasis:{label:{show:!1}}},symbolSize:2,showAllSymbol:!1};var l=e("../util/ecData"),h=e("zrender/tool/util"),m=e("zrender/tool/color");return t.prototype={type:s.CHART_TYPE_LINE,_buildShape:function(){this.finalPLMap={},this._buildPosition()},_buildHorizontal:function(e,t,i,n){for(var a,o,r,s,l,h,m,V,U,d=this.series,p=i[0][0],c=d[p],u=this.component.xAxis.getAxis(c.xAxisIndex||0),y={},g=0,b=t;b>g&&null!=u.getNameByIndex(g);g++){o=u.getCoordByIndex(g);for(var f=0,k=i.length;k>f;f++){a=this.component.yAxis.getAxis(d[i[f][0]].yAxisIndex||0),l=s=m=h=a.getCoord(0);for(var x=0,_=i[f].length;_>x;x++)p=i[f][x],c=d[p],V=c.data[g],U=this.getDataFromOption(V,"-"),y[p]=y[p]||[],n[p]=n[p]||{min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY,sum:0,counter:0,average:0},"-"!==U?(U>=0?(s-=x>0?a.getCoordSize(U):l-a.getCoord(U),r=s):0>U&&(h+=x>0?a.getCoordSize(U):a.getCoord(U)-m,r=h),y[p].push([o,r,g,u.getNameByIndex(g),o,l]),n[p].min>U&&(n[p].min=U,n[p].minY=r,n[p].minX=o),n[p].max0&&(this.finalPLMap[p]=this.finalPLMap[p]||[],this.finalPLMap[p].push(y[p]),y[p]=[])}s=this.component.grid.getY();for(var L,f=0,k=i.length;k>f;f++)for(var x=0,_=i[f].length;_>x;x++)p=i[f][x],c=d[p],V=c.data[g],U=this.getDataFromOption(V,"-"),"-"==U&&this.deepQuery([V,c,this.option],"calculable")&&(L=this.deepQuery([V,c],"symbolSize"),s+=2*L+5,r=s,this.shapeList.push(this._getCalculableItem(p,g,u.getNameByIndex(g),o,r,"horizontal")))}for(var W in y)y[W].length>0&&(this.finalPLMap[W]=this.finalPLMap[W]||[],this.finalPLMap[W].push(y[W]),y[W]=[]);this._calculMarkMapXY(n,i,"y"),this._buildBorkenLine(e,this.finalPLMap,u,"horizontal")},_buildVertical:function(e,t,i,n){for(var a,o,r,s,l,h,m,V,U,d=this.series,p=i[0][0],c=d[p],u=this.component.yAxis.getAxis(c.yAxisIndex||0),y={},g=0,b=t;b>g&&null!=u.getNameByIndex(g);g++){r=u.getCoordByIndex(g);for(var f=0,k=i.length;k>f;f++){a=this.component.xAxis.getAxis(d[i[f][0]].xAxisIndex||0),l=s=m=h=a.getCoord(0);for(var x=0,_=i[f].length;_>x;x++)p=i[f][x],c=d[p],V=c.data[g],U=this.getDataFromOption(V,"-"),y[p]=y[p]||[],n[p]=n[p]||{min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY,sum:0,counter:0,average:0},"-"!==U?(U>=0?(s+=x>0?a.getCoordSize(U):a.getCoord(U)-l,o=s):0>U&&(h-=x>0?a.getCoordSize(U):m-a.getCoord(U),o=h),y[p].push([o,r,g,u.getNameByIndex(g),l,r]),n[p].min>U&&(n[p].min=U,n[p].minX=o,n[p].minY=r),n[p].max0&&(this.finalPLMap[p]=this.finalPLMap[p]||[],this.finalPLMap[p].push(y[p]),y[p]=[])}s=this.component.grid.getXend();for(var L,f=0,k=i.length;k>f;f++)for(var x=0,_=i[f].length;_>x;x++)p=i[f][x],c=d[p],V=c.data[g],U=this.getDataFromOption(V,"-"),"-"==U&&this.deepQuery([V,c,this.option],"calculable")&&(L=this.deepQuery([V,c],"symbolSize"),s-=2*L+5,o=s,this.shapeList.push(this._getCalculableItem(p,g,u.getNameByIndex(g),o,r,"vertical")))}for(var W in y)y[W].length>0&&(this.finalPLMap[W]=this.finalPLMap[W]||[],this.finalPLMap[W].push(y[W]),y[W]=[]);this._calculMarkMapXY(n,i,"x"),this._buildBorkenLine(e,this.finalPLMap,u,"vertical")},_buildOther:function(e,t,i,n){for(var a,o=this.series,r={},s=0,l=i.length;l>s;s++)for(var h=0,m=i[s].length;m>h;h++){var V=i[s][h],U=o[V];a=this.component.xAxis.getAxis(U.xAxisIndex||0);var d=this.component.yAxis.getAxis(U.yAxisIndex||0),p=d.getCoord(0);r[V]=r[V]||[],n[V]=n[V]||{min0:Number.POSITIVE_INFINITY,min1:Number.POSITIVE_INFINITY,max0:Number.NEGATIVE_INFINITY,max1:Number.NEGATIVE_INFINITY,sum0:0,sum1:0,counter0:0,counter1:0,average0:0,average1:0};for(var c=0,u=U.data.length;u>c;c++){var y=U.data[c],g=this.getDataFromOption(y,"-");if(g instanceof Array){var b=a.getCoord(g[0]),f=d.getCoord(g[1]);r[V].push([b,f,c,g[0],b,p]),n[V].min0>g[0]&&(n[V].min0=g[0],n[V].minY0=f,n[V].minX0=b),n[V].max0g[1]&&(n[V].min1=g[1],n[V].minY1=f,n[V].minX1=b),n[V].max10&&(this.finalPLMap[k]=this.finalPLMap[k]||[],this.finalPLMap[k].push(r[k]),r[k]=[]);this._calculMarkMapXY(n,i,"xy"),this._buildBorkenLine(e,this.finalPLMap,a,"other")},_buildBorkenLine:function(e,t,i,n){for(var o,s="other"==n?"horizontal":n,V=this.series,U=e.length-1;U>=0;U--){var d=e[U],p=V[d],c=t[d];if(p.type===this.type&&null!=c)for(var u=this._getBbox(d,s),y=this._sIndex2ColorMap[d],g=this.query(p,"itemStyle.normal.lineStyle.width"),b=this.query(p,"itemStyle.normal.lineStyle.type"),f=this.query(p,"itemStyle.normal.lineStyle.color"),k=this.getItemStyleColor(this.query(p,"itemStyle.normal.color"),d,-1),x=null!=this.query(p,"itemStyle.normal.areaStyle"),_=this.query(p,"itemStyle.normal.areaStyle.color"),L=0,W=c.length;W>L;L++){var X=c[L],v="other"!=n&&this._isLarge(s,X);if(v)X=this._getLargePointList(s,X,p.dataFilter);else for(var w=0,K=X.length;K>w;w++)o=p.data[X[w][2]],(this.deepQuery([o,p,this.option],"calculable")||this.deepQuery([o,p],"showAllSymbol")||"categoryAxis"===i.type&&i.isMainAxis(X[w][2])&&"none"!=this.deepQuery([o,p],"symbol"))&&this.shapeList.push(this._getSymbol(d,X[w][2],X[w][3],X[w][0],X[w][1],s));var I=new a({zlevel:p.zlevel,z:p.z,style:{miterLimit:g,pointList:X,strokeColor:f||k||y,lineWidth:g,lineType:b,smooth:this._getSmooth(p.smooth),smoothConstraint:u,shadowColor:this.query(p,"itemStyle.normal.lineStyle.shadowColor"),shadowBlur:this.query(p,"itemStyle.normal.lineStyle.shadowBlur"),shadowOffsetX:this.query(p,"itemStyle.normal.lineStyle.shadowOffsetX"),shadowOffsetY:this.query(p,"itemStyle.normal.lineStyle.shadowOffsetY")},hoverable:!1,_main:!0,_seriesIndex:d,_orient:s});if(l.pack(I,V[d],d,0,L,V[d].name),this.shapeList.push(I),x){var J=new r({zlevel:p.zlevel,z:p.z,style:{miterLimit:g,pointList:h.clone(X).concat([[X[X.length-1][4],X[X.length-1][5]],[X[0][4],X[0][5]]]),brushType:"fill",smooth:this._getSmooth(p.smooth),smoothConstraint:u,color:_?_:m.alpha(y,.5)},highlightStyle:{brushType:"fill"},hoverable:!1,_main:!0,_seriesIndex:d,_orient:s});l.pack(J,V[d],d,0,L,V[d].name),this.shapeList.push(J)}}}},_getBbox:function(e,t){var i=this.component.grid.getBbox(),n=this.xMarkMap[e];return null!=n.minX0?[[Math.min(n.minX0,n.maxX0,n.minX1,n.maxX1),Math.min(n.minY0,n.maxY0,n.minY1,n.maxY1)],[Math.max(n.minX0,n.maxX0,n.minX1,n.maxX1),Math.max(n.minY0,n.maxY0,n.minY1,n.maxY1)]]:("horizontal"===t?(i[0][1]=Math.min(n.minY,n.maxY),i[1][1]=Math.max(n.minY,n.maxY)):(i[0][0]=Math.min(n.minX,n.maxX),i[1][0]=Math.max(n.minX,n.maxX)),i)},_isLarge:function(e,t){return t.length<2?!1:"horizontal"===e?Math.abs(t[0][0]-t[1][0])<.5:Math.abs(t[0][1]-t[1][1])<.5},_getLargePointList:function(e,t,i){var n;n="horizontal"===e?this.component.grid.getWidth():this.component.grid.getHeight();var a=t.length,o=[];if("function"!=typeof i)switch(i){case"min":i=function(e){return Math.max.apply(null,e)};break;case"max":i=function(e){return Math.min.apply(null,e)};break;case"average":i=function(e){for(var t=0,i=0;is;s++){var l=Math.floor(a/n*s),h=Math.min(Math.floor(a/n*(s+1)),a);if(!(l>=h)){for(var m=l;h>m;m++)r[m-l]="horizontal"===e?t[m][1]:t[m][0];r.length=h-l;for(var V=i(r),U=-1,d=1/0,m=l;h>m;m++){var p="horizontal"===e?t[m][1]:t[m][0],c=Math.abs(p-V);d>c&&(U=m,d=c)}var u=t[U].slice();"horizontal"===e?u[1]=V:u[0]=V,o.push(u)}}return o},_getSmooth:function(e){return e?.3:0},_getCalculableItem:function(e,t,i,n,a,o){var r=this.series,l=r[e].calculableHolderColor||this.ecTheme.calculableHolderColor||s.calculableHolderColor,h=this._getSymbol(e,t,i,n,a,o);return h.style.color=l,h.style.strokeColor=l,h.rotation=[0,0],h.hoverable=!1,h.draggable=!1,h.style.text=void 0,h},_getSymbol:function(e,t,i,n,a,o){var r=this.series,s=r[e],l=s.data[t],h=this.getSymbolShape(s,e,l,t,i,n,a,this._sIndex2ShapeMap[e],this._sIndex2ColorMap[e],"#fff","vertical"===o?"horizontal":"vertical");return h.zlevel=s.zlevel,h.z=s.z+1,this.deepQuery([l,s,this.option],"calculable")&&(this.setCalculable(h),h.draggable=!0),h},getMarkCoord:function(e,t){var i=this.series[e],n=this.xMarkMap[e],a=this.component.xAxis.getAxis(i.xAxisIndex),o=this.component.yAxis.getAxis(i.yAxisIndex);if(t.type&&("max"===t.type||"min"===t.type||"average"===t.type)){var r=null!=t.valueIndex?t.valueIndex:null!=n.maxX0?"1":"";return[n[t.type+"X"+r],n[t.type+"Y"+r],n[t.type+"Line"+r],n[t.type+r]]}return["string"!=typeof t.xAxis&&a.getCoordByIndex?a.getCoordByIndex(t.xAxis||0):a.getCoord(t.xAxis||0),"string"!=typeof t.yAxis&&o.getCoordByIndex?o.getCoordByIndex(t.yAxis||0):o.getCoord(t.yAxis||0)]},refresh:function(e){e&&(this.option=e,this.series=e.series),this.backupShapeList(),this._buildShape()},ontooltipHover:function(e,t){for(var i,n,a=e.seriesIndex,o=e.dataIndex,r=a.length;r--;)if(i=this.finalPLMap[a[r]])for(var s=0,l=i.length;l>s;s++){n=i[s];for(var h=0,m=n.length;m>h;h++)o===n[h][2]&&t.push(this._getSymbol(a[r],n[h][2],n[h][3],n[h][0],n[h][1],"horizontal"))}},addDataAnimation:function(e,t){function i(){c--,0===c&&t&&t()}function n(e){e.style.controlPointList=null}for(var a=this.series,o={},r=0,s=e.length;s>r;r++)o[e[r][0]]=e[r];for(var l,h,m,V,U,d,p,c=0,r=this.shapeList.length-1;r>=0;r--)if(U=this.shapeList[r]._seriesIndex,o[U]&&!o[U][3]){if(this.shapeList[r]._main&&this.shapeList[r].style.pointList.length>1){if(d=this.shapeList[r].style.pointList,h=Math.abs(d[0][0]-d[1][0]),V=Math.abs(d[0][1]-d[1][1]),p="horizontal"===this.shapeList[r]._orient,o[U][2]){if("half-smooth-polygon"===this.shapeList[r].type){var u=d.length;this.shapeList[r].style.pointList[u-3]=d[u-2],this.shapeList[r].style.pointList[u-3][p?0:1]=d[u-4][p?0:1],this.shapeList[r].style.pointList[u-2]=d[u-1]}this.shapeList[r].style.pointList.pop(),p?(l=h,m=0):(l=0,m=-V)}else{if(this.shapeList[r].style.pointList.shift(),"half-smooth-polygon"===this.shapeList[r].type){var y=this.shapeList[r].style.pointList.pop();p?y[0]=d[0][0]:y[1]=d[0][1],this.shapeList[r].style.pointList.push(y)}p?(l=-h,m=0):(l=0,m=V)}this.shapeList[r].style.controlPointList=null,this.zr.modShape(this.shapeList[r])}else{if(o[U][2]&&this.shapeList[r]._dataIndex===a[U].data.length-1){this.zr.delShape(this.shapeList[r].id);continue}if(!o[U][2]&&0===this.shapeList[r]._dataIndex){this.zr.delShape(this.shapeList[r].id);continue}}this.shapeList[r].position=[0,0],c++,this.zr.animate(this.shapeList[r].id,"").when(this.query(this.option,"animationDurationUpdate"),{position:[l,m]}).during(n).done(i).start()}c||t&&t()}},o.prototype.iconLibrary.legendLineIcon=i,h.inherits(t,n),e("../chart").define("line",t),t}),i("echarts/util/shape/HalfSmoothPolygon",["require","zrender/shape/Base","zrender/shape/util/smoothBezier","zrender/tool/util","zrender/shape/Polygon"],function(e){function t(e){i.call(this,e)}var i=e("zrender/shape/Base"),n=e("zrender/shape/util/smoothBezier"),a=e("zrender/tool/util");return t.prototype={type:"half-smooth-polygon",buildPath:function(t,i){var a=i.pointList;if(!(a.length<2))if(i.smooth){var o=n(a.slice(0,-2),i.smooth,!1,i.smoothConstraint);t.moveTo(a[0][0],a[0][1]);for(var r,s,l,h=a.length,m=0;h-3>m;m++)r=o[2*m],s=o[2*m+1],l=a[m+1],t.bezierCurveTo(r[0],r[1],s[0],s[1],l[0],l[1]);t.lineTo(a[h-2][0],a[h-2][1]),t.lineTo(a[h-1][0],a[h-1][1]),t.lineTo(a[0][0],a[0][1])}else e("zrender/shape/Polygon").prototype.buildPath(t,i)}},a.inherits(t,i),t}),i("echarts/chart/bar",["require","./base","zrender/shape/Rectangle","../component/axis","../component/grid","../component/dataZoom","../config","../util/ecData","zrender/tool/util","zrender/tool/color","../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("zrender/shape/Rectangle");e("../component/axis"),e("../component/grid"),e("../component/dataZoom");var a=e("../config");a.bar={zlevel:0,z:2,clickable:!0,legendHoverLink:!0,xAxisIndex:0,yAxisIndex:0,barMinHeight:0,barGap:"30%",barCategoryGap:"20%",itemStyle:{normal:{barBorderColor:"#fff",barBorderRadius:0,barBorderWidth:0,label:{show:!1}},emphasis:{barBorderColor:"#fff",barBorderRadius:0,barBorderWidth:0,label:{show:!1}}}};var o=e("../util/ecData"),r=e("zrender/tool/util"),s=e("zrender/tool/color");return t.prototype={type:a.CHART_TYPE_BAR,_buildShape:function(){this._buildPosition()},_buildNormal:function(e,t,i,o,r){for(var s,l,h,m,V,U,d,p,c,u,y,g,b=this.series,f=i[0][0],k=b[f],x="horizontal"==r,_=this.component.xAxis,L=this.component.yAxis,W=x?_.getAxis(k.xAxisIndex):L.getAxis(k.yAxisIndex),X=this._mapSize(W,i),v=X.gap,w=X.barGap,K=X.barWidthMap,I=X.barMaxWidthMap,J=X.barWidth,C=X.barMinHeightMap,S=X.interval,E=this.deepQuery([this.ecTheme,a],"island.r"),F=0,T=t;T>F&&null!=W.getNameByIndex(F);F++){x?m=W.getCoordByIndex(F)-v/2:V=W.getCoordByIndex(F)+v/2;for(var z=0,A=i.length;A>z;z++){var M=b[i[z][0]].yAxisIndex||0,O=b[i[z][0]].xAxisIndex||0;s=x?L.getAxis(M):_.getAxis(O),d=U=c=p=s.getCoord(0);for(var P=0,D=i[z].length;D>P;P++)f=i[z][P],k=b[f],y=k.data[F],g=this.getDataFromOption(y,"-"),o[f]=o[f]||{min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY,sum:0,counter:0,average:0},h=Math.min(I[f]||Number.MAX_VALUE,K[f]||J),"-"!==g&&(g>0?(l=P>0?s.getCoordSize(g):x?d-s.getCoord(g):s.getCoord(g)-d,1===D&&C[f]>l&&(l=C[f]),x?(U-=l,V=U):(m=U,U+=l)):0>g?(l=P>0?s.getCoordSize(g):x?s.getCoord(g)-c:c-s.getCoord(g),1===D&&C[f]>l&&(l=C[f]),x?(V=p,p+=l):(p-=l,m=p)):(l=0,x?(U-=l,V=U):(m=U,U+=l)),o[f][F]=x?m+h/2:V-h/2,o[f].min>g&&(o[f].min=g,x?(o[f].minY=V,o[f].minX=o[f][F]):(o[f].minX=m+l,o[f].minY=o[f][F])),o[f].maxP;P++)f=i[z][P],k=b[f],y=k.data[F],g=this.getDataFromOption(y,"-"),h=Math.min(I[f]||Number.MAX_VALUE,K[f]||J),"-"==g&&this.deepQuery([y,k,this.option],"calculable")&&(x?(U-=E,V=U):(m=U,U+=E),u=this._getBarItem(f,F,W.getNameByIndex(F),m,V-(x?0:h),x?h:E,x?E:h,x?"vertical":"horizontal"),u.hoverable=!1,u.draggable=!1,u.style.lineWidth=1,u.style.brushType="stroke",u.style.strokeColor=k.calculableHolderColor||this.ecTheme.calculableHolderColor||a.calculableHolderColor,this.shapeList.push(new n(u)));x?m+=h+w:V-=h+w}}this._calculMarkMapXY(o,i,x?"y":"x")},_buildHorizontal:function(e,t,i,n){return this._buildNormal(e,t,i,n,"horizontal")},_buildVertical:function(e,t,i,n){return this._buildNormal(e,t,i,n,"vertical")},_buildOther:function(e,t,i,a){for(var o=this.series,r=0,s=i.length;s>r;r++)for(var l=0,h=i[r].length;h>l;l++){var m=i[r][l],V=o[m],U=V.xAxisIndex||0,d=this.component.xAxis.getAxis(U),p=d.getCoord(0),c=V.yAxisIndex||0,u=this.component.yAxis.getAxis(c),y=u.getCoord(0);a[m]=a[m]||{min0:Number.POSITIVE_INFINITY,min1:Number.POSITIVE_INFINITY,max0:Number.NEGATIVE_INFINITY,max1:Number.NEGATIVE_INFINITY,sum0:0,sum1:0,counter0:0,counter1:0,average0:0,average1:0};for(var g=0,b=V.data.length;b>g;g++){var f=V.data[g],k=this.getDataFromOption(f,"-");if(k instanceof Array){var x,_,L=d.getCoord(k[0]),W=u.getCoord(k[1]),X=[f,V],v=this.deepQuery(X,"barWidth")||10,w=this.deepQuery(X,"barHeight");null!=w?(x="horizontal",k[0]>0?(v=L-p,L-=v):v=k[0]<0?p-L:0,_=this._getBarItem(m,g,k[0],L,W-w/2,v,w,x)):(x="vertical",k[1]>0?w=y-W:k[1]<0?(w=W-y,W-=w):w=0,_=this._getBarItem(m,g,k[0],L-v/2,W,v,w,x)),this.shapeList.push(new n(_)),L=d.getCoord(k[0]),W=u.getCoord(k[1]),a[m].min0>k[0]&&(a[m].min0=k[0],a[m].minY0=W,a[m].minX0=L),a[m].max0k[1]&&(a[m].min1=k[1],a[m].minY1=W,a[m].minX1=L),a[m].max1=a&&(d=Math.floor(t.length/n),a=1);else if(n="string"==typeof U&&U.match(/%$/)?(e.getGap()*(100-parseFloat(U))/100).toFixed(2)-0:e.getGap()-U,"string"==typeof V&&V.match(/%$/)?(V=parseFloat(V)/100,a=+((n-m)/((t.length-1)*V+t.length-h)).toFixed(2),V=a*V):(V=parseFloat(V),a=+((n-m-V*(t.length-1))/(t.length-h)).toFixed(2)),0>=a)return this._mapSize(e,t,!0)}else if(n=h>1?"string"==typeof U&&U.match(/%$/)?+(e.getGap()*(100-parseFloat(U))/100).toFixed(2):e.getGap()-U:m,a=0,V=h>1?+((n-m)/(h-1)).toFixed(2):0,0>V)return this._mapSize(e,t,!0);return this._recheckBarMaxWidth(t,r,s,l,n,a,V,d)},_findSpecialBarSzie:function(e,t){for(var i,n,a,o,r=this.series,s={},l={},h={},m=0,V=0,U=0,d=e.length;d>U;U++)for(var p={barWidth:!1,barMaxWidth:!1},c=0,u=e[U].length;u>c;c++){var y=e[U][c],g=r[y];if(!t){if(p.barWidth)s[y]=i;else if(i=this.query(g,"barWidth"),null!=i){s[y]=i,V+=i,m++,p.barWidth=!0;for(var b=0,f=c;f>b;b++){var k=e[U][b];s[k]=i}}if(p.barMaxWidth)l[y]=n;else if(n=this.query(g,"barMaxWidth"),null!=n){l[y]=n,p.barMaxWidth=!0;for(var b=0,f=c;f>b;b++){var k=e[U][b];l[k]=n}}}h[y]=this.query(g,"barMinHeight"),a=null!=a?a:this.query(g,"barGap"),o=null!=o?o:this.query(g,"barCategoryGap")}return{barWidthMap:s,barMaxWidthMap:l,barMinHeightMap:h,sBarWidth:i,sBarMaxWidth:n,sBarWidthCounter:m,sBarWidthTotal:V,barGap:a,barCategoryGap:o}},_recheckBarMaxWidth:function(e,t,i,n,a,o,r,s){for(var l=0,h=e.length;h>l;l++){var m=e[l][0];i[m]&&i[m]0&&b.height>g&&b.width>g?(b.y+=g/2,b.height-=g,b.x+=g/2,b.width-=g):b.brushType="fill",m.highlightStyle.textColor=m.highlightStyle.color,m=this.addLabel(m,U,d,i,h);for(var f=[b,m.highlightStyle],k=0,x=f.length;x>k;k++){var _=f[k].textPosition;if("insideLeft"===_||"insideRight"===_||"insideTop"===_||"insideBottom"===_){var L=5;switch(_){case"insideLeft":f[k].textX=b.x+L,f[k].textY=b.y+b.height/2,f[k].textAlign="left",f[k].textBaseline="middle";break;case"insideRight":f[k].textX=b.x+b.width-L,f[k].textY=b.y+b.height/2,f[k].textAlign="right",f[k].textBaseline="middle";break;case"insideTop":f[k].textX=b.x+b.width/2,f[k].textY=b.y+L/2,f[k].textAlign="center",f[k].textBaseline="top";break;case"insideBottom":f[k].textX=b.x+b.width/2,f[k].textY=b.y+b.height-L/2,f[k].textAlign="center",f[k].textBaseline="bottom"}f[k].textPosition="specific",f[k].textColor=f[k].textColor||"#fff"}}return this.deepQuery([d,U,this.option],"calculable")&&(this.setCalculable(m),m.draggable=!0),o.pack(m,V[e],e,V[e].data[t],t,i),m},getMarkCoord:function(e,t){var i,n,a=this.series[e],o=this.xMarkMap[e],r=this.component.xAxis.getAxis(a.xAxisIndex),s=this.component.yAxis.getAxis(a.yAxisIndex);if(!t.type||"max"!==t.type&&"min"!==t.type&&"average"!==t.type)if(o.isHorizontal){i="string"==typeof t.xAxis&&r.getIndexByName?r.getIndexByName(t.xAxis):t.xAxis||0;var l=o[i];l=null!=l?l:"string"!=typeof t.xAxis&&r.getCoordByIndex?r.getCoordByIndex(t.xAxis||0):r.getCoord(t.xAxis||0),n=[l,s.getCoord(t.yAxis||0)]}else{i="string"==typeof t.yAxis&&s.getIndexByName?s.getIndexByName(t.yAxis):t.yAxis||0;var h=o[i];h=null!=h?h:"string"!=typeof t.yAxis&&s.getCoordByIndex?s.getCoordByIndex(t.yAxis||0):s.getCoord(t.yAxis||0),n=[r.getCoord(t.xAxis||0),h]}else{var m=null!=t.valueIndex?t.valueIndex:null!=o.maxX0?"1":"";n=[o[t.type+"X"+m],o[t.type+"Y"+m],o[t.type+"Line"+m],o[t.type+m]]}return n},refresh:function(e){e&&(this.option=e,this.series=e.series),this.backupShapeList(),this._buildShape()},addDataAnimation:function(e,t){function i(){c--,0===c&&t&&t()}for(var n=this.series,a={},r=0,s=e.length;s>r;r++)a[e[r][0]]=e[r];for(var l,h,m,V,U,d,p,c=0,r=this.shapeList.length-1;r>=0;r--)if(d=o.get(this.shapeList[r],"seriesIndex"),a[d]&&!a[d][3]&&"rectangle"===this.shapeList[r].type){if(p=o.get(this.shapeList[r],"dataIndex"),U=n[d],a[d][2]&&p===U.data.length-1){this.zr.delShape(this.shapeList[r].id);continue}if(!a[d][2]&&0===p){this.zr.delShape(this.shapeList[r].id);continue}"horizontal"===this.shapeList[r]._orient?(V=this.component.yAxis.getAxis(U.yAxisIndex||0).getGap(),m=a[d][2]?-V:V,l=0):(h=this.component.xAxis.getAxis(U.xAxisIndex||0).getGap(),l=a[d][2]?h:-h,m=0),this.shapeList[r].position=[0,0],c++,this.zr.animate(this.shapeList[r].id,"").when(this.query(this.option,"animationDurationUpdate"),{position:[l,m]}).done(i).start()}c||t&&t()}},r.inherits(t,i),e("../chart").define("bar",t),t}),i("echarts/chart/scatter",["require","./base","../util/shape/Symbol","../component/axis","../component/grid","../component/dataZoom","../component/dataRange","../config","zrender/tool/util","zrender/tool/color","../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/Symbol");e("../component/axis"),e("../component/grid"),e("../component/dataZoom"),e("../component/dataRange");var a=e("../config");a.scatter={zlevel:0,z:2,clickable:!0,legendHoverLink:!0,xAxisIndex:0,yAxisIndex:0,symbolSize:4,large:!1,largeThreshold:2e3,itemStyle:{normal:{label:{show:!1}},emphasis:{label:{show:!1}}}};var o=e("zrender/tool/util"),r=e("zrender/tool/color");return t.prototype={type:a.CHART_TYPE_SCATTER,_buildShape:function(){var e=this.series;this._sIndex2ColorMap={},this._symbol=this.option.symbolList,this._sIndex2ShapeMap={},this.selectedMap={},this.xMarkMap={};for(var t,i,n,o,s=this.component.legend,l=[],h=0,m=e.length;m>h;h++)if(t=e[h],i=t.name,t.type===a.CHART_TYPE_SCATTER){if(e[h]=this.reformOption(e[h]),this.legendHoverLink=e[h].legendHoverLink||this.legendHoverLink,this._sIndex2ShapeMap[h]=this.query(t,"symbol")||this._symbol[h%this._symbol.length],s){if(this.selectedMap[i]=s.isSelected(i),this._sIndex2ColorMap[h]=r.alpha(s.getColor(i),.5),n=s.getItemShape(i)){var o=this._sIndex2ShapeMap[h];n.style.brushType=o.match("empty")?"stroke":"both",o=o.replace("empty","").toLowerCase(),o.match("rectangle")&&(n.style.x+=Math.round((n.style.width-n.style.height)/2),n.style.width=n.style.height),o.match("star")&&(n.style.n=o.replace("star","")-0||5,o="star"),o.match("image")&&(n.style.image=o.replace(new RegExp("^image:\\/\\/"),""),n.style.x+=Math.round((n.style.width-n.style.height)/2),n.style.width=n.style.height,o="image"),n.style.iconType=o,s.setItemShape(i,n)}}else this.selectedMap[i]=!0,this._sIndex2ColorMap[h]=r.alpha(this.zr.getColor(h),.5);this.selectedMap[i]&&l.push(h)}this._buildSeries(l),this.addShapeList()},_buildSeries:function(e){if(0!==e.length){for(var t,i,n,a,o,r,s,l,h=this.series,m={},V=0,U=e.length;U>V;V++)if(t=e[V],i=h[t],0!==i.data.length){o=this.component.xAxis.getAxis(i.xAxisIndex||0),r=this.component.yAxis.getAxis(i.yAxisIndex||0),m[t]=[];for(var d=0,p=i.data.length;p>d;d++)n=i.data[d],a=this.getDataFromOption(n,"-"),"-"===a||a.length<2||(s=o.getCoord(a[0]),l=r.getCoord(a[1]),m[t].push([s,l,d,n.name||""]));this.xMarkMap[t]=this._markMap(o,r,i.data,m[t]),this.buildMark(t)}this._buildPointList(m)}},_markMap:function(e,t,i,n){for(var a,o={min0:Number.POSITIVE_INFINITY,max0:Number.NEGATIVE_INFINITY,sum0:0,counter0:0,average0:0,min1:Number.POSITIVE_INFINITY,max1:Number.NEGATIVE_INFINITY,sum1:0,counter1:0,average1:0},r=0,s=n.length;s>r;r++)a=i[n[r][2]].value||i[n[r][2]],o.min0>a[0]&&(o.min0=a[0],o.minY0=n[r][1],o.minX0=n[r][0]),o.max0a[1]&&(o.min1=a[1],o.minY1=n[r][1],o.minX1=n[r][0]),o.max1t.largeThreshold)this.shapeList.push(this._getLargeSymbol(t,i,this.getItemStyleColor(this.query(t,"itemStyle.normal.color"),r,-1)||this._sIndex2ColorMap[r]));else for(var s=0,l=i.length;l>s;s++)n=i[s],a=this._getSymbol(r,n[2],n[3],n[0],n[1]),a&&this.shapeList.push(a)},_getSymbol:function(e,t,i,n,a){var o,r=this.series,s=r[e],l=s.data[t],h=this.component.dataRange;if(h){if(o=isNaN(l[2])?this._sIndex2ColorMap[e]:h.getColor(l[2]),!o)return null}else o=this._sIndex2ColorMap[e];var m=this.getSymbolShape(s,e,l,t,i,n,a,this._sIndex2ShapeMap[e],o,"rgba(0,0,0,0)","vertical");return m.zlevel=s.zlevel,m.z=s.z,m._main=!0,m},_getLargeSymbol:function(e,t,i){return new n({zlevel:e.zlevel,z:e.z,_main:!0,hoverable:!1,style:{pointList:t,color:i,strokeColor:i},highlightStyle:{pointList:[]}})},getMarkCoord:function(e,t){var i,n=this.series[e],a=this.xMarkMap[e],o=this.component.xAxis.getAxis(n.xAxisIndex),r=this.component.yAxis.getAxis(n.yAxisIndex);if(!t.type||"max"!==t.type&&"min"!==t.type&&"average"!==t.type)i=["string"!=typeof t.xAxis&&o.getCoordByIndex?o.getCoordByIndex(t.xAxis||0):o.getCoord(t.xAxis||0),"string"!=typeof t.yAxis&&r.getCoordByIndex?r.getCoordByIndex(t.yAxis||0):r.getCoord(t.yAxis||0)];else{var s=null!=t.valueIndex?t.valueIndex:1;i=[a[t.type+"X"+s],a[t.type+"Y"+s],a[t.type+"Line"+s],a[t.type+s]]}return i},refresh:function(e){e&&(this.option=e,this.series=e.series),this.backupShapeList(),this._buildShape()},ondataRange:function(e,t){this.component.dataRange&&(this.refresh(),t.needRefresh=!0)}},o.inherits(t,i),e("../chart").define("scatter",t),t}),i("echarts/component/dataRange",["require","./base","zrender/shape/Text","zrender/shape/Rectangle","../util/shape/HandlePolygon","../config","zrender/tool/util","zrender/tool/event","zrender/tool/area","zrender/tool/color","../component"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o);var s=this;s._ondrift=function(e,t){return s.__ondrift(this,e,t)},s._ondragend=function(){return s.__ondragend()},s._dataRangeSelected=function(e){return s.__dataRangeSelected(e)},s._dispatchHoverLink=function(e){return s.__dispatchHoverLink(e)},s._onhoverlink=function(e){return s.__onhoverlink(e); + +},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(new a(t)),this._calculableLocation=t.style,this.dataRangeOption.calculable&&(this._buildFiller(),this._bulidMask(),this._bulidHandle()),this._buildIndicator(),!d&&this.dataRangeOption.text[1]&&(i=this._getTextShape(r,s,this.dataRangeOption.text[1]),this.shapeList.push(new n(i)))},_buildIndicator:function(){var e,t,i=this._calculableLocation.x,n=this._calculableLocation.y,a=this._calculableLocation.width,r=this._calculableLocation.height,s=5;"horizontal"==this.dataRangeOption.orient?"bottom"!=this.dataRangeOption.y?(e=[[i,n+r],[i-s,n+r+s],[i+s,n+r+s]],t="bottom"):(e=[[i,n],[i-s,n-s],[i+s,n-s]],t="top"):"right"!=this.dataRangeOption.x?(e=[[i+a,n],[i+a+s,n-s],[i+a+s,n+s]],t="right"):(e=[[i,n],[i-s,n-s],[i-s,n+s]],t="left"),this._indicatorShape={style:{pointList:e,color:"#fff",__rect:{x:Math.min(e[0][0],e[1][0]),y:Math.min(e[0][1],e[1][1]),width:s*("horizontal"==this.dataRangeOption.orient?2:1),height:s*("horizontal"==this.dataRangeOption.orient?1:2)}},highlightStyle:{brushType:"fill",textPosition:t,textColor:this.dataRangeOption.textStyle.color},hoverable:!1},this._indicatorShape=new o(this._indicatorShape)},_buildFiller:function(){this._fillerShape={zlevel:this.getZlevelBase(),z:this.getZBase()+1,style:{x:this._calculableLocation.x,y:this._calculableLocation.y,width:this._calculableLocation.width,height:this._calculableLocation.height,color:"rgba(255,255,255,0)"},highlightStyle:{strokeColor:"rgba(255,255,255,0.5)",lineWidth:1},draggable:!0,ondrift:this._ondrift,ondragend:this._ondragend,onmousemove:this._dispatchHoverLink,_type:"filler"},this._fillerShape=new a(this._fillerShape),this.shapeList.push(this._fillerShape)},_bulidHandle:function(){var e,t,i,n,a,r,s,l,m=this._calculableLocation.x,V=this._calculableLocation.y,U=this._calculableLocation.width,d=this._calculableLocation.height,p=this.getFont(this.dataRangeOption.textStyle),c=h.getTextHeight("国",p),u=Math.max(h.getTextWidth(this._textFormat(this.dataRangeOption.max),p),h.getTextWidth(this._textFormat(this.dataRangeOption.min),p))+2;"horizontal"==this.dataRangeOption.orient?"bottom"!=this.dataRangeOption.y?(e=[[m,V],[m,V+d+c],[m-c,V+d+c],[m-1,V+d],[m-1,V]],t=m-u/2-c,i=V+d+c/2+2,n={x:m-u-c,y:V+d,width:u+c,height:c},a=[[m+U,V],[m+U,V+d+c],[m+U+c,V+d+c],[m+U+1,V+d],[m+U+1,V]],r=m+U+u/2+c,s=i,l={x:m+U,y:V+d,width:u+c,height:c}):(e=[[m,V+d],[m,V-c],[m-c,V-c],[m-1,V],[m-1,V+d]],t=m-u/2-c,i=V-c/2-2,n={x:m-u-c,y:V-c,width:u+c,height:c},a=[[m+U,V+d],[m+U,V-c],[m+U+c,V-c],[m+U+1,V],[m+U+1,V+d]],r=m+U+u/2+c,s=i,l={x:m+U,y:V-c,width:u+c,height:c}):(u+=c,"right"!=this.dataRangeOption.x?(e=[[m,V],[m+U+c,V],[m+U+c,V-c],[m+U,V-1],[m,V-1]],t=m+U+u/2+c/2,i=V-c/2,n={x:m+U,y:V-c,width:u+c,height:c},a=[[m,V+d],[m+U+c,V+d],[m+U+c,V+c+d],[m+U,V+1+d],[m,V+d+1]],r=t,s=V+d+c/2,l={x:m+U,y:V+d,width:u+c,height:c}):(e=[[m+U,V],[m-c,V],[m-c,V-c],[m,V-1],[m+U,V-1]],t=m-u/2-c/2,i=V-c/2,n={x:m-u-c,y:V-c,width:u+c,height:c},a=[[m+U,V+d],[m-c,V+d],[m-c,V+c+d],[m,V+1+d],[m+U,V+d+1]],r=t,s=V+d+c/2,l={x:m-u-c,y:V+d,width:u+c,height:c})),this._startShape={style:{pointList:e,text:this._textFormat(this.dataRangeOption.max),textX:t,textY:i,textFont:p,color:this.getColor(this.dataRangeOption.max),rect:n,x:e[0][0],y:e[0][1],_x:e[0][0],_y:e[0][1]}},this._startShape.highlightStyle={strokeColor:this._startShape.style.color,lineWidth:1},this._endShape={style:{pointList:a,text:this._textFormat(this.dataRangeOption.min),textX:r,textY:s,textFont:p,color:this.getColor(this.dataRangeOption.min),rect:l,x:a[0][0],y:a[0][1],_x:a[0][0],_y:a[0][1]}},this._endShape.highlightStyle={strokeColor:this._endShape.style.color,lineWidth:1},this._startShape.zlevel=this._endShape.zlevel=this.getZlevelBase(),this._startShape.z=this._endShape.z=this.getZBase()+1,this._startShape.draggable=this._endShape.draggable=!0,this._startShape.ondrift=this._endShape.ondrift=this._ondrift,this._startShape.ondragend=this._endShape.ondragend=this._ondragend,this._startShape.style.textColor=this._endShape.style.textColor=this.dataRangeOption.textStyle.color,this._startShape.style.textAlign=this._endShape.style.textAlign="center",this._startShape.style.textPosition=this._endShape.style.textPosition="specific",this._startShape.style.textBaseline=this._endShape.style.textBaseline="middle",this._startShape.style.width=this._endShape.style.width=0,this._startShape.style.height=this._endShape.style.height=0,this._startShape.style.textPosition=this._endShape.style.textPosition="specific",this._startShape=new o(this._startShape),this._endShape=new o(this._endShape),this.shapeList.push(this._startShape),this.shapeList.push(this._endShape)},_bulidMask:function(){var e=this._calculableLocation.x,t=this._calculableLocation.y,i=this._calculableLocation.width,n=this._calculableLocation.height;this._startMask={zlevel:this.getZlevelBase(),z:this.getZBase()+1,style:{x:e,y:t,width:"horizontal"==this.dataRangeOption.orient?0:i,height:"horizontal"==this.dataRangeOption.orient?n:0,color:"#ccc"},hoverable:!1},this._endMask={zlevel:this.getZlevelBase(),z:this.getZBase()+1,style:{x:"horizontal"==this.dataRangeOption.orient?e+i:e,y:"horizontal"==this.dataRangeOption.orient?t:t+n,width:"horizontal"==this.dataRangeOption.orient?0:i,height:"horizontal"==this.dataRangeOption.orient?n:0,color:"#ccc"},hoverable:!1},this._startMask=new a(this._startMask),this._endMask=new a(this._endMask),this.shapeList.push(this._startMask),this.shapeList.push(this._endMask)},_buildBackground:function(){var e=this.reformCssArray(this.dataRangeOption.padding);this.shapeList.push(new a({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.dataRangeOption.borderWidth?"fill":"both",color:this.dataRangeOption.backgroundColor,strokeColor:this.dataRangeOption.borderColor,lineWidth:this.dataRangeOption.borderWidth}}))},_getItemGroupLocation:function(){var e=this._valueTextList,t=e.length,i=this.dataRangeOption.itemGap,n=this.dataRangeOption.itemWidth,a=this.dataRangeOption.itemHeight,o=0,r=0,s=this.getFont(this.dataRangeOption.textStyle),l=h.getTextHeight("国",s),m=10;if("horizontal"==this.dataRangeOption.orient){if(this.dataRangeOption.text||this._isContinuity())o=(this._isContinuity()?n*m+i:t*(n+i))+(this.dataRangeOption.text&&"undefined"!=typeof this.dataRangeOption.text[0]?h.getTextWidth(this.dataRangeOption.text[0],s)+this._textGap:0)+(this.dataRangeOption.text&&"undefined"!=typeof this.dataRangeOption.text[1]?h.getTextWidth(this.dataRangeOption.text[1],s)+this._textGap:0);else{n+=5;for(var V=0;t>V;V++)o+=n+h.getTextWidth(e[V],s)+i}o-=i,r=Math.max(l,a)}else{var U;if(this.dataRangeOption.text||this._isContinuity())r=(this._isContinuity()?a*m+i:t*(a+i))+(this.dataRangeOption.text&&"undefined"!=typeof this.dataRangeOption.text[0]?this._textGap+l:0)+(this.dataRangeOption.text&&"undefined"!=typeof this.dataRangeOption.text[1]?this._textGap+l:0),U=Math.max(h.getTextWidth(this.dataRangeOption.text&&this.dataRangeOption.text[0]||"",s),h.getTextWidth(this.dataRangeOption.text&&this.dataRangeOption.text[1]||"",s)),o=Math.max(n,U);else{r=(a+i)*t,n+=5,U=0;for(var V=0;t>V;V++)U=Math.max(U,h.getTextWidth(e[V],s));o=n+U}r-=i}var d,p=this.reformCssArray(this.dataRangeOption.padding),c=this.zr.getWidth();switch(this.dataRangeOption.x){case"center":d=Math.floor((c-o)/2);break;case"left":d=p[3]+this.dataRangeOption.borderWidth;break;case"right":d=c-o-p[1]-this.dataRangeOption.borderWidth;break;default:d=this.parsePercent(this.dataRangeOption.x,c),d=isNaN(d)?0:d}var u,y=this.zr.getHeight();switch(this.dataRangeOption.y){case"top":u=p[0]+this.dataRangeOption.borderWidth;break;case"bottom":u=y-r-p[2]-this.dataRangeOption.borderWidth;break;case"center":u=Math.floor((y-r)/2);break;default:u=this.parsePercent(this.dataRangeOption.y,y),u=isNaN(u)?0:u}if(this.dataRangeOption.calculable){var g=Math.max(h.getTextWidth(this.dataRangeOption.max,s),h.getTextWidth(this.dataRangeOption.min,s))+l;"horizontal"==this.dataRangeOption.orient?(g>d&&(d=g),d+o+g>c&&(d-=g)):(l>u&&(u=l),u+r+l>y&&(u-=l))}return{x:d,y:u,width:o,height:r}},_getTextShape:function(e,t,i){return{zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:"horizontal"==this.dataRangeOption.orient?e:this._itemGroupLocation.x+this._itemGroupLocation.width/2,y:"horizontal"==this.dataRangeOption.orient?this._itemGroupLocation.y+this._itemGroupLocation.height/2:t,color:this.dataRangeOption.textStyle.color,text:i,textFont:this.getFont(this.dataRangeOption.textStyle),textBaseline:"horizontal"==this.dataRangeOption.orient?"middle":"top",textAlign:"horizontal"==this.dataRangeOption.orient?"left":"center"},hoverable:!1}},_getItemShape:function(e,t,i,n,a){return{zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:e,y:t+1,width:i,height:n-2,color:a},highlightStyle:{strokeColor:a,lineWidth:1}}},__ondrift:function(e,t,i){var n=this._calculableLocation.x,a=this._calculableLocation.y,o=this._calculableLocation.width,r=this._calculableLocation.height;return"horizontal"==this.dataRangeOption.orient?e.style.x+t<=n?e.style.x=n:e.style.x+t+e.style.width>=n+o?e.style.x=n+o-e.style.width:e.style.x+=t:e.style.y+i<=a?e.style.y=a:e.style.y+i+e.style.height>=a+r?e.style.y=a+r-e.style.height:e.style.y+=i,"filler"==e._type?this._syncHandleShape():this._syncFillerShape(e),this.dataRangeOption.realtime&&this._dispatchDataRange(),!0},__ondragend:function(){this.isDragend=!0},ondragend:function(e,t){this.isDragend&&e.target&&(t.dragOut=!0,t.dragIn=!0,this.dataRangeOption.realtime||this._dispatchDataRange(),t.needRefresh=!1,this.isDragend=!1)},_syncShapeFromRange:function(){var e=this.dataRangeOption.range||{},t=e.start,i=e.end;if(t>i&&(t=[i,i=t][0]),this._range.end=null!=t?t:null!=this._range.end?this._range.end:0,this._range.start=null!=i?i:null!=this._range.start?this._range.start:100,100!=this._range.start||0!==this._range.end){if("horizontal"==this.dataRangeOption.orient){var n=this._fillerShape.style.width;this._fillerShape.style.x+=n*(100-this._range.start)/100,this._fillerShape.style.width=n*(this._range.start-this._range.end)/100}else{var a=this._fillerShape.style.height;this._fillerShape.style.y+=a*(100-this._range.start)/100,this._fillerShape.style.height=a*(this._range.start-this._range.end)/100}this.zr.modShape(this._fillerShape.id),this._syncHandleShape()}},_syncHandleShape:function(){var e=this._calculableLocation.x,t=this._calculableLocation.y,i=this._calculableLocation.width,n=this._calculableLocation.height;"horizontal"==this.dataRangeOption.orient?(this._startShape.style.x=this._fillerShape.style.x,this._startMask.style.width=this._startShape.style.x-e,this._endShape.style.x=this._fillerShape.style.x+this._fillerShape.style.width,this._endMask.style.x=this._endShape.style.x,this._endMask.style.width=e+i-this._endShape.style.x,this._range.start=Math.ceil(100-(this._startShape.style.x-e)/i*100),this._range.end=Math.floor(100-(this._endShape.style.x-e)/i*100)):(this._startShape.style.y=this._fillerShape.style.y,this._startMask.style.height=this._startShape.style.y-t,this._endShape.style.y=this._fillerShape.style.y+this._fillerShape.style.height,this._endMask.style.y=this._endShape.style.y,this._endMask.style.height=t+n-this._endShape.style.y,this._range.start=Math.ceil(100-(this._startShape.style.y-t)/n*100),this._range.end=Math.floor(100-(this._endShape.style.y-t)/n*100)),this._syncShape()},_syncFillerShape:function(e){var t,i,n=this._calculableLocation.x,a=this._calculableLocation.y,o=this._calculableLocation.width,r=this._calculableLocation.height;"horizontal"==this.dataRangeOption.orient?(t=this._startShape.style.x,i=this._endShape.style.x,e.id==this._startShape.id&&t>=i?(i=t,this._endShape.style.x=t):e.id==this._endShape.id&&t>=i&&(t=i,this._startShape.style.x=t),this._fillerShape.style.x=t,this._fillerShape.style.width=i-t,this._startMask.style.width=t-n,this._endMask.style.x=i,this._endMask.style.width=n+o-i,this._range.start=Math.ceil(100-(t-n)/o*100),this._range.end=Math.floor(100-(i-n)/o*100)):(t=this._startShape.style.y,i=this._endShape.style.y,e.id==this._startShape.id&&t>=i?(i=t,this._endShape.style.y=t):e.id==this._endShape.id&&t>=i&&(t=i,this._startShape.style.y=t),this._fillerShape.style.y=t,this._fillerShape.style.height=i-t,this._startMask.style.height=t-a,this._endMask.style.y=i,this._endMask.style.height=a+r-i,this._range.start=Math.ceil(100-(t-a)/r*100),this._range.end=Math.floor(100-(i-a)/r*100)),this._syncShape()},_syncShape:function(){this._startShape.position=[this._startShape.style.x-this._startShape.style._x,this._startShape.style.y-this._startShape.style._y],this._startShape.style.text=this._textFormat(this._gap*this._range.start+this.dataRangeOption.min),this._startShape.style.color=this._startShape.highlightStyle.strokeColor=this.getColor(this._gap*this._range.start+this.dataRangeOption.min),this._endShape.position=[this._endShape.style.x-this._endShape.style._x,this._endShape.style.y-this._endShape.style._y],this._endShape.style.text=this._textFormat(this._gap*this._range.end+this.dataRangeOption.min),this._endShape.style.color=this._endShape.highlightStyle.strokeColor=this.getColor(this._gap*this._range.end+this.dataRangeOption.min),this.zr.modShape(this._startShape.id),this.zr.modShape(this._endShape.id),this.zr.modShape(this._startMask.id),this.zr.modShape(this._endMask.id),this.zr.modShape(this._fillerShape.id),this.zr.refreshNextFrame()},_dispatchDataRange:function(){this.messageCenter.dispatch(r.EVENT.DATA_RANGE,null,{range:{start:this._range.end,end:this._range.start}},this.myChart)},__dataRangeSelected:function(e){if("single"===this.dataRangeOption.selectedMode)for(var t in this._selectedMap)this._selectedMap[t]=!1;var i=e.target._idx;this._selectedMap[i]=!this._selectedMap[i];var n,a;this._useCustomizedSplit()?(n=this._splitList[i].max,a=this._splitList[i].min):(n=(this._colorList.length-i)*this._gap+this.dataRangeOption.min,a=n-this._gap),this.messageCenter.dispatch(r.EVENT.DATA_RANGE_SELECTED,e.event,{selected:this._selectedMap,target:i,valueMax:n,valueMin:a},this.myChart),this.messageCenter.dispatch(r.EVENT.REFRESH,null,null,this.myChart)},__dispatchHoverLink:function(e){var t,i;if(this.dataRangeOption.calculable){var n,a=this.dataRangeOption.max-this.dataRangeOption.min;n="horizontal"==this.dataRangeOption.orient?(1-(l.getX(e.event)-this._calculableLocation.x)/this._calculableLocation.width)*a:(1-(l.getY(e.event)-this._calculableLocation.y)/this._calculableLocation.height)*a,t=n-.05*a,i=n+.05*a}else if(this._useCustomizedSplit()){var o=e.target._idx;i=this._splitList[o].max,t=this._splitList[o].min}else{var o=e.target._idx;i=(this._colorList.length-o)*this._gap+this.dataRangeOption.min,t=i-this._gap}this.messageCenter.dispatch(r.EVENT.DATA_RANGE_HOVERLINK,e.event,{valueMin:t,valueMax:i},this.myChart)},__onhoverlink:function(e){if(this.dataRangeOption.show&&this.dataRangeOption.hoverLink&&this._indicatorShape&&e&&null!=e.seriesIndex&&null!=e.dataIndex){var t=e.value;if(""===t||isNaN(t))return;tthis.dataRangeOption.max&&(t=this.dataRangeOption.max),this._indicatorShape.position="horizontal"==this.dataRangeOption.orient?[(this.dataRangeOption.max-t)/(this.dataRangeOption.max-this.dataRangeOption.min)*this._calculableLocation.width,0]:[0,(this.dataRangeOption.max-t)/(this.dataRangeOption.max-this.dataRangeOption.min)*this._calculableLocation.height],this._indicatorShape.style.text=this._textFormat(e.value),this._indicatorShape.style.color=this.getColor(t),this.zr.addHoverShape(this._indicatorShape)}},_textFormat:function(e,t){var i=this.dataRangeOption;if(e!==-Number.MAX_VALUE&&(e=(+e).toFixed(i.precision)),null!=t&&t!==Number.MAX_VALUE&&(t=(+t).toFixed(i.precision)),i.formatter){if("string"==typeof i.formatter)return i.formatter.replace("{value}",e===-Number.MAX_VALUE?"min":e).replace("{value2}",t===Number.MAX_VALUE?"max":t);if("function"==typeof i.formatter)return i.formatter.call(this.myChart,e,t)}return null==t?e:e===-Number.MAX_VALUE?"< "+t:t===Number.MAX_VALUE?"> "+e:e+" - "+t},_isContinuity:function(){var e=this.dataRangeOption;return!(e.splitList?e.splitList.length>0:e.splitNumber>0)||e.calculable},_useCustomizedSplit:function(){var e=this.dataRangeOption;return e.splitList&&e.splitList.length>0},_buildColorList:function(e){if(this._colorList=m.getGradientColors(this.dataRangeOption.color,Math.max((e-this.dataRangeOption.color.length)/(this.dataRangeOption.color.length-1),0)+1),this._colorList.length>e){for(var t=this._colorList.length,i=[this._colorList[0]],n=t/(e-1),a=1;e-1>a;a++)i.push(this._colorList[Math.floor(a*n)]);i.push(this._colorList[t-1]),this._colorList=i}if(this._useCustomizedSplit())for(var o=this._splitList,a=0,t=o.length;t>a;a++)o[a].color&&(this._colorList[a]=o[a].color)},_buildGap:function(e){if(!this._useCustomizedSplit()){var t=this.dataRangeOption.precision;for(this._gap=(this.dataRangeOption.max-this.dataRangeOption.min)/e;this._gap.toFixed(t)-0!=this._gap&&5>t;)t++;this.dataRangeOption.precision=t,this._gap=((this.dataRangeOption.max-this.dataRangeOption.min)/e).toFixed(t)-0}},_buildDataList:function(e){for(var t=this._valueTextList=[],i=this.dataRangeOption,n=this._useCustomizedSplit(),a=0;e>a;a++){this._selectedMap[a]=!0;var o="";if(n){var r=this._splitList[e-1-a];o=null!=r.label?r.label:null!=r.single?this._textFormat(r.single):this._textFormat(r.min,r.max)}else o=this._textFormat(a*this._gap+i.min,(a+1)*this._gap+i.min);t.unshift(o)}},_buildSplitList:function(){if(this._useCustomizedSplit())for(var e=this.dataRangeOption.splitList,t=this._splitList=[],i=0,n=e.length;n>i;i++){var a=e[i];if(!a||null==a.start&&null==a.end)throw new Error("Empty item exists in splitList!");var o={label:a.label,color:a.color};o.min=a.start,o.max=a.end,o.min>o.max&&(o.min=[o.max,o.max=o.min][0]),o.min===o.max&&(o.single=o.max),null==o.min&&(o.min=-Number.MAX_VALUE),null==o.max&&(o.max=Number.MAX_VALUE),t.push(o)}},refresh:function(e){if(e){this.option=e,this.option.dataRange=this.reformOption(this.option.dataRange);var t=this.dataRangeOption=this.option.dataRange;if(!this._useCustomizedSplit()&&(null==t.min||null==t.max))throw new Error("option.dataRange.min or option.dataRange.max has not been defined.");this.myChart.canvasSupported||(t.realtime=!1);var i=this._isContinuity()?100:this._useCustomizedSplit()?t.splitList.length:t.splitNumber;this._buildSplitList(),this._buildColorList(i),this._buildGap(i),this._buildDataList(i)}this.clear(),this._buildShape()},getColor:function(e){if(isNaN(e))return null;var t;if(this._useCustomizedSplit()){for(var i=this._splitList,n=0,a=i.length;a>n;n++)if(i[n].min<=e&&i[n].max>=e){t=n;break}}else{if(this.dataRangeOption.min==this.dataRangeOption.max)return this._colorList[0];if(ethis.dataRangeOption.max&&(e=this.dataRangeOption.max),this.dataRangeOption.calculable&&(e-(this._gap*this._range.start+this.dataRangeOption.min)>5e-5||e-(this._gap*this._range.end+this.dataRangeOption.min)<-5e-5))return null;t=this._colorList.length-Math.ceil((e-this.dataRangeOption.min)/(this.dataRangeOption.max-this.dataRangeOption.min)*this._colorList.length),t==this._colorList.length&&t--}return this._selectedMap[t]?this._colorList[t]:null},getColorByIndex:function(e){return e>=this._colorList.length?e=this._colorList.length-1:0>e&&(e=0),this._colorList[e]},onbeforDispose:function(){this.messageCenter.unbind(r.EVENT.HOVER,this._onhoverlink)}},s.inherits(t,i),e("../component").define("dataRange",t),t}),i("echarts/util/shape/HandlePolygon",["require","zrender/shape/Base","zrender/shape/Polygon","zrender/tool/util"],function(e){function t(e){i.call(this,e)}var i=e("zrender/shape/Base"),n=e("zrender/shape/Polygon"),a=e("zrender/tool/util");return t.prototype={type:"handle-polygon",buildPath:function(e,t){n.prototype.buildPath(e,t)},isCover:function(e,t){var i=this.transformCoordToLocal(e,t);e=i[0],t=i[1];var n=this.style.rect;return e>=n.x&&e<=n.x+n.width&&t>=n.y&&t<=n.y+n.height?!0:!1}},a.inherits(t,i),t}),i("echarts/chart/k",["require","./base","../util/shape/Candle","../component/axis","../component/grid","../component/dataZoom","../config","../util/ecData","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/Candle");e("../component/axis"),e("../component/grid"),e("../component/dataZoom");var a=e("../config");a.k={zlevel:0,z:2,clickable:!0,hoverable:!0,legendHoverLink:!1,xAxisIndex:0,yAxisIndex:0,itemStyle:{normal:{color:"#fff",color0:"#00aa11",lineStyle:{width:1,color:"#ff3200",color0:"#00aa11"},label:{show:!1}},emphasis:{label:{show:!1}}}};var o=e("../util/ecData"),r=e("zrender/tool/util");return t.prototype={type:a.CHART_TYPE_K,_buildShape:function(){var e=this.series;this.selectedMap={};for(var t,i={top:[],bottom:[]},n=0,o=e.length;o>n;n++)e[n].type===a.CHART_TYPE_K&&(e[n]=this.reformOption(e[n]),this.legendHoverLink=e[n].legendHoverLink||this.legendHoverLink,t=this.component.xAxis.getAxis(e[n].xAxisIndex),t.type===a.COMPONENT_TYPE_AXIS_CATEGORY&&i[t.getPosition()].push(n));for(var r in i)i[r].length>0&&this._buildSinglePosition(r,i[r]);this.addShapeList()},_buildSinglePosition:function(e,t){var i=this._mapData(t),n=i.locationMap,a=i.maxDataLength;if(0!==a&&0!==n.length){this._buildHorizontal(t,a,n);for(var o=0,r=t.length;r>o;o++)this.buildMark(t[o])}},_mapData:function(e){for(var t,i,n=this.series,a=this.component.legend,o=[],r=0,s=0,l=e.length;l>s;s++)t=n[e[s]],i=t.name,this.selectedMap[i]=a?a.isSelected(i):!0,this.selectedMap[i]&&o.push(e[s]),r=Math.max(r,t.data.length);return{locationMap:o,maxDataLength:r}},_buildHorizontal:function(e,t,i){for(var n,a,o,r,s,l,h,m,V,U,d=this.series,p={},c=0,u=i.length;u>c;c++){n=i[c],a=d[n],o=a.xAxisIndex||0,r=this.component.xAxis.getAxis(o),h=a.barWidth||Math.floor(r.getGap()/2),U=a.barMaxWidth,U&&h>U&&(h=U),s=a.yAxisIndex||0,l=this.component.yAxis.getAxis(s),p[n]=[];for(var y=0,g=t;g>y&&null!=r.getNameByIndex(y);y++)m=a.data[y],V=this.getDataFromOption(m,"-"),"-"!==V&&4==V.length&&p[n].push([r.getCoordByIndex(y),h,l.getCoord(V[0]),l.getCoord(V[1]),l.getCoord(V[2]),l.getCoord(V[3]),y,r.getNameByIndex(y)])}this._buildKLine(e,p)},_buildKLine:function(e,t){for(var i,n,o,r,s,l,h,m,V,U,d,p,c,u,y,g,b,f=this.series,k=0,x=e.length;x>k;k++)if(b=e[k],d=f[b],u=t[b],this._isLarge(u)&&(u=this._getLargePointList(u)),d.type===a.CHART_TYPE_K&&null!=u){p=d,i=this.query(p,"itemStyle.normal.lineStyle.width"),n=this.query(p,"itemStyle.normal.lineStyle.color"),o=this.query(p,"itemStyle.normal.lineStyle.color0"),r=this.query(p,"itemStyle.normal.color"),s=this.query(p,"itemStyle.normal.color0"),l=this.query(p,"itemStyle.emphasis.lineStyle.width"),h=this.query(p,"itemStyle.emphasis.lineStyle.color"),m=this.query(p,"itemStyle.emphasis.lineStyle.color0"),V=this.query(p,"itemStyle.emphasis.color"),U=this.query(p,"itemStyle.emphasis.color0");for(var _=0,L=u.length;L>_;_++)y=u[_],c=d.data[y[6]],p=c,g=y[3]a;a++)n[a]=e[Math.floor(i/t*a)];return n},_getCandle:function(e,t,i,a,r,s,l,h,m,V,U,d,p,c,u){var y=this.series,g=y[e],b=g.data[t],f=[b,g],k={zlevel:g.zlevel,z:g.z,clickable:this.deepQuery(f,"clickable"),hoverable:this.deepQuery(f,"hoverable"),style:{x:a,y:[s,l,h,m],width:r,color:V,strokeColor:d,lineWidth:U,brushType:"both"},highlightStyle:{color:p,strokeColor:u,lineWidth:c},_seriesIndex:e};return k=this.addLabel(k,g,b,i),o.pack(k,g,e,b,t,i),k=new n(k)},getMarkCoord:function(e,t){var i=this.series[e],n=this.component.xAxis.getAxis(i.xAxisIndex),a=this.component.yAxis.getAxis(i.yAxisIndex);return["string"!=typeof t.xAxis&&n.getCoordByIndex?n.getCoordByIndex(t.xAxis||0):n.getCoord(t.xAxis||0),"string"!=typeof t.yAxis&&a.getCoordByIndex?a.getCoordByIndex(t.yAxis||0):a.getCoord(t.yAxis||0)]},refresh:function(e){e&&(this.option=e,this.series=e.series),this.backupShapeList(),this._buildShape()},addDataAnimation:function(e,t){function i(){p--,0===p&&t&&t()}for(var n=this.series,a={},r=0,s=e.length;s>r;r++)a[e[r][0]]=e[r];for(var l,h,m,V,U,d,p=0,r=0,s=this.shapeList.length;s>r;r++)if(U=this.shapeList[r]._seriesIndex,a[U]&&!a[U][3]&&"candle"===this.shapeList[r].type){if(d=o.get(this.shapeList[r],"dataIndex"),V=n[U],a[U][2]&&d===V.data.length-1){this.zr.delShape(this.shapeList[r].id);continue}if(!a[U][2]&&0===d){this.zr.delShape(this.shapeList[r].id);continue}h=this.component.xAxis.getAxis(V.xAxisIndex||0).getGap(),l=a[U][2]?h:-h,m=0,p++,this.zr.animate(this.shapeList[r].id,"").when(this.query(this.option,"animationDurationUpdate"),{position:[l,m]}).done(i).start()}p||t&&t()}},r.inherits(t,i),e("../chart").define("k",t),t}),i("echarts/chart/pie",["require","./base","zrender/shape/Text","zrender/shape/Ring","zrender/shape/Circle","zrender/shape/Sector","zrender/shape/Polyline","../config","../util/ecData","zrender/tool/util","zrender/tool/math","zrender/tool/color","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o);var r=this;r.shapeHandler.onmouseover=function(e){var t=e.target,i=h.get(t,"seriesIndex"),n=h.get(t,"dataIndex"),a=h.get(t,"special"),o=[t.style.x,t.style.y],s=t.style.startAngle,l=t.style.endAngle,m=((l+s)/2+360)%360,V=t.highlightStyle.color,U=r.getLabel(i,n,a,o,m,V,!0);U&&r.zr.addHoverShape(U);var d=r.getLabelLine(i,n,o,t.style.r0,t.style.r,m,V,!0);d&&r.zr.addHoverShape(d)},this.refresh(a)}var i=e("./base"),n=e("zrender/shape/Text"),a=e("zrender/shape/Ring"),o=e("zrender/shape/Circle"),r=e("zrender/shape/Sector"),s=e("zrender/shape/Polyline"),l=e("../config");l.pie={zlevel:0,z:2,clickable:!0,legendHoverLink:!0,center:["50%","50%"],radius:[0,"75%"],clockWise:!0,startAngle:90,minAngle:0,selectedOffset:10,itemStyle:{normal:{borderColor:"rgba(0,0,0,0)",borderWidth:1,label:{show:!0,position:"outer"},labelLine:{show:!0,length:20,lineStyle:{width:1,type:"solid"}}},emphasis:{borderColor:"rgba(0,0,0,0)",borderWidth:1,label:{show:!1},labelLine:{show:!1,length:20,lineStyle:{width:1,type:"solid"}}}}};var h=e("../util/ecData"),m=e("zrender/tool/util"),V=e("zrender/tool/math"),U=e("zrender/tool/color");return t.prototype={type:l.CHART_TYPE_PIE,_buildShape:function(){var e=this.series,t=this.component.legend;this.selectedMap={},this._selected={};var i,n,r;this._selectedMode=!1;for(var s,m=0,V=e.length;V>m;m++)if(e[m].type===l.CHART_TYPE_PIE){if(e[m]=this.reformOption(e[m]),this.legendHoverLink=e[m].legendHoverLink||this.legendHoverLink,s=e[m].name||"",this.selectedMap[s]=t?t.isSelected(s):!0,!this.selectedMap[s])continue;i=this.parseCenter(this.zr,e[m].center),n=this.parseRadius(this.zr,e[m].radius),this._selectedMode=this._selectedMode||e[m].selectedMode,this._selected[m]=[],this.deepQuery([e[m],this.option],"calculable")&&(r={zlevel:e[m].zlevel,z:e[m].z,hoverable:!1,style:{x:i[0],y:i[1],r0:n[0]<=10?0:n[0]-10,r:n[1]+10,brushType:"stroke",lineWidth:1,strokeColor:e[m].calculableHolderColor||this.ecTheme.calculableHolderColor||l.calculableHolderColor}},h.pack(r,e[m],m,void 0,-1),this.setCalculable(r),r=n[0]<=10?new o(r):new a(r),this.shapeList.push(r)),this._buildSinglePie(m),this.buildMark(m)}this.addShapeList()},_buildSinglePie:function(e){for(var t,i=this.series,n=i[e],a=n.data,o=this.component.legend,r=0,s=0,l=0,h=Number.NEGATIVE_INFINITY,m=[],V=0,U=a.length;U>V;V++)t=a[V].name, +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:function(e,t,i,n,a,o,r,l){var h=this.series,U=h[e],d=U.data[t];if(this._needLabelLine(U,d,l)){var p=l?"emphasis":"normal",c=m.merge(m.clone(d.itemStyle)||{},U.itemStyle),u=c[p].labelLine,y=u.lineStyle||{},g=i[0],b=i[1],f=a,k=this.parseRadius(this.zr,U.radius)[1]- -u.length,x=V.cos(o,!0),_=V.sin(o,!0);return new s({zlevel:U.zlevel,z:U.z+1,hoverable:!1,style:{pointList:[[g+f*x,b-f*_],[g+k*x,b-k*_],[d.__labelX,d.__labelY]],strokeColor:y.color||r,lineType:y.type,lineWidth:y.width},_seriesIndex:e,_dataIndex:t})}},_needLabel:function(e,t,i){return this.deepQuery([t,e],"itemStyle."+(i?"emphasis":"normal")+".label.show")},_needLabelLine:function(e,t,i){return this.deepQuery([t,e],"itemStyle."+(i?"emphasis":"normal")+".labelLine.show")},_autoLabelLayout:function(e,t,i){for(var n=[],a=[],o=0,r=e.length;r>o;o++)("outer"===e[o]._labelPosition||"outside"===e[o]._labelPosition)&&(e[o]._rect._y=e[o]._rect.y,e[o]._rect.xa;a++)if(e[a]._rect.y+=n,e[a].style.y+=n,e[a]._labelLine&&(e[a]._labelLine.style.pointList[1][1]+=n,e[a]._labelLine.style.pointList[2][1]+=n),a>t&&i>a+1&&e[a+1]._rect.y>e[a]._rect.y+e[a]._rect.height)return void o(a,n/2);o(i-1,n/2)}function o(t,i){for(var n=t;n>=0&&(e[n]._rect.y-=i,e[n].style.y-=i,e[n]._labelLine&&(e[n]._labelLine.style.pointList[1][1]-=i,e[n]._labelLine.style.pointList[2][1]-=i),!(n>0&&e[n]._rect.y>e[n-1]._rect.y+e[n-1]._rect.height));n--);}function r(e,t,i,n,a){for(var o,r,s,l=i[0],h=i[1],m=a>0?t?Number.MAX_VALUE:0:t?Number.MAX_VALUE:0,V=0,U=e.length;U>V;V++)r=Math.abs(e[V]._rect.y-h),s=e[V]._radius-n,o=n+s>r?Math.sqrt((n+s+20)*(n+s+20)-Math.pow(e[V]._rect.y-h,2)):Math.abs(e[V]._rect.x+(a>0?0:e[V]._rect.width)-l),t&&o>=m&&(o=m-10),!t&&m>=o&&(o=m+10),e[V]._rect.x=e[V].style.x=l+o*a,e[V]._labelLine&&(e[V]._labelLine.style.pointList[2][0]=l+(o-5)*a,e[V]._labelLine.style.pointList[1][0]=l+(o-20)*a),m=o}e.sort(function(e,t){return e._rect.y-t._rect.y});for(var s,l=0,h=e.length,m=[],V=[],U=0;h>U;U++)s=e[U]._rect.y-l,0>s&&a(U,h,-s,n),l=e[U]._rect.y+e[U]._rect.height;this.zr.getHeight()-l<0&&o(h-1,l-this.zr.getHeight());for(var U=0;h>U;U++)e[U]._rect.y>=t[1]?V.push(e[U]):m.push(e[U]);r(V,!0,t,i,n),r(m,!1,t,i,n)},reformOption:function(e){var t=m.merge;return e=t(t(e||{},m.clone(this.ecTheme.pie||{})),m.clone(l.pie)),e.itemStyle.normal.label.textStyle=this.getTextStyle(e.itemStyle.normal.label.textStyle),e.itemStyle.emphasis.label.textStyle=this.getTextStyle(e.itemStyle.emphasis.label.textStyle),this.z=e.z,this.zlevel=e.zlevel,e},refresh:function(e){e&&(this.option=e,this.series=e.series),this.backupShapeList(),this._buildShape()},addDataAnimation:function(e,t){function i(){s--,0===s&&t&&t()}for(var n=this.series,a={},o=0,r=e.length;r>o;o++)a[e[o][0]]=e[o];var s=0,h={},m={},V={},U=this.shapeList;this.shapeList=[];for(var d,p,c,u={},o=0,r=e.length;r>o;o++)d=e[o][0],p=e[o][2],c=e[o][3],n[d]&&n[d].type===l.CHART_TYPE_PIE&&(p?(c||(h[d+"_"+n[d].data.length]="delete"),u[d]=1):c?u[d]=0:(h[d+"_-1"]="delete",u[d]=-1),this._buildSinglePie(d));for(var y,g,o=0,r=this.shapeList.length;r>o;o++)switch(d=this.shapeList[o]._seriesIndex,y=this.shapeList[o]._dataIndex,g=d+"_"+y,this.shapeList[o].type){case"sector":h[g]=this.shapeList[o];break;case"text":m[g]=this.shapeList[o];break;case"polyline":V[g]=this.shapeList[o]}this.shapeList=[];for(var b,o=0,r=U.length;r>o;o++)if(d=U[o]._seriesIndex,a[d]){if(y=U[o]._dataIndex+u[d],g=d+"_"+y,b=h[g],!b)continue;if("sector"===U[o].type)"delete"!=b?(s++,this.zr.animate(U[o].id,"style").when(400,{startAngle:b.style.startAngle,endAngle:b.style.endAngle}).done(i).start()):(s++,this.zr.animate(U[o].id,"style").when(400,u[d]<0?{startAngle:U[o].style.startAngle}:{endAngle:U[o].style.endAngle}).done(i).start());else if("text"===U[o].type||"polyline"===U[o].type)if("delete"===b)this.zr.delShape(U[o].id);else switch(U[o].type){case"text":s++,b=m[g],this.zr.animate(U[o].id,"style").when(400,{x:b.style.x,y:b.style.y}).done(i).start();break;case"polyline":s++,b=V[g],this.zr.animate(U[o].id,"style").when(400,{pointList:b.style.pointList}).done(i).start()}}this.shapeList=U,s||t&&t()},onclick:function(e){var t=this.series;if(this.isClick&&e.target){this.isClick=!1;for(var i,n=e.target,a=n.style,o=h.get(n,"seriesIndex"),r=h.get(n,"dataIndex"),s=0,m=this.shapeList.length;m>s;s++)if(this.shapeList[s].id===n.id){if(o=h.get(n,"seriesIndex"),r=h.get(n,"dataIndex"),a._hasSelected)n.style.x=n.style._x,n.style.y=n.style._y,n.style._hasSelected=!1,this._selected[o][r]=!1;else{var U=((a.startAngle+a.endAngle)/2).toFixed(2)-0;n.style._hasSelected=!0,this._selected[o][r]=!0,n.style._x=n.style.x,n.style._y=n.style.y,i=this.query(t[o],"selectedOffset"),n.style.x+=V.cos(U,!0)*i,n.style.y-=V.sin(U,!0)*i}this.zr.modShape(n.id)}else this.shapeList[s].style._hasSelected&&"single"===this._selectedMode&&(o=h.get(this.shapeList[s],"seriesIndex"),r=h.get(this.shapeList[s],"dataIndex"),this.shapeList[s].style.x=this.shapeList[s].style._x,this.shapeList[s].style.y=this.shapeList[s].style._y,this.shapeList[s].style._hasSelected=!1,this._selected[o][r]=!1,this.zr.modShape(this.shapeList[s].id));this.messageCenter.dispatch(l.EVENT.PIE_SELECTED,e.event,{selected:this._selected,target:h.get(n,"name")},this.myChart),this.zr.refreshNextFrame()}}},m.inherits(t,i),e("../chart").define("pie",t),t}),i("echarts/chart/radar",["require","./base","zrender/shape/Polygon","../component/polar","../config","../util/ecData","zrender/tool/util","zrender/tool/color","../util/accMath","../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("zrender/shape/Polygon");e("../component/polar");var a=e("../config");a.radar={zlevel:0,z:2,clickable:!0,legendHoverLink:!0,polarIndex:0,itemStyle:{normal:{label:{show:!1},lineStyle:{width:2,type:"solid"}},emphasis:{label:{show:!1}}},symbolSize:2};var o=e("../util/ecData"),r=e("zrender/tool/util"),s=e("zrender/tool/color");return t.prototype={type:a.CHART_TYPE_RADAR,_buildShape:function(){this.selectedMap={},this._symbol=this.option.symbolList,this._queryTarget,this._dropBoxList=[],this._radarDataCounter=0;for(var e,t=this.series,i=this.component.legend,n=0,o=t.length;o>n;n++)t[n].type===a.CHART_TYPE_RADAR&&(this.serie=this.reformOption(t[n]),this.legendHoverLink=t[n].legendHoverLink||this.legendHoverLink,e=this.serie.name||"",this.selectedMap[e]=i?i.isSelected(e):!0,this.selectedMap[e]&&(this._queryTarget=[this.serie,this.option],this.deepQuery(this._queryTarget,"calculable")&&this._addDropBox(n),this._buildSingleRadar(n),this.buildMark(n)));this.addShapeList()},_buildSingleRadar:function(e){for(var t,i,n,a,o=this.component.legend,r=this.serie.data,s=this.deepQuery(this._queryTarget,"calculable"),l=0;lr;r++)n=this.getDataFromOption(t.value[r]),i="-"!=n?o.getVector(e,r,n):!1,i&&a.push(i);return a},_addSymbol:function(e,t,i,n,a){for(var r,s=this.series,l=this.component.polar,h=0,m=e.length;m>h;h++)r=this.getSymbolShape(this.deepMerge([s[n].data[i],s[n]]),n,s[n].data[i].value[h],h,l.getIndicatorText(a,h),e[h][0],e[h][1],this._symbol[this._radarDataCounter%this._symbol.length],t,"#fff","vertical"),r.zlevel=this.getZlevelBase(),r.z=this.getZBase()+1,o.set(r,"data",s[n].data[i]),o.set(r,"value",s[n].data[i].value),o.set(r,"dataIndex",i),o.set(r,"special",h),this.shapeList.push(r)},_addDataShape:function(e,t,i,a,r,l){var h=this.series,m=[i,this.serie],V=this.getItemStyleColor(this.deepQuery(m,"itemStyle.normal.color"),a,r,i),U=this.deepQuery(m,"itemStyle.normal.lineStyle.width"),d=this.deepQuery(m,"itemStyle.normal.lineStyle.type"),p=this.deepQuery(m,"itemStyle.normal.areaStyle.color"),c=this.deepQuery(m,"itemStyle.normal.areaStyle"),u={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{pointList:e,brushType:c?"both":"stroke",color:p||V||("string"==typeof t?s.alpha(t,.5):t),strokeColor:V||t,lineWidth:U,lineType:d},highlightStyle:{brushType:this.deepQuery(m,"itemStyle.emphasis.areaStyle")||c?"both":"stroke",color:this.deepQuery(m,"itemStyle.emphasis.areaStyle.color")||p||V||("string"==typeof t?s.alpha(t,.5):t),strokeColor:this.getItemStyleColor(this.deepQuery(m,"itemStyle.emphasis.color"),a,r,i)||V||t,lineWidth:this.deepQuery(m,"itemStyle.emphasis.lineStyle.width")||U,lineType:this.deepQuery(m,"itemStyle.emphasis.lineStyle.type")||d}};o.pack(u,h[a],a,i,r,i.name,this.component.polar.getIndicator(h[a].polarIndex)),l&&(u.draggable=!0,this.setCalculable(u)),u=new n(u),this.shapeList.push(u)},_addDropBox:function(e){var t=this.series,i=this.deepQuery(this._queryTarget,"polarIndex");if(!this._dropBoxList[i]){var n=this.component.polar.getDropBox(i);n.zlevel=this.getZlevelBase(),n.z=this.getZBase(),this.setCalculable(n),o.pack(n,t,e,void 0,-1),this.shapeList.push(n),this._dropBoxList[i]=!0}},ondragend:function(e,t){var i=this.series;if(this.isDragend&&e.target){var n=e.target,a=o.get(n,"seriesIndex"),r=o.get(n,"dataIndex");this.component.legend&&this.component.legend.del(i[a].data[r].name),i[a].data.splice(r,1),t.dragOut=!0,t.needRefresh=!0,this.isDragend=!1}},ondrop:function(t,i){var n=this.series;if(this.isDrop&&t.target){var a,r,s=t.target,l=t.dragged,h=o.get(s,"seriesIndex"),m=o.get(s,"dataIndex"),V=this.component.legend;if(-1===m)a={value:o.get(l,"value"),name:o.get(l,"name")},n[h].data.push(a),V&&V.add(a.name,l.style.color||l.style.strokeColor);else{var U=e("../util/accMath");a=n[h].data[m],V&&V.del(a.name),a.name+=this.option.nameConnector+o.get(l,"name"),r=o.get(l,"value");for(var d=0;dh;h++)t=m.polar2cartesian(s,o*Math.PI/180+r*h),l.push({vector:[t[1],-t[0]]})},_getRadius:function(){var e=this.polar[this._index];return this.parsePercent(e.radius,Math.min(this.zr.getWidth(),this.zr.getHeight())/2)},_buildSpiderWeb:function(e){var t=this.polar[e],i=t.__ecIndicator,n=t.splitArea,a=t.splitLine,o=this.getCenter(e),r=t.splitNumber,s=a.lineStyle.color,l=a.lineStyle.width,h=a.show,m=this.deepQuery(this._queryTarget,"axisLine");this._addArea(i,r,o,n,s,l,h),m.show&&this._addLine(i,o,m)},_addAxisLabel:function(t){for(var i,a,o,r,a,s,l,m,V,U,d=e("../util/accMath"),p=this.polar[t],c=this.deepQuery(this._queryTarget,"indicator"),u=p.__ecIndicator,y=this.deepQuery(this._queryTarget,"splitNumber"),g=this.getCenter(t),b=0;b=x;x+=U+1)r=h.merge({},o),l=d.accAdd(s.min,d.accMul(s.step,x)),l="function"==typeof k?k(l):"string"==typeof k?k.replace("{a}","{a0}").replace("{a0}",l):this.numAddCommas(l),r.text=l,r.x=x*a[0]/y+Math.cos(m)*V+g[0],r.y=x*a[1]/y+Math.sin(m)*V+g[1],this.shapeList.push(new n({zlevel:this.getZlevelBase(),z:this.getZBase(),style:r,draggable:!1,hoverable:!1}))}},_buildText:function(e){for(var t,i,a,o,r,s,l,h=this.polar[e],m=h.__ecIndicator,V=this.deepQuery(this._queryTarget,"indicator"),U=this.getCenter(e),d=0,p=0,c=0;c0?"left":Math.round(t[0])<0?"right":"center",null==o.margin?t=this._mapVector(t,U,1.1):(s=o.margin,d=t[0]>0?s:-s,p=t[1]>0?s:-s,d=0===t[0]?0:d,p=0===t[1]?0:p,t=this._mapVector(t,U,1)),i.textAlign=a,i.x=t[0]+d,i.y=t[1]+p,r=o.rotate?[o.rotate/180*Math.PI,t[0],t[1]]:[0,0,0],this.shapeList.push(new n({zlevel:this.getZlevelBase(),z:this.getZBase(),style:i,draggable:!1,hoverable:!1,rotation:r})))},getIndicatorText:function(e,t){return this.polar[e]&&this.polar[e].__ecIndicator[t]&&this.polar[e].__ecIndicator[t].text},getDropBox:function(e){var t,i,e=e||0,n=this.polar[e],a=this.getCenter(e),o=n.__ecIndicator,r=o.length,s=[],l=n.type;if("polygon"==l){for(var h=0;r>h;h++)t=o[h].vector,s.push(this._mapVector(t,a,1.2));i=this._getShape(s,"fill","rgba(0,0,0,0)","",1)}else"circle"==l&&(i=this._getCircle("",1,1.2,a,"fill","rgba(0,0,0,0)"));return i},_addArea:function(e,t,i,n,a,o,r){for(var s,l,h,m,V=this.deepQuery(this._queryTarget,"type"),U=0;t>U;U++)l=(t-U)/t,r&&("polygon"==V?(m=this._getPointList(e,l,i),s=this._getShape(m,"stroke","",a,o)):"circle"==V&&(s=this._getCircle(a,o,l,i,"stroke")),this.shapeList.push(s)),n.show&&(h=(t-U-1)/t,this._addSplitArea(e,n,l,h,i,U))},_getCircle:function(e,t,i,n,a,o){var s=this._getRadius();return new r({zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:n[0],y:n[1],r:s*i,brushType:a,strokeColor:e,lineWidth:t,color:o},hoverable:!1,draggable:!1})},_getRing:function(e,t,i,n){var a=this._getRadius();return new s({zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:n[0],y:n[1],r:t*a,r0:i*a,color:e,brushType:"fill"},hoverable:!1,draggable:!1})},_getPointList:function(e,t,i){for(var n,a=[],o=e.length,r=0;o>r;r++)n=e[r].vector,a.push(this._mapVector(n,i,t));return a},_getShape:function(e,t,i,n,a){return new o({zlevel:this.getZlevelBase(),z:this.getZBase(),style:{pointList:e,brushType:t,color:i,strokeColor:n,lineWidth:a},hoverable:!1,draggable:!1})},_addSplitArea:function(e,t,i,n,a,o){var r,s,l,h,m,V=e.length,U=t.areaStyle.color,d=[],V=e.length,p=this.deepQuery(this._queryTarget,"type");if("string"==typeof U&&(U=[U]),s=U.length,r=U[o%s],"polygon"==p)for(var c=0;V>c;c++)d=[],l=e[c].vector,h=e[(c+1)%V].vector,d.push(this._mapVector(l,a,i)),d.push(this._mapVector(l,a,n)),d.push(this._mapVector(h,a,n)),d.push(this._mapVector(h,a,i)),m=this._getShape(d,"fill",r,"",1),this.shapeList.push(m);else"circle"==p&&(m=this._getRing(r,i,n,a),this.shapeList.push(m))},_mapVector:function(e,t,i){return[e[0]*i+t[0],e[1]*i+t[1]]},getCenter:function(e){var e=e||0;return this.parseCenter(this.zr,this.polar[e].center)},_addLine:function(e,t,i){for(var n,a,o=e.length,r=i.lineStyle,s=r.color,l=r.width,h=r.type,m=0;o>m;m++)a=e[m].vector,n=this._getLine(t[0],t[1],a[0]+t[0],a[1]+t[1],s,l,h),this.shapeList.push(n)},_getLine:function(e,t,i,n,o,r,s){return new a({zlevel:this.getZlevelBase(),z:this.getZBase(),style:{xStart:e,yStart:t,xEnd:i,yEnd:n,strokeColor:o,lineWidth:r,lineType:s},hoverable:!1})},_adjustIndicatorValue:function(t){for(var i,n,a,o=this.polar[t],r=this.deepQuery(this._queryTarget,"indicator"),s=r.length,l=o.__ecIndicator,h=this._getSeriesData(t),m=o.boundaryGap,V=o.splitNumber,U=o.scale,d=e("../util/smartSteps"),p=0;s>p;p++){if("number"==typeof r[p].max)i=r[p].max,n=r[p].min||0,a={max:i,min:n};else{var c=this._findValue(h,p,V,m);n=c.min,i=c.max}!U&&n>=0&&i>=0&&(n=0),!U&&0>=n&&0>=i&&(i=0);var u=d(n,i,V,a);l[p].value={min:u.min,max:u.max,step:u.step}}},_getSeriesData:function(e){for(var t,i,n,a=[],o=this.component.legend,r=0;ro||void 0===o)&&(o=e),(r>e||void 0===r)&&(r=e)}var o,r,s;if(e&&0!==e.length){if(1==e.length&&(r=0),1!=e.length)for(var l=0;l0?r=o/i:o/=i),{max:o,min:r}}},getVector:function(e,t,i){e=e||0,t=t||0;var n=this.polar[e].__ecIndicator;if(!(t>=n.length)){var a,o=this.polar[e].__ecIndicator[t],r=this.getCenter(e),s=o.vector,l=o.value.max,h=o.value.min;if("undefined"==typeof i)return r;switch(i){case"min":i=h;break;case"max":i=l;break;case"center":i=(l+h)/2}return a=l!=h?(i-h)/(l-h):.5,this._mapVector(s,r,a)}},isInside:function(e){var t=this.getNearestIndex(e);return t?t.polarIndex:-1},getNearestIndex:function(e){for(var t,i,n,a,o,r,s,l,h,V=0;Va[0])return{polarIndex:V,valueIndex:Math.floor((h+l/2)/l)%s}}},getIndicator:function(e){var e=e||0;return this.polar[e].indicator},refresh:function(e){e&&(this.option=e,this.polar=this.option.polar,this.series=this.option.series),this.clear(),this._buildShape()}},h.inherits(t,i),e("../component").define("polar",t),t}),i("echarts/util/coordinates",["require","zrender/tool/math"],function(e){function t(e,t){return[e*n.sin(t),e*n.cos(t)]}function i(e,t){return[Math.sqrt(e*e+t*t),Math.atan(t/e)]}var n=e("zrender/tool/math");return{polar2cartesian:t,cartesian2polar:i}}),i("echarts/chart/chord",["require","./base","zrender/shape/Text","zrender/shape/Line","zrender/shape/Sector","../util/shape/Ribbon","../util/shape/Icon","zrender/shape/BezierCurve","../config","../util/ecData","zrender/tool/util","zrender/tool/vector","../data/Graph","../layout/Chord","../chart"],function(e){"use strict";function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.scaleLineLength=4,this.scaleUnitAngle=4,this.refresh(a)}var i=e("./base"),n=e("zrender/shape/Text"),a=e("zrender/shape/Line"),o=e("zrender/shape/Sector"),r=e("../util/shape/Ribbon"),s=e("../util/shape/Icon"),l=e("zrender/shape/BezierCurve"),h=e("../config");h.chord={zlevel:0,z:2,clickable:!0,radius:["65%","75%"],center:["50%","50%"],padding:2,sort:"none",sortSub:"none",startAngle:90,clockWise:!0,ribbonType:!0,minRadius:10,maxRadius:20,symbol:"circle",showScale:!1,showScaleText:!1,itemStyle:{normal:{borderWidth:0,borderColor:"#000",label:{show:!0,rotate:!1,distance:5},chordStyle:{width:1,color:"black",borderWidth:1,borderColor:"#999",opacity:.5}},emphasis:{borderWidth:0,borderColor:"#000",chordStyle:{width:1,color:"black",borderWidth:1,borderColor:"#999"}}}};var m=e("../util/ecData"),V=e("zrender/tool/util"),U=e("zrender/tool/vector"),d=e("../data/Graph"),p=e("../layout/Chord");return t.prototype={type:h.CHART_TYPE_CHORD,_init:function(){var e=this.series;this.selectedMap={};for(var t={},i={},n=0,a=e.length;a>n;n++)if(e[n].type===this.type){var o=this.isSelected(e[n].name);this.selectedMap[e[n].name]=o,o&&this.buildMark(n),this.reformOption(e[n]),t[e[n].name]=e[n]}for(var n=0,a=e.length;a>n;n++)if(e[n].type===this.type)if(e[n].insertToSerie){var r=t[e[n].insertToSerie];e[n]._referenceSerie=r}else i[e[n].name]=[e[n]];for(var n=0,a=e.length;a>n;n++)if(e[n].type===this.type&&e[n].insertToSerie){for(var s=e[n]._referenceSerie;s&&s._referenceSerie;)s=s._referenceSerie;i[s.name]&&this.selectedMap[e[n].name]&&i[s.name].push(e[n])}for(var l in i)this._buildChords(i[l]);this.addShapeList()},_getNodeCategory:function(e,t){return e.categories&&e.categories[t.category||0]},_getNodeQueryTarget:function(e,t){var i=this._getNodeCategory(e,t);return[t,i,e]},_getEdgeQueryTarget:function(e,t,i){return i=i||"normal",[t.itemStyle&&t.itemStyle[i],e.itemStyle[i].chordStyle]},_buildChords:function(e){for(var t=[],i=e[0],n=function(e){return e.layout.size>0},a=function(e){return function(t){return e.getEdge(t.node2,t.node1)}},o=0;oa;a++){var r=n[a];if(r&&!r.ignore){var s=this._getNodeCategory(t,r),l=s?s.name:r.name;if(this.selectedMap[l]=this.isSelected(l),this.selectedMap[l]){var h=i.addNode(r.name,r);h.rawIndex=a}}}for(var a=0,o=e.links.length;o>a;a++){var m=e.links[a],V=m.source,U=m.target;"number"==typeof V&&(V=n[V],V&&(V=V.name)),"number"==typeof U&&(U=n[U],U&&(U=U.name));var p=i.addEdge(V,U,m);p&&(p.rawIndex=a)}return i.eachNode(function(e){var i=e.data.value;if(null==i)if(i=0,t.ribbonType)for(var n=0;n0&&(p.style.brushType="both"),p.highlightStyle.lineWidth>0&&(p.highlightStyle.brushType="both"),m.pack(p,e,t,i.data,i.rawIndex,i.id,i.category),this.shapeList.push(p),i.shape=p},this)},_buildNodeIcons:function(e,t,i,n){var a=this.parseCenter(this.zr,n.center),o=this.parseRadius(this.zr,n.radius),r=o[1];i.eachNode(function(i){var o=i.layout.startAngle,l=i.layout.endAngle,h=(o+l)/2,V=r*Math.cos(h),U=r*Math.sin(h),d=this._getNodeQueryTarget(n,i.data),p=this._getNodeCategory(n,i.data),c=this.deepQuery(d,"itemStyle.normal.color");c||(c=this.getColor(p?p.name:i.id));var u=new s({zlevel:e.zlevel,z:e.z+1,style:{x:-i.layout.size,y:-i.layout.size,width:2*i.layout.size,height:2*i.layout.size,iconType:this.deepQuery(d,"symbol"),color:c,brushType:"both",lineWidth:this.deepQuery(d,"itemStyle.normal.borderWidth"),strokeColor:this.deepQuery(d,"itemStyle.normal.borderColor")},highlightStyle:{color:this.deepQuery(d,"itemStyle.emphasis.color"),lineWidth:this.deepQuery(d,"itemStyle.emphasis.borderWidth"),strokeColor:this.deepQuery(d,"itemStyle.emphasis.borderColor")},clickable:n.clickable,position:[V+a[0],U+a[1]]});m.pack(u,e,t,i.data,i.rawIndex,i.id,i.category),this.shapeList.push(u),i.shape=u},this)},_buildLabels:function(e,t,i,a){var o=this.query(a,"itemStyle.normal.label.rotate"),r=this.query(a,"itemStyle.normal.label.distance"),s=this.parseCenter(this.zr,a.center),l=this.parseRadius(this.zr,a.radius),h=a.clockWise,m=h?1:-1; + +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){if(e&&(this.option=e,this.series=e.series),this.legend=this.component.legend,this.legend)this.getColor=function(e){return this.legend.getColor(e)},this.isSelected=function(e){return this.legend.isSelected(e)};else{var t={},i=0;this.getColor=function(e){return t[e]?t[e]:(t[e]||(t[e]=this.zr.getColor(i++)),t[e])},this.isSelected=function(){return!0}}this.backupShapeList(),this._init()},reformOption:function(e){var t=V.merge;e=t(t(e||{},this.ecTheme.chord),h.chord),e.itemStyle.normal.label.textStyle=this.getTextStyle(e.itemStyle.normal.label.textStyle),this.z=e.z,this.zlevel=e.zlevel}},V.inherits(t,i),e("../chart").define("chord",t),t}),i("echarts/util/shape/Ribbon",["require","zrender/shape/Base","zrender/shape/util/PathProxy","zrender/tool/util","zrender/tool/area"],function(e){function t(e){i.call(this,e),this._pathProxy=new n}var i=e("zrender/shape/Base"),n=e("zrender/shape/util/PathProxy"),a=e("zrender/tool/util"),o=e("zrender/tool/area");return t.prototype={type:"ribbon",buildPath:function(e,t){var i=t.clockWise||!1,n=this._pathProxy;n.begin(e);var a=t.x,o=t.y,r=t.r,s=t.source0/180*Math.PI,l=t.source1/180*Math.PI,h=t.target0/180*Math.PI,m=t.target1/180*Math.PI,V=a+Math.cos(s)*r,U=o+Math.sin(s)*r,d=a+Math.cos(l)*r,p=o+Math.sin(l)*r,c=a+Math.cos(h)*r,u=o+Math.sin(h)*r,y=a+Math.cos(m)*r,g=o+Math.sin(m)*r;n.moveTo(V,U),n.arc(a,o,t.r,s,l,!i),n.bezierCurveTo(.7*(a-d)+d,.7*(o-p)+p,.7*(a-c)+c,.7*(o-u)+u,c,u),(t.source0!==t.target0||t.source1!==t.target1)&&(n.arc(a,o,t.r,h,m,!i),n.bezierCurveTo(.7*(a-y)+y,.7*(o-g)+g,.7*(a-V)+V,.7*(o-U)+U,V,U))},getRect:function(e){return e.__rect?e.__rect:(this._pathProxy.isEmpty()||this.buildPath(null,e),this._pathProxy.fastBoundingRect())},isCover:function(e,t){var i=this.getRect(this.style);return e>=i.x&&e<=i.x+i.width&&t>=i.y&&t<=i.y+i.height?o.isInsidePath(this._pathProxy.pathCommands,0,"fill",e,t):void 0}},a.inherits(t,i),t}),i("echarts/data/Graph",["require","zrender/tool/util"],function(e){var t=e("zrender/tool/util"),i=function(e){this._directed=e||!1,this.nodes=[],this.edges=[],this._nodesMap={},this._edgesMap={}};i.prototype.isDirected=function(){return this._directed},i.prototype.addNode=function(e,t){if(this._nodesMap[e])return this._nodesMap[e];var n=new i.Node(e,t);return this.nodes.push(n),this._nodesMap[e]=n,n},i.prototype.getNodeById=function(e){return this._nodesMap[e]},i.prototype.addEdge=function(e,t,n){if("string"==typeof e&&(e=this._nodesMap[e]),"string"==typeof t&&(t=this._nodesMap[t]),e&&t){var a=e.id+"-"+t.id;if(this._edgesMap[a])return this._edgesMap[a];var o=new i.Edge(e,t,n);return this._directed&&(e.outEdges.push(o),t.inEdges.push(o)),e.edges.push(o),e!==t&&t.edges.push(o),this.edges.push(o),this._edgesMap[a]=o,o}},i.prototype.removeEdge=function(e){var i=e.node1,n=e.node2,a=i.id+"-"+n.id;this._directed&&(i.outEdges.splice(t.indexOf(i.outEdges,e),1),n.inEdges.splice(t.indexOf(n.inEdges,e),1)),i.edges.splice(t.indexOf(i.edges,e),1),i!==n&&n.edges.splice(t.indexOf(n.edges,e),1),delete this._edgesMap[a],this.edges.splice(t.indexOf(this.edges,e),1)},i.prototype.getEdge=function(e,t){return"string"!=typeof e&&(e=e.id),"string"!=typeof t&&(t=t.id),this._directed?this._edgesMap[e+"-"+t]:this._edgesMap[e+"-"+t]||this._edgesMap[t+"-"+e]},i.prototype.removeNode=function(e){if("string"!=typeof e||(e=this._nodesMap[e])){delete this._nodesMap[e.id],this.nodes.splice(t.indexOf(this.nodes,e),1);for(var i=0;in;)e.call(t,this.nodes[n],n)?n++:(this.removeNode(this.nodes[n]),i--)},i.prototype.filterEdge=function(e,t){for(var i=this.edges.length,n=0;i>n;)e.call(t,this.edges[n],n)?n++:(this.removeEdge(this.edges[n]),i--)},i.prototype.eachNode=function(e,t){for(var i=this.nodes.length,n=0;i>n;n++)this.nodes[n]&&e.call(t,this.nodes[n],n)},i.prototype.eachEdge=function(e,t){for(var i=this.edges.length,n=0;i>n;n++)this.edges[n]&&e.call(t,this.edges[n],n)},i.prototype.clear=function(){this.nodes.length=0,this.edges.length=0,this._nodesMap={},this._edgesMap={}},i.prototype.breadthFirstTraverse=function(e,t,i,n){if("string"==typeof t&&(t=this._nodesMap[t]),t){var a="edges";"out"===i?a="outEdges":"in"===i&&(a="inEdges");for(var o=0;or;r++){var s=o.addNode(e[r].id,e[r]);s.data.value=0,n&&(s.data.outValue=s.data.inValue=0)}for(var r=0;a>r;r++)for(var l=0;a>l;l++){var h=t[r][l];n&&(o.nodes[r].data.outValue+=h,o.nodes[l].data.inValue+=h),o.nodes[r].data.value+=h,o.nodes[l].data.value+=h}for(var r=0;a>r;r++)for(var l=r;a>l;l++){var h=t[r][l];if(0!==h){var m=o.nodes[r],V=o.nodes[l],U=o.addEdge(m,V,{});if(U.data.weight=h,r!==l&&n&&t[l][r]){var d=o.addEdge(V,m,{});d.data.weight=t[l][r]}}}return o}},i}),i("echarts/layout/Chord",["require"],function(){var e=function(e){e=e||{},this.sort=e.sort||null,this.sortSub=e.sortSub||null,this.padding=.05,this.startAngle=e.startAngle||0,this.clockWise=null==e.clockWise?!1:e.clockWise,this.center=e.center||[0,0],this.directed=!0};e.prototype.run=function(e){e instanceof Array||(e=[e]);var n=e.length;if(n){for(var a=e[0],o=a.nodes.length,r=[],s=0,l=0;o>l;l++){var h=a.nodes[l],m={size:0,subGroups:[],node:h};r.push(m);for(var V=0,U=0;Ul;l++){var m=r[l];m.node.layout.startAngle=f,m.node.layout.endAngle=f+k*m.size*b,m.node.layout.subGroups=[];for(var u=0;un;n++){var o=i[n];if(o.type===d.CHART_TYPE_FORCE){if(i[n]=this.reformOption(i[n]),e=i[n].name||"",this.selectedMap[e]=t?t.isSelected(e):!0,!this.selectedMap[e])continue;this.buildMark(n),this._initSerie(o,n);break}}this.animationEffect()},_getNodeCategory:function(e,t){return e.categories&&e.categories[t.category||0]},_getNodeQueryTarget:function(e,t,i){i=i||"normal";var n=this._getNodeCategory(e,t)||{};return[t.itemStyle&&t.itemStyle[i],n&&n.itemStyle&&n.itemStyle[i],e.itemStyle[i].nodeStyle]},_getEdgeQueryTarget:function(e,t,i){return i=i||"normal",[t.itemStyle&&t.itemStyle[i],e.itemStyle[i].linkStyle]},_initSerie:function(e,t){this._temperature=1,e.matrix?this._graph=this._getSerieGraphFromDataMatrix(e):e.links&&(this._graph=this._getSerieGraphFromNodeLinks(e)),this._buildLinkShapes(e,t),this._buildNodeShapes(e,t);var i=e.roam===!0||"move"===e.roam,n=e.roam===!0||"scale"===e.roam;this.zr.modLayer(this.getZlevelBase(),{panable:i,zoomable:n}),(this.query("markPoint.effect.show")||this.query("markLine.effect.show"))&&this.zr.modLayer(d.EFFECT_ZLEVEL,{panable:i,zoomable:n}),this._initLayout(e),this._step()},_getSerieGraphFromDataMatrix:function(e){for(var t=[],i=0,n=[],a=0;an;n++){var o=i[n];if(o&&!o.ignore){var r=this._getNodeCategory(e,o),l=r?r.name:o.name;if(this.selectedMap[l]=this.isSelected(l),this.selectedMap[l]){var h=t.addNode(o.name,o);h.rawIndex=n}}}for(var n=0,a=e.links.length;a>n;n++){var m=e.links[n],V=m.source,U=m.target;"number"==typeof V&&(V=i[V],V&&(V=V.name)),"number"==typeof U&&(U=i[U],U&&(U=U.name));var d=t.addEdge(V,U,m);d&&(d.rawIndex=n)}return t.eachNode(function(e){var t=e.data.value;if(null==t){t=0;for(var i=0;ih;h++){var m=t.nodes[h];l=Math.max(m.layout.size,l),s=Math.min(m.layout.size,s)}for(var V=l-s,h=0;i>h;h++){var m=t.nodes[h];V>0?(m.layout.size=(m.layout.size-s)*(a-n)/V+n,m.layout.mass=m.layout.size/a):(m.layout.size=(a-n)/2,m.layout.mass=.5)}for(var h=0;i>h;h++){var m=t.nodes[h];if("undefined"!=typeof this.__nodePositionMap[m.id])m.layout.position=y.create(),y.copy(m.layout.position,this.__nodePositionMap[m.id]);else if("undefined"!=typeof m.data.initial)m.layout.position=y.create(),y.copy(m.layout.position,m.data.initial);else{var U=this._layout.center,d=Math.min(this._layout.width,this._layout.height);m.layout.position=o(U[0],U[1],.8*d)}var p=m.shape.style,c=m.layout.size;p.width=p.width||2*c,p.height=p.height||2*c,p.x=-p.width/2,p.y=-p.height/2,y.copy(m.shape.position,m.layout.position)}i=t.edges.length,l=-(1/0);for(var h=0;i>h;h++){var u=t.edges[h];u.layout.weight>l&&(l=u.layout.weight)}for(var h=0;i>h;h++){var u=t.edges[h];u.layout.weight/=l}this._layout.init(t,e.useWorker)},_buildNodeShapes:function(e,t){var i=this._graph,n=this.query(e,"categories");i.eachNode(function(i){var a=this._getNodeCategory(e,i.data),o=[i.data,a,e],r=this._getNodeQueryTarget(e,i.data),s=this._getNodeQueryTarget(e,i.data,"emphasis"),l=new U({style:{x:0,y:0,color:this.deepQuery(r,"color"),brushType:"both",strokeColor:this.deepQuery(r,"strokeColor")||this.deepQuery(r,"borderColor"),lineWidth:this.deepQuery(r,"lineWidth")||this.deepQuery(r,"borderWidth")},highlightStyle:{color:this.deepQuery(s,"color"),strokeColor:this.deepQuery(s,"strokeColor")||this.deepQuery(s,"borderColor"),lineWidth:this.deepQuery(s,"lineWidth")||this.deepQuery(s,"borderWidth")},clickable:e.clickable,zlevel:this.getZlevelBase(),z:this.getZBase()});l.style.color||(l.style.color=this.getColor(a?a.name:i.id)),l.style.iconType=this.deepQuery(o,"symbol");var h=this.deepQuery(o,"symbolSize")||0;"number"==typeof h&&(h=[h,h]),l.style.width=2*h[0],l.style.height=2*h[1],l.style.iconType.match("image")&&(l.style.image=l.style.iconType.replace(new RegExp("^image:\\/\\/"),""),l=new V({style:l.style,highlightStyle:l.highlightStyle,clickable:l.clickable,zlevel:this.getZlevelBase(),z:this.getZBase()})),this.deepQuery(o,"itemStyle.normal.label.show")&&(l.style.text=null==i.data.label?i.id:i.data.label,l.style.textPosition=this.deepQuery(o,"itemStyle.normal.label.position"),l.style.textColor=this.deepQuery(o,"itemStyle.normal.label.textStyle.color"),l.style.textFont=this.getFont(this.deepQuery(o,"itemStyle.normal.label.textStyle")||{})),this.deepQuery(o,"itemStyle.emphasis.label.show")&&(l.highlightStyle.textPosition=this.deepQuery(o,"itemStyle.emphasis.label.position"),l.highlightStyle.textColor=this.deepQuery(o,"itemStyle.emphasis.label.textStyle.color"),l.highlightStyle.textFont=this.getFont(this.deepQuery(o,"itemStyle.emphasis.label.textStyle")||{})),this.deepQuery(o,"draggable")&&(this.setCalculable(l),l.dragEnableTime=0,l.draggable=!0,l.ondragstart=this.shapeHandler.ondragstart,l.ondragover=null);var m="";if("undefined"!=typeof i.category){var a=n[i.category];m=a&&a.name||""}p.pack(l,e,t,i.data,i.rawIndex,i.data.name||"",i.category),this.shapeList.push(l),this.zr.addShape(l),i.shape=l},this)},_buildLinkShapes:function(e,t){for(var i=this._graph,n=i.edges.length,a=0;n>a;a++){var o=i.edges[a],r=o.data,s=o.node1,l=o.node2,V=i.getEdge(l,s),d=this._getEdgeQueryTarget(e,r),u=this.deepQuery(d,"type");e.linkSymbol&&"none"!==e.linkSymbol&&(u="line");var y="line"===u?h:m,g=new y({style:{xStart:0,yStart:0,xEnd:0,yEnd:0},clickable:this.query(e,"clickable"),highlightStyle:{},zlevel:this.getZlevelBase(),z:this.getZBase()});if(V&&V.shape&&(g.style.offset=4,V.shape.style.offset=4),c.merge(g.style,this.query(e,"itemStyle.normal.linkStyle"),!0),c.merge(g.highlightStyle,this.query(e,"itemStyle.emphasis.linkStyle"),!0),"undefined"!=typeof r.itemStyle&&(r.itemStyle.normal&&c.merge(g.style,r.itemStyle.normal,!0),r.itemStyle.emphasis&&c.merge(g.highlightStyle,r.itemStyle.emphasis,!0)),g.style.lineWidth=g.style.lineWidth||g.style.width,g.style.strokeColor=g.style.strokeColor||g.style.color,g.highlightStyle.lineWidth=g.highlightStyle.lineWidth||g.highlightStyle.width,g.highlightStyle.strokeColor=g.highlightStyle.strokeColor||g.highlightStyle.color,p.pack(g,e,t,o.data,null==o.rawIndex?a:o.rawIndex,o.data.name||s.id+" - "+l.id,s.id,l.id),this.shapeList.push(g),this.zr.addShape(g),o.shape=g,e.linkSymbol&&"none"!==e.linkSymbol){var b=new U({style:{x:-5,y:0,width:e.linkSymbolSize[0],height:e.linkSymbolSize[1],iconType:e.linkSymbol,brushType:"fill",color:g.style.strokeColor},highlightStyle:{brushType:"fill"},position:[0,0],rotation:0,zlevel:this.getZlevelBase(),z:this.getZBase()});g._symbolShape=b,this.shapeList.push(b),this.zr.addShape(b)}}},_updateLinkShapes:function(){for(var e=y.create(),t=y.create(),i=y.create(),n=y.create(),a=this._graph.edges,o=0,r=a.length;r>o;o++){var s=a[o],l=s.node1.shape,h=s.node2.shape;y.copy(i,l.position),y.copy(n,h.position);var m=s.shape.style;if(y.sub(e,i,n),y.normalize(e,e),m.offset?(t[0]=e[1],t[1]=-e[0],y.scaleAndAdd(i,i,t,m.offset),y.scaleAndAdd(n,n,t,m.offset)):"bezier-curve"===s.shape.type&&(m.cpX1=(i[0]+n[0])/2-(n[1]-i[1])/4,m.cpY1=(i[1]+n[1])/2-(i[0]-n[0])/4),m.xStart=i[0],m.yStart=i[1],m.xEnd=n[0],m.yEnd=n[1],s.shape.modSelf(),s.shape._symbolShape){var V=s.shape._symbolShape;y.copy(V.position,n),y.scaleAndAdd(V.position,V.position,e,h.style.width/2+2);var U=Math.atan2(e[1],e[0]);V.rotation=Math.PI/2-U,V.modSelf()}}},_syncNodePositions:function(){for(var e=this._graph,t=0;t.01?this._layout.step(this._steps):this.messageCenter.dispatch(d.EVENT.FORCE_LAYOUT_END,{},{},this.myChart)},refresh:function(e){if(e&&(this.option=e,this.series=this.option.series),this.legend=this.component.legend,this.legend)this.getColor=function(e){return this.legend.getColor(e)},this.isSelected=function(e){return this.legend.isSelected(e)};else{var t={},i=0;this.getColor=function(e){return t[e]?t[e]:(t[e]||(t[e]=this.zr.getColor(i++)),t[e])},this.isSelected=function(){return!0}}this._init()},dispose:function(){this.clear(),this.shapeList=null,this.effectList=null,this._layout.dispose(),this._layout=null,this.__nodePositionMap={}},getPosition:function(){var e=[];return this._graph.eachNode(function(t){t.layout&&e.push({name:t.data.name,position:Array.prototype.slice.call(t.layout.position)})}),e}},c.inherits(t,r),e("../chart").define("force",t),t}),i("echarts/layout/Force",["require","./forceLayoutWorker","zrender/tool/vector"],function(e){function t(){if("undefined"!=typeof Worker&&"undefined"!=typeof Blob)try{var e=new Blob([n.getWorkerCode()]);i=window.URL.createObjectURL(e)}catch(t){i=""}return i}var i,n=e("./forceLayoutWorker"),a=e("zrender/tool/vector"),o=window.requestAnimationFrame||window.msRequestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(e){setTimeout(e,16)},r="undefined"==typeof Float32Array?Array:Float32Array,s=function(e){"undefined"==typeof i&&t(),e=e||{},this.width=e.width||500,this.height=e.height||500,this.center=e.center||[this.width/2,this.height/2],this.ratioScaling=e.ratioScaling||!1,this.scaling=e.scaling||1,this.gravity="undefined"!=typeof e.gravity?e.gravity:1,this.large=e.large||!1,this.preventNodeOverlap=e.preventNodeOverlap||!1,this.preventNodeEdgeOverlap=e.preventNodeEdgeOverlap||!1,this.maxSpeedIncrease=e.maxSpeedIncrease||1,this.onupdate=e.onupdate||function(){},this.temperature=e.temperature||1,this.coolDown=e.coolDown||.99,this._layout=null,this._layoutWorker=null;var n=this,a=this._$onupdate;this._$onupdate=function(e){a.call(n,e)}};return s.prototype.updateConfig=function(){var e=this.width,t=this.height,i=Math.min(e,t),n={center:this.center,width:this.ratioScaling?e:i,height:this.ratioScaling?t:i,scaling:this.scaling||1,gravity:this.gravity||1,barnesHutOptimize:this.large,preventNodeOverlap:this.preventNodeOverlap,preventNodeEdgeOverlap:this.preventNodeEdgeOverlap,maxSpeedIncrease:this.maxSpeedIncrease};if(this._layoutWorker)this._layoutWorker.postMessage({cmd:"updateConfig",config:n});else for(var a in n)this._layout[a]=n[a]},s.prototype.init=function(e,t){if(this._layoutWorker&&(this._layoutWorker.terminate(),this._layoutWorker=null),i&&t)try{this._layoutWorker||(this._layoutWorker=new Worker(i),this._layoutWorker.onmessage=this._$onupdate),this._layout=null}catch(a){this._layoutWorker=null,this._layout||(this._layout=new n)}else this._layout||(this._layout=new n);this.temperature=1,this.graph=e;for(var o=e.nodes.length,s=new r(2*o),l=new r(o),h=new r(o),m=0;o>m;m++){var V=e.nodes[m];s[2*m]=V.layout.position[0],s[2*m+1]=V.layout.position[1],l[m]="undefined"==typeof V.layout.mass?1:V.layout.mass,h[m]="undefined"==typeof V.layout.size?1:V.layout.size,V.layout.__index=m}o=e.edges.length;for(var U=new r(2*o),d=new r(o),m=0;o>m;m++){var p=e.edges[m];U[2*m]=p.node1.layout.__index,U[2*m+1]=p.node2.layout.__index,d[m]=p.layout.weight||1}this._layoutWorker?this._layoutWorker.postMessage({cmd:"init",nodesPosition:s,nodesMass:l,nodesSize:h,edges:U,edgesWeight:d}):(this._layout.initNodes(s,l,h),this._layout.initEdges(U,d)),this.updateConfig()},s.prototype.step=function(e){var t=this.graph.nodes;if(this._layoutWorker){for(var i=new r(2*t.length),n=0;nn;n++)this.temperature*=this.coolDown}else{o(this._$onupdate);for(var n=0;nn;n++)this._layout.temperature=this.temperature,this._layout.update(),this.temperature*=this.coolDown}},s.prototype._$onupdate=function(e){if(this._layoutWorker){for(var t=new Float32Array(e.data),i=0;i0&&(a=1/Math.sqrt(a),e[0]=t[0]*a,e[1]=t[1]*a),e},negate:function(e,t){return e[0]=-t[0],e[1]=-t[1],e},copy:function(e,t){return e[0]=t[0],e[1]=t[1],e},set:function(e,t,i){return e[0]=t,e[1]=i,e}}:e("zrender/tool/vector");var l="undefined"==typeof Float32Array?Array:Float32Array;if(t.prototype.beforeUpdate=function(){for(var e=0;e=e&&this.bbox[1]<=t&&this.bbox[3]>=t},t.prototype.setBBox=function(e,t,i,n){this.bbox[0]=e,this.bbox[1]=t,this.bbox[2]=i,this.bbox[3]=n,this.size=(i-e+n-t)/2},t.prototype._newSubRegion=function(){var e=this.subRegions[this.nSubRegions];return e||(e=new t,this.subRegions[this.nSubRegions]=e),this.nSubRegions++,e},t.prototype._addNodeToSubRegion=function(e){var t=this.findSubRegion(e.position[0],e.position[1]),i=this.bbox;if(!t){var n=(i[0]+i[2])/2,a=(i[1]+i[3])/2,o=(i[2]-i[0])/2,r=(i[3]-i[1])/2,s=e.position[0]>=n?1:0,l=e.position[1]>=a?1:0,t=this._newSubRegion();t.setBBox(s*o+i[0],l*r+i[1],(s+1)*o+i[0],(l+1)*r+i[1])}t.addNode(e)},t.prototype._updateCenterOfMass=function(e){null==this.centerOfMass&&(this.centerOfMass=r.create());var t=this.centerOfMass[0]*this.mass,i=this.centerOfMass[1]*this.mass;t+=e.position[0]*e.mass,i+=e.position[1]*e.mass,this.mass+=e.mass,this.centerOfMass[0]=t/this.mass,this.centerOfMass[1]=i/this.mass},a.prototype.nodeToNodeRepulsionFactor=function(e,t,i){return i*i*e/t},a.prototype.edgeToNodeRepulsionFactor=function(e,t,i){return i*e/t},a.prototype.attractionFactor=function(e,t,i){return e*t/i},a.prototype.initNodes=function(e,t,n){this.temperature=1;var a=e.length/2;this.nodes.length=0;for(var o="undefined"!=typeof n,r=0;a>r;r++){var s=new i;s.position[0]=e[2*r],s.position[1]=e[2*r+1],s.mass=t[r],o&&(s.size=n[r]),this.nodes.push(s)}this._massArr=t,o&&(this._sizeArr=n)},a.prototype.initEdges=function(e,t){var i=e.length/2;this.edges.length=0;for(var a="undefined"!=typeof t,o=0;i>o;o++){var r=e[2*o],s=e[2*o+1],l=this.nodes[r],h=this.nodes[s];if(l&&h){l.outDegree++,h.inDegree++;var m=new n(l,h);a&&(m.weight=t[o]),this.edges.push(m)}}},a.prototype.update=function(){var e=this.nodes.length;if(this.updateBBox(),this._k=.4*this.scaling*Math.sqrt(this.width*this.height/e),this.barnesHutOptimize){this._rootRegion.setBBox(this.bbox[0],this.bbox[1],this.bbox[2],this.bbox[3]),this._rootRegion.beforeUpdate();for(var t=0;e>t;t++)this._rootRegion.addNode(this.nodes[t]);this._rootRegion.afterUpdate()}else{var i=0,n=this._rootRegion.centerOfMass;r.set(n,0,0);for(var t=0;e>t;t++){var a=this.nodes[t];i+=a.mass,r.scaleAndAdd(n,n,a.position,a.mass); + +}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;ethis.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;o0?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;an;n++){var o=h.nodes[n];o.position[0]=t[2*n],o.position[1]=t[2*n+1]}}else switch(e.data.cmd){case"init":h||(h=new a),h.initNodes(e.data.nodesPosition,e.data.nodesMass,e.data.nodesSize),h.initEdges(e.data.edges,e.data.edgesWeight);break;case"updateConfig":if(h)for(var r in e.data.config)h[r]=e.data.config[r];break;case"update":var s=e.data.steps;if(h){var i=h.nodes.length,t=new Float32Array(2*i);h.temperature=e.data.temperature;for(var n=0;s>n;n++)h.update(),h.temperature*=e.data.coolDown;for(var n=0;i>n;n++){var o=h.nodes[n];t[2*n]=o.position[0],t[2*n+1]=o.position[1]}self.postMessage(t.buffer,[t.buffer])}else{var l=new Float32Array;self.postMessage(l.buffer,[l.buffer])}}}}return a}),i("echarts/chart/map",["require","./base","zrender/shape/Text","zrender/shape/Path","zrender/shape/Circle","zrender/shape/Rectangle","zrender/shape/Line","zrender/shape/Polygon","zrender/shape/Ellipse","zrender/shape/Image","../component/dataRange","../component/roamController","../layer/heatmap","../config","../util/ecData","zrender/tool/util","zrender/config","zrender/tool/event","../util/mapData/params","../util/mapData/textFixed","../util/mapData/geoCoord","../util/projection/svg","../util/projection/normal","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o);var r=this;r._onmousewheel=function(e){return r.__onmousewheel(e)},r._onmousedown=function(e){return r.__onmousedown(e)},r._onmousemove=function(e){return r.__onmousemove(e)},r._onmouseup=function(e){return r.__onmouseup(e)},r._onroamcontroller=function(e){return r.__onroamcontroller(e)},r._ondrhoverlink=function(e){return r.__ondrhoverlink(e)},this._isAlive=!0,this._selectedMode={},this._activeMapType={},this._clickable={},this._hoverable={},this._showLegendSymbol={},this._selected={},this._mapTypeMap={},this._mapDataMap={},this._nameMap={},this._specialArea={},this._refreshDelayTicket,this._mapDataRequireCounter,this._markAnimation=!1,this._hoverLinkMap={},this._roamMap={},this._scaleLimitMap={},this._mx,this._my,this._mousedown,this._justMove,this._curMapType,this.refresh(a),this.zr.on(c.EVENT.MOUSEWHEEL,this._onmousewheel),this.zr.on(c.EVENT.MOUSEDOWN,this._onmousedown),t.bind(U.EVENT.ROAMCONTROLLER,this._onroamcontroller),t.bind(U.EVENT.DATA_RANGE_HOVERLINK,this._ondrhoverlink)}var i=e("./base"),n=e("zrender/shape/Text"),a=e("zrender/shape/Path"),o=e("zrender/shape/Circle"),r=e("zrender/shape/Rectangle"),s=e("zrender/shape/Line"),l=e("zrender/shape/Polygon"),h=e("zrender/shape/Ellipse"),m=e("zrender/shape/Image");e("../component/dataRange"),e("../component/roamController");var V=e("../layer/heatmap"),U=e("../config");U.map={zlevel:0,z:2,mapType:"china",showLegendSymbol:!0,dataRangeHoverLink:!0,hoverable:!0,clickable:!0,itemStyle:{normal:{borderColor:"rgba(0,0,0,0)",borderWidth:1,areaStyle:{color:"#ccc"},label:{show:!1,textStyle:{color:"rgb(139,69,19)"}}},emphasis:{borderColor:"rgba(0,0,0,0)",borderWidth:1,areaStyle:{color:"rgba(255,215,0,0.8)"},label:{show:!1,textStyle:{color:"rgb(100,0,0)"}}}}};var d=e("../util/ecData"),p=e("zrender/tool/util"),c=e("zrender/config"),u=e("zrender/tool/event"),y=e("../util/mapData/params").params,g=e("../util/mapData/textFixed"),b=e("../util/mapData/geoCoord");return t.prototype={type:U.CHART_TYPE_MAP,_buildShape:function(){var e=this.series;this.selectedMap={},this._activeMapType={};for(var t,i,n,a,o=this.component.legend,r={},s={},l={},h={},m=0,V=e.length;V>m;m++)if(e[m].type==U.CHART_TYPE_MAP&&(e[m]=this.reformOption(e[m]),i=e[m].mapType,s[i]=s[i]||{},s[i][m]=!0,l[i]=l[i]||e[m].mapValuePrecision,this._scaleLimitMap[i]=this._scaleLimitMap[i]||{},e[m].scaleLimit&&p.merge(this._scaleLimitMap[i],e[m].scaleLimit,!0),this._roamMap[i]=e[m].roam||this._roamMap[i],(null==this._hoverLinkMap[i]||this._hoverLinkMap[i])&&(this._hoverLinkMap[i]=e[m].dataRangeHoverLink),this._nameMap[i]=this._nameMap[i]||{},e[m].nameMap&&p.merge(this._nameMap[i],e[m].nameMap,!0),this._activeMapType[i]=!0,e[m].textFixed&&p.merge(g,e[m].textFixed,!0),e[m].geoCoord&&p.merge(b,e[m].geoCoord,!0),this._selectedMode[i]=this._selectedMode[i]||e[m].selectedMode,(null==this._hoverable[i]||this._hoverable[i])&&(this._hoverable[i]=e[m].hoverable),(null==this._clickable[i]||this._clickable[i])&&(this._clickable[i]=e[m].clickable),(null==this._showLegendSymbol[i]||this._showLegendSymbol[i])&&(this._showLegendSymbol[i]=e[m].showLegendSymbol),h[i]=h[i]||e[m].mapValueCalculation,t=e[m].name,this.selectedMap[t]=o?o.isSelected(t):!0,this.selectedMap[t])){r[i]=r[i]||{},n=e[m].data;for(var d=0,c=n.length;c>d;d++){a=this._nameChange(i,n[d].name),r[i][a]=r[i][a]||{seriesIndex:[],valueMap:{},precision:0};for(var u in n[d])"value"!=u?r[i][a][u]=n[d][u]:isNaN(n[d].value)||(null==r[i][a].value&&(r[i][a].value=0),r[i][a].precision=Math.max(this.getPrecision(+n[d].value),r[i][a].precision),r[i][a].value+=+n[d].value,r[i][a].valueMap[m]=+n[d].value);r[i][a].seriesIndex.push(m)}}this._mapDataRequireCounter=0;for(var f in r)this._mapDataRequireCounter++;this._clearSelected(),0===this._mapDataRequireCounter&&(this.clear(),this.zr&&this.zr.delShape(this.lastShapeList),this.lastShapeList=[]);for(var f in r){for(var c in r[f]){"average"==h[f]&&(r[f][c].value/=r[f][c].seriesIndex.length);var k=r[f][c].value;null!=k&&(r[f][c].value=k.toFixed(null==l[f]?r[f][c].precision:l[f])-0)}this._mapDataMap[f]=this._mapDataMap[f]||{},this._mapDataMap[f].mapData?this._mapDataCallback(f,r[f],s[f])(this._mapDataMap[f].mapData):y[f.replace(/\|.*/,"")].getGeoJson&&(this._specialArea[f]=y[f.replace(/\|.*/,"")].specialArea||this._specialArea[f],y[f.replace(/\|.*/,"")].getGeoJson(this._mapDataCallback(f,r[f],s[f])))}},_mapDataCallback:function(t,i,n){var a=this;return function(o){a._isAlive&&null!=a._activeMapType[t]&&(-1!=t.indexOf("|")&&(o=a._getSubMapData(t,o)),a._mapDataMap[t].mapData=o,o.firstChild?(a._mapDataMap[t].rate=1,a._mapDataMap[t].projection=e("../util/projection/svg")):(a._mapDataMap[t].rate=.75,a._mapDataMap[t].projection=e("../util/projection/normal")),a._buildMap(t,a._getProjectionData(t,o,n),i,n),a._buildMark(t,n),--a._mapDataRequireCounter<=0&&(a.addShapeList(),a.zr.refreshNextFrame()),a._buildHeatmap(t))}},_clearSelected:function(){for(var e in this._selected)this._activeMapType[this._mapTypeMap[e]]||(delete this._selected[e],delete this._mapTypeMap[e])},_getSubMapData:function(e,t){for(var i=e.replace(/^.*\|/,""),n=t.features,a=0,o=n.length;o>a;a++)if(n[a].properties&&n[a].properties.name==i){n=n[a],"United States of America"==i&&n.geometry.coordinates.length>1&&(n={geometry:{coordinates:n.geometry.coordinates.slice(5,6),type:n.geometry.type},id:n.id,properties:n.properties,type:n.type});break}return{type:"FeatureCollection",features:[n]}},_getProjectionData:function(e,t,i){var n,a=this._mapDataMap[e].projection,o=[],r=this._mapDataMap[e].bbox||a.getBbox(t,this._specialArea[e]);n=this._mapDataMap[e].hasRoam?this._mapDataMap[e].transform:this._getTransform(r,i,this._mapDataMap[e].rate);var s,l=this._mapDataMap[e].lastTransform||{scale:{}};n.left!=l.left||n.top!=l.top||n.scale.x!=l.scale.x||n.scale.y!=l.scale.y?(s=a.geoJson2Path(t,n,this._specialArea[e]),l=p.clone(n)):(n=this._mapDataMap[e].transform,s=this._mapDataMap[e].pathArray),this._mapDataMap[e].bbox=r,this._mapDataMap[e].transform=n,this._mapDataMap[e].lastTransform=l,this._mapDataMap[e].pathArray=s;for(var h=[n.left,n.top],m=0,V=s.length;V>m;m++)o.push(this._getSingleProvince(e,s[m],h));if(this._specialArea[e])for(var U in this._specialArea[e])o.push(this._getSpecialProjectionData(e,t,U,this._specialArea[e][U],h));if("china"==e){var d=this.geo2pos(e,b["南海诸岛"]||y["南海诸岛"].textCoord),c=n.scale.x/10.5,u=[32*c+d[0],83*c+d[1]];g["南海诸岛"]&&(u[0]+=g["南海诸岛"][0],u[1]+=g["南海诸岛"][1]),o.push({name:this._nameChange(e,"南海诸岛"),path:y["南海诸岛"].getPath(d,c),position:h,textX:u[0],textY:u[1]})}return o},_getSpecialProjectionData:function(t,i,n,a,o){i=this._getSubMapData("x|"+n,i);var r=e("../util/projection/normal"),s=r.getBbox(i),l=this.geo2pos(t,[a.left,a.top]),h=this.geo2pos(t,[a.left+a.width,a.top+a.height]),m=Math.abs(h[0]-l[0]),V=Math.abs(h[1]-l[1]),U=s.width,d=s.height,p=m/.75/U,c=V/d;p>c?(p=.75*c,m=U*p):(c=p,p=.75*c,V=d*c);var u={OffsetLeft:l[0],OffsetTop:l[1],scale:{x:p,y:c}},y=r.geoJson2Path(i,u);return this._getSingleProvince(t,y[0],o)},_getSingleProvince:function(e,t,i){var n,a=t.properties.name,o=g[a]||[0,0];if(b[a])n=this.geo2pos(e,b[a]);else if(t.cp)n=[t.cp[0]+o[0],t.cp[1]+o[1]];else{var r=this._mapDataMap[e].bbox;n=this.geo2pos(e,[r.left+r.width/2,r.top+r.height/2]),n[0]+=o[0],n[1]+=o[1]}return t.name=this._nameChange(e,a),t.position=i,t.textX=n[0],t.textY=n[1],t},_getTransform:function(e,t,i){var n,a,o,r,s,l,h,m=this.series,V=this.zr.getWidth(),U=this.zr.getHeight(),d=Math.round(.02*Math.min(V,U));for(var p in t)n=m[p].mapLocation||{},o=n.x||o,s=n.y||s,l=n.width||l,h=n.height||h;a=this.parsePercent(o,V),a=isNaN(a)?d:a,r=this.parsePercent(s,U),r=isNaN(r)?d:r,l=null==l?V-a-2*d:this.parsePercent(l,V),h=null==h?U-r-2*d:this.parsePercent(h,U);var c=e.width,u=e.height,y=l/i/c,g=h/u;if(y>g?(y=g*i,l=c*y):(g=y,y=g*i,h=u*g),isNaN(o))switch(o=o||"center",o+""){case"center":a=Math.floor((V-l)/2);break;case"right":a=V-l}if(isNaN(s))switch(s=s||"center",s+""){case"center":r=Math.floor((U-h)/2);break;case"bottom":r=U-h}return{left:a,top:r,width:l,height:h,baseScale:1,scale:{x:y,y:g}}},_buildMap:function(e,t,i,m){for(var V,c,u,y,g,b,f,k,x,_,L,W=this.series,X=this.component.legend,v=this.component.dataRange,w=0,K=t.length;K>w;w++){if(k=p.clone(t[w]),x={name:k.name,path:k.path,position:p.clone(k.position)},c=k.name,u=i[c]){g=[u],V="";for(var I=0,J=u.seriesIndex.length;J>I;I++){var C=W[u.seriesIndex[I]];g.push(C),V+=C.name+" ",X&&this._showLegendSymbol[e]&&X.hasColor(C.name)&&this.shapeList.push(new o({zlevel:C.zlevel,z:C.z+1,position:p.clone(k.position),_mapType:e,style:{x:k.textX+3+7*I,y:k.textY-10,r:3,color:X.getColor(C.name)},hoverable:!1}))}y=u.value}else{u={name:c,value:"-"},V="",g=[];for(var S in m)g.push(W[S]);y="-"}switch(this.ecTheme.map&&g.push(this.ecTheme.map),g.push(U.map),b=v&&!isNaN(y)?v.getColor(y):null,k.color=k.color||b||this.getItemStyleColor(this.deepQuery(g,"itemStyle.normal.color"),u.seriesIndex,-1,u)||this.deepQuery(g,"itemStyle.normal.areaStyle.color"),k.strokeColor=k.strokeColor||this.deepQuery(g,"itemStyle.normal.borderColor"),k.lineWidth=k.lineWidth||this.deepQuery(g,"itemStyle.normal.borderWidth"),x.color=this.getItemStyleColor(this.deepQuery(g,"itemStyle.emphasis.color"),u.seriesIndex,-1,u)||this.deepQuery(g,"itemStyle.emphasis.areaStyle.color")||k.color,x.strokeColor=this.deepQuery(g,"itemStyle.emphasis.borderColor")||k.strokeColor,x.lineWidth=this.deepQuery(g,"itemStyle.emphasis.borderWidth")||k.lineWidth,k.brushType=x.brushType=k.brushType||"both",k.lineJoin=x.lineJoin="round",k._name=x._name=c,f=this.deepQuery(g,"itemStyle.normal.label.textStyle"),L={zlevel:this.getZlevelBase(),z:this.getZBase()+1,position:p.clone(k.position),_mapType:e,_geo:this.pos2geo(e,[k.textX,k.textY]),style:{brushType:"fill",x:k.textX,y:k.textY,text:this.getLabelText(c,y,g,"normal"),_name:c,textAlign:"center",color:this.deepQuery(g,"itemStyle.normal.label.show")?this.deepQuery(g,"itemStyle.normal.label.textStyle.color"):"rgba(0,0,0,0)",textFont:this.getFont(f)}},L._style=p.clone(L.style),L.highlightStyle=p.clone(L.style),this.deepQuery(g,"itemStyle.emphasis.label.show")?(L.highlightStyle.text=this.getLabelText(c,y,g,"emphasis"),L.highlightStyle.color=this.deepQuery(g,"itemStyle.emphasis.label.textStyle.color")||L.style.color,f=this.deepQuery(g,"itemStyle.emphasis.label.textStyle")||f,L.highlightStyle.textFont=this.getFont(f)):L.highlightStyle.color="rgba(0,0,0,0)",_={zlevel:this.getZlevelBase(),z:this.getZBase(),position:p.clone(k.position),style:k,highlightStyle:x,_style:p.clone(k),_mapType:e},null!=k.scale&&(_.scale=p.clone(k.scale)),L=new n(L),_.style.shapeType){case"rectangle":_=new r(_);break;case"line":_=new s(_);break;case"circle":_=new o(_);break;case"polygon":_=new l(_);break;case"ellipse":_=new h(_);break;default:_=new a(_),_.buildPathArray&&(_.style.pathArray=_.buildPathArray(_.style.path))}(this._selectedMode[e]&&this._selected[c]&&u.selected!==!1||u.selected===!0)&&(L.style=L.highlightStyle,_.style=_.highlightStyle),L.clickable=_.clickable=this._clickable[e]&&(null==u.clickable||u.clickable),this._selectedMode[e]&&(this._selected[c]=null!=this._selected[c]?this._selected[c]:u.selected,this._mapTypeMap[c]=e,(null==u.selectable||u.selectable)&&(_.clickable=L.clickable=!0,_.onclick=L.onclick=this.shapeHandler.onclick)),this._hoverable[e]&&(null==u.hoverable||u.hoverable)?(L.hoverable=_.hoverable=!0,_.hoverConnect=L.id,L.hoverConnect=_.id):L.hoverable=_.hoverable=!1,d.pack(L,{name:V,tooltip:this.deepQuery(g,"tooltip")},0,u,0,c),this.shapeList.push(L),d.pack(_,{name:V,tooltip:this.deepQuery(g,"tooltip")},0,u,0,c),this.shapeList.push(_)}},_buildMark:function(e,t){this._seriesIndexToMapType=this._seriesIndexToMapType||{},this.markAttachStyle=this.markAttachStyle||{};var i=[this._mapDataMap[e].transform.left,this._mapDataMap[e].transform.top];"none"==e&&(i=[0,0]);for(var n in t)this._seriesIndexToMapType[n]=e,this.markAttachStyle[n]={position:i,_mapType:e},this.buildMark(n)},_buildHeatmap:function(e){for(var t=this.series,i=0,n=t.length;n>i;i++)if(t[i].heatmap){var a=t[i].heatmap.data;if(t[i].heatmap.needsTransform===!1){for(var o=[],r=0,s=a.length;s>r;++r)o.push([a[r][3],a[r][4],a[r][2]]);var l=[0,0]}else{var h=t[i].heatmap._geoData;if(void 0===h){t[i].heatmap._geoData=[];for(var r=0,s=a.length;s>r;++r)t[i].heatmap._geoData[r]=a[r];h=t[i].heatmap._geoData}for(var s=a.length,U=0;s>U;++U)a[U]=this.geo2pos(e,[h[U][0],h[U][1]]);var l=[this._mapDataMap[e].transform.left,this._mapDataMap[e].transform.top]}var d=new V(t[i].heatmap),p=d.getCanvas(a[0][3]?o:a,this.zr.getWidth(),this.zr.getHeight()),c=new m({zlevel:this.getZlevelBase(),z:this.getZBase()+1,position:l,scale:[1,1],hoverable:!1,style:{x:0,y:0,image:p,width:p.width,height:p.height}});c.type="heatmap",c._mapType=e,this.shapeList.push(c),this.zr.addShape(c)}},getMarkCoord:function(e,t){return t.geoCoord||b[t.name]?this.geo2pos(this._seriesIndexToMapType[e],t.geoCoord||b[t.name]):[0,0]},getMarkGeo:function(e){return e.geoCoord||b[e.name]},_nameChange:function(e,t){return this._nameMap[e][t]||t},getLabelText:function(e,t,i,n){var a=this.deepQuery(i,"itemStyle."+n+".label.formatter");return a?"function"==typeof a?a.call(this.myChart,e,t):"string"==typeof a?(a=a.replace("{a}","{a0}").replace("{b}","{b0}"),a=a.replace("{a0}",e).replace("{b0}",t)):void 0:e},_findMapTypeByPos:function(e,t){var i,n,a,o,r;for(var s in this._mapDataMap)if(i=this._mapDataMap[s].transform,i&&this._roamMap[s]&&this._activeMapType[s]&&(n=i.left,a=i.top,o=i.width,r=i.height,e>=n&&n+o>=e&&t>=a&&a+r>=t))return s},__onmousewheel:function(e){function t(e,t){for(var i=0;in;n++){var o=this.shapeList[n];if(o.__animating)return}var r,s,l=e.event,h=u.getX(l),m=u.getY(l),V=u.getDelta(l),d=e.mapTypeControl;d||(d={},s=this._findMapTypeByPos(h,m),s&&this._roamMap[s]&&"move"!=this._roamMap[s]&&(d[s]=!0));var p=!1;for(s in d)if(d[s]){p=!0;var c=this._mapDataMap[s].transform,y=c.left,g=c.top,b=c.width,f=c.height,k=this.pos2geo(s,[h-y,m-g]);if(V>0){if(r=1.2,null!=this._scaleLimitMap[s].max&&c.baseScale>=this._scaleLimitMap[s].max)continue}else if(r=1/1.2,null!=this._scaleLimitMap[s].min&&c.baseScale<=this._scaleLimitMap[s].min)continue;c.baseScale*=r,c.scale.x*=r,c.scale.y*=r,c.width=b*r,c.height=f*r,this._mapDataMap[s].hasRoam=!0,this._mapDataMap[s].transform=c,k=this.geo2pos(s,k),c.left-=k[0]-(h-y),c.top-=k[1]-(m-g),this._mapDataMap[s].transform=c,this.clearEffectShape(!0);for(var n=0,a=this.shapeList.length;a>n;n++){var o=this.shapeList[n];if(o._mapType==s){var x=o.type,_=o.style;switch(o.position[0]=c.left,o.position[1]=c.top,x){case"path":case"symbol":case"circle":case"rectangle":case"polygon":case"line":case"ellipse":case"heatmap":o.scale[0]*=r,o.scale[1]*=r;break;case"mark-line":i(_,r);break;case"polyline":t(_,r);break;case"shape-bundle":for(var L=0;L<_.shapeList.length;L++){var W=_.shapeList[L];"mark-line"==W.type?i(W.style,r):"polyline"==W.type&&t(W.style,r)}break;case"icon":case"image":k=this.geo2pos(s,o._geo),_.x=_._x=k[0]-_.width/2,_.y=_._y=k[1]-_.height/2;break;default:k=this.geo2pos(s,o._geo),_.x=k[0],_.y=k[1],"text"==x&&(o._style.x=o.highlightStyle.x=k[0],o._style.y=o.highlightStyle.y=k[1])}this.zr.modShape(o.id)}}}if(p){u.stop(l),this.zr.refreshNextFrame();var X=this;clearTimeout(this._refreshDelayTicket),this._refreshDelayTicket=setTimeout(function(){X&&X.shapeList&&X.animationEffect()},100),this.messageCenter.dispatch(U.EVENT.MAP_ROAM,e.event,{type:"scale"},this.myChart)}}},__onmousedown:function(e){if(!(this.shapeList.length<=0)){var t=e.target;if(!t||!t.draggable){var i=e.event,n=u.getX(i),a=u.getY(i),o=this._findMapTypeByPos(n,a);if(o&&this._roamMap[o]&&"scale"!=this._roamMap[o]){this._mousedown=!0,this._mx=n,this._my=a,this._curMapType=o,this.zr.on(c.EVENT.MOUSEUP,this._onmouseup);var r=this;setTimeout(function(){r.zr.on(c.EVENT.MOUSEMOVE,r._onmousemove)},100)}}}},__onmousemove:function(e){if(this._mousedown&&this._isAlive){var t=e.event,i=u.getX(t),n=u.getY(t),a=this._mapDataMap[this._curMapType].transform;a.hasRoam=!0,a.left-=this._mx-i,a.top-=this._my-n,this._mx=i,this._my=n,this._mapDataMap[this._curMapType].transform=a;for(var o=0,r=this.shapeList.length;r>o;o++)this.shapeList[o]._mapType==this._curMapType&&(this.shapeList[o].position[0]=a.left,this.shapeList[o].position[1]=a.top,this.zr.modShape(this.shapeList[o].id));this.messageCenter.dispatch(U.EVENT.MAP_ROAM,e.event,{type:"move"},this.myChart),this.clearEffectShape(!0),this.zr.refreshNextFrame(),this._justMove=!0,u.stop(t)}},__onmouseup:function(e){var t=e.event;this._mx=u.getX(t),this._my=u.getY(t),this._mousedown=!1;var i=this;setTimeout(function(){i._justMove&&i.animationEffect(),i._justMove=!1,i.zr.un(c.EVENT.MOUSEMOVE,i._onmousemove),i.zr.un(c.EVENT.MOUSEUP,i._onmouseup)},120)},__onroamcontroller:function(e){var t=e.event;t.zrenderX=this.zr.getWidth()/2,t.zrenderY=this.zr.getHeight()/2;var i=e.mapTypeControl,n=0,a=0,o=e.step;switch(e.roamType){case"scaleUp":return t.zrenderDelta=1,void this.__onmousewheel({event:t,mapTypeControl:i});case"scaleDown":return t.zrenderDelta=-1,void this.__onmousewheel({event:t,mapTypeControl:i});case"up":n=-o;break;case"down":n=o;break;case"left":a=-o;break;case"right":a=o}var r,s;for(s in i)this._mapDataMap[s]&&this._activeMapType[s]&&(r=this._mapDataMap[s].transform,r.hasRoam=!0,r.left-=a,r.top-=n,this._mapDataMap[s].transform=r);for(var l=0,h=this.shapeList.length;h>l;l++)s=this.shapeList[l]._mapType,i[s]&&this._activeMapType[s]&&(r=this._mapDataMap[s].transform,this.shapeList[l].position[0]=r.left,this.shapeList[l].position[1]=r.top,this.zr.modShape(this.shapeList[l].id));this.messageCenter.dispatch(U.EVENT.MAP_ROAM,e.event,{type:"move"},this.myChart),this.clearEffectShape(!0),this.zr.refreshNextFrame(),clearTimeout(this.dircetionTimer);var m=this;this.dircetionTimer=setTimeout(function(){m.animationEffect()},150)},__ondrhoverlink:function(e){for(var t,i,n=0,a=this.shapeList.length;a>n;n++)t=this.shapeList[n]._mapType,this._hoverLinkMap[t]&&this._activeMapType[t]&&(i=d.get(this.shapeList[n],"value"),null!=i&&i>=e.valueMin&&i<=e.valueMax&&this.zr.addHoverShape(this.shapeList[n]))},onclick:function(e){if(this.isClick&&e.target&&!this._justMove&&"icon"!=e.target.type){this.isClick=!1;var t=e.target,i=t.style._name,n=this.shapeList.length,a=t._mapType||"";if("single"==this._selectedMode[a])for(var o in this._selected)if(this._selected[o]&&this._mapTypeMap[o]==a){for(var r=0;n>r;r++)this.shapeList[r].style._name==o&&this.shapeList[r]._mapType==a&&(this.shapeList[r].style=this.shapeList[r]._style,this.zr.modShape(this.shapeList[r].id));o!=i&&(this._selected[o]=!1)}this._selected[i]=!this._selected[i];for(var r=0;n>r;r++)this.shapeList[r].style._name==i&&this.shapeList[r]._mapType==a&&(this.shapeList[r].style=this._selected[i]?this.shapeList[r].highlightStyle:this.shapeList[r]._style,this.zr.modShape(this.shapeList[r].id));this.messageCenter.dispatch(U.EVENT.MAP_SELECTED,e.event,{selected:this._selected,target:i},this.myChart),this.zr.refreshNextFrame();var s=this;setTimeout(function(){s.zr.trigger(c.EVENT.MOUSEMOVE,e.event)},100)}},refresh:function(e){e&&(this.option=e,this.series=e.series),this._mapDataRequireCounter>0?this.clear():this.backupShapeList(),this._buildShape(),this.zr.refreshHover()},ondataRange:function(e,t){this.component.dataRange&&(this.refresh(),t.needRefresh=!0)},pos2geo:function(e,t){return this._mapDataMap[e].transform?this._mapDataMap[e].projection.pos2geo(this._mapDataMap[e].transform,t):null},getGeoByPos:function(e,t){if(!this._mapDataMap[e].transform)return null;var i=[this._mapDataMap[e].transform.left,this._mapDataMap[e].transform.top];return t instanceof Array?(t[0]-=i[0],t[1]-=i[1]):(t.x-=i[0],t.y-=i[1]),this.pos2geo(e,t)},geo2pos:function(e,t){return this._mapDataMap[e].transform?this._mapDataMap[e].projection.geo2pos(this._mapDataMap[e].transform,t):null},getPosByGeo:function(e,t){if(!this._mapDataMap[e].transform)return null;var i=this.geo2pos(e,t);return i[0]+=this._mapDataMap[e].transform.left,i[1]+=this._mapDataMap[e].transform.top,i},getMapPosition:function(e){return this._mapDataMap[e].transform?[this._mapDataMap[e].transform.left,this._mapDataMap[e].transform.top]:null},onbeforDispose:function(){this._isAlive=!1,this.zr.un(c.EVENT.MOUSEWHEEL,this._onmousewheel),this.zr.un(c.EVENT.MOUSEDOWN,this._onmousedown),this.messageCenter.unbind(U.EVENT.ROAMCONTROLLER,this._onroamcontroller),this.messageCenter.unbind(U.EVENT.DATA_RANGE_HOVERLINK,this._ondrhoverlink)}},p.inherits(t,i),e("../chart").define("map",t),t}),i("zrender/shape/Path",["require","./Base","./util/PathProxy","../tool/util"],function(e){var t=e("./Base"),i=e("./util/PathProxy"),n=i.PathSegment,a=function(e){return Math.sqrt(e[0]*e[0]+e[1]*e[1])},o=function(e,t){return(e[0]*t[0]+e[1]*t[1])/(a(e)*a(t))},r=function(e,t){return(e[0]*t[1]0&&""===d[0]&&d.shift();for(var p=0;p0&&!isNaN(d[0]);){var c,u,y,g,b,f,k,x,_=null,L=[],W=h,X=m;switch(U){case"l":h+=d.shift(),m+=d.shift(),_="L",L.push(h,m);break;case"L":h=d.shift(),m=d.shift(),L.push(h,m);break;case"m":h+=d.shift(),m+=d.shift(),_="M",L.push(h,m),U="l";break;case"M":h=d.shift(),m=d.shift(),_="M",L.push(h,m),U="L";break;case"h":h+=d.shift(),_="L",L.push(h,m);break;case"H":h=d.shift(),_="L",L.push(h,m);break;case"v":m+=d.shift(),_="L",L.push(h,m);break;case"V":m=d.shift(),_="L",L.push(h,m);break;case"C":L.push(d.shift(),d.shift(),d.shift(),d.shift()),h=d.shift(),m=d.shift(),L.push(h,m);break;case"c":L.push(h+d.shift(),m+d.shift(),h+d.shift(),m+d.shift()),h+=d.shift(),m+=d.shift(),_="C",L.push(h,m);break;case"S":c=h,u=m,y=l[l.length-1],"C"===y.command&&(c=h+(h-y.points[2]),u=m+(m-y.points[3])),L.push(c,u,d.shift(),d.shift()),h=d.shift(),m=d.shift(),_="C",L.push(h,m);break;case"s":c=h,u=m,y=l[l.length-1],"C"===y.command&&(c=h+(h-y.points[2]),u=m+(m-y.points[3])),L.push(c,u,h+d.shift(),m+d.shift()),h+=d.shift(),m+=d.shift(),_="C",L.push(h,m);break;case"Q":L.push(d.shift(),d.shift()),h=d.shift(),m=d.shift(),L.push(h,m);break;case"q":L.push(h+d.shift(),m+d.shift()),h+=d.shift(),m+=d.shift(),_="Q",L.push(h,m);break;case"T":c=h,u=m,y=l[l.length-1],"Q"===y.command&&(c=h+(h-y.points[0]),u=m+(m-y.points[1])),h=d.shift(),m=d.shift(),_="Q",L.push(c,u,h,m);break;case"t":c=h,u=m,y=l[l.length-1],"Q"===y.command&&(c=h+(h-y.points[0]),u=m+(m-y.points[1])),h+=d.shift(),m+=d.shift(),_="Q",L.push(c,u,h,m);break;case"A":g=d.shift(),b=d.shift(),f=d.shift(),k=d.shift(),x=d.shift(),W=h,X=m,h=d.shift(),m=d.shift(),_="A",L=this._convertPoint(W,X,h,m,k,x,g,b,f);break;case"a":g=d.shift(),b=d.shift(),f=d.shift(),k=d.shift(),x=d.shift(),W=h,X=m,h+=d.shift(),m+=d.shift(),_="A",L=this._convertPoint(W,X,h,m,k,x,g,b,f)}for(var v=0,w=L.length;w>v;v+=2)L[v]+=t,L[v+1]+=i;l.push(new n(_||U,L))}("z"===U||"Z"===U)&&l.push(new n("z",[]))}return l},_convertPoint:function(e,t,i,n,a,s,l,h,m){var V=m*(Math.PI/180),U=Math.cos(V)*(e-i)/2+Math.sin(V)*(t-n)/2,d=-1*Math.sin(V)*(e-i)/2+Math.cos(V)*(t-n)/2,p=U*U/(l*l)+d*d/(h*h);p>1&&(l*=Math.sqrt(p),h*=Math.sqrt(p));var c=Math.sqrt((l*l*h*h-l*l*d*d-h*h*U*U)/(l*l*d*d+h*h*U*U));a===s&&(c*=-1),isNaN(c)&&(c=0);var u=c*l*d/h,y=c*-h*U/l,g=(e+i)/2+Math.cos(V)*u-Math.sin(V)*y,b=(t+n)/2+Math.sin(V)*u+Math.cos(V)*y,f=r([1,0],[(U-u)/l,(d-y)/h]),k=[(U-u)/l,(d-y)/h],x=[(-1*U-u)/l,(-1*d-y)/h],_=r(k,x);return o(k,x)<=-1&&(_=Math.PI),o(k,x)>=1&&(_=0),0===s&&_>0&&(_-=2*Math.PI),1===s&&0>_&&(_+=2*Math.PI),[g,b,l,h,f,_,V,s]},buildPath:function(e,t){var i=t.path,n=t.x||0,a=t.y||0;t.pathArray=t.pathArray||this.buildPathArray(i,n,a);for(var o=t.pathArray,r=t.pointList=[],s=[],l=0,h=o.length;h>l;l++){"M"==o[l].command.toUpperCase()&&(s.length>0&&r.push(s),s=[]);for(var m=o[l].points,V=0,U=m.length;U>V;V+=2)s.push([m[V],m[V+1]])}s.length>0&&r.push(s);for(var l=0,h=o.length;h>l;l++){var d=o[l].command,m=o[l].points;switch(d){case"L":e.lineTo(m[0],m[1]);break;case"M":e.moveTo(m[0],m[1]);break;case"C":e.bezierCurveTo(m[0],m[1],m[2],m[3],m[4],m[5]);break;case"Q":e.quadraticCurveTo(m[0],m[1],m[2],m[3]);break;case"A":var p=m[0],c=m[1],u=m[2],y=m[3],g=m[4],b=m[5],f=m[6],k=m[7],x=u>y?u:y,_=u>y?1:u/y,L=u>y?y/u:1;e.translate(p,c),e.rotate(f),e.scale(_,L),e.arc(0,0,x,g,g+b,1-k),e.scale(1/_,1/L),e.rotate(-f),e.translate(-p,-c);break;case"z":e.closePath()}}},getRect:function(e){if(e.__rect)return e.__rect;var t;t="stroke"==e.brushType||"fill"==e.brushType?e.lineWidth||1:0;for(var i=Number.MAX_VALUE,n=Number.MIN_VALUE,a=Number.MAX_VALUE,o=Number.MIN_VALUE,r=e.x||0,s=e.y||0,l=e.pathArray||this.buildPathArray(e.path),h=0;hn&&(n=m[V])):(m[V]+so&&(o=m[V]));var U;return U=i===Number.MAX_VALUE||n===Number.MIN_VALUE||a===Number.MAX_VALUE||o===Number.MIN_VALUE?{x:0,y:0,width:0,height:0}:{x:Math.round(i-t/2),y:Math.round(a-t/2),width:n-i+t,height:o-a+t},e.__rect=U,U}},e("../tool/util").inherits(s,t),s}),i("zrender/shape/Ellipse",["require","./Base","../tool/util"],function(e){var t=e("./Base"),i=function(e){t.call(this,e)};return i.prototype={type:"ellipse",buildPath:function(e,t){var i=.5522848,n=t.x,a=t.y,o=t.a,r=t.b,s=o*i,l=r*i;e.moveTo(n-o,a),e.bezierCurveTo(n-o,a-l,n-s,a-r,n,a-r),e.bezierCurveTo(n+s,a-r,n+o,a-l,n+o,a),e.bezierCurveTo(n+o,a+l,n+s,a+r,n,a+r),e.bezierCurveTo(n-s,a+r,n-o,a+l,n-o,a),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-e.a-t/2), +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.padding),i=this.rcOption.width,n=this.rcOption.height,a=this.zr.getWidth(),o=this.zr.getHeight();switch(this.rcOption.x){case"center":e=Math.floor((a-i)/2);break;case"left":e=t[3]+this.rcOption.borderWidth;break;case"right":e=a-i-t[1]-t[3]-2*this.rcOption.borderWidth;break;default:e=this.parsePercent(this.rcOption.x,a)}var r;switch(this.rcOption.y){case"top":r=t[0]+this.rcOption.borderWidth;break;case"bottom":r=o-n-t[0]-t[2]-2*this.rcOption.borderWidth;break;case"center":r=Math.floor((o-n)/2);break;default:r=this.parsePercent(this.rcOption.y,o)}return{x:e,y:r,r:i/2,width:i,height:n}},__drictionMouseDown:function(e){this.mousedown=!0,this._drictionHandlerOn(e)},__drictionMouseUp:function(e){this.mousedown=!1,this._drictionHandlerOff(e)},__drictionMouseMove:function(e){this.mousedown&&this._drictionHandlerOn(e)},__drictionMouseOut:function(e){this._drictionHandlerOff(e)},_drictionHandlerOn:function(e){this._dispatchEvent(e.event,e.target._roamType),clearInterval(this.dircetionTimer);var t=this;this.dircetionTimer=setInterval(function(){t._dispatchEvent(e.event,e.target._roamType)},100),h.stop(e.event)},_drictionHandlerOff:function(){clearInterval(this.dircetionTimer)},__scaleHandler:function(e){this._dispatchEvent(e.event,e.target._roamType),h.stop(e.event)},_dispatchEvent:function(e,t){this.messageCenter.dispatch(r.EVENT.ROAMCONTROLLER,e,{roamType:t,mapTypeControl:this.rcOption.mapTypeControl,step:this.rcOption.step},this.myChart)},refresh:function(e){e&&(this.option=e||this.option,this.option.roamController=this.reformOption(this.option.roamController),this.rcOption=this.option.roamController),this.clear(),this._buildShape()}},s.inherits(t,i),e("../component").define("roamController",t),t}),i("echarts/layer/heatmap",["require"],function(){function e(e){if(this.option=e,e)for(var i in t)this.option[i]=void 0!==e[i]?e[i]:t[i];else this.option=t}var t={blurSize:30,gradientColors:["blue","cyan","lime","yellow","red"],minAlpha:.05,valueScale:1,opacity:1},i=20,n=256;return e.prototype={getCanvas:function(e,t,a){var o=this._getBrush(),r=this._getGradient(),s=i+this.option.blurSize,l=document.createElement("canvas");l.width=t,l.height=a;for(var h=l.getContext("2d"),m=e.length,V=0;m>V;++V){var U=e[V],d=U[0],p=U[1],c=U[2],u=Math.min(1,Math.max(c*this.option.valueScale||this.option.minAlpha,this.option.minAlpha));h.globalAlpha=u,h.drawImage(o,d-s,p-s)}for(var y=h.getImageData(0,0,l.width,l.height),g=y.data,m=g.length/4;m--;){var b=4*m+3,u=g[b]/256,f=Math.floor(u*(n-1));g[b-3]=r[4*f],g[b-2]=r[4*f+1],g[b-1]=r[4*f+2],g[b]*=this.option.opacity}return h.putImageData(y,0,0),l},_getBrush:function(){if(!this._brushCanvas){this._brushCanvas=document.createElement("canvas");var e=i+this.option.blurSize,t=2*e;this._brushCanvas.width=t,this._brushCanvas.height=t;var n=this._brushCanvas.getContext("2d");n.shadowOffsetX=t,n.shadowBlur=this.option.blurSize,n.shadowColor="black",n.beginPath(),n.arc(-e,e,i,0,2*Math.PI,!0),n.closePath(),n.fill()}return this._brushCanvas},_getGradient:function(){if(!this._gradientPixels){var e=n,t=document.createElement("canvas");t.width=1,t.height=e;for(var i=t.getContext("2d"),a=i.createLinearGradient(0,0,0,e),o=this.option.gradientColors.length,r=0;o>r;++r)"string"==typeof this.option.gradientColors[r]?a.addColorStop((r+1)/o,this.option.gradientColors[r]):a.addColorStop(this.option.gradientColors[r].offset,this.option.gradientColors[r].color);i.fillStyle=a,i.fillRect(0,0,1,e),this._gradientPixels=i.getImageData(0,0,1,e).data}return this._gradientPixels}},e}),i("echarts/util/mapData/params",["require"],function(e){function t(e){if(!e.UTF8Encoding)return e;for(var t=e.features,n=0;n>1^-(1&r),s=s>>1^-(1&s),r+=n,s+=a,n=r,a=s,i.push([r/1024,s/1024])}return i}var n={none:{getGeoJson:function(e){e({type:"FeatureCollection",features:[{type:"Feature",geometry:{coordinates:[],encodeOffsets:[],type:"Polygon"},properties:{}}]})}},world:{getGeoJson:function(i){e(["./geoJson/world_geo"],function(e){i(t(e))})}},china:{getGeoJson:function(i){e(["./geoJson/china_geo"],function(e){i(t(e))})}},"南海诸岛":{textCoord:[126,25],getPath:function(e,t){for(var i=[[[0,3.5],[7,11.2],[15,11.9],[30,7],[42,.7],[52,.7],[56,7.7],[59,.7],[64,.7],[64,0],[5,0],[0,3.5]],[[13,16.1],[19,14.7],[16,21.7],[11,23.1],[13,16.1]],[[12,32.2],[14,38.5],[15,38.5],[13,32.2],[12,32.2]],[[16,47.6],[12,53.2],[13,53.2],[18,47.6],[16,47.6]],[[6,64.4],[8,70],[9,70],[8,64.4],[6,64.4]],[[23,82.6],[29,79.8],[30,79.8],[25,82.6],[23,82.6]],[[37,70.7],[43,62.3],[44,62.3],[39,70.7],[37,70.7]],[[48,51.1],[51,45.5],[53,45.5],[50,51.1],[48,51.1]],[[51,35],[51,28.7],[53,28.7],[53,35],[51,35]],[[52,22.4],[55,17.5],[56,17.5],[53,22.4],[52,22.4]],[[58,12.6],[62,7],[63,7],[60,12.6],[58,12.6]],[[0,3.5],[0,93.1],[64,93.1],[64,0],[63,0],[63,92.4],[1,92.4],[1,3.5],[0,3.5]]],n="",a=e[0],o=e[1],r=0,s=i.length;s>r;r++){n+="M "+((i[r][0][0]*t+a).toFixed(2)-0)+" "+((i[r][0][1]*t+o).toFixed(2)-0)+" ";for(var l=1,h=i[r].length;h>l;l++)n+="L "+((i[r][l][0]*t+a).toFixed(2)-0)+" "+((i[r][l][1]*t+o).toFixed(2)-0)+" "}return n+" Z"}},"新疆":{getGeoJson:function(i){e(["./geoJson/xin_jiang_geo"],function(e){i(t(e))})}},"西藏":{getGeoJson:function(i){e(["./geoJson/xi_zang_geo"],function(e){i(t(e))})}},"内蒙古":{getGeoJson:function(i){e(["./geoJson/nei_meng_gu_geo"],function(e){i(t(e))})}},"青海":{getGeoJson:function(i){e(["./geoJson/qing_hai_geo"],function(e){i(t(e))})}},"四川":{getGeoJson:function(i){e(["./geoJson/si_chuan_geo"],function(e){i(t(e))})}},"黑龙江":{getGeoJson:function(i){e(["./geoJson/hei_long_jiang_geo"],function(e){i(t(e))})}},"甘肃":{getGeoJson:function(i){e(["./geoJson/gan_su_geo"],function(e){i(t(e))})}},"云南":{getGeoJson:function(i){e(["./geoJson/yun_nan_geo"],function(e){i(t(e))})}},"广西":{getGeoJson:function(i){e(["./geoJson/guang_xi_geo"],function(e){i(t(e))})}},"湖南":{getGeoJson:function(i){e(["./geoJson/hu_nan_geo"],function(e){i(t(e))})}},"陕西":{getGeoJson:function(i){e(["./geoJson/shan_xi_1_geo"],function(e){i(t(e))})}},"广东":{getGeoJson:function(i){e(["./geoJson/guang_dong_geo"],function(e){i(t(e))})}},"吉林":{getGeoJson:function(i){e(["./geoJson/ji_lin_geo"],function(e){i(t(e))})}},"河北":{getGeoJson:function(i){e(["./geoJson/he_bei_geo"],function(e){i(t(e))})}},"湖北":{getGeoJson:function(i){e(["./geoJson/hu_bei_geo"],function(e){i(t(e))})}},"贵州":{getGeoJson:function(i){e(["./geoJson/gui_zhou_geo"],function(e){i(t(e))})}},"山东":{getGeoJson:function(i){e(["./geoJson/shan_dong_geo"],function(e){i(t(e))})}},"江西":{getGeoJson:function(i){e(["./geoJson/jiang_xi_geo"],function(e){i(t(e))})}},"河南":{getGeoJson:function(i){e(["./geoJson/he_nan_geo"],function(e){i(t(e))})}},"辽宁":{getGeoJson:function(i){e(["./geoJson/liao_ning_geo"],function(e){i(t(e))})}},"山西":{getGeoJson:function(i){e(["./geoJson/shan_xi_2_geo"],function(e){i(t(e))})}},"安徽":{getGeoJson:function(i){e(["./geoJson/an_hui_geo"],function(e){i(t(e))})}},"福建":{getGeoJson:function(i){e(["./geoJson/fu_jian_geo"],function(e){i(t(e))})}},"浙江":{getGeoJson:function(i){e(["./geoJson/zhe_jiang_geo"],function(e){i(t(e))})}},"江苏":{getGeoJson:function(i){e(["./geoJson/jiang_su_geo"],function(e){i(t(e))})}},"重庆":{getGeoJson:function(i){e(["./geoJson/chong_qing_geo"],function(e){i(t(e))})}},"宁夏":{getGeoJson:function(i){e(["./geoJson/ning_xia_geo"],function(e){i(t(e))})}},"海南":{getGeoJson:function(i){e(["./geoJson/hai_nan_geo"],function(e){i(t(e))})}},"台湾":{getGeoJson:function(i){e(["./geoJson/tai_wan_geo"],function(e){i(t(e))})}},"北京":{getGeoJson:function(i){e(["./geoJson/bei_jing_geo"],function(e){i(t(e))})}},"天津":{getGeoJson:function(i){e(["./geoJson/tian_jin_geo"],function(e){i(t(e))})}},"上海":{getGeoJson:function(i){e(["./geoJson/shang_hai_geo"],function(e){i(t(e))})}},"香港":{getGeoJson:function(i){e(["./geoJson/xiang_gang_geo"],function(e){i(t(e))})}},"澳门":{getGeoJson:function(i){e(["./geoJson/ao_men_geo"],function(e){i(t(e))})}}};return{decode:t,params:n}}),i("echarts/util/mapData/textFixed",[],function(){return{"广东":[0,-10],"香港":[10,10],"澳门":[-10,18],"黑龙江":[0,20],"天津":[5,5],"深圳市":[-35,0],"红河哈尼族彝族自治州":[0,20],"楚雄彝族自治州":[-5,15],"石河子市":[-5,5],"五家渠市":[0,-10],"昌吉回族自治州":[10,10],"昌江黎族自治县":[0,20],"陵水黎族自治县":[0,20],"东方市":[0,20],"渭南市":[0,20]}}),i("echarts/util/mapData/geoCoord",[],function(){return{Russia:[100,60],"United States of America":[-99,38]}}),i("echarts/util/projection/svg",["require","zrender/shape/Path"],function(e){function t(e){return parseFloat(e||0)}function i(e){for(var i=e.firstChild;"svg"!=i.nodeName.toLowerCase()||1!=i.nodeType;)i=i.nextSibling;var n=t(i.getAttribute("x")),a=t(i.getAttribute("y")),o=t(i.getAttribute("width")),r=t(i.getAttribute("height"));return{left:n,top:a,width:o,height:r}}function n(e,t){function i(e){var t=e.tagName;if(m[t]){var o=m[t](e,n);o&&(o.scale=n,o.properties={name:e.getAttribute("name")||""},o.id=e.id,s(o,e),a.push(o))}for(var r=e.childNodes,l=0,h=r.length;h>l;l++)i(r[l])}var n=[t.scale.x,t.scale.y],a=[];return i(e),a}function a(e,t){var i=t instanceof Array?[1*t[0],1*t[1]]:[1*t.x,1*t.y];return[i[0]/e.scale.x,i[1]/e.scale.y]}function o(e,t){var i=t instanceof Array?[1*t[0],1*t[1]]:[1*t.x,1*t.y];return[i[0]*e.scale.x,i[1]*e.scale.y]}function r(e){return e.replace(/^\s\s*/,"").replace(/\s\s*$/,"")}function s(e,t){var i=t.getAttribute("fill"),n=t.getAttribute("stroke"),a=t.getAttribute("stroke-width"),o=t.getAttribute("opacity");i&&"none"!=i?(e.color=i,n?(e.brushType="both",e.strokeColor=n):e.brushType="fill"):n&&"none"!=n&&(e.strokeColor=n,e.brushType="stroke"),a&&"none"!=a&&(e.lineWidth=parseFloat(a)),o&&"none"!=o&&(e.opacity=parseFloat(o))}function l(e){for(var t=r(e).replace(/,/g," ").split(/\s+/),i=[],n=0;no;o++)if(n=a[o],!n.properties.name||!t[n.properties.name])switch(n.type){case"Feature":r[n.geometry.type](n.geometry.coordinates);break;case"GeometryCollection":i=n.geometries;for(var l=0,h=i.length;h>l;l++)r[i[l].type](i[l].coordinates)}return e.srcSize={left:1*r.xmin.toFixed(4),top:1*r.ymin.toFixed(4),width:1*(r.xmax-r.xmin).toFixed(4),height:1*(r.ymax-r.ymin).toFixed(4)},e}function i(e,i,n){function a(e,t){c=e.type,u=e.coordinates,o._bbox={xmin:360,xmax:-360,ymin:180,ymax:-180},y=o[c](u),m.push({path:y,cp:o.makePoint(t.properties.cp?t.properties.cp:[(o._bbox.xmin+o._bbox.xmax)/2,(o._bbox.ymin+o._bbox.ymax)/2]),properties:t.properties,id:t.id})}n=n||{},o.scale=null,o.offset=null,e.srcSize||t(e,n),i.offset={x:e.srcSize.left,y:e.srcSize.top,left:i.OffsetLeft||0,top:i.OffsetTop||0},o.scale=i.scale,o.offset=i.offset;for(var r,s,l,h=e.features,m=[],V=0,U=h.length;U>V;V++)if(l=h[V],!l.properties.name||!n[l.properties.name])if("Feature"==l.type)a(l.geometry,l);else if("GeometryCollection"==l.type){r=l.geometries;for(var d=0,p=r.length;p>d;d++)s=r[d],a(s,s)}var c,u,y;return m}function n(e,t){var i,n;return t instanceof Array?(i=1*t[0],n=1*t[1]):(i=1*t.x,n=1*t.y),i=i/e.scale.x+e.offset.x-168.5,i=i>180?i-360:i,n=90-(n/e.scale.y+e.offset.y),[i,n]}function a(e,t){return o.offset=e.offset,o.scale=e.scale,o.makePoint(t instanceof Array?[1*t[0],1*t[1]]:[1*t.x,1*t.y])}var o={formatPoint:function(e){return[(e[0]<-168.5&&e[1]>63.8?e[0]+360:e[0])+168.5,90-e[1]]},makePoint:function(e){var t=this,i=t.formatPoint(e);t._bbox.xmin>e[0]&&(t._bbox.xmin=e[0]),t._bbox.xmaxe[1]&&(t._bbox.ymin=e[1]),t._bbox.ymaxn;n++)t=o.makePoint(e[n]),i=0===n?"M"+t.join(","):i+"L"+t.join(",");return i},Polygon:function(e){for(var t="",i=0,n=e.length;n>i;i++)t=t+o.LineString(e[i])+"z";return t},MultiPoint:function(e){for(var t=[],i=0,n=e.length;n>i;i++)t.push(o.Point(e[i]));return t},MultiLineString:function(e){for(var t="",i=0,n=e.length;n>i;i++)t+=o.LineString(e[i]);return t},MultiPolygon:function(e){for(var t="",i=0,n=e.length;n>i;i++)t+=o.Polygon(e[i]);return t}},r={formatPoint:o.formatPoint,makePoint:function(e){var t=this,i=t.formatPoint(e),n=i[0],a=i[1];t.xmin>n&&(t.xmin=n),t.xmaxa&&(t.ymin=a),t.ymaxt;t++)this.makePoint(e[t])},Polygon:function(e){for(var t=0,i=e.length;i>t;t++)this.LineString(e[t])},MultiPoint:function(e){for(var t=0,i=e.length;i>t;t++)this.Point(e[t])},MultiLineString:function(e){for(var t=0,i=e.length;i>t;t++)this.LineString(e[t])},MultiPolygon:function(e){for(var t=0,i=e.length;i>t;t++)this.Polygon(e[t])}};return{getBbox:e,geoJson2Path:i,pos2geo:n,geo2pos:a}}),i("echarts/util/mapData/geoJson/an_hui_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"3415",properties:{name:"六安市",cp:[116.3123,31.8329],childNum:6},geometry:{type:"Polygon",coordinates:["@@„„nJ‚UXUVƒ°U„ÑnU@mlLVaVln@@bn@VU@xlb@lšLnKlšƒVI„JšUVxnI@lVL@b„Ž°VX@˜b„x„nVVUnVVnU‚›@kX@VwV@„al¥UUnUWa@ƒ@wĸU„LU¥lKUa@aUI@alLVaUƒ¯anƒWkUKm@XV@VaXlW@aU_UWVUƒI¯@ma¯W¯™™I@UU@WWU@U@@UU@VkV@@WUUm@UaU@„lK@IUK„L@KWmXUWaXI@ƒ@a@a@U@U@KV¥lw„k°b²JVIVKlV@UX„la„Ul`œUVLVVVUšJ„U@Lnm@_VK@KUIW@™J@Xk@WW@U—ƒmm™XmWk@kK@aUUƒVmmkUwUmWL™@WmU@™UJmUULkKWakLWVkIƒlƒwULƒW@X°lUJ@°ULƒWV—wmJ@bmb¯Vkm@@WkWm¯wƒL@lkXƒWmXym¯UImJUbkV™@Vn¯„@V@lUbƒ@mk@maUxmlUbULWn@J—LmKUkWKkwUKƒbm„X„WxkVUKmLkVV@JUUWL@xkJUUƒV@X@VVlUbVX@xk¤šx‚¼œxWxn„‚nn@Þ¼„JVb°aVn„@šmlnXU„JlbVlkz@‚lUŽlXJmxVxXnWxXÈWlUŽ@šUxU@VX@xUL@šUÆmLnV@lWXk@@JlbXblnlJ"],encodeOffsets:[[118710,33351]]}},{type:"Feature",id:"3408",properties:{name:"安庆市",cp:[116.7517,30.5255],childNum:9},geometry:{type:"Polygon",coordinates:["@@n°‚znW„XlW@k„K°xXn‚l@Xn@l‚°Una@anI˜xXU„ŽVK@¯VIkW¯X@‚„VK„x„klJXUlKXblLVKnVVIšŽV@Xn‚@šŽXKVnVxlŽnn„UlmV@²óUkV™lW„b„lƒšƒn@VVVIn@lw@WVIXblV„@Èx‚aUaVIVVnKVLšK„ƒln@b²K@»U£ƒÑķƒġÝÅb™K™a@Im@ۍ„@kWÓkkmKÅnóJƒUÅ£›W@w„ĕ@wĉţ¯¯ƒUkK±l¯Uƒ¥UÑkÝUķ»Ý¥¯™JƒIUŽVbUl¯ÈV¼VJU¼Vb@bkLUl@„VJ@bUXǚ@lkVmXmKkLVxš‚Ž„VƒL@VkVVVlzW˜kbmLUUUbVbUV™šlÒnJlUnLllUL@bU„Vx„l‚LXVƦÈVU¦WJ"],encodeOffsets:[[118834,31759]]}},{type:"Feature",id:"3411",properties:{name:"滁州市",cp:[118.1909,32.536],childNum:7},geometry:{type:"Polygon",coordinates:["@@š„@`nnl@„xšK@X°KXV˜IXVlbXVWnX‚lL@šÈ»‚LVan@VJ„êVVn@‚X@laÞbVaƒyn@„_‚xnWVXnWl@VnUVkI@l‚nXKVLVV@V@kW@LlVô„@J@bVnnKnkVa@»lç@ƒnwšKma™UUUVњ@n™mWXalI@alVn@VwUaVU„@„nlaôJnU„VVXlJšaXXVK@UšV@VWx@nXVWšXVšUlLUbV‚ULVVnUVbUbVbš@@a„KÆnnKVK@U@UU@@a„@Vƒ°¯ÈJVIlķ@aa˜UaVKU_@mkxUI@aƒUlyU@@™wkKWmUbUnUVWbkJW_J@bƒn@Vm@@KULk@V@@bVbÅm@LW@UVVbkK@UkKWL@VULUKWIUJUbkK@_WVXU›Jka@XƒVa@kšy@aVIUUW@@m„UlLœKWÑUKVan@UkVmmIXKƒaVaUwVU@UmykU¯@±UUL@WUIVUU@KkIWaƒaU@kUUaǃUó»mKƒk¯@y@kWK@bkI¯`mn™l¯XWlkVUzUJlbUbVJl@nnm„@VULV`XnWƗbmUUn™JmUknƒJ¯km@ƒyk@kU›xL@VUbmnn¤lX@`™z@JmaULUVl@Xn@xllkXWa—aW@UVmUbƒ@mVXšWxXbWbUŽƒÒnVVnVVUL"],encodeOffsets:[[120004,33520]]}},{type:"Feature",id:"3418",properties:{name:"宣城市",cp:[118.8062,30.6244],childNum:7},geometry:{type:"Polygon",coordinates:["@@Vb@„XL˜JXxlIXxlVlV@I²¤šnlUnVšU@VULWVUJ@Lnb@lV@UnV@@VVVlLnbnJ‚UVkUUVWn@@anUVnVJVIV‚@@nUJVbUb‚„@VUbVK@bn@VbnIlxkllXVlXKWUXUlL°¤UVVb@bš„UlkXW‚ƒxXz@‚„Ila„UlƒnUlJVInVÆJ„U„LVUnV„K°@VnlVnxV@XLlK@wVL@KnUlJXU˜bnKVLX„lUw@VWlLXKm@@a„@VLnmlIVVnKn@škVašVlwk@@a@k@ƒVIUa™@maUa@wna@kmWƒ™UUmVUIVǗ@aƒKm™aƒ™kU™J@InmUUaVa„k‚lX@Vk@m@VU@wnK@alKVUkUkKƒbmUkmƒ@U£WVk@@UÝbbƒaÇx@b@WVUa¯ƒ@wVwUUV@VwnK@KWaŁ@KšIUyUI@WmXó™UbWaKm™@km@IUyƒIUaWKƒx@zUKUL@llVUnkLVVkJWX@VUKUVƒIkVWakb@VWb@n@JkXUlmL@xkL@`VxšLUÈUJ@Vm@@bmIUlUL@VUVVbknm@mKUw™KVÈ@J@LV±kkJUIƒl"],encodeOffsets:[[120803,31247]]}},{type:"Feature",id:"3412",properties:{name:"阜阳市",cp:[115.7629,32.9919],childNum:6},geometry:{type:"Polygon",coordinates:["@@V™nƒš@ša„k°aš±@‚¥@UUI@aUmlwUUx›b@¥XU@mmI@a@Kn@@_W@@W„I@mšUVVXUl@XaV@‚K@I@a„LX@aVI°K@KVL„UUw‚yXkšK@kšKÆbXnlK@k@a„JlU@w@U@»@aXKWƒn_‚JXkVKnƒ@°LlKXƒW@¯Uƒ@aUK@kmJUw™VƒIUJ™„kŽmL™K@kka@wUVm@@am@UkUbkK@nmVƒÒ¯VU„WVVmIƒƒULk@ƒƒma@kkKƒƒ@nUbUamU™`UUVUkKVkkƒW@@bkmƒnƒmUXVKXVƒL@VƒbU„m‚™bVXJ@nmKÅI@KWKUXVJUL@VUKUX@KUKWL@LUJmaXXm@kVVV@L@VUL@VlK@L@V@LUK@VUb@UUU@°@nVxU`‚Lkn@`@XVJ@X™Vm„k@UKmV¯LVVn±Wm@Ub@JlLUl„@VLk„@lmVVn@bnV@V°IV™šaVJXI°K°V@XXVlVVU„nšKVlUš„bWXnV@bV`U„„@@m@@‚ƒ@nxmn@bXVlL@¤nb„Ul¦šVVUnJVU„Vl@@bÞL"],encodeOffsets:[[118418,34392]]}},{type:"Feature",id:"3413",properties:{name:"宿州市",cp:[117.5208,33.6841],childNum:5},geometry:{type:"Polygon",coordinates:["@@@UWU@bkW@aWU@aUIkWV™lLXb„lVIUVV@‚mn@V_n@VaUK@I‚@UašanJVU„@lV„UVnnKVVlaUa„I@wnK‚Lnll@nVlk@wVKXkl@@b„bUJ@V‚U@U„UUyVk@aVUXwlWXX‚WU¹@aU™@WUI@mlUšn„J@Il@šaXbV@VKl@XxVL@W„IšJlb„@„al@„IUUm@@aVK@¥¯—@mUķ¯bWƒk£Vm@akm@VaÅ@UVWaƒ@UJWkƒJ—UƒbWbU@UlƒXk@ƒamV@K¯nk@ƒlU@Uxmz@bU`ÇbUbÅVm£U@Ww™x@akLUK@UlakwUJWVkLmaUal@n_ƒmVUnKVUUmÅXWa™@kJmx@XUJ@bVLXxl@VVUVV„UbkLWbU@@lUVV„VVX„›K@XkJ@nU@@bV@VxUVlb„U@xXLWŽn@UxVbVĊ„V@b@XV`mnkJ@kUKmbƒaU@VbnbÆx@XU@@`k@@bl„™@@bkL@WƒakXWaU@Vmkx@XWW@@wUUUbƒJ™U¯V™@¯ÞU@WxXŽlL@bkb@ŽlVlnb™JW@kkU@mbkaWJ—IVlmz¯`UnU@mb™@@„ƒ`@bkVlœnV@b@šV@„aVxn@Vx‚KXnl@nbVK„bVK@a„_V@Vƒ„w@W„LlwnK@UmIU@VWš@šUÈ@lKnal„wš@@V°@šaUmlUUw@„ƒV@@UXK"],encodeOffsets:[[119836,35061]]}},{type:"Feature",id:"3410",properties:{name:"黄山市",cp:[118.0481,29.9542],childNum:5},geometry:{type:"Polygon",coordinates:["@@lXnlWX@VUJVnUJVzXJVx„kVJlI²l‚U@K@IUǚLVxnLn@lmUaVU@UVKVknJ@an@@UVIVǙKUw@_lK@wnKVklW@I@mXa@UlaXblU„JVUVL@UXWlIUUlKVmkU@kVKVL@y„wXLVb„JVz@Jlnš@nŽ‚LXbVaôšnW@la@UVWUa@@a@mk@WIk@VwUa¯¥m@UUVK@ImK@aX£ƒkK›ÅV™a™™ƒ_@±ƒakXWW—LƒƒƒnU@@a@¯mK@L™JUWwUV™VmbXX@lWLn`mzUJUb™Lƒ„k@makVWmkX™ambkKknƒaƒ@ƒaƒb@‚U@Unm@—ƒWVƒ@VbUbUJWIk@@lmL@°UVUVm„nš™@@kmWkb@xƒ_m@@aU@b@JlŽUz™lWxXn„@‚b²@l`„IVl„UlL@VšK„nVbUl@VlIn@@b„bVWUk‚@@bX@Valb@bnb°Vn@„xVKlbVnV@V‚x„L@ln@UXVV‚L˜"],encodeOffsets:[[120747,31095]]}},{type:"Feature",id:"3414",properties:{name:"巢湖市",cp:[117.7734,31.4978],childNum:5},geometry:{type:"Polygon",coordinates:["@@VV@blL@ŽXlWnnšnŽ˜„@VXXl@@WšIX@VJ@LšxŎxlnšŽ@bXJVblX@VVbUVn@VbUVlb@LnJVbVLV‚XLšÒVL„ÒšV„bVIVylUXk°Wšknm°_lJ@aXL@l‚z°@„lnLô¼V‚È„VUUaVKU@WW@@UUa@knmVLlaV@„a@kšak±@UmwkKmk™lj™ÝUUkL@mlIVmnÝWkkUÝ@KƑĉ™a@»ƒmma@mX™¤¯Uƒw@ƒ@UU@bU±±L@akmƒ„™LUKmLUUUJVbbÇwƒ@kUWaUJ@Xkxm@UJUUm@™„k„ƒ‚ƒakXUšVl±ôU@kn"],encodeOffsets:[[119847,32007]]}},{type:"Feature",id:"3416",properties:{name:"亳州市",cp:[116.1914,33.4698],childNum:4},geometry:{type:"Polygon",coordinates:["@@lU@Un@@anUlw@KVmUwlaX_lKna@KU@@kWKUU@ankW™XK˜@@V²VVIÈU@al@VaÈamK@wU™@klaUƒV@XƒVUU»WUUbkmUkVmk@aÈw@mWU@VkIkVWKUÑķXȭºU¯lƒ@kkLWmÅa™L@l™LWlzVxƒVUK@L¯LUJ@bWƒK@b@JLU@Wbk@WVUU™V@nƒJ@XX@@`m@@L@bnJ@nWV@¦œa‚wVVkxVn@bVJ@V¦@Ž™²¯bƒl™b™@m„UšUŽƒŽ@¼ƒ¦Xb‚UV`@nnxUxWLkUkVWKkV@XV@@VVL@VX„@lVV@L@blL@`šL@xXKVL‚@„VnUš@lwnU@ml@XnV@@UVW°LnalƒUI@aUK@a‚a@U„kXW@I@mWL@UXK@UVW@U‚@@k„Wn‚@@V„@XblaVxšL@bVKXb„IlJ"],encodeOffsets:[[119183,34594]]}},{type:"Feature",id:"3417",properties:{name:"池州市",cp:[117.3889,30.2014],childNum:4},geometry:{type:"Polygon",coordinates:["@@„V°°ĊŤ@xƒĖ@xœXƤ„VôIÆmnLllXÔ@lƒÜŽn@@JšbšLÆaĢÞĸ„°VVUUKVanK@UV@VL„VVn„ln@‚xnklxXamk@WV@Xa˜@naVk„Klk™@mkUWwkJWw—IWK@ƒUaUwWIUyVIUmVI@UXWmkkW‚—KUUVWm@@kƒKw@U‚UUmkaULƒwm@¯Uma@akaUbW@@a@VlUXƒa@am@kJ@UVkUaƒm™L@UkKƒVUkƒJk_±@aƒ@WmXwÇkkaVaUa±ƒœwV@VkƒwnyUaW@UU¯amLk@m™@kmmU™™¯K@L@lUX¯ƒWlkXƒŽVb„bƒVUL@J@LVKnlJXnlb@`nXlalV@bnL@Vnb˜¼@lXbWlkL™K@zUJmIUxUVUVmX","@@llUL@VlxšL@a@UƒwXa¯@"],encodeOffsets:[[119543,30781],[120061,31152]]}},{type:"Feature",id:"3401",properties:{name:"合肥市",cp:[117.29,32.0581],childNum:4},geometry:{type:"Polygon",coordinates:["@@„L„xV‚ĊLÞkšVlVVXaWaXwW™nU„@‚anVVUX@˜bXblWkk@wWmk@VUVKnb@Išy@_kWm£nmVa@U‚KœwlVl@„zn@°l„IlmnVšIVmnV˜aXÅWmU_VK@Unƒmmk@UIVakaƒa™UƒÑUK™ÑWKUUKUamI@KkaVUUam@VUUa@UkWUaWI@a™kmōw™wUL@`mn@KƒV™IUVUUUK›Vk_ƒVkbWƒ@VkUULUJ±I¯aƒlkxU¦@L@V@V@b@b@„WJXbWVXn@LƒKVL@JkLƒŽV@Vbn@VV@XU@UlV@@VV@V@XXV@@VšJ°š°Xnb°@„JUVVXV`@bkXWŽUbU@WŽn@VLXlm„°bV„UbkK@bVJ@bVbkLV¦ƒKķV@x@„XbmVVVk¦"],encodeOffsets:[[119678,33323]]}},{type:"Feature",id:"3403",properties:{name:"蚌埠市",cp:[117.4109,33.1073],childNum:4},geometry:{type:"Polygon",coordinates:["@@VÒXLlUlJ@UXV@nÇx@bnlUVllnVaXVV¼UVW„U@V„²wVV@Vl@„VnwlIš@XbÆWVnUVmLUV„nm`k@VbnblKXUVIlxkb@VVLlK@bšwXxV@n¤ÆUVaÈaV_@anyVwV@„kl@°m@LnU„bl@„WVkV@Xa„a˜V„IXl‚IV‚„@XbVUÆ@XKWwUkmW@_UmnIlJXkWKXmV@‚w@_XV@Kl@kU@KlX@@UUUUKWLm@klJVUUmk@mXUWmXwƒ`m@„zUbÝakbW@m@UUƒéUIm@UbKǼ@™kKWXmWUkaWU—JWU¯L@W™Lƒwk@mm@_™ƒÅl™UVkmWUnV@VWLUb™bƑĬ¯l"],encodeOffsets:[[119543,33722]]}},{type:"Feature",id:"3402",properties:{name:"芜湖市",cp:[118.3557,31.0858],childNum:4},geometry:{type:"Polygon",coordinates:["@@„bVaV@XllLXU°ŽlL@V@VUnVl¯Ikš›VUVU@@b@lUXUWmb„n@¼šbƒĊ‚LÞ@lVXlmÞUnkJ@nlKVVšÞXklWVaVI@aUKn»lL@Kn@‚XXwlm@mn°@„V@Wy„wXlWVk™ƒ@aUaVU¯£kKWVXVWLUkkWlkkwmJUam@@aULVa@UƒVaUaVI@m‚@UUJUIUmmV@bm@UXVVUlVmImakKUU@UU@VmU@@kma@KVIXUVK@U™VmUkV™m±£@JkU@nlšk‚ƒLUlmb—@WbU@@XnlWb"],encodeOffsets:[[120814,31585]]}},{type:"Feature",id:"3406",properties:{name:"淮北市",cp:[116.6968,33.6896],childNum:3},geometry:{type:"MultiPolygon",coordinates:[["@@lnnK@¦n@@V‚V„@@VV@nIV„V@VW²a@b@bVnUVVV@V™z@lš@°UšV„IVaVV@x@ŽXX@WlwUnV@XblW„b@XlK@aš@kƒ@al@@_V@@WÅwmaUaV@„bnaVL@llInmU_@W@aƒUUĉUaVwm@XWK@wƒVkaVUUwU@@aV@@mlI@WœLWƒUUUƒVU@kV@XalKVaUƒVUUUk@WwUK@aVI@WƒUk@@UUU±xkb@lVš@xnLÇbUbk@@bÇVUJ±U@U—@WLXšml@bVVXL@lV@@LmbkLW`kbVxUn@LkxmV@bm@@VkV"],["@@VVVkV@¥@UV@U@VUUJƒkWakKUšlXVJ@bXV@blX@aXV@V"]],encodeOffsets:[[[119183,34594]],[[119836,35061]]]}},{type:"Feature",id:"3404",properties:{name:"淮南市",cp:[116.7847,32.7722],childNum:2},geometry:{type:"Polygon",coordinates:["@@°kƒīšaVaXK@U‚UVmnXUlšVÆkVKUUUmmU„ÑkU™UÝlĉKUƒwƒKƒbU@UxW@@lœmVUUVmUUƒmƒw—aW„kL¯K@Žm„ULWlIm`X„WL@b@¼@V@xkVƒI@b@l@lk„V°Ȯ¹ĸW"],encodeOffsets:[[119543,33722]]}},{type:"Feature",id:"3405",properties:{name:"马鞍山市",cp:[118.6304,31.5363],childNum:2},geometry:{type:"Polygon",coordinates:["@@šNJnllLnxV@laXLVKma„aXbVI„bVKVVVIVyn@n_ƒƒW@@ƒ„UnJlUVVXlLnaUWlV@VV„IXW@_W@XK@K@UVUUwVamÑXmmwƒw™KUnUK™çU@ƒJƒU¯@mŽ@nknWxWm@@LkKm¼VL@bUJUbkXWl"],encodeOffsets:[[121219,32288]]}},{type:"Feature",id:"3407",properties:{name:"铜陵市",cp:[117.9382,30.9375],childNum:3},geometry:{type:"MultiPolygon",coordinates:[["@@„ÒV¤@¼V²@aVV@Ž@„„x°Vš£nW‚@nbnaVXVW@k@aV@VUœUl™°JUkVm@U@UkK¯WVkKWkU@Ubƒakwmlwm@ƒkUmƒUUKU@@VmLUbVLUV¯U"],["@@LllUL@VlxšL@a@UƒwXamK"]],encodeOffsets:[[[120522,31529]],[[120094,31146]]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/ao_men_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"8200",properties:{name:"澳门",cp:[113.5715,22.1583],childNum:1},geometry:{type:"Polygon",coordinates:["@@HQFMDIDGBI@E@EEKEGCEIGGEKEMGSEU@CBEDAJAP@F@LBT@JCHMPOdADCFADAB@LFLDFFP@DAB@@AF@D@B@@FBD@FADHBBHAD@FAJ@JEDCJI`gFIJW"],encodeOffsets:[[116325,22699]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/bei_jing_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"110228",properties:{name:"密云县",cp:[117.0923,40.5121],childNum:1},geometry:{type:"Polygon",coordinates:["@@vIHZDZQtDLNMXIbHRCXXITbJ@H`LGPRDDJNCLHTOCWFGvGBUJMKGFO^IHWXITQCI’Y^AXGfRˆDXF`DJOLB~G\\DZIHHpErUVMhHb]\\M†BVF@FTP`@zTbD\\@~M\\K`H^EVODWICAakAQXoIcCOCIgGYNWFWNGGKKGaJEGMEIKYJUT_J_Go@_SyQaSFMEGTcYOQLIIi@EKAUPCV[EEXQCW|aMUMAaYCYNIDGGACIMGGSKDQGaF_C[GaB@GOIiOKAYL“mI@CN]F[SWWAcKKI@HMUimEKbeYQYISNUOcBKPIFBNgvDPGZYFSf]CMSIWGEUFgDIQ[MeDMJS@RR@LphFPCHaBAJKF@J]IBJO@HlO@@RKAMPJHCNDJTHFP@ZGNANBRFH@J_fM^ONJNF\\VTDJHDON@XRND\\XRCPVETCLBVKDFJINHRGPRV@\\CLJN@VbXbLVT"],encodeOffsets:[[119561,41684]]}},{type:"Feature",id:"110116",properties:{name:"怀柔区",cp:[116.6377,40.6219],childNum:1},geometry:{type:"Polygon",coordinates:["@@JHTVHXCHPfnDJGHNDJSB[JSBGVSAOH@PMPuDEHHXZN@PHF@ZLJ@LHVYJA\\OFWP]BMtMBSRGV[JeVAPQVIFENMD¡–@^NV\\JH@NNL@NM\\kTQ\\I^FNIpBHGTBFFAZQfKDIXQTLXFXNNVMVHRGpCFLlRLEVBBH`IVO\\G`RDPAXLXBXORHZEHTDLLN@VGTMrQNFPeASKG@GMOAKBYMK@GTUHUXSHMVDNMOUEOZMJML@^KRACMZEZMRQLUHE@OFENPR@DI\\ChMHIDG\\GJMDWHCKGMDCIQCHO_K@GaIJSWWQDaGWJMNCKRsCYGYuJUSaKaW@UIMDK@[QUHOGQJMEILCAUDKFSOUQD[WMC‚Q@WPMGCCIUSE[IMPMN]`e@IEGAQBMHM@YEOSGCIDMIGNOLB@QP@GkP@AI^J@ILEBIbADGEOog@KQQWSekWQQUOFKZLF@PUNmIaHIUeBCTSHENcJa@_IWSaGu`GLSBKJQFOXGDXVQVOBIHcDSJWBEFGTMH[^mLaXcHiKElTRKtFXZ`MHMPCNRDxZˆB\\ICIHK@KŽHbIVFZ@BPnGTGbDXRDJaZKRiGEFSFEJhjFNZFjn"],encodeOffsets:[[119314,41552]]}},{type:"Feature",id:"110111",properties:{name:"房山区",cp:[115.8453,39.7163],childNum:1},geometry:{type:"Polygon",coordinates:["@@h@bl@HRJDZ``TA\\VVD^H`\\pF\\JŒ`JGv@ZO\\GPSTEjPTR`FnEbDTDHEhLFMTK@ETSPULKEI@OVISKSJACEQNQbV˜IXGDIN@dMB[IIBcN]ZHNLP@XOWCFWŠCNRHTpATD@^NVNLED@Rh@jCEF}E[OOHUEW]W@QGGDIQSH_MmFmCUT_K]i@MHCMW—FCF‹E{BMHMPOHKS]CFNGBELDH_@BcAKOACESAOBELaXAROB@FODMEDWJAG[aE@UM@DImEWJMC@OeCA{aE[@{L@MINUCQXKfUJORCHqJBF@TCXWNQX]M[EAJO@@KMBQJIC]EWMCCUBEBFHKDOTMBGNGF]MWDBRDdMDQVyE@LPVHDCP@JVVMTG~HNSH[CmRUvHPHBbA\\PTNRC\\YNJ€PRARPJDDR"],encodeOffsets:[[118343,40770]]}},{type:"Feature",id:"110229",properties:{name:"延庆县",cp:[116.1543,40.5286],childNum:1},geometry:{type:"Polygon",coordinates:["@@^AXOPEB[ZIGU@KKI@YGE@OYMGWFGvCNO@OPGTBHUTA\\ITACIGMIHmCOeDGGWSUIGimYEEMgiFITEFEjHLQbYCIWQaCSHmHAOY@UEaJG@LGLDJ[J‡AwYQCDMNONGY_EWLsSQFkMO[NWAIGaIYL@HMBOKiOQDWEUDMQSF_QIUBWdg@[NaAKQ@M]OQ@WhgLUMMFYQDIRCEUZOOCIOJ[KIUMKL@HIDKVEBM`HJAJSJUdBLGNEdMBMO[BYEWJSNKNaD]PE\\SjOT_RQVEZPpƒNQXfŠNA~lNG`@PNLp¼RFLfbdKbATUh@FSNWjGFZVLFHVA~X¨PPROfFJbNJPLFbENJPrEFNPFRHDDJdENJLVEPBJTVTHGHFRFH@PXP\\ORQHW\\BjWFDERLPPBbB\\E`B\\D\\L`@F]FCnJ^AZL"],encodeOffsets:[[119262,41751]]}},{type:"Feature",id:"110109",properties:{name:"门头沟区",cp:[115.8,39.9957],childNum:1},geometry:{type:"Polygon",coordinates:["@@V@XMnGPY²‰JQNEhH\\AZMPDVTTDZCPiJkHSHCjIdFtEHITCNITQEKUAMCEIKCECABYESKFWAKBEIIHABGDCKCAIHMHALKEI\\CFIBILIJQZS]BBEECS@E@@C]COKI@CABAAEEDMGƒCH]A[M@CJWH—JaUMRFRBDTITLUJ@PFJKLOVST@FSLENgKGFSCaCmF_ESQiOSFOT[HYPu@IH‹_[IoE_[]GUC[USB__CYQI@Gakg@qZeHQNMNV\\FVLPgJAFJPRLCH[XcPELUT[JiV_EELFTADBXRTRLJC@fHXHHbPd`fR@NfT`@TLplHMpCEJHJBVLFŽ@JT‚VnG^KXDXHNVGRLRXFJVdDHSNWLGfEzA"],encodeOffsets:[[118635,41113]]}},{type:"Feature",id:"110114",properties:{name:"昌平区",cp:[116.1777,40.2134],childNum:1},geometry:{type:"Polygon",coordinates:["@@VNLJI\\JPPDYPFVQDCJZRNEVNhKXgR@^P@NLRbB\\Mh@XcVARJE`RTCNFV€XRCjPPLNA@GZKbJJHXB\\MNPjLdGbWnK\\]NGHSFEXATIdCJGPARUWUHCPWRELITAHKv_E@iYCaW_BQ\\Y@QIO@QDCIGZCEMWGFMFAFgHEDOCSqKCCFGAMKEAC@ODGCGs@WH@KQA@EE@CE@GEA@EH@GGUEEJEAYD@JM@@DAA@FHD@FTJEHUC@JUBKCKG@G[CIIQReAYhO@OXGDO@@FF@IHJFCPEBACBIAAKDOABXARHPNEHGbQAAKQFGIAM[C@WHKaGiCEGOA‹HUKCIokSCUSOCYN[BgGMFIR±ŠOZmHWNU@ShbbXDHVXXGJ^lZ@PZ\\Nb@\\FHJAD"], +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"],encodeOffsets:[[118940,40953]]}},{type:"Feature",id:"110102",properties:{name:"西城区",cp:[116.3631,39.9353],childNum:1},geometry:{type:"Polygon",coordinates:["@@XBDA@EIACM@IJAD]BC@SFABISAD]H@@OAEDQEW@BLE„MD@FLDh@@LDBF@@M`J@fTB@H"],encodeOffsets:[[119175,40932]]}},{type:"Feature",id:"110101",properties:{name:"东城区",cp:[116.418,39.9367],childNum:1},geometry:{type:"Polygon",coordinates:["@@DBf@@VDA@OF@@CT@FEH@@GADBMTBBECCRCGG@YS@@gDK@A‘C@PG@C^TBAJEB@TADC^IB@J"],encodeOffsets:[[119182,40921]]}},{type:"Feature",id:"110104",properties:{name:"宣武区",cp:[116.3603,39.8852],childNum:1},geometry:{type:"Polygon",coordinates:["@@RBX@RFFCŽBFU@aK@WA}CCJGAEFkCBRFD@JB@@N"],encodeOffsets:[[119118,40855]]}},{type:"Feature",id:"110103",properties:{name:"崇文区",cp:[116.4166,39.8811],childNum:1},geometry:{type:"Polygon",coordinates:["@@XBL@@bEV’D@BX@AC@MHA@EIBCCDSEMmB@EIDBME@@MG@EDUCENWD@H"],encodeOffsets:[[119175,40829]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/china_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"xin_jiang",properties:{name:"新疆",cp:[84.9023,41.748],childNum:18},geometry:{type:"Polygon",coordinates:["@@@›ρȁôƧƦóəʵסʵóƪԫʵѵͩƧͩړ›υࡓɛʵ@ȃ@óᇑѵƨɝɚôóНѺͩɜ̏ԭʵôƧɞñ@υƩ—݇ȂóƩƧ@ѵȂυœƥŌਗ—॥ɛóʵѵƧѹ˜݇̍ࢯ˜əɞυ˜ρͩ̏óਙƨƧŋôōóš̍ͩóʵן›óŋړͪƧѶ@ɜԭ—ԫƦɛȄ̍›ɝȄöςƩȂ̏œñȀ̏œƩóóŎə˜@Ő̎@ɞȀɝŎôƨóנѵȄƧ@óŏɝœóɜôŎ̍ͨςŎ@ƨóôƨɞ݈ʶóƨφó̎Ȁƨ̍ԮòѸԮמ@ѺȀ@ƪၬֆòȂñ̐òȂɜ˜óƨ̒Ŏ̑߼@φρȀ@Ő๐ς̎Ƨφ@ɝφڔ೦Ԯǿࢰ@ƦŏԮƨƨȄƧ۬ɜʶڔŐɚɚóŐôƨ߼˜ôƧƧó̐ƥóŏѺǿƦȁφƧς˜ƨƧ̒@ɜƥƦυ̐ɛƪͩƩəƪʷ̑ə@ȃƨʵנŋྸōਚԭԪ—@ɝƨŋ̒օςʵôƧ"],encodeOffsets:[[98730,43786]]}},{type:"Feature",id:"xi_zang",properties:{name:"西藏",cp:[88.7695,31.6846],childNum:7},geometry:{type:"Polygon",coordinates:["@@ôŌנœôʶ̎ͪô™óŎƨŌਚƧ̐ôςͪφ—ɚɝࢰ—݈̎Ѻ—Ѷƨôʶ०ɜਘ˜Ʀŋφ›Ѷȁ̍—ôŏɚŋ@̑ə—@ŏò̍ɜ›óƥôʷƧ̍φѹԪ̍ע@Ѹʷɜ@ôñנ@Ѷɛɞô̐ŏѶƨѸƧƥōƦœôŏô—@ƧôƩ̒ŋƨŌƦǿô̎ɜȁ̒—óʶѶôôО̒›ςƥɜНφσɛȁ̎υƨఱƧŏ@ʵƥœ@ŌóóóͩƨƧóŋ̑õóɞóɝԩͪɝρôƧ̍ƧѹͨڑŎ̑ōóƧࢭͩ̏ѵɝóఱóóԪυô@̒ƥŌ̏Ƨ̑Ȅ݇ŎƧ›ѵӏ@ɛõŏɛȄôӒƧŌѵǿɝ˜Ƨŋԫ@̏ʴƥ@óǿ̑Ȁóǿ̍ςóóυô@ʶɛñρƦƩŐó̎óœѵó̑ͪࢯОóɜן˜Ƨ̏ƥȄ߻̎̏̐ןŎɝɜöɞƩȀôöɛȀóͪ̐ƨƪ̍̎ȂƥԪυО@φɞ˜ôƪ"],encodeOffsets:[[80911,35146]]}},{type:"Feature",id:"nei_meng_gu",properties:{name:"内蒙古",cp:[117.5977,44.3408],childNum:12},geometry:{type:"Polygon",coordinates:["@@ኊȁ૊ö߼ƩɜɛנñԮɛѶóԮô@ȁѸóמ̎ගѺၬ@߼ʶԮӒ߼̎@ŐѹӒ̒Ԫƨöග̑ѶȄ̒ς।œѶɚöɞɜʴڔôôȂ̎—ѺȀς—ƨ˜ƪóԪ—ɜôɛОਕڔԭ˜ѵ̍ѹȂԫ›ɛƥ̍Ȃóɜ̎ô@ʶ݊ੲࢮʵږͪנƨôȂƧ˜̐ͪ@ŐƦƨφԬѶɜôƦ@ŐƧôôƦəŐ̏›@ŐڒѶԬô̐ʳԩНςōôŏɞ@ƨȂѶəóƧ̒ػ̎ó̐Őנóƨô̒@ƨɚɚ@עԫɛɛ@ȁυͩƥʳòևρ—̑ࡗƧͪ༃ॣԮփ̎Ʀ@ôô@ôō@š@ȁѵóƨ̍υȃóʵɛƨƥóυȂóəƪ›̐ρƧͩɜԭڔȄ̎عƧȁ̐ŏó̍ɛ›ƥƧ̑óρŐ@Ƨ̏˜ɝəɛ˜߻ͩ̍ͩɝО̍ƪƧóóӓƨóƧʳ݇@ɝςƪœ@ʴƩ—ƧƦôƨɛȄə›Ƨŋυ›óͩѵ@ɝǿóŌן̍ɛ˜óО̍œ̑̏ôȁ̍ŏòȁñóƦͩ@ǿə@ɛƧ̑˜ρȁυô̍օѹœóȃə™@ȂσʵѷƪòƩ̍—ôó߻ۯôʳƧ™óšõʵѵóѹɜ̍ȂѹôɛŌφֈƩͨρóυӑóޟఱ̑݇ͪóƪƨŌóȄڔԬƩςםñ̑ȃѵŐԭŏƨȁɛǿρôõɚɛóƧОə@ѹ̐ѵöԪͨôͪɛ̒ןŏƧƥóôƥƧɛŌôóɝó@̒݇Ӓ̒Ō@Ŏԭࢰ"],encodeOffsets:[[99540,43830]]}},{type:"Feature",id:"qing_hai",properties:{name:"青海",cp:[96.2402,35.4199],childNum:8},geometry:{type:"Polygon",coordinates:["@@ƨ@ôƪ݈ȁƪ˜@φɝòóƨԮʶɛ̐ѹͪôОəóƧɞᇒѶ@ôږô@ǿѶ›ƪȁςœɜͩφ˜ςŋɞôѶɛƨŌɞ—@ɚςŐñԪॢͩƨȂɞóƨŐ̎ŏעӏ̎óƧƦôœ̒ȁɜ›ςͩ̒œɚɛƨôƨɝφɛóȁƨŋóóɚͩƨóóƩ@ƧəŋƦƩ̍@ƧƧôǿυ̑@ȁɞǿõŏρƥסɚƧóτԫɞœôƧƦ@ñȃòñƥóυôôѹѵ—@ŏ̏Ȅɝó@ȂəŌóəѹƦ@Ő̍Ōυ݈ԩŐƧóôƧ̑›ôʵɞƧ̑ѵôƩɞƧ̑œóНѵóôʵ̑˜ɛȂó̍ƥȀƧŋ̑Ōóƪ@ƨó˜óŐƥ›ƦŎѷƨѵƧ̏Őɝóѵɜן@óòɛ@ѷʸס@ԩ̎υѺƨ̎óʸôƦɛœñ̎@Őɚ˜@̒əŌóŐ̎˜"],encodeOffsets:[[91890,36945]]}},{type:"Feature",id:"si_chuan",properties:{name:"四川",cp:[102.9199,30.1904],childNum:21},geometry:{type:"Polygon",coordinates:["@@ô˜ôŋó̑Ԯ̒ɛОמͪƨōöͫ߼ƥôȃƨóóñôƧóƧôōڔŏƨŐ@Ŏô˜òƥѺŎ@ōɜóנ˜ôǿô›ƦôԮ̍ɜôɚ›Ƨ—ñɛɚȁ̍Ƨɛևυ@óóôŋρԭɝ@Ƨʸ̍ŏυɜƧƧóƧƨȁρ̍ƨȃɚ—ôʵφóô̑̏Ȃ̑ʵɜʵɞ@ƨʳסƩóŎə—óɜƧôƩƧρ˜óôôô@ŎƧƨƨƪѹ˜ó̍̍Ʃ@̏ѹНôޟ̍Ʃóƪυɝɛ—əƨôŎɛȀ@Ȃ@ñɝʶ@Ōρנ̏—õóɛͨƨȂѵОɛʵ@̏ƩŐó߼Ƨల̍φɜȂυτɛОρƦɝƨóƪ̒Ѷɝƨóʶ̒œóƨƨôԪŏφ݇̎ŋ@ŏѺƥôɚɚŋ@ȁɞô̐ȃ@ŐѶ˜óѺφóƦôñòòȄ"],encodeOffsets:[[104220,34336]]}},{type:"Feature",id:"hei_long_jiang",properties:{name:"黑龙江",cp:[128.1445,48.5156],childNum:13},geometry:{type:"Polygon",coordinates:["@@ᇔȂਚНƨŐѶŏöƥςŏñƧƦóƨȁ@óƨ—óȁφӑóóƨ˜óǿ̎̑ôНɞ—ó̑ɜə߼›̎ǿ̒ôڒӑφ@Ƨȁ̎̏ƥƩ̎ρశ˜ôȂςƨφ@נɞ݈˜̑ƥƧɛƨʵƧȃƥ@Ƨƥ@ŏ̑ԩôɝρρóɛƧ›ƩͩƧó߻ʸ̍ʷѹƥɞڕõ̍öɝυ—̍ȂƧ̐̑ŏóƨñŋѹóóȁ̍›̏Ԭõʸ̏ŏ@ǿ̍@ƧОυ@ñƨòȀƥŎ̑ŐѵóɛŌóȂԫōƧŎѹñ̍ʶóОן@Ƨ̎Ѷô@Ȃ@™óŎó@@ó̍ƥԭք༄।ƨͩ̒ࡘς˜ñֈƦʴφͪ@ȂɜɜסԬə@Ƨə̑@Ƨóןô̏ŏ̍ô̑ؼôƨѵɚƧȁɝ@óŐρŎԪО̏ʴ"],encodeOffsets:[[124380,54630]]}},{type:"Feature",id:"gan_su",properties:{name:"甘肃",cp:[95.7129,40.166],childNum:14},geometry:{type:"Polygon",coordinates:["@@ڔôԮࢯ@ō̑ŋ݈ӑ@̑ɞôóôɜŋƦƨôóƨƦנŐɜ̑óͩԩͧѶõѺ̏ɚ@ƨНɜôöəςóɜȀƧȂԮŐѶŏ̒ȄמòƪρړԫôȃƧŋôƩ݈ͩɚ@@ǿɜ@φͩóŏɜӑƧōôǿ̎›ôƥƪóõ›ö@ô—ƨ˜ôƧƦôó̒ɜ@ɞŌõʶ̏Ő@ȀóôƨȂ@ʶע@@ƥ୾ӑó̑óŋôʵóɛړ@@ƩöóƩóρ—ɛƨ̑@óʷƥƥ̎ɛƧ›ôōƧǿôͩѵôɝȃɞȁõƧρóó—@ōƧŏړŐóŎôƨóƨôòƧôóȄ߻ƦõͬƧŎםͩɜНԭ̑ô̒óŌó—ƥ@óƨɝ›σԬƨôעəςƦöŐɝȀ@Ȃφ̒óȀƨƨ̎@ƥƪɚŌ@ƨôƪƧôəͪôôƧŌôȂυɜƧɞƧóəɜ̑›ρͪɛœ̑Ȃó›ƨƥ̍ôסӐ̍ŐƧŏɝôƧȁॡͪòԩρŏ@əɝ˜ƧŋѵɜɝóρŌυ—ɛͪρ›ƩȂѵœ@Ȁڕó@ȄɜʶφࡔڔœƨͪѶͪԬʶôƩעʶɚʶƥôóƨςȂ"],encodeOffsets:[[98730,43740]]}},{type:"Feature",id:"yun_nan",properties:{name:"云南",cp:[101.8652,25.1807],childNum:16},geometry:{type:"Polygon",coordinates:["@@ôɞôɝ̒öôŌƧƨôͪôô@ŋƦ›@ʶƨŐô߻ƪŏ@̐ɜʶѶНƧȁɜͧöô̐˜ςן@ŋɞʵ@ò@ȁɜǿóōɚƧɜ˜φɞôƩ̎ƪóޠѺО@̐̎ƪô̎Ѻ—ƧƩƨƧ@ōóóôóς—ƪƨƨóôɛó̑ԭ—ƥŌɛǿɝƨɛͩô›@ǿƨȁѺŌɚɛ̍ןѶНɛƧôóƥȁƦͩôŎɞ—ƨ̑ɜ—òôφ@ƨʵ@ɛѹōóȃəƨυǿóʵρƧƧŌƩɛ̏ȄñƧƧȀɝ̍ԩʶƧ̑υ—óŌƥʳɚӑóНƥô̑›óӒѵʵѹœƧӐןôƪφõŌƪ̒ԫŌƧؼƨƨס›ρȁƧœƨȂóʶó@@ʴƨôôφ̎Ŏ@Ȁƨ—ƪɚƨœóƨôôôςóޤƧŌƩŋƧԪ"],encodeOffsets:[[100530,28800]]}},{type:"Feature",id:"guang_xi",properties:{name:"广西",cp:[108.2813,23.6426],childNum:14},geometry:{type:"Polygon",coordinates:["@@ƦŋѺ̎ڔʵƨŐ@ƦמȄƪôóȂɜŌɚͩɜ@öóɜôôȂƦôɜȁ@ɞφ›óȄ̎›ƨʶɞŋƨʴɚǿ̐̎Ԭ@ôñ@̏ƨ›ρ۫ô›ɚƨƨНƪŐ̎›ƥóƦʵƥŋ@ȃóƥƧ@@ŏɝǿôυƧȁѵɛ@əóŏ̑@@ə̍›óƧó—@ȁƩ˜ρóòНƥô@Ӓ̑@óŎ̍ƥσŎυ@̍ƨ@Ō̑ôóͪƨ̒óŌړœ̏Ŏ@ŌôȄѺŎ@ɜƧʶυ@ñóɛ˜Ƨ̒ɝ˜óōƥͪ"],encodeOffsets:[[107011,25335]]}},{type:"Feature",id:"hu_nan",properties:{name:"湖南",cp:[111.5332,27.3779],childNum:14},geometry:{type:"Polygon",coordinates:["@@@քɜОƨ@öŐמóƪôƩɚ̒Ő߼ȁςͩɜòƪ—ɜȀò—ñɝò—Ѻͪ@ŏƨŋóɝôǿƨ™ɚȃóəƨȃѵͩó̍@ȃƨóóƥƨƧ@ʵƦ›óͩɜ—ɛóñԭɛōυȂ̍ƧƦō@ɛƥ—ɛȀ̑œóʷóō̍œƩŏƧОəƧóœς۬Ƨœ@̐óòԫ@̏̍əȀƧʳɝŌóɞƧ˜ƨɜóŐƨò@ȄƧŌρŋóôԪОóʶ@̎óȄ"],encodeOffsets:[[111870,29161]]}},{type:"Feature",id:"shan_xi_1",properties:{name:"陕西",cp:[109.5996,35.6396],childNum:10},geometry:{type:"Polygon",coordinates:["@@ςôöƨɝȂɞȄѶóóͪƨȀóŎƨœ̍ɜƦƦôʸ̒@ɜƧς˜ƪôõô@ƪڔ@ôɜóʶôŌô̒୽Ӓ@Ʀ@Ѻ̎ɜѺɛѶôöʶô™ƨšóʴ߼۰óô̎˜ñƪѸƩτʶ@ȁòŋəѹóǿ̑ʵ@ȁ̒ʷυփô݉ôН̏ط@ȁƨóô̏ƪõ@ʳ̐ʵ@ɝɛŋƩŌɛóןôƧŋ̒ó@ŏ̐ƥ@ŏυ@ƧƧôן̏@ƥȂѹɜəœɛóԭ̎ƥóóœóȀן—ɛô@ŎѹōñƦ"],encodeOffsets:[[108001,33705]]}},{type:"Feature",id:"guang_dong",properties:{name:"广东",cp:[113.4668,22.8076],childNum:21},geometry:{type:"Polygon",coordinates:["@@@Ȃô˜ôƨ̎œ@ɚ̒@ôŐ@ɚѶɜƨȂóφɞȀ@Őƨ@ôƦ@ȄƦŌƥʶƦôôŎôʸ̒›ɜǿƦ˜@ɜƥŎ̎ƨφȁɜŎòƥԮŎƨōóŏɛƧɝəɞƧ߼ɜςȃñȄƦŎ̒ōôòƨəƨ˜ɚН@əƨ̏ƪʵυŌəɛóəԭŏəœóŏѹœρʵɝƦ̏™ƥʳѶ›öō̑óóŋρȀυƧƥɛѹōƧôן—ɛŏѵ@óŋôʵɝ›ƪԩõ@Ƨō̍@Ƨ@@ƦɝԮƪО@@","@@X¯aWĀ„@l"],encodeOffsets:[[112411,21916],[116325,22697]]}},{type:"Feature",id:"ji_lin",properties:{name:"吉林",cp:[126.4746,43.5938],childNum:9},geometry:{type:"Polygon",coordinates:["@@נ@ôН̎ʵѺòƨōԬŎôȁɜŋѶô̒ŏƦōñǿòƧφ@ƨН̎@@Ȁ̐Őöʷ̐ԫ̎œôȂѺôòŌôƧ̒Őƨ̏̎ȁφ˜@ŋƩͩםȃƨ—@ȁ̑ʶ@Ōóôɛœƥѹ̑—συ݇@ɜρƧȃࢯƨôœəȂɛōƩɛ̏υρóõœƪʴυφ@ʶôŌóœρք@ɜƧ@ɝǿƧͪρȀƩó̏ŐƨȂ̍غړȃɛԮƨͪ̏ςƩœôɚφȁƦôɜƧôʶφȄ"],encodeOffsets:[[126181,47341]]}},{type:"Feature",id:"he_bei",properties:{name:"河北",cp:[115.4004,37.9688],childNum:11},geometry:{type:"MultiPolygon",coordinates:[["@@Ʃ̒̏ŌѺ̒Ʃ˜óȄƧŌƥͪòôñȂ̎ŐóȂ̒̐̎›ôНɜ—נ̎ôŋɞȀѶ@ôͪφœƨŌɚœɜȃóƧƨƥƪ˜@ʳƩ›ɞρ݈@υНφʵɜ˜ƦρƨƧ̍ɝóɛѹ̍ρŏ̑ôóƨ@œƧƦôƨɛ@ƥƨ@ȂƦ@@ôəŐƧʶƨŌυœ̍̎ɛŋôōɝ@óƧ̍›ƦʵѵʳôʵɜŏςôƪŋƨŌɚ@ôНƥƧ@ōѸɛ̐ô̎ʵѵНԭ@̍̍Ƨò@ȁɝ@əρυͩƪ̏ƩõƧŎƧōóšॡȄɛʶɜȀ@ɞςѶƧœƥςɛŐ@ɚɜɜ@Ŏôôςœƪς"],["@@õə@Ƨɛ˜@ŐóƦφô"]],encodeOffsets:[[[117271,40455]],[[120061,41040]]]}},{type:"Feature",id:"hu_bei",properties:{name:"湖北",cp:[112.2363,31.1572],childNum:17},geometry:{type:"Polygon",coordinates:["@@ñȄυƦöŐƩ˜óנƨƨφ@@Ő̏Ʀ@Ő̑ôƨŌנóɜôƪŋɜŌѶօڔə݈òɞōɜŎôӏƦóƨô̒óôȃƨó̎ŐôƧƪ@ƨȁςƧə̑̎Н@̍Ƨŏρôԭͩԫ—̍ʵƧšóȀôɞƧŌ@Őѹͩñ˜òɞñ˜ɛǿƩ˜ɛñρͪ߻Ȃ̑ŏƪəƩóםôõŏƧ@ɛНƥȄó›̑ѺƧ›ôφóƨƨƦƪóɜŐôóòôƨóφ̐ƨóƦ̎"],encodeOffsets:[[112860,31905]]}},{type:"Feature",id:"gui_zhou",properties:{name:"贵州",cp:[106.6113,26.9385],childNum:9},geometry:{type:"Polygon",coordinates:["@@ɜȀƦŋԮ˜ô̒ɚ˜ôōעƪƧʴɝ@ɛʶ̒ʶ̐ȁƦœóȂô@ôŏ@ōô—ƨʶѸô@ʶƨ˜ɞó@ōτöòυƨ@@əƨô@ɛ̒@Ʀɜôȃ@̍ôʵԩНôóςŌƨŋ@ȃƧñôŏƧɛƨ—ôɝƧʵ̍œôȃυœ@ɝɛȂƥóóȁɛóõôɛ@əͪɛŋôȁƩóםȃ@ƥƧŏړʶѹ̍ƥŌƦȂóôɜƨѵО̎נəɜѹŋƧȂ@ȀóœɜͪɞƧ"],encodeOffsets:[[106651,27901]]}},{type:"Feature",id:"shan_dong",properties:{name:"山东",cp:[118.7402,36.4307],childNum:17},geometry:{type:"Polygon",coordinates:["@@Ʃ̐φͪɚςɞ@@Ȃƨñ̎̎Ԯ@ѶОƨƧڔ@φН̑ŋ@Ʃ̒ǿ̎@ƨɜԬςôʶ̐ʶöԫƨƧנƥɜŎôō̎@ôŏóρƧŏԫôóƧԩó@ƥɜƧԭóƨʵɛƨ߻ӑɜНԩ˜óô̑óƧʳə™óɛƧ@õȀƧœ̍ȃɛŐóŏυО̍—óɝƩ—ԩ@ƧɚԫȄɚʶƨ˜ɞʶԪ̐ړɛƪ̒"],encodeOffsets:[[118261,37036]]}},{type:"Feature",id:"jiang_xi",properties:{name:"江西",cp:[116.0156,27.29],childNum:11},geometry:{type:"Polygon",coordinates:["@@ƧȄôɚəȄ̎ʶԬ˜ԮͪςóƨŐƪ›τɞƦōƥƧ@ŏςôóŐôô̒ʷѶ—ƪƩƩǿ@ō̒ɛôυ@—Ƨȁѹɛəƨѹ̑ƨ̏óƥѵʷô̍ɛȁôŏɝǿƧԫƧ›ôʳƥōòȃρȄ߻ɛɝƨɞɚɜƨôŐƧŎԭōñƦòԮɜôɛ˜ôͪƥœ@ʶƧƨôƦƧô@Ȅô̎Ѷͪ"],encodeOffsets:[[117e3,29025]]}},{type:"Feature",id:"he_nan",properties:{name:"河南",cp:[113.4668,33.8818],childNum:17},geometry:{type:"Polygon",coordinates:["@@φ˜̎ƪ̐˜ɞȄɚ@@Ȃעó̎ŌѺ̒ôֆॢȃô™ƨŎƨōƪöƩ̑ڔɜԩ̏ɝʵƧ—əʵԬȃƨəԪ@@Ƨ̒ŏô̍υȁƧɚ̍ôóŋ@ɝƧŋõ̑σ—@ŏɜŋôɝ̒ƧɚôôطρóóɛƩ@óƨ̍ŏƧôóȄ̑ôƧóƥôóӐɛōɝŎ݇ñړɚѵֆ@ɞ̏ʶ@ʴƩöó̐"],encodeOffsets:[[113040,35416]]}},{type:"Feature",id:"liao_ning",properties:{name:"辽宁",cp:[122.3438,41.0889],childNum:14},geometry:{type:"Polygon",coordinates:["@@ƨʴƧôôӔƨô̎ƩɞН̎ͪ߼ͪɜ—ɞɚ̐—@ƨςŏ̒ôƦƨɜœô̎ƪôςǿƨͩɞȀƨ@@ɛςփô›óŋ@ʵφυƩʳö›॥փρѹס@əɛ@ͩࢯ@ѹʵρ—ƩʶφȀƧ݈̒۬óʸɝŎѵ@ԭԫןɛƧƨƥςɛ—υʶφО"],encodeOffsets:[[122131,42301]]}},{type:"Feature",id:"shan_xi_2",properties:{name:"山西",cp:[112.4121,37.6611],childNum:11},geometry:{type:"Polygon",coordinates:["@@ɚѺñŌɚšôȄѺ›̎ֆφóςȂ̒—ɜƨɚ@@Ȁƨŋôȃƪ—ѹ̑̐ŋƪ̑Ʃρρ›óó@ōɛɛ@əɜŏƦρƨ›ρѵ@ɝɛǿɜʵóօѹ̑̍ŋסô@ȁə@ɝȃ̏—̍Ʃυ—Ƨô@Ȃ̐ظóОó݊φք̑ʸ@Ȃ̒ʶôȀ"],encodeOffsets:[[113581,39645]]}},{type:"Feature",id:"an_hui",properties:{name:"安徽",cp:[117.2461,32.0361],childNum:17},geometry:{type:"Polygon",coordinates:["@@ó̎̑Ő@ƨƪ˜Ѷǿɜ̑φ—Ʀʵ̐˜Ƨѵôóƪôôυς—ƨȂɞŏ@̍ԫôò̑ƥ—óȃѶͩƧƥôŏѺœôŏƦ—@›ƥͩƧ—ôȁυó@̑ƧɛѵʵƩƪѵ˜̑ʸóóôŏρó@ŐƦƨƥŎσɝƩœ@̎̍Оɚ̒ρƨƧȂôɜςôóظəó̑ƨóɞɛŌ@Őτ˜ö̒ƨŌ@ɞôŌ̎óƨəφȂ"],encodeOffsets:[[119431,34741]]}},{type:"Feature",id:"fu_jian",properties:{name:"福建",cp:[118.3008,25.9277],childNum:9},geometry:{type:"Polygon",coordinates:["@@̎›óȁƨӑ̒—̎ɚƨͩφŐƨɝ̎ŋóŏρ—@ōƨ›òʳəóƨō̏˜õɛƧ@ƨѵƧōəŏóŋƧô̑ɝɛʳƥ@@óɛõ@Ƨ̑ƧóȁəƧ̑—Ƨ̐@ɚəОƧ—Ƨɚóñ̑ŎóʴƨœƨԬɞȀóŐɜȂó̎ѶʸôƦƧ̐Ѻ̒ɚƧѺɜƨȂ"],encodeOffsets:[[121321,28981]]}},{type:"Feature",id:"zhe_jiang",properties:{name:"浙江",cp:[120.498,29.0918],childNum:11},geometry:{type:"Polygon",coordinates:["@@Ѷʶƨɜ@̒φôóȂƨ˜Ʀͪ@œ̐˜Ѹ̍τȂ̒̑נŐמôƪƧôӑ̑›@ƥρͩƨօ̏@@υɝó@ŋɛ@ôƩəóƧѵυó@ƩɜŋƧ@̍ŌƧɞυŏƧͪ̍ə̑˜ƧӒôȂ̍œ@˜óφ̑ɜ@ŎƪȀ"],encodeOffsets:[[121051,30105]]}},{type:"Feature",id:"jiang_su",properties:{name:"江苏",cp:[120.0586,32.915],childNum:13},geometry:{type:"Polygon",coordinates:["@@ôɞ̎˜φНôŐɜŏ̎Ȅƨ›öǿƨ@ôɜɚšƨʴ̒ôôó@Ƨ̎əԮȃԪૉöͩ̐ƧòʵφƧôʵ@óړɜóŏɜǿƧ›ɝρσȁѷ̎̏—ƥ˜óŐѹ›óŐƨƦѵͪôȄƦ˜ñ̒Ԭó@̎ɝŐƧȁρ˜óφƩóóôƨѶ̏—ƥʶυ˜ɛ̒ѵȀ"],encodeOffsets:[[119161,35460]]}},{type:"Feature",id:"chong_qing",properties:{name:"重庆",cp:[107.7539,30.1904],childNum:40},geometry:{type:"Polygon",coordinates:["@@əȂòɜƨ˜ѺɛƦȁ̐@ƪ—õŏφƥòȃƥ̍Ƨôυ̏ƧôñóóôɛŏƩôƧƥôƧóυƨœ̒ѹôœƦȃ@փƥɛ̑@@ɜƧó@ɚƧ@ñφσõ@ŎɝôƧ—@ʵѷóƧʵó˜@ŎóŐó@ôȁƥ›ó̒υôóʶə˜ƧȄς̎ƧȂôƨƨƨφɛ̎Őƨʷɞ@ςԮóŌôôφ@ɜֈ̎ƨ"],encodeOffsets:[[111150,32446]]}},{type:"Feature",id:"ning_xia",properties:{name:"宁夏",cp:[105.9961,37.3096],childNum:5},geometry:{type:"Polygon",coordinates:["@@ల̒ôޠφӒςôƪͧυևɜŋѺó̎ȁ̍ɛ@ѹס@@ʵƧȁôó@ǿ̐ŏöʵɝŋɛ@ô̑ƥóóƨƧ—ó˜ôœó@ƩôóƦ̍œóȀƨŎɛӒôŐυͪɛ@@Ȁə@"],encodeOffsets:[[106831,38340]]}},{type:"Feature",id:"hai_nan",properties:{name:"海南",cp:[109.9512,19.2041],childNum:18},geometry:{type:"Polygon",coordinates:["@@φɜƦʶ̐ôφô̎@ƨŎö@τʵƦ˜ԩ۫õН̏óƥȃƧ@Ʃəםƨ̑Ʀ@ޤ"],encodeOffsets:[[111240,19846]]}},{type:"Feature",id:"tai_wan",properties:{name:"台湾",cp:[121.0254,23.5986],childNum:1},geometry:{type:"Polygon",coordinates:["@@ô—ƩɝöƧɝѵəޣ̏ρƩԭóōóͪρɞƧОôԪ݈ଦѶɜ̒ɛ"],encodeOffsets:[[124831,25650]]}},{type:"Feature",id:"bei_jing",properties:{name:"北京",cp:[116.4551,40.2539],childNum:19},geometry:{type:"Polygon",coordinates:["@@óóó›υóôƥ@ŏóóə@ƧŋƩŌρóɛŐóʶѶʴƥʶ̎œôƨɞ@óŎɜŌ̎̍φ›Ƨŋƨʵ"],encodeOffsets:[[120241,41176]]}},{type:"Feature",id:"tian_jin",properties:{name:"天津",cp:[117.4219,39.4189],childNum:18},geometry:{type:"Polygon",coordinates:["@@ôôɜ—@ƨöɚôœôôɚŏ@óƥ@@ȁƦƧɜ@óƧƨƥ@›ƧóəН̏óѷɜ@ŎƦƨóО"],encodeOffsets:[[119610,40545]]}},{type:"Feature",id:"shang_hai",properties:{name:"上海",cp:[121.4648,31.2891],childNum:19},geometry:{type:"Polygon",coordinates:["@@ɞςƨœɛȀôŐڔɛóυô̍ןŏ̑̒"],encodeOffsets:[[123840,31771]]}},{type:"Feature",id:"xiang_gang",properties:{name:"香港",cp:[114.2578,22.3242],childNum:1},geometry:{type:"Polygon",coordinates:["@@óɛƩ@ρ@óœôȀɚŎƨ@ö@@ōƨ@"],encodeOffsets:[[117361,22950]]}},{type:"Feature",id:"ao_men",properties:{name:"澳门",cp:[113.5547,22.1484],childNum:1},geometry:{type:"Polygon",coordinates:["@@X¯aWĀ„@l"],encodeOffsets:[[116325,22697]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/chong_qing_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"500242",properties:{name:"酉阳土家族苗族自治县",cp:[108.8196,28.8666],childNum:1},geometry:{type:"Polygon",coordinates:["@@XJ°œlJX@lbl@XbV@VLnJlxnbšƒUU@IVK@lVIVwnJlU@n@J@L@Jn@l_nWVLVln@@blLšmV@@xœÔ‚`nœ™xV‚ÈLlx„LVxVVšƒV_U»VWn_m¥XwVmnX°ƒlmUUVwÞaVƒk@a@mmIUa@™mwk@™ƒm@@U¯a@UV@@K™@ykkmwkV@kU@ƒÑƒVkKWLÅamaUm@kyU@WkU@Ua™IUašVaUUmUUa@aVLXKWa¯UUbmJXnWnX`l@@xkzWÆ@V„LU¦‚x@b@JkIkJ@LmbUamJwm@óxƒnk@V„@x„ŽVnUVmVUVŽUbVlUbkXWŽ"],encodeOffsets:[[110914,29695]]}},{type:"Feature",id:"500236",properties:{name:"奉节县",cp:[109.3909,30.9265],childNum:1},geometry:{type:"Polygon",coordinates:["@@WVXb‚UnK@x@b‚²kxmKkl¯_ƒVV°™VU@bnKVVV@@nkŽ@n›bn‚@š°@VLČUš@°WV@V™nU@InKVl@nU„b˜KnX„WlknLlKUwnalLša„VlUXmWk@UU@UWWIUyķ¹XaWW@X™ƒKUIVm„U@W@UVU@KV@n»VkUkÇmUmVIUmULUbm@ƒwUaƒKkkm¯ÑUL@bWVnx@VmxUI@„klmkkK@aƒK@IlJ@I¯ƒk@mak@mnkJVL@bV@Ub„„W`UUUV™I@VƒU@VVbUJVLUVVbUX„VVxk¦VJUnVxnVVUšJV@Ubl@@bXV@L"],encodeOffsets:[[111781,31658]]}},{type:"Feature",id:"500238",properties:{name:"巫溪县",cp:[109.3359,31.4813],childNum:1},geometry:{type:"Polygon",coordinates:["@@nLWbX‚VLVU„V@KšIVl@b„@lbšU„VnU@JÆU@V@n°KĢUl@VbÞKšVš@„_„V‚KXU‚U@KXƒ@wlkkU@mWKUU@UôJ@XV@œaVmÞIVaVLƒƒ@»kmƒ@ƒUkL™U@aU@WWƒLUUU™™KkbƒwWa@KU@kaƒXmW—LƒamVk@UmL@JmVUšU@¯X™@ċVUK¯@ÅnWK™LkKULWK@UXK@wW@™LkV@bVLƒlXn›`¯xU„°LnŽlV@n°Lnl"],encodeOffsets:[[111488,32361]]}},{type:"Feature",id:"500234",properties:{name:"开县",cp:[108.4131,31.2561],childNum:1},geometry:{type:"Polygon",coordinates:["@@n@na‚I„wš@@VVK„LVbVxnVÆUnanKWXamKmk¯K@mkUm¯KVƒ°w@Wm@UIUUlKUU@a¯KWanwmUXamKkUWUnU@KƒkUwWKXaWLUWkImaUUUƒƒKka±k@lƒ¯w™wmbUƒ™ƒkXm@UJkIW‚XXƒbƒmƒ„UJ™XUV@°šKlšlVXV@xmbnV@blV@VšœU`UL@V™a@bULlb°VXbܚ@V@bƒL@J„xnLVb@lVb@V@@z˜bXWšX„KVLV‚š@@bUVVL@b„„lVna@ll@„zl@@J"],encodeOffsets:[[111150,32434]]}},{type:"Feature",id:"500243",properties:{name:"彭水苗族土家族自治县",cp:[108.2043,29.3994],childNum:1},geometry:{type:"Polygon",coordinates:["@@„Jlb@nVV@bXb@ÆlL„Ul`nVKU¼VxkbW„nlUxlXX‚@°°WnnJ@VUn@J„k°L@VlV@nUJ„x@bVVVz@VnLla„KnalVlIUŽ„¼@nV@@anKUwVal@UlJœƒlI@akU@UWXKVI‚¯Uak@@KmkXWÜkXWykIWwXw@laXamkVUUym_XmlkkmmakwmIUKU@Wak@kaW@kI¯›WIk¦VŽƒUUƒmaUV@XkVUV±aUb¯b¯¥m@@ImJ—@mƒmL@kUKUkkJƒbV¦"],encodeOffsets:[[110408,29729]]}},{type:"Feature",id:"500235",properties:{name:"云阳县",cp:[108.8306,31.0089],childNum:1},geometry:{type:"Polygon",coordinates:["@@lb„LV„VVnblJVXXKWbXLVx„l@LmVXVVl‚nLWbnVmxXb°L@bVVkLVVVJn@@X‚‚œ_Wm„kUK@alUšKX@@xWL@VXLVKlLšKXLÆm@™mœa@ml@mU@UUmL@aVšUU¯„U°`lknLlw±@a@wmLVWaXU@KWU@ak@VaU@™IUVmUUwVmUIl¥UwƒUVWUaVUUKVIUa@UUUUJƒUUm™kƒ„nl@„@VWV@L¯aUb™Ulxƒ@@b@VULUx@VUxVV™U@bU@mxU„U@mUVŽklkkƒ@WxknlxK@amLƒKU„K"],encodeOffsets:[[111016,31742]]}},{type:"Feature",id:"500101",properties:{name:"万州区",cp:[108.3911,30.6958],childNum:1},geometry:{type:"Polygon",coordinates:["@@ĸĊVI„ƒ„n„aWWXlJVIn@lWš„V„našx°xk„l@²Ž‚LVƒ„LnK@b‚LkwlmXw„@lllkUnVV@VƒnwV@@ašVUUVw@UVwVK@U@a„@kwšVVa°b@KXU@U@ƒmk„ƒÇсaml™kUVmn@VULU˜m@kUVkUaƒwUWm@Uw¯„mKUUmVUUULUKU„W@XbWVkaWwkUU™ƒ™k@maUbmbVlk¦ƒxUVUIWVU„kJVVkL@UmJ™UUVU@lLUVU„lx„@@VbƒJ™U™L¯¤@Vƒ„"],encodeOffsets:[[110464,31551]]}},{type:"Feature",id:"500229",properties:{name:"城口县",cp:[108.7756,31.9098],childNum:1},geometry:{type:"Polygon",coordinates:["@@VK@w¯L@m@UÅV@ImVƒU™Vkaƒ@@aUk™J@LƒUUVUKmLmbÅVmUUwUaƒKUL@U™@ƒxJmbm@nVJ@X@VkV‚n™lƒLXx™@ƒb@bUVƒLU`UnƒbU@@ŽmVVX@JX@VLVVšklV—„‚`@bUL@V„LVKn@‚U@„UJkn@lmLmK@X@Jn@mb„nÞWVXnJ‚k„KČÑÆ@VK@knaÜmXlUČW°kôÇƁ@a@yÞ_VmƒUnU@K"],encodeOffsets:[[111893,32513]]}},{type:"Feature",id:"500116",properties:{name:"江津区",cp:[106.2158,28.9874],childNum:1},geometry:{type:"Polygon",coordinates:["@@„InWUUlU@LVašlX@°²lÒXxlK@Ul@@Un@UaVJ@I@W@UƒUUVUwVIUKUa‚UUVwn@Üx@XUlnn‚bœJ@¥VklKUUlk@ynU@kVƒUUVWnI@¥V£VWVIUKU@UVƒa@n@Vm@@nlUaVkUwƒJ@blLkLW@XWmXkmmLn™@m@U@UVm@™„UVUUlakUVa„ƒVkV@@wnaWUk@VwkƒlmVIkUUxmJ@U„™@KƒIkx±V@IUm@K@IUKkbWKUbn„m„@bmVnbmb@xkxUJ@ULW`@bX@WVXL@Vƒš¯„mk¯@UJ@VmLUaWnX@WJ@nkKkxW@UIV@@KkImmkK@UW@XaWIU@U‚ƒIkbWb„xXŽlLVbnV@bWlX@VxVLnl@nÆÞVÜ"],encodeOffsets:[[108585,30032]]}},{type:"Feature",id:"500240",properties:{name:"石柱土家族自治县",cp:[108.2813,30.1025],childNum:1},geometry:{type:"Polygon",coordinates:["@@„š@kl@š¼UbmVXJ@bV@nxVIVJULVVk@@LWbnJVU@bVbUJ@blLXnWV—@mbnV‚@V„„bn@VJVLnaVanbl@„šVšlVXxlbXUWaX@VƒUUVwUUVm@I@WmI@a„mlLœ™lK@alwnUV@kóVaƒÝk@UlbVK@™VU»VUUVWUƒ@U`ULkwm@@KmU@knKƒ»VkJkUmbƒLkbmK@UUyUU@aƒwm@@XXJ@VVLVVUbVnUJVX@K„„k`WXXJWXUbmW@bkL™Um`Xnƒb@JVL@LU@™°VVXKVnUxVLUbmJ"],encodeOffsets:[[110588,30769]]}},{type:"Feature",id:"500237",properties:{name:"巫山县",cp:[109.8853,31.1188],childNum:1},geometry:{type:"Polygon",coordinates:["@@kVƒU™bkKmbVxkLmKkllbV@@LXb„xlašLVšVV„KXXV@@bšVlK„V„@ln@¼°KXa„U@Ulw°JXalIUa„ÝWXW@kVU@ƒVUVWUUUamUw@aVamwn@VUUƒlLXWm£@wÇĉkKklmLUÒ¯ƒWn™@ğ±kwmaWm¼U@@LUV@V@XƒVUnVJ„LWš@‚XXWbĸºVzXJVXV@@VXlWn"],encodeOffsets:[[112399,31917]]}},{type:"Feature",id:"500102",properties:{name:"涪陵区",cp:[107.3364,29.6796],childNum:1},geometry:{type:"Polygon",coordinates:["@@nèVblĖVVnLšŽ„@šx‚V„n@nšJ@L„UVVX@lbUJV@@nn@VVVK@z„˜V@nzVJVUlmX@@_VVVbnaVal@@knW@wnaƒVK@aVI„J@£kUVW@‚wXUVJ„amƒ@Ikƒƒƒƒ_X¥ƒ@WwkKkwmŽ™šƒkUxƒnÅmm¥™WV@Um@UlVL@JU@@Xƒ@UVkKVk™KVk™Kkb@bmJVXU„VVUbU@@`W_UV¯b"],encodeOffsets:[[109508,30207]]}},{type:"Feature",id:"500230",properties:{name:"丰都县",cp:[107.8418,29.9048],childNum:1},geometry:{type:"Polygon",coordinates:["@@Þè@XUK@LlV@blbUJ@„„V@bnV‚@VVVXU@ƒlbXal@VXnKV@maXUރ@amk@aVKXV‚anbš£°mnIVaUKVwUmWLUUš¯V@@KUK@I„aWmn_šVlK@anXVaXWWIXWl_ƒƒ@LUWVIUmVaUUUK@UWI@Wn@VI@mkU@U¯Kƒl@ImVÅLƒwU¤óbUU@wWXkmm@LU@@VUIWVUL@JUnƒaƒx@Jn„ƒbUIWVx@ŽUXlV@¤ƒIUJ@bUL„Žmb@xmX@lk@UbmbUaUU@`W@kn"],encodeOffsets:[[110048,30713]]}},{type:"Feature",id:"500232",properties:{name:"武隆县",cp:[107.655,29.35],childNum:1},geometry:{type:"Polygon",coordinates:["@@l„„w„bVm@IVKXUVJ@UV@@KnnWlX@xVVôaV£„xÆKnUVm@UmIXm¯¯@WkWVwmkXƒlaUwV»ULmk_ƒVkK@ÅWa@aUU@mkaƒIƒb@‚n¼ƒnm‚_@mmK@UƒLUVVmI@aUJ@XWJ@U`UIkm±kk@@lULmUmKUnVšnlUVmI@VkVlx™bkIƒVmLUxkKUŽ‚Xš‚n¦Æn„mVw„lš™nlxlLXx„@W¦„`„„"],encodeOffsets:[[110262,30291]]}},{type:"Feature",id:"500119",properties:{name:"南川区",cp:[107.1716,29.1302],childNum:1},geometry:{type:"Polygon",coordinates:["@@VšUbVJVUn@VLX@WVXVVI@VUVWxU@mš@ĊX@@¼V°aVUX`@_V@VaUUVƒUWnI@alašLUlšLUllLVU„@@WV@@IUKVkn@@VlLVwnK„UlJšakwlU@UnJVUmkU™VmXa@wVK@UUw™@VƒVI@akƒ@alInwlKXUmaUW@wWLk™™KVak_ÇaUƒƒV@šXbƒLVxUlWIk@UK@V™@ƒkU@VbUVUlVnƒLUV@lVXmxkV@L@V@Vk@WbUwmL@JUI@xVxkx"],encodeOffsets:[[109463,29830]]}},{type:"Feature",id:"500241",properties:{name:"秀山土家族苗族自治县",cp:[109.0173,28.5205],childNum:1},geometry:{type:"Polygon",coordinates:["@@XlV@lzn@VŽnbÆbXKlL„U„ÒV@@llUnxll@zšŽ@LU@@V°b@Vn@š„l@VÑUƒnK@UšU@aUaƒkVm@K¯wƒklmnn„Ul`nI@almkIUwmWVkUaƒkkJmUUa@K@aU@@_m@@wUyVUUa@Umƒ@awl@Wka±„UkUykIWV™b@bUVk@›aU@UXU‚UIWakUWmUxUV@nUVWbšŽ@XXVVŽmXXŽ@VƒbVLkVWx"],encodeOffsets:[[111330,29183]]}},{type:"Feature",id:"500114",properties:{name:"黔江区",cp:[108.7207,29.4708],childNum:1},geometry:{type:"Polygon",coordinates:["@@VX@V@LV@VJUL@lVnnxlb@VXV‚XV@@W„@UIVK@kUKna@£VWUaVUUalIVJVIUW„_lm@bXKV@mn@J„UUw@KnIVll@VanLVmUkVKXLVKUIVamw@UaU_lw„KlwUWV_Ua@aUa@KUšwm›_›Ó@wU@™nkK@am@UkUKmXk`m@@I@K@I@mkVmIUxUJ@kUL@JVV™„lnklWnn`VzUVnlWbkb@WxXxlJXzWŽÛlWXnl@Ll@Vb°UJWLX@VlV@bkJ"],encodeOffsets:[[111106,30420]]}},{type:"Feature",id:"500117",properties:{name:"合川区",cp:[106.3257,30.108],childNum:1},geometry:{type:"Polygon",coordinates:["@@XKVXlK„ƒVL@UnV@aValXXK„U@WVwUaVU@IV@@aVW„L@U@anVV@@bVK@UVL@bnJWL@VnUnb˜@@JnIlVl‚@@bXIWbn@UKVLVKXLlaV@VVnK@bVL„m„IVƒ@KmknUUWVI@aVJ@_„WU_VmUwƒU@K™ƒVak@am¯mJU_UJUkU@WkIV`UI@JV@LmmU@@mƒbUzś™@„VK@nUKƒ„ƒb™akb@UWK@bkVVbV„Û@@`ƒXk@WŽ@n@lXL@bmb@VVJUn@JnUlnUlmX@`XLlbkJW@kzlb@`@b@b"],encodeOffsets:[[108529,31101]]}},{type:"Feature",id:"500222",properties:{name:"綦江县",cp:[106.6553,28.8171],childNum:1},geometry:{type:"Polygon",coordinates:["@@@¦‚@X„lVX@@UVKl„VUX@lanVlUVbXWVXVƒ„VVUnKVUlwUwU@UJ@nmVkUV™lwXam@VaUUUw@W@kk»mV@UmKkwVKVUU@@LUKVI@mV@XVWxnXVKUUUK@wWU@UUWnUlLXa‚mUI„am@wI@K@amIm‚UUkI@m‚akUkKWUUanƒ@wƒamLVxk@UVmUUL@Vm@kV@I@ak@@bWVXJlLVbVL@š@bn@@`Un„@WbUKULWVXbƒ@UVmbX„WVƒb@bVmxUKUƒV@šUn@V@V@nmšnKlnnWWXX@lKkK@a„IVxUlVb‚k@mn@@U@m„bVUV@VLUJUXU¤"],encodeOffsets:[[109137,29779]]}},{type:"Feature",id:"500233",properties:{name:"忠县",cp:[107.8967,30.3223],childNum:1},geometry:{type:"Polygon",coordinates:["@@VLÞĊ„U@Wš@¼V‚„@lk@w²mlšVUœ„llšVnI@VlKUUlIVƒXUVJVU„wl¥UkUKUIm@ƒaUƒ@mUna˜@XUWmkK@aVIUa@aUVmIXa@Kl@UUVKUIUJmwU@@aWInUVa™»k@@lƒ™¯n™¤mabWUUL@bnl@b݄WVnbU@mLUWk@Wbka@„WVUU@UmUmVkUULV„lVUx„l@L@VƒbÈÒlb"],encodeOffsets:[[110239,31146]]}},{type:"Feature",id:"500228",properties:{name:"梁平县",cp:[107.7429,30.6519],childNum:1},geometry:{type:"Polygon",coordinates:["@@XLV@VV@b°°nšƒnkb@bƒšnJWVXblIUVšxWnUJnVVLVU„JlUnLVK@UnUVJš²nKVbVKla@aXlJ„k„Klb„ƒ@U°£šKšV„IUa@ƒ@kwVƒVUkKV@VUkk›ƒUVk™±n@xklƒ@U@»™‚@XƒVÝĉUJnxWb@UX›KkVUbUKWUkVmkkLU`›b"],encodeOffsets:[[109980,31247]]}},{type:"Feature",id:"500113",properties:{name:"巴南区",cp:[106.7322,29.4214],childNum:1},geometry:{type:"Polygon",coordinates:["@@nxnVlJlUXLƒ¦@x@Vl@nKVVX@V_V@@KlVXU„@lKlxXIl@ÈĊ@Vl@n_VJlŽnVlnb„²VVVJVVmUUkĕUamçU@»W@@ĉn™V@XwVU@UUJWUXUW@UKm@UVUIVaU™UVmLUVƒUU„UWWXUakVmUkbW@UVkƒUL@VW@kUWƒ@mJUXVVU„@lmV@zklVVkLUl@¦›I"],encodeOffsets:[[108990,30061]]}},{type:"Feature",id:"500223",properties:{name:"潼南县",cp:[105.7764,30.1135],childNum:1},geometry:{type:"Polygon",coordinates:["@@@a@a@_kalyX@lIkaWK@_nWVkkmmV@IVmUI@Una@aWK@k@mkbWaknmJUk@mk@@kUal@Uaš@Wa@aXLlwUKlkkƒ@KmI@VUJ@Lk@@VUUmL@amJU£kKUaWakLmU@bVVUbnbWV@xkL@bUb‚xUxVbXJVbUVWIUVU@kLWxkKWV@n¯VUbU@@VVX@VmaUL@VUK@VVbn@lVnI‚@@lnLULm@Ub@Žl@na„@lK@XVVkJ@b@zl@@VnV@bVb@J@bnXV`lXXmVI@W@InbV@@aVKUblKVLUanLlmnLlK"],encodeOffsets:[[108529,31101]]}},{type:"Feature",id:"500118",properties:{name:"永川区",cp:[105.8643,29.2566],childNum:1},geometry:{type:"Polygon",coordinates:["@@@b܄nWVLX„lxV„VxXxlVn@@bVblK@a@UnLVJV@@UnLVU@VXaVKVXš@n`WUÿ@IUKlaUUUkWyUÛÅÝ@mmkUKUwW@Xk@amUUakKWƒwXaƒK@VVLklƒXVlkxV„UL@bm@Vxn`ƒIVxUVkLVšUšl@@lkXmmƒVUn@VV@Xb"],encodeOffsets:[[108192,30038]]}},{type:"Feature",id:"500231",properties:{name:"垫江县",cp:[107.4573,30.2454],childNum:1},geometry:{type:"Polygon",coordinates:["@@šĊ°¤nҘ¼œaV_lKnllUXVVLValUœLVW‚@XamwVIUKkaÇфa@U@KƒkVwkUUƒVKlVnU@aƒU@ƒVIka@akU@KVL@WÝçUV@Vmbů@L™KƒnnJW„ƒVkxlL@VX@VxmnXVWxUb@bkn"],encodeOffsets:[[109812,30961]]}},{type:"Feature",id:"500112",properties:{name:"渝北区",cp:[106.7212,29.8499],childNum:1},geometry:{type:"Polygon",coordinates:["@@@bVVXL‚a@lnbWn@L„@XVlK@VVLUVlbkLUKVVVL@VšnX‚VL@VV@UbVb@x@¦UxVb@bUJƒL@L„VVxlK@™nk@U@W„UVLlKXV„@VblU@UUKVU@wn@VJVanLlkX@VaVK™¯@a@U@U@ƒVaUK„kUUƒ±maUkm@UUkbm@@Vk@@JƒwU@Ub@I@JmwUL@aƒ@@KkVÇLkƒWkƒ@kUU@@xUVmKUnllUb"],encodeOffsets:[[109013,30381]]}},{type:"Feature",id:"500115",properties:{name:"长寿区",cp:[107.1606,29.9762],childNum:1},geometry:{type:"Polygon",coordinates:["@@VVšU„bX‚lX„¥l@XnVmlxUx„@@blVnnôĀlm@aVaXwWUnmUwW@@UkKlw„UXƒmI„mšL@KÆ°na@UUImyU@ƒ—@yULUUm@@mU@VIkaW@UUƒV@K™I@mƒmU™wƒ@™mKUnU‚UIƒlVLUb@„@V@V@bš°ULUbW@klmKUbUIm@@xUVVL"],encodeOffsets:[[109429,30747]]}},{type:"Feature",id:"500225",properties:{name:"大足县",cp:[105.7544,29.6136],childNum:1},geometry:{type:"Polygon",coordinates:["@@XUmaVaUU@anVlKXbValU@aV@@IXKš@@bV@VxVK@UXLlUšJXa@_‚@@aVK—ÅWVkwWaƒƒwUa@am@kUWLU@kWmX@ykI@W@UV@na@LlLV@UƒkwWƒUKmXX`mIVl@bXLWVkbkkƒx@`VXm@@J@U@UUKUxk@WbUIVl@VXLW„ƒJUkUlUImxXlmb@X@VUJUnVbšW@UV@@VVX@bnW@LVxUnlJUV@n„@VxVIn@l`„UVVVL"],encodeOffsets:[[108270,30578]]}},{type:"Feature",id:"500224",properties:{name:"铜梁县",cp:[106.0291,29.8059],childNum:1},geometry:{type:"Polygon",coordinates:["@@VblLV¤nI@bnKVV@Ul@@KVI@UnJ@Ll„klVLkxWK@bXb™@Vbk@Vb@ll@@nVlnIlmXblaXl@„W@_Ü@UƒUalU@aXL@Vlašb„a„ƒVL@mUL@ƒUUƒƒÇXUW›X_WaƒƒUƒ»m_™@UWULWb@UUVmK@VU@UImK@V@bkL„x‚„XblxXU˜ÆUL@b@@`Wb™IkVWK@VULUwU@@a™@WL@JU@@bkVUb"],encodeOffsets:[[108316,30527]]}},{type:"Feature",id:"500226",properties:{name:"荣昌县",cp:[105.5127,29.4708],childNum:1},geometry:{type:"Polygon",coordinates:["@@VI@U@WnaWknwVJVkVl„IXƒWK@UUkVJXal@VwVL@V@V@In@UW@_„wlllaXUWK@aUknJW_ۃ@aWaU@@UVm„UUaUImJVnÅUmVUm`kUUVWLnVU@VVmXƒK@„nxmŽULkx™ImJ@nU`@X@Vkn@`@nlV@nVJVaX„VLnK@bVV@nV@lbXWš@"],encodeOffsets:[[108012,30392]]}},{type:"Feature",id:"500227",properties:{name:"璧山县",cp:[106.2048,29.5807],childNum:1},geometry:{type:"Polygon",coordinates:["@@XzVlVVkbVL@JVĀXŽ‚¼V„„„XbW`XœWVȎ„„VVšŽVkV@@UXa@alK@IƒƒU@UKWUyUI@wVUUWVak@VUkƒW¹@WXI@yVIUK@kWwkѯ±W@™kUb@KkVVVmXƒJ"],encodeOffsets:[[108585,30032]]}},{type:"Feature",id:"500109",properties:{name:"北碚区",cp:[106.5674,29.8883],childNum:1},geometry:{type:"Polygon",coordinates:["@@X‚VLV@„„@JkL@bWb@VU@UlƜVy„a@nV@nn@KU@IVJU_lJXV@VlVIV`nIn°@b‚lUbš„„KVI@aUaVw@¥@wUaVaU@@UUKW™m@UUKUUVLlKkaVUUK@UkLWUƒ@@KXmma@kbWKUU@aUamLnÞ@VWLk@@Wm@ULU@@U™KUVWI"],encodeOffsets:[[108855,30449]]}},{type:"Feature",id:"500110",properties:{name:"万盛区",cp:[106.908,28.9325],childNum:1},geometry:{type:"Polygon",coordinates:["@@VIV@@wVJ@InKVxXal@@U@U@KlUnwUW@kVU„KUmVkUa@I@KW@@bk@@mƒU@m@k@a@aƒIUxmJk@ƒwULƒwkKmVVX@VXV@xVLVVULmWXwWUU@@nUJVL@KV@UVULlxnL@VnUl¼@l@XVxVVUbn@WbkxUšlVnU@m"],encodeOffsets:[[109452,29779]]}},{type:"Feature",id:"500107",properties:{name:"九龙坡区",cp:[106.3586,29.4049],childNum:1},geometry:{type:"Polygon",coordinates:["@@XK‚L@Vš@XbV@lW@UV@@VXIV@U™VKlL@KnnJ@VV@VU@I„@@mVUVWUUmL@V¯LUK@UV@UU@a@U@yU@WLUK@X@KUVmL@ƒ@aXI@w@ammVk@WÛwm@UxVVVbVLUJVxVU„V@V@X@JUIVbm@@Vk@@VkL@lVLUJ@zWJ@X"],encodeOffsets:[[108799,30241]]}},{type:"Feature",id:"500106",properties:{name:"沙坪坝区",cp:[106.3696,29.6191],childNum:1},geometry:{type:"Polygon",coordinates:["@@Xºl„UVl@UbVXUV@xVJVzXJVUšL@VV@VKn@@Xl@XK@UmÝnKVbVakkVm@k„ƒUK@UmIm@LkKULVšU@WJ@UU@@VkXU@Wa™@@UKWL"],encodeOffsets:[[108799,30241]]}},{type:"Feature",id:"500108",properties:{name:"南岸区",cp:[106.6663,29.5367],childNum:1},geometry:{type:"Polygon",coordinates:["@@VV„JVL@bUVVnl`XIlwXJlw°nnl‚IXW@UÇĉk@WJkwkLƒ@WVkU@LU@U`W@UXUV@n"],encodeOffsets:[[109092,30241]]}},{type:"Feature",id:"500105",properties:{name:"江北区",cp:[106.8311,29.6191],childNum:1},geometry:{type:"Polygon",coordinates:["@@nLVU@wV@lV„@Xll„ÈKlU@L„@@bVKnx@I@JVaV@„x@Il@@Un@laVVn@mkUIm`k@WXJmk¯mkxWIkxWJk_UmVUUKƒ@UU™@ƒ„@l"],encodeOffsets:[[109013,30319]]}},{type:"Feature",id:"500104",properties:{name:"大渡口区",cp:[106.4905,29.4214],childNum:1},geometry:{type:"Polygon",coordinates:["@@k@@U@w„¥WKkVkImUmwa@b@xWJ@b@„nKVU@L@WVLXKV@@z@V@bVVU@@VVL°K@U"],encodeOffsets:[[109080,30190]]}},{type:"Feature",id:"500111",properties:{name:"双桥区",cp:[105.7874,29.4928],childNum:1},geometry:{type:"Polygon",coordinates:["@@WwUwU@kK@KmbU@@V@XlJ@znWlXV@XK"],encodeOffsets:[[108372,30235]]}},{type:"Feature",id:"500103",properties:{name:"渝中区",cp:[106.5344,29.5477],childNum:1},geometry:{type:"Polygon",coordinates:["@@VLš@VV„@VL@aUKƒIUUƒ@@JUVU@"],encodeOffsets:[[109036,30257]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/fu_jian_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"3507",properties:{name:"南平市",cp:[118.136,27.2845],childNum:10},geometry:{type:"Polygon",coordinates:["@@@knyƒk@ƒKU¥šwV@nkƒWƒzUmk@@lKUa@aVI@UƒKUamKUUVaUI‚@Xƒ@UV@K±IUVVlUbUbUL@KWUXmWk@KkXmmkŃKUƒ™a@amUƒbkUkKWUnwUƒÇwV™UUƒÝUKV£U™@ƒnKWwXLVKm¥@wUXkmWk@ƒ@wX@lU„@šyVImaXwVƒƒ@kŽƒnU@mbk@mlUXƒmU@mV@n@bnW@bUIWJ—ImVUKWbUK@nkKƒaU@W_VUUmWmL@UU@™bUWUL@V@bmVUz@`mUUVVbXL@V™L@lmLUxmVamXkW@xWbU„VbUxkU±@ÅUmmkLUbW@@`kLknVlV@lbXxlVUXVV™ŽU„U@UbWŽkIWVUUUJkI@llbUxVL@V™VƒUU°ULUmWXUV@VULWb@™xm@UaVLVKUa@ƒw@V›bkmVambUUm@@VkK@„@b„xlxX@‚„n¤@Xƒ@@lkLWV@Žn„V„kb@bWJXLWx@nkxmm™bXn@VWVUn@VnJ@bVXl@„™VJXnWbX`lL„UlJVI@Žœ@VXV@Vl@bn@@Æmn@VšxXU@mVIlxšVššnI„l@nVJ‚aXI@mlU@aXkVm°klmnVV_naš°@V@xܦXK„V‚nnUlVXbVK‚LXKV@naV@@VVl@@lXblXšWnLlbVK²nš@@‚VLUnlV@lƒXxô°‚V@UnaUUlKXLVUVVUbVVlUnJVX„@VW@an@lb„@nl@VU@anƒšUVW@kƒaUm@InVVKVU@kUW@Uam@km@kVa@a@™nwšU@WlI@mVI@WXaW_nƒ@™nƒlkkW@U‚¥@kV@Uw@wUƒ@@IXK‚¥VIn@nU@`@Xl@VV„LnašW‚bVaUwnU„@VIšKlV"],encodeOffsets:[[122119,28086]]}},{type:"Feature",id:"3504",properties:{name:"三明市",cp:[117.5317,26.3013],childNum:11},geometry:{type:"Polygon",coordinates:["@@lL@Un@VVna‚bnUlœa@U‚x@„VbULUKVbn@šw‚@XaVK@UVUXWVnVKV¯„VšU@UUKVwka@klJVIVVXUlJXVaV@VƒšUUVWkUWwkaU@UklmlK@_X@ValKnnÆV²@lVVwUaVƒXa@wlXnW‚bnUVwnK@kšK@UWKUaVUnV@_VynU@a@UVKVXšaV@@VnKnXVV‚UX`V@„blL@mVLXaVLnU˜JXIVJ@amX@a@mnUV@„nVWnkl@naV@„ml„@@KmKUam@UU@ƒ@UlKU™Vk™U™K@aVaUwV™U¥UIkJ@wmI@‚mbkwkVW@UXƒKULU`™IVKUa@LƒkkVmUU@WlULUWÅU@I@ƒWW™nU@@w@a@ƒUam_XyVIVWkkƒ@mwVKXUV@nw˜VXkWƒÅ™U@ƒaƒU¯KUnƒK@ƒ¯šmUƒLXŽVLnWVbVbUVm@Ub¯¼W@amƒ`kb™amLUUUƒ™aUXV`@x@XmJ@n@L@xkJUU@kU@mWm@kUUwUUVWl@VUkIƒy@kkaVUUm™IWVXbWxU@k„mVkK@nWVX¦WxU@@bkx@VU@WŽk@™kUbmJUUmkUW@_kKWKƒ@knV¤kIUKWLUbV‚@Wbk@@VWL@VkI@lUXVxUVU@@mWIƒV@a¯nUaƒaUV@„ƒJ™b@bÞ°VbUš@X™aUVmL@‚VXblŽnV„°˜n@Vnx„@VUUUlK@InJVb@„Vlnn@V™L@VWJU„x@XlJUVVVl@LUUUJ@Lƒ„@lUL°¦k˜V„VnV@„xV„„l@blLnlšLVaXll@šnVUn@‚xn@nml°‚X@lb"], +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ôa΀U„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¼@è™xWô—nƒx™KmkkJWI@UKWaƒUUaamn@lnbWšXXWK™@VxUVkU™V@U™LmlnVWXXVmbUbkVVV@bm@UVnš@bW@@VXx‚n@V„n@bV‚UX"],encodeOffsets:[[121388,26264]]}},{type:"Feature",id:"3502",properties:{name:"厦门市",cp:[118.1689,24.6478],childNum:1},geometry:{type:"Polygon",coordinates:["@@@VlUV@nanL@V@V@L@blK@V„wl@XalbVKnnl@VL„W„»È@lVUIVK@a@UUw„WUU™šƒš@„_™aƒK™@™bkkm@UƒkõŁxóL™l@¦@Vƒb@bk@VŽƒnVln@Vb„b@xmÆnœ@x@x™x"],encodeOffsets:[[120747,25465]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/gan_su_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"6209",properties:{name:"酒泉市",cp:[96.2622,40.4517],childNum:8},geometry:{type:"Polygon",coordinates:["@@ÇnÅaĉ@ƒU¯¥›UŹ‚ƒ£™WUýUU±JkkUw‚yÞIČxĊĕĊ¯š¥ÆUkţ™UÅÓ±¼™IUx¯UƒÒƑ‚ݐŰƒKÝnğ°ÅU@Žƒ@Vn@þš¼¯šWnŎ°XLWlnVnbWnƒVXxmbƒa—bóUƒlǕUUa™IUmlU™ƒš¥™kƒ¥ĉwkkƒÝɛa@¯™™U¯°mVƒkVnKlƒōÑÇÑU@kl™UġŽkUŻnUW™@š¯ƒk»šmWV£UKnUƒmUw‚w@ƒUIVaX™šwm»Èmmwn¯ċ™¯LĉŽUƒJUalka±Va@U‚k@ƒÛф¯WmnUaɝ¤Ûmƒn¯m±x@wóxÛLġÒUx¯VƒÈ™JUbóz݃ÇKĉ¯ōlÝUŎWl¯nťbÝ@¯ǩLġmV@ƯĢkÆm™ĊkVťLɃmÝXó°@„ĢbVŽóVݦɱ@Ƨaġ„UV„ĠÇÈV¼UVţwmbJÇwˋa™XmǯKkkmŽƒbXšm¼V¼ǬŚ²¤ôŰÆƴô̐ŤǪnɆӨ¼ɆLÆłUĊšxŎƞȘǔˎǬǪnƨŮǬö°»šġ„„ÞÜÆĸÒĊ„ǀbƾèôÈ@¼¯þŤĸƧ°VĀ¯b@lÈĊ‚šʠń̐„ȘKǀŽֲॗţÿǕý@ʊǓƨóÆÑǖŃôw@΋ʈƆÅÈVVĊV„óĊÅ@ÞƒĬV@Þīš@°Ž„V@ĸĢƒ°XτƜĠ@ÈaÜ¥Őƅ‚™nğóĕVġUůƿŋ—ĕƒa±V—UťÇğÑ"],encodeOffsets:[[101892,40821]]}},{type:"Feature",id:"6207",properties:{name:"张掖市",cp:[99.7998,38.7433],childNum:9},geometry:{type:"Polygon",coordinates:["@@ÈÒŎÒk„mLUŽlŽU„¯nV°šš@°ɜb„ÞĠaÈ»ĸl‚š„LVUÈ@Ċ@ýUm„@@ÆVĠ¯Þm„LƯޏƒ„Ñ°VVwšJ²»ÆԚVlŤÅV™¦ĉ°ĉĖċwÝJzVxll²IVVVþšX„¤źœV°¦„VĊ@ÆbÈmǔLĸĠ¯Ģaô¯ĸmÆÛUƒlÇĸk°XyĊUǔV„ǩnmV»ƒa@ýnK°n@l¥@»ż„Ċ¤m皃@£ČU@mƒmVkÞUƐ±²¹°‚ĠwÅƑŃU¯™›V¯aÈŁšƒÇ»™ġn_°xŎKlxœklx„@Þw‚„„@Æm²b‚DzLlkšWXať¯ĊaœÑšK±w@wƒUÅçV±Uk™@@„¯š¯xƒU™±±UU°ōxVxÅÔō°ó¯UÝ¦óbÝþƒ@ĉÈóUV‚Ux„„@VŽUVÝwÅÈǎóVkk¯JǐkmmL@„™KÇx@bkš™@U°ķ²ó`ƒš™šmn¯°ƒUwlÅkUƒ`™¦ɛô™Žķz@ŽÅnÇ°U¼¯KmVk²ƒJƒ¼ƏÞķôš¤ULƒ@mnğ`™šÇnUxÇ@Ûÿ™U@ƒƒkŻŽ@x@móJkŃ¥VŹĉóÒĉlċ°ķ„Uƽ܃@›x"],encodeOffsets:[[99720,40090]]}},{type:"Feature",id:"6230",properties:{name:"甘南藏族自治州",cp:[102.9199,34.6893],childNum:9},geometry:{type:"Polygon",coordinates:["@@ލš™nKlnšwX¥WÝXk˜xÞUnƒ°aĊVnUUKlÞĶWXnĠ¥ô»„™@nmVL@¤°™Vz„JšanU@aÆwna@k›ƒU¯šyX_›aĉb™ƒ„wƒéXkWwÅaš¯V¥mƒ¯UƒƒI@ƒš@„mšb°aÈçšUš¥@»‚knwɜƇ°I°ÑÈmVU™¯Xa@w‚W@wšV¯Č¥l¯Uwnm@k˜aUaóKkk@™Ça™b@ŽÒWa¯IÇxÛam¼™VUƒxÒl‚@zÝÒ¯bÝaĉVĉwDŽW›zJ™mJn²mܯUƒ¯ĉ@ġ¤Åb@²nšmlƒ@@Ž„„U„ƒLVxšV™„U¼Ålma™b@ƒ°™l@WIUƒ¯@mƒ™@™™ó„™„@U›zţyƒXÇU™ÇVUUVLkbWakVWmUbkkƒKUÆ»nƒ°Knk@aƒUVmšnk»l¯Ģ›lw@_kKVU@ƒnaƒ@lUk@¯¥mV@kmbW™b¯Åõa@mkU@kƒÇŽkU@›`@™óó—bl¼Uxƒn„¼šlVȄx@blVkVVnƒ`XÈġÈ@ǃK£ÝJmUUnUĖmlU„mKUn™VÅaUw›Uĉ`¯n¯wW¼nxVŽ™š@bĉnƒ‚kIċŘkXUŽ±Ò™xšÈ@ŽX°`l„œV˜IȯĊV„ƒšVVan@VašUVażVmšblkÈW„ƒWIXa„alL@wVb„„V„¦lL@lĠ™n҄U‚nk‚šL@ÆÞkšÞšK‚bñþW¦Û„ċVƒ„ULUºkÈlŎUxÆxÞUUxšÒ‚x„@XbšL@lÆ@„ÒlXVln@„bm¼ƒJ@„Ån„šƒx@bnšĠm„xVXmbÈè@ŽĊ£ČW˜w"],encodeOffsets:[[105210,36349]]}},{type:"Feature",id:"6206",properties:{name:"武威市",cp:[103.0188,38.1061],childNum:4},geometry:{type:"Polygon",coordinates:["@@±¯¥@klwU»ƒƒÞÝmwKm¯™™ç@™kVÇUL¯lVUKġ„ġm@a@U„@X£°l°LŎÇ@aōVÝw™ÔƒKUŽÅš„WJ¯lm@ÛVWa™@klĉUmaƒLUanaƒ™ƒk¯J„™™±KkXóÜÅxƒ²Ç‚@„„nUÒĊb°@™ÆkL™Ž™XÇÆ@xÝn—xWxţ„¯¤ƒI@Æn„ƒVV„VlU²Æè„V@x²x™L›ÒĉbŦ°Wb™Xklބš@l¤šXĊ`„wl@ĢÈŎm@bšnV‚Ubƒ„@șÆÛLƒèǚUÒŦlĸ™`°ĮʟÆǓbĉôϚĊƚĢnŤé΀ÑĸĀĊ¦„@@l°lœ¦Ȯ¦ɆÞĊKŤ™ĵĸů„»mŁyġ™ķŭ@Çɱȭ¯mƧUĊķnŁŻ»UaU™˜ƛɞÝƨů"],encodeOffsets:[[106336,38543]]}},{type:"Feature",id:"6212",properties:{name:"陇南市",cp:[105.304,33.5632],childNum:9},geometry:{type:"Polygon",coordinates:["@@šÈÞ@l`UmVƒ¼œŽ‚@nnÆwVlnVVa„LVƒÈ_‚ÿރ@n„a„xÆ@„lš_š@VxnK@llLnxmÈŎJnbUxšI°Žl@n¦‚lÈIlmX¥„k°@šk‚J„k²é˜@klaUaVaU@@ÝnIWnmnx‚k„ºÞ„„aV™°„V@nw‚KšxôbÞ£šVšU„bšþšLn»mƒVw„IšJ°Ž@„nb@°°I„ġUkÇKVƒ™™@ů»lƒ„Lnmƒ£@anK@Ñ܍n@»mL@£™yk„UUmbUÞÝ@kyÇbó»™XUxƒWVzb±mÝbXaƒwUamL¯»@wUKVwm¯ĵJ°ÅUWVk„KVk°wÈVšVуlUšƒ¥škmVamknƒUw¯¯ƒbċ¥ÅKƒk™Kk„™VċVk£kKVw‚Ñ„a@kóyÛ¯ÇVk™ów›š—Xō¥Ç¼ów™Ž¯U±‚k„ƒ@x›IĉÒÅVmÈnšÜ@n°„bUbÝV‚ŽUnnJ¯Į@‚m¦nV܃@„„L°JXb‚Ñ@šaÈb@šllôLVb—b@lmnVxk°ċ¦U°™Ž@xX@xWbš°UVÇn¯Ò¯Jɛƈmxl@¼"],encodeOffsets:[[106527,34943]]}},{type:"Feature",id:"6210",properties:{name:"庆阳市",cp:[107.5342,36.2],childNum:8},geometry:{type:"Polygon",coordinates:["@@kw‚ĉ—»VamƒƒV¯wƒIóVkl¯™Km™Vō¯ÝWkL@bÝKō¦@Ž™„@š™Lx›@b@l™a@km@@l¯nm@UaÅ@ƒ„óWUXm¥™nƒw`@UUxķôÇ°ğ¦@„VJš_n‚‚IVŽnalxkX„JWn¯šnVƒLšxl¤nnVbklVX@xnxmV@bUK@nm@@xƒV—°±aÅnƒŽkUWnUaƒx@m™n@ƒ¯LƒššmUĀlU@lV@blLUblxklkIÇx¯°‚UXbšaVŽUnšV@°‚LUlnbšX@`°nVmbnÆmV‚kLmK™¦UŽ@X„y@kl@U„°K@¼XbW„ƒš@b„WnLVa„VšƒVz@xlVČ¥lbUxލlV„U@nÆWôn²™VJlU„Ƨ„LnmÜLXa˜n@mœw@wlUlV²mšblwšVȃlLލ„±@lVnUlxnkma@mškšJ@kXV‚U@mn@š¼VXUƒVƒlLnmVbôaVnWV»ÈUl°È¯ÆIn›ÆU@kk»mKkÆġk¯@»mƒk—¯@óÇlÇ@—Vykkl™Uml¯Þ™@w"],encodeOffsets:[[111229,36383]]}},{type:"Feature",id:"6204",properties:{name:"白银市",cp:[104.8645,36.5076],childNum:6},geometry:{type:"Polygon",coordinates:["@@VKUȚl@šè°šnŽ‚LnxÝބ„V¼kx@l‚¦²°ĊóĠ„™Ċ»š@ÈxšaĊxlwÈVŤa@¯²aÇ£ƒJk£lƒnUÞ@°šô™@y„wl»lIX¥Ǫnw@ÑÞWla„ÅlL@ƒUwĉakƒl@ƒš¯mwna°J„V¯nUVÓÞÑm£²óWaUƒÇ@óÝUçV»ÈkkW@¯‚xV@XlK@wX@Vmm_@wÈݙKU¯ÇwVwÅK¯VƒkƒJ™™™XkWVaƒImŽ¯Uk„ÇlVšœĀV°mxóšk„@¼ó„WxĉÜU@Ub‚zÛJÇk@‚ÆnVlԙ@kŽ„x™ô@ĬWL¯ƒƒK@aÛImm™@ƒIUaƒ@™™UŽÇêU¤VÒÇx¯ÒV„šš™lk@Wbĉ¦UbkWV_‚y¯Lƒaó„kŽ@b@nmbkx„°"],encodeOffsets:[[106077,37885]]}},{type:"Feature",id:"6211",properties:{name:"定西市",cp:[104.5569,35.0848],childNum:7},geometry:{type:"Polygon",coordinates:["@@„a‚V²wVJV_@„LlanÅllŦçÜӚ_šlnƒWaôk„xUš„bmV@È°lèšnk°l¦„`@nnL‚@ÈlÜIyVaV@ĊÛXwôƒ@»lƒô™nwU¯›ÿU™Èklƒ°Vn„JUblXšWšš„I„l°U„ƒVƒš—@aVVVmnL@„lƒ„UUw‚mkƒš£„bV¥VUVwۂƒlaÇÝރmk£ƒLUy¯L@WlkKW_XaWƒ—mƒ„ġU@a™k™‚ƒakXkmVwmŹVƒU™b™WƒónmwnWW£„KÈnV¥ƒ¥„ƒÆ_k™lW„bU¯„V°aôbnaVwmaōInÇmwkK@kmLUw™@™`ƒkÅ@ƒwƒb@m݄ĀÇ`U„ƒKUbmUUkÅxmm@›„»nUVk_Ý@™Ç™¦™VÇè¯b™aƒn™@@„„JV„°Žn„U¦™°ÆbXxWl„êƒxš„ĊaœbW`™zV°œ„@lmbÅx@bmV™bƒI™`™¦@ÒUVUI@ƃL@bš¼@ššŽ@„šlmxnL„°ULƒŽƒÞğޛ°kLUŽƒL™°™xVŽ„n„KVƒl@šzX@"],encodeOffsets:[[106122,36794]]}},{type:"Feature",id:"6205",properties:{name:"天水市",cp:[105.6445,34.6289],childNum:6},geometry:{type:"Polygon",coordinates:["@@UyȍVƒVUnn@ƒVU„`UblzšJnk‚@Vb„KU„°l„wš„„W°„nkVŽ‚UÈlš£°V@n¥šV„kl™kU˜±U„ƒn™ƒlw¯UkwmKUlmkUmnkym@ō@U„mWÈU°l°anlJškUKlU„¯Èm@kmWV»kkÝLUWUx±b™@¯ma@ƒ¯™IƒJUxn„m¼™K™ýƒa™V™Uݤóa™wLmxU@¯ƒUšƒb݃ƒ¹lmwmnXŽmJ@ÞV@UbVbkblŽ—@±êƒlI™l¯@ƒlW¦knÇJkm¥k@¯™Jmbóa¯bƒUV°ƒakXlšÅ`ƒ„„¦U¦ÇmƒLX¤mXnxm‚„ôšXša„VźUnŽUxlnlW„bššl@bĢV„ƒ˜nX„WbX`lLXk@Ž°KVz„Kl¤„nÞ݂Èkb„‚܁"],encodeOffsets:[[108180,35984]]}},{type:"Feature",id:"6201",properties:{name:"兰州市",cp:[103.5901,36.3043],childNum:5},geometry:{type:"MultiPolygon",coordinates:[["@@lW²LššƒŽ°I„l„šmbVb„KnbĊVlkš@XbÜU@Žkn°‚XIƒÆ™V„LšÓÞxŎUlôƒ„b°KzU`lXVaĊ¥Xal@šk™™Uƒ°ÑÈwUтV£ÈéVšš„@Vb„Jš@nnÜJ@b„L°„XK@īšóƒwlš@kÓmUÅmK@mƒ_k¥l¯™mkçǯ@nUƒaV™ƒwólXbm„™k™`ÛÔťèkkmÆkbƒK@U`UI±xUƒbWlX„mbVbÅÒólkƒƒIWJkšƒ@ƒz—KŻ¼™@™xUx󎃄¯LWb@ŽÅ҄„±¦U`nbťĀUšVb„LšŽ„U"],["@@ƒ¯lwna@mōȯK¯kW¤ƒ@@V@bĢnĢƒVLU‚°k"]],encodeOffsets:[[[105188,37649]],[[106077,37885]]]}},{type:"Feature",id:"6208",properties:{name:"平凉市",cp:[107.0728,35.321],childNum:7},geometry:{type:"Polygon",coordinates:["@@ÆLUxÈxV°šLÇÞ@xn`Ü@X@nĊŽÆwnJmwUx‚aUkšw@V@w„aVmlLXÝl@X‚VĢmV°@nl@UUUWK@w„ÿVI²Òlmš@nÝĊýVV@nšJ°„„šUłm@kV¼nK›ĢȤôK„blnKllVk²aĠ¥È¯ĸóVw@V‚_„xšmn¦VWôX„ƒÆ@Vbn@°m@kn@@lšb@k‚aœ@‚wšK@™šƒ@UlKVaƒWX™W²¹lӄw@_°›n@@_lKōķW™@ŽmLUWƒn™»Û@›l_Ç`ƒÛmm°ÅbWb@š—VWbƒUUKDŽÅaġlmkUġlƒ»—Lƒl™Um¦@Ž¯U™¤ÇkVUml¯ƒƒX™ƒƒx¯kVƒƒLUa@ml™IkyVaƒ_UV@„mmUVU„ÇŽVzUxUVU¦ƒa™¤l„nVxƒVk„@ƒmKUnUU@b™˜U„ƒ„","@@@Žż@™mlkƒġk"],encodeOffsets:[[107877,36338],[108439,36265]]}},{type:"Feature",id:"6229",properties:{name:"临夏回族自治州",cp:[103.2715,35.5737],childNum:8},geometry:{type:"Polygon",coordinates:["@@š@ż»˜L„y„@l™XI„Jl„ôkÆÑUanaWƒXkW@™yk@U„ƒLƒmUšwš¯„KVlKœ¯Ġ݄݄VKƒ¯mKnw™k@ƒ™@™™»@a„K@ÅVJVU@њ¥š_Uy¯š@£UKmn@‚ƒšó¼ğ¦WmĵXݎkŽVLmVĉU¯bm„ÝV—wWlXÞW¦™xkmmL™šÝŽœ„±U@Vގ™š@„ÅÈW°X„ܼƨyUĮnŽWŽnXÝxUx°lVXJlôV"],encodeOffsets:[[105548,37075]]}},{type:"Feature",id:"6203",properties:{name:"金昌市",cp:[102.074,38.5126],childNum:2},geometry:{type:"Polygon",coordinates:["@@šĢȼ™„Çł°bœU°šV‚ƒń‚ÆǖŰnšÆ„ōĬǔaʠůĭš_kķÆ¥VÑș„çÜKšÅ@DŽƒVaU™m@aōnġÇk@ƒxĉ_™Wk£™@݃±KÈ±aÅnƒ@ƒÝxƒ@kw›lkwōL¯wm`"],encodeOffsets:[[103849,38970]]}},{type:"Feature",id:"6202",properties:{name:"嘉峪关市",cp:[98.1738,39.8035],childNum:1},geometry:{type:"Polygon",coordinates:["@@llĊx„¦šl™¦š„kVVnšJVbǖV„kôV˜a„bnaWw„UXmmamUXkWKō¯Xm°™™»ĉÇ@UVƒK™ķkǼğb"],encodeOffsets:[[100182,40664]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/guang_dong_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"4418",properties:{name:"清远市",cp:[112.9175,24.3292],childNum:8},geometry:{type:"Polygon",coordinates:["@@lǯkÿƒaV¯™VaÈU„¥ÆDŽIlxšmnb‚Uœxl™„Uôl°kš„„Wl„š@ô™VwUanUl@„xVkšaX¥‚kU»„aš¯±@kka@ƒUwmUkwƒJk™˜„±k@ƒ™™L@ÝWUwV݃—xÇU¯ŽÇX@m™Åƒ@@yĉ£VmUwȗ»ÇšUn„lUnWU¯`Ukƒ@@„™x„Ž@bÇxX¼ƒVVš¯LšĀk‚ÝLƒ„¯@VŽƒĀ¯lnĊW¦kVÇôkUDŽUK@ţ™U@a™™ó܃UU»ƒ@™¦k@Vx„KVb„n‚š@„Æ™„l„@xšƒbWšnlU„lxÈlV„È°Æ„@¼™„@x„šWxœŎ‚V„šK°„š¥ššnƒÆkŎ@ÈÑm™„K@¥šk@™ô@„nôV"],encodeOffsets:[[115707,25527]]}},{type:"Feature",id:"4402",properties:{name:"韶关市",cp:[113.7964,24.7028],childNum:8},geometry:{type:"Polygon",coordinates:["@@W™Xk±Ñ@ƒUw™mUwĉwlmn@Æwn£mkIš¥ÇÅ@¥šaƒón£nWWwš£V`Þ@šnVml@xô¼„IV¥ƒkUmkamUkVWwÛ»móƒ£UVÅKmn@x™@kbmm¯a™Xka›VĉaUb݃ƒ²—‚lš„IlxnVVx@„lb@l²™°ƒbV¼lW¦™bUlƒwk@mVVbUxóš™@kƒƒX™ƒ¯lókƒVkš›wVma™nkwƒJÅȃ¦ÇVUbšŽU°„blĀ°ŽkÈ@x™¦Æܙ°@„°„¦óa™VUôlUlbXl@nÜV„„nKlŽnIVÞ°Wš„°U@bnm@¥šIVƒ²Ulƒ°VnalzXyl_Vyƒ¦lƒœLlxš„@ŽÞbšKm„knVWanwƒÑVwČº˜@n_ÞV„aVŽÜIœl@„˜KȚ„VJ@aš£È@˜™@km™„aV¯W@_ƒa¯KmbkÇkLmwƒ@Å¥"],encodeOffsets:[[117147,25549]]}},{type:"Feature",id:"4408",properties:{name:"湛江市",cp:[110.3577,20.9894],childNum:6},geometry:{type:"Polygon",coordinates:["@@@ƒkXƒ™@a„UUċlk„Jƒk„™@wVJXUWk°W@nKnwlUlš²ƒ„blU@‚lI„l@„XbW„šxnm@lW@w„wU‚JX¯VU°`ŎóˋkÝÝkÅ@ÇmğÈřmw™aĵV›xUہ»°™ĠǷnýmóX¥ɅĵҏÇ@°²ĊUĖ±ĮU¤Ç°™Ā¯ɐnżUĊĊĬV@脎@ԃÒU¼l¤nƒĠb„êVĠ°Èy„zVaV‚nUÆL„ašbVl„wÆ@"],encodeOffsets:[[113040,22416]]}},{type:"Feature",id:"4414",properties:{name:"梅州市",cp:[116.1255,24.1534],childNum:8},geometry:{type:"Polygon",coordinates:["@@„‚nԚlW¼x‚¦@lœVl™lLkè„a@zš¤ƒĖ„¼UxlnUKUbÝlU¼lb@„Vx„V„klJÈwV¯š@ĠlÛĖšnƒbkšÆźÞƒUÈôklmšL„¥‚LœW˜„„™nKUkVa°V„x@IVV@x°bUk„a™a@mV@„@y„w‚L„ÑUwVUšV„‚„U‚bÞVVann‚@XwÇÿš¯²aVamkXaÆ»@»nw@¥›UXaƒkbWa¯KUw@¥m@kwmLU»UU™J@kmU@UUWUƒ@ƒyƒanwmçÛl¯ƒŽ¯UƒmKUmƒwVkmÝXbW@XWÝbƒk¯@±‚w@»U@W¯Å@ƒÇ¥UƒU@ƒƒ™IU™ƒakJƒĀ„ꃰšþƒXkamŽ@Žƒ_J°m‚@X"],encodeOffsets:[[118125,24419]]}},{type:"Feature",id:"4416",properties:{name:"河源市",cp:[114.917,23.9722],childNum:6},geometry:{type:"Polygon",coordinates:["@@°VlmX¹laĢÒlm„@„„šVš£‚‚@¦Ģklynn¼lW°z„W„„°VbÈV@lÆbnn‚JškX„šVÆašÅ„W@™ƒUUw@ƒkaV»ÞkVaVLkmVwƒ»„ĕ™£@yƒblçkKkš›U@k¥‚wX»™kmӃ@Wn¯‚I„`@nlb„W™ý„¯ƒé„ÿlI@™XUmWUwƒ@@UJU„Ç„mKUV@x™„ţk¯¯LWƒƒnUxK@ű»Vwa¯š@¤WX@ŽÛ¦@¤ÇIȼWxXŽƒ@Wx—w›ŽUnVbÅèmVa±²UWl@Žk„lȄ¤nôܼXxlUnVlbVn„lU¦ƒJó»@wnkmU™‚Ý@U_™¤XxmXm¤„ô™b@¦Èƙ¦lJn"],encodeOffsets:[[117057,25167]]}},{type:"Feature",id:"4412",properties:{name:"肇庆市",cp:[112.1265,23.5822],childNum:7},geometry:{type:"Polygon",coordinates:["@@l@š¥„@V¼„Vôۚš@bšV@ŤVLȃlVÈólUX¥mĉ°k„ÿU°@„ƒÞKl™ÿ°KU™„UW»Èw@aƒšw@ƒ„@nm@w›£kÓVUVn„Kš™k¥™£Vamƒ@nkKkbÆǫma—kmLU¥™UmƒÛwmVU™mUƒJ—ÇaUxÇIn`mb@Þ¯b@„nJ@nl„U‚V„lVU„L›W¯—Û`Ç_¯`mš¯I™bĉWċzx±J™xš¯ÆUƒƒ_k@™šƒJ@Umb„šXôlLš˜n¦@¼ĊxlUXŽ˜xUbL‚Ġ„UnVĊwlšUš„b@lW„X„‚m²˜@ÞWxXš‚Unb"],encodeOffsets:[[114627,24818]]}},{type:"Feature",id:"4413",properties:{name:"惠州市",cp:[114.6204,23.1647],childNum:4},geometry:{type:"Polygon",coordinates:["@@lbšW°bnnlaš@@wnmÆLVUkÇlƒ@Xk‚V²±‚bnUÆçUaVmœ˜xXw„@WXwÇ»ÈJ@£Ü¥@XW@£°™‚bUx²¼@ƂLVw„mX„°K°Ťlšƒ@wVUnLȃVƒVIky±wkƒKU¯ƒÅkƒ™XġÑۃlwUwlm@m„nKWašÅm›¯óÇmğb¯alĉUwķbmb@lÞÒVn—šmĀŹ@VŽƒbVŽUnmakLm`@xĉkklVÔVJVn—lV„UnmJmaLUbl‚™zmŽkL™a™‚ō@@zš‚V¦UŽV²kJ„nÜU@˜VXUŽL@„lJƒL@bݤUnVŽ—b@xVnlK²„Vx°V„xlI„lkVl²k¤@n"],encodeOffsets:[[116776,24492]]}},{type:"Feature",id:"4409",properties:{name:"茂名市",cp:[111.0059,22.0221],childNum:5},geometry:{type:"Polygon",coordinates:["@@‚LnÇlk„KnkÆL„ƒUm™ÈxlUœJló°n@ššanŽš„„a@ƒ˜@X_@mÝóóU@a™aU¯mL¯ƒƒkV¯™ÇVwkw@V±Ŏ£@™™@šalw±Vk@m„Åm¯™ÿŃƧIÇ`ōô¯_UVW°IV‚ƒx@xkX@Žmn™wXƒWa@ƒƒkkJ@kVƒa±„k™kVmxmL@‚¯XXlWVUI@xƒš„lƒIklVȃV@b„šlW@„@nUxVblVxkôlx™n„‚y„šnIƻư„aXwlK„bVnƒŽXb‚L„¤„k‚L—èƒVV¼ƒŽ²IlĠVX„ynz°KVx°@VlœLlblKœš"],encodeOffsets:[[113761,23237]]}},{type:"Feature",id:"4407",properties:{name:"江门市",cp:[112.6318,22.1484],childNum:5},geometry:{type:"Polygon",coordinates:["@@lUXx°JWnnƚXVš„W„X@„šºVLV¯nU‚Vnb™ô„x‚aXmW™XIšŽUb°xlK„l¯œK˜xXÞ°ŽšXÈ¥Ü@„ĉޏU™‚çš»nóƒVma—x‚¯UÅU¥Ý¯@ƒƒç@ș@çĉÅUmU籃ĉKÝxÝ_ÅJƒk¯»ó¯nmèkǀšŽWxœ¼mnUÜġ°@¦@ƒxƒLkŽÇaVnUxV„™šVlnIlbnÆÆKX¦"],encodeOffsets:[[114852,22928]]}},{type:"Feature",id:"4417",properties:{name:"阳江市",cp:[111.8298,22.0715],childNum:4},geometry:{type:"Polygon",coordinates:["@@°„nKV°šb@bôVÞô@n„VlÒôÆUnlnn@lmkmVkƒaÈkÆƄ™k¥‚ÅÞ»ÆKXkW¥ÅLmÅkamJUkš™UƒVwUmÈbl„K„w‚@@¥Ģ¯VÛnm›»Xw™lƿ™@kbW™—aʵ@óL›l¯ƽ@™ƒƒLn°ƒÆ@nUl‚²kx™b@‚š@šō¤U²@ŽlxUxšÈU°lŽ„"],encodeOffsets:[[114053,22782]]}},{type:"Feature",id:"4453",properties:{name:"云浮市",cp:[111.7859,22.8516],childNum:5},geometry:{type:"Polygon",coordinates:["@@@V„Iš™l@„`V„°Å™šw²I‚wČyĊXša°Jn™°_È`Ü_°˜œX‚KVƒkUUƒVkƒ@mmI@ƒ°a@Ýnam_ÈJVwlĉX@„šlUšómaUmVU°UK™¹@ƒƒWƒXU™™WmÅXm¯IWwkVWlÅLݼÆl¦ƒšÅÅÇl„bUllnknm@kmVmóÅkуUW`—@@„ƒb™ƒm™b@™¯mkô›IkVÇwnš„VƒÅKmlƒLklmȁKƒšVĊK°²„`n˜¤n„U„bWl„xVx™LUx@°nXm`VklVxmnnx"],encodeOffsets:[[114053,23873]]}},{type:"Feature",id:"4401",properties:{name:"广州市",cp:[113.5107,23.2196],childNum:13},geometry:{type:"Polygon",coordinates:["@@Ș¼VxUnĊ¤@z„@šÆ@nÈW°ÈV˜w„ŽUÞVxÞX@ŽšK„šl@ބVaĊbœU@ml£k±lUƒkkJƒw¯UUw±ƒkLUm@w˜aUVmÞ£@a„KkI@ƒ‚KVUW@—ÛVƒmlIU±VU¥™@yğzƧǃƒšƽĠřšÅnī±m@ƒ²¯lƒ°@nÝÆóUll@XnÝVU¦mVV°—„V¼™Jƒn„b@°mbn„ƒ‚@²¯‚¯wVwƒ@@nmxX¤¯L@ŽVLU„m@@l"],encodeOffsets:[[115673,24019]]}},{type:"Feature",id:"4415",properties:{name:"汕尾市",cp:[115.5762,23.0438],childNum:4},geometry:{type:"Polygon",coordinates:["@@@‚„@VxnXWV@š„bVššJ„„V@ÞÅU¥Ċxš£UWU‚wÅUU¥WVUkĊÇnkV`°LV™„wƒƒnU@™„ƒlbĊ¯„Vnalšš@@çkUÝ¥ġaó¯ÅaÅLŻÆUýmy¯ó@ĉÆó„ȯw™ÆXbmLƒ‚@nknVxkx܄ĢҚW„Æl„V°„Ll‚²xlz"],encodeOffsets:[[118193,23806]]}},{type:"Feature",id:"4452",properties:{name:"揭阳市",cp:[116.1255,23.313],childNum:5},geometry:{type:"Polygon",coordinates:["@@V„Ȧ„Æ@X°V@@¼‚x²°@„lÞaWXX@‚aÞWlnUŽ„xVnnL„‚°V„@k‚mĢl@„ak™@mlk°aXƒ±„nwm±™²¯JV²@ƒwW˜—_mƒa„V»ƒU@m¯ĉUф™šJl™„ašbVn„lĸLlƅÛDZwÝ@ĉxó@è™@k™mbƒUĉ°kaƒ„@šmV„„ƒxUš¯KU_mlĉÈVlXUV¦ÆVxVŽVX™¤ĉwV¦ÝÆ"],encodeOffsets:[[118384,24036]]}},{type:"Feature",id:"4404",properties:{name:"珠海市",cp:[113.7305,22.1155],childNum:1},geometry:{type:"Polygon",coordinates:["@@„è@„Þ°V¦VƁ°˜wnb„UÆ»nçƏ@nxܤ²llU°VnÈJސ°UôéšķUklƒô£VVˌKÞV°£n¥ƒ£ȗ™Ýy¯¯mÅkw¯bÇĔğ@Ýn¯ĊƒVğōŁŻƒķJ@Ț","@@X¯kmèVbnJ‚™"],encodeOffsets:[[115774,22602],[116325,22697]]}},{type:"Feature",id:"4406",properties:{name:"佛山市",cp:[112.8955,23.1097],childNum:1},geometry:{type:"Polygon",coordinates:["@@Èb˜Ž„InVVšnUÜxn„šVV¦nK˜lnbÅǬlalL@mn„Ubš¤l¦™šƒLUmUVlԜ¤@xmnVl°_XVVmƒkVmș@kn@VƒUK@°KW£nw@m„@Ux°x°@±„mƒna@¯ƒa„mšIU»˜ƒU¯nUV¥ÞUWmk@Vk¯™Ukn›ÑWݐƒĊÛ@Ǧ™W¯Wݗw›Lk°ƒkL¯wVa™WJXšWnbƒwkVƒ™W@kĊ"],encodeOffsets:[[115088,23316]]}},{type:"Feature",id:"4451",properties:{name:"潮州市",cp:[116.7847,23.8293],childNum:3},geometry:{type:"Polygon",coordinates:["@@°ŽÜknèmx„b„z„@V‚VX@VnV@lšIVVV¼nKlxn@@¦Vx°LXbla„ŽWbœV°£¯™W@nW@™‚aUñVœwWš»@¥ŤÅUÝǓÝóV@ńǎkUVmƒIUwÅVWÇX¹›—@W„¯bkl@nlšƒb@‚kġŽn@l"],encodeOffsets:[[119161,24306]]}},{type:"Feature",id:"4405",properties:{name:"汕头市",cp:[117.1692,23.3405],childNum:2},geometry:{type:"Polygon",coordinates:["@@‚@U±°Iš±n²mx²ƒ˜@œWºXÈÆUVx„JUnlVȍ@ŃôUǔÞVçn»VyĢÛVm@»kaÝUǼóšÛÈķKċ¥X„¥Wwğk™ƒ¯@ƒwķKƒkUm™aƒbkš™IƒšVÒ°Ċ@n„VU¼ƒ‚„bn˜`X—„x"],encodeOffsets:[[119251,24059]]}},{type:"Feature",id:"4403",properties:{name:"深圳市",cp:[114.5435,22.5439],childNum:1},geometry:{type:"Polygon",coordinates:["@@ÞLš„@xšbV„šVšK°™X°Kô¥Vw@anU„胐š‚lkĊl@wn_lKnbVmU„aUź@nÿ˜™UmÝѯUƒbk„@ÆkxŻ@™aÇX—wƒJƒƒ¯LķÝUĕ™ó™ĸóêWº@b²nmĬ™Æ"],encodeOffsets:[[116404,23265]]}},{type:"Feature",id:"4419",properties:{name:"东莞市",cp:[113.8953,22.901],childNum:1},geometry:{type:"Polygon",coordinates:["@@Ŏ@ššblKnšykVa‚KnbnIVmUƒ˜kUmUIUә„ƒçmV@bUxó¦¯LW‚¯š™L™UUƒ™a@w™ƒÝKğŚ™ƾ„„ƨÈĠy"],encodeOffsets:[[116573,23670]]}},{type:"Feature",id:"4420",properties:{name:"中山市",cp:[113.4229,22.478],childNum:1},geometry:{type:"Polygon",coordinates:["@@‚XœÒlmšV°ôÞÅ@m„¯°k„±‚@@aX¹¯VݏÇIUmV¯kk‚±Û£mw@‚Őmèżmô™¼èVš"],encodeOffsets:[[115887,23209]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/guang_xi_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"4510",properties:{name:"百色市",cp:[106.6003,23.9227],childNum:12},geometry:{type:"Polygon",coordinates:["@@lklWXL@VšI‚l@XnJn@VUUalk@mK@kny@UlU@a°™„ƒUU@VmaU@Ua@UWw@ƒn@KmLm@alkšmnI‚m@an@VIUamWÅImwU@@a@K„X@JVL„UVmUaVkUa@m„@@Ulmkk°ƒUaVUlKXbVwVIkaVmUk@KVk@a„aW¯m@w„¥laœX@KmaškVmnUl@nxVKšInU@yVaVIV@na°KlxX@@_lmXšUV`VIV™V@„n@lšbn@@WUkValK@²yl@„„VUV@@K°L@KU@@UVaXIVVV@naVkVa@K@UUK@UUa™LWa—w@m@K@UVVƒ@mVUUVKnL„mVL„K‚bVK@UUIk›mI@mUIVK@IUK@VkLƒ@WU@mU@WmUk@ƒI@VƒJk@WwX_@amK@UUWkIƒ„ƒK@LVb@mVmakL@J@bU@Ux@xƒbmI@`ƒIwm@UbmKUaUWa¯UkJWV@XƒJUU¯LUmV@ma@kkamKwƒLUUmWVkkm@aVUUkVKnVVUmXK@UW@km@Ukkm@@W@U™kUy@I@aUUmbƒ¤U@kUmL@bmJU@Ua@wkLWWkL@Uƒ@VaU@ƒLUakKWbkUWVkKkLVLUV@JVbƒz@Vƒ„@ƒVmUU@kVmK¯@VƒU_™VWakVmIUKUaU@@bml@XU@@V@LmKUV„mVUKƒƒKƒbkaUXƒKUL@x@V@l@„mxU¦„V@ŽlL@V@Ln@@VV@„nlKUaV@nLUbmJnL@VWLkbmV„@@L„W‚„XLlx„VVIVV@x@V²blUVm„LVUœK@kWWXUlV@Xl`„LX„l@@VšŽƒn@VnbVš@lVUVUÈVbš@@`UXU`l@@XUVm@kš@xmVknUJVXUbmKULmbx@VlJ@LVbkKUbVLÇUUVƒUVmU@VaUkUKƒVUwmLkUUVVlƒbka™XmwƒKUšVVU@@V±Uk@VWUUm»XamU™bƒKk™`ƒ„™U@UnWW_kKmbUVUVmnUV@„nJVUlšUbU@UV@n@JmI@VmbnVUXlx¯ŽkKmnVV@L@V™bkV™Umm™@Ub¯LmlUƒL@VWLkmkLmmn£WmnKU_mW™š™bnbmxƒ@U¦UJU„@Xmlk¦@‚mnUUm@@Jn@lV„ÔVJnIVW„I@a„ƒÆK@I@aVK„IlŽÞnnl@nl`nbÆX²l@xV„@llbVn²ŽVVl@nn„V@IlW@Un@@kVa°KšnÈmVaVXUlaVƒÈU„VlwôUlynIVašan@lVXb‚Iš@n¥la@Kš_n‚@bÆx@XnJV„nKVz@`VXVšU`@bƒ¦UV@VšIlx„UnV‚K„XÈbšVllšbVbnVn@"],encodeOffsets:[[109126,25684]]}},{type:"Feature",id:"4512",properties:{name:"河池市",cp:[107.8638,24.5819],childNum:11},geometry:{type:"Polygon",coordinates:["@@lLVl„bVV@nXVlI@JVX„mšn„W°b„IVV@‚ln„@nalVUb„nW‚@kVkÒlbVKn²°bUŽlV²@˜X@`nb„aUI@ƒ°wlU@aXJVI@aVK@wUamIXm‚@XUV@@bV@Vm„ImnUUwVaVKXU‚nVK@akƒVwV@nL@UV`n@@X‚lnIUJl@X¦˜V@aUIVm@anƒV@UwnL@VlbVL@KVVXUWƒ„wUUVUka@UVJnUlbnalbVVn@°„„LV`Þ@šXVxV@@bVlUVVbXnWlXnmlš@XXWVXJmbUI@V„llUVkn@@VWV@Vnb„@VXUJVnn`lLVk„a„»lVšLnw@WV@lInw@WnU@U@m‚knUVó„K‚wUmUXUƒU@@wVJVIl@XKVVVbVI„J@Un@lŽVLnm„b@U@Ul@nUš°VUVJnnVJV@„@mVU@ƒ@wkUVwkKWk™yUUkU@alkÈ@lJ@x„Ilƒ@UUWVkUw@Kn@@kmaƒVUl™UUL™ÇƒUUKl@UUmL@aXU@mlUUwmKkUUVKVUƒaƒKUnK@U@Vl@XUWU„KlwX@šb@K‚@XkV@UwWJka@aUwmV@U™@@U@wUm@»kLWVkIWŽXnmV@VkbmKƒLUbk™Va@aƒa@@aVU@aVak£@ƒ±UkVU¯V™UUƒJVƒUIƒ@kxmUmWUbL›w@K@aU@@aVU@Kma@aka@_VWkk@UWVUKULWKULUš@KUnƒwVaUKƒxU@UmaƒL—m@kVmVa@UkƒmI@ƒ@KmIkxU@@K™U@mmakI@VƒLkmWkkJ™_U‚@V@L@n˜xXbšKVb@VVL@V@LUbUlmbU@UUWJUb@VV@@L¯K@LU@UVƒƒk@±z@‚kLUbVl@Xm@™akm@ƒU@UšUJU_™VWŽkn@`W@kw¯LmbU@UJUb@zmV™JULmwk@mVUn™lnb@L›Wkbƒ¦@x°nXŽƒb@bUl@LVlUnlbUJUxWakLUVVb¯„llkn@Vƒ@@nVbUlVbUnƒVUK@IƒW@L@bV@nxÆJnXVbUJm@@bnmJ™nkl@b‚nnK@L„m‚@Xx@VVbV@nb@UVVƒ„¯š@bkV@Vmz@lnLl@kŽVbUVm@mI@Wk™J@UWKkXkl"],encodeOffsets:[[109126,25684]]}},{type:"Feature",id:"4503",properties:{name:"桂林市",cp:[110.5554,25.318],childNum:13},geometry:{type:"Polygon",coordinates:["@@nU@J‚X@`XLm¦Vb`lšVXXWš@VblČnVšŽlanLnmVLšK@_Vaƒ¥@kUa„@VmVb„aV@XVVzlVVK@knKVmX£VKšLlbnš@b@llL@xĊôXaV@°È@¤„bn„V@@Wl_„V„U@W„nVamw„wVbn@„K‚VšLX@VmVUxlV@šnVV_nK@m‚I@Wn@@IšUĊ@@wVWX@@I°VVm@wmU@m@IUƒV™kƒlkUmmkÅV@@aV@@Wn_UKla@kšaV„šlVanb@k„@@KlVn@@aV@nIWW™UUaVU@™kKmwU@UImKk@UU@w@W@‚™k@™UkWƒ@mk_W@Ua@a™ƒƒ@—¯ƒmV£@mƒUUam@—kWakƒVama@UUm@nw@alaUmnUlVlIœV‚™šLVyk£Vm@k@UUJkƒK@kmKUw™KkWK@UXImyVwnI@m‚ƒkUlkUKkUVmƒw@kkJWUÈm@_k@@aƒaW@U„UJUwU@@IWKkƒmUUV@nVl@bVb@bU‚UXƒakw@ƒWUkbkKƒbm@™xUlkLm@@wmKUX@‚™UaVW™XVmU@@UUUƒxkmWXkKkUWaUaUb™L@`UL@LV`UXmK@VmakLVbkL‚xUJUIVbUVVb¯KƒV@Xnl@lVXbmÒnV@L@VWKkVUIWJkIƒŽUamUUbm@U„kU@JUbW@X„WxUam@kbVVUnUJmUUV@bƒU@UUV™@ƒVk@ƒbƒmULV¦U@V„U`VLUL@xVbn@UJ@nWJXXVŽVV@bkxVbUx‚Lšš@x„¦@šU‚lXUVVlULV@@šnŽU„ƒb@xl„nJVnlVknUlVUbmŽU@ƒbVš„x"],encodeOffsets:[[112399,26500]]}},{type:"Feature",id:"4501",properties:{name:"南宁市",cp:[108.479,23.1152],childNum:7},geometry:{type:"Polygon",coordinates:["@@lKnbnU‚@Ua@K„L„ƒlJVX@VnL@bW`Xxl@„I@U„Jl@nV@X‚V@nXV„@lK@UVL@JULVJ@nnJlœVJ@VULaƒLUKƒnmKULVVUŽ@nU„š`lIXlln„K@UlJnb@nšV@LV@lwnJ@L@„nJl„@VUbUn@l˜n„KnbVŽV@„wVLUb„xVm@LV™VKXLVKVLXU@VllUX@`lb@bnb‚L@ŽUV@bV@@b@Lœx‚KVanXVƒUUmVUUUaVUky‚UUa„ImK@mUUVUkKU_@W@UVVVIUW„UVaVU@UUKnƒ@k@al@ll@bnL@b„VUV˜X@Vœ@@b‚Knblmn@V_@aUalL@a@akK@kVKUKlwUUnV¥VmU_VWVIVaX@Va„alńK@LVJnalL@LnK„wlVUw‚mX@VXšƒlLUVnblaUmVUVwXU@Wm¯Va@ÞKnw@w™mšk„»‚UVW²a@_mW@U@I„y„LVUUKW@@™„LX@VUV@@yVU@UV@nwUUmJka@IU@ƒmƒVkaW@UwUX@`ƒ@kLWUk@mƒkUUm@k‚UUWkUƒkWxk@@VƒK@nV@UVaƒUUJmIkVƒ@UamLUbkVmamLka™@ƒ‚kmL¯WI@wJmwƒx@akU@aUKmbkaW_nW@_U@Wm@a@wkwUKmƒk@ƒbkb›w@mKUkkU@J@bW@kVWz@bVUa›VUx@„ULkJWbXVVXƒ`@œmJUVU@@Lk@WbU@UJlnXlm„Vx@Ln@‚b@K„LX„WJUUW@kƒaUVUbmV@nnV@n@lVLƒVmLX‚mXkV±@kxÅL›šUbJWIÅJ@I‚mXalkUamKkškL±aVwKƒUU@mÞnbWJX„m„@lbmKULWUUVkaƒbnn@Vl@VVV@VƒbVbnLWLXJWxXLV@@VV"],encodeOffsets:[[109958,23806]]}},{type:"Feature",id:"4502",properties:{name:"柳州市",cp:[109.3799,24.9774],childNum:7},geometry:{type:"Polygon",coordinates:["@@ƒwU™„aV@nVaUVklmkUUmmIkƒ@w„aVƒm@™U@VKUkVUkWV@™ƒ¥@w™™KVwUalw@aUUUWWXI@mVIm@Ua@wVKUKV_UƒV@U¥VK„n„al@„Uš@VU@V„V@aVUnVVIVmUUlan@VbXwWƒX@Va@IlVVƒn@VanVVb„lJXIVJlUXL@U@KmUnÑWakU@mkƒJUI@mk™@wUmmUV@JXaWIXWmaUIƒJƒkk@W„nJ@„ƒaUak@›kkJ@kUKU_ƒ@myUóWUkm¥kUmL@KUKm@k_UmVa@ƒk@@UmU@mm_—JWIUVUŽWLUlbVUJÇVUIVwƒKUVk@mU@n@lUL@Km@@l@L™VƒzJmUU¤m@UbV²U`U@@¼Vn@x@Vš@@VnUVx@blbXIVxU@Wl@@L™aW@kxƒLXVWVk@@U@VmLVŽ„L„bUVULVV‚lnLVxkV@nWV@bnKVVk@VL„VšÈVKšVVk„Unb@lm@@LVxUlVX@Vk„ƒJ@wkIÇ@kl@blVVVšzXllLUxlV@x@„UV@nƒ‚U@UImmUIUV™¯mVk@@V@VƒamnUKkm@@VƒIUJUaUUWLk@UJUI@xV@V„VWVnxƒLUômVV„@VkVVVUnV@UVkL@VVV@bVxla@bkXVJVn„`nU@bƒb@bVL@VnJ@„l@šV„aU@@_lW@UUU@Unƒlll@XLl@@UX@°bVWVanLlknVV@VVX@VVƒnUŽVLmbXJ@nllXX@`VXƒlmaXVWk@Wkƒw—J@„VL@J‚bnU@bn@@bVKUnVJVIVVVL²a@bV@@Vl@nUVakalmš„UL@VUL@V‚a@mXl@nK@UlK„L@Vl@@nkllb@š„Vnn@‚šnV„™V°l„šVInwlKXxlU°Žn@@ƒ‚I@UnVlakUJWkUK@anUWK@_ÞJ@U"],encodeOffsets:[[112399,26500]]}},{type:"Feature",id:"4514",properties:{name:"崇左市",cp:[107.3364,22.4725],childNum:7},geometry:{type:"Polygon",coordinates:["@@@JVzšl@V@Xn@ll@VlnX@@VWLnŽUVmUULVlUV@blnUlnXVV„K‚xnLlb@lnbU@Vn°KVV„I@WXUlI°VXb‚VVbnLVan@‚x„J@_nJ„a@wVwV@@a@IU@UU@WKXwWIXKmKUa„a@U‚UUUk@@Umm„albVUXVVKnL‚a@knƒWƒXImanÝV@„V‚LUx²blKl™nLVbklWbn@JÆIXJ‚IVaœ™ÆKlw²@lUnWWnK„UUK@k@mmU@mnUVaVU„b@lVXVXIWƒƒK@Lam@@KUwnƒWkkmVIV@Xal@@KV@VUnI@›„_UWWUkam@kkm@ka@mƒk@wkJWIUU@WXkW™XkWWLUUƒ@UakLƒW™XV±VIVWUU@anUWaUK@IU@Vak@@UUKWaƒ@m@ak@@wUkla@mUaUklakwVƒ¯¯@WWUkLkKmaƒ™kLUnV`UxWX@Jkn@bmlƒakkk@ƒb@l¯bm„ƒbJ›b@VXn„bVV@„ƒbƒJUkkKWVU@mœÛVUUW@UVUJWXkVkKmUL@WW@U„Vl@XXKW„XJ@XVlmbUxnnm@UlVnV@XVm¦VJb@šmLkKÇbXblVkn@l@bWnX`V@@IVV@ŽV„V°n@@_naÆVVbUVVbUJnzlVUl‚XkV@Vlx@X„VnxƒbƒKUK@b¯VVUV™L"],encodeOffsets:[[109227,23440]]}},{type:"Feature",id:"4513",properties:{name:"来宾市",cp:[109.7095,23.8403],childNum:6},geometry:{type:"Polygon",coordinates:["@@nVlw„@VJU„„IVVUšV°lU²V@„l¤Ub@bUV@b‚@„b@bUblšVa„KnLla@UnUWmXlJXUlKV@V_U±Van@V£nV‚I„yšU@K@kn@@LVK@k@mnVl@VU„LUxVJÈUVIU‚aVkXKVVUXJ˜In`@nnV@Vl@@„UbVnl`n@VL@LnKlVn¦VlôXV‚nz„@V`VL@llIœll@Vb„b@ƒmIXƒl@„l„IVJnbWXXJWb@IU‚nVVn@xlš@nVJ„I@W„U°LUaVUUaVJVIwlKUalKnb@UnLVWU_@KVK@_šKVa„@VKU¯VLVKn@la„aUkU@maVU„J@k™@Um@XmbkyVaUIUU@KV@laVn@KXKWUkUk@ƒaW™UUVw@aXKmƒVaUUkšmIƒlUU@wUa™xUmmU™¯™U@WƒLUmVIUym@UVmUa@wmw@çm@aWLU„™JUIUamKmL@™aƒx¯¥ƒkU¥U@±„k„UVmKU_mJUbkKm„ƒLÅǙ_@WWUXUmaVUkK™„UWW@nVxkUƒxmL@KkKmbUI@KƒLkƃbUbW@UbUJUXV`UnU¦mŽVVkxVLUL@llL@b@bkKVb@bU`m@knmaL@a›@@U—WVUƒU@amK@akkk@@b@lm„VL@VUVUbƒVVXUJUU@V@XV`lLUVVV@nnLƒJVbVlzUVVbVVnUVVU„"],encodeOffsets:[[111083,24599]]}},{type:"Feature",id:"4509",properties:{name:"玉林市",cp:[110.2148,22.3792],childNum:6},geometry:{type:"Polygon",coordinates:["@@VJUXVVXlWX@V™xVnX@@`ššULWŽUXÅbWK@mULUUmJ@n¯b@l@VULVx„x‚XU`VXXJVI„V@nm`@nUŽVXn@lWVn@b@Jn@nU@Lm`@Xn@WJƒ¦U@@VnL„lV@@Xl`nIlJnkVL„w@KVK@UšaVL@bVKX™lUUKVK@I„VšL„a@U@WšLUlVL@bU@@blb@VlbUxVbXUVJ@xVL„U„lV@VU„bVLnKl„XJ@L‚b@an@VanL@`VLšKV_UWl@U_„a@WVInlVUUUVm@I@W@wVakIWm@U@ƒXwlaVbnI@ƒm»Va@aXaVLšU„»@aVa@k™KkL@KmU@WƒzUK@wU@VWUUVUUKUa@mKmbUK@_nWVaUkVaUaVUVLXKVƒVUVmVI@UkKkLm`UkW@UwWW_„UaU@WakXmK@xUXƒJkƒUUWUk@Wl—mJ@km@@aUKzmyVk„a@kkWVUU¯lmU@@w‚kkmV@Vk@mÅIƒ‚Ukƒaƒ@Ub@m@UUU`mUbWaWmb™X™XKWIXUWm@љ@y@UkIUJUUWLUWƒL@UkVUxW@kaWbKWnXxW¦n„m`XLVlUbVbUx™I@JmLUKUb@VW@@bkL@b@VlU@xkš@L@lƒxXxWXX°V@VVVbUVV@UVVbULVnVJUb²b‚aUb@VVVVInlV@VnXaVUšlI„VUb"],encodeOffsets:[[112478,22872]]}},{type:"Feature",id:"4504",properties:{name:"梧州市",cp:[110.9949,23.5052],childNum:6},geometry:{type:"Polygon",coordinates:["@@VbXblVlLXWln„wVV@VV@UnšWUXVbš‚@VWXa@kVK„UaVaVkšUlyX@Vaƒ—VmUwUaVU@UÈymI@aU°@š™nWV@VaVaw@IV@VmnLVK@kmmna@™„™VbVI@aV@XbW`U„„LUVVx„@VbUV@bl@VLXblJn¦lL„°°@n™@K@UlLnK„a°LWbnJ„¦UÒV„UllLlVnKnbWnn„V`„w‚@@Xa±™n™l@XKV_„WVkVa@kVyUa@wU£UW@UIVW‚@@a—wWaX_WKkVmUULmak@UJUI@±m»™—k@m»VyUIm™nmmwnkUmVaVIUn_mW@»Vk„@VwkmmUXa@IƒaVm—mƒ@Wm_U@mIUWóLmUk@laXmmkUK@UmKULUUmWULƒ@VakU™@Ub@bƒ¼™VUKWb@bUbn¼@„mJUakbWx@„@VXnlJUb@x@X@JUnVVUVmkUJ@XƒbV`k@VXU`™LUK@_mKUbm@@b@„U`@nlV@b„UnbVbn@@`VbUbVV¯bm@@mJXb@bVnUllVXUlbUl@LU¦VVmŽkLVb@b™l@V@XlK@V@nUJUz„°mŽwmLmlXbWVU@UUUlƒIU@VVmV@@¦‚bXbWxX„WlXVWL@LUmkbU@@LVVVJUblzna@WVnš@@lƒIUVnbV@Vlƒbkbm@ULUKV°ULƒ@"],encodeOffsets:[[112973,24863]]}},{type:"Feature",id:"4511",properties:{name:"贺州市",cp:[111.3135,24.4006],childNum:4},geometry:{type:"Polygon",coordinates:["@@nL@xn@lKVkšwn@„alLlaXV@„lx„bVWV@aUa@aUk@mVUnVl„XL@JV@VxVIVƒX@„b@bl@@`ÇnXVlI@l„xUnlVVLkllV„@nmJUxnzWJ@VXLlŽšLVxnL@l„LlŽVI@V@lUnl¤Uz™Kš@„Vl@š„L‚l„Lnš‚b@VnVVU@k„a‚Knxn@VkVJ@ńUlakmWIUaVanm@_UK@UVWUa@klXam™U@Vmƒ™VIXW„@lUVknVlKVLXŽVXšW@b@VlšnnVL@KXL‚Kn@lb@UnW°@Va„X„WVb°aVa@I¯aUkUaVKVwƒaXk@a„a‚™@wkm@alanUVw@alK@Umkw@UƒaUmU@WXUaUK@UW@UaVWI@¥Xa@w@WWšVƒXwƒU@mKUXUWVU@a¯kl@akU@UULmK¯VUVW@U_m`U@@xVbUz@lUbUlƒXU`WLk@mš²šWb@Ž@ƒxU_mƒXmmamLkUkKVkUƒVу¥mIXa¯KƒbmLkK@V@Lmš¯@ƒ¯kKm¥kIWaUKk@@aVUUaƒ@UwVUƒKVƒX_WaU@@bUJUaƒš@šmbnn@lULmKUnU@@J‚xUbUbU@mX™š¯@VŽ@bnJÇz@VUVVbVxUn„˜UbW@kz™VUlUbVbƒŽUL@lWb"],encodeOffsets:[[113220,24947]]}},{type:"Feature",id:"4507",properties:{name:"钦州市",cp:[109.0283,22.0935],childNum:3},geometry:{type:"Polygon",coordinates:["@@@IlVVlnL‚@œxla„al@n„VLlx@x@bXnV@@`mXX`lbnaVL@blV@b„wnx‚I@xXJ°nK‚l„š@lbnKnblUVanKVb„@lUnJVI„VUb@V‚U@m„L@Ul@Xw„llVVXV@lVnlVn„l@XVlK„@@_VWVxX@lb„U„nV@@JlbnIlmnVV@UwVK@U@k°a@mnIVVVK@nXLÆaVWXVK™™@_W@Umšw@UXWWkUUVWUIVaƒUkJ™UVWbUmU@mkUJUU@UVab±aVaUIUmVKUaVUU@VUUaUUU@W¯XWWw„w@k@Kl™@wkV@U@alK@aX@@UmIUWUIƒ@mmkXU`U_WJUnUJmUk@@amLU@UVW@UkU@@VƒbUWVUk@@wmKkUWLUWX@JmIƒlUkkKWKkLWU@UKWa@bU@@a@_UKWƒUUUmJmw@nV_@ġğKóLmbU¼VÆ@xUXƒ@Um@wklVnUn›lkaUV@„lV²WVklWXXbWlkVkIm`UUƒLƒUU@UWƒx@XU@@lWLU@kbUbV`UXllUV@bmb@LnKVbULm‚šnVVIV`X@"],encodeOffsets:[[110881,22742]]}},{type:"Feature",id:"4508",properties:{name:"贵港市",cp:[109.9402,23.3459],childNum:3},geometry:{type:"Polygon",coordinates:["@@n@VzUJ‚nVŽ„K@XšVš°nVVnšwVb@xVV„knJl™VVUbn„WL@bUxVVXš„bl@lVXkWƒXwWaa@¥‚@nUUUV@„JVkVVV@XUWanknK‚xnƒ¯VyVI@m@UkL@W@Ušk@aUalKnUUV¥@KVkkaWVkUVkUm@aWanI@n@°aUUVaUa@_m@UamaƒV@akU@mV_@ƒa@KWIkƒmLUKƒaUVU@ƒkƒVUK@wUIWVUaVwka@Uka@aV@@aUKVk™K@X@Vƒb™KƒU@JULVLkVWšUL@aUK™b@VUL@LƒxUKmlkImJk_@WU@ƒkmK@UV@„¥XIm@@Wn_@KmVm@@I@aUmkXm@UWV@mn_@mƒUUJWIUWV_WƒwU@mUknVVmxU@@VUV@zU@UVW@ƒK@šX@VLUVƒKƒz@J@VnX@`±bUXVƒ¼™lšn@xmxÝL@‚Ubn°@XWVUxUVVnkbWVXV@Xš`ÆȄKnƒlLVanIV`nLVUlƒ²ƒV@V¦„l°¦„w‚b@šnKnLVbVJšIVƒXK@b‚n@ènx@xVbUnV‚"],encodeOffsets:[[112568,24255]]}},{type:"Feature",id:"4506",properties:{name:"防城港市",cp:[108.0505,21.9287],childNum:3},geometry:{type:"Polygon",coordinates:["@@XV@X°°U„lxkbVlVb@nkbVl@xl@@b@n„‚XbVL@Vl@UbV@@JVLXbmV@bVVUXUJU²šW„XlKVb„@VVXKlXšWlXXWV@VXJlI@x„l@nlbn@lln@lbXalIVK@ƒVwœUVb‚U@aXylUX@@aW@U_UJmU™nVKUamL@Kna@aVUkkVWU_ValaV@XK@kV@@W„wVXV@„V„KVVn_lJlUXkWaXWlkXU‚±kU@ƒVUlbœkVmUmlk™¯Ý™™W@mb@¦VxULm™kJUU@ma¯wƒmkX@VóJ±bUVUXÝWk™lWXXlƒxUaƒbƒIğ™Ç@U@mVUKkkm@UJm@XnWV@x"],encodeOffsets:[[110070,22174]]}},{type:"Feature",id:"4505",properties:{name:"北海市",cp:[109.314,21.6211],childNum:2},geometry:{type:"Polygon",coordinates:["@@VaVLnK@IšJVwUaVaUkWKn_mƒX¥WwXm‚LXalbU£UyV„Å@ݙwm@™°l›LÅUƒmk™mwÛaƑLÝUUm@ȣƃV_„Ó@£UƒƒUVƒ„™¼U°W̄™ÞVbXbôx@b@bmV@ǃ™UÝ@@ĢU`m@ŽnxnIVV‚VX„VL@`@bV@@aXbVL‚@XVlKXLlLVl„knJ@I‚WVXXKlVnL@xl@UVVX„a@UV@VlX@VUV@nK@bl@nVVIVmXIV`V_lWnn„@VJVXnJ"],encodeOffsets:[[112242,22444]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/gui_zhou_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"5203",properties:{name:"遵义市",cp:[106.908,28.1744],childNum:14},geometry:{type:"MultiPolygon",coordinates:[["@@@UnUlJn„w‚JU°VL@bnVšU„wlJ@XƒŽXVlU@klVUJknl„UllL@bUJ@xULUlƒ„UblVkblbnw‚UXmla@„wV@VK@L@UXaVKVLXWƒUVa@U@Im@@W@£UKUakKWIXU@al@@llUnL@W@Un@@VlUV@VIUanKl@Xb@lmxVb@b°bb@nlJVVnnJ@b@L‚V@ln„@LmV@Vx@blnVK„nlJXIlw„J@҄b@nlK@Un@UL@VVVVUUUVK„l„@VUVL„J@UVUUw„@Wm@™„UV„ÈVlbUb@JšLlŽX@@x„„ƒLmŽk@@nlx@bUJUzVJ„@@LVxUV@bWxnLnVVK@_‚K²xVbV@n¥@aVI@b„@l@Va„Knb@n‚`n„mmý„W@ƒU_šwV@VlVV@Vn@n„˜@nI@Jn@°¦VaUU@™„mVVWVaUńU@aVKnƒVbVUmmU@a@kUw™m@aUUmUUJ¯lakU‚aXaWUUaVƒkk„amkmUnVlULƒVlJ@XU@UJWUUw„k@aU@WbkWƒL@U@WU@@XUKmV@aUVwUĕUJUamUUVUÑm™nIVJ@kl@XalJVn@KVLœ¥@UWIXWmU@mVUKnUWLUKUaWUUKVU@U@anUny@UlUkK@w@a@aVUƒ»UkVw@Wmk—JƒÅmUUVmwXalLXWWUnam@XkƒJ@UVU@U@W„@@U@I@Wl@Ènlw@KXLWb„lVUkalKUU„VVaV@@wnIlaUmkUƒKWU@KkUkLWaƒKUUWUn@VƒK@LnnWJUIƒVkUWVnV@V™@@XƒK@VUIUJ@IWJkX@VVJ™IƒVkK@I@UVaUWk@m„@wnUWKk@mxk@@„lV@b„xmb@x@VUmLkUƒJ@nVV@b@VkLVbU`¯I›l@™U_UW@UU@™™ƒK¯wm@™xƒL¯¥kIƒ™ƒ‚@bkbƒ@Ua@ƒm@kkW@XVbmV@ŽkV@bWbUbV@„¦ƒxXlmVk@ƒ¦™bkaWL@KUImK@wUK@VUI™b@bmK@LÅy@akXW@kbWlXblL@ŽULUbƒ`@U™kUymX¯@mšUJUUJƒL@Lm@@WX@lU„VlšXll„@l@Èk°V°Ž„X@VU@UVll@XUJVXUVm@@VXLWlnV@Xƒšk@mVULnxV@@bm‚kL@VWLUbU@UVm@ƒb@ķ¥UnmJ@UUVƒkkJUšlÔU`UIW@ƒ°kLUlUI@WVI™U@mWKkXk@ƒ‚WU@bXšW„@J@xX@l@LVl@xšLVxXX@x‚KnxVknb‚KVV@U„L„WlXU`@nUlšX@llVXšVU„KlkUKlI@anKVLXKVaUIVWV_VK@VnLlU„»VKVL„m"],["@@@KlKkUUVVX"]], +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@UXlWb—¼WLUKUb°„UlVbkbVL@VƒšƒJ@nVlUbUXmJ@VX@lbUbU@@bWb@VnLVJ@bVVUz„ŽVL@lnL@b™VVVULmKUk™Jkbm@ƒxVb@V—kƒKVnnV@b@ŽWXU‚„nV„l‚VVXVJUXlVXbWV@VU@Ubk@@KWbUUmL@JnXV°XJ@_‚`UbkXVVlÆkbƒ@VLXVV@‚V@k„KXX@`V@@n"],encodeOffsets:[[108912,26905]]}},{type:"Feature",id:"5222",properties:{name:"铜仁地区",cp:[108.6218,28.0096],childNum:10},geometry:{type:"Polygon",coordinates:["@@°a@aÈbVUlU@aVKnVV„VUlyX¹lWVa@U™VƒnUVU@m™@mUl@„mÞw„@‚xnIVbna@KVI‚J@kwV¥ƒUXÇVkVW@kkKWU@aXUWmnIVa°VXbmL@VVbnVVVUb™VbšJVbVKXkVKVanU@aWnWUWa@U™nk@mVIVK@wXxlLXbVJVlKœbl@VI@mšaXalVV„VbX@@ašalnkx@b@V‚b@Vnx@bVVUXn¤WXn@Vl@Vlzn@š`@I@KUU@ƒV£namVkXa@aVK‚nnU@anVlKƒa@UUU@amk@»kƒU¯@aš„VWnkWmkImU@akaVm@»VUV@UKnkW¯XWlkUKnIWaš@nmlIXmWUnwUwWm@wULmaUJkIUaƒaWa—klwkwmJmU@bkJ@XUJ¯W@XbWbUKUkWJUUVKnn@UmmXUWa@mU@@UI@WmXVykwm@kaULWwU@¯ƒlKUUVU@mU@UkmaUbmV@b—š‚xVnVUJVnƒ„@Jn@@bl@@knJVblInV°@nx@„mbU@UWUbm@ULVVVb@LkJmXkm™VWIUJUXUKVwƒV™UƒŽkLkUƒ@W`Um™kVmIUƒ@kƒ@@a¯lÝ¥kmJUƒn™KƒÑmbUb@Wb™ak@mWU@UbƒUVVkLlbUVƒkXaWK@LkxÇmk@@X@J@Vƒ@@X@VUV@V„IWln@mbXVWXkKWbnxVUnV„ƘInl@XUxVl„¼UV@b@b@xlLkV@VmzmV@b@VUVVLXVVbVLXKmVVLU‚@nnVWXXJ@V›¦UK@LUmkIWbk@@lUImJnšVÒVUnVVbVIVĖUxV‚@bnUVL@WV@@X@V„KlXXaV@@bƒlVxXVVIV@@WkI„UVKUkVmlnnŽƒbllU„VbXVWbblVkb°ŽVInVVV@bšnVx@l@bnVVnUŽUam„UL@bƒVVÆUbUXU‚ƒn@šVVUb"],encodeOffsets:[[110667,29785]]}},{type:"Feature",id:"5223",properties:{name:"黔西南布依族苗族自治州",cp:[105.5347,25.3949],childNum:8},geometry:{type:"Polygon",coordinates:["@@VL@Vl@@IXW@kVUVbnW@XlKVVnU„VlL@b„aVbƒb@xX‚°ÔUxV@kbm@VxkxWJœ„V¦ƒŽ@ÈnšVKšxWXJmV@n„Ò@xVbn@@blLk`VX@bššla²JVUlnn@U±lw@wnw@mlwVIX@@m@klKnk‚a„KnwmmXkƍVm„Uš¥l@nb°n@„aVwVmVIVnI@a„¯@mšU°ƒl@@VnI@JV@UV@b@IUbVJmXöºƒzllUbVa@aXUl@„U@llLnKVaUa@UmK@UšwV„bnKV@VwVK@UXƒV@Vbn@‚w@U„WnX‚@„a@m„I„™@UUKlaUaVk¯ƒVaVLXK˜»XaWk¯mƒkğwmW@mIƒVkwƒJUIšÇVwU™UkVKkƒm@UkmU@WÅwm£Vƒ„m¤¯IkJWa™_™lUbmJzÝJk„ƒUÇVU„ƒ‚@bU„Ýn™m¯LUb@`mL@VkL@VƒUmmk@UU±Umka@kUƒ@ķymUkk@mmkÝmUaUakImV@V@VÅLƒ¦ƒJUXmJXšWb@n°Æœx‚¼nV@LlbUŽUbmL¯@ÞbV¤nbVx@bUVlblIœ™@KVVUnVJUn@VlLUlmLUUUxmK@I@@VW@@bU@UJmUkLVVUl@b@V"],encodeOffsets:[[107157,25965]]}},{type:"Feature",id:"5202",properties:{name:"六盘水市",cp:[104.7546,26.0925],childNum:5},geometry:{type:"MultiPolygon",coordinates:[["@@ôyVL@nXJV„Ub„x‚bUŽlšU„@ŽšnŽVbV@naVw„a‚VUXVx„x„bnaWmXaƒ_@y°aVUkaVI„aVamkXa@WVU@aUUlUXwVV@UVšbVUnKUwVa°a„bVIlan@manw@VšklJXI@m„LVVVUVK@U„ǃk@KUa@UkaVU@UVWV_XWVXVWlLXKlLXaÆKšwVL@akKm@Uwƒ@@XUVk@VUI@wWK@aUV™I@UkK@ƒmL™Wƒ@kImJƒUÅVmkXUW@UJkx@nmx@xkxV²m@kmUV±Ikb™™@aUWl_kK@am@Ua@wƒÑ@mnUWIX™wULm™@DŽU¥›ƒXIlwUwn@laU@Vw¯ÓW@w„aUaƒb@akKƒUmVUUkL@WmXUaUV@lWX@Jk@@UUKULmLUJmzkKmVX°VšUnWKUL™ƒƒL@mU@UnVJ@b@„UV@Xƒ`m_@l@@bmbXJmnnš@°˜wnn@ŽVLX@V‚@nVl@nk@@b‚l@nn°WlXzW`XXVKnUlxVbUb@‚V„Xb@Ž‚VxÈbVlnbmn@ŽkVUL@„ƒŽmLUVVL"],["@@@ƒ@UmWUwkU@Um@@VkL@V@„„‚@„V@VkV@nbVa"]],encodeOffsets:[[[107089,27181]],[[107213,27479]]]}},{type:"Feature",id:"5204",properties:{name:"安顺市",cp:[105.9082,25.9882],childNum:6},geometry:{type:"Polygon",coordinates:["@@lL@bUK™xÅLWbkKWLkKUXUWWXU`UX@VUVlb@VVb@L„l°xXx‚bšbXUVb‚VnU„xšKlL°šnUlVn@UmVU@kUUVašblVXKV@ƄXþlXUxnU@mVK@_@ml@UU„@šblU@KnLVyUw„@@UmkšWVw@UVK@VXzVK@n„VVUUW@kVJnlaš@nKW™kaWL@U—™õb@JU@mU@@_WWƒL@lUU@WUUK„@lakÅUUlWVa_@`WIU¯mW@InKVVXa@Ll@VaV@@UXUWakUVWUIUW‚UkUƒƒmVXW@@amUUm„L˜l@UUa„wn@lašIVlnLVKUUšU@amK@kUKƒVyUU@aUImK@UXa@aV@VakaW@@UnIVWVaUkƒb@mWƒX@Vxm@UaU@W„@VULUxU@mLƒaUŽ™x@VnL@VVbUbmLkK@kƒVk@WV@bUbVakk„yõ¹nWUIVa@J@aVUU@@ImJ@Uk@¯„™V@nƒ°@bmJUUJUnUxƒbm@¯Žmak@™¦ƒVUnŎWlnnmxƒLbmlkL@l@nWVnlÆU„VnIlJ„@šXnK@„lL@VšJVU@bXL@xVJUl@VU@W„@Vxn@"],encodeOffsets:[[108237,26792]]}},{type:"Feature",id:"5201",properties:{name:"贵阳市",cp:[106.6992,26.7682],childNum:5},geometry:{type:"Polygon",coordinates:["@@nŽlLX„VJ„LVblJ„n°ln„„LlVnKlU@nUUa@WlX@l„n@‚Vb„@la@a„„šlJ°¦„Kšwn@°x„LVkUmmwUmk_la„bšK@UlK@UUm@wƒL™mnwmw@U@¯@KnL@aša‚ġXWW@UKbƒKWX—JƒIWakJ@_kWƒkƒKUU@UVKk@@Ula™mV_X@WKXKƒ@WUUnUK@kU@WJU@@UnK@LVUVJVkUK@UUJm_@UaVaV@UU@Wƒw@aV@Xkmmm@kw@IVa@KVLXU@`lLX@VKm_@yƒI@WœU@UlVl@UanU@Uƒm@U„aWaU@Ukƒ@XJmXVbkV@ŽƒIUVUbWUUKmbk@kwmV@K@mWUXUakb›KUUUJVb@LU@@VkL˜š@VXKlbXšmL™@kbm‚UI@lVXUVƒU@mULWy@UUL@VUx™Xnl@Vƒ@VxUzmK@LkV™aƒ@VVk@@n@`UL@nmV@bmJ@Xœ`WX°WVƒn@xnxnIl`VbnVlwXUlLl‚„_nV@b@bl°„V„nWJkx@nmx@b"],encodeOffsets:[[108945,27760]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/hai_nan_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"469003",properties:{name:"儋州市",cp:[109.3291,19.5653],childNum:1},geometry:{type:"Polygon",coordinates:["@@஼jpnr’``ŽpRVHʘ̤žZt^JÖA˜[†CâlTébQhRPOhMBcRSQiROE[FYdGNOEIH]MgEAMLLIAG_WMCSL@ED]PCLYC[ZIHgjSxJTMbHNEFCMEE_HSDFHSLECRNSFDRICHNADGPI\\RZGIJTIAHLDQOHG`GTNCOIC@eIGDWHIS[kiE[FMbECZS@KKS[FDWsCeRuU_DUQNOE[LKGUBM¨EDQP@HWHGDImXƒCog_~‹I_fGDG|QDUWKBC\\ore|}[KLsISBHVXHCN`lNdQLOnFJSXcUEJMCKSHOUMDIm_‹DI`kNDIGEYFM\\YPEEIPMSGLIKOVAU_EBGQ@CIk`WGGDUM_XcIOLCJphHT_NCISG_R@V]\\OjSGAQSAKF]@q^mGFKSW^cQUC[]T}SGD@^_ˆaRUTO@OHATŸ”"],encodeOffsets:[[111506,20018]]}},{type:"Feature",id:"469005",properties:{name:"文昌市",cp:[110.8905,19.7823],childNum:1},geometry:{type:"Polygon",coordinates:["@@€hIJ¤Ī¯LQDaFßL[VQìw€G‚F~Z^Ab[€¹ZYöpFº lN®D´INQQk]U‘[GSU©S_­c‹}aoSiA£cŁ¡©EiQeU­qWoESKSSOmwŸćõWkàmJMAAMMCWHGoM]gA[FGZLZCTURFNBncVOXCdGB@TSbk\\gDOKMNKWQHIvXDJ\\VDTXPERHJMFNj@OwX@LOTGzL^GHN^@RPHPE^KTDhhtBjZL[Pg@MNGLEdHV[HbRb@JHEV_NKLBRTPZhERHJcH^HDRlZJOPGdDJPOpXTETaV[GOZXTARQTRLBLWDa^QAF`ENUPBP…\\Eji`yºEvåà"],encodeOffsets:[[113115,20665]]}},{type:"Feature",id:"469033",properties:{name:"乐东黎族自治县",cp:[109.0283,18.6301],childNum:1},geometry:{type:"Polygon",coordinates:["@@ªVLP`@PEdNRAHOPEAKHEVL`GZBJfvdTAXNNTZJFPrHHNpKTD\\ILHbEVd^J‚OHLh@NNBnHP`\\xH@NBRLJTlŽNv_^CTLd@bNDVFbxdFV€UPBTKOGEOUO@OEBXQP[H_EI\\EbeYa@UO_J‹MEJ_IEDKJUGMDcNUd_FMTEJSGoZ]EIYGO[YW‘gEQ]a@WHEDQKUSDUGAbYBUpSCYNiWqOSQEoF[UcQISWWNMSDe_cLQ_UBiKQOOASQAWgS­ā]ZaŽSPÝZ]XMXSŒ[^oVËNgNKlE RôEø"],encodeOffsets:[[111263,19164]]}},{type:"Feature",id:"4602",properties:{name:"三亚市",cp:[109.3716,18.3698],childNum:1},geometry:{type:"Polygon",coordinates:["@@®ĂhTBXTRPBRPjLVAR`dKf`TC‚NXMTXRJVdE\\FpTRrPjXZMTDVoZABaVHTCLVCRGF@X^bFR’hZXP\\ZHHMA[^wBWXJlW¤EJ[bCTOF‹WWMm@ILMGWQ@DQ^QNWFSHEbF`OXNbO„VNKTEPDTLTCCVTREfvfEHNbRAENH^RJXCFHNFRpVGHWISDOTMVCZeGamaLoLÛD¹¹ėgsia{OųE—Tt‰lɂwr}jŸR±E{L}j]HąKÃT[P"],encodeOffsets:[[111547,18737]]}},{type:"Feature",id:"469036",properties:{name:"琼中黎族苗族自治县",cp:[109.8413,19.0736],childNum:1},geometry:{type:"Polygon",coordinates:["@@bRFnHNbHŒgN@NPEnbXP@bND`NT\\@\\QZb@`@J]V@XhžDpW„nCJGHGXO@CR§FANHVKLF\\MPVR`CvVfQtDPKpGHG@S`WJP~^dSTHWX\\RHTFACQTIAUPOU@MG__IaYSFQK‘NSbORHXCZeTFJg„B`YBMNMFi~IVDV[tGJWXGDQRGF]ˆJrALgESLSAYDGIaFeXQLS\\MKSLSQYJY}eKO[EHiGSaK[Yw[bmdURgEK^_kcSGEOHKIAS]aFSU@Y]IWFUTYlkP_CUOUEkmYbSQK@EMWUuAU\\M@EpK^_ZMDQ^OXwC_ZODBrERURGVVZ\\DTXcFWNIAWJWAYUUFYEWLQQaCIZeDM`cLKRGpanJZQd"],encodeOffsets:[[112153,19488]]}},{type:"Feature",id:"469007",properties:{name:"东方市",cp:[108.8498,19.0414],childNum:1},geometry:{type:"Polygon",coordinates:["@@ºŸx‹JYZQ”IŠYXLl@dR\\WZEn]bA\\S~F`KXaDeTiNO^EEKWEDQXITBXaWaDQMUJOIaTWf@NJV@dSxGZ‰Fu_@WMKAUˆ}AQ@MwG_[GOAmMMg@GKP]IUcaFKG[JSCoLGMqGEOYIMSWMSBucIeYA_HUKGFBLOFGPQBcMOF_@KO©UAtERadwZQ\\@ÊJÒgòUĪRlR°KĮVŽLJ"],encodeOffsets:[[111208,19833]]}},{type:"Feature",id:"4601",properties:{name:"海口市",cp:[110.3893,19.8516],childNum:1},geometry:{type:"Polygon",coordinates:["@@ńZƂtĢ¬æßFuz¹j_Fi†[AOVOFME_RBb]XCAKQKRSBQWSPY\\HbUFSWSPoIOcCOHIPkYCQ]GdGGIFQYgSOAQLK`MFUIGa@aQ\\GGUFcHKNMh@\\OYKAigsCgLSF]GOQO]@GM]HyKSHKPW@Pxi@EMINYREXWRQ@MQcFGWIAwXGRH\\yDI`KJIdOCGRNPNtd\\UTMbQYi@]JeYOWaL[EcICMUJqWGDNZEXGJWFEXNbZRELFV]XQbAZFrYVUBCLNFCHmJaMIDDHXHEhQNXZ_TARFHVB@DTQIRR@YHAJVnAbKFUEMLd\\c^ÍÞ"],encodeOffsets:[[112711,20572]]}},{type:"Feature",id:"469006",properties:{name:"万宁市",cp:[110.3137,18.8388],childNum:1},geometry:{type:"Polygon",coordinates:["@@^J@ZTVbET^JBGLFPTHld]`FLQhcVanx\\\\ZbLHTGj\\FLP~fIZRZPVTQFSVAFJE^NDLEE[~LjsxVTG\\NZZNGlLRRGLJTV@hPZANN^@T\\NEPPbDZXO`d^HSvcJDIV\\XZAJUFCLNP@PQ¤@[ïKLÑIÏ]ÇE±I{uƒ­YśUćFcYUmsVeBSVgB[RO@aYYPO^]@UVaNeDShMLG\\EfFVE\\F`"],encodeOffsets:[[112657,19182]]}},{type:"Feature",id:"469027",properties:{name:"澄迈县",cp:[109.9937,19.7314],childNum:1},geometry:{type:"Polygon",coordinates:["@@T\\GJCXJH@fJDDPNCNJENN^NLHBNSx@DDYbBLLDRbjZTj@`XXTlG^Xr@PJLW\\WLTlWR@HDJTD@X_PO@STMDNTMVV@NLDM`M\\XM\\JNBH[PYZ‡úYzŸ`Ċ\\ÎÝd]c[NKVFLEBaUmBIZGQ@JQSR@CUAEGBQ`SWYRMFgWGCGJCbNnIDGMEDKVAZUEqBYRa^WEUFKYQMaFWXEHIFWMYHCrXVIIiaK@aMCUYNSIISTwXALKH@XWXIEIJQCG[IEQDE_XSBaa[AIPW@]RS[FWS[CD]PEBYNGFSaSyJG]@ugEUDQlGHiBKHUIoNSKqHFaPMICK]UUHIPDJMuCA[SCPIDIOILGAEmU[POPBVSJDREBGS[QXWSGcT}]IO_X@TGHoHOLCX\\ELT@LYTD‚aFENF\\lj"],encodeOffsets:[[112385,19987]]}},{type:"Feature",id:"469030",properties:{name:"白沙黎族自治县",cp:[109.3703,19.211],childNum:1},geometry:{type:"Polygon",coordinates:["@@D\\RV]dTXELnHr]^@LETBBRTHPi^[@U`QTHDJ`MGSogDIPKdJ`WVNHCXHl_DJR@AH`FBVPUJLHKNTJOFFZON[ZEHFCJlMJ_ŒCn`CJVNGPLTNDFIdVTWEIPmRKMc_kDMWGGUTAtJLK~\\f{pqD[LAVXRCH{HC`eŒJ`}@W^U@I@_Ya[R[@MSC_aMO@aWFmMOM@‹haGGMEmaQ[@MESHaIQJQ……MckBIw[AOSKKAMPSDSLOAV_@@`KJRbKRDfMdHZERgAWVsDMTUHqOUr@VQXTT@Tƒfg‚L^NH\\@heTCZaESNObHPƒHeZF\\X^ElM^F^"],encodeOffsets:[[111665,19890]]}},{type:"Feature",id:"469002",properties:{name:"琼海市",cp:[110.4208,19.224],childNum:1},geometry:{type:"Polygon",coordinates:["@@TP\\pATHTGlZDJGAQjE\\Rb@jVBDCN`JZ[NCNHNXbULPrP\\KNbMTLjJJRFP`“pNLZz^FLRHjVPZ@hxVKbHBHMNNJFRlLzGPnNHhIrHHADcPWdUAmEMVQDSKYHY\\EhBN^HpXGNDBNNBnIß‹Å_g{³So]ã@ORO@KMEDIVYB[WJUICudGTc]P_YWaCOOMFS[]@MMYBgOU@ISHKQQkKMHYY[MSHwUit}KF\\KFMCF]EIUBETSROUKTLT[NKTWREfJbCHBZKTFTKh"],encodeOffsets:[[112763,19595]]}},{type:"Feature",id:"469031",properties:{name:"昌江黎族自治县",cp:[109.0407,19.2137],childNum:1},geometry:{type:"Polygon",coordinates:["@@`ZĤd–`òüˆ˜ “BSPGP@VSbQ`‡@]HC~T^SE]N]FkW]E[fY„GGOPaTMbFDYfS@g[MGK]h„e@SSSRW@UVqrPVGNStCXUhBFQGYNcCeLQQaLI@_`@EUwcEaCUaMc@SK]Du`MSkKI‡~BVNL@X`‚EvYŠwHcTU@MIe@SXJbIPNVCRXbWbSAWJCRXFFL]FMPSjCfWb_L}E[TaBm^YF[XcQk@WK‰Z“JYRIZwŒ¹ "],encodeOffsets:[[111208,19833]]}},{type:"Feature",id:"469028",properties:{name:"临高县",cp:[109.6957,19.8063],childNum:1},geometry:{type:"Polygon",coordinates:["@@jD`hNd\\^dZädĒH´Op@ˆùZY\\OAGIMN[[W_NCNMKU@NUMSNCTSP@`O@WSCCI@GXQSkXKX[IK@OWqH]SkWW@_SiiYQaKCAKZaCCw@MTGAMKM]FMMIMDSM_HGHRPKCBGSJJIYH[QOJCHMBDGQJECMTDQKFGTCEGTF`NFEDMFaGSNwIiTGhYJD\\KZODC^@FTKND`XBHKJNKFBNhG^FJMPcHEZF\\QPRjQTAdgNOPgQaRSê"],encodeOffsets:[[112122,20431]]}},{type:"Feature",id:"469034",properties:{name:"陵水黎族自治县",cp:[109.9924,18.5415],childNum:1},geometry:{type:"Polygon",coordinates:["@@R]NC`YL]FoN@V[vBXVFNL@TRZalnVFVP`DlOZkVSXEE_F[EUFeH[NKTgfCbMVU^@P]ZObZP@\\QhATUfAtUasñiāEoI]eYǯ@aKmaeƒWuCºKÜKpnbHbYfUDSNCPJTRAHJTDJSfDNLHXC``VBNGTYCQDIXMDSP@xLNEFRNXBIpVNLXah@RgF@`qOML@LJNSPLbaHAh@Jdj"],encodeOffsets:[[112409,19261]]}},{type:"Feature",id:"469026",properties:{name:"屯昌县",cp:[110.0377,19.362],childNum:1},geometry:{type:"Polygon",coordinates:["@@\\OnVBFKHPJCJOJTDB\\vDINOCGJVVL^JDONEbrGTLpMVJLGjAHGRkVChF@vH^zIbTETMHAZOFC^\\DXT\\EffAP\\PdAV@UIYfS|S@YPICMeM@sC[_A]VQEwyHSMuNcAUlQJMVGMS@mVBZPFO\\CSFQK[LqDMACiUa@[QiFBRIHYCHkGSBS[oSOqB‡IE^QHCRWHIXsHU\\UC}JEjMNAN_ZƒAIhSEYfWDQGaPMTL’ERZTJb``NHV@"],encodeOffsets:[[112513,19852]]}},{type:"Feature",id:"469025",properties:{name:"定安县",cp:[110.3384,19.4698],childNum:1},geometry:{type:"Polygon",coordinates:["@@JjDNdJ\\FbKPXfZ^Ij@RZNaVSc[MsMOHQPDJcLIJ_zCG[HQxWJBHXdENRR@XQFWZQQGOFSWUCI[WCJuRGLXNMPLhCl[Ta@SqGgJMGOmyHkKEQMINMAGaGULgwY@UOGiKQ]EYyMK”oO_QEIIKiNSMa[LqOKOaVMWMGMDY\\_IKrL\\ERT[DEPYOUA@nNTUHINkRBVMdNvGTxzRF^U`BD\\@tfNDNOJ@Z{TeTJZ@VU€cB[OBOeeQT@^OXBJb\\AbWTF`RCJFH\\RDJIJFXW@WLGBKxWTSJJMTVZND@bbL"],encodeOffsets:[[112903,20139]]}},{type:"Feature",id:"469035",properties:{name:"保亭黎族苗族自治县",cp:[109.6284,18.6108],childNum:1},geometry:{type:"Polygon",coordinates:["@@FJp@fxpQ\\ApN\\GNPNBM`HLMrXLXj\\PEHnI@WUCEM\\GTc\\GZYHTPBHRCPTd€H\\K\\@HXi–BJILJJAVNTOZJNtFPC`YxDPWci@IBgbGKaTOIM@KNKrP@_hE@QbgKWUMJoWAQMFEKM@wTONCJWRCZDHSAM_UD_GWMKeCITSCGIQBGXUHQoMEEGWDQIG]FMQBMaFGueFeSQDUSDSKOCSFMLƒUaPWM_PaEGFETMX]RCRR@HXKN@JNnXXEŒSPaDI\\£FkXWIAX]xB\\GN"],encodeOffsets:[[112031,19071]]}},{type:"Feature",id:"469001",properties:{name:"五指山市",cp:[109.5282,18.8299],childNum:1},geometry:{type:"Polygon",coordinates:["@@TCNOLBTLBPx\\AJdl†NR†RIbJTGNF\\@RcIYbmHoLQdKN_fCJYbDRRXKZFVEZVXBXIJBXMdESW[CUYHUVQFQAqsEIMPYMSBUIIJKAIj•GW[@[LGScDOGQOAGSYZ[HSd[HFNVD@XmJFG[OWiWKNqGKN_MAMO[HoM[BoRewo@Y^HpITSFENc`MVCdHNIVCLJFI`NFIŒP`@VZbaf[FFJG`O\\WRFA@PVPFPPH"],encodeOffsets:[[111973,19401]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/hei_long_jiang_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"2311",properties:{name:"黑河市",cp:[127.1448,49.2957],childNum:6},geometry:{type:"Polygon",coordinates:["@@VÈÞ@Žkx˜nXŽ°VÈa°V@kôw„b‚š„JVškXlVUx„„@ŽlL@xkVV°ƒ„VbxlVUnVxk@ƒ„ƒKkŽVb„Il„@°kVl„@„™lÆnkll@@V„VXƒŽš@V„²bUlƒVlV„U„VÇn@nkJšŽlkVbœ@›x²V@n°VUnlKU„n`@n°bWLnVUblVUVVbknV`°kkŽl@@V°@nz„J@XšxlWXb°n@bƒĠlbXb™bVbƒJ@Všb„a@„„@lbUbšVmnœ@lšVmnIW‚œ@WbÞ@„n@x°@š„ĢaƐéϚnœ„‚lČ¯ĠŻÈwm@ôçU™mm£Xy°UV™›@wÈ£Ǫ¯kõÝçUњ™Uķ‚ƒĢkVфÆšÞU°nŎ¥ČUĊx°m°¦żVƐœx°ƒÇ£@y„UônރÆ@Èĉ°Kô¦šW„kWU—bÇ»@™ÈĕWÇÈ£ŤU@›n£ÆUUKVamanwŃmÝJ¯k@JƒIkaVaUUÇbkaÆÑkWmÝUۙ™Ý@™ƒwnU±ƒ@kkV¯KUkƒJƒ¼U¦ƒšÅ@ówķaķůV¥Uaó@Åwmƒƒ_kVƒwĉ‚ĉmmn_V»™a@U™ƒVwķóƒ‚U¦LǫéóXÇmōLǓÇķxÝkƒƒĉ™kmakbUĶ°@W¼„@bƒšÈÆ@Ė™L„l@„°J¯„mkl¯L݃±L—amJ@¼ƒ„™VƧUó„™UX˜ċb¯ńVbkÆÝI@llx„k°V²šV@Uxގ˜L@b„@b™`ƒšÇzkókݤ@ğ¯Wƒ™LĉǙLmmnċVkbUaƒL@Ž¯„‚bU°ğL݂Ý@"],encodeOffsets:[[127744,50102]]}},{type:"Feature",id:"2327",properties:{name:"大兴安岭地区",cp:[124.1016,52.2345],childNum:3},geometry:{type:"Polygon",coordinates:["@@k›ƒϙmƏêġb™ƒ¯@@wƒmÝ@XV@IlŽl@bUxl¯VlV™bV@ULVlUV™_kx™VVV™ÈÝJ@„¯šU„™lm¯x@xóÒĉ¼m„¯Wƒxţ@Uz¯ƒWwnUwťƒ@knƒWƒ£óVƒUUwğyó¦WI—Vmm™I@±kwÇ@@bƒ@ĉ¼ó@¯wó@¯aó¼›KՃaUwmWUwÅI@aƒKó@Ua™LƒaƒVÅwō¼UUÝl±I—¤VxÇx@zkJmnn‚mbnz™xlŽƒl¯ČkJl™°@„kb„Žmx@x™@kêmVnŽWxôXšxU°„bWLóJnÇWĵ„V¦™ŽƒUUb™b™ÆġK™šk¯™VU±aXmċÑUwĉKġ„k„™ŽVxk„ÇKkbƒIƒ‚ÛXWl¯bƒŽ™X¯K™bĊš„„ÞVƚnŽĸ²lxUŽ°n°òÈb‚¦—xVbƒŽƒ@¯„Vx@¯VķÞČlĊ°KĸŽȘI°¤ČIôŽò»ƨnȰKǬ¦ôWŎÈƨwlƒnKVXmbX`lbšwkVW‚XXŽ„L°a„ƾaĊ£nƒ°@°¥ŎzÞ¥‚»œalwôkƒJ„a@ĶK„£„bU°ĊxźVÈUĠ¥ƨ™VI@XU°x°Ln¥šw°UmwXm݁V¥ĢŽ°@nU@mÆ£š¯lKœšÜw@aÅU‚¥UaÝIkmV²‚nn@Ķ»@Uk¥VKÞ@ÞÛ@ƒkVmĢa@_ƒJómƒǖ¯Æw—óÇa@alƒUwšwĢřšk@wÆWXUWXƒWa™m@_ƒ»ÇéXaĸwVa@ÝKkUWkX‚kšKXxƒn@lĊV@¯m¯nřÆwš¥"],encodeOffsets:[[130084,52206]]}},{type:"Feature",id:"2301",properties:{name:"哈尔滨市",cp:[127.9688,45.368],childNum:11},geometry:{type:"Polygon",coordinates:["@@°`„_šJlUšŽ@„„@V¦°JUšŽnLôlnŤ@@šÈaUÒVbkbl¤ƒzk°ÇVÛô°IlVUVôU„xÆU„Ž@bźĀ„º@¦šb@l²‚UVlœ@°ÒĠxšnXxÆVô¼Þ@Üx²KލlƒVÑ°UȰôlwô@²ƒĸ°„lanV@„šVŎUll@bÈnÜm„wĢ@la@ÝÞb°UXb˜lŎ²ÆškšV‚I@ŽnJnĠŽ°knƒÜbĢwna@a˜kÞKƒĀ„a‚™œ‚‚IVbU¥wĠwkô˜xnLƒċVçkaUƒ±IUmnġW„°WôĉšalƒÞÅĵ¯@W¹XÝaƒb¯a±X¯ºLƒaVƒmkLóƒƒbkaƒVUKVkkKV_@aÝykk±L@ƒÅU@yV_™aU¥ówÇx™@UkVƒn@lƒkÅlwšWVwUkĉmkklW@šašbVwnWWƒ—wWL™™@Ušƒ™UƒÇLšÇmƒ„@wƒJĉƒL¥@ƒÝ_@a¯y„UWw¯ƒ¯Uġx¯aÝXVmaU£ó±›¯nwƒa¯óÅVƒXman™„Uƒ›lUXkWa@mkI„›ğaƒm™IklÇU™„kĊƒƒzkKƒš„lU„ōĬlš™„@ŽnX°@llUxŹ²mKĉVWwk@UbUK@bmVmI—ƒVmwaWxXlWȁšmºšÞÆbUxV@ĵńWÆĉLkWUbƒaWzkbĉ`U„±LklōwUVÝ£™UW`Uwk@mk¯VkaõVX@WbL™K@XƧºWzxƒK@lmX@bkVVÆk¼Vbk@Vn"],encodeOffsets:[[128712,46604]]}},{type:"Feature",id:"2302",properties:{name:"齐齐哈尔市",cp:[124.541,47.5818],childNum:11},geometry:{type:"Polygon",coordinates:["@@Þ@ށĠKV¯a°ƒ@„KVblaČU‚mnnšKĊȚKX„°ŽĠ@Þ£ôllÈy„™š_@a‚ƒ@a—KݍVwU@±™¯Uƒlkw@kÞJlÅUa°ŃČaW—šVôƒƨVšU„ƒ@»nI˜b²Kބ°Klkn°ƒ¯I@ƒƒkšK@ĕÇń™@aƒX»¯@VĵlaÿVamI@aÅÝउýƒĊȗJƒôȁÅkmƑۃ@kxġ@@l™aVk¯»ƒīŹaƒkƒ¥Å¯™JUaWU@@w™aƒ»„KUkÆkUm„UmwÛ±±UUbUŽUXƒwWwÆÝk™lkUanaWwnKl™kal¯ka™ƽa›kÅx™a¯@™amb¯V™lÇwÛĀ™V@x™šmêVƜVV‚aôV„wÈx@šˌx„¦VÞ¯VšlmX@‚ƒL@¯Ua¯LmV@„„°X„ċK™V™ƒ@UƒÈ@‚¥@w—ƒġIU™km¥Źwƒ¦¯lmn@°kxVV@¦óam„n¦l@nx™lĉVóšmx™n™ÒĉĀĊ¼„þ„šǔêÞ°ˌĠÞÒ°ĀɲĀƨźˤȤƨĊ°w@£nymwnkUUV¥ôÑVmkÆmUUVa™mVIkmô„lxkXÞþƒbl„ƒl@kV„ƆƒV„xV@š¼VÒ@šŽUŽšnnނJ"],encodeOffsets:[[127744,50102]]}},{type:"Feature",id:"2310",properties:{name:"牡丹江市",cp:[129.7815,44.7089],childNum:7},geometry:{type:"Polygon",coordinates:["@@U`lLUlVL„Ulb„aô„lKnŽU„„b‚K°¹²W°b„aÞb˜knyUlUkamř²L@m°@lšmš²n`ôÅlK„x„ÜKnxV@„l@œƒ›ÅXyW_k@™wm™ŹĕmƒX™»‚ƒÛ™l°ƒôšÈ„»š—ô˜ô_WW@Uœal»šwU@@wšUVƒš@VƒXI@w‚Ģ͑ÞȻ›aU_@mUkly@¯óV»XmWUXUWmnm¥nUUaWLk»Æ²IÇa™wÅaÝ°¯nUa±a™ƒ™@¦õÆğ„@„™@Åb›xU܁nÇłlb¯¦„ôó»mƒ—@±ƒUk@Wwƒa¯xU„V°ƒxXbǎŁUV™™ƒK@¹ƒKUaȯ@ōݙXƒal™ƒlÛkalÇUǫÇńÇakbÝƆ¯nlš¯Ž@¼™VUx@x¯W¼™Æ¯šmĖ„Ĭ¯ČƒVk‚ķÅmxœ°ô²V¤‚bUnÞW°bĢw°V°„XxƒV°z@bÞ`@„‚¦„KĊŽ„I@xƒŽn„™ÈÈK‚„šV™„@VššXK˜xX„mXUx™a™b@‚kXllĊnVlUx™XkxlÆk„m@U„Vlš@ÈwôxV¦šbU`@zÆV@„²KllÞz@b"],encodeOffsets:[[132672,46936]]}},{type:"Feature",id:"2312",properties:{name:"绥化市",cp:[126.7163,46.8018],childNum:10},geometry:{type:"Polygon",coordinates:["@@ऊþÆÞ@bnJUb‚ĀnblŽĊš„„ÞlĸwǔÈŎKÈnôWǬê‚KV¥„ĸôUxš„@VšbU¼m`nnĊŽĊ„xlUšmkaVÿšLšwš@°»UmbKmݙUšwUmVknKUUl¯ƒKU™ƒUȃ‚™nK@ĠkX±lX„°„L@¯¥@wV_m›ĵ¯Ww™L¯ƒUkōƒÇVU™l›w—V󁱃¯aƒVka°wVk°mÞ¯Ŧřƙl™²™Ŏk™U@ƒmUkb¯ƒķŽ±„ó@kxȯó¯VUÒk„ÝŽ±LÛwÝ@ó»ÅUWw™mğw¯Ñ›@UkV±@k™a@¥ƒ¹Źÿ@aƒÅVƒwóVVUkU¯JÜóÈUl¯„yk£laUaVÑÇb@™ţ@kmómK™V¯IU¥ƒ@@ƒ™kV™Iƒ`@ô™¼„blU„lƒ™bÈb@xÇKkĢɳaÅɆō@ƒŽVƒK@z™@@¥ÆKnÜ@@aۏUw›wnU‚ķ@ƒ_ƒV°Ž@„klVššnULVVÞbVl@°™@nx™n°LŚÆlV„ȃmU²@VmĠLƒx„n¯xkWƒzšJ‚wnLmbXbW°šÆ‚™²™@™Žšx@JVx„L‚Ā²Æ°I¯º‚È@ÒnÈ"],encodeOffsets:[[128352,48421]]}},{type:"Feature",id:"2307",properties:{name:"伊春市",cp:[129.1992,47.9608],childNum:3},geometry:{type:"Polygon",coordinates:["@@ƒKƒ¯kWW²ğl@ŽmLšÇ„„VVš„Lk°VVmLUlVn™xšVnނLnaVŽ¯¼™@™x™KUĀlb™n„`n„Æxô@VbU¦ĸŰĸbôxÆ@„™V¥„»„IVl°LUŽll@²„mV„x@ššÞܚÞVnŽlXÅÒlbÈaVVUblb„J@I°lÞIn‚Æ„mxnbUbVLÅVm¤@œţVǤXÈÇĖ@šÈ¼˜aXVÜaXbWŽnzŎašř„KôbšUlw@¯naÆKnUU¯Üa@mkkVUĊm„™żÝ‚ǖŽ‚K„™°L²lÆI@ƒ¯¥ĉƛVaÞk@ÝVaĠlnUVwƒœómaƒ@™wĉ@™a™VƒxamX@aƒ@UaÅLƒaVWƒ_nWm£nWm_ÅV¯ƒm@m„󤁚ݦƒ¯ÅalmX£ƒ™VWUŚw™mÇ@@IV™„WUw@ašI@„k@wŎ»Wƒ„ƒ™ÅVaœK›Ika@¥lUkUlwÅwVyÈwWU@a¯U°m—Ç@UçƒaVa¯mV»ÅwÝUlƒUk™V@k„mUk‚X£šw°@@ǃaÝIƒƒam™Ûam„¯lğmmI@J™U™l±ÅōŽ—kWa¯VÝa@Þkbġ@ƒxÛnÇm@akkōVōl±škšÅšťŚÝ°¯nUl¯xlb„U°b²„ô‚˜Uœxšk‚VÈUŎ„Vl°„šKXxĶ°nœU`@x°¦@"],encodeOffsets:[[131637,48556]]}},{type:"Feature",id:"2308",properties:{name:"佳木斯市",cp:[133.0005,47.5763],childNum:7},geometry:{type:"Polygon",coordinates:["@@nš„b‚„ÞJ„b@ȯ@™xW¤Vlƒn@lšUVlk„ÞVÆxU¼°nUb„bVèÈ@˜ŽnIn‚@šĢmlUw°™żƒ‚VUn@lnL@VôbšwĊ‚lœ„JķĸĢl„wôwƨxVVUƒŦšxšLź™Èš°`nnĠwŎJސĶwôJ„@¤Xn܄ĸlšn°¼È°lŽ„„Uš‚b„xš@„l@ÞÞÈm°„lôwšL°¼ĸ‚°Þ²nĠ@ôwÞ`ŤI„V„ÒĠU„„@„VJĸbƄ²@°ŽĊKšœ„JĶaĢȰ@ô¥°nš¤‚bČUš@Vx„mUw@a݁ţƒÇ™ķƒ@ĕķīU¯²@ÆmVÑô¯X¥ċç@™ĉ»U¥ÝţKWVÅkUVÝŎUmǍÝx¯aķxÛUóL¯a±óōb¯™ƒÑŃVÿƒ_Åķ„a@UƒK@wm@Van@UmmLVa—@VImmXUWƒÝUřƒKUwÝUUƒkVƒk@l¯X›‚Å_ƒJ¯k™Jm„ÅLƒa@¥U@¯Vƒz¯@ƒ`@¼šmxƥšŏKÛk@±laÛ@@Xm@™ƒ@xƽ@WŎnšˣĕÅ@@aÅ@@nÝbǏ¯@ƒ_U›kUWƒkb™wÝU@ç„Wlw@anIƒ¯lyœX°m°VšašÛšm@„mVwÞK°ƒšXlaXmm_ƒ@UƒkwÝK@ƒVI™ƒXmV»ƒI@aƒ¯ğW™bġaU_¯JU¯ġŽƒ„ĉ„k„ō`±nÝÆk„™bóĊ¯Xƒ‚ĢX‚mVn²JV„lbUè„ČmK—wlóğx‚xV¦UaJ›šƒbƑÿÝL—l@bmbġx"],encodeOffsets:[[132615,47740]]}},{type:"Feature",id:"2303",properties:{name:"鸡西市",cp:[132.7917,45.7361],childNum:4},geometry:{type:"Polygon",coordinates:["@@‚LšKVVnkšbVšÈb‚²U°VnklVlaÈL@anU°ÜmXV`œnôLƒèšxlŽšLX„˜L²ašVVmÈX@ķ˜lnU„Èl`ȹš@ŤŽ°U@x„KnnV„mlnnUl‚lVnnaŎwlVÞ҄@n¦šLVŽ°lšwVk„Lšaގl„n҄š@xmLÞ¤Wnœ¼‚WÈLVVUxlÈô„„WVaU_VKšKXUÆbn™‚nôK„bÞw°bÆWXamVwœK˜™Uw¯WUk„UlJUwVUa™@@kmyzm›ĉw@kVwškƒW¯ÅKU_Vmƒƒ™xU@aW@@kK@w„a@Kƒ@@kVUƒaky°_Vm™kna¯K@™ƒL™wġk@@IÇóX™ƒwVakmV@mwXUWanƒlĉ@ǙUw™KƒƒóšܛNJۄm°@›w—Å@ƒ±b¯Wƒ¹„WVwŹĕ¯kVmōb¯w@aƒwmV™UUb™V™IkaVwķ™xk¼›b@VXXó`󗙘ƒ¼Çó™¯„kŽÜš„š¼WŽn„źĖnššxl@X`WzœÆ"],encodeOffsets:[[133921,46716]]}},{type:"Feature",id:"2305",properties:{name:"双鸭山市",cp:[133.5938,46.7523],childNum:5},geometry:{type:"Polygon",coordinates:["@@™UƒƒUwó™mÑÞÑUÝÝUkmmŃyV¯ī„¥ƒUÿĉ¯mÇkaWbÅX¯aÝxƒaóLmmšÅaWV™LULV`UbƒXóƒkÇVwUUÇKX›»XmÝ£nK@wƒ™mÑkƒÝ™bƒKUl™x¯kU™Km¥ƒ@ÝÑkUōxmbUmkVkmmnkUƒmmƒL@w¯Vţ™@Ǻk_ƒÇmV—k@ĸVx‚VÈ°lLkllšUbōwƒnVW¼nlUx¯XmWUnÝ@™xÝUó¼¯J@LVbkJWnkb™W¯„ÝLUxƒn@‚™n™Ü™b¯U¯n›Wkz„°mJ@bkxƒX@èÞVšxlaX„lVVœ„`°@ȐÞa@mÆ@@bÆ@ˤĖm™Xōƾ@@wš„n@@WÜ@kb@²ÜlŐLƦ™nw™@»„_°@„y°UV@@¦„bÆKnƒšI°l„IÆ`œ°W@k„llUV„ÞVVx„LƚÞVX„WVnnUJ˜@UbnKVnm@Ubn@@x„L@VƒbÆĸ„`UĀƄ„Ò°šŎa²ô°bôKÜVĸw°bÞwȎVnÞōVUÆlXU"],encodeOffsets:[[137577,48578]]}},{type:"Feature",id:"2306",properties:{name:"大庆市",cp:[124.7717,46.4282],childNum:5},geometry:{type:"Polygon",coordinates:["@@mÇ@сǰ¹¯J±ÅÿƒKUw‚I@™wšš@š±Å‚™X¯WanamKx™I„ylX°wƒm„wğKUn±@nVDŽUƒÅkƙ¯Kšmmwš@@¯UkÝaUUVK™mU™lk@ƒ¯„U„`ĸ@V‚mœxVxܐ@bÛ@m‚ÅL@¦š@@y„L‚U„Ŏ@ÆɅɴblġÈL@wÇaša„ƒkkVƒaš»@ó¯_ÝJ™wÇaÅXny›U¯¥Å„@w™bÝa™Lmm@@ƒVUŽlbğVmš™¯Xƒm_ƒ`¯_Ux™m™L™a¯b@mƒaó¦Çk™¤V„@bóJknVx™VXx±aƒLUbVxkLVlLWlƒ@nX@VÅbWlÈnƒx„bWšÅbmŽ@xœbml°b™„XbW„XVmnn`ƒLmšnbmb@šk@mwU@@š¯Jlbk°lbkšmLXxmbVbkllšÅނxX„xVWVVa²VܲnxƒVVnÅlVlƒL„¼šb@xV@XŽVbšIÆ°„¦„lźb„Ĭ°¼Ulšb@kĢ@lw„@ƒÜlnȂƄóȘI„ĉ"],encodeOffsets:[[128352,48421]]}},{type:"Feature",id:"2304",properties:{name:"鹤岗市",cp:[130.4407,47.7081],childNum:3},geometry:{type:"Polygon",coordinates:["@@Þ¥‚™ô£nƒn@°„ÆUn`mXn¤mX„`UX„bÆKVb„@@bnW‚b„wšUšbĊ@šx„@nbšWVmƒ_mm@ó»Um„ŘWXkĠ»²¯‚¯nķšwŎ@ĊšŎK°bĸUnјKȦĠÈbÆknJššÆUĢV°IšŽšVƾƒwaV™ƒƒkÇ¯¯»™mķkۃWm@£ƒóIĵxݏōIğxmm¯_ǙŹš™K™wťŽ„UVUŽƧwóxƒxġkĸķƒIk›ĉ™xóa@UmK@kVmUŻ„¯šVxkŽġn™‚@mmJ¯n°V@bXVÇxUzÆxkxlVkV@¦lbœJ›LUbšÆƒ„X„ō¼@xƒl@™J@bVxƒXUš@JÈ@šn™xVÆUXš‚„W¤knÆb„°"],encodeOffsets:[[132998,49478]]}},{type:"Feature",id:"2309",properties:{name:"七台河市",cp:[131.2756,45.9558],childNum:2},geometry:{type:"Polygon",coordinates:["@@²mŎ_lƒĊƒ„ƒĢV°°IV`ĢbšaĠX„°@b„JU¼Wnš„UJ@„ÞLlxV„„@n`lIUa@K°Iô»ÞVšwÞ@VmnX°WVwmkX»‚U„mŎxVak™lkkKǯUUwÇWUn™U±b—KWƒ™Kk™w„çóK›mU_nW¯ÛmV@bÇKkbkUml¯U±VÇaU™™amlUU™LK›„k@ƒU@mwÛLƒŽƒwkLóÆm_™±™nkŽ¯@@n±KnŚlbkVV‚mz—lWXº@Ķ°"],encodeOffsets:[[133369,47228]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/he_bei_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"1308",properties:{name:"承德市",cp:[117.5757,41.4075],childNum:11},geometry:{type:"Polygon",coordinates:["@@lLnlmxn„„IVVlUnb@VVxXJWL@LގVnnV„J˜_@wkmšK„b‚x„wXk˜WXXšKlb²K@nVVVb„L@WlU²„lKVnUJVz@VVb@lżmVUVnbôaVX@°Ub@lWbXš@b@bVb°x„@VxÈLVlšaÆ@Þb²k°@lVUŽ@Xn@VW‚LXb@¤VXšKVVVLnm°_ƨ¤@aUIVa„alkX›°k„™V@„alwUVy„U@k󙰃na°UVUUmUÆw@mkLVUƒWVI„WšLnn@xlVnK„myU@ƒU°UXaV@U¥ƒU@Uƙ@aVUkWU¯ƒaU@WLUV@bkbmKULmKkUVUkmVIUwlWV²™Uml°U@W„LUwVm@UUK@_ƒKUUÜaXw@ƒVKUU@mVIUUlmnIVVVbÈVlKnbVKš@nI˜@nVnwVLVK„K„„˜Vnb@aUIVW@In™°@lVnIš@lWĢ@°UVL@b„@VyUUƒa@w@WUnU@Wǯ™K@UkkJWaÛbmk@mVaÞU@amkWƒ@mXUKkÿƒ£@a„kl@Um°UXwla„al@nmlXnW°znW@aƒwV™@ƒakbĉ¥VmU@ƒIƒVƒUƒJkUmWU™KbmkUaƒKkUVU@KV@@klw—™WaU@kmƒXVènbmlUUƒKƒX¯JkbƒI@JmIUWU@ƒLml@XkJ@U™kƒK@aVKwWa—IWwƒmUƒ@mU@J@UaċU™aUUƒVkI±ƒk@UUƒ@UbVVm@UVKƒLƒlkIWaULUWƒXUJU„ƒ@WbUb@lkXUxm@@JVn@J@b„nƒb@Vkx@bšLU‚Æn„JšaVXnKVVmzX‚°V@_lJXxWXƒK¯bÅamUƒ@lUI›bñJ@LÇKkIÇ`kxWL@„ƒ@@bUVUb¯xWKk„Å„VlULW@ƒŽn¦Ul@I™lmUUUVm@kWƒnkKma¯XUKWmnwVwÝL„mŽ™VUbUVWb@Lnxm„xVŽmbXx›¦@„nb@`™„ƒVƒ@kbƒLU„mVUlkbVXkºmnm@@xk¦šbĢÜlš"],encodeOffsets:[[118868,42784]]}},{type:"Feature",id:"1307",properties:{name:"张家口市",cp:[115.1477,40.8527],childNum:15},geometry:{type:"Polygon",coordinates:["@@k™ġۙal¥@wn@nml¹UWlaVknUVƒ„Kla„@„Ušƒ@_ma@ƒœ¥WwnaU‚wnƒmw@KXaVUVašUnmWUk°™lƒnUVUXWVw™IWVóKUI@WXƒxUU@mma@kUKWLkw@yk@ƒaVkUUċaUU@Wk@Unm@UVmLm±IUƒkJ™kWƒ@a„I@m@U„ƒVƒ„Ula„@VXVƒXmVwnkWKƒKU_k@m¥ƒmX_™JmnU@km@U@KmU™VƒU@U™@Umk@@LƒmW@Û£Wƒka@wk™@aƒI@mmk@mUa@UmUƒIƒwW@aWUƒbU@kbÇ@kwƒ@makVUk™U@aƒm@aU@mxkUƒbƒKUXUƒ±KXVWLUK@wkU@V™@WXUa@WbUxƒJIƒŽ@¦VèVVX@±ê¯KUIƒ`¯UULVx@Vƒ@UKƒIƒVkLmVkKmš@nUJÝbkIUJVXšVVxVbU„VJ„Un™°bV„mlU°„XnK@Ul@lVÈVUXšx@W„@VXšV‚KÞb„n@VnbV„m`ƒUx™kW@UVkL™Km¼@lUnUJVnV„XV@Vm@@LV„klƒIkl@VƒWlŽULWKUL@mJ„@blbUVUlmzUJUxm@UUbċÜk@Ub@VšLVV„¦ôbVŽmšUKUkU@m„„@VlVn¼WbUJ¯@@„°šnIllÈl˜@nXšWlLœk‚J@bkxlxkxlXUlklJƒšXL@bW„n`@nƎXxlL@xl@Xb‚LœKlVlIXblVUbUJW@lX@VL@VVŽšXšJšw„n@WnL°K„bVbl@VI@K„@U@nmVmV@XUWI@aXm@™VUUkWmn@lmUUk@mUmK@UnwVĉ@ƒƒmU_V@XJôVVUšLVUn@šllUnJl_n@šml@XŽlLlw²LVJUL@VmbVblVXmVnlš@Ť¦„nn@܎@bšl„@@XV`„Unb@VlLVb²J‚Xn¥ÆÑ@¥Þ@"],encodeOffsets:[[118868,42784]]}},{type:"Feature",id:"1306",properties:{name:"保定市",cp:[115.0488,39.0948],childNum:23},geometry:{type:"Polygon",coordinates:["@@VbXWš@@UlV@xVLXKWU²LV„VW„L„alVnwV@@b„n@bšVVllUnb„@lxÈ@laV@„aXV@b‚X„x„J‚nV@VVb@nnl@n„J@blšl@„ašƒU_VWUwVUškUm™Ukb±mVwœU@VIUW@UWk„@VU@ynL„m@IV@‚bnK„LVaVmnIlaXwV@@WVL°@@xnX„@V`V@VbUVVLVKnwnL@ll@@_V@VVnaÆ@œKVXÆ@nƒ@wƒKmU—™Wm@km@kÜKXU@ÑW±nIUwVƒ„Kla@I°wU±kškmm¯mƒ_ƒJnƒaƒwW@IVaUama@wƒUƒmU@mVw@aXk@mWa@£km@aƒ_kVmUnWW@¯bƒkUmk@ƒVÇm@@kUU™KUU™@UVUamVUaWIkb@xU@@amUkKƒVkam@@kVUkUWmKmUkLUb@xmJƒ™U@UImVÛVmnUwƒJƒU@VƒX@UWm@Ub°¦UšmxklmX@`ULU@@UW@@xkn¯@makV™UmxUb™°ƒlUšƒbUbƒnUJƒUUVƒa™LkbUU›JUU@mUUUƒJkaƒ@™xUIWJƒUnƒJ@V™zƒ@kb@`@bln@l™bƒŽ@X@š@š„@Xl‚bnbVb„@„„VJlInlšbVw@U„K„l@lbnan@Vb‚JôLn‚UzlV@lÈLVbVK@LVx—VWXX`WxXz‚bV`UXV¤nx@„bVlVnVlUL"],encodeOffsets:[[117304,40512]]}},{type:"Feature",id:"1302",properties:{name:"唐山市",cp:[118.4766,39.6826],childNum:11},geometry:{type:"Polygon",coordinates:["@@„@VVl@²„lJ„UVVšbČVVb‚@@InV„@‚V„nXx˜JXb‚xUL@b„Lšl@VlI@Wnk„KV@VXnJ@I„Jla°I„W„LVVnkmaUç„WVkôaܯ„@nV°wnJlaV@VUnUUaW¯wXWWwna@£UaWKU¯ƒ¯@aVUkKUamUUƒn»‚an™„IVwUWlkš@„LlWVakU@K„_lƒšbÞU°@šy°n„@„KÈkWW™ţ¥ĉōƒkġWUw¯£¯ƒÇwţwƒ@kK@kƒ¥ÝwÅbǤېťV™lW°@ĸ™x@VVVULVLkl@V@Xƒ`Ub@Xm@UWbƒk@ÆVbnLWV@lnXUbl‚@X¯lmU™VkKWLkK@_UK@U@UmmUxmVXLWVULkU@`W@ULUK@XlJXzV@@xml@VU@UX@Kk@WbUK@Xn`ƒXmJnšmškxUVbUVlVVxUbV@nKlL„kVKÞbVKXI°KVšmVUIUKULVxVJVLkV@Vƒ@UbU@WUU@UbUK@b@nƒV@VkLmb@b"],encodeOffsets:[[120398,41159]]}},{type:"Feature",id:"1309",properties:{name:"沧州市",cp:[116.8286,38.2104],childNum:15},geometry:{type:"Polygon",coordinates:["@@@ln@UȄŽl@Vn„l°aX@mXnVlU„`@bln@¤Xb@nWl@bUx@nnV‚„„V@xnbVbUb@J‚X„x„b‚mXa@k„UVwlW„k„KôVm@w™kkK@kl»Èƒm™VKXkla°@XVV@VI@ml@@Vn@VX@V@J„@VxUzVVšš²blVk¦@šĠ@@»š@VK@VÈLlK@XnJ@alIUl„a„VVbš@„n@a„U@WUIV@mUn@mKXml@lL@LnWšb@XV@@a„VVb„V„@VV„IVWÈb˜IÈ»ƒǟlWšaVUÅUƒƒ™Um@kVU™WVkaUwmaóUƒJUU¯ÑU¥mk™¯UaƒKÅnÇyóXmWÛX¯aċbÛa›J—W™ÝU¯»ƒaóóUm@IƒšVVl@bƒLUJWLX@@xšXUxl¤V@V„nVUV„XVbVš@Ž„@@VVn„°VŽ@ţU¯VƒUmƒUWV@mUXƒaƒbUKUwUaÇKn„ƒVk¦Wb@VnLmV@bkV@n„xW`Å_UVƒV@bƒUklVX@VmlUƒx@VVL@x—VWVL@VW@UUm@"],encodeOffsets:[[118485,39280]]}},{type:"Feature",id:"1301",properties:{name:"石家庄市",cp:[114.4995,38.1006],childNum:19},geometry:{type:"Polygon",coordinates:["@@la„@šy@U„I‚m„VXIVJšw„@lb„IVVnV‚@VVœIVVlašK„bVU„VVI„mVa„aV™„kš¯VanwšVlUnb°@lm@wX@@VV@VK@_nWlknwV™¯¥Van@VX‚@„W@U„V„IVxnmÜUnUVJV@„šnI@wValKnV@k‚mU£na@mVk°K„LVa@UU@UƒmknWWkXU@aWW@@km@UaU@@klK@UkaWaUnamm@U„a¯wWU@UkƒL@ŽUn@x™V™lUXVJUb™LmU@aUWUkmKkLUUm@mW—XƒaƒmmkkWUm@@U¯JUUm™kU¯@mKĉxÝwÝ¥LƒUóŽmwkUUUWVkKm™kKmLX„lxVLVxXJ@nVJnz@VWL@`nX@šƒxƒ@kVUUmJmIXx„JV„ƒnUVƒ@UVV„@LUšƒ`UXVVƒ„ƒlXL@l@b@VmX@b™xn°™UƒbkKWLXlW@@bƒK„mKULmakLUlmb@šXb@xmXU`V„b@`lLx@nWVXL@‚°WlXnlb„KVK„XVb@˜X@l_lJ@V@XnŽ„I"],encodeOffsets:[[116562,39691]]}},{type:"Feature",id:"1305",properties:{name:"邢台市",cp:[114.8071,37.2821],childNum:18},geometry:{type:"Polygon",coordinates:["@@nKlLnšlLXUVVlVnxô„V‚KÞ¦ÞxĊwnL°@lVnšVV°I@Vn@V‚lXnl„n„b˜WnXn@VVlKnLVlVX@bnVšKVaUIVWškšU@wVm@¯@U¥VmU_°lšK„k‚w@LX‚Va„U@wšUƒUUKlUóW@UVUœUlƒ°K„wlKU_na„KVnlKkkšWWa@IœJVa@IlJnU@„KVUUmVlaXUl@lm@kXWÝÑnkƒ™±™k@wğ›@@U@mKĉLmVJ@zmlnŽWLUÝJU_ƒ@@šmJkXUVlbklÝ@Ýa™b¯@¯±JÅwġaUU@ƒkU™@mVI±bUKƒL™WUXƒJkaƒLóKULWbUVkKmnk@@bmLUŽƒl@b@mnmJkUULƒaƒbnŽmn@lVV@¦n@„l@b‚znx@`Vz@b„xnV@xl„lbnKVx"],encodeOffsets:[[116764,38346]]}},{type:"Feature",id:"1304",properties:{name:"邯郸市",cp:[114.4775,36.535],childNum:18},geometry:{type:"Polygon",coordinates:["@@„bVKlVnInm‚@@a„kVnK@al@nmlLVUXaVKôL„Klb„IVWšX„KVL²a‚JnUš@lV@„VVĢbÆx²I°Ž°@šaÞbÞ@lkkaVUlWnI@™„@V`ÞI‚VXKmnk@y‚InUĊKƒÇkUUamUUkƒƒ@aU@U™ƒk@WUwVkVJVkkw°a@„mK@UX@VV„LVW@wšwVa@¯Xm@@lUIWaU@UWkXWmU@UwmUkKmn@lkVƒ²™VƒaULUVmJUUUwƒLma@™UmkIUm›L—mVšmx@b™LUamKÅL@VmbkU¯KÝamzkJUb±Vkb™L@lU@WIkJƒzkKmKƒnUalWkkKW@@nkbk@WW¯XUVUJ@XlJ@Xƒ@XlWLkUƒ`VUnaWa„UV@UVIƒaUxUUmVƒK@I@W@DŽU@@U@bƒ‚@nmKXmx™@UxkVWUX„@`VLlL@`™zX‚Ýb@b‚„@VUVkIUJVz°KVlnLlKnL„xlLVVUVlXUJ@nn‚„I@mVUlbn@@Žm„@bV„nV"],encodeOffsets:[[116528,37885]]}},{type:"Feature",id:"1303",properties:{name:"秦皇岛市",cp:[119.2126,40.0232],childNum:5},geometry:{type:"Polygon",coordinates:["@@lnV@Xb˜škx@lU@@LUVlV„LVbnl‚ašLXVVn‚l„I„V„U„JV@UnĊ¦la„bš@nJ°UmƒV@„wn@VU„JVI°bnWlXnWVLVK²b‚akk„lI@aUaVƒUwVUUalaVwnUVak¥šX@W‚kœLVÓm„mUK@_lWš@n_UK@alÅ@ğÅƑŃݍmƒ@їţÇlƒLƒ@¯m™z¯@ÝV™ak„ƒ`@LlVUbkXƒK™@klVXUxƒJmšbm¼V„nVVblLUV@b„°V°XLVb@¤mbXxWX°xXŽVbmVUVU@kbmI¯xmUƒ@Û°óbUl"],encodeOffsets:[[121411,41254]]}},{type:"Feature",id:"1311",properties:{name:"衡水市",cp:[115.8838,37.7161],childNum:11},geometry:{type:"Polygon",coordinates:["@@„KVlV@X°xƒb@VnnmbVŽXblb@VkL@lV@Vbn@@l‚@XX@bWVXlmXnlV„V@@VUbƒK¯LUl@nmbV¤n@l‚LXnlVUV@ln@lb„UlLnV@bV@@wlaXJVbnUVbVUš@VVšLVVn@VVX@@U‚KXU˜U@wUK@U„wVnk@UUWlk„V@a„UVUÆ`X_ƒw@mlU@anUmK@UXal¥„UmƒÈLVbVxVL„a„bVW@nXU‚Vn„„V°UŤV@Uƒ¯Um@Uƒ@@U™UaƒWVUmUUƒU@k£Vw™W@wW@XKƒIUa@wU@@al@UK@_mKXKƒbUU@aVKmš@Xmƒƒ±@kbÇakLğVaUw@a@ƒmkUJƒk@ykw@£ƒWX@lknk@WVkbUŽVnUVƒL@‚mVkI@JUb›I@JXb™XllkLUmƒLmbV`kLƒx¯Lk„›VUV@VôXkVVL„V™V@xƒVUbW@Kxƒl™L¯kV`UnV¦°@"],encodeOffsets:[[118024,38549]]}},{type:"Feature",id:"1310",properties:{name:"廊坊市",cp:[116.521,39.0509],childNum:9},geometry:{type:"MultiPolygon",coordinates:[["@@la„Ušš@šUnL@VWbklWxnIVV„V@X„JlbUlšXVbn@@K„mV@@X°WVInJmn²@lmVbnL@amKV_kwlmX@@LVamaXaƒaVU@UnJVanLlUkaW@UaVakK@IlKUU@an@ln@alKUƒkIVa@a@klaUKUV@UkUV¯šKVƒV@kUmƒU@@a¯ImJUU@VV@UL@Uƒ@@WXUWa@Ukwm™@ƒX@@w@al@@aVIUmVUUUVWUknK@I@™l¥kU±a™™UUVyUwƒ@@I@UUWm@@Uk@@nUJU@WU¯@kbWlULnšÇ„k¼@llLšl@xUnóŽƒLƒlkXUxƒV@lWb„I„`°nnn™llŽV²¯x@JkbƒLU„VxmJX²@ÒWVÛL@lln@‚Xn˜šnV„L"],["@@@kX@Valaa@KWI@UXW@WanaUIW@UaUKķŽk_W@UVUKUš@bƒ@UamxVXnJUbWVXLVbn@W°kb@U@Wó¼mIU¼k`V„@bVbl@„lX@lUôVlUœIV`lX„Vn@lUlVn@„l@UVaƒIUWl£Um™VWU@@UUKlUUUnƒVL@KšUnLVWUa›@™U"]],encodeOffsets:[[[119037,40467]],[[119970,40776]]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/he_nan_geo",[],function(){ +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@IUWVUnLlUlVXKVwmk@W@—VWa„¥@k@lnƒUIÇKUaU@ƒUUVmIUV™Uk¥ƒVma@¯k@Wanwmƒ„@@n@@m@UIVƒkUVamUXWƒaV™U_™@ƒmUVUImW@aUIĉK@VmI™b@lU@@n™JƒkU™@KƒIUmmLk@UVm@UŽm@@LkbU„mJXlbV‚@xUbƒ@@bkK@LWx@ƒbUn@xmbÅW@nWLUKUbUVƒK™U@LUK¯„mU@šVV@xULUŽVL@bU`WšUz¯aUamKUaƒ@@xkX@x"],encodeOffsets:[[116832,34527]]}},{type:"Feature",id:"4114",properties:{name:"商丘市",cp:[115.741,34.2828],childNum:8},geometry:{type:"Polygon",coordinates:["@@XVl@lLȃ„@VkV@V»UanƒWX@VaÆÇô@ÈaVX@xVJXUÞU‚aVLĸbXKl„V@šm°Vn_ny˜XX»mUk¥lK@a„_@yšInaVKVa°_@WXI@ƒ@K‚VnIlbnaV@„l„@‚a@_w@ƒlwUKm™Xa@UV@š»Vƒšw@kUKVUUm@w±VUXUKUwmJUUƒ@km@@±mXkmUI™@mm™KUwkbWakLWaUIkJmŽƒX@l@@VUX@JWbX@VbULWbƒlUVULknlV@bVJk„mb¯KknWmk@@nmVkx™@ƒVmU¯KUnUL™@ƒJUIV™maÅaUm¯X›l™kk@@lk@WI@yUUU@ƒb@aUaƒUmVk@ƒƒ`nxUXlb@lšLVxUbUbVbUll„k„VlÝVUnkVmKUXm@klƒ@ƒnUx@xnxƒn@`VX@V²x@V@b@„Wl@zU`VUVVb„L@Vƒb™W@bkXllkLWV@V„@VVÈwlVœ@@X˜K²Llb„WnnÆL@VnJWn"],encodeOffsets:[[118024,35680]]}},{type:"Feature",id:"4112",properties:{name:"三门峡市",cp:[110.8301,34.3158],childNum:6},geometry:{type:"Polygon",coordinates:["@@WKUmUI°ƒU@@UmU@KnK@IƒaU@makKUa@_‚KnmVU„L@a‚ƒ@IXm@KWkkKVkUU@aUW@UUIVaƒymwkbU@ƒx™LVUWWkk@WUkJk_WWk@WI„ƒUK݄k@WKULka™@mwĉ¥mXUK™@@bƒm@k—VWwkU@m™UUƒlI„™Wm@™@Uk@@KškVmn@lwn@@Ul@Xm˜UXUmVсkmkV™KUaVamaUXnƒ‚@ykLUKƒ@™WwKmKnUm@UmƒƒaU@mUk@kL@lƒxċxUnkVmnXxWb@`kzWJ@V—LmVUn™lmUL@lW@Ub@VšXUbš`VLUbUJ@nmnUlUUm@@bUJlnU„š‚U@lxkbƒ@@XƒJUnƒ@kb¯VVVmlXXlJlzn@VlkVW@bkK™bmškŽUbVb„lƒXVxšKÈnšwÞlĊKlšVnKlwX@lL@xlUnVn„@šl@lmX@ƄÈb°¼ÈwVJlx„_°xšašlšUÈxlUnbVxnL@lllšbm„n@nb‚@@V„L@V„@@„VLšJnIVVlKnV„_"],encodeOffsets:[[114661,35911]]}},{type:"Feature",id:"4107",properties:{name:"新乡市",cp:[114.2029,35.3595],childNum:9},geometry:{type:"Polygon",coordinates:["@@XVlL„K°bUblbUbšl@nX@W„XVVKVkš@@Žmb@„Ubn„W`kL„LƒV@VVLnKlVXIlVš@@a„@l£nWlƒkVa„@°bnUlLVlna‚bnUVUXKlU@ƒ@lk@a„I°y„@ôkUU@wšmôšnkWakml™UkVmkUlmUUm@nkUKWanamU„LXW@U‚VnUln„`l„œblL°KXV@ĠJ@L°„šJšUVw„anK@UUImmƒkK@¯±Um@IVmUmmÅnWaUK¯aUk„w@W±kVƒx™U™VƒwƒnÅJUIWaÝJóI—bm`ÝbÅImJUI¯¥¯@mU¯UƒJmnUVóUkl±V@zXl„bWVXL@bm„mº@@XmJUXU°llk„@nWJk@U„@¦U`m¯ŽWx"],encodeOffsets:[[116100,36349]]}},{type:"Feature",id:"4104",properties:{name:"平顶山市",cp:[112.9724,33.739],childNum:8},geometry:{type:"Polygon",coordinates:["@@l¤UbVL@V„LVb²VlKlaX@„„lbš@lxUVULƒbšln²VJUbW@@L„b@`nL@nVV@LVŽUbUVm„kVl„ƒlXbl@Xn°ŽVK@_°`²IVVV@VUVJnInaWK@Uš@„K„LÆ@nmlXXWVUUw@klKVa@knyVkVanI‚JXUl@XbVUl@@aša@mXk‚bnK@UlK@UUUVaXaWmkUm¥n—WmXaWaœkl@VmÞb„KVL@aVI@mUwVm„@KōméUL™KVaUk@kUK@U˜WXI@VlKXU‚@VVnInVV@VLlK@UUƒkKU_@ƒWWUwU™@klƒn@ƒƒ@Imb—@@m›nUKÛ@mKUkWVXxmbVLXŽVVU²VV@xÅnmWmLU@kbmJ@b¯š™IUb™JƒUUxVl@z@bU`W@Ub¯nUJUbƒ@WLUKULkU@aWKƒ@aƒbmL@ƒlmUk@@bUL™ƒWJUI™°@ƒŽ¯aWLk@mbUb¯b"],encodeOffsets:[[114942,34527]]}},{type:"Feature",id:"4101",properties:{name:"郑州市",cp:[113.4668,34.6234],childNum:8},geometry:{type:"Polygon",coordinates:["@@@nWVUKÅ@W„nVnI‚ŽV@œkƂšwV@šnn@lxÞlnôJ˜zXJl@nalUČVlƒl@²UlkôVVUnm„I°VnV°@°¦VJnIÆJÞan_VmU@ama™@kU˜¥kaUklw@UIV¥kVUI@ƒmmUÅmUlƒwVU@amU—JWbUakVƒ—Vé¯Im`ƒk—@ƒwVWmLkU¯ŽƒXkWmLmx@UUƒbm@@x™J@LbW@UUVWUkVKƒ@ka™IUamKUkkmmLƒUkJUVWXkWmnÅ@ƒKƒL™@@VXLmbmJUIUVU@ULWVkK@nWVXL@lVn@¤„b‚kôKXKlL@¦²V@JƒL±@„@VU@WV@X@`XXmb@Žšblaœn@Jƒb@V"],encodeOffsets:[[115617,35584]]}},{type:"Feature",id:"4105",properties:{name:"安阳市",cp:[114.5325,36.0022],childNum:6},geometry:{type:"Polygon",coordinates:["@@°kVaV¥kVmUkWkWVkVKUwkkmKUU@a„wWWXWakKWkXmlašIVmX¥ƒU@a„@WnK@kƒƒ™V™I¯ƒ@KğI@WU¯LkK›akƒƒ_kmmVU@VWXƒKnVmbXbVLmln@VVknlVUnVlkšlnXbmlmlXblnÈlWbn@@nšK@V„L„bVV°VVzšlnš@V™xƒI™b™ŽU@WLUa¯V™UkWõ@¯kkmxk¼l‚„XUlVbVLnlULmU@lƒLkVUlƒX@xW@¯mUƒ@UmIUW™L@aXa˜kU™¯anƒWk°@k™kKmmUIWaambUkkKmV¯aƒ@UblŽk„mXk¤ƒ@@b™@UbULWVnb@lUVVnmšnVVU„J@bWXX@WJkL@blVU°UV@XlWnXUbW@UVkVšVWbnLUJWLUK@Lnn@blVU‚„nUblxVUVJXU„a˜@Ub„LnUVV@mVIVVn@UbV@‚XbmbUV„_lVXUWanJVI@WkI@WVIVU°WXXl@la@mX@lLXl‚kVbœm‚X„ylIXJV@@kšKla²UVa„IVyÞb°LlVna@UÆKnLVbšK@anwU™"],encodeOffsets:[[117676,36917]]}},{type:"Feature",id:"4102",properties:{name:"开封市",cp:[114.5764,34.6124],childNum:6},geometry:{type:"Polygon",coordinates:["@@lUVbXa˜InV@bUV„x‚knVVÆnn@„VJlUU¦VJ@kxVllb—¦lVš@nb@bVŽUn˜aôJÞIXbVJÆI„m„xšUšV„w‚U²l@XƒxVl°bVLXb‚`XklUnmVblLœ@lmšx°LVK@UXIVašWlL@Ukƒ°KkVaVUXmmI@UÅKmmƒXka±K—L@W›@kUÇxUUƒ@@UXUlKkklW@ašX„a@UƒKUaVUUV_@yXk@ƒ@a@U±w@UUW@_„mmw@wVw„mUaÇbUa¯UUkmWkn±JÅxmIbUxmKmn—JWw„kUaƒK@a¯@ƒbk@mVUIWƒ—Lmwm@Ua@WJUb@LUl™@UUmLUbWJ@VL@VmXWWzUJUꄘ"],encodeOffsets:[[116641,35280]]}},{type:"Feature",id:"4108",properties:{name:"焦作市",cp:[112.8406,35.1508],childNum:8},geometry:{type:"Polygon",coordinates:["@@V@VL@x@bXŽWV@XkššlUŽWX@J„@nI@KlL„KšUVaV@œJlL@KUk@KÞL‚l²_‚@nWlL„UVVš@nLWVUJVn@anV@a„wÞUVLVx„b„@lW„@lbXn‚Vn@@¼šL°mšKVn@bnl@nVK@blb„L„W„U@VWLXV@nlKn@lVVbXw°nV_@¥Vƒl@XI@mlƒkkV¯VWnI@W‚@n¹nƒ@aWKXUƒaWk@yk@k„ċUkVmbk@WI—yóImÝkkwm@™mU@™xŁ›lU@mJƒX™ak@ƒx¯V@¼¯Vm„UmmIkVWK@UXIl@UWVUU@mVUI¯b¯@™lmKzWKUa™nƒJ@nƒlbÝ@@b"],encodeOffsets:[[114728,35888]]}},{type:"Feature",id:"4110",properties:{name:"许昌市",cp:[113.6975,34.0466],childNum:6},geometry:{type:"Polygon",coordinates:["@@lI„VnKlnVlnLVbšJlb„@ULVlUXVVX@‚a@KšI@wn@„aVV‚@nwnKlX„W°lVnKUX„x˜@„ln_°JVIXy‚XnW@U‚K@UXIVanKVVš@Vk@KVaXI‚@Vbn@nx˜KnaU™l™ƒn™Va@ƒXa@™VçUUla@aUK@wmUƒLk`kIWVkLmK@V@XUlƒn@JXV@nm„™bU‚óIƒmUa±@@ÑóVUUk@UlKVU@akWVUUlUUaUK@UUKWbUkÅJ@XWaƒ@XbmJ@nUJ@bUKƒLÝaUnk@›lXbWbXnm˜n¦lVXnWbUbVV@VkL@VmLaWl@n™b@bk@UVWak@WVImJUbUlmz@lUbkL@lVx"],encodeOffsets:[[115797,35089]]}},{type:"Feature",id:"4109",properties:{name:"濮阳市",cp:[115.1917,35.799],childNum:6},geometry:{type:"Polygon",coordinates:["@@lLXbW‚XXƒx@bVVnLllVxULUl‚XXlVlUnlŽU¦Ub¯l˜nœK@V‚bVb@šXbVL„KVxVVnIlašb„a„¥lU@wnalLnVVlVLXnlWVXn@@lVI@WnU@mƒÅW¥—aW_k@WwXy@kmƒ@wU„mš„š¦šlUxVLV@UwšJ°xš@VX„@Vb„@š`VX@VX@llšIVbnJlI„bšV„l„˜J@ƒmѯLóa@ƒƒKUa„k™ƒ™Xƒ@UK@wU@ƒlWUUݯImW¯aƒLUKU@ƒkƒ»k@mƒwƒa@UnKWI@ƒUU@akVWK—k@a±ƒbóUWKXUmk™KUmLƒbUx„„@lmLXŽƒ@@b„VW¦Un™JkbWnXl"],encodeOffsets:[[117642,36501]]}},{type:"Feature",id:"4111",properties:{name:"漯河市",cp:[113.8733,33.6951],childNum:3},geometry:{type:"Polygon",coordinates:["@@@Lƒ‚UnVxnIWa„@Xb@WÆIVlXaVL@VVLVbkVVŽUVlX@bUVkLV‚l@VVôU@Ò²@Vb„nôJVšanƒ@mWU@I„mVk@WkI@wmak™@wlW@w„@VbnLVb°bVyX™V_@aUKVVK@wUU@™™a™K@kmbXVmJUXƒ`kn™nƒK@aU@mw™akb±@¯ƒUUÝKUUU@WU@VkLUKU@mUmJUU@WVkL@UWJ—X@VVL@lVlUbšLVKnêƎ"],encodeOffsets:[[116348,34431]]}},{type:"Feature",id:"4106",properties:{name:"鹤壁市",cp:[114.3787,35.744],childNum:3},geometry:{type:"Polygon",coordinates:["@@ó™™n@xVVólƒ@¯zƒJ@bkl@@„kVWLUVmVXbVJnnlLlš¯@Xlm„°bVš—lWb@bšKVXnJ@VV„°nX@@w„WVklU„K@knVVKmkUKUaVkƒWkl»nwlŽ°lö@lXšV°UVbXKV@šša„Jšw@Um™™kUy¯UUUƒaƒK@U™L@mm@XaÇkkmWank"],encodeOffsets:[[117158,36338]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/hu_bei_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"4228",properties:{name:"恩施土家族苗族自治州",cp:[109.5007,30.2563],childNum:8},geometry:{type:"Polygon",coordinates:["@@VK‚bX@lbUVnL°„@VlVnUl@VUX@„aVƒmaXƒlašUUU@wmaVUn@Vƒnmmk@m™U@kna™aU¥Vam™X_@WƒU™mW@_kƒVaVKnL‚lœ@VVal@k¥@kUW@kUKVUlUVсW@kÇaU»ValmkUVUVak™@aƒV¯_@W‚UkmVUlU@aœƒƒalI@akkVWUaWXUWwœWVbÆ@„„l„alIVK@U™m@UU„W@al²a‚¯UağÇm@ƒbkk@wƒ@@W™aULmxƒIU‚™ƒb¯@U`UX™JmL¯aƒKX›WUL@aknmK™@aWUXaWm@I@UÅmVU@™™aUV@b™VƒI@WkU›bXkm@VakwUKULWKXmJ@XUK@ƒmL@KUwVaUI@KU@mmn™mXka@»V@@UUaƒw¯yVk@ƒUUVmmkÛÈU@mWUnmx„šmlUbV¦UlbWVUL@UUƒ™IUmÇKV„VbUVVxkn™LUxV`VX@š„„kJVVUXWaUVVlUnmKUbkI@WULmK@L@LVlƒLnmUIWV@aknƒ`VXUJIVlUVVbUX@¤mbnLm‚m@UXk@mm@Ukaƒ¥@kV@@KkU@aUKWbkLWVkIVŽk@UbVlmX@bU@@mmL@bn`@Ln@llVLVk„@XVVU@`VXUš‚¼k`VULka@VllVIn¤VU@@bl܃bkx@bkL›škKƒn@bn@@b@JUnV`UnVbVKlVXUlbn@°ƒVx„@@b„nVbUllVn@V—VK@UnW@UVUšlnk‚VÈޚxVb„VVI„xVaÆ@@aka@UVaU@@a„k@Wl@nbVIƎ@Jk@„L@VlXnlla@VJnw@UmwXU@aVK°ÒnllnLlb„xnKVaV@l¦²nVl@llL„x@XVVœ‚Ķš@našx@U@al™XUVa‚LÈþV°XxWXkK@šmLnlUb@b‚xnLVlVVkb@UJ@xWXXš"],encodeOffsets:[[112816,32052]]}},{type:"Feature",id:"4203",properties:{name:"十堰市",cp:[110.5115,32.3877],childNum:9},geometry:{type:"MultiPolygon",coordinates:[["@@@a@w@kV@nbVK@ƒnUla„@la„Ål@nlVakwWX@WkLšaVmšwV@anK@UlIXmWkk@@mmLkWlwk@U_mKXwWK@U¯K@UU@ƒVUa™kmƒkI™yUUVUmanU@mlwkƒ@_mWXaƒUWU@ǃ@U@aUaVwUKUIƒVkK@UWIXƒmaV@k@Vm@UnwlƒUamk@V@„ULUamxUJkU@Iƒ`WkkK¯XWak@@W@IUV™LWJkXkaÇVUKƒ@kUmbmUUƒUKƒbkKWUkI@ƒkKÝ@@aƒUm»nI@mƒU@UnWV_@aUmWbkLUl¯b@a›kkk@WkkJm_k@UV±@J@b›nU@@WÝIUJVbXL@nlJkx@„Wn@VkJmb—LmUƒ`VbUL@xVn„@XVƒŽ@„mVVnnJVbU„ƒx@„V„nVUbVVƒx@šn„™bUK@bƒ„@bƒJ„šm²„VU‚lbXzVJV„„JVbn@@Xmb@V@bVJÈ@‚Vnkn@°aVVV@šX„KnalLVmšUnnVKVlnLWlXX„Klk°š™šXŽWškLUVVV@nU@ml¯nmbk@W`Å@mb—LWm¯UƒxnêVèk@mbƒVƒnUK™@kKmXk@@JUI›lÛLllnbVnlJ@LULnlÆaVLnŽV@nkVJ„@lkô@²bÆm°w„L„WV@VXšKšVXI@W°ÆVšK„b°U„JVIVV„¦XKVL@l‚InaVÝnUl@@bX@‚™nmVL@lVL„lVLVUnbVW@xXn˜bœU°¤V@š™„a@kWKUUn@VlnL@UV@Ü»@mX@V_ƒakaÞ@VK‚¯@kkW"],["@@mUkUUm@nllVKXXVK"]],encodeOffsets:[[[113918,33739]],[[113817,32811]]]}},{type:"Feature",id:"4205",properties:{name:"宜昌市",cp:[111.1707,30.7617],childNum:9},geometry:{type:"Polygon",coordinates:["@@°`„U@blšUbUVlVkn‚ŽUbV¼Èb@l‚XUÒkVUVVL@lVX@ll¦k@UbU‚›@kmKULUbl„@`nXšŽ„V@XW`nšUbV¦šbmb@lšV@nnlmnU„m@UVnb@xVV™VkbW„nb‚VnVa@an@UaVU‚JXnWlXX@l„¦@ŽlKÆX„bX‚V@VV„@°¯°xXx‚XV@nV°UVWU_VWXkmaVnWVkn@lln@lb@UVLXWlnX@˜aXUmaVK@UXU„U@WVI‚W„XXV‚U@¥VKœ@‚Uގ„„‚a²LlV@kV@UanKma@UVUnK@UVLXyVL‚knJ@UV@@UXKWUXaV@Vb@mVLnKW„m@aUUm@@UkK@Ula„LXKWaXI@alKlmUk@wVKXL@m@WWn@UVa@K@wna@aW_XWWkXbVW@k@U¯WWwka@UUaVIVƒkU@m±@U@@wVKkaš_@VV@XUVwU¥‚šyUkm@V±ÈUKk»ÇL„m˜mLk@ó£kmWwƒm@U„IkWKXwWU@ƒkLƒwkbmaƒbkK@VƒLkmWIUKkUUƒÇIǫJ™XÅJULVŽÇLUVƒ@UK™@kI@WVI@UaƒWmXVVUL`±kÅLmKkƒƒkƒÅ@Ua›XXxWVXŽVbUXll@bkJ„b›„@bkVUVlnV@X"],encodeOffsets:[[112906,30961]]}},{type:"Feature",id:"4206",properties:{name:"襄樊市",cp:[111.9397,31.9263],childNum:7},geometry:{type:"Polygon",coordinates:["@@@Xl@Xb°WlLXl„_@JlVVInwVbVK@ƒ@UnlVbk„mx@VUnl@U@nbW„XJ@VlL„UVJVLUxVb@b@VȄ‚@XV„VWbnX@`l„kx@nmVnbUVVVšzlJn„šlVb„UV@@V°L@VXLWxnLV`l@kxlXnK@nl@XlWn„`Xnl@@UVa@VÈKš£VLVanW°U@UVU„@„`VIn‚mV@„nV@Xa@aVW@UšalkXKšblI„yƍXnlJXbl@@VV@nklU@`„nVK„LVKVb@V„U@UÈK„UVKšIlUX@V`lIVbn@nblVVmV@@XXJšUVV@knKVn@`@X‚VnK„wlLVmUUU@ƒU@aXL@WlU@UUW@UmU@KkLWaXkWmXUWm@U@ƒnk@UmK@U@UaUVUUKV_@al@namWUI@KUƒK@aV@WUIƒbƒ¥ULUJkIm™ƒK@U@K™V@U@a@UkU@K@wVaUwlU@mUƒULmKUkV@@anIWmUK@I¯„mKkl@LUb±lUakLmk@WwUKÝVUIm`¯n@Uk@makJU_@ƒƒJma¯ImwUVkKƒb™aUÅ@wWaU@VU@mXIVmmUkJkwm@mIlUKWzUK@VmLUV@VnbmLVbU@@lkU±KbƒƒÝV›@UL@¦VWUƒWXUJ@XƒVWV@VULnbWV—bW@kmWXUK@Vkam@kkm@UlmXUŽnbWlUXV`UX¯VmUU@Ul@Lll@nnJ@LƒnWmbmš@b™`ƒš","@@kUUm@nllVKXXVKmU"],encodeOffsets:[[113423,32597],[113794,32800]]}},{type:"Feature",id:"4211",properties:{name:"黄冈市",cp:[115.2686,30.6628],childNum:10},geometry:{type:"Polygon",coordinates:["@@VVUnWVXnVJ@„‚U@V@VXŽV@@IVJUnŽ@V@L@KlIVlVanLVbnVlI„ƒn@@a@Kl@@I„JlI@aXU@KlK„kVblJXU„VlU@V„bVkVKXn@VlxVa²I@VlVUxln@bšJXklaVWnLmÅ@y@k@ašI@W@aXIlVVaV@nnlKnLVW@IUa@a@K„UVVlI@wXKVV@IUƒla„@lUXwWƒnƒnalLlxXLll°@XwVKVaXIl™nb˜@nln@Va@U@k°ƒUmÆUVaXI„JV¯ÇUmmkU@WaKmakVm@U@aVKkkmKkVmIkÇ°£@aUUVaVVnKlkX‚mkƒ@ƒlUVaX@@Um@‚™UmlUXV„UVU@w‚K²¥Ua@I@UV™l@U™V±UIUÇ°»VkUmVI@a@U™m™ĉ™¯V±bŹĖğaÇL¯lmŽkX@‚óĀ@ŽmšÝêb±WkLƒn@xXx@Ž@b@V@LW@UbƒlţXƒ`kxWnXô¯¦ÆV@L@JVLƒxkK@V@bkz°l‚lXz@J„UlVla@XUV„bVKXnW`XXV@laVV@V„X@V¯xƒx@xULVbUJ@n@LU@VmmakbUK@b™IWWUUVkUmkLm@VJkb@nUJƒ@`V@kX™aUaVmmLkUmJ@Uk@U„±lkzmJUb@b„VUxVXU¤ƒL@JƒX@VlL@JkLUVU@mnUl„¦@V"],encodeOffsets:[[117181,32063]]}},{type:"Feature",id:"4210",properties:{name:"荆州市",cp:[113.291,30.0092],childNum:7},geometry:{type:"Polygon",coordinates:["@@ÈJV„lVVLXJln„K@UlL„anbla„xlK@„XVWxXLlƒJ@V„nXxlnô¤l@nKn—‚ƒÈKl¼VL²Ç‚Un@Vl™zŽV¦UxWVU@@U™`lbUL@xV@²@@nlVU„UJVb@VlbXx°XVWX_VKUwVKVa@UVKUUVk@KnblaUU@wnWl@UX@lÆ@@a„IVmUk„™šxVJ„U„bܙ@Uk@WWnk@Vƒ„™Vm@I@m@Un@m™XUlVlUnJ@knJVU°@@aÆLX@ƒllL@¦nJV@XblLVa²U@UlWš@VX@`@LV@@bXJlIXml_lJœU°b„KÆLnVVl‚@ö—Vƒ‚mXaVIĢllUlVnLVlX@@b‚ašnnxšV„L‚bn@°ÆXmmkĉƒ¯w±™™™Uċ@KÝÅƧŃÝ癙Uw¯ƒm™¯k@W‚kV@¯UIUJW¼kb™Uƒwk@W`@¦Uônb@VƚlÈ@VU@ƒƒ£UWWnUÆUnmJkUÇ£VWUI@aUU@WkI@Uƒa@JW@k£kaWVUKmnkKƒb™kkVWb—VmUUmwU@kk›@UakUUa@V@nlx@lUb±lUbnnWLUyk@UamœUK™@mlk@Wb@VXL@x@xWI@a¯Ž¯V@bVn@LkKmL@`XmKmVU@@bkL@V±bk@Uaƒa™L™KUVƒIƒ„™W™XamVVbUK@b@Lm@UWkxULWVUnm@UlUX"],encodeOffsets:[[113918,30764]]}},{type:"Feature",id:"4208",properties:{name:"荆门市",cp:[112.6758,30.9979],childNum:4},geometry:{type:"Polygon",coordinates:["@@n@lxlInVUnWJ@nUVV@Xb@xVƚb„alLVUnx°Jnb„I@„V`lInbl@@V°mn_VJÞUVLXx‚@nllKVb²kVa@KlknL°ƒ@JVLXnmJ@bU@VlnLVKV„@nX@lUšKVaXal@VKn@¥°L@Unw˜bnašV@KV@VUX@lVXI@KW@@IXWV@laVL„„KlaXUVVnkVWV@lwXblIXWVkVmšaU£VaUmVIkU@y@WakKUamU@UUK@kmK@w@@mK@LƒV¯™U@WwkmULƒamVVUU@ƒƒIƒbUKUa™kmƒm@UakLmxU@UÒWlULţÿmwkIUm@a‚kÈblW@UVƒUUk@JW@XkWWUkUKUIlw@aUWknWUUmnIWƒ™aUwVaۚƒaƒVUI™wƒšVlUnƒJ@bÅ@@kVWk@mX@xVVkbma@LUlVVUL@VUbULVxULW`UX@V@lUXWaXlWXX`@bmb@x@LUb@VmŽXX@‚@nWKUL@xVlknkL@bWJXbWLƒKkb@VlL@Vn@VV@bƒnX‚mLUK@nUaU@WbXVWL@VU@@V"],encodeOffsets:[[114548,31984]]}},{type:"Feature",id:"4212",properties:{name:"咸宁市",cp:[114.2578,29.6631],childNum:6},geometry:{type:"Polygon",coordinates:["@@ÞƂLČ@šV‚š²š°xĊ„nlWnŎ¯m@aƒK@„„°‚n„Jšwn™VIUaÆJšÅ@wšwV™XW@aV_l@²V°lĊwlaXLšwlUkalVVaX@lVXI@a˜UXJ@U°UU¥VIVKVklanLVa@VÈIVV@nk@aVa@mV_@a„K@klKUa@UnKWk@@lU@@UW@@nUWUwmaVIXƒ„lV@mLXblJ@kV@kk@KU@WƒkUWVÅwkLmW@UmL@lUL™KULƒak@maUUÝwUJƒIb›KUUƒ@š™aWK@kUWVkUwVw@™mÝ@™I@wkW@a›ww@LU¥™kƒJ@nVJƒIkVVnkV›UkyUIUl@xWUkaW@@°kz„ŽWxkLUWmzk@@bVVVš„b@‚@XlVœ@Vl@bVbUn™`Wn—@Wb„VVI@`„LVbXLV`mnU@@lƒL@LUŽƒak@ƒLk@WbUJn¦@lVb@xVb@n"],encodeOffsets:[[116303,30567]]}},{type:"Feature",id:"4213",properties:{name:"随州市",cp:[113.4338,31.8768],childNum:2},geometry:{type:"Polygon",coordinates:["@@„@nš`lw„k„ƒ„UmUVWX@lk„@VanUĠ¼V@@mX@@nVV‚VXLmJVLnK@b„V@@J„@VUn@VaVUUUVWVLV@@Kk_@almaVkUU@WVƒVUVLXmmk@wUaUKUV@°™@kmaUaÈmW„mUƒVklaX@lVnxl@@UnaUk@ƒVUVwVK„nš@VVn@VbVJUknUmmVmk_Vw„KUUm™Vak¥@UVKVIkW@UmIVWkIVƒkmmLkwmVUƒ@LƒUU@VVXL@JmLUbmK@UUKmkKUUmVUaUnÇlk¯™mJUnmLUaUJUaWL@UkJ™ƒUƒ@ƒaklkU@¯@KWLUmUUWVkbƒLƒŽUKkbU@WX@JX@@LWJkUW@UVU@@L™Umb—amx@V¯K@¦mŽULk@WbUb™LkVW@kVVxUb@x@LlV@V@b@VšU@L@V„LnšlJVIVK„¦„aVJ@XUŽ@b„LV‚@LVJnXmbk@@bU`VLUVV‚b@V@VnL@Vml@„@VXnWVXnWlXblK@LnV@VVX@VkV@XWK@b„VV@VV"],encodeOffsets:[[115830,33154]]}},{type:"Feature",id:"4209",properties:{name:"孝感市",cp:[113.9502,31.1188],childNum:7},geometry:{type:"Polygon",coordinates:["@@VnXK@L@°lVlk„b„@„VšlI@VXKVbVIVbnKVmnI°šlŽÈkVmVbnUVVlLnVL@VnLVanK@IWKUUV@„V@KV„nUlxnKlnU„lJUXnJ@VlXUJUL@Vl¦UbnšVVƒLUxl`UnnnmVVlnVK„bšmVX@a°Ý°LšaXJV@VUnKVXVK@LnKlLUbVVX@VwVJVn„@@UU¥V@@UUK@ƒmaUVUkkJ@L@K@UmVUI@JU@W@U@UV@ƒUIWmXUVmUUÇ@UVmIlmnmakK@akaW@UwVUkKVnUlKVwk™ƒVU_WKUkVW@UXaWkUa@w@VU@XaW±@IkbƒKƒb¯L@WƒXkWƒ@UakL@UV@UmVUmL@UXWVL@ašUƒVUUUVU@yUUƒIUa@wUKWVU@kƒ™™Wk¯UkwVKƒLUx™K@nVxUlUUWVUmw@wƒUUyXWlX¦WbUV@„U‚@blbUVVbXXƒl@lVL@bk@lxkVVnVx™¦ƒ`UnkL@V@L@Ž‚@@xnL@lVL@VnVVblLXb@‚@zlVUJVnUbV¤™bUnUlWXkJWakxU@UXml"],encodeOffsets:[[116033,32091]]}},{type:"Feature",id:"4201",properties:{name:"武汉市",cp:[114.3896,30.6628],childNum:1},geometry:{type:"Polygon",coordinates:["@@nbnm‚knJVUÈ@@Uƒ¥VknmV@VUlK@IkK@U„W@I„KV£UWVwƒU@aVanIly²kVƒl@@VnIlVnKUnVbšblWU@@_„‚VI@mlaUIn@lKVnUlVVXXšJ@aVLlanbUnV@@K@mVIUaVK@w„w°w@UƒW@UUUkbU@WWX_WmULƒaVU@WkbkUƒV@IWyk¯kly@a@UlL„wUK@I@KÅUW@ѱUm@wl¥kaƒ@@_Vw@ķƒa@akw@ƒkKW£XVUVwVwUaU@VUU™™xWKkbĉx¯k±Uk@U`@bWXUš™x@x™ÆÅIVbUJmš™xƒImƒ¯@ƒ™Umx™nUVVbnJV„@Lƒ@@ŽkV@bVnƒ@UVULlx°VXlššl„V@XUVL@xVb„JVV@zUVVVUV„™V@bUKWX@VnKUVVnU@@VlKVb„@lX„W@X°K„a„Lla@JX²Wb@ŽUV@@xVbXlWb@VUXVlXLV`Uš„lŽUxkLmVUŽlLUVVxX@lb@blL"],encodeOffsets:[[117e3,32097]]}},{type:"Feature",id:"4202",properties:{name:"黄石市",cp:[115.0159,29.9213],childNum:3},geometry:{type:"Polygon",coordinates:["@@VšUVV@VbUx„aWUœblUVmnKlX@bXJVIlVUxVVVIU‚zlx¯š@‚VbnL@x‚x@UVaXK„b˜@Xk‚WU_Vm²klW„XVK„Žl@nXV@@w„mlK²X‚aÞén™@ôÿ@lWn°kUKmmUљUmm@ƒwkImWU@UakL@bVLUVċ@™bUK@alIXKWK@™nXnKmkUVwƒ@¯b@L„lUL±W™n@KULUaW@kL@lƒL@bU`@nUb@bmlU@UÇJ@UUbmKkblŽUULUJV¦¯V@VWI—V@bWJkUW@UbkUlbkV"],encodeOffsets:[[117282,30685]]}},{type:"Feature",id:"429021",properties:{name:"神农架林区",cp:[110.4565,31.5802],childNum:1},geometry:{type:"Polygon",coordinates:["@@n`lIXll@lœl@b°aVklKXaVn@bU`mX@V„V@nmJn¼„V@bÞ@lL@„lJXVlL„aVLV„nVnalV„@VLÈUlblWXIšKVU@J„™š_‚@an™na‚X„m@KmI@mkk@KVkWWw¯w¯°ƒ@UUU@WƒaÅWkL@ƒ¥@kWWXkWmIUVVbm@@bUbmUU„ƒbW@UVk@mVkU@U¯ƒmKVUkaW@aULƒÆVbƒb@VÅ@Un@VƒLWl¯Lš„"],encodeOffsets:[[112624,32266]]}},{type:"Feature",id:"429006",properties:{name:"天门市",cp:[113.0273,30.6409],childNum:1},geometry:{type:"Polygon",coordinates:["@@@K@UlKVm„_š¥UwUmlUkwl@@aUK@k„kWWUaVUka@aV@ƒVUXaW¥Xk@WWIklm@ÅxmI™VÝUkxkaƒ„@bWJaUL@„W@™l¯UULU‚ƒbƒkV™Ua¯bm¤UnÇUkmUšUx˜b@VkXÇal@bVnlJnxŤĀVKXkVÑV@nwlKVbn@n„šlVbVL„a„J@„VV‚UnU„bVKlnXxV@°š„U@KnL"],encodeOffsets:[[116056,31636]]}},{type:"Feature",id:"429004",properties:{name:"仙桃市",cp:[113.3789,30.3003],childNum:1},geometry:{type:"Polygon",coordinates:["@@VK°VškX@@ƒVK‚bXI@a„ƒlblwÞVšUnJÆwn@lkXJ@X‚WVz„V@xnx‚VXUVVVkUw@mšLVw„KVU„@Um@alU@„@@KUƒmIUaVUšmnwmw™mb@aW@UkmKkUkVġkUJWbnU„õ˜@UkmUÅKƒL¯a›VkIk`WnkJƒ@xVLUVVbUbk@WlXbm„VxnxUblbUV™@@VUV@nVL"],encodeOffsets:[[115662,31259]]}},{type:"Feature",id:"429005",properties:{name:"潜江市",cp:[112.7637,30.3607],childNum:1},geometry:{type:"Polygon",coordinates:["@@UbVxšbX„mJVnXVlmVX@bkxVJVLVlXXWlX@@IVl„V‚U—aVwV™lnÈVVmn£°aVbUš„l„aVUK@mVU@Uš@VUkaVamwUwnƒWaXkl@VaUaVUUK@w„WI@aU@@K@_UW™@kX@V±VUbkKWaU@mI@¥kK„kW@ÅK@b¯@UVmI@lmIkVkUWVnšm@@V@n@JUnƒšU„@ŽmlXXl@@V"],encodeOffsets:[[115234,31118]]}},{type:"Feature",id:"4207",properties:{name:"鄂州市",cp:[114.7302,30.4102],childNum:1},geometry:{type:"Polygon",coordinates:["@@°¥WóXmlw„_ŤW„kVaX@@K@U@a@WwU@mWk@ƒULƒWkX±lUnV`XWl—@ƒaWLUb@Vw@wmKUa@°™kw‚yVUJUUVwkUUJWI@akWmLUnkV›aXVƒbUxUVWX¤lL@„lx@b„b@ĸUx@`„@lbk¦@x‚n²VƄX@"],encodeOffsets:[[117541,31349]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/hu_nan_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"4312",properties:{name:"怀化市",cp:[109.9512,27.4438],childNum:12},geometry:{type:"Polygon",coordinates:["@@@n„‚@b@XnJ@k°x@aVUnl‚UXnV@@VnJWUJV„nIVV°ŽUbVVVL@Ž²LUVa°V@aV@nm‚UXblLXWVXVmVLVK@an_„`@X@l°„VlXXW`nX@Jmn@b„@nV@Lm`„bUb‚n@VUVl@nIVbUlƒV@LkJUnVV@xVblVUbU@ƒzUKU@mx@xUnn@@WV@lbUb@šnVWXX‚V@VIV@VUnJ@VUz@JWbXllI@VXVVL@ŽVn@„„Wlb@„Žl„XVlL„aV@VJ@XX`„kVwVl@bk„‚bUŽlVXIlƒnLVa„mVwV@@nV@XaVJVbX@lwV@n„@nV@VWnIVVUŽÆ@Xx‚a@I„UUKmk@mVƒ„IXmWUš™VJnUVU@anaVwk™›U@UXa@W™@m_@a¯@@K@UVƒ„bnK@blIlbXa@WW_n@VƒU@¯bmyƒUkUJÇÅ@WU@kWKÅwƒnm°KVkmankVWnXVWV@UƒƒwXkV@mƒ„UlLnaƒVaX@VUn@VnVK@xlnXWšU@a™@@klak™Vw™mUaV@™wmIÛ`m—@mVUXmlIXƒV‚I@K@aU@UaV_UK@wkUmmUKWXŽmVkUƒL@mƒƒU_nK‚™@aVU@Ukak»@U™™@ymUƒ„¯™ƒUUƒVKkam@™nka@ƒmwkLWb¯mkaƒ_VaVKUƒ™IUw@kKmU@WK@UnƒmaULkU@wUalWV¹U@@WUI@WU@‚_@W@U@mƒU@WbbUK@Um@@UmbUwWWkk@WU„a@anUUwlWUwUU@wlJVUnnV@@mnI@m‚K@U@w„a@wUm@_mƒVUUaVUkƒƒƒ_kċUk™VWLƒ@mlU@kn¥W@UwUWV@VÝU@lXLWVUbVLXlVIl‚knmU@VUJk@@„ƒ@™kVmwmVkxU@@XmVUb@xnKVLl@VxUxkIU`@bWVXX@JWL@bkb„¤@bmUUU¯Kƒkmb@V™VU„VVn@@„Vb@`lnœxmb„lUn‚bk„@xU„mV@bmWbUV@VJ„Il@nVUb‚K@nn@VbnJVIlJVkXJ@X@lmx@bnnWVXJWXU@UlU@mk@@llb°x„IUbnJ@VWbXVmI@JVX@bk‚@bWL@JUXUK@U@Uƒ`n@@Xm@XVW@@nX@@`ƒImxU@@JUI@KƒLmK@UÅUUV@VW@™¯kUU@UamVUUmJ@n„xmLKƒkmJkwkKm_mKXU@aƒU@b@Wk@ma@zUJVUmbUlU@™xnXlWlXXblK„¤V@@nUVVLkVš„l@Xb@VVK‚nXKVx@znW@X‚@@lVK@X@JXbWbnn@JUamLVVXIVxnK@aWUX@˜x@VnI@WlI@anV„IVxk‚l@lbXXšxVVVJVInbV@@ln¦ml@XXVWbkJWb","@@XLVKVXVKUa@UUUmV@l"],encodeOffsets:[[112050,28384],[112174,27394]]}},{type:"Feature",id:"4311",properties:{name:"永州市",cp:[111.709,25.752],childNum:10},geometry:{type:"Polygon",coordinates:["@@lxUXV‚lXUVnlVĢ„JVbUXVJV@XUW¯„VIUK@klW@Un@„nl@V`XUVL@l@šVx@„XXW`UnUbšxUlVnUšV„lb@VnJšUVVVInJlUšVnwVklKnw„LVJVšV@nIV@nbVa@KVVVUUa„KV_nVVJ@_VW„nV@n¥lI@anƒl¥X_VKlwVlULUVVVš@šU@VXL˜ƒ@IUmn@VU@wmKXUWU@m²šl@VIXWWkWUkWlkIVamUXamUnmWUU@@Un™lK@XJl@kVUk@mWKXkl@@aVU@UVWUUVa„In`VUVLnw@U@K@Uƒƒ@w@UVmUUƒ™°K@UnV@bV@Xk@KVm@amk„aU£VWUUmUUwm`UbULka›KXU@kVmU™@aV_UWVIn@˜y„XXK@klmV„V_kWVUn@WUU@UƒmaU@™wnwWanUmmXkƒam@UakLmK@b™xUUUU@Km¥Vaƒ¯@ƒkUaVUlm„UU@mUUÇmUk™Uyƒb™bUa™XUWWbÅLmL@V™aL@WWXUKmmk@a@UUK™XW¥kU@VƒUkxmVkUWbUJnVJ@nVJXzWxkŽ@lVbUX@VVL@`mbUnšŽUn™VV¼k@Ulm@mwLƒb@lmLUK@UamƒWkƒK@£Ua@ƒ›UkJkUmbVlkX@bWbUŽVŽnnUVl„@bšbVK@VX@lb„V@nU¤šx‚²„Knblb@x„V„ô@šlŽ@b@l@XWxnVl@„VV@XLVl‚LUŽUXV`šbXXmJU@@bm@UUkLW@UlUKWUUb™wUm™L@nklVVmVXXm@@bUKlÆn„‚XkllVUVVL@nUbV‚@V@nnV@xUn¯U@JW@UX@xĉ@™`m@@LV@b"],encodeOffsets:[[113671,26989]]}},{type:"Feature",id:"4305",properties:{name:"邵阳市",cp:[110.9619,26.8121],childNum:10},geometry:{type:"Polygon",coordinates:["@@XIlJšI„VVK@n@VVVKnLVwVmnLVK@U„@šw„J@wVIƚ°X@ÜȄUÈxll@kn@VwVaXJWXn@@WVL@UUKVKV_U@@aVK„x@U„aV@lk„@XylbUaV_šVnal@W„U@a„I@aV@@aVUl@Xm‚UXWaXml@@kk@ma@V_UnUV™UUWJUa@kkaWLUmk@@LUVWUkJWkK@¼UnWJƒIkV@b@JUIm@Ul™V™m@Uw@a@kWƒXWKUknW@ƒWUU@k™mx™UkVmIUJUU™VmI@UkaUƒV™UmVk™wVaVmX_WW@ƒUw@™@kUKWVU_k@ƒmm@@VkX@lVLUJƒX°WVU@UIVWUaƒIUġmkVUkWUVWkwWXk`mI@¥kUVƒUƒUn±@m›XkWknV„UVmmU@@XƒVƒUk`@Xƒƒƒk@¥¯»mbĉó@mkU@kU™ƒƒ™KmX@˜UnmL@lULkKUƒWUU@ƒbUaUnƒ@Vb@l„¦Ub@l™@UKmnƒKUnl„UVVbUVn„@`Vn@xƒb@x@VL@nmJ@nU@mmUVkI@xVVVxkXVxmV@bƒbXVl@Xl‚XVxna@Vn@@VVL‚aXaV@n„‚@@V@X`V@@XVJ@XV@UºkXVb@xlVVKnbm„@VXLV@n‚lL@VxšJV„ULUb„`lb°nXalKnx@„lbšmn@lbULV„„V°š„ƒnV@zšš@Vl¼lb@VUV@bšmLV`„„@n„KlVnU‚XWVLnnlV@xVLU`VbV@"],encodeOffsets:[[113535,28322]]}},{type:"Feature",id:"4310",properties:{name:"郴州市",cp:[113.2361,25.8673],childNum:10},geometry:{type:"Polygon",coordinates:["@@²zVaVlnVl@nšVk„Jl_XJlIVmnL@mV@VXn@lV@‚XzV@lyV¯²U@UlJ@XVKnVVIXl@UVLV`@n@J„I@mlI„KVLnUlVUVVLXašKVLl@nb@ŽW„XV°KUnVV„L@xVJ„L@b@LUVVVU„˜VXbmbVbn@@lUbm@x@XVVVŽ@@˜@bkImx@Vm@Xbƒb@l°XU¤„a‚L„mnL@bl@@™VUX@VxnV˜anLnƒWƒ¥XKVwnUWXmVIUWÆLVx„L„w@wVmlU@¥XƒWUkwlÇn_Uw„WV@VU°wnU—ƒy@aVškVlnL@lVn„w@VlJ@b„X„x@bVKnb@U@WVUl@@Vnbl@XLlK@aVLVKnxÞn@a„LlmUaVU™ƒm@ÅknUmaUKmVk@m™kk@UlWUkVm@w@kUU@W™U¯™¥@w„Ç@aVIlUV@kUWU@UUm»@k@mKVkUKUwƒaUaUa›@k„kUWJkImaU@UK™@maUzk`@zƒy@XmJkL@UUJmUkV@z›@kŽkVmK@¦UbWL@a@UbmKmwUK™Xk›VUUkmVkw@UUKmL@WUIWa—JW_k@@WmI@mk@WkWULUUVKUUVm@šU„bš@‚nUǃ@U@w„™V@Ua@aƒL@ak„›l@k™UƒJƒwó@@L@V@„™`@œƒJ@xnn™šmV@bkJmUó@ƒn—JW„UUmƒU@UV@Lk„WlnnmVXbmxšxV@nbV„V@XVm@UVlXU`ƒUŽkn@lWLƒW—zm@UJVXU`@bVšUn@lWVœLlbVKVan_VxnVVVUXV¤ƒbnl@bUn@LWlU@@amU@V¯L„šVVUn@V@x„„@V@L@VmxUKUVm_ƒJUbVV"],encodeOffsets:[[114930,26747]]}},{type:"Feature",id:"4307",properties:{name:"常德市",cp:[111.4014,29.2676],childNum:8},geometry:{type:"Polygon",coordinates:["@@l™U™mkUwUyV™@VW@¯Va—VmUU@KVUVUVLnaWƒnkUÓV_@mVU@݄w@ƒka@kVmƒUmK@IkaUamKkXWaUW@WUk„™@@KVU@aU@™L@J@XÇVUKVak_mWkLWakVUbmLUUmlUVKUU@kUWW@UImJ@xkLkKm@@Xƒ@ó݃@UUk@UKƒV™ƒULƒKƒXkWWbkaƒIUƒWU@mUk@WLaUJġ™ƒ@@XÈÆVIl‚„Vnz°aV@U„m@X`@XWbkakJ@amLƒaU„@V@L°@@bn`š@@XWb@VœVlšUxmb@bUVmVUI™šXVWnƒJU„@nnlVLƒV@JbWzk`m@UVK²V‚x„k„LVl„@Vn@V„„°xVKVkœVVlUblx@bU„‚Æœ@@nVnUll„kx@VW@@VkLWxUL@bÝ@kKkVõV@bkXVVUVƒ@ƒVkUkV›LkV™a™@@™ƒ¯xUxmX@JVb°WXkK@Vm@k„Vb™bn¤‚xUXkJƒblxnXÆK²l‚_@Wnašn@ŽUL@b‚JnIlV„@lUœ@@¯ô@lWȂIVKVm„U@aXaV@lwVXn@@K@UVKUUnU‚bn@lWšX„ƒlJnUšLšKV@„„l@²a@UlK@aV@naVX„WV_nKlL@KUm@a°U°@VXL@a@wWmXal@„k„@VLn›V@@bl@VnX@mwVa²aVU@mk@"],encodeOffsets:[[114976,30201]]}},{type:"Feature",id:"4331",properties:{name:"湘西土家族苗族自治州",cp:[109.7864,28.6743],childNum:8},geometry:{type:"Polygon",coordinates:["@@@KšL@wnK±nƒnm‚—@WUk„ƒÜÈn@n»@mVamk„mšU„„l@V™nmmU@wUan¯VKšLn„VWlInyWUœI@WWk@KXU˜n@mnUmU@WœƒmkV@ƒkXašaVaUm‚Ikƒƒ@kaƒX@ƒUm@UKWU@UkJWkXa@IVy@UmIUVU@UJU@WXWmU@™VakaU@@Xm@Vm@wnwV@VL„yV@VakUUa@wUUVmlI@K„UVkUamJk@VU@UmVaƒan_@KmUƒ@@anm@ImWX_WWUk¯ƒ@k@Wƒ_m`@bULUKUnUWWXkKWaVmnU@@b¯UUbVŽ±K@UKUUVa¯UUmJUƒVIXmI@UU@WmVmkUV@b¯w@lmI@W@aƒ@m¯LXbmJVLklWL@V@XXŽmbVVU@@VU²Ul@VlX@bš`Xx›zUmkUVÒlŽ@bXLWxXVlš@V„bkLma@nmVmULVbmVUb@lnzmbUÒVl@°nLV„lJkn@bmJk_ƒVmmkblxÈx@LUb„xVb@V™n@JmLVŽUš@„nV@¦VbnJ@lVVbkx™bm@UxVLV@n`UnVVV„kl°z„xVb@VU@@ÆlXnWm¦nbVK@XVVUVVl@X„KUV@nVL@WnIWŽXLVKVLlxUbVKXVWbn@@UnKVLVb„JšU@aVU°b"],encodeOffsets:[[112354,30325]]}},{type:"Feature",id:"4304",properties:{name:"衡阳市",cp:[112.4121,26.7902],childNum:9},geometry:{type:"Polygon",coordinates:["@@lšV@XV@„mXVlXL„W‚X@l@bVxn@šŽšUVkn@VJ@I@alU„JXIVm@»‚LXllIXVVU@Kl@VnXKlb@lVbXIVVUšmVVU`@nbl@@lXLVVVKVbnXWJ@VXbWxXb„Ul™VK„¦nLVVUVVbšb„K@U˜LnK@Un@VxlUV`UnnL@VVL@JV@VUnxnKVbV@@VšIVUnJUVUl@nW„XllIUa„KVbÞLV¼²`V@VIUwlaVmXa@IWanK@U@m„kVƒVUVaX@lšnaVLÈ@‚¥@kkJUWJUaƒXkaUm‚wVXJ@_lWUU@¥n_‚KkamUK„™@amKƒnKƒbV£¯W@k„aWan@@UnwlJ@a@—@UUU@W‚wn@Va@km@UanaWa—UVƒUUVU@K@aƒKUI@wƒKUUVm¯LWUXƒ@mak@UK™LWbUKVUkUmVUKƒLkJ@nƒJ@I@mU_UK@VWkUJmUUL@WkI@V±VU°kzU@Wy@kUm@UWU@@nmKUnkJWIk`ƒIUlm™k@mUUkUb±yUX@VUV@bk@WlXL@nVlUl‚k@WI@ŽkLmš@VV@XVmnnVWbnVUblJXkVl‚XXlWXUJk@±™@nXVWVnL@xUVm@Vn@J—„WK@U™V™@UUVUVKUkkxULW`k¦m„@bkJm¦U@ƒmUX@`UImUU`ƒLVbUVUU@LUbmaU@mJU@U™UIƒKmxkLUl"],encodeOffsets:[[114222,27484]]}},{type:"Feature",id:"4306",properties:{name:"岳阳市",cp:[113.2361,29.1357],childNum:7},geometry:{type:"Polygon",coordinates:["@@@wUklmUUmU@@UVm@wUaV_mmUKmwkIkJmUUnm@™™@UUƒbUKUƒmÛamm¯xVLkbÇƃUƒVUzkVUlƒUUKWLX¦W@ƒVUUUaƒKUbmLKm„@akU@aƒmVaUUVIVWkk@wkƒƒ@@xmLlmÅwmbVlXlÝIWVkK@kkVƒL@VWKU@Ublnaƒƒm@b@bšnW`@XUJk@UUWKƒk@UKƒnn‚@xmLUVm@kbVbV„nV@V„b‚@KnV„LWšXŽÆVĢ¦VblŽš„n„UJWz@ƙVóUVbkV™aÅx@¦lVUbVVknWKƒ„k@ƒwƒK™VU„Å„ƒl@zkb@`m_mJ@xX„mbVbœ@llV@n„@llbXL˜UXalUšl„alVnwnLVKlšVbX@@I„V@blJ@bVL@VVVUXȤ‚VnkVÑXmlbnš‚„VKkÑř@UmaVç@±XUlI„xlV„@VaX¯lUVVUšVJn—V@°°nŽ°„Vxĸł°¦šb²¦lJ@U@aUK@kUm@_m±VIXal@„Kl@„bV@K„K@k„m@UmUUaƒK@_UJƒaXU˜@Xmš_VmUk@WUk›@kU@a@m@UƒaUUU@al@ny‚XXWWwkly@¯n@@bnV@k@mVI‚„œVlUUmlU„JUw„I‚bXƒVaUal@K„b@ƒVKVkXVl@VkUU@ylUœVVaVL"],encodeOffsets:[[116888,29526]]}},{type:"Feature",id:"4309",properties:{name:"益阳市",cp:[111.731,28.3832],childNum:5},geometry:{type:"Polygon",coordinates:["@@„ŽÆxXL@l‚V„@ĢšVI‚bXKl@nVV@„XVŽ„JlbXalX„W„LVKš„„UVLl@VV„@ôބ@@Wn@lLlK@wnIVJX@VX@lVVUL‚VnkVVnKValUXblKnXl`UbVLÈU@W@IšKV@@bUV@Lš@lƒXV‚@VXXblWnLVblb@JnL„VUn@llb@„ƒx@ÞUV@nU`VÔmlX„mbUKUVUV@LVVUn˜ŽUb@°UXš@U‚VzVxnlVškšVnlVnaWƒ@wnIn`@_la@y„kƃVƒšU„L„xl@„ƒXLlmUUVakU@¥ÆwšblUUaôVšU@ÅXyVImƒ™ƒkUaġ¥ÅUWX™ƒKmU@Lƒa@UmUUƒUalan@VUnK@wm„m‚L@V„lXLVVl@VI@WX_™m@a™¯mKUkwW¥UK@_UWWLUVkUWL@WUIkVƒU@JƒwkLUUmJVI@WkXm@VmkKUIU@mmm_@VUV™@™„kJċwUU@KUWkkW@IWW@km@klwkWVkkU™V¯m@kWLU`mIkmkXm@@`@L@xUKWkU@VL@JUU@mbUKVa¯WVnL@`lXUVkU@xW@UbUWVU@UJ@„lnU@m‚nÈmVƒa@bUL™wUb™@@VkxmUUƒ™UV›K@IƒUƒmk@akm@wmIƒŽkK@b™VWXkm@wULUmm@UVW@Ub„mbkKƒVn„U@Wl„xV„U@UXmWUXmlnbUl¯Lmn"],encodeOffsets:[[113378,28981]]}},{type:"Feature",id:"4301",properties:{name:"长沙市",cp:[113.0823,28.2568],childNum:5},geometry:{type:"Polygon",coordinates:["@@lVUllXkx@lln@‚XX@JlXXl‚V@LVVČxlIšƒš@VU@Un`nnV@VJlLUnn@lW@XUJnIVVlK„x@I„VlUVJ@XXKlVVUXKVX@`VLX¦lxVŽnLš°‚an@„„‚bkmVaV@XL@U„KlU@llLXUÞJWkUknaÆxnŽ‚knK@w„@l„@xllUXUJVVUb„n@blV@bnƒ‚LnKVa„LVbVV„UX@W¥XKVL„VVklUVy„U„VÈÅlaUK°wnnÜbn‚V„VL„aVVš@šn@VmnVlIlJna„@Valkn@na@amwm@„UXw˜K@aUUVUUaVa—wWK@kU@UaW@kKUUƒƒ@k™W¯XWan@k„™mmÅ@@I@U@KmLkaVUƒKkLWVUƒk@UVmU@am@kkk¥ƒUƒVUK™„maUb@ŽUb™I@aƒKkkWm@W¯K¯b@VmaULVxUXlVk@UxVJVbUb@xULƒ@ULWW—LƒĕmxVVL@šVb™KUwƒaŲWwX@@WƒUWLU@VbkV@aU@@VUnmJ@VUn@VƒLUK@U‚mUIk@UÇmU@@UW@J@LƒbUmVI@aUmW@@bkXUx@lmLUbm@UbkJ@V@XmlUbkKm@ma@kUaVU@aUK@mImJUIkVƒUƒVUakbWwka@UWKkLUamKUXm`Å_U˜ƒULmaU@@lUV@X"],encodeOffsets:[[114582,28694]]}},{type:"Feature",id:"4302",properties:{name:"株洲市",cp:[113.5327,27.0319],childNum:6},geometry:{type:"Polygon",coordinates:["@@X‚‚Unw„Ė˜KXXVK„@VK@wVaUaUIVwl@kUVWUwVKnb@U°a°LXŽ‚@Xnll„L@bšJVa@VanbšƒVL„U„V@al@@UV¯ÅÇ@Ummk™w@¯ƒyVwnUVVVUkmWV—nKVUƒa@WXkVKn@lUVU„VVVXIlV°VnI@VlKnV@mwVm@LXKWkU¥wWwƒƒ@k@m„X@KX¯V@VUVa@VnKWkœƒV@VUkm@aWa@wkUWwkmV£VÿXUVL@mVIXaò@nW@ašUš@@am™@aUU„UmXmWUk@ƒƒnUW@_maVm™wUkamaUL@aƒwƒW@akI@UƒxUm@kmKUk™lUŽ@b„zV˜m¯xUVU@ƒXVxm`kÈlxXVW„@¦kVUn@xƒxƒKUwÅKVXUJWnXŽmVUxWL„¦XŽm„mK—bmUUwW@UV@šk@ƒšVLnŽlbLm`@¦VVkX@`WIUŽxVnlb„WVbXIV‚lI@l¦Ç@UKmbk™W@UbUVU„ƒl@n@VmLXb@JWbUnkbVxUJUxWXXlWL@V@V@XXJWx„zUVVVVKnXW`@bkIUl‚„nLVJUbUIWVXlWV@XklVbnn@xlš"],encodeOffsets:[[115774,28587]]}},{type:"Feature",id:"4308",properties:{name:"张家界市",cp:[110.5115,29.328],childNum:3},geometry:{type:"Polygon",coordinates:["@@@InWVw°wš„@š@šblUœKlUlV„U„@VUUUlW@aöUlUlLÞ@@aVKXwlK@UX@@UlwkƒVkUm@m›@ÅVƒ@akwVaUk›UUlUL¯wƒƒ@UUmƒ@UkƒKƒlw±UULVn@l_XyWwÅ@VUUmJUXU@@mmƒU@kxW@UaUIWbU@@mU@UxƒnUbmKk„WJkUValƒ@aUkUxƒlW_@WUIU@ƒbkKWUJVnUb™bWb„lU@nl›„@XnVmV@n—mWV@LXl@X›JXVmzkJUXmƒ™KULm°Vb@xnVmnUšk@ƒƒ™VƒnnlUb@nm¼m@Ûǃ„Vl@X˜mnm„²ŽmL@x™K@LUl@nULÆx@V@VXVWbXX˜l„@nLlm@bVKœX‚W„L°bnUš@VaVUš@šmšVw„JnwVK°zn@V‚Vb„a„@Ċ¼"],encodeOffsets:[[113288,30471]]}},{type:"Feature",id:"4313",properties:{name:"娄底市",cp:[111.6431,27.7185],childNum:5},geometry:{type:"Polygon",coordinates:["@@lL„nJ@xln@bnlV„‚„@JœLVUšŽV„nVlw@Uš@VašxVK@a„bnUmÇnV@km@ƒ‚I@VUVVXVaX@@wlVVUkW@_mKXU°‚UbVLnaV@‚V@IUKV@XlVL@w@K@_n@lWlnnJV_XK@l°nšU@WVU@kV@nbVK„V—lƒ@nLlƒ„LXU@ƒlmkw@nW@UKVa¯IVn@@aVUUKl@nXVKVn²a˜ŽXblKnLlmVI@KUU@akLUaVa‚UXm@aƒ@wVUVKnLnWlXl‚n@@U@anUVm@U‚Inm@IUK@UmKVmU_kVUwm@@VmL—K@VƒL™aUaVUUUmKƒ¥ULkšƒVWaXwWa@UXImWUaULUUWKk@WnXbWŽVWnk@UV@bU@@bƒJ@bƒV@XkŽmb™UU`VbkaWzƒ@klU@ƒb@VƒwUL@bV@U`ULVL@VUK@Xm@XWWIUbUxm@@lkkÇwƒVÛÇW@¯Å™UJ@xƒI™xƒ@@VULmKUnUxmKULUUm@@‚ULƒU™JkIWJ@b@LJUW„kJWnUV@nn˜Ü_nJšxU@VbšnUxlškb@lš@"],encodeOffsets:[[113682,28699]]}},{type:"Feature",id:"4303",properties:{name:"湘潭市",cp:[112.5439,27.7075],childNum:4},geometry:{type:"Polygon",coordinates:["@@Æ`n_VWnLVblKXL@VlbXxlaVb„U„VlUVJnInJ‚@VL@bUVVb@lnbn@lLVank@W@UlIVan@VanK@kVwlW@aX@Vn@bUJVn„a@K‚IX@@VV@nŽVÈl@VJn@VVL„K@UVm@UnIVm@UV@@blUUaV@XK„V@XW@XxƱ„bVxšLUa@™UKWk™@wmmUalk@WXUWkXUVJVaUImKƒVklJ@aX_mWULUUVUƒyXwWI@W@U@UXKWkXWVwU@±_U»ÝKUaƒLVbkJkƒWmXk@UVVŽmIUV™J@UU@UamLmwUVU@mnJ@VUnmV@b@Vm@kkWmXmKULUV@x„Ž@bWnVUbVblK@bVV@LUJknmKkLWa—±bUmULmWk@VLUV@bm@U°JUbVLX@@mlxkn@„WVƒKk„mK@k„"],encodeOffsets:[[114683,28576]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/jiang_su_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"3209",properties:{name:"盐城市",cp:[120.2234,33.5577],childNum:8},geometry:{type:"Polygon",coordinates:["@@„n@‚°ĀÞ°@¦ULWKkx@bkLWb@lUlVXXJVbƒnUKmxXV@bm@@Xš‚„LޚܦXlVnš‚mzVJ@n@‚²ÞôkƃÞaȰĉ‚wnljÜó„éVÛnĊīČlj‚ĉ@ō@KÞUlU@ƒkklÇÈњÑlġXɛ@UġƒƒaU@U_ƒW@n™@kaUL@VW@kKmkUV@bkbWW@bkzma@ƒJWI@KUKULƒ@U¦™`@XUJ™U@KmXƒw¯KXkmy@aUIWJXXmV@K¯UU@@bVL@¤VLXbV@@JVXVK@„„JVn@bkKmakVVXUVVVlI@`U@nzVVƒb@¤n@@UlKXLVVšI@V@nV@V‚@ÈUx@šóVōšƒkÅWó@mU@bk@Ýwk@WbXxm@@J@zV@kVƒbV‚nLWVUX™WUXUŽWLUŽ@Wl°z@VkxU@UVWIxWJkbƒĬ„nW@@bUl"], +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:{name:"南京市",cp:[118.8062,31.9208],childNum:3},geometry:{type:"Polygon",coordinates:["@@k@ma@kUUVmVIUWVUUaVa@Ѳk°Jôk@Wmk¯KmX¯aUakKƒƒWU„@XU‚LXaV@@mUaVUUl@VmkaUXm@ƒWUUna°IlmV™m™IUW‚@Uk@@aV@VVX@„V‚I°»nm„U@VKVan@m»UaU@U_@WlIUa™aVaUala@¯n@‚ƒkaUkUUWKU@mwkUUmmL@K@ƒLmUUVƒKƒVÅImU—JƒƒVkVVLšèVLVU@W„L„V„š@nVÜULVŽUL@bW@XbWbkJƒUUVUxVXmVk@WUUkVmIƒV@„nbnVWbƒJU„kUULƒa@Jma@XkK@VVL@L@JƒLUVU@V¼ƒnXlƒbm@kbUKmn@lVb@VXXV‚UV@b@LVbÆxXbl@@lV@U„VV@XVK²VlIš`„UbVbUlVVn@WXn@@VUV@„@KmbVLXқLkKƒV@nX@VVUV@b™nVllbšmnb„IWVXU@`lLlknVnmlLlbUmVInK°nUƒU@l@VU@Vn@„ƒ@alI„`VIXaVaVa"],encodeOffsets:[[121928,33244]]}},{type:"Feature",id:"3212",properties:{name:"泰州市",cp:[120.0586,32.5525],childNum:5},geometry:{type:"Polygon",coordinates:["@@lUU@@y@In@WwXal@Þxl@@anVô@ÆX„lŎ™ôU@™Vw@ÇUU@@m@U™JUUWKkL@Vm@@£„aUUmyV@@_kJUUVUUWlUnblL@aUmƒI@ƒULUW@IU@WaUK@£UK@aV@°V@LnUWWXIla„VV™@£UWlkXĕVLVWšb@kUalwUKU¯lU@mk£VôKȁVK@w„KVaUkķlUI±™ğ¥ÝUŹš™Ž¯ôm¦ƒĸ™‚@XXK@VVXUJ@nlbUx@blJkšmIUV@ÆnL@VmL@b@b@V@J@bnb‚U@UšJk¦mL@VVJkXk„ll@bƒ@@lƒXXVWlXnml@nÅU@ŽmbUVlVUXn`mb@zU@V‚VWX@¤š¦V@Xb"],encodeOffsets:[[122592,34015]]}},{type:"Feature",id:"3202",properties:{name:"无锡市",cp:[120.3442,31.5527],childNum:3},geometry:{type:"Polygon",coordinates:["@@nLƒÒlxUVkL™am@™ƒkVWUULUxVVVbUV@bVLU‚nnź™ÞVĠ¦X™VUUaôw@KlUVw„WUwVa„@lUXƒWa@_X@WmkI@a@W„I@w@KmKUUk@@aVUšVVÅmJ_@W@a@I±wÛ@ƑÇkw±ƒ¯£mWĉUóçƒK¯VkUWK@XkV¯UWabƒmUa™UUb™lln@b@xƒbXŽWX`@„VxUblL@bn@Vb@`m@XbWnn@l¤„n@xnVlU„™VLÆWœkV@VbÞJ‚_nƒl@nKVU@aU™U@mVk°WVLUV¯bVXŽ˜bXlVn@VmL@x—V@bl„š‚@œnW@X@VVJ@²VJVU"],encodeOffsets:[[123064,32513]]}},{type:"Feature",id:"3204",properties:{name:"常州市",cp:[119.4543,31.5582],childNum:3},geometry:{type:"Polygon",coordinates:["@@„L˜ŽnxUbVVƒL@xnnW‚nn@VVXn@‚yœImx„„°ƒšL„a‚¥n@VkšKVw„W@nX„VJ@b‚@UVn„ƒ@UnUV@L‚b@`VLklVÞn„Æ@VaXLl™ÈJšmmVUK@aVUUaUUVwVKXVlUš„n@šblKVUkw„ÑmKUVUI@±UI@U@WmX@›™kƒ@a˜U@wnK@UUmWk—aWU°aVUUK¯XUl@nVŽVš@bUVmLk@m„`ÝIUaU@›lÅXUKƒškVmU@wƒmk£m@XmWan@@_Uam@@akKVaUw@ƒW_XW„a@w@akmm@mL@UJmnUKƒ@@XnJWLkKUb@„Vxk„WƒL—aWVUImVULUK@L@lkLVVVllb„m@@°kbVbUbšbVbkJ@XV`V@Vbn¼"],encodeOffsets:[[122097,32389]]}},{type:"Feature",id:"3211",properties:{name:"镇江市",cp:[119.4763,31.9702],childNum:4},geometry:{type:"Polygon",coordinates:["@@šVĊKšn„VÆUn„„J@UWKXkVLlKVwX„šVlbVK„„nJÆaš„ķn¥°óÇIkšWKUbÅ@mƒUÝlkUK@_a@KVUVm„@mƒVU@@aUIWƒ@mƒXUx™LUlm@¦ƒb™K¯„ƒƒnw›Jzm@UW@UmmXmm@w„KUUVamw—ƒKm@UbUL@ŽƒVmn¯¼JƒUW@UUU@@bl@@VŽVXšJšnnU‚‚k¯JmbVV„Xn@VWlbUnk@VVUŽVb@nU@WbKWVƒ@XV„„lLVb°bnW°Lnl@X"],encodeOffsets:[[122097,32997]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/jiang_xi_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"3607",properties:{name:"赣州市",cp:[115.2795,25.8124],childNum:18},geometry:{type:"Polygon",coordinates:["@@„`l@Èbln„@„KVLl@„V@bȎlnšKXkVlVL@„lJnb„¦VKVVnX„W@w°@VU„mln„UV`šU„bVUV@„xnKVI°KXKVkVL@al@Xa„LVlULWV™VVL@b„x@VXVmb@x@V™VV@nn¤„šlb°b°KXXWbX`lbXx‚z@x„`VIVUnK„L‚x„WXLVKVbVLVU@wnW°b„@nalX„‚mXVJn@U²mKkVl„U@@xlnœaVmlKnœ@JVLlŽnVššl@XXÆèVlUX@xVLXVšb°W@wnUWmXk@K‚LVwUmUkUKUw@wVaVK@kƒ@WnkUKWkwlmXL@KVUlLVKXmWU„L@ašL@malaVk@aa‚ašƒnXš@VVUblb„Jn˜ƒXa„V‚wn£„K@UWmUk@ƒUaWIV@b™JW@KmmU@aUUUkmKkVKlUU™nKVU„lVaV£Å¥WUUK@UkUUw@m@mIkƒƒUUWƒLƒK¯Uw°¯@wUKUbƒKmƒ@kkKUL@UUKV¥U@manw@k@U@Wm@@U@Wwkm„wWaUU@UUmV¯kwƒ@@kmƒkKkUW@UK@ÅV@XWWkXa@Ul@Va@KVaUUU@ƒaXwla@UkVWaXk@K@lmkUmV@Vmbk@ƒ»XIƒ¥VUkƒVUVU@anKVUƒKUalU@wX@˜™@a@K—@ÝwƒL@ŽUnÇlUIkJmn@ŽƒbVVb@VmnkLƒV¯U@ƒ±l—IWmƒ@kaUI@aÇU@K@KUIkbWbƒJUIUyƒX¯ƒUbU@méUUmUk„WK—xWIkJm@V¥U_UJUwmVkšƒUU@ƒƒƒ@knƒwm@UmkWJkL@n@VW@@‚U@knm@kUml@xÅxƒ@@XUJlb„@VX„JVxn@lbV„@lULnV@VlnV@bWV@bXL@lVLVb„V@blLn@Vl„K@xln@bX@lašLVbnKUVVb„KlXVVkxƒV@nnVUb‚lV@@z—°WWkbƒIk‚WL@LUJ@bUI@b™`@UmI@mkK¯XW™™mUV¯@UUVUUam@@VULWUJƒIm`IUJ›KUkW@Uxn‚WbnnmlXbmIUVmV@Vnb@V™LUKWLnÒVVV@V„UL@„kJUV@bƒÈ@ŽšV°šŽ@XVV@l@xUz"],encodeOffsets:[[116753,26596]]}},{type:"Feature",id:"3608",properties:{name:"吉安市",cp:[114.884,26.9659],childNum:12},geometry:{type:"Polygon",coordinates:["@@lxnb@V@bV@ln@‚n„‚lInš@blVXK‚nk¼@VUKWL@b™L@`UXU`ƒ@V¦XLĠ@lJ„¦@„nV@l°nn@‚mVXnaš@nb‚K„n@l„IVƒš@VanJ@_lKVVnš„L@L‚K@Vn@VbšUVanKlLnbnJVbšnWVnVVanI@‚Vb@L„bVKVanXVbVJVU@aXLll„bôlƼXxVLVK@Xn@ƒxnVVVmb@LnVVKVXV@@mnaVXUVnV˜K@_UaUmšwnKV_‚anKVLš»„K@¯ÝU@›™U@kWlUn™lknK‚VnaUkma@ƒUIUwl»Åw@ƒVwV@n™‚n@ÈXlKVmna@kVw@anm‚@n_WWk@™™mUkUK@Im›kLUn›bkm@wV@kƒlUnLV±m@UInWƒkWmbƒ@¯amX@xUVUKUaULWKƒXwƒKmLUVUJƒ_@wyWwkaW_XaWW¯L¯akaƒ™m£@mUUš@U@wnaWU@Uƒw@aUKšUXUVKUkƒKWbk@@bUKUlWL¯LUJmLƒwU@UVƒa™VU_ƒVkmƒnUV¯@@xƒXmWUUULƒ¥makI@ƒUKUkWl™LkmǍ@aƒUk@UKƒLƒ@kmÇak@ƒ_VlkL@`lbnšlLVanLnbmVÆln@škJlbknmKUbÝmmwULUK@bkLWKULUUma@Kk@UV@L@llbVzšxUxnl@bVLmŽšŽ@IVJXœVlƒLV`@bn²@J™@™V@Xmbñ@WbUJ@bm@@LUĬU‚„¦lV@xXb@blnUV"],encodeOffsets:[[116652,27608]]}},{type:"Feature",id:"3611",properties:{name:"上饶市",cp:[117.8613,28.7292],childNum:12},geometry:{type:"Polygon",coordinates:["@@„„@„V‚š„„I°`nm¤²@bVJUVVXUl@Vmb@xV@XbmVVœ@lkLmbn`VbnU‚@Va„UnbVllUXV„a@w°VW@_VWšLššnVlbšLVbnl„KšnVK@IUW@_@am@™‚ÑUólK@U@WU@VwU@UI@aUU‚aXƒƒ@kwmJV@yX@k‚anƒƒ@mkwVmmI@aUU@aUUW@kVkV@@anKš»„XVWnIVUl`@_„W@wlUœV@UWKnU‚bnŽ°InJl„UV@VnI‚b„Wn@VklL@l@Vn²m@U`kI@bWJƒnV@°VXnJm„XVmx@VVL@bkLmWULUmU@ƒbWXb@llnX@‚xkxVV„nVV@¤nL‚nVxnJVXX@˜ššbn`VI„b„@„blmlLnaV@„blWXnlUnbl@„ƒšKVanUVmm_XK@kWWnašU@UnaWUXa›ƒXamUkKmXUWƒLX¯WakKm™nUWwXa@KW_„aXWW_@WnIVl@XU‚LnWVknK@ImyUUÆbXK„Û@W@IÆUnƒVÝlkVK@mUIVwkUVaUm@aVIVyXIƒaÈwmmk@UnanVUmÅaó»lwšW@kkUVmUK@WKLƒUmWULkamK™Lk@Wa@wk@UU@U@mbUIWVKUXWmkUmVm›U@LkakKƒw@w@U™¯ƒ‚ƒUUn¯l@bmn@xkJWxkL@VkI@mƒkmJUI@V@b@VVxnbWlkÈkVƒLƒbkKmVƒL@V@²nxW‚kLUL@xlKVx„bXmVnšWJ@ޙ°@n™xUKUw±`UImVmnU@kalm@akwƒU@UUJmxU@@Uƒ@kU@Um@@Kn™ƒVm@k™KmkU@@WUnkLWxkVUwmKmLkU™bmKUbVŽ@xUnkJ@n±ŽšUxVXUšWJ@LUb™lUnm@ƒW@nknUJUVm@kXllknVbÆK„VVbš¼V„@šUl"],encodeOffsets:[[119194,29751]]}},{type:"Feature",id:"3604",properties:{name:"九江市",cp:[115.4224,29.3774],childNum:12},geometry:{type:"Polygon",coordinates:["@@WUkVUkmaƒVUb@mVUam_nalK@kU›nUWaU@@wna@UVkUWVUUI@a‚±n£m¯_ƒJ™ƒU@ƒƒƒĉ¦Ul@UV™Km™mLlm@ğ¹m`Uk¯@@UVK¯™@UUK@amkmKkVVUa@UkUƒKƒŽUa™L@VVXUJ™@ƒnƒ@™š™WUbƒnVb¯V@LÅlÝIƒJÅkݙm@Ua™WUU@UmUXmmwVUUKWUX±mUam@kWƒzUaVmÇw@aÅLmKXƒ‚UWKkL@W¯IƒwVw™lkUƒJ@Um@ÛÈWŽKUxWkƒaUU@KkLVl@„UKUX±KUb@nVVUbUVmaUlUL@„ƒaUL@‚@nUlWzX`@„V@lx²„@Vlb@bšVÞ@°nl@UxVL@lUbVV@n²xVUVmnUÞb‚a„J@IšV°xnbl@nbÆ@VwnK@VnXlK°xnUlVX„V@Vl@L@lk@W_XK@KƒkWxUL@J„nVx@aX@VVUa˜IXlmL@bVVX@VbnK‚a²XVWƒk°a„@UnV¤nbmLmW@XbmJUbVL„aÞK„L@K@U@aVKlbV@nXlJœxV@VnšŽVȚ„ÞKôbźĕČmV@ĊšŽ²xÆIšV@Þ¦ĸ¼ÞVlŽVÞnxln°Jœk‚LXWVUVUVwnJVI@yn@lXlaXmWI@w—»ma@UmK@akKkXmW@_kaWakKWk@@K@IšWƒkUa„ƒ"],encodeOffsets:[[119487,30319]]}},{type:"Feature",id:"3610",properties:{name:"抚州市",cp:[116.4441,27.4933],childNum:11},geometry:{type:"Polygon",coordinates:["@@°V°UnÜ@n@lnLlV@bšV°L„lnLllVzVVXlV„V@@L@xX@WlX„m@UVƒL@V@n„°škVmVUnKlaXxVbšnlU@lVVnaVI@aX@V„šJš@V„@b„b@šVbš‚@X@lUL@Ž@VlIVm@wUVanLšalVnKnLVxlUXwlKVm@k@Una@mWIXKWUÛVƒk@a@UVWn@@kl@@W„XlW@_Um@UVK@a„LnalInWV@@xnI@¥‚K„—šm@kKmƒnk@mlI„¤laXbVblknV@U‚KXVlUXa‚@@Unw@±mU@ak_±a@ƒUJUIƒVKW_Xa@aWU™šK@mmUVa@IXa@UWmšannlmX¯WKXwVUVwƒ@XUlK@klJXa@kƒkmm@Uwƒw@¯ƒW¯kw@WmbULƒaUUU@mVUU™WmkUb™KmkkK@aƒkUƒ¯¥Uƒl—ƒm@akU@mš@KVIVV@KUkUVUkaƒUWb—„mƒIkaVaUU™@mW™„b‚b@bUlkb‚b@n™K@bƒKXVWnULkKUV@LWKknlxXŽVLml@X„Ž@lULUb@xVxVLVlVnUxK@LWlXnmV@x¯X™aWUUK@wVWUkÅçm`@mn@bUx@lmbUnkLÇWm@mšU@Ux@„Æxk¼VxVJ@„nbVlmbUmLklmškVlX@‚VœšV@°Þ"],encodeOffsets:[[118508,28396]]}},{type:"Feature",id:"3609",properties:{name:"宜春市",cp:[115.0159,28.3228],childNum:10},geometry:{type:"Polygon",coordinates:["@@@VlbnK@b@JšLlUnx±ĀXxÆW„X@lš@V„@@blJ@nX@˜xUbVVUbVV@b—VmnmJœ„@bmbm@klUbƒLmbœš@lVb@xUX@bVVVbV¤@LVV„bXlVw‚LXÜÇn@@V„IlVškUx„x°J@XlKXLV„‚WnLÆK@bÈxUnVb„ylXn@Vbn‚W²XV‚LVVUŽnxWnnV@VVVšXVbn@ޚÆl„IÞJÆk@K°UUa„mVa@UUUš»@wV@VƒkkUKUVW£U@UmW@@aXkVUnVlKVV„UUkVmU™@kWaUanU„VVamIX¥W@@aUaUVW@_mW@UnIVVn@VbVm@bVL@anKVUkƒWK„UXV‚Ikx‚@na„bVK„b@nVJ„_V›@Vw„‚VUVVXUlUUaV@X@VblašbnKlkVaXaƒ¯@m@U„KVUn@WƒXkW@@w@KU@UƒWkUUUykkmKƒk¯K™U@akUmK@k@mmÛ¯V¯U@‚ƒL™¼UKmLbU`mL™xVnVb@`—LmUVUUWmb@nU@UWULmU@KnaUUmU„wmJ¯IUJWIkVkaWVUIUlWaUIUVkKmbUIƒÒlVUnnŽ@VlLUJ@bUX¯@ƒaWVUKUXƒKUbm@UwKWa@a@VkUWn™@Uak@mbX„WJXbm@mL—aWVk@™wƒL@WmanU@knwWmkaWL—KWUXaƒU@¥l„UVVVbnwƒ¥nKV™»@aUk@a@UƒJ@kƒmLma™@mbUWnm@ULǺ@LXnmxUŽm@UbkbW@@akLmWk@UXmJmUkV@VUXVlULmKUxkL@lmXnJ@X‚l°Vnb@bU@WbKUX@VmKUX"],encodeOffsets:[[116652,28666]]}},{type:"Feature",id:"3601",properties:{name:"南昌市",cp:[116.0046,28.6633],childNum:6},geometry:{type:"Polygon",coordinates:["@@šXš™„@„mš@VIUW@UšKVb„„LlV@VVbUŽlUnLnl@bVL@V°šUL@V°@Vln_Ġºn@‚knKnššLVU@VkĊ¥Vk@™Uƒ™»UaƒUÅLUalmkklWn@VUVIlm@m„Xn@VmškVa@KXIV™UWVw‚™²@m@U@VK@k@W™Ua@™ƒa@aUƒ™@™IUƒW@@bUJmbUU@kkV™mUaWwkbmLUVUn™lWbUbklmL™akbUaW@U@VbkVWVUUUVƒUx@‚Uœƒ`UI@mƒaULƒamb@lwJWUƒVXLl„UVmL@bUK@aUnUam@UUmJ@VnX@`UXVŽVb@bX@W¦nJUbƒUmVVbXb@lVšUnVlƒVUUkLmUUVWl@bX@VnV@X¤VUVLllU„U@@x™¼VV@V"],encodeOffsets:[[118249,29700]]}},{type:"Feature",id:"3602",properties:{name:"景德镇市",cp:[117.334,29.3225],childNum:3},geometry:{type:"Polygon",coordinates:["@@VVX@Vbmz„xUlU@mbmL@V²xVbUVVblbX@šVškVykValKVI@bn@n`lVWnX@l„L@™WKnƒVIVa@¯nK@alIXJVIVWUw‚ƒn@nU˜„nK@alI@a@anKm_™a—™W@UWmIUwmmK@£UUƒmUUlwwW@km@kWaX„aV@VnVKnXlK@aUK@UnwWUnƒmIUW@¯mU„XI@alJV_n@m±@U@kkKUlm@ƒXamJ@UVUkƒmI¯JmamVXL@V›UkV@xƒX@`k_UVmJUXƒW™¼mL@bU@UllX@VV@bVV@bnJUnlx@n„Žm„b@lWŽ@zU‚nIlx„@W„bVV@bVJV@UxV@@X@VkLVôÒ‚šn@@b@`VX@J"],encodeOffsets:[[119903,30409]]}},{type:"Feature",id:"3603",properties:{name:"萍乡市",cp:[113.9282,27.4823],childNum:4},geometry:{type:"Polygon",coordinates:["@@VWnL@UVW‚LXaV@@ama¯Uk@WmInW@klKVwnLVKUkVW@UlUnVnIVWl@nXlK@bX@laVan@VnwWm@KȹVK¯m@kmU@ƒƒ¥kIğ@WKU¥„@V_VW@_šK@aXKVL@Ul»mWLkU@am™kJƒm@kmU@@a@UmakwU@›„Xlƒ@VXk`UIW¼kWWX@‚œ@l‚xV¦XlW@Ubn„@ŽmUkL@UmJ¯UkUWVUaƒUlm@UXWl„nUJ@LmLU˜nXll@bUVUUmVUn„Ž@¦šxlŽnn@VÆÈU°kbV„VxllnL@VnVVUl@V„„anL"],encodeOffsets:[[116652,28666]]}},{type:"Feature",id:"3606",properties:{name:"鹰潭市",cp:[117.0813,28.2349],childNum:3},geometry:{type:"Polygon",coordinates:["@@@XV@nlšL@lUnš„mŽ@Ln@@VlV„@@VV@nwVI@V„Vlx@bknlbV@nmnUVJ‚_²‚VxVLšw@mš¯@ÝXIm™nUWƒaUwkL@wVKlKXmw@±@U„KnUlL„a„KlUlÇXkmaUw@U@a@Uƒ™UkwUJ@zWJ™w@WbkVWUL@VmUklUaWakbƒ£kJ@nmln„lL@Ž™nƒ˜L@¦mJ@wU@mXkJmbƒK@bUL@VVn@`kXƒW@Xk@@lm@UX@V@b„lÜUXVWLXJ@nmb@V@l"],encodeOffsets:[[119599,29025]]}},{type:"Feature",id:"3605",properties:{name:"新余市",cp:[114.95,27.8174],childNum:2},geometry:{type:"Polygon",coordinates:["@@m@@WULUKWwÅ»ókƒakkWK@bUVUIUamWUbULƒa@KUa@mJUbmUXU™mUamImakKmLUb™VUam@@UL@KƒKm™UUkL@`mIUb™@U„@V@bVl@bš¼UŽmL„¦mxUaUUƒVkŽ@¦„VWbXV˜LXKlbXnmx@lmVnb@X„Kšxl@XU˜bnKn@WaXIWƒnal@Vbš@XmlV@U@bXb‚LVxn@Va„LVWVLXU„b°@VW@aVIkK@UmVmkU„ÑVJnalLVUVJXbVkVJXUlblUXJVI°JnI"],encodeOffsets:[[118182,28542]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/ji_lin_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"2224",properties:{name:"延边朝鲜族自治州",cp:[129.397,43.2587],childNum:8},geometry:{type:"Polygon",coordinates:["@@Wxĵ„mš@„ó¤VX@@xܼƨš²xWxƒV„V@„XVƒ„„„ƒbWšXllaÞU°Ċ„@ô¼„LôÝWanV¥ƒÑnĉ°¥šÅX¥°¯@w°w@»°k£°mÈŹ‚mÈbƃŎ¦„K°z@Žkxl¦UbU¤šššklV„KŤÞȰ@@bšV@nVVUlÞ¦lUllœVlU°ÑU¯Vƒ°w„bXxl@VŽ²„˜@n„ô¼ƒó°™kmVk²ĕ‚w@wV™ÞÞ@@Ġƒö»˜¯œ@‚„šbnb°mÞ¯°V°„ÈJmX¥mam™UřƒUƒlaU¯™ƒ@w™Kk—l±n@@wƒkÝVUUl±¯I¯b™a™lƒ@™kLmakbƒ@ġƒŹé°™Þb°šékƒƒLm™„wX™‚aÅb@bVlƒbVb—ÒVbUb›UUanwƒakbVŽUV›ak„¯„UŽƒLmxV°UxnôŻX@J„Xkl‚bkbĉaƒbƒWU„ƒ@ƒk„WUU¯@@klmƒ@@™Å@aƒwWXlKkI@WbUaVIUanUƒƒ@ĕƒ¯K™„mUnWUwm@£ċèkUmbUmm@@nkJUalwk@@nmWUan_óaWmnw±KœIƒwl@UmƒI@an@@mlUÅmV_™KUkƒ@U`@_ƒKUmU™@U¯™mmb¯@kb™ImV¯ƒƒLkbƒKƒƒÛ@ÇnɱJóaÝĢkb@„›x—ÒÇllœ@‚Ž²V‚„ÆUVV„UÇ°X„óxlV¯„lV@bƒV@n—x›@—¤@„șŎnxV¼knšJ‚nšKX°˜¦UlnVbUbÆVnÞWVX¦llšb@l°œVJôÒnLVbšbXŽ"],encodeOffsets:[[131086,44798]]}},{type:"Feature",id:"2202",properties:{name:"吉林市",cp:[126.8372,43.6047],childNum:6},geometry:{type:"Polygon",coordinates:["@@ôl‚zšaÈV°„šK@„mŽ—LWl™nšVxUV‚È@ŽÝĬUÈn‚ôLša‚„²VmĀkV@„ĠĊnU@b„V@b˜@nl°UVnÞaôJ@bš™V„¦mlkššbmVXx¯@Vxm„nbƒ„šbÈK‚V@bÈL„wĠyônšmnbÜ@nn„V˜x@n²K‚„„J@k„al@nxÞU„Lź±Vwkw¯LWWUš™kŎīVwƒw„°y„Vĕ°wÈVlkÛ»@wW@Uô£@ƒn™ĶƒXwW™aUamKóÑUI¯›@k™akkW¥XUmÝÅUVaUa‚mVk—¥W¯™Lm™IlmU»mwȚō@ƒ˜£kJUÇk@am¯y¯UVwƒa@wġx¦ƒKƒƒ¯X°Ċ¯¦U°ċWULÅa±b¯@UkÅWmVƒ™ƒkIUlóŽċ¹™`óIƒlX„WŽXxmbUƒLݏƒbƧ@ƒx¯bƒÈ—l@xƒš¯zƒaݤ@nšm„VWb²bmn¯J¯Ò@n„š"],encodeOffsets:[[128701,44303]]}},{type:"Feature",id:"2208",properties:{name:"白城市",cp:[123.0029,45.2637],childNum:5},geometry:{type:"Polygon",coordinates:["@@ó™ǩŁ@WlwUaƑwÛÅÇéĉamKƒōÇ@Iƒ™ôġVƒȁÑŹçƒ™ÝUƧċĉwóóÝ@Ƒ»ğL¯ll²@ƆÅV@¦m‚Åb@nmlU²VxšlUn™@VbnW„bÇbk҃š„n@èlnlšU҄Ž°Lšx@¼ĉb@҄šUŽċxՃènLVxƒÒƒbÅJ±a@_ÅJÅnƒŽVb„Kl„nUÜĊ@„Uš™xXVÆn„mšVššJÞ¯V™ĠwšƒXw°xWL„x„KV¦ôU„wVÝǬóÞޙ¼‚‚„ÞkŽVôȘxބU„lVn¦ÞšĊa°w„b°@šbÆw„lŤL²`„z°@V@@™nJVnl@@¥nUmmn„@mwnmmUnk@mlwUaƒLnƒ›wn¯°anƒWakI„ƒÇmXwÆamUXUlJXa‚UUklKUknmÞV@‚K@VWÞ@VkUwVƒ"],encodeOffsets:[[127350,46553]]}},{type:"Feature",id:"2207",properties:{name:"松原市",cp:[124.0906,44.7198],childNum:5},geometry:{type:"Polygon",coordinates:["@@„šźèȂÒU„óĢ„š@JŎȄ‚‚LnŽĊbÈêÜƃxVbkx@XǪłôš„kÞ`„šW„b@n°ašbšKšnVw°`š_X`W„š¦„ĊIkmVšakw‚K„x°UÞb„U@lšƒl@°¦œVW„šaÞbšxÞI@mVI@ƒVkŚUWK„¥nL‚a@ƒ„@ȍ„@°ƒÆ@nU@KÞalkUwVékUWw„™kU›VkkƒJk¯@»ókƒV¯ÆÇI@bĉô¯@™ķw¯nmmÅL¯wƒVƒUÞy@UówÇLkmm@@UóxkkĉmL¯wVwkWWX™mLõm@kűV_ƒƒô»ÛƒÆ¯@™Va™VšaĠVlmğwķUóÝƽ£ÇJkbǫaƽLW@nxݤkzƒy¯XɅm@VšôÇX¯Ė¯ºÝnUŽnLVlUÔmV"],encodeOffsets:[[126068,45580]]}},{type:"Feature",id:"2201",properties:{name:"长春市",cp:[125.8154,44.2584],childNum:5},geometry:{type:"Polygon",coordinates:["@@„U°xÆKnn°mĸxš°@Ċó@aÈJ°Å„Uôl@¼l°„IllœUlVƒšXxlVUêVxkllnÈUVll@Vx²IÞ¤VUlVnIôlރlwô_„›„bVaĶLXÅÞÇ@K˜¯@wÛaƒçn¥š¯WXyW¯XwƒUmmÛ@ma™nómğzƒxÇK@aUÇL™a„ƒmanƒUw°@WwnU™al™nkƒ¥šU™@aóIÝbUm¯Vmk—@@aƒU@amVğĉ@ƒlUnÿ±Uƒ™bóKmVÇÞī@ÇVUUw‚™šmXk˜Kn@ƒ™L¯ƒÇU™byókōè@b‚n@lÝX@x¯ô@ƙUV_maXm@aóƒJWxnX@ŽVVnĖVnUJ@nōÆǼV¼kxƒLklÝw@xƒx@zV`ÅbmxU±xU„nnm‚kn‚ŽğU™bUŽ‚šUb@šÅ°Ü„󼄄U`Ʋ@lön‚KšnXWlXUx°xnKĊllôw@Vn@lnÈKôx@VÝz„V"],encodeOffsets:[[128262,45940]]}},{type:"Feature",id:"2206",properties:{name:"白山市",cp:[127.2217,42.0941],childNum:5},geometry:{type:"Polygon",coordinates:["@@Ušl¦kÒÆ°„IlÒU¤ôz„¼lJš„U„n‚ÆXVl°@²aÆbVKČXV¯°¥¯ĉ°W„„„L‚¥Ģw@x„bUx°V°zn‚‚b@ÈlVŽlIœ@˜w@m„U@akU°ƒkUôwWƒÈ¯VUƒVUƒÅ±U›@kÈk˜Ñœw@ƒlaÞġƒUÞ£@ƅ‚KnÑĢ¯@W‚aUaVUVkkw@a¯@¯™Ý™ƒVXnW@@WkXmK@xkKUb@bW@Uw¯„mmb@WKUbmUbUaWbƒJĉIVW@I—l±LkšmU™bUm™@ƒnkKWa¯n™@„`Ubma™„ĉL@bƚ—@W`ƒL@n¯‚Xb‚@kb@x™Lƒ„™@V‚kL±™™mlUIU¥mL@lÅx@_laƒƒ@U—aƒV@kmmƒK„£ƒƒLƒƒmKUnÅKVbmXVlèĉUUbml„ĢŤƒIlŽ¯bǦœl‚@ô¼Ģ„@x°„l¤„n„a„l@x™b"],encodeOffsets:[[129567,43262]]}},{type:"Feature",id:"2205",properties:{name:"通化市",cp:[125.9583,41.8579],childNum:7},geometry:{type:"Polygon",coordinates:["@@ÆlXnĠxĢ°lÈ°š„K„°kXm‚@¦Vbk„ŤJšnݤk„VÞVVkȄb°y„™@w˜k„Ç°a„wƨ@„aސ„K‚VnaWwXWƒ„kôJš_ČºôVkƒ»óyV£kуJůlÑk¥V™ša@wƒkƒbƒmk£¯ƒ@wġƒó»@›kÈ¥°ak„JÆ£ƒġnkVaĊVkçWUnUaÆLVmnL„„‚KU™±@—„m@a¯U„bmV¯m@_ƒK™™U™ƒaƒÅ™Wó¹ƒ@UanmWak@@wmI@y™@mk„JVa™@UaƒIkJ@n™@Um±kkxƒm™Ik„ƒbÇm@Ž°bXn„V@Ž°ÈmlÞ¼¯XVº¯Lm„kWWXLmVVlknƒ@@lnWƙ„Vxbmšnšm„¯lÝaVȁè@¼V„„b™„ÆŽ°ÞUVšJ„„kx›I—xƒƒƒIV¤™ÒXxmn"],encodeOffsets:[[128273,43330]]}},{type:"Feature",id:"2203",properties:{name:"四平市",cp:[124.541,43.4894],childNum:5},geometry:{type:"Polygon",coordinates:["@@Ɇn°W„zlyÞ£mwX@ƾKǬblaÈIƾ¤ôÞĸVĠxnmmVƒ²w‚VnwÆaU_@y„w@wÞxlk„KlwU»È»ŎÅ@mVIUmmĕUU@mWXw„Iô‚@bWnnbU`‚šV@Å°ó@wÞW@km@aŎ烙@m°Ñ°Inm±aXaƒU™n@mƑšU¦@šÇŽ¯aU£šaU™ġ¦ÅҙJōUŻókUÇ@™¥¯ak¯mUVak@@aċçÅaUƒm¦Ý`XbƄ@n`ƒI™xĊÞōÞml@šUb@Wl™_¯JkšÇUÝÆÅb@n™„llUb¯„±a@ƒ—ƒWĉJġĀ¯™Unóšm¤œxôaVnƒxôI@x„V@bmƙ„@lnLmޯޙxVb¯þ"],encodeOffsets:[[126293,45124]]}},{type:"Feature",id:"2204",properties:{name:"辽源市",cp:[125.343,42.7643],childNum:3},geometry:{type:"Polygon",coordinates:["@@żôŎVšIÆÑĢ¥Vš™bV¤°bȍ@™V¥ƒ™Þ£lÇUUUÝlƒÞ£™mţIlƒUa@¥nlWƒ¯ƒL¯™kÇġ¯ğwWmÅk¯UƒVU„„bWlXlmnƒbUx¯xVVknlŽUbV„ÇKUb@„™VnbmlnzUº±bmJUbWÈnèm҄š@X`WL"],encodeOffsets:[[127879,44168]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/liao_ning_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"2102",properties:{name:"大连市",cp:[122.2229,39.4409],childNum:5},geometry:{type:"Polygon",coordinates:["@@‚IÞmVk@wXWÜbnwlLnU„@‚nLlbXW@a‚wnbl@XL‚aš@Ċ¥@LULnJ@xVnmV@VXXV@VJkn@VÜKXXôJlb„xl@„IVbnJVLUbn‚lnVw„JVU@ƒXU‚aUUlwn@°ƒn„VKnV°_VJšwl@nwlV„IXWlIVVnK@IWmkIVaVU@WÈUlmU@U„WUalkXġŻ@kIƒ»mm™akUm›ĉUŁV»²ġVĕ@aUU؍IɃ`ȃ@kƒw@ƒUƒmwĉ™@ƒWķсIĉÇbÝLkymbIƒwÇmÛbmbU„¯ÜõÈkÆVbŎxnXVÆnšǪ¦„bš¤Uš™xÝnĉÒmĊVȄ¤Èš„bƼ„Ā„„ÆÆބźb„VVbX„‚°²¤"],encodeOffsets:[[124786,41102]]}},{type:"Feature",id:"2113",properties:{name:"朝阳市",cp:[120.0696,41.4899],childNum:6},geometry:{type:"Polygon",coordinates:["@@na@UVI@m„ÑW™kaV¥UI@wl@„aÈbšm@wVašk„@@K@kƒ™@a@UUmƒUUalmU@KÇUű¯@±kUKVkUaƒaU@¥m@@¯k@WLUmkn@mmIkm@amU@wVmkU@Klk@U—m˜aXIWWUL™aULVbƒmk@UUmUk±™_Uym@mbkImaX¯WW™xWKzU@WƒkJWwkV™@Um@UbVVVVXb@VWX—@WŽ@Vkb@V™nUK±aUUlwX™ÇWKknU@mmUkƒLUVƒVUUVƒUaƒw™bkKmwnIƒ™kJ@nmbƒ`kmVkLWwUm@UUU™K@UmaUa@UUaWK@mUƒ¯Wkk¯VmUUŽ„xVXUVmL¯ymXkWUbmXUKƒVknWx¯JVnkLƒl@VVxnxlĀVL²WlX„l@bÝVUn@bnlÜaXblIVl@šš@Ȧ@VmbXV‚@@x„VVnUn@`°@VnXU@K@„VV@VmbnVn@ln@b„xƒ°Ub@bšLV`Ånƒ„W@@lUšnnWVU@Vbkl@Xl`XxV„UblŽkX@Ž°¦V„UVVbUlkV›@UbVbkLUxmJkXšš@b‚bœxVKÆlXX˜bnŽnala@ƒUk@U„VVklKVUXKVU°KVan@VUnLšKVL„WVaU_@mmUXa@m˜wXwVkVWXk‚k@›„k@klm@wXKl@U@KVUUUVaUƒV@„alL„xUx@b°°VnnVšxlIXJmx„LUVlV@bnX@Všb„aVx‚@XJ@b‚n@VŽVXȄl@llX@lU„Vô°°@ބVbn@‚V„k„@VW"],encodeOffsets:[[123919,43262]]}},{type:"Feature",id:"2106",properties:{name:"丹东市",cp:[124.541,40.4242],childNum:4},geometry:{type:"Polygon",coordinates:["@@lzXJ‚U@š²x‚@@Vš„@bUVmKUn„°n@lnVK„„nV@n@VlV„°WbXn@‚VzƒJ@¦@bkb‚bUl@bkbƒJ¯zƒWULWbklV„nb™¦VJ@„„K°U„kl@@W„bVn°@„Všm²U˜nX`„UÜLXmVXlKVbUVVnUbn˜ƒX@VUL@lUbWxš@²kl`n@Vlb„@nUVWVLVU@aV@²bl@ÈmšxWX„VÈU„JV„l@„„la„WnX‚KÈkÈ@Va°bÆm„@XV°IVV°UnalƒVUn@UwVU„@@VVJ„I@bl@XK@wWmXU‚UVbkJVXnJVI@mƒknwlKXL@`l@VI@UUaVKÞn„aVm@aÇ£XW„U@aÇUU@mbkKm£™@WW™ƒL@@Kk@kl›U—bWKUkUU¯UõÛƒmUUaVU„U@WU_W@kVkJƒ_WKkV@bUL™¯¯ƒ±mk¯ġƒğÑ@UmwƒKUakƒ™ƒa@a„m¥ÝƒIUWmk@w™mţ—L›KʝbȗKWĢklVbƒX@VV‚knÇV@XUVUblJXn@J"],encodeOffsets:[[126372,40967]]}},{type:"Feature",id:"2112",properties:{name:"铁岭市",cp:[124.2773,42.7423],childNum:7},geometry:{type:"Polygon",coordinates:["@@XJm@¯šmXUlnVbUJƒU@bV@UJWL@VXLmJVbkXlJXxVL@b@V@n@b@`Vbk@lxknV@VV™V@bUL@bV@@bVK@VXLWLXJ@LV@nbWJ@IUV„x@LVJUXVxVx@VV@@LXJWL@VU@@L@VnL@bVVmVX@@VVInJmbnLWVnVULVVU@VVmX@@JVz‚l@„nVVKVXރ@mk_lm„UUWV_nJlUÞÑÞVVUVƒVL„UVJ@I„Vna‚@@KV@XwWknwnKlalU„w„aĉݚwšJl_@aUaƒKUUU@WU@WXUÆ@@UVK@n@UnVVšblK@bœllb@b„bW@Xbl@UlnLl°°bš¦nKlVnI„V@UWU@WXkƒw@am@nm@aVw@I@KUaVIm±XÑlknJVnVJšaX_VaUaVKmwnkmmn@lU@U@mnašXlKUmUIVmklaUK@UlUVUW@U™kVm™a@UUU@JmUU@@bmb—KWV¯XUKm@ka@UVKVk@aUKmLkKUUÝUmbXbÇJ@k@WU_@m™™@klm@UXKVaUI@KWUXaƒÇWk™aWUkWUL±U@lUU@ƒUJƒI@V¯JmIm@@aU@Uwƒa™@UV@VkI›V¯aUkƒWkb@bVL„@@VVVUXW@Uaƒ@@b—‚ÝbUV݄@ŽƒLmUkVUbVllLUV@LššXŽWbUXm@U`@„kxlnnJlbnIllšLX„lVlUXmVK„n‚V@L"],encodeOffsets:[[126720,43572]]}},{type:"Feature",id:"2101",properties:{name:"沈阳市",cp:[123.1238,42.1216],childNum:5},geometry:{type:"Polygon",coordinates:["@@ȚĊÜ°„b„L‚lÞxUbUn±‚@ÈnVÆL@xnLšlUVƒbƒxkImJkn@V±LUxkV@bšbšKVKnzVl@L°@Va„xÞUlbôxVVœ@@V±bnŽ@llXL˜ŽöXĶŽnal@nkVJVI@aU@@aVK@ašUUUU@lmkwl@Ua@_@a@m@U@aUKWwkIlWUanIWK@UXKVIU@@a„VVIUa‚mVknW°™n@WI@KUƒmULWnkVkUWƒ™KkkmJkamIkmlw@ƒV_n@VWXaW™™@KVUkKUkValUnV„K@ÞƒVUÞa˜@a„@VbX@VWUU@Uƒ@UK@ala@IkKmUUa@U@ƒVƒkk™WVwU_@KÜUXbl@V¥XUVmƒƒƒXa‚kŃlUUkIm`UIUJW@UIKmkm@UUJƒImmU@ƒVUXU`mIUbUK@LƒJUU™l@Xƒ@UbƒJ™kU@ƒŽn„m@Uam@@ƒ™aUmLKƒwƒ™mWXUK@kUaÇa@JUIUa@aƒKVUƒUXmƒUy™_@lmbkLUKWLX`‚n@bVL@JXL„‚WX@Vnb@Vm@UbnVmL@V@x@LUbVV@V@LƒUVl@mb¯U@xU@UVVV@X@VVblJ@bn„VKUn„x@llnL±¤™b@k`VXÆK@„kV@¼kl@bWIUl@VmLnbm@@JXXmb"],encodeOffsets:[[125359,43139]]}},{type:"Feature",id:"2104",properties:{name:"抚顺市",cp:[124.585,41.8579],childNum:4},geometry:{type:"Polygon",coordinates:["@@„XVl°bœUlJ@UVUš@„bVxV@@bn@nJ°I@U„J‚I„VV@V@k²VVKlXXVšb‚lÈX„ŽWbXV@LVJUbWL@Vkn@lšš@nV`@X@lÈIWanaÞVVVlLnKVL@bUlUL@Vlbn@VL°WXU˜Lna@aV@nV@IVV@VšbUnšl@V‚XnKVa@U„UnyWkXaƒaVk@ašašbnm@_WKXmWanU@alaU—l@XJVLVxX@˜wnKnVlwƒƒ™@V_@a¯¥@UkKWUaUU‚anK@IƒaU@WUaVw@klUVyUUVUUÇ@Iôbša@mnUma@kXa@UWak@Wa—l@a›@WUƒLmU@U`mIUU™`mUk@@UUK±nkJƒbUam@kwm@@a@UU@Ua@@K@ƒVK@kmKU_UKƒUUaĉWmkkL@`™LƒnmlkLkbmK@k™@Ulmb@b™„@Ž„xUVƒIUlmVXXƒxm@™JUUk@WUk@ƒakx±@¯x¯Umb™KUUVmUU¯UmVVn™WkÆ„lWb„„„ŽUnWVU¦k@WaÛV@LV`UxšXllU„@„@VVbnVlL@J"],encodeOffsets:[[126754,42992]]}},{type:"Feature",id:"2114",properties:{name:"葫芦岛市",cp:[120.1575,40.578],childNum:4},geometry:{type:"Polygon",coordinates:["@@ll°X„ŽnV‚@XLVb@VVbnb@VšLVV@VVnXxlKnU‚l„_na@mlI„šmJnxlLša„xVbU„VV„UVU„KVlnnV@lmXLšÈWŽkxVV²bVLšm@Ula@UX˜@XW@UWaUUUUVan@V‚š@lUXxlIX„V@‚yXLšw‚ŽXXW°nblJnan@Vzš`l²nVVVl@„nUaVKšbVKnXVaUaVUšyšnXK@kVK‚@X@m@m‚LXa„LWƒU¯„w@™ƒa@UVw„¥°™ó¯¯y¯ƒUǯ»›w¯Iƒm—¯Ç™UUl™¯»ţKċÑţķm¯w@mU_ómk¼VnU`±IkbVlƒnnŽU¼±Lk`@X™Wl¦UbmVUxkXVlkbllU„Vb@bkVmx@XVV@Jb±aULkKWXkWmX¯aUJmIkVm@ƒxU@n„"],encodeOffsets:[[122097,41575]]}},{type:"Feature",id:"2109",properties:{name:"阜新市",cp:[122.0032,42.2699],childNum:4},geometry:{type:"Polygon",coordinates:["@@šXnb°lš„VlnXVJ„LlVnl@zÆxnK@b„blKVLn@@V„aVLVK@L@Vl@XVVInVVKVwlUXwlKšL„ššVVb@aV@X„lUXbVW@n„lWnXKV@@V@XUVVLUVV@@bVVV@@ln@VbVUXV‚I„xVanJ@UšIVWšL@UV@@¤V@nInw˜W„k„lnIVx‚lnzUVÇJ¦VVÜLĸUnW@aV_šWĊXXa‚Knkl@nm™L™a@alUVw²K@UlmnIlJ„w„aVU™kmK@wÅKmU@DzVmVaÝwkƒKƒaÛ¯șĉķ¥ğ¥ƒ@kUWkƏī݃ƒ@@akU„K@KWIUm¯nƒU¯JmwUVmIkJÇLm@™UImJUU@aW@U@@nUb™JƒaƒbXVWn@UVmX@V@b„š@l@Lƒ@™lUb@x™nÇaƒbk@@xVJU¦lbXšƒÒ@nUJ@Vmb"],encodeOffsets:[[123919,43262]]}},{type:"Feature",id:"2107",properties:{name:"锦州市",cp:[121.6626,41.4294],childNum:5},geometry:{type:"Polygon",coordinates:["@@nJ@nlmVnXKl@@°n@@¦‚V„bVbUlVL²l°@ƲÈV@LV‚knVb„VVnnWVU‚@XmWU„a„bšIVa@mV@X@@bVVnIVJ@š‚nÈKlInJVUnx°I„V°mVnXJ@LƒLlV@b„@ބƐĬXllV„@Ġ¦ĸ¦naWW@In@manK@UVkXJ@alk@»lU@ƒÅLUWl_@ša²£‚Kkm@kƒwVmULmƒ@akIUa@U@WUUVU™aÝ@ğ›wkƒƒmĉ£UWƒ@@bÇL@m—a@_mKƒlƒXUwKƒLţÓ@UWw@K@U„I@m™U@UV¥„@°UnJ°@@_™KUwƒW@UnaWUmmI@m™ķwUaÇLóVĵwݙUUW™¯šƒ¦Ux@V„b@šƒxV°X„ƒKWbK@n@nW‚@UL@lWL™m™zUVVbUbmWXXWJ—b˜n@Vkl@LlVUn@xnV@bln"],encodeOffsets:[[123694,42391]]}},{type:"Feature",id:"2103",properties:{name:"鞍山市",cp:[123.0798,40.6055],childNum:4},geometry:{type:"Polygon",coordinates:["@@l„œxĠŽÞ@šbV@@w°Vna‚@Uk„V@K@UUUVa@K@w@UnKmUVan@@Uma@UXWƒWK@IUK@amW_XKVLlKna@kmKVak@VU„@VmšU@anIÆan@‚a„šUVnb@blLV`ÞLlU„bna‚Kn@naVU@¥°IVK@anUUKVaƒUVak™@mJƒkXƒ™UVwkƒVUUa°U@Wƒ@WlkXWlIXUlJlaœx‚IVVXLšll@nLV@lLXl„KĊzš¥maUƒlkXaVK„X°y„Ila@aVkala@a@¥„IUy@WmXaƒ¯kU@U@mmUƒƒULkmm@ƒ¯VmnLVU@a™ƒ@U@±w@™VWIkymLUUkJWXƒJkUmxk@™xUI¯`mUULmƒ¯„m@kxVVbWV@„UVƒIUx@bkšVšVVšxUbVV@V@zšJVXU‚lnk@@lkLƒlƒLUU±Jkšm@UIUVƒLUVU@™K@UƒnnV@l@Ll„ƒaUJ@zn`@nWlƒIUVUUUV±Ln‚@nmL@VUVkLVlUxVLVlÅXma™@@akLmWUX@JUnVJVkXJ@X@`WX„VUVUIlb„W@bVUVL@`Un@¦U`@bUV@z@Jm@@XV`„LUL¯J@IVKmKÅI@J™nWVnLnšVxV¤™z@bmV@VUV@bUL"],encodeOffsets:[[125123,42447]]}},{type:"Feature",id:"2105",properties:{name:"本溪市",cp:[124.1455,41.1987],childNum:3},geometry:{type:"Polygon",coordinates:["@@lb@Vn„lnVVUb@šVJ@nnJ@bmXUx@xVbkbkŽWLUxnl@Ul@„xWx@nUV@¼Ull„knkK@bmbnl‚LVJX@VIVJn_lJVVšXUmnU°VVVUnVVšLna°V°w²@lw„bl@XVl@VVšIn@„wWWnUVk„JVUƒw@šƒ@anaVkš@@lnLlalKnk„mšK@_lKnlĊXVb„VVLV`nL@lUL@„@L@‚VbV@@V@bn@lxn@Vb„alI²mVL@Vl@nVš_VVnJV_‚@nV„K‚V@Xœ‚@b˜kXbl@XblylUUkš™@Xa@UVIlK@UUWVU„Llm@UUUnKWU@K@UXm„XVa@U°KVUUWUk@ašUVKkaWkƒKUknaWa@U—@m@mk@ƒaUJk@@_WKkLmx„l@nUJmIUWlIUaVWVXn@xWLk@@aƒJUI@Uƒ@UVVxm@UVk„mb¯VUU¯JWUƒ@Ån¯aUbÇ@ÇlLmWƒXkbƒƒk@UƒƒIÇVƒUXW™wÇnk@±aU@@bUVUKUXmVƒ@kaUm@k_±l™@XwVa@kVK@U„Wm—VaUmVUUakLUWWnÛKƒVW_—m±V™nƒU¯@Umƒa@Xk@ƒl¯V"],encodeOffsets:[[126552,41839]]}},{type:"Feature",id:"2108",properties:{name:"营口市",cp:[122.4316,40.4297],childNum:4},geometry:{type:"Polygon",coordinates:["@@ĊĖƐn¤„„°Ċ¯ŎWšô„@xXb‚wnKl@nX@VUVƒKmL@VU@Ux݄@Vlb„x„U@VUb@b‚kœ`‚IUlVUn„V@@UV@@JnXlK@bš@nbÆWUkUKVwUklKVU@UnK@mm²KVUVVVU„JXk@mm_@yVI„bkƒ@K@kmU„m@VšLV@VU„KVUVJn@l™²IVV„K„klK@kl@kmVUW™I@y@UUUVa™wUUU™l™@akmmVaUKmIUaƒJk@ƒwkaóIWWÛL@UlmUIU@WW@UnUUm@wmIVK@Kĉ¦™@bWKk@max@bWXkamKƒ@mVkKmxÛaWX@xUlÝnJ"],encodeOffsets:[[124786,41102]]}},{type:"Feature",id:"2110",properties:{name:"辽阳市",cp:[123.4094,41.1383],childNum:5},geometry:{type:"Polygon",coordinates:["@@š`Vz„‚Wn„VUV„L@bVbVJ@IÈbVb@lVLXW‚n„š„x‚LnKVŽšb@„n@Vbn@mƒ„V@šl„IVa„@@WškVV„I@KVLVanJV_VW„UV@nn„JVI‚Vn@na@alLlmkƒVk@»VU@mXwƒwk@@VmkVwXKllaUa@wVwnW@amI@mUI@™VaUUkmmƒ@UkaƒL@ƒUIĉyƒLWkkKU@mKk@™kWKUUJ›wkbkIWVkJWXkl@X„‚@X¯VVbUVl„UxšVW„„lnIš@l‚Ub„VUbVLmV@bUL¯J@¦UVmbm@LmbƒakVÝKU_kK@amaVUƒ™bm@ÅbmJ@b™VUnƒ@UVl@UbnL"],encodeOffsets:[[125562,42194]]}},{type:"Feature",id:"2111",properties:{name:"盘锦市",cp:[121.9482,41.0449],childNum:3},geometry:{type:"Polygon",coordinates:["@@Vbĸx‚š@nnJVnXŽmb@V„XVxšL@`¯@mI¯Vƒ@U¦@VšV@nƒJ@V@LXx@VŤÔ„K‚LVx„W„knL@`˜b@nÈK@a„@VXĊ¤„nVK@aVU@UnU@ašyU£Uwm™mKXUšm@IÆJnLUL@J°IVKƒKU_@Wn@@I@yVU@aV_@¥Vm@_UKUV@aƒXkaVJVUƒUXW@_@WWIUlUIVm@IVW@IU@@VU@mƒUVVkJ›_l@aVa@UƒVƒwka@UރVwV@@UnK„LVU@UmWk@mLxWa@wóƒUVUIÇÆĉ¦¯¦¯xʟJ"],encodeOffsets:[[124392,41822]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/nei_meng_gu_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"1507",properties:{name:"呼伦贝尔市",cp:[120.8057,50.2185],childNum:13},geometry:{type:"Polygon",coordinates:["@@„m@Łkƒ™Žƒklƒôƒ@£kJ°ý™ɅķÑó¤ğLĉÅlÇğŁW¯¯›™ƥóÿlwkţÈéÝƛó™°ÞÅxV¤ĉĖWƒ¯lȭţυ̃ɱÿķƅˋğɱřÝţϙȍƧĊţ@¯kWKUKm¹Å@ķJU@ƧÑƧ„ō¥˹Ɔ@L@„Þ‚VLnš@VōČWJX¦@JŻbU@ţÞmVU@ȁýóbkWWLƒƒÅ™¯UWġkmóƒ±UŹôV¼ƽ¼ƒł̥ĖƽǬʉxĉŽŻȗKΕ̛ʵƨʟÞ˹»Ƨţ»Ǖō˷Ȍ±ȚʊĠUɾɜɨmÜ֞߼˸ƅȂ¯ǖKˢğÈÒǔnƾŎՂ@šĊbôô̐¼ƒ@ĊôĊŽÞĀ™xšĖƧL±ŽœŽ‚Uš°U„°ĬƒČ°ÜƒêɴȂVł°@ƒ„nxŎèƒbȄÞȌ΀ǸlŽ²IlxĊl²ÒmšôĖ™Èl„ĵºm„ÈêVþ„xɛČʉÇĵVmš„ÒƒÈɆôƐŰǀĊ°ÆǬĮƾb„yĊ@ĠšƒXǀċm»ôw°Ûk¥Çm¯ç™kkÇǫţǕéX_ĶWǖīŎaÆĵĸĊ@ȚȘ‚™ĊLĢĉ„VÆĉʊÇĕóaU¥šĉ°mkÅ°ġUĠřk°mƒÑČÿ˜ÛƒWĸ£ʠšÆxÈÞŎÞ»ʈ²ĊÇČalÒ°Ť±ĸz„ŽĊKȲm¤Ŏ@Ò°¼nyȂUźīǖƳÈē°@šÝĶƒ@ƒÈkl¥Ççkxk™›JXÇƒUÅ@˜£k»„óƿīÛ@lÅJl¥óý@¯ƽġƍÅan™ċ™°é¯¹"],encodeOffsets:[[128194,51014]]}},{type:"Feature",id:"1529",properties:{name:"阿拉善盟",cp:[102.019,40.1001],childNum:3},geometry:{type:"Polygon",coordinates:["@@™ƏnǟƨʫšŹɆÿ°¯ÆV²ˢ™żÿ@ÝÆŁȰ¯ȀƳĉó™™@ğkyš¹@īš›ƒwl£Źƒƒ¯Ŧé@™ÇÇxŋĉƩUUŃōL™Ç™ĵóÝnƒóç@™™ó@ġƒƱ„¥ƒç™WUçÆōƒ@é—çťK™çȭVһƽ̻aW¥ȁ£ʵNJǓƲɳޗǔlżÞmĠóĬȂɲȮ@ÈĢŮźÔnĶŻǠšŎȭœгŃċóȭţΗÆƑÞƧÅΫóȘǫɱȁġlÛkÇ°ȁÈnšõl¯ô„ÞɛÝkĢóWĊ„zÇɼʝ@ÇÈķlUČÅÜķnέƒǓKȮŎŎb°ĢǀŌ@ȼôĬmĠğŰōĖƧbЇƧōx@ķó£Ål±ĀƧīXÝġƃêĉK°Ýʇƅ@ΌʉżÅÒϱʈ@˺ƾ֛।࡬ţશóЈèʞUš¤Ґ_޸Ƒʠɽ̦ÝɜL׈ɛϜóȂJϚÈ@ǟͪaÞ»Ȯź"],encodeOffsets:[[107764,42750]]}},{type:"Feature",id:"1525",properties:{name:"锡林郭勒盟",cp:[115.6421,44.176],childNum:12},geometry:{type:"Polygon",coordinates:["@@ʶĬĊIȘƨƨŽ@ĬÛĢșŤĉĬƒĀóšU‚ÈŚÜènŦƐȤȄłϰUƨťƾÑ܆ğɲƜǔÈèʈƲĊƞƒšɆ¯̼V˺Ò˺ȂŤVĢêU܃x„Āˌ˘ƨ„Æ°ѢmÞżU¼ÆlŎ@ĊçŎnÈÒͪŎźƒĸU°lżwUb°°°Vš£ÞlĠĉĊLޏɆnźÞ„n¦ĊaȂīġŃ¯Iĉůl»kƒ„™Çý„¥Ŏ¯ƒén£ġљÝȭxƒÇ™@Åçķ»óƱŎ¥™çWÿmlóa£Çb™yVÅČÇV»ÝU¯™KĉýǕċţnġ¯»ÇōUm»ğƒÑ™wƏbċÇŎċwˋÈÛÿʉÑ°Łkw@óÇ»ĉw™¥VÑŹU™mW»ğğljVÿŤÅźī@ř¯ğnõƐ@ÞÅnŁVljóJƒwĊÑkĕÝw¯nk¥ŏaó¦ĉƒV¦Å`ğуÑÝ@mwn¯m±@óƒÛKˍƏǓ±UšÝ™a¯lƒōšșk„èƒĬގn@ŤġŰk°ċx@œĉ`Ƨĕ°@ţÒĉwmĉ@ƒƒnƒƒa„™¥ķnƒÞĉVóÆókĉŽķ@ÝkƧƧÛaƒ°Ç@ÝÈU˜óbݼ@„ÛÒV°™@V¼ˋL™ÞɅŤŹǠVÞȗŤÇĖŚōbȁƜ"],encodeOffsets:[[113817,44421]]}},{type:"Feature",id:"1506",properties:{name:"鄂尔多斯市",cp:[108.9734,39.2487],childNum:8},geometry:{type:"Polygon",coordinates:["@@ĶL²ĬVłƑkkl@Ȏ™ŘWńÈĬȗ¯™ºlz@ĠššĊôŦô„ÒĠ°kÞܚ™n@¤„UĸèĸbŌÈXŽĸLlÒĢxɲÆ¤ÈÛƾJÈÝ°UšÅĶ»²VW¯ĸJôšbk‚V@ôlbnĊyÈzVôašb@ĸ‚ÞUl°yǬ²Ǭm°ššk„±lbn°@È»˜JX„VŎÑÆJ@k„LšƒÆl²™Ġ²ʊůĊġ‚řóƛÞÅ@m„ƒmLUÿóĉƧ@™»L@„›`ČĸmšȗÑţů±ĉğl¯Ā™wǎƒçƧŤÛI@±ÜĉǓçō°Uwô™ǫůķƳř±bÅ£™ÓÇwnÑó@ȁƽ@™ƒÇƧĢón»ŏĕóĊ¯b„Å™™VȯÅImƒōKU„™LǓ±Ýxċ—ŋ˜V±Āȗ°™„Źl±šÛ@WÒȁŚŹНŚÅèŌô„¼°ȰɞȂVĊ"],encodeOffsets:[[109542,39983]]}},{type:"Feature",id:"1504",properties:{name:"赤峰市",cp:[118.6743,43.2642],childNum:10},geometry:{type:"Polygon",coordinates:["@@ɲŁĢljĊwƾōÞĭ°_ŎŃźȹƒUČÿl»¯ôķVÿǬƽ™ɅġÅÑǫ»̐ʟȣU™¯wVWݍÈġW»Þ¹m݃ɛŎÿŎōͩůV¹›ō™éċ™óŹÅVVĢǩʈ@Ėċ@ķšÛšV°¯xÇÅţ¥™»°Ûô™ĉʟ„¥WýČ¥™w‚灻±mnÅķ¥ˋVƒbUÒġ»ÅxğLƧ™ƒbWĖÅxš¦U°ÝVóŰlô²@š¥ÜÞÛô„V@²±`š¦™„™¯Ý@„ŽÅ„VÒō¼ôš™¤V²ŹĬÇĊƑƒţxƒç¯Lk»ʟlƽýmłÝÆƏ@mö°Ġ@ŚŹĬţÆUĀĠNJĠŽX¼šnźVUҚ¦Ċxȼ@ôlx¯łʊÒÜĀˌÇČxƍČÈƐašx„ÒĠŽn¼ŎVȐ‚¼Ģ°ŤmǖČĊþšLV°ÞŽU¼ċÈUƚzÈa‚¤ôbkŽ‚nXĀšè"],encodeOffsets:[[122232,46328]]}},{type:"Feature",id:"1508",properties:{name:"巴彦淖尔市",cp:[107.5562,41.3196],childNum:7},geometry:{type:"Polygon",coordinates:["@@²@Ζǀݴʶհĸ„˜ƒ¦Ķ™̒Uˌ¼ӾÇƾ¼̨UÞĉ˜Ƨ—éÝ»ƒĕĉ—ƐȍœōǪakó‚ó¯a@™ôţ™aV¯Þ¯°@²él¥ĵğťwōxó¯k±š—Vó@™aóbUÇyĉzmŽkaóŽU@l™aó‚ķIX°±Uĵ¼™Æ¯VÇÞƽIÇÜÅ£ɱŽġwkÑķKWŋÇķaķçƒV@£šmۙlÝğ¯ƒÑťóǿƴȯ°Åł@ÞŻĀˡš±ŽÅU¯°ɅĀ™źƧʬmǠšƐ"],encodeOffsets:[[107764,42750]]}},{type:"Feature",id:"1505",properties:{name:"通辽市",cp:[121.4758,43.9673],childNum:8},geometry:{type:"Polygon",coordinates:["@@ôƲĸ¼Æèš@„ÈȮwƾ»ʠĢ¥VÆ@²¥@»Ŏњ¯ĊJŤ£k»ÆÇX¯̼ōšī°aX£ôƒƾȁź¥„ƒ™aôŤ™ĢL°ƒĸ@Ȯ¼ÈÒʈŚôVXůÆaĠƛÈKƒķšĉôÿ@ğÈĉ™»ÇVn™ĉV›wXĠÝ°šČÿĸwVƒ™¯¯ǵ±™ĉ‚ǫ™ÅÅm»²Ż±ƽIm¥ţÈķ@¯šƧJV»ÞUÝç¯UġºU£ţŽóaÅÅlƒƒ™Ƨī¯K¯Þ݃ğL̑ȍƽ@ōŎōĀƑɜnÞݺX¼ÇĢގUX°xVšʠȤ̏Ǭ¼ÆÒɆĢšŽǫƾUĀóĸ°‚k¼ċĀƑVŹȺōń¯`ÝĮƽŎĉxġNJɱłō¦"],encodeOffsets:[[122097,46379]]}},{type:"Feature",id:"1509",properties:{name:"乌兰察布市",cp:[112.5769,41.77],childNum:11},geometry:{type:"Polygon",coordinates:["@@ʠǠÞĸɲȺƒÒȂƛŎaƙÈĕȘţUÝźǟɆţšÝˌKU»š@U¯ÜÑ@ƒÞ»ôaV—ÞÇÈ@„¯ÜbƨƨÞlĸ@ĊôlôÅĊU„Ýĸmš¦ƒŽ„bm„„„Ċ@n‚ĊxŤÑ@¯‚ƨĖĊ_@›Čwl¯™ƒȭL›Ý„»ƽ¯ķů„Ǔ@ÇǓbċ™ÅÅÆwÿĠÇU£óaƒ¥¯aŎğĠţkw°»¯ůlÝĵkǻݰɱƧǫaóôɱ»Çk¯ŃóƒʇŐŻ›ĉNJŻĢ„Ž¯ÒÈUl°ƒx°n„Ò™Ĭón™Ċğ°ÇŚĉ¦ʵVƒ°°ĬÛżÇJȁńʇʹó˂ƽŎ›Æţ¦"],encodeOffsets:[[112984,43763]]}},{type:"Feature",id:"1522",properties:{name:"兴安盟",cp:[121.3879,46.1426],childNum:6},geometry:{type:"Polygon",coordinates:["@@ÆXnlŎ°@LVLĠþœxĊUȮĊnU„ĠV@żaW¯XIŎġƒ¥Ý@K@w@K@I˺ŻŎ¦ƨƒƨÒŎIÆ@X@VºnX°lŎ@ƾĉˤƒȘǷȘÑÝݚÞbVţĸÿŤxÈĖƐŽêÇKnĸ¥ô@›ķÞUnÒl@UŚaƒīˋƒ¯ÑƧx@±kXřƐƏÛéV™ˋ»lō¯ĉ„ÅÇÓǫޗĖġV@ğ»›°ĵ„ÇÞǓ¼¯m˜ÛÅŃĉĠÇƾb²çƒ™šéż¯VƒƒğÞml»ōÑV痻V¯™¯šĕÆU¯y°k¯¯V»ôDŽѰa@Źk™ġKţšóŽšbƒ„Ź¦ƽȂó„W¤¯b™Ĭ̻ŎW°ÅÈl¼ţ¤ĉI™°ōÒ@¼±¦Å@UŽġ¦ʟŽƽ¼šÞĢÒm¤„êō°ƒ¦Èþƒšl„k¼ĊŰ°JĢńȁĬ„°ƒżn‚ÇbV„ݼ@¼óĸţ¤@°Ånšl"],encodeOffsets:[[122412,48482]]}},{type:"Feature",id:"1502",properties:{name:"包头市",cp:[110.3467,41.4899],childNum:5},geometry:{type:"Polygon",coordinates:["@@źxżĀǔÆǬVȘĀŤ¥œÅƾōôˁʈͳȂŃÈIÜŻ¯ī„¯ōm™¯ɱĖ¯ƒķÒÝIÝ»ÅV™ƒlÅôфġ™ğVmÞnnƒWçkW܁XƝÆwU»Șĕš£ĉÑ𱱚Åk™„ƒK@lÅIō҃UW‚—IǼ¯@m‚kaƒ²™l¯™ǫnǫ±¯zkŽÝVķUô™˜l²ô°ŎwŦxĶĠk¦±ê¯@Ý°U°šbóŤ@š°bôlôǩb›ŎƏȎĊ˜„ĖÞ¼˜ê—ƨÝĊ"],encodeOffsets:[[112017,43465]]}},{type:"Feature",id:"1501", +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",coordinates:["@@U¯ķó±ÇÛ¯™ķmbXb›@kb@Vĉxm@@UkKWXX`m@ƒ„@LULV`@L—@mU@lƒU™x™aÝVUX@VUL™x™VkLWVšš@J„nVLXVlŽUV@zl‚VL@V@b„„n@lU²WVLlLVbUŽVxUx@xǀL˜xôҜk‚K²ŽVa‚U@wXa@W™ÈĉUa@‚bÈk„m@¯"],encodeOffsets:[[109542,39938]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/qing_hai_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"6328",properties:{name:"海西蒙古族藏族自治州",cp:[94.9768,37.1118],childNum:7},geometry:{type:"MultiPolygon",coordinates:[["@@„V£°š@laœXô±źwš™ô@„Ulƒża܍n™Kƒw@U„aƒ™ša²L‚mÈLƚÈxlaUa„wÞmÜbÞUšnJ°a„kôƒ‚ÑkwÝVğwÇ@ÝkkV¯¥@ò„»„nŤ¥XImw@mVwša@Åw™mLkaW—wƒ¥l»kçƒó„»@ƒWÑĉŽğ@ĉ„™‚Ń„UwóřVómĵ»™™Ý@VǕ¯kšÝĊÅk™°ÓUklkU±šI„ÇÞkƒ±@šƽJƒ™@UġIk@W¦™VÑșÓÅnťKULnŽ¯X›ƒ@¯mUÛ@WřmóKknōbƒxÝ@ƒŽU@kw@ÿÇLţšÝUkšmwƒŽk™lċVŚU¦™ŽƒLkUWlÅÑ@aƒ@ÅѱUóġŹ¼ƒÈĉmŻ@@wkw™Kl¯U™ġ@—„lÇU™Ó¯_ƒ‚Waĉ²Åló¼VbknƒKǎÅ@ƧĢō°Ý@ğ„W™ÅxUUm@™‚ÝXۂW„ULUè¯@mbUaƒLƒbUWġxIUJWz™a¯b™y™@ōÈóLU`ÇXUl™UĉV¯n›mÛbǕLklƒUĉVƒšóaġ„ƏbġKţnkbÝmmnÝWȭȃŽÝXţWókUÇl¯U¯‚ġUɅĀ@°¯„„š¯„VÆnmJ@ĊķnóJUbÝXUlVškL@lVxnnmb@¤Vzš`ÞÞŤ@„VnÆJV„°b„UôJkzlŽkl@²óš@ÆÇ°kĖƒšÇbÛU@lmb™XV˜kzƒV™ŽɅĀXˢlń„ĬŹ@›éÅ@ĉńÆ°ğbUšlŽɜ_°‚@xŦ˜škbVbƒKĢ„ŤVŎŽ°@żÈźlĊ„ôKôb@nôxŦ„Æ@ôŽŎL@þÆb@šnnšWˌbÈx‚InaŎxlU@Ѳ±ƒğVUĢƒƨbɲ@Þ¥ôUUķWVô¯ĊWʶnôaŤˁ@£nmnIôŽǪK°xUXô@Ŧa°m‚kXÆÞVŎkĊ°ÞLȄôyVašIlwX°UVwĢÑÜKôw@nV@œm°nmŽn„Ü‚ɞ£VbmŽXnƒ°ÜÒ@xx@V‚b²UlbkxVnšJUnVVĊ°KȚm°nxÇnn¤±¦@ŽUXVV@„lV„„bmVVȁŽVxšÒ™°šIšbźaȃšbVwš@šƒVL„™ƾÑ@ƒŦô¯ĊkôÑ"],["@@„@šƒ„@n„òVœa‚w²bVxšxÜaČVô_ĊJšIVmšL„a°@Ŏ¥XlK@ƒšk„l„KVbUb˜@nUĢn‚aÈ@lmǬ»Ġ¯œn‚mnƒƨVy™Ñǖ™Ġ»ɲInŽ‚@@ÅĢƳ@¯°™ôV„KÈbVIÇ¥¯@Ýó„™@ÑnīWKšƒk™‚k@¥š™¯™Åa™Xƒ±VÅw@±Ġ¯@»™š™n™Wmw@ƒ™@¯ƒVƒUUWçƒKĉ„a±VkkƒV¯w™x@šUJ‚x@bknÇb™mÅ@Uw±U¯¦UŽ™Kmš¯I¯Žť¼ğĊ™@ǃŹÈ¯@Ý»ÇnˡJƒbÛèÇnƒ„ÅK¯„ġĠŹW¼Ålm„@¤n²ƒŽÝb@b„š¯lƒ¯@ƒšÅ¤W„™¼nV@x„„°@Vx„@lbUblbX¼W‚œšÇ²lšUŽ@¼ŽV¦@bÇlVxUbVxÞbVšœbm¦ƒVV„"]],encodeOffsets:[[[100452,39719]],[[91980,35742]]]}},{type:"Feature",id:"6327",properties:{name:"玉树藏族自治州",cp:[93.5925,33.9368],childNum:6},geometry:{type:"Polygon",coordinates:["@@ɆÿĢV°°VÈklVôŤXÞW„ȮÇÞXnmÞnlaŤmĢLƐaĢƒôb„™ĊU„VlkǖKÜaœn°mĊUšVVkÈWV_ôKŎǚ@šz°ašbXyVI‚JĢwVX„a„KVbna°@VçVKXƒÜÞWšn@VVÆwXšĠƒÞ@Ŏ¯ƨġÆ@ȍ„LlmUaô»ÆkĊ±Xb„°`šÔV‚kȘƒĢ@Všk°šLlx@xż@Ċn„Çź»ôĢ²VÆ҄@@bÆÒXklV„KšV¥Æ™ČUšk‚l„nxl™çƒ¥ċç@±m¥ƒwÅJƒ@™™™Vƒ„mÈIléÈa°U¥™™@kÞV‚K²ÑWƒ°w²Ñ‚K²ñšyƐ„ÝšVmw„»kkWĉ—JWUƒVÅwƒL™mÅ@@ƒmw„kn¥Vу»°™°@@»„¯„Lla„JônV‚UůƒU@W¯Umѯ¯k@WykU@¯„wV¥ƒkVwţƒk»šwWǜĉĶçšK„ƒÞ™ÇaĉbƒI™lUƒ@kwƒWƒXUƒ°w™±@UšKn£Wĉ—KWxƒkĕVƒšamwXw™@™„Wmnk@aƒVkƒ™bĉLƒl™Imm„wUÇ‚Wx™nÝJn@¥Æ™kwƒaXƒÜĉ™¯ÅV¯¤mkƒx¯kķܙ²VWôŹVUƒƒ@V£™¥@ƒ°wn@™m@¯@UbUôķŽmn@ÆÛ@ÇýVaUÇĊVƒ@Çlğ—¯xÝŤ™lVÈÈVƒx„ƒ¤Vx™„kK@™@ƒx@„kVƒĖġ¥kIWbXŽŎx@nƒxÅUW`ƒ_—@±ŽUa™LUxƒK¯„WbkVlb—bmŽƒLÛÆWIUwƒWkwÝV@kI›ŽéUb›UUk™V¯Km¯k@Umݐ¯m¯›m—L›Þĉ‚ÛUm™ġ£UxkKm°™Lw›šk@kšƒVm„ƒKVUk›@¯a¯Ģ™móKUU™x™ImlÅn™™ÇbXèVVU„°„@ŽšŽ@„‚xXnmš™ššŽ@¼ğ°@²ÆxU‚„²šWÆb°š™š@¦llš™„XLmĬ@҃šÞô°@ȦUJÇaƒLóU¯š@°ġƴ@Ɓ@mɱJğ¼ǕššÒUzƧ‚m„n›mğ°ǫ¼knÇ@bġmmV—@VaUaƒLƒk™l@„kLW‚ō¦¯@ƒb™KUn™JĉIó`ċUÛb™wUw±ax›bñUmƒƒ@™„ƒ@—bƒaƒbǏÅXm˜„ƒÝ„ÅôVbގ™bl„UšÞVޚ„U‚°„VUxƒ@U„V„@l`™¼nL@Ċ„LW„„¤kXķWġXUVVVķ„UbVb@°kVVxÈa‚@ȦĊbšaźJ„U@Ț„„˜Vœƒlš@XkôaWƒĢ™Þ@laĸUÆb²mÞLĠ™ÞÑôbšÒĊa„JVbm¦"],encodeOffsets:[[93285,37030]]}},{type:"Feature",id:"6326",properties:{name:"果洛藏族自治州",cp:[99.3823,34.0466],childNum:6},geometry:{type:"Polygon",coordinates:["@@ÞVŤ™ÈK@ĀlxV@„Þ@„wŎalmôLšnXÆÜ@nV‚°@œ„°WmVKŦLÆmȚԂҚUX¥l@ĢJVš@„ŽƾI@w™W°™™Ån¥›kÅÝVwôƒÈç„@lÑĊĕša„JnaÆLVw°kny°UnkÆVȍĊll¦„Vƾ@@™nUźƒÈǂIn°X„wÞKô¦VWV£„@£°ókċ±I™™am¯Va™»ČĉV¥°™@m„k„¥l@„Ċm@ašU™mwXƒ@wÆxšmĢ_„`VnÆbšKVw„@@ƒnUVğVmVVöIlŽl@@çÛmƒ£UDŽw°@VUƒ¯»m¯ƒJōĖÅLƒa@»ĉĢ±`U_k`ÇçšóƒkX™lK@ƒakÝރš£WċkÝ™kxƒJݯÅw™xķxmIÅx„@k±J@ýŋš›¤UœkŽmV™°ÅÝxkwmġƒnÝVU„š¦ƒŤlmšóXk¤™UKƒç™@mVkK@klīƒ£mš¯VUbƒW¯¼ċb¯ĵam¼mVX„m@k¤ÇX‚ÇbƒUƒ„¯J¯„¯È@˜™bVXVҙ¤V¼kxݚV„@l‚V—„WxÛ¦Wš¯šmKnlŽkŽ‚šU‚@nƑUĉ„Ý@ǺۄċUĉ¥™UƒÞŏ™z±òL±Ò¯xX„±ÒLÝU@lššV¦¯‚ÇbkêÇJƒnU„šš@š„‚ÆI„xn¦‚‚@²Č脦‚è"],encodeOffsets:[[99709,36130]]}},{type:"Feature",id:"6325",properties:{name:"海南藏族自治州",cp:[100.3711,35.9418],childNum:5},geometry:{type:"Polygon",coordinates:["@@VxƒŽńƒš@ĊĠŽĊXÒ°UƾĕÞm°£nb@‚@LUUW„Ûº@nlÆǬšĠ£ÞV°UXb‚VȂǵ„éƒ@kWanm°@™x„z„K°¯ĠVšƒVƒkw™Lnm°kÞxÆa„¥@‚wnĉƏ@™œ_l›š_VwšmĸèŤÅČU@™˜Wn@ÑmKU™nğƒK@ƒ°¯UÿV£nmšLl™„UƒUÛé±óókkmƒnƒakV@Ç°óÝXƒWəÞťIţxmm™VÛUVȂÓnWyȁĉkƒVš°WnkĊa„¥‚_œK°ÿWna@ƒmU¯wƒlÝIU¤UXó¥ÝLƒx¯WmJÇÈŹ„mV@šƽ@ƒUk¥ĉkċŽÅUml¯Vmz¯lUxÅKmbƒI™bĉĖk҃@Çèó„UxÆޜlm¦šÆ¯ššX@x™Ž@Ž„²ÝlƒÈ™JV²klVl¯ÔlšĉƙްlUǖÞ@ššĶ¼nŽUôôŚ"],encodeOffsets:[[101712,37632]]}},{type:"Feature",id:"6322",properties:{name:"海北藏族自治州",cp:[100.3711,37.9138],childNum:4},geometry:{type:"Polygon",coordinates:["@@ōmġxƽUm±Lǿþġԙ@kxmWƒb¯I¯‚mIUx@bƒbŹVǎƒkĵbƒlĉI¯¥ƒUšm@ƒÆ¯È@šašóšUlƒČ»@w›œ»›wXaƒƒó°ţç݄kUƒaV¥ÅbÝw¯lmnšKlxU„™„ğU¯°ƒLƒyšw¯@mnXb‚l„@ƒêȁǶUWa¯VÝUğ¤ǫ™kÅ@mܹXƒVV@K@ma¯¤ÝnƽĖ¯V@„ƒ¼„ôlèk¼„¦˜xXŽlbnKšÆx@Ž™bUx@nnxWJţ¦ƒmƒ¼ñ@Ž°¦lUÞlÈ@ĠxÞUlxÒó„ƒl¯bmI™ŽÝVÛaÝnƒxVbkbÇwřÇKn±K™b„šƒb@V„xšLmŽÛŽŻbk„ƒVó@™šŹxó²›Wkb™@¯U¤ƒźĊ@lUX„°lÆôU„ƒlLX‚aœV°wšxUb°xÜôÈKVkÈmlwškÈKšwšK™™VUŤĉŎ»„»„Il¥na°LV»²¯Üy@wĢƒ°ĸwlwĢw°±„_lVkš@°ƒbƒÆ¯zƒ‚„š„@l_„@Ģ±lŚVlUaރ„LVƒnKlnȏ°IllČa˜wÞÑ°x„UU™@wƒVkmĠLô»„KÞýôaÞ¥ôĀÞmƁ„™‚mUƒŎV¥Èl°²°a²¥V„@@w„amm@Ñn@Æ£żƒVƒĠ£@W„¯Þƒšl@š»@Uk@"],encodeOffsets:[[105087,37992]]}},{type:"Feature",id:"6323",properties:{name:"黄南藏族自治州",cp:[101.5686,35.1178],childNum:4},geometry:{type:"Polygon",coordinates:["@@ôl²ôÜê„VƒVkš™KmnU¤VĀ¯°@„„LmĠVšnLÈL@alb@al@n°Vš_XmWUÈamaVIn@n‚aV£œóVWƒ™U£°ašxÈ¥@™‚aĊwȹ@óša™ƒğbm@k„w@mƒaÆw@ƒ„In¯mmƒ@UkkWƒÑÅ@@kċÅçVkÝJÅkVykŹl¥@¯š™ĢU܃X¥òý—mmX™ÝÅlmU@£™Wly™XW»Åbƒl@aI›»k@klm@UxUUƒVƒ¼¯Xƒl™aUnķ‚ƒI@x™@¯„ƒK™„ĉUU`óšlČ¯ô@¤ƒÞJ„k°xVŽ„n@ŽmbXŽ¯Ā›L`ƒ¦ĉbml¯X™ŽUŽl„ȂĊXzm‚ȁÔU‚ÜVšUnnŤwŦJɚ݄XÞW¯ô@ÈlU„b„mln"],encodeOffsets:[[103984,36344]]}},{type:"Feature",id:"6321",properties:{name:"海东地区",cp:[102.3706,36.2988],childNum:6},geometry:{type:"Polygon",coordinates:["@@@҄bš¤ÆI°ôU¼š°UŽnnWx™š@b¯L@lUUWbXxWl„ƨnxVUllš„XVŽUŽnL@lȀý²KVnƾ‚ĢwV»ƒ@mÞ£nÆƒÞÑmL™ƒKUaVżĕƒWVk²ƒƒÆÝ@ƒXw°@„ô™@a°wóUUmIk™™aVmÞwmknyƒ¹VÿƧnŏm£X»˜™naV±„Ýw@ašb@aƒm¯„ĉVó¦kÝWKUU@WanU™b@ôǺĉxb@šÇ¦™w¯bV¤„šUX›ôU¤bmm@UJnbÇbXVWn™`¯Umk@@bka@bÇK"],encodeOffsets:[[104108,37030]]}},{type:"Feature",id:"6301",properties:{name:"西宁市",cp:[101.4038,36.8207],childNum:4},geometry:{type:"Polygon",coordinates:["@@@kmKVUƒWk™VkUmwƒƧXkWwXaVV@k°K@aš™XwmmV™¯V»¯óÅJ™£ƒamŽ—X@šċVţÆķç™nUx™`kœ›`@šÅmĊx@Žƒ¦U¦„blVރŤèô¯„„Wbœx›¼œŽ@xċ¼k„™V™ô™bÇ@Å°@„™n„V°¦ĊJ„kĶa„lȍźU„a@aVwnJ°°J„anXlwš@ĢÓ"],encodeOffsets:[[104356,38042]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/shang_hai_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"310230",properties:{name:"崇明县",cp:[121.5637,31.5383],childNum:1},geometry:{type:"Polygon",coordinates:["@@uŏu»GPIV±ÐɃŜ{\\qJmC[W\\t„¾ÕjÕp‡nα|ěÔe`²„ †nZzZ~V|B^IpUbU†{bs\\a\\OvQ’Kªs†Mň£RAhQĤ‹lA`GĂA@ĥWĝO“"],encodeOffsets:[[124908,32105]]}},{type:"Feature",id:"310119",properties:{name:"南汇区",cp:[121.8755,30.954],childNum:1},geometry:{type:"Polygon",coordinates:["@@`y”ĉNǕDwǏ»ƒÖLxCdJ`HB@LBTD@CPFXANC@@PGBKNECCBB@EBFHEDDDSNKAUNBDMNqf[HcDCCcF…@EFGLEBa@ACoCCDDD@LGHD@DJFBBJED@BGAEGGFKIGDBDLBAD@FHBEF@RFDMLE@SGANFFJBANPH@@E@FJjRIACDMDOEKLFD@DbDAJI@AP@BGHFBCBGDCC@DCA@CECGH@FKCEHFJGBFDIHACEDNJDCVFBDCRKRLDLITB@CjNJI^DBCfNVDHDFKHAFGDIICDWBIF@@CFAjFJNJBBHD@CJ@AEFJ@@DH@BFBCPDBMFEQGDIFCNDHIP@HDABFACBJFHEBSZC@DP@@JDBƤ~"],encodeOffsets:[[124854,31907]]}},{type:"Feature",id:"310120",properties:{name:"奉贤区",cp:[121.5747,30.8475],childNum:1},geometry:{type:"Polygon",coordinates:["@@~T~JjZdDbLXDLCB_J@@FHFZJJIAGH@HGR@BENBLID@@LFCDF\\FpDBDb@FAHKFE†@dEDDdC\\GreNMACVMLBTMCCFCEGFAA@DAFDLMHA@OD@BMEWDOC@AS@KGAI_DcKw„ÕísƝ‘åĆctKbMBQ@EGEBEJ@@MBKL@BJB@FIBGKE@ABG@@FMFCPL@AjCD@ZOFCJIDICIlKJHNGJALH@@FPDCTJDGDBNCn"],encodeOffsets:[[124274,31722]]}},{type:"Feature",id:"310115",properties:{name:"浦东新区",cp:[121.6928,31.2561],childNum:1},geometry:{type:"Polygon",coordinates:["@@EN@JJLNHjLJNR^GRYVBNZJRBV@PDvbLNDN@LGNER@nCNQNuT_TIVFV\\Z\\XnDrI|[Ʉś²ÏJUHOƣ}CA@IO@@CYDATGFIEDAEBBAGCO@GJMCEDCJRHEFANOCADAEG@@CI@FE@BDIC@AGIAIMiEEB@DE@AJCXJDCJEHGBELGCUCeMAD]CIJiM@DSAKJKCLQDQACUECDMIFCBDJGECHAEIWCK@GLMCCGEACNKCEJG@MMBMC@@CIJUINT@JAJSTEPZZCP"],encodeOffsets:[[124383,31915]]}},{type:"Feature",id:"310116",properties:{name:"金山区",cp:[121.2657,30.8112],childNum:1},geometry:{type:"Polygon",coordinates:["@@L@BIHFN@@EE@@EFBDGDAADVDD@@EF@CA@IIsRE@GDAF@BF@CV@|FBCHBLCNHAFCADBMDCFZXHILBVEEQA@MWFARJJ@DCX@@TEFBLHAAERE@AJABRPBNK\\BrJ\\VHGND@CNADKDADQjGAGNC@GJ@FCFFHC@JF@@dLBDSFADHVG\\DTEPDDHJALIJkJDJCDIPE@YDCBiK@DONE@EH@BAF@HLJA@EIA@ALKNA@@FIFAFHR@NALadsæąyQY@ƒA±DʼnXUVI^BF@FFF@HBJEDFFGFEBSRkVEXGHFBMFIVW@GAEEFOIAIPKABGWEKFSCQLQBSEIBC\\FdBLRR@JGACFDDEF@AWB@LJJYNABBA@CUEGPaO_AIE@MYMFIGAEFECHSAAKAO\\[JEDB@E@MMA@@AGBKMGDFFCDDFEDFJF@NPBAFLHFH@EDDHBADDC@DDCDHHCDDFDABDAD@FEFOBCJ[D@HEDDNJBDDHABJIBBvGLBJAH"],encodeOffsets:[[123901,31695]]}},{type:"Feature",id:"310118",properties:{name:"青浦区",cp:[121.1751,31.1909],childNum:1},geometry:{type:"Polygon",coordinates:["@@RUNKdOFDJCbRFMLAHPLDN@JGL@@APBWYCKN@TU@SHGCEJIDIJKVIZVNM`iNY@CIE@CA@KBOEGEUFCCSADEIEFCDDDIDDHC@CKIeDCG@IG@DHWFEEGCH@@GO@@O]CNpeEQDBFME[JC]DGF@CKOA@QSB@GB@@GW@@ED@AQIJIAAFE@@DO@CFI@KNG@CDACAFEGKGBEGBDCCAIFCCLIECFI@MBCLDHGNAHSF@DMB@EEKBA@@C]DEICFG@ADBHGFKCDAKKHKD@@FHGAANGEEFCHKCECBCKG@ADKCNE\\[A[I@@mGBDQQEO@BCE@AI[AML@JGACLOAFKEMM@EQKC@CUCBCCBCHEA@FF@@FM@GEAJK@GNF@EXPH@FD@M^@HIADJCFDBER@DK@@DE@CAKFOCCBDHIBCNSB@GFC@GQEEOWFICGDUAEJIDBTAHJHEB@DIF@NE@H|HBDBEH@DKBAHEF@HEEUB@FGFGCCCE@AHOB@NH@PRLVNNFBX@RC€PbAvMtBfH@DJF@ELBFA@EH@HNED@FFB@HLC@CJ@@DJ@PIRf@HE@CFF@GPHD@DKE@FFBEFFD@DEFCA@DD@IjCRFBAHFDKD@HF@@PM@H@BlbDJDBFEF@DLXB@HCD@@IFCBIFEJD@FDC@FBALLF@PAACJERACAJCBD@EL@JD"],encodeOffsets:[[124061,32028]]}},{type:"Feature",id:"310117",properties:{name:"松江区",cp:[121.1984,31.0268],childNum:1},geometry:{type:"Polygon",coordinates:["@@@DLDFRN@FNELPBDKHB@INK\\BBJF@ADP@RFCRHA@nJ@B\\[\\MFLDBCH@DLDADFGLEDFFMHBBGH@EC@GLLLCBLDHEAGBCH@DEFJ^C@DB@LAFFA@CNE@GTMBGHKCAD@NEJFDKJDDJEDBCDHAAFLHFHBEBDDCH@LMJ@DEP@@CF@BEJBJIBRC@@FX@@HA@@HTA@RPBDLE@CHD^\\INFAERCfFMo^D@PP@@HG@HDFFXECGH@@JDHfCLJ@DGDCCCJCCEDJFCFTBDDVEHFPFLAB@NBFCFKFC@CHIACNOHWHCAAFIDD@CDAGEI@ACFMF@R@R_@GQED@EGFEQEDE_IAHKAEXCQUOQCUDEN@ZI\\DDmAMHCICDSOC@EG@BKHIGMIBCGOCSF[CUHCGEBCTKA@cE@@IGDEEEDI@@HMDBHiHCRCBCLMB@DMCGH[UqI[AMLOAAQIB@BQFBFGBAKFE@SW@CDI@QIEBNXB@FRUFKAGJYWDENCCADBBEMGKDGAAD{EU@@DAEE@CB@HQFJt@JDBE@@FC@"],encodeOffsets:[[123933,31687]]}},{type:"Feature",id:"310114",properties:{name:"嘉定区",cp:[121.2437,31.3625],childNum:1},geometry:{type:"Polygon",coordinates:["@@F@LI@IDKJADKIEJICADGACFECCJ@HKCAFOHAJI@aCBEE@ICAEB[GFGCKL@FGEIFADMLCAEJM@ELQECEIG@BE^QKKLQCA@EHBIGQ[GEHOMGGDHKH@JOECFCjCBEFDNCACMBCILGTABDLEEOEIG@GFIMM@CGKFBFCDE@@GEAGEEACIcGaHMFITIHDN[AKF@FS@OA@BK@IHM@KCGOKBENaQIDECcPMLQVFHFB@BFBKLGD@FAJOVGIACQ@A`LPCB@JEF@RU@ANS@@RCL\\HIFpRBFRBBDKLLDADJDGBFDABHBEDNF@DGBBBADKDAHC@\\JJFBDEH[DEFDH\\LX@XLBLbT@DNJLDCEL@VJABJNDHB@HBHYFBAA@GNFB@@AFB@AFABFLFBHFCL@HJBAFBLC@DN@HN"],encodeOffsets:[[124213,32254]]}},{type:"Feature",id:"310113",properties:{name:"宝山区",cp:[121.4346,31.4051],childNum:1},geometry:{type:"Polygon",coordinates:["@@ˆmÖoÖiƒ½[s[YEUJU`SCIEBCCWJY_LIICDWU@@FaBCJIB[ICH[@@CDKEE@MK@@IMCAEBCH@AMFI@SMGEFGB@FK@BHCAIFJNQD@FEBDFMBKGACG@ECWH@@CDDTOEEBGEK@GC@EE@GPHFR\\JHGA@FDBKRLL]RAFH@FJFDKR@FINBFKDCNEBFJEHK@DLEH\\HFADB@JFFDA@bIJGBEPDBGLI@DDEFBDCHDBIJJFCLIBCL@JKJE@ADHDBHJ@HIBBDFHBBAEIJ@BJFAVL¢ˆ"],encodeOffsets:[[124300,32302]]}},{type:"Feature",id:"310112",properties:{name:"闵行区",cp:[121.4992,31.0838],childNum:1},geometry:{type:"Polygon",coordinates:["@@T@@ELE\\BCMJGJSNEbGdHDJFBJAFIEIFCEWG@@gMENSFCVJFAxR~B@IH@AIiI@GE@FGEAFQPDRiV[\\DFSGMHAXHDOMCJCDETBBNVJJI@DD@ANNNH@FILDDMFBDHNDHKL@XDFGLD@EHGFD@DDB@CDDHCDAEAHG@ABOJ@BIaC@CECLKPFNCDCJBiQEIF@@@OGBMIAEEBMTHF@NKEC@QFEGA@EBCKAACHCLJHEFHHB@AFCAIEACIC@HG@KCCDC[ECEED@KC@KJMAAFQ@GHG@BHIJYIGE@EI@A`KDWCaKcCiY}I}S[CYJM@CFDVPRRVWDFžLBBG`JCFRFEFFHC@RF@HQ`Q@E@ENBDJ@HFCB@DCCEJBBGDGXMPBDGJ@DEDELEDMA@DJF@DMZ_jMNYUUJILCJIJDFGH@TSVM@DLXZ"],encodeOffsets:[[124165,32010]]}},{type:"Feature",id:"310110",properties:{name:"杨浦区",cp:[121.528,31.2966],childNum:1},geometry:{type:"Polygon",coordinates:["@@V@CXJDKJZ`XIDDFADJvSRMDM@mFQHM@KCMKMuaOCU@BDAJSX@HKJGD@PNJCJWAGT@R"],encodeOffsets:[[124402,32064]]}},{type:"Feature",id:"310107",properties:{name:"普陀区",cp:[121.3879,31.2602],childNum:1},geometry:{type:"Polygon",coordinates:["@@F@@FHDL@HFFAPFCSDC@@XGFDH@BDLHNACEFA@ERCIMJEDBAGL@@EHAFENHHJ\\ONQBQCIBC[MKACKI@GGGH@I_G@CW@[DMHCDIBMTDHN@JNHEH@FJFPKFACSBKHDJNABDMDECAFiDEDFDIPG@GLHCNH"],encodeOffsets:[[124248,32045]]}},{type:"Feature",id:"310104",properties:{name:"徐汇区",cp:[121.4333,31.1607],childNum:1},geometry:{type:"Polygon",coordinates:["@@RADL\\NCPHFfLJaJ@FWLGMGIK@IFMDOYYFOTSBI@IMSAMSACFIDNDCPWGGBHNET[CU\\QjOCERFBEHF@@HjJBJG@@J"],encodeOffsets:[[124327,31941]]}},{type:"Feature",id:"310105",properties:{name:"长宁区",cp:[121.3852,31.2115],childNum:1},geometry:{type:"Polygon",coordinates:["@@HFFB@HF@DCAELENSJADCNG\\CX@@D`H@JHGHHJ@BINBFUGEDO[MCKQB}AwQEBUIEDMTNF@hH@FXEDFJEJIB"],encodeOffsets:[[124250,31987]]}},{type:"Feature",id:"310108",properties:{name:"闸北区",cp:[121.4511,31.2794],childNum:1},geometry:{type:"Polygon",coordinates:["@@CSG@BQGODUPWTOBQAAFMECKBGEMFKEOHADDJARMR[PGI@TEJBNG@ADBFND@JL@@NFFCL@D\\@DG\\JJADI"],encodeOffsets:[[124385,32068]]}},{type:"Feature",id:"310109",properties:{name:"虹口区",cp:[121.4882,31.2788],childNum:1},geometry:{type:"Polygon",coordinates:["@@bA@E@QHSXBDIMI@OHCLI@GTWBIACQAYIOFGCENBBARSPOXCVHPARH@DT"],encodeOffsets:[[124385,32068]]}},{type:"Feature",id:"310101",properties:{name:"黄浦区",cp:[121.4868,31.219],childNum:1},geometry:{type:"Polygon",coordinates:["@@NEHFLAFDHDPEAMZUHQQ]IMKJG@EPERABHBGRUCCNGV"],encodeOffsets:[[124379,31992]]}},{type:"Feature",id:"310103",properties:{name:"卢湾区",cp:[121.4758,31.2074],childNum:1},geometry:{type:"Polygon",coordinates:["@@VDHQGABAFQFOH@LIiKKHEXI@IbAFZB"],encodeOffsets:[[124385,31974]]}},{type:"Feature",id:"310106",properties:{name:"静安区",cp:[121.4484,31.2286],childNum:1},geometry:{type:"Polygon",coordinates:["@@DLLB\\NPGLFHUDMYABEeKEVMAAJ"],encodeOffsets:[[124343,31979]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/shan_dong_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"3706",properties:{name:"烟台市",cp:[120.7397,37.5128],childNum:9},geometry:{type:"Polygon",coordinates:["@@ŤLšLllVń²è°xżĢĠÆl҄šŤbœ„V¤ĊXnŽlĢVĊ„Òš„È°ĊŰÞè˜L„±@џn»VUźċ²»ÆkôVɆkĊŃ²kŤVVwUUVmUaƒ@KkU@ƒmUmmk@UwUkmW@UVIXa@ƒmw@a™KULƒaƒx@Uk@UbWU@yULmK¯@kXƒVUwm@@JUUknWKUVƒLUbU@™wWykIƒa@w@mUI@ašUVynIWa„k„@@W„bl@@knmƒK@wnIl™°Kna@V¥ğ@ġUķ»™¥@UōJƒX¯¤k@™wmI¯‚k@mwƒak@@šlX@bUJ@VƒbknWxkLkxlŽšLVlkLmŽšb@bU@ƒbU@VbU`Vb@n„L@Žmb—U@˜VnUVmnU@mm™@kIUWVIUK›VkkUJUnmL@VmLUaVWaXamU@™™U@KUUmVƒU—JƒU™VÇwğn™mƒ@mXĉV@l¯xnô"],encodeOffsets:[[122446,38042]]}},{type:"Feature",id:"3713",properties:{name:"临沂市",cp:[118.3118,35.2936],childNum:10},geometry:{type:"Polygon",coordinates:["@@˜bXlƒl@zlV@lXXmŽkbVVlš„U@Vn@@Vmb@XšKšVX„WJ@XXl@„‚ŽÈbVLšUl`„@XXV@VVUxVbUxVbš¦„@‚WnXVJ@bnVUzl@„°Æx„U„KlU@mUUnUlUVWVUnVV@XX°V@Všll@Vk„aXVl@Ux@bmbXLlKlb@b@bUJn@@„„b@n°x°K@an@@UlLVKVbXb@bVVnK°LVa@UVa@™Xw‚KVxnLšU°@naV@UWUkWƒULmV—wÝKUUla@aó_@mƒK@aUU@ƒWUkwVm@aVI°W„@@IUw@a±¯@¥kUVUm@a‚wkw™@ƒK@kVKk@maXalI@alL„WXblaVLVU„V@LnKš@„l@w˜aXašLlnUl„LšmV@n°J@_VmnIVym£UKmI@WnIVm@anUVmÇ_kġIÅWUXÇm@U@ݯÅ@ƒ™@naWƒ™IVW@IkK@klKn@naWIƒmk@ƒaƒbkKkLWn™WkLWmk_ƒ@UaVƒUKmLUw@mn£WwUmU™ƒaóV@UkUm@UKULUwmJUX@WW@XҙzVblJXŽWXk@UVWK—X‚¤UL@xU@ƒ@ƒVUaU@@XmVkLmWkXUyÝLmKXnVŽ@n@l™x@bWLnVVn™`knULmxUl„„WLXŽVb@VƒK@z¯x¯¼Wx™KUn@bk@ƒlƒVVVz"],encodeOffsets:[[120241,36119]]}},{type:"Feature",id:"3707",properties:{name:"潍坊市",cp:[119.0918,36.524],childNum:9},geometry:{type:"Polygon",coordinates:["@@l@@UšK@Ž@L@bX@@VlL@JƒLUVnX@`ÜXn`V²mJ@bU@@n„b@l°xnnĸVƚ°@„ƒĊ£Þ@lWnÑnkʶJmó°w@kk»V@»ƒ¥k@V@kw@wVm„a˜Å„mšaô£ŎƒXI@mln„Kla@mV_UKƒ@kUkw@alW™IU»™mƒ—@WUIl±UUÅU›bkJƒ@a@wUKUaVIÆmXIWaka@m@Ul£XKVw@ƒUIƒJUkmJ™ƒVkU@a„ƒWK—ImVƒ@UxmL@bX`WXU@U`ÇkUak@@°UblXk‚mLUKmL@VULóƒƒVk@@Vlbn@Ub@ċaUJUbƒIUlVLUVVbVKX„VlVXU@mb¯@™VmKUwLWx@šUb@VUb¯KmLUU@aWaUaULkK@Vm@@b¯L¯w@mƒa@ƒm@UUU@U¦lJUXƒVƒmkb@nm„XVWŽkb™IVxUV@VUbWLXVƒLW`Ux@nk@Vn@x@VkJ@œV`mXkŽ@V„xV@lVššI@VULš˜VU„IV`°bVXXx„V@VWVnL@xV„Ub"],encodeOffsets:[[121332,37840]]}},{type:"Feature",id:"3702",properties:{name:"青岛市",cp:[120.4651,36.3373],childNum:6},geometry:{type:"Polygon",coordinates:["@@„@nU˜JXLƒ„@blVU‚š„nIVl„IVJ@„UxWLk¤@V@nlbXbWJÅnUJVbVL@x@b„ŽlIœaÆVVVk²VJ@X„˜šnV¼šJkX@blxlV„@VLU`@nkbƒLkm@nWJō„ó¤™bƒn—ƃbUn@xlxU@l@„¦@¼UŽl¼ĊUnW„@šnĠmÈxšU„V˜I„VnUVV@LšV@šnVWbXb‚UVbnK@UnKVmVIllœUVLUJVXlJš@nnV@nmVUUm@—˜Vna@ƒK@mUaV_UaV@„aV@@a™anlKUk™KklwlKXwlm„a@UVI@akW@™l@„bnxl@°nJšxl@°£„WŎIUÑn»lašmô¹Ŏ¥VaUUkƒmkġWɱIUUŹ`›@kk@ĉƨřV¥_Ç@™Ĭƒ¤ÝL¯m¯£ƽóķwUW±ī¯kōaĉĕ™kğmó°ƒbW@UKkLUaƒVmz@V@ŽUxVn"],encodeOffsets:[[122389,36580]]}},{type:"Feature",id:"3717",properties:{name:"菏泽市",cp:[115.6201,35.2057],childNum:9},geometry:{type:"Polygon",coordinates:["@@@¥šIVUÈmÞ»@UlU@Un@VW@UVmkk@aVUUKVÝ@UVknK@UV@VVnIVƒ@wnƒmwmKXaWaXI@UV@Vy²blkVKkam™U@kb@Um@VmUkmƒKmkXKWwkU@Ulƒ@UnK@UVUUm‚KXwšUVL„w‚K„U„@@Wl@@wUkV¥—@@I@W@_V@VWUw@UUa@aƒaWa—@@_mKUw™l¯amzmV—@WK™nU@kƒWLķaUKbÝVmV@UWÇbÛ@ƒX™°UbW@XŽm„Vlk²UJUbmLÇxÅWUzl‚¯Ll„@VkK™XUbWJ@bU@¯@™ƒkbƒLmKka™„@l™_WšXºVbUz@J‚n²V@¤lX„Ž„nV°šLn`WbXLôVlKVUšxXn˜lXLlU@bVV@„XJWLUVnVV@„„@n‚l„°nn‚V„KÈbVXÆJU°VnXV„kV@@xVL„@šWlb"],encodeOffsets:[[118654,36726]]}},{type:"Feature",id:"3708",properties:{name:"济宁市",cp:[116.8286,35.3375],childNum:11},geometry:{type:"Polygon",coordinates:["@@nam_nKlVLXa„Il`š_@KVVXI@m@w‚ƒ„@@k@Kšnô@n`VbV@@L„L@KVVn@VX@‚VL„Jl„š@VUUƒU@Uam@Uk„wšKWaXamkJmIUVUÈblašUnV@kVKl@@lXL°kVJ@VÈnVJUX@V‚LXl@xVLnU‚@VK„V@a„IUaV@„bĊU„x„K‚kVJXUlV„ƒ„UVašI@WUI@KlUnw„mWk@WXIWƒ™U™L@Wna@Um@@UƒVk™UUlanWW@kkU@y„kWk—aWVUlÝbUU@kƒJUIU@@ƒ™JmaókƒLKǃUUkKWLk@WbkUUaƒbmKn¯°¥V@XwV@VanaVaU_@Wlk@WÈ@VUÈVVۂm„aklKȯlLVUX@lK@aX@@kV@VmV@VwnJV_UWUwƒX™am@kW@wVUkKVIUUVmU@UV@IVK@aUL@aƒV@Lm„UKmx@ŽômLkUWJ@šnXmlUxUL@Vkn›VUšU„@V™L™`Ub±LkV@kUKÇbÛ@ƒU™Wó_mJƒ@Wk@@Xƒ@ƒVLƒxUK™VWxLVnUV@VmL@Vk„@VlVXxWLnl‚Ln„VlUnn@@VlaV@nšlbULkl±aUzU@@VWJXbWbnLnxm„@xU„mJUUU@@VmLUl@VUÞVLUV@bllUn@VUXm@@VkV@VݼÇnUV™J@¦nnƒlnVlL@„Þb°KVV"],encodeOffsets:[[118834,36844]]}},{type:"Feature",id:"3714",properties:{name:"德州市",cp:[116.6858,37.2107],childNum:11},geometry:{type:"Polygon",coordinates:["@@„¤@VmbVXnVVbVJššX@Žll@z„lVInl@„@bVxUbĠ‚l@Èbla„IšxXVWb@L™@n‚ULWVXXšWWLnL@`@LUVVL@lVn„JšU@UUk‚a„™nš‚Vôô„b°¼V‚ސXš˜‚œIÜbČa˜bôW„XÞWÈzÆmnLVJ°ÈnlV²lbnW@™@UƒUV™šmnwmkkKWƒkla@mVIUKUa™aUwmn™JU@@amIk@@bVlkX@mmUklUUƒƒa@_UaUUƒV@wƒw™WkXmW@I@WUaÝU@UXaWUU@UUVW@UUUWUn¥nUVa@m@k@alU@wk™LWa@UUm@@wnmU™wla@anKn_@alK@ݙ_ƒ@@WUUUmlkaƒIƒyU@UwU_Wa¯yU_mWUwkImm@InWWUk@@UVWV—kW¯U@VƒL@b¯b@l±¦@šVV@lUbV„@škxVnUšl¼XV@b@lV@nIWxnbƒ‚™@UU™LƒxÅxm¯ƒaUƒ™wU@mUÅVÝKULm@bmKUXó@"],encodeOffsets:[[118542,37801]]}},{type:"Feature",id:"3716",properties:{name:"滨州市",cp:[117.8174,37.4963],childNum:7},geometry:{type:"Polygon",coordinates:["@@Vb@`„bV„kVlnV@nlWUk@al@nJ@bV@šInmVxšbVbVLUJ@nkb‚lX„lLnlmx™nUš„V@V@šmXn˜lbĸ@nnVx‚b@lnXV@UJ@nVxšxnxVbÆVn¯ƒĕ‚@@wÈçUÇlķVIœb‚@„Çmk@¥k@UkUK@aWakUóJW_UW@wkkWK@U@Kš@XUƒƒUkmUUalKXala@U@kkWlkÈl@kšV„mVIVmU_‚a„ƒƒwnwVW@wƒwUƒ@wU£ƒwkJWIyUI±bk‚VUJ@nmV™Ukl„Xmx@lnbW„kVƒUkLWŽƒxkKUUmUkb™J±—LÇxUKmkUmkkW™™a„mUaVkšJÆ_²KĠ@U„W@w„U‚¥nUWwK@aÝUkÅVaVK@akLWƒƒƒ¯I@bnbVx¯JW„ñšWbUL@šƒŽnV@VmbkUUV@IÇak@@bWak@WJUœJWL@bXV@„‚@„V„Jlb@zUlUŽUImšnbV‚mz@°UV@V™bV@@V@L@xLmKUnmJVX„J@VkLW@UVUL@b"],encodeOffsets:[[120083,38442]]}},{type:"Feature",id:"3715",properties:{name:"聊城市",cp:[115.9167,36.4032],childNum:8},geometry:{type:"Polygon",coordinates:["@@ô@VWnL‚an@VKÞLÆUnVV@šxV„„bn°Æw„wšKVVš@„maXwmJU@@k@aWUk»V™Umlw@™UƒVa@kUU@™²¥@k°a@a„K@U›ƒU@mmm@ów—ѱ¥¯@@w™Kmw—I›¥kU¯UmakJmIUaƒVkKUkm@VUUa™Uƒ@UaƒKUK¯@™w™UVŽUIUKVw™k™¥™wƒbVŽ@xn„@lWnXxlL@`„XlJX¦l°XxW¦@¦Ul™n@Ž™@@Um@@VXVmx@¯bllUnUJ@VULVn@b„xV‚VL@b„„VlnVVblV„ÈnVlIVJœLô„lJ@xl²„"],encodeOffsets:[[118542,37801]]}},{type:"Feature",id:"3705",properties:{name:"东营市",cp:[118.7073,37.5513],childNum:5},geometry:{type:"Polygon",coordinates:["@@ͬUǪlô@°Uœw°ōĠ¯š»Ģ炻XÇ@w™wƑa™ÇƒkwVƑ¯@řķUmm¯w@kƒa@mV@@anIU±m_ÛW@_mWVU„K@IkK@UW@@a@K@™L@Vk@±U@UV@lm@mUU@kLm„„xV¤@xV„„x@xUXmx„xƒ„bV`UnUJƒn™U@lÇkkllX@l@VkbWbkLVbnVVl„„WV™@@L@VXLll@xVXX`ôIlVXb@bVLVll@@¦nlƒÈ@›aUJkĸVÈÇè@x"],encodeOffsets:[[121005,39066]]}},{type:"Feature",id:"3701",properties:{name:"济南市",cp:[117.1582,36.8701],childNum:5},geometry:{type:"Polygon",coordinates:["@@²¦˜Òôxn@nn‚@V‚œ„°VlXU˜UX@Vl@XVmX@JnnlJVxnXV`°zXbV`VxV@„z„JlbkŽVnVV@X„@š`@ÞkL@bm`mL@bkbšxnVm@xn@VV‚@XbšKl@xkV@b@l@nUbmVm¦XVVV@VUXVVV@XVWb@VÞVVb@X@JnXlWšX„x@x„UVV@aVKVUX@lK@UƒIUWnIVmnL‚K@w@K@UU@ša@UVU@¯nyUman™VJVVk@ykaƒIƒU@@ƒWU@aXK‚IV›XIl@Xb@al@Èb@JVUlVna@UmU„@™VKXaò™Xƒ°IUwma@aU@UU@wVW@фw@a™I±`kbƒUkw™UmJ@UkmÇUUkmKknUVƒ@mJUkaWkƒa@KmKkUƒLmyXa¯_@WmImmbƒLmUkVUbUVƒJ™bƒUkkWJkUƒl™IUm™k™Lƒ›„lK@knaVmkI@mWaƒLUK™UU@@VmLUVLWK@UUUƒWUkkVmx@„Vl™¦"],encodeOffsets:[[119014,37041]]}},{type:"Feature",id:"3709",properties:{name:"泰安市",cp:[117.0264,36.0516],childNum:5},geometry:{type:"Polygon",coordinates:["@@n¼šŽW„nxšL@x°@š¥Uk@ƒnwlUVl„XVV@VXL‚KVUnK@UV@šVVL„KXb@nlJUnmb@lkLƒ‚„œšKšlVnšJ„klVXIll„Vša„IVUValUnV„K‚annnJ@X°`Wbnz„KlVnL‚Ž@L„bXl‚bVlnI„@VUU@UmVƒ@U@Uš¥@VmV@@_Ua@m°@@ƒ„kmUUm@UVmn@nX‚@@a„anJVUVL„mlIVJn@nkVLVa@KVmVLXVVLš@@U°bn@VaV@@K@aVkœbWaXUVymU@aUImWXƒ@™¥UaVwUaVwUUU@WWƒ@k_™VUKÇa@ƒƒnmxkV@LVJ@X™JUbƒVƒ„kUWVUIlƒLƒwĉVƒaU@VbƒJ@bƒUUL@mVUK@wWkK@UVWUIÇm@UUI¯lWK@kk@UL@lmU™VkbÇaUVVnJlIn‚WbXb™LƒxVln@VbV@V„UV™@kƒƒIUK@UWm@UU@LƒK@KU@Uam_ó@™m@L@lƒ@„@x@nWJUU@L™`k_ƒJWbUKkmLn`mb"],encodeOffsets:[[118834,36844]]}},{type:"Feature",id:"3710",properties:{name:"威海市",cp:[121.9482,37.1393],childNum:4},geometry:{type:"Polygon",coordinates:["@@VbUnVVUxĊ¼š¼ô@Þф¯‚WǬLŎUÆW„¹Uǃō¯ÑƒÝkţ™™ţóġ™óL™ł̥U™wm¥kÝmkkKóbÝ@U¦@‚mb¯LkšmJ@x„Lmn@lk@ƒa@Xƒ@ƒlXbmJUz™V@bVJ@n@x„blJXzšxV@Va„KVUXLlmVV@In@Vx„UlW°@nLVK@zXVVal@@V„w„bVKšL@bnx@„WbUJ@VnXVlVxl@nnnV@„lV@L„‚"],encodeOffsets:[[124842,38312]]}},{type:"Feature",id:"3711",properties:{name:"日照市",cp:[119.2786,35.5023],childNum:3},geometry:{type:"Polygon",coordinates:["@@UaVUUKVk„JVaVIČb@Vam@ka@Ul@„Uô„VK@UnKVLnKlkWVa@¯l@VbÈlV_V@XWW_@anKVwUmVw@@Uny„UVblKVLX@„aô¯ó¥mÛĊÿÈ¥š™Þ¹lUīƒ¯Kĉ¼ʟbÇV™U™ŽUŽ™XmakJUnmV@bUnmJ@XnJVLn¤UzmJUn@`¯ImŽU@™nƒKVkkm™KWb—b@xƒk™@mL@KƒUUVUKkbWaƒXkK@bkJWbnbl@UL@l„Lš@lxx@b‚nUVlV@¦²°@bVx@Jƒ@¯XUJ@bUnlxVŽ„X@‚VV@b„L@nô`@bkbVVÞL˜xnU"],encodeOffsets:[[121883,36895]]}},{type:"Feature",id:"3703",properties:{name:"淄博市",cp:[118.0371,36.6064],childNum:4},geometry:{type:"Polygon",coordinates:["@@nƒlKV@nVn@@kVU‚@²VVaUƒ@wmKXU@UƒUWwUW¯aU_ƒJUV™—VK@U™JU™@kUƒw@UlnWU_@›lI@U@wUml@@mVwX_„KWUXKVa@UVUUwšJlaXWUnƒ@mla„n„UVWkIV¥V@VVVI@a@akakLWKna@aVwk@WUƒbUlk@™k@U¯UWWU@mUUVUXkVmVVV@nkVƒLƒVÅwƒ¯k@WVXb›aUl@bV@@b@xkVVXVxkJ@nk@@ŽVLUlVb‚VXUVVUzV‚™LVbUbV„VWVkLmškJ@n±@UxU„VVkV@bƒx@ÒUX@xVVV@°J„„X„lK@bULUblÆÞV@b‚LXxmV¦ƒV@xƒXVŽğ@±LÅ`™IUlVbƒnšbXšllVnnlVLÈw˜K²ŽšIlanVVVlL„wXlK„VlUXƒma@knwƒWlkšVnU@mVIUl²aVJ‚zXJlI"],encodeOffsets:[[121129,37891]]}},{type:"Feature",id:"3704",properties:{name:"枣庄市",cp:[117.323,34.8926],childNum:2},geometry:{type:"Polygon",coordinates:["@@‚yUU„U„kl@@aVmšLXw°»°w@y„L@UUaWXKƒƒVknwVKlmš_UmmUXK@ašw@k@mUWmUL@ƒ@™@£@KƒbÝV@akw™aULmƒƒbUK™LUU@lm@—°mL@nUJVxVXU`mIUxU@UnU@@lW@@bkLW@UVkKÇ°kLlŽƒbnUÜÇUUVÇ@@Xkl@XV`UbmbUbU@WxU@¯¦m°nL„aVblVXal@XKlLVVȄ‚L„KôlnbšI@„V@VJ„I@lVVÞaVkXU"],encodeOffsets:[[120241,36119]]}},{type:"Feature",id:"3712",properties:{name:"莱芜市",cp:[117.6526,36.2714],childNum:1},geometry:{type:"Polygon",coordinates:["@@lmnLVlÈVln@VnIšVlx„Vla²_šJlUUUVƒVw²@@mlIn™lKXU‚UUƒVaUašKUVyUUWVUUaVkUK@l@@mlIUwUWlU@w@aU@@LU@Ubm@¯a@V™@UKWUUKUn@LUbUKmlm@UIkJƒnUKUVmIƒb@b@mWm@Un@VVnnVƒl@„¯@@nVb@`U@Un@Ž™¦@V@VU„VnV@"],encodeOffsets:[[120173,37334]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/shan_xi_1_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"6108",properties:{name:"榆林市",cp:[109.8743,38.205],childNum:12},geometry:{type:"Polygon",coordinates:["@@™ýVƒnIW»ƒW@»kUÇL—݃U¯¥ÇIUWWїUWwX¯mƒ@»n@ÜÈķô™@a±kȱƒw„ÑmwçċmU»ÆkkVyIm™ĉÿ@ƒÝ¹ƒWnwÇVš™Åaƒzmmĉ¦ó™kVmx™xU¼VškVm_UlVlk„°IV‚kmJa›¦k™™LmmV@XmKnšlUô›VXbƒbƒ@UaÇLğܙ™Åwƒ£mKnmċwÅ@UkƒbmaVƒƒƒn@m¯aU™Jm_k˜@kWXyl@@kÅamw™LU™Þ™ƒ™mWÅzUKƒš™Uk±@™b@nnK‚bX¤mzVšŽVxÇn„‚¯„@ÒknWƒƒVUbkķÈÑWkk@Va™™U@„mUkbƒÝÅ@Ý¥ÇbkĬ™XV`kLǍVmalUUa™nV±nwmkƒJ@Inƒ°KVw¯UnÅ@¥™ƒ™U±bUU˜±œmWbÛKWnUm`UƒVK@bmnœm‚Èż@V„L@xƒxmš„Ť°nŽ@VmK™²VlšlKk„ô@„êÜV@VXLlmš¦UššV°Ș¯²ÿ@¥š@ƁĊ˜²IšmĶnnb°b„KVƒĸLl„Þ@UȮš™Ü°IVƒÞÝސlŽœx@ŽķĀWŽ„Ux„èƐ@š°ŽXnšlĊĖ°m„nƒšV„²V°ÒƦ„aބ„˜@zll@bÞĀšlš¼nKĊ¼óȂb²±šIǪÒ¯ĖV@„lxnVlk„JlaXwŌĉ„„@VnŽššlÆĕ„UÆLœèŌŤôxȚlUœ@šxlaUċĕXm„IWmnkšVVƒ„VW_@aÈWUUmk@ƒ¯çVm»™±W¯n¥V™mkXw±ÇVwƒ"],encodeOffsets:[[113592,39645]]}},{type:"Feature",id:"6106",properties:{name:"延安市",cp:[109.1052,36.4252],childNum:13},geometry:{type:"Polygon",coordinates:["@@@kkÇmIšmUwVkUƒƒU²WmšVkm@m`mIĢĕUƒVa@™mXƒƒÿVVkyUýšĕ@l_UmnƒW„KVkţ™™¥™aƒwğ@™@aôƒ„ƒWa„kUmƒa¯¯™a±£kx™mmxUwÝ@xmU™b¯K™wó„Ý@kmm¹Ub@lklVbmnnVUV@x›UknƧJUX@ŽƒLÇWkw™LķƧÅwWJk„ƒLkþĉxWz™JUnǚkš@Ɛk¼ÜÔÈKšè@°lșÆk¦l„n@l¼@l¯L™°UU™VÇ°ƒ¹—`m¼mXk‚™bUaƒV@U¯x@¦™Ç™„UUmlmUVm„nnmlkw™@@šƒ¦Å‚ÇLmx¯Iklš„@¦mÆ°VUx¯Lm„@J„InlmxU²šmVbkV‚bUnȎlKU_šWlīÈaÞ¦Æ@„ÞlanV@ƒšVšUbl@XlÇÒĸlŽVa„UX„lm@Ñ°ƒƒÈmUw‚U™nyW£amL@mša²@lšV„™VLÆynX„šÝšVššKnxÆb@lk@WzXŽ@ll—n`šIV‚°b@n„m„„‚Unb„aVlÆ@ČxmnnL„¤ÆxššĠÛÈKVb„@„aWaœU‚ókVm™nL@W‚UnnšKlšœ¥‚bnIlU¯JlƒUkVkn`lUU™V»šwnwlUôšĊ¥nn„yÆb"],encodeOffsets:[[113074,37862]]}},{type:"Feature",id:"6107",properties:{name:"汉中市",cp:[106.886,33.0139],childNum:11},geometry:{type:"Polygon",coordinates:["@@lKnb@n„lWb°bkxĸwVb@ł„nlŽ„ƒĊ¥šL@XŽl™ÈƒVblÈK‚b„akVwôml²`‚nœ@‚nVKœl˜k²xŎƒ°¦VU„JĊw@çnWçރVkUóÛ@¥kwš™šUmƒX¯WšÑkƒ@UymIUwlUn¥‚mUk²a°¯V»@™ÝVș„ÝċÅÅVl»@l@a°±@_kammÅb™a@ƒƒm@ż™KknõĠ—@mšƒ„¯LÅw›‚—LVxmb@¼kV™@mw¯wVakKW»X±¼¯Vkxƒb„¼WŽ@nx@x±bóakbƒ@ÝmU™@ķÓÛL™kƒVUm™k¯¤ÝLUlÝ@Ýz™š„x@x™°™™™bƒmƒX¯aUJW¯—k@bÇWƒwÛwWxƒ@XWlb@Žƒ„VŽÈUlwšLnl°VlUô¦œU°¤VšUxVXUxlbkVVlƒI„°„ÅVlU°m@k„ÇU¯xUlƒLUlVL@b™°ĠInĠ°ÈnK‚„@xÞa²n‚aUyšXUKVkšWô¼Èa‚z°JXUVÇV_„JVƒšz@Žnb"],encodeOffsets:[[109137,34392]]}},{type:"Feature",id:"6109",properties:{name:"安康市",cp:[109.1162,32.7722],childNum:10},geometry:{type:"Polygon",coordinates:["@@„bĊaƨèšwôô„¼šb°ašXVƒÞVUÞ@‚aXƒm¥kImx¯¯ƒV@anU@UÇéğL@ƒ¯¥V£mƒ@ÝÈb„K‚™„X°wČÿ˜ƒ„b@xÈblxȯĊ„„mÆUVƒ„nÈ@ƨÜLĢ¥ƒŹnƒ°Vnn˜K„aô_ȃšwU‚aXmnW‚¯kl›LXƒÇ™ō¦ÝaÅVmbğUn¥±wÅéVƒan¥ƒ„U„»°am¥„£ƒÝ@ƒ„wVw™¥nU„уUmmVwmķIÅaóVWxkblb@ból@œğÒĉ¤ċXƒ˜¯X™xk„Ç@óÆÅx@š™xķ_kmݎǣkblb@`¯²@bk‚‚@k¼ÆUČƃÞǚÞU@šU¼¯°±bVlnm¦kVVxnJVz@‚l„™ÒXW°n„™V™šlx@¦ôÜVUl݄Xèm@è"],encodeOffsets:[[110644,34521]]}},{type:"Feature",id:"6110",properties:{name:"商洛市",cp:[109.8083,33.761],childNum:7},geometry:{type:"Polygon",coordinates:["@@²nl‚ôbš„°aVwnKÞIš`°wšXôw°VĊ°@ŽÅš„ÞÆV„zÞK@xšŽ@a‚LŚ@b@ŽnLlƒ@šln„mnLVw„a„bVƒ‚VnbU¼„Vƒ°„bl„šbÈ@ĶŦb˜@nÇ@amIyUI@ĠVmôƒU™ƒVwkwlanJ„¯lwó¥@an°Jš_„‚@š™nóƒó@£l¥UwmašÑ@ƒUm±V_ƒJ—£›J—UW¥¯@ƒ_k¯¼mUƒVUè¯b@wmL™»ğVmağI¯¤ċIUW™XƒKĵ¦ķaƒJUb™IƒlUóVmk@WÅÅÇ@ƒmU„ÅVƒnĉƒÇ°kwÇa@wƒa—„ċĀ¯xƒWšƒLÇa@Þn„U¤°¦@„ĠKÈê@VmV@b„U°°nwlJn¦W„bÝ@VŽ"],encodeOffsets:[[111454,34628]]}},{type:"Feature",id:"6103",properties:{name:"宝鸡市",cp:[107.1826,34.3433],childNum:10},geometry:{type:"Polygon",coordinates:["@@@ƒ„£@›°Išb@¯°ynŹƒaUƒlƒU£„Umšĵĉ@@ylUÞ@@£kWU¯WaU£¯ÇV¥ƒ@kb¯wƒn™¥ÇkUÇnUƒ@¯±›kULm›@m±_kŽónUxlŽƒbaÇLkŽUaDŽkšW@™Kĉ¦ƒ„kƒm@ŁUaķxlw¯aXaƒk@mmakL@šmšÛŽ@¼m„@l„XV`ƒn™KUš°°@²š¤UÈ@VxmôƒxKl„VV²aVw„Xla„Vlx@UVnŽÇnk°ƒVVL™lkI™šƒJÇk¯V@šknƘn@lznmlVkzVŽ„VVxš@Ux„z@x±¼VxxU„l‚kb˜@„¼Čk˜VXlĠkôV²w‚LUKlwœJ@a‚IV¥Þƒn¯Ün„‚„@nk˜l²kÆ@š°„aVbnI@™š‚Ťn"],encodeOffsets:[[110408,35815]]}},{type:"Feature",id:"6105",properties:{name:"渭南市",cp:[109.7864,35.0299],childNum:11},geometry:{type:"Polygon",coordinates:["@@@ÈôL„xUŽ°„Þ@mŽÈnl¤nUôL‚wX`@ÞÝL™ŽUšmLô„„ŽôbVbnºlnÞ@ôƒšx°LšanV‚wÞ@Vxnwšnlw²¤šb°°„bVnƒlXbƒ„ó„@bš‚Ġ@„xšbš¦ŤšV™Xġ„£W¥ƽɽƒó@ýóƝÝ»„£X™mƅšĊkUƒ„@™™šó„kťaĵŽÇ@™akƒƒa„¯ƒUV»maUU„ƒaƒbUxmKƒnkm@™k„mK@ƒxó@¯n¯KǦ@ôÅèlxkx°nƒƾ¯KU¯WķL@VÝIUb™yWbX¼Ç°"],encodeOffsets:[[111589,35657]]}},{type:"Feature",id:"6104",properties:{name:"咸阳市",cp:[108.4131,34.8706],childNum:14},geometry:{type:"Polygon",coordinates:["@@šIXyĊwlý„KlƒXIVaķƒ™»a›£„¯aVU@a™‚wÈō‚ašL²»‚VœUln°WȯW»XašzVaÞJ@Uƒ»@¯Ýbğwly@£kÑţ±Wу@ka™IUƒƒnƒ@¯ƒómţU™b™U¯lÇIÝb@¤Ý@kV@zĊ@™ĶnƒVV¤k„V„„bmź¯z@°™a¯J@œƒ¤@„„bUx™bƒ„@`™xUÔ±ºVXœW‚„UnUJ‚LĢ¯ÈKlblmÈXŎ°šU„°LšŽlkÞKš@Èxl_°ĶUÒkblš"],encodeOffsets:[[111229,36394]]}},{type:"Feature",id:"6101",properties:{name:"西安市",cp:[109.1162,34.2004],childNum:5},geometry:{type:"Polygon",coordinates:["@@°²@‚„mVVÈÈlš¦„m°xla„@U¦°ÈV¤XbV°lXÞaÈJ°kšVšaŤVôn°„„@„mV„šJlb„@XÒŤ²lÒ@¤kzĠxÞa@°„¼ĸK°XV‚°L„ƽ¯mlwkwÆç@óÈ¥°L°mô@„w@aƙK@b™@wÝLƒyÅUƒÝƙ@ĉ¯¯Uóx™W¯x™_ÝJmLUx¯b™ƒóak±mÝUU„™W¯b™aƒ»óó™xƧçĉbƒaĉxƒIUV¯¥ō„±w—l"],encodeOffsets:[[110206,34532]]}},{type:"Feature",id:"6102",properties:{name:"铜川市",cp:[109.0393,35.1947],childNum:2},geometry:{type:"Polygon",coordinates:["@@ÆxĸƨšKlxÈX„K@VWƨIlmœV@wVUmUnmUalk@kVaUaóaƒóƒnKV™šÞK@ÝW_xóKmVk£ÇmnÝ@¯ƒVƒwóK@ǯXkm›VU±¼™KbÇŎx‚š@bUV°bƒœ¤‚bš¼ĸ„Ub"],encodeOffsets:[[111477,36192]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/shan_xi_2_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"1409",properties:{name:"忻州市",cp:[112.4561,38.8971],childNum:14},geometry:{type:"Polygon",coordinates:["@@Vx@lnbn¦WlnnUšmš°š²VšV‚VVVnUn„ºlz@l„„@Jƒ@kXWVXl@Lƒa@„ƒKUL„ŽlbnKlLnK‚LnKÆXn°šbVV@bUVl°Un@LnaVJUbW@UX²l‚@ČwlVVIšWnkÆa°„„anV‚Kn°™UW¯@™aVUVk@Un@„aV@ValwUanmWU„k@WVUUanaVwnLVl°@nk@mVU@UVK@w„LVKVU@ƒ„K@UUKVUV@@bnL„a‚V„aôšlIXmlKX_°KVV@bVV„@šzV`kblI„V„Ul‚šL@bnV@V„Ċll„„VlIXW@k„a‚U²blKšVnIlJ„albXXlWVn°JnšnL@l@XlJlaX@„X˜W²@l_VmnKšU„blU@mnkVK„¯@U@ƒma@kX¥VƒmakkƒLƒa@aƒ@WIUUVXWWnk@a°a@kkm@kUUmJm@WUUUIk`m@V—kaWWkX™KmƒXk¯ƒ@WKƒLkak@±bƒw@ƒaƒa@akaƒ@ma¯@ƒL—KÇÅkKWbkmġ™±ÅUƒLUK™VVkƒm¯LUVVbƒ„UwUW¯bm„ƒULƒxWJ—@ƒklmkUm@@KnwVkVK@akwƒ@@a¯bƒKkn›VUI™b¯mmbk@UbmKUL@xUUƒ@klmLUŽlVXI‚VVVUVUœU`mLXVWbXnW`Ų°xmŽxU@mĉƒƒwU@mbU@UƒmbkVW¦kJ™@ƒX@`¯Im@UlUVVnb@bWJXnmbƒJUU™UUaƒ@UamIkaƒxƒ@@x@b"], +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ÞDŽ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™ŽU@Wbk@ƒxk@WX¯VۙƒWÝbÝUkVUU@alI@a@akLWa™m@U¯UUmÇL@K@aU@¯VUkƒKmX@`@œkJ@nV‚Ub@lbVÆXVW„ULU`VbkLUV@XWl@bXJ˜@VbV@Vl"],encodeOffsets:[[115335,41209]]}},{type:"Feature",id:"1404",properties:{name:"长治市",cp:[112.8625,36.4746],childNum:12},geometry:{type:"Polygon",coordinates:["@@Uk™Lky@I‚JVa@mÞaWšy@_W@_WƒXVlUVwš@nw°K@m„UƒVaƒmVkU@mmmnLVUmKXa™U@IlKVUnK@UmWkX@WV_Vƒ@akU@a„KWIXyƒIUVmUn™Ua@WaXUVKVmkUWVkUƒLU@@VƒbƒKbƒIUmƒ@mbVL—x›WUUkn±V¯wƒbÅJUbmLkbmKÅKƒbVnUbƒV™KUb™KUbmLKmƒb™aƒKkUm@UŽnn‚VnxUVlUxl¼ƒk¯JUbU@Vbk@WšU@UVóI@`¯nWxkLƒK@nk`Wn@lUnƒVnm‚ƒXU`@mb@lkV@„VnklVVUblz@`nbWnnJ„IVJ@XUVV„UV@lÆXšxnKlL@mšaȍll„I„ašLV`„UlVV@@b@XJWUb@˜™n@L„@lJn@@UVKVaœUlnlJXb„k˜Wn_@mn@VkVK@a°@XklKVUUwVWUšƒĊƚ@šU²@@blLVWn@@bVa„XllVnnaVmša@¯VLnan@‚šmVm@knUVJ"],encodeOffsets:[[116269,37637]]}},{type:"Feature",id:"1406",properties:{name:"朔州市",cp:[113.0713,39.6991],childNum:5},geometry:{type:"Polygon",coordinates:["@@XXWVXVWnnlnn@èƼ@„„xlš„ŽV„nblšššVŽÈUVl‚š@„blnœL܃ĊmUkU@Ua‚—@WI@aXk@WVUlKUaV_VKXƒWUUÅka@VaU@mlI@›@_nW„LVl°UV@@b@LÈKVn°V@VšnXblK@b@bkJ@bVVlUÞVÞa„Xܚ°UXWl@„wl@XaV@šÝa@aa@IVyƍ@aƒƒXUWknwna@w‚JXw°ƒWÈ¥kI@W@kmKm™¯IUmkXWWkaƒbkImJ™UkL±aVƒb@lWXkJƒUkƒĉkƒ@UmU@a™KkƒVƒUkJlaU_™yƒ@UU@aUU¯LW`kLWnkJó™ƒbUƒbmK@aU@UVVL@VƒL@„UVULƒK@xUL@VUV@nml¯@UkmKUxmbVbUV@XƒlXVmnVbkxUbU@ƒbm@@VUlUVšb°@VX¯šm‚"],encodeOffsets:[[114615,40562]]}},{type:"Feature",id:"1405",properties:{name:"晋城市",cp:[112.7856,35.6342],childNum:6},geometry:{type:"Polygon",coordinates:["@@lV„Lšb„an‚LnKVašLVašL„UVaUm„aÆLnLlanKVaÆI„a°x²UlmVVœX˜wUKna„@Vn„J‚a„L„a@UV@@alUkKVKnkmmVwUk„w@ƒ™@kxWUXƒW@@mƒk@aUa@a¯aƒLkKmwkUm@kL@K@aWIXmƒVƒXƒWkUVakL@UVKƒw@aUK@UUKmLU@¯n™KUwVƒUIWJUWmka™@UXƒJƒk@UkmW@kLWKVƒx@bmI@VUaVU@a¯@UUmVKmX@±`kÝKVxUL±akL@V™bƒLkKmVƒ@XWVUbƒVXb@lm@@lW@@xk„lVUbnnmbUšlJ@„@L„@@V„b@‚WXš„UlkxVV@„šwn@ÜmnLlVkzƒ`UbmL@Vš@XL˜m„VnIÞ@VU°x@VnL˜x„V@LU°"],encodeOffsets:[[115223,36895]]}},{type:"Feature",id:"1401",properties:{name:"太原市",cp:[112.3352,37.9413],childNum:5},geometry:{type:"Polygon",coordinates:["@@„@VV@wVKnLVal@na°nšaVJœUlm„L°a@b„@lx@bULUlmx@Ln@lVkn„l˜@XI„w‚K„Vnƒ°aVXVx„ƒUaVU°K„nUlšUVL„KÆVš²Ģ‚lnXalLÈƘL„KUaVkUanmWU™a@WwkUWU¯y¯Ñ@anIl@@aVU„m„I„ymUƒLUUVakaU@@LmJkw±LKmVUI@W¯™VaU_l™kbW@kK@mƒUkaVƒmVaU™ƒIVmalk™W@wnIVy@klkWUU›VI@ƒƒUƒVkam@knU@mmmK@bblVUX@VkLV`@n±KU„ULƒ‚UnVVńUbÇKmV—Imbm@k¼ó@Ul™b@VmV@bXmaƒK@›UUxkV‚V@„xW„UxVnkVVJ@XnJ@XlV²LƂVbnL@lš@°"],encodeOffsets:[[114503,39134]]}},{type:"Feature",id:"1403",properties:{name:"阳泉市",cp:[113.4778,38.0951],childNum:3},geometry:{type:"Polygon",coordinates:["@@°@nb„@lb@b„b„b‚@„x²al@lb„KXU@m‚kUWkkmUUƒVwV@XUW@™naVklKXblKnL‚ƒnLVanImaXKlL„ašV@U@KUKW„alƒXK@£WKXUV@VU„ƒUUVW„_V™@W@@K„@šƒUƒƒIWmXUmƒULƒn™JkImmÝaUbLƒK@UƒWk@mn™Uƒ@kVWb@Ubmx@lƒzUxƒ`U„ULml@„XWlƒ@UV@nk@U‚Vb@X™Jm™@@Vknƒyk@ƒzƒJƒnUV@bk@mJ@b°Ò°zXVlVXx‚@šbXVmnVbUlVb"],encodeOffsets:[[115864,39336]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/si_chuan_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"5133",properties:{name:"甘孜藏族自治州",cp:[99.9207,31.0803],childNum:18},geometry:{type:"Polygon",coordinates:["@@ƒaXamƒ¯wm@±°wUwV@UaVw²Kš™„U@UƒU„¥‚a„ƒ@£Þ™ôx‚Knkm™X¥™IUƒÝUwlk°V„@ƒÈ™‚KUwlkUyV¹„mšx²Xll„ÑW»š„l„w°UŎ„nƒ„„˜Jœƒl¯°V@wôIVÇn™nUllšLšVǚLô¼XW£@±„@¥k_ÇJƒkUéƒkšƒƒwXa@ƒšLlw²™Vx„b‚mš¼ÈxlLȃ„VWÞn¯mǙÑUÝlÛkwlĉmƒULmwUJ™ç@wkm@ÑlUX™ƒÑôġƒVa™ƒUф¯@wķÓkbV„mnU@@y¯IķKƒV@¹šaƒé@k„mÞU°¥@a¯@anKlblU„¥@óğç@Çw@wkla„çݱk¯±@ğÝUÛmݯwƒ@kb±¯akXWÜkXUÆÇUš¤X_Ɛw„V@¤ƒXU‚ƒbUƒŽƒIUlÇUkŽġ@™aXČmlUlèUV@„mVk¦Vxš@¦±š¯ƒƒ¯¯anlWš¯nƒƒÅw@w°KVak£m@klƒKknÇU™»óKšīlaUaV£@™™¯@ƙU™VƒÛÝÇXƒÇl—ÓlŹ„»WUğJ¯£mx™Lĵô›ºX„VlUll²bl„„lŽƒxónn°ÝšU¼mJUš¯nƒƒƒV@êĉ°Uĸ™w™@mƒ@¯kmXamѯaUwÝKU¥„mÅn¥Wmn™ƒ¹n±ƑƆÇôXê±NJnšƒ‚UôlĖkȂVÒ¯¼VnƒȮ¯ĀnƆ˜Ģ@Žk°V°¯ĢVlkšVxm¼X²™Ŏ@ŽVxknWÜ°U‚¯n™Æݜ@`„ôݲÒƒ‚Çzn‚mX@x„è°K°Å„UČĬóĖ݄ƒ˜ó¼ÅêƒÒƒbmšk@V„Ž˜„@ҁl@nĉܛê—x@Ėml՛J¯¦óxȭ°ÝmŽ¯Lĵè›Ā@Ɓ„l°żƒ‚šX@xmŽkV@z@‚„°blŽnÞ°J@bn@ƼUVƒUóŽóLƒ°X°ÝLƒxUn„°ƒĬƒn@lnL@ŽÆ@šn„KÆxnUnV˜InĬmÆnxŎ¼ĊIĢóÞ@ĊƒƨbUƒ‚mV¥lkƒ‚wnL„mšÅÆ¥Xƒ˜wU@w‚wUÞ™@alUUŚU™Vkkm°aU—°Ó°w°U„ƒ„b°aš²K˜¯œĕ˜@ÈbޏĊaš»„XVm°In„‚Ĭk¼Vb„ašJšôš£VĊan™‚k„ů™™nƒÜU@anKnĮ‚bÈmƎš»nI‚霣Ġ™"],encodeOffsets:[[103073,33295]]}},{type:"Feature",id:"5132",properties:{name:"阿坝藏族羌族自治州",cp:[102.4805,32.4536],childNum:13},geometry:{type:"Polygon",coordinates:["@@l@@þ²I@lƒ„VL°wnJ°Uĸ™Ŏè„Ilw„V°¤nĮ™¤Ý„lè„L@„ƒ„@x„l™è²ôĊ_ĊġVÈôJżīlbXšÆÈVŽkxÇVƒ„n°„¦Üb@è@nn@@°šUÈ¥WDŽ_Uala¯¯UǙkƒ»„mVwk»˜k²°VxlL@¤œ_@x‚`ȍ‚Ėöb˜š@l²alX„a@bnK°¦VK@nnWmx@nUnl@@lƒlĉk°l°UXkmW@Unš`k„ÇL„ŽW„ÛÈVxšVVlVk@l„IXb@ylXÈW˜Į„WŤzœy@šmIƒŽ²šJ‚š@nŽ°@V„„J°a„Å@ƒŎkVǚk™aUw„KVw™™Vƒ„@nkm™@±ôkô™ĊJš¼šInÑm±nIššÞ‚XȃĊxĊUÈbÜyÈ£Vkw@kVUV™„m@ša„»ÜbÈmƒUXwÝxƒUn¥@°ġ™Å‚aœJVk™aW¯Û@W¥—UŏĶ™@¯kUƒŃ@ašI@mmanwސ‚W@œ™mw°»Uřk¹±W„xVx¯¦U°ƒzţW™w@°ÇVÑk¯@„y°aš£š@šmšnl¼„ašÝÝakwUƒ±aĉImlĵn@ƒm@kkVƒ¯Ñm™ĸ™°x„l™œ@˜ƒXVÞmlÛݙĉUÅ¥mwÅ¥VaUw›™XġċaVůÛŹlwU¯U™ó±™xÛV±¯¯n¯mċƒLmnĊm‚™@™_kJWaXmwUƒĉK™»™@mwX݃UDŽkKÇw™»nƒaUw±škx™K@„Wb„x™„„lVê„lÈIl`@¦ƒŽ@²X¤Wó»™KUșŽ™KkkmVmšUÈóJ@x¯Uk°›„—Iƒƒm„ōƒ¯Vƒxƒk™ŽX¼ƒÒkk±W™wƒnUºVzklVxLǚ@„ƒŽ¯UklVxސV„šJW¦nšmlLówݚ@¤ƒ„bƒ¦„V@VƒV™š±LUxVbU@Vx¯x@²n‚°xn„Wb„b"],encodeOffsets:[[103073,33295]]}},{type:"Feature",id:"5134",properties:{name:"凉山彝族自治州",cp:[101.9641,27.6746],childNum:17},geometry:{type:"Polygon",coordinates:["@@ĶóšKnw°¤ĠIXVƒ¼kź˜Ôk‚„ÈWŽÞȄÜUVšÅš°@šš‚@U¤Vbkb™ĬôLš¼ÈVlm„Llkn@l¤Ub¯L@xÆx„„°mX™mk°b„°°„²™@¥‚™Uwl¥nU@ƒVUkçVnkWċšbĢ@lÈVVk„J„‚V„aV„W@£ƒUƏxW`™£ÈVVÅlWXÛlW°b²la„@°xnÞVÜĠÞ²@l°Þ²ƒèkblŽ@xÈx@Ġènal£nU‚Dz@‚ÞK„nn¤@¼˜°U¼„nV‚šXU‚šbn™ĠUVbUlVš°LX„@lV„èÜUnK@_ƒyXVyUwmIU»Vƒ„kÇ¥šÿkkV¯m±n@ƒn¯ÜanVVƄz@Ž‚bœwÜb„m@wša@kƒmk»@™a@VUUó„w˜@nb°mš„XŽmnVbގVôanwšJ‚ak£lw„˜šLšÅnÝ@wl¥IÇӃ@U™™Lƒ¼kVǃÅó¯kVmmw@ƒn_‚Vn»°LÅ»@éÇçŹīVÇÝ@ÝğU™ƒaVݙ™š¯ķlŭġlƒ@óÞۂċ@¯nkUӄ—m±™IVġUwóKUn±¯—K›w»ƒKݐV„nl@„óxUwţ›£ĉƒUmŗÇ݃K™„ÝUlmKƒ£UVŽ@ÞȎW¦„Ò@Ĭšnny‚@nÒmœVŽ—¼@°Vbl@VlnUUwl™°a@„œ„@llnk°lbnKWĀnŽU„VxUŽ‚²Å‚m¦Û›ÇŚƒaU„Vbš@¦m`móX™Umm™xÅ@±Þn虲™U¯»m™ƒV—m@wƒU@wݚÝmLƒa@„™VÇUk„l°¯„VlkVƒ¦UšmxƒaULUèVx@„kIUxmWV¼¯VmȯšU„nl›È—@m»Å™ƒVWxÅbÅğW@kƒm@kVV¦mlnn@‚ō„l¦Åƙxkœ"],encodeOffsets:[[102466,28756]]}},{type:"Feature",id:"5107",properties:{name:"绵阳市",cp:[104.7327,31.8713],childNum:8},geometry:{type:"Polygon",coordinates:["@@„ńlV°š@Őĵ˜VX»ÆUĊќJ‚w„@È»m»š£°Kšk@ÇnÑƍš@„w°JUwnw@wšbVbš@VlźLUw„aƒ»„aUklyUUVakwWXwWƒUxkLƒmn¥mšwk™˜UX™lJ„w@aƒIk°X„¥Wƒ²l¥šaU™„IlmkklƒÈL@m°nlWU™aW—š@Vƒ„@UaV¥@ašk@Çk¹ƒK@a™K@kƒKkšÇX@VU@kx±V™èkIWwUVUkkKÇ@ƒa@wkml¯@kUWn£Wa„aVwnaV݃w¯@UaWx—n›JńUxUšma@L@„mbUŽU±VVnkxUƙ„VŽm@kkKW°„X@¤ÇUkÆÇnU¦¯ŽkƒmLVwÅK@UóbÇƁVƒ¦™L@‚±êX¦mVޚkÜÝnWU—„›@kšƒŽ¯wķšnš°ÒU„lln@@„ĶmnkĊJ²bV„lxÞb™Þƒbk»™m™n™@™¤¯bƒz@Žl°UÒ¯È@ŽšxŤX„yV¯°¥Uwƒw²XlºVŚ¯¼nx›š@ŽXݏmxnb@n™J@b"],encodeOffsets:[[106448,33694]]}},{type:"Feature",id:"5117",properties:{name:"达州市",cp:[107.6111,31.333],childNum:7},geometry:{type:"Polygon",coordinates:["@@Uxn°‚bnŽlUnÒƃnn@n‚¤„LnxlU„ššV@„Æl„x°XXxl`XœƒVW‚œL˜è—„±nÈbƒŽ°b@š²x°Kܼ°ĉ„V¦lJnU@¦šÞ‚JÞğ„mšLÞ»šxU„lb„VÆann„alŽ„VƍX@lnŎV„mU™maÅXƒa@aWmœ@‚£@wĉJVƒkk‚kkmƒnk@ƒmna@šal„Kš™‚J@Þwm‚ÅŃ@ambkUƒƒ@™™KUġKU@m‚ak¯±ƒ„a@aĉÑÅaVwšXlwƒ±—V¥l@@a™kƒ›@@£šmƒĉÝónWV@ŽnÝÇÇx—UmbƒaVkkk@m„@m°ƒÝýXm›akÅīƒ@@ƒmb@@xmšnbƒ@mxšŽkWL@ƒ¯b@WUXmWœWKkbm@kx™Xmm@LUl„xlêóK™nUš„all™LƒlLó°m¯JVšU„K„„@x˜K²Āô¦l°"],encodeOffsets:[[109519,31917]]}},{type:"Feature",id:"5108",properties:{name:"广元市",cp:[105.6885,32.2284],childNum:5},geometry:{type:"Polygon",coordinates:["@@ÆL„Ċx°»Ŧ¦˜W„™šLȄ@xÞKÜ°ÞnVxÅĀlÒnJ°a@w„V¯l@XWknKnw˜VȚ°XXa˜lX°VI°b„W„nšaššš¥@ƒw°™n@šyÆ@nkÞ@°¯lJn„°IÈl‚UšlXÅ@ķlUV¥VUUÝޙUUƒ@UwƒJUkĉm@ýƒƒlk™WUwVwWJk@VUK™lUkaVƒUƒmLk„m@ƒƒ@Uƒ›Ik`@„™UmlUkV¯ÇXKÝ_mm¯@Uƒ`kwmƒl¼±KV¯—¯Vk±Vk±kzma™KUnDZ™bk¦±ŽX„ƒ¦¯Wl„J@bƒxkIWš—Vlš™xnŽm¦„nlKVwX„WxXŽlxUbVVkzVlƒb„¼ƒbVxŹKUk™@Ua™a@xmxVx¯Iƒx™@ŎmÒ@șl¯L™¤n¼"],encodeOffsets:[[107146,33452]]}},{type:"Feature",id:"5118",properties:{name:"雅安市",cp:[102.6672,29.8938],childNum:8},geometry:{type:"Polygon",coordinates:["@@ln@xšèVInxVKn„‚ĊklxkÜVޚÒnÈm°nxš@š¼ĊLV„nx‚WXblIš`š@nmĉn‚KȄôÅlUÑmU„K²¹@ÇÅVÓůVýÞW„‚UVmX„ÆbnwšKUÿ‚™@UmmIUb¯¥Uwƒ™¯™Çmš™„çmanUm»UUƒl—kƒ¤ƒa¯bV™U_WĕmÇŚ±ĢUlƒUl™ÛVƒçkUƒ@WŽ¯KU™VkUağVmš™aV™WUƒmV»—¯@»m£ƒmÝLŽ±@ÈmVk¤mb@ôƒ¦kVkamL@b°‚@b¯¦ÝVƒn@l„ê™b@º„UĸL°J@zV@nmUƒlaĸÔ@xƒ°VҚ„Ub„‚óĢ„ÒWškV@Ò"],encodeOffsets:[[104727,30797]]}},{type:"Feature",id:"5115",properties:{name:"宜宾市",cp:[104.6558,28.548],childNum:10},geometry:{type:"Polygon",coordinates:["@@VlÈnl‚XnWLX`m„²nV‚@b°xĢçlnšVm‚nn„@@„°‚UzšlV°nޘÒkxl„w„`UnVb„mšL@albÞKÈۚmܼ°@Xǚ@wmW@ńKĊL„lV„šLVŎçÞL²±‚ğkw@Uƒy@¹lKX™lKVa@w™™Č@‚w@a˜ÇU¯n™@@wġak—™aō‚ƒƒK@Å»VakUWmķwkbğ¥mL™akš™@ġރ°¯xVVÞ@VšxVš—VWx„XlxU‚™@k²WVŃULmèULVĊklĠ„VœJVx±nŃ¯¦mwğ@mƒƒlğkkl±@kšUk@¯±Ç™Kƒ—kxl¤b™Imx"],encodeOffsets:[[106099,29279]]}},{type:"Feature",id:"5111",properties:{name:"乐山市",cp:[103.5791,29.1742],childNum:9},geometry:{type:"Polygon",coordinates:["@@kšVŽk„ššÆkšV²UlºÈIlxƒLXèÜlU„„XU‚mkƒbVè„x°@„@¼°Knnn@m˜ÆIUbnJ@bVI°b°±@nK@mVakkƒKl¯nbšmĸ„èl@VnÈl‚UUw„wmwnm°¥„L„™lLnU@Va™ImbkƒmK„ƒƒnk@mƒb™ƒƒLV„JVUUƒ„VnkVmb@a¯JUaÆkk¥„IW¥„Klw—ÑmÝU¯™kVy¯@ƒƒ@mmn™Ukmġè¯w@aU±mnƒW_XKWmkÇmUkóbUÝUanmW™ƒ¯nma—@ƒxVôUV@šb@‚l¼„n@l™b@xƒnÛa›xa@ƒyUÅmUÛbm°@„m‚n²U°ll™ĀȦƒlU„V¼nJVxUz‚W„z@`mL"],encodeOffsets:[[105480,29993]]}},{type:"Feature",id:"5113",properties:{name:"南充市",cp:[106.2048,31.1517],childNum:7},geometry:{type:"Polygon",coordinates:["@@ȲVmšLnblyl²²UUl˜°U°²L‚»„knlx„_VŽ°@nnÞ`WL°ÈUŽVlnkšV@ƒl_œJV„‚@„„n@lƒnKV£™Çšƒ„UV¯šm„@laX˜U„‚UbVx„@VkôJU°Jn™@™‚wUk°wnUƒV_nJmknmm¯Vwk¯ó¥±ÿ—L@wƒƒƒLVU™kU›bX¯mykI@a±Kk¦ULmaXƒƒVm¯ƒK—z±ƒklUIVbÇJšƒkL¯™l™ƒU™ÿ™UƒlUkJƒUmŽUUkVVklKk@@a™U@„™J„²ƒxƒ¦kĬ@¼±ºXnWb—xƒU@xƒx@lšL@b„Llº@șl@bU¦Vbƒ@U„™@X˜‚bVškX¯m@nÇKk„llknƒJVš"],encodeOffsets:[[107989,32282]]}},{type:"Feature",id:"5119",properties:{name:"巴中市",cp:[107.0618,31.9977],childNum:4},geometry:{type:"Polygon",coordinates:["@@V„U„lbkVšŽVLUŽl@XI‚ŽUxVxšXkl„„@þĊnVl„IVx„@VVݚVÞUVU¦kV@ĸWÆô²š@VÞnš@Vaôb²W@‚K@XUmÑUW°¯°Ina@y„_lWn¼lLUbô¼„Kla@™nkUyô—Æx°@šn£™Ý@¥mVkIU¥Ċƒ‚¯Û»¯L±w@™¯a„Ça²m˜ƒ—ç›KX„UW›k_Ww¯WƒwÅk@ƒ™Uƒ™kVmwƒK£@mmmńmÑkVmamnnlmIU`V„m¯xVlx@šmš¯IV‚óIUlƒ@UwVaƒ—VW‚kbƒ@™nU°ƒV™„šÈU¤"],encodeOffsets:[[108957,32569]]}},{type:"Feature",id:"5105",properties:{name:"泸州市",cp:[105.4578,28.493],childNum:5},geometry:{type:"Polygon",coordinates:["@@VVXwVKn„˜wnVƒn„l@b¯xmKUbVn°°X°@blLšènV„@Vn‚l@U„LnmmUna„VV_ĶV@wnJ„„l@@kkKVólaUwnJm„wUlm@ašUaôKVnJWbޚ@VšwVLX¥VVš_Þ`šw„WƒÞŹmmnIn¥Wƒ@k„WV¯@ƒ°kI™ŽƒLk¼Ç@k¤±Xk˜™nmݯUlÅÛKWV¯kƒlUwkLƒÓ™@U—@ƒ‚w@ġXV„˜WX„š@UbVbšV›š_kÇV™lU°lnwŎ¦ÞaƯnmm¯šU„™m¥nkVmkƒl_ó¥¯UÇl¯@™ƒ™L™kƒ`¯ķLUy¯@mw—¼ķ°ġ_řU°mlšnÇVUޚ„@‚ƒš_ƒJUnV‚UXšbl˜Ģb@x@mšV°—È‚b@‚xċ@šš@xUbkLWškL@º„zV‚@lxĠ±²"],encodeOffsets:[[107674,29639]]}},{type:"Feature",id:"5101",properties:{name:"成都市",cp:[103.9526,30.7617],childNum:11},geometry:{type:"Polygon",coordinates:["@@°n°m²°ÜUšw²ŽôVš°ŽVkxÜźUŰČb‚ŽĢlaÈL„»ƒ@k„wVǂ@„ƒnÛƻșUÝ°Kl_„V°Uš`Vbn@VbÈLšaVU@ƨ»V™nIl™šUUa„±lIk±š@VnKmÅ@WaƒK¦™lVōškK™Ý@maXÇmw¯IU‚@kƒVƒwUmVIƒƒƒç—ÿƒU±ŽÅ@¯È@xƒK@wƒLUbÇKō@mÝ£@yóUóóUxkI@WlIUaƒbƒaŽVĀ™LmxÅaWƒUnVƒÝXUþÆ°UÔÈÆ@±ºƒLnVVÒkóÆ"],encodeOffsets:[[105492,31534]]}},{type:"Feature",id:"5120",properties:{name:"资阳市",cp:[104.9744,30.1575],childNum:4},geometry:{type:"Polygon",coordinates:["@@„è„„UJVn„x„U@lV°JnxWÈnbÞ@šŽlLŎ™Ušk‚¥„LXbÆ@nŽmLU‚@zlbXmlnVynL„çšJVb‚UnómUnamU„an¥lKV_²aValWô„n@nƒ‚bVœK°¯VblW@kkƒlUnlV£°W@w„UXk°KVwƒmVkwVyVI@wkmƒVÅ_Umm@Uÿmbk£™xUaVw±V¼V¤kLWxU@Uk™bƒyƒXšómƒ°V@@zÝÒkKƒn™±U@@_VVkƒÇaVwnLWalm@@kkVVl™¦kIV`±n@w„Kƒƒk²™aƒVUUV¤™nkxmUkVWVnLUbVbƒ`kUU„mLU‚mX@`ÅbǚXbWLXŽ›n"],encodeOffsets:[[106695,31062]]}},{type:"Feature",id:"5104",properties:{name:"攀枝花市",cp:[101.6895,26.7133],childNum:3},geometry:{type:"Polygon",coordinates:["@@„b‚KÞnޙ@x„V@x˜n„Unš°¼šVš±mç²ÝÆ@šwnnšVWŽnôn_@¥‚™UaVƒ„bƙœÈ܎n¥Æ±VUwVƒmXÿmLkal¯km@k›ƒ@ƒ¯bkšVxmVUkk@Ua@¯˜»Un›mс@mz™m@īƒÑX¥Ç@ݙxU¦ƒšÅŽÇUkx@šlb„UWVX„mV@xĵĖ±@@Ž¯xUšÆLnÆm„šx@nXL±lUUVwKWak@WxkbšÞƒŽĉbUn@‚ƒ@@xó¦„Ŏ"],encodeOffsets:[[103602,27816]]}},{type:"Feature",id:"5114",properties:{name:"眉山市",cp:[103.8098,30.0146],childNum:6},geometry:{type:"Polygon",coordinates:["@@„šVx°¦VanJVnš@„b„aVbkJ@XlJVwôôôV@zÞ¤@nƎÈLVa„K@x„L@w°ÇÆ@²„V˜ĀœmWXKWașÆa@_nWVnKVƒlV„_UaVamKXUWwnmmwœÑm£@ynUƒkWƒĉUkWVkkV±çkJmkKƒšƒK¯¦mnnxƒxVxVÇkUmk@ƒçķ™nmak°„LllUb@nmL@‚¯²¯aUJ@amIVaÅJn—m@mm¯L@»ƒŽ¯@ƒwUç„anlVƒWVƒÛkWç„KkwÇJk¹±V™UÅl™™ġV™²ÈƂnXĖV`Uš°a„b„£˜l„kVVn¼mVnbƒè™šÈn°š"],encodeOffsets:[[105683,30685]]}},{type:"Feature",id:"5116",properties:{name:"广安市",cp:[106.6333,30.4376],childNum:5},geometry:{type:"Polygon",coordinates:["@@„VlIV‚„kšVšĀ„Vkš°šlK™„ÈIUaVJlk²„˜y„Ln°„UW„nbVKl¥²L@blJnzW°œalV°Inô¯‚K„kšKkkƒbV™šmôLkéƒwVk@KnnšWlwn@laXL›ŽnXVW@X°a@„XKl™nw„@man™@w‚@na@„„@ƒw™ĕġġ™wUkUWb@mk@™¦ƒ¥mUÛb±yÅn@bml@kV@„ƒlknVbmVnlmš—bÇk¯bWyk@V_UamJ@I—@WaƒVXamIVWkUkbVaƒUUxƒ@VnkVU¼›bkKUxmK™„@WšƒxnV@n"],encodeOffsets:[[108518,31208]]}},{type:"Feature",id:"5106",properties:{name:"德阳市",cp:[104.48,31.1133],childNum:6},geometry:{type:"Polygon",coordinates:["@@nUW¥²é@šK„¥‚UÈÅôa@VÆLUxnKl„°V¥ÈmlÅÈV@£ƒWX¯lLln@UšƒVÅlwUm²U‚VVna@ƒ@KnbV™VwƃœI˜mXwWƒkIVwÝĕVUa™IƒèmKUzkmWnka@y™@l²kJƒ²Vb™VkšmJUšƧ¼@UV™bÇKUam@Ua™_¯VƒUk`¯LVÞǚżm܃„@Uȃx@l„ƒ¼ÇKkbWŽœšVxUbƦnxƦĊV"],encodeOffsets:[[106594,32457]]}},{type:"Feature",id:"5110",properties:{name:"内江市",cp:[104.8535,29.6136],childNum:4},geometry:{type:"Polygon",coordinates:["@@²èlUUllXĊVX„„lmV@zn¤›ÒnxmnXxlUnVlwšmU£VV„Ušbl±„„ƒL@x²mU_lJš¥UklU@ln@‚kXbmKUxÈbl„UU@`V@š²„mlLÞÑ@yU@„¯ôn‚™„W„zšaVlV@XwlKU£‚»—aVaUwm@mwUVUwkƒlVDzLlƒ„KV™m_@ykUmƒ@mU™çkKmxkIU‚Ý„@LUJ@n±„kº‚LXb™¼@mmIXa™@mamnkW™ƒKUƒƒxƒ_U`UklwUw™mUbƒV™²ƒakbƒmkn@`„UmҙšVxUb™I™`UƒaÝÈ"],encodeOffsets:[[106774,30342]]}},{type:"Feature",id:"5109",properties:{name:"遂宁市",cp:[105.5347,30.6683],childNum:4},geometry:{type:"Polygon",coordinates:["@@ÞĖUxlJX„Vb°@„xUÞmbUxƒbXbm¤VX@lk°ln@x„bÈ@lLVlVUXxlJšç²UlwV@@UÈWl™„L„w@w„V˜wXaWm²¹@»lī„¥„wƒ±šI@ƒšV@bl@kLUllUVVn@mmU„wX™ċbVb@VUkbmamšW@kƒa@™™k@ƒlaUa™@¯b@šmmwó@@lkXUa¯°›LU‚am„m@óƒkXUb±bU`kLm¦ƒbnVmbnVmô"],encodeOffsets:[[107595,31270]]}},{type:"Feature",id:"5103",properties:{name:"自贡市",cp:[104.6667,29.2786],childNum:3},geometry:{type:"Polygon",coordinates:["@@lIÞDŽbVŽš_šJVaUwš™nуV@_lm„nla„bš±„UVašnVxkxVlV_„`„wV„„LšlXnmnbš@WbnJ@nš»WaKl¹²ƒ@mVI@KރVlJnw@aW¯¯¯UmVanL°w@aƒk„mmU—xmƒULWxUUÝKōèU™KUƒƒkĉKƒL@ÆnX@x™‚Wȯ@Û»™nÇÜÝLka@b™KƒnUaVmƒ_ƒxkƒLX¦ƒJl¦ÅlVb°I@bnaUŽmlƒUV„UVƒIUŽ„Kš„„a@nml„„ƒŽnLl„našJUbV@"],encodeOffsets:[[106752,30347]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/tai_wan_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"7100",properties:{name:"台湾",cp:[121.0295,23.6082],childNum:1},geometry:{type:"Polygon",coordinates:["@@\\sŽ@pS}aekgKSu™SsMß`¡CqZ·be@Q^o@‹gieMp‹‰]}•}Ľc_Kk…{™ù“A¡r‰[uom@эĥJiq©mʼnq¯Bq]ÙYgSåk_gwU­isTE…“‘ĕiqiUEkue_‰OSsZ‹aWKo¡­q“ycY£w}‹ĩ™ĕS§Z©S™N¥SyLÑ¡±Ks^IY‰PdƒY[Uo†Fp}´\\¬\\j]ˆe܍ò‹¤¡–ā a\\bn™U㺹Ìs¼j®[cíȈEŽĝĆ`ļf¶Š®K|VØDdKGpVnU‚FjpH—F`†B’[pMºxÖjbpÎxp€¬‚|ΟÜÒCŠ²®‚ÜAp„ZG~€Šd˜ÞàV¨|¸€`|Œ²tx~\\~|dFf^zG€ĄŚhœdL\\hĸž¼†ŠOªP®lV`p\\]Xpll˜æ¤œCpQ|oF}fMRi†NSon_²qämœM„NM‹\\•"],encodeOffsets:[[124853,25650]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/tian_jin_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"120225",properties:{name:"蓟县",cp:[117.4672,40.004],childNum:1},geometry:{type:"Polygon",coordinates:["@@EUDAEI@WNMNCBFAHFFNACDJDPBD@@GD@DIFFHEFGDBDEQOFG@EI_KG@OcJQM]RMEKBGPG@[LaCIICBWKCEEG@WBQHCDFD@HSLEJI@IHWECFGAAEKCGDBFCBSBIDCKKHEADMJMFABKOKEQAA@IEEG@GIQAEK@OZEESMOL“lu@SLUTYFQCMG@@SQUAYKAACA@IB@BDB@B@DC@@BGAEFAA@BEGKJCC@AGAIHA@@JC@QEIP@@A@EGIDC@O@C@@@@CJCWKABFLBBEBSQGBAAMIEM@AKBcJEN@BEBCFMAEFEF@J@BG@BFABECKFG@AFQ@@F@BEB@@A@@AAAKAE@GFGDECEFEECBKIKDELDFEDYH@EIACDCHKBEB@BAAC@ADBHABKJIAIJICEDGDCD@@A@A@DHCHJHDFEFGBKRKBGIK@GIMHSBCH_BOJECCJCFKKMD@DNJEDEGC@OJCJHRUL@HRJ@H[DCNKDZHCTFDHCFFKR`TANVDFZRDLFARB@HPAPG`ILAR@TERNDFNHDLCLDDCXDYbHF@FEB@LDDVE@JPNfXPINCVDJJD@NJPAJHLXHDNANHhB@DPNLRMTBFRBHHr@`NBFEBOCCBIAQJDHCHLHFA@HSDCRLFTB@HEFLNF@PELBDJALFLTC@EPFLLP@tUHQJDfIHGTB^JTCPDLKAIBATFPADIEGECEMJ@JIAIHGECFEAGDI\\SPOXAFCL@BQTQBBTMZECYGAHA@GJAE@HCAEME@IECFKJADDBABLTHHG@ILEAMNDJCDHEBF@@JNFJELDFKTOT@JETBFFHBHEHKI@@IJEJ@XKEOUMS@AF@CEB"],encodeOffsets:[[120575,41009]]}},{type:"Feature",id:"120114",properties:{name:"武清区",cp:[117.0621,39.4121],childNum:1},geometry:{type:"Polygon",coordinates:["@@FWôµ@IFCLIB@EHNBp]AGEAKAEDMGZKFGBGME@ILGP@HEFB@BXMEAHUGC@IHCLOD@X[NWHWPKAEF[@EKIOL@EKGBNMJ@EIEHKBIC@BAKMIACCFQZCF]DB@ERAKADIHGEIBCGIIECFaGLZO@EFCNGAGDGAKL@BMG@IE@ADSDEH[JGC@CGA@BMDeK@EIACFE@@GG@FIAMM@CCGC@EM@ADE@CFMAAGHBDKIEAJG@DOGCDEKAGIS@KFCHKAEHIE]BeKNO[IFIOELC@A]GMBKVYCDDgGAICARc@MW@AQE@DGI@@AQ@@BKBAIQQYEFW@CEADIGGBCEIiMEMF_LGEKMBBDWEBGRC@E_CHYGCH_IAED@FFBQh@FGJaJ}AHRAREF@bE\\C@CT`FHC@\\BBF@BID@HGDDJ@@FAHKBARECKDAZBJIVNHCTA@EREAMLHDAFFBVFFC@RNRETHD@FOJMACH@CAB@P@DF@@FGDWE@FFSIEMKQDYCCHKb^JADOCIDGNDBdBCFJB@EC\\A@BJEA@JAAAD@HHD@LFBCFF@BERDHNhZQHMBGHOACCEBWEGD@PSJKCGEUD@CINLFGHE@AJK@HDABBHTB@F`DBFLBBHEDARCFG@ABJBAPVFE^FBGLGCFG_BMLEXGAAFE@@JNRVJHFALFBEHQJCTbNDHCF@PlFLJSXCHFHfVBTNJ\\BPJXC^FAVNFCHFB@FFH@JF@\\ABCFD\\BDMCAAJKQBGAILOEGHILECQLWFENJHADC@QxNHFJNLDFA@CBA@D˜UÂmR@FBL@BD"],encodeOffsets:[[119959,40574]]}},{type:"Feature",id:"120115",properties:{name:"宝坻区",cp:[117.4274,39.5913],childNum:1},geometry:{type:"Polygon",coordinates:["@@TZbB@JHD@DODCLM@AP@LL@BNH@ETFN@`E@DNG@CHLBCJA@AICFKDDBKA@\\N@AFNAGRBFjFFFL@DHLBLFQPcXAZMJ]GAVHAIZJFNE@JpDRRDCLFDGXA@EFF@CFFPDfEBDB@DCHCFCJDJIJBLI@I@CB@@ADBB@FALADGDC@@H@BB@FZGFCCE@@FMLALJDAFFFEFDFCB@@AHCF@L@@BBB@BB@FC@E@@R@BEL@HEFD@G@AH@AIB@@@FEFEBALDDEFAFO^IF@JCBBFPNJJ@D@PRDCEKBAXL@BIFD@T@JE@BHHJORFDI@@B@JGH@@B@BDDLIFFHCD@D@DEE@BAAAB@DAF@B@H@NGLJLMRDNMfGIEPMI@GDAKK@KIDIJ@GE@CFDN@FE@GFEPGV@TCDFKHBBF@RW@DD@@ID@TJFKIKLI@EP@IGBCLAEKLEN@KSHIGYACSD@SEAMBBMGEBMQBCMIGKFB[D@HDLPHDBC@IFITDLG@IIIFGVBNJDLN@VIRI@YIAIHIC@CLKZCBEE@JECEIHEAKGDGECBGEEM@@DA@CCCBBEGA[GEDBBoNAAH]MKiIAWKQoIIPMFQAEEDMH@FMSUYIeF@EK@BIOEKJEBICFKaKPFAFSE@LWCCFMHDDEKESBOGBKIEIODLG@CCDEQCEDWEMDIEIB@EHGEEDAEAa@@HqDEJGF[AECCFa@WCEIKAAEQB@FCAE^YDERDDJBLNABD@AJGLJF@FNIAMLH@FPKLJ@FE\\BFOLGXMXW\\C@KPGD@JHDGVFBWN@AEAGFO@KH@JNFAHEHYLNHFCLBFBBHo^MAFGA@KJED@Jó¶EX"],encodeOffsets:[[119959,40574]]}},{type:"Feature",id:"120223",properties:{name:"静海县",cp:[116.9824,38.8312],childNum:1},geometry:{type:"Polygon",coordinates:["@@NGFMDATCNDR@CCbINEHNJA@C\\EEGVE@IhE–[˜w”epc¢·²›^QEKIEKIgiQDkehY£uSDBMkUDOJDHC@GF@CAFBFEN@C‹Q@BeP@@G@HD@@MHQKi@[IGCOCESE@GMA_OcCGDu`aˆ@VZzKDkJBLNXGDqKEWE@cFEFA@ƒISIi@@KMABJGBcMuFEzGVH\\ATSEUBeALCEMG@CEBUHUCGXaBPtUBBFIBFTDFF@DDKBFNGBJPHXDDMDCLJ^mBIHIL@LR\\@LCR[@@z@NFD@LLBNb@RHDBNTPT\\F@BJF@BXCFBHHBDLFB@HODADE@@JHVXCPDHCFTLBBFNCDCCCU@@GAABEHHZHBCAEdEjFDD@GfD@DXFCHF@ERFDLBH@"],encodeOffsets:[[119688,40010]]}},{type:"Feature",id:"120221",properties:{name:"宁河县",cp:[117.6801,39.3853],childNum:1},geometry:{type:"Polygon",coordinates:["@@BFLBFJXDb@DEFD\\BHEFIrC@Gb@FBCBFFGH@FJAJFNCXFFCRDCFDDH@CKJPJFALPHTALFCFGCENDDKXF@ETEBO‚bLELJDFALIPFAJL@@FfEZJTVENG@CNFFRBNEJOpJLRBXjJNLG^BBpMAAFC\\HHBAFDADDB@@CN@FFAHFDCHLHFBJGFCFUNKJJTD\\XUXF\\^F@DDDQXXBRLRCBDFEVCDLVDpUl@LEDJHAPRFGL@CETGPBTCDDVI@CFF@GFDCCVGLKEK[Y@MECISG@BKNSCGCKWEAaEBEKNGFSECO@GGM@GYI@DÅCMLHPTF@DJHAVVNKEGDETJ^[TJNNd@NOAMFYJ@@GFANDPEJB^aOadSTQSI@MHBDIEOKCG@EEFCKCqXO@@DMFENCDDHCCGJ]AKFoDaGGHYFDHKJiCMFGC@EQ@AEHGAC@IEAATKOHGIC@IXIFEoƒGE[JCFCDHNmRADFZMF[EEBMO{GU@AOW@@]ZeHBDEHBKEfQkuIWBs‡@EC@d[@[^EDMTKCEEcI@cDAB@FCBCACmOCG{PYHeBgPwPFDDALFFFCHQGSD@BHFAR[TaFYXMASUiGFL@DQNCJI@@D@PLDN`ETEFIGMCGBCE‘~CAIFDPEHGEQPHJADFJGHCJLB"],encodeOffsets:[[120145,40295]]}},{type:"Feature",id:"120109",properties:{name:"大港区",cp:[117.3875,38.757],childNum:1},geometry:{type:"Polygon",coordinates:["@@JFFL°_`ONJKDDFIFZN xlb~yFVNRŒrdJGzDPVFBCTNND\\UR@E`F@@Ip@IWGUoawOEE@ÏDgK{İEEMFëC—b…™@—KwOCDHHKBDJCDEEEAGHOABFABMCgDLSQ@CFEB‰MgYIDQINE@AUSwSAdYEHQMEyK[KI@GRMLE@@OqOoBOnpJ@BmEAFHL^FDB[C@BBDVFAHFJENB@sNEjQAMYsUgCSBGDJH@\\LjGR@NC@@G@HO@AfR@DŒM@EFEADBE@@HGDICCPlVANTC¤vgZlfRChjLJ"],encodeOffsets:[[120065,39771]]}},{type:"Feature",id:"120107",properties:{name:"塘沽区",cp:[117.6801,38.9987],childNum:1},geometry:{type:"Polygon",coordinates:["@@|ODHnPBDADEDA@CB@ddJFFLDNSFC\\]\\@@cFDˆ@nACOMW@M@ITURBRZNHNWRQšoO•j½f‡cqŸAqeiDÿÍyÓįFL|Ch@ÐFFxPpbHVJXo@@JCTR^BPABQA]^MB@bE@@FQBFVJRH@FXtPNZSBAja@@NƒDTŽLJrQTHFXZFB`"],encodeOffsets:[[120391,40118]]}},{type:"Feature",id:"120111",properties:{name:"西青区",cp:[117.1829,39.0022],childNum:1},geometry:{type:"Polygon",coordinates:["@@@LHAHRHATh`LHNHDG`HDGZ`D@FQDAHXFACNAFLVRTBFOfHDCVBFQH@HSXHEPFB@LDBF[bDbLFKJBFLADBDjLvCPEI]FGEIGCBEUSjcFiBIVWfaHCjN^HtwBBFGPBJGjFBEGECGDONMFAP]TDHQOWCMGAMHKIJEIGQ]aDlUG]VGEGDC„{PEbBZmE@@GH@BCA@FMQCFMYMJECELCMI_P¯`]R±œ¡¸od“f—x•\\gF@JUFFH[F@DIBGMMFaJDDQ@MCSDCBENMH"],encodeOffsets:[[119688,40010]]}},{type:"Feature",id:"120113",properties:{name:"北辰区",cp:[117.1761,39.2548],childNum:1},geometry:{type:"Polygon",coordinates:["@@ROHFFGCOJEDB’}DFHANDJHFEFSM_KC@O@CJ@DIRM@CEKKA…L…FKACHoLSJSIBETDJaEIIE]E]K[MYUYQILC@GF[MGNKEK@A@BCWECAIFEFYAGFOMI[OFuDiKACBCEKIAELaKaCE\\CA@KEAFOWGGTG@ERUACDeGEPSAUQKHE`FNjNFJADHHCJFB@DEXZFRRBJLA@AR@@BJ@CHF@BRX@@NQdDBBJhHCCZDLUNA^H@BKDPFEJ\\JMPfL^AJFFGLBDGLET@HJLBCFHDCPH@BIJFCLGABHNBDEF@BCN@@FHDDDN@BNEJH@@HF@DEJB@FfLNC@AHB@DHD\\IFGTCBCF@@JNH@ALKHBHCHBDMFEP@KYbHDEJF"],encodeOffsets:[[120139,40273]]}},{type:"Feature",id:"120110",properties:{name:"东丽区",cp:[117.4013,39.1223],childNum:1},geometry:{type:"Polygon",coordinates:["@@ZV\\N^L^FJFFJIbSCAFTJTIpKDGLB†E†KLBjHTVNBZWbE\\SBQGE@ATCRHDGEEKECBECxOhOfAZGA_YEEWSGqRKIS„C@Mb@BiTAMYsOEWG@IQEURA@EF@@acUOXQRYCUDCHDTEF[SUEgAYDcVGJM`iAWDWLQRMHUHgDsDBLHJFCFDFGHBFFVEAGHCJN@RJF‡PIhBD\\FENCPWA@LFBAFHBEJUEARCDIAEDQBRNa^"],encodeOffsets:[[120048,40134]]}},{type:"Feature",id:"120108",properties:{name:"汉沽区",cp:[117.8888,39.2191],childNum:1},geometry:{type:"Polygon",coordinates:["@@LMEI\\MTABKN@FCDMH@COAcH[AoēA™M¡Wa[Meq™pQRMXMGQYQASV@J@NNXDPmBAtJXlveRLFGACFGAYf@^X@BPV@|HNPFA\\FNEEYBCnQGMDCDE\\IHFp„EFWJ@JJDGHLPBSFB@JBDGHBFR@@FHDNEjDLICGZEHGbHpCLE^BHIDDCGDCFMNE@CP@rWLDEDFFH@"],encodeOffsets:[[120859,40235]]}},{type:"Feature",id:"120112",properties:{name:"津南区",cp:[117.3958,38.9603],childNum:1},geometry:{type:"Polygon",coordinates:["@@TLv@CNHFFBHGZFETNPhCVGNGRQXKXCjBN_HIdUZChBVF\\TFECSDGVCZDRQPWdVNA^]RBBAAOQ]DSE@F_Q@[VMCSMADUECOHycI‹qMQEU}zkaŸwENRDENB@ADG@@HF@YnaAOFƒ|CDFHUHH^kVbCR^JHIFLJNGHBDNPXGRSCO^EBMNCPDHHFAFiEIHOAEH"],encodeOffsets:[[120045,39982]]}},{type:"Feature",id:"120103",properties:{name:"河西区",cp:[117.2365,39.0804],childNum:1},geometry:{type:"Polygon",coordinates:["@@d@hZNFdcLYXKRCtCMOFSYEGHEAGEDMu@SKAAsx]GMTGt"],encodeOffsets:[[119992,40041]]}},{type:"Feature",id:"120102",properties:{name:"河东区",cp:[117.2571,39.1209],childNum:1},geometry:{type:"Polygon",coordinates:["@@ZBVFFIGABEEA@KXBDOFM[EACJgˆOIE@QIMGDBHUFEEGAEHECEDGIAKQDWLKZcdQPEP@FOFBJTJ@HNORJf@DBCN"],encodeOffsets:[[120063,40098]]}},{type:"Feature",id:"120104",properties:{name:"南开区",cp:[117.1527,39.1065],childNum:1},geometry:{type:"Polygon",coordinates:["@@NMVDCG\\E^B@HlB@YEDS@C…HsNSiMGDebUXAJEjidVTAFHDFJ"],encodeOffsets:[[119940,40093]]}},{type:"Feature",id:"120105",properties:{name:"河北区",cp:[117.2145,39.1615],childNum:1},geometry:{type:"Polygon",coordinates:["@@DBXFADB@L@LFHM\\NHED@JKZRb]QMRAFCJBDCBQYADMCAe@QIMP@GSIAIPE@E[EGH@ZEF]^HJAXK@KF"],encodeOffsets:[[119980,40125]]}},{type:"Feature",id:"120106",properties:{name:"红桥区",cp:[117.1596,39.1663],childNum:1},geometry:{type:"Polygon",coordinates:["@@J\\PNHEZBFEJELEL@BWGI^]FEkA@G]A[FDHUCMNEHJ^"],encodeOffsets:[[119942,40112]]}},{type:"Feature",id:"120101",properties:{name:"和平区",cp:[117.2008,39.1189],childNum:1},geometry:{type:"Polygon",coordinates:["@@D†T@FCHG\\FFOROMEgYc@"],encodeOffsets:[[119992,40041]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/world_geo",[],function(){return{type:"FeatureCollection",offset:{x:170,y:90},features:[{type:"Feature",id:"AFG",properties:{name:"Afghanistan"},geometry:{type:"Polygon",coordinates:["@@ࡪ͇وŐǬϠڐŶӂʮǚڦ۾njƀ̚ІɣʪҴMوǯʲĹ،˒˰Nj˖ϪԈiżŬĘͺβ̈Ҕȏĝʱʪ¡ý۷ͪ˟̊ǰώĊԼϖׂ×ࢀAƬʋӧĥяƹ७ĭࣗǭӫλȤΣĪллΛ–͑ɳ̡ߛ€ͦ։՗ɅΥԕ²ԋ͡ɿ̳þٝŋğɻسDҵӇ‡܍થΓבôǝȁԇņ࠿űටіހހåզُƚßՔ˟ڢάҢιŮɲؒ΂ਸ"],encodeOffsets:[[62680,36506]]}},{type:"Feature",id:"AGO",properties:{name:"Angola"},geometry:{type:"MultiPolygon",coordinates:[["@@ȸصʌԋȘ˕͐ѯ֊æˤŠҬşŲɀɂӨԶ®ƤіHñ̡৴RfՉǞ͕ūԑÖԫ˪̷­ৃȼüκsԴŴϦ¹ĘʹĩСƨϿů̿î́ყZᦵ֤ۋպԽ໳΁᎝Š׋Ж₭—ŵÏԃϞկ~ԉƝЙDžÿՈŜ݊̂ޒªΰ˚ݶȨΆӘռːϐĘج«ӊʣ̜ɡԚȵԎ®Ǩʶͬʭ߼ǣ֚сՐĄǎΌŔʒg̎ĸៜ["],["@@ɉėɣلͼδʪƘ̀˽̩ǯƍɍλ"]],encodeOffsets:[[[16719,-6018]],[[12736,-5820]]]}},{type:"Feature",id:"ALB",properties:{name:"Albania"},geometry:{type:"Polygon",coordinates:["@@Ń˷ŢέΒȳiə˗ŧ»˙ϷСƛÐgȂү˰ñАîֶŖʼƗƂÉˌθаÂƿɨôǴɥȪďȨ̂"],encodeOffsets:[[21085,42860]]}},{type:"Feature",id:"ARE",properties:{name:"United Arab Emirates"},geometry:{type:"Polygon",coordinates:["@@Ƭ¤ŒɱڂƂ۞uԖ{ֺ֪ظՠՎԮdž˹ŖڑѕGçճƪŝϝǑE΅ʓΏuͷǝDZᡋъ͏࡚Ț"],encodeOffsets:[[52818,24828]]}},{type:"Feature",id:"ARG",properties:{name:"Argentina"},geometry:{type:"MultiPolygon",coordinates:[["@@ߗ§ѓ̔ԑx࣑@Aሞ͒ϵрؿનԋ୲ȿϙп"],["@@Ӵ؇͠ڰॠ“ƊǷ໶ോۊŷਆاࡾ͡Ŧχࠡ౧ࡒɭ़ŷڔƈނ٢ƎݐжLjфӝiڣۻҩ֟΁ॅࠃ૭ଧȽڥɣࡹT࠷ǽȇÝիËѫ੨ܙŗ׃Հν§Ч߯ઁఛ҉။ǩउĎǰԅǣػƺщԋ̏ࡱř̪͕߱ɗŜ࠳֨ʧҠˆʢѧޛʻڭԹūࡋȣ҇ߏEڃљʋؿؙࠞߦǝ˿ݭ঳Ӄձটލͧ΅Ͽ˔ࢍ֔ӡΟ¨ީƀ᎓ŒΑӪhؾ֓Ą̃̏óࢺ٤φˈՒĭьѾܔ̬૘ěӲξDŽę̈́ϵǚˢΜϛ͈ȝॺ͸Ǣƙ਀ȠࡲɤݢԊ̨ʭࠐEޚَոo۰ӒࠎDޜɓƶϭฐԬࡺÿࠀ̜ބռ߂צԺʥ͢Ǭ˔ඔࣶд̀ࢎĹɂ۬ݺશȱ"]],encodeOffsets:[[[-67072,-56524]],[[-66524,-22605]]]}},{type:"Feature",id:"ARM",properties:{name:"Armenia"},geometry:{type:"Polygon",coordinates:["@@୞ƀǨə͌ƣǛɁ҄˽ʁˋΦɫϘƏl׋̣}΃ӢHżχCʝɤǩuͧʖرȼĄФƛ̒"],encodeOffsets:[[44629,42079]]}},{type:"Feature",id:"ATF",properties:{name:"French Southern and Antarctic Lands"},geometry:{type:"Polygon",coordinates:["@@ը˃ߐĿˆDžɽϣಇÃq҂ŮΎÊǢ"],encodeOffsets:[[70590,-49792]]}},{type:"Feature",id:"AUS",properties:{name:"Australia"},geometry:{type:"MultiPolygon",coordinates:[["@@ߺ́ҜŘپNJԎÉÐঽ˽́ēگ̉ɰ׍בǧ®ԫ€ԭܘŗֈӝܸtϬռõ"],["@@̢ڇբ̈́˦ΡЖ͟đϋǴܛŸнɄĹɬܕąѥ˖֭࣬ѭצЋ֞λŋȯӔՃࣧ͜ͲȂ;ηȴźƢࢹ׬ԩϸ͋ڀڹʀڭtӏËԳА܋µݓơϵɩݡjӕǕ׻χއثЭ̫ٱ˫гʝܧ͕нɅػʼnׁªˇӕ̇व‰ޡ·ϫ͙ԕέ۟ψԥƪżѬҝǃ݁؉ܩɪӉƄӑÔ߿ʐիԮƻْțьЭ;߱ĸˢРȯزЧ׉ݝƷѮҬŶӞ͘ЬãجہܑԿ˽͏ڛٽΊ~ҀԿ،ѹ̀ǂȘઃԚןz߯Цຓāછ̝ख़˫ߡÈࢻљܯȗljѱ̳Ϳ܉qՅõݑƶ׿ğֽԁ҃ʕœуʁЗˋؕ֛Bࢽ՜ҋDŽlӖкŘƚȒ‡̠ĺאģӼѻࡖƏӒ˜ӎͭնsʚϋͰĽڄӓڔřΪτε˳ެиʑʞ͗aјеڎă˄țʦĠӠǢȸŘрęӮΎ؀Úٕ΢׀ۀˬЦΪٜ̰ϤàɴĻڎ̺ԚĤŶȀɞüҬoࢨʖҚώɊ҆ӲѐœͲvҘט܎ΠܩΦǚ̗Ј˂ТψǻĸٖҠаȮͨцƜ`ɼτĭdɂτŦОŔبϫҲӽՂMՖÿDZҦДڪϜɘſȾκӒԘ̒јıۺǂeі؛ˢ҂Ū֎ȻҀ·ۼɋʈĐԶʵӬʊ͂ñȠNJϬеɡ͉҇ͻ˿ƒĮͱʙп̗ЭÔʁڜҫ٨ˏѠ́؈ӻʂBѰɍŶʷߤ˵ֈ˼ǐҊǠόľҤʰڞŝОÔʔīӔŌنLjǠŽˬȮѾdžҦtʈ̸̾ʂЩÎՃȾķ˜Λ̨ёÚӇ‡̥"]],encodeOffsets:[[[148888,-41771]],[[147008,-14093]]]}},{type:"Feature",id:"AUT",properties:{name:"Austria"},geometry:{type:"Polygon",coordinates:["@@Û΃ӁCǎǻ˧էLJƗܽsщȏۛÞயɐȉ̊ࠧƣĭDžԗŢѕxϝƶźȴƬʪ²ьɹŤɜݎ•׸ƮЖ}ˀǣþƜšո̠ń̒ϰز˓ӀΆ̐ÚٶʱЂªϰǁãŃČ̅"],encodeOffsets:[[17388,49279]]}},{type:"Feature",id:"AZE",properties:{name:"Azerbaijan"},geometry:{type:"MultiPolygon",coordinates:[["@@ʞɣψDGŻ΄ӡֽŒщϰƃ͆Ǫv"],["@@ϊËƞɈԈͺѴѵђ׭ϺŸʸɧۗãƣٵƟ̭̍ȝvзȽ¥ԻѲ̂дʝʚ̿×যإk׌ϗƐΥɬʂˌ҃˾ǜɂ͋ƤǧɚȶƎضʍҐ¹ŘIJбҔɔŚʀ…׀ԙ"]],encodeOffsets:[[[46083,40694]],[[48511,42210]]]}},{type:"Feature",id:"BDI",properties:{name:"Burundi"},geometry:{type:"Polygon",coordinates:["@@Á০ɃϢԜßʲӎҀŸͧǸȏT˗ȹǭ͛ѫ̧̥΍Ÿ"],encodeOffsets:[[30045,-4607]]}},{type:"Feature",id:"BEL",properties:{name:"Belgium"},geometry:{type:"Polygon",coordinates:["@@؜áުǪՐοҦȝħ֧ɕĝһܿϦћßדІϷͶϷ`ũ̒ڪǔ"],encodeOffsets:[[3395,52579]]}},{type:"Feature",id:"BEN",properties:{name:"Benin"},geometry:{type:"Polygon",coordinates:["@@ۛįȹ׆žኞǛǦЮ̇̌ʱʞņѶ̀ĨǠξЪĀȀʤˮʘ̠F٘ә˩ȎӽǓͷĘɧСԳʵʳǁՉt՗µണ"],encodeOffsets:[[2757,6410]]}},{type:"Feature",id:"BFA",properties:{name:"Burkina Faso"},geometry:{type:"Polygon",coordinates:["@@ֹɐϽ‹̍Ƀϗǰƥ˦ϙǾÅӦɮΤo˴ښۢŬּɲȴОœΚǢŘɎٴϖdžˀ޼ΒҦŢɀLJՠJáСŔϣӀչ€НॺȏmֻǿʣЩÿǟν˿ħ݁lϳâ˓ƉωÖร¡qӉŘم"],encodeOffsets:[[-2895,9874]]}},{type:"Feature",id:"BGD",properties:{name:"Bangladesh"},geometry:{type:"Polygon",coordinates:["@@i׽̉ŶÆگʉѬµєDžКΕӨޟ’ü΋˃ҳΧǠũƵʃĠ͗øŽۖ̅لƜԒԫɤȆ̪Հ̼؅Ѽ֮̔ږεВ£ô׏ߞřު^Ӟƛϯ܅ϕµʷӍҢѥƎ՞ɶFѶ೯"],encodeOffsets:[[94897,22571]]}},{type:"Feature",id:"BGR",properties:{name:"Bulgaria"},geometry:{type:"Polygon",coordinates:["@@ʎΉ͚Ö٦ſ௾«иɌবȜ̩ؒӴĕѥΏ̫׹˔ӏܣŒࡥ˃Uлޅÿס̊ڧɱة|Ñ֊сːƒŢĝĴƘˌ͌ˀСδ÷̬ȸȐ"],encodeOffsets:[[23201,45297]]}},{type:"Feature",id:"BHS",properties:{name:"The Bahamas"},geometry:{type:"MultiPolygon",coordinates:[["@@ȵ£ɇӜ̿ʐǾՔʨ‘ۣ̎Jӥ"],["@@ࣷƅÏ̴Ђäֈ{~ɕ"],["@@ƟׯƷņ`ѮϓͪCĪڐϗ"]],encodeOffsets:[[[-79395,24330]],[[-79687,27218]],[[-78848,27229]]]}},{type:"Feature",id:"BIH",properties:{name:"Bosnia and Herzegovina"},geometry:{type:"Polygon",coordinates:["@@̦FȿσМ͓ūЃȡ™ƽû˙țūҥݓ͈ͅΘ͋Ȅϭ̾ǻʺЩϾǬΒ̞ȕǼǨϾnܠƓ׈\\Ϟȅ"],encodeOffsets:[[19462,45937]]}},{type:"Feature",id:"BLR",properties:{name:"Belarus"},geometry:{type:"Polygon",coordinates:["@@߼Mࣰ̈́ȚӄېːÿϔԜƚ͖ࣘࢮɁŢȻѲĴࠒȧĊЁǷɧՄս΂Ƴ»Ʊ֦Ʃʎɡ͝ǿڳˆljÿȠ˧ȸ՝ܝ¹ʵȁÃхͭĆݷ¡əȞ̿ƥ́ŨڍjफȬࡕàٱmҡɩГeϐʷϴԌǢLͰɷ͌™ϊ"],encodeOffsets:[[24048,55207]]}},{type:"Feature",id:"BLZ",properties:{name:"Belize"},geometry:{type:"Polygon",coordinates:["@@OŮĸžƴı̞ԔDŽZHūDŽGaɭƋεôŻĕ̝ÀăīщǓɟƱǓ̅ʣ@àॆPژ"],encodeOffsets:[[-91282,18236]]}},{type:"Feature",id:"BMU",properties:{name:"Bermuda"},geometry:{type:"Polygon",coordinates:["@@OEMA]NOGNG\\Q^McMOI_OK@CQSGa@WNLVWHFLJXVFGJ`ZRTDLeeWKIHGIK@@[MQNi`]VDTBHCJAPBJLVFjT^LV\\RJZRn^RH`TfJjZHHOTTFJP_NOX[EYQQKMEJOLANJH@HQHAARF@ZEPS[U_IcRQXE@EEKKOCGGCQCOGISKYGUC"],encodeOffsets:[[-66334,33083]]}},{type:"Feature",id:"BOL",properties:{name:"Bolivia"},geometry:{type:"Polygon",coordinates:["@@य़”͟گӳ؈વȲ۫ݹ؅ŗ͡୆ҋऺˆ߾ѳ΢ŏ؆ЫֲՌ࣢αۺȖ˰ƭ̶͠рh܎¤נǸ˶ܩഠزíѠnȈʪ݀;Ѷ͂સƚęؽļ͓ãࣰ֛ݫऴƑ̻ͦ֨ǕΐʑՈTӦʟšӟǐʕZγʓa͒এྖ“ūӟĜͧҞɽȤԹƫڋɯρĄӏʿǥaʶ޳јޭ^ัʓЕ݋sҋͥ৕ƉǸ"],encodeOffsets:[[-64354,-22563]]}},{type:"Feature",id:"BRA",properties:{name:"Brazil"},geometry:{type:"Polygon",coordinates:["@@૮ନॆࠄ֠΂ۼҪjڤуӞеLJǒӜŖӼBҦ̡ƴ̿Ƌ̻œį͔ýޔƿʤ֥ɪ΃ǏࢱLjÈଜʝҴˀǦăӐɰςƬڌȣԺҝɾěͨŬӠྕ”͑ঐʔbYδǏʖ™ӠӥʠՇSΏʒ֧ǖ̼ͥळƒ࣯ݬä֜Ļ͔Ěؾષƙѵ́ܿͽȇʩџmرîӃƟϡĪÈ౨ۏӷݏv҄ͅ֏¶DzΰұԞΓݴɜƶA΢ԖʎċҔɊ̈Ôϼ०ֲێNJŔŴݴŸϚᘰpθſӔύ̬LؐӀƒǚē†͐ӯĔYՀ࿖k˦̂ɸˉǐӷǂļҨѻٸÆnjʲشȞΊƐĮΤ׸ʆ¯Ǯ܅ðśՊ’֞ϓɒǀþجŅڜȿʐȤ؀žल̮͎̾ŏʂѪšȜȗʼnσ̀ŵȖϷɷ̏ƅ܏ɌыÔϳԬϿЮ¥Ģǒˆ˜ϠƦ˚ɢҬíȲŠҚçøǢƗǘĎʐͺõЈĒӔDZξǥʺɪȊ•ŘɿДÒ͒͊ʴؤӼޒ˺¢ȺҫҼ฽҈Ƒxׅمەʾʩ๤ƁŠࡃٔր੐̟ඊԡШӱƏҫ঎ʶ࿐ѹఴŽఔ۝੸व٪ʏܖ‘̦˅˸੭Ɣԗͯ൹ёշஅୡՙोثܯȿgɻءÒ༽ɹಓęօˇͧƫ૱࡛઱ƛࢁڹηȟԋ࣯Fೕ͓סύवʗ঩ڝ܅࠯ũطƔҫƽࡓȏЧחҥट๕݉ڗ֯Ͻϥߛ։ӑɷӈψЊӟֲڇҬࡹՠ̹{ࡅٰձę"], +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ନύʐ֛ƛ˧ɚٙىʱٹ̕ϡΥŽˏ¥čȹ໽A౥MϛƷࢵ؃Ŀßˍ͝ޗ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ഫļᖁ˔̃ҦĹжࡇξ჋ĺঅʼ͂ΈႾÁ"],["@@ŗ٣٩̇޹£༝Ϋ഍ŹଗǼ@@ුؼႮծಆ[ସŬ"],["@@ϣy༽Âɡɼၜ]מƻĵĩ"],["@@༩ʋఝ˔ڼˎ௮Đஈſ˩ʥ"],["@@৽ǏඉBbŤࡴʦҌદǝ"],["@@కǥۃȚέ͂áΎજ‘ӪÅ৐̇ɫ̣"],["@@͜Ε൏Ĥ൩˘ሏŒߺʠ৫ȮÕ͐࿶ŕᗢ̫ٞЍ"],["@@০˕ଽʟ༇ك๥Óდņࣗ΄^̦ڔɢ໡Oए˨ՑϠ׌ώ׊ʲࡴÎοȖዜ¨੶҅මǵ൞ǃڒև"],["@@ᖢßᅮŅ໤ɫ™ɡᏅη᎙ǟݻȉᆬJጡԙേʃ෯ۇႿƓՙǡᡷěୈĿׇƭ۞бߙ˽ಛʃЋ͡୫ʣŞȏ෬lȳᖟԋᔧɴឿŻధĸཟªĿЖ༊Ȑб؆ԢÐᖤγ଩բഹLjڼ͘๰Ȩʄ̊஋͠ΥѠᘞ—ڒĝ಼̪ቃĬ᰽Á๣˸۩ͼগʘȁ˺దLjঘ‚࿲ƌం̺ਬ©ࣤɽٔҒૐƈບĢᢲ–Ҁĝ᝚ƚᆔÁᆒÁ"]],encodeOffsets:[[[-65192,47668]],[[-63289,50284]],[[-126474,49675]],[[-57481,51904]],[[-135895,55337]],[[-81168,63651]],[[-83863,64216]],[[-87205,67234]],[[-77686,68761]],[[-97943,70767]],[[-92720,71166]],[[-116907,74877]],[[-107008,75183]],[[-78172,74858]],[[-88639,74914]],[[-102764,75617]],[[-95433,74519]],[[-123351,73097]],[[-95859,76780]],[[-100864,78562]],[[-110808,78031]],[[-96956,78949]],[[-118987,79509]],[[-96092,79381]],[[-112831,79562]],[[-112295,80489]],[[-98130,79931]],[[-102461,80205]],[[-89108,81572]],[[-70144,85101]]]}},{type:"Feature",id:"CHE",properties:{name:"Switzerland"},geometry:{type:"Polygon",coordinates:["@@ƫŹȳϞƵіwá΅χƙةŀǻ͹ЏơƄһ˵Л¡αǶ˽ςБſ^ϠؚҾɈϤûɲƞ܎MǦǼ࣒ʱ"],encodeOffsets:[[9825,48666]]}},{type:"Feature",id:"CHL",properties:{name:"Chile"},geometry:{type:"MultiPolygon",coordinates:[["@@Bም࣒@Ԓw˧ͻܛʻЭ‚ӻä؏ʨ࢟ŨੑҸ࡫Ҏୃशۘǭ୼֗૜̟ѢϬ˘ֺޠΎװı"],["@@͢୅؆ŘĺɁ˿ࢍࣵг€ඓǫ˓ʦ͡ץԹջ߁̛ރĀ߿ԫࡹϮฏɔƵCޛӑࠍpۯٍշFޙʮࠏԉ̧ɣݡȟࡱƚ৿ͷǡȞॹϜ͇ˡΛ϶ǙĚ̓νǃĜӱ̫૗ѽܓĮыˇՑ٣υôࢹ̧̐֔ÄgؽΒө᎔őުſݝPЙȷݷ̣Ɖ޹Σoॅ˚१ג@@ਲ਼ӔˁՒʄӰх֒Ņ෤Φ߰ࢴٰౣʔߞݒ˸ඊत̏Ѯგ֝ɠʿ਻ՉŠ˂ல˺༒ϮָʍࠎéूΠ„Ԩപ׈എΤబȗ఼ʤۚĵਞӮਆưྺ˒ნˀሤÕ൘ǩ஄ќɌɦњЬֱŐ؅ѴΡ˅߽Ҍह"]],encodeOffsets:[[[-70281,-53899]],[[-69857,-22010]]]}},{type:"Feature",id:"CHN",properties:{name:"China"},geometry:{type:"MultiPolygon",coordinates:[["@@ԑഓΫۏѷ܂ĩخӶࠜڦَϨʡƣԓ","@@ܩЗۏʺyܢаϠࣾɾӚoȊ͍σσșӟ"],["@@ฬˍ঺ׯͼ߃౨Cܰͨ൸ʜѳݱ͙̭˽ः֡ࠇ৵ƪܝ̑ɜܙť঳ѕwLяթӺͯһಙαƀѹܩŒЍ˂ֽ׭ऑҋۃա୭ʑأϽࣝɭ҂ϴǭ͞ږ֠ѹѲܷ̓ॉ׏ԫթ࠙¡ѓϻѸ֩یƏ„ϕڔʕस׶ݚ͝լuƌѱஓɻϻҏࠇућיࣜҥͦࠝԞޓ֮٥_دՅɯȪ҃ӶʻŻۃɇڗҷ÷ؗࣧڹિޭোିޡୟۻृĩԣύ̃˘Ӈй୭сࢵŹ˻ࢱҭ·ə؎Ȧ͘ૻːЇƍࡍɔЏ΀ƄӜޏƶЙܑ̀҃ࠇīڡJ҉ȳѥūŶ॥҃x÷Ȣ}Ύ؝ʓεƸر͂ʔۤՏǎȧޜࢱƓĴাߔۮ”ۚ{٠νȨ˭ӶӭÙࣟŲ˴ΜϿԺ׳Ν۵ȸॷ՗އسڳĿοɦѹr׷Țґɇ֋رëڌԟǭওĈोȖڿτٵǔ˯ЖҽŦࡓոکʴΑȩଢ଼טࠛՒɽऐ׾ő‚іͭјĐۆࣙঠ൧ͼʝ٦ةϼƫʌųӎˆ͜ԛȔ˟ďɇިʈȔśȠߤЈ׈ǐࢸő͆՜ંIJͮ̚೜ҔŠȐãӐּɔݱฦဘͲјȈ؆ຒဠˡҲϞ¢ࡆۦĀٖ֔͢èɚו۸ѽப̿׆ڱ͕ঙ̢ηূƝଆŝ৪ԻԲġϤޟӲӿऒnჄȉ૤Ŝࠦůఔԛ৮BόʽঐҌബ̈ాŒঘ̒׾҈ך˰Ƌˤˍ͔ѴըӀùࡺǝ࠸Ѿ౲͚؞֊נʆ௠ŐڐĥĠ̘ݿזګː٥̳ࠣžӇŃɏΆר࠾Цو৚̓ஆՎQτݸࢾҲːWҪңȦۜмਰƲ૜vసʡ݈̱԰ࡏ̀α̊ԩ̶ࠕ"]],encodeOffsets:[[[124701,24980],[112988,19127]],[[130722,50955]]]}},{type:"Feature",id:"CIV",properties:{name:"Ivory Coast"},geometry:{type:"Polygon",coordinates:["@@ϣUוǒ՟Wহƥ׍ʍ̯ࠫNjvÞۖĄŀ}ͨΣΚˉÈʕɲǾώčО ʔƄB¸ξÝnjĄŜ̸ĶȹڨȗΎæ˸ǘÞŊúɸųٮOƸʖƢgʎĦžΫȞłΌŰϚǽƦ˥Ϙǯ̎ɄϾŒֺɏɠ஡Ο۷ɕेθܣ›ͧ"],encodeOffsets:[[-2924,5115]]}},{type:"Feature",id:"CMR",properties:{name:"Cameroon"},geometry:{type:"Polygon",coordinates:["@@Ľ°ӻŇԝŒЋÅ൅nŬڒ͟֊ϧƚǟϖɋŦXɶɎתЎ߸ʒRԄӮ͈bҾΉ־˲ĀΔȌͺžь҆ΊǞךDzȊŢѨɜ՚۾ٲ¬˨ĠƲͫͰ‚ˌʂ¶ͮ՟Ê֏‹֏ҜޅҷTʁÏϥČǻЅӸөμƛŠΏˆ׃ſɩх࡛ȫƳÝٳČΝåʡЈѭð̴̟џϨ˓œϥĘʏÓґڛȤڷɜ੗"],encodeOffsets:[[13390,2322]]}},{type:"Feature",id:"COD",properties:{name:"Democratic Republic of the Congo"},geometry:{type:"Polygon",coordinates:["@@»ঙͶŕˑ̗͓ɟ͍ѫǯϷ±ګț͍Oهʍɹ‹ԃŗÝýҟɄϡÂ৥ưޝċѧǘӣӤҹҒ੕ͥĒ૿ƙɣĵʇՙȊχƫষĻࡇɨƫט͝ɲƴìٟࣟR·Ҧ̳ΨٟŠȋѰԣ˅ڧŞ˫ϢՕüϽqµʾ́rϥºԳųιtȻû®ৄ˩̸ÕԬŬԒǝ͖eՊ৳Qò̢ѕG­ƣԵɁӧűȿҫŠˣş։å͏Ѱȗ˖ʋԌȷض៛\\̍ķʑh΋œşʼɊʀμƎɎ̪ǰɚđ˼͐ҜSÄʃ̼ƩӶՄӨШɆːƒ۔θࠆϬўքМĪˌt̰Ǝ̆«ӊŀݖǐԾʦ҈¸Ԕúה͜ѐҊ˔۔˷՘ؚ̳ĉظǏʦԖŘÞϦčनоͨDZ˖~ŴȲ̺ðلėբoˤĚԘۙϘķɤƖϲÅҶDzȦΫ݊֏"],encodeOffsets:[[31574,3594]]}},{type:"Feature",id:"COG",properties:{name:"Republic of the Congo"},geometry:{type:"Polygon",coordinates:["@@̿˾ʩƗͻγۏࢸٖҪ̓֌˾ɂ֦ĺäό҆Зݐ•ʴЈł֒ĝڀЉӺζ঄ȽǘسçɻѢÔξ੘ڸɛڜȣÔҒѰ޲ԆѼ֪Ɨդ±·ԓʥ҇ǏԽĿݕ¬Ӊƍ̅s̯ĩˋփЛϫѝηࠅ„ۓɅˏӧЧӵՃ̻ƪÃʄқT˻͏əĒ"],encodeOffsets:[[13308,-4895]]}},{type:"Feature",id:"COL",properties:{name:"Colombia"},geometry:{type:"Polygon",coordinates:["@@ΫȤЭ˨ʅƅ܉Ŝȱΰƽ_࠿Ӓŕʺ̼ڛтȢ̦иÊΞՆ͐Ѵ̳ȦDŽӦȏސǸɚƃ܄ͻ҄ņТ˔ÑǂʠțӶĺŬѢـהΌĚT˦ƺ܂ӖϸՊfäǪڂéڌъ͞ȊОК̖»ɚɛǍ˱գƕɇп͗ʋʓ̷Ĺ׵ɷӭѢÇņϭȄȁâ͹ij̵ˆǫȸéȨ̉ઊĄӦŃעܡͼĚ؂­ӐĪ̔ƟƱҍȇ˯ß׻ǜ֑ʆʟ†ȉэл̨ȃɠ̋ʰ࠹ǁĻǏӸɷˊ˥́࿕lZԿӰē…͏ǙĔҿƑK؏ώ̫ƀӓoηϙᘯп҂ʣpժࡤٟϾԍị̈ƤҧɝصŀӵࢤϳɐˍІ֑Њɡā"],encodeOffsets:[[-77182,-155]]}},{type:"Feature",id:"CRI",properties:{name:"Costa Rica"},geometry:{type:"Polygon",coordinates:["@@җȆǟǮĬƤ‰ȄɷȪͥǔ́ņÅʖəƮÄʑǗȩȓɸˑĊŗǞLʮŎˆʁŠȖnjŴňֆɝȖŊˊéƔǥʜÇȪDzɈҙ͖ͷЂΩ͗õLͷǪűűıƱëǟ©Ǖ"],encodeOffsets:[[-84956,8423]]}},{type:"Feature",id:"CUB",properties:{name:"Cuba"},geometry:{type:"Polygon",coordinates:["@@ܨÑڊW߄˹̭ͮ޺Ĩ̔ȡ܈ԳԺϛˢ\\ԆǟÕʁئ“ٌ΅ıȟ֑Ń֡¥׃âளą֜Ҷ΁ɔէÈ̃ʐȥӎӃ޵ɦʥǬભž̋ǐ̀ɀࠗ¨׿ѧΏ[ťȳеğΫĂѺʸǼ̤ϞȈіǎَĄȰĢ"],encodeOffsets:[[-84242,23746]]}},{type:"Feature",id:"-99",properties:{name:"Northern Cyprus"},geometry:{type:"Polygon",coordinates:["@@ÐJŨȮ؄Yކʢ֧ΧÔƿęˆLJÙűj¥iĎѾNjVɫïƿ¬"],encodeOffsets:[[33518,35984]]}},{type:"Feature",id:"CYP",properties:{name:"Cyprus"},geometry:{type:"Polygon",coordinates:["@@€ãࡱͿЩŊȟͶЎŒǀ«ɬðnjUÒ½j覎ŲiLjÚ̇"],encodeOffsets:[[34789,35900]]}},{type:"Feature",id:"CZE",properties:{name:"Czech Republic"},geometry:{type:"Polygon",coordinates:["@@ϯǂЁ©ٵʲ̏Ùҿ΅ر˔ӃΰѕȬėΠƧʠؒǾ̸Ⱦ׾ǎɂdžɜīϒĖЊ˓ؼñ¿ɳҘǧŲɒּĥĄʿز»ϮЯʡCŽƯȕ—ÅȑLJ¡wý˹ēϋbšȁ"],encodeOffsets:[[17368,49764]]}},{type:"Feature",id:"DEU",properties:{name:"Germany"},geometry:{type:"Polygon",coordinates:["@@d͗ࡔțS̗ࡢǂҾɰॊͧІˋȞёɹɣ̨̙Ⱥ҅ß́Έ՛ϑĕɛĬɁDž׽Ǎ̷ȽؑǽƨʟĘΟіȫӄί̑ϯ̟ŃŢշýƛʿǤЕ~׷ƭݍ–ţɛыɺʩ±࣑ʲǥǻ܍Nń״ьֺ௅ƸЇɘ´ςǗȐĨ֨ƗࢢԎ@Ɉ͂Ⱦޔƿ˴ǐDz۰°Ƽȃ֮вȓ̀ӈٌōՠŸ"],encodeOffsets:[[10161,56303]]}},{type:"Feature",id:"DJI",properties:{name:"Djibouti"},geometry:{type:"Polygon",coordinates:["@@ȤʹΑӏȩήɯ̱҇ȅƬȭÏҷb_ʮßɶ˴Ѐ̐ϊήñʪȴ"],encodeOffsets:[[44116,13005]]}},{type:"Feature",id:"DNK",properties:{name:"Denmark"},geometry:{type:"MultiPolygon",coordinates:[["@@ԋڹ࢟ӄŝΒ௼˨ˎу"],["@@ȵ̓ʡĞ؁؁ɮХ՟ŷًŎͽҲ}࡬Ɣɪʌʦ݌À̐ɴڮʂƒѝʟ˙ĶɽҘŵ"]],encodeOffsets:[[[12995,56945]],[[11175,57814]]]}},{type:"Feature",id:"DOM",properties:{name:"Dominican Republic"},geometry:{type:"Polygon",coordinates:["@@ŀƞپIӾɏɜtƴ̕Ҡhʡϐ‰Ю̷̯ͿЍǼϫ•ˡ¢ƱƵ͑½ŷȲˣťͳֻɏƆ§ʎjɬɍʦȲƚÞ͒óҜ"],encodeOffsets:[[-73433,20188]]}},{type:"Feature",id:"DZA",properties:{name:"Algeria"},geometry:{type:"Polygon",coordinates:["@@ᮩཽᝩ࿷இϑटćU՘ϵƌԹʊȧЀᬻᆴᬻᆴṕᎠfnj@ÊQ঺ബب࠼Ÿێɦ͎тচͪ˜جӢòϞ̶સƚƸ͜ɛDz̃ࢲ¹Ԟ́ՠ߰ҠࣦƢՌΎ߶ʰ෎Ƭർæшůߊͨ࣌P΀ȝֺ¾ǟћƄߟȡۙԭҵôمۊԃRȯԮ͹Ϊຝ˖ݏ°ϵƧۇÔϥŃҟòՇͫΗӺؓŽέ̘ҵϼƸڒϷςՃ"],encodeOffsets:[[12288,24035]]}},{type:"Feature",id:"ECU",properties:{name:"Ecuador"},geometry:{type:"Polygon",coordinates:["@@҂غǻξ͍ϵԉςǞʀƙބ̎ŴƺԼ͆զÍ΄ҢǸ׀Ͱࡀӑƾ`Ȳί܊śʆƆЮ˧άȣŞٓʽճࣷ࢟য়ͧԥܵǃ֣Ӆ΋ΙъͻĞ΍áw̮ʈȨıΔ"],encodeOffsets:[[-82229,-3486]]}},{type:"Feature",id:"EGY",properties:{name:"Egypt"},geometry:{type:"Polygon",coordinates:["@@ɽͷǹىɫѩȝƥ˩˔ϛϒ׵ஸđùΐࢯԪࡋٌವ̴ҙ˒ӃݮछǗƣ‚ճ঒ݭƨǣΏ@Ὁ@⁩@@ᶶ@Ჴʥڲɐ԰Żά̤Ж૦b߲ɝ࠲ʛϴſ٨ˊΌʊݎêװŃɮеȜ˜ڨȣټ³аɄւ෽"],encodeOffsets:[[35761,30210]]}},{type:"Feature",id:"ERI",properties:{name:"Eritrea"},geometry:{type:"Polygon",coordinates:["@@˻˖ΉӰϋ˒ɏܷ̄ͶֻXȭǬӯȡԛϢʽط঑ǬęʹβఀĊ֒ˆʴؤƐьӒӦঃɴޗҢУବߏҲӍҖӝˀ˿аʧʩȳέò"],encodeOffsets:[[43368,12844]]}},{type:"Feature",id:"ESP",properties:{name:"Spain"},geometry:{type:"Polygon",coordinates:["@@¦״΃θஒ؆ਊƱ૾NࣂƝۦªമƒͰ͛໺ϡ̨ǺीϝআŊ®ӥߓ֓ઁǯõ˱ԩү͕ہ͞ӑӟϑǹճىǗש٥੧_ߟhՃ͍̓ͅЩê̵˴ʃӚ޷žé˦̶̀Śɬ̃ʢɶրͳԌδè’ЈƎŬZپϲɪɻфөˆƝŁӹCɁЬ΃ū̥ɇ"],encodeOffsets:[[-9251,42886]]}},{type:"Feature",id:"EST",properties:{name:"Estonia"},geometry:{type:"Polygon",coordinates:["@@ĮӸ̱ŁՓ̘ñӘਫ਼ɼ੔Ũ࣮Ƒࢂ|Ŵƣׯӝʞ޵ΫˉۙDܡ̸ρļ܏Ʃ"],encodeOffsets:[[24897,59181]]}},{type:"Feature",id:"ETH",properties:{name:"Ethiopia"},geometry:{type:"Polygon",coordinates:["@@ԜϡӰȢȮǫּWܸ͵ɐ̃όˑΊӯ˼˕̏ω˳Ͽàɵ`ʭҸaȮÐȆƫǽ̴̕ҧ̴Й̛͎ᩨঽۺNᛛᡃફ™ݟףաeɯ˅ַB͹˴ލΙʝΓ֕àȃĬȟwˇT੟܌ב@˹ˢ@ҾѧƘӻࣴϥȚƧʹэЦԧÒ˸ӐҀrŲʰ[ݲʞࢠЊɾĎ΄ήٜԔи΀ࠠƆܠ঒ǫʾظ"],encodeOffsets:[[38816,15319]]}},{type:"Feature",id:"FIN",properties:{name:"Finland"},geometry:{type:"Polygon",coordinates:["@@ūיಀ֓ޡى঎ख़֡ܛݴس΅յఘֻ́ѓޭӟᅡੵໃá๑̯ൃǯӡҞ߿ˠȈࠢСݶАӪނՆ኎࣮֖Ǭē΢ୟЈ˳͜uಒ಻ֲ૩ЪԊɞतѻલ¦ࣘȭߠϊЬ؞ಬ˶઄ͯΡכ"],encodeOffsets:[[29279,70723]]}},{type:"Feature",id:"FJI",properties:{name:"Fiji"},geometry:{type:"MultiPolygon",coordinates:[["@@̂ʍƓѭԳŗҩļąτ͖̀ϤĻȼƐ"],["@@՛ǯŅ̼оǤˊ°Ӱˀ@ЧՕȷ"],["@@é­@ШǨžĽЗ"]],encodeOffsets:[[[182655,-17756]],[[183669,-17204]],[[-184235,-16897]]]}},{type:"Feature",id:"FLK",properties:{name:"Falkland Islands"},geometry:{type:"Polygon",coordinates:["@@৘Ԍ܎ȿԌʹڦϙʥ̋ଋʥϙ̌܋ϙпϚ"],encodeOffsets:[[-62668,-53094]]}},{type:"Feature",id:"FRA",properties:{name:"France"},geometry:{type:"MultiPolygon",coordinates:[["@@ˣ٭ϡǠș֢ǜ̺ը͎Ɯܛ"],["@@הЅќà݀ϥȊñʎjЈɗெƷыֹŃ׳ɱƝϣü‚ɇؙҽ]ϟВƀ˾ρ“ʁʚ̿̅ʯɐٱҖŃĩηݿӅစɬ௧˗ĩԑঅʼnिϞ̧ǹ໹Ϣͯ͜ѢԎdžူࢁࢤإю౹͒čؖઠǾථɏˇॎߌέዠپʨێܾǞŪ̑ϸ_ϸ͵"]],encodeOffsets:[[[9790,43165]],[[3675,51589]]]}},{type:"Feature",id:"GAB",properties:{name:"Gabon"},geometry:{type:"Polygon",coordinates:["@@ࡹࡔ։ۚԙࢄ‚˨ǾˎȲؔǜخ˴¶௢SOৠЌÆԞőӼňľ¯ÓνɼѡشèȾǗεঃЊӹĞٿŁ֑ʳЇݏ–҅Иãϋ֥Ĺ˽Ɂ̈́֋ٕҩ"],encodeOffsets:[[11361,-4074]]}},{type:"Feature",id:"GBR",properties:{name:"United Kingdom"},geometry:{type:"MultiPolygon",coordinates:[["@@҉ֽًǦԱ[ǦҊǥ҈۴–ࣔԳ"],["@@࣋ࣧࡦŘऄIɕۅݯݩࢄÃäĕݠ঱ֺƇԬढ़ʈͧৰDžķ՝ѓʗͲѣݱѯ૳Rෝɱϻǒ։ϿޥĪם͍ҁǘ௼ࢨݪǺOBಽƔʃͰ࢜ʺҡҐdžռఢ÷D@ŮӤ֛Ԯ_\\৵ƨȧɬ̨ϒˡɴҍЇ·߶щє̨ࢆٶھڤá০ì"]],encodeOffsets:[[[-5797,55864]],[[-3077,60043]]]}},{type:"Feature",id:"GEO",properties:{name:"Georgia"},geometry:{type:"Polygon",coordinates:["@@Ųάȿִӟ̲ҭĬ̯ʴĺIJ܄ƝఆƋଦЕƦƻԚƂ޶ǭʴ·Նșɓřвғŗıҏºصʎȵƍଢ଼ſ߳Юࣅ¡"],encodeOffsets:[[42552,42533]]}},{type:"Feature",id:"GHA",properties:{name:"Ghana"},geometry:{type:"Polygon",coordinates:["@@೉ӯҳ˽ݳʑݡʆœͨηܤɖैΠ۸ɟ஢ŗنrӊฤ¢ϊÕ˔ƊϴáÕʿΖџC؍Ąڍɂ̫ȅݳäйɢՓȈ̍"],encodeOffsets:[[1086,6072]]}},{type:"Feature",id:"GIN",properties:{name:"Guinea"},geometry:{type:"Polygon",coordinates:["@@ʃtǡͷʁJǏǴÈͶΗԨɕħǵmɳ³V̮Ƈɘ‚ʔǻΜɹ̜ڥDțǁɵoƝǷīɹ҅σρӼ͛͢ɋŊȿǖħϊūȂʓƐώЦʮeɖƘȄDƄŎï˨ĢĖd˶МU؀ȱȄlÚĤҜáŨ´¶̭ƆBɖŒƔƒɸɇάãɲǺ˖ŒȬŠǚuȈȁĴɳΆΙǣɏ˙ǴĊŀį«ʡʲʍǗÝå˷Ș΍Ⱥڧ̷ĵăśÞNj·νƃA"],encodeOffsets:[[-8641,7871]]}},{type:"Feature",id:"GMB",properties:{name:"Gambia"},geometry:{type:"Polygon",coordinates:["@@ņόࣶzȎȦˊ`ͨȷʼIˢƚǞʏεȋιdέǰ̷ȗƭQȫŝއl"],encodeOffsets:[[-17245,13468]]}},{type:"Feature",id:"GNB",properties:{name:"Guinea Bissau"},geometry:{type:"Polygon",coordinates:["@@҅ΘΝÈȕʀLŸʯǴÁǶѼƌ˦ɦĨ༈•c˵ġĕð˧ƃōȃCɕƗʭfύХ"],encodeOffsets:[[-15493,11306]]}},{type:"Feature",id:"GNQ",properties:{name:"Equatorial Guinea"},geometry:{type:"Polygon",coordinates:["@@ƿŴ़̀െmPয়௡T˳µ"],encodeOffsets:[[9721,1035]]}},{type:"Feature",id:"GRC",properties:{name:"Greece"},geometry:{type:"MultiPolygon",coordinates:[["@@Ҡ˱ٺ¶شÑqƣҜĶĿʛ௃íTƒਁǎƺΦ"],["@@ʹՁȥĥԟ|ѫĀৱɓ׌ҿяƋҳAѻўƿȁȊԅрЁ̓ǿҴϯжʑ^ӅޥɠʜѕՓĕ͈ݏ֏Yۍμ̿ڦƧ֒͝ϮљӐÉʆϸТ¼˚˘Ũjɚռö͌ȀҖgƒƦdž„ت{ڨɲע̉ކĀVмЦɝ"]],encodeOffsets:[[[24269,36562]],[[27243,42560]]]}},{type:"Feature",id:"GRL",properties:{name:"Greenland"},geometry:{type:"Polygon",coordinates:["@@ᬜԆ᱒›ੴ̴ᲈĄ䀦Ŀ㉊ڗ༅͕ộ™⭏ćшƫᲐĠᡚ́࿈ʴۦ̝इӧᒞ̺✘͚ᠼNjҾΫ⃝ױӃȕ᧑ơወ¡ছؕگկ€ध৚շಽ“൧ˇ༂ѽȢ܋࣍ýઞܡህÑঈ΁˟̑இŽ୥E੆֩\\Ϗပΐћɣଌȿ઼ԣ͈ڱກlj٫͖ਣӘ˼֭উѵᕖ•୆¯ᖯܵᗿڏឧ́ओIࢅ͓ୟࢱᅵכׅ“૧ȷ஽ȝܛԱ[כыտോڧͺٿϗ۝љࠍஅ½఍ۈဿLࠁҢ֕ࠐฝਲэոŗݮ୓ޢ̢ئ֗̒ࠪচొ̺ͨΘǬڀॡ̕қůݯţਏ˜Éְ͢҂ެ\\႔ɟ෿Քݩ˾࠷ş۫ȼम޴ԝ̺ڗ׈ৡࢼ੯͚XΚᖷӮᄻÖᖟ‘Ꮕ×ইˌวՈᕂ˄ၚ¬≹ɖ቉΄Ś͜ẊИᶎИ̪͘ᗗ̠ܺͰ᯲ז௢ĚΓϘጲɜᣚƂᣖRࣺʽᕺҨፘ̽୺áპ˙ፅҐŘή"],encodeOffsets:[[-47886,84612]]}},{type:"Feature",id:"GTM",properties:{name:"Guatemala"},geometry:{type:"Polygon",coordinates:["@@ћƦԻfϩǖҍΌrʖĮȠšƾКۆ઄Ft˸Ƌ¾ġǺ̵Ț̹ˬϜDBӂ޸BަUOڗßॅʤ@˚ƱòŰʘŃϥ͍ЉɻÏljâǑǧɇȟ½¬ıƿġ˽Ƀ}ŭ"],encodeOffsets:[[-92257,14065]]}},{type:"Feature",id:"GUF",properties:{name:"French Guiana"},geometry:{type:"Polygon",coordinates:["@@͉͑ГÑŗʀȉ–ʹɩνǦɈΪòϤƢή͛ӸáֺѪܠ˸ğؤȥࢸۿƔ·ӻޑʳأ"],encodeOffsets:[[-53817,2565]]}},{type:"Feature",id:"GUY",properties:{name:"Guyana"},geometry:{type:"Polygon",coordinates:["@@ր̯Դյzџ̈́o҈Чͪ̇Ƈݱԛɕ°ȣƹџϊ؏ːAŎӃԢܳȱ‰ҫî˙ɡϟƥ˅—ġǑЭ¦ԫЀÓϴɋьƆܐɸ̐ȕϸ˿ŶŊτțȘѩ™ْ֩ɬɲiϲԬƊȾƾ˽̸ô̬ږӲ"],encodeOffsets:[[-61192,8568]]}},{type:"Feature",id:"HND",properties:{name:"Honduras"},geometry:{type:"Polygon",coordinates:["@@ơˀʭòÐʹŗĞǣÒσij‹ŔʩƈǷǚʛìǨɈáǒÐNJЊɼϦ͎ĔȂƨʊ\\þ垦ϸùϲv˒ĢİĦˎ©ȪÉɘnǖòϨśƄkʲƿʐį̏Źɜɳ˽jśŕ̇ŋɃAȅŃǙœƛźĕ{ŇȩăRaǥ̉ɳƹıđĽʛǞǹɣǫPȟqlЭūQĿȓʽ“"],encodeOffsets:[[-89412,13297]]}},{type:"Feature",id:"HRV",properties:{name:"Croatia"},geometry:{type:"Polygon",coordinates:["@@Ȳ͗ˊʇ͓̓ϝȆׇ[ܟƔϽmǻǧ̝ȖǫΑЪϽǼʹϮ̽͌ȃ͆Ηݔ͇ġƛ߃̶ӣ̢ޑʠ۹ؤǞØϥΞe˲եƄʱγʝˮn̆Šbג…Ƹƚ˸ƍͤgGɼ̈ĒĈͺڞɠˊĻؼέۜlj̼Ų"],encodeOffsets:[[19282,47011]]}},{type:"Feature",id:"HTI",properties:{name:"Haiti"},geometry:{type:"Polygon",coordinates:["@@Ԣ™ܰƁôқÝ͑ȱƙɎʥiɫ֏ƜЅÍԡÔϽƿ҉ʾö˔ޜśيã̢ȈϧθP͎ՋžȌɶ"],encodeOffsets:[[-74946,20394]]}},{type:"Feature",id:"HUN",properties:{name:"Hungary"},geometry:{type:"Polygon",coordinates:["@@˨ըǍǼӂDÜ΄ђɋ̲ğ۸ļäǚͮ~ЦžĜÃЂŀȠȢˠ¼࣒ʭǴĒҲɭÎɣԡǭЉ֫ԕ֭کǁԽš١ə̻űۛNJػήˉļǍ˴ƗV"],encodeOffsets:[[16592,47977]]}},{type:"Feature",id:"IDN",properties:{name:"Indonesia"},geometry:{type:"MultiPolygon",coordinates:[["@@Λe૝ך޴ǒѴʭ̎ʭ»ɩ"],["@@ܙȁijĶø˸ΰԢࠨͬĐǓfʫշع"],["@@̢ɣԲèȼΥॿǛ׉őҍP̀ӚҤPɤ̖"],["@@ūұ౅ʅૣľE̬ښǪՂʥ֔Üݬ̮"],["@@ྔċȂΌ༘З̪կీƵਐӿय़͋ऍ͸ݻwࢍØ޻ưঅ͎؝ČΓŁ໕ΌƣΰޑØּߤ৶·ڴ͡ΒÛŘ̗"],["@@ѝֱćنƬ̠Ǭ˴ȒʗCЏ"],["@@̿˥ׅƸǏΰࡘ¢Ⱦˣ"],["@@̨ٝۿΌۯìӃÅׇˆȦҦਠ”ऎʕ"],["@@ɼയ࢈ԉ۰ࢼ८ԔݜBܘ̉خ̛ࣘLJbᩑbᩑݟې࡟ǜȷʇ੡}ΦۂՈɺɕࣲЕ۸࿃܆ۗêృަʛУ͑óȏ̮GκٛЮ̢ࣞ״gëɠ௵DͩԄݥƺΡдଈȰњ˜ഘ·Ƃ̹"],["@@ڭ࠭كlj߱ǐඓ¥ܽŧţٍݪݛҒϠ༪˸çϯλŪιӯ͙݉ߒ੿Ƶ˿ݲॻQտ҅ʙ̐͡Мی࠙͗ȻɶŊ͖؅ӲØࠌ֕ʭîও”றՓũίʚʌޜŽ߸ΛPʻֺΎվŤښф౎ǮΎ܎ذپʛ੖śॴ–ࠨ؎Ʀȉ"],["@@©ܽџĈŷԝΌѷɽĵ͹Ւʟ੺ǚڤ˨̨ÔҝӸóĀ΃"],["@@सާহį˫ֵšݿַ߱u࠷͕౻ŭ̚ॕϙͫԤ׳´лːৃ̟̩Оս¯ۗĬŹૺнɺЕܘŝ݀ĮުԂ֐Ɩָ֗ӅըǠ՜ÑӪъЖôߒɽۆǶњୠ͔̈̆क़ॲ@ܰƙӍݷآߓơϭ"],["@@छkۻ۰અۊέԚٍۄзؾٕ୴۪݅ʙܠ̳ڀݵՊѭܘمҺࢗऒóђզ‘ಢNjݔࠓٮ֫ҪΓߔࣙࡢ_ۺֹӠ۳٘ϥͳۉӖ̞̅sƜו̊ҵؠõФՏɁ਱‘ಟ"]],encodeOffsets:[[[123613,-10485]],[[127423,-10383]],[[120730,-8289]],[[125854,-8288]],[[111231,-6940]],[[137959,-6363]],[[130304,-3542]],[[133603,-3168]],[[137363,-1179]],[[128247,1454]],[[131777,1160]],[[120705,1872]],[[108358,-5992]]]}},{type:"Feature",id:"IND",properties:{name:"India"},geometry:{type:"Polygon",coordinates:["@@ࣚটďۅͮїѕ׽ŒɾएࠜՑ୞חՑϟ͛޻ࠀͅߊЭરһସʼnӜёٮāৠȝ۪bĪͪŋՖÞβԠǮìڋlǙކ͉Ոƀ܀Çۈ|ÐԪ΁ˎڴŀވشॸ՘۶ȷ״ΞЀԹ˳Λ࣠űÜ͇̍Ʒèԫ׷Ʋછׅ~ӓҩ۵§ХϏۗځȒࢇȏ˹ĚΣгȥѵ೰ɵEƍ՝ҡѦʸӎϖ¶ϰ܆ӝƜީ]ߝŚóאБ¤ڕζ֭̓؆ѻԿ̻ȅ̩Ԭɣƛԑ̆كžەţֱ̫Zਛǩ´ك҃ӻ௃֡ळ঩كՋ࠷ջCϭлȹݳ̝Ͻ«ʥٙǪધ®ۡΣߙI෗ѣ¡ϣٙʰˣދʃ˱֯͵ʍߑ޸ϳ୴͑ࡒ̍Јѿ߰ȻੂơՀޅ଼Α࿀ʣ੾HৰǍ޾௣ԉףĶ઱৲И̤ʝͤড܊֖֔ᇜCǗܞҽюĩ٨ջϘऒࢢঊÙ࢞ࢢՄ࡞ࠄࡈ_״ܒӠڳд֪݂̇̕Ьβ౤ȱपŰߺ۸"],encodeOffsets:[[79706,36346]]}},{type:"Feature",id:"IRL",properties:{name:"Ireland"},geometry:{type:"Polygon",coordinates:["@@ƒ׷ًݣ๯ӹ஑Ŷڼ࢚ѭࡢତڄٌϼǦ҇ǥ҉Բ\\ٌǥ"],encodeOffsets:[[-6346,55161]]}},{type:"Feature",id:"IRN",properties:{name:"Iran"},geometry:{type:"Polygon",coordinates:["@@݈njװӔ֚{τƾװýघэڤğ।ݓظ‰òۻ΁਷ɱؑκŭΫҡˠڡàՓِƙæեݿݿжѵ͸ԓߦυx݉ДƋêϯ௉ѡ̓উཌྷʪࣷȖेŊΧਐЕƪ٣ƭࡑНਇ˦ࡑ٦߳ʈ֗ߘا૪ҍƋՕ˦̻͝ҭѴS҂ˍ@Ɛ،ѝٔ਍Ң׉ߜȜپц̂ÙӬտʨխ৊ҟڨǐʼʿ६ּʈƄͅъϯ־ő̤~রئ̀Øʞʙ́гԼѱȾ¦ˈإߖǩ׎у஠ƟಾɞĄȞ"],encodeOffsets:[[55216,38092]]}},{type:"Feature",id:"IRQ",properties:{name:"Iraq"},geometry:{type:"Polygon",coordinates:["@@րʧÚӫх́țٽ׊ߛ਎ҡўٓƏ؋ˎ@TҁҮѳӿ¤֟ê؝߭༟äᛍၖఫךৡɪ͹৾ᇶ࢔͆৬āؘҢȺјԾΰž঎Ň̐ɉЖƚծ৉"],encodeOffsets:[[46511,36842]]}},{type:"Feature",id:"ISL",properties:{name:"Iceland"},geometry:{type:"Polygon",coordinates:["@@șիॊֵથٙᝓֹܣƵૉŮᚑˈࠠψᆧЪ๪ǎ—ʘᄋȜ֨նౠŰಸ֭౨Ҝ੒ʃൌ҄ආÑ"],encodeOffsets:[[-14856,68051]]}},{type:"Feature",id:"ISR",properties:{name:"Israel"},geometry:{type:"Polygon",coordinates:["@@ƥ˅̣Ŝǫ֓ɂĥɋř—ɛЄŖp͛нഉց෾ʔˢ˶ɞϼǠيŤɆzVˬCþƦɤ\\`·ŕŵhM"],encodeOffsets:[[36578,33495]]}},{type:"Feature",id:"ITA",properties:{name:"Italy"},geometry:{type:"MultiPolygon",coordinates:[["@@̟ڋŲʹǭѝٝ̈́ёĞ୩ѐŞќজûࡪĠْò"],["@@Ԍ׭ş૕ϣÂ΁˫͇ɞ‘২ȓӒҨ¥рʼ"],["@@ரɏĝЯȬΧڝŪہ̗²зĻʇˠё߀чцۛदڱچLȲȃɽǗݪ̥ؠʩܜѫĔƿƽ̛үϼܳƐΝի؈̷ıѫΗ¹҅ܛΕÝHʲǢҊǼǶ͝ӤʱшΑŀʛδգƴεͶثÆٿϜޑմ֯ӜʿࠪйĮہˤϯŕӝϵΓÕĪθҕńɏٲ̆ʰʙ̀”ʂβǵМ¢Ҽ˶ƢƃА€ǼͺتĿψƚâΆԘšĮdžࠨƤȊ̉"]],encodeOffsets:[[[15893,39149]],[[9432,42200]],[[12674,47890]]]}},{type:"Feature",id:"JAM",properties:{name:"Jamaica"},geometry:{type:"Polygon",coordinates:["@@֢÷ҀȫƔɯןeʭƗҹƊӑ̪ĶȔΜÎȒƒ"],encodeOffsets:[[-79431,18935]]}},{type:"Feature",id:"JOR",properties:{name:"Jordan"},geometry:{type:"Polygon",coordinates:["@@Ʀˆपͫ࿪ࣆͺ৽Džų၅у࠸࠿ˣƛƑ˭ٙřȩ̡εʵधƆƒŨоഊo͜Ůʚ@Ԥ"],encodeOffsets:[[36399,33172]]}},{type:"Feature",id:"JPN",properties:{name:"Japan"},geometry:{type:"MultiPolygon",coordinates:[["@@ņ˽ҿԕΉːљțɝӭշʈRЊҬԆӌīΊΜؠǹ"],["@@́ڡƤсѩף੹Ѓ๏½ணॡ͔֡“غษȃষЃঝe࡞أ֗෗իΝН͜ȶݶՏʒͿ־ߐʶѲՈࡌѢ؞ָာʤ࣎ǣࢠ๺֔Б௾ࡀӌ͜ՈਈƟा΢ՎࣀƸҞୗ}ڻޥࡍbࢁ"],["@@נǵרΤȈहఝɯ݁࠱೓ָқँण]ř࠴д٨࣌²ʖ୐ʜټন࢓٤˯"]],encodeOffsets:[[[137870,34969]],[[144360,38034]],[[147365,45235]]]}},{type:"Feature",id:"KAZ",properties:{name:"Kazakhstan"},geometry:{type:"Polygon",coordinates:["@@ӕƹ્דο׹̹KɱЊ੫‚ǡێХNÚࡆ৓ؘ෷ßডũߣݶۋ͆ಥ׼ƽðᓗӹᶽљ£יچ֧ɼॕǩχ˧±ȲȶΖDž̊অ˺ϛݮҩɆ…˜ࠊāŽؘ܎ƎܼűƲࠎƭԲ࠿£܍ȴঃσ޵ǭяƌĐўՙ֘دw܉֬ӞِʕǢڢऊࡺӣŀؘჄࣴಾtᇢ׉঺ͻࢼΠ೰j੺ѥʔʠ୼—ɂЊഷ׀߮Цƿɮ߮ɔ؅ֺϬ˼Ḯ̈ШȺᑆ̴ݰΒຢǹ˄ࢉ࢚Ȳઆ˹éҝ߮´ᑌߎ̭ˁ੶٭ሠᒑ҄ѰୄӛீɎҪƯКӟטNjΨΥ઎ŒѾԣٕ֓ۥÿ¡ࡅұϝဟˢ؅ຑїȇဗͱݲลֻɓäӏԭŬу̠ఝĖඃx̧ġ஥ΞӉǧŽӹ൩̂փşȉρ"],encodeOffsets:[[72666,43281]]}},{type:"Feature",id:"KEN",properties:{name:"Kenya"},geometry:{type:"Polygon",coordinates:["@@ӾۙיͱȹΕ̿Õšףˑ͹Ǐ֑ͷ˥஻ࡀËӤᵁႌƙĢSࢺʊ;а֌̨ؔσ॰įтЉ׎ԬԈ֬ֆѨƗ@ҽ˺ˡג@੠܋ˈSȠxȄī֖ßʞΔގΚͺ˳ָAܽ॑Xᵣ"],encodeOffsets:[[41977,-878]]}},{type:"Feature",id:"KGZ",properties:{name:"Kyrgyzstan"},geometry:{type:"Polygon",coordinates:["@@ȊςքŠ൪́žӺӊǨ஦Ν̨Ģ඄wఞĕф̟Ԯūşȏ೛ғ̙ͭઁıͅ՛ࢷŒׇǏߣЇŜȟʇȓཟŵਡ˘࣫ÝĂӜࣴƕ̮ʸٖĉ੾؂঻ѸױȽإ͂۶ծʟĊ"],encodeOffsets:[[72666,43281]]}},{type:"Feature",id:"KHM",properties:{name:"Cambodia"},geometry:{type:"Polygon",coordinates:["@@΁Ѭыࢄȣ২ՠۨઘdž߀ťۚ͡Ϟׄݖ̱Ȝ֕Ļ৕ඳ٧τԙࢥÓܫͷ۱Ū"],encodeOffsets:[[105982,10888]]}},{type:"Feature",id:"KOR",properties:{name:"South Korea"},geometry:{type:"Polygon",coordinates:["@@ܨযȺխPॷ̓ҥݽljڥΏݳïĥҚƼـχ࢔ذƚֻܘÂúϒ‡͞Ϝצ¢ΨÈŨȮ"],encodeOffsets:[[131431,39539]]}},{type:"Feature",id:"CS-KM",properties:{name:"Kosovo"},geometry:{type:"Polygon",coordinates:["@@›ǣŃPĘ́ȩĐdzɦƾȌȪÒŜ˨ư²Ţşƾ¿ŌƅƒŸǎƻŢLĥȳijij„×ȉӹŻ"],encodeOffsets:[[21261,43062]]}},{type:"Feature",id:"KWT",properties:{name:"Kuwait"},geometry:{type:"Polygon",coordinates:["@@Ǭχõȓ˔هשuȽАݟĆ؞߮֠é"],encodeOffsets:[[49126,30696]]}},{type:"Feature",id:"LAO",properties:{name:"Laos"},geometry:{type:"Polygon",coordinates:["@@˚Ϝœ܆ڹܸ¿ٕࠦھٍÎǛ̉ӯyʣƨࢯԅoݬȸࢮ֧ž³ԎηʸǴ̲ܐնøȡ҄wŵ०ѦŬӮڏϖޅਚO͚ܹ՝ɗʉ̟৔ԉۦ঳Ռ݋َ׏ɄץƵ࠿ݕ̲ϝ׃ۙ͢"],encodeOffsets:[[107745,14616]]}},{type:"Feature",id:"LBN",properties:{name:"Lebanon"},geometry:{type:"Polygon",coordinates:["@@ɣ[ýƥ˫D̘ۄмעfˆϘ§Ɛͣқ̓ȷҟ"],encodeOffsets:[[36681,34077]]}},{type:"Feature",id:"LBR",properties:{name:"Liberia"},geometry:{type:"Polygon",coordinates:["@@ɗQࡽАޅٖ܏Ң֣ըȪː¬ʔϜҘϺϺǶnɖĨΘԧÇ͵ǐdzʂIǢ͸ʄsŸʓĎНǽύʖɱˊÇΤΙ~ͧăĿÝە"],encodeOffsets:[[-7897,4470]]}},{type:"Feature",id:"LBY",properties:{name:"Libya"},geometry:{type:"Polygon",coordinates:["@@ק̷ҿҤ೧βρՄڑϸϻƷ̗ҶήӹؔͬΘñՈńҠÓϦƨۈ¯϶˕ݐШȜðΠėΒ־͔ʶːЦʌ´٦দ́ΜðۮƓ૞ϓЀݛݮǍஆΙࣆйЦɔЖϮț٠˂Ф؄ЀׂŘ଒ǣ˺ϑ̺Iˌƛ࠴ıȲˣ̣ЕżΫɏԯʦڱ@Ჳ@ᶵ@့ॱGYΙ‧ྐ‧ྒࡓҟ"],encodeOffsets:[[15208,23412]]}},{type:"Feature",id:"LKA",properties:{name:"Sri Lanka"},geometry:{type:"Polygon",coordinates:["@@ų࢓ΙʇܵȓЍڜƫீϠ഼׆ұϺסО࢓"],encodeOffsets:[[83751,7704]]}},{type:"Feature",id:"LSO",properties:{name:"Lesotho"},geometry:{type:"Polygon",coordinates:["@@̆ʩʳУƛ˛ҳſƹˍ̛ċؿ٨҄ՐҖ͢ϼǠξʵ"],encodeOffsets:[[29674,-29650]]}},{type:"Feature",id:"LTU",properties:{name:"Lithuania"},geometry:{type:"Polygon",coordinates:["@@ãɊĚɲχƄࢡƨDZ۸२ʴඬÁࠜĊŞǩ҂Ã߲СĀϓۏˏșӃ࣯̓߻NȫʶљĜ"],encodeOffsets:[[23277,55632]]}},{type:"Feature",id:"LUX",properties:{name:"Luxembourg"},geometry:{type:"Polygon",coordinates:["@@ǘȏ³ρʍiȉòĞҼɖŽ"],encodeOffsets:[[6189,51332]]}},{type:"Feature",id:"LVA",properties:{name:"Latvia"},geometry:{type:"Polygon",coordinates:["@@†نЮՆߊ˼ڜعڪhNJ٤ܐƪςĻܢ̷ۚCКȕîС˒ӷ͕ࣗԛƙ߱ТҁÄŝǪࠛĉණÂ१ʳ"],encodeOffsets:[[21562,57376]]}},{type:"Feature",id:"MAR",properties:{name:"Morocco"},geometry:{type:"Polygon",coordinates:["@@ԒΥߜÎࢊȃκU͂՟ºԝ̄ࢱɜDZƷ͛ષƙϝ̵ӡñ—ثঙ͍ͩсۍɥ࠻ŷഫاRহŷ@@@p҉Ա˓ȑϡ@̥Ŋ۹ě˛ٻʿÕЁ੕ୟ࣡ˣୋ΅ϗĵ̡ቅãaD ϶͒ɮ˞ѪÃ˶̀פҴՖ˲ƊɞӬp҂̤Բ̪֔Ւ࡬f\\ц͔ްĢڎָтɠۮۮȿਸ਼͊ܢŔѶդ֨ࡈϦخΐ֘࢈˄ԪؤI"],encodeOffsets:[[-5318,36614]]}},{type:"Feature",id:"MDA",properties:{name:"Moldova"},geometry:{type:"Polygon",coordinates:["@@ȨŮ֒ĊؤʽΊϞɥÑ˵̪ƏŨΗ̊ɇÏűƾčɝ×ӷ|ĉŜǫãÒƭɱˍƥ˽ɁĝƯϦĘΪςӝԂˉΠʹʠʯĈ"],encodeOffsets:[[27259,49379]]}},{type:"Feature",id:"MDG",properties:{name:"Madagascar"},geometry:{type:"Polygon",coordinates:["@@ɠΥȺ։Ɗঢ়ɒϽĉЗƩʙ˷ӰǁʝLjثõΥɵȗ¿܅ͧওб୅ԯཧ͑ୟϛইہȣܻΡӛɊڙ̜ɳѺÇݘ̑ڠù؂Ʈ؄ϰƢD˪Дِø՚șЈǃՌãޠ̊ҺŔՒмŒҶǤ̶Ʋτ\\ӐӎۖԮʦцŗάΦĵҪ׎fԐ˦ϔ̊ί"],encodeOffsets:[[50733,-12769]]}},{type:"Feature",id:"MEX",properties:{name:"Mexico"},geometry:{type:"Polygon",coordinates:["@@͙݅ƥ؁Õ૷ąЧƤқʺЧǚٳ֎سȞӏ͢бࢾɝΐΙ݄ɾٚĎؼưՊƠՖ΂ȨӬè۸Ƣʖ֬ɚࢶȚݔ‡ԚîȬDZ…ЙҋԁȥԝƸƥűγɁٽɅɎǭcǃY̝ԓƳIJķPŭޥV޷AAӁϛC̺˫̶șĢǹƌ½s˷ઃEЙۅŢƽĭȟqʕ्ࣞџ˘ۇɖҷÓګ́чĉץɜؿDŽ޹ϬؿŠ्ϸ۱ВɃɤҹº࡯ˈΓϦࣗӊсՌȧЦ˪ĈđʈȖɔJ̄˱Ϙùͮ˭ъ݋࠴ࡋڀУԼܝ΄ƷȴŸԲѓȞӹФȽהҍæӣѸϿФ™ˀҍو̓٠^͔؇ͬ˫™ӑɴƇͿƔЕĆف̀΋خׁƒȡŸÓŎ˽Ƭ\\ǜթʮɇǴ̕Նё˨ޯʠρɸϿ²ѷКƒͶϡ̨ϑqƭΝ̱ƫJɛԞջӎ؃РїɈ„ؚŵҖЏʺֿϒŏŇɃɖԭȰӷӦÖÚΊ³̸̼ŽϜ٩׶ӱɶ̱Հ̷վϳڦͿݲॖÞ੪ĞÿǑ౔СኀףဪPژ@DΌผ@̪̕јˇԀσ˨ѭȾҥѢʩۤʥՊڒۊhפͱфֹ̄ӯӸӏȂחɾЃپʹ׮ȁ͞|"],encodeOffsets:[[-99471,26491]]}},{type:"Feature",id:"MKD",properties:{name:"Macedonia"},geometry:{type:"Polygon",coordinates:["@@ńOœǤӺżȊ˺¶ϴbтˏÒ։DžƒƑƥҕh͋ǿջõΑȴšήń˸"],encodeOffsets:[[21085,42860]]}},{type:"Feature",id:"MLI",properties:{name:"Mali"},geometry:{type:"Polygon",coordinates:["@@˰ƶƘӶˊpזɻӄǖ͖ÇŴȈ⁚^ȈךƣļЛ⋈Л⋆౾dᬼᆳᬼᆳȨϿԺʉ϶ƋV՗ठĈFካҟ֗íԭݛƃ଩ï̳̗ա՟IȿLjҥš޻ΑDžʿٳϕŗɍΙǡНŔɱȳūֻڙۡp˳ɭΣÆӥ΋ůȝŁŽάʍĥơhƷʕ٭PɷŴʼnùʱʎ¬ʢĿİdzĉ˚Ǥɐ΅ΚijɴȇȂǙvȫş˕őɱǹΫäɷɈƓ„ɕőƅAµ̮žʾí̽͘ʀǓӔԺ"],encodeOffsets:[[-12462,14968]]}},{type:"Feature",id:"MMR",properties:{name:"Myanmar"},geometry:{type:"Polygon",coordinates:["@@ӫηץ›ϥࣥΟƳО݅ՔؗΈօ̭ܵ̃ƹȪу֖ڙĪҷ_ϵ͠ދң޵Сࡷăذʴ٠˯ӼæࣸͽѤ˛৔Ʊਗ਼εۢօуॕ׳ҽöԳȠ̂ਪǫ޾څॺļ̢ӭņ׭ۆÅڰ̊ŵj׾дȦęΤȐ˺Ž࢈ڂȑϐۘ¨ЦҪ۶}Ӕજ׆׸ƱçԬ̎ƸÛ͈ӮÚˮӵξȧ|ٟ“ۙߓۭijঽࢲƔȨޛՐǍʓۣز́ζƷ؞ʔ~΍܏յdẕӓȗ"],encodeOffsets:[[101933,20672]]}},{type:"Feature",id:"MNE",properties:{name:"Montenegro"},geometry:{type:"Polygon",coordinates:["@@ÁǀηЯÊˋǫÞɽ˞εǖĢƜŬҦ˚ȜƾüɠƟŬśˠě͌ǧçïƽȋɧó"],encodeOffsets:[[20277,43521]]}},{type:"Feature",id:"MNG",properties:{name:"Mongolia"},geometry:{type:"Polygon",coordinates:["@@ࢮƢ྄ܤ౬Єܴʳ࢚]֘Ͻ࠼‰ௐɁࠈגͿӶࢊࢊश΍ނįনɍLjؿஜΛߐƺਫ਼ŌࡆōࠖЗԚѕެT੒Ƌޜȼૈƒ௸פԌĝѰ˭ৌêХهק࠽ɐ΅ӈńࠤŽ٦̴ڬˏހוğ̗ڏĦ௟ŏןʅ؝։౱͙࠷ѽࡹǞҿúѳէˎ͓ƌˣי˯׽҇গ̑ఽ‹ഫ̇এҋϋʾ৭AఓԜࠥŰૣśჃȊऑmӱԀϣޠԱĢ৩ԼଅŞুƞ̡θ͖চׅڲன̀۷Ѿəז"],encodeOffsets:[[89858,50481]]}},{type:"Feature",id:"MOZ",properties:{name:"Mozambique"},geometry:{type:"Polygon",coordinates:["@@لæ৞ʁɖńגt̚ʦԌaऀ͜ڞӤƊϕ“࠷ľ݅ಿƨЫʣ׷͙׍՗Եޏ͉ृСॉ͓ࣕƵוׯ΋ȗí׳ЌُǔӱZʣƪ¦{ࠗƋϷȤƝűΓΗ̗ۗ˳য়ҕρ̳ðΟɊÉíѵّRïϊůϖí̠ƬपɓװГஂࢬ॔ɜ؆ŶúĨӶƉʞ˜غǐ׌E੠ѥ˒ЏÔǹȼϳǰ۫gÅ̼āװᢈۘӚЕɴüͨɅ¸͵ǯϷØסոԱʲ׌ζǰíઊΙ؈̣˖̅]ɽદɾٔ"],encodeOffsets:[[35390,-11796]]}},{type:"Feature",id:"MRT",properties:{name:"Mauritania"},geometry:{type:"Polygon",coordinates:["@@և־ԗؤ֍ɞГʚҵUЧǽйð˽ˏïҐɺаŀߊģࠨĵкČмɑЎѵδǾˬᾔMǃ௎ȴќ߀øᒸ᪂©F౞Ṗ᎟౽cМ⋅М⋇ƤĻȇי⁙]ųȇ͕ÈӃǕוɼˉoƗӵ˯Ƶ"],encodeOffsets:[[-12462,14968]]}},{type:"Feature",id:"MWI",properties:{name:"Malawi"},geometry:{type:"Polygon",coordinates:["@@ɽٓɾથ̆^̤˕Κ؇îઉεǯʱ׋շԲ×עǰϸ·ͶͧɆɳûәЖѵɔʮޮ˄̈LJۢǚڼƞɪɉ܌Ѕϐ࠘ƽǜɵ˶Ϲɾଡ"],encodeOffsets:[[35390,-11796]]}},{type:"Feature",id:"MYS",properties:{name:"Malaysia"},geometry:{type:"MultiPolygon",coordinates:[["@@àћֈĶ˞ΈȘýӸԓΜ֛¶֣ęϡĆ˿Öӻ̒ɵͤݑe˳׫Éߑخ঵ښįђӟ֚ś̡۠ҜĠؔȃΤƤƮۈρ"],["@@أ˹ܯƚॱ@̅ॗ͓̇љୟۅǵߑɾЕóөщ՛Òէǟַӆƕ֘؜˽ٮǀǜ܆άǂ৖Ǻ׾ڔЬՐϦѥǮ˺В¸՜œа٪אшڀͼHќыžιֆɻ۬ʧÑ֝͡¥ƮЧ"]],encodeOffsets:[[[103502,6354]],[[121466,4586]]]}},{type:"Feature",id:"NAM",properties:{name:"Namibia"},geometry:{type:"Polygon",coordinates:["@@رٌؖ͡ȃࠊȷ،˯ಒm৒ŅҞ͛Όѡۜѳ৘ǽՆۃࠐ»٢КdžԊƞհ}ԄϝŶÐ₮˜׌Е᎞ş໴΂یȒհµͨȍPéӁȍʭC՛͍ͣΎಕ̍سƒ{Ჽࠣ‡BយA᷋ݣѕҋÕՇDŽϗÔƗάͩɰГг"],encodeOffsets:[[16738,-29262]]}},{type:"Feature",id:"NCL",properties:{name:"New Caledonia"},geometry:{type:"Polygon",coordinates:["@@ېԵѨϭ͉ȫҥɪ׹ϚէѼ։פś˶β[Һ˹φ˷ˎɻ"],encodeOffsets:[[169759,-21585]]}},{type:"Feature",id:"NER",properties:{name:"Niger"},geometry:{type:"Polygon",coordinates:["@@nּॹȐОҿպœϤâТբ̴̘ପðݜƄîԮҠ֘Eኬஈϒᝪ࿸᮪ཾ೨αӀңר̸ȸಯ̾ɓ`ˋΔ˽ǻί͕ၻ«ધੳߋγૉΔ̵CեբmčЃʁµˋƻm֩ंȟ’ځҷٱʔҍ¸ʏşӯ~ӷΧѓq৯ѢЉȵѓb̿͆ࡅ̼ࣗıɕǻşӗʋ͹ÍݣٗӚ̟E˭ʗ"],encodeOffsets:[[2207,12227]]}},{type:"Feature",id:"NGA",properties:{name:"Nigeria"},geometry:{type:"Polygon",coordinates:["@@ࢍ̡͉¬͓ȉڥl҇Ղˡ؊שֆكYݍB¶തs՘ǂՊʶʴТԴėɨǔ͸ȍӾ˪ÎݤʌͺŠӘɖǼࣘIJࡆ̻̀ͅєaЊȶৰѡєrӸΨӰ}ʐŠҎ·ٲʓڂҸȠ‘֪ँƼnͬͯğƱ«˧۽ٱɛՙšѧDZȉǝי҅ΉŽыȋ͹ÿΓֽ˱ҽΊ͇aԃӭʑQЍ߷ɍש"],encodeOffsets:[[8705,4887]]}},{type:"Feature",id:"NIC",properties:{name:"Nicaragua"},geometry:{type:"Polygon",coordinates:["@@̃ˆϽͺȁ˲Ο˄сϜĤžƒŵÚÒʾ”ŀȔŬRkЮȠrǬOǺɤʜǝĒľƺIJ̊ɴbǦĄQňȪĖ|ƜŹǚ›ȆńɄB̈ŌŜŖ˾iïă§ȉĐ̫ȗ˹ěͷυ®ɏtϙŹĉýΫÌɛǣɋ ɩźƏȩDZʛÈƓǦˉêȕʼnօɞųŇ"],encodeOffsets:[[-87769,11355]]}},{type:"Feature",id:"NLD",properties:{name:"Netherlands"},geometry:{type:"Polygon",coordinates:["@@ۦyǀ˳Ƚޓɇ́ԍ@ƘࢡҥȞՏπީǩ؛âѠɲ݀ఆଲΘ"],encodeOffsets:[[6220,54795]]}},{type:"Feature",id:"NOR",properties:{name:"Norway"},geometry:{type:"MultiPolygon",coordinates:[["@@᥆ؙઍɣऄՅෛ͵ڵû΢לઃͰಫ˵Ы؝ߟωࣗȮ઱¥णѼԉɝԷ“ūփནƊɝҵ߭Hևױ࠿झಫ஁̨˹̇ͫ࠯bձ޿¾૟՞э˥ধֻۧυӛ֝Ԫဋঁ૫ȟ୏є̛ࣚˇ኶ޞզᕠ۶ဌࢂ໤୦፺ྴඦلᘼ੊ᇎπ൪­౮ۢ໖›ພǘ"],["@@ም΅๝Ȝ׆ɐԕˎეǚͮ̿ொȍ"],["@@᪖صᑟͥұأ݅ǁЍۡৣᅵԢނ̘ఽʐ࿕܂ٷڄᘎ̜Ң̋஦\\͊˼௾ˆ੖̋"],["@@࿮̏ఝҍ᝱ı៙ƖƫɴஹdँϬᣴɼ௞ȫࡘʤᑺȽ"]],encodeOffsets:[[[28842,72894]],[[25318,79723]],[[18690,81615]],[[26059,82338]]]}},{type:"Feature",id:"NPL",properties:{name:"Nepal"},geometry:{type:"Polygon",coordinates:["@@ÝαŌՕĩͩ۩aয়Ȟ٭ĂӛђଷŊયҼ߉Ю߿͆͜޼ՒϠΒȪڪʳࡔշҾť˰ЕٶǓۀσौȕঔć"],encodeOffsets:[[90236,28546]]}},{type:"Feature",id:"NZL",properties:{name:"New Zealand"},geometry:{type:"MultiPolygon",coordinates:[["@@Ȓ΋װ;ʐΡBΝ̹ϳչإїͷ̴З٭Yܗ̓ɣջӋࡗڇϓнʇޝlխˢࣱÐƗ̰Ҍذ੐ࠦժǀ׾͌ܜѰԎѦώظ͈ɆŰҶלϴȆΧ"],["@@،ࢫlָϜɯŲًڰ˛֨ãӒ͎юĭȯݗʯӫٛjɡʭþαūƻͅҏзֹ٭ͯƟɘΕŨӞ۔˟ҨࣛͲz̦؈̌ƚ٨Ÿլͻ֜vƪБΎڋݔΗת̸àҚұٺɑʂݡ"]],encodeOffsets:[[[177173,-41901]],[[178803,-37024]]]}},{type:"Feature",id:"OMN",properties:{name:"Oman"},geometry:{type:"MultiPolygon",coordinates:[["@@ֹ̻ϟªǩȧƉэļ֗ÿĻϯFԽ̻ćХȓǯԹP͡ɃJͻПɷҩĂ֗˳ϱ³˝טٿ൴ᠾ࠾֖၂ϩתv͸ʔΐFΆϞǒƩŞèմіHϖֵҸ̧؞ŋӼƳϜӕɨ˧̞ŃCȉ̩ԃƅɽΟˏ"],["@@ʼnƳDž˺ʔ˺ľñā΍"]],encodeOffsets:[[[60274,21621]],[[57745,26518]]]}},{type:"Feature",id:"PAK",properties:{name:"Pakistan"},geometry:{type:"Polygon",coordinates:["@@تϻʞ٥൨ͻ߹۷ऩůౣȲЫα̖݁̈֩ڴгܑӟ`׳ࠃࡇՃ࡝࢝ࢡউÚऑࢡռϗĪ٧ҾэǘܝᇛD֓֕؛Ɇʣ؀٭٘໻ǁിeஃŝ̈́ঊொѢéϰГƌw݊ߥφͷԔеѶඨѕࡀŲԈŅǞȂגóદĈ܎ҶӈشCĠɼٞŌ̴ý͢ʀ±ԌΦԖ՘Ɇͥ֊ߜɴ̢•͒мΜĩмȣΤӬμࣘǮ८ĮѐƺӨĦ"],encodeOffsets:[[76962,38025]]}},{type:"Feature",id:"PAN",properties:{name:"Panama"},geometry:{type:"Polygon",coordinates:["@@˫ʎǵҒȺɢɅÎƿˤлɸοÁǝ̇ͻɁǽ‡ĉǩВҗɯŅŧŭϷ©ơԈŋƛˡ¸ǝ͸·ÈɓİέCǻĩŶªǖìǠƲŲIJǩŲK͸͘ö̠̝iDZͲ›ĀæɴȵЮÔΨɄԜǞ˺ʤҬ·‹ĉҶ…ώơ˜ʧ̈́ɵĹūȜӵǁʟ˓ÒŅС"],encodeOffsets:[[-79750,7398]]}},{type:"Feature",id:"PER",properties:{name:"Peru"},geometry:{type:"Polygon",coordinates:["@@ɥљћɋࡅӘñΈရࡊທࣾ٫԰ΏۜƐʎ܅ાࠣ༄ߍီ΅Ϥ˃ؤٷպױͼ˖ϒПߢʼךڢՎIJΓʇȧx̭ΎâͼĝΚщӆΌDŽ֤ԦܶৠͨࣸࢠʾմŝٔɢĂ֒ЉˎЅϴɏӶࢣضĿҨɞ̤ƣԎð٠Ͻթࡣʤoрҁݳ œųۍlj॥ֱÓϻɉ̇ČғԕʍBΡɛƵΔݳҲԝDZί֐µ͆҃ݐuېӸÇ౧ϢĩӄƠܪടǷ˵£ןg܍͟пƮ̵ȕ˯β۹Ջ࣡"],encodeOffsets:[[-71260,-18001]]}},{type:"Feature",id:"PHL",properties:{name:"Philippines"},geometry:{type:"MultiPolygon",coordinates:[["@@Đ֏ºҽ˹ޑ̫ࡨϽэˎإʉϿ঩Ӧɿ؊ʰЎՑЈˁΑЃثҵƑʖ͢۾ՌʀҜ̈́̔ϝٔɰƎϒרv·ٰڼЋêхÐ̱"],["@@̟ˡˁՍ˃ʝԫ׈ǦɤɂɾĢԸҨ¸Ɖ֣جߺāߡ"],["@@ૣߕЬט؈԰Ԏ׊Ѱ࠲Ʈۅևҧѳֿ"],["@@Ԏʹ՘BgΗϳΣՕʧ‡ϸÒєŽА"],["@@ʀभ٫ɞj˭ȶԯЍȋ•עʧªƁԘӶãY͈ԣٜ߮mɴ̻"],["@@ɟܩέоѓ٘ܚ‰̡̈"],["@@ԮʉʶɖüɇƍΑ˼׻ɛۥӷ˥ƁڳȊڝѾġϊIJਾүăҙ˜ȫēϯٻЮ̵Ѵɍ̯՗ԊރůлȆ¨ΎˀɊʣȘŇ̡бӚűμߨͺˡĔೄ˜ހԘA"]],encodeOffsets:[[[129410,8617]],[[126959,10526]],[[121349,9540]],[[124809,12178]],[[128515,12455]],[[124445,13384]],[[124234,18949]]]}},{type:"Feature",id:"PNG",properties:{name:"Papua New Guinea"},geometry:{type:"MultiPolygon",coordinates:[["@@ɽčε͔ρՔǷ٘ŜĆĜʡʬȏРՑЈ˵ŝɽ"],["@@ѯçƃɽҟȱћȟѽBۏʔӑɺêʺݬũҠàŶЖŦrĆѽӐÜʂ˼Ҹ̚ġӸԌfǜƏgү˯ԡ"],["@@ݤտղࢻӖ„‘ω٬ƛʥǁࣀΝġʏ֋ÏȷɔܟĦࡕŴٷ՚ӉҦѧ݀ભπ܇ʇԡˣńإڇ˿һƖࢅ–aᩒaᩒภ׃༊ӓׄїҴхŸӵඔԱȲѽޛěȄ֕"],["@@ʿɡǁӸȝ͘ϝ˞ӍΪ؇ʚɺȮҒɻ˸ȁΜȫʹΛ͊ˏĶѧ"]],encodeOffsets:[[[159622,-6983]],[[155631,-5609]],[[150725,-7565]],[[156816,-4607]]]}},{type:"Feature",id:"POL",properties:{name:"Poland"},geometry:{type:"Polygon",coordinates:["@@·՜à̂ȹ̧҆̚ɺɤȝђָʘ಼ϴ੒˴࠼ƙÚȱ߸Yਚħ໶^њěȬʵšωɸ͋KͯԋǡʸϳfϏцܻěɽзįރۥɒϗǿ¶ߙ͔؁šЇĒӹǵч̖Ήŕ³¼ϭаر¼ăˀֻĦűɑҗǨÀɴػòЉ˔"],encodeOffsets:[[15378,52334]]}},{type:"Feature",id:"PRI",properties:{name:"Puerto Rico"},geometry:{type:"Polygon",coordinates:["@@јõưǕɋɃمLӫ‡·άŢŬیK"],encodeOffsets:[[-67873,18960]]}},{type:"Feature",id:"PRK",properties:{name:"North Korea"},geometry:{type:"Polygon",coordinates:["@@Şƥ͉ºη˵ʣ˷Ž׽ѣȅƫƧ̓ʝ֓ƏηɥηįġͰƋӈσŧȭΧÇץ¡͝ϛϑˆÁùСdžĵƿʙé‡ǀɑüɥƆɰφȤİõƶɆҒÅƎөĠЇɤۄբऒҌ־׮Ўˁܪ‹ſѺಚβͰҼժӹ"],encodeOffsets:[[133776,43413]]}},{type:"Feature",id:"PRT",properties:{name:"Portugal"},geometry:{type:"Polygon",coordinates:["@@̦Ɉ΄ŬɂЫӺDƞłӪ‡ɼуϱɩYٽƍū‘Їγçʹԋɵտ̄ʡřɫ̵̿ê˥ͷɓѷŠџġŸڂÿԬϓþȩ͈äռͰ̨ÒͼǪԎkΤǙ̠™˲"],encodeOffsets:[[-9251,42886]]}},{type:"Feature",id:"PRY",properties:{name:"Paraguay"},geometry:{type:"Polygon",coordinates:["@@ͦ৖tҌЖ݌าʔޮ]޴їbʵʞҳÇଛࢲLJ΄ǐ֦ɩǀʣþޓİ͓̼›̀ƌ̢ƳAҥŕӻǑӛƍݏށ١ړƇऻŸࡑɮࠢ౨ťψࡽ͢ਅبۉŸ໵ൌ"],encodeOffsets:[[-64189,-22783]]}},{type:"Feature",id:"QAT",properties:{name:"Qatar"},geometry:{type:"Polygon",coordinates:["@@ÇؔɨѲɰĜʬˁdӯǽӳɵÑʫǖ"],encodeOffsets:[[52030,25349]]}},{type:"Feature",id:"ROU",properties:{name:"Romania"},geometry:{type:"Polygon",coordinates:["@@δǶԴġՠGϸȳ˺źبĄɄȠΠ@ʰćʺʟˊΟӞԁ€ρėΩưϥϒƹЂƊϠƟpɏПǹʯĀɻ৥ӳĖ̪ؑফțзɋ௽¬٥ƀ͙ÕʍΊƵƦȚƘȷŀ˃ȋөʔßΌԟȢĥˌҕͤڪǂԖ֮Њ֬ԢǮ"],encodeOffsets:[[23256,49032]]}},{type:"Feature",id:"RUS",properties:{name:"Russia"},geometry:{type:"MultiPolygon",coordinates:[["@@ࡌ๫కˤԫ்ࠌࡳyוُԒսٱƻ۸Ĥࠊħ࣢Țٌš૴ӯࠜôରަϮͭϴϐŠɔ։̆ߵuࠟΎࡑ"],["@@໵]ਙĨȒτ୊˚ࢢƧψƃęɱäɉ"],["@@֦Ƚțؐᗸű࿨޻࠭λ൛ēsࠑͳǩ޽~ٗ̊ૣʖȉθ࡟Ǝॗʼnҗ̎Ǽ̸৓ȥϚЃӉΣ@„Ꮪٛᔺ࠳ïԷ"],["@@ः©ƭˌੲΖ@ַ"],["@@ળ»@ָň–܈E௒ʉïŗࡽȩ"],["@@ౡMႣĤƧ¬ߘͪੀþஞ͏ĸə"],["@@ॿͩഉø༛ͨȪ˖༨ųᑔɗ"],["@@ډرᶽzඃȣမղҎ׀૎ǂᕞ™ᴬѽ"],["@@ӹóᩣŊɟώູɦūҒ࡮Ƕ…Ҟသܒޙĺ፨݆ɩϢሤѺ᪪բ᫠ǀ෴̸࿐Ŋאͩ֟ʻᲗз᢭Џᤙߝఫࠍ೉߱Ǡۥྎۏ"],["@@ɨгސȲឤYቈЧڬ̿ȽѧङʝᕅүفʟਬşఖɃݴDŽєաτɔഊƂ᧪ƑȴϽ↲ů´ٜᄼƥഄLബѷϮ՝ӹΙੌڋ೔Ϳ߸ࢦഖϙ෢ɦྼʵؤʀൖş؅ޮૐζ䢀ձܐӿᔲٛ₎DŽာƑ۪΍Ĺؙਜʇ૴Ǥ๰vཚǑཪĢะݛਪˎڷ՞ϐώᧆɻფºᝂБ୲ν@”MKઇσઝÖݶҁԄەϲɧĮΏɑɝ༧Ǿ᚝مݛĭ౽ן௛ԧ̱ϣய׊ᔗڇϣ̸ߵΫ૱Ř˓ց৙߽Šͻड़ȋő௣ޭ‹Ϋ۱Δα฽ѕ̅ॡభȳʥ࡟ே޳ׂ̳έ௬ҵለИ୘܀ԆªϾರȊຊ੒คࡺຢڢڮஆ৷ëԍۗᒉइۍਖᓧ˷ᑃටۚԧሙɕಝēÔ؊ಯŶ਩ЭᢵƠ᪏ʟᨩ࿛ủጝ೚ŁаՃࠄȅ՞оईÃௌऍ†܍ځ࠽ë্ϛഉ్௓˯ׇଙ঑ଇॻթӹ૩ӱՉYՇФૻؙſ˩ŝƦKѐіxŦ঴ɛܚܞ̒৶Ʃ֢ࠈ˾ऄ͚̮Ѵݲ൷ʛܯͧ౧Dͻ߄হװหˎ̵ࠖ̉Ԫ̿βԯࡐ̲݇షʢ૛uਯƱۛлҤȥXҩұˑݷࢻRσஅՍ৙̈́োéѯˮԋĞ௷ףેƑޛȻੑƌޫSԙіࠕИࡅŎ੝ŋߏƹ஛ΜLJـধɎށİवΎࢉࢉ΀ӵࠇב௏ɂ࠻Š֗Ͼ࢙^ܳʴ౫Ѓྃܣࢭơ͡çѽԤઍőΧΦחnjЙӠҩưிɍୃӜ҃ѯሟᒒੵٮ̮˂ᑋߍ߭³êҞઅ˺࢙ȱ˃ࢊມǺݯΑᑅ̳Чȹḭ̇ϫ˻؆ֹ߭ɓǀɭ߭ХസֿɁЉ୻˜ʓʟ੹Ѧ೯iࢻΟহͼᇡ׊ಽsჃࣳĿؗࡹӤڡउʖǡӝُ܊֫ذx՚֗ďѝѐƋϥӽ߿Ƒ࠳ࢁކߕĉ֣ࣼফԇ͹ƝɇωÌֿԚɿ†ՅȚʳΈ޵ǮԙƁƥƼଥЖఅƌ܃ƞĹıੱ܂य़̈́ܩӴؒƈۤ۰ҹͪఌ΄uȀݯƉ‚ώѠɼ߼ÖƄ˪ȅҪ΀ѰWʚఉ˚ӭUԯЀ١ƃ੩̐lǒ̗θڟ¤éʼɀǞ՝ӈࢋąʭ¦Ƀȑ̽”ȷ՞ȟ˨NJĀڴ‡͞Ȁʍɢ֥ƪ¼Ʋ΁ƴՃվǸɨĉЂࠑȨѱijšȼࢭɂˑӸíТЙȖάˊʝ޶װӞųƤक़ҬࢡЎᅢ੶ޮӠ͂єగּΆնݳش֢ܜ঍ग़ޢي౿֔ŬךڶüොͶࢀ̈൦ԕᘨȧṺो٤ЋÆ֓टѳ൏ɡ⏷ٔ؟Ńൌ؛ÂϵÆ࡫ઌʯڂɓňРԑΰ՘͈᎖Թ۾Ȳ֣؜ዦࠖޢµ޸̋Ӫ׀۫ԄЪԊءԶᚠˑӔҹ੡ĻNҳڌ˽ಜǼȶ՚ჶАᰪܞي£ࠣԙਬĕ׼˼༾xఢΐफ़ԏॖ֌ࢡӢѪˤ២ʫ୒ʿᴾॣ֚ѰࡡѺ{ǴৣĈˢЌ҅ټ}ː༄ݾրކزǒᕮɛǬұߕڽԺˋ˒חȏଵऒԧέ֕࿫஝०ŭ̢ͮऎɎɞжܮЎөӌϼֈࣿêȫҲڢࡈણۆຒ֦șװмnѴүͧ߷࣐Ƶϥ؄ඤͦლ¬༈ӏݛ۪ċࣆศǞ፾™ᆘŌہѮংւॲx࿎иᕠŐ˪ɲᕂþیȋሴҀ໲aɶδߤΨጤΈ෸˗ଥȷበŹ"],["@@ⵙ͕ໞીےĦقÃᒈӋʟͿ"],["@@૽ōݱÛśƏঙƑ࣫ȦӐʾል~࿞ƶ౨XǢɧӘȬߊƐఞǿ͗ŷ"],["@@ᆳĿᚉʎඅ͎٣׾଩ǔᔆָᆎȎ࿌чኬ߻ȹݯ"]],encodeOffsets:[[[147096,51966]],[[23277,55632]],[[-179214,68183]],[[184320,72533]],[[-182982,72595]],[[147051,74970]],[[154350,76887]],[[148569,77377]],[[58917,72418]],[[109538,78822]],[[107598,80187]],[[52364,82481]],[[102339,80775]]]}},{type:"Feature",id:"RWA",properties:{name:"Rwanda"},geometry:{type:"Polygon",coordinates:["@@ͬӃµӵʏŁѿÆʱӍԛàþҠŘތԄʎɺȰďԈʸ"],encodeOffsets:[[31150,-1161]]}},{type:"Feature",id:"ESH",properties:{name:"Western Sahara"},geometry:{type:"Polygon",coordinates:["@@oҊŸ@@ÉeNjEౝ᪁ª‚ᒷ޿÷ȳћDŽ்ᾓNǽ˫˜΢bCቆäĶ̢ΆϘˤୌୠ࣢Ђ੖ˀÖ˜ټۺĜ̦ʼnϢ@˔ȒԲ‚"],encodeOffsets:[[-9005,27772]]}},{type:"Feature",id:"SAU",properties:{name:"Saudi Arabia"},geometry:{type:"Polygon",coordinates:["@@ʼnΪʩʨÝͲѡ̞҃۴ʁۆׇ׀ϑƐ֋ߠīא–ӾӕञϿ͠ґǨˡӖ°ȎɹѦʕȊ͝زԟڴѓ־лIžҦœ̌ļͲनƅζʶȪ̢ٚŚƒˮˤƜ࠷ࡀ၆фdžŴৢɩబיᛎၕ༠ãݠąȾЏתv͠ܥаȓƠִ̏Λ¼΍ċ˩ł˯ʎɽŐ˟ŲȵʬǕɶÒdž͍Žș࡙͐ᡌщǞDzϪש֕၁ᠽ࠽ᝑ͑޷ϙ׻ࢥϹƕɁˬ͏§߻ĎƷČॹmɫùΉɔɝЭĒΟρˋ"],encodeOffsets:[[43807,16741]]}},{type:"Feature",id:"SDN",properties:{name:"Sudan"},geometry:{type:"Polygon",coordinates:["@@śhdмĵ̀џͨĵ؄ĶبϳÌÍȇԍ©Ȭʕðԍңңл؅џđ۹Ӫͅǥđʓџǃ…ǥ࠵@řǦ؃†̡ƝɳîѝӬƟɲ؃ŗɱϵɏݣ˿ǁʳğå ̅ʎÃʼƌΔE΄ӛՀĩάZȰ̱ʜUӦǭ͖̍µĎ̰ɒΖħΐˢʴǫȞɞ԰ϨئܦÏ¥ ZΚॲH@း@Ὂ@ῼ@˔ࠗȁƳŪࡻ্̰͌ȷҠ̳ыӑأƏ˅ʳĉ֑α௿ĚͳƅܟͿࠟԓзέٛč΃Љɽʝ࢟Dij"],encodeOffsets:[[34779,9692]]}},{type:"Feature",id:"SDS",properties:{name:"South Sudan"},geometry:{type:"Polygon",coordinates:["@@Xٽűʯѿq˷ӏԨÑюХƨͳϦșӼࣳ֫օԫԇԫϭסFگȟՕȊ΋ɭ݉֐ȥάҵDZϱÆɣƕϗĸԗۚƉˊعͪɅԌΕζ֟ѬS˘ҡͼ֯͠ʴĠ̀ǂɐݤɲ϶؄ŘƠɱўӫɴí̢ƞ؄…Śǥ࠶@†ǦѠDŽĒʔ͆ǦۺөѠĒм؆ҤҤïԎȫʖԎªÎȈϴËĵاĶ؃ѠͧĶ˿cлŜg"],encodeOffsets:[[34779,9692]]}},{type:"Feature",id:"SEN",properties:{name:"Senegal"},geometry:{type:"Polygon",coordinates:["@@΍ٺн̚φDŽРמȦќ˾ːкïШǾҶVДʙ֎ɝԘأֈֽžԹǔӓ̾ɿî͗ʽŧ³қâÙģȃk׿ȲЛV༇–ɥħ˥‚ѻƋƏ٢ވkȬŞƮR̸ȘήǯκcζȌǝʐˡƙʻJͧȸˉ_ȍȥࣵy"],encodeOffsets:[[-17114,13922]]}},{type:"Feature",id:"SLB",properties:{name:"Solomon Islands"},geometry:{type:"MultiPolygon",coordinates:[["@@ɾ˿חN͉ԬԈȯǜ‰"],["@@͝mԧĎǫżÀͮֈƁ˜ǭƎə"],["@@ųƹحܰǫԈ˺@̠ڥʹЗ"],["@@–ǛڅΦҟ̠̿˪ŰĐϮȫېϭȢˉ"],["@@Ǘ³οȒ·Ί¨ƖԈΡͰ˛"]],encodeOffsets:[[[166010,-10734]],[[164713,-10109]],[[165561,-9830]],[[163713,-8537]],[[161320,-7524]]]}},{type:"Feature",id:"SLE",properties:{name:"Sierra Leone"},geometry:{type:"Polygon",coordinates:["@@ɧØ؁ͺѩ҈Ƨ̬Ĺت҆τĬɺƞǸɶpȜǂڦCɺ̛ǼˁʓƈɗṶɴ´ϹϹϛҗ«ʓȩˏ"],encodeOffsets:[[-11713,6949]]}},{type:"Feature",id:"SLV",properties:{name:"El Salvador"},geometry:{type:"Polygon",coordinates:["@@ġȡӡ^̡Ą΍ǘұÀʃǶ~Ů˾ɄǀĢ«IJȠ¾ʜëǸǙʪƇŒœτĴǤÑŘĝÏͳ"],encodeOffsets:[[-89900,13706]]}},{type:"Feature",id:"-99",properties:{name:"Somaliland"},geometry:{type:"Polygon",coordinates:["@@ϛԩד۫۹Mᩧা͍̜̳К̳ҨǾ̖̲҈˚ƹǒΏϜΗкGߊɌࣴĴ݌ʼиÆ̚ƶӎˆKaE΋Aࡑ@ѫ"], +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ȰۉԄóنԮҶȢۚƃߠǠќࣶͺךĵ}ы܊̲ÒljпЫMϱ̆ȽōܫփхDŽқѤaɄЍ͊ſ³٥Хʋʵˏֽ͓ĘΑïΟЧț"],encodeOffsets:[[9710,31035]]}},{type:"Feature",id:"TUR",properties:{name:"Turkey"},geometry:{type:"MultiPolygon",coordinates:[["@@஺͗ঐżܤõলѬࣆ¢ߴЭƜ̑ăУزȻͨʕֻʇˀ५ǏʻҠڧЕƙ̏Ɋ঍ňίŽॗŽҏbॳ̿ەEҁǀऍɹ˝ǐ¯ҷɣǿɣǿ̱Ϡ͈͂ԟí۱ȖֿәౣĥڹҊࣟ†ȗΑׇij߻҄ࣻeӽ࠶ؗҰЦٸՓВठߨಒ’Μྀٔŏ৞հ঒ʄർlุף"],["@@۫ҏ˃Ϻ\\ǦȦĦʺՂХɞࡦ˄ܤőĴ͓ܼ˓Ƶȵি±Ωʷ"]],encodeOffsets:[[[37800,42328]],[[27845,41668]]]}},{type:"Feature",id:"TZA",properties:{name:"United Republic of Tanzania"},geometry:{type:"Polygon",coordinates:["@@ƚġᵂႋÌӣ஼࠿ϱਙ¸Ӊՠ̩~ɓɳԓ¶ʭÇГ̌Ճΐ̰ࠡǿڝӣࣿ͛ԋb̙ʥבsɕŃঢ়ʂكåɽଢ˵ϺǛɶࠗƾӉʨՕƘͯƘΗɈґ੖ӣҺǗӤČѨƯޞΎ ̨̦͜ѬȺǮS˘ǷȐ·ͨʐł¶Ӷͫӄ̎Ķऄ[ႎà"],encodeOffsets:[[34718,-972]]}},{type:"Feature",id:"UGA",properties:{name:"Uganda"},geometry:{type:"Polygon",coordinates:["@@ः\\̍ĵԇʷȯĐPوȜ͎²ڬǰϸ͎Ѭ͔ɠ˒̘͵Ŗ¼চΌɮՖȉڰȠעEԬϮЊ׍İсτ९̧ؓЯ֋ʉͽTࢹႍß"],encodeOffsets:[[32631,-1052]]}},{type:"Feature",id:"UKR",properties:{name:"Ukraine"},geometry:{type:"Polygon",coordinates:["@@̾“ɄȒʮ¥ࢌĆ՞Ӈȿǝêʻڠ£̘ηkǑ੪̏٢Ƅ԰ϿӮVఊ˙XʙͿѯȆҩƃ˩߻Õџɻύڡã֑˕޽«ܣ̻¸ԹЪȭࡨ¼Ǐ̛ँơଛӟұǠȄЂࣽʘƨLjߪ˪ʑȔಯɆË̼ީĻ̷ҧٱةϟƠЁƉϑƺɂĞƦ˾ɲˎÑƮǬäĊśӸ{ɞØƽĎÐŲ̉ɈŧΘ̩ƐÒ˶ϝɦΉŽأʾ֑ĉȧŭΟ@Ƀȟاă˹ŹϷȴ՟HԳĢγǵÍɤұɮǐͺɸɔȀµɑϘބۦиİĜɾхܼДҢɪٲnࡖßबȫڎi͂ŧ̀Ʀɚȝݸ¢ͮąÄцʶȂܞº"],encodeOffsets:[[32549,53353]]}},{type:"Feature",id:"URY",properties:{name:"Uruguay"},geometry:{type:"Polygon",coordinates:["@@ղĚࡆٯ̺|ࡺ՟ڈҫӠֱχЉɸӇεՇॉұاǚғěޥΰ֫ԟҬÞլǾȈS࠸ɤࡺȾڦ"],encodeOffsets:[[-59008,-30941]]}},{type:"Feature",id:"USA",properties:{name:"United States of America"},geometry:{type:"MultiPolygon",coordinates:[["@@ũƕȽŤ|ɾƓ̨¦ĤƤƎÍǔ¸þÜe͐ƙƬñƌőɊ̍q¯͟ǵˏſ"],["@@˭ÑƟǮīèQÀĈî̘āɘŹëĵ"],["@@ĝ҉|Úĸа•"],["@@­µÓŻˆŃȒ’ɤŚêÃʐ˥"],["@@ıĉ˱ƴªÖŸĈȘijȝ"],["@@Ƭңʼƛז½࡬ƅࠂʹڼŊਖɓ˞Tݨʄ߂̧ࠒ͗ں˩ٶˏĈəȢĉ½ĉɦǎĔ¦ȣǜƅɴ@ŬĹĽƫ࢖ЁǶށǚܳʗӹЁҥȁ̍mēĦť˸Ɓɂ@ঊ҆ࡾƀસмfĐ÷ʰƉǒϜƆࠜHޘAˎ͞ŀàࢶ؄ϜƸ౦N໾BĎȺː¦Φž̖Ϣʲٺٚي˨ə֜ƜώʏAଧռӅƢ˝࣋Пࡷ̃ࢱʝѻӿƛȋSѽˤѽΒsė̬ʦȇãʇ֥ƋЗhةƥλ¥ӥ¥۫ʏఀǂʠǃ୳ʥ՗C|ĺʭɷʚǹ׽ؑ٧×Ɏȁª˟ɀǪҍȼƭ^ͅˏ͛ҿڡûʺֲѕ͎įۦljεǴՑևƀׂ˓˜ߛʊÍĖ̃ŠࡁՕدࢇʝցӱнÁэ̱ţ˭इձӁЍЅӽŻׯƪ׍ˬܗώשLεЊঅ֥—͛ȿԡʣŃЯĺƁς͋ȖѻܢϹٞű͢Ǥ֐ɽҦٻ۲͟źࡑϡƭ¦СϼՃȺोŁݗĤٙÍΏſƲɟaͽǴǓLJō̵Ů́ǃ؍€طѺܻĿ؏ȚԹÏۻȝއح࠳γҝБȕϗUׅ¨ЕDŽ˹͝{׭ȂٽʺɽЄȁטӷӐ̃ӰуֺףͲۉgՉڑۣʦѡʪȽҦ˧Ѯӿτїˈ̩̖ป@C΋ڗ@ဩOቿפ౓ТĀǒ੩ĝॕÝƙіխӚϻĴğʌһ¦̝ɪޭĊɉƌĹҢࠁࡊ۩ୠˆȚχˤٯ۴řۆ҃ҞȀۢ…ܜˍ٢͠ߊĸނĺނƱૼˇܘʓ϶ĸǐ௒˷҂ߋȺɜƇې˷ێᛸ@᠂@ࠜ@ᢢ@៚@ᡀ@ᡄ@᭰@ᮞBაAF͔˴J"],["@@࠽͋ѕɐŽЀބ̘҆Ÿ֐ÉΤʻܫЍ"],["@@ԧŽսƾԛɮࠦƞښùĂ͑"],["@@԰DžԾĒڸɛ࠲őéĝُDZٕǾ͋Ʋݍµȧôº̈́"],["@@؊ϛώnjහ»¹ȕ౾ƛࡨČᄚ˅ྤā٨ʼn૦Ǝౢʧࣲŝ@@MᷱIⷍࠠ{ࠌɵהρݜցࠈҺࡈ˖Ҁѡ֤·ޒϙՂ׽࡮य़ේ՗xՋұЙҥ͂ݍˌʃܺએںҍߎ߯Ä೷rটʌ჉ࢎߩDŽ฽̜୑í࿻ϬৃΨटǯǦ׏ҫÁঁǫ݉˱झdzťӶϚࠚࣀʶɱɂੱҵֵ֑௅ױؚСߏ׿ࣗΗࡁʱȻωಽѡ˅ϿছΫֽÞ޷ɻ࡝˹ۧ˫෹ʉſƘऀϾࠔʸࣆҠਬĨвΈ୘ԊȈǚب̒ƢْђӸॹʫ˓Ơҕ̧շюɧ̝̽м࠿ͳԩBïԄƲ̮ե̚થLJ܁ЀַȬIӈ٩Ϊ͘ӘۆҸ̚њںÖ־ƇڴМ؎ï٘ʼƻϨҹưج͖ԩWࢻǽʯȃڏȄஏĥ௷ȬΛ͸੟Ӧ୾ΘመШ۔@ŕнᄢŽڽԶਕ͌ױр߫ΨଽˈҺѲ๰‚ਗ਼ϦȨФ࡬ЎࠊĪཪώޜÉಐ҄ౚǭ"]],encodeOffsets:[[[-159275,19542]],[[-159825,21140]],[[-160520,21686]],[[-161436,21834]],[[-163169,22510]],[[-97093,50575]],[[-156678,58487]],[[-169553,61348]],[[-175853,65314]],[[-158789,72856]]]}},{type:"Feature",id:"UZB",properties:{name:"Uzbekistan"},geometry:{type:"Polygon",coordinates:["@@xԦૣά࢝ЪշЄ॥׈Яࡾ˭ƴࣥ͏ǤěڢଅѺ۽ӥܕ́Ɛхॅ[ᶾᓘӺƾïದ׻یͅߤݵঢŪ෸à৔ؗÙࡅЦMǢۍ੬ɲЉ̺Lπ׺૎הӖƺʠĉ۵խئ́ײȾ়ѷ੽؁ٕĊ΍uţɺǪ϶૱țˋաЋҫۭ ɓυؠȧǺصҿࡗهǰҳN"],encodeOffsets:[[68116,38260]]}},{type:"Feature",id:"VEN",properties:{name:"Venezuela"},geometry:{type:"Polygon",coordinates:["@@yȣӱĭ˜ϡYѭυӥ͆ڙδÆȌ؈ʻ̒§َਸ਼΀řІ̎ˆ̞ןל_մҵ˧ݮQ࣌ĔӖϕٞĻҼʾXɄਨ¼৖\\܉ʛ˼Їڦ×ِЯƆڧѬn͢ȣڕӱó̫˾̷ȽƽԫƉjϱɫɱّ֪Őʁ̭͍ऱ̽׿Žʏȣڛɀثņƿýϔɑ‘֝ŜՉ܆ï°ǭ׷ʅĭΣΉƏسȝNjʱٷÅҧѼʯ࠺ɟ̧̌Ȅюм…ȊʅʠǛ֒à׼Ȉ˰ƲҎ̓Ơӏĩ؁®ͻęסܢӥńઉăȧ̊ȷê‡ǬĴ̶áͺȃȂŅϮѡÈɸӮĺ׶ʔ̸͘ʌɈрդƖ"],encodeOffsets:[[-73043,12059]]}},{type:"Feature",id:"VNM",properties:{name:"Vietnam"},geometry:{type:"Polygon",coordinates:["@@૭ܗ۫ߍȁ׍٠ࢭ޺ળނԱԞګϪ།ŕ๓۫փ१եۇ۫਷ޱ̧ՠʀ֬دӌܬ͸ࢦÔσԚප٨ļ৖ț֖ƶࡀɃצٍאՋ݌ۥ঴৓Ԋʊ̠՞ɘ͙ܺਙPϕކӭڐҊȴڢIࠈĬܒ҄К̿ސƵƃӛАͿࡎɓ"],encodeOffsets:[[110644,22070]]}},{type:"Feature",id:"VUT",properties:{name:"Vanuatu"},geometry:{type:"MultiPolygon",coordinates:[["@@ˣō˭ςŒɤՆӗ"],["@@ƌڱɥŀǩ­ťɴi٢Дʵ"]],encodeOffsets:[[[171874,-16861]],[[171119,-15292]]]}},{type:"Feature",id:"PSE",properties:{name:"West Bank"},geometry:{type:"Polygon",coordinates:["@@@ԣŭʙЃŕ˜ɜɌŚɁĦǬ̤֔ś"],encodeOffsets:[[36399,33172]]}},{type:"Feature",id:"YEM",properties:{name:"Yemen"},geometry:{type:"Polygon",coordinates:["@@؉ɥNjύo˹࠷Οഇϻݩףυ±ʥºӭΑ՗lj۷©ɃµǿɛəÕŻɇеlˍœ׉¨ɓӬzҠƍʜǑتʋΊǚ¤đϨĸNJ™ξςˌđΠɞЮΊɓɬúॺnƸċ߼č͐¨ɂ˫ϺƖ׼ࢦ޸Ϛᝒ͒ڀ൳˞ח"],encodeOffsets:[[54384,17051]]}},{type:"Feature",id:"ZAF",properties:{name:"South Africa"},geometry:{type:"Polygon",coordinates:["@@ǏŧΣяɻћӇ׻ोࢁףԋًϣ࢛͙ѓ«ŇɷԛŰеDž࣫NJԙĹΏ¬ࡿͩܓƃԱͅϡoΣ̚˳fαϒŸśŏɦLӰ˙֞˔ƴs٤ս޼х܈AF׽તДдͪɯƘΫϘÓՈǃҌÖݤіB᷌ɨűӾߙûԟȈ̏׼ĒрϒЊʨȶДЦȚΠķВɽۂ£՞ȜĐʾƨДҚäʨ͂˪֔ݮغஒؤ΂UОƛ˲Ķ҂ċД஁ɔׯƫऩî̟чƶʏÑāʓɯ̿T̃ԆҕӮĜǢώْQȿؑıۥɑϛֵщ","@@νʶϻǟҕ҃͡Տـ٧̜ČƺˎҴƀƜ˜ʴФ̅ʪ"],encodeOffsets:[[32278,-29959],[29674,-29650]]}},{type:"Feature",id:"ZMB",properties:{name:"Zambia"},geometry:{type:"Polygon",coordinates:["@@ІϏɊ܋ƝɩǙڻLjۡ˃̇ʭޭѶɓᢇۗĂׯٍřӍͯĹ̛̅ßܵۓҭխ˳o˗ĬऱĠƯÚOêͧȎկ¶ۋȑչԾ֣یžᦶშYí̂Ű̀ƧЀĪТėʺ̂q¶ʽϾrՖûˬϡڨŝԤˆȌѯ٠ş̴ΧΈҥ٠Që࣠ɱƳח͞ɧƬļࡈƬসȉψʈ՚ɤĶ଀ƚͦđΘɇͰƗՖƗӊʧ"],encodeOffsets:[[33546,-9452]]}},{type:"Feature",id:"ZWE",properties:{name:"Zimbabwe"},geometry:{type:"Polygon",coordinates:["@@ҁČ˱ĵНƜ΁VՙϞٯźʙՒC̒έĞ्ई˃ӢǛƮ͓ڤलğ˘ī˴pҮծܶ۔̜àĺ̆ӎͰَŚÆ̻۬hϴǯǺȻАÓѦˑF੟Ǐ׋—عƊʝħӵŵùɛ؅ࢫ॓"],encodeOffsets:[[31941,-22785]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/xiang_gang_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"8100",properties:{name:"香港",cp:[114.2784,22.3057],childNum:1},geometry:{type:"Polygon",coordinates:["@@™@}ScTʟ@cWuJÁ–]„l¦RLj¼BĄà˜ ŽH@TOHCTDDDHDNAT@PEHDDNJLX@BABALHFF@DKHADBBLDHHFBLEJB@GDBBFBADDB@@KFAFBBJJA@BB@@FFDDADFF@FADDDBJC@AFBD@@DDD@DAA@D@DB@DHHBFJBBFEHDFAN@DGDC@DLCBDDCFDlAFBFCBEF@BC@GDAB@FD@DZJ‚X´HĐMja@Ý`p_PCZ@lLnRGSDMFK|a\\Y}­ƒ§™Mën"],encodeOffsets:[[117078,22678]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/xin_jiang_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"6528",properties:{name:"巴音郭楞蒙古自治州",cp:[88.1653,39.6002],childNum:9},geometry:{type:"Polygon",coordinates:["@@˜@ÈÒĊanwŎV„™Ȯ¦ͪŃĢ„ÜōȂçČéƐżLɆóĊ‚ĊaʊŁ±¯²Um»ˌmÈ»V™ʠţWÑůǓ郙ôƑƒğÆīŎī@Ƿ™wô™˺LÞ¯ƨVǪуšĢ™ȘV°wĢŽôk°¯ƒ»΀@Ȃ»ĸŽǔ@΀ƒ͔ôôLɆó̐ÝɜLɲōͪƒƨóŤK@ī@IU܃ÛmȻţǩÝ˹ÛljťǓǫō@Ɲ²¯VçōKͿŁΗÇţ»ƽ™ɅƑLÓŏÅÅɱV@ÝĊU¯ÑĊĭÞLšÞŎJ±̃XȣˌōlƒUÈ¯ŎKÆƅ°™XÑܱnŗġV¯™óaUƒƧUōŁ„Ñ™±„çɲ¥lĉkğ°ƒk¥˜ƒnğţL¯ÝÝUƽĬ΁lķ°@„ō„XÿݯV»ŹLʉÞɱŤĉó°ÝJ™¦ÝKÝ£ţܙÈĉ@ƒxǩUċƑ@ky͓¹™`U²ĉVġ»ğa¯¥ť@ĉ™‚ó@ŻÛÛJƒw¯nó¯ġWƽʩķÝɛwĉĕݼȭÞķō@ó£Å΀ƑŽ¯ôȯÞ¯Ȱ™ÆōèĉXǼó@ݚnºƒĸ„ÞVƜĸȚUʶõˀĵĖɱŎÝĖVࢰӒѢ°˘nϚVˌ™ÈmɼĵŦW¤öʊõʔ@°ÈXVŽ™ènŎȁb¯ǫĉ„±Èğ`ġwōÔğ»mVVŽ„Ý¥ó@™ĸķô@ššbX„ĶmV²²`Þ_˜˜ɴbͪÈ°„ÞWĸÈŌmބškɲŽÈUÆ»n¼ǬVķĸźô¯°n¦ɄǜÈ"],encodeOffsets:[[86986,44534]]}},{type:"Feature",id:"6532",properties:{name:"和田地区",cp:[81.167,36.9855],childNum:8},geometry:{type:"Polygon",coordinates:["@@ƨ¥šèź٨ΘƑᩄbUࢯÞĕɲōĶĕöʿVʵķșUƛƒÝ„ķm¹Þ™ô@È»ĊWŎçšÅ°ȯȰÝ°óƒÆͿĉ»̽çnƒmɱĵƧºóU™™ƽ@±wóL¯°̻L±Æ¯Vƴķb¯VÇ¥ğ²Ǖbk¥ÇKlÅɱġ@у™óK@™ÇaÝXğţxĉČǫķê¯K@уaŹ„ƑKƒ¼¯Vóaónġw™óÞéU™ġbóĉğÇl¹™aUóğKW„Vůn›ÇŋƑ›ķnʇ»óxĉw™çÇ°Åw™°ċ„XŽ™„ób±ƒkÈÇJ—ƒm²ţx@ÒݎšŦǺn„ó¼n°ÇbUÒ±¼XĸĠłƽXmwĉºƒzÈÜmnxmx²ĖmҚbnŽƧêUºĊêÆVóĖóUĉ¼ÅĬƑ°ɆƆŻŚlłÞLš¼nĠƒ¼@ޙšÞź@ŎÞ°VšɄɴжϼِ͈Ŏ„"],encodeOffsets:[[81293,39764]]}},{type:"Feature",id:"6522",properties:{name:"哈密地区",cp:[93.7793,42.9236],childNum:3},geometry:{type:"Polygon",coordinates:["@@WnŐÆĶLĢ¦ţºź„lxÅĸƽŚ‚Ʉ—Į˜è@ô²ÞUĔƐńV°¯ĸX¦Ɛm̐bƒ»Ɇa΀šĢ™ƐLˤ™ȘÑnƒІljĸÿn¯ĶaŎ¯ĢĕȘ¯°΂œla¯¥™ǕǔwˤӱlťО̻nŻmɃĕċţUw°WUóƨÅţķ°ýV±óÅǓéʉ¯ƽŁƒéōǖȁÝƏůǕw˹ǫȗǓƧǕVý™é@ĬţLƧôͩ„ɱŎɛK̏ÞɅôóK@²@°ōؚ¼lŦ¯ŰóƜÛlV¼ķ¼ƒ°kȰ™Ű„ĠƒǬ™ŚÝŎmĖ`@ÇÜn„"],encodeOffsets:[[93387,44539]]}},{type:"Feature",id:"6529",properties:{name:"阿克苏地区",cp:[82.9797,41.0229],childNum:10},geometry:{type:"Polygon",coordinates:["@@VƚxˌŎÞŎƒ°n„ȂÒ°²VĊ¯VğƾˍǬƨÞÞKÈÞĊVźôɆÞĢèŌôWČ²ŤVÞĸʶbl‚¯ôn_VÆĸlmÞnVź_ĸ¼Ȯmǖ„šéĸW°°„ĸJ„kʠ¼Æw°¤ÈƒlxɆzČºĶI²ÆǔUš°ô@Þ¦‚ƒUnUĠ¼ŎÓĢxĠ_²ÇĊƒǬ°ŽȂamōšçUÇW@¯öʓõʉX£ĶťnɻšÇUˋmϙ¯˗ӑѡᩃaΗƒœɜ°xWƴUxɃÒˣ¤Ʌwğ„ʉōóÝŹ±°ȗ@¯„ƃ²¼","@@ō™гwȁ¥Ƨ°ŹÑķV™¼ÞêĊ»‚lĵšm¦ÅW@ĀôÈźaɜxÈbÞÆĶIОŘnIÇŃÛÝĊÑĠƏ"],encodeOffsets:[[80022,41294],[83914,41474]]}},{type:"Feature",id:"6543",properties:{name:"阿勒泰地区",cp:[88.2971,47.0929],childNum:7},geometry:{type:"Polygon",coordinates:["@@ɲˣĊIÈ¥‚ÅU±Ċýkō°ƒĉƽó»ĶƽXóʵʵ™ȯƑÅȁɅ¯ĉ@ÇሗK֛@@ˤV֜ʵрƒǬVĸƑŎ@ƆϯÑóŽķ@ʇ»ķ¦έmlÈĸĊX¼WźÛÞÝѸ‚ĢČþ„ĀĊôάVö¼ĊUƨ°°èŎČUÜƐóôVôôŽ²êȘlˌç°`n²ǬŽĊaš™ƒÛ°±kğmm»š@°ÝɆÛÅÇVaݍVm͔ğôÝÈb‚„@„ƒ™n¯š™ÜUĢÑĊ@źīżWŤÈǖWôŁÆI²ÓƨL@ŽĊX„mmÑÆ»ȰÑkƒĶō@ý°m—¯"],encodeOffsets:[[92656,48460]]}},{type:"Feature",id:"6531",properties:{name:"喀什地区",cp:[77.168,37.8534],childNum:13},geometry:{type:"Polygon",coordinates:["@@Č@°ƒĠ„ôÓô@Ŏĉ@Ƴĸ@Ť£ĢlVôWVóřXĉŤêÞ@ƐÒĢÑlèÈV@šĠIk°ÆŘ@ÈÈĀ@ǶťÒğ@š„@ÒĉlŻ_@šƧĖÅĬōÆ@bźÞnƒƒlVœÝĬšWƼʇ„ƒÝÅ@ÇÅÈwWóĉ±ğz‚ĬČƨƂÝIĉݯbÇÑĉƒ¯ʈV°xUŰĊ¤ƪ_ôÓɚI@lȚXȮ™ŎlɴȘ՘š„¦ɲÆʈ_ɴŽźŽôÞʊŎĠƒɆxˤ£ɄÑVwXƳ¯w›ɛŹ٧™çƧ¦ōƒُ͇еϻɃɳU™Ý¯@ōÝŹš™@݄»mğ™»ÝKkŁżřɅƅƒ¯ÆīĊ»ôVôĕÅUĉéV¹ƨém™anѱĕnwmwnÇۄyĉ¹ŹlŏkĵèķmōÞġKñÔċKÅèĉzƒŽ„ômxȗÿƿI@þÅČÝKÝ°@¼ÈVºš@ÅĢšÆUċłn„ÝÆǕČĵJm£ÝJ¦@ĊƒxV°ƏLċ¼ǩ™@™m@ÅĢómÇÆğ¹Çš™ÆšĖÞKšx„wô¦ÆÑÆL²ÆƾŽU„Ž±ŚÅŻĖ@ĬŤÈñ„@ǔÇx„Èǃ","@@VÇ™ţ°ğUĠ¯mk¯ó¥ķIġÿƏbƒ„ĉa±ÒĸĀlKU„_m»nwšŽ„m@ÈŤ¦ĉbÞ°±Þżł̦°ĢŁVé"],encodeOffsets:[[76624,39196],[81507,40877]]}},{type:"Feature",id:"6542",properties:{name:"塔城地区",cp:[86.6272,45.8514],childNum:7},geometry:{type:"Polygon",coordinates:["@@ήnĸ¥ʈ¼ĸ@ôϰÒ@ƅƒōUķƑǫʶпU֛܃LګK@΋ĸ@Æ£ÞġÅĠċšLV݄»™@Å»Ýnm¯š»nŻĊ@nķŃ@¯ómóÛÝǟ¯aÝóȭ¥ƒšōUmxĉbÇї@›bUº¯X¯ÆƧbVÒĉnǕw¯°ƑŽV„—ŽÇ@kx±Uƒšɱn™ŽÅKƒ„¯ƒĠǠU°ɜL@°ƒxnĬ‚ĀŋŎÇLƒŽğšϱÞέƜkôÅĀǕłƒĸĊŤUŰĢ°„¦ȂϰÜɨ°x@°żǠÆƈČVĠ»ČL°ÇšbĊÑ̐óÞlĶwބɆVÞwǬxǪţȼÜLŐĶˢ@","@@óKĵĀV͈ĉłƾNJÆŤƒzXl°ƒÆL²¼źŽôÈĢǔ™¦l„ô°ɜÞʊĠğŃm»ʵƳƑʝȗīV¥¯ĉ°Ñ@ŃÅI™»ĉmğn™ƒašƒċƨbš™Vğ—w›ġ¯@Uōa™ĉÝJğÑÆŎkŎÞĀlźƒ¦"],encodeOffsets:[[87593,48184],[86884,45760]]}},{type:"Feature",id:"6523",properties:{name:"昌吉回族自治州",cp:[89.6814,44.4507],childNum:7},geometry:{type:"MultiPolygon",coordinates:[["@@መL@È°ĊȂɆƒÆĊ£„ťôWÓɆbĢÅŎƒÆ¦ČÑW¥°ķU¯ƏŃVē±Ý@ó—ç˜ĭɃƾřÆķkwŹƒŤ¹ġ¥ĵKŏÅXmˍщwǓ¤Ƒ@wóōVķ£ɱšġôÛa±Òȁ„óèţIVŽƽ¼k¤ó¹ġJmx—»ÝUƒ²™@ÅƃĸǫŎ„ĊmŎǬ՘"],["@@Þô°bÞǠôÜôn@°ĸń˜Ƕkłƒ¼UޙKğȂÆÝĢŤķ@@ΌڬL܄K@ˣȂ˭lĉńW¥ĵVÆý@ŃÞēUŃȗƅ@ŹƩǕĉ»k»Ç™VğóřX™ŻKƏŽċêȁèÛŎġƒͩń"]],encodeOffsets:[[[90113,46080]],[[87638,44579]]]}},{type:"Feature",id:"6530",properties:{name:"克孜勒苏柯尔克孜自治州",cp:[74.6301,39.5233],childNum:4},geometry:{type:"Polygon",coordinates:["@@ˎǫĠƽ°UUĉ¯±ȁÑmƒ„¯Ýōˋō™wUű»ÅƑ°ƒȘ@²¯ɳʇ`ɱŃ¥՗™ɳȗōkȭšșW@kəJóÔƩ`ĉ£Vů¯wU°ʇĊ„ÈÒ°aĊÞÞJŁċƧīĠyĊ²XôÇxÈÆÆ@„ÞʈƒÅ»™XÞīU›Ƒkm„ŹÝ@aŎÅÆīƨĕ@™ż`Ċk@љƒĠ@ŦÑ@ǵÇÿ@ÇÅŗl¯ğJ@™ÇUkçġÒƏÑÝ@ţéWĊôŚUŽóXUġkţ¤ķ@@ƴōĊó@óÔğƒ¯„ċ@@Қ¤kôˣŰ͓„k»ƒKX¯ċwƧôğɐšÒôIVƙš¯UķǬķšnŽ™¼ôb°ÒȰVVÈÞ°ƒĸó¤V¼°„V°²êƒlĢ҂Uƨ¦ôȰƴĊVV¼ǖIċĊ„ÞɜéšnČW˸Ǹša„řÈw±īšçĸ¤ĊšôšwšŽĸUĢ¦˜éǖĬ„Āô¼lÞkÒ°x°ƆÞx„šÆV²ǔ»„b°wގȘ¥°n„šŎV@°„„ʠè‚ŰȂb"],encodeOffsets:[[80269,42396]]}},{type:"Feature",id:"6521",properties:{name:"吐鲁番地区",cp:[89.6375,42.4127],childNum:3},geometry:{type:"Polygon",coordinates:["@@ôK„ĉǪa²¼lÜô@ʠê°Ĭ™ôȂƒ²ÑÜbĢóɲ™ĸ¤ŎUô@xƒŽǔ£ъxˎmƒÈÛ@‚_nĕÞōšř„ǫƒğšůlȯ„¯ĸ»U»Ükôƛ°ůkť™»Ŏŗ@¯@±͓óͿ„Ǔ@ķȁ¼Ϳ@Ƒ¼¯°ólġ¯xȗUġšƑ™ǩÒƧUÝ°˹Kóššx@ǸōĬÅĬƑĠ󃄚ǔêÆ°XÒʟŤUšÇ¼ˋnn¼±V²°ȂUŌݜbʟǔɅô@żǬaҎÈ"],encodeOffsets:[[90248,44371]]}},{type:"Feature",id:"6540",properties:{name:"伊犁哈萨克自治州",cp:[82.5513,43.5498],childNum:10},geometry:{type:"MultiPolygon",coordinates:[["@@ĉ„ÆŘȁ̐mÞ¯ĀX°±¼@ƾ¯ƴ°ŎÝþŋ¦WÜÞbȂĉźUœÇmwVUȂóô@ȰÝ΀nÆJn™ƾ™ʠ™ŌLČóǪ¯œ¥ǔaǖšŌaôÝĢLšx„ƒÆLšɲm„™²VlwÈ@˜Uƒƒ°¯ǖxĊmUÑƨa°Å°WV¹œa›ÇɃÈm¥°¯ŹóĸķǫUm»Å¼ÇVɱ™l݃ŋnķÇÝX¯ƒͩÇɳa——Ý`±_U±ĵnWƒ™a@™ĸóšķ™¯ǓV±ÅĵJċ¹ɅykwDŽ¯£Åxʟ»ƒlķI¯ƒX¯ķ‚™êǕƒȭnķ»Ź`±„kÞ@Žš„Ýô@Þ°xšŤŎIƨÆUxōš¯²ǔĬǬlUŚ"],["@@ÞĀlźƒ¦¯ĸŤKޙšƒċƨbš™Vğ—w›ġ¯@ţƽJ"]],encodeOffsets:[[[82722,44337]],[[86817,45456]]]}},{type:"Feature",id:"6527",properties:{name:"博尔塔拉蒙古自治州",cp:[81.8481,44.6979],childNum:3},geometry:{type:"Polygon",coordinates:["@@ήƛϲÝĠ™„ÈKŌōÿmī„w@¯ɛKV¯ğǟ°Ƒ™wġKóÞŋbǕ™Ǔb›¦ǩ°ċôŋKʟšƽšmšÅImŽͿŽȯÞó@ȁôUVnx›ÈŹVȁĊÝabŻ£¯°l„óxȂŤĸkĊšÞyĊêĊmĢxV„ƨÈŽĠX„ŽΘÆĠÔź‚Ɇţ°LXƾŤŤb"],encodeOffsets:[[84555,46311]]}},{type:"Feature",id:"6501",properties:{name:"乌鲁木齐市",cp:[87.9236,43.5883],childNum:4},geometry:{type:"Polygon",coordinates:["@@šŽWŽôŚUĠȚl¼Ċ¼ƪǖ@źȘƆ@ýlܚXVŘޙš¦V¼kĖó҃èkĊȁˮ֜@ǫ՗nōƒĉǬō„ķÆŚ@„±ÞV˜¼nwĢIôºl£ƾ»UŤJôçšó¯īʟéó@kÛ±»ǩbƒĊóLҍÇǫb@ŻɆóʠǓ›aŋÞȁVʉłĉbĉɅô"],encodeOffsets:[[88887,44146]]}},{type:"Feature",id:"6502",properties:{name:"克拉玛依市",cp:[85.2869,45.5054],childNum:2},geometry:{type:"MultiPolygon",coordinates:[["@@ɜÞʊĊýVaŃm»ʵƳƑʝȗīV¥¯ĉ°Ñ@ŃÅI™»ĉmğn™ƒaݚţL°ķóKĵĀV͈ĉłƾNJÆŤƒzXl°ƒÆL²¼źŽôÈĢǔ™¦l„ô°"],["@@ƾIŤ@UUwōa™ĉÝJğÑÆŎkŎ"]],encodeOffsets:[[[87424,47245]],[[86817,45456]]]}},{type:"Feature",id:"659002",properties:{name:"阿拉尔市",cp:[81.2769,40.6549],childNum:1},geometry:{type:"Polygon",coordinates:["@@nIÇŃÛÝĊÑĠƏō™гwȁ¥Ƨ°ŹÑķV™¼ÞêĊ»‚lĵšm¦ÅW@ĀôÈźaɜxÈbÞÆĶIОŘ"],encodeOffsets:[[83824,41929]]}},{type:"Feature",id:"659003",properties:{name:"图木舒克市",cp:[79.1345,39.8749],childNum:1},geometry:{type:"Polygon",coordinates:["@@VéVÇ™ţ°ğUĠ¯mk¯ó¥ķIġÿƏbƒ„ĉa±ÒĸĀlKU„_m»nwšŽ„m@ÈŤ¦ĉbÞ°±Þżł̦°ĢŁ"],encodeOffsets:[[81496,40962]]}},{type:"Feature",id:"659004",properties:{name:"五家渠市",cp:[87.5391,44.3024],childNum:1},geometry:{type:"Polygon",coordinates:["@@„çôÑlĕU»™¥ÝšUŗ™WkÛ@þVńÝĔ@ńÅþĶUX¦Æƒ"],encodeOffsets:[[89674,45636]]}},{type:"Feature",id:"659001",properties:{name:"石河子市",cp:[86.0229,44.2914],childNum:1},geometry:{type:"Polygon",coordinates:["@@lŁ—ǵm‚ĉ@mż™¼n°ÞmƼš@"],encodeOffsets:[[88178,45529]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/xi_zang_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"5424",properties:{name:"那曲地区",cp:[88.1982,33.3215],childNum:10},geometry:{type:"Polygon",coordinates:["@@ƨʔĸbܺÞwnxźbÞ°ô@„ĶŽĸIȼĊJŎÈôUšÝƒ¤ǔLސŎ@ĢŽȘblƒôL„ÇźçȤôLš¥ÞIÞ¯Ķxʊťƨ™ƿÑĉXVķŦ¯ȂKÇǕšÑ¯IUš£¯Óƿ£VĕōÞÿÆwƒƑ„£ǖxÞĕ±ÇÝaUÑȃU¯‚UōÈ݃wWŁĵ™±Ý„óĢÿ°IÞ±mÅĢ¯mÿ„¥°UnÑŤĢĕĶwǬŻͪwŎ¼źÇĢ„ĠĕˎŁ°óƨ¼Èa‚m@¥°wǔ„ǖ°ŽƨÇŤœšġƨ„ŎŃôbÈÛŎĊ°@Ġw²ÑÞJƃÆb²ƒ°êĊUނlȲƒV„ÈKĊÒĸĉ›»ÅôťUÅǃk¯@ǂÑklǁÅl™Ģ™VÑóƒ@°@„ÛĸƒV¯ƒÇĊ™n¯Uĕšƽ¯m›¯b™È@Ò°Ĭƒbĵ›¼„‚kxķýÇJk£ÝaUÑÅóĶǟkÓʉnĉƒÝ¼Ƒ„ó»Þmn£m™Č¯@ƒȮÿV¯ĸƒ™k@Ýówƒ»ğ„ġ±ǓLō„ƒšV¼Əèķĉ™è±b@Òţ„UÑóakƒl£™Ó@¯L@™ÇlUóȁš¯aġÈÅĕÝLķ¯Ė¯@WĬ—x‚ÒÈnW°ţôU²ǓÓġ²V°¯ôƒǔÝL—ċšk™š»Ý»Ýš¯ÞƒVƒwۄÝÇōͩÈĉċ»ĉm¯£W¥ţKkóġƏW@¯±kōŽÈ›b@җšÇaƒÆ¯a™„ƒkóŽÛƒÇ¦Ýa¯šÝ™ĉ@ǻۄmƒǓxķƛ¯lVĀÅÞġb™™ÇJUÅV™ĖƑW™zō»ōšƒW™n@è¯ÞóVkwƩnkźÇބҙޯƒƒýğÇUxÆÈnè±bĉÝ»ÈуwšwÞ@m»ÈV@ýÇ°ķ™xƒa„ݯXċ¥ƒÈóW@ôkxlnxVÈóĊkŤġ¼@°¯ŰƑL̻۱ŎÝV—Þ›VƒÇÞŎÇakƞ‚š@èğŎĸżšƾ°ÒšLÞôĠKȰĖźVÈÒĠ„¤™VôšŽU„ÈþťL@ôǬÞlÜÈnÇÒUŚ™@šĊƨW°™°Xƒ‚@ČÇþ„ƴĉÒķ¦@ŽĢôWĀôłUÞĢǬ™ź°¼š@ƒôV°„bUÆnzm¤ƽĸƒÈ"],encodeOffsets:[[88133,36721]]}},{type:"Feature",id:"5425",properties:{name:"阿里地区",cp:[82.3645,32.7667],childNum:7},geometry:{type:"Polygon",coordinates:["@@„Çƾķn£myVŃaU¯„ó™@¯»šŹġǫVÝóŁXÿġó@ĸ¥ĊуƳÈý@ċ„Wš¯X¯ĉƧ‚™š@VřÈÑÇmkÛǫÝ@óŦKÇýVƒ™U󚏃£ğÇÑŹUȯĕğLÝó™K¯Ñ™ƽķŻĠō@灙lƝÈbƍÈ݂„œU˜ÝÞU²ō̼ůƒK°ů@¯UK±—ĊƧbōÇmçÈġƒóšÅób™™źóš¥kīƯól™ç™KôĵUƒÅ„VŃķ¥nÅŏm¯¹Å‚™»@ÑǍóxÝkʇȤU¤ķb@ƒ¯ĊÇx¯ĸĉKm°šĀk¦l„„KnĬȀƾÛ¦WÆŐmNJĉ°ōUţ¤UšŎ°šŎKÞłÆ„Ǔ¦ƒÞ™‚™„ř¯bmUÝl¯Um™ğl¯£șwŎǫaÝnĉĶƒk@¯™K™šō»ĉn™aÞ»ťnkml™ĸ¥UŚŻkÑťƒĉV™ôó°LôīĠU„ÿĉǕÅz±Kƒ¤„²ō¤¯Ė¯UÝ¥Vĵ™óÈťÝwķșÑk¤ó„™ƒWýĵĕ™„VĠƒV󍃎Ǔ„ķ°k±VU±ţ¦UǟÝřJVљ¥XUċUŎlÛƆǕÆȗƆ¯wŏÞÅ@™šĉl݁óŽƒÒ™nUôńlxólÝôێ±™™LÛôÝL@‚ġ¯X¯ÇUżóa󤛼XÒġŎóLk¦‚ôżĸĠ™¼™KġƆô¦„ÆƑÔĉĶ¯ImÒ°¦n°¯Þl˜ÝČn„ƒÒšKĠޚĕkƒlýƾťœšôI‚ĖŤÒnƜm¼¯lnżóÞ@Ůó¦™ôƽĖċŚn°Ý°ôÈUƜƒblÞóŽ@Žǖô°UÈƆ°X„þôŽô‚lѢšŽ²Ėm¦°š@¤™XŽĊblܚzkºƒĖmX„šŎWVšóÞn°lĠxȚa°»żLźƒ„b@Æ°XĠÝȚxĊĕŤaȚ‚°È@„„@èŤ¦Ü¼œW˜ÞkŽÈ@V°lŤkŎ±²¦ƐUšlj°aÈÑŎbĢƒŎbÆ¥ÞIȘlššôVÈU‚™šb„kɲĶn„mnXb̼òƾĖŎ@ĢȂÑôÓĠĖʊšĊÔ"],encodeOffsets:[[88133,36721]]}},{type:"Feature",id:"5423",properties:{name:"日喀则地区",cp:[86.2427,29.5093],childNum:18},geometry:{type:"Polygon",coordinates:["@@ĶĖXþš„ôƒl£šÒĸÇÞxÇŦšôUĶÞ¦°V°ĕŎ£ƒ±„£²LÆyĊǖƒĀğVóĬ¯KóôUš‚ĊŦ„lҙżVÆķ¦kšlnŦmݼšbĊmŎ¼š™šL@°„lĊĵÞmǬbƍȚx°¤Ġknš°VÞkVn°aƒŚš‚š„Ýǔ¥ÅƒÝŁōL¯™ōV™Ť£ŎVĊ¯nljƏXÅÜ¥ǿƽmīƒLkƒl¥™ÿn¯ĊL°ķÈw°ĉ@ƑĸaV£ʈȣÞlôwȎ@Қ¼Æ°ºŐnmÆĸ¦UńƃV„óĶšLšèôkÅ°lĬ™¦Źôššôa™Æ„ôÇĢnèŎÈƨa˜ĉ²‚VLĢ»lţôĉUǂwkmlw@óôX„ÇȦ°WƒÞ„b‚wĸšÈ¯@þÇUn¼Ý@™x„xÇńÞ¼ĊŽ²amçÅÇVwĠȄþ°„šÝƒÑÈÝlŹƪmlxôU°Ý@çšm„XŎ™Ŏ¼šyƒXšĕÆUVÈIššĢaÆÝUÿ°kĸƜǔwn„܃ȼĊ@ޚ°™Þbȥ܄ô„lšƒ°b„ÅÈb˜™@ќa‚ǯUU¯Vġš»ƒ™¯aV¯Ç°Å™mnÑŤçǬVǬ™±ĉ¯¥Vĕ¯Ýk£˜ō—w@±ġÛ°ÇVїƒ@ۘa@ČL™Ƴ™„ƒÇa¯¤ÝIĵ¼U¥ƿōķÅţŻókÝóĕ‚¥¯™U»Æ£X¯ġŃÛkÝ°V°ó¼¯èWôÞĖ„ȎƒŽkĀƧĀówm¥¯JŹÝJݙōVVŁaݐƑ@ƒ˜ğŭǂ¯_ƒ˜ĵ—›VnxŃón›ƒĵxÇĖĉVÝÈğV™Ò󃯐±Żĉ£ķÆÅL™Ljĉý˜ţۃ¯VƒnV¤ÝÈ@°ÅÞݤ™ŰğŁm¦ÝxóKƒ¥ɱÈUĠôêVôÛ¼ÇWÝçĵaō¦óĖƧlÇĢƑŽnŎDŽV¼¼‚ºÛ@m¦ƽ„ĉmm¯ÝKÛç¯bŏłĬ™bƒ¼ÅLmŽ„xť°ÅU™šÝXkŽÝmĉ¦W„¯K„ÒknÝaV„Ýè¯KɅńÝKnÞ¯¼"],encodeOffsets:[[84117,30927]]}},{type:"Feature",id:"5426",properties:{name:"林芝地区",cp:[95.4602,29.1138],childNum:7},geometry:{type:"Polygon",coordinates:["@@‚VÈłVôÈk@š°K@ŽšÔk¤l„ôbVÒŤƒ@ѲašçĸĊƐçU»„™ŎƒǔKĢ²Ġƒ„¼ôx@ޚlƨĬ„Ul¯ÈLV‚šÞJ„°Ünʊ„wÜbXê‚VÞ¯°ššanaU°wƼɴÑWÑ°mÈýÈam¥Þ£Ť@„¥ôblÞĢ„ź¥ôxÈÅmݚ™ƒĕŃV»ĉōŤōnóƒ»ÈīķIUƒĠÑ°ġĸLÞ¯VÒƂ@Ābš¼WôÈ@V¼ôóŤKÈÑU»šwVǫżnWÒÈx™¼‚lŦ£ĊōŤx²¯@ƒÆƒU¯šçÆ@„¤°£„é°k°lšůÈó@¯ŤÇÈĉƒkkÿó¥ÝXķљÜ@ÒóŚÝ¯°ĉówÇ±¦ÅJUÒĉĀķw¯°mĖ¯„±akxÝÅnƒ™»lуK@¯lU™¯UVѯóĊ¯mōğVǓƅƒÞƒWÝÈÛ@ƿô¯ÜġzÅþ¯ólmôʇġĊÅUͿřŏȁˋŁóÇˡōƧƒÇb™w°Ķôk¦šÒƒnUþġҙÔkǔķèó@ƒ²@ŘōńĵyƒzġaݤÅIƒ¤Ƀť¦ğѯ¤ķbóš¯ó±ŽU²°¤ČÜVnÈƂ„ŚŎ°ôĢ„þÆzèVĀǎĀǘƒXŹÑ¯¤ówċķk¦šłUÒġzÇ@ƒ™ÆÝx@²Þ@Ƥ„Uô¦Uš°x„U"],encodeOffsets:[[94737,30809]]}},{type:"Feature",id:"5421",properties:{name:"昌都地区",cp:[97.0203,30.7068],childNum:11},geometry:{type:"Polygon",coordinates:["@@™ŽVĖm°ĉš„ÈU°ķ„ƒÜ¯@@ô„UÒġškš‚ÆkÈlŽÒ@Èl°È„VÆóŦƂœ¼‚a„ÅĢ™Ʉwnōw@¥Ŏ¦°ŹÞmVš°wnÿƒw„wÝw@¯šmÞŗ°wĠ˜ĸkÞğlĔ²¦°@„ĕĸwVóšal@nĢÇĊn°@¦šŽźUXçǔůĸVš™ÆK„ÈÝĠš²ÅĔô@lšŽÈ_m˜„zǖl„šaU¼ôwV°¯¦‚ĬÈa„l@Čǎ„¼™„nŽ˜I„xô»ɜ@ƨ¥ɆŁ„ŃǪȁkƛƨȍʊȡóĭ›@—ÈÇVƒůރĸƅmēƨť™ÅÈʉVǵ°ġVŭÅɧ°ÿnɛš£mƒķ²ŃóÑUĉ°mÇ»¯@mxUĀ¯èţ°ȁÝç„ġU¯ÆÇţÈ@°Çô™Ű¯k¯lƒê¯¤ƒ£Å@™èV°Å„@„±°ţwĉŎť¤kš»ÇwXÑŻmUǬ™xV¼ÇÒţLóôU»Ç@X󙻂a@ÿŁUÑÝ°ķK¯ĢğÒV„ĸJÇĬ„¼môţŎĊŎU¼Æ„„Ė™šnÞÇÆówŹ¦ġƒkÝóaƒ¦ţ@ݤn¦ÇbÇþ¯nXÒɳÒÅ»¯xVmb™b¯™Ý°UWéÛaƒxʉÛmƒ¯ÝI™‚UÇKk°ƒVƧīķ„U°ȭĀ@„ċ°nšm¤Ýnô¼ƒƒÞ»Ċ„ʊmlÔĵǠÆôVÒÞbl¤ÈIĸþlwƒœ»ĶŽ„a¯ī@њǰanœƾ°"],encodeOffsets:[[97302,31917]]}},{type:"Feature",id:"5422",properties:{name:"山南地区",cp:[92.2083,28.3392],childNum:12},geometry:{type:"Polygon",coordinates:["@@°ÞUĖ°¦²ĊôÇÜLǖĀɜŽȘŰÞLĸźêÞ@UÜUŤ°ɞ¯Ü„°WŦĀmŎ„¦ĢyVљŁl¥Čĸôx°£źÒ„Wȗ‚ÿȍUÿ‚çÅyƒýóġō¯ƒřŁmÇÛUċŽ¯£V±²°ôô™ĸa°£ĠÒŦ¥ɄŽ„£ÆJÞ£Ģb„yĶzŎŃ@ŗ„±ô@ĸçlǓšÓĢÑVý„m™Ñl¥ĵó‚¯̻̥™ƛǫÝһÇƧĉyţ¼ҍēVĶĉŎ°ĸmšÞVÝĸ™ÒÛaċ„ó™ŹĖƒèÈÈl¼k¤ÝX@`ސŏ¼Æō¼ÇçĉKUÝÝ£ğ¤@¦ġl¯Òġĉ¯óš™móxÝÞğVšƴċK@—b@ܘ„UÒ¯ÈĢÜ@²˜x—Ŏl¤"],encodeOffsets:[[92363,29672]]}},{type:"Feature",id:"5401",properties:{name:"拉萨市",cp:[91.1865,30.1465],childNum:8},geometry:{type:"Polygon",coordinates:["@@Ŏ²l@°‚XĢƐlôŤLX¦°¤ĊnČ¼ÇĊŎͪÞÈ܃„x„U°Ýޙ޼™¼lšČ™˜ŽÞK„Ǔ°óU¯Ģ±ǔÔV±ŤóX¯ÇmÑ˜wXī°@°ĕĸÞKÆĖĢÇ°bȂ™ÇŁUƒV¯wV™ó¥ƒVÅ£Ý@@±ÞwšÅ‚„È@ƒ¥nōťÿ¯Xۃɝ°ţ¯ÛVVÝ@ŹéķÝKȗůɛǕÿÛKóÈǫšǫUţèmҚn¯Æ°ÈU‚°b„š™¼UĢV°°V"],encodeOffsets:[[92059,30696]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/yun_nan_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"5308",properties:{name:"普洱市",cp:[100.7446,23.4229],childNum:10},geometry:{type:"Polygon",coordinates:["@@U‚ô²‚a@Ž²²Ķ¥œV°šĶ²bl¤kVxl‚@œ°‚Ś²@˜„„y„@ô¦¯„@xƒxVxU„VššbVšÜm¼Ŏ„„ĢmºXXWÆ@ĀœšmŽmXU°ÅÒm¼Þx°w„@°‚XêĠ°»nV°U„l@k„@V±ôī@£‚ƒČŃÆ£„KÞý@¥‚k@y„a@—nWV„UVƒšwƒmƒ£Jƒknm@wmkn‚X„˜šX„¥mUUlUnbš¯°ŽnkƒVInlIUw°n™mk@@mlanXlanmšk@wVWUw™_@éĠašnmUaÜ£ƒmXƒ¥¯@@„óUmݯ¯ÞÝlKnxô£š»„»Ġ„J°aV„UÝÿV¥ÛbƒI@wmŽón¯yÛL@ƒWkŎmș`IWa¯K@¯mUnmaXm™bmak„¯ŽƒĢ™ÒÝm¯mV¯KÇb¯KۜWW™X@a™V™knċLUWV™kXóW@k™a@ƒób¯Uƒwmb¥UUlaU¥U£maķšƒKXkƒmÝ@kwmѯk±ċbUUVakaġ¦ƒƒkL@`ƒœ™a¯xƒm™Åƒ™LUWƒ@ċnŎUV°LkL@b°°@¤š²ƒ‚šnôôk„l°kè›ÒÈzV¤È„WôôƒnV@„ƒ¦@¼Ux"],encodeOffsets:[[101903,23637]]}},{type:"Feature",id:"5325",properties:{name:"红河哈尼族彝族自治州",cp:[103.0408,23.6041],childNum:13},geometry:{type:"Polygon",coordinates:["@@°°nÞôV@ƒ°@„¦WŽ„nÛ¤Vbmn™ğb@êš`VxUX@xš„ƏÞUnn˜WÞĸĢƒšÈ@ŽÇè@zÛÜWšÅêlš²„˜KnV¯ĖĊx@bk@@„°JÆ£Èbl„nnm°nlUkVUUwVm„Kn„‚nVŽÞxVLX¥laX@@xl@VzȎVmšk@b°šÈĸmŽV¦`W„XšƒbUb‚bX¼°x@ašVVkn@lþnXUlVxŤÅ„y‚IUƒka‚IŎĊ@lXx@b„z@‚ô„ƒ¥„_V@l‚n@„ôy@al_l`nmƒÈ»@kƒmXwWK™U¯»™a™Å@wƒmUÝKUa™UUƒ™wWƒ@w²»@kƃV£—mm£VKkÑV@@»nwƒ¥™ƒ@kƙnllIVlnLVakalknJšWmnaUaVÑVVލn¥m@ƒ„¯Uÿl™@™™™VçƒaXaV¯UyVLVkš@nJlšXLlŽkxlbla²Òl@nVJVkšx„KlkUaVķÝÑU@Åm¯@±™Uó°ğńķĠmU™Ñ@ǯ¯Å¼@nml@°¯¯`@w™£@¯Çƒk@ƒ»nmċ¯U»™I™Ž¯LÇĶÛn@bó°™U›šwmŽ¯„™Umǯa„™ƒ™ƒI@ykIƒVUŽ¯bƒIğŽƒ¼™¼ó¤mwkLÝÞ"],encodeOffsets:[[104243,23429]]}},{type:"Feature",id:"5326",properties:{name:"文山壮族苗族自治州",cp:[104.8865,23.5712],childNum:8},geometry:{type:"Polygon",coordinates:["@@šwô„š@²¯maUmôUÆxš@Xš˜bÞInlVUVw„JVaU„K°¥„xmÞXnlKlnna°@ĊČ„ÆwUmnkl@°ƒƒ£nyn@VV@Vak™ƒ@@kÞ݄bmx°Vnw°klÞInĖÞVlKl™@Xa°„„KlV„U@šJnx‚U@ÈĢbUKlm@ak_‚wšanWUk°ƒl»„k@Wk@lwU_ƒ@UalóU¥ƒÇnƒ™kJWƒ@mVXx±bƒK@nV±a@™Åa™£ÝK²ƒWknamKknǏk¯ƒaV™™V¯ĀƒU™„™Ò¥ƒI@mm¯¯xōW@@`k@ó»ƒUU¯lm£ÅWlĵ„w@mmwÅmWU@y±U—xmwU„¯Uƒ¥Ý¥¯£m@kŽÇVUV°VbklƒL™wUlUIm‚k@±ÑkbkalwkWKk™mI™@UlUKVzU°Wb„bU蚚@škšVĀƒ°@„n‚m¦ÝŽUUUÒVbmbXn™‚mIkllbUbmKUkkJmkŚ@lš„„¦mx@¼U@lÒULn¤˜nU¤Å„@l±¼@xX„šxV„šVVbÞLVŽ„n@xšÆšb°¼šV"],encodeOffsets:[[106504,25037]]}},{type:"Feature",id:"5303",properties:{name:"曲靖市",cp:[103.9417,25.7025],childNum:9},geometry:{type:"Polygon",coordinates:["@@ȦlKÞĕUV¯Um¯„ÇVUnVVUƒĉn™ĊÇƾLn°°È„JÆw„@lbÞa„¦V„XJ°¯W¯„aÞJVkUša„ƒ@lKnÅmWUk¯a¯»@m±@уkkbWWX_WÓU»_l™kÑm@U»m@l@IWċn¯l@VanV„UV™UVwVx„KȄVmUē‚@„ƒn@VÝÆL„w„VVwnVlmkUVÑÇ°ka@k™ÿÝaÞUl£™›—ċĕX±±ĉƒa@UnVnalónk@wl™UVmkÝJ—aW™™@ÅwóVVnnb±°™@óƒ™xXLWx„n@lǼn„m‚k_k`@bózƒ‚m@kU@ƒ`„¦óƒ@nWš@ÜÅXWw@ƒyƒb¦@ÒlnUb@x™lܐk‚@²Ç@Uƒ¯bmy@kV@bƒb„¦U`lLVx@b—Ll¼Þ¤@„°VVބU@WސUb›J@nnš@lnnm„šxUŽƒUUbƒK@šÇwklkUƒVWakn@ŽlbU@@„ULVxkKUn‚°¯Ò@¼™„kmƒ¦m@kl™Ȱ@lU„l¦„@Vl°wšnnþĊUÆbUx™b„ŽV„šĖU°„a‚nnašV„al@@b"],encodeOffsets:[[106099,27653]]}},{type:"Feature",id:"5323",properties:{name:"楚雄彝族自治州",cp:[101.6016,25.3619],childNum:10},geometry:{type:"Polygon",coordinates:["@@mҁXU`Wnšš™@Xl±¦š„Uxnbl°knmKUx„„ƒxVôUx°¼ôÒȄ°JlnÞKĠœW°¦ƒ„Vx²JVwš_°¥@UV@@wnymknK¯I@‚™²b°ƒš£V¥šwU‚V„¤nLškÆJÈwôô°„l»Č¯ƒġVƒUU@@ƒ°ƒƒÝXl@U»°Å„@U„¯@w±¯VmUUlm@m™„ÑnIVyUwmak£Vwm±—@Çw@nƒ@UxkwlÇnL‚mkř@±Žk™ka@kóJV¯Ç»U£lw¯™Xalbl¥¯UXƒ@a˜™UaÈL@ÇVIVƒkaU¯mm™akLWkUJ¯Umxnšƒ@ƒkUx¯xƒ„mWÅīÝkkbƒŤƒbkxWmXwWk¯wƒKkƒƒLŤċń„@¤óĬU²ƒ@@lƒk¯VmU¯¼@xV@k°l°kbUš°nm‚VnUš@°„š„UVèރÆbUÒÞnU¦›V—¼lô„@Vl"],encodeOffsets:[[103433,26196]]}},{type:"Feature",id:"5329",properties:{name:"大理白族自治州",cp:[99.9536,25.6805],childNum:12},geometry:{type:"Polygon",coordinates:["@@lbœKVIUa˜@²m@b™xôÒÜxXLmbnšl@š„„K°šš¼k„Uô‚xôlV¦nJ„Uš™Ænšm„@šx„ÆwšbXšÆôô„LUVwôK@wlmšaVwœ@WknmƒIUmlnJla@_™@kÝmKUašÑm¯Xw°aUaVl»²JV„bÆJkôĶĀ²VVk„mšbVwUó„wƒƒVwnLlmk¯maVw™ƒ²¥Wkš@™™XmV_‚WnÑUkƒ@k󘻜UV¥ÝmVÑÅa݄UçƒVƒ™@¯V™Umn¯mV™lak¯l¯U@@wğŽW鯁ƒ@¯xÝw¯š¯Jċa¯U¥mLU¤„bÞȤƒbÇLWUwmIUVW¼kbš`U„Vb¯L±ĊÛkƒÿÝKkwƒKţê™UĉþƒÈƒV¯ÞVbUŽ°KVšk²Ý‚mI—ƒmV@kƒm™UkšVxm„¯KXÈķJU¦V°ULWxšL@môƒšb@bkx±LnVUŽVLnkÜWnwlLŃmW@kkJU_ƒV„šWĊ„Þ"],encodeOffsets:[[101408,26770]]}},{type:"Feature",id:"5309",properties:{name:"临沧市",cp:[99.613,24.0546],childNum:8},geometry:{type:"Polygon",coordinates:["@@‚xĢ„l`²X°ŽV„šx@x°Þ°KXašğUњW‚bnIl`X²°b„xl°„„šV@xVxk¦mb„l@xšXV‚ÆzX¤™Æ˜k°„kx@lźêlaX»VUnJVx‚XÈK„aÝȣƒaV£nKV¦°‚Čb°I°™n»ÆÑV¯nWn›™@ÿXÅWWn¹ƒġōƒn»‚ÛU™™aU™VƒUw„w@w°ƒó¥ƒ@ƒz—ƒ±@ř›¯@kUwlk£±aĵŽ¯™›Uĵ¦±±@bó±VÝ@ó¤ƒw¯I@mńóm±XŽ¯IólƒK@š°Ullb™zkKlln@@ԙºƒUmVk²ôҙx™ŎUVóLƒb„ŽmÈnŽmbnl‚a„x@z„@Ǝ„¦kš"],encodeOffsets:[[101251,24734]]}},{type:"Feature",id:"5334",properties:{name:"迪庆藏族自治州",cp:[99.4592,27.9327],childNum:3},geometry:{type:"Polygon",coordinates:["@@W™Xwƒ™@akk@y›—k°īX¥›Uóķ¯w@n»UaVaUۃ¯ƒmV¼k‚™Þċô@n¯xÛÒm„V‚¯Ô@xƒ‚@šk™wm™Åa@ƒUa‚݁¯VŃyV„a@ÿšn»ÝVmank™mmÞÅôƒ@n£±›ğzÇmU¦™Vm„nÜmbn@°nV@xmzÅ@mºV¦k°ln¤š¼õô„n@xkƃIUxUš@Ťƒ¦VšmVkmkXW¤XzVx@ƚx™¼ƒÞ¯b@lVš™ĸގV„m¼XŽm¦V„ŽÞ@Ǝš¹Vón¥ÆKn„‚KX¯x@èĊȱłXšaÆxnlV@UÛlȻkğV¥„m²ljmÅÞĕƒƛm°„ÆmX¤mznƃŽV¦ÞVVb°bnÞWbnŽ°l@V„È@„‚VĵĊ±@ó„InxÆw„¥@£Þ›W¯ĸ£UƒUK‚ƒk±akkkbmWmÈķ„aÆÇU—ȃÆW@wmknmU¯"],encodeOffsets:[[102702,28401]]}},{type:"Feature",id:"5306",properties:{name:"昭通市",cp:[104.0955,27.6031],childNum:11},geometry:{type:"Polygon",coordinates:["@@mƒnK@wmƒUř¥mšóXǓŏmX@Ž—VƒmL@xţ™nk@mlUšŻÒğŋ@ƒL@mmLkm™š@b™XŎW¼ka¯lÇŹ¯aÇ»™ÝÝ_@m„@@a™@UklwUm@ak@ƒb™UmbmƒbV¯™ĕUƒƒšaVwÅaĉVmý™m¯xUkƒ@k¥VƒUXƒ¤VÈm`@„—ńÇÜ@Ākn‚ĔkƞÆĠ„™Þš‚U„VôƆÞI@ŽUxƦn„l@ĊĊnxUÒ°¦Vb¯WUnWŽIml@xn„Ubô¤‚¼ÈxlI„»šKVš„@ÈԂJkšUĖ±ÆVb@nœ„VÜVUVƒšL„wĠl„kn„Ġ@nx°¥Æ„²mUwƒ@m™mÅUl¯UњÑUm„Lll„Il±š@VkwƒW@w°@U»™kUóI°ƒ„»ĢтL„™š`nUĠ²lm„bôV@n„JUxƦX¦l@š‚ŎUƒV„@lV„KVřV£UaÞU™ƒnW@¯VU@ó™"],encodeOffsets:[[107787,28244]]}},{type:"Feature",id:"5301",properties:{name:"昆明市",cp:[102.9199,25.4663],childNum:11},geometry:{type:"Polygon",coordinates:["@@n@Vk‚VUn²°@xƒ°Vƒ@¯ÆV¼k@WŽ„Þ¯„@„@‚VVU„„Ģċ°k¼V„Ċxœ¤Ōœx°mVkƒÑȏšL‚°„x°Xœ°VmĊLVxUĖ°bX¦VW@kšȯlkn@„¥lnšƒ@»°Ñ¯VmlLUwVK@ƒV@ka@lmXb„UlVlkÈx@™„LVa„VV™wnƒmm@km™@mœIVaݏ@XƒVUݯU@ƒÝ£k»˜K@aUwkKV_ƒ¥„a@alU@nz°aV„È@@±lÛšk@wVakm@т¥„a„z‚@XxÆW@ÛX™@m@ƒy@aWw@kōĉJlbV„JƒzţÆUwVkmWkým@Ul™U@b¯wVºƒU™VUêšĠƒXUaUbVĊUŽWXUmkK™™WnUUU™V™ƒƒVV™Ý@kk±‚™¯ƒƒLkƒš±WkXlVklƒ@ƒwXbmLƒ›VUIVmk@Ubma@kkaVKUƒ™kmlXLWn™J¯ÒĊ°@zkºlLUŤn@@n›ô@lƁnmKkÈlxVw„@@mÈx˜@n²Uxl¤nbVxUzmJƒÒnš"],encodeOffsets:[[104828,25999]]}},{type:"Feature",id:"5307",properties:{name:"丽江市",cp:[100.448,26.955],childNum:5},geometry:{type:"Polygon",coordinates:["@@l@™„@w°ÓUnƒÜÑ°w@mČóšÝlU»n°„„VÜUbVbm¼@Ž°xôĸœVW¦¯Ĭlœ˜@zll@b„šWxXš‚a„X@ÆĠÆaXwl@XaƦn¼˜Jn@mnKW¯È»V¯°ak™VanXVwl@VyUĕVU„bÈīlaUk°ƒk¯lƒ²V˜Ukƛô@ƒ„I@mVwĊa„™ƒVaka„™ÆbUŽVLšaXIWKUw™ƒ„aWÑÅKUaVk°ƒ@Uw„ƒ¯¥›XğÝLkm¯Iǃóѯ»™aƒnUl±UĵÿlóÅIƒaU‚±Ik¼UŽVb¯bWxn°™ÒVbnLlޚ@@`kbmIkŽVn„JmnXl›@Ux™bkn@xóLUxVŽƒKóóŐW™™aÅxƒŽ™wƒ@™nÅm™šƒV™„ƒôX„ƒLlVU¤ƒb¦m¼™Ž@ĀƒbU‚„zUƂ°ÞVb@„Æbnššx"],encodeOffsets:[[101937,28227]]}},{type:"Feature",id:"5328",properties:{name:"西双版纳傣族自治州",cp:[100.8984,21.8628],childNum:3},geometry:{type:"Polygon",coordinates:["@@l²°ŽnÒlxÞ@„nWl„Lĸ™nbV¤V¦kbVV‚¦na„x°Vôa@„šb@lôXlWUšVXČKlmššU@bšWXXܛ°LÈa°LnU°‚ÞnšÑ„ġ°lƒnbšaƒ¯¯KWƒœó@kmK@UšĉV@k°„VV¹„a@y‚_ċl_nÓlL@anI@ƒóWl£VU—ƒl™kĕl™šKVw„U@™kVƒam¯ÅL@bƒ‚Ýk@Vn„UbÇbÝwÅ@ċ¥¯lk‚¼ÅŽ™Ò°b@¦nlUn@ŽÇV„mƁbWôU@ÝÅōm™¯ƒaU™™mk™WWw—@±ƒ™n¯U™è™a™Lƒ¯mƒL™škwƒl@°mnÈÒ¯šów@V™xƒĀU¤°Įƒ°Xl"],encodeOffsets:[[102376,22579]]}},{type:"Feature",id:"5305",properties:{name:"保山市",cp:[99.0637,24.9884],childNum:5},geometry:{type:"Polygon",coordinates:["@@X°„Il‚@¦ƒŽÈ¼m¼ÞaÞÅl„ÈxV¼šlVôÈÆlLޣȺlkUƒ‚ƒUw„¯UĕVwĊ@n¦mlnVĸIWÇ°LnƒUwl™šV„n@lnU˜„nJށl±U™¯LVUa°Ý„U„ÇĊýšVŤé„LlxÞL„ĀÜl²ĉ°KUaVƒ™_Źé@klw¯ƒlÅ—šW£ÅyU™W@wƒknal¥Uw@w™Uƒƒk¯ƒw¯aW±k_mJa™XVҙĠWb¯L¯Ý@w™wUƒ¯±Wk_ġƒwƒwōKmb@¤„bk°lĖƒô„UJƒšVnÅlťUš¯°VbnbWxX„m„ÞššWUĀ™L™yWzÛKmbUxVKkn݃kŽVšĀċ¤Ux„@Ž¯Žm@ƒ¦"],encodeOffsets:[[100440,25943]]}},{type:"Feature",id:"5304",properties:{name:"玉溪市",cp:[101.9312,23.8898],childNum:9},geometry:{type:"Polygon",coordinates:["@@l„„L°xXlWxXnlw„a„ţlaÞlÆĬnX„ƒ°wVw„l„@m™nw°VVIXllKšbnnV°lbU„UJ@ÈÇKVb—š@bW„°Vk¦kaWb°škxV¤È¼U°ôI@llblš²š@‚@œó@mm@VţkKl¹@yĉ¯°ÑšIXmWKnkšlV„ULlb@lnbVal@UnVJœU‚„nKWa„x„@lkkUlW²X„™‚l„K°„šl²@lšÞUŽ„U‚„UšVšVVXmššlLVnXWVUĉVaVb„W™ğVéšU„VU¹W»aVa„aW™Xƒ‚_U¥nÇķ¯™@a™lUnǍUyk@@wW@kbW¦UKÝwUmmƒƒLUnVxUVVlk¯mmnƒmkÇaŤ¯I@ƒl@@aĉw°ĕmU—L±ƒk™ÆéX™ÜÛ@yÈç@™Çġ„Ýķ—XmmÝVՙƒ™lmnkbmWkb@nl@nŽmš¯VxkJmUJ„ml¯™°makVVnVƒ¦™Wƒ—Wmnl@xmn„l‚I„¤„n™xU„ƒVUŽmX@˜ƒb@zl@¦Ýþ"],encodeOffsets:[[103703,24874]]}},{type:"Feature",id:"5333",properties:{name:"怒江傈僳族自治州",cp:[99.1516,26.5594],childNum:4},geometry:{type:"Polygon",coordinates:["@@WyX£lWlnnUU™„¥@ţV™Vw„JlÅ@wƒmö󙻂£kml¯U¥n¹Æ@ny@wmU@¯mnamÛnƒšUV¥ÈnĠy²œm¤„@ÆónݚnmlnbÞU‚¥„aV£kU„KWƒ„óšƒmIU¥ókwVólƒ™»¯™ƒL™ƒk@m™naWKÛwóњw@a±n—@VbUJ›LkaƒÝXĉƒ™„UV`lI@lnXÆƑkKmxÛXmlUKVmU²Klw@a™aó„@n™KXwVKU¯V¥mUnkm¥ĉ@UxVĖƒ°Vx„V„klmޙkKWĀkVWšnl°Lnm@°ŽUxlV@nk¦™JVÈ°ŽVÒ@nX°@ÆlUômlnôƒ²nxmłnVV„¯x@Èm°XblVUšl°@xkXU¤WXX‚W„Xƃ„mkÅJmށw±bƒxUīkKmÅVUĖÝèV„kx@š›lX„lnk¤ƒLkŽ‚Ėk¦‚xUššL°‚¯Ė@LnK@b°xVI„¥Ua°Ñ@»nm@¹‚KŎÞÈWln²n"],encodeOffsets:[[101071,28891]]}},{type:"Feature",id:"5331",properties:{name:"德宏傣族景颇族自治州",cp:[98.1299,24.5874],childNum:5},geometry:{type:"Polygon",coordinates:["@@„¥n@°@ƒVwČ£™ÿUlÞ„lmULVwnaÜLXyšzšKVÿ™XݙnƒWƒXwmaUa°¯V™ŦŽÆkUm„™VIƒ„ókĕl¯ƒa@£nama™@¯m¯œó@óyţbġkÅm±ÛammVkƒLwU`Wk@VƒkUmŃlUUKmbkkUVUwƒ¦óŽ°¼šbn°ô¦lºƒz@xšŽ¯„™@UŽ°nƒšU¤ţU„°VƆ@ÈmlnzÞl°¦Æa„xUxƒLkxWƒn@‚š²ŰšW„™‚@°ÈXl°Llx"],encodeOffsets:[[100440,25943]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/zhe_jiang_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"3311",properties:{name:"丽水市",cp:[119.5642,28.1854],childNum:9},geometry:{type:"Polygon",coordinates:["@@@V‚bVl@Xn‚UXƒKVŽ@¦nxlUXV‚n„KVmnL‚UV@bn¤lLXK˜²„`nnlJXIVJ‚I„Vnn°KnnVll@VLXWV@UkVaVK„zV@„ƒšVVaUK@U»VUl@@WnUUƒ@wVLn@Vwl@XW°LVbn@VU‚@X„l`@XnKVbkl@XVJlUnlV„„xlL@lnXl„@VšUnV°°„@a„UVLXblWVXn@VVUV@Lš¤VLV„U‚VbnalLUUVX_laVa„WVzXKV@@a@KUmImmXama@kU@yVIUK‚aVa@kXK@aWU@VIUmW@kkVm„Uš@VwUa@K@k@Uƒ`@kUKVk@UV@VaUm²Vy@klUUWUkVmUa@_ƒKVaXa›XmƒU@mUlWkaUXƒ@mmkL@w™JƒnVVÅbWKXa™@@I@aƒJUUÇ@V„UL™W@akLmb@K@a™XXw@mƒVmUVkUy@£@aU@@VkUWm@kUKƒXUWU_mW@wkkmJUUkLWWUXƒW@IkJ@k@mW_kӃ_Ul™Lƒm@I@aUa¯m@kƒa¯LUJƒ@mVVxUb™a@LUKkXƒbm@Uak@@a@Um`ƒIUbUJ@nUVW@@LnVV@lšUbVlUX@`š@blXklW„Ušm„Xlm¦U@@V¯bml@š@nUb@llnn@VbX@lV@ŽUVULmU@JVn„bVbkb™VWxU@@nUVk@"],encodeOffsets:[[121546,28992]]}},{type:"Feature",id:"3301",properties:{name:"杭州市",cp:[119.5313,29.8773],childNum:6},geometry:{type:"Polygon",coordinates:["@@X@l„°KXXlW„b@²„`šššb‚I„šX`l@„@bWl@n@VnLUV@V„@°¦@šl@XVlU@š@xVbUb@Vkb@‚@XVJVz™J@Lޚ@VmLUxUJ@LU„Vx‚b„xXUl@VaÈw„b‚aÞa@Vl@XUVx@V@V„LlbnV„al@lb„Vnn‚LnKnL@VlbVJXalIšb@KUU@mVInJ˜„U„Vl@xUšVLnUš@UÞaV@lkV@UanK„L@UlKVUnbÆmn@@nUlVnVJl@@UXU„L@WVIVJVxVLXV@IÜKnbn@V¥V@@I@ƒƒ„y°b@UUwnk°ÆƨVlUšçXm›£aƒÇ™IkVƒ@WV@@aWIUWUIkb@WW@UnƒK@UU@kaWVkƒVIVVnU@UWVUV@VmVkKkWIkVWaULU`UImJUImm—U@ƒƒwmwUV™IUWVkUamaU@mV—kƒb@KVU@aVU@anKULVJ‚U@kÛU™JUV›kkƒVakU@ƒaVwkW@UWkXmWaULUaUK@XƒJUUmƒVU@UVƒUkJ@ImwmKU@k„@lU„W@@akKm„kamIkWl_UwVm@UkaVUUaƒ@UamakbWlkL@aUalU@mkL@U@U™lmK@XkKm@Ýakb@xƒnXbƒ`ƒnUUU@›™U@™wU@@ƒmKkkƒV¯U@lULUbVbUb@V‚a@L™ºÝb@bLmK™x@VUL@bk@mxULWl"],encodeOffsets:[[121185,30184]]}},{type:"Feature",id:"3303",properties:{name:"温州市",cp:[120.498,27.8119],childNum:9},geometry:{type:"Polygon",coordinates:["@@ll@xnXV`VX„WVL@lXnlV@UV@@b@¤VzUlnV„U@nWxšW@b@LnalK@bšXVKUƒÈ@VV„I@b@Jš@WbXLÆaUU„mšI@xlKnn„@VWlbkXV‚@n„VWnœ‚WbUb„L@`VbUnVlVXkV@lUz±‚VnUbU@@VUlVL@l„_@V@l@LVbV@XLV`VÈlxn@lU@aœaVV‚k„@XJ@nl@@LU`°LVb„L°a@a„UVy@anI@a„a‚nV@²wÜJX@VšVV°k„na@WVk„aWwU@m@™ƒkƒaUĕ™ÝšÝŤnÈa„aóI›»@±X™WkUķ@kV±kw™ƒUkWw„™UƒÝ»ÛkɳlImaUaWóXÿǬk‚UnWVmmk™KţnŏÞğl™„UlUx@XWb„V@JkXƒ°mb@VULVxUVk@@LWWk@WIkšƒUkJmUkVmI@yƒ@Ua™kLm‚U@mUUUkaVk™@mK@UlUU@UmKmbUUUJ@n@KVLUL@VkJWXX`mnULWlkL@JVLVb@°kxkU@LVŽ™V@„VLV`UL@VUX"],encodeOffsets:[[122502,28334]]}},{type:"Feature",id:"3302",properties:{name:"宁波市",cp:[121.5967,29.6466],childNum:6},geometry:{type:"Polygon",coordinates:["@@Ċ¦ĸĀ°‚nXÞVšKškƨƑźÿ°»n„@wô¥ÜbœU°ÆXÞWóçĉݱIUƒÈ¥@U°wÆ»²mm_@aXƒVKÞVlk@akk›̅@£X»VwƏXWa¯aȗb™KƽۃĊ™xƒLóŽk@ƒƒƒ@¯nƒKUL@xkL›ÑkWULUUmJUXVŽU@mŽUX¯@V`mbXbV@@nn¤WXšx@škJ@nVVUVl²UbÝVUVk@Wx@V@„ƒVXzmlaƒL@VlLU`„XUVVVUnl@VbnJlnUVVnƒlUKkbmnn„VxlJnxmbU@UL@KUV™X@xmb@lk@mnVVUš™è"],encodeOffsets:[[123784,30977]]}},{type:"Feature",id:"3309",properties:{name:"舟山市",cp:[122.2559,30.2234],childNum:3},geometry:{type:"Polygon",coordinates:["@@l΢ƒʠþÆVĢLĊƒǬXĊ܄XôV„ÑÆw„ƒlšƏÈóVĭVǓ@ƒĉwɛkmK@ĉXīWaĉUĵÝmƒ¯ĉƒwĉ±±nż¯x@VǦV„²JĊÞôèÝXÅW¯›VÛaó¦@xƒŽmŽ¯¼ŹĀ"], +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/shape/Text"),o=e("zrender/shape/Line"),r=e("zrender/shape/Rectangle"),s=e("zrender/shape/Circle"),l=e("zrender/shape/Sector"),h=e("../config");h.gauge={zlevel:0,z:2,center:["50%","50%"],clickable:!0,legendHoverLink:!0,radius:"75%",startAngle:225,endAngle:-45,min:0,max:100,splitNumber:10,axisLine:{show:!0,lineStyle:{color:[[.2,"#228b22"],[.8,"#48b"],[1,"#ff4500"]],width:30}},axisTick:{show:!0,splitNumber:5,length:8,lineStyle:{color:"#eee",width:1,type:"solid"}},axisLabel:{show:!0,textStyle:{color:"auto"}},splitLine:{show:!0,length:30,lineStyle:{color:"#eee",width:2,type:"solid"}},pointer:{show:!0,length:"80%",width:8,color:"auto"},title:{show:!0,offsetCenter:[0,"-40%"],textStyle:{color:"#333",fontSize:15}},detail:{show:!0,backgroundColor:"rgba(0,0,0,0)",borderWidth:0,borderColor:"#ccc",width:100,height:40,offsetCenter:[0,"40%"],textStyle:{color:"auto",fontSize:30}}};var m=e("../util/ecData"),V=e("../util/accMath"),U=e("zrender/tool/util");return t.prototype={type:h.CHART_TYPE_GAUGE,_buildShape:function(){var e=this.series;this._paramsMap={},this.selectedMap={};for(var t=0,i=e.length;i>t;t++)e[t].type===h.CHART_TYPE_GAUGE&&(this.selectedMap[e[t].name]=!0,e[t]=this.reformOption(e[t]),this.legendHoverLink=e[t].legendHoverLink||this.legendHoverLink,this._buildSingleGauge(t),this.buildMark(t));this.addShapeList()},_buildSingleGauge:function(e){var t=this.series[e];this._paramsMap[e]={center:this.parseCenter(this.zr,t.center),radius:this.parseRadius(this.zr,t.radius),startAngle:t.startAngle.toFixed(2)-0,endAngle:t.endAngle.toFixed(2)-0},this._paramsMap[e].totalAngle=this._paramsMap[e].startAngle-this._paramsMap[e].endAngle,this._colorMap(e),this._buildAxisLine(e),this._buildSplitLine(e),this._buildAxisTick(e),this._buildAxisLabel(e),this._buildPointer(e),this._buildTitle(e),this._buildDetail(e)},_buildAxisLine:function(e){var t=this.series[e];if(t.axisLine.show)for(var i,n,a=t.min,o=t.max-a,r=this._paramsMap[e],s=r.center,l=r.startAngle,h=r.totalAngle,V=r.colorArray,U=t.axisLine.lineStyle,d=this.parsePercent(U.width,r.radius[1]),p=r.radius[1],c=p-d,u=l,y=0,g=V.length;g>y;y++)n=l-h*(V[y][0]-a)/o,i=this._getSector(s,c,p,n,u,V[y][1],U,t.zlevel,t.z),u=n,i._animationAdd="r",m.set(i,"seriesIndex",e),m.set(i,"dataIndex",y),this.shapeList.push(i)},_buildSplitLine:function(e){var t=this.series[e];if(t.splitLine.show)for(var i,n,a,r=this._paramsMap[e],s=t.splitNumber,l=t.min,h=t.max-l,m=t.splitLine,V=this.parsePercent(m.length,r.radius[1]),U=m.lineStyle,d=U.color,p=r.center,c=r.startAngle*Math.PI/180,u=r.totalAngle*Math.PI/180,y=r.radius[1],g=y-V,b=0;s>=b;b++)i=c-u/s*b,n=Math.sin(i),a=Math.cos(i),this.shapeList.push(new o({zlevel:t.zlevel,z:t.z+1,hoverable:!1,style:{xStart:p[0]+a*y,yStart:p[1]-n*y,xEnd:p[0]+a*g,yEnd:p[1]-n*g,strokeColor:"auto"===d?this._getColor(e,l+h/s*b):d,lineType:U.type,lineWidth:U.width,shadowColor:U.shadowColor,shadowBlur:U.shadowBlur,shadowOffsetX:U.shadowOffsetX,shadowOffsetY:U.shadowOffsetY}}))},_buildAxisTick:function(e){var t=this.series[e];if(t.axisTick.show)for(var i,n,a,r=this._paramsMap[e],s=t.splitNumber,l=t.min,h=t.max-l,m=t.axisTick,V=m.splitNumber,U=this.parsePercent(m.length,r.radius[1]),d=m.lineStyle,p=d.color,c=r.center,u=r.startAngle*Math.PI/180,y=r.totalAngle*Math.PI/180,g=r.radius[1],b=g-U,f=0,k=s*V;k>=f;f++)f%V!==0&&(i=u-y/k*f,n=Math.sin(i),a=Math.cos(i),this.shapeList.push(new o({zlevel:t.zlevel,z:t.z+1,hoverable:!1,style:{xStart:c[0]+a*g,yStart:c[1]-n*g,xEnd:c[0]+a*b,yEnd:c[1]-n*b,strokeColor:"auto"===p?this._getColor(e,l+h/k*f):p,lineType:d.type,lineWidth:d.width,shadowColor:d.shadowColor,shadowBlur:d.shadowBlur,shadowOffsetX:d.shadowOffsetX,shadowOffsetY:d.shadowOffsetY}})))},_buildAxisLabel:function(e){var t=this.series[e];if(t.axisLabel.show)for(var i,n,o,r,s=t.splitNumber,l=t.min,h=t.max-l,m=t.axisLabel.textStyle,U=this.getFont(m),d=m.color,p=this._paramsMap[e],c=p.center,u=p.startAngle,y=p.totalAngle,g=p.radius[1]-this.parsePercent(t.splitLine.length,p.radius[1])-5,b=0;s>=b;b++)r=V.accAdd(l,V.accMul(V.accDiv(h,s),b)),i=u-y/s*b,n=Math.sin(i*Math.PI/180),o=Math.cos(i*Math.PI/180),i=(i+360)%360,this.shapeList.push(new a({zlevel:t.zlevel,z:t.z+1,hoverable:!1,style:{x:c[0]+o*g,y:c[1]-n*g,color:"auto"===d?this._getColor(e,r):d,text:this._getLabelText(t.axisLabel.formatter,r),textAlign:i>=110&&250>=i?"left":70>=i||i>=290?"right":"center",textBaseline:i>=10&&170>=i?"top":i>=190&&350>=i?"bottom":"middle",textFont:U,shadowColor:m.shadowColor,shadowBlur:m.shadowBlur,shadowOffsetX:m.shadowOffsetX,shadowOffsetY:m.shadowOffsetY}}))},_buildPointer:function(e){var t=this.series[e];if(t.pointer.show){var i=t.max-t.min,a=t.pointer,o=this._paramsMap[e],r=this.parsePercent(a.length,o.radius[1]),l=this.parsePercent(a.width,o.radius[1]),h=o.center,V=this._getValue(e);V=V2?2:l/2,color:"#fff"}});m.pack(p,this.series[e],e,this.series[e].data[0],0,this.series[e].data[0].name,V),this.shapeList.push(p),this.shapeList.push(new s({zlevel:t.zlevel,z:t.z+2,hoverable:!1,style:{x:h[0],y:h[1],r:a.width/2.5,color:"#fff"}}))}},_buildTitle:function(e){var t=this.series[e];if(t.title.show){var i=t.data[0],n=null!=i.name?i.name:"";if(""!==n){var o=t.title,r=o.offsetCenter,s=o.textStyle,l=s.color,h=this._paramsMap[e],m=h.center[0]+this.parsePercent(r[0],h.radius[1]),V=h.center[1]+this.parsePercent(r[1],h.radius[1]);this.shapeList.push(new a({zlevel:t.zlevel,z:t.z+(Math.abs(m-h.center[0])+Math.abs(V-h.center[1])<2*s.fontSize?2:1),hoverable:!1,style:{x:m,y:V,color:"auto"===l?this._getColor(e):l,text:n,textAlign:"center",textFont:this.getFont(s),shadowColor:s.shadowColor,shadowBlur:s.shadowBlur,shadowOffsetX:s.shadowOffsetX,shadowOffsetY:s.shadowOffsetY}}))}}},_buildDetail:function(e){var t=this.series[e];if(t.detail.show){var i=t.detail,n=i.offsetCenter,a=i.backgroundColor,o=i.textStyle,s=o.color,l=this._paramsMap[e],h=this._getValue(e),m=l.center[0]-i.width/2+this.parsePercent(n[0],l.radius[1]),V=l.center[1]+this.parsePercent(n[1],l.radius[1]);this.shapeList.push(new r({zlevel:t.zlevel,z:t.z+(Math.abs(m+i.width/2-l.center[0])+Math.abs(V+i.height/2-l.center[1])r;r++)o.push([a[r][0]*n+i,a[r][1]]);this._paramsMap[e].colorArray=o},_getColor:function(e,t){null==t&&(t=this._getValue(e));for(var i=this._paramsMap[e].colorArray,n=0,a=i.length;a>n;n++)if(i[n][0]>=t)return i[n][1];return i[i.length-1][1]},_getSector:function(e,t,i,n,a,o,r,s,h){return new l({zlevel:s,z:h,hoverable:!1,style:{x:e[0],y:e[1],r0:t,r:i,startAngle:n,endAngle:a,brushType:"fill",color:o,shadowColor:r.shadowColor,shadowBlur:r.shadowBlur,shadowOffsetX:r.shadowOffsetX,shadowOffsetY:r.shadowOffsetY}})},_getLabelText:function(e,t){if(e){if("function"==typeof e)return e.call(this.myChart,t);if("string"==typeof e)return e.replace("{value}",t)}return t},refresh:function(e){e&&(this.option=e,this.series=e.series),this.backupShapeList(),this._buildShape()}},U.inherits(t,i),e("../chart").define("gauge",t),t}),i("echarts/util/shape/GaugePointer",["require","zrender/shape/Base","zrender/tool/util","./normalIsCover"],function(e){function t(e){i.call(this,e)}var i=e("zrender/shape/Base"),n=e("zrender/tool/util");return t.prototype={type:"gauge-pointer",buildPath:function(e,t){var i=t.r,n=t.width,a=t.angle,o=t.x-Math.cos(a)*n*(n>=i/3?1:2),r=t.y+Math.sin(a)*n*(n>=i/3?1:2);a=t.angle-Math.PI/2,e.moveTo(o,r),e.lineTo(t.x+Math.cos(a)*n,t.y-Math.sin(a)*n),e.lineTo(t.x+Math.cos(t.angle)*i,t.y-Math.sin(t.angle)*i),e.lineTo(t.x-Math.cos(a)*n,t.y+Math.sin(a)*n),e.lineTo(o,r)},getRect:function(e){if(e.__rect)return e.__rect;var t=2*e.width,i=e.x,n=e.y,a=i+Math.cos(e.angle)*e.r,o=n-Math.sin(e.angle)*e.r;return e.__rect={x:Math.min(i,a)-t,y:Math.min(n,o)-t,width:Math.abs(i-a)+t,height:Math.abs(n-o)+t},e.__rect},isCover:e("./normalIsCover")},n.inherits(t,i),t}),i("echarts/chart/funnel",["require","./base","zrender/shape/Text","zrender/shape/Line","zrender/shape/Polygon","../config","../util/ecData","../util/number","zrender/tool/util","zrender/tool/color","zrender/tool/area","../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("zrender/shape/Text"),a=e("zrender/shape/Line"),o=e("zrender/shape/Polygon"),r=e("../config");r.funnel={zlevel:0,z:2,clickable:!0,legendHoverLink:!0,x:80,y:60,x2:80,y2:60,min:0,max:100,minSize:"0%",maxSize:"100%",sort:"descending",gap:0,funnelAlign:"center",itemStyle:{normal:{borderColor:"#fff",borderWidth:1,label:{show:!0,position:"outer"},labelLine:{show:!0,length:10,lineStyle:{width:1,type:"solid"}}},emphasis:{borderColor:"rgba(0,0,0,0)",borderWidth:1,label:{show:!0},labelLine:{show:!0}}}};var s=e("../util/ecData"),l=e("../util/number"),h=e("zrender/tool/util"),m=e("zrender/tool/color"),V=e("zrender/tool/area");return t.prototype={type:r.CHART_TYPE_FUNNEL,_buildShape:function(){var e=this.series,t=this.component.legend;this._paramsMap={},this._selected={},this.selectedMap={};for(var i,n=0,a=e.length;a>n;n++)if(e[n].type===r.CHART_TYPE_FUNNEL){if(e[n]=this.reformOption(e[n]),this.legendHoverLink=e[n].legendHoverLink||this.legendHoverLink,i=e[n].name||"",this.selectedMap[i]=t?t.isSelected(i):!0,!this.selectedMap[i])continue;this._buildSingleFunnel(n),this.buildMark(n)}this.addShapeList()},_buildSingleFunnel:function(e){var t=this.component.legend,i=this.series[e],n=this._mapData(e),a=this._getLocation(e);this._paramsMap[e]={location:a,data:n};for(var o,r=0,s=[],h=0,m=n.length;m>h;h++)o=n[h].name,this.selectedMap[o]=t?t.isSelected(o):!0,this.selectedMap[o]&&!isNaN(n[h].value)&&(s.push(n[h]),r++);if(0!==r){for(var V,U,d,p,c=this._buildFunnelCase(e),u=i.funnelAlign,y=i.gap,g=r>1?(a.height-(r-1)*y)/r:a.height,b=a.y,f="descending"===i.sort?this._getItemWidth(e,s[0].value):l.parsePercent(i.minSize,a.width),k="descending"===i.sort?1:0,x=a.centerX,_=[],h=0,m=s.length;m>h;h++)if(o=s[h].name,this.selectedMap[o]&&!isNaN(s[h].value)){switch(V=m-2>=h?this._getItemWidth(e,s[h+k].value):"descending"===i.sort?l.parsePercent(i.minSize,a.width):l.parsePercent(i.maxSize,a.width),u){case"left":U=a.x;break;case"right":U=a.x+a.width-f;break;default:U=x-f/2}d=this._buildItem(e,s[h]._index,t?t.getColor(o):this.zr.getColor(s[h]._index),U,b,f,V,g,u),b+=g+y,p=d.style.pointList,_.unshift([p[0][0]-10,p[0][1]]),_.push([p[1][0]+10,p[1][1]]),0===h&&(0===f?(p=_.pop(),"center"==u&&(_[0][0]+=10),"right"==u&&(_[0][0]=p[0]),_[0][1]-="center"==u?10:15,1==m&&(p=d.style.pointList)):(_[_.length-1][1]-=5,_[0][1]-=5)),f=V}c&&(_.unshift([p[3][0]-10,p[3][1]]),_.push([p[2][0]+10,p[2][1]]),0===f?(p=_.pop(),"center"==u&&(_[0][0]+=10),"right"==u&&(_[0][0]=p[0]),_[0][1]+="center"==u?10:15):(_[_.length-1][1]+=5,_[0][1]+=5),c.style.pointList=_)}},_buildFunnelCase:function(e){var t=this.series[e];if(this.deepQuery([t,this.option],"calculable")){var i=this._paramsMap[e].location,n=10,a={hoverable:!1,style:{pointListd:[[i.x-n,i.y-n],[i.x+i.width+n,i.y-n],[i.x+i.width+n,i.y+i.height+n],[i.x-n,i.y+i.height+n]],brushType:"stroke",lineWidth:1,strokeColor:t.calculableHolderColor||this.ecTheme.calculableHolderColor||r.calculableHolderColor}};return s.pack(a,t,e,void 0,-1),this.setCalculable(a),a=new o(a),this.shapeList.push(a),a}},_getLocation:function(e){var t=this.series[e],i=this.zr.getWidth(),n=this.zr.getHeight(),a=this.parsePercent(t.x,i),o=this.parsePercent(t.y,n),r=null==t.width?i-a-this.parsePercent(t.x2,i):this.parsePercent(t.width,i);return{x:a,y:o,width:r,height:null==t.height?n-o-this.parsePercent(t.y2,n):this.parsePercent(t.height,n),centerX:a+r/2}},_mapData:function(e){function t(e,t){return"-"===e.value?1:"-"===t.value?-1:t.value-e.value}function i(e,i){return-t(e,i)}for(var n=this.series[e],a=h.clone(n.data),o=0,r=a.length;r>o;o++)a[o]._index=o;return"none"!=n.sort&&a.sort("descending"===n.sort?t:i),a},_buildItem:function(e,t,i,n,a,o,r,l,h){var m=this.series,V=m[e],U=V.data[t],d=this.getPolygon(e,t,i,n,a,o,r,l,h);s.pack(d,m[e],e,m[e].data[t],t,m[e].data[t].name),this.shapeList.push(d);var p=this.getLabel(e,t,i,n,a,o,r,l,h);s.pack(p,m[e],e,m[e].data[t],t,m[e].data[t].name),this.shapeList.push(p),this._needLabel(V,U,!1)||(p.invisible=!0);var c=this.getLabelLine(e,t,i,n,a,o,r,l,h);this.shapeList.push(c),this._needLabelLine(V,U,!1)||(c.invisible=!0);var u=[],y=[];return this._needLabelLine(V,U,!0)&&(u.push(c.id),y.push(c.id)),this._needLabel(V,U,!0)&&(u.push(p.id),y.push(d.id)),d.hoverConnect=u,p.hoverConnect=y,d},_getItemWidth:function(e,t){var i=this.series[e],n=this._paramsMap[e].location,a=i.min,o=i.max,r=l.parsePercent(i.minSize,n.width),s=l.parsePercent(i.maxSize,n.width);return(t-a)*(s-r)/(o-a)+r},getPolygon:function(e,t,i,n,a,r,s,l,h){var V,U=this.series[e],d=U.data[t],p=[d,U],c=this.deepMerge(p,"itemStyle.normal")||{},u=this.deepMerge(p,"itemStyle.emphasis")||{},y=this.getItemStyleColor(c.color,e,t,d)||i,g=this.getItemStyleColor(u.color,e,t,d)||("string"==typeof y?m.lift(y,-.2):y);switch(h){case"left":V=n;break;case"right":V=n+(r-s);break;default:V=n+(r-s)/2}var b={zlevel:U.zlevel,z:U.z,clickable:this.deepQuery(p,"clickable"),style:{pointList:[[n,a],[n+r,a],[V+s,a+l],[V,a+l]],brushType:"both",color:y,lineWidth:c.borderWidth,strokeColor:c.borderColor},highlightStyle:{color:g,lineWidth:u.borderWidth,strokeColor:u.borderColor}};return this.deepQuery([d,U,this.option],"calculable")&&(this.setCalculable(b),b.draggable=!0),new o(b)},getLabel:function(e,t,i,a,o,r,s,l,U){var d,p=this.series[e],c=p.data[t],u=this._paramsMap[e].location,y=h.merge(h.clone(c.itemStyle)||{},p.itemStyle),g="normal",b=y[g].label,f=b.textStyle||{},k=y[g].labelLine.length,x=this.getLabelText(e,t,g),_=this.getFont(f),L=i;b.position=b.position||y.normal.label.position,"inner"===b.position||"inside"===b.position||"center"===b.position?(d=U,L=Math.max(r,s)/2>V.getTextWidth(x,_)?"#fff":m.reverse(i)):d="left"===b.position?"right":"left";var W={zlevel:p.zlevel,z:p.z+1,style:{x:this._getLabelPoint(b.position,a,u,r,s,k,U),y:o+l/2,color:f.color||L,text:x,textAlign:f.align||d,textBaseline:f.baseline||"middle",textFont:_}};return g="emphasis",b=y[g].label||b,f=b.textStyle||f,k=y[g].labelLine.length||k,b.position=b.position||y.normal.label.position,x=this.getLabelText(e,t,g),_=this.getFont(f),L=i,"inner"===b.position||"inside"===b.position||"center"===b.position?(d=U,L=Math.max(r,s)/2>V.getTextWidth(x,_)?"#fff":m.reverse(i)):d="left"===b.position?"right":"left",W.highlightStyle={x:this._getLabelPoint(b.position,a,u,r,s,k,U),color:f.color||L,text:x,textAlign:f.align||d,textFont:_,brushType:"fill"},new n(W)},getLabelText:function(e,t,i){var n=this.series,a=n[e],o=a.data[t],r=this.deepQuery([o,a],"itemStyle."+i+".label.formatter");return r?"function"==typeof r?r.call(this.myChart,{seriesIndex:e,seriesName:a.name||"",series:a,dataIndex:t,data:o,name:o.name,value:o.value}):"string"==typeof r?r=r.replace("{a}","{a0}").replace("{b}","{b0}").replace("{c}","{c0}").replace("{a0}",a.name).replace("{b0}",o.name).replace("{c0}",o.value):void 0:o.name},getLabelLine:function(e,t,i,n,o,r,s,l,m){var V=this.series[e],U=V.data[t],d=this._paramsMap[e].location,p=h.merge(h.clone(U.itemStyle)||{},V.itemStyle),c="normal",u=p[c].labelLine,y=p[c].labelLine.length,g=u.lineStyle||{},b=p[c].label;b.position=b.position||p.normal.label.position;var f={zlevel:V.zlevel,z:V.z+1,hoverable:!1,style:{xStart:this._getLabelLineStartPoint(n,d,r,s,m),yStart:o+l/2,xEnd:this._getLabelPoint(b.position,n,d,r,s,y,m),yEnd:o+l/2,strokeColor:g.color||i,lineType:g.type,lineWidth:g.width}};return c="emphasis",u=p[c].labelLine||u,y=p[c].labelLine.length||y,g=u.lineStyle||g,b=p[c].label||b,b.position=b.position,f.highlightStyle={xEnd:this._getLabelPoint(b.position,n,d,r,s,y,m),strokeColor:g.color||i,lineType:g.type,lineWidth:g.width},new a(f)},_getLabelPoint:function(e,t,i,n,a,o,r){switch(e="inner"===e||"inside"===e?"center":e){case"center":return"center"==r?t+n/2:"left"==r?t+10:t+n-10;case"left":return"auto"===o?i.x-10:"center"==r?i.centerX-Math.max(n,a)/2-o:"right"==r?t-(a>n?a-n:0)-o:i.x-o;default:return"auto"===o?i.x+i.width+10:"center"==r?i.centerX+Math.max(n,a)/2+o:"right"==r?i.x+i.width+o:t+Math.max(n,a)+o}},_getLabelLineStartPoint:function(e,t,i,n,a){return"center"==a?t.centerX:n>i?e+Math.min(i,n)/2:e+Math.max(i,n)/2},_needLabel:function(e,t,i){return this.deepQuery([t,e],"itemStyle."+(i?"emphasis":"normal")+".label.show")},_needLabelLine:function(e,t,i){return this.deepQuery([t,e],"itemStyle."+(i?"emphasis":"normal")+".labelLine.show")},refresh:function(e){e&&(this.option=e,this.series=e.series),this.backupShapeList(),this._buildShape()}},h.inherits(t,i),e("../chart").define("funnel",t),t}),i("echarts/chart/eventRiver",["require","./base","../layout/eventRiver","zrender/shape/Polygon","../component/axis","../component/grid","../component/dataZoom","../config","../util/ecData","../util/date","zrender/tool/util","zrender/tool/color","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o);var r=this;r._ondragend=function(){r.isDragend=!0},this.refresh(a)}var i=e("./base"),n=e("../layout/eventRiver"),a=e("zrender/shape/Polygon");e("../component/axis"),e("../component/grid"),e("../component/dataZoom");var o=e("../config");o.eventRiver={zlevel:0,z:2,clickable:!0,legendHoverLink:!0,itemStyle:{normal:{borderColor:"rgba(0,0,0,0)",borderWidth:1,label:{show:!0,position:"inside",formatter:"{b}"}},emphasis:{borderColor:"rgba(0,0,0,0)",borderWidth:1,label:{show:!0}}}};var r=e("../util/ecData"),s=e("../util/date"),l=e("zrender/tool/util"),h=e("zrender/tool/color");return t.prototype={type:o.CHART_TYPE_EVENTRIVER,_buildShape:function(){var e=this.series;this.selectedMap={},this._dataPreprocessing();for(var t=this.component.legend,i=[],a=0;an;n++)if(i[n].type===this.type){e=this.component.xAxis.getAxis(i[n].xAxisIndex||0);for(var o=0,r=i[n].data.length;r>o;o++){t=i[n].data[o].evolution;for(var l=0,h=t.length;h>l;l++)t[l].timeScale=e.getCoord(s.getNewDate(t[l].time)-0),t[l].valueScale=Math.pow(t[l].value,.8)}}this._intervalX=Math.round(this.component.grid.getWidth()/40)},_drawEventRiver:function(){for(var e=this.series,t=0;ta)){for(var o=[],r=[],s=0;a>s;s++)o.push(n[s].timeScale),r.push(n[s].valueScale);var l=[];l.push([o[0],i]);var s=0;for(s=0;a-1>s;s++)l.push([(o[s]+o[s+1])/2,r[s]/-2+i]);for(l.push([(o[s]+(o[s]+t))/2,r[s]/-2+i]),l.push([o[s]+t,i]),l.push([(o[s]+(o[s]+t))/2,r[s]/2+i]),s=a-1;s>0;s--)l.push([(o[s]+o[s-1])/2,r[s-1]/2+i]);return l}},ondragend:function(e,t){this.isDragend&&e.target&&(t.dragOut=!0,t.dragIn=!0,t.needRefresh=!1,this.isDragend=!1)},refresh:function(e){e&&(this.option=e,this.series=e.series),this.backupShapeList(),this._buildShape()}},l.inherits(t,i),e("../chart").define("eventRiver",t),t}),i("echarts/layout/eventRiver",["require"],function(){function e(e,i,o){function r(e,t){var i=e.importance,n=t.importance;return i>n?-1:n>i?1:0}for(var s=4,l=0;l=e)return[0];for(var t=[];e--;)t.push(0);return t}(),u=c.slice(0),y=[],g=0,b=0,l=0;l.5?.5:1,r=t.y,s=(t.height-n)/i,l=0,h=e.length;h>l;l++){var m=e[l];m.y=r+s*m.y+m._offset*o,delete m.time,delete m.value,delete m.xpx,delete m.ypx,delete m._offset;for(var V=m.evolution,U=0,d=V.length;d>U;U++)V[U].valueScale*=s}}function i(e,t,i,n){if(e===i)throw new Error("x0 is equal with x1!!!");if(t===n)return function(){return t};var a=(t-n)/(e-i),o=(n*e-t*i)/(e-i);return function(e){return a*e+o}}function n(e,t,n){var a=~~t,o=e.time.length;e.xpx=[],e.ypx=[];for(var r,s=0,l=0,h=0,m=0,V=0;o>s;s++){l=~~e.time[s],m=e.value[s]/2,s===o-1?(h=l+a,V=0):(h=~~e.time[s+1],V=e.value[s+1]/2),r=i(l,m,h,V);for(var U=l;h>U;U++)e.xpx.push(U-n),e.ypx.push(r(U))}e.xpx.push(h-n),e.ypx.push(V)}function a(e,t,i){for(var n,a=0,o=t.xpx.length,r=0;o>r;r++)n=i(t,r),a=Math.max(a,n+e[t.xpx[r]]);for(r=0;o>r;r++)n=i(t,r),e[t.xpx[r]]=a+n;return a}return e}),i("echarts/chart/venn",["require","./base","zrender/shape/Text","zrender/shape/Circle","zrender/shape/Path","../config","../util/ecData","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("zrender/shape/Text"),a=e("zrender/shape/Circle"),o=e("zrender/shape/Path"),r=e("../config");r.venn={zlevel:0,z:1,calculable:!1};var s=e("../util/ecData"),l=e("zrender/tool/util");return t.prototype={type:r.CHART_TYPE_VENN,_buildShape:function(){this.selectedMap={},this._symbol=this.option.symbolList,this._queryTarget,this._dropBoxList=[],this._vennDataCounter=0;for(var e=this.series,t=this.component.legend,i=0;ia[1].value?(t=this.zr.getHeight()/3,i=t*Math.sqrt(a[1].value)/Math.sqrt(a[0].value)):(i=this.zr.getHeight()/3,t=i*Math.sqrt(a[0].value)/Math.sqrt(a[1].value));var o=this.zr.getWidth()/2-t,r=(t+i)/2*Math.sqrt(a[2].value)/Math.sqrt((a[0].value+a[1].value)/2),s=t+i;0!==a[2].value&&(s=this._getCoincideLength(a[0].value,a[1].value,a[2].value,t,i,r,Math.abs(t-i),t+i));var l=o+s,h=this.zr.getHeight()/2;if(this._buildItem(e,0,a[0],o,h,t),this._buildItem(e,1,a[1],l,h,i),0!==a[2].value&&a[2].value!==a[0].value&&a[2].value!==a[1].value){var m=(t*t-i*i)/(2*s)+s/2,V=s/2-(t*t-i*i)/(2*s),U=Math.sqrt(t*t-m*m),d=0,p=0;a[0].value>a[1].value&&o+m>l&&(p=1),a[0].valuel&&(d=1),this._buildCoincideItem(e,2,a[2],o+m,h-U,h+U,t,i,d,p)}},_getCoincideLength:function(e,t,i,n,a,o,r,s){var l=(n*n-a*a)/(2*o)+o/2,h=o/2-(n*n-a*a)/(2*o),m=Math.acos(l/n),V=Math.acos(h/a),U=n*n*Math.PI,d=m*n*n-l*n*Math.sin(m)+V*a*a-h*a*Math.sin(V),p=d/U,c=i/e,u=Math.abs(p/c);return u>.999&&1.001>u?o:.999>=u?(s=o,o=(o+r)/2,this._getCoincideLength(e,t,i,n,a,o,r,s)):(r=o,o=(o+s)/2,this._getCoincideLength(e,t,i,n,a,o,r,s))},_buildItem:function(e,t,i,n,a,o){var r=this.series,l=r[e],h=this.getCircle(e,t,i,n,a,o);if(s.pack(h,l,e,i,t,i.name),this.shapeList.push(h),l.itemStyle.normal.label.show){var m=this.getLabel(e,t,i,n,a,o);s.pack(m,l,e,l.data[t],t,l.data[t].name),this.shapeList.push(m)}},_buildCoincideItem:function(e,t,i,n,a,r,l,h,m,V){var U=this.series,d=U[e],p=[i,d],c=this.deepMerge(p,"itemStyle.normal")||{},u=this.deepMerge(p,"itemStyle.emphasis")||{},y=c.color||this.zr.getColor(t),g=u.color||this.zr.getColor(t),b="M"+n+","+a+"A"+l+","+l+",0,"+m+",1,"+n+","+r+"A"+h+","+h+",0,"+V+",1,"+n+","+a,f={color:y,path:b},k={zlevel:d.zlevel,z:d.z,style:f,highlightStyle:{color:g,lineWidth:u.borderWidth,strokeColor:u.borderColor}};k=new o(k),k.buildPathArray&&(k.style.pathArray=k.buildPathArray(f.path)),s.pack(k,U[e],0,i,t,i.name),this.shapeList.push(k)},getCircle:function(e,t,i,n,o,r){var s=this.series[e],l=[i,s],h=this.deepMerge(l,"itemStyle.normal")||{},m=this.deepMerge(l,"itemStyle.emphasis")||{},V=h.color||this.zr.getColor(t),U=m.color||this.zr.getColor(t),d={zlevel:s.zlevel,z:s.z,clickable:!0,style:{x:n,y:o,r:r,brushType:"fill",opacity:1,color:V},highlightStyle:{color:U,lineWidth:m.borderWidth,strokeColor:m.borderColor}};return this.deepQuery([i,s,this.option],"calculable")&&(this.setCalculable(d),d.draggable=!0),new a(d)},getLabel:function(e,t,i,a,o,r){var s=this.series[e],l=s.itemStyle,h=[i,s],m=this.deepMerge(h,"itemStyle.normal")||{},V="normal",U=l[V].label,d=U.textStyle||{},p=this.getLabelText(t,i,V),c=this.getFont(d),u=m.color||this.zr.getColor(t),y=d.fontSize||12,g={zlevel:s.zlevel,z:s.z,style:{x:a,y:o-r-y,color:d.color||u,text:p,textFont:c,textAlign:"center"}};return new n(g)},getLabelText:function(e,t,i){var n=this.series,a=n[0],o=this.deepQuery([t,a],"itemStyle."+i+".label.formatter");return o?"function"==typeof o?o(a.name,t.name,t.value):"string"==typeof o?(o=o.replace("{a}","{a0}").replace("{b}","{b0}").replace("{c}","{c0}"),o=o.replace("{a0}",a.name).replace("{b0}",t.name).replace("{c0}",t.value)):void 0:t.name},refresh:function(e){e&&(this.option=e,this.series=e.series),this._buildShape()}},l.inherits(t,i),e("../chart").define("venn",t),t}),i("echarts/chart/treemap",["require","./base","zrender/tool/area","zrender/shape/Rectangle","zrender/shape/Text","zrender/shape/Line","../layout/TreeMap","../data/Tree","../config","../util/ecData","zrender/config","zrender/tool/event","zrender/tool/util","zrender/tool/color","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.refresh(a);var r=this;r._onclick=function(e){return r.__onclick(e)},r.zr.on(V.EVENT.CLICK,r._onclick)}var i=e("./base"),n=e("zrender/tool/area"),a=e("zrender/shape/Rectangle"),o=e("zrender/shape/Text"),r=e("zrender/shape/Line"),s=e("../layout/TreeMap"),l=e("../data/Tree"),h=e("../config");h.treemap={zlevel:0,z:1,calculable:!1,clickable:!0,center:["50%","50%"],size:["80%","80%"],root:"",itemStyle:{normal:{label:{ +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;nt.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 ":"")},V),clickable:!0,highlightStyle:p});m.set(u,"seriesIndex",t),m.set(u,"name",a[c]),i+=u.getRect(u.style).width,this.shapeList.push(u)}},__onclick:function(e){var t=e.target;if(t){var i=m.get(t,"seriesIndex"),n=m.get(t,"name"),a=this._treesMap[i],o=a.getNodeById(n);o&&o.children.length&&this._buildTreemap(o,i)}}},U.inherits(t,i),e("../chart").define("treemap",t),t}),i("echarts/layout/TreeMap",["require"],function(){function e(e){({x:e.x,y:e.y,width:e.width,height:e.height});this.x=e.x,this.y=e.y,this.width=e.width,this.height=e.height}return e.prototype.run=function(e){var t=[];return this._squarify(e,{x:this.x,y:this.y,width:this.width,height:this.height},t),t},e.prototype._squarify=function(e,t,i){var n="VERTICAL",a=t.width,o=t.height;t.widthl;l++)r[s].y+=r[l].height}var h={};if("VERTICAL"==n){for(var m=0;ml;l++){var h=i*e[l]/o;a.push({width:s,height:h})}return a},e.prototype._isFirstBetter=function(e,t){var i=e[0].height/e[0].width;i=i>1?1/i:i;var n=t[0].height/t[0].width;return n=n>1?1/n:n,Math.abs(i-1)<=Math.abs(n-1)?!0:!1},e}),i("echarts/data/Tree",["require","zrender/tool/util"],function(e){function t(e,t){this.id=e,this.depth=0,this.height=0,this.children=[],this.parent=null,this.data=t||null}function i(e){this.root=new t(e)}var n=e("zrender/tool/util");return t.prototype.add=function(e){var t=this.children;e.parent!==this&&(t.push(e),e.parent=this)},t.prototype.remove=function(e){var t=this.children,i=n.indexOf(t,e);i>=0&&(t.splice(i,1),e.parent=null)},t.prototype.traverse=function(e,t){e.call(t,this);for(var i=0;it&&(t=n.height)}this.height=t+1},t.prototype.getNodeById=function(e){if(this.id===e)return this;for(var t=0;t0&&this._buildLink(i,e)},this);var n=e.roam===!0||"move"===e.roam,a=e.roam===!0||"scale"===e.roam;this.zr.modLayer(this.getZlevelBase(),{panable:n,zoomable:a}),(this.query("markPoint.effect.show")||this.query("markLine.effect.show"))&&this.zr.modLayer(m.EFFECT_ZLEVEL,{panable:n,zoomable:a}),this.addShapeList()},_buildItem:function(e,t,i){var n=[e.data,t],r=this.deepQuery(n,"symbol"),s=this.deepMerge(n,"itemStyle.normal")||{},l=this.deepMerge(n,"itemStyle.emphasis")||{},h=s.color||this.zr.getColor(),m=l.color||this.zr.getColor(),U=-e.layout.angle||0;e.id===this.tree.root.id&&(U=0);var d="right";Math.abs(U)>=Math.PI/2&&Math.abs(U)<3*Math.PI/2&&(U+=Math.PI,d="left");var p=[U,e.layout.position[0],e.layout.position[1]],c=new a({zlevel:this.getZlevelBase(),z:this.getZBase()+1,rotation:p,clickable:this.deepQuery(n,"clickable"),style:{x:e.layout.position[0]-.5*e.layout.width,y:e.layout.position[1]-.5*e.layout.height,width:e.layout.width,height:e.layout.height,iconType:r,color:h,brushType:"both",lineWidth:s.borderWidth,strokeColor:s.borderColor},highlightStyle:{color:m,lineWidth:l.borderWidth,strokeColor:l.borderColor}});c.style.iconType.match("image")&&(c.style.image=c.style.iconType.replace(new RegExp("^image:\\/\\/"),""),c=new o({rotation:p,style:c.style,highlightStyle:c.highlightStyle,clickable:c.clickable,zlevel:this.getZlevelBase(),z:this.getZBase()})),this.deepQuery(n,"itemStyle.normal.label.show")&&(c.style.text=null==e.data.label?e.id:e.data.label,c.style.textPosition=this.deepQuery(n,"itemStyle.normal.label.position"),"radial"===t.orient&&"inside"!==c.style.textPosition&&(c.style.textPosition=d),c.style.textColor=this.deepQuery(n,"itemStyle.normal.label.textStyle.color"),c.style.textFont=this.getFont(this.deepQuery(n,"itemStyle.normal.label.textStyle")||{})),this.deepQuery(n,"itemStyle.emphasis.label.show")&&(c.highlightStyle.textPosition=this.deepQuery(n,"itemStyle.emphasis.label.position"),c.highlightStyle.textColor=this.deepQuery(n,"itemStyle.emphasis.label.textStyle.color"),c.highlightStyle.textFont=this.getFont(this.deepQuery(n,"itemStyle.emphasis.label.textStyle")||{})),V.pack(c,t,i,e.data,0,e.id),this.shapeList.push(c)},_buildLink:function(e,t){var i=t.itemStyle.normal.lineStyle;if("broken"===i.type)return void this._buildBrokenLine(e,i,t);for(var n=0;nr&&(t=r),r>n&&(n=r)}e.layout.position[0]=e.children.length>0?(t+n)/2:0;var s=this._layerOffsets[e.depth]||0;if(s>e.layout.position[0]){var l=s-e.layout.position[0];this._shiftSubtree(e,l);for(var a=e.depth+1;ai;i++)this._buildTextShape(e[i],0,i);this.addShapeList()},_buildTextShape:function(e,t,i){var a=this.series,o=a[t],s=o.name||"",h=o.data[i],m=[h,o],V=this.component.legend,U=V?V.getColor(s):this.zr.getColor(t),d=this.deepMerge(m,"itemStyle.normal")||{},p=this.deepMerge(m,"itemStyle.emphasis")||{},c=this.getItemStyleColor(d.color,t,i,h)||U,u=this.getItemStyleColor(p.color,t,i,h)||("string"==typeof c?l.lift(c,-.2):c),y=new n({zlevel:o.zlevel,z:o.z,hoverable:!0,clickable:this.deepQuery(m,"clickable"),style:{x:0,y:0,text:e.text,color:c,textFont:[e.style,e.weight,e.size+"px",e.font].join(" "),textBaseline:"alphabetic",textAlign:"center"},highlightStyle:{brushType:p.borderWidth?"both":"fill",color:u,lineWidth:p.borderWidth||0,strokeColor:p.borderColor},position:[e.x,e.y],rotation:[-e.rotate/180*Math.PI,0,0]});r.pack(y,o,t,h,i,h.name),this.shapeList.push(y)}},s.inherits(t,i),e("../chart").define("wordCloud",t),t}),i("echarts/layout/WordCloud",["require","../layout/WordCloudRectZero","zrender/tool/util"],function(e){function t(e){this._init(e)}var i=e("../layout/WordCloudRectZero"),n=e("zrender/tool/util");return t.prototype={start:function(){function e(){p.totalArea=r,U.autoSizeCal.enable&&p._autoCalTextSize(m,r,a,o,U.autoSizeCal.minSize),V.timer&&clearInterval(V.timer),V.timer=setInterval(t,0),t()}function t(){for(var e,t=+new Date,i=m.length;+new Date-t>1,e.y=d[1]>>1,p._cloudSprite(e,m,s),e.hasText&&p._place(n,e,h)&&(l.push(e),e.x-=d[0]>>1,e.y-=d[1]>>1);s>=i&&(p.stop(),p._fixTagPosition(l),V.endcallback(l))}var n=null,a=0,o=0,r=0,s=-1,l=[],h=null,m=this.wordsdata,V=this.defaultOption,U=V.wordletype,d=V.size,p=this,c=new i({type:U.type,width:d[0],height:d[1]});return c.calculate(function(t){n=t.initarr,a=t.maxWit,o=t.maxHit,r=t.area,h=t.imgboard,e()},this),this},_fixTagPosition:function(e){for(var t=this.defaultOption.center,i=0,n=e.length;n>i;i++)e[i].x+=t[0],e[i].y+=t[1]},stop:function(){return this.defaultOption.timer&&(clearInterval(this.defaultOption.timer),this.defaultOption.timer=null),this},end:function(e){return e&&(this.defaultOption.endcallback=e),this},_init:function(e){this.defaultOption={},this._initProperty(e),this._initMethod(e),this._initCanvas(),this._initData(e.data)},_initData:function(e){var t=this,i=t.defaultOption;this.wordsdata=e.map(function(e,n){return e.text=i.text.call(t,e,n),e.font=i.font.call(t,e,n),e.style=i.fontStyle.call(t,e,n),e.weight=i.fontWeight.call(t,e,n),e.rotate=i.rotate.call(t,e,n),e.size=~~i.fontSize.call(t,e,n),e.padding=i.padding.call(t,e,n),e}).sort(function(e,t){return t.value-e.value})},_initMethod:function(e){function t(e){return e.name}function i(){return"sans-serif"}function n(){return"normal"}function a(e){return e.value}function o(){return 0}function r(e){return function(){return e[Math.round(Math.random()*(e.length-1))]}}function s(){return 0}function l(e){var t=e[0]/e[1];return function(e){return[t*(e*=.1)*Math.cos(e),e*Math.sin(e)]}}function h(e){var t=4,i=t*e[0]/e[1],n=0,a=0;return function(e){var o=0>e?-1:1;switch(Math.sqrt(1+4*o*e)-o&3){case 0:n+=i;break;case 1:a+=t;break;case 2:n-=i;break;default:a-=t}return[n,a]}}function m(e){return"function"==typeof e?e:function(){return e}}var V=this.defaultOption;V.text=e.text?m(e.text):t,V.font=e.font?m(e.font):i,V.fontSize=e.fontSize?m(e.fontSize):a,V.fontStyle=e.fontStyle?m(e.fontStyle):n,V.fontWeight=e.fontWeight?m(e.fontWeight):n,V.rotate=e.rotate?r(e.rotate):o,V.padding=e.padding?m(e.padding):s,V.center=e.center,V.spiral=l,V.endcallback=function(){},V.rectangularSpiral=h,V.archimedeanSpiral=l},_initProperty:function(e){var t=this.defaultOption;t.size=e.size||[256,256],t.wordletype=e.wordletype,t.words=e.words||[],t.timeInterval=1/0,t.timer=null,t.spirals={archimedean:t.archimedeanSpiral,rectangular:t.rectangularSpiral},n.merge(t,{size:[256,256],wordletype:{type:"RECT",areaPresent:.058,autoSizeCal:{enable:!0,minSize:12}}})},_initCanvas:function(){var e,t=Math.PI/180,i=64,n=2048,a=1;"undefined"!=typeof document?(e=document.createElement("canvas"),e.width=1,e.height=1,a=Math.sqrt(e.getContext("2d").getImageData(0,0,1,1).data.length>>2),e.width=(i<<5)/a,e.height=n/a):e=new Canvas(i<<5,n);var o=e.getContext("2d");o.fillStyle=o.strokeStyle="red",o.textAlign="center",this.defaultOption.c=o,this.defaultOption.cw=i,this.defaultOption.ch=n,this.defaultOption.ratio=a,this.defaultOption.cloudRadians=t},_cloudSprite:function(e,t,i){if(!e.sprite){var n=this.defaultOption.cw,a=this.defaultOption.ch,o=this.defaultOption.c,r=this.defaultOption.ratio,s=this.defaultOption.cloudRadians;o.clearRect(0,0,(n<<5)/r,a/r);var l=0,h=0,m=0,V=t.length;for(--i;++i>5<<5,d=~~Math.max(Math.abs(y+g),Math.abs(y-g))}else U=U+31>>5<<5;if(d>m&&(m=d),l+U>=n<<5&&(l=0,h+=m,m=0),h+d>=a)break;o.translate((l+(U>>1))/r,(h+(d>>1))/r),e.rotate&&o.rotate(e.rotate*s),o.fillText(e.text,0,0),e.padding&&(o.lineWidth=2*e.padding,o.strokeText(e.text,0,0)),o.restore(),e.width=U,e.height=d,e.xoff=l,e.yoff=h,e.x1=U>>1,e.y1=d>>1,e.x0=-e.x1,e.y0=-e.y1,e.hasText=!0,l+=U}for(var f=o.getImageData(0,0,(n<<5)/r,a/r).data,k=[];--i>=0;)if(e=t[i],e.hasText){for(var U=e.width,x=U>>5,d=e.y1-e.y0,_=0;d*x>_;_++)k[_]=0;if(l=e.xoff,null==l)return;h=e.yoff;for(var L=0,W=-1,X=0;d>X;X++){for(var _=0;U>_;_++){var v=x*X+(_>>5),w=f[(h+X)*(n<<5)+(l+_)<<2]?1<<31-_%32:0;k[v]|=w,L|=w}L?W=X:(e.y0++,d--,X--,h++)}e.y1=e.y0+W,e.sprite=k.slice(0,(e.y1-e.y0)*x)}}},_place:function(e,t,i){function n(e,t,i){i>>=5;for(var n,a=e.sprite,o=e.width>>5,r=e.x-(o<<4),s=127&r,l=32-s,h=e.y1-e.y0,m=(e.y+e.y0)*i+(r>>5),V=0;h>V;V++){n=0;for(var U=0;o>=U;U++)if((n<U?(n=a[V*o+U])>>>s:0))&t[m+U])return!0;m+=i}return!1}function a(e,t){return t.row[e.y]&&t.cloumn[e.x]&&e.x>=t.row[e.y].start&&e.x<=t.row[e.y].end&&e.y>=t.cloumn[e.x].start&&e.y<=t.cloumn[e.x].end}for(var o,r,s,l=this.defaultOption.size,h=([{x:0,y:0},{x:l[0],y:l[1]}],t.x),m=t.y,V=Math.sqrt(l[0]*l[0]+l[1]*l[1]),U=this.defaultOption.spiral(l),d=Math.random()<.5?1:-1,p=-d;(o=U(p+=d))&&(r=~~o[0],s=~~o[1],!(Math.min(r,s)>V));)if(t.x=h+r,t.y=m+s,!(t.x+t.x0<0||t.y+t.y0<0||t.x+t.x1>l[0]||t.y+t.y1>l[1])&&!n(t,e,l[0])&&a(t,i)){for(var c,u=t.sprite,y=t.width>>5,g=l[0]>>5,b=t.x-(y<<4),f=127&b,k=32-f,x=t.y1-t.y0,_=(t.y+t.y0)*g+(b>>5),L=0;x>L;L++){c=0;for(var W=0;y>=W;W++)e[_+W]|=c<W?(c=u[L*y+W])>>>f:0);_+=g}return delete t.sprite,!0}return!1},_autoCalTextSize:function(e,t,i,n,a){function o(e){c.clearRect(0,0,(d<<5)/u,p/u),c.save(),c.font=e.style+" "+e.weight+" "+~~((e.size+1)/u)+"px "+e.font;var t=c.measureText(e.text+"m").width*u,r=e.size<<1;t=t+31>>5<<5,c.restore(),e.aw=t,e.ah=r;var s,l,h;if(e.rotate){var m=Math.sin(e.rotate*y),V=Math.cos(e.rotate*y),g=t*V,b=t*m,f=r*V,k=r*m;l=Math.max(Math.abs(g+k),Math.abs(g-k))+31>>5<<5,h=~~Math.max(Math.abs(b+f),Math.abs(b-f))}return e.size<=U||e.rotate&&t*r<=e.area&&i>=l&&n>=h||t*r<=e.area&&i>=t&&n>=r?void(e.area=t*r):(s=e.rotate&&l>i&&h>n?Math.min(i/l,n/h):t>i||r>n?Math.min(i/t,n/r):Math.sqrt(e.area/(e.aw*e.ah)),e.size=~~(s*e.size),e.sizel?l:V:l,s.area=t*s.areapre,s.totalarea=t,o(s)}},t}),i("echarts/layout/WordCloudRectZero",["require"],function(){function e(e){this.defaultOption={type:"RECT"},this._init(e)}return e.prototype={RECT:"_calculateRect",_init:function(e){this._initOption(e),this._initCanvas()},_initOption:function(e){for(k in e)this.defaultOption[k]=e[k]},_initCanvas:function(){var e=document.createElement("canvas");e.width=1,e.height=1;var t=Math.sqrt(e.getContext("2d").getImageData(0,0,1,1).data.length>>2);if(e.width=this.defaultOption.width,e.height=this.defaultOption.height,e.getContext)var i=e.getContext("2d");this.canvas=e,this.ctx=i,this.ratio=t},calculate:function(e,t){var i=this.defaultOption.type,n=this[i];this[n].call(this,e,t)},_calculateReturn:function(e,t,i){t.call(i,e)},_calculateRect:function(e,t){var i={},n=this.defaultOption.width>>5<<5,a=this.defaultOption.height;i.initarr=this._rectZeroArray(n*a),i.area=n*a,i.maxHit=a,i.maxWit=n,i.imgboard=this._rectBoard(n,a),this._calculateReturn(i,e,t)},_rectBoard:function(e,t){for(var i=[],n=0;t>n;n++)i.push({y:n,start:0,end:e});for(var a=[],n=0;e>n;n++)a.push({x:n,start:0,end:t});return{row:i,cloumn:a}},_rectZeroArray:function(e){for(var t=[],i=e,n=-1;++ni;++i)if(e[i].type===a.CHART_TYPE_HEATMAP){e[i]=this.reformOption(e[i]);var o=new n(e[i]),s=o.getCanvas(e[i].data,this.zr.getWidth(),this.zr.getHeight()),l=new r({position:[0,0],scale:[1,1],hoverable:this.option.hoverable,style:{x:0,y:0,image:s,width:s.width,height:s.height}});this.shapeList.push(l)}this.addShapeList()}},o.inherits(t,i),e("../chart").define("heatmap",t),t});var n=t("zrender");n.tool={color:t("zrender/tool/color"),math:t("zrender/tool/math"),util:t("zrender/tool/util"),vector:t("zrender/tool/vector"),area:t("zrender/tool/area"),event:t("zrender/tool/event")},n.animation={Animation:t("zrender/animation/Animation"),Cip:t("zrender/animation/Clip"),easing:t("zrender/animation/easing")};var a=t("echarts");a.config=t("echarts/config"),a.util={mapData:{params:t("echarts/util/mapData/params")}},t("echarts/chart/line"),t("echarts/chart/bar"),t("echarts/chart/scatter"),t("echarts/chart/k"),t("echarts/chart/pie"),t("echarts/chart/radar"),t("echarts/chart/chord"),t("echarts/chart/force"),t("echarts/chart/map"),t("echarts/chart/gauge"),t("echarts/chart/funnel"),t("echarts/chart/eventRiver"),t("echarts/chart/venn"),t("echarts/chart/treemap"),t("echarts/chart/tree"),t("echarts/chart/wordCloud"),t("echarts/chart/heatmap"),e.echarts=a,e.zrender=n}(window); \ No newline at end of file diff --git a/Bootstrap.DataAccess.MongoDB/Log.cs b/Bootstrap.DataAccess.MongoDB/Log.cs index 2c19bb22..45bbc02d 100644 --- a/Bootstrap.DataAccess.MongoDB/Log.cs +++ b/Bootstrap.DataAccess.MongoDB/Log.cs @@ -2,6 +2,7 @@ using MongoDB.Driver; using PetaPoco; using System; +using System.Collections.Generic; using System.Linq; namespace Bootstrap.DataAccess.MongoDB @@ -19,7 +20,7 @@ namespace Bootstrap.DataAccess.MongoDB /// /// /// - public override Page Retrieves(PaginationOption po, DateTime? startTime, DateTime? endTime, string opType) + public override Page RetrievePages(PaginationOption po, DateTime? startTime, DateTime? endTime, string opType) { var filterBuilder = Builders.Filter; var filter = filterBuilder.Empty; @@ -62,6 +63,26 @@ namespace Bootstrap.DataAccess.MongoDB }; } + /// + /// + /// + /// + /// + /// + /// + public override IEnumerable RetrieveAll(DateTime? startTime, DateTime? endTime, string opType) + { + var filterBuilder = Builders.Filter; + var filter = filterBuilder.Empty; + if (startTime.HasValue) filter = filterBuilder.Gte("LogTime", startTime.Value); + if (endTime.HasValue) filter = filterBuilder.Lt("LogTime", endTime.Value.AddDays(1).AddSeconds(-1)); + if (!string.IsNullOrEmpty(opType)) filter = filterBuilder.Eq("CRUD", opType); + + // sort + var sort = Builders.Sort.Ascending(t => t.LogTime); + return DbManager.Logs.Find(filter).Sort(sort).ToList(); + } + /// /// 删除日志信息 /// diff --git a/Bootstrap.DataAccess.MongoDB/LoginUser.cs b/Bootstrap.DataAccess.MongoDB/LoginUser.cs index 204ec75e..2354538a 100644 --- a/Bootstrap.DataAccess.MongoDB/LoginUser.cs +++ b/Bootstrap.DataAccess.MongoDB/LoginUser.cs @@ -30,7 +30,7 @@ namespace Bootstrap.DataAccess.MongoDB /// public override Page RetrieveByPages(PaginationOption po, DateTime? startTime, DateTime? endTime, string ip) { - var logs = Retrieves(startTime, endTime, ip); + var logs = RetrieveAll(startTime, endTime, ip); return new Page() { Context = logs, @@ -46,7 +46,7 @@ namespace Bootstrap.DataAccess.MongoDB /// 获取所有登录数据 /// /// - public override IEnumerable Retrieves(DateTime? startTime, DateTime? endTime, string ip) + public override IEnumerable RetrieveAll(DateTime? startTime, DateTime? endTime, string ip) { var filterBuilder = Builders.Filter; var filter = filterBuilder.Empty; @@ -56,7 +56,7 @@ namespace Bootstrap.DataAccess.MongoDB return DbManager.LoginUsers .Find(filter) - .Sort(Builders.Sort.Descending(t => t.LoginTime)).ToList(); + .Sort(Builders.Sort.Ascending(t => t.LoginTime)).ToList(); } } } diff --git a/Bootstrap.DataAccess.MongoDB/Trace.cs b/Bootstrap.DataAccess.MongoDB/Trace.cs index 8ccb292c..7bcaafd0 100644 --- a/Bootstrap.DataAccess.MongoDB/Trace.cs +++ b/Bootstrap.DataAccess.MongoDB/Trace.cs @@ -2,6 +2,7 @@ using Longbow.Web.Mvc; using MongoDB.Driver; using PetaPoco; using System; +using System.Collections.Generic; using System.Linq; namespace Bootstrap.DataAccess.MongoDB @@ -15,7 +16,7 @@ namespace Bootstrap.DataAccess.MongoDB /// /// /// - public override Page Retrieves(PaginationOption po, DateTime? startTime, DateTime? endTime, string ip) + public override Page RetrievePages(PaginationOption po, DateTime? startTime, DateTime? endTime, string ip) { // filter var filterBuilder = Builders.Filter; @@ -65,6 +66,26 @@ namespace Bootstrap.DataAccess.MongoDB }; } + /// + /// + /// + /// + /// + /// + /// + public override IEnumerable RetrieveAll(DateTime? startTime, DateTime? endTime, string ip) + { + var filterBuilder = Builders.Filter; + var filter = filterBuilder.Empty; + if (startTime.HasValue) filter = filterBuilder.Gt("LogTime", startTime.Value); + if (endTime.HasValue) filter = filterBuilder.Lt("LogTime", endTime.Value.AddDays(1).AddSeconds(-1)); + if (!string.IsNullOrEmpty(ip)) filter = filterBuilder.Eq("Ip", ip); + + // sort + var sort = Builders.Sort.Ascending(t => t.LogTime); + return DbManager.Traces.Find(filter).Sort(sort).ToList(); + } + /// /// /// diff --git a/Bootstrap.DataAccess/Helper/LogHelper.cs b/Bootstrap.DataAccess/Helper/LogHelper.cs index d1aee6dd..05f1bb35 100644 --- a/Bootstrap.DataAccess/Helper/LogHelper.cs +++ b/Bootstrap.DataAccess/Helper/LogHelper.cs @@ -2,6 +2,7 @@ using Longbow.Web.Mvc; using PetaPoco; using System; +using System.Collections.Generic; namespace Bootstrap.DataAccess { @@ -15,7 +16,13 @@ namespace Bootstrap.DataAccess /// /// /// - public static Page Retrieves(PaginationOption op, DateTime? startTime, DateTime? endTime, string opType) => DbContextManager.Create().Retrieves(op, startTime, endTime, opType); + public static Page RetrievePages(PaginationOption op, DateTime? startTime, DateTime? endTime, string opType) => DbContextManager.Create().RetrievePages(op, startTime, endTime, opType); + + /// + /// 查询所有日志信息 + /// + /// + public static IEnumerable RetrieveAll(DateTime? startTime, DateTime? endTime, string opType) => DbContextManager.Create().RetrieveAll(startTime, endTime, opType); /// /// 保存新增的日志信息 diff --git a/Bootstrap.DataAccess/Helper/LoginHelper.cs b/Bootstrap.DataAccess/Helper/LoginHelper.cs index ae1996a7..5b3cd207 100644 --- a/Bootstrap.DataAccess/Helper/LoginHelper.cs +++ b/Bootstrap.DataAccess/Helper/LoginHelper.cs @@ -40,7 +40,7 @@ namespace Bootstrap.DataAccess /// public static IEnumerable RetrieveAll(DateTime? startTime, DateTime? endTime, string ip) { - return DbContextManager.Create().Retrieves(startTime, endTime, ip); + return DbContextManager.Create().RetrieveAll(startTime, endTime, ip); } } } diff --git a/Bootstrap.DataAccess/Helper/TraceHelper.cs b/Bootstrap.DataAccess/Helper/TraceHelper.cs index 6c019993..8e97da9d 100644 --- a/Bootstrap.DataAccess/Helper/TraceHelper.cs +++ b/Bootstrap.DataAccess/Helper/TraceHelper.cs @@ -4,6 +4,7 @@ using Longbow.Web.Mvc; using Microsoft.AspNetCore.Http; using PetaPoco; using System; +using System.Collections.Generic; namespace Bootstrap.DataAccess { @@ -44,6 +45,15 @@ namespace Bootstrap.DataAccess /// /// /// - public static Page Retrieves(PaginationOption po, DateTime? startTime, DateTime? endTime, string ip) => DbContextManager.Create().Retrieves(po, startTime, endTime, ip); + public static Page Retrieves(PaginationOption po, DateTime? startTime, DateTime? endTime, string ip) => DbContextManager.Create().RetrievePages(po, startTime, endTime, ip); + + /// + /// 获得指定IP历史访问记录 + /// + /// + /// + /// + /// + public static IEnumerable RetrieveAll(DateTime? startTime, DateTime? endTime, string ip) => DbContextManager.Create().RetrieveAll(startTime, endTime, ip); } } diff --git a/Bootstrap.DataAccess/Log.cs b/Bootstrap.DataAccess/Log.cs index 26e4da4e..7f574c18 100644 --- a/Bootstrap.DataAccess/Log.cs +++ b/Bootstrap.DataAccess/Log.cs @@ -1,6 +1,7 @@ using Longbow.Web.Mvc; using PetaPoco; using System; +using System.Collections.Generic; namespace Bootstrap.DataAccess { @@ -28,18 +29,36 @@ namespace Bootstrap.DataAccess /// /// /// - public virtual new Page Retrieves(PaginationOption po, DateTime? startTime, DateTime? endTime, string opType) + public virtual new Page RetrievePages(PaginationOption po, DateTime? startTime, DateTime? endTime, string opType) { var sql = new Sql("select CRUD, UserName, LogTime, Ip, Browser, OS, City, RequestUrl, RequestData from Logs"); - if (startTime.HasValue) sql.Append("where LogTime >= @0", startTime.Value); - if (endTime.HasValue) sql.Append("where LogTime < @0", endTime.Value.AddDays(1).AddSeconds(-1)); - if (startTime == null && endTime == null) sql.Append("where LogTime > @0", DateTime.Today.AddMonths(0 - DictHelper.RetrieveExceptionsLogPeriod())); - if (!string.IsNullOrEmpty(opType)) sql.Append("where CRUD = @0", opType); - sql.Append($"order by {po.Sort} {po.Order}"); + if (startTime.HasValue) sql.Where("LogTime >= @0", startTime.Value); + if (endTime.HasValue) sql.Where("LogTime < @0", endTime.Value.AddDays(1).AddSeconds(-1)); + if (startTime == null && endTime == null) sql.Where("LogTime > @0", DateTime.Today.AddMonths(0 - DictHelper.RetrieveExceptionsLogPeriod())); + if (!string.IsNullOrEmpty(opType)) sql.Where("CRUD = @0", opType); + sql.OrderBy($"{po.Sort} {po.Order}"); return DbManager.Create().Page(po.PageIndex, po.Limit, sql); } + /// + /// + /// + /// + /// + /// + /// + public virtual new IEnumerable RetrieveAll(DateTime? startTime, DateTime? endTime, string opType) + { + var sql = new Sql("select CRUD, UserName, LogTime, Ip, Browser, OS, City, RequestUrl, RequestData from Logs"); + if (startTime.HasValue) sql.Where("LogTime >= @0", startTime.Value); + if (endTime.HasValue) sql.Where("LogTime < @0", endTime.Value.AddDays(1).AddSeconds(-1)); + if (!string.IsNullOrEmpty(opType)) sql.Where("CRUD = @0", opType); + sql.OrderBy("LogTime"); + + return DbManager.Create().Fetch(sql); + } + /// /// 删除日志信息 /// diff --git a/Bootstrap.DataAccess/LoginUser.cs b/Bootstrap.DataAccess/LoginUser.cs index 3a9f3fcf..f049643f 100644 --- a/Bootstrap.DataAccess/LoginUser.cs +++ b/Bootstrap.DataAccess/LoginUser.cs @@ -90,6 +90,14 @@ namespace Bootstrap.DataAccess /// 获取所有登录数据 /// /// - public virtual IEnumerable Retrieves(DateTime? startTime, DateTime? endTime, string ip) => DbManager.Create().Fetch(); + public virtual IEnumerable RetrieveAll(DateTime? startTime, DateTime? endTime, string ip) + { + var sql = new Sql("select UserName, LoginTime, Ip, Browser, OS, City, Result from LoginLogs"); + if (startTime.HasValue) sql.Where("LoginTime >= @0", startTime.Value); + if (endTime.HasValue) sql.Where("LoginTime < @0", endTime.Value.AddDays(1)); + if (!string.IsNullOrEmpty(ip)) sql.Where("ip = @0", ip); + sql.OrderBy($"LoginTime"); + return DbManager.Create().Fetch(sql); + } } } diff --git a/Bootstrap.DataAccess/Trace.cs b/Bootstrap.DataAccess/Trace.cs index 1509718c..b7beb780 100644 --- a/Bootstrap.DataAccess/Trace.cs +++ b/Bootstrap.DataAccess/Trace.cs @@ -1,6 +1,7 @@ using Longbow.Web.Mvc; using PetaPoco; using System; +using System.Collections.Generic; namespace Bootstrap.DataAccess { @@ -75,7 +76,7 @@ namespace Bootstrap.DataAccess /// /// /// - public virtual Page Retrieves(PaginationOption po, DateTime? startTime, DateTime? endTime, string ip) + public virtual Page RetrievePages(PaginationOption po, DateTime? startTime, DateTime? endTime, string ip) { var sql = new Sql("select UserName, LogTime, IP, Browser, OS, City, RequestUrl from Traces"); if (startTime.HasValue) sql.Where("LogTime > @0", startTime.Value); @@ -87,6 +88,24 @@ namespace Bootstrap.DataAccess return DbManager.Create().Page(po.PageIndex, po.Limit, sql); } + /// + /// + /// + /// + /// + /// + /// + public virtual IEnumerable RetrieveAll(DateTime? startTime, DateTime? endTime, string ip) + { + var sql = new Sql("select UserName, LogTime, IP, Browser, OS, City, RequestUrl from Traces"); + if (startTime.HasValue) sql.Where("LogTime > @0", startTime.Value); + if (endTime.HasValue) sql.Where("LogTime < @0", endTime.Value.AddDays(1).AddSeconds(-1)); + if (!string.IsNullOrEmpty(ip)) sql.Where("IP = @0", ip); + sql.OrderBy("LogTime"); + + return DbManager.Create().Fetch(sql); + } + private static void ClearTraces() => System.Threading.Tasks.Task.Run(() => { DbManager.Create().Execute("delete from Traces where LogTime < @0", DateTime.Now.AddMonths(0 - DictHelper.RetrieveAccessLogPeriod())); diff --git a/DatabaseScripts/MongoDB/Navigations.js b/DatabaseScripts/MongoDB/Navigations.js index a45735c8..a900af2f 100644 --- a/DatabaseScripts/MongoDB/Navigations.js +++ b/DatabaseScripts/MongoDB/Navigations.js @@ -623,6 +623,18 @@ "IsResource": NumberInt(0), "Application": "0" }, + { + "_id": ObjectId("5bd7b8445fa31256f77e4b90"), + "ParentId": "0", + "Name": "网站分析", + "Order": NumberInt(145), + "Icon": "fa fa-line-chart", + "Url": "~/Admin/Analyse", + "Category": "0", + "Target": "_self", + "IsResource": NumberInt(0), + "Application": "0" + }, { "_id": ObjectId("5bd7b8445fa31256f77e4b9d"), "ParentId": "0", diff --git a/DatabaseScripts/MySQL/initData.sql b/DatabaseScripts/MySQL/initData.sql index 5470d25f..504831e1 100644 --- a/DatabaseScripts/MySQL/initData.sql +++ b/DatabaseScripts/MySQL/initData.sql @@ -98,6 +98,7 @@ INSERT INTO Navigations (ParentId, Name, `Order`, Icon, Url, Category) VALUES (@ INSERT INTO Navigations (ParentId, Name, `Order`, Icon, Url, Category) VALUES (@@identity - 1, '登录日志', 20, 'fa fa-user-circle-o', '~/Admin/Logins', '0'); INSERT INTO Navigations (ParentId, Name, `Order`, Icon, Url, Category) VALUES (@@identity - 2, '访问日志', 30, 'fa fa-bars', '~/Admin/Traces', '0'); INSERT INTO Navigations (ParentId, Name, `Order`, Icon, Url, Category) VALUES (0, '在线用户', 140, 'fa fa-users', '~/Admin/Online', '0'); +INSERT INTO Navigations (ParentId, Name, `Order`, Icon, Url, Category) VALUES (0, '网站分析', 145, 'fa fa-line-chart', '~/Admin/Analyse', '0'); INSERT INTO Navigations (ParentId, Name, `Order`, Icon, Url, Category) VALUES (0, '程序异常', 150, 'fa fa-cubes', '~/Admin/Exceptions', '0'); INSERT INTO Navigations (ParentId, Name, `Order`, Icon, Url, Category, IsResource) VALUES (@@identity, '服务器日志', 10, 'fa fa-fa', 'log', '0', 2); INSERT INTO Navigations (ParentId, Name, `Order`, Icon, Url, Category) VALUES (0, '工具集合', 160, 'fa fa-gavel', '#', '0'); diff --git a/DatabaseScripts/Postgresql/initData.sql b/DatabaseScripts/Postgresql/initData.sql index 1710ca71..38d5c381 100644 --- a/DatabaseScripts/Postgresql/initData.sql +++ b/DatabaseScripts/Postgresql/initData.sql @@ -98,6 +98,7 @@ INSERT INTO Navigations (ParentId, Name, "order", Icon, Url, Category) VALUES (c INSERT INTO Navigations (ParentId, Name, "order", Icon, Url, Category) VALUES (currval('navigations_id_seq') - 2, 0, '登录日志', 20, 'fa fa-user-circle-o', '~/Admin/Logins', '0'); INSERT INTO Navigations (ParentId, Name, "order", Icon, Url, Category) VALUES (currval('navigations_id_seq') - 3, 0, '访问日志', 30, 'fa fa-bars', '~/Admin/Traces', '0'); INSERT INTO Navigations (ParentId, Name, "order", Icon, Url, Category) VALUES (0, '在线用户', 140, 'fa fa-users', '~/Admin/Online', '0'); +INSERT INTO Navigations (ParentId, Name, "order", Icon, Url, Category) VALUES (0, '网站分析', 145, 'fa fa-line-chart', '~/Admin/Analyse', '0'); INSERT INTO Navigations (ParentId, Name, "order", Icon, Url, Category) VALUES (0, '程序异常', 150, 'fa fa-cubes', '~/Admin/Exceptions', '0'); INSERT INTO [Navigations] ([ParentId], [Name], [Order], [Icon], [Url], [Category], IsResource) VALUES (currval('navigations_id_seq') - 1, '服务器日志', 10, 'fa fa-fa', 'log', '0', 2); INSERT INTO Navigations (ParentId, Name, "order", Icon, Url, Category) VALUES (0, '工具集合', 160, 'fa fa-gavel', '#', '0'); diff --git a/DatabaseScripts/SQLite/InitData.sql b/DatabaseScripts/SQLite/InitData.sql index ffc678f9..987b3fd4 100644 --- a/DatabaseScripts/SQLite/InitData.sql +++ b/DatabaseScripts/SQLite/InitData.sql @@ -98,6 +98,7 @@ INSERT INTO [Navigations] ([ParentId], [Name], [Order], [Icon], [Url], [Category INSERT INTO [Navigations] ([ParentId], [Name], [Order], [Icon], [Url], [Category]) VALUES (last_insert_rowid() - 1, '登录日志', 20, 'fa fa-user-circle-o', '~/Admin/Logins', '0'); INSERT INTO [Navigations] ([ParentId], [Name], [Order], [Icon], [Url], [Category]) VALUES (last_insert_rowid() - 2, '访问日志', 30, 'fa fa-bars', '~/Admin/Traces', '0'); INSERT INTO [Navigations] ([ParentId], [Name], [Order], [Icon], [Url], [Category]) VALUES (0, '在线用户', 140, 'fa fa-users', '~/Admin/Online', '0'); +INSERT INTO [Navigations] ([ParentId], [Name], [Order], [Icon], [Url], [Category]) VALUES (0, '网站分析', 145, 'fa fa-line-chart', '~/Admin/Analyse', '0'); INSERT INTO [Navigations] ([ParentId], [Name], [Order], [Icon], [Url], [Category]) VALUES (0, '程序异常', 150, 'fa fa-cubes', '~/Admin/Exceptions', '0'); INSERT INTO [Navigations] ([ParentId], [Name], [Order], [Icon], [Url], [Category], IsResource) VALUES (last_insert_rowid(), '服务器日志', 10, 'fa fa-fa', 'log', '0', 2); INSERT INTO [Navigations] ([ParentId], [Name], [Order], [Icon], [Url], [Category]) VALUES (0, '工具集合', 160, 'fa fa-gavel', '#', '0'); diff --git a/DatabaseScripts/SqlServer/InitData.sql b/DatabaseScripts/SqlServer/InitData.sql index 64f4eb1b..9cc7e5a0 100644 --- a/DatabaseScripts/SqlServer/InitData.sql +++ b/DatabaseScripts/SqlServer/InitData.sql @@ -101,6 +101,7 @@ INSERT [Navigations] ([ParentId], [Name], [Order], [Icon], [Url], [Category]) VA INSERT [Navigations] ([ParentId], [Name], [Order], [Icon], [Url], [Category]) VALUES (@@Identity - 1, N'登录日志', 20, N'fa fa-user-circle-o', N'~/Admin/Logins', N'0') INSERT [Navigations] ([ParentId], [Name], [Order], [Icon], [Url], [Category]) VALUES (@@Identity - 2, N'访问日志', 30, N'fa fa-bars', N'~/Admin/Traces', N'0') INSERT [Navigations] ([ParentId], [Name], [Order], [Icon], [Url], [Category]) VALUES (0, N'在线用户', 140, N'fa fa-users', N'~/Admin/Online', N'0') +INSERT [Navigations] ([ParentId], [Name], [Order], [Icon], [Url], [Category]) VALUES (0, N'网站分析', 145, N'fa fa-line-chart', N'~/Admin/Analyse', N'0') INSERT [Navigations] ([ParentId], [Name], [Order], [Icon], [Url], [Category]) VALUES (0, N'程序异常', 150, N'fa fa-cubes', N'~/Admin/Exceptions', N'0') INSERT INTO [Navigations] ([ParentId], [Name], [Order], [Icon], [Url], [Category], IsResource) VALUES (@@Identity, N'服务器日志', 10, N'fa fa-fa', N'log', N'0', 2) INSERT [Navigations] ([ParentId], [Name], [Order], [Icon], [Url], [Category]) VALUES (0, N'工具集合', 160, N'fa fa-gavel', N'#', N'0') diff --git a/UnitTest/Bootstrap.Admin/Api/AnalyseTest.cs b/UnitTest/Bootstrap.Admin/Api/AnalyseTest.cs new file mode 100644 index 00000000..990edbc4 --- /dev/null +++ b/UnitTest/Bootstrap.Admin/Api/AnalyseTest.cs @@ -0,0 +1,22 @@ +using Xunit; +using static Bootstrap.Admin.Controllers.Api.AnalyseController; + +namespace Bootstrap.Admin.Api.SqlServer +{ + public class AnalyseTest : ControllerTest + { + public AnalyseTest(BAWebHost factory) : base(factory, "api/Analyse") { } + + [Fact] + public async void Get_Ok() + { + var cates = await Client.GetAsJsonAsync("?logType=LoginUsers"); + Assert.NotNull(cates); + cates = await Client.GetAsJsonAsync("?logType=log"); + Assert.NotNull(cates); + cates = await Client.GetAsJsonAsync("?logType=trace"); + Assert.NotNull(cates); + + } + } +} diff --git a/UnitTest/Bootstrap.Admin/Controllers/AdminTest.cs b/UnitTest/Bootstrap.Admin/Controllers/AdminTest.cs index c81685f2..109dc06e 100644 --- a/UnitTest/Bootstrap.Admin/Controllers/AdminTest.cs +++ b/UnitTest/Bootstrap.Admin/Controllers/AdminTest.cs @@ -27,6 +27,7 @@ namespace Bootstrap.Admin.Controllers.SqlServer [InlineData("Online", "在线用户")] [InlineData("Tasks", "任务管理")] [InlineData("Mobile", "客户端测试")] + [InlineData("Analyse", "网站分析")] public async void View_Ok(string view, string text) { var r = await Client.GetAsync(view); diff --git a/UnitTest/Bootstrap.DataAccess/LogsTest.cs b/UnitTest/Bootstrap.DataAccess/LogsTest.cs index e9df3d1c..a8ae1232 100644 --- a/UnitTest/Bootstrap.DataAccess/LogsTest.cs +++ b/UnitTest/Bootstrap.DataAccess/LogsTest.cs @@ -36,11 +36,12 @@ namespace Bootstrap.DataAccess.SqlServer RequestUrl = "~/Home/Index" }; LogHelper.Save(log); - Assert.NotNull(LogHelper.Retrieves(new PaginationOption() { Limit = 20, Sort = "LogTime", Order = "desc" }, null, null, null)); - Assert.NotNull(LogHelper.Retrieves(new PaginationOption() { Limit = 20, Sort = "CRUD", Order = "desc" }, null, null, null)); - Assert.NotNull(LogHelper.Retrieves(new PaginationOption() { Limit = 20, Sort = "UserName", Order = "desc" }, null, null, null)); - Assert.NotNull(LogHelper.Retrieves(new PaginationOption() { Limit = 20, Sort = "Ip", Order = "desc" }, null, null, null)); - Assert.NotNull(LogHelper.Retrieves(new PaginationOption() { Limit = 20, Sort = "RequestUrl", Order = "desc" }, null, null, null)); + Assert.NotNull(LogHelper.RetrievePages(new PaginationOption() { Limit = 20, Sort = "LogTime", Order = "desc" }, null, null, null)); + Assert.NotNull(LogHelper.RetrievePages(new PaginationOption() { Limit = 20, Sort = "CRUD", Order = "desc" }, null, null, null)); + Assert.NotNull(LogHelper.RetrievePages(new PaginationOption() { Limit = 20, Sort = "UserName", Order = "desc" }, null, null, null)); + Assert.NotNull(LogHelper.RetrievePages(new PaginationOption() { Limit = 20, Sort = "Ip", Order = "desc" }, null, null, null)); + Assert.NotNull(LogHelper.RetrievePages(new PaginationOption() { Limit = 20, Sort = "RequestUrl", Order = "desc" }, null, null, null)); + Assert.NotEmpty(LogHelper.RetrieveAll(null, null, null)); } } } diff --git a/UnitTest/Bootstrap.DataAccess/TracesTest.cs b/UnitTest/Bootstrap.DataAccess/TracesTest.cs index acad29df..765173c0 100644 --- a/UnitTest/Bootstrap.DataAccess/TracesTest.cs +++ b/UnitTest/Bootstrap.DataAccess/TracesTest.cs @@ -45,6 +45,7 @@ namespace Bootstrap.DataAccess.SqlServer Assert.NotEmpty(TraceHelper.Retrieves(new PaginationOption() { Limit = 20, Offset = 0, Order = "desc", Sort = "Browser" }, null, null, null).Items); Assert.NotEmpty(TraceHelper.Retrieves(new PaginationOption() { Limit = 20, Offset = 0, Order = "desc", Sort = "OS" }, null, null, null).Items); Assert.NotEmpty(TraceHelper.Retrieves(new PaginationOption() { Limit = 20, Offset = 0, Order = "desc", Sort = "RequestUrl" }, null, null, null).Items); + Assert.NotEmpty(TraceHelper.RetrieveAll(null, null, null)); } } } diff --git a/UnitTest/Bootstrap.DataAccess/UsersTest.cs b/UnitTest/Bootstrap.DataAccess/UsersTest.cs index 9045da87..69e2120c 100644 --- a/UnitTest/Bootstrap.DataAccess/UsersTest.cs +++ b/UnitTest/Bootstrap.DataAccess/UsersTest.cs @@ -175,7 +175,7 @@ namespace Bootstrap.DataAccess.SqlServer [Fact] public void RetrievePageLoginUsers_Ok() { - var data = LoginHelper.RetrievePages(new PaginationOption() { Limit = 20, Offset = 0 }, null, null, ""); + var data = LoginHelper.RetrievePages(new PaginationOption() { Limit = 20, Offset = 0, Order = "LoginTime" }, null, null, ""); Assert.NotNull(data.Items); } diff --git a/UnitTest/DB/UnitTest.db b/UnitTest/DB/UnitTest.db index 5ec3f040deabc2e58e7798bfa0e5cf11c697cfab..a911af79e8129402e8a1a5c06030bbf396475e6f 100644 GIT binary patch delta 106 zcmV-w0G0oM;01u-1&|v7aFHBC0dTQkq<;fK0uYl2fP(@85VH{wgaJW6LJI&0B?2ug z4;Kgz=e?2VtC{79hUT7-0Fh>4AZB4LY-w&~En{e5a&&$#L1b-dZZAP@VQhJGWiVfJ MWo%|Jvr&St?Q7yDMF0Q* delta 37 tcmZp8z}oPDb%Hcw{zMsP#{7*5OX`^&nF1%XH#Bb+6gbYfIk0K{TL1;#4r~Ab