! function(c) { var h, d; ! function() { function j(u, B) { if (!B) { return u } if (0 === u.indexOf(".")) { var v = B.split("/"), x = u.split("/"), q = v.length - 1, y = x.length, z = 0, A = 0; u: for (var w = 0; y > w; w++) { switch (x[w]) { case "..": if (!(q > z)) { break u } z++, A++; break; case ".": A++; break; default: break u } } return v.length = q - z, x = x.slice(A), v.concat(x).join("/") } return u } function l(o) { function a(n, q) { if ("string" == typeof n) { var t = e[n]; return t || (t = m(j(n, o)), e[n] = t), t } n instanceof Array && (q = q || function() {}, q.apply(this, i(n, q, o))) } var e = {}; return a } function i(q, u, e) { for (var v = [], r = p[e], o = 0, t = Math.min(q.length, u.length); t > o; o++) { var x, w = j(q[o], e); switch (w) { case "require": x = r && r.require || h; break; case "exports": x = r.exports; break; case "module": x = r; break; default: x = m(w) } v.push(x) } return v } function m(a) { var r = p[a]; if (!r) { throw new Error("No " + a) } if (!r.defined) { var o = r.factory, q = o.apply(this, i(r.deps || [], o, a)); "undefined" != typeof q && (r.exports = q), r.defined = 1 } return r.exports } var p = {}; d = function(a, o, n) { p[a] = { id: a, deps: o, factory: n, defined: 0, exports: {}, require: l(a) } }, h = l("") }(), d("echarts", ["echarts/echarts"], function(a) { return a }), d("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(q) { function C() { A.Dispatcher.call(this) } function v(a) { a.innerHTML = "", this._themeConfig = {}, this.dom = a, this._connected = !1, this._status = { dragIn: !1, dragOut: !1, needRefresh: !1 }, this._curEventType = !1, this._chartList = [], this._messageCenter = new C, this._messageCenterOutSide = new C, this.resize = this.resize(), this._init() } function y(m, K, F, G, l) { for (var H = m._chartList, I = H.length; I--;) { var J = H[I]; "function" == typeof J[K] && J[K](F, G, l) } } var j = q("./config"), z = q("zrender/tool/util"), A = q("zrender/tool/event"), B = {}, w = q("zrender/tool/env").canvasSupported, u = new Date - 0, x = {}, E = "_echarts_instance_"; B.version = "2.2.7", B.dependencies = { zrender: "2.1.1" }, B.init = function(m, i) { var e = q("zrender"); e.version.replace(".", "") - 0 < B.dependencies.zrender.replace(".", "") - 0 && console.error("ZRender " + e.version + " is too old for ECharts " + B.version + ". Current version need ZRender " + B.dependencies.zrender + "+"), m = m instanceof Array ? m[0] : m; var l = m.getAttribute(E); return l || (l = u++, m.setAttribute(E, l)), x[l] && x[l].dispose(), x[l] = new v(m), x[l].id = l, x[l].canvasSupported = w, x[l].setTheme(i), x[l] }, B.getInstanceById = function(a) { return x[a] }, z.merge(C.prototype, A.Dispatcher.prototype, !0); var D = q("zrender/config").EVENT, p = ["CLICK", "DBLCLICK", "MOUSEOVER", "MOUSEOUT", "DRAGSTART", "DRAGEND", "DRAGENTER", "DRAGOVER", "DRAGLEAVE", "DROP"]; return v.prototype = { _init: function() { var M = this, e = q("zrender").init(this.dom); this._zr = e, this._messageCenter.dispatch = function(m, o, r, l) { r = r || {}, r.type = m, r.event = o, M._messageCenter.dispatchWithContext(m, r, l), M._messageCenterOutSide.dispatchWithContext(m, r, l) }, this._onevent = function(i) { return M.__onevent(i) }; for (var H in j.EVENT) { "CLICK" != H && "DBLCLICK" != H && "HOVER" != H && "MOUSEOUT" != H && "MAP_ROAM" != H && this._messageCenter.bind(j.EVENT[H], this._onevent, this) } var I = {}; this._onzrevent = function(i) { return M[I[i.type]](i) }; for (var K = 0, L = p.length; L > K; K++) { var F = p[K], a = D[F]; I[a] = "_on" + F.toLowerCase(), e.on(a, this._onzrevent) } this.chart = {}, this.component = {}; var G = q("./chart/island"); this._island = new G(this._themeConfig, this._messageCenter, e, {}, this), this.chart.island = this._island; var N = q("./component/toolbox"); this._toolbox = new N(this._themeConfig, this._messageCenter, e, {}, this), this.component.toolbox = this._toolbox; var J = q("./component"); J.define("title", q("./component/title")), J.define("tooltip", q("./component/tooltip")), J.define("legend", q("./component/legend")), (0 === e.getWidth() || 0 === e.getHeight()) && console.error("Dom’s width & height should be ready before init.") }, __onevent: function(a) { a.__echartsId = a.__echartsId || this.id; var G = a.__echartsId === this.id; switch (this._curEventType || (this._curEventType = a.type), a.type) { case j.EVENT.LEGEND_SELECTED: this._onlegendSelected(a); break; case j.EVENT.DATA_ZOOM: if (!G) { var l = this.component.dataZoom; l && (l.silence(!0), l.absoluteZoom(a.zoom), l.silence(!1)) } this._ondataZoom(a); break; case j.EVENT.DATA_RANGE: G && this._ondataRange(a); break; case j.EVENT.MAGIC_TYPE_CHANGED: if (!G) { var m = this.component.toolbox; m && (m.silence(!0), m.setMagicType(a.magicType), m.silence(!1)) } this._onmagicTypeChanged(a); break; case j.EVENT.DATA_VIEW_CHANGED: G && this._ondataViewChanged(a); break; case j.EVENT.TOOLTIP_HOVER: G && this._tooltipHover(a); break; case j.EVENT.RESTORE: this._onrestore(); break; case j.EVENT.REFRESH: G && this._onrefresh(a); break; case j.EVENT.TOOLTIP_IN_GRID: case j.EVENT.TOOLTIP_OUT_GRID: if (G) { if (this._connected) { var s = this.component.grid; s && (a.x = (a.event.zrenderX - s.getX()) / s.getWidth(), a.y = (a.event.zrenderY - s.getY()) / s.getHeight()) } } else { var s = this.component.grid; s && this._zr.trigger("mousemove", { connectTrigger: !0, zrenderX: s.getX() + a.x * s.getWidth(), zrenderY: s.getY() + a.y * s.getHeight() }) } } if (this._connected && G && this._curEventType === a.type) { for (var F in this._connected) { this._connected[F].connectedEventHandler(a) } this._curEventType = null }(!G || !this._connected && G) && (this._curEventType = null) }, _onclick: function(a) { if (y(this, "onclick", a), a.target) { var i = this._eventPackage(a.target); i && null != i.seriesIndex && this._messageCenter.dispatch(j.EVENT.CLICK, a.event, i, this) } }, _ondblclick: function(a) { if (y(this, "ondblclick", a), a.target) { var i = this._eventPackage(a.target); i && null != i.seriesIndex && this._messageCenter.dispatch(j.EVENT.DBLCLICK, a.event, i, this) } }, _onmouseover: function(a) { if (a.target) { var i = this._eventPackage(a.target); i && null != i.seriesIndex && this._messageCenter.dispatch(j.EVENT.HOVER, a.event, i, this) } }, _onmouseout: function(a) { if (a.target) { var i = this._eventPackage(a.target); i && null != i.seriesIndex && this._messageCenter.dispatch(j.EVENT.MOUSEOUT, a.event, i, this) } }, _ondragstart: function(a) { this._status = { dragIn: !1, dragOut: !1, needRefresh: !1 }, y(this, "ondragstart", a) }, _ondragenter: function(a) { y(this, "ondragenter", a) }, _ondragover: function(a) { y(this, "ondragover", a) }, _ondragleave: function(a) { y(this, "ondragleave", a) }, _ondrop: function(a) { y(this, "ondrop", a, this._status), this._island.ondrop(a, this._status) }, _ondragend: function(a) { if (y(this, "ondragend", a, this._status), this._timeline && this._timeline.ondragend(a, this._status), this._island.ondragend(a, this._status), this._status.needRefresh) { this._syncBackupData(this._option); var i = this._messageCenter; i.dispatch(j.EVENT.DATA_CHANGED, a.event, this._eventPackage(a.target), this), i.dispatch(j.EVENT.REFRESH, null, null, this) } }, _onlegendSelected: function(a) { this._status.needRefresh = !1, y(this, "onlegendSelected", a, this._status), this._status.needRefresh && this._messageCenter.dispatch(j.EVENT.REFRESH, null, null, this) }, _ondataZoom: function(a) { this._status.needRefresh = !1, y(this, "ondataZoom", a, this._status), this._status.needRefresh && this._messageCenter.dispatch(j.EVENT.REFRESH, null, null, this) }, _ondataRange: function(a) { this._clearEffect(), this._status.needRefresh = !1, y(this, "ondataRange", a, this._status), this._status.needRefresh && this._zr.refreshNextFrame() }, _onmagicTypeChanged: function() { this._clearEffect(), this._render(this._toolbox.getMagicOption()) }, _ondataViewChanged: function(a) { this._syncBackupData(a.option), this._messageCenter.dispatch(j.EVENT.DATA_CHANGED, null, a, this), this._messageCenter.dispatch(j.EVENT.REFRESH, null, null, this) }, _tooltipHover: function(a) { var i = []; y(this, "ontooltipHover", a, i) }, _onrestore: function() { this.restore() }, _onrefresh: function(a) { this._refreshInside = !0, this.refresh(a), this._refreshInside = !1 }, _syncBackupData: function(a) { this.component.dataZoom && this.component.dataZoom.syncBackupData(a) }, _eventPackage: function(o) { if (o) { var l = q("./util/ecData"), m = l.get(o, "seriesIndex"), e = l.get(o, "dataIndex"); return e = -1 != m && this.component.dataZoom ? this.component.dataZoom.getRealDataIndex(m, e) : e, { seriesIndex: m, seriesName: (l.get(o, "series") || {}).name, dataIndex: e, data: l.get(o, "data"), name: l.get(o, "name"), value: l.get(o, "value"), special: l.get(o, "special") } } }, _noDataCheck: function(a) { for (var s = a.series, l = 0, m = s.length; m > l; l++) { if (s[l].type == j.CHART_TYPE_MAP || s[l].data && s[l].data.length > 0 || s[l].markPoint && s[l].markPoint.data && s[l].markPoint.data.length > 0 || s[l].markLine && s[l].markLine.data && s[l].markLine.data.length > 0 || s[l].nodes && s[l].nodes.length > 0 || s[l].links && s[l].links.length > 0 || s[l].matrix && s[l].matrix.length > 0 || s[l].eventList && s[l].eventList.length > 0) { return !1 } } var r = this._option && this._option.noDataLoadingOption || this._themeConfig.noDataLoadingOption || j.noDataLoadingOption || { text: this._option && this._option.noDataText || this._themeConfig.noDataText || j.noDataText, effect: this._option && this._option.noDataEffect || this._themeConfig.noDataEffect || j.noDataEffect }; return this.clear(), this.showLoading(r), !0 }, _render: function(O) { if (this._mergeGlobalConifg(O), !this._noDataCheck(O)) { var H = O.backgroundColor; if (H) { if (w || -1 == H.indexOf("rgba")) { this.dom.style.backgroundColor = H } else { var J = H.split(","); this.dom.style.filter = "alpha(opacity=" + 100 * J[3].substring(0, J[3].lastIndexOf(")")) + ")", J.length = 3, J[0] = J[0].replace("a", ""), this.dom.style.backgroundColor = J.join(",") + ")" } } this._zr.clearAnimation(), this._chartList = []; var K = q("./chart"), M = q("./component"); (O.xAxis || O.yAxis) && (O.grid = O.grid || {}, O.dataZoom = O.dataZoom || {}); for (var N, G, I, R = ["title", "legend", "tooltip", "dataRange", "roamController", "grid", "dataZoom", "xAxis", "yAxis", "polar"], Q = 0, l = R.length; l > Q; Q++) { G = R[Q], I = this.component[G], O[G] ? (I ? I.refresh && I.refresh(O) : (N = M.get(/^[xy]Axis$/.test(G) ? "axis" : G), I = new N(this._themeConfig, this._messageCenter, this._zr, O, this, G), this.component[G] = I), this._chartList.push(I)) : I && (I.dispose(), this.component[G] = null, delete this.component[G]) } for (var L, e, P, S = {}, Q = 0, l = O.series.length; l > Q; Q++) { e = O.series[Q].type, e ? S[e] || (S[e] = !0, L = K.get(e), L ? (this.chart[e] ? (P = this.chart[e], P.refresh(O)) : P = new L(this._themeConfig, this._messageCenter, this._zr, O, this), this._chartList.push(P), this.chart[e] = P) : console.error(e + " has not been required.")) : console.error("series[" + Q + "] chart type has not been defined.") } for (e in this.chart) { e == j.CHART_TYPE_ISLAND || S[e] || (this.chart[e].dispose(), this.chart[e] = null, delete this.chart[e]) } this.component.grid && this.component.grid.refixAxisShape(this.component), this._island.refresh(O), this._toolbox.refresh(O), O.animation && !O.renderAsImage ? this._zr.refresh() : this._zr.render(); var F = "IMG" + this.id, a = document.getElementById(F); O.renderAsImage && w ? (a ? a.src = this.getDataURL(O.renderAsImage) : (a = this.getImage(O.renderAsImage), a.id = F, a.style.position = "absolute", a.style.left = 0, a.style.top = 0, this.dom.firstChild.appendChild(a)), this.un(), this._zr.un(), this._disposeChartList(), this._zr.clear()) : a && a.parentNode.removeChild(a), a = null, this._option = O } }, restore: function() { this._clearEffect(), this._option = z.clone(this._optionRestore), this._disposeChartList(), this._island.clear(), this._toolbox.reset(this._option, !0), this._render(this._option) }, refresh: function(a) { this._clearEffect(), a = a || {}; var o = a.option; !this._refreshInside && o && (o = this.getOption(), z.merge(o, a.option, !0), z.merge(this._optionRestore, a.option, !0), this._toolbox.reset(o)), this._island.refresh(o), this._toolbox.refresh(o), this._zr.clearAnimation(); for (var l = 0, m = this._chartList.length; m > l; l++) { this._chartList[l].refresh && this._chartList[l].refresh(o) } this.component.grid && this.component.grid.refixAxisShape(this.component), this._zr.refresh() }, _disposeChartList: function() { this._clearEffect(), this._zr.clearAnimation(); for (var a = this._chartList.length; a--;) { var m = this._chartList[a]; if (m) { var l = m.type; this.chart[l] && delete this.chart[l], this.component[l] && delete this.component[l], m.dispose && m.dispose() } } this._chartList = [] }, _mergeGlobalConifg: function(s) { for (var a = ["backgroundColor", "calculable", "calculableColor", "calculableHolderColor", "nameConnector", "valueConnector", "animation", "animationThreshold", "animationDuration", "animationDurationUpdate", "animationEasing", "addDataAnimation", "symbolList", "DRAG_ENABLE_TIME"], e = a.length; e--;) { var l = a[e]; null == s[l] && (s[l] = null != this._themeConfig[l] ? this._themeConfig[l] : j[l]) } var m = s.color; m && m.length || (m = this._themeConfig.color || j.color), this._zr.getColor = function(o) { var n = q("zrender/tool/color"); return n.getColor(o, m) }, w || (s.animation = !1, s.addDataAnimation = !1) }, setOption: function(a, i) { return a.timeline ? this._setTimelineOption(a) : this._setOption(a, i) }, _setOption: function(a, m, l) { return !m && this._option ? this._option = z.merge(this.getOption(), z.clone(a), !0) : (this._option = z.clone(a), !l && this._timeline && this._timeline.dispose()), this._optionRestore = z.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 a(o) { var r = l._optionRestore[o]; if (r) { if (r instanceof Array) { for (var i = r.length; i--;) { m[o][i].data = z.clone(r[i].data) } } else { m[o].data = z.clone(r.data) } } } var m = z.clone(this._option), l = this; return a("xAxis"), a("yAxis"), a("series"), m }, setSeries: function(a, i) { return i ? (this._option.series = a, this.setOption(this._option, i)) : this.setOption({ series: a }), this }, getSeries: function() { return this.getOption().series }, _setTimelineOption: function(l) { this._timeline && this._timeline.dispose(); var a = q("./component/timeline"), e = new a(this._themeConfig, this._messageCenter, this._zr, l, this); return this._timeline = e, this.component.timeline = this._timeline, this }, addData: function(H, Z, M, R, T) { function Y() { if (ad._zr) { ad._zr.clearAnimation(); for (var i = 0, l = ah.length; l > i; i++) { ah[i].motionlessOnce = K.addDataAnimation && ah[i].addDataAnimation } ad._messageCenter.dispatch(j.EVENT.REFRESH, null, { option: K }, ad) } } for (var O = H instanceof Array ? H : [ [H, Z, M, R, T] ], K = this.getOption(), Q = this._optionRestore, ad = this, ab = 0, G = O.length; G > ab; ab++) { H = O[ab][0], Z = O[ab][1], M = O[ab][2], R = O[ab][3], T = O[ab][4]; var S = Q.series[H], F = M ? "unshift" : "push", aa = M ? "pop" : "shift"; if (S) { var ai = S.data, J = K.series[H].data; if (ai[F](Z), J[F](Z), R || (ai[aa](), Z = J[aa]()), null != T) { var o, I; if (S.type === j.CHART_TYPE_PIE && (o = Q.legend) && (I = o.data)) { var N = K.legend.data; if (I[F](T), N[F](T), !R) { var ag = z.indexOf(I, Z.name); - 1 != ag && I.splice(ag, 1), ag = z.indexOf(N, Z.name), -1 != ag && N.splice(ag, 1) } } else { if (null != Q.xAxis && null != Q.yAxis) { var a, P, af = S.xAxisIndex || 0; (null == Q.xAxis[af].type || "category" === Q.xAxis[af].type) && (a = Q.xAxis[af].data, P = K.xAxis[af].data, a[F](T), P[F](T), R || (a[aa](), P[aa]())), af = S.yAxisIndex || 0, "category" === Q.yAxis[af].type && (a = Q.yAxis[af].data, P = K.yAxis[af].data, a[F](T), P[F](T), R || (a[aa](), P[aa]())) } } } this._option.series[H].data = K.series[H].data } } this._zr.clearAnimation(); for (var ah = this._chartList, ac = 0, ae = function() { ac--, 0 === ac && Y() }, ab = 0, G = ah.length; G > ab; ab++) { K.addDataAnimation && ah[ab].addDataAnimation && (ac++, ah[ab].addDataAnimation(O, ae)) } return this.component.dataZoom && this.component.dataZoom.syncOption(K), this._option = K, K.addDataAnimation || setTimeout(Y, 0), this }, addMarkPoint: function(a, i) { return this._addMark(a, i, "markPoint") }, addMarkLine: function(a, i) { return this._addMark(a, i, "markLine") }, _addMark: function(F, N, H) { var K, o = this._option.series; if (o && (K = o[F])) { var L = this._optionRestore.series, M = L[F], I = K[H], G = M[H]; I = K[H] = I || { data: [] }, G = M[H] = G || { data: [] }; for (var J in N) { "data" === J ? (I.data = I.data.concat(N.data), G.data = G.data.concat(N.data)) : "object" != typeof N[J] || null == I[J] ? I[J] = G[J] = N[J] : (z.merge(I[J], N[J], !0), z.merge(G[J], N[J], !0)) } var O = this.chart[K.type]; O && O.addMark(F, N, H) } return this }, delMarkPoint: function(a, i) { return this._delMark(a, i, "markPoint") }, delMarkLine: function(a, i) { return this._delMark(a, i, "markLine") }, _delMark: function(G, P, I) { var L, F, M, N = this._option.series; if (!(N && (L = N[G]) && (F = L[I]) && (M = F.data))) { return this } P = P.split(" > "); for (var O = -1, J = 0, H = M.length; H > J; J++) { var K = M[J]; if (K instanceof Array) { if (K[0].name === P[0] && K[1].name === P[1]) { O = J; break } } else { if (K.name === P[0]) { O = J; break } } } if (O > -1) { M.splice(O, 1), this._optionRestore.series[G][I].data.splice(O, 1); var Q = this.chart[L.type]; Q && Q.delMark(G, P.join(" > "), I) } return this }, getDom: function() { return this.dom }, getZrender: function() { return this._zr }, getDataURL: function(m) { if (!w) { return "" } if (0 === this._chartList.length) { var s = "IMG" + this.id, o = document.getElementById(s); if (o) { return o.src } } var r = this.component.tooltip; switch (r && r.hideTip(), m) { case "jpeg": break; default: m = "png" } var l = this._option.backgroundColor; return l && "rgba(0,0,0,0)" === l.replace(" ", "") && (l = "#fff"), this._zr.toDataURL("image/" + m, l) }, getImage: function(a) { var m = this._optionRestore.title, l = document.createElement("img"); return l.src = this.getDataURL(a), l.title = m && m.text || "ECharts", l }, getConnectedDataURL: function(O) { if (!this.isConnected()) { return this.getDataURL(O) } var H = this.dom, K = { self: { img: this.getDataURL(O), left: H.offsetLeft, top: H.offsetTop, right: H.offsetLeft + H.offsetWidth, bottom: H.offsetTop + H.offsetHeight } }, e = K.self.left, L = K.self.top, M = K.self.right, N = K.self.bottom; for (var I in this._connected) { H = this._connected[I].getDom(), K[I] = { img: this._connected[I].getDataURL(O), left: H.offsetLeft, top: H.offsetTop, right: H.offsetLeft + H.offsetWidth, bottom: H.offsetTop + H.offsetHeight }, e = Math.min(e, K[I].left), L = Math.min(L, K[I].top), M = Math.max(M, K[I].right), N = Math.max(N, K[I].bottom) } var G = document.createElement("div"); G.style.position = "absolute", G.style.left = "-4000px", G.style.width = M - e + "px", G.style.height = N - L + "px", document.body.appendChild(G); var J = q("zrender").init(G), Q = q("zrender/shape/Image"); for (var I in K) { J.addShape(new Q({ style: { x: K[I].left - e, y: K[I].top - L, image: K[I].img } })) } J.render(); var P = this._option.backgroundColor; P && "rgba(0,0,0,0)" === P.replace(/ /g, "") && (P = "#fff"); var F = J.toDataURL("image/png", P); return setTimeout(function() { J.dispose(), G.parentNode.removeChild(G), G = null }, 100), F }, getConnectedImage: function(a) { var m = this._optionRestore.title, l = document.createElement("img"); return l.src = this.getConnectedDataURL(a), l.title = m && m.text || "ECharts", l }, on: function(a, i) { return this._messageCenterOutSide.bind(a, i, this), this }, un: function(a, i) { return this._messageCenterOutSide.unbind(a, i), this }, connect: function(a) { if (!a) { return this } if (this._connected || (this._connected = {}), a instanceof Array) { for (var m = 0, l = a.length; l > m; m++) { this._connected[a[m].id] = a[m] } } else { this._connected[a.id] = a } return this }, disConnect: function(a) { if (!a || !this._connected) { return this } if (a instanceof Array) { for (var o = 0, l = a.length; l > o; o++) { delete this._connected[a[o].id] } } else { delete this._connected[a.id] } for (var m in this._connected) { return this } return this._connected = !1, this }, connectedEventHandler: function(a) { a.__echartsId != this.id && this._onevent(a) }, isConnected: function() { return !!this._connected }, showLoading: function(o) { var a = { bar: q("zrender/loadingEffect/Bar"), bubble: q("zrender/loadingEffect/Bubble"), dynamicLine: q("zrender/loadingEffect/DynamicLine"), ring: q("zrender/loadingEffect/Ring"), spin: q("zrender/loadingEffect/Spin"), whirling: q("zrender/loadingEffect/Whirling") }; this._toolbox.hideDataView(), o = o || {}; var e = o.textStyle || {}; o.textStyle = e; var l = z.merge(z.merge(z.clone(e), this._themeConfig.textStyle), j.textStyle); e.textFont = l.fontStyle + " " + l.fontWeight + " " + l.fontSize + "px " + l.fontFamily, e.text = o.text || this._option && this._option.loadingText || this._themeConfig.loadingText || j.loadingText, null != o.x && (e.x = o.x), null != o.y && (e.y = o.y), o.effectOption = o.effectOption || {}, o.effectOption.textStyle = e; var m = o.effect; return ("string" == typeof m || null == m) && (m = a[o.effect || this._option && this._option.loadingEffect || this._themeConfig.loadingEffect || j.loadingEffect] || a.spin), this._zr.showLoading(new m(o.effectOption)), this }, hideLoading: function() { return this._zr.hideLoading(), this }, setTheme: function(e) { if (e) { if ("string" == typeof e) { switch (e) { case "macarons": e = q("./theme/macarons"); break; case "infographic": e = q("./theme/infographic"); break; default: e = {} } } else { e = e || {} } this._themeConfig = e } if (!w) { var a = this._themeConfig.textStyle; a && a.fontFamily && a.fontFamily2 && (a.fontFamily = a.fontFamily2), a = j.textStyle, a.fontFamily = a.fontFamily2 } this._timeline && this._timeline.setTheme(!0), this._optionRestore && this.restore() }, resize: function() { var a = this; return function() { if (a._clearEffect(), a._zr.resize(), a._option && a._option.renderAsImage && w) { return a._render(a._option), a } a._zr.clearAnimation(), a._island.resize(), a._toolbox.resize(), a._timeline && a._timeline.resize(); for (var l = 0, e = a._chartList.length; e > l; l++) { a._chartList[l].resize && a._chartList[l].resize() } return a.component.grid && a.component.grid.refixAxisShape(a.component), a._zr.refresh(), a._messageCenter.dispatch(j.EVENT.RESIZE, null, null, a), a } }, _clearEffect: function() { this._zr.modLayer(j.EFFECT_ZLEVEL, { motionBlur: !1 }), this._zr.painter.clearLayer(j.EFFECT_ZLEVEL) }, clear: function() { return this._disposeChartList(), this._zr.clear(), this._option = {}, this._optionRestore = {}, this.dom.style.backgroundColor = null, this }, dispose: function() { var a = this.dom.getAttribute(E); a && delete x[a], this._island.dispose(), this._toolbox.dispose(), this._timeline && this._timeline.dispose(), this._messageCenter.unbind(), this.clear(), this._zr.dispose(), this._zr = null } }, B }), d("echarts/config", [], function() { var a = { 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: 0.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: 0.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: 2000, animationDuration: 2000, animationDurationUpdate: 500, animationEasing: "ExponentialOut" }; return a }), d("zrender/tool/util", ["require", "../dep/excanvas"], function(w) { function I(a) { return a && 1 === a.nodeType && "string" == typeof a.nodeName } function A(l) { if ("object" == typeof l && null !== l) { var m = l; if (l instanceof Array) { m = []; for (var i = 0, p = l.length; p > i; i++) { m[i] = A(l[i]) } } else { if (!M[x.call(l)] && !I(l)) { m = {}; for (var s in l) { l.hasOwnProperty(s) && (m[s] = A(l[s])) } } } return m } return l } function D(a, l, m, p) { if (l.hasOwnProperty(m)) { var s = a[m]; "object" != typeof s || M[x.call(s)] || I(s) ? !p && m in a || (a[m] = l[m]) : j(a[m], l[m], p) } } function j(m, o, n) { for (var l in o) { D(m, o, l, n) } return m } function E() { if (!K) { if (w("../dep/excanvas"), window.G_vmlCanvasManager) { var a = document.createElement("div"); a.style.position = "absolute", a.style.top = "-1000px", document.body.appendChild(a), K = G_vmlCanvasManager.initElement(a).getContext("2d") } else { K = document.createElement("canvas").getContext("2d") } } return K } function G(a, o) { if (a.indexOf) { return a.indexOf(o) } for (var l = 0, m = a.length; m > l; l++) { if (a[l] === o) { return l } } return -1 } function H(m, r) { function o() {} var p = m.prototype; o.prototype = r.prototype, m.prototype = new o; for (var l in p) { m.prototype[l] = p[l] } m.constructor = m } function B(m, u, p) { if (m && u) { if (m.forEach && m.forEach === F) { m.forEach(u, p) } else { if (m.length === +m.length) { for (var r = 0, l = m.length; l > r; r++) { u.call(p, m[r], r, m) } } else { for (var s in m) { m.hasOwnProperty(s) && u.call(p, m[s], s, m) } } } } } function z(m, u, p) { if (m && u) { if (m.map && m.map === q) { return m.map(u, p) } for (var r = [], l = 0, s = m.length; s > l; l++) { r.push(u.call(p, m[l], l, m)) } return r } } function C(m, u, p) { if (m && u) { if (m.filter && m.filter === J) { return m.filter(u, p) } for (var r = [], l = 0, s = m.length; s > l; l++) { u.call(p, m[l], l, m) && r.push(m[l]) } return r } } function L(a, i) { return function() { a.apply(i, arguments) } } var K, v = Array.prototype, F = v.forEach, q = v.map, J = v.filter, M = { "[object Function]": 1, "[object RegExp]": 1, "[object Date]": 1, "[object Error]": 1, "[object CanvasGradient]": 1 }, x = Object.prototype.toString; return { inherits: H, clone: A, merge: j, getContext: E, indexOf: G, each: B, map: z, filter: C, bind: L } }), d("zrender/tool/event", ["require", "../mixin/Eventful"], function(l) { function r(a) { return "undefined" != typeof a.zrenderX && a.zrenderX || "undefined" != typeof a.offsetX && a.offsetX || "undefined" != typeof a.layerX && a.layerX || "undefined" != typeof a.clientX && a.clientX } function m(a) { return "undefined" != typeof a.zrenderY && a.zrenderY || "undefined" != typeof a.offsetY && a.offsetY || "undefined" != typeof a.layerY && a.layerY || "undefined" != typeof a.clientY && a.clientY } function p(a) { return "undefined" != typeof a.zrenderDelta && a.zrenderDelta || "undefined" != typeof a.wheelDelta && a.wheelDelta || "undefined" != typeof a.detail && -a.detail } var j = l("../mixin/Eventful"), q = "function" == typeof window.addEventListener ? function(a) { a.preventDefault(), a.stopPropagation(), a.cancelBubble = !0 } : function(a) { a.returnValue = !1, a.cancelBubble = !0 }; return { getX: r, getY: m, getDelta: p, stop: q, Dispatcher: j } }), d("zrender/tool/env", [], function() { function a(x) { var K = this.os = {}, C = this.browser = {}, F = x.match(/Web[kK]it[\/]{0,1}([\d.]+)/), j = x.match(/(Android);?[\s\/]+([\d.]+)?/), G = x.match(/(iPad).*OS\s([\d_]+)/), I = x.match(/(iPod)(.*OS\s([\d_]+))?/), J = !G && x.match(/(iPhone\sOS)\s([\d_]+)/), D = x.match(/(webOS|hpwOS)[\s\/]([\d.]+)/), B = D && x.match(/TouchPad/), E = x.match(/Kindle\/([\d.]+)/), N = x.match(/Silk\/([\d._]+)/), M = x.match(/(BlackBerry).*Version\/([\d.]+)/), w = x.match(/(BB10).*Version\/([\d.]+)/), H = x.match(/(RIM\sTablet\sOS)\s([\d.]+)/), v = x.match(/PlayBook/), L = x.match(/Chrome\/([\d.]+)/) || x.match(/CriOS\/([\d.]+)/), O = x.match(/Firefox\/([\d.]+)/), A = x.match(/MSIE ([\d.]+)/), q = F && x.match(/Mobile\//) && !L, z = x.match(/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/) && !L, A = x.match(/MSIE\s([\d.]+)/); return (C.webkit = !!F) && (C.version = F[1]), j && (K.android = !0, K.version = j[2]), J && !I && (K.ios = K.iphone = !0, K.version = J[2].replace(/_/g, ".")), G && (K.ios = K.ipad = !0, K.version = G[2].replace(/_/g, ".")), I && (K.ios = K.ipod = !0, K.version = I[3] ? I[3].replace(/_/g, ".") : null), D && (K.webos = !0, K.version = D[2]), B && (K.touchpad = !0), M && (K.blackberry = !0, K.version = M[2]), w && (K.bb10 = !0, K.version = w[2]), H && (K.rimtabletos = !0, K.version = H[2]), v && (C.playbook = !0), E && (K.kindle = !0, K.version = E[1]), N && (C.silk = !0, C.version = N[1]), !N && K.android && x.match(/Kindle Fire/) && (C.silk = !0), L && (C.chrome = !0, C.version = L[1]), O && (C.firefox = !0, C.version = O[1]), A && (C.ie = !0, C.version = A[1]), q && (x.match(/Safari/) || K.ios) && (C.safari = !0), z && (C.webview = !0), A && (C.ie = !0, C.version = A[1]), K.tablet = !!(G || v || j && !x.match(/Mobile/) || O && x.match(/Tablet/) || A && !x.match(/Phone/) && x.match(/Touch/)), K.phone = !(K.tablet || K.ipod || !(j || J || D || M || w || L && x.match(/Android/) || L && x.match(/CriOS\/([\d.]+)/) || O && x.match(/Mobile/) || A && x.match(/Touch/))), { browser: C, os: K, canvasSupported: document.createElement("canvas").getContext ? !0 : !1 } } return a(navigator.userAgent) }), d("zrender", ["zrender/zrender"], function(a) { return a }), d("zrender/zrender", ["require", "./dep/excanvas", "./tool/util", "./tool/log", "./tool/guid", "./Handler", "./Painter", "./Storage", "./animation/Animation", "./tool/env"], function(p) { function B(a) { return function() { a._needsRefreshNextFrame && a.refresh() } } p("./dep/excanvas"); var u = p("./tool/util"), x = p("./tool/log"), j = p("./tool/guid"), y = p("./Handler"), z = p("./Painter"), A = p("./Storage"), v = p("./animation/Animation"), q = {}, w = {}; w.version = "2.1.1", w.init = function(a) { var i = new C(j(), a); return q[i.id] = i, i }, w.dispose = function(a) { if (a) { a.dispose() } else { for (var i in q) { q[i].dispose() } q = {} } return w }, w.getInstance = function(a) { return q[a] }, w.delInstance = function(a) { return delete q[a], w }; var C = function(o, s) { this.id = o, this.env = p("./tool/env"), this.storage = new A, this.painter = new z(s, this.storage), this.handler = new y(s, this.storage, this.painter), this.animation = new v({ stage: { update: B(this) } }), this.animation.start(); var e = this; this.painter.refreshNextFrame = function() { e.refreshNextFrame() }, this._needsRefreshNextFrame = !1; var e = this, l = this.storage, r = l.delFromMap; l.delFromMap = function(a) { var i = l.get(a); e.stopAnimation(i), r.call(l, a) } }; return C.prototype.getId = function() { return this.id }, C.prototype.addShape = function(a) { return this.addElement(a), this }, C.prototype.addGroup = function(a) { return this.addElement(a), this }, C.prototype.delShape = function(a) { return this.delElement(a), this }, C.prototype.delGroup = function(a) { return this.delElement(a), this }, C.prototype.modShape = function(a, i) { return this.modElement(a, i), this }, C.prototype.modGroup = function(a, i) { return this.modElement(a, i), this }, C.prototype.addElement = function(a) { return this.storage.addRoot(a), this._needsRefreshNextFrame = !0, this }, C.prototype.delElement = function(a) { return this.storage.delRoot(a), this._needsRefreshNextFrame = !0, this }, C.prototype.modElement = function(a, i) { return this.storage.mod(a, i), this._needsRefreshNextFrame = !0, this }, C.prototype.modLayer = function(a, i) { return this.painter.modLayer(a, i), this._needsRefreshNextFrame = !0, this }, C.prototype.addHoverShape = function(a) { return this.storage.addHover(a), this }, C.prototype.render = function(a) { return this.painter.render(a), this._needsRefreshNextFrame = !1, this }, C.prototype.refresh = function(a) { return this.painter.refresh(a), this._needsRefreshNextFrame = !1, this }, C.prototype.refreshNextFrame = function() { return this._needsRefreshNextFrame = !0, this }, C.prototype.refreshHover = function(a) { return this.painter.refreshHover(a), this }, C.prototype.refreshShapes = function(a, i) { return this.painter.refreshShapes(a, i), this }, C.prototype.resize = function() { return this.painter.resize(), this }, C.prototype.animate = function(n, J, i) { var G = this; if ("string" == typeof n && (n = this.storage.get(n)), n) { var H; if (J) { for (var I = J.split("."), E = n, D = 0, F = I.length; F > D; D++) { E && (E = E[I[D]]) } E && (H = E) } else { H = n } if (!H) { return void x('Property "' + J + '" is not existed in element ' + n.id) } null == n.__animators && (n.__animators = []); var L = n.__animators, K = this.animation.animate(H, { loop: i }).during(function() { G.modShape(n) }).done(function() { var a = u.indexOf(n.__animators, K); a >= 0 && L.splice(a, 1) }); return L.push(K), K } x("Element not existed") }, C.prototype.stopAnimation = function(a) { if (a.__animators) { for (var o = a.__animators, l = o.length, m = 0; l > m; m++) { o[m].stop() } o.length = 0 } return this }, C.prototype.clearAnimation = function() { return this.animation.clear(), this }, C.prototype.showLoading = function(a) { return this.painter.showLoading(a), this }, C.prototype.hideLoading = function() { return this.painter.hideLoading(), this }, C.prototype.getWidth = function() { return this.painter.getWidth() }, C.prototype.getHeight = function() { return this.painter.getHeight() }, C.prototype.toDataURL = function(a, m, l) { return this.painter.toDataURL(a, m, l) }, C.prototype.shapeToImage = function(a, o, l) { var m = j(); return this.painter.shapeToImage(m, a, o, l) }, C.prototype.on = function(a, m, l) { return this.handler.on(a, m, l), this }, C.prototype.un = function(a, i) { return this.handler.un(a, i), this }, C.prototype.trigger = function(a, i) { return this.handler.trigger(a, i), this }, C.prototype.clear = function() { return this.storage.delRoot(), this.painter.clear(), this }, C.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, w.delInstance(this.id) }, w }), d("zrender/config", [], function() { var a = { 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 a }), d("echarts/chart/island", ["require", "./base", "zrender/shape/Circle", "../config", "../util/ecData", "zrender/tool/util", "zrender/tool/event", "zrender/tool/color", "../util/accMath", "../chart"], function(l) { function w(o, z, x, i, y) { m.call(this, o, z, x, i, y), this._nameConnector, this._valueConnector, this._zrHeight = this.zr.getHeight(), this._zrWidth = this.zr.getWidth(); var s = this; s.shapeHandler.onmousewheel = function(B) { var G = B.target, D = B.event, E = v.getDelta(D); E = E > 0 ? -1 : 1, G.style.r -= E, G.style.r = G.style.r < 5 ? 5 : G.style.r; var A = q.get(G, "value"), F = A * s.option.island.calculateStep; A = F > 1 ? Math.round(A - F * E) : +(A - F * E).toFixed(2); var C = q.get(G, "name"); G.style.text = C + ":" + A, q.set(G, "value", A), q.set(G, "name", C), s.zr.modShape(G.id), s.zr.refreshNextFrame(), v.stop(D) } } var m = l("./base"), p = l("zrender/shape/Circle"), j = l("../config"); j.island = { zlevel: 0, z: 5, r: 15, calculateStep: 0.1 }; var q = l("../util/ecData"), u = l("zrender/tool/util"), v = l("zrender/tool/event"); return w.prototype = { type: j.CHART_TYPE_ISLAND, _combine: function(A, o) { var x = l("zrender/tool/color"), e = l("../util/accMath"), y = e.accAdd(q.get(A, "value"), q.get(o, "value")), z = q.get(A, "name") + this._nameConnector + q.get(o, "name"); A.style.text = z + this._valueConnector + y, q.set(A, "value", y), q.set(A, "name", z), A.style.r = this.option.island.r, A.style.color = x.mix(A.style.color, o.style.color) }, refresh: function(a) { a && (a.island = this.reformOption(a.island), this.option = a, this._nameConnector = this.option.nameConnector, this._valueConnector = this.option.valueConnector) }, getOption: function() { return this.option }, resize: function() { var s = this.zr.getWidth(), A = this.zr.getHeight(), x = s / (this._zrWidth || s), y = A / (this._zrHeight || A); if (1 !== x || 1 !== y) { this._zrWidth = s, this._zrHeight = A; for (var r = 0, z = this.shapeList.length; z > r; r++) { this.zr.modShape(this.shapeList[r].id, { style: { x: Math.round(this.shapeList[r].style.x * x), y: Math.round(this.shapeList[r].style.y * y) } }) } } }, add: function(o) { var B = q.get(o, "name"), x = q.get(o, "value"), n = null != q.get(o, "series") ? q.get(o, "series").name : "", z = this.getFont(this.option.island.textStyle), A = this.option.island, y = { zlevel: A.zlevel, z: A.z, style: { x: o.style.x, y: o.style.y, r: this.option.island.r, color: o.style.color || o.style.strokeColor, text: B + this._valueConnector + x, textFont: z }, draggable: !0, hoverable: !0, onmousewheel: this.shapeHandler.onmousewheel, _type: "island" }; "#fff" === y.style.color && (y.style.color = o.style.strokeColor), this.setCalculable(y), y.dragEnableTime = 0, q.pack(y, { name: n }, -1, x, -1, B), y = new p(y), this.shapeList.push(y), this.zr.addShape(y) }, del: function(a) { this.zr.delShape(a.id); for (var s = [], o = 0, r = this.shapeList.length; r > o; o++) { this.shapeList[o].id != a.id && s.push(this.shapeList[o]) } this.shapeList = s }, ondrop: function(a, s) { if (this.isDrop && a.target) { var o = a.target, r = a.dragged; this._combine(o, r), this.zr.modShape(o.id), s.dragIn = !0, this.isDrop = !1 } }, ondragend: function(a, o) { var n = a.target; this.isDragend ? o.dragIn && (this.del(n), o.needRefresh = !0) : o.dragIn || (n.style.x = v.getX(a.event), n.style.y = v.getY(a.event), this.add(n), o.needRefresh = !0), this.isDragend = !1 } }, u.inherits(w, m), l("../chart").define("island", w), w }), d("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(p) { function B(l, F, m, i, s) { u.call(this, l, F, m, i, s), this.dom = s.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 E = this; E._onMark = function(a) { E.__onMark(a) }, E._onMarkUndo = function(a) { E.__onMarkUndo(a) }, E._onMarkClear = function(a) { E.__onMarkClear(a) }, E._onDataZoom = function(a) { E.__onDataZoom(a) }, E._onDataZoomReset = function(a) { E.__onDataZoomReset(a) }, E._onDataView = function(a) { E.__onDataView(a) }, E._onRestore = function(a) { E.__onRestore(a) }, E._onSaveAsImage = function(a) { E.__onSaveAsImage(a) }, E._onMagicType = function(a) { E.__onMagicType(a) }, E._onCustomHandler = function(a) { E.__onCustomHandler(a) }, E._onmousemove = function(a) { return E.__onmousemove(a) }, E._onmousedown = function(a) { return E.__onmousedown(a) }, E._onmouseup = function(a) { return E.__onmouseup(a) }, E._onclick = function(a) { return E.__onclick(a) } } var u = p("./base"), x = p("zrender/shape/Line"), j = p("zrender/shape/Image"), y = p("zrender/shape/Rectangle"), z = p("../util/shape/Icon"), A = p("../config"); A.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 v = p("zrender/tool/util"), q = p("zrender/config"), w = p("zrender/tool/event"), D = "stack", C = "tiled"; return B.prototype = { type: A.COMPONENT_TYPE_TOOLBOX, _buildShape: function() { this._iconList = []; var m = this.option.toolbox; this._enableColor = m.effectiveColor, this._disableColor = m.disableColor; var H = m.feature, s = []; for (var E in H) { if (H[E].show) { switch (E) { case "mark": s.push({ key: E, name: "mark" }), s.push({ key: E, name: "markUndo" }), s.push({ key: E, name: "markClear" }); break; case "magicType": for (var l = 0, F = H[E].type.length; F > l; l++) { H[E].title[H[E].type[l] + "Chart"] = H[E].title[H[E].type[l]], H[E].option && (H[E].option[H[E].type[l] + "Chart"] = H[E].option[H[E].type[l]]), s.push({ key: E, name: H[E].type[l] + "Chart" }) } break; case "dataZoom": s.push({ key: E, name: "dataZoom" }), s.push({ key: E, name: "dataZoomReset" }); break; case "saveAsImage": this.canvasSupported && s.push({ key: E, name: "saveAsImage" }); break; default: s.push({ key: E, name: E }) } } } if (s.length > 0) { for (var G, E, l = 0, F = s.length; F > l; l++) { G = s[l].name, E = s[l].key, this._iconList.push(G), this._featureTitle[G] = H[E].title[G] || H[E].title, H[E].icon && (this._featureIcon[G] = H[E].icon[G] || H[E].icon), H[E].color && (this._featureColor[G] = H[E].color[G] || H[E].color), H[E].option && (this._featureOption[G] = H[E].option[G] || H[E].option) } this._itemGroupLocation = this._getItemGroupLocation(), this._buildBackground(), this._buildItem(); for (var l = 0, F = this.shapeList.length; F > l; l++) { this.zr.addShape(this.shapeList[l]) } 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 L, E, H, I, K = this.option.toolbox, F = this._iconList.length, r = this._itemGroupLocation.x, G = this._itemGroupLocation.y, O = K.itemSize, N = K.itemGap, e = K.color instanceof Array ? K.color : [K.color], J = this.getFont(K.textStyle); "horizontal" === K.orient ? (E = this._itemGroupLocation.y / this.zr.getHeight() < 0.5 ? "bottom" : "top", H = this._itemGroupLocation.x / this.zr.getWidth() < 0.5 ? "left" : "right", I = this._itemGroupLocation.y / this.zr.getHeight() < 0.5 ? "top" : "bottom") : E = this._itemGroupLocation.x / this.zr.getWidth() < 0.5 ? "right" : "left", this._iconShapeMap = {}; for (var a = this, M = 0; F > M; M++) { switch (L = { type: "icon", zlevel: this.getZlevelBase(), z: this.getZBase(), style: { x: r, y: G, width: O, height: O, iconType: this._iconList[M], lineWidth: 1, strokeColor: this._featureColor[this._iconList[M]] || e[M % e.length], brushType: "stroke" }, highlightStyle: { lineWidth: 1, text: K.showTitle ? this._featureTitle[this._iconList[M]] : void 0, textFont: J, textPosition: E, strokeColor: this._featureColor[this._iconList[M]] || e[M % e.length] }, hoverable: !0, clickable: !0 }, this._featureIcon[this._iconList[M]] && (L.style.image = this._featureIcon[this._iconList[M]].replace(new RegExp("^image:\\/\\/"), ""), L.style.opacity = 0.8, L.highlightStyle.opacity = 1, L.type = "image"), "horizontal" === K.orient && (0 === M && "left" === H && (L.highlightStyle.textPosition = "specific", L.highlightStyle.textAlign = H, L.highlightStyle.textBaseline = I, L.highlightStyle.textX = r, L.highlightStyle.textY = "top" === I ? G + O + 10 : G - 10), M === F - 1 && "right" === H && (L.highlightStyle.textPosition = "specific", L.highlightStyle.textAlign = H, L.highlightStyle.textBaseline = I, L.highlightStyle.textX = r + O, L.highlightStyle.textY = "top" === I ? G + O + 10 : G - 10)), this._iconList[M]) { case "mark": L.onclick = a._onMark; break; case "markUndo": L.onclick = a._onMarkUndo; break; case "markClear": L.onclick = a._onMarkClear; break; case "dataZoom": L.onclick = a._onDataZoom; break; case "dataZoomReset": L.onclick = a._onDataZoomReset; break; case "dataView": if (!this._dataView) { var P = p("./dataView"); this._dataView = new P(this.ecTheme, this.messageCenter, this.zr, this.option, this.myChart) } L.onclick = a._onDataView; break; case "restore": L.onclick = a._onRestore; break; case "saveAsImage": L.onclick = a._onSaveAsImage; break; default: this._iconList[M].match("Chart") ? (L._name = this._iconList[M].replace("Chart", ""), L.onclick = a._onMagicType) : L.onclick = a._onCustomHandler } "icon" === L.type ? L = new z(L) : "image" === L.type && (L = new j(L)), this.shapeList.push(L), this._iconShapeMap[this._iconList[M]] = L, "horizontal" === K.orient ? r += O + N : G += O + N } }, _buildBackground: function() { var a = this.option.toolbox, i = this.reformCssArray(this.option.toolbox.padding); this.shapeList.push(new y({ zlevel: this.getZlevelBase(), z: this.getZBase(), hoverable: !1, style: { x: this._itemGroupLocation.x - i[3], y: this._itemGroupLocation.y - i[0], width: this._itemGroupLocation.width + i[3] + i[1], height: this._itemGroupLocation.height + i[0] + i[2], brushType: 0 === a.borderWidth ? "fill" : "both", color: a.backgroundColor, strokeColor: a.borderColor, lineWidth: a.borderWidth } })) }, _getItemGroupLocation: function() { var F = this.option.toolbox, O = this.reformCssArray(this.option.toolbox.padding), H = this._iconList.length, K = F.itemGap, E = F.itemSize, L = 0, M = 0; "horizontal" === F.orient ? (L = (E + K) * H - K, M = E) : (M = (E + K) * H - K, L = E); var N, I = this.zr.getWidth(); switch (F.x) { case "center": N = Math.floor((I - L) / 2); break; case "left": N = O[3] + F.borderWidth; break; case "right": N = I - L - O[1] - F.borderWidth; break; default: N = F.x - 0, N = isNaN(N) ? 0 : N } var G, J = this.zr.getHeight(); switch (F.y) { case "top": G = O[0] + F.borderWidth; break; case "bottom": G = J - M - O[2] - F.borderWidth; break; case "center": G = Math.floor((J - M) / 2); break; default: G = F.y - 0, G = isNaN(G) ? 0 : G } return { x: N, y: G, width: L, height: M } }, __onmousemove: function(a) { this._marking && (this._markShape.style.xEnd = w.getX(a.event), this._markShape.style.yEnd = w.getY(a.event), this.zr.addHoverShape(this._markShape)), this._zooming && (this._zoomShape.style.width = w.getX(a.event) - this._zoomShape.style.x, this._zoomShape.style.height = w.getY(a.event) - this._zoomShape.style.y, this.zr.addHoverShape(this._zoomShape), this.dom.style.cursor = "crosshair", w.stop(a.event)), this._zoomStart && "pointer" != this.dom.style.cursor && "move" != this.dom.style.cursor && (this.dom.style.cursor = "crosshair") }, __onmousedown: function(a) { if (!a.target) { this._zooming = !0; var o = w.getX(a.event), l = w.getY(a.event), m = this.option.dataZoom || {}; return this._zoomShape = new y({ zlevel: this.getZlevelBase(), z: this.getZBase(), style: { x: o, y: l, width: 1, height: 1, brushType: "both" }, highlightStyle: { lineWidth: 2, color: m.fillerColor || A.dataZoom.fillerColor, strokeColor: m.handleColor || A.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 a = this.component.dataZoom.rectZoom(this._zoomShape.style); a && (this._zoomQueue.push({ start: a.start, end: a.end, start2: a.start2, end2: a.end2 }), this._iconEnable(this._iconShapeMap.dataZoomReset), this.zr.refreshNextFrame()) } return !0 }, __onclick: function(a) { if (!a.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 m = w.getX(a.event), l = w.getY(a.event); this._markShape = new x({ zlevel: this.getZlevelBase(), z: this.getZBase(), style: { xStart: m, yStart: l, xEnd: m, yEnd: l, 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(a) { var m = a.target; if (this._marking || this._markStart) { this._resetMark(), this.zr.refreshNextFrame() } else { this._resetZoom(), this.zr.modShape(m.id, { style: { strokeColor: this._enableColor } }), this.zr.refreshNextFrame(), this._markStart = !0; var l = this; setTimeout(function() { l.zr && l.zr.on(q.EVENT.CLICK, l._onclick) && l.zr.on(q.EVENT.MOUSEMOVE, l._onmousemove) }, 10) } return !0 }, __onMarkUndo: function() { if (this._marking) { this._marking = !1 } else { var a = this._markShapeList.length; if (a >= 1) { var i = this._markShapeList[a - 1]; this.zr.delShape(i.id), this.zr.refreshNextFrame(), this._markShapeList.pop(), 1 === a && (this._iconDisable(this._iconShapeMap.markUndo), this._iconDisable(this._iconShapeMap.markClear)) } } return !0 }, __onMarkClear: function() { this._marking && (this._marking = !1); var a = this._markShapeList.length; if (a > 0) { for (; a--;) { this.zr.delShape(this._markShapeList.pop().id) } this._iconDisable(this._iconShapeMap.markUndo), this._iconDisable(this._iconShapeMap.markClear), this.zr.refreshNextFrame() } return !0 }, __onDataZoom: function(a) { var m = a.target; if (this._zooming || this._zoomStart) { this._resetZoom(), this.zr.refreshNextFrame(), this.dom.style.cursor = "default" } else { this._resetMark(), this.zr.modShape(m.id, { style: { strokeColor: this._enableColor } }), this.zr.refreshNextFrame(), this._zoomStart = !0; var l = this; setTimeout(function() { l.zr && l.zr.on(q.EVENT.MOUSEDOWN, l._onmousedown) && l.zr.on(q.EVENT.MOUSEUP, l._onmouseup) && l.zr.on(q.EVENT.MOUSEMOVE, l._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(q.EVENT.CLICK, this._onclick), this.zr.un(q.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(q.EVENT.MOUSEDOWN, this._onmousedown), this.zr.un(q.EVENT.MOUSEUP, this._onmouseup), this.zr.un(q.EVENT.MOUSEMOVE, this._onmousemove)) }, _iconDisable: function(a) { "image" != a.type ? this.zr.modShape(a.id, { hoverable: !1, clickable: !1, style: { strokeColor: this._disableColor } }) : this.zr.modShape(a.id, { hoverable: !1, clickable: !1, style: { opacity: 0.3 } }) }, _iconEnable: function(a) { "image" != a.type ? this.zr.modShape(a.id, { hoverable: !0, clickable: !0, style: { strokeColor: a.highlightStyle.strokeColor } }) : this.zr.modShape(a.id, { hoverable: !0, clickable: !0, style: { opacity: 0.8 } }) }, __onDataView: function() { return this._dataView.show(this.option), !0 }, __onRestore: function() { return this._resetMark(), this._resetZoom(), this.messageCenter.dispatch(A.EVENT.RESTORE, null, null, this.myChart), !0 }, __onSaveAsImage: function() { var m = this.option.toolbox.feature.saveAsImage, s = m.type || "png"; "png" != s && "jpeg" != s && (s = "png"); var o; o = this.myChart.isConnected() ? this.myChart.getConnectedDataURL(s) : this.zr.toDataURL("image/" + s, this.option.backgroundColor && "rgba(0,0,0,0)" === this.option.backgroundColor.replace(" ", "") ? "#fff" : this.option.backgroundColor); var r = document.createElement("div"); r.id = "__echarts_download_wrap__", r.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 l = document.createElement("a"); l.href = o, l.setAttribute("download", (m.name ? m.name : this.option.title && (this.option.title.text || this.option.title.subtext) ? this.option.title.text || this.option.title.subtext : "ECharts") + "." + s), l.innerHTML = '图片另存为" : m.lang ? m.lang[0] : "点击保存") + '"/>', r.appendChild(l), document.body.appendChild(r), l = null, r = null, setTimeout(function() { var a = document.getElementById("__echarts_download_wrap__"); a && (a.onclick = function() { var i = document.getElementById("__echarts_download_wrap__"); i.onclick = null, i.innerHTML = "", document.body.removeChild(i), i = null }, a = null) }, 500) }, __onMagicType: function(a) { this._resetMark(); var i = a.target._name; return this._magicType[i] || (this._magicType[i] = !0, i === A.CHART_TYPE_LINE ? this._magicType[A.CHART_TYPE_BAR] = !1 : i === A.CHART_TYPE_BAR && (this._magicType[A.CHART_TYPE_LINE] = !1), i === A.CHART_TYPE_PIE ? this._magicType[A.CHART_TYPE_FUNNEL] = !1 : i === A.CHART_TYPE_FUNNEL && (this._magicType[A.CHART_TYPE_PIE] = !1), i === A.CHART_TYPE_FORCE ? this._magicType[A.CHART_TYPE_CHORD] = !1 : i === A.CHART_TYPE_CHORD && (this._magicType[A.CHART_TYPE_FORCE] = !1), i === D ? this._magicType[C] = !1 : i === C && (this._magicType[D] = !1), this.messageCenter.dispatch(A.EVENT.MAGIC_TYPE_CHANGED, a.event, { magicType: this._magicType }, this.myChart)), !0 }, setMagicType: function(a) { this._resetMark(), this._magicType = a, !this._isSilence && this.messageCenter.dispatch(A.EVENT.MAGIC_TYPE_CHANGED, null, { magicType: this._magicType }, this.myChart) }, __onCustomHandler: function(a) { var m = a.target.style.iconType, l = this.option.toolbox.feature[m].onclick; "function" == typeof l && l.call(this, this.option) }, reset: function(E, M) { if (M && this.clear(), this.query(E, "toolbox.show") && this.query(E, "toolbox.feature.magicType.show")) { var G = E.toolbox.feature.magicType.type, I = G.length; for (this._magicMap = {}; I--;) { this._magicMap[G[I]] = !0 } I = E.series.length; for (var l, J; I--;) { l = E.series[I].type, this._magicMap[l] && (J = E.xAxis instanceof Array ? E.xAxis[E.series[I].xAxisIndex || 0] : E.xAxis, J && "category" === (J.type || "category") && (J.__boundaryGap = null != J.boundaryGap ? J.boundaryGap : !0), J = E.yAxis instanceof Array ? E.yAxis[E.series[I].yAxisIndex || 0] : E.yAxis, J && "category" === J.type && (J.__boundaryGap = null != J.boundaryGap ? J.boundaryGap : !0), E.series[I].__type = l, E.series[I].__itemStyle = v.clone(E.series[I].itemStyle || {})), (this._magicMap[D] || this._magicMap[C]) && (E.series[I].__stack = E.series[I].stack) } } this._magicType = M ? {} : this._magicType || {}; for (var K in this._magicType) { if (this._magicType[K]) { this.option = E, this.getMagicOption(); break } } var L = E.dataZoom; if (L && L.show) { var F = null != L.start && L.start >= 0 && L.start <= 100 ? L.start : 0, H = null != L.end && L.end >= 0 && L.end <= 100 ? L.end : 100; F > H && (F += H, H = F - H, F -= H), this._zoomQueue = [{ start: F, end: H, start2: 0, end2: 100 }] } else { this._zoomQueue = [] } }, getMagicOption: function() { var m, s; if (this._magicType[A.CHART_TYPE_LINE] || this._magicType[A.CHART_TYPE_BAR]) { for (var o = this._magicType[A.CHART_TYPE_LINE] ? !1 : !0, r = 0, l = this.option.series.length; l > r; r++) { s = this.option.series[r].type, (s == A.CHART_TYPE_LINE || s == A.CHART_TYPE_BAR) && (m = this.option.xAxis instanceof Array ? this.option.xAxis[this.option.series[r].xAxisIndex || 0] : this.option.xAxis, m && "category" === (m.type || "category") && (m.boundaryGap = o ? !0 : m.__boundaryGap), m = this.option.yAxis instanceof Array ? this.option.yAxis[this.option.series[r].yAxisIndex || 0] : this.option.yAxis, m && "category" === m.type && (m.boundaryGap = o ? !0 : m.__boundaryGap)) } this._defaultMagic(A.CHART_TYPE_LINE, A.CHART_TYPE_BAR) } if (this._defaultMagic(A.CHART_TYPE_CHORD, A.CHART_TYPE_FORCE), this._defaultMagic(A.CHART_TYPE_PIE, A.CHART_TYPE_FUNNEL), this._magicType[D] || this._magicType[C]) { for (var r = 0, l = this.option.series.length; l > r; r++) { this._magicType[D] ? (this.option.series[r].stack = "_ECHARTS_STACK_KENER_2014_", s = D) : this._magicType[C] && (this.option.series[r].stack = null, s = C), this._featureOption[s + "Chart"] && v.merge(this.option.series[r], this._featureOption[s + "Chart"] || {}, !0) } } return this.option }, _defaultMagic: function(m, s) { if (this._magicType[m] || this._magicType[s]) { for (var o = 0, r = this.option.series.length; r > o; o++) { var l = this.option.series[o].type; (l == m || l == s) && (this.option.series[o].type = this._magicType[m] ? m : s, this.option.series[o].itemStyle = v.clone(this.option.series[o].__itemStyle), l = this.option.series[o].type, this._featureOption[l + "Chart"] && v.merge(this.option.series[o], this._featureOption[l + "Chart"] || {}, !0)) } } }, silence: function(a) { this._isSilence = a }, 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(a) { this.zr && (this.zr.delShape(this.shapeList), this.shapeList = [], a || (this.zr.delShape(this._markShapeList), this._markShapeList = [])) }, onbeforDispose: function() { this._dataView && (this._dataView.dispose(), this._dataView = null), this._markShapeList = null }, refresh: function(a) { a && (this._resetMark(), this._resetZoom(), a.toolbox = this.reformOption(a.toolbox), this.option = a, this.clear(!0), a.toolbox.show && this._buildShape(), this.hideDataView()) } }, v.inherits(B, u), p("../component").define("toolbox", B), B }), d("echarts/component", [], function() { var a = {}, i = {}; return a.define = function(e, j) { return i[e] = j, a }, a.get = function(j) { return i[j] }, a }), d("echarts/component/title", ["require", "./base", "zrender/shape/Text", "zrender/shape/Rectangle", "../config", "zrender/tool/util", "zrender/tool/area", "zrender/tool/color", "../component"], function(m) { function y(l, z, r, i, s) { p.call(this, l, z, r, i, s), this.refresh(i) } var p = m("./base"), u = m("zrender/shape/Text"), j = m("zrender/shape/Rectangle"), v = m("../config"); v.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 w = m("zrender/tool/util"), x = m("zrender/tool/area"), q = m("zrender/tool/color"); return y.prototype = { type: v.COMPONENT_TYPE_TITLE, _buildShape: function() { if (this.titleOption.show) { this._itemGroupLocation = this._getItemGroupLocation(), this._buildBackground(), this._buildItem(); for (var a = 0, i = this.shapeList.length; i > a; a++) { this.zr.addShape(this.shapeList[a]) } } }, _buildItem: function() { var A = this.titleOption.text, I = this.titleOption.link, C = this.titleOption.target, l = this.titleOption.subtext, E = this.titleOption.sublink, G = this.titleOption.subtarget, H = this.getFont(this.titleOption.textStyle), B = this.getFont(this.titleOption.subtextStyle), D = this._itemGroupLocation.x, K = this._itemGroupLocation.y, J = this._itemGroupLocation.width, z = this._itemGroupLocation.height, F = { zlevel: this.getZlevelBase(), z: this.getZBase(), style: { y: K, color: this.titleOption.textStyle.color, text: A, textFont: H, textBaseline: "top" }, highlightStyle: { color: q.lift(this.titleOption.textStyle.color, 1), brushType: "fill" }, hoverable: !1 }; I && (F.hoverable = !0, F.clickable = !0, F.onclick = function() { C && "self" == C ? window.location = I : window.open(I) }); var n = { zlevel: this.getZlevelBase(), z: this.getZBase(), style: { y: K + z, color: this.titleOption.subtextStyle.color, text: l, textFont: B, textBaseline: "bottom" }, highlightStyle: { color: q.lift(this.titleOption.subtextStyle.color, 1), brushType: "fill" }, hoverable: !1 }; switch (E && (n.hoverable = !0, n.clickable = !0, n.onclick = function() { G && "self" == G ? window.location = E : window.open(E) }), this.titleOption.x) { case "center": F.style.x = n.style.x = D + J / 2, F.style.textAlign = n.style.textAlign = "center"; break; case "left": F.style.x = n.style.x = D, F.style.textAlign = n.style.textAlign = "left"; break; case "right": F.style.x = n.style.x = D + J, F.style.textAlign = n.style.textAlign = "right"; break; default: D = this.titleOption.x - 0, D = isNaN(D) ? 0 : D, F.style.x = n.style.x = D } this.titleOption.textAlign && (F.style.textAlign = n.style.textAlign = this.titleOption.textAlign), this.shapeList.push(new u(F)), "" !== l && this.shapeList.push(new u(n)) }, _buildBackground: function() { var a = this.reformCssArray(this.titleOption.padding); this.shapeList.push(new j({ zlevel: this.getZlevelBase(), z: this.getZBase(), hoverable: !1, style: { x: this._itemGroupLocation.x - a[3], y: this._itemGroupLocation.y - a[0], width: this._itemGroupLocation.width + a[3] + a[1], height: this._itemGroupLocation.height + a[0] + a[2], brushType: 0 === this.titleOption.borderWidth ? "fill" : "both", color: this.titleOption.backgroundColor, strokeColor: this.titleOption.borderColor, lineWidth: this.titleOption.borderWidth } })) }, _getItemGroupLocation: function() { var z, H = this.reformCssArray(this.titleOption.padding), B = this.titleOption.text, E = this.titleOption.subtext, s = this.getFont(this.titleOption.textStyle), F = this.getFont(this.titleOption.subtextStyle), G = Math.max(x.getTextWidth(B, s), x.getTextWidth(E, F)), C = x.getTextHeight(B, s) + ("" === E ? 0 : this.titleOption.itemGap + x.getTextHeight(E, F)), A = this.zr.getWidth(); switch (this.titleOption.x) { case "center": z = Math.floor((A - G) / 2); break; case "left": z = H[3] + this.titleOption.borderWidth; break; case "right": z = A - G - H[1] - this.titleOption.borderWidth; break; default: z = this.titleOption.x - 0, z = isNaN(z) ? 0 : z } var D, I = this.zr.getHeight(); switch (this.titleOption.y) { case "top": D = H[0] + this.titleOption.borderWidth; break; case "bottom": D = I - C - H[2] - this.titleOption.borderWidth; break; case "center": D = Math.floor((I - C) / 2); break; default: D = this.titleOption.y - 0, D = isNaN(D) ? 0 : D } return { x: z, y: D, width: G, height: C } }, refresh: function(a) { a && (this.option = a, 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() } }, w.inherits(y, p), m("../component").define("title", y), y }), d("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(u) { function E(a, H, m, n, p) { w.call(this, a, H, m, n, p), this.dom = p.dom; var i = this; i._onmousemove = function(l) { return i.__onmousemove(l) }, i._onglobalout = function(l) { return i.__onglobalout(l) }, this.zr.on(v.EVENT.MOUSEMOVE, i._onmousemove), this.zr.on(v.EVENT.GLOBALOUT, i._onglobalout), i._hide = function(l) { return i.__hide(l) }, i._tryShow = function(l) { return i.__tryShow(l) }, i._refixed = function(l) { return i.__refixed(l) }, i._setContent = function(l, o) { return i.__setContent(l, o) }, this._tDom = this._tDom || document.createElement("div"), this._tDom.onselectstart = function() { return !1 }, this._tDom.onmouseover = function() { i._mousein = !0 }, this._tDom.onmouseout = function() { i._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 j({ 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 j({ 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 z({ 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(n) } var w = u("./base"), z = u("../util/shape/Cross"), j = u("zrender/shape/Line"), A = u("zrender/shape/Rectangle"), C = new A({}), D = u("../config"); D.tooltip = { zlevel: 1, z: 8, show: !0, showContent: !0, trigger: "item", islandFormatter: "{a}
{b} : {c}", showDelay: 20, hideDelay: 100, transitionDuration: 0.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 x = u("../util/ecData"), v = u("zrender/config"), y = u("zrender/tool/event"), G = u("zrender/tool/area"), F = u("zrender/tool/color"), q = u("zrender/tool/util"), B = u("zrender/shape/Base"); return E.prototype = { type: D.COMPONENT_TYPE_TOOLTIP, _gCssText: "position:absolute;display:block;border-style:solid;white-space:nowrap;", _style: function(m) { if (!m) { return "" } var r = []; if (m.transitionDuration) { var o = "left " + m.transitionDuration + "s,top " + m.transitionDuration + "s"; r.push("transition:" + o), r.push("-moz-transition:" + o), r.push("-webkit-transition:" + o), r.push("-o-transition:" + o) } m.backgroundColor && (r.push("background-Color:" + F.toHex(m.backgroundColor)), r.push("filter:alpha(opacity=70)"), r.push("background-Color:" + m.backgroundColor)), null != m.borderWidth && r.push("border-width:" + m.borderWidth + "px"), null != m.borderColor && r.push("border-color:" + m.borderColor), null != m.borderRadius && (r.push("border-radius:" + m.borderRadius + "px"), r.push("-moz-border-radius:" + m.borderRadius + "px"), r.push("-webkit-border-radius:" + m.borderRadius + "px"), r.push("-o-border-radius:" + m.borderRadius + "px")); var p = m.textStyle; p && (p.color && r.push("color:" + p.color), p.decoration && r.push("text-decoration:" + p.decoration), p.align && r.push("text-align:" + p.align), p.fontFamily && r.push("font-family:" + p.fontFamily), p.fontSize && r.push("font-size:" + p.fontSize + "px"), p.fontSize && r.push("line-height:" + Math.round(3 * p.fontSize / 2) + "px"), p.fontStyle && r.push("font-style:" + p.fontStyle), p.fontWeight && r.push("font-weight:" + p.fontWeight)); var l = m.padding; return null != l && (l = this.reformCssArray(l), r.push("padding:" + l[0] + "px " + l[1] + "px " + l[2] + "px " + l[3] + "px")), r = r.join(";") + ";" }, __hide: function() { this._lastDataIndex = -1, this._lastSeriesIndex = -1, this._lastItemTriggerId = -1, this._tDom && (this._tDom.style.display = "none"); var a = !1; this._axisLineShape.invisible || (this._axisLineShape.invisible = !0, this.zr.modShape(this._axisLineShape.id), a = !0), this._axisShadowShape.invisible || (this._axisShadowShape.invisible = !0, this.zr.modShape(this._axisShadowShape.id), a = !0), this._axisCrossShape.invisible || (this._axisCrossShape.invisible = !0, this.zr.modShape(this._axisCrossShape.id), a = !0), this._lastTipShape && this._lastTipShape.tipShape.length > 0 && (this.zr.delShape(this._lastTipShape.tipShape), this._lastTipShape = !1, this.shapeList.length = 2), a && this.zr.refreshNextFrame(), this.showing = !1 }, _show: function(m, H, p, r) { var l = this._tDom.offsetHeight, s = this._tDom.offsetWidth; m && ("function" == typeof m && (m = m([H, p])), m instanceof Array && (H = m[0], p = m[1])), H + s > this._zrWidth && (H -= s + 40), p + l > this._zrHeight && (p -= l - 20), 20 > p && (p = 0), this._tDom.style.cssText = this._gCssText + this._defaultCssText + (r ? r : "") + "left:" + H + "px;top:" + p + "px;", (10 > l || 10 > s) && setTimeout(this._refixed, 20), this.showing = !0 }, __refixed: function() { if (this._tDom) { var a = "", m = this._tDom.offsetHeight, l = this._tDom.offsetWidth; this._tDom.offsetLeft + l > this._zrWidth && (a += "left:" + (this._zrWidth - l - 20) + "px;"), this._tDom.offsetTop + m > this._zrHeight && (a += "top:" + (this._zrHeight - m - 10) + "px;"), "" !== a && (this._tDom.style.cssText += a) } }, __tryShow: function() { var a, o; if (this._curTarget) { if ("island" === this._curTarget._type && this.option.tooltip.show) { return void this._showItemTrigger() } var l = x.get(this._curTarget, "series"), m = x.get(this._curTarget, "data"); a = this.deepQuery([m, l, this.option], "tooltip.show"), null != l && null != m && a ? (o = this.deepQuery([m, l, this.option], "tooltip.trigger"), "axis" === o ? this._showAxisTrigger(l.xAxisIndex, l.yAxisIndex, x.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 m, r, o = this.option.series, p = 0, l = o.length; l > p; p++) { if ("axis" === this.deepQuery([o[p], this.option], "tooltip.trigger")) { return m = o[p].xAxisIndex || 0, r = o[p].yAxisIndex || 0, this.component.xAxis.getAxis(m) && this.component.xAxis.getAxis(m).type === D.COMPONENT_TYPE_AXIS_CATEGORY ? void this._showAxisTrigger(m, r, this._getNearestDataIndex("x", this.component.xAxis.getAxis(m))) : this.component.yAxis.getAxis(r) && this.component.yAxis.getAxis(r).type === D.COMPONENT_TYPE_AXIS_CATEGORY ? void this._showAxisTrigger(m, r, this._getNearestDataIndex("y", this.component.yAxis.getAxis(r))) : void this._showAxisTrigger(m, r, -1) } } "cross" === this.option.tooltip.axisPointer.type && this._showAxisTrigger(-1, -1, -1) }, _findPolarTrigger: function() { if (!this.component.polar) { return !1 } var a, o = y.getX(this._event), l = y.getY(this._event), m = this.component.polar.getNearestIndex([o, l]); return m ? (a = m.valueIndex, m = m.polarIndex) : m = -1, -1 != m ? this._showPolarTrigger(m, a) : !1 }, _getNearestDataIndex: function(p, O) { var I = -1, K = y.getX(this._event), m = y.getY(this._event); if ("x" === p) { for (var L, M, N = this.component.grid.getXend(), J = O.getCoordByIndex(I); N > J && (M = J, K >= J);) { L = J, J = O.getCoordByIndex(++I) } return 0 >= I ? I = 0 : M - K >= K - L ? I -= 1 : null == O.getNameByIndex(I) && (I -= 1), I } for (var H, Q, P = this.component.grid.getY(), J = O.getCoordByIndex(I); J > P && (H = J, J >= m);) { Q = J, J = O.getCoordByIndex(++I) } return 0 >= I ? I = 0 : m - H >= Q - m ? I -= 1 : null == O.getNameByIndex(I) && (I -= 1), I }, _showAxisTrigger: function(J, W, N) { if (!this._event.connectTrigger && this.messageCenter.dispatch(D.EVENT.TOOLTIP_IN_GRID, this._event, null, this.myChart), null == this.component.xAxis || null == this.component.yAxis || null == J || null == W) { return clearTimeout(this._hidingTicket), clearTimeout(this._showingTicket), void(this._hidingTicket = setTimeout(this._hide, this._hideDelay)) } var Q, m, R, T, P = this.option.series, M = [], Z = [], Y = ""; if ("axis" === this.option.tooltip.trigger) { if (!this.option.tooltip.show) { return } m = this.option.tooltip.formatter, R = this.option.tooltip.position } var I, S, H = -1 != J && this.component.xAxis.getAxis(J).type === D.COMPONENT_TYPE_AXIS_CATEGORY ? "xAxis" : -1 != W && this.component.yAxis.getAxis(W).type === D.COMPONENT_TYPE_AXIS_CATEGORY ? "yAxis" : !1; if (H) { var X = "xAxis" == H ? J : W; Q = this.component[H].getAxis(X); for (var ab = 0, L = P.length; L > ab; ab++) { this._isSelected(P[ab].name) && P[ab][H + "Index"] === X && "axis" === this.deepQuery([P[ab], this.option], "tooltip.trigger") && (T = this.query(P[ab], "tooltip.showContent") || T, m = this.query(P[ab], "tooltip.formatter") || m, R = this.query(P[ab], "tooltip.position") || R, Y += this._style(this.query(P[ab], "tooltip")), null != P[ab].stack && "xAxis" == H ? (M.unshift(P[ab]), Z.unshift(ab)) : (M.push(P[ab]), Z.push(ab))) } this.messageCenter.dispatch(D.EVENT.TOOLTIP_HOVER, this._event, { seriesIndex: Z, dataIndex: N }, this.myChart); var s; "xAxis" == H ? (I = this.subPixelOptimize(Q.getCoordByIndex(N), this._axisLineWidth), S = y.getY(this._event), s = [I, this.component.grid.getY(), I, this.component.grid.getYend()]) : (I = y.getX(this._event), S = this.subPixelOptimize(Q.getCoordByIndex(N), this._axisLineWidth), s = [this.component.grid.getX(), S, this.component.grid.getXend(), S]), this._styleAxisPointer(M, s[0], s[1], s[2], s[3], Q.getGap(), I, S) } else { I = y.getX(this._event), S = y.getY(this._event), this._styleAxisPointer(P, this.component.grid.getX(), S, this.component.grid.getXend(), S, 0, I, S), N >= 0 ? this._showItemTrigger(!0) : (clearTimeout(this._hidingTicket), clearTimeout(this._showingTicket), this._tDom.style.display = "none") } if (M.length > 0) { if (this._lastItemTriggerId = -1, this._lastDataIndex != N || this._lastSeriesIndex != Z[0]) { this._lastDataIndex = N, this._lastSeriesIndex = Z[0]; var K, O; if ("function" == typeof m) { for (var aa = [], ab = 0, L = M.length; L > ab; ab++) { K = M[ab].data[N], O = this.getDataFromOption(K, "-"), aa.push({ seriesIndex: Z[ab], seriesName: M[ab].name || "", series: M[ab], dataIndex: N, data: K, name: Q.getNameByIndex(N), value: O, 0: M[ab].name || "", 1: Q.getNameByIndex(N), 2: O, 3: K }) } this._curTicket = "axis:" + N, this._tDom.innerHTML = m.call(this.myChart, aa, this._curTicket, this._setContent) } else { if ("string" == typeof m) { this._curTicket = 0 / 0, m = m.replace("{a}", "{a0}").replace("{b}", "{b0}").replace("{c}", "{c0}"); for (var ab = 0, L = M.length; L > ab; ab++) { m = m.replace("{a" + ab + "}", this._encodeHTML(M[ab].name || "")), m = m.replace("{b" + ab + "}", this._encodeHTML(Q.getNameByIndex(N))), K = M[ab].data[N], K = this.getDataFromOption(K, "-"), m = m.replace("{c" + ab + "}", K instanceof Array ? K : this.numAddCommas(K)) } this._tDom.innerHTML = m } else { this._curTicket = 0 / 0, m = this._encodeHTML(Q.getNameByIndex(N)); for (var ab = 0, L = M.length; L > ab; ab++) { m += "
" + this._encodeHTML(M[ab].name || "") + " : ", K = M[ab].data[N], K = this.getDataFromOption(K, "-"), m += K instanceof Array ? K : this.numAddCommas(K) } this._tDom.innerHTML = m } } } if (T === !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(R, I + 10, S + 10, Y) } }, _showPolarTrigger: function(J, T) { if (null == this.component.polar || null == J || null == T || 0 > T) { return !1 } var M, O, m, P = this.option.series, R = [], S = [], N = ""; if ("axis" === this.option.tooltip.trigger) { if (!this.option.tooltip.show) { return !1 } M = this.option.tooltip.formatter, O = this.option.tooltip.position } for (var L = this.option.polar[J].indicator[T].text, Y = 0, X = P.length; X > Y; Y++) { this._isSelected(P[Y].name) && P[Y].polarIndex === J && "axis" === this.deepQuery([P[Y], this.option], "tooltip.trigger") && (m = this.query(P[Y], "tooltip.showContent") || m, M = this.query(P[Y], "tooltip.formatter") || M, O = this.query(P[Y], "tooltip.position") || O, N += this._style(this.query(P[Y], "tooltip")), R.push(P[Y]), S.push(Y)) } if (R.length > 0) { for (var I, Q, H, W = [], Y = 0, X = R.length; X > Y; Y++) { I = R[Y].data; for (var Z = 0, K = I.length; K > Z; Z++) { Q = I[Z], this._isSelected(Q.name) && (Q = null != Q ? Q : { name: "", value: { dataIndex: "-" } }, H = this.getDataFromOption(Q.value[T]), W.push({ seriesIndex: S[Y], seriesName: R[Y].name || "", series: R[Y], dataIndex: T, data: Q, name: Q.name, indicator: L, value: H, 0: R[Y].name || "", 1: Q.name, 2: H, 3: L })) } } if (W.length <= 0) { return } if (this._lastItemTriggerId = -1, this._lastDataIndex != T || this._lastSeriesIndex != S[0]) { if (this._lastDataIndex = T, this._lastSeriesIndex = S[0], "function" == typeof M) { this._curTicket = "axis:" + T, this._tDom.innerHTML = M.call(this.myChart, W, this._curTicket, this._setContent) } else { if ("string" == typeof M) { M = M.replace("{a}", "{a0}").replace("{b}", "{b0}").replace("{c}", "{c0}").replace("{d}", "{d0}"); for (var Y = 0, X = W.length; X > Y; Y++) { M = M.replace("{a" + Y + "}", this._encodeHTML(W[Y].seriesName)), M = M.replace("{b" + Y + "}", this._encodeHTML(W[Y].name)), M = M.replace("{c" + Y + "}", this.numAddCommas(W[Y].value)), M = M.replace("{d" + Y + "}", this._encodeHTML(W[Y].indicator)) } this._tDom.innerHTML = M } else { M = this._encodeHTML(W[0].name) + "
" + this._encodeHTML(W[0].indicator) + " : " + this.numAddCommas(W[0].value); for (var Y = 1, X = W.length; X > Y; Y++) { M += "
" + this._encodeHTML(W[Y].name) + "
", M += this._encodeHTML(W[Y].indicator) + " : " + this.numAddCommas(W[Y].value) } this._tDom.innerHTML = M } } } if (m === !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(O, y.getX(this._event), y.getY(this._event), N), !0 } }, _showItemTrigger: function(I) { if (this._curTarget) { var Q, L, M, l = x.get(this._curTarget, "series"), N = x.get(this._curTarget, "seriesIndex"), P = x.get(this._curTarget, "data"), K = x.get(this._curTarget, "dataIndex"), T = x.get(this._curTarget, "name"), S = x.get(this._curTarget, "value"), H = x.get(this._curTarget, "special"), O = x.get(this._curTarget, "special2"), s = [P, l, this.option], R = ""; if ("island" != this._curTarget._type) { var W = I ? "axis" : "item"; this.option.tooltip.trigger === W && (Q = this.option.tooltip.formatter, L = this.option.tooltip.position), this.query(l, "tooltip.trigger") === W && (M = this.query(l, "tooltip.showContent") || M, Q = this.query(l, "tooltip.formatter") || Q, L = this.query(l, "tooltip.position") || L, R += this._style(this.query(l, "tooltip"))), M = this.query(P, "tooltip.showContent") || M, Q = this.query(P, "tooltip.formatter") || Q, L = this.query(P, "tooltip.position") || L, R += this._style(this.query(P, "tooltip")) } else { this._lastItemTriggerId = 0 / 0, M = this.deepQuery(s, "tooltip.showContent"), Q = this.deepQuery(s, "tooltip.islandFormatter"), L = this.deepQuery(s, "tooltip.islandPosition") } this._lastDataIndex = -1, this._lastSeriesIndex = -1, this._lastItemTriggerId !== this._curTarget.id && (this._lastItemTriggerId = this._curTarget.id, "function" == typeof Q ? (this._curTicket = (l.name || "") + ":" + K, this._tDom.innerHTML = Q.call(this.myChart, { seriesIndex: N, seriesName: l.name || "", series: l, dataIndex: K, data: P, name: T, value: S, percent: H, indicator: H, value2: O, indicator2: O, 0: l.name || "", 1: T, 2: S, 3: H, 4: O, 5: P, 6: N, 7: K }, this._curTicket, this._setContent)) : "string" == typeof Q ? (this._curTicket = 0 / 0, Q = Q.replace("{a}", "{a0}").replace("{b}", "{b0}").replace("{c}", "{c0}"), Q = Q.replace("{a0}", this._encodeHTML(l.name || "")).replace("{b0}", this._encodeHTML(T)).replace("{c0}", S instanceof Array ? S : this.numAddCommas(S)), Q = Q.replace("{d}", "{d0}").replace("{d0}", H || ""), Q = Q.replace("{e}", "{e0}").replace("{e0}", x.get(this._curTarget, "special2") || ""), this._tDom.innerHTML = Q) : (this._curTicket = 0 / 0, this._tDom.innerHTML = l.type === D.CHART_TYPE_RADAR && H ? this._itemFormatter.radar.call(this, l, T, S, H) : l.type === D.CHART_TYPE_EVENTRIVER ? this._itemFormatter.eventRiver.call(this, l, T, S, P) : "" + (null != l.name ? this._encodeHTML(l.name) + "
" : "") + ("" === T ? "" : this._encodeHTML(T) + " : ") + (S instanceof Array ? S : this.numAddCommas(S)))); var J = y.getX(this._event), m = y.getY(this._event); this.deepQuery(s, "tooltip.axisPointer.show") && this.component.grid ? this._styleAxisPointer([l], this.component.grid.getX(), m, this.component.grid.getXend(), m, 0, J, m) : this._hide(), M !== !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(L, J + 20, m - 20, R)) } }, _itemFormatter: { radar: function(m, H, p, r) { var l = ""; l += this._encodeHTML("" === H ? m.name || "" : H), l += "" === l ? "" : "
"; for (var s = 0; s < r.length; s++) { l += this._encodeHTML(r[s].text) + " : " + this.numAddCommas(p[s]) + "
" } return l }, chord: function(m, J, p, s, l) { if (null == l) { return this._encodeHTML(J) + " (" + this.numAddCommas(p) + ")" } var H = this._encodeHTML(J), I = this._encodeHTML(s); return "" + (null != m.name ? this._encodeHTML(m.name) + "
" : "") + H + " -> " + I + " (" + this.numAddCommas(p) + ")
" + I + " -> " + H + " (" + this.numAddCommas(l) + ")" }, eventRiver: function(m, J, p, s) { var l = ""; l += this._encodeHTML("" === m.name ? "" : m.name + " : "), l += this._encodeHTML(J), l += "" === l ? "" : "
", s = s.evolution; for (var H = 0, I = s.length; I > H; H++) { l += '
', s[H].detail && (s[H].detail.img && (l += ''), l += '
' + s[H].time + "
", l += '', l += s[H].detail.text + "
", l += "
") } return l } }, _styleAxisPointer: function(K, X, N, Q, H, R, T, W) { if (K.length > 0) { var O, M, P = this.option.tooltip.axisPointer, aa = P.type, Z = { line: {}, cross: {}, shadow: {} }; for (var J in Z) { Z[J].color = P[J + "Style"].color, Z[J].width = P[J + "Style"].width, Z[J].type = P[J + "Style"].type } for (var S = 0, I = K.length; I > S; S++) { O = K[S], M = this.query(O, "tooltip.axisPointer.type"), aa = M || aa, M && (Z[M].color = this.query(O, "tooltip.axisPointer." + M + "Style.color") || Z[M].color, Z[M].width = this.query(O, "tooltip.axisPointer." + M + "Style.width") || Z[M].width, Z[M].type = this.query(O, "tooltip.axisPointer." + M + "Style.type") || Z[M].type) } if ("line" === aa) { var Y = Z.line.width, ab = X == Q; this._axisLineShape.style = { xStart: ab ? this.subPixelOptimize(X, Y) : X, yStart: ab ? N : this.subPixelOptimize(N, Y), xEnd: ab ? this.subPixelOptimize(Q, Y) : Q, yEnd: ab ? H : this.subPixelOptimize(H, Y), strokeColor: Z.line.color, lineWidth: Y, lineType: Z.line.type }, this._axisLineShape.invisible = !1, this.zr.modShape(this._axisLineShape.id) } else { if ("cross" === aa) { var L = Z.cross.width; this._axisCrossShape.style = { brushType: "stroke", rect: this.component.grid.getArea(), x: this.subPixelOptimize(T, L), y: this.subPixelOptimize(W, L), text: ("( " + this.component.xAxis.getAxis(0).getValueFromCoord(T) + " , " + this.component.yAxis.getAxis(0).getValueFromCoord(W) + " )").replace(" , ", " ").replace(" , ", " "), textPosition: "specific", strokeColor: Z.cross.color, lineWidth: L, lineType: Z.cross.type }, this.component.grid.getXend() - T > 100 ? (this._axisCrossShape.style.textAlign = "left", this._axisCrossShape.style.textX = T + 10) : (this._axisCrossShape.style.textAlign = "right", this._axisCrossShape.style.textX = T - 10), W - this.component.grid.getY() > 50 ? (this._axisCrossShape.style.textBaseline = "bottom", this._axisCrossShape.style.textY = W - 10) : (this._axisCrossShape.style.textBaseline = "top", this._axisCrossShape.style.textY = W + 10), this._axisCrossShape.invisible = !1, this.zr.modShape(this._axisCrossShape.id) } else { "shadow" === aa && ((null == Z.shadow.width || "auto" === Z.shadow.width || isNaN(Z.shadow.width)) && (Z.shadow.width = R), X === Q ? Math.abs(this.component.grid.getX() - X) < 2 ? (Z.shadow.width /= 2, X = Q += Z.shadow.width / 2) : Math.abs(this.component.grid.getXend() - X) < 2 && (Z.shadow.width /= 2, X = Q -= Z.shadow.width / 2) : N === H && (Math.abs(this.component.grid.getY() - N) < 2 ? (Z.shadow.width /= 2, N = H += Z.shadow.width / 2) : Math.abs(this.component.grid.getYend() - N) < 2 && (Z.shadow.width /= 2, N = H -= Z.shadow.width / 2)), this._axisShadowShape.style = { xStart: X, yStart: N, xEnd: Q, yEnd: H, strokeColor: Z.shadow.color, lineWidth: Z.shadow.width }, this._axisShadowShape.invisible = !1, this.zr.modShape(this._axisShadowShape.id)) } } this.zr.refreshNextFrame() } }, __onmousemove: function(p) { if (clearTimeout(this._hidingTicket), clearTimeout(this._showingTicket), !this._mousein || !this._enterable) { var K = p.target, s = y.getX(p.event), I = y.getY(p.event); if (K) { this._curTarget = K, this._event = p.event, this._event.zrenderX = s, this._event.zrenderY = I; var m; if (this._needAxisTrigger && this.component.polar && -1 != (m = this.component.polar.isInside([s, I]))) { for (var J = this.option.series, H = 0, r = J.length; r > H; H++) { if (J[H].polarIndex === m && "axis" === this.deepQuery([J[H], this.option], "tooltip.trigger")) { this._curTarget = null; break } } } this._showingTicket = setTimeout(this._tryShow, this._showDelay) } else { this._curTarget = !1, this._event = p.event, this._event.zrenderX = s, this._event.zrenderY = I, this._needAxisTrigger && this.component.grid && G.isInside(C, this.component.grid.getArea(), s, I) ? this._showingTicket = setTimeout(this._tryShow, this._showDelay) : this._needAxisTrigger && this.component.polar && -1 != this.component.polar.isInside([s, I]) ? this._showingTicket = setTimeout(this._tryShow, this._showDelay) : (!this._event.connectTrigger && this.messageCenter.dispatch(D.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(a, i) { this._tDom && (a === this._curTicket && (this._tDom.innerHTML = i), setTimeout(this._refixed, 20)) }, ontooltipHover: function(a, o) { if (!this._lastTipShape || this._lastTipShape && this._lastTipShape.dataIndex != a.dataIndex) { this._lastTipShape && this._lastTipShape.tipShape.length > 0 && (this.zr.delShape(this._lastTipShape.tipShape), this.shapeList.length = 2); for (var l = 0, m = o.length; m > l; l++) { o[l].zlevel = this.getZlevelBase(), o[l].z = this.getZBase(), o[l].style = B.prototype.getHighlightStyle(o[l].style, o[l].highlightStyle), o[l].draggable = !1, o[l].hoverable = !1, o[l].clickable = !1, o[l].ondragend = null, o[l].ondragover = null, o[l].ondrop = null, this.shapeList.push(o[l]), this.zr.addShape(o[l]) } this._lastTipShape = { dataIndex: a.dataIndex, tipShape: o } } }, ondragend: function() { this._hide() }, onlegendSelected: function(a) { this._selectedMap = a.selected }, _setSelectedMap: function() { this._selectedMap = this.component.legend ? q.clone(this.component.legend.getSelectedMap()) : {} }, _isSelected: function(a) { return null != this._selectedMap[a] ? this._selectedMap[a] : !0 }, showTip: function(J) { if (J) { var T, M = this.option.series; if (null != J.seriesIndex) { T = J.seriesIndex } else { for (var P = J.seriesName, l = 0, Q = M.length; Q > l; l++) { if (M[l].name === P) { T = l; break } } } var S = M[T]; if (null != S) { var O = this.myChart.chart[S.type], Y = "axis" === this.deepQuery([S, this.option], "tooltip.trigger"); if (O) { if (Y) { var X = J.dataIndex; switch (O.type) { case D.CHART_TYPE_LINE: case D.CHART_TYPE_BAR: case D.CHART_TYPE_K: case D.CHART_TYPE_RADAR: if (null == this.component.polar || S.data[0].value.length <= X) { return } var I = S.polarIndex || 0, R = this.component.polar.getVector(I, X, "max"); this._event = { zrenderX: R[0], zrenderY: R[1] }, this._showPolarTrigger(I, X) } } else { var H, W, Z = O.shapeList; switch (O.type) { case D.CHART_TYPE_LINE: case D.CHART_TYPE_BAR: case D.CHART_TYPE_K: case D.CHART_TYPE_TREEMAP: case D.CHART_TYPE_SCATTER: for (var X = J.dataIndex, l = 0, Q = Z.length; Q > l; l++) { if (null == Z[l]._mark && x.get(Z[l], "seriesIndex") == T && x.get(Z[l], "dataIndex") == X) { this._curTarget = Z[l], H = Z[l].style.x, W = O.type != D.CHART_TYPE_K ? Z[l].style.y : Z[l].style.y[0]; break } } break; case D.CHART_TYPE_RADAR: for (var X = J.dataIndex, l = 0, Q = Z.length; Q > l; l++) { if ("polygon" === Z[l].type && x.get(Z[l], "seriesIndex") == T && x.get(Z[l], "dataIndex") == X) { this._curTarget = Z[l]; var R = this.component.polar.getCenter(S.polarIndex || 0); H = R[0], W = R[1]; break } } break; case D.CHART_TYPE_PIE: for (var L = J.name, l = 0, Q = Z.length; Q > l; l++) { if ("sector" === Z[l].type && x.get(Z[l], "seriesIndex") == T && x.get(Z[l], "name") == L) { this._curTarget = Z[l]; var s = this._curTarget.style, K = (s.startAngle + s.endAngle) / 2 * Math.PI / 180; H = this._curTarget.style.x + Math.cos(K) * s.r / 1.5, W = this._curTarget.style.y - Math.sin(K) * s.r / 1.5; break } } break; case D.CHART_TYPE_MAP: for (var L = J.name, N = S.mapType, l = 0, Q = Z.length; Q > l; l++) { if ("text" === Z[l].type && Z[l]._mapType === N && Z[l].style._name === L) { this._curTarget = Z[l], H = this._curTarget.style.x + this._curTarget.position[0], W = this._curTarget.style.y + this._curTarget.position[1]; break } } break; case D.CHART_TYPE_CHORD: for (var L = J.name, l = 0, Q = Z.length; Q > l; l++) { if ("sector" === Z[l].type && x.get(Z[l], "name") == L) { this._curTarget = Z[l]; var s = this._curTarget.style, K = (s.startAngle + s.endAngle) / 2 * Math.PI / 180; return H = this._curTarget.style.x + Math.cos(K) * (s.r - 2), W = this._curTarget.style.y - Math.sin(K) * (s.r - 2), void this.zr.trigger(v.EVENT.MOUSEMOVE, { zrenderX: H, zrenderY: W }) } } break; case D.CHART_TYPE_FORCE: for (var L = J.name, l = 0, Q = Z.length; Q > l; l++) { if ("circle" === Z[l].type && x.get(Z[l], "name") == L) { this._curTarget = Z[l], H = this._curTarget.position[0], W = this._curTarget.position[1]; break } } } null != H && null != W && (this._event = { zrenderX: H, zrenderY: W }, this.zr.addHoverShape(this._curTarget), this.zr.refreshHover(), this._showItemTrigger()) } } } } }, hideTip: function() { this._hide() }, refresh: function(m) { 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, m) { this.option = m, this.option.tooltip = this.reformOption(this.option.tooltip), this.option.tooltip.textStyle = q.merge(this.option.tooltip.textStyle, this.ecTheme.textStyle), this._needAxisTrigger = !1, "axis" === this.option.tooltip.trigger && (this._needAxisTrigger = !0); for (var r = this.option.series, o = 0, p = r.length; p > o; o++) { if ("axis" === this.query(r[o], "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(v.elementClassName) < 0 && (this._tDom.className += " " + v.elementClassName) } if (this.showing) { var l = this; setTimeout(function() { l.zr.trigger(v.EVENT.MOUSEMOVE, l.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(v.EVENT.MOUSEMOVE, this._onmousemove), this.zr.un(v.EVENT.GLOBALOUT, this._onglobalout), this.hasAppend && this.dom.firstChild && this.dom.firstChild.removeChild(this._tDom), this._tDom = null }, _encodeHTML: function(a) { return String(a).replace(/&/g, "&").replace(//g, ">").replace(/"/g, """).replace(/'/g, "'") } }, q.inherits(E, w), u("../component").define("tooltip", E), E }), d("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(p) { function B(l, F, m, i, s) { if (!this.query(i, "legend.data")) { return void console.error("option.legend.data has not been defined.") } u.call(this, l, F, m, i, s); var E = this; E._legendSelected = function(a) { E.__legendSelected(a) }, E._dispatchHoverLink = function(a) { return E.__dispatchHoverLink(a) }, this._colorIndex = 0, this._colorMap = {}, this._selectedMap = {}, this._hasDataMap = {}, this.refresh(i) } var u = p("./base"), x = p("zrender/shape/Text"), j = p("zrender/shape/Rectangle"), y = p("zrender/shape/Sector"), z = p("../util/shape/Icon"), A = p("../util/shape/Candle"), v = p("../config"); v.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 q = p("zrender/tool/util"), w = p("zrender/tool/area"); B.prototype = { type: v.COMPONENT_TYPE_LEGEND, _buildShape: function() { if (this.legendOption.show) { this._itemGroupLocation = this._getItemGroupLocation(), this._buildBackground(), this._buildItem(); for (var a = 0, i = this.shapeList.length; i > a; a++) { this.zr.addShape(this.shapeList[a]) } } }, _buildItem: function() { var F, O, I, m, L, N, K, R, Q = this.legendOption.data, E = Q.length, M = this.legendOption.textStyle, r = this.zr.getWidth(), P = this.zr.getHeight(), T = this._itemGroupLocation.x, H = this._itemGroupLocation.y, n = this.legendOption.itemWidth, G = this.legendOption.itemHeight, J = this.legendOption.itemGap; "vertical" === this.legendOption.orient && "right" === this.legendOption.x && (T = this._itemGroupLocation.x + this._itemGroupLocation.width - n); for (var S = 0; E > S; S++) { L = q.merge(Q[S].textStyle || {}, M), N = this.getFont(L), F = this._getName(Q[S]), K = this._getFormatterName(F), "" !== F ? (O = Q[S].icon || this._getSomethingByName(F).type, R = this.getColor(F), "horizontal" === this.legendOption.orient ? 200 > r - T && n + 5 + w.getTextWidth(K, N) + (S === E - 1 || "" === Q[S + 1] ? 0 : J) >= r - T && (T = this._itemGroupLocation.x, H += G + J) : 200 > P - H && G + (S === E - 1 || "" === Q[S + 1] ? 0 : J) >= P - H && ("right" === this.legendOption.x ? T -= this._itemGroupLocation.maxWidth + J : T += this._itemGroupLocation.maxWidth + J, H = this._itemGroupLocation.y), I = this._getItemShapeByType(T, H, n, G, this._selectedMap[F] && this._hasDataMap[F] ? R : "#ccc", O, R), I._name = F, I = new z(I), m = { zlevel: this.getZlevelBase(), z: this.getZBase(), style: { x: T + n + 5, y: H + G / 2, color: this._selectedMap[F] ? "auto" === L.color ? R : L.color : "#ccc", text: K, textFont: N, textBaseline: "middle" }, highlightStyle: { color: R, brushType: "fill" }, hoverable: !!this.legendOption.selectedMode, clickable: !!this.legendOption.selectedMode }, "vertical" === this.legendOption.orient && "right" === this.legendOption.x && (m.style.x -= n + 10, m.style.textAlign = "right"), m._name = F, m = new x(m), this.legendOption.selectedMode && (I.onclick = m.onclick = this._legendSelected, I.onmouseover = m.onmouseover = this._dispatchHoverLink, I.hoverConnect = m.id, m.hoverConnect = I.id), this.shapeList.push(I), this.shapeList.push(m), "horizontal" === this.legendOption.orient ? T += n + 5 + w.getTextWidth(K, N) + J : H += G + J) : "horizontal" === this.legendOption.orient ? (T = this._itemGroupLocation.x, H += G + J) : ("right" === this.legendOption.x ? T -= this._itemGroupLocation.maxWidth + J : T += this._itemGroupLocation.maxWidth + J, H = this._itemGroupLocation.y) } "horizontal" === this.legendOption.orient && "center" === this.legendOption.x && H != this._itemGroupLocation.y && this._mLineOptimize() }, _getName: function(a) { return "undefined" != typeof a.name ? a.name : a }, _getFormatterName: function(a) { var m, l = this.legendOption.formatter; return m = "function" == typeof l ? l.call(this.myChart, a) : "string" == typeof l ? l.replace("{name}", a) : a }, _getFormatterNameFromData: function(a) { var i = this._getName(a); return this._getFormatterName(i) }, _mLineOptimize: function() { for (var m = [], s = this._itemGroupLocation.x, o = 2, r = this.shapeList.length; r > o; o++) { this.shapeList[o].style.x === s ? m.push((this._itemGroupLocation.width - (this.shapeList[o - 1].style.x + w.getTextWidth(this.shapeList[o - 1].style.text, this.shapeList[o - 1].style.textFont) - s)) / 2) : o === r - 1 && m.push((this._itemGroupLocation.width - (this.shapeList[o].style.x + w.getTextWidth(this.shapeList[o].style.text, this.shapeList[o].style.textFont) - s)) / 2) } for (var l = -1, o = 1, r = this.shapeList.length; r > o; o++) { this.shapeList[o].style.x === s && l++, 0 !== m[l] && (this.shapeList[o].style.x += m[l]) } }, _buildBackground: function() { var a = this.reformCssArray(this.legendOption.padding); this.shapeList.push(new j({ zlevel: this.getZlevelBase(), z: this.getZBase(), hoverable: !1, style: { x: this._itemGroupLocation.x - a[3], y: this._itemGroupLocation.y - a[0], width: this._itemGroupLocation.width + a[3] + a[1], height: this._itemGroupLocation.height + a[0] + a[2], brushType: 0 === this.legendOption.borderWidth ? "fill" : "both", color: this.legendOption.backgroundColor, strokeColor: this.legendOption.borderColor, lineWidth: this.legendOption.borderWidth } })) }, _getItemGroupLocation: function() { var H = this.legendOption.data, Q = H.length, J = this.legendOption.itemGap, L = this.legendOption.itemWidth + 5, m = this.legendOption.itemHeight, M = this.legendOption.textStyle, O = this.getFont(M), P = 0, K = 0, T = this.reformCssArray(this.legendOption.padding), S = this.zr.getWidth() - T[1] - T[3], G = this.zr.getHeight() - T[0] - T[2], N = 0, F = 0; if ("horizontal" === this.legendOption.orient) { K = m; for (var R = 0; Q > R; R++) { if ("" !== this._getName(H[R])) { var W = w.getTextWidth(this._getFormatterNameFromData(H[R]), H[R].textStyle ? this.getFont(q.merge(H[R].textStyle || {}, M)) : O); N + L + W + J > S ? (N -= J, P = Math.max(P, N), K += m + J, N = 0) : (N += L + W + J, P = Math.max(P, N - J)) } else { N -= J, P = Math.max(P, N), K += m + J, N = 0 } } } else { for (var R = 0; Q > R; R++) { F = Math.max(F, w.getTextWidth(this._getFormatterNameFromData(H[R]), H[R].textStyle ? this.getFont(q.merge(H[R].textStyle || {}, M)) : O)) } F += L, P = F; for (var R = 0; Q > R; R++) { "" !== this._getName(H[R]) ? N + m + J > G ? (P += F + J, N -= J, K = Math.max(K, N), N = 0) : (N += m + J, K = Math.max(K, N - J)) : (P += F + J, N -= J, K = Math.max(K, N), N = 0) } } S = this.zr.getWidth(), G = this.zr.getHeight(); var I; switch (this.legendOption.x) { case "center": I = Math.floor((S - P) / 2); break; case "left": I = T[3] + this.legendOption.borderWidth; break; case "right": I = S - P - T[1] - T[3] - 2 * this.legendOption.borderWidth; break; default: I = this.parsePercent(this.legendOption.x, S) } var E; switch (this.legendOption.y) { case "top": E = T[0] + this.legendOption.borderWidth; break; case "bottom": E = G - K - T[0] - T[2] - 2 * this.legendOption.borderWidth; break; case "center": E = Math.floor((G - K) / 2); break; default: E = this.parsePercent(this.legendOption.y, G) } return { x: I, y: E, width: P, height: K, maxWidth: F } }, _getSomethingByName: function(m) { for (var H, s = this.option.series, E = 0, l = s.length; l > E; E++) { if (s[E].name === m) { return { type: s[E].type, series: s[E], seriesIndex: E, data: null, dataIndex: -1 } } if (s[E].type === v.CHART_TYPE_PIE || s[E].type === v.CHART_TYPE_RADAR || s[E].type === v.CHART_TYPE_CHORD || s[E].type === v.CHART_TYPE_FORCE || s[E].type === v.CHART_TYPE_FUNNEL || s[E].type === v.CHART_TYPE_TREEMAP) { H = s[E].categories || s[E].data || s[E].nodes; for (var F = 0, G = H.length; G > F; F++) { if (H[F].name === m) { return { type: s[E].type, series: s[E], seriesIndex: E, data: H[F], dataIndex: F } } } } } return { type: "bar", series: null, seriesIndex: -1, data: null, dataIndex: -1 } }, _getItemShapeByType: function(E, M, G, I, l, J, K) { var L, F = "#ccc" === l ? K : l, H = { zlevel: this.getZlevelBase(), z: this.getZBase(), style: { iconType: "legendicon" + J, x: E, y: M, width: G, height: I, color: l, strokeColor: l, lineWidth: 2 }, highlightStyle: { color: F, strokeColor: F, lineWidth: 1 }, hoverable: this.legendOption.selectedMode, clickable: this.legendOption.selectedMode }; if (J.match("image")) { var L = J.replace(new RegExp("^image:\\/\\/"), ""); J = "image" } switch (J) { case "line": H.style.brushType = "stroke", H.highlightStyle.lineWidth = 3; break; case "radar": case "venn": case "tree": case "treemap": case "scatter": H.highlightStyle.lineWidth = 3; break; case "k": H.style.brushType = "both", H.highlightStyle.lineWidth = 3, H.highlightStyle.color = H.style.color = this.deepQuery([this.ecTheme, v], "k.itemStyle.normal.color") || "#fff", H.style.strokeColor = "#ccc" != l ? this.deepQuery([this.ecTheme, v], "k.itemStyle.normal.lineStyle.color") || "#ff3200" : l; break; case "image": H.style.iconType = "image", H.style.image = L, "#ccc" === l && (H.style.opacity = 0.5) } return H }, __legendSelected: function(a) { var m = a.target._name; if ("single" === this.legendOption.selectedMode) { for (var l in this._selectedMap) { this._selectedMap[l] = !1 } } this._selectedMap[m] = !this._selectedMap[m], this.messageCenter.dispatch(v.EVENT.LEGEND_SELECTED, a.event, { selected: this._selectedMap, target: m }, this.myChart) }, __dispatchHoverLink: function(a) { this.messageCenter.dispatch(v.EVENT.LEGEND_HOVERLINK, a.event, { target: a.target._name }, this.myChart) }, refresh: function(m) { if (m) { this.option = m || this.option, this.option.legend = this.reformOption(this.option.legend), this.legendOption = this.option.legend; var K, F, G, l, H = this.legendOption.data || []; if (this.legendOption.selected) { for (var I in this.legendOption.selected) { this._selectedMap[I] = "undefined" != typeof this._selectedMap[I] ? this._selectedMap[I] : this.legendOption.selected[I] } } for (var J = 0, E = H.length; E > J; J++) { K = this._getName(H[J]), "" !== K && (F = this._getSomethingByName(K), F.series ? (this._hasDataMap[K] = !0, l = !F.data || F.type !== v.CHART_TYPE_PIE && F.type !== v.CHART_TYPE_FORCE && F.type !== v.CHART_TYPE_FUNNEL ? [F.series] : [F.data, F.series], G = this.getItemStyleColor(this.deepQuery(l, "itemStyle.normal.color"), F.seriesIndex, F.dataIndex, F.data), G && F.type != v.CHART_TYPE_K && this.setColor(K, G), this._selectedMap[K] = null != this._selectedMap[K] ? this._selectedMap[K] : !0) : this._hasDataMap[K] = !1) } } this.clear(), this._buildShape() }, getRelatedAmount: function(m) { for (var J, E = 0, F = this.option.series, l = 0, G = F.length; G > l; l++) { if (F[l].name === m && E++, F[l].type === v.CHART_TYPE_PIE || F[l].type === v.CHART_TYPE_RADAR || F[l].type === v.CHART_TYPE_CHORD || F[l].type === v.CHART_TYPE_FORCE || F[l].type === v.CHART_TYPE_FUNNEL) { J = F[l].type != v.CHART_TYPE_FORCE ? F[l].data : F[l].categories; for (var H = 0, I = J.length; I > H; H++) { J[H].name === m && "-" != J[H].value && E++ } } } return E }, setColor: function(a, i) { this._colorMap[a] = i }, getColor: function(a) { return this._colorMap[a] || (this._colorMap[a] = this.zr.getColor(this._colorIndex++)), this._colorMap[a] }, hasColor: function(a) { return this._colorMap[a] ? this._colorMap[a] : !1 }, add: function(m, s) { for (var o = this.legendOption.data, r = 0, l = o.length; l > r; r++) { if (this._getName(o[r]) === m) { return } } this.legendOption.data.push(m), this.setColor(m, s), this._selectedMap[m] = !0, this._hasDataMap[m] = !0 }, del: function(a) { for (var o = this.legendOption.data, l = 0, m = o.length; m > l; l++) { if (this._getName(o[l]) === a) { return this.legendOption.data.splice(l, 1) } } }, getItemShape: function(a) { if (null != a) { for (var o, l = 0, m = this.shapeList.length; m > l; l++) { if (o = this.shapeList[l], o._name === a && "text" != o.type) { return o } } } }, setItemShape: function(m, s) { for (var o, r = 0, l = this.shapeList.length; l > r; r++) { o = this.shapeList[r], o._name === m && "text" != o.type && (this._selectedMap[m] || (s.style.color = "#ccc", s.style.strokeColor = "#ccc"), this.zr.modShape(o.id, s)) } }, isSelected: function(a) { return "undefined" != typeof this._selectedMap[a] ? this._selectedMap[a] : !0 }, getSelectedMap: function() { return this._selectedMap }, setSelected: function(a, m) { if ("single" === this.legendOption.selectedMode) { for (var l in this._selectedMap) { this._selectedMap[l] = !1 } } this._selectedMap[a] = m, this.messageCenter.dispatch(v.EVENT.LEGEND_SELECTED, null, { selected: this._selectedMap, target: a }, this.myChart) }, onlegendSelected: function(a, o) { var l = a.selected; for (var m in l) { this._selectedMap[m] != l[m] && (o.needRefresh = !0), this._selectedMap[m] = l[m] } } }; var D = { line: function(a, m) { var l = m.height / 2; a.moveTo(m.x, m.y + l), a.lineTo(m.x + m.width, m.y + l) }, pie: function(m, F) { var o = F.x, s = F.y, l = F.width, E = F.height; y.prototype.buildPath(m, { x: o + l / 2, y: s + E + 2, r: E, r0: 6, startAngle: 45, endAngle: 135 }) }, eventRiver: function(m, F) { var r = F.x, s = F.y, l = F.width, E = F.height; m.moveTo(r, s + E), m.bezierCurveTo(r + l, s + E, r, s + 4, r + l, s + 4), m.lineTo(r + l, s), m.bezierCurveTo(r, s, r + l, s + E - 4, r, s + E - 4), m.lineTo(r, s + E) }, k: function(m, F) { var r = F.x, s = F.y, l = F.width, E = F.height; A.prototype.buildPath(m, { x: r + l / 2, y: [s + 1, s + 1, s + E - 6, s + E], width: l - 6 }) }, bar: function(m, H) { var s = H.x, E = H.y + 1, l = H.width, F = H.height - 2, G = 3; m.moveTo(s + G, E), m.lineTo(s + l - G, E), m.quadraticCurveTo(s + l, E, s + l, E + G), m.lineTo(s + l, E + F - G), m.quadraticCurveTo(s + l, E + F, s + l - G, E + F), m.lineTo(s + G, E + F), m.quadraticCurveTo(s, E + F, s, E + F - G), m.lineTo(s, E + G), m.quadraticCurveTo(s, E, s + G, E) }, force: function(a, i) { z.prototype.iconLibrary.circle(a, i) }, radar: function(F, O) { var H = 6, K = O.x + O.width / 2, E = O.y + O.height / 2, L = O.height / 2, M = 2 * Math.PI / H, N = -Math.PI / 2, I = K + L * Math.cos(N), G = E + L * Math.sin(N); F.moveTo(I, G), N += M; for (var J = 0, P = H - 1; P > J; J++) { F.lineTo(K + L * Math.cos(N), E + L * Math.sin(N)), N += M } F.lineTo(I, G) } }; D.chord = D.pie, D.map = D.bar; for (var C in D) { z.prototype.iconLibrary["legendicon" + C] = D[C] } return q.inherits(B, u), p("../component").define("legend", B), B }), d("echarts/util/ecData", [], function() { function a(q, A, u, w, p, x, y, z) { var v; return "undefined" != typeof w && (v = null == w.value ? w : w.value), q._echartsData = { _series: A, _seriesIndex: u, _data: w, _dataIndex: p, _name: x, _value: v, _special: y, _special2: z }, q._echartsData } function m(n, p) { var o = n._echartsData; if (!p) { return o } switch (p) { case "series": case "seriesIndex": case "data": case "dataIndex": case "name": case "value": case "special": case "special2": return o && o["_" + p] } return null } function j(n, p, o) { switch (n._echartsData = n._echartsData || {}, p) { case "series": case "seriesIndex": case "data": case "dataIndex": case "name": case "value": case "special": case "special2": n._echartsData["_" + p] = o } } function l(i, n) { n._echartsData = { _series: i._echartsData._series, _seriesIndex: i._echartsData._seriesIndex, _data: i._echartsData._data, _dataIndex: i._echartsData._dataIndex, _name: i._echartsData._name, _value: i._echartsData._value, _special: i._echartsData._special, _special2: i._echartsData._special2 } } return { pack: a, set: j, get: m, clone: l } }), d("echarts/chart", [], function() { var a = {}, i = {}; return a.define = function(e, j) { return i[e] = j, a }, a.get = function(j) { return i[j] }, a }), d("zrender/tool/color", ["require", "../tool/util"], function(ae) { function aG(a) { ad = a } function am() { ad = ax } function aw(a, i) { return a = 0 | a, i = i || ad, i[a % i.length] } function q(a) { Z = a } function ay() { al = Z } function aC() { return Z } function aE(p, B, v, x, m, y, z) { az || (az = aB.getContext()); for (var A = az.createRadialGradient(p, B, v, x, m, y), w = 0, u = z.length; u > w; w++) { A.addColorStop(z[w][0], z[w][1]) } return A.__nonRecursion = !0, A } function ar(m, y, p, u, l) { az || (az = aB.getContext()); for (var v = az.createLinearGradient(m, y, p, u), w = 0, x = l.length; x > w; w++) { v.addColorStop(l[w][0], l[w][1]) } return v.__nonRecursion = !0, v } function ak(v, E, x) { v = aA(v), E = aA(E), v = an(v), E = an(E); for (var A = [], p = (E[0] - v[0]) / x, B = (E[1] - v[1]) / x, C = (E[2] - v[2]) / x, D = (E[3] - v[3]) / x, y = 0, w = v[0], z = v[1], F = v[2], u = v[3]; x > y; y++) { A[y] = aL([aF(Math.floor(w), [0, 255]), aF(Math.floor(z), [0, 255]), aF(Math.floor(F), [0, 255]), u.toFixed(4) - 0], "rgba"), w += p, z += B, F += C, u += D } return w = E[0], z = E[1], F = E[2], u = E[3], A[y] = aL([w, z, F, u], "rgba"), A } function au(m, w) { var p = [], s = m.length; if (void 0 === w && (w = 20), 1 === s) { p = ak(m[0], m[0], w) } else { if (s > 1) { for (var l = 0, u = s - 1; u > l; l++) { var v = ak(m[l], m[l + 1], w); u - 1 > l && v.pop(), p = p.concat(v) } } } return p } function aL(a, m) { if (m = m || "rgb", a && (3 === a.length || 4 === a.length)) { if (a = ab(a, function(i) { return i > 1 ? Math.ceil(i) : i }), m.indexOf("hex") > -1) { return "#" + ((1 << 24) + (a[0] << 16) + (a[1] << 8) + +a[2]).toString(16).slice(1) } if (m.indexOf("hs") > -1) { var l = ab(a.slice(1, 3), function(i) { return i + "%" }); a[1] = l[0], a[2] = l[1] } return m.indexOf("a") > -1 ? (3 === a.length && a.push(1), a[3] = aF(a[3], [0, 1]), m + "(" + a.slice(0, 4).join(",") + ")") : m + "(" + a.slice(0, 3).join(",") + ")" } } function aJ(a) { a = at(a), a.indexOf("rgba") < 0 && (a = aA(a)); var m = [], l = 0; return a.replace(/[\d.]+/g, function(i) { i = 3 > l ? 0 | i : +i, m[l++] = i }), m } function ac(a, o) { if (!af(a)) { return a } var l = an(a), m = l[3]; return "undefined" == typeof m && (m = 1), a.indexOf("hsb") > -1 ? l = ah(l) : a.indexOf("hsl") > -1 && (l = aH(l)), o.indexOf("hsb") > -1 || o.indexOf("hsv") > -1 ? l = Q(l) : o.indexOf("hsl") > -1 && (l = av(l)), l[3] = m, aL(l, o) } function aA(a) { return ac(a, "rgba") } function aa(a) { return ac(a, "rgb") } function aI(a) { return ac(a, "hex") } function aQ(a) { return ac(a, "hsva") } function ai(a) { return ac(a, "hsv") } function Y(a) { return ac(a, "hsba") } function ag(a) { return ac(a, "hsb") } function ap(a) { return ac(a, "hsla") } function aO(a) { return ac(a, "hsl") } function j(a) { for (var i in aj) { if (aI(aj[i]) === aI(a)) { return i } } return null } function at(a) { return String(a).replace(/\s+/g, "") } function aN(a) { if (aj[a] && (a = aj[a]), a = at(a), a = a.replace(/hsv/i, "hsb"), /^#[\da-f]{3}$/i.test(a)) { a = parseInt(a.slice(1), 16); var o = (3840 & a) << 8, l = (240 & a) << 4, m = 15 & a; a = "#" + ((1 << 24) + (o << 4) + o + (l << 4) + l + (m << 4) + m).toString(16).slice(1) } return a } function aP(m, r) { if (!af(m)) { return m } var o = r > 0 ? 1 : -1; "undefined" == typeof r && (r = 0), r = Math.abs(r) > 1 ? 1 : Math.abs(r), m = aa(m); for (var p = an(m), l = 0; 3 > l; l++) { p[l] = 1 === o ? p[l] * (1 - r) | 0 : (255 - p[l]) * r + p[l] | 0 } return "rgb(" + p.join(",") + ")" } function aK(a) { if (!af(a)) { return a } var i = an(aA(a)); return i = ab(i, function(l) { return 255 - l }), aL(i, "rgb") } function aM(u, D, w) { if (!af(u) || !af(D)) { return u } "undefined" == typeof w && (w = 0.5), w = 1 - aF(w, [0, 1]); for (var z = 2 * w - 1, p = an(aA(u)), A = an(aA(D)), B = p[3] - A[3], C = ((z * B === -1 ? z : (z + B) / (1 + z * B)) + 1) / 2, x = 1 - C, v = [], y = 0; 3 > y; y++) { v[y] = p[y] * C + A[y] * x } var E = p[3] * w + A[3] * (1 - w); return E = Math.max(0, Math.min(1, E)), 1 === p[3] && 1 === A[3] ? aL(v, "rgb") : (v[3] = E, aL(v, "rgba")) } function aq() { return "#" + (Math.random().toString(16) + "0000").slice(2, 8) } function an(u) { u = aN(u); var D = u.match(aD); if (null === D) { throw new Error("The color format error") } var w, z, p, A = []; if (D[2]) { w = D[2].replace("#", "").split(""), p = [w[0] + w[1], w[2] + w[3], w[4] + w[5]], A = ab(p, function(a) { return aF(parseInt(a, 16), [0, 255]) }) } else { if (D[4]) { var B = D[4].split(","); z = B[3], p = B.slice(0, 3), A = ab(p, function(a) { return a = Math.floor(a.indexOf("%") > 0 ? 2.55 * parseInt(a, 0) : a), aF(a, [0, 255]) }), "undefined" != typeof z && A.push(aF(parseFloat(z), [0, 1])) } else { if (D[5] || D[6]) { var C = (D[5] || D[6]).split(","), x = parseInt(C[0], 0) / 360, v = C[1], y = C[2]; z = C[3], A = ab([v, y], function(a) { return aF(parseFloat(a) / 100, [0, 1]) }), A.unshift(x), "undefined" != typeof z && A.push(aF(parseFloat(z), [0, 1])) } } } return A } function ao(a, m) { if (!af(a)) { return a } null === m && (m = 1); var l = an(aA(a)); return l[3] = aF(Number(m).toFixed(4), [0, 1]), aL(l, "rgba") } function ab(a, o) { if ("function" != typeof o) { throw new TypeError } for (var l = a ? a.length : 0, m = 0; l > m; m++) { a[m] = o(a[m]) } return a } function aF(a, i) { return a <= i[0] ? a = i[0] : a >= i[1] && (a = i[1]), a } function af(a) { return a instanceof Array || "string" == typeof a } function ah(w) { var G, y, B, u = w[0], C = w[1], E = w[2]; if (0 === C) { G = 255 * E, y = 255 * E, B = 255 * E } else { var F = 6 * u; 6 === F && (F = 0); var z = 0 | F, x = E * (1 - C), A = E * (1 - C * (F - z)), I = E * (1 - C * (1 - (F - z))), H = 0, v = 0, D = 0; 0 === z ? (H = E, v = I, D = x) : 1 === z ? (H = A, v = E, D = x) : 2 === z ? (H = x, v = E, D = I) : 3 === z ? (H = x, v = A, D = E) : 4 === z ? (H = I, v = x, D = E) : (H = E, v = x, D = A), G = 255 * H, y = 255 * v, B = 255 * D } return [G, y, B] } function aH(p) { var A, u, w, m = p[0], x = p[1], y = p[2]; if (0 === x) { A = 255 * y, u = 255 * y, w = 255 * y } else { var z; z = 0.5 > y ? y * (1 + x) : y + x - x * y; var v = 2 * y - z; A = 255 * aR(v, z, m + 1 / 3), u = 255 * aR(v, z, m), w = 255 * aR(v, z, m - 1 / 3) } return [A, u, w] } function aR(a, m, l) { return 0 > l && (l += 1), l > 1 && (l -= 1), 1 > 6 * l ? a + 6 * (m - a) * l : 1 > 2 * l ? m : 2 > 3 * l ? a + (m - a) * (2 / 3 - l) * 6 : a } function Q(u) { var D, w, z = u[0] / 255, p = u[1] / 255, A = u[2] / 255, B = Math.min(z, p, A), C = Math.max(z, p, A), x = C - B, v = C; if (0 === x) { D = 0, w = 0 } else { w = x / C; var y = ((C - z) / 6 + x / 2) / x, F = ((C - p) / 6 + x / 2) / x, E = ((C - A) / 6 + x / 2) / x; z === C ? D = E - F : p === C ? D = 1 / 3 + y - E : A === C && (D = 2 / 3 + F - y), 0 > D && (D += 1), D > 1 && (D -= 1) } return D = 360 * D, w = 100 * w, v = 100 * v, [D, w, v] } function av(u) { var D, w, z = u[0] / 255, p = u[1] / 255, A = u[2] / 255, B = Math.min(z, p, A), C = Math.max(z, p, A), x = C - B, v = (C + B) / 2; if (0 === x) { D = 0, w = 0 } else { w = 0.5 > v ? x / (C + B) : x / (2 - C - B); var y = ((C - z) / 6 + x / 2) / x, F = ((C - p) / 6 + x / 2) / x, E = ((C - A) / 6 + x / 2) / x; z === C ? D = E - F : p === C ? D = 1 / 3 + y - E : A === C && (D = 2 / 3 + F - y), 0 > D && (D += 1), D > 1 && (D -= 1) } return D = 360 * D, w = 100 * w, v = 100 * v, [D, w, v] } var az, aB = ae("../tool/util"), ad = ["#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"], ax = ad, Z = "rgba(255,255,0,0.5)", al = Z, aD = /^\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, aj = { 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: aG, resetPalette: am, getColor: aw, getHighlightColor: aC, customHighlight: q, resetHighlight: ay, getRadialGradient: aE, getLinearGradient: ar, getGradientColors: au, getStepColors: ak, reverse: aK, mix: aM, lift: aP, trim: at, random: aq, toRGB: aa, toRGBA: aA, toHex: aI, toHSL: aO, toHSLA: ap, toHSB: ag, toHSBA: Y, toHSV: ai, toHSVA: aQ, toName: j, toColor: aL, toArray: aJ, alpha: ao, getData: an } }), d("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(p) { function B(m, D, n, l, s) { x.call(this, m, D, n, l, s); var C = this; if (C._onclick = function(a) { return C.__onclick(a) }, C._ondrift = function(a, i) { return C.__ondrift(this, a, i) }, C._ondragend = function() { return C.__ondragend() }, C._setCurrentOption = function() { var a = C.timelineOption; C.currentIndex %= a.data.length; var i = C.options[C.currentIndex] || {}; C.myChart._setOption(i, a.notMerge, !0), C.messageCenter.dispatch(A.EVENT.TIMELINE_CHANGED, null, { currentIndex: C.currentIndex, data: null != a.data[C.currentIndex].name ? a.data[C.currentIndex].name : a.data[C.currentIndex] }, C.myChart) }, C._onFrame = function() { C._setCurrentOption(), C._syncHandleShape(), C.timelineOption.autoPlay && (C.playTicket = setTimeout(function() { return C.currentIndex += 1, !C.timelineOption.loop && C.currentIndex >= C.timelineOption.data.length ? (C.currentIndex = C.timelineOption.data.length - 1, void C.stop()) : void C._onFrame() }, C.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] = v.merge(this.options[this.currentIndex], this.options[0])), this.timelineOption.show && (this._buildShape(), this._syncHandleShape()), this._setCurrentOption(), this.timelineOption.autoPlay) { var C = this; this.playTicket = setTimeout(function() { C.play() }, null != this.ecTheme.animationDuration ? this.ecTheme.animationDuration : A.animationDuration) } } function u(C, K) { var E = 2, H = K.x + E, o = K.y + E + 2, I = K.width - E, J = K.height - E, F = K.symbol; if ("last" === F) { C.moveTo(H + I - 2, o + J / 3), C.lineTo(H + I - 2, o), C.lineTo(H + 2, o + J / 2), C.lineTo(H + I - 2, o + J), C.lineTo(H + I - 2, o + J / 3 * 2), C.moveTo(H, o), C.lineTo(H, o) } else { if ("next" === F) { C.moveTo(H + 2, o + J / 3), C.lineTo(H + 2, o), C.lineTo(H + I - 2, o + J / 2), C.lineTo(H + 2, o + J), C.lineTo(H + 2, o + J / 3 * 2), C.moveTo(H, o), C.lineTo(H, o) } else { if ("play" === F) { if ("stop" === K.status) { C.moveTo(H + 2, o), C.lineTo(H + I - 2, o + J / 2), C.lineTo(H + 2, o + J), C.lineTo(H + 2, o) } else { var D = "both" === K.brushType ? 2 : 3; C.rect(H + 2, o, D, J), C.rect(H + I - D - 2, o, D, J) } } else { if (F.match("image")) { var G = ""; G = F.replace(new RegExp("^image:\\/\\/"), ""), F = y.prototype.iconLibrary.image, F(C, { x: H, y: o, width: I, height: J, image: G }) } } } } } var x = p("./base"), j = p("zrender/shape/Rectangle"), y = p("../util/shape/Icon"), z = p("../util/shape/Chain"), A = p("../config"); A.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: 2000, 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 v = p("zrender/tool/util"), q = p("zrender/tool/area"), w = p("zrender/tool/event"); return B.prototype = { type: A.COMPONENT_TYPE_TIMELINE, _buildShape: function() { if (this._location = this._getLocation(), this._buildBackground(), this._buildControl(), this._chainPoint = this._getChainPoint(), this.timelineOption.label.show) { for (var a = this._getInterval(), o = 0, l = this._chainPoint.length; l > o; o += a) { this._chainPoint[o].showLabel = !0 } } this._buildChain(), this._buildHandle(); for (var o = 0, m = this.shapeList.length; m > o; o++) { this.zr.addShape(this.shapeList[o]) } }, _getLocation: function() { var C, K = this.timelineOption, E = this.reformCssArray(this.timelineOption.padding), G = this.zr.getWidth(), m = this.parsePercent(K.x, G), H = this.parsePercent(K.x2, G); null == K.width ? (C = G - m - H, H = G - H) : (C = this.parsePercent(K.width, G), H = m + C); var I, J, F = this.zr.getHeight(), D = this.parsePercent(K.height, F); return null != K.y ? (I = this.parsePercent(K.y, F), J = I + D) : (J = F - this.parsePercent(K.y2, F), I = J - D), { x: m + E[3], y: I + E[0], x2: H - E[1], y2: J - E[2], width: C - E[1] - E[3], height: D - E[0] - E[2] } }, _getReformedLabel: function(a) { var o = this.timelineOption, l = null != o.data[a].name ? o.data[a].name : o.data[a], m = o.data[a].formatter || o.label.formatter; return m && ("function" == typeof m ? l = m.call(this.myChart, l) : "string" == typeof m && (l = m.replace("{value}", l))), l }, _getInterval: function() { var E = this._chainPoint, M = this.timelineOption, F = M.label.interval; if ("auto" === F) { var I = M.label.textStyle.fontSize, C = M.data, J = M.data.length; if (J > 3) { var K, L, G = !1; for (F = 0; !G && J > F;) { F++, G = !0; for (var H = F; J > H; H += F) { if (K = E[H].x - E[H - F].x, 0 !== M.label.rotate) { L = I } else { if (C[H].textStyle) { L = q.getTextWidth(E[H].name, E[H].textFont) } else { var O = E[H].name + "", N = (O.match(/\w/g) || "").length, D = O.length - N; L = N * I * 2 / 3 + D * I } } if (L > K) { G = !1; break } } } } else { F = 1 } } else { F = F - 0 + 1 } return F }, _getChainPoint: function() { function F(a) { return null != I[a].name ? I[a].name : I[a] + "" } var R, J = this.timelineOption, M = J.symbol.toLowerCase(), l = J.symbolSize, N = J.label.rotate, P = J.label.textStyle, Q = this.getFont(P), I = J.data, L = this._location.x, W = this._location.y + this._location.height / 4 * 3, T = this._location.x2 - this._location.x, E = I.length, O = []; if (E > 1) { var D = T / E; if (D = D > 50 ? 50 : 20 > D ? 5 : D, T -= 2 * D, "number" === J.type) { for (var S = 0; E > S; S++) { O.push(L + D + T / (E - 1) * S) } } else { O[0] = new Date(F(0).replace(/-/g, "/")), O[E - 1] = new Date(F(E - 1).replace(/-/g, "/")) - O[0]; for (var S = 1; E > S; S++) { O[S] = L + D + T * (new Date(F(S).replace(/-/g, "/")) - O[0]) / O[E - 1] } O[0] = L + D } } else { O.push(L + T / 2) } for (var Y, H, C, G, K, X = [], S = 0; E > S; S++) { L = O[S], Y = I[S].symbol && I[S].symbol.toLowerCase() || M, Y.match("empty") ? (Y = Y.replace("empty", ""), C = !0) : C = !1, Y.match("star") && (H = Y.replace("star", "") - 0 || 5, Y = "star"), R = I[S].textStyle ? v.merge(I[S].textStyle || {}, P) : P, G = R.align || "center", N ? (G = N > 0 ? "right" : "left", K = [N * Math.PI / 180, L, W - 5]) : K = !1, X.push({ x: L, n: H, isEmpty: C, symbol: Y, symbolSize: I[S].symbolSize || l, color: I[S].color, borderColor: I[S].borderColor, borderWidth: I[S].borderWidth, name: this._getReformedLabel(S), textColor: R.color, textAlign: G, textBaseline: R.baseline || "middle", textX: L, textY: W - (N ? 5 : 0), textFont: I[S].textStyle ? this.getFont(R) : Q, rotation: K, showLabel: !1 }) } return X }, _buildBackground: function() { var a = this.timelineOption, o = this.reformCssArray(this.timelineOption.padding), l = this._location.width, m = this._location.height; (0 !== a.borderWidth || "rgba(0,0,0,0)" != a.backgroundColor.replace(/\s/g, "")) && this.shapeList.push(new j({ zlevel: this.getZlevelBase(), z: this.getZBase(), hoverable: !1, style: { x: this._location.x - o[3], y: this._location.y - o[0], width: l + o[1] + o[3], height: m + o[0] + o[2], brushType: 0 === a.borderWidth ? "fill" : "both", color: a.backgroundColor, strokeColor: a.borderColor, lineWidth: a.borderWidth } })) }, _buildControl: function() { var o = this, I = this.timelineOption, D = I.lineStyle, F = I.controlStyle; if ("none" !== I.controlPosition) { var l, G = F.itemSize, H = F.itemGap; "left" === I.controlPosition ? (l = this._location.x, this._location.x += 3 * (G + H)) : (l = this._location.x2 - (3 * (G + H) - H), this._location.x2 -= 3 * (G + H)); var C = this._location.y, E = { zlevel: this.getZlevelBase(), z: this.getZBase() + 1, style: { iconType: "timelineControl", symbol: "last", x: l, y: C, width: G, height: G, brushType: "stroke", color: F.normal.color, strokeColor: F.normal.color, lineWidth: D.width }, highlightStyle: { color: F.emphasis.color, strokeColor: F.emphasis.color, lineWidth: D.width + 1 }, clickable: !0 }; this._ctrLastShape = new y(E), this._ctrLastShape.onclick = function() { o.last() }, this.shapeList.push(this._ctrLastShape), l += G + H, this._ctrPlayShape = new y(v.clone(E)), this._ctrPlayShape.style.brushType = "fill", this._ctrPlayShape.style.symbol = "play", this._ctrPlayShape.style.status = this.timelineOption.autoPlay ? "playing" : "stop", this._ctrPlayShape.style.x = l, this._ctrPlayShape.onclick = function() { "stop" === o._ctrPlayShape.style.status ? o.play() : o.stop() }, this.shapeList.push(this._ctrPlayShape), l += G + H, this._ctrNextShape = new y(v.clone(E)), this._ctrNextShape.style.symbol = "next", this._ctrNextShape.style.x = l, this._ctrNextShape.onclick = function() { o.next() }, this.shapeList.push(this._ctrNextShape) } }, _buildChain: function() { var a = this.timelineOption, i = a.lineStyle; this._timelineShae = { zlevel: this.getZlevelBase(), z: this.getZBase(), style: { x: this._location.x, y: this.subPixelOptimize(this._location.y, i.width), width: this._location.x2 - this._location.x, height: this._location.height, chainPoint: this._chainPoint, brushType: "both", strokeColor: i.color, lineWidth: i.width, lineType: i.type }, hoverable: !1, clickable: !0, onclick: this._onclick }, this._timelineShae = new z(this._timelineShae), this.shapeList.push(this._timelineShae) }, _buildHandle: function() { var a = this._chainPoint[this.currentIndex], i = a.symbolSize + 1; i = 5 > i ? 5 : i, this._handleShape = { zlevel: this.getZlevelBase(), z: this.getZBase() + 1, hoverable: !1, draggable: !0, style: { iconType: "diamond", n: a.n, x: a.x - i, y: this._location.y + this._location.height / 4 - i, width: 2 * i, height: 2 * i, brushType: "both", textPosition: "specific", textX: a.x, textY: this._location.y - this._location.height / 4, textAlign: "center", textBaseline: "middle" }, highlightStyle: {}, ondrift: this._ondrift, ondragend: this._ondragend }, this._handleShape = new y(this._handleShape), this.shapeList.push(this._handleShape) }, _syncHandleShape: function() { if (this.timelineOption.show) { var a = this.timelineOption, o = a.checkpointStyle, l = this._chainPoint[this.currentIndex]; this._handleShape.style.text = o.label.show ? l.name : "", this._handleShape.style.textFont = l.textFont, this._handleShape.style.n = l.n, "auto" === o.symbol ? this._handleShape.style.iconType = "none" != l.symbol ? l.symbol : "diamond" : (this._handleShape.style.iconType = o.symbol, o.symbol.match("star") && (this._handleShape.style.n = o.symbol.replace("star", "") - 0 || 5, this._handleShape.style.iconType = "star")); var m; "auto" === o.symbolSize ? (m = l.symbolSize + 2, m = 5 > m ? 5 : m) : m = o.symbolSize - 0, this._handleShape.style.color = "auto" === o.color ? l.color ? l.color : a.controlStyle.emphasis.color : o.color, this._handleShape.style.textColor = "auto" === o.label.textStyle.color ? this._handleShape.style.color : o.label.textStyle.color, this._handleShape.highlightStyle.strokeColor = this._handleShape.style.strokeColor = "auto" === o.borderColor ? l.borderColor ? l.borderColor : "#fff" : o.borderColor, this._handleShape.style.lineWidth = "auto" === o.borderWidth ? l.borderWidth ? l.borderWidth : 0 : o.borderWidth - 0, this._handleShape.highlightStyle.lineWidth = this._handleShape.style.lineWidth + 1, this.zr.animate(this._handleShape.id, "style").when(500, { x: l.x - m, textX: l.x, y: this._location.y + this._location.height / 4 - m, width: 2 * m, height: 2 * m }).start("ExponentialOut") } }, _findChainIndex: function(a) { var o = this._chainPoint, l = o.length; if (a <= o[0].x) { return 0 } if (a >= o[l - 1].x) { return l - 1 } for (var m = 0; l - 1 > m; m++) { if (a >= o[m].x && a <= o[m + 1].x) { return Math.abs(a - o[m].x) < Math.abs(a - o[m + 1].x) ? m : m + 1 } } }, __onclick: function(a) { var m = w.getX(a.event), l = this._findChainIndex(m); return l === this.currentIndex ? !0 : (this.currentIndex = l, this.timelineOption.autoPlay && this.stop(), clearTimeout(this.playTicket), void this._onFrame()) }, __ondrift: function(m, H) { this.timelineOption.autoPlay && this.stop(); var C, D = this._chainPoint, l = D.length; m.style.x + H <= D[0].x - D[0].symbolSize ? (m.style.x = D[0].x - D[0].symbolSize, C = 0) : m.style.x + H >= D[l - 1].x - D[l - 1].symbolSize ? (m.style.x = D[l - 1].x - D[l - 1].symbolSize, C = l - 1) : (m.style.x += H, C = this._findChainIndex(m.style.x)); var E = D[C], F = E.symbolSize + 2; if (m.style.iconType = E.symbol, m.style.n = E.n, m.style.textX = m.style.x + F / 2, m.style.y = this._location.y + this._location.height / 4 - F, m.style.width = 2 * F, m.style.height = 2 * F, m.style.text = E.name, C === this.currentIndex) { return !0 } if (this.currentIndex = C, this.timelineOption.realtime) { clearTimeout(this.playTicket); var G = this; this.playTicket = setTimeout(function() { G._setCurrentOption() }, 200) } return !0 }, __ondragend: function() { this.isDragend = !0 }, ondragend: function(a, i) { this.isDragend && a.target && (!this.timelineOption.realtime && this._setCurrentOption(), i.dragOut = !0, i.dragIn = !0, i.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(a, i) { 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 != i ? i : !0, this.timelineOption.autoPlay || clearTimeout(this.playTicket), this.currentIndex = null != a ? a : 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(a) { this.timelineOption = this.reformOption(v.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 && a && (this.clear(), this._buildShape(), this._syncHandleShape()) }, onbeforDispose: function() { clearTimeout(this.playTicket) } }, y.prototype.iconLibrary.timelineControl = u, v.inherits(B, x), p("../component").define("timeline", B), B }), d("zrender/shape/Image", ["require", "./Base", "../tool/util"], function(a) { var l = a("./Base"), j = function(i) { l.call(this, i) }; return j.prototype = { type: "image", brush: function(v, F, x) { var A = this.style || {}; F && (A = this.getHighlightStyle(A, this.highlightStyle || {})); var q = A.image, B = this; if (this._imageCache || (this._imageCache = {}), "string" == typeof q) { var D = q; this._imageCache[D] ? q = this._imageCache[D] : (q = new Image, q.onload = function() { q.onload = null, B.modSelf(), x() }, q.src = D, this._imageCache[D] = q) } if (q) { if ("IMG" == q.nodeName.toUpperCase()) { if (window.ActiveXObject) { if ("complete" != q.readyState) { return } } else { if (!q.complete) { return } } } var E = A.width || q.width, y = A.height || q.height, w = A.x, z = A.y; if (!q.width || !q.height) { return } if (v.save(), this.doClip(v), this.setContext(v, A), this.setTransform(v), A.sWidth && A.sHeight) { var H = A.sx || 0, G = A.sy || 0; v.drawImage(q, H, G, A.sWidth, A.sHeight, w, z, E, y) } else { if (A.sx && A.sy) { var H = A.sx, G = A.sy, u = E - H, C = y - G; v.drawImage(q, H, G, u, C, w, z, E, y) } else { v.drawImage(q, w, z, E, y) } } A.width || (A.width = E), A.height || (A.height = y), this.style.width || (this.style.width = E), this.style.height || (this.style.height = y), this.drawText(v, A, this.style), v.restore() } }, getRect: function(i) { return { x: i.x, y: i.y, width: i.width, height: i.height } }, clearCache: function() { this._imageCache = {} } }, a("../tool/util").inherits(j, l), j }), d("zrender/loadingEffect/Bar", ["require", "./Base", "../tool/util", "../tool/color", "../shape/Rectangle"], function(l) { function r(a) { m.call(this, a) } var m = l("./Base"), p = l("../tool/util"), j = l("../tool/color"), q = l("../shape/Rectangle"); return p.inherits(r, m), r.prototype._start = function(a, x) { var o = p.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 } }), v = this.createTextShape(o.textStyle), w = this.createBackgroundShape(o.backgroundColor), u = o.effectOption, n = new q({ highlightStyle: p.clone(u) }); return n.highlightStyle.color = u.color || j.getLinearGradient(u.x, u.y, u.x + u.width, u.y + u.height, [ [0, "#ff6400"], [0.5, "#ffe100"], [1, "#b1ff00"] ]), null != o.progress ? (a(w), n.highlightStyle.width = this.adjust(o.progress, [0, 1]) * o.effectOption.width, a(n), a(v), void x()) : (n.highlightStyle.width = 0, setInterval(function() { a(w), n.highlightStyle.width < u.width ? n.highlightStyle.width += 8 : n.highlightStyle.width = 0, a(n), a(v), x() }, u.timeInterval)) }, r }), d("zrender/loadingEffect/Bubble", ["require", "./Base", "../tool/util", "../tool/color", "../shape/Circle"], function(l) { function r(a) { m.call(this, a) } var m = l("./Base"), p = l("../tool/util"), j = l("../tool/color"), q = l("../shape/Circle"); return p.inherits(r, m), r.prototype._start = function(o, C) { for (var w = p.merge(this.options, { textStyle: { color: "#888" }, backgroundColor: "rgba(250, 250, 250, 0.8)", effect: { n: 50, lineWidth: 2, brushType: "stroke", color: "random", timeInterval: 100 } }), A = this.createTextShape(w.textStyle), B = this.createBackgroundShape(w.backgroundColor), x = w.effect, v = x.n, y = x.brushType, F = x.lineWidth, E = [], n = this.canvasWidth, z = this.canvasHeight, a = 0; v > a; a++) { var D = "random" == x.color ? j.alpha(j.random(), 0.3) : x.color; E[a] = new q({ highlightStyle: { x: Math.ceil(Math.random() * n), y: Math.ceil(Math.random() * z), r: Math.ceil(40 * Math.random()), brushType: y, color: D, strokeColor: D, lineWidth: F }, animationY: Math.ceil(20 * Math.random()) }) } return setInterval(function() { o(B); for (var e = 0; v > e; e++) { var s = E[e].highlightStyle; s.y - E[e].animationY + s.r <= 0 && (E[e].highlightStyle.y = z + s.r, E[e].highlightStyle.x = Math.ceil(Math.random() * n)), E[e].highlightStyle.y -= E[e].animationY, o(E[e]) } o(A), C() }, x.timeInterval) }, r }), d("zrender/loadingEffect/DynamicLine", ["require", "./Base", "../tool/util", "../tool/color", "../shape/Line"], function(l) { function r(a) { m.call(this, a) } var m = l("./Base"), p = l("../tool/util"), j = l("../tool/color"), q = l("../shape/Line"); return p.inherits(r, m), r.prototype._start = function(o, E) { for (var x = p.merge(this.options, { textStyle: { color: "#fff" }, backgroundColor: "rgba(0, 0, 0, 0.8)", effectOption: { n: 30, lineWidth: 1, color: "random", timeInterval: 100 } }), C = this.createTextShape(x.textStyle), D = this.createBackgroundShape(x.backgroundColor), z = x.effectOption, w = z.n, A = z.lineWidth, H = [], G = this.canvasWidth, n = this.canvasHeight, B = 0; w > B; B++) { var a = -Math.ceil(1000 * Math.random()), F = Math.ceil(400 * Math.random()), I = Math.ceil(Math.random() * n), v = "random" == z.color ? j.random() : z.color; H[B] = new q({ highlightStyle: { xStart: a, yStart: I, xEnd: a + F, yEnd: I, strokeColor: v, lineWidth: A }, animationX: Math.ceil(100 * Math.random()), len: F }) } return setInterval(function() { o(D); for (var e = 0; w > e; e++) { var s = H[e].highlightStyle; s.xStart >= G && (H[e].len = Math.ceil(400 * Math.random()), s.xStart = -400, s.xEnd = -400 + H[e].len, s.yStart = Math.ceil(Math.random() * n), s.yEnd = s.yStart), s.xStart += H[e].animationX, s.xEnd += H[e].animationX, o(H[e]) } o(C), E() }, z.timeInterval) }, r }), d("zrender/loadingEffect/Ring", ["require", "./Base", "../tool/util", "../tool/color", "../shape/Ring", "../shape/Sector"], function(l) { function u(a) { m.call(this, a) } var m = l("./Base"), p = l("../tool/util"), j = l("../tool/color"), q = l("../shape/Ring"), s = l("../shape/Sector"); return p.inherits(u, m), u.prototype._start = function(v, H) { var B = p.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 } }), G = B.effect, D = B.textStyle; null == D.x && (D.x = G.x), null == D.y && (D.y = G.y + (G.r0 + G.r) / 2 - 5); for (var A = this.createTextShape(B.textStyle), E = this.createBackgroundShape(B.backgroundColor), K = G.x, J = G.y, r = G.r0 + 6, F = G.r - 6, o = G.color, I = j.lift(o, 0.1), M = new q({ highlightStyle: p.clone(G) }), z = [], n = j.getGradientColors(["#ff6400", "#ffe100", "#97ff00"], 25), w = 15, C = 240, L = 0; 16 > L; L++) { z.push(new s({ highlightStyle: { x: K, y: J, r0: r, r: F, startAngle: C - w, endAngle: C, brushType: "fill", color: I }, _color: j.getLinearGradient(K + r * Math.cos(C, !0), J - r * Math.sin(C, !0), K + r * Math.cos(C - w, !0), J - r * Math.sin(C - w, !0), [ [0, n[2 * L]], [1, n[2 * L + 1]] ]) })), C -= w } C = 360; for (var L = 0; 4 > L; L++) { z.push(new s({ highlightStyle: { x: K, y: J, r0: r, r: F, startAngle: C - w, endAngle: C, brushType: "fill", color: I }, _color: j.getLinearGradient(K + r * Math.cos(C, !0), J - r * Math.sin(C, !0), K + r * Math.cos(C - w, !0), J - r * Math.sin(C - w, !0), [ [0, n[2 * L + 32]], [1, n[2 * L + 33]] ]) })), C -= w } var a = 0; if (null != B.progress) { v(E), a = 100 * this.adjust(B.progress, [0, 1]).toFixed(2) / 5, M.highlightStyle.text = 5 * a + "%", v(M); for (var L = 0; 20 > L; L++) { z[L].highlightStyle.color = a > L ? z[L]._color : I, v(z[L]) } return v(A), void H() } return setInterval(function() { v(E), a += a >= 20 ? -20 : 1, v(M); for (var e = 0; 20 > e; e++) { z[e].highlightStyle.color = a > e ? z[e]._color : I, v(z[e]) } v(A), H() }, G.timeInterval) }, u }), d("zrender/loadingEffect/Spin", ["require", "./Base", "../tool/util", "../tool/color", "../tool/area", "../shape/Sector"], function(l) { function u(a) { m.call(this, a) } var m = l("./Base"), p = l("../tool/util"), j = l("../tool/color"), q = l("../tool/area"), s = l("../shape/Sector"); return p.inherits(u, m), u.prototype._start = function(v, H) { var B = p.merge(this.options, { textStyle: { color: "#fff", textAlign: "start" }, backgroundColor: "rgba(0, 0, 0, 0.8)" }), G = this.createTextShape(B.textStyle), D = 10, A = q.getTextWidth(G.highlightStyle.text, G.highlightStyle.textFont), E = q.getTextHeight(G.highlightStyle.text, G.highlightStyle.textFont), K = p.merge(this.options.effect || {}, { r0: 9, r: 15, n: 18, color: "#fff", timeInterval: 100 }), J = this.getLocation(this.options.textStyle, A + D + 2 * K.r, Math.max(2 * K.r, E)); K.x = J.x + K.r, K.y = G.highlightStyle.y = J.y + J.height / 2, G.highlightStyle.x = K.x + K.r + D; for (var r = this.createBackgroundShape(B.backgroundColor), F = K.n, o = K.x, I = K.y, M = K.r0, z = K.r, n = K.color, w = [], C = Math.round(180 / F), L = 0; F > L; L++) { w[L] = new s({ highlightStyle: { x: o, y: I, r0: M, r: z, startAngle: C * L * 2, endAngle: C * L * 2 + C, color: j.alpha(n, (L + 1) / F), brushType: "fill" } }) } var a = [0, o, I]; return setInterval(function() { v(r), a[0] -= 0.3; for (var e = 0; F > e; e++) { w[e].rotation = a, v(w[e]) } v(G), H() }, K.timeInterval) }, u }), d("zrender/loadingEffect/Whirling", ["require", "./Base", "../tool/util", "../tool/area", "../shape/Ring", "../shape/Droplet", "../shape/Circle"], function(l) { function w(a) { m.call(this, a) } var m = l("./Base"), p = l("../tool/util"), j = l("../tool/area"), q = l("../shape/Ring"), u = l("../shape/Droplet"), v = l("../shape/Circle"); return p.inherits(w, m), w.prototype._start = function(o, C) { var x = p.merge(this.options, { textStyle: { color: "#888", textAlign: "start" }, backgroundColor: "rgba(250, 250, 250, 0.8)" }), z = this.createTextShape(x.textStyle), s = 10, A = j.getTextWidth(z.highlightStyle.text, z.highlightStyle.textFont), F = j.getTextHeight(z.highlightStyle.text, z.highlightStyle.textFont), E = p.merge(this.options.effect || {}, { r: 18, colorIn: "#fff", colorOut: "#555", colorWhirl: "#6cf", timeInterval: 50 }), n = this.getLocation(this.options.textStyle, A + s + 2 * E.r, Math.max(2 * E.r, F)); E.x = n.x + E.r, E.y = z.highlightStyle.y = n.y + n.height / 2, z.highlightStyle.x = E.x + E.r + s; var B = this.createBackgroundShape(x.backgroundColor), a = new u({ highlightStyle: { a: Math.round(E.r / 2), b: Math.round(E.r - E.r / 6), brushType: "fill", color: E.colorWhirl } }), D = new v({ highlightStyle: { r: Math.round(E.r / 6), brushType: "fill", color: E.colorIn } }), G = new q({ highlightStyle: { r0: Math.round(E.r - E.r / 3), r: E.r, brushType: "fill", color: E.colorOut } }), r = [0, E.x, E.y]; return a.highlightStyle.x = D.highlightStyle.x = G.highlightStyle.x = r[1], a.highlightStyle.y = D.highlightStyle.y = G.highlightStyle.y = r[2], setInterval(function() { o(B), o(G), r[0] -= 0.3, a.rotation = r, o(a), o(D), o(z), C() }, E.timeInterval) }, w }), d("echarts/theme/macarons", [], function() { var a = { 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: [ [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 a }), d("echarts/theme/infographic", [], function() { var a = { 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: [ [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 a }), d("zrender/dep/excanvas", ["require"], function() { return document.createElement("canvas").getContext ? G_vmlCanvasManager = !1 : ! function() { function ai() { return this.context_ || (this.context_ = new ak(this)) } function aM(a, m) { var l = aD.call(arguments, 2); return function() { return a.apply(m, l.concat(aD.call(arguments))) } } function aq(a) { return String(a).replace(/&/g, "&").replace(/"/g, """) } function aA(a, m, l) { a.namespaces[m] || a.namespaces.add(m, l, "#default#VML") } function aa(a) { if (aA(a, "g_vml_", "urn:schemas-microsoft-com:vml"), aA(a, "g_o_", "urn:schemas-microsoft-com:office:office"), !a.styleSheets.ex_canvas_) { var i = a.createStyleSheet(); i.owningElement.id = "ex_canvas_", i.cssText = "canvas{display:inline-block;overflow:hidden;text-align:left;width:300px;height:150px}" } } function aC(a) { var i = a.srcElement; switch (a.propertyName) { case "width": i.getContext().clearRect(), i.style.width = i.attributes.width.nodeValue + "px", i.firstChild.style.width = i.clientWidth + "px"; break; case "height": i.getContext().clearRect(), i.style.height = i.attributes.height.nodeValue + "px", i.firstChild.style.height = i.clientHeight + "px" } } function aI(a) { var i = a.srcElement; i.firstChild && (i.firstChild.style.width = i.clientWidth + "px", i.firstChild.style.height = i.clientHeight + "px") } function aK() { return [ [1, 0, 0], [0, 1, 0], [0, 0, 1] ] } function aw(m, v) { for (var p = aK(), q = 0; 3 > q; q++) { for (var l = 0; 3 > l; l++) { for (var s = 0, u = 0; 3 > u; u++) { s += m[q][u] * v[u][l] } p[q][l] = s } } return p } function ao(a, i) { i.fillStyle = a.fillStyle, i.lineCap = a.lineCap, i.lineJoin = a.lineJoin, i.lineWidth = a.lineWidth, i.miterLimit = a.miterLimit, i.shadowBlur = a.shadowBlur, i.shadowColor = a.shadowColor, i.shadowOffsetX = a.shadowOffsetX, i.shadowOffsetY = a.shadowOffsetY, i.strokeStyle = a.strokeStyle, i.globalAlpha = a.globalAlpha, i.font = a.font, i.textAlign = a.textAlign, i.textBaseline = a.textBaseline, i.scaleX_ = a.scaleX_, i.scaleY_ = a.scaleY_, i.lineScale_ = a.lineScale_ } function ay(a) { var o = a.indexOf("(", 3), l = a.indexOf(")", o + 1), m = a.substring(o + 1, l).split(","); return (4 != m.length || "a" != a.charAt(3)) && (m[3] = 1), m } function aR(a) { return parseFloat(a) / 100 } function aP(a, m, l) { return Math.min(l, Math.max(m, a)) } function ag(p) { var z, q, v, m, w, x; if (m = parseFloat(p[0]) / 360 % 360, 0 > m && m++, w = aP(aR(p[1]), 0, 1), x = aP(aR(p[2]), 0, 1), 0 == w) { z = q = v = x } else { var y = 0.5 > x ? x * (1 + w) : x + w - x * w, u = 2 * x - y; z = aE(u, y, m + 1 / 3), q = aE(u, y, m), v = aE(u, y, m - 1 / 3) } return "#" + ah[Math.floor(255 * z)] + ah[Math.floor(255 * q)] + ah[Math.floor(255 * v)] } function aE(a, m, l) { return 0 > l && l++, l > 1 && l--, 1 > 6 * l ? a + 6 * (m - a) * l : 1 > 2 * l ? m : 2 > 3 * l ? a + (m - a) * (2 / 3 - l) * 6 : a } function ae(m) { if (m in aJ) { return aJ[m] } var s, p = 1; if (m = String(m), "#" == m.charAt(0)) { s = m } else { if (/^rgb/.test(m)) { for (var q, l = ay(m), s = "#", r = 0; 3 > r; r++) { q = -1 != l[r].indexOf("%") ? Math.floor(255 * aR(l[r])) : +l[r], s += ah[aP(q, 0, 255)] } p = +l[3] } else { if (/^hsl/.test(m)) { var l = ay(m); s = ag(l), p = l[3] } else { s = ap[m] || m } } } return aJ[m] = { color: s, alpha: p } } function aO(m) { if (aX[m]) { return aX[m] } var q, o = document.createElement("div"), p = o.style; try { p.font = m, q = p.fontFamily.split(",")[0] } catch (l) {} return aX[m] = { style: p.fontStyle || an.style, variant: p.fontVariant || an.variant, weight: p.fontWeight || an.weight, size: p.fontSize || an.size, family: q || an.family } } function aW(m, s) { var p = {}; for (var q in m) { p[q] = m[q] } var l = parseFloat(s.currentStyle.fontSize), r = parseFloat(m.size); return p.size = "number" == typeof m.size ? m.size : -1 != m.size.indexOf("px") ? r : -1 != m.size.indexOf("em") ? l * r : -1 != m.size.indexOf("%") ? l / 100 * r : -1 != m.size.indexOf("pt") ? r / 0.75 : l, p } function am(a) { return a.style + " " + a.variant + " " + a.weight + " " + a.size + "px '" + a.family + "'" } function ac(a) { return aH[a] || "square" } function ak(a) { this.m_ = aK(), this.mStack_ = [], this.aStack_ = [], this.currentPath_ = [], this.strokeStyle = "#000", this.fillStyle = "#000", this.lineWidth = 1, this.lineJoin = "miter", this.lineCap = "butt", this.miterLimit = 1 * ab, this.globalAlpha = 1, this.font = "12px 微软雅黑", this.textAlign = "left", this.textBaseline = "alphabetic", this.canvas = a; var o = "width:" + a.clientWidth + "px;height:" + a.clientHeight + "px;overflow:hidden;position:absolute", l = a.ownerDocument.createElement("div"); l.style.cssText = o, a.appendChild(l); var m = l.cloneNode(!1); m.style.backgroundColor = "#fff", m.style.filter = "alpha(opacity=0)", a.appendChild(m), this.element_ = l, this.scaleX_ = 1, this.scaleY_ = 1, this.lineScale_ = 1 } function au(a, o, l, m) { a.currentPath_.push({ type: "bezierCurveTo", cp1x: o.x, cp1y: o.y, cp2x: l.x, cp2y: l.y, x: m.x, y: m.y }), a.currentX_ = m.x, a.currentY_ = m.y } function aU(m, s) { var p = ae(m.strokeStyle), q = p.color, l = p.alpha * m.globalAlpha, r = m.lineScale_ * m.lineWidth; 1 > r && (l *= r), s.push("') } function j(B, bb, N, a3) { var v = B.fillStyle, a4 = B.scaleX_, a8 = B.scaleY_, a9 = a3.x - N.x, a0 = a3.y - N.y; if (v instanceof aQ) { var L = 0, a1 = { x: 0, y: 0 }, bf = 0, be = 1; if ("gradient" == v.type_) { var A = v.x0_ / a4, a6 = v.y0_ / a8, bd = v.x1_ / a4, bj = v.y1_ / a8, H = ax(B, A, a6), w = ax(B, bd, bj), D = w.x - H.x, Y = w.y - H.y; L = 180 * Math.atan2(D, Y) / Math.PI, 0 > L && (L += 360), 1e-06 > L && (L = 0) } else { var H = ax(B, v.x0_, v.y0_); a1 = { x: (H.x - N.x) / a9, y: (H.y - N.y) / a0 }, a9 /= a4 * ab, a0 /= a8 * ab; var bh = af.max(a9, a0); bf = 2 * v.r0_ / bh, be = 2 * v.r1_ / bh - bf } var q = v.colors_; q.sort(function(a, i) { return a.offset - i.offset }); for (var bg = q.length, bi = q[0].color, Z = q[bg - 1].color, Q = q[0].alpha * B.globalAlpha, R = q[bg - 1].alpha * B.globalAlpha, ba = [], C = 0; bg > C; C++) { var G = q[C]; ba.push(G.offset * be + bf + " " + G.color) } bb.push('') } else { if (v instanceof aS) { if (a9 && a0) { var bc = -N.x, bk = -N.y; bb.push("') } } else { var a2 = ae(B.fillStyle), a5 = a2.color, a7 = a2.alpha * B.globalAlpha; bb.push('') } } } function ax(a, o, l) { var m = a.m_; return { x: ab * (o * m[0][0] + l * m[1][0] + m[2][0]) - az, y: ab * (o * m[0][1] + l * m[1][1] + m[2][1]) - az } } function aT(a) { return isFinite(a[0][0]) && isFinite(a[0][1]) && isFinite(a[1][0]) && isFinite(a[1][1]) && isFinite(a[2][0]) && isFinite(a[2][1]) } function aV(a, o, l) { if (aT(o) && (a.m_ = o, a.scaleX_ = Math.sqrt(o[0][0] * o[0][0] + o[0][1] * o[0][1]), a.scaleY_ = Math.sqrt(o[1][0] * o[1][0] + o[1][1] * o[1][1]), l)) { var m = o[0][0] * o[1][1] - o[0][1] * o[1][0]; a.lineScale_ = aY(aN(m)) } } function aQ(a) { this.type_ = a, this.x0_ = 0, this.y0_ = 0, this.r0_ = 0, this.x1_ = 0, this.y1_ = 0, this.r1_ = 0, this.colors_ = [] } function aS(a, i) { switch (ar(a), i) { case "repeat": case null: case "": this.repetition_ = "repeat"; break; case "repeat-x": case "repeat-y": case "no-repeat": this.repetition_ = i; break; default: av("SYNTAX_ERR") } this.src_ = a.src, this.width_ = a.width, this.height_ = a.height } function av(a) { throw new at(a) } function ar(a) { a && 1 == a.nodeType && "IMG" == a.tagName || av("TYPE_MISMATCH_ERR"), "complete" != a.readyState && av("INVALID_STATE_ERR") } function at(a) { this.code = this[a], this.message = a + ": DOM Exception " + this.code } var af = Math, aL = af.round, aj = af.sin, al = af.cos, aN = af.abs, aY = af.sqrt, ab = 10, az = ab / 2, aD = (+navigator.userAgent.match(/MSIE ([\d.]+)?/)[1], Array.prototype.slice); aa(document); var aF = { init: function(a) { var l = a || document; l.createElement("canvas"), l.attachEvent("onreadystatechange", aM(this.init_, this, l)) }, init_: function(a) { for (var m = a.getElementsByTagName("canvas"), l = 0; l < m.length; l++) { this.initElement(m[l]) } }, initElement: function(e) { if (!e.getContext) { e.getContext = ai, aa(e.ownerDocument), e.innerHTML = "", e.attachEvent("onpropertychange", aC), e.attachEvent("onresize", aI); var a = e.attributes; a.width && a.width.specified ? e.style.width = a.width.nodeValue + "px" : e.width = e.clientWidth, a.height && a.height.specified ? e.style.height = a.height.nodeValue + "px" : e.height = e.clientHeight } return e } }; aF.init(); for (var ah = [], aB = 0; 16 > aB; aB++) { for (var ad = 0; 16 > ad; ad++) { ah[16 * aB + ad] = aB.toString(16) + ad.toString(16) } } var ap = { 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" }, aJ = {}, an = { style: "normal", variant: "normal", weight: "normal", size: 12, family: "微软雅黑" }, aX = {}, aH = { butt: "flat", round: "round" }, aZ = ak.prototype; aZ.clearRect = function() { this.textMeasureEl_ && (this.textMeasureEl_.removeNode(!0), this.textMeasureEl_ = null), this.element_.innerHTML = "" }, aZ.beginPath = function() { this.currentPath_ = [] }, aZ.moveTo = function(a, m) { var l = ax(this, a, m); this.currentPath_.push({ type: "moveTo", x: l.x, y: l.y }), this.currentX_ = l.x, this.currentY_ = l.y }, aZ.lineTo = function(a, m) { var l = ax(this, a, m); this.currentPath_.push({ type: "lineTo", x: l.x, y: l.y }), this.currentX_ = l.x, this.currentY_ = l.y }, aZ.bezierCurveTo = function(p, z, q, v, m, w) { var x = ax(this, m, w), y = ax(this, p, z), u = ax(this, q, v); au(this, y, u, x) }, aZ.quadraticCurveTo = function(m, x, p, q) { var l = ax(this, m, x), u = ax(this, p, q), v = { x: this.currentX_ + 2 / 3 * (l.x - this.currentX_), y: this.currentY_ + 2 / 3 * (l.y - this.currentY_) }, w = { x: v.x + (u.x - this.currentX_) / 3, y: v.y + (u.y - this.currentY_) / 3 }; au(this, v, w, u) }, aZ.arc = function(u, D, w, z, p, A) { w *= ab; var B = A ? "at" : "wa", C = u + al(z) * w - az, x = D + aj(z) * w - az, v = u + al(p) * w - az, y = D + aj(p) * w - az; C != v || A || (C += 0.125); var F = ax(this, u, D), E = ax(this, C, x), q = ax(this, v, y); this.currentPath_.push({ type: B, x: F.x, y: F.y, radius: w, xStart: E.x, yStart: E.y, xEnd: q.x, yEnd: q.y }) }, aZ.rect = function(a, o, l, m) { this.moveTo(a, o), this.lineTo(a + l, o), this.lineTo(a + l, o + m), this.lineTo(a, o + m), this.closePath() }, aZ.strokeRect = function(m, q, o, p) { var l = this.currentPath_; this.beginPath(), this.moveTo(m, q), this.lineTo(m + o, q), this.lineTo(m + o, q + p), this.lineTo(m, q + p), this.closePath(), this.stroke(), this.currentPath_ = l }, aZ.fillRect = function(m, q, o, p) { var l = this.currentPath_; this.beginPath(), this.moveTo(m, q), this.lineTo(m + o, q), this.lineTo(m + o, q + p), this.lineTo(m, q + p), this.closePath(), this.fill(), this.currentPath_ = l }, aZ.createLinearGradient = function(m, q, o, p) { var l = new aQ("gradient"); return l.x0_ = m, l.y0_ = q, l.x1_ = o, l.y1_ = p, l }, aZ.createRadialGradient = function(m, v, p, q, l, s) { var u = new aQ("gradientradial"); return u.x0_ = m, u.y0_ = v, u.r0_ = p, u.x1_ = q, u.y1_ = l, u.r1_ = s, u }, aZ.drawImage = function(B) { var O, F, J, v, K, M, N, H, E = B.runtimeStyle.width, I = B.runtimeStyle.height; B.runtimeStyle.width = "auto", B.runtimeStyle.height = "auto"; var R = B.width, Q = B.height; if (B.runtimeStyle.width = E, B.runtimeStyle.height = I, 3 == arguments.length) { O = arguments[1], F = arguments[2], K = M = 0, N = J = R, H = v = Q } else { if (5 == arguments.length) { O = arguments[1], F = arguments[2], J = arguments[3], v = arguments[4], K = M = 0, N = R, H = Q } else { if (9 != arguments.length) { throw Error("Invalid number of arguments") } K = arguments[1], M = arguments[2], N = arguments[3], H = arguments[4], O = arguments[5], F = arguments[6], J = arguments[7], v = arguments[8] } } var A = ax(this, O, F), L = [], z = 10, P = 10, T = w = 1; if (L.push(" '), (K || M) && L.push('
'), L.push('
'), (K || M) && L.push("
"), L.push("
"), this.element_.insertAdjacentHTML("BeforeEnd", L.join("")) }, aZ.stroke = function(p) { var z = [], q = 10, v = 10; z.push(" w.x) && (w.x = u.x), (null == m.y || u.y < m.y) && (m.y = u.y), (null == w.y || u.y > w.y) && (w.y = u.y)) } z.push(' ">'), p ? j(this, z, m, w) : aU(this, z), z.push(""), this.element_.insertAdjacentHTML("beforeEnd", z.join("")) }, aZ.fill = function() { this.stroke(!0) }, aZ.closePath = function() { this.currentPath_.push({ type: "close" }) }, aZ.save = function() { var a = {}; ao(this, a), this.aStack_.push(a), this.mStack_.push(this.m_), this.m_ = aw(aK(), this.m_) }, aZ.restore = function() { this.aStack_.length && (ao(this.aStack_.pop(), this), this.m_ = this.mStack_.pop()) }, aZ.translate = function(a, m) { var l = [ [1, 0, 0], [0, 1, 0], [a, m, 1] ]; aV(this, aw(l, this.m_), !1) }, aZ.rotate = function(a) { var o = al(a), l = aj(a), m = [ [o, l, 0], [-l, o, 0], [0, 0, 1] ]; aV(this, aw(m, this.m_), !1) }, aZ.scale = function(a, m) { var l = [ [a, 0, 0], [0, m, 0], [0, 0, 1] ]; aV(this, aw(l, this.m_), !0) }, aZ.transform = function(m, v, p, q, l, s) { var u = [ [m, v, 0], [p, q, 0], [l, s, 1] ]; aV(this, aw(u, this.m_), !0) }, aZ.setTransform = function(m, v, p, q, l, s) { var u = [ [m, v, 0], [p, q, 0], [l, s, 1] ]; aV(this, u, !0) }, aZ.drawText_ = function(w, H, C, i, D) { var F = this.m_, G = 1000, A = 0, y = G, B = { x: 0, y: 0 }, J = [], I = aW(aO(this.font), this.element_), v = am(I), E = this.element_.currentStyle, u = this.textAlign.toLowerCase(); switch (u) { case "left": case "center": case "right": break; case "end": u = "ltr" == E.direction ? "right" : "left"; break; case "start": u = "rtl" == E.direction ? "right" : "left"; break; default: u = "left" } switch (this.textBaseline) { case "hanging": case "top": B.y = I.size / 1.75; break; case "middle": break; default: case null: case "alphabetic": case "ideographic": case "bottom": B.y = -I.size / 2.25 } switch (u) { case "right": A = G, y = 0.05; break; case "center": A = y = G / 2 } var q = ax(this, H + B.x, C + B.y); J.push(''), D ? aU(this, J) : j(this, J, { x: -A, y: 0 }, { x: y, y: I.size }); var x = F[0][0].toFixed(3) + "," + F[1][0].toFixed(3) + "," + F[0][1].toFixed(3) + "," + F[1][1].toFixed(3) + ",0,0", z = aL(q.x / ab) + "," + aL(q.y / ab); J.push('', '', ''), this.element_.insertAdjacentHTML("beforeEnd", J.join("")) }, aZ.fillText = function(a, o, l, m) { this.drawText_(a, o, l, m, !1) }, aZ.strokeText = function(a, o, l, m) { this.drawText_(a, o, l, m, !0) }, aZ.measureText = function(a) { if (!this.textMeasureEl_) { var o = ''; this.element_.insertAdjacentHTML("beforeEnd", o), this.textMeasureEl_ = this.element_.lastChild } var l = this.element_.ownerDocument; this.textMeasureEl_.innerHTML = ""; try { this.textMeasureEl_.style.font = this.font } catch (m) {} return this.textMeasureEl_.appendChild(l.createTextNode(a)), { width: this.textMeasureEl_.offsetWidth } }, aZ.clip = function() {}, aZ.arcTo = function() {}, aZ.createPattern = function(a, i) { return new aS(a, i) }, aQ.prototype.addColorStop = function(a, i) { i = ae(i), this.colors_.push({ offset: a, color: i.color, alpha: i.alpha }) }; var aG = at.prototype = new Error; aG.INDEX_SIZE_ERR = 1, aG.DOMSTRING_SIZE_ERR = 2, aG.HIERARCHY_REQUEST_ERR = 3, aG.WRONG_DOCUMENT_ERR = 4, aG.INVALID_CHARACTER_ERR = 5, aG.NO_DATA_ALLOWED_ERR = 6, aG.NO_MODIFICATION_ALLOWED_ERR = 7, aG.NOT_FOUND_ERR = 8, aG.NOT_SUPPORTED_ERR = 9, aG.INUSE_ATTRIBUTE_ERR = 10, aG.INVALID_STATE_ERR = 11, aG.SYNTAX_ERR = 12, aG.INVALID_MODIFICATION_ERR = 13, aG.NAMESPACE_ERR = 14, aG.INVALID_ACCESS_ERR = 15, aG.VALIDATION_ERR = 16, aG.TYPE_MISMATCH_ERR = 17, G_vmlCanvasManager = aF, CanvasRenderingContext2D = ak, CanvasGradient = aQ, CanvasPattern = aS, DOMException = at }(), G_vmlCanvasManager }), d("zrender/mixin/Eventful", ["require"], function() { var a = function() { this._handlers = {} }; return a.prototype.one = function(j, o, l) { var m = this._handlers; return o && j ? (m[j] || (m[j] = []), m[j].push({ h: o, one: !0, ctx: l || this }), this) : this }, a.prototype.bind = function(j, o, l) { var m = this._handlers; return o && j ? (m[j] || (m[j] = []), m[j].push({ h: o, one: !1, ctx: l || this }), this) : this }, a.prototype.unbind = function(l, r) { var m = this._handlers; if (!l) { return this._handlers = {}, this } if (r) { if (m[l]) { for (var p = [], j = 0, q = m[l].length; q > j; j++) { m[l][j].h != r && p.push(m[l][j]) } m[l] = p } m[l] && 0 === m[l].length && delete m[l] } else { delete m[l] } return this }, a.prototype.dispatch = function(l) { if (this._handlers[l]) { var r = arguments, m = r.length; m > 3 && (r = Array.prototype.slice.call(r, 1)); for (var p = this._handlers[l], j = p.length, q = 0; j > q;) { switch (m) { case 1: p[q].h.call(p[q].ctx); break; case 2: p[q].h.call(p[q].ctx, r[1]); break; case 3: p[q].h.call(p[q].ctx, r[1], r[2]); break; default: p[q].h.apply(p[q].ctx, r) } p[q].one ? (p.splice(q, 1), j--) : q++ } } return this }, a.prototype.dispatchWithContext = function(l) { if (this._handlers[l]) { var u = arguments, m = u.length; m > 4 && (u = Array.prototype.slice.call(u, 1, u.length - 1)); for (var p = u[u.length - 1], j = this._handlers[l], q = j.length, s = 0; q > s;) { switch (m) { case 1: j[s].h.call(p); break; case 2: j[s].h.call(p, u[1]); break; case 3: j[s].h.call(p, u[1], u[2]); break; default: j[s].h.apply(p, u) } j[s].one ? (j.splice(s, 1), q--) : s++ } } return this }, a }), d("zrender/tool/log", ["require", "../config"], function(a) { var i = a("../config"); return function() { if (0 !== i.debugMode) { if (1 == i.debugMode) { for (var j in arguments) { throw new Error(arguments[j]) } } else { if (i.debugMode > 1) { for (var j in arguments) { console.log(arguments[j]) } } } } } }), d("zrender/tool/guid", [], function() { var a = 2311; return function() { return "zrender__" + a++ } }), d("zrender/Handler", ["require", "./config", "./tool/env", "./tool/event", "./tool/util", "./tool/vector", "./tool/matrix", "./mixin/Eventful"], function(w) { function H(a, i) { return function(e, l) { return a.call(i, e, l) } } function z(a, i) { return function(l, m, e) { return a.call(i, l, m, e) } } function C(a) { for (var l = v.length; l--;) { var m = v[l]; a["_" + m + "Handler"] = H(q[m], a) } } function j(m, r, o) { if (this._draggingTarget && this._draggingTarget.id == m.id || m.isSilent()) { return !1 } var p = this._event; if (m.isCover(r, o)) { m.hoverable && this.storage.addHover(m); for (var l = m.parent; l;) { if (l.clipShape && !l.clipShape.isCover(this._mouseX, this._mouseY)) { return !1 } l = l.parent } return this._lastHover != m && (this._processOutShape(p), this._processDragLeave(p), this._lastHover = m, this._processDragEnter(p)), this._processOverShape(p), this._processDragOver(p), this._hasfound = 1, !0 } return !1 } var D = w("./config"), F = w("./tool/env"), G = w("./tool/event"), A = w("./tool/util"), x = w("./tool/vector"), B = w("./tool/matrix"), K = D.EVENT, J = w("./mixin/Eventful"), v = ["resize", "click", "dblclick", "mousewheel", "mousemove", "mouseout", "mouseup", "mousedown", "touchstart", "touchend", "touchmove"], E = function(a) { if (window.G_vmlCanvasManager) { return !0 } a = a || window.event; var i = a.toElement || a.relatedTarget || a.srcElement || a.target; return i && i.className.match(D.elementClassName) }, q = { resize: function(a) { a = a || window.event, this._lastHover = null, this._isMouseDown = 0, this.dispatch(K.RESIZE, a) }, click: function(a, m) { if (E(a) || m) { a = this._zrenderEventFixed(a); var l = this._lastHover; (l && l.clickable || !l) && this._clickThreshold < 5 && this._dispatchAgency(l, K.CLICK, a), this._mousemoveHandler(a) } }, dblclick: function(a, m) { if (E(a) || m) { a = a || window.event, a = this._zrenderEventFixed(a); var l = this._lastHover; (l && l.clickable || !l) && this._clickThreshold < 5 && this._dispatchAgency(l, K.DBLCLICK, a), this._mousemoveHandler(a) } }, mousewheel: function(m, M) { if (E(m) || M) { m = this._zrenderEventFixed(m); var p = m.wheelDelta || -m.detail, s = p > 0 ? 1.1 : 1 / 1.1, l = !1, u = this._mouseX, y = this._mouseY; this.painter.eachBuildinLayer(function(n) { var a = n.position; if (n.zoomable) { n.__zoom = n.__zoom || 1; var e = n.__zoom; e *= s, e = Math.max(Math.min(n.maxZoom, e), n.minZoom), s = e / n.__zoom, n.__zoom = e, a[0] -= (u - a[0]) * (s - 1), a[1] -= (y - a[1]) * (s - 1), n.scale[0] *= s, n.scale[1] *= s, n.dirty = !0, l = !0, G.stop(m) } }), l && this.painter.refresh(), this._dispatchAgency(this._lastHover, K.MOUSEWHEEL, m), this._mousemoveHandler(m) } }, mousemove: function(m, u) { if ((E(m) || u) && !this.painter.isLoading()) { m = this._zrenderEventFixed(m), this._lastX = this._mouseX, this._lastY = this._mouseY, this._mouseX = G.getX(m), this._mouseY = G.getY(m); var p = this._mouseX - this._lastX, r = this._mouseY - this._lastY; this._processDragStart(m), this._hasfound = 0, this._event = m, this._iterateAndFindHover(), this._hasfound || ((!this._draggingTarget || this._lastHover && this._lastHover != this._draggingTarget) && (this._processOutShape(m), this._processDragLeave(m)), this._lastHover = null, this.storage.delHover(), this.painter.clearHover()); var l = "default"; if (this._draggingTarget) { this.storage.drift(this._draggingTarget.id, p, r), this._draggingTarget.modSelf(), this.storage.addHover(this._draggingTarget), this._clickThreshold++ } else { if (this._isMouseDown) { var s = !1; this.painter.eachBuildinLayer(function(a) { a.panable && (l = "move", a.position[0] += p, a.position[1] += r, s = !0, a.dirty = !0) }), s && this.painter.refresh() } } this._draggingTarget || this._hasfound && this._lastHover.draggable ? l = "move" : this._hasfound && this._lastHover.clickable && (l = "pointer"), this.root.style.cursor = l, this._dispatchAgency(this._lastHover, K.MOUSEMOVE, m), (this._draggingTarget || this._hasfound || this.storage.hasHoverShape()) && this.painter.refreshHover() } }, mouseout: function(a, m) { if (E(a) || m) { a = this._zrenderEventFixed(a); var l = a.toElement || a.relatedTarget; if (l != this.root) { for (; l && 9 != l.nodeType;) { if (l == this.root) { return void this._mousemoveHandler(a) } l = l.parentNode } } a.zrenderX = this._lastX, a.zrenderY = this._lastY, this.root.style.cursor = "default", this._isMouseDown = 0, this._processOutShape(a), this._processDrop(a), this._processDragEnd(a), this.painter.isLoading() || this.painter.refreshHover(), this.dispatch(K.GLOBALOUT, a) } }, mousedown: function(a, i) { if (E(a) || i) { if (this._clickThreshold = 0, 2 == this._lastDownButton) { return this._lastDownButton = a.button, void(this._mouseDownTarget = null) } this._lastMouseDownMoment = new Date, a = this._zrenderEventFixed(a), this._isMouseDown = 1, this._mouseDownTarget = this._lastHover, this._dispatchAgency(this._lastHover, K.MOUSEDOWN, a), this._lastDownButton = a.button } }, mouseup: function(a, i) { (E(a) || i) && (a = this._zrenderEventFixed(a), this.root.style.cursor = "default", this._isMouseDown = 0, this._mouseDownTarget = null, this._dispatchAgency(this._lastHover, K.MOUSEUP, a), this._processDrop(a), this._processDragEnd(a)) }, touchstart: function(a, i) { (E(a) || i) && (a = this._zrenderEventFixed(a, !0), this._lastTouchMoment = new Date, this._mobileFindFixed(a), this._mousedownHandler(a)) }, touchmove: function(a, i) { (E(a) || i) && (a = this._zrenderEventFixed(a, !0), this._mousemoveHandler(a), this._isDragging && G.stop(a)) }, touchend: function(a, m) { if (E(a) || m) { a = this._zrenderEventFixed(a, !0), this._mouseupHandler(a); var l = new Date; l - this._lastTouchMoment < K.touchClickDelay && (this._mobileFindFixed(a), this._clickHandler(a), l - this._lastClickMoment < K.touchClickDelay / 2 && (this._dblclickHandler(a), this._lastHover && this._lastHover.clickable && G.stop(a)), this._lastClickMoment = l), this.painter.clearHover() } } }, I = function(a, l, i) { J.call(this), this.root = a, this.storage = l, this.painter = i, this._lastX = this._lastY = this._mouseX = this._mouseY = 0, this._findHover = z(j, this), this._domHover = i.getDomHover(), C(this), window.addEventListener ? (window.addEventListener("resize", this._resizeHandler), F.os.tablet || F.os.phone ? (a.addEventListener("touchstart", this._touchstartHandler), a.addEventListener("touchmove", this._touchmoveHandler), a.addEventListener("touchend", this._touchendHandler)) : (a.addEventListener("click", this._clickHandler), a.addEventListener("dblclick", this._dblclickHandler), a.addEventListener("mousewheel", this._mousewheelHandler), a.addEventListener("mousemove", this._mousemoveHandler), a.addEventListener("mousedown", this._mousedownHandler), a.addEventListener("mouseup", this._mouseupHandler)), a.addEventListener("DOMMouseScroll", this._mousewheelHandler), a.addEventListener("mouseout", this._mouseoutHandler)) : (window.attachEvent("onresize", this._resizeHandler), a.attachEvent("onclick", this._clickHandler), a.ondblclick = this._dblclickHandler, a.attachEvent("onmousewheel", this._mousewheelHandler), a.attachEvent("onmousemove", this._mousemoveHandler), a.attachEvent("onmouseout", this._mouseoutHandler), a.attachEvent("onmousedown", this._mousedownHandler), a.attachEvent("onmouseup", this._mouseupHandler)) }; I.prototype.on = function(a, m, l) { return this.bind(a, m, l), this }, I.prototype.un = function(a, i) { return this.unbind(a, i), this }, I.prototype.trigger = function(a, i) { switch (a) { case K.RESIZE: case K.CLICK: case K.DBLCLICK: case K.MOUSEWHEEL: case K.MOUSEMOVE: case K.MOUSEDOWN: case K.MOUSEUP: case K.MOUSEOUT: this["_" + a + "Handler"](i, !0) } }, I.prototype.dispose = function() { var a = this.root; window.removeEventListener ? (window.removeEventListener("resize", this._resizeHandler), F.os.tablet || F.os.phone ? (a.removeEventListener("touchstart", this._touchstartHandler), a.removeEventListener("touchmove", this._touchmoveHandler), a.removeEventListener("touchend", this._touchendHandler)) : (a.removeEventListener("click", this._clickHandler), a.removeEventListener("dblclick", this._dblclickHandler), a.removeEventListener("mousewheel", this._mousewheelHandler), a.removeEventListener("mousemove", this._mousemoveHandler), a.removeEventListener("mousedown", this._mousedownHandler), a.removeEventListener("mouseup", this._mouseupHandler)), a.removeEventListener("DOMMouseScroll", this._mousewheelHandler), a.removeEventListener("mouseout", this._mouseoutHandler)) : (window.detachEvent("onresize", this._resizeHandler), a.detachEvent("onclick", this._clickHandler), a.detachEvent("dblclick", this._dblclickHandler), a.detachEvent("onmousewheel", this._mousewheelHandler), a.detachEvent("onmousemove", this._mousemoveHandler), a.detachEvent("onmouseout", this._mouseoutHandler), a.detachEvent("onmousedown", this._mousedownHandler), a.detachEvent("onmouseup", this._mouseupHandler)), this.root = this._domHover = this.storage = this.painter = null, this.un() }, I.prototype._processDragStart = function(a) { var m = this._lastHover; if (this._isMouseDown && m && m.draggable && !this._draggingTarget && this._mouseDownTarget == m) { if (m.dragEnableTime && new Date - this._lastMouseDownMoment < m.dragEnableTime) { return } var l = m; this._draggingTarget = l, this._isDragging = 1, l.invisible = !0, this.storage.mod(l.id), this._dispatchAgency(l, K.DRAGSTART, a), this.painter.refresh() } }, I.prototype._processDragEnter = function(a) { this._draggingTarget && this._dispatchAgency(this._lastHover, K.DRAGENTER, a, this._draggingTarget) }, I.prototype._processDragOver = function(a) { this._draggingTarget && this._dispatchAgency(this._lastHover, K.DRAGOVER, a, this._draggingTarget) }, I.prototype._processDragLeave = function(a) { this._draggingTarget && this._dispatchAgency(this._lastHover, K.DRAGLEAVE, a, this._draggingTarget) }, I.prototype._processDrop = function(a) { this._draggingTarget && (this._draggingTarget.invisible = !1, this.storage.mod(this._draggingTarget.id), this.painter.refresh(), this._dispatchAgency(this._lastHover, K.DROP, a, this._draggingTarget)) }, I.prototype._processDragEnd = function(a) { this._draggingTarget && (this._dispatchAgency(this._draggingTarget, K.DRAGEND, a), this._lastHover = null), this._isDragging = 0, this._draggingTarget = null }, I.prototype._processOverShape = function(a) { this._dispatchAgency(this._lastHover, K.MOUSEOVER, a) }, I.prototype._processOutShape = function(a) { this._dispatchAgency(this._lastHover, K.MOUSEOUT, a) }, I.prototype._dispatchAgency = function(m, O, p, u) { var l = "on" + O, y = { type: O, event: p, target: m, cancelBubble: !1 }, M = m; for (u && (y.dragged = u); M && (M[l] && (y.cancelBubble = M[l](y)), M.dispatch(O, y), M = M.parent, !y.cancelBubble);) {} if (m) { y.cancelBubble || this.dispatch(O, y) } else { if (!u) { var N = { type: O, event: p }; this.dispatch(O, N), this.painter.eachOtherLayer(function(a) { "function" == typeof a[l] && a[l](N), a.dispatch && a.dispatch(O, N) }) } } }, I.prototype._iterateAndFindHover = function() { var a = B.create(); return function() { for (var u, l, m = this.storage.getShapeList(), e = [0, 0], p = m.length - 1; p >= 0; p--) { var s = m[p]; if (u !== s.zlevel && (l = this.painter.getLayer(s.zlevel, l), e[0] = this._mouseX, e[1] = this._mouseY, l.needTransform && (B.invert(a, l.transform), x.applyTransform(e, e, a))), this._findHover(s, e[0], e[1])) { break } } } }(); var L = [{ x: 10 }, { x: -20 }, { x: 10, y: 10 }, { y: -20 }]; return I.prototype._mobileFindFixed = function(a) { this._lastHover = null, this._mouseX = a.zrenderX, this._mouseY = a.zrenderY, this._event = a, this._iterateAndFindHover(); for (var m = 0; !this._lastHover && m < L.length; m++) { var l = L[m]; l.x && (this._mouseX += l.x), l.y && (this._mouseY += l.y), this._iterateAndFindHover() } this._lastHover && (a.zrenderX = this._mouseX, a.zrenderY = this._mouseY) }, I.prototype._zrenderEventFixed = function(m, r) { if (m.zrenderFixed) { return m } if (r) { var o = "touchend" != m.type ? m.targetTouches[0] : m.changedTouches[0]; if (o) { var p = this.painter._domRoot.getBoundingClientRect(); m.zrenderX = o.clientX - p.left, m.zrenderY = o.clientY - p.top } } else { m = m || window.event; var l = m.toElement || m.relatedTarget || m.srcElement || m.target; l && l != this._domHover && (m.zrenderX = ("undefined" != typeof m.offsetX ? m.offsetX : m.layerX) + l.offsetLeft, m.zrenderY = ("undefined" != typeof m.offsetY ? m.offsetY : m.layerY) + l.offsetTop) } return m.zrenderFixed = 1, m }, A.merge(I.prototype, J.prototype, !0), I }), d("zrender/Painter", ["require", "./config", "./tool/util", "./tool/log", "./loadingEffect/Base", "./Layer", "./shape/Image"], function(m) { function z() { return !1 } function q() {} function v(a) { return a ? a.isBuildin ? !0 : "function" != typeof a.resize || "function" != typeof a.refresh ? !1 : !0 : !1 } var j = m("./config"), w = m("./tool/util"), x = m("./tool/log"), y = m("./loadingEffect/Base"), u = m("./Layer"), p = function(a, l) { this.root = a, a.style["-webkit-tap-highlight-color"] = "transparent", a.style["-webkit-user-select"] = "none", a.style["user-select"] = "none", a.style["-webkit-touch-callout"] = "none", this.storage = l, a.innerHTML = "", this._width = this._getWidth(), this._height = this._getHeight(); var r = document.createElement("div"); this._domRoot = r, r.style.position = "relative", r.style.overflow = "hidden", r.style.width = this._width + "px", r.style.height = this._height + "px", a.appendChild(r), this._layers = {}, this._zlevelList = [], this._layerConfig = {}, this._loadingEffect = new y({}), 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 = j.elementClassName, r.appendChild(this._bgDom), this._bgDom.onselectstart = z; var s = new u("_zrender_hover_", this); this._layers.hover = s, r.appendChild(s.dom), s.initContext(), s.dom.onselectstart = z, s.dom.style["-webkit-user-select"] = "none", s.dom.style["user-select"] = "none", s.dom.style["-webkit-touch-callout"] = "none", this.refreshNextFrame = null }; return p.prototype.render = function(a) { return this.isLoading() && this.hideLoading(), this.refresh(a, !0), this }, p.prototype.refresh = function(r, C) { var s = this.storage.getShapeList(!0); this._paintList(s, C); for (var A = 0; A < this._zlevelList.length; A++) { var l = this._zlevelList[A], B = this._layers[l]; !B.isBuildin && B.refresh && B.refresh() } return "function" == typeof r && r(), this }, p.prototype._preProcessLayer = function(a) { a.unusedCount++, a.updateTransform() }, p.prototype._postProcessLayer = function(a) { a.dirty = !1, 1 == a.unusedCount && a.clear() }, p.prototype._paintList = function(a, G) { "undefined" == typeof G && (G = !1), this._updateLayerStatus(a); var A, D, E; this.eachBuildinLayer(this._preProcessLayer); for (var F = 0, B = a.length; B > F; F++) { var r = a[F]; if (D !== r.zlevel && (A && (A.needTransform && E.restore(), E.flush && E.flush()), D = r.zlevel, A = this.getLayer(D), A.isBuildin || x("ZLevel " + D + " has been used by unkown layer " + A.id), E = A.ctx, A.unusedCount = 0, (A.dirty || G) && A.clear(), A.needTransform && (E.save(), A.setTransform(E))), (A.dirty || G) && !r.invisible && (!r.onbrush || r.onbrush && !r.onbrush(E, !1))) { if (j.catchBrushException) { try { r.brush(E, !1, this.refreshNextFrame) } catch (C) { x(C, "brush error of " + r.type, r) } } else { r.brush(E, !1, this.refreshNextFrame) } } r.__dirty = !1 } A && (A.needTransform && E.restore(), E.flush && E.flush()), this.eachBuildinLayer(this._postProcessLayer) }, p.prototype.getLayer = function(a) { var i = this._layers[a]; return i || (i = new u(a, this), i.isBuildin = !0, this._layerConfig[a] && w.merge(i, this._layerConfig[a], !0), i.updateTransform(), this.insertLayer(a, i), i.initContext()), i }, p.prototype.insertLayer = function(n, C) { if (this._layers[n]) { return void x("ZLevel " + n + " has been used already") } if (!v(C)) { return void x("Layer of zlevel " + n + " is not valid") } var r = this._zlevelList.length, l = null, A = -1; if (r > 0 && n > this._zlevelList[0]) { for (A = 0; r - 1 > A && !(this._zlevelList[A] < n && this._zlevelList[A + 1] > n); A++) {} l = this._layers[this._zlevelList[A]] } this._zlevelList.splice(A + 1, 0, n); var B = l ? l.dom : this._bgDom; B.nextSibling ? B.parentNode.insertBefore(C.dom, B.nextSibling) : B.parentNode.appendChild(C.dom), this._layers[n] = C }, p.prototype.eachLayer = function(a, r) { for (var l = 0; l < this._zlevelList.length; l++) { var o = this._zlevelList[l]; a.call(r, this._layers[o], o) } }, p.prototype.eachBuildinLayer = function(o, A) { for (var r = 0; r < this._zlevelList.length; r++) { var s = this._zlevelList[r], l = this._layers[s]; l.isBuildin && o.call(A, l, s) } }, p.prototype.eachOtherLayer = function(o, A) { for (var r = 0; r < this._zlevelList.length; r++) { var s = this._zlevelList[r], l = this._layers[s]; l.isBuildin || o.call(A, l, s) } }, p.prototype.getLayers = function() { return this._layers }, p.prototype._updateLayerStatus = function(A) { var G = this._layers, B = {}; this.eachBuildinLayer(function(a, i) { B[i] = a.elCount, a.elCount = 0 }); for (var C = 0, l = A.length; l > C; C++) { var D = A[C], E = D.zlevel, F = G[E]; if (F) { if (F.elCount++, F.dirty) { continue } F.dirty = D.__dirty } } this.eachBuildinLayer(function(a, i) { B[i] !== a.elCount && (a.dirty = !0) }) }, p.prototype.refreshShapes = function(o, A) { for (var r = 0, s = o.length; s > r; r++) { var l = o[r]; l.modSelf() } return this.refresh(A), this }, p.prototype.setLoadingEffect = function(a) { return this._loadingEffect = a, this }, p.prototype.clear = function() { return this.eachBuildinLayer(this._clearLayer), this }, p.prototype._clearLayer = function(a) { a.clear() }, p.prototype.modLayer = function(a, n) { if (n) { this._layerConfig[a] ? w.merge(this._layerConfig[a], n, !0) : this._layerConfig[a] = n; var l = this._layers[a]; l && w.merge(l, this._layerConfig[a], !0) } }, p.prototype.delLayer = function(a) { var i = this._layers[a]; i && (this.modLayer(a, { position: i.position, rotation: i.rotation, scale: i.scale }), i.dom.parentNode.removeChild(i.dom), delete this._layers[a], this._zlevelList.splice(w.indexOf(this._zlevelList, a), 1)) }, p.prototype.refreshHover = function() { this.clearHover(); for (var a = this.storage.getHoverShapes(!0), r = 0, l = a.length; l > r; r++) { this._brushHover(a[r]) } var o = this._layers.hover.ctx; return o.flush && o.flush(), this.storage.delHover(), this }, p.prototype.clearHover = function() { var a = this._layers.hover; return a && a.clear(), this }, p.prototype.showLoading = function(a) { return this._loadingEffect && this._loadingEffect.stop(), a && this.setLoadingEffect(a), this._loadingEffect.start(this), this.loading = !0, this }, p.prototype.hideLoading = function() { return this._loadingEffect.stop(), this.clearHover(), this.loading = !1, this }, p.prototype.isLoading = function() { return this.loading }, p.prototype.resize = function() { var a = this._domRoot; a.style.display = "none"; var r = this._getWidth(), l = this._getHeight(); if (a.style.display = "", this._width != r || l != this._height) { this._width = r, this._height = l, a.style.width = r + "px", a.style.height = l + "px"; for (var o in this._layers) { this._layers[o].resize(r, l) } this.refresh(null, !0) } return this }, p.prototype.clearLayer = function(a) { var i = this._layers[a]; i && i.clear() }, p.prototype.dispose = function() { this.isLoading() && this.hideLoading(), this.root.innerHTML = "", this.root = this.storage = this._domRoot = this._layers = null }, p.prototype.getDomHover = function() { return this._layers.hover.dom }, p.prototype.toDataURL = function(a, D, r) { if (window.G_vmlCanvasManager) { return null } var A = new u("image", this); this._bgDom.appendChild(A.dom), A.initContext(); var B = A.ctx; A.clearColor = D || "#fff", A.clear(); var C = this; this.storage.iterShape(function(i) { if (!i.invisible && (!i.onbrush || i.onbrush && !i.onbrush(B, !1))) { if (j.catchBrushException) { try { i.brush(B, !1, C.refreshNextFrame) } catch (n) { x(n, "brush error of " + i.type, i) } } else { i.brush(B, !1, C.refreshNextFrame) } } }, { normal: "up", update: !0 }); var l = A.dom.toDataURL(a, r); return B = null, this._bgDom.removeChild(A.dom), l }, p.prototype.getWidth = function() { return this._width }, p.prototype.getHeight = function() { return this._height }, p.prototype._getWidth = function() { var a = this.root, i = a.currentStyle || document.defaultView.getComputedStyle(a); return ((a.clientWidth || parseInt(i.width, 10)) - parseInt(i.paddingLeft, 10) - parseInt(i.paddingRight, 10)).toFixed(0) - 0 }, p.prototype._getHeight = function() { var a = this.root, i = a.currentStyle || document.defaultView.getComputedStyle(a); return ((a.clientHeight || parseInt(i.height, 10)) - parseInt(i.paddingTop, 10) - parseInt(i.paddingBottom, 10)).toFixed(0) - 0 }, p.prototype._brushHover = function(a) { var r = this._layers.hover.ctx; if (!a.onbrush || a.onbrush && !a.onbrush(r, !0)) { var l = this.getLayer(a.zlevel); if (l.needTransform && (r.save(), l.setTransform(r)), j.catchBrushException) { try { a.brush(r, !0, this.refreshNextFrame) } catch (o) { x(o, "hoverBrush error of " + a.type, a) } } else { a.brush(r, !0, this.refreshNextFrame) } l.needTransform && r.restore() } }, p.prototype._shapeToImage = function(I, B, E, e, F) { var G = document.createElement("canvas"), H = G.getContext("2d"); G.style.width = E + "px", G.style.height = e + "px", G.setAttribute("width", E * F), G.setAttribute("height", e * F), H.clearRect(0, 0, E * F, e * F); var C = { position: B.position, rotation: B.rotation, scale: B.scale }; B.position = [0, 0, 0], B.rotation = 0, B.scale = [1, 1], B && B.brush(H, !1); var A = m("./shape/Image"), D = new A({ id: I, style: { x: 0, y: 0, image: G } }); return null != C.position && (D.position = B.position = C.position), null != C.rotation && (D.rotation = B.rotation = C.rotation), null != C.scale && (D.scale = B.scale = C.scale), D }, p.prototype._createShapeToImageProcessor = function() { if (window.G_vmlCanvasManager) { return q } var a = this; return function(s, e, l, r) { return a._shapeToImage(s, e, l, r, j.devicePixelRatio) } }, p }), d("zrender/Storage", ["require", "./tool/util", "./Group"], function(l) { function r(a, i) { return a.zlevel == i.zlevel ? a.z == i.z ? a.__renderidx - i.__renderidx : a.z - i.z : a.zlevel - i.zlevel } var m = l("./tool/util"), p = l("./Group"), j = { hover: !1, normal: "down", update: !1 }, q = function() { this._elements = {}, this._hoverElements = [], this._roots = [], this._shapeList = [], this._shapeListOffset = 0 }; return q.prototype.iterShape = function(a, w) { if (w || (w = j), w.hover) { for (var s = 0, u = this._hoverElements.length; u > s; s++) { var v = this._hoverElements[s]; if (v.updateTransform(), a(v)) { return this } } } switch (w.update && this.updateShapeList(), w.normal) { case "down": for (var u = this._shapeList.length; u--;) { if (a(this._shapeList[u])) { return this } } break; default: for (var s = 0, u = this._shapeList.length; u > s; s++) { if (a(this._shapeList[s])) { return this } } } return this }, q.prototype.getHoverShapes = function(u) { for (var v = [], x = 0, t = this._hoverElements.length; t > x; x++) { v.push(this._hoverElements[x]); var y = this._hoverElements[x].hoverConnect; if (y) { var z; y = y instanceof Array ? y : [y]; for (var A = 0, w = y.length; w > A; A++) { z = y[A].id ? y[A] : this.get(y[A]), z && v.push(z) } } } if (v.sort(r), u) { for (var x = 0, t = v.length; t > x; x++) { v[x].updateTransform() } } return v }, q.prototype.getShapeList = function(a) { return a && this.updateShapeList(), this._shapeList }, q.prototype.updateShapeList = function() { this._shapeListOffset = 0; for (var a = 0, o = this._roots.length; o > a; a++) { var s = this._roots[a]; this._updateAndAddShape(s) } this._shapeList.length = this._shapeListOffset; for (var a = 0, o = this._shapeList.length; o > a; a++) { this._shapeList[a].__renderidx = a } this._shapeList.sort(r) }, q.prototype._updateAndAddShape = function(a, u) { if (!a.ignore) { if (a.updateTransform(), a.clipShape && (a.clipShape.parent = a, a.clipShape.updateTransform(), u ? (u = u.slice(), u.push(a.clipShape)) : u = [a.clipShape]), "group" == a.type) { for (var o = 0; o < a._children.length; o++) { var s = a._children[o]; s.__dirty = a.__dirty || s.__dirty, this._updateAndAddShape(s, u) } a.__dirty = !1 } else { a.__clipShapes = u, this._shapeList[this._shapeListOffset++] = a } } }, q.prototype.mod = function(o, u) { if ("string" == typeof o && (o = this._elements[o]), o && (o.modSelf(), u)) { if (u.parent || u._storage || u.__clipShapes) { var s = {}; for (var i in u) { "parent" !== i && "_storage" !== i && "__clipShapes" !== i && u.hasOwnProperty(i) && (s[i] = u[i]) } m.merge(o, s, !0) } else { m.merge(o, u, !0) } } return this }, q.prototype.drift = function(a, u, o) { var s = this._elements[a]; return s && (s.needTransform = !0, "horizontal" === s.draggable ? o = 0 : "vertical" === s.draggable && (u = 0), (!s.ondrift || s.ondrift && !s.ondrift(u, o)) && s.drift(u, o)), this }, q.prototype.addHover = function(a) { return a.updateNeedTransform(), this._hoverElements.push(a), this }, q.prototype.delHover = function() { return this._hoverElements = [], this }, q.prototype.hasHoverShape = function() { return this._hoverElements.length > 0 }, q.prototype.addRoot = function(a) { this._elements[a.id] || (a instanceof p && a.addChildrenToStorage(this), this.addToMap(a), this._roots.push(a)) }, q.prototype.delRoot = function(n) { if ("undefined" == typeof n) { for (var x = 0; x < this._roots.length; x++) { var i = this._roots[x]; i instanceof p && i.delChildrenFromStorage(this) } return this._elements = {}, this._hoverElements = [], this._roots = [], this._shapeList = [], void(this._shapeListOffset = 0) } if (n instanceof Array) { for (var x = 0, u = n.length; u > x; x++) { this.delRoot(n[x]) } } else { var v; v = "string" == typeof n ? this._elements[n] : n; var w = m.indexOf(this._roots, v); w >= 0 && (this.delFromMap(v.id), this._roots.splice(w, 1), v instanceof p && v.delChildrenFromStorage(this)) } }, q.prototype.addToMap = function(a) { return a instanceof p && (a._storage = this), a.modSelf(), this._elements[a.id] = a, this }, q.prototype.get = function(a) { return this._elements[a] }, q.prototype.delFromMap = function(a) { var i = this._elements[a]; return i && (delete this._elements[a], i instanceof p && (i._storage = null)), this }, q.prototype.dispose = function() { this._elements = this._renderList = this._roots = this._hoverElements = null }, q }), d("zrender/animation/Animation", ["require", "./Clip", "../tool/color", "../tool/util", "../tool/event"], function(w) { function H(a, i) { return a[i] } function z(a, m, l) { a[m] = l } function C(a, m, l) { return (m - a) * l + a } function j(n, P, u, m, M) { var N = n.length; if (1 == M) { for (var O = 0; N > O; O++) { m[O] = C(n[O], P[O], u) } } else { for (var y = n[0].length, O = 0; N > O; O++) { for (var p = 0; y > p; p++) { m[O][p] = C(n[O][p], P[O][p], u) } } } } function D(a) { switch (typeof a) { case "undefined": case "string": return !1 } return "undefined" != typeof a.length } function F(u, S, M, P, p, Q, R, N, y) { var O = u.length; if (1 == y) { for (var W = 0; O > W; W++) { N[W] = G(u[W], S[W], M[W], P[W], p, Q, R) } } else { for (var T = u[0].length, W = 0; O > W; W++) { for (var s = 0; T > s; s++) { N[W][s] = G(u[W][s], S[W][s], M[W][s], P[W][s], p, Q, R) } } } } function G(p, Q, u, M, m, N, O) { var P = 0.5 * (u - p), y = 0.5 * (M - Q); return (2 * (Q - u) + P + y) * O + (-3 * (Q - u) - 2 * P - y) * N + P * m + Q } function A(a) { if (D(a)) { var o = a.length; if (D(a[0])) { for (var l = [], m = 0; o > m; m++) { l.push(q.call(a[m])) } return l } return q.call(a) } return a } function x(a) { return a[0] = Math.floor(a[0]), a[1] = Math.floor(a[1]), a[2] = Math.floor(a[2]), "rgba(" + a.join(",") + ")" } var B = w("./Clip"), K = w("../tool/color"), J = w("../tool/util"), v = w("../tool/event").Dispatcher, E = window.requestAnimationFrame || window.msRequestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || function(a) { setTimeout(a, 16) }, q = Array.prototype.slice, I = function(a) { a = a || {}, this.stage = a.stage || {}, this.onframe = a.onframe || function() {}, this._clips = [], this._running = !1, this._time = 0, v.call(this) }; I.prototype = { add: function(a) { this._clips.push(a) }, remove: function(a) { if (a.__inStep) { a.__needsRemove = !0 } else { var i = J.indexOf(this._clips, a); i >= 0 && this._clips.splice(i, 1) } }, _update: function() { for (var p = (new Date).getTime(), Q = p - this._time, u = this._clips, M = u.length, m = [], N = [], O = 0; M > O; O++) { var P = u[O]; P.__inStep = !0; var y = P.step(p); P.__inStep = !1, y && (m.push(y), N.push(P)) } for (var O = 0; M > O;) { u[O].__needsRemove ? (u[O] = u[M - 1], u.pop(), M--) : O++ } M = m.length; for (var O = 0; M > O; O++) { N[O].fire(m[O]) } this._time = p, this.onframe(Q), this.dispatch("frame", Q), this.stage.update && this.stage.update() }, start: function() { function a() { i._running && (E(a), i._update()) } var i = this; this._running = !0, this._time = (new Date).getTime(), E(a) }, stop: function() { this._running = !1 }, clear: function() { this._clips = [] }, animate: function(a, m) { m = m || {}; var l = new L(a, m.loop, m.getter, m.setter); return l.animation = this, l }, constructor: I }, J.merge(I.prototype, v.prototype, !0); var L = function(l, m, i, p) { this._tracks = {}, this._target = l, this._loop = m || !1, this._getter = i || H, this._setter = p || z, this._clipCount = 0, this._delay = 0, this._doneList = [], this._onframeList = [], this._clipList = [] }; return L.prototype = { when: function(a, m) { for (var l in m) { this._tracks[l] || (this._tracks[l] = [], 0 !== a && this._tracks[l].push({ time: 0, value: A(this._getter(this._target, l)) })), this._tracks[l].push({ time: parseInt(a, 10), value: m[l] }) } return this }, during: function(a) { return this._onframeList.push(a), this }, start: function(n) { var u = this, o = this._setter, r = this._getter, y = "spline" === n, m = function() { if (u._clipCount--, 0 === u._clipCount) { u._tracks = {}; for (var l = u._doneList.length, p = 0; l > p; p++) { u._doneList[p].call(u) } } }, s = function(Z, l) { var ac = Z.length; if (ac) { var ai = Z[0].value, P = D(ai), i = !1, N = P && D(ai[0]) ? 2 : 1; Z.sort(function(p, S) { return p.time - S.time }); var U; if (ac) { U = Z[ac - 1].time; for (var ag = [], e = [], Y = 0; ac > Y; Y++) { ag.push(Z[Y].time / U); var af = Z[Y].value; "string" == typeof af && (af = K.toArray(af), 0 === af.length && (af[0] = af[1] = af[2] = 0, af[3] = 1), i = !0), e.push(af) } var ah, Y, ad, ae, V, Q, R, t = 0, aa = 0; if (i) { var M = [0, 0, 0, 0] } var O = function(p, T) { if (aa > T) { for (ah = Math.min(t + 1, ac - 1), Y = ah; Y >= 0 && !(ag[Y] <= T); Y--) {} Y = Math.min(Y, ac - 2) } else { for (Y = t; ac > Y && !(ag[Y] > T); Y++) {} Y = Math.min(Y - 1, ac - 2) } t = Y, aa = T; var S = ag[Y + 1] - ag[Y]; if (0 !== S) { if (ad = (T - ag[Y]) / S, y) { if (V = e[Y], ae = e[0 === Y ? Y : Y - 1], Q = e[Y > ac - 2 ? ac - 1 : Y + 1], R = e[Y > ac - 3 ? ac - 1 : Y + 2], P) { F(ae, V, Q, R, ad, ad * ad, ad * ad * ad, r(p, l), N) } else { var W; i ? (W = F(ae, V, Q, R, ad, ad * ad, ad * ad * ad, M, 1), W = x(M)) : W = G(ae, V, Q, R, ad, ad * ad, ad * ad * ad), o(p, l, W) } } else { if (P) { j(e[Y], e[Y + 1], ad, r(p, l), N) } else { var W; i ? (j(e[Y], e[Y + 1], ad, M, 1), W = x(M)) : W = C(e[Y], e[Y + 1], ad), o(p, l, W) } } for (Y = 0; Y < u._onframeList.length; Y++) { u._onframeList[Y](p, T) } } }, ab = new B({ target: u._target, life: U, loop: u._loop, delay: u._delay, onframe: O, ondestroy: m }); n && "spline" !== n && (ab.easing = n), u._clipList.push(ab), u._clipCount++, u.animation.add(ab) } } }; for (var a in this._tracks) { s(this._tracks[a], a) } return this }, stop: function() { for (var a = 0; a < this._clipList.length; a++) { var i = this._clipList[a]; this.animation.remove(i) } this._clipList = [] }, delay: function(a) { return this._delay = a, this }, done: function(a) { return a && this._doneList.push(a), this } }, I }), d("zrender/tool/vector", [], function() { var a = "undefined" == typeof Float32Array ? Array : Float32Array, i = { create: function(l, e) { var j = new a(2); return j[0] = l || 0, j[1] = e || 0, j }, copy: function(j, l) { return j[0] = l[0], j[1] = l[1], j }, clone: function(j) { var e = new a(2); return e[0] = j[0], e[1] = j[1], e }, set: function(j, m, l) { return j[0] = m, j[1] = l, j }, add: function(j, m, l) { return j[0] = m[0] + l[0], j[1] = m[1] + l[1], j }, scaleAndAdd: function(j, o, l, m) { return j[0] = o[0] + l[0] * m, j[1] = o[1] + l[1] * m, j }, sub: function(j, m, l) { return j[0] = m[0] - l[0], j[1] = m[1] - l[1], j }, len: function(j) { return Math.sqrt(this.lenSquare(j)) }, lenSquare: function(j) { return j[0] * j[0] + j[1] * j[1] }, mul: function(j, m, l) { return j[0] = m[0] * l[0], j[1] = m[1] * l[1], j }, div: function(j, m, l) { return j[0] = m[0] / l[0], j[1] = m[1] / l[1], j }, dot: function(j, l) { return j[0] * l[0] + j[1] * l[1] }, scale: function(j, m, l) { return j[0] = m[0] * l, j[1] = m[1] * l, j }, normalize: function(j, l) { var m = i.len(l); return 0 === m ? (j[0] = 0, j[1] = 0) : (j[0] = l[0] / m, j[1] = l[1] / m), j }, distance: function(j, l) { return Math.sqrt((j[0] - l[0]) * (j[0] - l[0]) + (j[1] - l[1]) * (j[1] - l[1])) }, distanceSquare: function(j, l) { return (j[0] - l[0]) * (j[0] - l[0]) + (j[1] - l[1]) * (j[1] - l[1]) }, negate: function(j, l) { return j[0] = -l[0], j[1] = -l[1], j }, lerp: function(j, o, l, m) { return j[0] = o[0] + m * (l[0] - o[0]), j[1] = o[1] + m * (l[1] - o[1]), j }, applyTransform: function(l, p, m) { var o = p[0], j = p[1]; return l[0] = m[0] * o + m[2] * j + m[4], l[1] = m[1] * o + m[3] * j + m[5], l }, min: function(j, m, l) { return j[0] = Math.min(m[0], l[0]), j[1] = Math.min(m[1], l[1]), j }, max: function(j, m, l) { return j[0] = Math.max(m[0], l[0]), j[1] = Math.max(m[1], l[1]), j } }; return i.length = i.len, i.lengthSquare = i.lenSquare, i.dist = i.distance, i.distSquare = i.distanceSquare, i }), d("zrender/tool/matrix", [], function() { var a = "undefined" == typeof Float32Array ? Array : Float32Array, i = { create: function() { var e = new a(6); return i.identity(e), e }, identity: function(j) { return j[0] = 1, j[1] = 0, j[2] = 0, j[3] = 1, j[4] = 0, j[5] = 0, j }, copy: function(j, l) { return j[0] = l[0], j[1] = l[1], j[2] = l[2], j[3] = l[3], j[4] = l[4], j[5] = l[5], j }, mul: function(j, m, l) { return j[0] = m[0] * l[0] + m[2] * l[1], j[1] = m[1] * l[0] + m[3] * l[1], j[2] = m[0] * l[2] + m[2] * l[3], j[3] = m[1] * l[2] + m[3] * l[3], j[4] = m[0] * l[4] + m[2] * l[5] + m[4], j[5] = m[1] * l[4] + m[3] * l[5] + m[5], j }, translate: function(j, m, l) { return j[0] = m[0], j[1] = m[1], j[2] = m[2], j[3] = m[3], j[4] = m[4] + l[0], j[5] = m[5] + l[1], j }, rotate: function(p, B, u) { var x = B[0], j = B[2], y = B[4], z = B[1], A = B[3], v = B[5], q = Math.sin(u), w = Math.cos(u); return p[0] = x * w + z * q, p[1] = -x * q + z * w, p[2] = j * w + A * q, p[3] = -j * q + w * A, p[4] = w * y + q * v, p[5] = w * v - q * y, p }, scale: function(l, p, m) { var o = m[0], j = m[1]; return l[0] = p[0] * o, l[1] = p[1] * j, l[2] = p[2] * o, l[3] = p[3] * j, l[4] = p[4] * o, l[5] = p[5] * j, l }, invert: function(m, y) { var p = y[0], u = y[2], j = y[4], v = y[1], w = y[3], x = y[5], q = p * w - v * u; return q ? (q = 1 / q, m[0] = w * q, m[1] = -v * q, m[2] = -u * q, m[3] = p * q, m[4] = (u * x - w * j) * q, m[5] = (v * j - p * x) * q, m) : null } }; return i }), d("zrender/loadingEffect/Base", ["require", "../tool/util", "../shape/Text", "../shape/Rectangle"], function(l) { function u(a) { this.setOptions(a) } var m = l("../tool/util"), p = l("../shape/Text"), j = l("../shape/Rectangle"), q = "Loading...", s = "normal 16px Arial"; return u.prototype.createTextShape = function(a) { return new p({ highlightStyle: m.merge({ x: this.canvasWidth / 2, y: this.canvasHeight / 2, text: q, textAlign: "center", textBaseline: "middle", textFont: s, color: "#333", brushType: "fill" }, a, !0) }) }, u.prototype.createBackgroundShape = function(a) { return new j({ highlightStyle: { x: 0, y: 0, width: this.canvasWidth, height: this.canvasHeight, brushType: "fill", color: a } }) }, u.prototype.start = function(a) { function o(e) { a.storage.addHover(e) } function n() { a.refreshHover() } this.canvasWidth = a._width, this.canvasHeight = a._height, this.loadingTimer = this._start(o, n) }, u.prototype._start = function() { return setInterval(function() {}, 10000) }, u.prototype.stop = function() { clearInterval(this.loadingTimer) }, u.prototype.setOptions = function(a) { this.options = a || {} }, u.prototype.adjust = function(a, i) { return a <= i[0] ? a = i[0] : a >= i[1] && (a = i[1]), a }, u.prototype.getLocation = function(r, x, v) { var w = null != r.x ? r.x : "center"; switch (w) { case "center": w = Math.floor((this.canvasWidth - x) / 2); break; case "left": w = 0; break; case "right": w = this.canvasWidth - x } var o = null != r.y ? r.y : "center"; switch (o) { case "center": o = Math.floor((this.canvasHeight - v) / 2); break; case "top": o = 0; break; case "bottom": o = this.canvasHeight - v } return { x: w, y: o, width: x, height: v } }, u }), d("zrender/Layer", ["require", "./mixin/Transformable", "./tool/util", "./config"], function(l) { function w() { return !1 } function m(s, A, x) { var y = document.createElement(A), r = x.getWidth(), z = x.getHeight(); return y.style.position = "absolute", y.style.left = 0, y.style.top = 0, y.style.width = r + "px", y.style.height = z + "px", y.width = r * u.devicePixelRatio, y.height = z * u.devicePixelRatio, y.setAttribute("data-zr-dom-id", s), y } var p = l("./mixin/Transformable"), j = l("./tool/util"), q = window.G_vmlCanvasManager, u = l("./config"), v = function(n, i) { this.id = n, this.dom = m(n, "canvas", i), this.dom.onselectstart = w, 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 = u.elementClassName, q && q.initElement(this.dom), this.domBack = null, this.ctxBack = null, this.painter = i, this.unusedCount = 0, this.config = null, this.dirty = !0, this.elCount = 0, this.clearColor = 0, this.motionBlur = !1, this.lastFrameAlpha = 0.7, this.zoomable = !1, this.panable = !1, this.maxZoom = 1 / 0, this.minZoom = 0, p.call(this) }; return v.prototype.initContext = function() { this.ctx = this.dom.getContext("2d"); var a = u.devicePixelRatio; 1 != a && this.ctx.scale(a, a) }, v.prototype.createBackBuffer = function() { if (!q) { this.domBack = m("back-" + this.id, "canvas", this.painter), this.ctxBack = this.domBack.getContext("2d"); var a = u.devicePixelRatio; 1 != a && this.ctxBack.scale(a, a) } }, v.prototype.resize = function(a, o) { var n = u.devicePixelRatio; this.dom.style.width = a + "px", this.dom.style.height = o + "px", this.dom.setAttribute("width", a * n), this.dom.setAttribute("height", o * n), 1 != n && this.ctx.scale(n, n), this.domBack && (this.domBack.setAttribute("width", a * n), this.domBack.setAttribute("height", o * n), 1 != n && this.ctxBack.scale(n, n)) }, v.prototype.clear = function() { var r = this.dom, D = this.ctx, y = r.width, B = r.height, o = this.clearColor && !q, C = this.motionBlur && !q, z = this.lastFrameAlpha, x = u.devicePixelRatio; if (C && (this.domBack || this.createBackBuffer(), this.ctxBack.globalCompositeOperation = "copy", this.ctxBack.drawImage(r, 0, 0, y / x, B / x)), D.clearRect(0, 0, y / x, B / x), o && (D.save(), D.fillStyle = this.clearColor, D.fillRect(0, 0, y / x, B / x), D.restore()), C) { var A = this.domBack; D.save(), D.globalAlpha = z, D.drawImage(A, 0, 0, y / x, B / x), D.restore() } }, j.merge(v.prototype, p.prototype), v }), d("zrender/shape/Text", ["require", "../tool/area", "./Base", "../tool/util"], function(a) { var m = a("../tool/area"), j = a("./Base"), l = function(i) { j.call(this, i) }; return l.prototype = { type: "text", brush: function(q, u) { var x = this.style; if (u && (x = this.getHighlightStyle(x, this.highlightStyle || {})), "undefined" != typeof x.text && x.text !== !1) { q.save(), this.doClip(q), this.setContext(q, x), this.setTransform(q), x.textFont && (q.font = x.textFont), q.textAlign = x.textAlign || "start", q.textBaseline = x.textBaseline || "middle"; var p, y = (x.text + "").split("\n"), z = m.getTextHeight("国", x.textFont), A = this.getRect(x), v = x.x; p = "top" == x.textBaseline ? A.y : "bottom" == x.textBaseline ? A.y + z : A.y + z / 2; for (var t = 0, w = y.length; w > t; t++) { if (x.maxWidth) { switch (x.brushType) { case "fill": q.fillText(y[t], v, p, x.maxWidth); break; case "stroke": q.strokeText(y[t], v, p, x.maxWidth); break; case "both": q.fillText(y[t], v, p, x.maxWidth), q.strokeText(y[t], v, p, x.maxWidth); break; default: q.fillText(y[t], v, p, x.maxWidth) } } else { switch (x.brushType) { case "fill": q.fillText(y[t], v, p); break; case "stroke": q.strokeText(y[t], v, p); break; case "both": q.fillText(y[t], v, p), q.strokeText(y[t], v, p); break; default: q.fillText(y[t], v, p) } } p += z } q.restore() } }, getRect: function(q) { if (q.__rect) { return q.__rect } var r = m.getTextWidth(q.text, q.textFont), s = m.getTextHeight(q.text, q.textFont), p = q.x; "end" == q.textAlign || "right" == q.textAlign ? p -= r : "center" == q.textAlign && (p -= r / 2); var t; return t = "top" == q.textBaseline ? q.y : "bottom" == q.textBaseline ? q.y - s : q.y - s / 2, q.__rect = { x: p, y: t, width: r, height: s }, q.__rect } }, a("../tool/util").inherits(l, j), l }), d("zrender/shape/Rectangle", ["require", "./Base", "../tool/util"], function(a) { var l = a("./Base"), j = function(i) { l.call(this, i) }; return j.prototype = { type: "rectangle", _buildRadiusPath: function(q, C) { var v, y, p, z, A = C.x, B = C.y, w = C.width, u = C.height, x = C.radius; "number" == typeof x ? v = y = p = z = x : x instanceof Array ? 1 === x.length ? v = y = p = z = x[0] : 2 === x.length ? (v = p = x[0], y = z = x[1]) : 3 === x.length ? (v = x[0], y = z = x[1], p = x[2]) : (v = x[0], y = x[1], p = x[2], z = x[3]) : v = y = p = z = 0; var D; v + y > w && (D = v + y, v *= w / D, y *= w / D), p + z > w && (D = p + z, p *= w / D, z *= w / D), y + p > u && (D = y + p, y *= u / D, p *= u / D), v + z > u && (D = v + z, v *= u / D, z *= u / D), q.moveTo(A + v, B), q.lineTo(A + w - y, B), 0 !== y && q.quadraticCurveTo(A + w, B, A + w, B + y), q.lineTo(A + w, B + u - p), 0 !== p && q.quadraticCurveTo(A + w, B + u, A + w - p, B + u), q.lineTo(A + z, B + u), 0 !== z && q.quadraticCurveTo(A, B + u, A, B + u - z), q.lineTo(A, B + v), 0 !== v && q.quadraticCurveTo(A, B, A + v, B) }, buildPath: function(i, m) { m.radius ? this._buildRadiusPath(i, m) : (i.moveTo(m.x, m.y), i.lineTo(m.x + m.width, m.y), i.lineTo(m.x + m.width, m.y + m.height), i.lineTo(m.x, m.y + m.height), i.lineTo(m.x, m.y)), i.closePath() }, getRect: function(i) { if (i.__rect) { return i.__rect } var m; return m = "stroke" == i.brushType || "fill" == i.brushType ? i.lineWidth || 1 : 0, i.__rect = { x: Math.round(i.x - m / 2), y: Math.round(i.y - m / 2), width: i.width + m, height: i.height + m }, i.__rect } }, a("../tool/util").inherits(j, l), j }), d("zrender/tool/area", ["require", "./util", "./curve"], function(F) { function ah(a) { return a %= B, 0 > a && (a += B), a } function O(a, w, m, p) { if (!w || !a) { return !1 } var u = a.type; Z = Z || an.getContext(); var v = ab(a, w, m, p); if ("undefined" != typeof v) { return v } if (a.buildPath && Z.isPointInPath) { return q(a, Z, w, m, p) } switch (u) { case "ellipse": return !0; case "trochoid": var n = "out" == w.location ? w.r1 + w.r2 + w.d : w.r1 - w.r2 + w.d; return D(w, m, p, n); case "rose": return D(w, m, p, w.maxr); default: return !1 } } function ab(m, w, r, s) { var l = m.type; switch (l) { case "bezier-curve": return "undefined" == typeof w.cpX2 ? Y(w.xStart, w.yStart, w.cpX1, w.cpY1, w.xEnd, w.yEnd, w.lineWidth, r, s) : af(w.xStart, w.yStart, w.cpX1, w.cpY1, w.cpX2, w.cpY2, w.xEnd, w.yEnd, w.lineWidth, r, s); case "line": return ae(w.xStart, w.yStart, w.xEnd, w.yEnd, w.lineWidth, r, s); case "polyline": return aa(w.pointList, w.lineWidth, r, s); case "ring": return al(w.x, w.y, w.r0, w.r, r, s); case "circle": return D(w.x, w.y, w.r, r, s); case "sector": var v = w.startAngle * Math.PI / 180, p = w.endAngle * Math.PI / 180; return w.clockWise || (v = -v, p = -p), ad(w.x, w.y, w.r0, w.r, v, p, !w.clockWise, r, s); case "path": return w.pathArray && R(w.pathArray, Math.max(w.lineWidth, 5), w.brushType, r, s); case "polygon": case "star": case "isogon": return A(w.pointList, r, s); case "text": var x = w.__rect || m.getRect(w); return aj(x.x, x.y, x.width, x.height, r, s); case "rectangle": case "image": return aj(w.x, w.y, w.width, w.height, r, s) } } function q(m, r, o, p, l) { return r.beginPath(), m.buildPath(r, o), r.closePath(), r.isPointInPath(p, l) } function ac(l, o, m, i) { return !O(l, o, m, i) } function ae(u, K, w, C, p, E, I) { if (0 === p) { return !1 } var J = Math.max(p, 5), x = 0, v = u; if (I > K + J && I > C + J || K - J > I && C - J > I || E > u + J && E > w + J || u - J > E && w - J > E) { return !1 } if (u === w) { return Math.abs(E - u) <= J / 2 } x = (K - C) / (u - w), v = (u * C - w * K) / (u - w); var y = x * E - I + v, L = y * y / (x * x + 1); return J / 2 * J / 2 >= L } function af(u, K, w, C, p, E, I, J, x, v, y) { if (0 === x) { return !1 } var S = Math.max(x, 5); if (y > K + S && y > C + S && y > E + S && y > J + S || K - S > y && C - S > y && E - S > y && J - S > y || v > u + S && v > w + S && v > p + S && v > I + S || u - S > v && w - S > v && p - S > v && I - S > v) { return !1 } var L = ap.cubicProjectPoint(u, K, w, C, p, E, I, J, v, y, null); return S / 2 >= L } function Y(u, K, w, C, p, E, I, J, x) { if (0 === I) { return !1 } var v = Math.max(I, 5); if (x > K + v && x > C + v && x > E + v || K - v > x && C - v > x && E - v > x || J > u + v && J > w + v && J > p + v || u - v > J && w - v > J && p - v > J) { return !1 } var y = ap.quadraticProjectPoint(u, K, w, C, p, E, J, x, null); return v / 2 >= y } function N(u, w, C, p, E, I, J, x, v) { if (0 === J) { return !1 } var y = Math.max(J, 5); x -= u, v -= w; var L = Math.sqrt(x * x + v * v); if (L - y > C || C > L + y) { return !1 } if (Math.abs(p - E) >= B) { return !0 } if (I) { var K = p; p = ah(E), E = ah(K) } else { p = ah(p), E = ah(E) } p > E && (E += B); var t = Math.atan2(v, x); return 0 > t && (t += B), t >= p && E >= t || t + B >= p && E >= t + B } function aa(r, I, v, y) { for (var I = Math.max(I, 10), p = 0, C = r.length - 1; C > p; p++) { var E = r[p][0], w = r[p][1], u = r[p + 1][0], x = r[p + 1][1]; if (ae(E, w, u, x, I, v, y)) { return !0 } } return !1 } function al(m, w, p, s, l, u) { var v = (l - m) * (l - m) + (u - w) * (u - w); return s * s > v && v > p * p } function aj(m, u, p, r, l, s) { return l >= m && m + p >= l && s >= u && u + r >= s } function D(m, r, o, p, l) { return o * o > (p - m) * (p - m) + (l - r) * (l - r) } function ad(p, E, u, w, m, x, y, C, v) { return N(p, E, (u + w) / 2, m, x, y, w - u, C, v) } function A(u, K, w) { for (var C = u.length, p = 0, E = 0, I = C - 1; C > E; E++) { var J = u[I][0], x = u[I][1], v = u[E][0], y = u[E][1]; p += ai(J, x, v, y, K, w), I = E } return 0 !== p } function ai(p, E, u, w, m, x) { if (x > E && x > w || E > x && w > x) { return 0 } if (w == E) { return 0 } var y = E > w ? 1 : -1, C = (x - E) / (w - E), v = C * (u - p) + p; return v > m ? y : 0 } function aq() { var a = G[0]; G[0] = G[1], G[1] = a } function M(y, at, I, L, v, S, X, ar, J, E) { if (E > at && E > L && E > S && E > ar || at > E && L > E && S > E && ar > E) { return 0 } var K = ap.cubicRootAt(at, L, S, ar, E, ag); if (0 === K) { return 0 } for (var aw, av, x = 0, W = -1, w = 0; K > w; w++) { var au = ag[w], C = ap.cubicAt(y, I, v, X, au); J > C || (0 > W && (W = ap.cubicExtrema(at, L, S, ar, G), G[1] < G[0] && W > 1 && aq(), aw = ap.cubicAt(at, L, S, ar, G[0]), W > 1 && (av = ap.cubicAt(at, L, S, ar, G[1]))), x += 2 == W ? au < G[0] ? at > aw ? 1 : -1 : au < G[1] ? aw > av ? 1 : -1 : av > ar ? 1 : -1 : au < G[0] ? at > aw ? 1 : -1 : aw > ar ? 1 : -1) } return x } function z(v, L, x, E, p, I, J, K) { if (K > L && K > E && K > I || L > K && E > K && I > K) { return 0 } var y = ap.quadraticRootAt(L, E, I, K, ag); if (0 === y) { return 0 } var w = ap.quadraticExtremum(L, E, I); if (w >= 0 && 1 >= w) { for (var C = 0, W = ap.quadraticAt(L, E, I, w), S = 0; y > S; S++) { var u = ap.quadraticAt(v, x, p, ag[S]); J > u || (C += ag[S] < w ? L > W ? 1 : -1 : W > I ? 1 : -1) } return C } var u = ap.quadraticAt(v, x, p, ag[0]); return J > u ? 0 : L > I ? 1 : -1 } function H(v, x, E, t, I, K, L, y) { if (y -= x, y > E || -E > y) { return 0 } var w = Math.sqrt(E * E - y * y); if (ag[0] = -w, ag[1] = w, Math.abs(t - I) >= B) { t = 0, I = B; var C = K ? 1 : -1; return L >= ag[0] + v && L <= ag[1] + v ? C : 0 } if (K) { var w = t; t = ah(I), I = ah(w) } else { t = ah(t), I = ah(I) } t > I && (I += B); for (var W = 0, S = 0; 2 > S; S++) { var u = ag[S]; if (u + v > L) { var J = Math.atan2(y, u), C = K ? 1 : -1; 0 > J && (J = B + J), (J >= t && I >= J || J + B >= t && I >= J + B) && (J > Math.PI / 2 && J < 1.5 * Math.PI && (C = -C), W += C) } } return W } function R(ar, aE, at, aA, r) { var aB = 0, az = 0, aH = 0, aF = 0, E = 0, aC = !0, s = !0; at = at || "fill"; for (var aM = "stroke" === at || "both" === at, aw = "fill" === at || "both" === at, aK = 0; aK < ar.length; aK++) { var l = ar[aK], ay = l.points; if (aC || "M" === l.command) { if (aK > 0 && (aw && (aB += ai(az, aH, aF, E, aA, r)), 0 !== aB)) { return !0 } aF = ay[ay.length - 2], E = ay[ay.length - 1], aC = !1, s && "A" !== l.command && (s = !1, az = aF, aH = E) } switch (l.command) { case "M": az = ay[0], aH = ay[1]; break; case "L": if (aM && ae(az, aH, ay[0], ay[1], aE, aA, r)) { return !0 } aw && (aB += ai(az, aH, ay[0], ay[1], aA, r)), az = ay[0], aH = ay[1]; break; case "C": if (aM && af(az, aH, ay[0], ay[1], ay[2], ay[3], ay[4], ay[5], aE, aA, r)) { return !0 } aw && (aB += M(az, aH, ay[0], ay[1], ay[2], ay[3], ay[4], ay[5], aA, r)), az = ay[4], aH = ay[5]; break; case "Q": if (aM && Y(az, aH, ay[0], ay[1], ay[2], ay[3], aE, aA, r)) { return !0 } aw && (aB += z(az, aH, ay[0], ay[1], ay[2], ay[3], aA, r)), az = ay[2], aH = ay[3]; break; case "A": var aJ = ay[0], aL = ay[1], aG = ay[2], aI = ay[3], ax = ay[4], au = ay[5], av = Math.cos(ax) * aG + aJ, u = Math.sin(ax) * aI + aL; s ? (s = !1, aF = av, E = u) : aB += ai(az, aH, av, u); var aD = (aA - aJ) * aI / aG + aJ; if (aM && N(aJ, aL, aI, ax, ax + au, 1 - ay[7], aE, aD, r)) { return !0 } aw && (aB += H(aJ, aL, aI, ax, ax + au, 1 - ay[7], aD, r)), az = Math.cos(ax + au) * aG + aJ, aH = Math.sin(ax + au) * aI + aL; break; case "z": if (aM && ae(az, aH, aF, E, aE, aA, r)) { return !0 } aC = !0 } } return aw && (aB += ai(az, aH, aF, E, aA, r)), 0 !== aB } function ao(m, u) { var p = m + ":" + u; if (ak[p]) { return ak[p] } Z = Z || an.getContext(), Z.save(), u && (Z.font = u), m = (m + "").split("\n"); for (var r = 0, l = 0, s = m.length; s > l; l++) { r = Math.max(Z.measureText(m[l]).width, r) } return Z.restore(), ak[p] = r, ++T > Q && (T = 0, ak = {}), r } function j(a, o) { var l = a + ":" + o; if (am[l]) { return am[l] } Z = Z || an.getContext(), Z.save(), o && (Z.font = o), a = (a + "").split("\n"); var m = (Z.measureText("国").width + 2) * a.length; return Z.restore(), am[l] = m, ++P > Q && (P = 0, am = {}), m } var Z, an = F("./util"), ap = F("./curve"), ak = {}, am = {}, T = 0, P = 0, Q = 5000, B = 2 * Math.PI, ag = [-1, -1, -1], G = [-1, -1]; return { isInside: O, isOutside: ac, getTextWidth: ao, getTextHeight: j, isInsidePath: R, isInsidePolygon: A, isInsideSector: ad, isInsideCircle: D, isInsideLine: ae, isInsideRect: aj, isInsidePolyline: aa, isInsideCubicStroke: af, isInsideQuadraticStroke: Y } }), d("zrender/shape/Base", ["require", "../tool/matrix", "../tool/guid", "../tool/util", "../tool/log", "../mixin/Transformable", "../mixin/Eventful", "../tool/area", "../tool/color"], function(p) { function B(K, G, e, H, I, J, E) { I && (K.font = I), K.textAlign = J, K.textBaseline = E; var i = u(G, e, H, I, J, E); G = (G + "").split("\n"); var F = p("../tool/area").getTextHeight("国", I); switch (E) { case "top": H = i.y; break; case "bottom": H = i.y + F; break; default: H = i.y + F / 2 } for (var M = 0, L = G.length; L > M; M++) { K.fillText(G[M], e, H), H += F } } function u(K, E, G, e, H, I) { var J = p("../tool/area"), F = J.getTextWidth(K, e), m = J.getTextHeight("国", e); switch (K = (K + "").split("\n"), H) { case "end": case "right": E -= F; break; case "center": E -= F / 2 } switch (I) { case "top": break; case "bottom": G -= m * K.length; break; default: G -= m * K.length / 2 } return { x: E, y: G, width: F, height: m * K.length } } var x = window.G_vmlCanvasManager, j = p("../tool/matrix"), y = p("../tool/guid"), z = p("../tool/util"), A = p("../tool/log"), v = p("../mixin/Transformable"), q = p("../mixin/Eventful"), w = function(a) { a = a || {}, this.id = a.id || y(); for (var i in a) { this[i] = a[i] } this.style = this.style || {}, this.highlightStyle = this.highlightStyle || null, this.parent = null, this.__dirty = !0, this.__clipShapes = [], v.call(this), q.call(this) }; w.prototype.invisible = !1, w.prototype.ignore = !1, w.prototype.zlevel = 0, w.prototype.draggable = !1, w.prototype.clickable = !1, w.prototype.hoverable = !0, w.prototype.z = 0, w.prototype.brush = function(a, m) { var l = this.beforeBrush(a, m); switch (a.beginPath(), this.buildPath(a, l), l.brushType) { case "both": a.fill(); case "stroke": l.lineWidth > 0 && a.stroke(); break; default: a.fill() } this.drawText(a, l, this.style), this.afterBrush(a) }, w.prototype.beforeBrush = function(a, m) { var l = this.style; return this.brushTypeOnly && (l.brushType = this.brushTypeOnly), m && (l = this.getHighlightStyle(l, this.highlightStyle || {}, this.brushTypeOnly)), "stroke" == this.brushTypeOnly && (l.strokeColor = l.strokeColor || l.color), a.save(), this.doClip(a), this.setContext(a, l), this.setTransform(a), l }, w.prototype.afterBrush = function(a) { a.restore() }; var D = [ ["color", "fillStyle"], ["strokeColor", "strokeStyle"], ["opacity", "globalAlpha"], ["lineCap", "lineCap"], ["lineJoin", "lineJoin"], ["miterLimit", "miterLimit"], ["lineWidth", "lineWidth"], ["shadowBlur", "shadowBlur"], ["shadowColor", "shadowColor"], ["shadowOffsetX", "shadowOffsetX"], ["shadowOffsetY", "shadowOffsetY"] ]; w.prototype.setContext = function(m, H) { for (var s = 0, E = D.length; E > s; s++) { var l = D[s][0], F = H[l], G = D[s][1]; "undefined" != typeof F && (m[G] = F) } }; var C = j.create(); return w.prototype.doClip = function(a) { if (this.__clipShapes && !x) { for (var n = 0; n < this.__clipShapes.length; n++) { var l = this.__clipShapes[n]; if (l.needTransform) { var m = l.transform; j.invert(C, m), a.transform(m[0], m[1], m[2], m[3], m[4], m[5]) } if (a.beginPath(), l.buildPath(a, l.style), a.clip(), l.needTransform) { var m = C; a.transform(m[0], m[1], m[2], m[3], m[4], m[5]) } } } }, w.prototype.getHighlightStyle = function(H, l, m) { var e = {}; for (var E in H) { e[E] = H[E] } var F = p("../tool/color"), G = F.getHighlightColor(); "stroke" != H.brushType ? (e.strokeColor = G, e.lineWidth = (H.lineWidth || 1) + this.getHighlightZoom(), e.brushType = "both") : "stroke" != m ? (e.strokeColor = G, e.lineWidth = (H.lineWidth || 1) + this.getHighlightZoom()) : e.strokeColor = l.strokeColor || F.mix(H.strokeColor, F.toRGB(G)); for (var E in l) { "undefined" != typeof l[E] && (e[E] = l[E]) } return e }, w.prototype.getHighlightZoom = function() { return "text" != this.type ? 6 : 2 }, w.prototype.drift = function(a, i) { this.position[0] += a, this.position[1] += i }, w.prototype.buildPath = function() { A("buildPath not implemented in " + this.type) }, w.prototype.getRect = function() { A("getRect not implemented in " + this.type) }, w.prototype.isCover = function(l, a) { var e = this.transformCoordToLocal(l, a); return l = e[0], a = e[1], this.isCoverRect(l, a) ? p("../tool/area").isInside(this, this.style, l, a) : !1 }, w.prototype.isCoverRect = function(a, m) { var l = this.style.__rect; return l || (l = this.style.__rect = this.getRect(this.style)), a >= l.x && a <= l.x + l.width && m >= l.y && m <= l.y + l.height }, w.prototype.drawText = function(G, J, M) { if ("undefined" != typeof J.text && J.text !== !1) { var t = J.textColor || J.color || J.strokeColor; G.fillStyle = t; var N, P, Q, K, I = 10, L = J.textPosition || this.textPosition || "top"; switch (L) { case "inside": case "top": case "bottom": case "left": case "right": if (this.getRect) { var T = (M || J).__rect || this.getRect(M || J); switch (L) { case "inside": Q = T.x + T.width / 2, K = T.y + T.height / 2, N = "center", P = "middle", "stroke" != J.brushType && t == J.color && (G.fillStyle = "#fff"); break; case "left": Q = T.x - I, K = T.y + T.height / 2, N = "end", P = "middle"; break; case "right": Q = T.x + T.width + I, K = T.y + T.height / 2, N = "start", P = "middle"; break; case "top": Q = T.x + T.width / 2, K = T.y - I, N = "center", P = "bottom"; break; case "bottom": Q = T.x + T.width / 2, K = T.y + T.height + I, N = "center", P = "top" } } break; case "start": case "end": var S = J.pointList || [ [J.xStart || 0, J.yStart || 0], [J.xEnd || 0, J.yEnd || 0] ], F = S.length; if (2 > F) { return } var O, E, R, W; switch (L) { case "start": O = S[1][0], E = S[0][0], R = S[1][1], W = S[0][1]; break; case "end": O = S[F - 2][0], E = S[F - 1][0], R = S[F - 2][1], W = S[F - 1][1] } Q = E, K = W; var H = Math.atan((R - W) / (E - O)) / Math.PI * 180; 0 > E - O ? H += 180 : 0 > R - W && (H += 360), I = 5, H >= 30 && 150 >= H ? (N = "center", P = "bottom", K -= I) : H > 150 && 210 > H ? (N = "right", P = "middle", Q -= I) : H >= 210 && 330 >= H ? (N = "center", P = "top", K += I) : (N = "left", P = "middle", Q += I); break; case "specific": Q = J.textX || 0, K = J.textY || 0, N = "start", P = "middle" } null != Q && null != K && B(G, J.text, Q, K, J.textFont, J.textAlign || N, J.textBaseline || P) } }, w.prototype.modSelf = function() { this.__dirty = !0, this.style && (this.style.__rect = null), this.highlightStyle && (this.highlightStyle.__rect = null) }, w.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) }, z.merge(w.prototype, v.prototype, !0), z.merge(w.prototype, q.prototype, !0), w }), d("zrender/tool/curve", ["require", "./vector"], function(x) { function L(a) { return a > -M && M > a } function C(a) { return a > M || -M > a } function G(m, u, p, r, l) { var s = 1 - l; return s * s * (s * m + 3 * l * u) + l * l * (l * r + 3 * s * p) } function j(m, u, p, r, l) { var s = 1 - l; return 3 * (((u - m) * s + 2 * (p - u) * l) * s + (r - p) * l * l) } function H(T, aa, af, y, ag, ai) { var aj = y + 3 * (aa - af) - T, ac = 3 * (af - 2 * aa + T), Z = 3 * (aa - T), ae = T - ag, an = ac * ac - 3 * aj * Z, al = ac * Z - 9 * aj * ae, S = Z * Z - 3 * ac * ae, ah = 0; if (L(an) && L(al)) { if (L(ac)) { ai[0] = 0 } else { var R = -Z / ac; R >= 0 && 1 >= R && (ai[ah++] = R) } } else { var ak = al * al - 4 * an * S; if (L(ak)) { var Q = al / an, R = -ac / aj + Q, Y = -Q / 2; R >= 0 && 1 >= R && (ai[ah++] = R), Y >= 0 && 1 >= Y && (ai[ah++] = Y) } else { if (ak > 0) { var ab = Math.sqrt(ak), aq = an * ac + 1.5 * aj * (-al + ab), t = an * ac + 1.5 * aj * (-al - ab); aq = 0 > aq ? -Math.pow(-aq, A) : Math.pow(aq, A), t = 0 > t ? -Math.pow(-t, A) : Math.pow(t, A); var R = (-ac - (aq + t)) / (3 * aj); R >= 0 && 1 >= R && (ai[ah++] = R) } else { var ad = (2 * an * ac - 3 * aj * al) / (2 * Math.sqrt(an * an * an)), ap = Math.acos(ad) / 3, ar = Math.sqrt(an), am = Math.cos(ap), R = (-ac - 2 * ar * am) / (3 * aj), Y = (-ac + ar * (am + P * Math.sin(ap))) / (3 * aj), ao = (-ac + ar * (am - P * Math.sin(ap))) / (3 * aj); R >= 0 && 1 >= R && (ai[ah++] = R), Y >= 0 && 1 >= Y && (ai[ah++] = Y), ao >= 0 && 1 >= ao && (ai[ah++] = ao) } } } return ah } function J(u, S, i, T, X) { var Y = 6 * i - 12 * S + 6 * u, Q = 9 * S + 3 * T - 3 * u - 9 * i, y = 3 * S - 3 * u, R = 0; if (L(Q)) { if (C(Y)) { var aa = -y / Y; aa >= 0 && 1 >= aa && (X[R++] = aa) } } else { var Z = Y * Y - 4 * Q * y; if (L(Z)) { X[0] = -Y / (2 * Q) } else { if (Z > 0) { var t = Math.sqrt(Z), aa = (-Y + t) / (2 * Q), W = (-Y - t) / (2 * Q); aa >= 0 && 1 >= aa && (X[R++] = aa), W >= 0 && 1 >= W && (X[R++] = W) } } } return R } function K(u, Y, Q, T, p, U) { var W = (Y - u) * p + u, X = (Q - Y) * p + Y, R = (T - Q) * p + Q, y = (X - W) * p + W, S = (R - X) * p + X, Z = (S - y) * p + y; U[0] = u, U[1] = W, U[2] = y, U[3] = Z, U[4] = Z, U[5] = S, U[6] = R, U[7] = T } function E(R, af, X, u, ab, ad, ae, Y, T, aa, ah) { var ag, Q = 0.005, ac = 1 / 0; q[0] = T, q[1] = aa; for (var ak = 0; 1 > ak; ak += 0.05) { z[0] = G(R, X, ab, ae, ak), z[1] = G(af, u, ad, Y, ak); var S = v.distSquare(q, z); ac > S && (ag = ak, ac = S) } ac = 1 / 0; for (var aj = 0; 32 > aj && !(M > Q); aj++) { var n = ag - Q, Z = ag + Q; z[0] = G(R, X, ab, ae, n), z[1] = G(af, u, ad, Y, n); var S = v.distSquare(z, q); if (n >= 0 && ac > S) { ag = n, ac = S } else { D[0] = G(R, X, ab, ae, Z), D[1] = G(af, u, ad, Y, Z); var ai = v.distSquare(D, q); 1 >= Z && ac > ai ? (ag = Z, ac = ai) : Q *= 0.5 } } return ah && (ah[0] = G(R, X, ab, ae, ag), ah[1] = G(af, u, ad, Y, ag)), Math.sqrt(ac) } function B(m, r, o, p) { var l = 1 - p; return l * (l * m + 2 * p * r) + p * p * o } function F(a, o, l, m) { return 2 * ((1 - m) * (o - a) + m * (l - o)) } function O(u, S, i, T, X) { var Y = u - 2 * S + i, Q = 2 * (S - u), y = u - T, R = 0; if (L(Y)) { if (C(Q)) { var aa = -y / Q; aa >= 0 && 1 >= aa && (X[R++] = aa) } } else { var Z = Q * Q - 4 * Y * y; if (L(Z)) { var aa = -Q / (2 * Y); aa >= 0 && 1 >= aa && (X[R++] = aa) } else { if (Z > 0) { var t = Math.sqrt(Z), aa = (-Q + t) / (2 * Y), W = (-Q - t) / (2 * Y); aa >= 0 && 1 >= aa && (X[R++] = aa), W >= 0 && 1 >= W && (X[R++] = W) } } } return R } function N(a, o, l) { var m = a + l - 2 * o; return 0 === m ? 0.5 : (a - o) / m } function w(m, S, p, u, l) { var y = (S - m) * u + m, Q = (p - S) * u + S, R = (Q - y) * u + y; l[0] = m, l[1] = y, l[2] = R, l[3] = R, l[4] = Q, l[5] = p } function I(S, ae, W, Z, Q, aa, ac, ad, X) { var Y, ag = 0.005, af = 1 / 0; q[0] = ac, q[1] = ad; for (var R = 0; 1 > R; R += 0.05) { z[0] = B(S, W, Q, R), z[1] = B(ae, Z, aa, R); var ab = v.distSquare(q, z); af > ab && (Y = R, af = ab) } af = 1 / 0; for (var ai = 0; 32 > ai && !(M > ag); ai++) { var T = Y - ag, ah = Y + ag; z[0] = B(S, W, Q, T), z[1] = B(ae, Z, aa, T); var ab = v.distSquare(z, q); if (T >= 0 && af > ab) { Y = T, af = ab } else { D[0] = B(S, W, Q, ah), D[1] = B(ae, Z, aa, ah); var u = v.distSquare(D, q); 1 >= ah && af > u ? (Y = ah, af = u) : ag *= 0.5 } } return X && (X[0] = B(S, W, Q, Y), X[1] = B(ae, Z, aa, Y)), Math.sqrt(af) } var v = x("./vector"), M = 0.0001, P = Math.sqrt(3), A = 1 / 3, q = v.create(), z = v.create(), D = v.create(); return { cubicAt: G, cubicDerivativeAt: j, cubicRootAt: H, cubicExtrema: J, cubicSubdivide: K, cubicProjectPoint: E, quadraticAt: B, quadraticDerivativeAt: F, quadraticRootAt: O, quadraticExtremum: N, quadraticSubdivide: w, quadraticProjectPoint: I } }), d("zrender/mixin/Transformable", ["require", "../tool/matrix", "../tool/vector"], function(m) { function y(a) { return a > -x && x > a } function p(a) { return a > x || -x > a } var u = m("../tool/matrix"), j = m("../tool/vector"), v = [0, 0], w = u.translate, x = 5e-05, q = 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 q.prototype = { constructor: q, updateNeedTransform: function() { this.needLocalTransform = p(this.rotation[0]) || p(this.position[0]) || p(this.position[1]) || p(this.scale[0] - 1) || p(this.scale[1] - 1) }, updateTransform: function() { this.updateNeedTransform(); var l = this.parent && this.parent.needTransform; if (this.needTransform = this.needLocalTransform || l, this.needTransform) { var o = this.transform || u.create(); if (u.identity(o), this.needLocalTransform) { var i = this.scale; if (p(i[0]) || p(i[1])) { v[0] = -i[2] || 0, v[1] = -i[3] || 0; var n = p(v[0]) || p(v[1]); n && w(o, o, v), u.scale(o, o, i), n && (v[0] = -v[0], v[1] = -v[1], w(o, o, v)) } if (this.rotation instanceof Array) { if (0 !== this.rotation[0]) { v[0] = -this.rotation[1] || 0, v[1] = -this.rotation[2] || 0; var n = p(v[0]) || p(v[1]); n && w(o, o, v), u.rotate(o, o, this.rotation[0]), n && (v[0] = -v[0], v[1] = -v[1], w(o, o, v)) } } else { 0 !== this.rotation && u.rotate(o, o, this.rotation) }(p(this.position[0]) || p(this.position[1])) && w(o, o, this.position) } l && (this.needLocalTransform ? u.mul(o, this.parent.transform, o) : u.copy(o, this.parent.transform)), this.transform = o, this.invTransform = this.invTransform || u.create(), u.invert(this.invTransform, o) } }, setTransform: function(a) { if (this.needTransform) { var i = this.transform; a.transform(i[0], i[1], i[2], i[3], i[4], i[5]) } }, lookAt: function() { var a = j.create(); return function(e) { this.transform || (this.transform = u.create()); var l = this.transform; if (j.sub(a, e, this.position), !y(a[0]) || !y(a[1])) { j.normalize(a, a); var n = this.scale; l[2] = a[0] * n[1], l[3] = a[1] * n[1], l[0] = a[1] * n[0], l[1] = -a[0] * n[0], l[4] = this.position[0], l[5] = this.position[1], this.decomposeTransform() } } }(), decomposeTransform: function() { if (this.transform) { var l = this.transform, B = l[0] * l[0] + l[1] * l[1], s = this.position, i = this.scale, z = this.rotation; p(B - 1) && (B = Math.sqrt(B)); var A = l[2] * l[2] + l[3] * l[3]; p(A - 1) && (A = Math.sqrt(A)), s[0] = l[4], s[1] = l[5], i[0] = B, i[1] = A, i[2] = i[3] = 0, z[0] = Math.atan2(-l[1] / A, l[0] / B), z[1] = z[2] = 0 } }, transformCoordToLocal: function(a, n) { var l = [a, n]; return this.needTransform && this.invTransform && j.applyTransform(l, l, this.invTransform), l } }, q }), d("zrender/Group", ["require", "./tool/guid", "./tool/util", "./mixin/Transformable", "./mixin/Eventful"], function(l) { var r = l("./tool/guid"), m = l("./tool/util"), p = l("./mixin/Transformable"), j = l("./mixin/Eventful"), q = function(a) { a = a || {}, this.id = a.id || r(); for (var n in a) { this[n] = a[n] } this.type = "group", this.clipShape = null, this._children = [], this._storage = null, this.__dirty = !0, p.call(this), j.call(this) }; return q.prototype.ignore = !1, q.prototype.children = function() { return this._children.slice() }, q.prototype.childAt = function(a) { return this._children[a] }, q.prototype.addChild = function(a) { a != this && a.parent != this && (a.parent && a.parent.removeChild(a), this._children.push(a), a.parent = this, this._storage && this._storage !== a._storage && (this._storage.addToMap(a), a instanceof q && a.addChildrenToStorage(this._storage))) }, q.prototype.removeChild = function(a) { var i = m.indexOf(this._children, a); i >= 0 && this._children.splice(i, 1), a.parent = null, this._storage && (this._storage.delFromMap(a.id), a instanceof q && a.delChildrenFromStorage(this._storage)) }, q.prototype.clearChildren = function() { for (var a = 0; a < this._children.length; a++) { var i = this._children[a]; this._storage && (this._storage.delFromMap(i.id), i instanceof q && i.delChildrenFromStorage(this._storage)) } this._children.length = 0 }, q.prototype.eachChild = function(s, w) { for (var u = !!w, v = 0; v < this._children.length; v++) { var o = this._children[v]; u ? s.call(w, o) : s(o) } }, q.prototype.traverse = function(s, w) { for (var u = !!w, v = 0; v < this._children.length; v++) { var o = this._children[v]; u ? s.call(w, o) : s(o), "group" === o.type && o.traverse(s, w) } }, q.prototype.addChildrenToStorage = function(a) { for (var o = 0; o < this._children.length; o++) { var n = this._children[o]; a.addToMap(n), n instanceof q && n.addChildrenToStorage(a) } }, q.prototype.delChildrenFromStorage = function(a) { for (var o = 0; o < this._children.length; o++) { var n = this._children[o]; a.delFromMap(n.id), n instanceof q && n.delChildrenFromStorage(a) } }, q.prototype.modSelf = function() { this.__dirty = !0 }, m.merge(q.prototype, p.prototype, !0), m.merge(q.prototype, j.prototype, !0), q }), d("zrender/animation/Clip", ["require", "./easing"], function(a) { function l(i) { this._targetPool = i.target || {}, this._targetPool instanceof Array || (this._targetPool = [this._targetPool]), this._life = i.life || 1000, this._delay = i.delay || 0, this._startTime = (new Date).getTime() + this._delay, this._endTime = this._startTime + 1000 * this._life, this.loop = "undefined" == typeof i.loop ? !1 : i.loop, this.gap = i.gap || 0, this.easing = i.easing || "Linear", this.onframe = i.onframe, this.ondestroy = i.ondestroy, this.onrestart = i.onrestart } var j = a("./easing"); return l.prototype = { step: function(m) { var p = (m - this._startTime) / this._life; if (!(0 > p)) { p = Math.min(p, 1); var o = "string" == typeof this.easing ? j[this.easing] : this.easing, i = "function" == typeof o ? o(p) : p; return this.fire("frame", i), 1 == p ? this.loop ? (this.restart(), "restart") : (this.__needsRemove = !0, "destroy") : null } }, restart: function() { var i = (new Date).getTime(), m = (i - this._startTime) % this._life; this._startTime = (new Date).getTime() - m + this.gap, this.__needsRemove = !1 }, fire: function(m, q) { for (var o = 0, p = this._targetPool.length; p > o; o++) { this["on" + m] && this["on" + m](this._targetPool[o], q) } }, constructor: l }, l }), d("zrender/animation/easing", [], function() { var a = { Linear: function(i) { return i }, QuadraticIn: function(i) { return i * i }, QuadraticOut: function(i) { return i * (2 - i) }, QuadraticInOut: function(i) { return (i *= 2) < 1 ? 0.5 * i * i : -0.5 * (--i * (i - 2) - 1) }, CubicIn: function(i) { return i * i * i }, CubicOut: function(i) { return --i * i * i + 1 }, CubicInOut: function(i) { return (i *= 2) < 1 ? 0.5 * i * i * i : 0.5 * ((i -= 2) * i * i + 2) }, QuarticIn: function(i) { return i * i * i * i }, QuarticOut: function(i) { return 1 - --i * i * i * i }, QuarticInOut: function(i) { return (i *= 2) < 1 ? 0.5 * i * i * i * i : -0.5 * ((i -= 2) * i * i * i - 2) }, QuinticIn: function(i) { return i * i * i * i * i }, QuinticOut: function(i) { return --i * i * i * i * i + 1 }, QuinticInOut: function(i) { return (i *= 2) < 1 ? 0.5 * i * i * i * i * i : 0.5 * ((i -= 2) * i * i * i * i + 2) }, SinusoidalIn: function(i) { return 1 - Math.cos(i * Math.PI / 2) }, SinusoidalOut: function(i) { return Math.sin(i * Math.PI / 2) }, SinusoidalInOut: function(i) { return 0.5 * (1 - Math.cos(Math.PI * i)) }, ExponentialIn: function(i) { return 0 === i ? 0 : Math.pow(1024, i - 1) }, ExponentialOut: function(i) { return 1 === i ? 1 : 1 - Math.pow(2, -10 * i) }, ExponentialInOut: function(i) { return 0 === i ? 0 : 1 === i ? 1 : (i *= 2) < 1 ? 0.5 * Math.pow(1024, i - 1) : 0.5 * (-Math.pow(2, -10 * (i - 1)) + 2) }, CircularIn: function(i) { return 1 - Math.sqrt(1 - i * i) }, CircularOut: function(i) { return Math.sqrt(1 - --i * i) }, CircularInOut: function(i) { return (i *= 2) < 1 ? -0.5 * (Math.sqrt(1 - i * i) - 1) : 0.5 * (Math.sqrt(1 - (i -= 2) * i) + 1) }, ElasticIn: function(j) { var o, l = 0.1, m = 0.4; return 0 === j ? 0 : 1 === j ? 1 : (!l || 1 > l ? (l = 1, o = m / 4) : o = m * Math.asin(1 / l) / (2 * Math.PI), -(l * Math.pow(2, 10 * (j -= 1)) * Math.sin(2 * (j - o) * Math.PI / m))) }, ElasticOut: function(j) { var o, l = 0.1, m = 0.4; return 0 === j ? 0 : 1 === j ? 1 : (!l || 1 > l ? (l = 1, o = m / 4) : o = m * Math.asin(1 / l) / (2 * Math.PI), l * Math.pow(2, -10 * j) * Math.sin(2 * (j - o) * Math.PI / m) + 1) }, ElasticInOut: function(j) { var o, l = 0.1, m = 0.4; return 0 === j ? 0 : 1 === j ? 1 : (!l || 1 > l ? (l = 1, o = m / 4) : o = m * Math.asin(1 / l) / (2 * Math.PI), (j *= 2) < 1 ? -0.5 * l * Math.pow(2, 10 * (j -= 1)) * Math.sin(2 * (j - o) * Math.PI / m) : l * Math.pow(2, -10 * (j -= 1)) * Math.sin(2 * (j - o) * Math.PI / m) * 0.5 + 1) }, BackIn: function(i) { var j = 1.70158; return i * i * ((j + 1) * i - j) }, BackOut: function(i) { var j = 1.70158; return --i * i * ((j + 1) * i + j) + 1 }, BackInOut: function(i) { var j = 2.5949095; return (i *= 2) < 1 ? 0.5 * i * i * ((j + 1) * i - j) : 0.5 * ((i -= 2) * i * ((j + 1) * i + j) + 2) }, BounceIn: function(e) { return 1 - a.BounceOut(1 - e) }, BounceOut: function(i) { return 1 / 2.75 > i ? 7.5625 * i * i : 2 / 2.75 > i ? 7.5625 * (i -= 1.5 / 2.75) * i + 0.75 : 2.5 / 2.75 > i ? 7.5625 * (i -= 2.25 / 2.75) * i + 0.9375 : 7.5625 * (i -= 2.625 / 2.75) * i + 0.984375 }, BounceInOut: function(e) { return 0.5 > e ? 0.5 * a.BounceIn(2 * e) : 0.5 * a.BounceOut(2 * e - 1) + 0.5 } }; return a }), d("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(w) { function H(a) { return null != a.x && null != a.y } function z(m, u, p, r, l) { E.call(this, m, u, p, r, l); var s = this; this.selectedMap = {}, this.lastShapeList = [], this.shapeHandler = { onclick: function() { s.isClick = !0 }, ondragover: function(y) { var P = y.target; P.highlightStyle = P.highlightStyle || {}; var M = P.highlightStyle, N = M.brushTyep, o = M.strokeColor, O = M.lineWidth; M.brushType = "stroke", M.strokeColor = s.ecTheme.calculableColor || x.calculableColor, M.lineWidth = "icon" === P.type ? 30 : 10, s.zr.addHoverShape(P), setTimeout(function() { M && (M.brushType = N, M.strokeColor = o, M.lineWidth = O) }, 20) }, ondrop: function(a) { null != B.get(a.dragged, "data") && (s.isDrop = !0) }, ondragend: function() { s.isDragend = !0 } } } var C = w("zrender/shape/Image"), j = w("../util/shape/Icon"), D = w("../util/shape/MarkLine"), F = w("../util/shape/Symbol"), G = w("zrender/shape/Polyline"), A = w("zrender/shape/ShapeBundle"), x = w("../config"), B = w("../util/ecData"), K = w("../util/ecAnimation"), J = w("../util/ecEffect"), v = w("../util/accMath"), E = w("../component/base"), q = w("../layout/EdgeBundling"), I = w("zrender/tool/util"), L = w("zrender/tool/area"); return z.prototype = { setCalculable: function(a) { return a.dragEnableTime = this.ecTheme.DRAG_ENABLE_TIME || x.DRAG_ENABLE_TIME, a.ondragover = this.shapeHandler.ondragover, a.ondragend = this.shapeHandler.ondragend, a.ondrop = this.shapeHandler.ondrop, a }, ondrop: function(M, W) { if (this.isDrop && M.target && !W.dragIn) { var N, P = M.target, m = M.dragged, Q = B.get(P, "seriesIndex"), S = B.get(P, "dataIndex"), T = this.series, O = this.component.legend; if (-1 === S) { if (B.get(m, "seriesIndex") == Q) { return W.dragOut = W.dragIn = W.needRefresh = !0, void(this.isDrop = !1) } N = { value: B.get(m, "value"), name: B.get(m, "name") }, this.type === x.CHART_TYPE_PIE && N.value < 0 && (N.value = 0); for (var Z = !1, Y = T[Q].data, R = 0, y = Y.length; y > R; R++) { Y[R].name === N.name && "-" === Y[R].value && (T[Q].data[R].value = N.value, Z = !0) }!Z && T[Q].data.push(N), O && O.add(N.name, m.style.color || m.style.strokeColor) } else { N = T[Q].data[S] || "-", null != N.value ? (T[Q].data[S].value = "-" != N.value ? v.accAdd(T[Q].data[S].value, B.get(m, "value")) : B.get(m, "value"), (this.type === x.CHART_TYPE_FUNNEL || this.type === x.CHART_TYPE_PIE) && (O && 1 === O.getRelatedAmount(N.name) && this.component.legend.del(N.name), N.name += this.option.nameConnector + B.get(m, "name"), O && O.add(N.name, m.style.color || m.style.strokeColor))) : T[Q].data[S] = "-" != N ? v.accAdd(T[Q].data[S], B.get(m, "value")) : B.get(m, "value") } W.dragIn = W.dragIn || !0, this.isDrop = !1; var X = this; setTimeout(function() { X.zr.trigger("mousemove", M.event) }, 300) } }, ondragend: function(m, O) { if (this.isDragend && m.target && !O.dragOut) { var p = m.target, u = B.get(p, "seriesIndex"), l = B.get(p, "dataIndex"), y = this.series; if (null != y[u].data[l].value) { y[u].data[l].value = "-"; var M = y[u].data[l].name, N = this.component.legend; N && 0 === N.getRelatedAmount(M) && N.del(M) } else { y[u].data[l] = "-" } O.dragOut = !0, O.needRefresh = !0, this.isDragend = !1 } }, onlegendSelected: function(a, o) { var l = a.selected; for (var m in this.selectedMap) { this.selectedMap[m] != l[m] && (o.needRefresh = !0), this.selectedMap[m] = l[m] } }, _buildPosition: function() { this._symbol = this.option.symbolList, this._sIndex2ShapeMap = {}, this._sIndex2ColorMap = {}, this.selectedMap = {}, this.xMarkMap = {}; for (var p, Q, u, M, m = this.series, N = { top: [], bottom: [], left: [], right: [], other: [] }, O = 0, P = m.length; P > O; O++) { m[O].type === this.type && (m[O] = this.reformOption(m[O]), this.legendHoverLink = m[O].legendHoverLink || this.legendHoverLink, p = m[O].xAxisIndex, Q = m[O].yAxisIndex, u = this.component.xAxis.getAxis(p), M = this.component.yAxis.getAxis(Q), u.type === x.COMPONENT_TYPE_AXIS_CATEGORY ? N[u.getPosition()].push(O) : M.type === x.COMPONENT_TYPE_AXIS_CATEGORY ? N[M.getPosition()].push(O) : N.other.push(O)) } for (var y in N) { N[y].length > 0 && this._buildSinglePosition(y, N[y]) } this.addShapeList() }, _buildSinglePosition: function(m, M) { var p = this._mapData(M), s = p.locationMap, l = p.maxDataLength; if (0 !== l && 0 !== s.length) { switch (m) { case "bottom": case "top": this._buildHorizontal(M, l, s, this.xMarkMap); break; case "left": case "right": this._buildVertical(M, l, s, this.xMarkMap); break; case "other": this._buildOther(M, l, s, this.xMarkMap) } for (var u = 0, y = M.length; y > u; u++) { this.buildMark(M[u]) } } }, _mapData: function(O) { for (var Z, P, S, y, T = this.series, X = 0, Y = {}, Q = "__kener__stack__", R = this.component.legend, ac = [], ab = 0, N = 0, W = O.length; W > N; N++) { if (Z = T[O[N]], S = Z.name, this._sIndex2ShapeMap[O[N]] = this._sIndex2ShapeMap[O[N]] || this.query(Z, "symbol") || this._symbol[N % this._symbol.length], R) { if (this.selectedMap[S] = R.isSelected(S), this._sIndex2ColorMap[O[N]] = R.getColor(S), y = R.getItemShape(S)) { var M = y.style; if (this.type == x.CHART_TYPE_LINE) { M.iconType = "legendLineIcon", M.symbol = this._sIndex2ShapeMap[O[N]] } else { if (Z.itemStyle.normal.barBorderWidth > 0) { var aa = y.highlightStyle; M.brushType = "both", M.x += 1, M.y += 1, M.width -= 2, M.height -= 2, M.strokeColor = aa.strokeColor = Z.itemStyle.normal.barBorderColor, aa.lineWidth = 3 } } R.setItemShape(S, y) } } else { this.selectedMap[S] = !0, this._sIndex2ColorMap[O[N]] = this.zr.getColor(O[N]) } this.selectedMap[S] && (P = Z.stack || Q + O[N], null == Y[P] ? (Y[P] = X, ac[X] = [O[N]], X++) : ac[Y[P]].push(O[N])), ab = Math.max(ab, Z.data.length) } return { locationMap: ac, maxDataLength: ab } }, _calculMarkMapXY: function(y, W, N) { for (var Q = this.series, p = 0, R = W.length; R > p; p++) { for (var S = 0, T = W[p].length; T > S; S++) { var O = W[p][S], M = "xy" == N ? 0 : "", P = this.component.grid, Y = y[O]; if ("-1" != N.indexOf("x")) { Y["counter" + M] > 0 && (Y["average" + M] = Y["sum" + M] / Y["counter" + M]); var X = this.component.xAxis.getAxis(Q[O].xAxisIndex || 0).getCoord(Y["average" + M]); Y["averageLine" + M] = [ [X, P.getYend()], [X, P.getY()] ], Y["minLine" + M] = [ [Y["minX" + M], P.getYend()], [Y["minX" + M], P.getY()] ], Y["maxLine" + M] = [ [Y["maxX" + M], P.getYend()], [Y["maxX" + M], P.getY()] ], Y.isHorizontal = !1 } if (M = "xy" == N ? 1 : "", "-1" != N.indexOf("y")) { Y["counter" + M] > 0 && (Y["average" + M] = Y["sum" + M] / Y["counter" + M]); var u = this.component.yAxis.getAxis(Q[O].yAxisIndex || 0).getCoord(Y["average" + M]); Y["averageLine" + M] = [ [P.getX(), u], [P.getXend(), u] ], Y["minLine" + M] = [ [P.getX(), Y["minY" + M]], [P.getXend(), Y["minY" + M]] ], Y["maxLine" + M] = [ [P.getX(), Y["maxY" + M]], [P.getXend(), Y["maxY" + M]] ], Y.isHorizontal = !0 } } } }, addLabel: function(u, T, M, P, p) { var Q = [M, T], R = this.deepMerge(Q, "itemStyle.normal.label"), S = this.deepMerge(Q, "itemStyle.emphasis.label"), N = R.textStyle || {}, y = S.textStyle || {}; if (R.show) { var O = u.style; O.text = this._getLabelText(T, M, P, "normal"), O.textPosition = null == R.position ? "horizontal" === p ? "right" : "top" : R.position, O.textColor = N.color, O.textFont = this.getFont(N), O.textAlign = N.align, O.textBaseline = N.baseline } if (S.show) { var U = u.highlightStyle; U.text = this._getLabelText(T, M, P, "emphasis"), U.textPosition = R.show ? u.style.textPosition : null == S.position ? "horizontal" === p ? "right" : "top" : S.position, U.textColor = y.color, U.textFont = this.getFont(y), U.textAlign = y.align, U.textBaseline = y.baseline } return u }, _getLabelText: function(m, u, p, r) { var l = this.deepQuery([u, m], "itemStyle." + r + ".label.formatter"); l || "emphasis" !== r || (l = this.deepQuery([u, m], "itemStyle.normal.label.formatter")); var s = this.getDataFromOption(u, "-"); return l ? "function" == typeof l ? l.call(this.myChart, { seriesName: m.name, series: m, name: p, value: s, data: u, status: r }) : "string" == typeof l ? l = l.replace("{a}", "{a0}").replace("{b}", "{b0}").replace("{c}", "{c0}").replace("{a0}", m.name).replace("{b0}", p).replace("{c0}", this.numAddCommas(s)) : void 0 : s instanceof Array ? null != s[2] ? this.numAddCommas(s[2]) : s[0] + " , " + s[1] : this.numAddCommas(s) }, buildMark: function(a) { var i = this.series[a]; this.selectedMap[i.name] && (i.markLine && this._buildMarkLine(a), i.markPoint && this._buildMarkPoint(a)) }, _buildMarkPoint: function(u) { for (var S, y, O = (this.markAttachStyle || {})[u], p = this.series[u], P = I.clone(p.markPoint), Q = 0, R = P.data.length; R > Q; Q++) { S = P.data[Q], y = this.getMarkCoord(u, S), S.x = null != S.x ? S.x : y[0], S.y = null != S.y ? S.y : y[1], !S.type || "max" !== S.type && "min" !== S.type || (S.value = y[3], S.name = S.name || S.type, S.symbolSize = S.symbolSize || L.getTextWidth(y[3], this.getFont()) / 2 + 5) } for (var M = this._markPoint(u, P), Q = 0, R = M.length; R > Q; Q++) { var N = M[Q]; N.zlevel = p.zlevel, N.z = p.z + 1; for (var T in O) { N[T] = I.clone(O[T]) } this.shapeList.push(N) } if (this.type === x.CHART_TYPE_FORCE || this.type === x.CHART_TYPE_CHORD) { for (var Q = 0, R = M.length; R > Q; Q++) { this.zr.addShape(M[Q]) } } }, _buildMarkLine: function(N) { for (var X, O = (this.markAttachStyle || {})[N], Q = this.series[N], l = I.clone(Q.markLine), R = 0, T = l.data.length; T > R; R++) { var W = l.data[R]; !W.type || "max" !== W.type && "min" !== W.type && "average" !== W.type ? X = [this.getMarkCoord(N, W[0]), this.getMarkCoord(N, W[1])] : (X = this.getMarkCoord(N, W), l.data[R] = [I.clone(W), {}], l.data[R][0].name = W.name || W.type, l.data[R][0].value = "average" !== W.type ? X[3] : +X[3].toFixed(null != l.precision ? l.precision : this.deepQuery([this.ecTheme, x], "markLine.precision")), X = X[2], W = [{}, {}]), null != X && null != X[0] && null != X[1] && (l.data[R][0].x = null != W[0].x ? W[0].x : X[0][0], l.data[R][0].y = null != W[0].y ? W[0].y : X[0][1], l.data[R][1].x = null != W[1].x ? W[1].x : X[1][0], l.data[R][1].y = null != W[1].y ? W[1].y : X[1][1]) } var P = this._markLine(N, l), Z = l.large; if (Z) { var Y = new A({ style: { shapeList: P } }), M = P[0]; if (M) { I.merge(Y.style, M.style), I.merge(Y.highlightStyle = {}, M.highlightStyle), Y.style.brushType = "stroke", Y.zlevel = Q.zlevel, Y.z = Q.z + 1, Y.hoverable = !1; for (var S in O) { Y[S] = I.clone(O[S]) } } this.shapeList.push(Y), this.zr.addShape(Y), Y._mark = "largeLine"; var u = l.effect; u.show && (Y.effect = u) } else { for (var R = 0, T = P.length; T > R; R++) { var aa = P[R]; aa.zlevel = Q.zlevel, aa.z = Q.z + 1; for (var S in O) { aa[S] = I.clone(O[S]) } this.shapeList.push(aa) } if (this.type === x.CHART_TYPE_FORCE || this.type === x.CHART_TYPE_CHORD) { for (var R = 0, T = P.length; T > R; R++) { this.zr.addShape(P[R]) } } } }, _markPoint: function(O, ab) { var R = this.series[O], W = this.component; I.merge(I.merge(ab, I.clone(this.ecTheme.markPoint || {})), I.clone(x.markPoint)), ab.name = R.name; var m, X, Z, aa, T, ad, ac, N = [], Y = ab.data, M = W.dataRange, ae = W.legend, Q = this.zr.getWidth(), u = this.zr.getHeight(); if (ab.large) { m = this.getLargeMarkPointShape(O, ab), m._mark = "largePoint", m && N.push(m) } else { for (var P = 0, S = Y.length; S > P; P++) { null != Y[P].x && null != Y[P].y && (Z = null != Y[P].value ? Y[P].value : "", ae && (X = ae.getColor(R.name)), M && (X = isNaN(Z) ? X : M.getColor(Z), aa = [Y[P], ab], T = this.deepQuery(aa, "itemStyle.normal.color") || X, ad = this.deepQuery(aa, "itemStyle.emphasis.color") || T, null == T && null == ad) || (X = null == X ? this.zr.getColor(O) : X, Y[P].tooltip = Y[P].tooltip || ab.tooltip || { trigger: "item" }, Y[P].name = null != Y[P].name ? Y[P].name : "", Y[P].value = Z, m = this.getSymbolShape(ab, O, Y[P], P, Y[P].name, this.parsePercent(Y[P].x, Q), this.parsePercent(Y[P].y, u), "pin", X, "rgba(0,0,0,0)", "horizontal"), m._mark = "point", ac = this.deepMerge([Y[P], ab], "effect"), ac.show && (m.effect = ac), R.type === x.CHART_TYPE_MAP && (m._geo = this.getMarkGeo(Y[P])), B.pack(m, R, O, Y[P], P, Y[P].name, Z), N.push(m))) } } return N }, _markLine: function() { function a(i, l) { i[l] = i[l] instanceof Array ? i[l].length > 1 ? i[l] : [i[l][0], i[l][0]] : [i[l], i[l]] } return function(P, aa) { var m = this.series[P], ab = this.component, ad = ab.dataRange, ae = ab.legend; I.merge(I.merge(aa, I.clone(this.ecTheme.markLine || {})), I.clone(x.markLine)); var Y = ae ? ae.getColor(m.name) : this.zr.getColor(P); a(aa, "symbol"), a(aa, "symbolSize"), a(aa, "symbolRotate"); for (var ah = aa.data, af = [], M = this.zr.getWidth(), ac = this.zr.getHeight(), am = 0; am < ah.length; am++) { var O = ah[am]; if (H(O[0]) && H(O[1])) { var t = this.deepMerge(O), N = [t, aa], S = Y, ak = null != t.value ? t.value : ""; if (ad) { S = isNaN(ak) ? S : ad.getColor(ak); var e = this.deepQuery(N, "itemStyle.normal.color") || S, Z = this.deepQuery(N, "itemStyle.emphasis.color") || e; if (null == e && null == Z) { continue } } O[0].tooltip = t.tooltip || aa.tooltip || { trigger: "item" }, O[0].name = O[0].name || "", O[1].name = O[1].name || "", O[0].value = ak, af.push({ points: [ [this.parsePercent(O[0].x, M), this.parsePercent(O[0].y, ac)], [this.parsePercent(O[1].x, M), this.parsePercent(O[1].y, ac)] ], rawData: O, color: S }) } } var aj = this.query(aa, "bundling.enable"); if (aj) { var al = new q; al.maxTurningAngle = this.query(aa, "bundling.maxTurningAngle") / 180 * Math.PI, af = al.run(af) } aa.name = m.name; for (var ag = [], am = 0, ai = af.length; ai > am; am++) { var T = af[am], Q = T.rawEdge || T, O = Q.rawData, ak = null != O.value ? O.value : "", R = this.getMarkLineShape(aa, P, O, am, T.points, aj, Q.color); R._mark = "line"; var u = this.deepMerge([O[0], O[1], aa], "effect"); u.show && (R.effect = u, R.effect.large = aa.large), m.type === x.CHART_TYPE_MAP && (R._geo = [this.getMarkGeo(O[0]), this.getMarkGeo(O[1])]), B.pack(R, m, P, O[0], am, O[0].name + ("" !== O[1].name ? " > " + O[1].name : ""), ak), ag.push(R) } return ag } }(), getMarkCoord: function() { return [0, 0] }, getSymbolShape: function(N, ad, R, Z, ab, ac, T, Q, ag, af, M) { var aa = [R, N], n = this.getDataFromOption(R, "-"); Q = this.deepQuery(aa, "symbol") || Q; var ae = this.deepQuery(aa, "symbolSize"); ae = "function" == typeof ae ? ae(n) : ae, "number" == typeof ae && (ae = [ae, ae]); var ak = this.deepQuery(aa, "symbolRotate"), P = this.deepMerge(aa, "itemStyle.normal"), m = this.deepMerge(aa, "itemStyle.emphasis"), O = null != P.borderWidth ? P.borderWidth : P.lineStyle && P.lineStyle.width; null == O && (O = Q.match("empty") ? 2 : 0); var S = null != m.borderWidth ? m.borderWidth : m.lineStyle && m.lineStyle.width; null == S && (S = O + 2); var ai = this.getItemStyleColor(P.color, ad, Z, R), a = this.getItemStyleColor(m.color, ad, Z, R), Y = ae[0], ah = ae[1], aj = new j({ style: { iconType: Q.replace("empty", "").toLowerCase(), x: ac - Y, y: T - ah, width: 2 * Y, height: 2 * ah, brushType: "both", color: Q.match("empty") ? af : ai || ag, strokeColor: P.borderColor || ai || ag, lineWidth: O }, highlightStyle: { color: Q.match("empty") ? af : a || ai || ag, strokeColor: m.borderColor || P.borderColor || a || ai || ag, lineWidth: S }, clickable: this.deepQuery(aa, "clickable") }); return Q.match("image") && (aj.style.image = Q.replace(new RegExp("^image:\\/\\/"), ""), aj = new C({ style: aj.style, highlightStyle: aj.highlightStyle, clickable: this.deepQuery(aa, "clickable") })), null != ak && (aj.rotation = [ak * Math.PI / 180, ac, T]), Q.match("star") && (aj.style.iconType = "star", aj.style.n = Q.replace("empty", "").replace("star", "") - 0 || 5), "none" === Q && (aj.invisible = !0, aj.hoverable = !1), aj = this.addLabel(aj, N, R, ab, M), Q.match("empty") && (null == aj.style.textColor && (aj.style.textColor = aj.style.strokeColor), null == aj.highlightStyle.textColor && (aj.highlightStyle.textColor = aj.highlightStyle.strokeColor)), B.pack(aj, N, ad, R, Z, ab), aj._x = ac, aj._y = T, aj._dataIndex = Z, aj._seriesIndex = ad, aj }, getMarkLineShape: function(P, ad, T, aa, s, ac, X) { var S = null != T[0].value ? T[0].value : "-", Z = null != T[1].value ? T[1].value : "-", ag = [T[0].symbol || P.symbol[0], T[1].symbol || P.symbol[1]], af = [T[0].symbolSize || P.symbolSize[0], T[1].symbolSize || P.symbolSize[1]]; af[0] = "function" == typeof af[0] ? af[0](S) : af[0], af[1] = "function" == typeof af[1] ? af[1](Z) : af[1]; var O = [this.query(T[0], "symbolRotate") || P.symbolRotate[0], this.query(T[1], "symbolRotate") || P.symbolRotate[1]], ab = [T[0], T[1], P], N = this.deepMerge(ab, "itemStyle.normal"); N.color = this.getItemStyleColor(N.color, ad, aa, T); var ae = this.deepMerge(ab, "itemStyle.emphasis"); ae.color = this.getItemStyleColor(ae.color, ad, aa, T); var ai = N.lineStyle, R = ae.lineStyle, M = ai.width; null == M && (M = N.borderWidth); var Q = R.width; null == Q && (Q = null != ae.borderWidth ? ae.borderWidth : M + 2); var W = this.deepQuery(ab, "smoothness"); this.deepQuery(ab, "smooth") || (W = 0); var ah = ac ? G : D, o = new ah({ style: { symbol: ag, symbolSize: af, symbolRotate: O, brushType: "both", lineType: ai.type, shadowColor: ai.shadowColor || ai.color || N.borderColor || N.color || X, shadowBlur: ai.shadowBlur, shadowOffsetX: ai.shadowOffsetX, shadowOffsetY: ai.shadowOffsetY, color: N.color || X, strokeColor: ai.color || N.borderColor || N.color || X, lineWidth: M, symbolBorderColor: N.borderColor || N.color || X, symbolBorder: N.borderWidth }, highlightStyle: { shadowColor: R.shadowColor, shadowBlur: R.shadowBlur, shadowOffsetX: R.shadowOffsetX, shadowOffsetY: R.shadowOffsetY, color: ae.color || N.color || X, strokeColor: R.color || ai.color || ae.borderColor || N.borderColor || ae.color || N.color || X, lineWidth: Q, symbolBorderColor: ae.borderColor || N.borderColor || ae.color || N.color || X, symbolBorder: null == ae.borderWidth ? N.borderWidth + 2 : ae.borderWidth }, clickable: this.deepQuery(ab, "clickable") }), Y = o.style; return ac ? (Y.pointList = s, Y.smooth = W) : (Y.xStart = s[0][0], Y.yStart = s[0][1], Y.xEnd = s[1][0], Y.yEnd = s[1][1], Y.curveness = W, o.updatePoints(o.style)), o = this.addLabel(o, P, T[0], T[0].name + " : " + T[1].name) }, getLargeMarkPointShape: function(N, Y) { var P, S, r, T, X, Q, O = this.series[N], R = this.component, ab = Y.data, aa = R.dataRange, M = R.legend, W = [ab[0], Y]; if (M && (S = M.getColor(O.name)), !aa || (r = null != ab[0].value ? ab[0].value : "", S = isNaN(r) ? S : aa.getColor(r), T = this.deepQuery(W, "itemStyle.normal.color") || S, X = this.deepQuery(W, "itemStyle.emphasis.color") || T, null != T || null != X)) { S = this.deepMerge(W, "itemStyle.normal").color || S; var y = this.deepQuery(W, "symbol") || "circle"; y = y.replace("empty", "").replace(/\d/g, ""), Q = this.deepMerge([ab[0], Y], "effect"); var Z = window.devicePixelRatio || 1; return P = new F({ style: { pointList: ab, color: S, strokeColor: S, shadowColor: Q.shadowColor || S, shadowBlur: (null != Q.shadowBlur ? Q.shadowBlur : 8) * Z, size: this.deepQuery(W, "symbolSize"), iconType: y, brushType: "fill", lineWidth: 1 }, draggable: !1, hoverable: !1 }), Q.show && (P.effect = Q), P } }, backupShapeList: function() { this.shapeList && this.shapeList.length > 0 ? (this.lastShapeList = this.shapeList, this.shapeList = []) : this.lastShapeList = [] }, addShapeList: function() { var u, S, y = this.option.animationThreshold / (this.canvasSupported ? 2 : 4), O = this.lastShapeList, p = this.shapeList, P = O.length > 0, Q = P ? this.query(this.option, "animationDurationUpdate") : this.query(this.option, "animationDuration"), R = this.query(this.option, "animationEasing"), M = {}, N = {}; if (this.option.animation && !this.option.renderAsImage && p.length < y && !this.motionlessOnce) { for (var W = 0, T = O.length; T > W; W++) { S = this._getAnimationKey(O[W]), S.match("undefined") ? this.zr.delShape(O[W].id) : (S += O[W].type, M[S] ? this.zr.delShape(O[W].id) : M[S] = O[W]) } for (var W = 0, T = p.length; T > W; W++) { S = this._getAnimationKey(p[W]), S.match("undefined") ? this.zr.addShape(p[W]) : (S += p[W].type, N[S] = p[W]) } for (S in M) { N[S] || this.zr.delShape(M[S].id) } for (S in N) { M[S] ? (this.zr.delShape(M[S].id), this._animateMod(M[S], N[S], Q, R, 0, P)) : (u = this.type != x.CHART_TYPE_LINE && this.type != x.CHART_TYPE_RADAR || 0 === S.indexOf("icon") ? 0 : Q / 2, this._animateMod(!1, N[S], Q, R, u, P)) } this.zr.refresh(), this.animationEffect() } else { this.motionlessOnce = !1, this.zr.delShape(O); for (var W = 0, T = p.length; T > W; W++) { this.zr.addShape(p[W]) } } }, _getAnimationKey: function(a) { return this.type != x.CHART_TYPE_MAP && this.type != x.CHART_TYPE_TREEMAP && this.type != x.CHART_TYPE_VENN && this.type != x.CHART_TYPE_TREE ? B.get(a, "seriesIndex") + "_" + B.get(a, "dataIndex") + (a._mark ? a._mark : "") + (this.type === x.CHART_TYPE_RADAR ? B.get(a, "special") : "") : B.get(a, "seriesIndex") + "_" + B.get(a, "dataIndex") + (a._mark ? a._mark : "undefined") }, _animateMod: function(m, u, p, r, l, s) { switch (u.type) { case "polyline": case "half-smooth-polygon": K.pointList(this.zr, m, u, p, r); break; case "rectangle": K.rectangle(this.zr, m, u, p, r); break; case "image": case "icon": K.icon(this.zr, m, u, p, r, l); break; case "candle": s ? this.zr.addShape(u) : K.candle(this.zr, m, u, p, r); break; case "ring": case "sector": case "circle": s ? "sector" === u.type ? K.sector(this.zr, m, u, p, r) : this.zr.addShape(u) : K.ring(this.zr, m, u, p + (B.get(u, "dataIndex") || 0) % 20 * 100, r); break; case "text": K.text(this.zr, m, u, p, r); break; case "polygon": s ? K.pointList(this.zr, m, u, p, r) : K.polygon(this.zr, m, u, p, r); break; case "ribbon": K.ribbon(this.zr, m, u, p, r); break; case "gauge-pointer": K.gaugePointer(this.zr, m, u, p, r); break; case "mark-line": K.markline(this.zr, m, u, p, r); break; case "bezier-curve": case "line": K.line(this.zr, m, u, p, r); break; default: this.zr.addShape(u) } }, animationMark: function(m, r, o) { for (var o = o || this.shapeList, p = 0, l = o.length; l > p; p++) { o[p]._mark && this._animateMod(!1, o[p], m, r, 0, !0) } this.animationEffect(o) }, animationEffect: function(m) { if (!m && this.clearEffectShape(), m = m || this.shapeList, null != m) { var r = x.EFFECT_ZLEVEL; this.canvasSupported && this.zr.modLayer(r, { motionBlur: !0, lastFrameAlpha: this.option.effectBlendAlpha || x.effectBlendAlpha }); for (var o, p = 0, l = m.length; l > p; p++) { o = m[p], o._mark && o.effect && o.effect.show && J[o._mark] && (J[o._mark](this.zr, this.effectList, o, r), this.effectList[this.effectList.length - 1]._mark = o._mark) } } }, clearEffectShape: function(a) { var m = this.effectList; if (this.zr && m && m.length > 0) { a && this.zr.modLayer(x.EFFECT_ZLEVEL, { motionBlur: !1 }), this.zr.delShape(m); for (var l = 0; l < m.length; l++) { m[l].effectAnimator && m[l].effectAnimator.stop() } } this.effectList = [] }, addMark: function(p, R, y) { var N = this.series[p]; if (this.selectedMap[N.name]) { var m = this.query(this.option, "animationDurationUpdate"), O = this.query(this.option, "animationEasing"), P = N[y].data, Q = this.shapeList.length; if (N[y].data = R.data, this["_build" + y.replace("m", "M")](p), this.option.animation && !this.option.renderAsImage) { this.animationMark(m, O, this.shapeList.slice(Q)) } else { for (var M = Q, u = this.shapeList.length; u > M; M++) { this.zr.addShape(this.shapeList[M]) } this.zr.refreshNextFrame() } N[y].data = P } }, delMark: function(p, Q, u) { u = u.replace("mark", "").replace("large", "").toLowerCase(); var M = this.series[p]; if (this.selectedMap[M.name]) { for (var m = !1, N = [this.shapeList, this.effectList], O = 2; O--;) { for (var P = 0, y = N[O].length; y > P; P++) { if (N[O][P]._mark == u && B.get(N[O][P], "seriesIndex") == p && B.get(N[O][P], "name") == Q) { this.zr.delShape(N[O][P].id), N[O].splice(P, 1), m = !0; break } } } m && this.zr.refreshNextFrame() } } }, I.inherits(z, E), z }), d("zrender/shape/Circle", ["require", "./Base", "../tool/util"], function(a) { var l = a("./Base"), j = function(i) { l.call(this, i) }; return j.prototype = { type: "circle", buildPath: function(i, m) { i.moveTo(m.x + m.r, m.y), i.arc(m.x, m.y, m.r, 0, 2 * Math.PI, !0) }, getRect: function(i) { if (i.__rect) { return i.__rect } var m; return m = "stroke" == i.brushType || "fill" == i.brushType ? i.lineWidth || 1 : 0, i.__rect = { x: Math.round(i.x - i.r - m / 2), y: Math.round(i.y - i.r - m / 2), width: 2 * i.r + m, height: 2 * i.r + m }, i.__rect } }, a("../tool/util").inherits(j, l), j }), d("echarts/util/accMath", [], function() { function a(q, v) { var r = q.toString(), s = v.toString(), p = 0; try { p = s.split(".")[1].length } catch (u) {} try { p -= r.split(".")[1].length } catch (u) {} return (r.replace(".", "") - 0) / (s.replace(".", "") - 0) * Math.pow(10, p) } function m(q, v) { var r = q.toString(), s = v.toString(), p = 0; try { p += r.split(".")[1].length } catch (u) {} try { p += s.split(".")[1].length } catch (u) {} return (r.replace(".", "") - 0) * (s.replace(".", "") - 0) / Math.pow(10, p) } function j(q, v) { var r = 0, s = 0; try { r = q.toString().split(".")[1].length } catch (p) {} try { s = v.toString().split(".")[1].length } catch (p) {} var u = Math.pow(10, Math.max(r, s)); return (Math.round(q * u) + Math.round(v * u)) / u } function l(i, n) { return j(i, -n) } return { accDiv: a, accMul: m, accAdd: j, accSub: l } }), d("echarts/util/shape/Icon", ["require", "zrender/tool/util", "zrender/shape/Star", "zrender/shape/Heart", "zrender/shape/Droplet", "zrender/shape/Image", "zrender/shape/Base"], function(C) { function Z(m, u) { var p = u.x, r = u.y, l = u.width / 16, s = u.height / 16; m.moveTo(p, r + u.height), m.lineTo(p + 5 * l, r + 14 * s), m.lineTo(p + u.width, r + 3 * s), m.lineTo(p + 13 * l, r), m.lineTo(p + 2 * l, r + 11 * s), m.lineTo(p, r + u.height), m.moveTo(p + 6 * l, r + 10 * s), m.lineTo(p + 14 * l, r + 2 * s), m.moveTo(p + 10 * l, r + 13 * s), m.lineTo(p + u.width, r + 13 * s), m.moveTo(p + 13 * l, r + 10 * s), m.lineTo(p + 13 * l, r + u.height) } function G(m, u) { var p = u.x, r = u.y, l = u.width / 16, s = u.height / 16; m.moveTo(p, r + u.height), m.lineTo(p + 5 * l, r + 14 * s), m.lineTo(p + u.width, r + 3 * s), m.lineTo(p + 13 * l, r), m.lineTo(p + 2 * l, r + 11 * s), m.lineTo(p, r + u.height), m.moveTo(p + 6 * l, r + 10 * s), m.lineTo(p + 14 * l, r + 2 * s), m.moveTo(p + 10 * l, r + 13 * s), m.lineTo(p + u.width, r + 13 * s) } function Q(m, u) { var p = u.x, r = u.y, l = u.width / 16, s = u.height / 16; m.moveTo(p + 4 * l, r + 15 * s), m.lineTo(p + 9 * l, r + 13 * s), m.lineTo(p + 14 * l, r + 8 * s), m.lineTo(p + 11 * l, r + 5 * s), m.lineTo(p + 6 * l, r + 10 * s), m.lineTo(p + 4 * l, r + 15 * s), m.moveTo(p + 5 * l, r), m.lineTo(p + 11 * l, r), m.moveTo(p + 5 * l, r + s), m.lineTo(p + 11 * l, r + s), m.moveTo(p, r + 2 * s), m.lineTo(p + u.width, r + 2 * s), m.moveTo(p, r + 5 * s), m.lineTo(p + 3 * l, r + u.height), m.lineTo(p + 13 * l, r + u.height), m.lineTo(p + u.width, r + 5 * s) } function q(m, u) { var p = u.x, r = u.y, l = u.width / 16, s = u.height / 16; m.moveTo(p, r + 3 * s), m.lineTo(p + 6 * l, r + 3 * s), m.moveTo(p + 3 * l, r), m.lineTo(p + 3 * l, r + 6 * s), m.moveTo(p + 3 * l, r + 8 * s), m.lineTo(p + 3 * l, r + u.height), m.lineTo(p + u.width, r + u.height), m.lineTo(p + u.width, r + 3 * s), m.lineTo(p + 8 * l, r + 3 * s) } function R(m, u) { var p = u.x, r = u.y, l = u.width / 16, s = u.height / 16; m.moveTo(p + 6 * l, r), m.lineTo(p + 2 * l, r + 3 * s), m.lineTo(p + 6 * l, r + 6 * s), m.moveTo(p + 2 * l, r + 3 * s), m.lineTo(p + 14 * l, r + 3 * s), m.lineTo(p + 14 * l, r + 11 * s), m.moveTo(p + 2 * l, r + 5 * s), m.lineTo(p + 2 * l, r + 13 * s), m.lineTo(p + 14 * l, r + 13 * s), m.moveTo(p + 10 * l, r + 10 * s), m.lineTo(p + 14 * l, r + 13 * s), m.lineTo(p + 10 * l, r + u.height) } function T(m, w) { var p = w.x, s = w.y, l = w.width / 16, u = w.height / 16, v = w.width / 2; m.lineWidth = 1.5, m.arc(p + v, s + v, v - l, 0, 2 * Math.PI / 3), m.moveTo(p + 3 * l, s + w.height), m.lineTo(p + 0 * l, s + 12 * u), m.lineTo(p + 5 * l, s + 11 * u), m.moveTo(p, s + 8 * u), m.arc(p + v, s + v, v - l, Math.PI, 5 * Math.PI / 3), m.moveTo(p + 13 * l, s), m.lineTo(p + w.width, s + 4 * u), m.lineTo(p + 11 * l, s + 5 * u) } function Y(m, u) { var p = u.x, r = u.y, l = u.width / 16, s = u.height / 16; m.moveTo(p, r), m.lineTo(p, r + u.height), m.lineTo(p + u.width, r + u.height), m.moveTo(p + 2 * l, r + 14 * s), m.lineTo(p + 7 * l, r + 6 * s), m.lineTo(p + 11 * l, r + 11 * s), m.lineTo(p + 15 * l, r + 2 * s) } function N(m, u) { var p = u.x, r = u.y, l = u.width / 16, s = u.height / 16; m.moveTo(p, r), m.lineTo(p, r + u.height), m.lineTo(p + u.width, r + u.height), m.moveTo(p + 3 * l, r + 14 * s), m.lineTo(p + 3 * l, r + 6 * s), m.lineTo(p + 4 * l, r + 6 * s), m.lineTo(p + 4 * l, r + 14 * s), m.moveTo(p + 7 * l, r + 14 * s), m.lineTo(p + 7 * l, r + 2 * s), m.lineTo(p + 8 * l, r + 2 * s), m.lineTo(p + 8 * l, r + 14 * s), m.moveTo(p + 11 * l, r + 14 * s), m.lineTo(p + 11 * l, r + 9 * s), m.lineTo(p + 12 * l, r + 9 * s), m.lineTo(p + 12 * l, r + 14 * s) } function F(m, w) { var p = w.x, s = w.y, l = w.width - 2, u = w.height - 2, v = Math.min(l, u) / 2; s += 2, m.moveTo(p + v + 3, s + v - 3), m.arc(p + v + 3, s + v - 3, v - 1, 0, -Math.PI / 2, !0), m.lineTo(p + v + 3, s + v - 3), m.moveTo(p + v, s), m.lineTo(p + v, s + v), m.arc(p + v, s + v, v, -Math.PI / 2, 2 * Math.PI, !0), m.lineTo(p + v, s + v), m.lineWidth = 1.5 } function P(m, u) { var p = u.x, r = u.y, l = u.width / 16, s = u.height / 16; r -= s, m.moveTo(p + 1 * l, r + 2 * s), m.lineTo(p + 15 * l, r + 2 * s), m.lineTo(p + 14 * l, r + 3 * s), m.lineTo(p + 2 * l, r + 3 * s), m.moveTo(p + 3 * l, r + 6 * s), m.lineTo(p + 13 * l, r + 6 * s), m.lineTo(p + 12 * l, r + 7 * s), m.lineTo(p + 4 * l, r + 7 * s), m.moveTo(p + 5 * l, r + 10 * s), m.lineTo(p + 11 * l, r + 10 * s), m.lineTo(p + 10 * l, r + 11 * s), m.lineTo(p + 6 * l, r + 11 * s), m.moveTo(p + 7 * l, r + 14 * s), m.lineTo(p + 9 * l, r + 14 * s), m.lineTo(p + 8 * l, r + 15 * s), m.lineTo(p + 7 * l, r + 15 * s) } function ad(p, K) { var u = K.x, w = K.y, m = K.width, x = K.height, y = m / 16, I = x / 16, v = 2 * Math.min(y, I); p.moveTo(u + y + v, w + I + v), p.arc(u + y, w + I, v, Math.PI / 4, 3 * Math.PI), p.lineTo(u + 7 * y - v, w + 6 * I - v), p.arc(u + 7 * y, w + 6 * I, v, Math.PI / 4 * 5, 4 * Math.PI), p.arc(u + 7 * y, w + 6 * I, v / 2, Math.PI / 4 * 5, 4 * Math.PI), p.moveTo(u + 7 * y - v / 2, w + 6 * I + v), p.lineTo(u + y + v, w + 14 * I - v), p.arc(u + y, w + 14 * I, v, -Math.PI / 4, 2 * Math.PI), p.moveTo(u + 7 * y + v / 2, w + 6 * I), p.lineTo(u + 14 * y - v, w + 10 * I - v / 2), p.moveTo(u + 16 * y, w + 10 * I), p.arc(u + 14 * y, w + 10 * I, v, 0, 3 * Math.PI), p.lineWidth = 1.5 } function ab(m, w) { var p = w.x, s = w.y, l = w.width, u = w.height, v = Math.min(l, u) / 2; m.moveTo(p + l, s + u / 2), m.arc(p + v, s + v, v, 0, 2 * Math.PI), m.arc(p + v, s, v, Math.PI / 4, Math.PI / 5 * 4), m.arc(p, s + v, v, -Math.PI / 3, Math.PI / 3), m.arc(p + l, s + u, v, Math.PI, Math.PI / 2 * 3), m.lineWidth = 1.5 } function B(p, K) { for (var u = K.x, w = K.y, m = K.width, x = K.height, y = Math.round(x / 3), I = Math.round((y - 2) / 2), v = 3; v--;) { p.rect(u, w + y * v + I, m, 2) } } function S(p, K) { for (var u = K.x, w = K.y, m = K.width, x = K.height, y = Math.round(m / 3), I = Math.round((y - 2) / 2), v = 3; v--;) { p.rect(u + y * v + I, w, 2, x) } } function A(m, r) { var o = r.x, p = r.y, l = r.width / 16; m.moveTo(o + l, p), m.lineTo(o + l, p + r.height), m.lineTo(o + 15 * l, p + r.height), m.lineTo(o + 15 * l, p), m.lineTo(o + l, p), m.moveTo(o + 3 * l, p + 3 * l), m.lineTo(o + 13 * l, p + 3 * l), m.moveTo(o + 3 * l, p + 6 * l), m.lineTo(o + 13 * l, p + 6 * l), m.moveTo(o + 3 * l, p + 9 * l), m.lineTo(o + 13 * l, p + 9 * l), m.moveTo(o + 3 * l, p + 12 * l), m.lineTo(o + 9 * l, p + 12 * l) } function aa(m, u) { var p = u.x, r = u.y, l = u.width / 16, s = u.height / 16; m.moveTo(p, r), m.lineTo(p, r + u.height), m.lineTo(p + u.width, r + u.height), m.lineTo(p + u.width, r), m.lineTo(p, r), m.moveTo(p + 4 * l, r), m.lineTo(p + 4 * l, r + 8 * s), m.lineTo(p + 12 * l, r + 8 * s), m.lineTo(p + 12 * l, r), m.moveTo(p + 6 * l, r + 11 * s), m.lineTo(p + 6 * l, r + 13 * s), m.lineTo(p + 10 * l, r + 13 * s), m.lineTo(p + 10 * l, r + 11 * s), m.lineTo(p + 6 * l, r + 11 * s) } function ai(m, u) { var p = u.x, r = u.y, l = u.width, s = u.height; m.moveTo(p, r + s / 2), m.lineTo(p + l, r + s / 2), m.moveTo(p + l / 2, r), m.lineTo(p + l / 2, r + s) } function E(m, r) { var o = r.width / 2, p = r.height / 2, l = Math.min(o, p); m.moveTo(r.x + o + l, r.y + p), m.arc(r.x + o, r.y + p, l, 0, 2 * Math.PI), m.closePath() } function z(a, i) { a.rect(i.x, i.y, i.width, i.height), a.closePath() } function D(m, w) { var p = w.width / 2, s = w.height / 2, l = w.x + p, u = w.y + s, v = Math.min(p, s); m.moveTo(l, u - v), m.lineTo(l + v, u + v), m.lineTo(l - v, u + v), m.lineTo(l, u - v), m.closePath() } function J(m, w) { var p = w.width / 2, s = w.height / 2, l = w.x + p, u = w.y + s, v = Math.min(p, s); m.moveTo(l, u - v), m.lineTo(l + v, u), m.lineTo(l, u + v), m.lineTo(l - v, u), m.lineTo(l, u - v), m.closePath() } function ag(m, r) { var o = r.x, p = r.y, l = r.width / 16; m.moveTo(o + 8 * l, p), m.lineTo(o + l, p + r.height), m.lineTo(o + 8 * l, p + r.height / 4 * 3), m.lineTo(o + 15 * l, p + r.height), m.lineTo(o + 8 * l, p), m.closePath() } function j(r, l) { var m = C("zrender/shape/Star"), e = l.width / 2, p = l.height / 2; m.prototype.buildPath(r, { x: l.x + e, y: l.y + p, r: Math.min(e, p), n: l.n || 5 }) } function O(l, a) { var e = C("zrender/shape/Heart"); e.prototype.buildPath(l, { x: a.x + a.width / 2, y: a.y + 0.2 * a.height, a: a.width / 2, b: 0.8 * a.height }) } function af(l, a) { var e = C("zrender/shape/Droplet"); e.prototype.buildPath(l, { x: a.x + 0.5 * a.width, y: a.y + 0.5 * a.height, a: 0.5 * a.width, b: 0.8 * a.height }) } function ah(m, w) { var p = w.x, s = w.y - w.height / 2 * 1.5, l = w.width / 2, u = w.height / 2, v = Math.min(l, u); m.arc(p + l, s + u, v, Math.PI / 5 * 4, Math.PI / 5), m.lineTo(p + l, s + u + 1.5 * v), m.closePath() } function ac(r, l, m) { var e = C("zrender/shape/Image"); this._imageShape = this._imageShape || new e({ style: {} }); for (var p in l) { this._imageShape.style[p] = l[p] } this._imageShape.brush(r, !1, m) } function ae(a) { H.call(this, a) } var M = C("zrender/tool/util"), H = C("zrender/shape/Base"); return ae.prototype = { type: "icon", iconLibrary: { mark: Z, markUndo: G, markClear: Q, dataZoom: q, dataZoomReset: R, restore: T, lineChart: Y, barChart: N, pieChart: F, funnelChart: P, forceChart: ad, chordChart: ab, stackChart: B, tiledChart: S, dataView: A, saveAsImage: aa, cross: ai, circle: E, rectangle: z, triangle: D, diamond: J, arrow: ag, star: j, heart: O, droplet: af, pin: ah, image: ac }, brush: function(u, l, m) { var e = l ? this.highlightStyle : this.style; e = e || {}; var p = e.iconType || this.style.iconType; if ("image" === p) { var s = C("zrender/shape/Image"); s.prototype.brush.call(this, u, l, m) } else { var e = this.beforeBrush(u, l); switch (u.beginPath(), this.buildPath(u, e, m), e.brushType) { case "both": u.fill(); case "stroke": e.lineWidth > 0 && u.stroke(); break; default: u.fill() } this.drawText(u, e, this.style), this.afterBrush(u) } }, buildPath: function(a, m, l) { this.iconLibrary[m.iconType] ? this.iconLibrary[m.iconType].call(this, a, m, l) : (a.moveTo(m.x, m.y), a.lineTo(m.x + m.width, m.y), a.lineTo(m.x + m.width, m.y + m.height), a.lineTo(m.x, m.y + m.height), a.lineTo(m.x, m.y), a.closePath()) }, getRect: function(a) { return a.__rect ? a.__rect : (a.__rect = { x: Math.round(a.x), y: Math.round(a.y - ("pin" == a.iconType ? a.height / 2 * 1.5 : 0)), width: a.width, height: a.height * ("pin" === a.iconType ? 1.25 : 1) }, a.__rect) }, isCover: function(m, r) { var o = this.transformCoordToLocal(m, r); m = o[0], r = o[1]; var p = this.style.__rect; p || (p = this.style.__rect = this.getRect(this.style)); var l = p.height < 8 || p.width < 8 ? 4 : 0; return m >= p.x - l && m <= p.x + p.width + l && r >= p.y - l && r <= p.y + p.height + l } }, M.inherits(ae, H), ae }), d("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(p) { function B(a) { u.call(this, a), this.style.curveness > 0 && this.updatePoints(this.style), this.highlightStyle.curveness > 0 && this.updatePoints(this.highlightStyle) } var u = p("zrender/shape/Base"), x = p("./Icon"), j = p("zrender/shape/Line"), y = new j({}), z = p("zrender/shape/BezierCurve"), A = new z({}), v = p("zrender/tool/area"), q = p("zrender/shape/util/dashedLineTo"), w = p("zrender/tool/util"), C = p("zrender/tool/curve"); return B.prototype = { type: "mark-line", brush: function(a, m) { var l = this.style; m && (l = this.getHighlightStyle(l, this.highlightStyle || {})), a.save(), this.setContext(a, l), this.setTransform(a), a.save(), a.beginPath(), this.buildPath(a, l), a.stroke(), a.restore(), this.brushSymbol(a, l, 0), this.brushSymbol(a, l, 1), this.drawText(a, l, this.style), a.restore() }, buildPath: function(m, s) { var o = s.lineType || "solid"; if (m.moveTo(s.xStart, s.yStart), s.curveness > 0) { var r = null; switch (o) { case "dashed": r = [5, 5]; break; case "dotted": r = [1, 1] } r && m.setLineDash && m.setLineDash(r), m.quadraticCurveTo(s.cpX1, s.cpY1, s.xEnd, s.yEnd) } else { if ("solid" == o) { m.lineTo(s.xEnd, s.yEnd) } else { var l = (s.lineWidth || 1) * ("dashed" == s.lineType ? 5 : 1); q(m, s.xStart, s.yStart, s.xEnd, s.yEnd, l) } } }, updatePoints: function(D) { var K = D.curveness || 0, E = 1, G = D.xStart, m = D.yStart, H = D.xEnd, I = D.yEnd, J = (G + H) / 2 - E * (m - I) * K, F = (m + I) / 2 - E * (H - G) * K; D.cpX1 = J, D.cpY1 = F }, brushSymbol: function(G, R, K) { if ("none" != R.symbol[K]) { G.save(), G.beginPath(), G.lineWidth = R.symbolBorder, G.strokeStyle = R.symbolBorderColor; var n = R.symbol[K].replace("empty", "").toLowerCase(); R.symbol[K].match("empty") && (G.fillStyle = "#fff"); var N = R.xStart, P = R.yStart, Q = R.xEnd, L = R.yEnd, J = 0 === K ? N : Q, M = 0 === K ? P : L, T = R.curveness || 0, F = null != R.symbolRotate[K] ? R.symbolRotate[K] - 0 : 0; if (F = F / 180 * Math.PI, "arrow" == n && 0 === F) { if (0 === T) { var O = 0 === K ? -1 : 1; F = Math.PI / 2 + Math.atan2(O * (L - P), O * (Q - N)) } else { var E = R.cpX1, S = R.cpY1, V = C.quadraticDerivativeAt, I = V(N, E, Q, K), D = V(P, S, L, K); F = Math.PI / 2 + Math.atan2(D, I) } } G.translate(J, M), 0 !== F && G.rotate(F); var H = R.symbolSize[K]; x.prototype.buildPath(G, { x: -H, y: -H, width: 2 * H, height: 2 * H, iconType: n }), G.closePath(), G.fill(), G.stroke(), G.restore() } }, getRect: function(a) { return a.curveness > 0 ? A.getRect(a) : y.getRect(a), a.__rect }, isCover: function(a, m) { var l = this.transformCoordToLocal(a, m); return a = l[0], m = l[1], this.isCoverRect(a, m) ? this.style.curveness > 0 ? v.isInside(A, this.style, a, m) : v.isInside(y, this.style, a, m) : !1 } }, w.inherits(B, u), B }), d("echarts/util/shape/Symbol", ["require", "zrender/shape/Base", "zrender/shape/Polygon", "zrender/tool/util", "./normalIsCover"], function(l) { function r(a) { m.call(this, a) } var m = l("zrender/shape/Base"), p = l("zrender/shape/Polygon"), j = new p({}), q = l("zrender/tool/util"); return r.prototype = { type: "symbol", buildPath: function(z, J) { var B = J.pointList, E = B.length; if (0 !== E) { for (var v, F, H, I, C, A = 10000, D = Math.ceil(E / A), M = B[0] instanceof Array, L = J.size ? J.size : 2, x = L, G = L / 2, w = 2 * Math.PI, K = 0; D > K; K++) { z.beginPath(), v = K * A, F = v + A, F = F > E ? E : F; for (var N = v; F > N; N++) { if (J.random && (H = J["randomMap" + N % 20] / 100, x = L * H * H, G = x / 2), M ? (I = B[N][0], C = B[N][1]) : (I = B[N].x, C = B[N].y), 3 > x) { z.rect(I - G, C - G, x, x) } else { switch (J.iconType) { case "circle": z.moveTo(I, C), z.arc(I, C, G, 0, w, !0); break; case "diamond": z.moveTo(I, C - G), z.lineTo(I + G / 3, C - G / 3), z.lineTo(I + G, C), z.lineTo(I + G / 3, C + G / 3), z.lineTo(I, C + G), z.lineTo(I - G / 3, C + G / 3), z.lineTo(I - G, C), z.lineTo(I - G / 3, C - G / 3), z.lineTo(I, C - G); break; default: z.rect(I - G, C - G, x, x) } } } if (z.closePath(), D - 1 > K) { switch (J.brushType) { case "both": z.fill(), J.lineWidth > 0 && z.stroke(); break; case "stroke": J.lineWidth > 0 && z.stroke(); break; default: z.fill() } } } } }, getRect: function(a) { return a.__rect || j.getRect(a) }, isCover: l("./normalIsCover") }, q.inherits(r, m), r }), d("zrender/shape/Polyline", ["require", "./Base", "./util/smoothSpline", "./util/smoothBezier", "./util/dashedLineTo", "./Polygon", "../tool/util"], function(l) { var r = l("./Base"), m = l("./util/smoothSpline"), p = l("./util/smoothBezier"), j = l("./util/dashedLineTo"), q = function(a) { this.brushTypeOnly = "stroke", this.textPosition = "end", r.call(this, a) }; return q.prototype = { type: "polyline", buildPath: function(a, A) { var w = A.pointList; if (!(w.length < 2)) { var x = Math.min(A.pointList.length, Math.round(A.pointListLength || A.pointList.length)); if (A.smooth && "spline" !== A.smooth) { A.controlPointList || this.updateControlPoints(A); var y = A.controlPointList; a.moveTo(w[0][0], w[0][1]); for (var z, u, i, v = 0; x - 1 > v; v++) { z = y[2 * v], u = y[2 * v + 1], i = w[v + 1], a.bezierCurveTo(z[0], z[1], u[0], u[1], i[0], i[1]) } } else { if ("spline" === A.smooth && (w = m(w), x = w.length), A.lineType && "solid" != A.lineType) { if ("dashed" == A.lineType || "dotted" == A.lineType) { var B = (A.lineWidth || 1) * ("dashed" == A.lineType ? 5 : 1); a.moveTo(w[0][0], w[0][1]); for (var v = 1; x > v; v++) { j(a, w[v - 1][0], w[v - 1][1], w[v][0], w[v][1], B) } } } else { a.moveTo(w[0][0], w[0][1]); for (var v = 1; x > v; v++) { a.lineTo(w[v][0], w[v][1]) } } } } }, updateControlPoints: function(a) { a.controlPointList = p(a.pointList, a.smooth, !1, a.smoothConstraint) }, getRect: function(a) { return l("./Polygon").prototype.getRect(a) } }, l("../tool/util").inherits(q, r), q }), d("zrender/shape/ShapeBundle", ["require", "./Base", "../tool/util"], function(a) { var l = a("./Base"), j = function(i) { l.call(this, i) }; return j.prototype = { constructor: j, type: "shape-bundle", brush: function(p, u) { var q = this.beforeBrush(p, u); p.beginPath(); for (var r = 0; r < q.shapeList.length; r++) { var m = q.shapeList[r], s = m.style; u && (s = m.getHighlightStyle(s, m.highlightStyle || {}, m.brushTypeOnly)), m.buildPath(p, s) } switch (q.brushType) { case "both": p.fill(); case "stroke": q.lineWidth > 0 && p.stroke(); break; default: p.fill() } this.drawText(p, q, this.style), this.afterBrush(p) }, getRect: function(p) { if (p.__rect) { return p.__rect } for (var y = 1 / 0, q = -(1 / 0), u = 1 / 0, m = -(1 / 0), v = 0; v < p.shapeList.length; v++) { var w = p.shapeList[v], x = w.getRect(w.style), y = Math.min(x.x, y), u = Math.min(x.y, u), q = Math.max(x.x + x.width, q), m = Math.max(x.y + x.height, m) } return p.__rect = { x: y, y: u, width: q - y, height: m - u }, p.__rect }, isCover: function(o, r) { var p = this.transformCoordToLocal(o, r); if (o = p[0], r = p[1], this.isCoverRect(o, r)) { for (var q = 0; q < this.style.shapeList.length; q++) { var m = this.style.shapeList[q]; if (m.isCover(o, r)) { return !0 } } } return !1 } }, a("../tool/util").inherits(j, l), j }), d("echarts/util/ecAnimation", ["require", "zrender/tool/util", "zrender/tool/curve", "zrender/shape/Polygon"], function(v) { function F(I, R, K, N, p) { var O, P = K.style.pointList, Q = P.length; if (!R) { if (O = [], "vertical" != K._orient) { for (var L = P[0][1], J = 0; Q > J; J++) { O[J] = [P[J][0], L] } } else { for (var M = P[0][0], J = 0; Q > J; J++) { O[J] = [M, P[J][1]] } } "half-smooth-polygon" == K.type && (O[Q - 1] = C.clone(P[Q - 1]), O[Q - 2] = C.clone(P[Q - 2])), R = { style: { pointList: O } } } O = R.style.pointList; var S = O.length; K.style.pointList = S == Q ? O : Q > S ? O.concat(P.slice(S)) : O.slice(0, Q), I.addShape(K), K.__animating = !0, I.animate(K.id, "style").when(N, { pointList: P }).during(function() { K.updateControlPoints && K.updateControlPoints(K.style) }).done(function() { K.__animating = !1 }).start(p) } function x(m, r) { for (var o = arguments.length, p = 2; o > p; p++) { var l = arguments[p]; m.style[l] = r.style[l] } } function A(p, P, L, i, M) { var N = L.style; P || (P = { position: L.position, style: { x: N.x, y: "vertical" == L._orient ? N.y + N.height : N.y, width: "vertical" == L._orient ? N.width : 0, height: "vertical" != L._orient ? N.height : 0 } }); var O = N.x, J = N.y, I = N.width, K = N.height, Q = [L.position[0], L.position[1]]; x(L, P, "x", "y", "width", "height"), L.position = P.position, p.addShape(L), (Q[0] != P.position[0] || Q[1] != P.position[1]) && p.animate(L.id, "").when(i, { position: Q }).start(M), L.__animating = !0, p.animate(L.id, "style").when(i, { x: O, y: J, width: I, height: K }).done(function() { L.__animating = !1 }).start(M) } function j(m, K, p, s, l) { if (!K) { var I = p.style.y; K = { style: { y: [I[0], I[0], I[0], I[0]] } } } var J = p.style.y; p.style.y = K.style.y, m.addShape(p), p.__animating = !0, m.animate(p.id, "style").when(s, { y: J }).done(function() { p.__animating = !1 }).start(l) } function B(p, O, I, K, m) { var L = I.style.x, M = I.style.y, N = I.style.r0, J = I.style.r; I.__animating = !0, "r" != I._animationAdd ? (I.style.r0 = 0, I.style.r = 0, I.rotation = [2 * Math.PI, L, M], p.addShape(I), p.animate(I.id, "style").when(K, { r0: N, r: J }).done(function() { I.__animating = !1 }).start(m), p.animate(I.id, "").when(K, { rotation: [0, L, M] }).start(m)) : (I.style.r0 = I.style.r, p.addShape(I), p.animate(I.id, "style").when(K, { r0: N }).done(function() { I.__animating = !1 }).start(m)) } function D(l, K, m, i, p) { K || (K = "r" != m._animationAdd ? { style: { startAngle: m.style.startAngle, endAngle: m.style.startAngle } } : { style: { r0: m.style.r } }); var I = m.style.startAngle, J = m.style.endAngle; x(m, K, "startAngle", "endAngle"), l.addShape(m), m.__animating = !0, l.animate(m.id, "style").when(i, { startAngle: I, endAngle: J }).done(function() { m.__animating = !1 }).start(p) } function E(l, K, m, i, p) { K || (K = { style: { x: "left" == m.style.textAlign ? m.style.x + 100 : m.style.x - 100, y: m.style.y } }); var I = m.style.x, J = m.style.y; x(m, K, "x", "y"), l.addShape(m), m.__animating = !0, l.animate(m.id, "style").when(i, { x: I, y: J }).done(function() { m.__animating = !1 }).start(p) } function y(M, m, I, e, J) { var K = v("zrender/shape/Polygon").prototype.getRect(I.style), L = K.x + K.width / 2, p = K.y + K.height / 2; I.scale = [0.1, 0.1, L, p], M.addShape(I), I.__animating = !0, M.animate(I.id, "").when(e, { scale: [1, 1, L, p] }).done(function() { I.__animating = !1 }).start(J) } function w(m, N, J, i, K) { N || (N = { style: { source0: 0, source1: J.style.source1 > 0 ? 360 : -360, target0: 0, target1: J.style.target1 > 0 ? 360 : -360 } }); var L = J.style.source0, M = J.style.source1, I = J.style.target0, p = J.style.target1; N.style && x(J, N, "source0", "source1", "target0", "target1"), m.addShape(J), J.__animating = !0, m.animate(J.id, "style").when(i, { source0: L, source1: M, target0: I, target1: p }).done(function() { J.__animating = !1 }).start(K) } function z(m, I, p, r, l) { I || (I = { style: { angle: p.style.startAngle } }); var s = p.style.angle; p.style.angle = I.style.angle, m.addShape(p), p.__animating = !0, m.animate(p.id, "style").when(r, { angle: s }).done(function() { p.__animating = !1 }).start(l) } function H(n, M, p, m, J, K) { if (p.style._x = p.style.x, p.style._y = p.style.y, p.style._width = p.style.width, p.style._height = p.style.height, M) { A(n, M, p, m, J) } else { var L = p._x || 0, I = p._y || 0; p.scale = [0.01, 0.01, L, I], n.addShape(p), p.__animating = !0, n.animate(p.id, "").delay(K).when(m, { scale: [1, 1, L, I] }).done(function() { p.__animating = !1 }).start(J || "QuinticOut") } } function G(m, N, J, i, K) { N || (N = { style: { xStart: J.style.xStart, yStart: J.style.yStart, xEnd: J.style.xStart, yEnd: J.style.yStart } }); var L = J.style.xStart, M = J.style.xEnd, I = J.style.yStart, p = J.style.yEnd; x(J, N, "xStart", "xEnd", "yStart", "yEnd"), m.addShape(J), J.__animating = !0, m.animate(J.id, "style").when(i, { xStart: L, xEnd: M, yStart: I, yEnd: p }).done(function() { J.__animating = !1 }).start(K) } function u(K, W, M, P, I) { I = I || "QuinticOut", M.__animating = !0, K.addShape(M); var Q = M.style, S = function() { M.__animating = !1 }, T = Q.xStart, N = Q.yStart, L = Q.xEnd, O = Q.yEnd; if (Q.curveness > 0) { M.updatePoints(Q); var Z = { p: 0 }, Y = Q.cpX1, J = Q.cpY1, R = [], X = [], aa = q.quadraticSubdivide; K.animation.animate(Z).when(P, { p: 1 }).during(function() { aa(T, Y, L, Z.p, R), aa(N, J, O, Z.p, X), Q.cpX1 = R[1], Q.cpY1 = X[1], Q.xEnd = R[2], Q.yEnd = X[2], K.modShape(M) }).done(S).start(I) } else { K.animate(M.id, "style").when(0, { xEnd: T, yEnd: N }).when(P, { xEnd: L, yEnd: O }).done(S).start(I) } } var C = v("zrender/tool/util"), q = v("zrender/tool/curve"); return { pointList: F, rectangle: A, candle: j, ring: B, sector: D, text: E, polygon: y, ribbon: w, gaugePointer: z, icon: H, line: G, markline: u } }), d("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(u) { function E(I, P, K, N) { var o, O = K.effect, L = O.color || K.style.strokeColor || K.style.color, M = O.shadowColor || L, S = O.scaleSize, R = O.bounceDistance, H = "undefined" != typeof O.shadowBlur ? O.shadowBlur : S; "image" !== K.type ? (o = new v({ zlevel: N, style: { brushType: "stroke", iconType: "droplet" != K.style.iconType ? K.style.iconType : "circle", x: H + 1, y: H + 1, n: K.style.n, width: K.style._width * S, height: K.style._height * S, lineWidth: 1, strokeColor: L, shadowColor: M, shadowBlur: H }, draggable: !1, hoverable: !1 }), "pin" == K.style.iconType && (o.style.y += o.style.height / 2 * 1.5), B && (o.style.image = I.shapeToImage(o, o.style.width + 2 * H + 2, o.style.height + 2 * H + 2).style.image, o = new D({ zlevel: o.zlevel, style: o.style, draggable: !1, hoverable: !1 }))) : o = new D({ zlevel: N, style: K.style, draggable: !1, hoverable: !1 }), A.clone(K, o), o.position = K.position, P.push(o), I.addShape(o); var s = "image" !== K.type ? window.devicePixelRatio || 1 : 1, Q = (o.style.width / s - K.style._width) / 2; o.style.x = K.style._x - Q, o.style.y = K.style._y - Q, "pin" == K.style.iconType && (o.style.y -= K.style.height / 2 * 1.5); var T = 100 * (O.period + 10 * Math.random()); I.modShape(K.id, { invisible: !0 }); var J = o.style.x + o.style.width / 2 / s, p = o.style.y + o.style.height / 2 / s; "scale" === O.type ? (I.modShape(o.id, { scale: [0.1, 0.1, J, p] }), I.animate(o.id, "", O.loop).when(T, { scale: [1, 1, J, p] }).done(function() { K.effect.show = !1, I.delShape(o.id) }).start()) : I.animate(o.id, "style", O.loop).when(T, { y: o.style.y - R }).when(2 * T, { y: o.style.y }).done(function() { K.effect.show = !1, I.delShape(o.id) }).start() } function w(J, S, L, N) { var m = L.effect, O = m.color || L.style.strokeColor || L.style.color, Q = m.scaleSize, R = m.shadowColor || O, M = "undefined" != typeof m.shadowBlur ? m.shadowBlur : 2 * Q, K = window.devicePixelRatio || 1, W = new y({ zlevel: N, position: L.position, scale: L.scale, style: { pointList: L.style.pointList, iconType: L.style.iconType, color: O, strokeColor: O, shadowColor: R, shadowBlur: M * K, random: !0, brushType: "fill", lineWidth: 1, size: L.style.size }, draggable: !1, hoverable: !1 }); S.push(W), J.addShape(W), J.modShape(L.id, { invisible: !0 }); for (var T = Math.round(100 * m.period), I = {}, P = {}, H = 0; 20 > H; H++) { W.style["randomMap" + H] = 0, I = {}, I["randomMap" + H] = 100, P = {}, P["randomMap" + H] = 0, W.style["randomMap" + H] = 100 * Math.random(), J.animate(W.id, "style", !0).when(T, I).when(2 * T, P).when(3 * T, I).when(4 * T, I).delay(Math.random() * T * H).start() } } function z(M, ah, U, ae, o) { var af = U.effect, R = U.style, ad = af.color || R.strokeColor || R.color, al = af.shadowColor || R.strokeColor || ad, r = R.lineWidth * af.scaleSize, aj = "undefined" != typeof af.shadowBlur ? af.shadowBlur : r, aq = new C({ zlevel: ae, style: { x: aj, y: aj, r: r, color: ad, shadowColor: al, shadowBlur: aj }, hoverable: !1 }), Q = 0; if (B && !o) { var ae = aq.zlevel; aq = M.shapeToImage(aq, 2 * (r + aj), 2 * (r + aj)), aq.zlevel = ae, aq.hoverable = !1, Q = aj } o || (A.clone(U, aq), aq.position = U.position, ah.push(aq), M.addShape(aq)); var p = function() { o || (U.effect.show = !1, M.delShape(aq.id)), aq.effectAnimator = null }; if (U instanceof F) { for (var O = [0], aa = 0, ao = R.pointList, l = R.controlPointList, ac = 1; ac < ao.length; ac++) { if (l) { var an = l[2 * (ac - 1)], ap = l[2 * (ac - 1) + 1]; aa += q.dist(ao[ac - 1], an) + q.dist(an, ap) + q.dist(ap, ao[ac]) } else { aa += q.dist(ao[ac - 1], ao[ac]) } O.push(aa) } for (var ak = { p: 0 }, am = M.animation.animate(ak, { loop: af.loop }), ac = 0; ac < O.length; ac++) { am.when(O[ac] * af.period, { p: ac }) } am.during(function() { var T, e, J = Math.floor(ak.p); if (J == ao.length - 1) { T = ao[J][0], e = ao[J][1] } else { var K = ak.p - J, L = ao[J], S = ao[J + 1]; if (l) { var a = l[2 * J], I = l[2 * J + 1]; T = x.cubicAt(L[0], a[0], I[0], S[0], K), e = x.cubicAt(L[1], a[1], I[1], S[1], K) } else { T = (S[0] - L[0]) * K + L[0], e = (S[1] - L[1]) * K + L[1] } } aq.style.x = T, aq.style.y = e, o || M.modShape(aq) }).done(p).start(), am.duration = aa * af.period, aq.effectAnimator = am } else { var ab = R.xStart - Q, Y = R.yStart - Q, Z = R.xEnd - Q, H = R.yEnd - Q; aq.style.x = ab, aq.style.y = Y; var ag = (Z - ab) * (Z - ab) + (H - Y) * (H - Y), N = Math.round(Math.sqrt(Math.round(ag * af.period * af.period))); if (U.style.curveness > 0) { var P = R.cpX1 - Q, ai = R.cpY1 - Q; aq.effectAnimator = M.animation.animate(aq, { loop: af.loop }).when(N, { p: 1 }).during(function(e, a) { aq.style.x = x.quadraticAt(ab, P, Z, a), aq.style.y = x.quadraticAt(Y, ai, H, a), o || M.modShape(aq) }).done(p).start() } else { aq.effectAnimator = M.animation.animate(aq.style, { loop: af.loop }).when(N, { x: Z, y: H }).during(function() { o || M.modShape(aq) }).done(p).start() } aq.effectAnimator.duration = N } return aq } function j(J, S, L, n) { var O = new G({ style: { shapeList: [] }, zlevel: n, hoverable: !1 }), Q = L.style.shapeList, R = L.effect; O.position = L.position; for (var M = 0, K = [], N = 0; N < Q.length; N++) { Q[N].effect = R; var V = z(J, null, Q[N], n, !0), I = V.effectAnimator; O.style.shapeList.push(V), I.duration > M && (M = I.duration), 0 === N && (O.style.color = V.style.color, O.style.shadowBlur = V.style.shadowBlur, O.style.shadowColor = V.style.shadowColor), K.push(I) } S.push(O), J.addShape(O); var P = function() { for (var a = 0; a < K.length; a++) { K[a].stop() } }; if (M) { O.__dummy = 0; var H = J.animate(O.id, "", R.loop).when(M, { __dummy: 1 }).during(function() { J.modShape(O) }).done(function() { L.effect.show = !1, J.delShape(O.id) }).start(), T = H.stop; H.stop = function() { P(), T.call(this) } } } var A = u("../util/ecData"), C = u("zrender/shape/Circle"), D = u("zrender/shape/Image"), x = u("zrender/tool/curve"), v = u("../util/shape/Icon"), y = u("../util/shape/Symbol"), G = u("zrender/shape/ShapeBundle"), F = u("zrender/shape/Polyline"), q = u("zrender/tool/vector"), B = u("zrender/tool/env").canvasSupported; return { point: E, largePoint: w, line: z, largeLine: j } }), d("echarts/component/base", ["require", "../config", "../util/ecData", "../util/ecQuery", "../util/number", "zrender/tool/util", "zrender/tool/env"], function(l) { function u(n, y, i, v, w) { this.ecTheme = n, this.messageCenter = y, this.zr = i, this.option = v, this.series = v.series, this.myChart = w, this.component = w.component, this.shapeList = [], this.effectList = []; var x = this; x._onlegendhoverlink = function(z) { if (x.legendHoverLink) { for (var B, r = z.target, A = x.shapeList.length - 1; A >= 0; A--) { B = x.type == m.CHART_TYPE_PIE || x.type == m.CHART_TYPE_FUNNEL ? p.get(x.shapeList[A], "name") : (p.get(x.shapeList[A], "series") || {}).name, B != r || x.shapeList[A].invisible || x.shapeList[A].__animating || x.zr.addHoverShape(x.shapeList[A]) } } }, y && y.bind(m.EVENT.LEGEND_HOVERLINK, this._onlegendhoverlink) } var m = l("../config"), p = l("../util/ecData"), j = l("../util/ecQuery"), q = l("../util/number"), s = l("zrender/tool/util"); return u.prototype = { canvasSupported: l("zrender/tool/env").canvasSupported, _getZ: function(a) { if (null != this[a]) { return this[a] } var i = this.ecTheme[this.type]; return i && null != i[a] ? i[a] : (i = m[this.type], i && null != i[a] ? i[a] : 0) }, getZlevelBase: function() { return this._getZ("zlevel") }, getZBase: function() { return this._getZ("z") }, reformOption: function(a) { return a = s.merge(s.merge(a || {}, s.clone(this.ecTheme[this.type] || {})), s.clone(m[this.type] || {})), this.z = a.z, this.zlevel = a.zlevel, a }, reformCssArray: function(a) { if (!(a instanceof Array)) { return [a, a, a, a] } switch (a.length + "") { case "4": return a; case "3": return [a[0], a[1], a[2], a[1]]; case "2": return [a[0], a[1], a[0], a[1]]; case "1": return [a[0], a[0], a[0], a[0]]; case "0": return [0, 0, 0, 0] } }, getShapeById: function(a) { for (var o = 0, n = this.shapeList.length; n > o; o++) { if (this.shapeList[o].id === a) { return this.shapeList[o] } } return null }, getFont: function(a) { var i = this.getTextStyle(s.clone(a)); return i.fontStyle + " " + i.fontWeight + " " + i.fontSize + "px " + i.fontFamily }, getTextStyle: function(a) { return s.merge(s.merge(a || {}, this.ecTheme.textStyle), m.textStyle) }, getItemStyleColor: function(a, v, o, r) { return "function" == typeof a ? a.call(this.myChart, { seriesIndex: v, series: this.series[v], dataIndex: o, data: r }) : a }, getDataFromOption: function(a, i) { return null != a ? null != a.value ? a.value : a : i }, subPixelOptimize: function(a, i) { return a = i % 2 === 1 ? Math.floor(a) + 0.5 : Math.round(a) }, resize: function() { this.refresh && this.refresh(), this.clearEffectShape && this.clearEffectShape(!0); var a = this; setTimeout(function() { a.animationEffect && a.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(m.EVENT.LEGEND_HOVERLINK, this._onlegendhoverlink), this.onafterDispose && this.onafterDispose() }, query: j.query, deepQuery: j.deepQuery, deepMerge: j.deepMerge, parsePercent: q.parsePercent, parseCenter: q.parseCenter, parseRadius: q.parseRadius, numAddCommas: q.addCommas, getPrecision: q.getPrecision }, u }), d("echarts/layout/EdgeBundling", ["require", "../data/KDTree", "zrender/tool/vector"], function(p) { function B(m, F) { m = m.array, F = F.array; var r = F[0] - m[0], s = F[1] - m[1], l = F[2] - m[2], E = F[3] - m[3]; return r * r + s * s + l * l + E * E } function u(a) { this.points = [a.mp0, a.mp1], this.group = a } function x(a) { var i = a.points; i[0][1] < i[1][1] || a instanceof u ? (this.array = [i[0][0], i[0][1], i[1][0], i[1][1]], this._startPoint = i[0], this._endPoint = i[1]) : (this.array = [i[1][0], i[1][1], i[0][0], i[0][1]], this._startPoint = i[1], this._endPoint = i[0]), this.ink = w(i[0], i[1]), this.edge = a, this.group = null } function j() { this.edgeList = [], this.mp0 = v(), this.mp1 = v(), this.ink = 0 } function y() { this.maxNearestEdge = 6, this.maxTurningAngle = Math.PI / 4, this.maxIteration = 20 } var z = p("../data/KDTree"), A = p("zrender/tool/vector"), v = A.create, q = A.distSquare, w = A.dist, D = A.copy, C = A.clone; return x.prototype.getStartPoint = function() { return this._startPoint }, x.prototype.getEndPoint = function() { return this._endPoint }, j.prototype.addEdge = function(a) { a.group = this, this.edgeList.push(a) }, j.prototype.removeEdge = function(a) { a.group = null, this.edgeList.splice(this.edgeList.indexOf(a), 1) }, y.prototype = { constructor: y, run: function(E) { function L(a, l) { return q(a, l) < 1e-10 } function H(m, r) { for (var s = [], l = 0, t = 0; t < m.length; t++) { l > 0 && L(m[t], s[l - 1]) || (s[l++] = C(m[t])) } return r[0] && !L(s[0], r[0]) && (s = s.reverse()), s } for (var i = this._iterate(E), I = 0; I++ < this.maxIteration;) { for (var J = [], K = 0; K < i.groups.length; K++) { J.push(new u(i.groups[K])) } var F = this._iterate(J); if (F.savedInk <= 0) { break } i = F } var G = [], M = function(n, S) { for (var m, P = 0; P < n.length; P++) { var Q = n[P]; if (Q.edgeList[0] && Q.edgeList[0].edge instanceof u) { for (var R = [], O = 0; O < Q.edgeList.length; O++) { R.push(Q.edgeList[O].edge.group) } m = S ? S.slice() : [], m.unshift(Q.mp0), m.push(Q.mp1), M(R, m) } else { for (var O = 0; O < Q.edgeList.length; O++) { var N = Q.edgeList[O]; m = S ? S.slice() : [], m.unshift(Q.mp0), m.push(Q.mp1), m.unshift(N.getStartPoint()), m.push(N.getEndPoint()), G.push({ points: H(m, N.edge.points), rawEdge: N.edge }) } } } }; return M(i.groups), G }, _iterate: function(t) { for (var H = [], M = [], O = 0, G = 0; G < t.length; G++) { var K = new x(t[G]); H.push(K) } for (var Q = new z(H, 4), r = [], N = v(), n = v(), P = 0, V = v(), F = v(), l = 0, G = 0; G < H.length; G++) { var K = H[G]; if (!K.group) { Q.nearestN(K, this.maxNearestEdge, B, r); for (var E = 0, I = null, S = null, a = 0; a < r.length; a++) { var J = r[a], R = 0; J.group ? J.group !== S && (S = J.group, P = this._calculateGroupEdgeInk(J.group, K, N, n), R = J.group.ink + K.ink - P) : (P = this._calculateEdgeEdgeInk(K, J, N, n), R = J.ink + K.ink - P), R > E && (E = R, I = J, D(F, n), D(V, N), l = P) } if (I) { O += E; var T; I.group || (T = new j, M.push(T), T.addEdge(I)), T = I.group, D(T.mp0, V), D(T.mp1, F), T.ink = l, I.group.addEdge(K) } else { var T = new j; M.push(T), D(T.mp0, K.getStartPoint()), D(T.mp1, K.getEndPoint()), T.ink = K.ink, T.addEdge(K) } } } return { groups: M, edges: H, savedInk: O } }, _calculateEdgeEdgeInk: function() { var a = [], i = []; return function(l, m, e, s) { a[0] = l.getStartPoint(), a[1] = m.getStartPoint(), i[0] = l.getEndPoint(), i[1] = m.getEndPoint(), this._calculateMeetPoints(a, i, e, s); var t = w(a[0], e) + w(e, s) + w(s, i[0]) + w(a[1], e) + w(s, i[1]); return t } }(), _calculateGroupEdgeInk: function(E, L, F, H) { for (var m = [], I = [], J = 0; J < E.edgeList.length; J++) { var K = E.edgeList[J]; m.push(K.getStartPoint()), I.push(K.getEndPoint()) } m.push(L.getStartPoint()), I.push(L.getEndPoint()), this._calculateMeetPoints(m, I, F, H); for (var G = w(F, H), J = 0; J < m.length; J++) { G += w(m[J], F) + w(I[J], H) } return G }, _calculateMeetPoints: function() { var a = v(), i = v(); return function(m, t, e, E) { A.set(a, 0, 0), A.set(i, 0, 0); for (var F = m.length, s = 0; F > s; s++) { A.add(a, a, m[s]) } A.scale(a, a, 1 / F), F = t.length; for (var s = 0; F > s; s++) { A.add(i, i, t[s]) } A.scale(i, i, 1 / F), this._limitTurningAngle(m, a, i, e), this._limitTurningAngle(t, i, a, E) } }(), _limitTurningAngle: function() { var a = v(), o = v(), l = v(), m = v(); return function(e, G, I, F) { var L = Math.cos(this.maxTurningAngle), K = Math.tan(this.maxTurningAngle); A.sub(a, G, I), A.normalize(a, a), A.copy(F, G); for (var s = 0, H = 0; H < e.length; H++) { var n = e[H]; A.sub(o, n, G); var J = A.len(o); A.scale(o, o, 1 / J); var M = A.dot(o, a); if (L > M) { A.scaleAndAdd(l, G, a, J * M); var E = w(l, n), i = E / K; A.scaleAndAdd(m, l, a, -i); var t = q(m, G); t > s && (s = t, A.copy(F, m)) } } } }() }, y }), d("zrender/shape/Star", ["require", "../tool/math", "./Base", "../tool/util"], function(l) { var u = l("../tool/math"), m = u.sin, p = u.cos, j = Math.PI, q = l("./Base"), s = function(a) { q.call(this, a) }; return s.prototype = { type: "star", buildPath: function(n, D) { var z = D.n; if (z && !(2 > z)) { var B = D.x, C = D.y, w = D.r, v = D.r0; null == v && (v = z > 4 ? w * p(2 * j / z) / p(j / z) : w / 3); var x = j / z, G = -j / 2, F = B + w * p(G), i = C + w * m(G); G += x; var A = D.pointList = []; A.push([F, i]); for (var a, E = 0, H = 2 * z - 1; H > E; E++) { a = E % 2 === 0 ? v : w, A.push([B + a * p(G), C + a * m(G)]), G += x } A.push([F, i]), n.moveTo(A[0][0], A[0][1]); for (var E = 0; E < A.length; E++) { n.lineTo(A[E][0], A[E][1]) } n.closePath() } }, getRect: function(a) { if (a.__rect) { return a.__rect } var i; return i = "stroke" == a.brushType || "fill" == a.brushType ? a.lineWidth || 1 : 0, a.__rect = { x: Math.round(a.x - a.r - i / 2), y: Math.round(a.y - a.r - i / 2), width: 2 * a.r + i, height: 2 * a.r + i }, a.__rect } }, l("../tool/util").inherits(s, q), s }), d("zrender/shape/Heart", ["require", "./Base", "./util/PathProxy", "../tool/area", "../tool/util"], function(l) { var p = l("./Base"), m = l("./util/PathProxy"), o = l("../tool/area"), j = function(a) { p.call(this, a), this._pathProxy = new m }; return j.prototype = { type: "heart", buildPath: function(a, q) { var i = this._pathProxy || new m; i.begin(a), i.moveTo(q.x, q.y), i.bezierCurveTo(q.x + q.a / 2, q.y - 2 * q.b / 3, q.x + 2 * q.a, q.y + q.b / 3, q.x, q.y + q.b), i.bezierCurveTo(q.x - 2 * q.a, q.y + q.b / 3, q.x - q.a / 2, q.y - 2 * q.b / 3, q.x, q.y), i.closePath() }, getRect: function(a) { return a.__rect ? a.__rect : (this._pathProxy.isEmpty() || this.buildPath(null, a), this._pathProxy.fastBoundingRect()) }, isCover: function(a, q) { var n = this.transformCoordToLocal(a, q); return a = n[0], q = n[1], this.isCoverRect(a, q) ? o.isInsidePath(this._pathProxy.pathCommands, this.style.lineWidth, this.style.brushType, a, q) : void 0 } }, l("../tool/util").inherits(j, p), j }), d("zrender/shape/Droplet", ["require", "./Base", "./util/PathProxy", "../tool/area", "../tool/util"], function(l) { var p = l("./Base"), m = l("./util/PathProxy"), o = l("../tool/area"), j = function(a) { p.call(this, a), this._pathProxy = new m }; return j.prototype = { type: "droplet", buildPath: function(a, q) { var i = this._pathProxy || new m; i.begin(a), i.moveTo(q.x, q.y + q.a), i.bezierCurveTo(q.x + q.a, q.y + q.a, q.x + 3 * q.a / 2, q.y - q.a / 3, q.x, q.y - q.b), i.bezierCurveTo(q.x - 3 * q.a / 2, q.y - q.a / 3, q.x - q.a, q.y + q.a, q.x, q.y + q.a), i.closePath() }, getRect: function(a) { return a.__rect ? a.__rect : (this._pathProxy.isEmpty() || this.buildPath(null, a), this._pathProxy.fastBoundingRect()) }, isCover: function(a, q) { var n = this.transformCoordToLocal(a, q); return a = n[0], q = n[1], this.isCoverRect(a, q) ? o.isInsidePath(this._pathProxy.pathCommands, this.style.lineWidth, this.style.brushType, a, q) : void 0 } }, l("../tool/util").inherits(j, p), j }), d("zrender/tool/math", [], function() { function l(a, i) { return Math.sin(i ? a * j : a) } function p(a, i) { return Math.cos(i ? a * j : a) } function m(a) { return a * j } function o(a) { return a / j } var j = Math.PI / 180; return { sin: l, cos: p, degreeToRadian: m, radianToDegree: o } }), d("zrender/shape/util/PathProxy", ["require", "../../tool/vector"], function(a) { var m = a("../../tool/vector"), j = function(i, n) { this.command = i, this.points = n || null }, l = function() { this.pathCommands = [], this._ctx = null, this._min = [], this._max = [] }; return l.prototype.fastBoundingRect = function() { var q = this._min, u = this._max; q[0] = q[1] = 1 / 0, u[0] = u[1] = -(1 / 0); for (var x = 0; x < this.pathCommands.length; x++) { var p = this.pathCommands[x], y = p.points; switch (p.command) { case "M": m.min(q, q, y), m.max(u, u, y); break; case "L": m.min(q, q, y), m.max(u, u, y); break; case "C": for (var z = 0; 6 > z; z += 2) { q[0] = Math.min(q[0], q[0], y[z]), q[1] = Math.min(q[1], q[1], y[z + 1]), u[0] = Math.max(u[0], u[0], y[z]), u[1] = Math.max(u[1], u[1], y[z + 1]) } break; case "Q": for (var z = 0; 4 > z; z += 2) { q[0] = Math.min(q[0], q[0], y[z]), q[1] = Math.min(q[1], q[1], y[z + 1]), u[0] = Math.max(u[0], u[0], y[z]), u[1] = Math.max(u[1], u[1], y[z + 1]) } break; case "A": var A = y[0], v = y[1], t = y[2], w = y[3]; q[0] = Math.min(q[0], q[0], A - t), q[1] = Math.min(q[1], q[1], v - w), u[0] = Math.max(u[0], u[0], A + t), u[1] = Math.max(u[1], u[1], v + w) } } return { x: q[0], y: q[1], width: u[0] - q[0], height: u[1] - q[1] } }, l.prototype.begin = function(i) { return this._ctx = i || null, this.pathCommands.length = 0, this }, l.prototype.moveTo = function(i, n) { return this.pathCommands.push(new j("M", [i, n])), this._ctx && this._ctx.moveTo(i, n), this }, l.prototype.lineTo = function(i, n) { return this.pathCommands.push(new j("L", [i, n])), this._ctx && this._ctx.lineTo(i, n), this }, l.prototype.bezierCurveTo = function(p, v, q, i, s, u) { return this.pathCommands.push(new j("C", [p, v, q, i, s, u])), this._ctx && this._ctx.bezierCurveTo(p, v, q, i, s, u), this }, l.prototype.quadraticCurveTo = function(o, q, p, i) { return this.pathCommands.push(new j("Q", [o, q, p, i])), this._ctx && this._ctx.quadraticCurveTo(o, q, p, i), this }, l.prototype.arc = function(p, v, q, i, s, u) { return this.pathCommands.push(new j("A", [p, v, q, q, i, s - i, 0, u ? 0 : 1])), this._ctx && this._ctx.arc(p, v, q, i, s, u), this }, l.prototype.arcTo = function(p, s, q, r, o) { return this._ctx && this._ctx.arcTo(p, s, q, r, o), this }, l.prototype.rect = function(o, r, p, q) { return this._ctx && this._ctx.rect(o, r, p, q), this }, l.prototype.closePath = function() { return this.pathCommands.push(new j("z")), this._ctx && this._ctx.closePath(), this }, l.prototype.isEmpty = function() { return 0 === this.pathCommands.length }, l.PathSegment = j, l }), d("zrender/shape/Line", ["require", "./Base", "./util/dashedLineTo", "../tool/util"], function(a) { var m = a("./Base"), j = a("./util/dashedLineTo"), l = function(i) { this.brushTypeOnly = "stroke", this.textPosition = "end", m.call(this, i) }; return l.prototype = { type: "line", buildPath: function(i, p) { if (p.lineType && "solid" != p.lineType) { if ("dashed" == p.lineType || "dotted" == p.lineType) { var o = (p.lineWidth || 1) * ("dashed" == p.lineType ? 5 : 1); j(i, p.xStart, p.yStart, p.xEnd, p.yEnd, o) } } else { i.moveTo(p.xStart, p.yStart), i.lineTo(p.xEnd, p.yEnd) } }, getRect: function(i) { if (i.__rect) { return i.__rect } var n = i.lineWidth || 1; return i.__rect = { x: Math.min(i.xStart, i.xEnd) - n, y: Math.min(i.yStart, i.yEnd) - n, width: Math.abs(i.xStart - i.xEnd) + n, height: Math.abs(i.yStart - i.yEnd) + n }, i.__rect } }, a("../tool/util").inherits(l, m), l }), d("zrender/shape/BezierCurve", ["require", "./Base", "../tool/util"], function(a) { var l = a("./Base"), j = function(i) { this.brushTypeOnly = "stroke", this.textPosition = "end", l.call(this, i) }; return j.prototype = { type: "bezier-curve", buildPath: function(i, m) { i.moveTo(m.xStart, m.yStart), "undefined" != typeof m.cpX2 && "undefined" != typeof m.cpY2 ? i.bezierCurveTo(m.cpX1, m.cpY1, m.cpX2, m.cpY2, m.xEnd, m.yEnd) : i.quadraticCurveTo(m.cpX1, m.cpY1, m.xEnd, m.yEnd) }, getRect: function(p) { if (p.__rect) { return p.__rect } var y = Math.min(p.xStart, p.xEnd, p.cpX1), q = Math.min(p.yStart, p.yEnd, p.cpY1), u = Math.max(p.xStart, p.xEnd, p.cpX1), m = Math.max(p.yStart, p.yEnd, p.cpY1), v = p.cpX2, w = p.cpY2; "undefined" != typeof v && "undefined" != typeof w && (y = Math.min(y, v), q = Math.min(q, w), u = Math.max(u, v), m = Math.max(m, w)); var x = p.lineWidth || 1; return p.__rect = { x: y - x, y: q - x, width: u - y + x, height: m - q + x }, p.__rect } }, a("../tool/util").inherits(j, l), j }), d("zrender/shape/util/dashedLineTo", [], function() { var a = [5, 5]; return function(z, p, v, e, w, x) { if (z.setLineDash) { return a[0] = a[1] = x, z.setLineDash(a), z.moveTo(p, v), void z.lineTo(e, w) } x = "number" != typeof x ? 5 : x; var y = e - p, q = w - v, j = Math.floor(Math.sqrt(y * y + q * q) / x); y /= j, q /= j; for (var u = !0, A = 0; j > A; ++A) { u ? z.moveTo(p, v) : z.lineTo(p, v), u = !u, p += y, v += q } z.lineTo(e, w) } }), d("zrender/shape/Polygon", ["require", "./Base", "./util/smoothSpline", "./util/smoothBezier", "./util/dashedLineTo", "../tool/util"], function(l) { var r = l("./Base"), m = l("./util/smoothSpline"), p = l("./util/smoothBezier"), j = l("./util/dashedLineTo"), q = function(a) { r.call(this, a) }; return q.prototype = { type: "polygon", buildPath: function(i, z) { var w = z.pointList; if (!(w.length < 2)) { if (z.smooth && "spline" !== z.smooth) { var x = p(w, z.smooth, !0, z.smoothConstraint); i.moveTo(w[0][0], w[0][1]); for (var y, u, n, v = w.length, B = 0; v > B; B++) { y = x[2 * B], u = x[2 * B + 1], n = w[(B + 1) % v], i.bezierCurveTo(y[0], y[1], u[0], u[1], n[0], n[1]) } } else { if ("spline" === z.smooth && (w = m(w, !0)), z.lineType && "solid" != z.lineType) { if ("dashed" == z.lineType || "dotted" == z.lineType) { var A = z._dashLength || (z.lineWidth || 1) * ("dashed" == z.lineType ? 5 : 1); z._dashLength = A, i.moveTo(w[0][0], w[0][1]); for (var B = 1, a = w.length; a > B; B++) { j(i, w[B - 1][0], w[B - 1][1], w[B][0], w[B][1], A) } j(i, w[w.length - 1][0], w[w.length - 1][1], w[0][0], w[0][1], A) } } else { i.moveTo(w[0][0], w[0][1]); for (var B = 1, a = w.length; a > B; B++) { i.lineTo(w[B][0], w[B][1]) } i.lineTo(w[0][0], w[0][1]) } } i.closePath() } }, getRect: function(v) { if (v.__rect) { return v.__rect } for (var C = Number.MAX_VALUE, w = Number.MIN_VALUE, y = Number.MAX_VALUE, u = Number.MIN_VALUE, z = v.pointList, A = 0, B = z.length; B > A; A++) { z[A][0] < C && (C = z[A][0]), z[A][0] > w && (w = z[A][0]), z[A][1] < y && (y = z[A][1]), z[A][1] > u && (u = z[A][1]) } var x; return x = "stroke" == v.brushType || "fill" == v.brushType ? v.lineWidth || 1 : 0, v.__rect = { x: Math.round(C - x / 2), y: Math.round(y - x / 2), width: w - C + x, height: u - y + x }, v.__rect } }, l("../tool/util").inherits(q, r), q }), d("echarts/util/shape/normalIsCover", [], function() { return function(a, l) { var j = this.transformCoordToLocal(a, l); return a = j[0], l = j[1], this.isCoverRect(a, l) } }), d("zrender/shape/util/smoothSpline", ["require", "../../tool/vector"], function(a) { function l(p, z, q, v, m, w, x) { var y = 0.5 * (q - p), u = 0.5 * (v - z); return (2 * (z - q) + y + u) * x + (-3 * (z - q) - 2 * y - u) * w + y * m + z } var j = a("../../tool/vector"); return function(v, A) { for (var i = v.length, B = [], D = 0, E = 1; i > E; E++) { D += j.distance(v[E - 1], v[E]) } var x = D / 5; x = i > x ? i : x; for (var E = 0; x > E; E++) { var w, z, H, G = E / (x - 1) * (A ? i : i - 1), t = Math.floor(G), C = G - t, q = v[t % i]; A ? (w = v[(t - 1 + i) % i], z = v[(t + 1) % i], H = v[(t + 2) % i]) : (w = v[0 === t ? t : t - 1], z = v[t > i - 2 ? i - 1 : t + 1], H = v[t > i - 3 ? i - 1 : t + 2]); var F = C * C, I = C * F; B.push([l(w[0], q[0], z[0], H[0], C, F, I), l(w[1], q[1], z[1], H[1], C, F, I)]) } return B } }), d("zrender/shape/util/smoothBezier", ["require", "../../tool/vector"], function(a) { var i = a("../../tool/vector"); return function(w, B, F, j) { var G, I, J, D, A = [], E = [], M = [], L = [], v = !!j; if (v) { J = [1 / 0, 1 / 0], D = [-(1 / 0), -(1 / 0)]; for (var H = 0, t = w.length; t > H; H++) { i.min(J, J, w[H]), i.max(D, D, w[H]) } i.min(J, J, j[0]), i.max(D, D, j[1]) } for (var H = 0, t = w.length; t > H; H++) { var G, I, K = w[H]; if (F) { G = w[H ? H - 1 : t - 1], I = w[(H + 1) % t] } else { if (0 === H || H === t - 1) { A.push(i.clone(w[H])); continue } G = w[H - 1], I = w[H + 1] } i.sub(E, I, G), i.scale(E, E, B); var N = i.distance(K, G), z = i.distance(K, I), q = N + z; 0 !== q && (N /= q, z /= q), i.scale(M, E, -N), i.scale(L, E, z); var x = i.add([], K, M), C = i.add([], K, L); v && (i.max(x, x, J), i.min(x, x, D), i.max(C, C, J), i.min(C, C, D)), A.push(x), A.push(C) } return F && A.push(i.clone(A.shift())), A } }), d("echarts/util/ecQuery", ["require", "zrender/tool/util"], function(l) { function p(a, s) { if ("undefined" != typeof a) { if (!s) { return a } s = s.split("."); for (var q = s.length, r = 0; q > r;) { if (a = a[s[r]], "undefined" == typeof a) { return } r++ } return a } } function m(r, s) { for (var t, q = 0, u = r.length; u > q; q++) { if (t = p(r[q], s), "undefined" != typeof t) { return t } } } function o(a, q) { for (var s, t = a.length; t--;) { var u = p(a[t], q); "undefined" != typeof u && ("undefined" == typeof s ? s = j.clone(u) : j.merge(s, u, !0)) } return s } var j = l("zrender/tool/util"); return { query: p, deepQuery: m, deepMerge: o } }), d("echarts/util/number", [], function() { function l(a) { return a.replace(/^\s+/, "").replace(/\s+$/, "") } function r(e, a) { return "string" == typeof e ? l(e).match(/%$/) ? parseFloat(e) / 100 * a : parseFloat(e) : e } function m(a, n) { return [r(n[0], a.getWidth()), r(n[1], a.getHeight())] } function p(a, o) { o instanceof Array || (o = [0, o]); var s = Math.min(a.getWidth(), a.getHeight()) / 2; return [r(o[0], s), r(o[1], s)] } function j(a) { return isNaN(a) ? "-" : (a = (a + "").split("."), a[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g, "$1,") + (a.length > 1 ? "." + a[1] : "")) } function q(a) { for (var o = 1, n = 0; Math.round(a * o) / o !== a;) { o *= 10, n++ } return n } return { parsePercent: r, parseCenter: m, parseRadius: p, addCommas: j, getPrecision: q } }), d("echarts/data/KDTree", ["require", "./quickSelect"], function(a) { function m(i, n) { this.left = null, this.right = null, this.axis = i, this.data = n } var j = a("./quickSelect"), l = function(i, n) { i.length && (n || (n = i[0].array.length), this.dimension = n, this.root = this._buildTree(i, 0, i.length - 1, 0), this._stack = [], this._nearstNList = []) }; return l.prototype._buildTree = function(p, t, i, u) { if (t > i) { return null } var v = Math.floor((t + i) / 2); v = j(p, t, i, v, function(n, o) { return n.array[u] - o.array[u] }); var w = p[v], q = new m(u, w); return u = (u + 1) % this.dimension, i > t && (q.left = this._buildTree(p, t, v - 1, u), q.right = this._buildTree(p, v + 1, i, u)), q }, l.prototype.nearest = function(q, B) { var v = this.root, x = this._stack, p = 0, y = 1 / 0, z = null; for (v.data !== q && (y = B(v.data, q), z = v), q.array[v.axis] < v.data.array[v.axis] ? (v.right && (x[p++] = v.right), v.left && (x[p++] = v.left)) : (v.left && (x[p++] = v.left), v.right && (x[p++] = v.right)); p--;) { v = x[p]; var A = q.array[v.axis] - v.data.array[v.axis], w = 0 > A, u = !1; A *= A, y > A && (A = B(v.data, q), y > A && v.data !== q && (y = A, z = v), u = !0), w ? (u && v.right && (x[p++] = v.right), v.left && (x[p++] = v.left)) : (u && v.left && (x[p++] = v.left), v.right && (x[p++] = v.right)) } return z.data }, l.prototype._addNearest = function(p, s, q) { for (var r = this._nearstNList, o = p - 1; o > 0 && !(s >= r[o - 1].dist); o--) { r[o].dist = r[o - 1].dist, r[o].node = r[o - 1].node } r[o].dist = s, r[o].node = q }, l.prototype.nearestN = function(q, C, v, y) { if (0 >= C) { return y.length = 0, y } for (var p = this.root, z = this._stack, A = 0, B = this._nearstNList, w = 0; C > w; w++) { B[w] || (B[w] = {}), B[w].dist = 0, B[w].node = null } var u = v(p.data, q), x = 0; for (p.data !== q && (x++, this._addNearest(x, u, p)), q.array[p.axis] < p.data.array[p.axis] ? (p.right && (z[A++] = p.right), p.left && (z[A++] = p.left)) : (p.left && (z[A++] = p.left), p.right && (z[A++] = p.right)); A--;) { p = z[A]; var u = q.array[p.axis] - p.data.array[p.axis], E = 0 > u, D = !1; u *= u, (C > x || u < B[x - 1].dist) && (u = v(p.data, q), (C > x || u < B[x - 1].dist) && p.data !== q && (C > x && x++, this._addNearest(x, u, p)), D = !0), E ? (D && p.right && (z[A++] = p.right), p.left && (z[A++] = p.left)) : (D && p.left && (z[A++] = p.left), p.right && (z[A++] = p.right)) } for (var w = 0; x > w; w++) { y[w] = B[w].node.data } return y.length = x, y }, l }), d("echarts/data/quickSelect", ["require"], function() { function a(i, n) { return i - n } function m(o, r, p) { var q = o[r]; o[r] = o[p], o[p] = q } function j(q, t, v, p, w) { for (var x = t; v > t;) { var x = Math.round((v + t) / 2), y = q[x]; m(q, x, v), x = t; for (var u = t; v - 1 >= u; u++) { w(y, q[u]) >= 0 && (m(q, u, x), x++) } if (m(q, v, x), x === p) { return x } p > x ? t = x + 1 : v = x - 1 } return t } function l(s, i, e, p, q) { return arguments.length <= 3 && (p = i, q = 2 == arguments.length ? a : e, i = 0, e = s.length - 1), j(s, i, e, p, q) } return l }), d("echarts/component/dataView", ["require", "./base", "../config", "zrender/tool/util", "../component"], function(l) { function p(q, u, r, i, s) { m.call(this, q, u, r, i, s), this.dom = s.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 = r.getHeight(), this._zrWidth = r.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 m = l("./base"), o = l("../config"), j = l("zrender/tool/util"); return p.prototype = { type: o.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(a) { this._hasShow = !0; var s = this.query(this.option, "toolbox.feature.dataView.lang") || this._lang; this.option = a, this._tDom.innerHTML = '

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

"; var q = this.query(this.option, "toolbox.feature.dataView.optionToContent"); "function" != typeof q ? this._textArea.value = this._optionToContent() : (this._textArea = document.createElement("div"), this._textArea.innerHTML = q(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 = s[1] || this._lang[1]; var r = this; this._buttonClose.onclick = function() { r.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 = s[2] || this._lang[2], this._buttonRefresh.onclick = function() { r._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 q, B, v, n, y, z, A = [], w = ""; if (this.option.xAxis) { for (A = this.option.xAxis instanceof Array ? this.option.xAxis : [this.option.xAxis], q = 0, n = A.length; n > q; q++) { if ("category" == (A[q].type || "category")) { for (z = [], B = 0, v = A[q].data.length; v > B; B++) { z.push(this.getDataFromOption(A[q].data[B])) } w += z.join(", ") + "\n\n" } } } if (this.option.yAxis) { for (A = this.option.yAxis instanceof Array ? this.option.yAxis : [this.option.yAxis], q = 0, n = A.length; n > q; q++) { if ("category" == A[q].type) { for (z = [], B = 0, v = A[q].data.length; v > B; B++) { z.push(this.getDataFromOption(A[q].data[B])) } w += z.join(", ") + "\n\n" } } } var u, x = this.option.series; for (q = 0, n = x.length; n > q; q++) { for (z = [], B = 0, v = x[q].data.length; v > B; B++) { y = x[q].data[B], u = x[q].type == o.CHART_TYPE_PIE || x[q].type == o.CHART_TYPE_MAP ? (y.name || "-") + ":" : "", x[q].type == o.CHART_TYPE_SCATTER && (y = this.getDataFromOption(y).join(", ")), z.push(u + this.getDataFromOption(y)) } w += (x[q].name || "-") + " : \n", w += z.join(x[q].type == o.CHART_TYPE_SCATTER ? "\n" : ", "), w += "\n\n" } return w }, _save: function() { var q = this.query(this.option, "toolbox.feature.dataView.contentToOption"); if ("function" != typeof q) { for (var w = this._textArea.value.split("\n"), s = [], n = 0, u = w.length; u > n; n++) { w[n] = this._trim(w[n]), "" !== w[n] && s.push(w[n]) } this._contentToOption(s) } else { q(this._textArea, this.option) } this.hide(); var v = this; setTimeout(function() { v.messageCenter && v.messageCenter.dispatch(o.EVENT.DATA_VIEW_CHANGED, null, { option: v.option }, v.myChart) }, v.canvasSupported ? 800 : 100) }, _contentToOption: function(q) { var B, v, n, y, z, A, w, u = [], x = 0; if (this.option.xAxis) { for (u = this.option.xAxis instanceof Array ? this.option.xAxis : [this.option.xAxis], B = 0, y = u.length; y > B; B++) { if ("category" == (u[B].type || "category")) { for (A = q[x].split(","), v = 0, n = u[B].data.length; n > v; v++) { w = this._trim(A[v] || ""), z = u[B].data[v], "undefined" != typeof u[B].data[v].value ? u[B].data[v].value = w : u[B].data[v] = w } x++ } } } if (this.option.yAxis) { for (u = this.option.yAxis instanceof Array ? this.option.yAxis : [this.option.yAxis], B = 0, y = u.length; y > B; B++) { if ("category" == u[B].type) { for (A = q[x].split(","), v = 0, n = u[B].data.length; n > v; v++) { w = this._trim(A[v] || ""), z = u[B].data[v], "undefined" != typeof u[B].data[v].value ? u[B].data[v].value = w : u[B].data[v] = w } x++ } } } var C = this.option.series; for (B = 0, y = C.length; y > B; B++) { if (x++, C[B].type == o.CHART_TYPE_SCATTER) { for (var v = 0, n = C[B].data.length; n > v; v++) { A = q[x], w = A.replace(" ", "").split(","), "undefined" != typeof C[B].data[v].value ? C[B].data[v].value = w : C[B].data[v] = w, x++ } } else { A = q[x].split(","); for (var v = 0, n = C[B].data.length; n > v; v++) { w = (A[v] || "").replace(/.*:/, ""), w = this._trim(w), w = "-" != w && "" !== w ? w - 0 : "-", "undefined" != typeof C[B].data[v].value ? C[B].data[v].value = w : C[B].data[v] = w } x++ } } }, _trim: function(a) { var i = new RegExp("(^[\\s\\t\\xa0\\u3000]+)|([\\u3000\\xa0\\s\\t]+$)", "g"); return a.replace(i, "") }, _stop: function(a) { a = a || window.event, a.stopPropagation ? a.stopPropagation() : a.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 } }, j.inherits(p, m), l("../component").define("dataView", p), p }), d("echarts/util/shape/Cross", ["require", "zrender/shape/Base", "zrender/shape/Line", "zrender/tool/util", "./normalIsCover"], function(l) { function p(a) { m.call(this, a) } var m = l("zrender/shape/Base"), o = l("zrender/shape/Line"), j = l("zrender/tool/util"); return p.prototype = { type: "cross", buildPath: function(a, q) { var n = q.rect; q.xStart = n.x, q.xEnd = n.x + n.width, q.yStart = q.yEnd = q.y, o.prototype.buildPath(a, q), q.xStart = q.xEnd = q.x, q.yStart = n.y, q.yEnd = n.y + n.height, o.prototype.buildPath(a, q) }, getRect: function(a) { return a.rect }, isCover: l("./normalIsCover") }, j.inherits(p, m), p }), d("zrender/shape/Sector", ["require", "../tool/math", "../tool/computeBoundingBox", "../tool/vector", "./Base", "../tool/util"], function(m) { var z = m("../tool/math"), q = m("../tool/computeBoundingBox"), v = m("../tool/vector"), j = m("./Base"), w = v.create(), x = v.create(), y = v.create(), u = v.create(), p = function(a) { j.call(this, a) }; return p.prototype = { type: "sector", buildPath: function(A, C) { var F = C.x, t = C.y, G = C.r0 || 0, H = C.r, I = C.startAngle, D = C.endAngle, B = C.clockWise || !1; I = z.degreeToRadian(I), D = z.degreeToRadian(D), B || (I = -I, D = -D); var E = z.cos(I), J = z.sin(I); A.moveTo(E * G + F, J * G + t), A.lineTo(E * H + F, J * H + t), A.arc(F, t, H, I, D, !B), A.lineTo(z.cos(D) * G + F, z.sin(D) * G + t), 0 !== G && A.arc(F, t, G, D, I, B), A.closePath() }, getRect: function(n) { if (n.__rect) { return n.__rect } var i = n.x, o = n.y, r = n.r0 || 0, A = n.r, t = z.degreeToRadian(n.startAngle), l = z.degreeToRadian(n.endAngle), s = n.clockWise; return s || (t = -t, l = -l), r > 1 ? q.arc(i, o, r, t, l, !s, w, y) : (w[0] = y[0] = i, w[1] = y[1] = o), q.arc(i, o, A, t, l, !s, x, u), v.min(w, w, x), v.max(y, y, u), n.__rect = { x: w[0], y: w[1], width: y[0] - w[0], height: y[1] - w[1] }, n.__rect } }, m("../tool/util").inherits(p, j), p }), d("echarts/util/shape/Candle", ["require", "zrender/shape/Base", "zrender/tool/util", "./normalIsCover"], function(a) { function m(i) { j.call(this, i) } var j = a("zrender/shape/Base"), l = a("zrender/tool/util"); return m.prototype = { type: "candle", _numberOrder: function(i, n) { return n - i }, buildPath: function(n, p) { var o = l.clone(p.y).sort(this._numberOrder); n.moveTo(p.x, o[3]), n.lineTo(p.x, o[2]), n.moveTo(p.x - p.width / 2, o[2]), n.rect(p.x - p.width / 2, o[2], p.width, o[1] - o[2]), n.moveTo(p.x, o[1]), n.lineTo(p.x, o[0]) }, getRect: function(n) { if (!n.__rect) { var p = 0; ("stroke" == n.brushType || "fill" == n.brushType) && (p = n.lineWidth || 1); var o = l.clone(n.y).sort(this._numberOrder); n.__rect = { x: Math.round(n.x - n.width / 2 - p / 2), y: Math.round(o[3] - p / 2), width: n.width + p, height: o[0] - o[3] + p } } return n.__rect }, isCover: a("./normalIsCover") }, l.inherits(m, j), m }), d("zrender/tool/computeBoundingBox", ["require", "./vector", "./curve"], function(m) { function z(B, I, C) { if (0 !== B.length) { for (var E = B[0][0], A = B[0][0], F = B[0][1], G = B[0][1], H = 1; H < B.length; H++) { var D = B[H]; D[0] < E && (E = D[0]), D[0] > A && (A = D[0]), D[1] < F && (F = D[1]), D[1] > G && (G = D[1]) } I[0] = E, I[1] = F, C[0] = A, C[1] = G } } function q(B, J, D, G, o, H) { var I = []; w.cubicExtrema(B[0], J[0], D[0], G[0], I); for (var E = 0; E < I.length; E++) { I[E] = w.cubicAt(B[0], J[0], D[0], G[0], I[E]) } var C = []; w.cubicExtrema(B[1], J[1], D[1], G[1], C); for (var E = 0; E < C.length; E++) { C[E] = w.cubicAt(B[1], J[1], D[1], G[1], C[E]) } I.push(B[0], G[0]), C.push(B[1], G[1]); var F = Math.min.apply(null, I), L = Math.max.apply(null, I), K = Math.min.apply(null, C), A = Math.max.apply(null, C); o[0] = F, o[1] = K, H[0] = L, H[1] = A } function v(B, J, D, G, o) { var H = w.quadraticExtremum(B[0], J[0], D[0]), I = w.quadraticExtremum(B[1], J[1], D[1]); H = Math.max(Math.min(H, 1), 0), I = Math.max(Math.min(I, 1), 0); var E = 1 - H, C = 1 - I, F = E * E * B[0] + 2 * E * H * J[0] + H * H * D[0], L = E * E * B[1] + 2 * E * H * J[1] + H * H * D[1], K = C * C * B[0] + 2 * C * I * J[0] + I * I * D[0], A = C * C * B[1] + 2 * C * I * J[1] + I * I * D[1]; G[0] = Math.min(B[0], D[0], F, K), G[1] = Math.min(B[1], D[1], L, A), o[0] = Math.max(B[0], D[0], F, K), o[1] = Math.max(B[1], D[1], L, A) } var j = m("./vector"), w = m("./curve"), x = j.create(), y = j.create(), u = j.create(), p = function(l, D, s, B, C, r, A, F) { if (Math.abs(B - C) >= 2 * Math.PI) { return A[0] = l - s, A[1] = D - s, F[0] = l + s, void(F[1] = D + s) } if (x[0] = Math.cos(B) * s + l, x[1] = Math.sin(B) * s + D, y[0] = Math.cos(C) * s + l, y[1] = Math.sin(C) * s + D, j.min(A, x, y), j.max(F, x, y), B %= 2 * Math.PI, 0 > B && (B += 2 * Math.PI), C %= 2 * Math.PI, 0 > C && (C += 2 * Math.PI), B > C && !r ? C += 2 * Math.PI : C > B && r && (B += 2 * Math.PI), r) { var E = C; C = B, B = E } for (var a = 0; C > a; a += Math.PI / 2) { a > B && (u[0] = Math.cos(a) * s + l, u[1] = Math.sin(a) * s + D, j.min(A, u, A), j.max(F, u, F)) } }; return z.cubeBezier = q, z.quadraticBezier = v, z.arc = p, z }), d("echarts/util/shape/Chain", ["require", "zrender/shape/Base", "./Icon", "zrender/shape/util/dashedLineTo", "zrender/tool/util", "zrender/tool/matrix"], function(l) { function u(a) { m.call(this, a) } var m = l("zrender/shape/Base"), p = l("./Icon"), j = l("zrender/shape/util/dashedLineTo"), q = l("zrender/tool/util"), s = l("zrender/tool/matrix"); return u.prototype = { type: "chain", brush: function(a, o) { var n = this.style; o && (n = this.getHighlightStyle(n, this.highlightStyle || {})), a.save(), this.setContext(a, n), this.setTransform(a), a.save(), a.beginPath(), this.buildLinePath(a, n), a.stroke(), a.restore(), this.brushSymbol(a, n), a.restore() }, buildLinePath: function(a, A) { var v = A.x, w = A.y + 5, x = A.width, y = A.height / 2 - 10; if (a.moveTo(v, w), a.lineTo(v, w + y), a.moveTo(v + x, w), a.lineTo(v + x, w + y), a.moveTo(v, w + y / 2), A.lineType && "solid" != A.lineType) { if ("dashed" == A.lineType || "dotted" == A.lineType) { var z = (A.lineWidth || 1) * ("dashed" == A.lineType ? 5 : 1); j(a, v, w + y / 2, v + x, w + y / 2, z) } } else { a.lineTo(v + x, w + y / 2) } }, brushSymbol: function(v, B) { var w = B.y + B.height / 4; v.save(); for (var n, y = B.chainPoint, z = 0, A = y.length; A > z; z++) { if (n = y[z], "none" != n.symbol) { v.beginPath(); var x = n.symbolSize; p.prototype.buildPath(v, { iconType: n.symbol, x: n.x - x, y: w - x, width: 2 * x, height: 2 * x, n: n.n }), v.fillStyle = n.isEmpty ? "#fff" : B.strokeColor, v.closePath(), v.fill(), v.stroke() } n.showLabel && (v.font = n.textFont, v.fillStyle = n.textColor, v.textAlign = n.textAlign, v.textBaseline = n.textBaseline, n.rotation ? (v.save(), this._updateTextTransform(v, n.rotation), v.fillText(n.name, n.textX, n.textY), v.restore()) : v.fillText(n.name, n.textX, n.textY)) } v.restore() }, _updateTextTransform: function(r, x) { var v = s.create(); if (s.identity(v), 0 !== x[0]) { var w = x[1] || 0, o = x[2] || 0; (w || o) && s.translate(v, v, [-w, -o]), s.rotate(v, v, x[0]), (w || o) && s.translate(v, v, [w, o]) } r.transform.apply(r, v) }, isCover: function(a, o) { var n = this.style; return a >= n.x && a <= n.x + n.width && o >= n.y && o <= n.y + n.height ? !0 : !1 } }, q.inherits(u, m), u }), d("zrender/shape/Ring", ["require", "./Base", "../tool/util"], function(a) { var l = a("./Base"), j = function(i) { l.call(this, i) }; return j.prototype = { type: "ring", buildPath: function(i, m) { i.arc(m.x, m.y, m.r, 0, 2 * Math.PI, !1), i.moveTo(m.x + m.r0, m.y), i.arc(m.x, m.y, m.r0, 0, 2 * Math.PI, !0) }, getRect: function(i) { if (i.__rect) { return i.__rect } var m; return m = "stroke" == i.brushType || "fill" == i.brushType ? i.lineWidth || 1 : 0, i.__rect = { x: Math.round(i.x - i.r - m / 2), y: Math.round(i.y - i.r - m / 2), width: 2 * i.r + m, height: 2 * i.r + m }, i.__rect } }, a("../tool/util").inherits(j, l), j }), d("echarts/component/axis", ["require", "./base", "zrender/shape/Line", "../config", "../util/ecData", "zrender/tool/util", "zrender/tool/color", "./categoryAxis", "./valueAxis", "../component"], function(l) { function w(s, A, x, i, y, z) { m.call(this, s, A, x, i, y), this.axisType = z, this._axisList = [], this.refresh(i) } var m = l("./base"), p = l("zrender/shape/Line"), j = l("../config"), q = l("../util/ecData"), u = l("zrender/tool/util"), v = l("zrender/tool/color"); return w.prototype = { type: j.COMPONENT_TYPE_AXIS, axisBase: { _buildAxisLine: function() { var r = this.option.axisLine.lineStyle.width, y = r / 2, s = { _axisShape: "axisLine", zlevel: this.getZlevelBase(), z: this.getZBase() + 3, hoverable: !1 }, n = this.grid; switch (this.option.position) { case "left": s.style = { xStart: n.getX() - y, yStart: n.getYend(), xEnd: n.getX() - y, yEnd: n.getY(), lineCap: "round" }; break; case "right": s.style = { xStart: n.getXend() + y, yStart: n.getYend(), xEnd: n.getXend() + y, yEnd: n.getY(), lineCap: "round" }; break; case "bottom": s.style = { xStart: n.getX(), yStart: n.getYend() + y, xEnd: n.getXend(), yEnd: n.getYend() + y, lineCap: "round" }; break; case "top": s.style = { xStart: n.getX(), yStart: n.getY() - y, xEnd: n.getXend(), yEnd: n.getY() - y, lineCap: "round" } } var x = s.style; "" !== this.option.name && (x.text = this.option.name, x.textPosition = this.option.nameLocation, x.textFont = this.getFont(this.option.nameTextStyle), this.option.nameTextStyle.align && (x.textAlign = this.option.nameTextStyle.align), this.option.nameTextStyle.baseline && (x.textBaseline = this.option.nameTextStyle.baseline), this.option.nameTextStyle.color && (x.textColor = this.option.nameTextStyle.color)), x.strokeColor = this.option.axisLine.lineStyle.color, x.lineWidth = r, this.isHorizontal() ? x.yStart = x.yEnd = this.subPixelOptimize(x.yEnd, r) : x.xStart = x.xEnd = this.subPixelOptimize(x.xEnd, r), x.lineType = this.option.axisLine.lineStyle.type, s = new p(s), this.shapeList.push(s) }, _axisLabelClickable: function(a, i) { return a ? (q.pack(i, void 0, -1, void 0, -1, i.style.text), i.hoverable = !0, i.clickable = !0, i.highlightStyle = { color: v.lift(i.style.color, 1), brushType: "fill" }, i) : i }, refixAxisShape: function(r, y) { if (this.option.axisLine.onZero) { var s; if (this.isHorizontal() && null != y) { for (var x = 0, o = this.shapeList.length; o > x; x++) { "axisLine" === this.shapeList[x]._axisShape ? (this.shapeList[x].style.yStart = this.shapeList[x].style.yEnd = this.subPixelOptimize(y, this.shapeList[x].stylelineWidth), this.zr.modShape(this.shapeList[x].id)) : "axisTick" === this.shapeList[x]._axisShape && (s = this.shapeList[x].style.yEnd - this.shapeList[x].style.yStart, this.shapeList[x].style.yStart = y - s, this.shapeList[x].style.yEnd = y, this.zr.modShape(this.shapeList[x].id)) } } if (!this.isHorizontal() && null != r) { for (var x = 0, o = this.shapeList.length; o > x; x++) { "axisLine" === this.shapeList[x]._axisShape ? (this.shapeList[x].style.xStart = this.shapeList[x].style.xEnd = this.subPixelOptimize(r, this.shapeList[x].stylelineWidth), this.zr.modShape(this.shapeList[x].id)) : "axisTick" === this.shapeList[x]._axisShape && (s = this.shapeList[x].style.xEnd - this.shapeList[x].style.xStart, this.shapeList[x].style.xStart = r, this.shapeList[x].style.xEnd = r + s, this.zr.modShape(this.shapeList[x].id)) } } } }, getPosition: function() { return this.option.position }, isHorizontal: function() { return "bottom" === this.option.position || "top" === this.option.position } }, reformOption: function(a) { if (!a || a instanceof Array && 0 === a.length ? a = [{ type: j.COMPONENT_TYPE_AXIS_VALUE }] : a instanceof Array || (a = [a]), a.length > 2 && (a = [a[0], a[1]]), "xAxis" === this.axisType) { (!a[0].position || "bottom" != a[0].position && "top" != a[0].position) && (a[0].position = "bottom"), a.length > 1 && (a[1].position = "bottom" === a[0].position ? "top" : "bottom"); for (var o = 0, n = a.length; n > o; o++) { a[o].type = a[o].type || "category", a[o].xAxisIndex = o, a[o].yAxisIndex = -1 } } else { (!a[0].position || "left" != a[0].position && "right" != a[0].position) && (a[0].position = "left"), a.length > 1 && (a[1].position = "left" === a[0].position ? "right" : "left"); for (var o = 0, n = a.length; n > o; o++) { a[o].type = a[o].type || "value", a[o].xAxisIndex = -1, a[o].yAxisIndex = o } } return a }, refresh: function(A) { var s; A && (this.option = A, "xAxis" === this.axisType ? (this.option.xAxis = this.reformOption(A.xAxis), s = this.option.xAxis) : (this.option.yAxis = this.reformOption(A.yAxis), s = this.option.yAxis), this.series = A.series); for (var x = l("./categoryAxis"), e = l("./valueAxis"), y = Math.max(s && s.length || 0, this._axisList.length), z = 0; y > z; z++) { !this._axisList[z] || !A || s[z] && this._axisList[z].type == s[z].type || (this._axisList[z].dispose && this._axisList[z].dispose(), this._axisList[z] = !1), this._axisList[z] ? this._axisList[z].refresh && this._axisList[z].refresh(s ? s[z] : !1, this.series) : s && s[z] && (this._axisList[z] = "category" === s[z].type ? new x(this.ecTheme, this.messageCenter, this.zr, s[z], this.myChart, this.axisBase) : new e(this.ecTheme, this.messageCenter, this.zr, s[z], this.myChart, this.axisBase, this.series)) } }, getAxis: function(a) { return this._axisList[a] }, getAxisCount: function() { return this._axisList.length }, clear: function() { for (var a = 0, i = this._axisList.length; i > a; a++) { this._axisList[a].dispose && this._axisList[a].dispose() } this._axisList = [] } }, u.inherits(w, m), l("../component").define("axis", w), w }), d("echarts/component/grid", ["require", "./base", "zrender/shape/Rectangle", "../config", "zrender/tool/util", "../component"], function(l) { function r(s, w, u, i, v) { m.call(this, s, w, u, i, v), this.refresh(i) } var m = l("./base"), p = l("zrender/shape/Rectangle"), j = l("../config"); j.grid = { zlevel: 0, z: 0, x: 80, y: 60, x2: 80, y2: 60, backgroundColor: "rgba(0,0,0,0)", borderWidth: 1, borderColor: "#ccc" }; var q = l("zrender/tool/util"); return r.prototype = { type: j.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(a) { for (var x, s, u, v = a.xAxis._axisList.concat(a.yAxis ? a.yAxis._axisList : []), w = v.length; w--;) { u = v[w], u.type == j.COMPONENT_TYPE_AXIS_VALUE && u._min < 0 && u._max >= 0 && (u.isHorizontal() ? x = u.getCoord(0) : s = u.getCoord(0)) } if ("undefined" != typeof x || "undefined" != typeof s) { for (w = v.length; w--;) { v[w].refixAxisShape(x, s) } } }, refresh: function(o) { if (o || this._zrWidth != this.zr.getWidth() || this._zrHeight != this.zr.getHeight()) { this.clear(), this.option = o || this.option, this.option.grid = this.reformOption(this.option.grid); var u = this.option.grid; this._zrWidth = this.zr.getWidth(), this._zrHeight = this.zr.getHeight(), this._x = this.parsePercent(u.x, this._zrWidth), this._y = this.parsePercent(u.y, this._zrHeight); var s = this.parsePercent(u.x2, this._zrWidth), n = this.parsePercent(u.y2, this._zrHeight); this._width = "undefined" == typeof u.width ? this._zrWidth - this._x - s : this.parsePercent(u.width, this._zrWidth), this._width = this._width <= 0 ? 10 : this._width, this._height = "undefined" == typeof u.height ? this._zrHeight - this._y - n : this.parsePercent(u.height, this._zrHeight), this._height = this._height <= 0 ? 10 : this._height, this._x = this.subPixelOptimize(this._x, u.borderWidth), this._y = this.subPixelOptimize(this._y, u.borderWidth), this.shapeList.push(new p({ zlevel: this.getZlevelBase(), z: this.getZBase(), hoverable: !1, style: { x: this._x, y: this._y, width: this._width, height: this._height, brushType: u.borderWidth > 0 ? "both" : "fill", color: u.backgroundColor, strokeColor: u.borderColor, lineWidth: u.borderWidth } })), this.zr.addShape(this.shapeList[0]) } } }, q.inherits(r, m), l("../component").define("grid", r), r }), d("echarts/component/dataZoom", ["require", "./base", "zrender/shape/Rectangle", "zrender/shape/Polygon", "../util/shape/Icon", "../config", "../util/date", "zrender/tool/util", "../component"], function(m) { function y(l, B, s, i, z) { p.call(this, l, B, s, i, z); var A = this; A._ondrift = function(a, n) { return A.__ondrift(this, a, n) }, A._ondragend = function() { return A.__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 p = m("./base"), u = m("zrender/shape/Rectangle"), j = m("zrender/shape/Polygon"), v = m("../util/shape/Icon"), w = m("../config"); w.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 x = m("../util/date"), q = m("zrender/tool/util"); return y.prototype = { type: w.COMPONENT_TYPE_DATAZOOM, _buildShape: function() { this._buildBackground(), this._buildFiller(), this._buildHandle(), this._buildFrame(); for (var a = 0, i = this.shapeList.length; i > a; a++) { this.zr.addShape(this.shapeList[a]) } this._syncFrameShape() }, _getLocation: function() { var o, z, r, s, l = this.component.grid; return "horizontal" == this.zoomOption.orient ? (r = this.zoomOption.width || l.getWidth(), s = this.zoomOption.height || this._fillerSize, o = null != this.zoomOption.x ? this.zoomOption.x : l.getX(), z = null != this.zoomOption.y ? this.zoomOption.y : this.zr.getHeight() - s - 2) : (r = this.zoomOption.width || this._fillerSize, s = this.zoomOption.height || l.getHeight(), o = null != this.zoomOption.x ? this.zoomOption.x : 2, z = null != this.zoomOption.y ? this.zoomOption.y : l.getY()), { x: o, y: z, width: r, height: s } }, _getZoom: function() { var B = this.option.series, K = this.option.xAxis; !K || K instanceof Array || (K = [K], this.option.xAxis = K); var D = this.option.yAxis; !D || D instanceof Array || (D = [D], this.option.yAxis = D); var G, r, H = [], J = this.zoomOption.xAxisIndex; if (K && null == J) { G = []; for (var E = 0, C = K.length; C > E; E++) { ("category" == K[E].type || null == K[E].type) && G.push(E) } } else { G = J instanceof Array ? J : null != J ? [J] : [] } if (J = this.zoomOption.yAxisIndex, D && null == J) { r = []; for (var E = 0, C = D.length; C > E; E++) { "category" == D[E].type && r.push(E) } } else { r = J instanceof Array ? J : null != J ? [J] : [] } for (var F, E = 0, C = B.length; C > E; E++) { if (F = B[E], F.type == w.CHART_TYPE_LINE || F.type == w.CHART_TYPE_BAR || F.type == w.CHART_TYPE_SCATTER || F.type == w.CHART_TYPE_K) { for (var M = 0, L = G.length; L > M; M++) { if (G[M] == (F.xAxisIndex || 0)) { H.push(E); break } } for (var M = 0, L = r.length; L > M; M++) { if (r[M] == (F.yAxisIndex || 0)) { H.push(E); break } } null == this.zoomOption.xAxisIndex && null == this.zoomOption.yAxisIndex && F.data && this.getDataFromOption(F.data[0]) instanceof Array && (F.type == w.CHART_TYPE_SCATTER || F.type == w.CHART_TYPE_LINE || F.type == w.CHART_TYPE_BAR) && H.push(E) } } var A = null != this._zoom.start ? this._zoom.start : null != this.zoomOption.start ? this.zoomOption.start : 0, I = null != this._zoom.end ? this._zoom.end : null != this.zoomOption.end ? this.zoomOption.end : 100; A > I && (A += I, I = A - I, A -= I); var z = Math.round((I - A) / 100 * ("horizontal" == this.zoomOption.orient ? this._location.width : this._location.height)); return { start: A, end: I, start2: 0, end2: 100, size: z, xAxisIndex: G, yAxisIndex: r, seriesIndex: H, scatterMap: this._zoom.scatterMap || {} } }, _backupData: function() { this._originalData = { xAxis: {}, yAxis: {}, series: {} }; for (var z = this.option.xAxis, G = this._zoom.xAxisIndex, B = 0, D = G.length; D > B; B++) { this._originalData.xAxis[G[B]] = z[G[B]].data } for (var r = this.option.yAxis, E = this._zoom.yAxisIndex, B = 0, D = E.length; D > B; B++) { this._originalData.yAxis[E[B]] = r[E[B]].data } for (var F, C = this.option.series, A = this._zoom.seriesIndex, B = 0, D = A.length; D > B; B++) { F = C[A[B]], this._originalData.series[A[B]] = F.data, F.data && this.getDataFromOption(F.data[0]) instanceof Array && (F.type == w.CHART_TYPE_SCATTER || F.type == w.CHART_TYPE_LINE || F.type == w.CHART_TYPE_BAR) && (this._backupScale(), this._calculScatterMap(A[B])) } }, _calculScatterMap: function(B) { this._zoom.scatterMap = this._zoom.scatterMap || {}, this._zoom.scatterMap[B] = this._zoom.scatterMap[B] || {}; var l = m("../component"), s = l.get("axis"), e = q.clone(this.option.xAxis); "category" == e[0].type && (e[0].type = "value"), e[1] && "category" == e[1].type && (e[1].type = "value"); var z = new s(this.ecTheme, null, !1, { xAxis: e, series: this.option.series }, this, "xAxis"), A = this.option.series[B].xAxisIndex || 0; this._zoom.scatterMap[B].x = z.getAxis(A).getExtremum(), z.dispose(), e = q.clone(this.option.yAxis), "category" == e[0].type && (e[0].type = "value"), e[1] && "category" == e[1].type && (e[1].type = "value"), z = new s(this.ecTheme, null, !1, { yAxis: e, series: this.option.series }, this, "yAxis"), A = this.option.series[B].yAxisIndex || 0, this._zoom.scatterMap[B].y = z.getAxis(A).getExtremum(), z.dispose() }, _buildBackground: function() { var z = this._location.width, K = this._location.height; this.shapeList.push(new u({ zlevel: this.getZlevelBase(), z: this.getZBase(), hoverable: !1, style: { x: this._location.x, y: this._location.y, width: z, height: K, color: this.zoomOption.backgroundColor } })); for (var D = 0, H = this._originalData.xAxis, J = this._zoom.xAxisIndex, F = 0, C = J.length; C > F; F++) { D = Math.max(D, H[J[F]].length) } for (var G = this._originalData.yAxis, N = this._zoom.yAxisIndex, F = 0, C = N.length; C > F; F++) { D = Math.max(D, G[N[F]].length) } for (var M, r = this._zoom.seriesIndex[0], I = this._originalData.series[r], n = Number.MIN_VALUE, L = Number.MAX_VALUE, F = 0, C = I.length; C > F; F++) { M = this.getDataFromOption(I[F], 0), this.option.series[r].type == w.CHART_TYPE_K && (M = M[1]), isNaN(M) && (M = 0), n = Math.max(n, M), L = Math.min(L, M) } var O = n - L, B = [], a = z / (D - (D > 1 ? 1 : 0)), A = K / (D - (D > 1 ? 1 : 0)), E = 1; "horizontal" == this.zoomOption.orient && 1 > a ? E = Math.floor(3 * D / z) : "vertical" == this.zoomOption.orient && 1 > A && (E = Math.floor(3 * D / K)); for (var F = 0, C = D; C > F; F += E) { M = this.getDataFromOption(I[F], 0), this.option.series[r].type == w.CHART_TYPE_K && (M = M[1]), isNaN(M) && (M = 0), B.push("horizontal" == this.zoomOption.orient ? [this._location.x + a * F, this._location.y + K - 1 - Math.round((M - L) / O * (K - 10))] : [this._location.x + 1 + Math.round((M - L) / O * (z - 10)), this._location.y + A * (C - F - 1)]) } "horizontal" == this.zoomOption.orient ? (B.push([this._location.x + z, this._location.y + K]), B.push([this._location.x, this._location.y + K])) : (B.push([this._location.x, this._location.y]), B.push([this._location.x, this._location.y + K])), this.shapeList.push(new j({ zlevel: this.getZlevelBase(), z: this.getZBase(), style: { pointList: B, 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 u(this._fillerShae), this.shapeList.push(this._fillerShae) }, _buildHandle: function() { var a = 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: a.start, brushType: "fill", textPosition: "left" }, ondrift: this._ondrift, ondragend: this._ondragend }, "horizontal" == this.zoomOption.orient ? (this._startShape.style.height = this._location.height, this._endShape = q.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 = a.end, this._endShape.highlightStyle.textPosition = "right") : (this._startShape.style.width = this._location.width, this._endShape = q.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 = a.end, this._endShape.highlightStyle.textPosition = "top"), this._startShape = new v(this._startShape), this._endShape = new v(this._endShape), this.shapeList.push(this._startShape), this.shapeList.push(this._endShape) }, _buildFrame: function() { var a = this.subPixelOptimize(this._location.x, 1), i = this.subPixelOptimize(this._location.y, 1); this._startFrameShape = { zlevel: this.getZlevelBase(), z: this.getZBase(), hoverable: !1, style: { x: a, y: i, width: this._location.width - (a > this._location.x ? 1 : 0), height: this._location.height - (i > this._location.y ? 1 : 0), lineWidth: 1, brushType: "stroke", strokeColor: this.zoomOption.handleColor } }, this._endFrameShape = q.clone(this._startFrameShape), this._startFrameShape = new u(this._startFrameShape), this._endFrameShape = new u(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 a, i; "horizontal" == this.zoomOption.orient ? (a = this._startShape.style.x, i = this._endShape.style.x, this._fillerShae.style.x = Math.min(a, i) + this._handleSize, this._fillerShae.style.width = Math.abs(a - i) - this._handleSize, this._zoom.start = (Math.min(a, i) - this._location.x) / this._location.width * 100, this._zoom.end = (Math.max(a, i) + this._handleSize - this._location.x) / this._location.width * 100) : (a = this._startShape.style.y, i = this._endShape.style.y, this._fillerShae.style.y = Math.min(a, i) + this._handleSize, this._fillerShae.style.height = Math.abs(a - i) - this._handleSize, this._zoom.start = (this._location.y + this._location.height - Math.max(a, i)) / this._location.height * 100, this._zoom.end = (this._location.y + this._location.height - Math.min(a, i) - 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(z) { var F, A, C, r, D; for (var E in this._originalData) { F = this._originalData[E]; for (var B in F) { D = F[B], null != D && (r = D.length, A = Math.floor(this._zoom.start / 100 * r), C = Math.ceil(this._zoom.end / 100 * r), this.getDataFromOption(D[0]) instanceof Array && this.option[E][B].type != w.CHART_TYPE_K ? (this._setScale(), this.option[E][B].data = this._synScatterData(B, D)) : this.option[E][B].data = D.slice(A, C)) } } this._isSilence || !this.zoomOption.realtime && !z || this.messageCenter.dispatch(w.EVENT.DATA_ZOOM, null, { zoom: this._zoom }, this.myChart) }, _synScatterData: function(A, J) { if (0 === this._zoom.start && 100 == this._zoom.end && 0 === this._zoom.start2 && 100 == this._zoom.end2) { return J } var C, F, z, G, H, I = [], D = this._zoom.scatterMap[A]; "horizontal" == this.zoomOption.orient ? (C = D.x.max - D.x.min, F = this._zoom.start / 100 * C + D.x.min, z = this._zoom.end / 100 * C + D.x.min, C = D.y.max - D.y.min, G = this._zoom.start2 / 100 * C + D.y.min, H = this._zoom.end2 / 100 * C + D.y.min) : (C = D.x.max - D.x.min, F = this._zoom.start2 / 100 * C + D.x.min, z = this._zoom.end2 / 100 * C + D.x.min, C = D.y.max - D.y.min, G = this._zoom.start / 100 * C + D.y.min, H = this._zoom.end / 100 * C + D.y.min); var B; (B = D.x.dataMappingMethods) && (F = B.coord2Value(F), z = B.coord2Value(z)), (B = D.y.dataMappingMethods) && (G = B.coord2Value(G), H = B.coord2Value(H)); for (var E, L = 0, K = J.length; K > L; L++) { E = J[L].value || J[L], E[0] >= F && E[0] <= z && E[1] >= G && E[1] <= H && I.push(J[L]) } return I }, _setScale: function() { var o = 0 !== this._zoom.start || 100 !== this._zoom.end || 0 !== this._zoom.start2 || 100 !== this._zoom.end2, z = { xAxis: this.option.xAxis, yAxis: this.option.yAxis }; for (var r in z) { for (var s = 0, l = z[r].length; l > s; s++) { z[r][s].scale = o || z[r][s]._scale } } }, _backupScale: function() { var a = { xAxis: this.option.xAxis, yAxis: this.option.yAxis }; for (var r in a) { for (var l = 0, o = a[r].length; o > l; l++) { a[r][l]._scale = a[r][l].scale } } }, _getDetail: function() { for (var B = ["xAxis", "yAxis"], K = 0, D = B.length; D > K; K++) { var G = this._originalData[B[K]]; for (var s in G) { var H = G[s]; if (null != H) { var J = H.length, E = Math.floor(this._zoom.start / 100 * J), C = Math.ceil(this._zoom.end / 100 * J); return C -= C > 0 ? 1 : 0, { start: this.getDataFromOption(H[E]), end: this.getDataFromOption(H[C]) } } } } B = "horizontal" == this.zoomOption.orient ? "xAxis" : "yAxis"; var F = this._zoom.seriesIndex[0], N = this.option.series[F][B + "Index"] || 0, M = this.option[B][N].type, A = this._zoom.scatterMap[F][B.charAt(0)].min, I = this._zoom.scatterMap[F][B.charAt(0)].max, z = I - A; if ("value" == M) { return { start: A + z * this._zoom.start / 100, end: A + z * this._zoom.end / 100 } } if ("time" == M) { I = A + z * this._zoom.end / 100, A += z * this._zoom.start / 100; var L = x.getAutoFormatter(A, I).formatter; return { start: x.format(L, A), end: x.format(L, I) } } return { start: "", end: "" } }, __ondrift: function(o, z, r) { this.zoomOption.zoomLock && (o = this._fillerShae); var s = "filler" == o._type ? this._handleSize : 0; if ("horizontal" == this.zoomOption.orient ? o.style.x + z - s <= this._location.x ? o.style.x = this._location.x + s : o.style.x + z + o.style.width + s >= this._location.x + this._location.width ? o.style.x = this._location.x + this._location.width - o.style.width - s : o.style.x += z : o.style.y + r - s <= this._location.y ? o.style.y = this._location.y + s : o.style.y + r + o.style.height + s >= this._location.y + this._location.height ? o.style.y = this._location.y + this._location.height - o.style.height - s : o.style.y += r, "filler" == o._type ? this._syncHandleShape() : this._syncFillerShape(), this.zoomOption.realtime && this._syncData(), this.zoomOption.showDetail) { var l = this._getDetail(); this._startShape.style.text = this._startShape.highlightStyle.text = l.start, this._endShape.style.text = this._endShape.highlightStyle.text = l.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(a, i) { this.isDragend && a.target && (!this.zoomOption.realtime && this._syncData(), i.dragOut = !0, i.dragIn = !0, this._isSilence || this.zoomOption.realtime || this.messageCenter.dispatch(w.EVENT.DATA_ZOOM, null, { zoom: this._zoom }, this.myChart), i.needRefresh = !1, this.isDragend = !1) }, ondataZoom: function(a, i) { i.needRefresh = !0 }, absoluteZoom: function(a) { this._zoom.start = a.start, this._zoom.end = a.end, this._zoom.start2 = a.start2, this._zoom.end2 = a.end2, this._syncShape(), this._syncData(!0) }, rectZoom: function(z) { if (!z) { return this._zoom.start = this._zoom.start2 = 0, this._zoom.end = this._zoom.end2 = 100, this._syncShape(), this._syncData(!0), this._zoom } var F = this.component.grid.getArea(), A = { x: z.x, y: z.y, width: z.width, height: z.height }; if (A.width < 0 && (A.x += A.width, A.width = -A.width), A.height < 0 && (A.y += A.height, A.height = -A.height), A.x > F.x + F.width || A.y > F.y + F.height) { return !1 } A.x < F.x && (A.x = F.x), A.x + A.width > F.x + F.width && (A.width = F.x + F.width - A.x), A.y + A.height > F.y + F.height && (A.height = F.y + F.height - A.y); var B, l = (A.x - F.x) / F.width, C = 1 - (A.x + A.width - F.x) / F.width, D = 1 - (A.y + A.height - F.y) / F.height, E = (A.y - F.y) / F.height; return "horizontal" == this.zoomOption.orient ? (B = this._zoom.end - this._zoom.start, this._zoom.start += B * l, this._zoom.end -= B * C, B = this._zoom.end2 - this._zoom.start2, this._zoom.start2 += B * D, this._zoom.end2 -= B * E) : (B = this._zoom.end - this._zoom.start, this._zoom.start += B * D, this._zoom.end -= B * E, B = this._zoom.end2 - this._zoom.start2, this._zoom.start2 += B * l, this._zoom.end2 -= B * C), this._syncShape(), this._syncData(!0), this._zoom }, syncBackupData: function(A) { for (var H, B, D = this._originalData.series, z = A.series, E = 0, F = z.length; F > E; E++) { B = z[E].data || z[E].eventList, H = D[E] ? Math.floor(this._zoom.start / 100 * D[E].length) : 0; for (var G = 0, C = B.length; C > G; G++) { D[E] && (D[E][G + H] = B[G]) } } }, syncOption: function(a) { this.silence(!0), this.option = a, 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(a) { this._isSilence = a }, getRealDataIndex: function(a, n) { if (!this._originalData || 0 === this._zoom.start && 100 == this._zoom.end) { return n } var l = this._originalData.series; return l[a] ? Math.floor(this._zoom.start / 100 * l[a].length) + n : -1 }, resize: function() { this.clear(), this._location = this._getLocation(), this._zoom = this._getZoom(), this.option.dataZoom.show && this._buildShape() } }, q.inherits(y, p), m("../component").define("dataZoom", y), y }), d("echarts/component/categoryAxis", ["require", "./base", "zrender/shape/Text", "zrender/shape/Line", "zrender/shape/Rectangle", "../config", "zrender/tool/util", "zrender/tool/area", "../component"], function(m) { function y(l, D, z, i, A, B) { if (i.data.length < 1) { return void console.error("option.data.length < 1.") } p.call(this, l, D, z, i, A), this.grid = this.component.grid; for (var C in B) { this[C] = B[C] } this.refresh(i) } var p = m("./base"), u = m("zrender/shape/Text"), j = m("zrender/shape/Line"), v = m("zrender/shape/Rectangle"), w = m("../config"); w.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 x = m("zrender/tool/util"), q = m("zrender/tool/area"); return y.prototype = { type: w.COMPONENT_TYPE_AXIS_CATEGORY, _getReformedLabel: function(a) { var n = this.getDataFromOption(this.option.data[a]), l = this.option.data[a].formatter || this.option.axisLabel.formatter; return l && ("function" == typeof l ? n = l.call(this.myChart, n) : "string" == typeof l && (n = l.replace("{value}", n))), n }, _getInterval: function() { var z = this.option.axisLabel.interval; if ("auto" == z) { var H = this.option.axisLabel.textStyle.fontSize, B = this.option.data, D = this.option.data.length; if (this.isHorizontal()) { if (D > 3) { var l, E, G = this.getGap(), A = !1, C = Math.floor(0.5 / G); for (C = 1 > C ? 1 : C, z = Math.floor(15 / G); !A && D > z;) { z += C, A = !0, l = Math.floor(G * z); for (var J = Math.floor((D - 1) / z) * z; J >= 0; J -= z) { if (0 !== this.option.axisLabel.rotate) { E = H } else { if (B[J].textStyle) { E = q.getTextWidth(this._getReformedLabel(J), this.getFont(x.merge(B[J].textStyle, this.option.axisLabel.textStyle))) } else { var I = this._getReformedLabel(J) + "", s = (I.match(/\w/g) || "").length, F = I.length - s; E = s * H * 2 / 3 + F * H } } if (E > l) { A = !1; break } } } } else { z = 1 } } else { if (D > 3) { var G = this.getGap(); for (z = Math.floor(11 / G); H > G * z - 6 && D > z;) { z++ } } else { z = 1 } } } else { z = "function" == typeof z ? 1 : z - 0 + 1 } return z }, _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 a = 0, i = this.shapeList.length; i > a; a++) { this.zr.addShape(this.shapeList[a]) } } }, _buildAxisTick: function() { var A, K = this.option.data, C = this.option.data.length, F = this.option.axisTick, G = F.length, I = F.lineStyle.color, J = F.lineStyle.width, D = "function" == typeof F.interval ? F.interval : "auto" == F.interval && "function" == typeof this.option.axisLabel.interval ? this.option.axisLabel.interval : !1, B = D ? 1 : "auto" == F.interval ? this._interval : F.interval - 0 + 1, E = F.onGap, N = E ? this.getGap() / 2 : "undefined" == typeof E && this.option.boundaryGap ? this.getGap() / 2 : 0, M = N > 0 ? -B : 0; if (this.isHorizontal()) { for (var z, H = "bottom" == this.option.position ? F.inside ? this.grid.getYend() - G - 1 : this.grid.getYend() + 1 : F.inside ? this.grid.getY() + 1 : this.grid.getY() - G - 1, a = M; C > a; a += B) { (!D || D(a, K[a])) && (z = this.subPixelOptimize(this.getCoordByIndex(a) + (a >= 0 ? N : 0), J), A = { _axisShape: "axisTick", zlevel: this.getZlevelBase(), z: this.getZBase(), hoverable: !1, style: { xStart: z, yStart: H, xEnd: z, yEnd: H + G, strokeColor: I, lineWidth: J } }, this.shapeList.push(new j(A))) } } else { for (var L, O = "left" == this.option.position ? F.inside ? this.grid.getX() + 1 : this.grid.getX() - G - 1 : F.inside ? this.grid.getXend() - G - 1 : this.grid.getXend() + 1, a = M; C > a; a += B) { (!D || D(a, K[a])) && (L = this.subPixelOptimize(this.getCoordByIndex(a) - (a >= 0 ? N : 0), J), A = { _axisShape: "axisTick", zlevel: this.getZlevelBase(), z: this.getZBase(), hoverable: !1, style: { xStart: O, yStart: L, xEnd: O + G, yEnd: L, strokeColor: I, lineWidth: J } }, this.shapeList.push(new j(A))) } } }, _buildAxisLabel: function() { var A, I, C = this.option.data, n = this.option.data.length, F = this.option.axisLabel, H = F.rotate, D = F.margin, B = F.clickable, E = F.textStyle, L = "function" == typeof F.interval ? F.interval : !1; if (this.isHorizontal()) { var K, z; "bottom" == this.option.position ? (K = this.grid.getYend() + D, z = "top") : (K = this.grid.getY() - D, z = "bottom"); for (var G = 0; n > G; G += this._interval) { L && !L(G, C[G]) || "" === this._getReformedLabel(G) || (I = x.merge(C[G].textStyle || {}, E), A = { zlevel: this.getZlevelBase(), z: this.getZBase() + 3, hoverable: !1, style: { x: this.getCoordByIndex(G), y: K, color: I.color, text: this._getReformedLabel(G), textFont: this.getFont(I), textAlign: I.align || "center", textBaseline: I.baseline || z } }, H && (A.style.textAlign = H > 0 ? "bottom" == this.option.position ? "right" : "left" : "bottom" == this.option.position ? "left" : "right", A.rotation = [H * Math.PI / 180, A.style.x, A.style.y]), this.shapeList.push(new u(this._axisLabelClickable(B, A)))) } } else { var s, J; "left" == this.option.position ? (s = this.grid.getX() - D, J = "right") : (s = this.grid.getXend() + D, J = "left"); for (var G = 0; n > G; G += this._interval) { L && !L(G, C[G]) || "" === this._getReformedLabel(G) || (I = x.merge(C[G].textStyle || {}, E), A = { zlevel: this.getZlevelBase(), z: this.getZBase() + 3, hoverable: !1, style: { x: s, y: this.getCoordByIndex(G), color: I.color, text: this._getReformedLabel(G), textFont: this.getFont(I), textAlign: I.align || J, textBaseline: I.baseline || 0 === G && "" !== this.option.name ? "bottom" : G == n - 1 && "" !== this.option.name ? "top" : "middle" } }, H && (A.rotation = [H * Math.PI / 180, A.style.x, A.style.y]), this.shapeList.push(new u(this._axisLabelClickable(B, A)))) } } }, _buildSplitLine: function() { var A, L = this.option.data, D = this.option.data.length, G = this.option.splitLine, H = G.lineStyle.type, J = G.lineStyle.width, K = G.lineStyle.color; K = K instanceof Array ? K : [K]; var E = K.length, C = "function" == typeof this.option.axisLabel.interval ? this.option.axisLabel.interval : !1, F = G.onGap, O = F ? this.getGap() / 2 : "undefined" == typeof F && this.option.boundaryGap ? this.getGap() / 2 : 0; if (D -= F || "undefined" == typeof F && this.option.boundaryGap ? 1 : 0, this.isHorizontal()) { for (var N, z = this.grid.getY(), I = this.grid.getYend(), a = 0; D > a; a += this._interval) { (!C || C(a, L[a])) && (N = this.subPixelOptimize(this.getCoordByIndex(a) + O, J), A = { zlevel: this.getZlevelBase(), z: this.getZBase(), hoverable: !1, style: { xStart: N, yStart: z, xEnd: N, yEnd: I, strokeColor: K[a / this._interval % E], lineType: H, lineWidth: J } }, this.shapeList.push(new j(A))) } } else { for (var M, P = this.grid.getX(), B = this.grid.getXend(), a = 0; D > a; a += this._interval) { (!C || C(a, L[a])) && (M = this.subPixelOptimize(this.getCoordByIndex(a) - O, J), A = { zlevel: this.getZlevelBase(), z: this.getZBase(), hoverable: !1, style: { xStart: P, yStart: M, xEnd: B, yEnd: M, strokeColor: K[a / this._interval % E], lineType: H, lineWidth: J } }, this.shapeList.push(new j(A))) } } }, _buildSplitArea: function() { var B, L = this.option.data, E = this.option.splitArea, H = E.areaStyle.color; if (H instanceof Array) { var o = H.length, J = this.option.data.length, K = "function" == typeof this.option.axisLabel.interval ? this.option.axisLabel.interval : !1, F = E.onGap, D = F ? this.getGap() / 2 : "undefined" == typeof F && this.option.boundaryGap ? this.getGap() / 2 : 0; if (this.isHorizontal()) { for (var G, O = this.grid.getY(), N = this.grid.getHeight(), A = this.grid.getX(), I = 0; J >= I; I += this._interval) { K && !K(I, L[I]) && J > I || (G = J > I ? this.getCoordByIndex(I) + D : this.grid.getXend(), B = { zlevel: this.getZlevelBase(), z: this.getZBase(), hoverable: !1, style: { x: A, y: O, width: G - A, height: N, color: H[I / this._interval % o] } }, this.shapeList.push(new v(B)), A = G) } } else { for (var z, M = this.grid.getX(), P = this.grid.getWidth(), C = this.grid.getYend(), I = 0; J >= I; I += this._interval) { K && !K(I, L[I]) && J > I || (z = J > I ? this.getCoordByIndex(I) - D : this.grid.getY(), B = { zlevel: this.getZlevelBase(), z: this.getZBase(), hoverable: !1, style: { x: M, y: z, width: P, height: C - z, color: H[I / this._interval % o] } }, this.shapeList.push(new v(B)), C = z) } } } else { B = { 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: H } }, this.shapeList.push(new v(B)) } }, refresh: function(a) { a && (this.option = this.reformOption(a), this.option.axisLabel.textStyle = this.getTextStyle(this.option.axisLabel.textStyle)), this.clear(), this._buildShape() }, getGap: function() { var a = this.option.data.length, i = this.isHorizontal() ? this.grid.getWidth() : this.grid.getHeight(); return this.option.boundaryGap ? i / a : i / (a > 1 ? a - 1 : 1) }, getCoord: function(r) { for (var B = this.option.data, s = B.length, z = this.getGap(), l = this.option.boundaryGap ? z / 2 : 0, A = 0; s > A; A++) { if (this.getDataFromOption(B[A]) == r) { return l = this.isHorizontal() ? this.grid.getX() + l : this.grid.getYend() - l } l += z } }, getCoordByIndex: function(a) { if (0 > a) { return this.isHorizontal() ? this.grid.getX() : this.grid.getYend() } if (a > this.option.data.length - 1) { return this.isHorizontal() ? this.grid.getXend() : this.grid.getY() } var n = this.getGap(), l = this.option.boundaryGap ? n / 2 : 0; return l += a * n, l = this.isHorizontal() ? this.grid.getX() + l : this.grid.getYend() - l }, getNameByIndex: function(a) { return this.getDataFromOption(this.option.data[a]) }, getIndexByName: function(a) { for (var r = this.option.data, l = r.length, o = 0; l > o; o++) { if (this.getDataFromOption(r[o]) == a) { return o } } return -1 }, getValueFromCoord: function() { return "" }, isMainAxis: function(a) { return a % this._interval === 0 } }, x.inherits(y, p), m("../component").define("categoryAxis", y), y }), d("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(m) { function y(z, F, B, i, C, D, E) { if (!E || 0 === E.length) { return void console.err("option.series.length == 0.") } p.call(this, z, F, B, i, C), this.series = E, this.grid = this.component.grid; for (var A in D) { this[A] = D[A] } this.refresh(i, E) } var p = m("./base"), u = m("zrender/shape/Text"), j = m("zrender/shape/Line"), v = m("zrender/shape/Rectangle"), w = m("../config"); w.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 x = m("../util/date"), q = m("zrender/tool/util"); return y.prototype = { type: w.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 a = 0, i = this.shapeList.length; i > a; a++) { this.zr.addShape(this.shapeList[a]) } } }, _buildAxisTick: function() { var a, H = this._valueList, A = this._valueList.length, D = this.option.axisTick, E = D.length, F = D.lineStyle.color, G = D.lineStyle.width; if (this.isHorizontal()) { for (var B, z = "bottom" === this.option.position ? D.inside ? this.grid.getYend() - E - 1 : this.grid.getYend() + 1 : D.inside ? this.grid.getY() + 1 : this.grid.getY() - E - 1, C = 0; A > C; C++) { B = this.subPixelOptimize(this.getCoord(H[C]), G), a = { _axisShape: "axisTick", zlevel: this.getZlevelBase(), z: this.getZBase(), hoverable: !1, style: { xStart: B, yStart: z, xEnd: B, yEnd: z + E, strokeColor: F, lineWidth: G } }, this.shapeList.push(new j(a)) } } else { for (var J, I = "left" === this.option.position ? D.inside ? this.grid.getX() + 1 : this.grid.getX() - E - 1 : D.inside ? this.grid.getXend() - E - 1 : this.grid.getXend() + 1, C = 0; A > C; C++) { J = this.subPixelOptimize(this.getCoord(H[C]), G), a = { _axisShape: "axisTick", zlevel: this.getZlevelBase(), z: this.getZBase(), hoverable: !1, style: { xStart: I, yStart: J, xEnd: I + E, yEnd: J, strokeColor: F, lineWidth: G } }, this.shapeList.push(new j(a)) } } }, _buildAxisLabel: function() { var z, H = this._valueList, B = this._valueList.length, n = this.option.axisLabel.rotate, E = this.option.axisLabel.margin, F = this.option.axisLabel.clickable, G = this.option.axisLabel.textStyle; if (this.isHorizontal()) { var C, A; "bottom" === this.option.position ? (C = this.grid.getYend() + E, A = "top") : (C = this.grid.getY() - E, A = "bottom"); for (var D = 0; B > D; D++) { z = { zlevel: this.getZlevelBase(), z: this.getZBase() + 3, hoverable: !1, style: { x: this.getCoord(H[D]), y: C, color: "function" == typeof G.color ? G.color(H[D]) : G.color, text: this._valueLabel[D], textFont: this.getFont(G), textAlign: G.align || "center", textBaseline: G.baseline || A } }, n && (z.style.textAlign = n > 0 ? "bottom" === this.option.position ? "right" : "left" : "bottom" === this.option.position ? "left" : "right", z.rotation = [n * Math.PI / 180, z.style.x, z.style.y]), this.shapeList.push(new u(this._axisLabelClickable(F, z))) } } else { var J, I; "left" === this.option.position ? (J = this.grid.getX() - E, I = "right") : (J = this.grid.getXend() + E, I = "left"); for (var D = 0; B > D; D++) { z = { zlevel: this.getZlevelBase(), z: this.getZBase() + 3, hoverable: !1, style: { x: J, y: this.getCoord(H[D]), color: "function" == typeof G.color ? G.color(H[D]) : G.color, text: this._valueLabel[D], textFont: this.getFont(G), textAlign: G.align || I, textBaseline: G.baseline || (0 === D && "" !== this.option.name ? "bottom" : D === B - 1 && "" !== this.option.name ? "top" : "middle") } }, n && (z.rotation = [n * Math.PI / 180, z.style.x, z.style.y]), this.shapeList.push(new u(this._axisLabelClickable(F, z))) } } }, _buildSplitLine: function() { var A, K = this._valueList, C = this._valueList.length, F = this.option.splitLine, G = F.lineStyle.type, I = F.lineStyle.width, J = F.lineStyle.color; J = J instanceof Array ? J : [J]; var D = J.length; if (this.isHorizontal()) { for (var B, E = this.grid.getY(), M = this.grid.getYend(), L = 0; C > L; L++) { B = this.subPixelOptimize(this.getCoord(K[L]), I), A = { zlevel: this.getZlevelBase(), z: this.getZBase(), hoverable: !1, style: { xStart: B, yStart: E, xEnd: B, yEnd: M, strokeColor: J[L % D], lineType: G, lineWidth: I } }, this.shapeList.push(new j(A)) } } else { for (var z, H = this.grid.getX(), a = this.grid.getXend(), L = 0; C > L; L++) { z = this.subPixelOptimize(this.getCoord(K[L]), I), A = { zlevel: this.getZlevelBase(), z: this.getZBase(), hoverable: !1, style: { xStart: H, yStart: z, xEnd: a, yEnd: z, strokeColor: J[L % D], lineType: G, lineWidth: I } }, this.shapeList.push(new j(A)) } } }, _buildSplitArea: function() { var A, J = this.option.splitArea.areaStyle.color; if (J instanceof Array) { var C = J.length, F = this._valueList, o = this._valueList.length; if (this.isHorizontal()) { for (var H, I = this.grid.getY(), D = this.grid.getHeight(), B = this.grid.getX(), E = 0; o >= E; E++) { H = o > E ? this.getCoord(F[E]) : this.grid.getXend(), A = { zlevel: this.getZlevelBase(), z: this.getZBase(), hoverable: !1, style: { x: B, y: I, width: H - B, height: D, color: J[E % C] } }, this.shapeList.push(new v(A)), B = H } } else { for (var L, K = this.grid.getX(), z = this.grid.getWidth(), G = this.grid.getYend(), E = 0; o >= E; E++) { L = o > E ? this.getCoord(F[E]) : this.grid.getY(), A = { zlevel: this.getZlevelBase(), z: this.getZBase(), hoverable: !1, style: { x: K, y: L, width: z, height: G - L, color: J[E % C] } }, this.shapeList.push(new v(A)), G = L } } } else { A = { 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: J } }, this.shapeList.push(new v(A)) } }, _calculateValue: function() { if (isNaN(this.option.min - 0) || isNaN(this.option.max - 0)) { for (var z, H, B = {}, E = this.component.legend, r = 0, F = this.series.length; F > r; r++) { !(this.series[r].type != w.CHART_TYPE_LINE && this.series[r].type != w.CHART_TYPE_BAR && this.series[r].type != w.CHART_TYPE_SCATTER && this.series[r].type != w.CHART_TYPE_K && this.series[r].type != w.CHART_TYPE_EVENTRIVER || E && !E.isSelected(this.series[r].name) || (z = this.series[r].xAxisIndex || 0, H = this.series[r].yAxisIndex || 0, this.option.xAxisIndex != z && this.option.yAxisIndex != H || !this._calculSum(B, r))) } var G; for (var r in B) { G = B[r]; for (var C = 0, A = G.length; A > C; C++) { if (!isNaN(G[C])) { this._hasData = !0, this._min = G[C], this._max = G[C]; break } } if (this._hasData) { break } } for (var r in B) { G = B[r]; for (var C = 0, A = G.length; A > C; C++) { isNaN(G[C]) || (this._min = Math.min(this._min, G[C]), this._max = Math.max(this._max, G[C])) } } var D = "log" !== this.option.type ? this.option.boundaryGap : [0, 0], I = Math.abs(this._max - this._min); this._min = isNaN(this.option.min - 0) ? this._min - Math.abs(I * D[0]) : this.option.min - 0, this._max = isNaN(this.option.max - 0) ? this._max + Math.abs(I * D[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(z, G) { var B, E, r = this.series[G].name || "kener"; if (this.series[G].stack) { var F = "__Magic_Key_Positive__" + this.series[G].stack, C = "__Magic_Key_Negative__" + this.series[G].stack; z[F] = z[F] || [], z[C] = z[C] || [], z[r] = z[r] || [], E = this.series[G].data; for (var A = 0, D = E.length; D > A; A++) { B = this.getDataFromOption(E[A]), "-" !== B && (B -= 0, B >= 0 ? null != z[F][A] ? z[F][A] += B : z[F][A] = B : null != z[C][A] ? z[C][A] += B : z[C][A] = B, this.option.scale && z[r].push(B)) } } else { if (z[r] = z[r] || [], this.series[G].type != w.CHART_TYPE_EVENTRIVER) { E = this.series[G].data; for (var A = 0, D = E.length; D > A; A++) { B = this.getDataFromOption(E[A]), this.series[G].type === w.CHART_TYPE_K ? (z[r].push(B[0]), z[r].push(B[1]), z[r].push(B[2]), z[r].push(B[3])) : B instanceof Array ? (-1 != this.option.xAxisIndex && z[r].push("time" != this.option.type ? B[0] : x.getNewDate(B[0])), -1 != this.option.yAxisIndex && z[r].push("time" != this.option.type ? B[1] : x.getNewDate(B[1]))) : z[r].push(B) } } else { E = this.series[G].data; for (var A = 0, D = E.length; D > A; A++) { for (var I = E[A].evolution, H = 0, s = I.length; s > H; H++) { z[r].push(x.getNewDate(I[H].time)) } } } } }, _reformValue: function(r) { var l = m("../util/smartSteps"), o = this.option.splitNumber; !r && this._min >= 0 && this._max >= 0 && (this._min = 0), !r && this._min <= 0 && this._max <= 0 && (this._max = 0); var e = l(this._min, this._max, o); o = null != o ? o : e.secs, this._min = e.min, this._max = e.max, this._valueList = e.pnts, this._reformLabelData() }, _reformTimeValue: function() { var o = null != this.option.splitNumber ? this.option.splitNumber : 5, z = x.getAutoFormatter(this._min, this._max, o), r = z.formatter, s = z.gapValue; this._valueList = [x.getNewDate(this._min)]; var l; switch (r) { case "week": l = x.nextMonday(this._min); break; case "month": l = x.nextNthOnMonth(this._min, 1); break; case "quarter": l = x.nextNthOnQuarterYear(this._min, 1); break; case "half-year": l = x.nextNthOnHalfYear(this._min, 1); break; case "year": l = x.nextNthOnYear(this._min, 1); break; default: 7200000 >= s ? l = (Math.floor(this._min / s) + 1) * s : (l = x.getNewDate(this._min - -s), l.setHours(6 * Math.round(l.getHours() / 6)), l.setMinutes(0), l.setSeconds(0)) } for (l - this._min < s / 2 && (l -= -s), z = x.getNewDate(l), o *= 1.5; o-- >= 0 && (("month" == r || "quarter" == r || "half-year" == r || "year" == r) && z.setDate(1), !(this._max - z < s / 2));) { this._valueList.push(z), z = x.getNewDate(z - -s) } this._valueList.push(x.getNewDate(this._max)), this._reformLabelData(function(a) { return function(e) { return x.format(a, e) } }(r)) }, _customerValue: function() { var r = m("../util/accMath"), l = null != this.option.splitNumber ? this.option.splitNumber : 5, o = (this._max - this._min) / l; this._valueList = []; for (var e = 0; l >= e; e++) { this._valueList.push(r.accAdd(this._min, r.accMul(o, e))) } this._reformLabelData() }, _reformLogValue: function() { var e = this.option, a = m("../util/smartLogSteps")({ dataMin: this._min, dataMax: this._max, logPositive: e.logPositive, logLabelBase: e.logLabelBase, splitNumber: e.splitNumber }); this._min = a.dataMin, this._max = a.dataMax, this._valueList = a.tickList, this._dataMappingMethods = a.dataMappingMethods, this._reformLabelData(a.labelFormatter) }, _reformLabelData: function(a) { this._valueLabel = []; var r = this.option.axisLabel.formatter; if (r) { for (var l = 0, o = this._valueList.length; o > l; l++) { "function" == typeof r ? this._valueLabel.push(a ? r.call(this.myChart, this._valueList[l], a) : r.call(this.myChart, this._valueList[l])) : "string" == typeof r && this._valueLabel.push(a ? x.format(r, this._valueList[l]) : r.replace("{value}", this._valueList[l])) } } else { for (var l = 0, o = this._valueList.length; o > l; l++) { this._valueLabel.push(a ? a(this._valueList[l]) : this.numAddCommas(this._valueList[l])) } } }, getExtremum: function() { this._calculateValue(); var a = this._dataMappingMethods; return { min: this._min, max: this._max, dataMappingMethods: a ? q.merge({}, a) : null } }, refresh: function(a, i) { a && (this.option = this.reformOption(a), this.option.axisLabel.textStyle = q.merge(this.option.axisLabel.textStyle || {}, this.ecTheme.textStyle), this.series = i), this.zr && (this.clear(), this._buildShape()) }, getCoord: function(a) { this._dataMappingMethods && (a = this._dataMappingMethods.value2Coord(a)), a = a < this._min ? this._min : a, a = a > this._max ? this._max : a; var i; return i = this.isHorizontal() ? this.grid.getX() + (a - this._min) / (this._max - this._min) * this.grid.getWidth() : this.grid.getYend() - (a - this._min) / (this._max - this._min) * this.grid.getHeight() }, getCoordSize: function(a) { return Math.abs(this.isHorizontal() ? a / (this._max - this._min) * this.grid.getWidth() : a / (this._max - this._min) * this.grid.getHeight()) }, getValueFromCoord: function(a) { var i; return this.isHorizontal() ? (a = a < this.grid.getX() ? this.grid.getX() : a, a = a > this.grid.getXend() ? this.grid.getXend() : a, i = this._min + (a - this.grid.getX()) / this.grid.getWidth() * (this._max - this._min)) : (a = a < this.grid.getY() ? this.grid.getY() : a, a = a > this.grid.getYend() ? this.grid.getYend() : a, i = this._max - (a - this.grid.getY()) / this.grid.getHeight() * (this._max - this._min)), this._dataMappingMethods && (i = this._dataMappingMethods.coord2Value(i)), i.toFixed(2) - 0 }, isMaindAxis: function(a) { for (var n = 0, l = this._valueList.length; l > n; n++) { if (this._valueList[n] === a) { return !0 } } return !1 } }, q.inherits(y, p), m("../component").define("valueAxis", y), y }), d("echarts/util/date", [], function() { function p(C, J, D) { D = D > 1 ? D : 2; for (var F, m, G, H, I = 0, E = w.length; E > I; I++) { if (F = w[I].value, m = Math.ceil(J / F) * F - Math.floor(C / F) * F, Math.round(m / F) <= 1.2 * D) { G = w[I].formatter, H = w[I].value; break } } return null == G && (G = "year", F = 31708800000, m = Math.ceil(J / F) * F - Math.floor(C / F) * F, H = Math.round(m / (D - 1) / F) * F), { formatter: G, gapValue: H } } function B(a) { return 10 > a ? "0" + a : a } function u(C, D) { ("week" == C || "month" == C || "quarter" == C || "half-year" == C || "year" == C) && (C = "MM - dd\nyyyy"); var G = q(D), t = G.getFullYear(), H = G.getMonth() + 1, I = G.getDate(), J = G.getHours(), E = G.getMinutes(), F = G.getSeconds(); return C = C.replace("MM", B(H)), C = C.toLowerCase(), C = C.replace("yyyy", t), C = C.replace("yy", t % 100), C = C.replace("dd", B(I)), C = C.replace("d", I), C = C.replace("hh", B(J)), C = C.replace("h", J), C = C.replace("mm", B(E)), C = C.replace("m", E), C = C.replace("ss", B(F)), C = C.replace("s", F) } function x(a) { return a = q(a), a.setDate(a.getDate() + 8 - a.getDay()), a } function j(a, m, l) { return a = q(a), a.setMonth(Math.ceil((a.getMonth() + 1) / l) * l), a.setDate(m), a } function y(a, i) { return j(a, i, 1) } function z(a, i) { return j(a, i, 3) } function A(a, i) { return j(a, i, 6) } function v(a, i) { return j(a, i, 12) } function q(a) { return a instanceof Date ? a : new Date("string" == typeof a ? a.replace(/-/g, "/") : a) } var w = [{ formatter: "hh : mm : ss", value: 1000 }, { formatter: "hh : mm : ss", value: 5000 }, { formatter: "hh : mm : ss", value: 10000 }, { formatter: "hh : mm : ss", value: 15000 }, { formatter: "hh : mm : ss", value: 30000 }, { formatter: "hh : mm\nMM - dd", value: 60000 }, { formatter: "hh : mm\nMM - dd", value: 300000 }, { formatter: "hh : mm\nMM - dd", value: 600000 }, { formatter: "hh : mm\nMM - dd", value: 900000 }, { formatter: "hh : mm\nMM - dd", value: 1800000 }, { formatter: "hh : mm\nMM - dd", value: 3600000 }, { formatter: "hh : mm\nMM - dd", value: 7200000 }, { formatter: "hh : mm\nMM - dd", value: 21600000 }, { formatter: "hh : mm\nMM - dd", value: 43200000 }, { formatter: "MM - dd\nyyyy", value: 86400000 }, { formatter: "week", value: 604800000 }, { formatter: "month", value: 2678400000 }, { formatter: "quarter", value: 8208000000 }, { formatter: "half-year", value: 16416000000 }, { formatter: "year", value: 32832000000 }]; return { getAutoFormatter: p, getNewDate: q, format: u, nextMonday: x, nextNthPerNmonth: j, nextNthOnMonth: y, nextNthOnQuarterYear: z, nextNthOnHalfYear: A, nextNthOnYear: v } }), d("echarts/util/smartSteps", [], function() { function C(a) { return ah.log(H(a)) / ah.LN10 } function Z(a) { return ah.pow(10, a) } function G(a) { return a === ae(a) } function Q(l, r, m, i) { z = i || {}, D = z.steps || O, J = z.secs || af, m = ac(+m || 0) % 99, l = +l || 0, r = +r || 0, ag = j = 0, "min" in z && (l = +z.min || 0, ag = 1), "max" in z && (r = +z.max || 0, j = 1), l > r && (r = [l, l = r][0]); var p = r - l; if (ag && j) { return E(l, r, m) } if ((m || 5) > p) { if (G(l) && G(r)) { return B(l, r, m) } if (0 === p) { return S(l, r, m) } } return F(l, r, m) } function q(u, w, I, o) { o = o || 0; var L = R((w - u) / I, -1), x = R(u, -1, 1), v = R(w, -1), y = ah.min(L.e, x.e, v.e); 0 === x.c ? y = ah.min(L.e, v.e) : 0 === v.c && (y = ah.min(L.e, x.e)), T(L, { c: 0, e: y }), T(x, L, 1), T(v, L), o += y, u = x.c, w = v.c; for (var X = (w - u) / I, W = Z(o), t = 0, K = [], r = I + 1; r--;) { K[r] = (u + X * r) * W } if (0 > o) { t = aa(W), X = +(X * W).toFixed(t), u = +(u * W).toFixed(t), w = +(w * W).toFixed(t); for (var r = K.length; r--;) { K[r] = K[r].toFixed(t), 0 === +K[r] && (K[r] = "0") } } else { u *= W, w *= W, X *= W } return J = 0, D = 0, z = 0, { min: u, max: w, secs: I, step: X, fix: t, exp: o, pnts: K } } function R(i, e, l) { e = ac(e % 10) || 2, 0 > e && (G(i) ? e = ("" + H(i)).replace(/0+$/, "").length || 1 : (i = i.toFixed(15).replace(/0+$/, ""), e = i.replace(".", "").replace(/^[-0]+/, "").length, i = +i)); var m = ae(C(i)) - e + 1, p = +(i * Z(-m)).toFixed(15) || 0; return p = l ? ae(p) : M(p), !p && (m = 0), ("" + H(p)).length > e && (m += 1, p /= 10), { c: p, e: m } } function T(m, o, p) { var l = o.e - m.e; l && (m.e += l, m.c *= Z(-l), m.c = p ? ae(m.c) : M(m.c)) } function Y(a, m, l) { a.e < m.e ? T(m, a, l) : T(a, m, l) } function N(a, o) { o = o || O, a = R(a); for (var l = a.c, m = 0; l > o[m];) { m++ } if (!o[m]) { for (l /= 10, a.e += 1, m = 0; l > o[m];) { m++ } } return a.c = o[m], a } function F(i, x, r) { var w, m = r || +J.slice(-1), v = N((x - i) / m, D), y = R(x - i), l = R(i, -1, 1), a = R(x, -1); if (T(y, v), T(l, v, 1), T(a, v), r ? w = ad(l, a, m) : m = P(l, a), G(i) && G(x) && i * x >= 0) { if (m > x - i) { return B(i, x, m) } m = ab(i, x, r, l, a, m) } var o = A(i, x, l.c, a.c); return l.c = o[0], a.c = o[1], (ag || j) && ai(i, x, l, a), q(l.c, a.c, m, a.e) } function P(m, t) { for (var u, l, v, w, x = [], p = J.length; p--;) { u = J[p], l = N((t.c - m.c) / u, D), l = l.c * Z(l.e), v = ae(m.c / l) * l, w = M(t.c / l) * l, x[p] = { min: v, max: w, step: l, span: w - v } } return x.sort(function(a, o) { var n = a.span - o.span; return 0 === n && (n = a.step - o.step), n }), x = x[0], u = x.span / x.step, m.c = x.min, t.c = x.max, 3 > u ? 2 * u : u } function ad(p, u, w) { for (var l, x, y = u.c, I = (u.c - p.c) / w - 1; y > p.c;) { I = N(I + 1, D), I = I.c * Z(I.e), l = I * w, x = M(u.c / I) * I, y = x - l } var t = p.c - y, v = x - u.c, K = t - v; return K > 1.1 * I && (K = ac(K / I / 2) * I, y += K, x += K), p.c = y, u.c = x, I } function ab(p, w, i, x, y, I) { var u = y.c - x.c, t = u / I * Z(y.e); if (!G(t) && (t = ae(t), u = t * I, w - p > u && (t += 1, u = t * I, !i && t * (I - 1) >= w - p && (I -= 1, u = t * I)), u >= w - p)) { var v = u - (w - p); x.c = ac(p - v / 2), y.c = ac(w + v / 2), x.e = 0, y.e = 0 } return I } function B(a, w, l) { if (l = l || 5, ag) { w = a + l } else { if (j) { a = w - l } else { var m = l - (w - a), p = ac(a - m / 2), u = ac(w + m / 2), v = A(a, w, p, u); a = v[0], w = v[1] } } return q(a, w, l) } function S(a, o, l) { l = l || 5; var m = ah.min(H(o / l), l) / 2.1; return ag ? o = a + m : j ? a = o - m : (a -= m, o += m), F(a, o, l) } function A(a, o, l, m) { return a >= 0 && 0 > l ? (m -= l, l = 0) : 0 >= o && m > 0 && (l -= m, m = 0), [l, m] } function aa(a) { return a = (+a).toFixed(15).split("."), a.pop().replace(/0+$/, "").length } function ai(m, u, o, p) { if (ag) { var l = R(m, 4, 1); o.e - l.e > 6 && (l = { c: 0, e: o.e }), Y(o, l), Y(p, l), p.c += l.c - o.c, o.c = l.c } else { if (j) { var s = R(u, 4); p.e - s.e > 6 && (s = { c: 0, e: p.e }), Y(o, s), Y(p, s), o.c += s.c - p.c, p.c = s.c } } } function E(r, aj, x) { var L = x ? [x] : J, X = aj - r; if (0 === X) { return aj = R(aj, 3), x = L[0], aj.c = ac(aj.c + x / 2), q(aj.c - x, aj.c, x, aj.e) } H(aj / X) < 1e-06 && (aj = 0), H(r / X) < 1e-06 && (r = 0); var I, w, K, am = [ [5, 10], [10, 2], [50, 10], [100, 2] ], al = [], o = [], W = R(aj - r, 3), a = R(r, -1, 1), ak = R(aj, -1); T(a, W, 1), T(ak, W), X = ak.c - a.c, W.c = X; for (var an = L.length; an--;) { x = L[an], I = M(X / x), w = I * x - X, K = 3 * (w + 3), K += 2 * (x - L[0] + 2), x % 5 === 0 && (K -= 10); for (var v = am.length; v--;) { I % am[v][0] === 0 && (K /= am[v][1]) } o[an] = [x, I, w, K].join(), al[an] = { secs: x, step: I, delta: w, score: K } } return al.sort(function(i, l) { return i.score - l.score }), al = al[0], a.c = ac(a.c - al.delta / 2), ak.c = ac(ak.c + al.delta / 2), q(a.c, ak.c, al.secs, W.e) } var z, D, J, ag, j, O = [10, 20, 25, 50], af = [4, 5, 6], ah = Math, ac = ah.round, ae = ah.floor, M = ah.ceil, H = ah.abs; return Q }), d("echarts/util/smartLogSteps", ["require", "./number"], function(G) { function ak(a) { return Q(), am = a || {}, ae(), q(), [af(), Q()][0] } function Q() { an = am = O = A = z = M = av = Z = D = ag = null } function ae() { D = am.logLabelBase, null == D ? (ag = "plain", D = 10, A = R) : (D = +D, 1 > D && (D = 10), ag = "exponent", A = ac(D)), av = am.splitNumber, null == av && (av = H); var a = parseFloat(am.dataMin), i = parseFloat(am.dataMax); isFinite(a) || isFinite(i) ? isFinite(a) ? isFinite(i) ? a > i && (i = [a, a = i][0]) : i = a : a = i : a = i = 1, an = am.logPositive, null == an && (an = i > 0 || 0 === a), z = an ? a : -i, M = an ? i : -a, aj > z && (z = aj), aj > M && (M = aj) } function q() { function p() { av > w && (av = w); var o = aq(ab(w / av)), L = ao(ab(w / o)), r = o * L, J = (r - I) / 2, m = aq(ab(C - J)); ap(m - C) && (m -= 1), O = -m * A; for (var K = m; y >= K - o; K += o) { Z.push(ar(D, K)) } } function F() { for (var a = v(u, 0), o = a + 2; o > a && l(a + 1) + x(a + 1) * B < C;) { a++ } for (var i = v(E, 0), o = i - 2; i > o && l(i - 1) + x(i - 1) * B > y;) { i-- } O = -(l(a) * R + x(a) * Y); for (var n = a; i >= n; n++) { var s = l(n), r = x(n); Z.push(ar(10, s) * ar(2, r)) } } function v(a, i) { return 3 * a + i } function x(a) { return a - 3 * l(a) } function l(a) { return aq(ab(a / 3)) } Z = []; var y = ab(ac(M) / A), C = ab(ac(z) / A), E = ao(y), u = aq(C), w = E - u, I = y - C; "exponent" === ag ? p() : N >= w && av > N ? F() : p() } function af() { for (var p = [], w = 0, r = Z.length; r > w; w++) { p[w] = (an ? 1 : -1) * Z[w] }!an && p.reverse(); var u = ai(), m = u.value2Coord, v = m(p[0]), s = m(p[p.length - 1]); return v === s && (v -= 1, s += 1), { dataMin: v, dataMax: s, tickList: p, logPositive: an, labelFormatter: ah(), dataMappingMethods: u } } function ah() { if ("exponent" === ag) { var a = D, i = A; return function(e) { if (!isFinite(parseFloat(e))) { return "" } var l = ""; return 0 > e && (e = -e, l = "-"), l + a + ad(ac(e) / i) } } return function(l) { return isFinite(parseFloat(l)) ? at.addCommas(P(l)) : "" } } function ai() { var a = an, i = O; return { value2Coord: function(e) { return null == e || isNaN(e) || !isFinite(e) ? e : (e = parseFloat(e), isFinite(e) ? a && aj > e ? e = aj : !a && e > -aj && (e = -aj) : e = aj, e = au(e), (a ? 1 : -1) * (ac(e) + i)) }, coord2Value: function(e) { return null == e || isNaN(e) || !isFinite(e) ? e : (e = parseFloat(e), isFinite(e) || (e = aj), a ? ar(aa, e - i) : -ar(aa, -e + i)) } } } function ab(a) { return +Number(+a).toFixed(14) } function P(a) { return Number(a).toFixed(15).replace(/\.?0*$/, "") } function ad(m) { m = P(Math.round(m)); for (var r = [], o = 0, p = m.length; p > o; o++) { var l = m.charAt(o); r.push(al[l] || "") } return r.join("") } function ap(a) { return a > -aj && aj > a } var an, D, ag, A, am, av, O, z, M, Z, at = G("./number"), j = Math, ac = j.log, ar = j.pow, au = j.abs, ao = j.ceil, aq = j.floor, aa = j.E, R = j.LN10, Y = j.LN2, B = Y / R, aj = 1e-09, H = 5, N = 2, al = { 0: "⁰", 1: "¹", 2: "²", 3: "³", 4: "⁴", 5: "⁵", 6: "⁶", 7: "⁷", 8: "⁸", 9: "⁹", "-": "⁻" }; return ak }), d("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(p) { function B(m, s, n, l, r) { x.call(this, m, s, n, l, r), this.refresh(l) } function u(D, L, F) { var I = L.x, o = L.y, J = L.width, K = L.height, G = K / 2; L.symbol.match("empty") && (D.fillStyle = "#fff"), L.brushType = "both"; var E = L.symbol.replace("empty", "").toLowerCase(); E.match("star") ? (G = E.replace("star", "") - 0 || 5, o -= 1, E = "star") : ("rectangle" === E || "arrow" === E) && (I += (J - K) / 2, J = K); var H = ""; if (E.match("image") && (H = E.replace(new RegExp("^image:\\/\\/"), ""), E = "image", I += Math.round((J - K) / 2) - 1, J = K += 2), E = y.prototype.iconLibrary[E]) { var N = L.x, M = L.y; D.moveTo(N, M + G), D.lineTo(N + 5, M + G), D.moveTo(N + L.width - 5, M + G), D.lineTo(N + L.width, M + G); var C = this; E(D, { x: I + 4, y: o + 4, width: J - 8, height: K - 8, n: G, image: H }, function() { C.modSelf(), F() }) } else { D.moveTo(I, o + G), D.lineTo(I + J, o + G) } } var x = p("./base"), j = p("zrender/shape/Polyline"), y = p("../util/shape/Icon"), z = p("../util/shape/HalfSmoothPolygon"); p("../component/axis"), p("../component/grid"), p("../component/dataZoom"); var A = p("../config"); A.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 v = p("../util/ecData"), q = p("zrender/tool/util"), w = p("zrender/tool/color"); return B.prototype = { type: A.CHART_TYPE_LINE, _buildShape: function() { this.finalPLMap = {}, this._buildPosition() }, _buildHorizontal: function(H, Z, M, R) { for (var D, S, X, Y, O, K, Q, ac, ab, G = this.series, T = M[0][0], F = G[T], aa = this.component.xAxis.getAxis(F.xAxisIndex || 0), af = {}, J = 0, E = Z; E > J && null != aa.getNameByIndex(J); J++) { S = aa.getCoordByIndex(J); for (var I = 0, N = M.length; N > I; I++) { D = this.component.yAxis.getAxis(G[M[I][0]].yAxisIndex || 0), O = Y = Q = K = D.getCoord(0); for (var ae = 0, C = M[I].length; C > ae; ae++) { T = M[I][ae], F = G[T], ac = F.data[J], ab = this.getDataFromOption(ac, "-"), af[T] = af[T] || [], R[T] = R[T] || { min: Number.POSITIVE_INFINITY, max: Number.NEGATIVE_INFINITY, sum: 0, counter: 0, average: 0 }, "-" !== ab ? (ab >= 0 ? (Y -= ae > 0 ? D.getCoordSize(ab) : O - D.getCoord(ab), X = Y) : 0 > ab && (K += ae > 0 ? D.getCoordSize(ab) : D.getCoord(ab) - Q, X = K), af[T].push([S, X, J, aa.getNameByIndex(J), S, O]), R[T].min > ab && (R[T].min = ab, R[T].minY = X, R[T].minX = S), R[T].max < ab && (R[T].max = ab, R[T].maxY = X, R[T].maxX = S), R[T].sum += ab, R[T].counter++) : af[T].length > 0 && (this.finalPLMap[T] = this.finalPLMap[T] || [], this.finalPLMap[T].push(af[T]), af[T] = []) } } Y = this.component.grid.getY(); for (var P, I = 0, N = M.length; N > I; I++) { for (var ae = 0, C = M[I].length; C > ae; ae++) { T = M[I][ae], F = G[T], ac = F.data[J], ab = this.getDataFromOption(ac, "-"), "-" == ab && this.deepQuery([ac, F, this.option], "calculable") && (P = this.deepQuery([ac, F], "symbolSize"), Y += 2 * P + 5, X = Y, this.shapeList.push(this._getCalculableItem(T, J, aa.getNameByIndex(J), S, X, "horizontal"))) } } } for (var ad in af) { af[ad].length > 0 && (this.finalPLMap[ad] = this.finalPLMap[ad] || [], this.finalPLMap[ad].push(af[ad]), af[ad] = []) } this._calculMarkMapXY(R, M, "y"), this._buildBorkenLine(H, this.finalPLMap, aa, "horizontal") }, _buildVertical: function(H, Z, M, R) { for (var D, S, X, Y, O, K, Q, ac, ab, G = this.series, T = M[0][0], F = G[T], aa = this.component.yAxis.getAxis(F.yAxisIndex || 0), af = {}, J = 0, E = Z; E > J && null != aa.getNameByIndex(J); J++) { X = aa.getCoordByIndex(J); for (var I = 0, N = M.length; N > I; I++) { D = this.component.xAxis.getAxis(G[M[I][0]].xAxisIndex || 0), O = Y = Q = K = D.getCoord(0); for (var ae = 0, C = M[I].length; C > ae; ae++) { T = M[I][ae], F = G[T], ac = F.data[J], ab = this.getDataFromOption(ac, "-"), af[T] = af[T] || [], R[T] = R[T] || { min: Number.POSITIVE_INFINITY, max: Number.NEGATIVE_INFINITY, sum: 0, counter: 0, average: 0 }, "-" !== ab ? (ab >= 0 ? (Y += ae > 0 ? D.getCoordSize(ab) : D.getCoord(ab) - O, S = Y) : 0 > ab && (K -= ae > 0 ? D.getCoordSize(ab) : Q - D.getCoord(ab), S = K), af[T].push([S, X, J, aa.getNameByIndex(J), O, X]), R[T].min > ab && (R[T].min = ab, R[T].minX = S, R[T].minY = X), R[T].max < ab && (R[T].max = ab, R[T].maxX = S, R[T].maxY = X), R[T].sum += ab, R[T].counter++) : af[T].length > 0 && (this.finalPLMap[T] = this.finalPLMap[T] || [], this.finalPLMap[T].push(af[T]), af[T] = []) } } Y = this.component.grid.getXend(); for (var P, I = 0, N = M.length; N > I; I++) { for (var ae = 0, C = M[I].length; C > ae; ae++) { T = M[I][ae], F = G[T], ac = F.data[J], ab = this.getDataFromOption(ac, "-"), "-" == ab && this.deepQuery([ac, F, this.option], "calculable") && (P = this.deepQuery([ac, F], "symbolSize"), Y -= 2 * P + 5, S = Y, this.shapeList.push(this._getCalculableItem(T, J, aa.getNameByIndex(J), S, X, "vertical"))) } } } for (var ad in af) { af[ad].length > 0 && (this.finalPLMap[ad] = this.finalPLMap[ad] || [], this.finalPLMap[ad].push(af[ad]), af[ad] = []) } this._calculMarkMapXY(R, M, "x"), this._buildBorkenLine(H, this.finalPLMap, aa, "vertical") }, _buildOther: function(G, T, K, O) { for (var C, P = this.series, R = {}, S = 0, M = K.length; M > S; S++) { for (var J = 0, N = K[S].length; N > J; J++) { var Y = K[S][J], X = P[Y]; C = this.component.xAxis.getAxis(X.xAxisIndex || 0); var F = this.component.yAxis.getAxis(X.yAxisIndex || 0), Q = F.getCoord(0); R[Y] = R[Y] || [], O[Y] = O[Y] || { 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 E = 0, W = X.data.length; W > E; E++) { var Z = X.data[E], I = this.getDataFromOption(Z, "-"); if (I instanceof Array) { var D = C.getCoord(I[0]), H = F.getCoord(I[1]); R[Y].push([D, H, E, I[0], D, Q]), O[Y].min0 > I[0] && (O[Y].min0 = I[0], O[Y].minY0 = H, O[Y].minX0 = D), O[Y].max0 < I[0] && (O[Y].max0 = I[0], O[Y].maxY0 = H, O[Y].maxX0 = D), O[Y].sum0 += I[0], O[Y].counter0++, O[Y].min1 > I[1] && (O[Y].min1 = I[1], O[Y].minY1 = H, O[Y].minX1 = D), O[Y].max1 < I[1] && (O[Y].max1 = I[1], O[Y].maxY1 = H, O[Y].maxX1 = D), O[Y].sum1 += I[1], O[Y].counter1++ } } } } for (var L in R) { R[L].length > 0 && (this.finalPLMap[L] = this.finalPLMap[L] || [], this.finalPLMap[L].push(R[L]), R[L] = []) } this._calculMarkMapXY(O, K, "xy"), this._buildBorkenLine(G, this.finalPLMap, C, "other") }, _buildBorkenLine: function(C, T, F, P) { for (var Q, S = "other" == P ? "horizontal" : P, ab = this.series, Z = C.length - 1; Z >= 0; Z--) { var r = C[Z], R = ab[r], m = T[r]; if (R.type === this.type && null != m) { for (var Y = this._getBbox(r, S), ag = this._sIndex2ColorMap[r], E = this.query(R, "itemStyle.normal.lineStyle.width"), l = this.query(R, "itemStyle.normal.lineStyle.type"), D = this.query(R, "itemStyle.normal.lineStyle.color"), M = this.getItemStyleColor(this.query(R, "itemStyle.normal.color"), r, -1), ae = null != this.query(R, "itemStyle.normal.areaStyle"), a = this.query(R, "itemStyle.normal.areaStyle.color"), O = 0, ad = m.length; ad > O; O++) { var af = m[O], aa = "other" != P && this._isLarge(S, af); if (aa) { af = this._getLargePointList(S, af, R.dataFilter) } else { for (var ac = 0, N = af.length; N > ac; ac++) { Q = R.data[af[ac][2]], (this.deepQuery([Q, R, this.option], "calculable") || this.deepQuery([Q, R], "showAllSymbol") || "categoryAxis" === F.type && F.isMainAxis(af[ac][2]) && "none" != this.deepQuery([Q, R], "symbol")) && this.shapeList.push(this._getSymbol(r, af[ac][2], af[ac][3], af[ac][0], af[ac][1], S)) } } var G = new j({ zlevel: R.zlevel, z: R.z, style: { miterLimit: E, pointList: af, strokeColor: D || M || ag, lineWidth: E, lineType: l, smooth: this._getSmooth(R.smooth), smoothConstraint: Y, shadowColor: this.query(R, "itemStyle.normal.lineStyle.shadowColor"), shadowBlur: this.query(R, "itemStyle.normal.lineStyle.shadowBlur"), shadowOffsetX: this.query(R, "itemStyle.normal.lineStyle.shadowOffsetX"), shadowOffsetY: this.query(R, "itemStyle.normal.lineStyle.shadowOffsetY") }, hoverable: !1, _main: !0, _seriesIndex: r, _orient: S }); if (v.pack(G, ab[r], r, 0, O, ab[r].name), this.shapeList.push(G), ae) { var H = new z({ zlevel: R.zlevel, z: R.z, style: { miterLimit: E, pointList: q.clone(af).concat([ [af[af.length - 1][4], af[af.length - 1][5]], [af[0][4], af[0][5]] ]), brushType: "fill", smooth: this._getSmooth(R.smooth), smoothConstraint: Y, color: a ? a : w.alpha(ag, 0.5) }, highlightStyle: { brushType: "fill" }, hoverable: !1, _main: !0, _seriesIndex: r, _orient: S }); v.pack(H, ab[r], r, 0, O, ab[r].name), this.shapeList.push(H) } } } } }, _getBbox: function(a, o) { var l = this.component.grid.getBbox(), m = this.xMarkMap[a]; return null != m.minX0 ? [ [Math.min(m.minX0, m.maxX0, m.minX1, m.maxX1), Math.min(m.minY0, m.maxY0, m.minY1, m.maxY1)], [Math.max(m.minX0, m.maxX0, m.minX1, m.maxX1), Math.max(m.minY0, m.maxY0, m.minY1, m.maxY1)] ] : ("horizontal" === o ? (l[0][1] = Math.min(m.minY, m.maxY), l[1][1] = Math.max(m.minY, m.maxY)) : (l[0][0] = Math.min(m.minX, m.maxX), l[1][0] = Math.max(m.minX, m.maxX)), l) }, _isLarge: function(a, i) { return i.length < 2 ? !1 : "horizontal" === a ? Math.abs(i[0][0] - i[1][0]) < 0.5 : Math.abs(i[0][1] - i[1][1]) < 0.5 }, _getLargePointList: function(F, P, H) { var K; K = "horizontal" === F ? this.component.grid.getWidth() : this.component.grid.getHeight(); var C = P.length, L = []; if ("function" != typeof H) { switch (H) { case "min": H = function(a) { return Math.max.apply(null, a) }; break; case "max": H = function(a) { return Math.min.apply(null, a) }; break; case "average": H = function(a) { for (var m = 0, l = 0; l < a.length; l++) { m += a[l] } return m / a.length }; break; default: H = function(a) { return a[0] } } } for (var N = [], O = 0; K > O; O++) { var I = Math.floor(C / K * O), G = Math.min(Math.floor(C / K * (O + 1)), C); if (!(I >= G)) { for (var J = I; G > J; J++) { N[J - I] = "horizontal" === F ? P[J][1] : P[J][0] } N.length = G - I; for (var S = H(N), R = -1, E = 1 / 0, J = I; G > J; J++) { var M = "horizontal" === F ? P[J][1] : P[J][0], D = Math.abs(M - S); E > D && (R = J, E = D) } var Q = P[R].slice(); "horizontal" === F ? Q[1] = S : Q[0] = S, L.push(Q) } } return L }, _getSmooth: function(a) { return a ? 0.3 : 0 }, _getCalculableItem: function(s, I, D, F, m, G) { var H = this.series, E = H[s].calculableHolderColor || this.ecTheme.calculableHolderColor || A.calculableHolderColor, C = this._getSymbol(s, I, D, F, m, G); return C.style.color = E, C.style.strokeColor = E, C.rotation = [0, 0], C.hoverable = !1, C.draggable = !1, C.style.text = void 0, C }, _getSymbol: function(C, K, E, G, m, H) { var I = this.series, J = I[C], F = J.data[K], D = this.getSymbolShape(J, C, F, K, E, G, m, this._sIndex2ShapeMap[C], this._sIndex2ColorMap[C], "#fff", "vertical" === H ? "horizontal" : "vertical"); return D.zlevel = J.zlevel, D.z = J.z + 1, this.deepQuery([F, J, this.option], "calculable") && (this.setCalculable(D), D.draggable = !0), D }, getMarkCoord: function(m, F) { var s = this.series[m], C = this.xMarkMap[m], l = this.component.xAxis.getAxis(s.xAxisIndex), D = this.component.yAxis.getAxis(s.yAxisIndex); if (F.type && ("max" === F.type || "min" === F.type || "average" === F.type)) { var E = null != F.valueIndex ? F.valueIndex : null != C.maxX0 ? "1" : ""; return [C[F.type + "X" + E], C[F.type + "Y" + E], C[F.type + "Line" + E], C[F.type + E]] } return ["string" != typeof F.xAxis && l.getCoordByIndex ? l.getCoordByIndex(F.xAxis || 0) : l.getCoord(F.xAxis || 0), "string" != typeof F.yAxis && D.getCoordByIndex ? D.getCoordByIndex(F.yAxis || 0) : D.getCoord(F.yAxis || 0)] }, refresh: function(a) { a && (this.option = a, this.series = a.series), this.backupShapeList(), this._buildShape() }, ontooltipHover: function(D, M) { for (var F, I, C = D.seriesIndex, J = D.dataIndex, K = C.length; K--;) { if (F = this.finalPLMap[C[K]]) { for (var L = 0, G = F.length; G > L; L++) { I = F[L]; for (var E = 0, H = I.length; H > E; E++) { J === I[E][2] && M.push(this._getSymbol(C[K], I[E][2], I[E][3], I[E][0], I[E][1], "horizontal")) } } } } }, addDataAnimation: function(F, P) { function H() { D--, 0 === D && P && P() } function K(a) { a.style.controlPointList = null } for (var C = this.series, L = {}, N = 0, O = F.length; O > N; N++) { L[F[N][0]] = F[N] } for (var I, G, J, S, R, E, M, D = 0, N = this.shapeList.length - 1; N >= 0; N--) { if (R = this.shapeList[N]._seriesIndex, L[R] && !L[R][3]) { if (this.shapeList[N]._main && this.shapeList[N].style.pointList.length > 1) { if (E = this.shapeList[N].style.pointList, G = Math.abs(E[0][0] - E[1][0]), S = Math.abs(E[0][1] - E[1][1]), M = "horizontal" === this.shapeList[N]._orient, L[R][2]) { if ("half-smooth-polygon" === this.shapeList[N].type) { var Q = E.length; this.shapeList[N].style.pointList[Q - 3] = E[Q - 2], this.shapeList[N].style.pointList[Q - 3][M ? 0 : 1] = E[Q - 4][M ? 0 : 1], this.shapeList[N].style.pointList[Q - 2] = E[Q - 1] } this.shapeList[N].style.pointList.pop(), M ? (I = G, J = 0) : (I = 0, J = -S) } else { if (this.shapeList[N].style.pointList.shift(), "half-smooth-polygon" === this.shapeList[N].type) { var T = this.shapeList[N].style.pointList.pop(); M ? T[0] = E[0][0] : T[1] = E[0][1], this.shapeList[N].style.pointList.push(T) } M ? (I = -G, J = 0) : (I = 0, J = S) } this.shapeList[N].style.controlPointList = null, this.zr.modShape(this.shapeList[N]) } else { if (L[R][2] && this.shapeList[N]._dataIndex === C[R].data.length - 1) { this.zr.delShape(this.shapeList[N].id); continue } if (!L[R][2] && 0 === this.shapeList[N]._dataIndex) { this.zr.delShape(this.shapeList[N].id); continue } } this.shapeList[N].position = [0, 0], D++, this.zr.animate(this.shapeList[N].id, "").when(this.query(this.option, "animationDurationUpdate"), { position: [I, J] }).during(K).done(H).start() } } D || P && P() } }, y.prototype.iconLibrary.legendLineIcon = u, q.inherits(B, x), p("../chart").define("line", B), B }), d("echarts/util/shape/HalfSmoothPolygon", ["require", "zrender/shape/Base", "zrender/shape/util/smoothBezier", "zrender/tool/util", "zrender/shape/Polygon"], function(l) { function p(a) { m.call(this, a) } var m = l("zrender/shape/Base"), o = l("zrender/shape/util/smoothBezier"), j = l("zrender/tool/util"); return p.prototype = { type: "half-smooth-polygon", buildPath: function(z, q) { var e = q.pointList; if (!(e.length < 2)) { if (q.smooth) { var w = o(e.slice(0, -2), q.smooth, !1, q.smoothConstraint); z.moveTo(e[0][0], e[0][1]); for (var x, y, u, n = e.length, v = 0; n - 3 > v; v++) { x = w[2 * v], y = w[2 * v + 1], u = e[v + 1], z.bezierCurveTo(x[0], x[1], y[0], y[1], u[0], u[1]) } z.lineTo(e[n - 2][0], e[n - 2][1]), z.lineTo(e[n - 1][0], e[n - 1][1]), z.lineTo(e[0][0], e[0][1]) } else { l("zrender/shape/Polygon").prototype.buildPath(z, q) } } } }, j.inherits(p, m), p }), d("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(l) { function w(r, y, s, i, x) { m.call(this, r, y, s, i, x), this.refresh(i) } var m = l("./base"), p = l("zrender/shape/Rectangle"); l("../component/axis"), l("../component/grid"), l("../component/dataZoom"); var j = l("../config"); j.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 q = l("../util/ecData"), u = l("zrender/tool/util"), v = l("zrender/tool/color"); return w.prototype = { type: j.CHART_TYPE_BAR, _buildShape: function() { this._buildPosition() }, _buildNormal: function(R, au, ad, am, aq) { for (var ar, ai, ac, ak, az, ax, N, ao, G, aw, aE, ab, B = this.series, Z = ad[0][0], ag = B[Z], aC = "horizontal" == aq, a = this.component.xAxis, aj = this.component.yAxis, aB = aC ? a.getAxis(ag.xAxisIndex) : aj.getAxis(ag.yAxisIndex), aD = this._mapSize(aB, ad), ay = aD.gap, aA = aD.barGap, ah = aD.barWidthMap, ae = aD.barMaxWidthMap, af = aD.barWidth, H = aD.barMinHeightMap, at = aD.interval, Y = this.deepQuery([this.ecTheme, j], "island.r"), aa = 0, av = au; av > aa && null != aB.getNameByIndex(aa); aa++) { aC ? ak = aB.getCoordByIndex(aa) - ay / 2 : az = aB.getCoordByIndex(aa) + ay / 2; for (var aF = 0, n = ad.length; n > aF; aF++) { var al = B[ad[aF][0]].yAxisIndex || 0, an = B[ad[aF][0]].xAxisIndex || 0; ar = aC ? aj.getAxis(al) : a.getAxis(an), N = ax = G = ao = ar.getCoord(0); for (var ap = 0, Q = ad[aF].length; Q > ap; ap++) { Z = ad[aF][ap], ag = B[Z], aE = ag.data[aa], ab = this.getDataFromOption(aE, "-"), am[Z] = am[Z] || { min: Number.POSITIVE_INFINITY, max: Number.NEGATIVE_INFINITY, sum: 0, counter: 0, average: 0 }, ac = Math.min(ae[Z] || Number.MAX_VALUE, ah[Z] || af), "-" !== ab && (ab > 0 ? (ai = ap > 0 ? ar.getCoordSize(ab) : aC ? N - ar.getCoord(ab) : ar.getCoord(ab) - N, 1 === Q && H[Z] > ai && (ai = H[Z]), aC ? (ax -= ai, az = ax) : (ak = ax, ax += ai)) : 0 > ab ? (ai = ap > 0 ? ar.getCoordSize(ab) : aC ? ar.getCoord(ab) - G : G - ar.getCoord(ab), 1 === Q && H[Z] > ai && (ai = H[Z]), aC ? (az = ao, ao += ai) : (ao -= ai, ak = ao)) : (ai = 0, aC ? (ax -= ai, az = ax) : (ak = ax, ax += ai)), am[Z][aa] = aC ? ak + ac / 2 : az - ac / 2, am[Z].min > ab && (am[Z].min = ab, aC ? (am[Z].minY = az, am[Z].minX = am[Z][aa]) : (am[Z].minX = ak + ai, am[Z].minY = am[Z][aa])), am[Z].max < ab && (am[Z].max = ab, aC ? (am[Z].maxY = az, am[Z].maxX = am[Z][aa]) : (am[Z].maxX = ak + ai, am[Z].maxY = am[Z][aa])), am[Z].sum += ab, am[Z].counter++, aa % at === 0 && (aw = this._getBarItem(Z, aa, aB.getNameByIndex(aa), ak, az - (aC ? 0 : ac), aC ? ac : ai, aC ? ai : ac, aC ? "vertical" : "horizontal"), this.shapeList.push(new p(aw)))) } for (var ap = 0, Q = ad[aF].length; Q > ap; ap++) { Z = ad[aF][ap], ag = B[Z], aE = ag.data[aa], ab = this.getDataFromOption(aE, "-"), ac = Math.min(ae[Z] || Number.MAX_VALUE, ah[Z] || af), "-" == ab && this.deepQuery([aE, ag, this.option], "calculable") && (aC ? (ax -= Y, az = ax) : (ak = ax, ax += Y), aw = this._getBarItem(Z, aa, aB.getNameByIndex(aa), ak, az - (aC ? 0 : ac), aC ? ac : Y, aC ? Y : ac, aC ? "vertical" : "horizontal"), aw.hoverable = !1, aw.draggable = !1, aw.style.lineWidth = 1, aw.style.brushType = "stroke", aw.style.strokeColor = ag.calculableHolderColor || this.ecTheme.calculableHolderColor || j.calculableHolderColor, this.shapeList.push(new p(aw))) } aC ? ak += ac + aA : az -= ac + aA } } this._calculMarkMapXY(am, ad, aC ? "y" : "x") }, _buildHorizontal: function(a, s, o, r) { return this._buildNormal(a, s, o, r, "horizontal") }, _buildVertical: function(a, s, o, r) { return this._buildNormal(a, s, o, r, "vertical") }, _buildOther: function(D, R, H, z) { for (var N = this.series, P = 0, Q = H.length; Q > P; P++) { for (var J = 0, G = H[P].length; G > J; J++) { var M = H[P][J], Z = N[M], T = Z.xAxisIndex || 0, C = this.component.xAxis.getAxis(T), O = C.getCoord(0), B = Z.yAxisIndex || 0, S = this.component.yAxis.getAxis(B), ae = S.getCoord(0); z[M] = z[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 F = 0, A = Z.data.length; A > F; F++) { var E = Z.data[F], I = this.getDataFromOption(E, "-"); if (I instanceof Array) { var ac, n, K = C.getCoord(I[0]), ab = S.getCoord(I[1]), ad = [E, Z], Y = this.deepQuery(ad, "barWidth") || 10, aa = this.deepQuery(ad, "barHeight"); null != aa ? (ac = "horizontal", I[0] > 0 ? (Y = K - O, K -= Y) : Y = I[0] < 0 ? O - K : 0, n = this._getBarItem(M, F, I[0], K, ab - aa / 2, Y, aa, ac)) : (ac = "vertical", I[1] > 0 ? aa = ae - ab : I[1] < 0 ? (aa = ab - ae, ab -= aa) : aa = 0, n = this._getBarItem(M, F, I[0], K - Y / 2, ab, Y, aa, ac)), this.shapeList.push(new p(n)), K = C.getCoord(I[0]), ab = S.getCoord(I[1]), z[M].min0 > I[0] && (z[M].min0 = I[0], z[M].minY0 = ab, z[M].minX0 = K), z[M].max0 < I[0] && (z[M].max0 = I[0], z[M].maxY0 = ab, z[M].maxX0 = K), z[M].sum0 += I[0], z[M].counter0++, z[M].min1 > I[1] && (z[M].min1 = I[1], z[M].minY1 = ab, z[M].minX1 = K), z[M].max1 < I[1] && (z[M].max1 = I[1], z[M].maxY1 = ab, z[M].maxX1 = K), z[M].sum1 += I[1], z[M].counter1++ } } } } this._calculMarkMapXY(z, H, "xy") }, _mapSize: function(z, I, B) { var E, x, F = this._findSpecialBarSzie(I, B), G = F.barWidthMap, H = F.barMaxWidthMap, C = F.barMinHeightMap, A = F.sBarWidthCounter, D = F.sBarWidthTotal, K = F.barGap, J = F.barCategoryGap, y = 1; if (I.length != A) { if (B) { E = z.getGap(), K = 0, x = +(E / I.length).toFixed(2), 0 >= x && (y = Math.floor(I.length / E), x = 1) } else { if (E = "string" == typeof J && J.match(/%$/) ? (z.getGap() * (100 - parseFloat(J)) / 100).toFixed(2) - 0 : z.getGap() - J, "string" == typeof K && K.match(/%$/) ? (K = parseFloat(K) / 100, x = +((E - D) / ((I.length - 1) * K + I.length - A)).toFixed(2), K = x * K) : (K = parseFloat(K), x = +((E - D - K * (I.length - 1)) / (I.length - A)).toFixed(2)), 0 >= x) { return this._mapSize(z, I, !0) } } } else { if (E = A > 1 ? "string" == typeof J && J.match(/%$/) ? +(z.getGap() * (100 - parseFloat(J)) / 100).toFixed(2) : z.getGap() - J : D, x = 0, K = A > 1 ? +((E - D) / (A - 1)).toFixed(2) : 0, 0 > K) { return this._mapSize(z, I, !0) } } return this._recheckBarMaxWidth(I, G, H, C, E, x, K, y) }, _findSpecialBarSzie: function(C, P) { for (var G, K, x, L, N = this.series, O = {}, I = {}, F = {}, J = 0, S = 0, R = 0, B = C.length; B > R; R++) { for (var M = { barWidth: !1, barMaxWidth: !1 }, A = 0, Q = C[R].length; Q > A; A++) { var T = C[R][A], E = N[T]; if (!P) { if (M.barWidth) { O[T] = G } else { if (G = this.query(E, "barWidth"), null != G) { O[T] = G, S += G, J++, M.barWidth = !0; for (var z = 0, D = A; D > z; z++) { var H = C[R][z]; O[H] = G } } } if (M.barMaxWidth) { I[T] = K } else { if (K = this.query(E, "barMaxWidth"), null != K) { I[T] = K, M.barMaxWidth = !0; for (var z = 0, D = A; D > z; z++) { var H = C[R][z]; I[H] = K } } } } F[T] = this.query(E, "barMinHeight"), x = null != x ? x : this.query(E, "barGap"), L = null != L ? L : this.query(E, "barCategoryGap") } } return { barWidthMap: O, barMaxWidthMap: I, barMinHeightMap: F, sBarWidth: G, sBarMaxWidth: K, sBarWidthCounter: J, sBarWidthTotal: S, barGap: x, barCategoryGap: L } }, _recheckBarMaxWidth: function(y, H, A, D, x, E, F, G) { for (var B = 0, z = y.length; z > B; B++) { var C = y[B][0]; A[C] && A[C] < E && (x -= E - A[C]) } return { barWidthMap: H, barMaxWidthMap: A, barMinHeightMap: D, gap: x, barWidth: E, barGap: F, interval: G } }, _getBarItem: function(C, P, G, M, s, O, I, F) { var K, S = this.series, R = S[C], B = R.data[P], N = this._sIndex2ColorMap[C], A = [B, R], Q = this.deepMerge(A, "itemStyle.normal"), W = this.deepMerge(A, "itemStyle.emphasis"), E = Q.barBorderWidth; K = { zlevel: R.zlevel, z: R.z, clickable: this.deepQuery(A, "clickable"), style: { x: M, y: s, width: O, height: I, brushType: "both", color: this.getItemStyleColor(this.deepQuery(A, "itemStyle.normal.color") || N, C, P, B), radius: Q.barBorderRadius, lineWidth: E, strokeColor: Q.barBorderColor }, highlightStyle: { color: this.getItemStyleColor(this.deepQuery(A, "itemStyle.emphasis.color"), C, P, B), radius: W.barBorderRadius, lineWidth: W.barBorderWidth, strokeColor: W.barBorderColor }, _orient: F }; var z = K.style; K.highlightStyle.color = K.highlightStyle.color || ("string" == typeof z.color ? v.lift(z.color, -0.3) : z.color), z.x = Math.floor(z.x), z.y = Math.floor(z.y), z.height = Math.ceil(z.height), z.width = Math.ceil(z.width), E > 0 && z.height > E && z.width > E ? (z.y += E / 2, z.height -= E, z.x += E / 2, z.width -= E) : z.brushType = "fill", K.highlightStyle.textColor = K.highlightStyle.color, K = this.addLabel(K, R, B, G, F); for (var D = [z, K.highlightStyle], H = 0, T = D.length; T > H; H++) { var o = D[H].textPosition; if ("insideLeft" === o || "insideRight" === o || "insideTop" === o || "insideBottom" === o) { var J = 5; switch (o) { case "insideLeft": D[H].textX = z.x + J, D[H].textY = z.y + z.height / 2, D[H].textAlign = "left", D[H].textBaseline = "middle"; break; case "insideRight": D[H].textX = z.x + z.width - J, D[H].textY = z.y + z.height / 2, D[H].textAlign = "right", D[H].textBaseline = "middle"; break; case "insideTop": D[H].textX = z.x + z.width / 2, D[H].textY = z.y + J / 2, D[H].textAlign = "center", D[H].textBaseline = "top"; break; case "insideBottom": D[H].textX = z.x + z.width / 2, D[H].textY = z.y + z.height - J / 2, D[H].textAlign = "center", D[H].textBaseline = "bottom" } D[H].textPosition = "specific", D[H].textColor = D[H].textColor || "#fff" } } return this.deepQuery([B, R, this.option], "calculable") && (this.setCalculable(K), K.draggable = !0), q.pack(K, S[C], C, S[C].data[P], P, G), K }, getMarkCoord: function(y, H) { var A, D, x = this.series[y], E = this.xMarkMap[y], F = this.component.xAxis.getAxis(x.xAxisIndex), G = this.component.yAxis.getAxis(x.yAxisIndex); if (!H.type || "max" !== H.type && "min" !== H.type && "average" !== H.type) { if (E.isHorizontal) { A = "string" == typeof H.xAxis && F.getIndexByName ? F.getIndexByName(H.xAxis) : H.xAxis || 0; var B = E[A]; B = null != B ? B : "string" != typeof H.xAxis && F.getCoordByIndex ? F.getCoordByIndex(H.xAxis || 0) : F.getCoord(H.xAxis || 0), D = [B, G.getCoord(H.yAxis || 0)] } else { A = "string" == typeof H.yAxis && G.getIndexByName ? G.getIndexByName(H.yAxis) : H.yAxis || 0; var z = E[A]; z = null != z ? z : "string" != typeof H.yAxis && G.getCoordByIndex ? G.getCoordByIndex(H.yAxis || 0) : G.getCoord(H.yAxis || 0), D = [F.getCoord(H.xAxis || 0), z] } } else { var C = null != H.valueIndex ? H.valueIndex : null != E.maxX0 ? "1" : ""; D = [E[H.type + "X" + C], E[H.type + "Y" + C], E[H.type + "Line" + C], E[H.type + C]] } return D }, refresh: function(a) { a && (this.option = a, this.series = a.series), this.backupShapeList(), this._buildShape() }, addDataAnimation: function(z, I) { function B() { x--, 0 === x && I && I() } for (var E = this.series, o = {}, G = 0, H = z.length; H > G; G++) { o[z[G][0]] = z[G] } for (var C, A, D, K, J, y, F, x = 0, G = this.shapeList.length - 1; G >= 0; G--) { if (y = q.get(this.shapeList[G], "seriesIndex"), o[y] && !o[y][3] && "rectangle" === this.shapeList[G].type) { if (F = q.get(this.shapeList[G], "dataIndex"), J = E[y], o[y][2] && F === J.data.length - 1) { this.zr.delShape(this.shapeList[G].id); continue } if (!o[y][2] && 0 === F) { this.zr.delShape(this.shapeList[G].id); continue } "horizontal" === this.shapeList[G]._orient ? (K = this.component.yAxis.getAxis(J.yAxisIndex || 0).getGap(), D = o[y][2] ? -K : K, C = 0) : (A = this.component.xAxis.getAxis(J.xAxisIndex || 0).getGap(), C = o[y][2] ? A : -A, D = 0), this.shapeList[G].position = [0, 0], x++, this.zr.animate(this.shapeList[G].id, "").when(this.query(this.option, "animationDurationUpdate"), { position: [C, D] }).done(B).start() } } x || I && I() } }, u.inherits(w, m), l("../chart").define("bar", w), w }), d("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(l) { function u(r, x, v, i, w) { m.call(this, r, x, v, i, w), this.refresh(i) } var m = l("./base"), p = l("../util/shape/Symbol"); l("../component/axis"), l("../component/grid"), l("../component/dataZoom"), l("../component/dataRange"); var j = l("../config"); j.scatter = { zlevel: 0, z: 2, clickable: !0, legendHoverLink: !0, xAxisIndex: 0, yAxisIndex: 0, symbolSize: 4, large: !1, largeThreshold: 2000, itemStyle: { normal: { label: { show: !1 } }, emphasis: { label: { show: !1 } } } }; var q = l("zrender/tool/util"), s = l("zrender/tool/color"); return u.prototype = { type: j.CHART_TYPE_SCATTER, _buildShape: function() { var a = this.series; this._sIndex2ColorMap = {}, this._symbol = this.option.symbolList, this._sIndex2ShapeMap = {}, this.selectedMap = {}, this.xMarkMap = {}; for (var B, v, y, z, A = this.component.legend, w = [], r = 0, x = a.length; x > r; r++) { if (B = a[r], v = B.name, B.type === j.CHART_TYPE_SCATTER) { if (a[r] = this.reformOption(a[r]), this.legendHoverLink = a[r].legendHoverLink || this.legendHoverLink, this._sIndex2ShapeMap[r] = this.query(B, "symbol") || this._symbol[r % this._symbol.length], A) { if (this.selectedMap[v] = A.isSelected(v), this._sIndex2ColorMap[r] = s.alpha(A.getColor(v), 0.5), y = A.getItemShape(v)) { var z = this._sIndex2ShapeMap[r]; y.style.brushType = z.match("empty") ? "stroke" : "both", z = z.replace("empty", "").toLowerCase(), z.match("rectangle") && (y.style.x += Math.round((y.style.width - y.style.height) / 2), y.style.width = y.style.height), z.match("star") && (y.style.n = z.replace("star", "") - 0 || 5, z = "star"), z.match("image") && (y.style.image = z.replace(new RegExp("^image:\\/\\/"), ""), y.style.x += Math.round((y.style.width - y.style.height) / 2), y.style.width = y.style.height, z = "image"), y.style.iconType = z, A.setItemShape(v, y) } } else { this.selectedMap[v] = !0, this._sIndex2ColorMap[r] = s.alpha(this.zr.getColor(r), 0.5) } this.selectedMap[v] && w.push(r) } } this._buildSeries(w), this.addShapeList() }, _buildSeries: function(x) { if (0 !== x.length) { for (var H, z, C, v, D, F, G, A, y = this.series, B = {}, J = 0, I = x.length; I > J; J++) { if (H = x[J], z = y[H], 0 !== z.data.length) { D = this.component.xAxis.getAxis(z.xAxisIndex || 0), F = this.component.yAxis.getAxis(z.yAxisIndex || 0), B[H] = []; for (var w = 0, E = z.data.length; E > w; w++) { C = z.data[w], v = this.getDataFromOption(C, "-"), "-" === v || v.length < 2 || (G = D.getCoord(v[0]), A = F.getCoord(v[1]), B[H].push([G, A, w, C.name || ""])) } this.xMarkMap[H] = this._markMap(D, F, z.data, B[H]), this.buildMark(H) } } this._buildPointList(B) } }, _markMap: function(x, G, z, C) { for (var v, D = { 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 }, E = 0, F = C.length; F > E; E++) { v = z[C[E][2]].value || z[C[E][2]], D.min0 > v[0] && (D.min0 = v[0], D.minY0 = C[E][1], D.minX0 = C[E][0]), D.max0 < v[0] && (D.max0 = v[0], D.maxY0 = C[E][1], D.maxX0 = C[E][0]), D.sum0 += v[0], D.counter0++, D.min1 > v[1] && (D.min1 = v[1], D.minY1 = C[E][1], D.minX1 = C[E][0]), D.max1 < v[1] && (D.max1 = v[1], D.maxY1 = C[E][1], D.maxX1 = C[E][0]), D.sum1 += v[1], D.counter1++ } var A = this.component.grid.getX(), y = this.component.grid.getXend(), B = this.component.grid.getY(), I = this.component.grid.getYend(); D.average0 = D.sum0 / D.counter0; var H = x.getCoord(D.average0); D.averageLine0 = [ [H, I], [H, B] ], D.minLine0 = [ [D.minX0, I], [D.minX0, B] ], D.maxLine0 = [ [D.maxX0, I], [D.maxX0, B] ], D.average1 = D.sum1 / D.counter1; var w = G.getCoord(D.average1); return D.averageLine1 = [ [A, w], [y, w] ], D.minLine1 = [ [A, D.minY1], [y, D.minY1] ], D.maxLine1 = [ [A, D.maxY1], [y, D.maxY1] ], D }, _buildPointList: function(w) { var D, x, z, v, A = this.series; for (var B in w) { if (D = A[B], x = w[B], D.large && D.data.length > D.largeThreshold) { this.shapeList.push(this._getLargeSymbol(D, x, this.getItemStyleColor(this.query(D, "itemStyle.normal.color"), B, -1) || this._sIndex2ColorMap[B])) } else { for (var C = 0, y = x.length; y > C; C++) { z = x[C], v = this._getSymbol(B, z[2], z[3], z[0], z[1]), v && this.shapeList.push(v) } } } }, _getSymbol: function(w, F, y, B, v) { var C, D = this.series, E = D[w], z = E.data[F], x = this.component.dataRange; if (x) { if (C = isNaN(z[2]) ? this._sIndex2ColorMap[w] : x.getColor(z[2]), !C) { return null } } else { C = this._sIndex2ColorMap[w] } var A = this.getSymbolShape(E, w, z, F, y, B, v, this._sIndex2ShapeMap[w], C, "rgba(0,0,0,0)", "vertical"); return A.zlevel = E.zlevel, A.z = E.z, A._main = !0, A }, _getLargeSymbol: function(a, o, n) { return new p({ zlevel: a.zlevel, z: a.z, _main: !0, hoverable: !1, style: { pointList: o, color: n, strokeColor: n }, highlightStyle: { pointList: [] } }) }, getMarkCoord: function(w, C) { var x, y = this.series[w], v = this.xMarkMap[w], z = this.component.xAxis.getAxis(y.xAxisIndex), A = this.component.yAxis.getAxis(y.yAxisIndex); if (!C.type || "max" !== C.type && "min" !== C.type && "average" !== C.type) { x = ["string" != typeof C.xAxis && z.getCoordByIndex ? z.getCoordByIndex(C.xAxis || 0) : z.getCoord(C.xAxis || 0), "string" != typeof C.yAxis && A.getCoordByIndex ? A.getCoordByIndex(C.yAxis || 0) : A.getCoord(C.yAxis || 0)] } else { var B = null != C.valueIndex ? C.valueIndex : 1; x = [v[C.type + "X" + B], v[C.type + "Y" + B], v[C.type + "Line" + B], v[C.type + B]] } return x }, refresh: function(a) { a && (this.option = a, this.series = a.series), this.backupShapeList(), this._buildShape() }, ondataRange: function(a, i) { this.component.dataRange && (this.refresh(), i.needRefresh = !0) } }, q.inherits(u, m), l("../chart").define("scatter", u), u }), d("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(p) { function B(l, D, m, i, r) { u.call(this, l, D, m, i, r); var C = this; C._ondrift = function(a, n) { return C.__ondrift(this, a, n) }, C._ondragend = function() { return C.__ondragend() }, C._dataRangeSelected = function(a) { return C.__dataRangeSelected(a) }, C._dispatchHoverLink = function(a) { return C.__dispatchHoverLink(a) }, C._onhoverlink = function(a) { return C.__onhoverlink(a) }, this._selectedMap = {}, this._range = {}, this.refresh(i), D.bind(z.EVENT.HOVER, this._onhoverlink) } var u = p("./base"), x = p("zrender/shape/Text"), j = p("zrender/shape/Rectangle"), y = p("../util/shape/HandlePolygon"), z = p("../config"); z.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 A = p("zrender/tool/util"), v = p("zrender/tool/event"), q = p("zrender/tool/area"), w = p("zrender/tool/color"); return B.prototype = { type: z.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 a = 0, i = this.shapeList.length; i > a; a++) { this.zr.addShape(this.shapeList[a]) } } this._syncShapeFromRange() }, _buildItem: function() { var C, K, D, G, I = this._valueTextList, J = I.length, E = this.getFont(this.dataRangeOption.textStyle), F = this._itemGroupLocation.x, N = this._itemGroupLocation.y, M = this.dataRangeOption.itemWidth, n = this.dataRangeOption.itemHeight, H = this.dataRangeOption.itemGap, a = q.getTextHeight("国", E); "vertical" == this.dataRangeOption.orient && "right" == this.dataRangeOption.x && (F = this._itemGroupLocation.x + this._itemGroupLocation.width - M); var L = !0; this.dataRangeOption.text && (L = !1, this.dataRangeOption.text[0] && (D = this._getTextShape(F, N, this.dataRangeOption.text[0]), "horizontal" == this.dataRangeOption.orient ? F += q.getTextWidth(this.dataRangeOption.text[0], E) + this._textGap : (N += a + this._textGap, D.style.y += a / 2 + this._textGap, D.style.textBaseline = "bottom"), this.shapeList.push(new x(D)))); for (var O = 0; J > O; O++) { C = I[O], G = this.getColorByIndex(O), K = this._getItemShape(F, N, M, n, this._selectedMap[O] ? G : "#ccc"), K._idx = O, K.onmousemove = this._dispatchHoverLink, this.dataRangeOption.selectedMode && (K.clickable = !0, K.onclick = this._dataRangeSelected), this.shapeList.push(new j(K)), L && (D = { zlevel: this.getZlevelBase(), z: this.getZBase(), style: { x: F + M + 5, y: N, color: this._selectedMap[O] ? this.dataRangeOption.textStyle.color : "#ccc", text: I[O], textFont: E, textBaseline: "top" }, highlightStyle: { brushType: "fill" } }, "vertical" == this.dataRangeOption.orient && "right" == this.dataRangeOption.x && (D.style.x -= M + 10, D.style.textAlign = "right"), D._idx = O, D.onmousemove = this._dispatchHoverLink, this.dataRangeOption.selectedMode && (D.clickable = !0, D.onclick = this._dataRangeSelected), this.shapeList.push(new x(D))), "horizontal" == this.dataRangeOption.orient ? F += M + (L ? 5 : 0) + (L ? q.getTextWidth(C, E) : 0) + H : N += n + H }!L && this.dataRangeOption.text[1] && ("horizontal" == this.dataRangeOption.orient ? F = F - H + this._textGap : N = N - H + this._textGap, D = this._getTextShape(F, N, this.dataRangeOption.text[1]), "horizontal" != this.dataRangeOption.orient && (D.style.y -= 5, D.style.textBaseline = "top"), this.shapeList.push(new x(D))) }, _buildGradient: function() { var J, C, F = this.getFont(this.dataRangeOption.textStyle), H = this._itemGroupLocation.x, I = this._itemGroupLocation.y, D = this.dataRangeOption.itemWidth, E = this.dataRangeOption.itemHeight, M = q.getTextHeight("国", F), L = 10, e = !0; this.dataRangeOption.text && (e = !1, this.dataRangeOption.text[0] && (C = this._getTextShape(H, I, this.dataRangeOption.text[0]), "horizontal" == this.dataRangeOption.orient ? H += q.getTextWidth(this.dataRangeOption.text[0], F) + this._textGap : (I += M + this._textGap, C.style.y += M / 2 + this._textGap, C.style.textBaseline = "bottom"), this.shapeList.push(new x(C)))); for (var G = p("zrender/tool/color"), a = 1 / (this.dataRangeOption.color.length - 1), K = [], N = 0, n = this.dataRangeOption.color.length; n > N; N++) { K.push([N * a, this.dataRangeOption.color[N]]) } "horizontal" == this.dataRangeOption.orient ? (J = { zlevel: this.getZlevelBase(), z: this.getZBase(), style: { x: H, y: I, width: D * L, height: E, color: G.getLinearGradient(H, I, H + D * L, I, K) }, hoverable: !1 }, H += D * L + this._textGap) : (J = { zlevel: this.getZlevelBase(), z: this.getZBase(), style: { x: H, y: I, width: D, height: E * L, color: G.getLinearGradient(H, I, H, I + E * L, K) }, hoverable: !1 }, I += E * L + this._textGap), this.shapeList.push(new j(J)), this._calculableLocation = J.style, this.dataRangeOption.calculable && (this._buildFiller(), this._bulidMask(), this._bulidHandle()), this._buildIndicator(), !e && this.dataRangeOption.text[1] && (C = this._getTextShape(H, I, this.dataRangeOption.text[1]), this.shapeList.push(new x(C))) }, _buildIndicator: function() { var m, F, o = this._calculableLocation.x, C = this._calculableLocation.y, l = this._calculableLocation.width, D = this._calculableLocation.height, E = 5; "horizontal" == this.dataRangeOption.orient ? "bottom" != this.dataRangeOption.y ? (m = [ [o, C + D], [o - E, C + D + E], [o + E, C + D + E] ], F = "bottom") : (m = [ [o, C], [o - E, C - E], [o + E, C - E] ], F = "top") : "right" != this.dataRangeOption.x ? (m = [ [o + l, C], [o + l + E, C - E], [o + l + E, C + E] ], F = "right") : (m = [ [o, C], [o - E, C - E], [o - E, C + E] ], F = "left"), this._indicatorShape = { style: { pointList: m, color: "#fff", __rect: { x: Math.min(m[0][0], m[1][0]), y: Math.min(m[0][1], m[1][1]), width: E * ("horizontal" == this.dataRangeOption.orient ? 2 : 1), height: E * ("horizontal" == this.dataRangeOption.orient ? 1 : 2) } }, highlightStyle: { brushType: "fill", textPosition: F, textColor: this.dataRangeOption.textStyle.color }, hoverable: !1 }, this._indicatorShape = new y(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 j(this._fillerShape), this.shapeList.push(this._fillerShape) }, _bulidHandle: function() { var E, M, F, I, o, K, L, G, H = this._calculableLocation.x, P = this._calculableLocation.y, O = this._calculableLocation.width, D = this._calculableLocation.height, J = this.getFont(this.dataRangeOption.textStyle), C = q.getTextHeight("国", J), N = Math.max(q.getTextWidth(this._textFormat(this.dataRangeOption.max), J), q.getTextWidth(this._textFormat(this.dataRangeOption.min), J)) + 2; "horizontal" == this.dataRangeOption.orient ? "bottom" != this.dataRangeOption.y ? (E = [ [H, P], [H, P + D + C], [H - C, P + D + C], [H - 1, P + D], [H - 1, P] ], M = H - N / 2 - C, F = P + D + C / 2 + 2, I = { x: H - N - C, y: P + D, width: N + C, height: C }, o = [ [H + O, P], [H + O, P + D + C], [H + O + C, P + D + C], [H + O + 1, P + D], [H + O + 1, P] ], K = H + O + N / 2 + C, L = F, G = { x: H + O, y: P + D, width: N + C, height: C }) : (E = [ [H, P + D], [H, P - C], [H - C, P - C], [H - 1, P], [H - 1, P + D] ], M = H - N / 2 - C, F = P - C / 2 - 2, I = { x: H - N - C, y: P - C, width: N + C, height: C }, o = [ [H + O, P + D], [H + O, P - C], [H + O + C, P - C], [H + O + 1, P], [H + O + 1, P + D] ], K = H + O + N / 2 + C, L = F, G = { x: H + O, y: P - C, width: N + C, height: C }) : (N += C, "right" != this.dataRangeOption.x ? (E = [ [H, P], [H + O + C, P], [H + O + C, P - C], [H + O, P - 1], [H, P - 1] ], M = H + O + N / 2 + C / 2, F = P - C / 2, I = { x: H + O, y: P - C, width: N + C, height: C }, o = [ [H, P + D], [H + O + C, P + D], [H + O + C, P + C + D], [H + O, P + 1 + D], [H, P + D + 1] ], K = M, L = P + D + C / 2, G = { x: H + O, y: P + D, width: N + C, height: C }) : (E = [ [H + O, P], [H - C, P], [H - C, P - C], [H, P - 1], [H + O, P - 1] ], M = H - N / 2 - C / 2, F = P - C / 2, I = { x: H - N - C, y: P - C, width: N + C, height: C }, o = [ [H + O, P + D], [H - C, P + D], [H - C, P + C + D], [H, P + 1 + D], [H + O, P + D + 1] ], K = M, L = P + D + C / 2, G = { x: H - N - C, y: P + D, width: N + C, height: C })), this._startShape = { style: { pointList: E, text: this._textFormat(this.dataRangeOption.max), textX: M, textY: F, textFont: J, color: this.getColor(this.dataRangeOption.max), rect: I, 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: o, text: this._textFormat(this.dataRangeOption.min), textX: K, textY: L, textFont: J, color: this.getColor(this.dataRangeOption.min), rect: G, x: o[0][0], y: o[0][1], _x: o[0][0], _y: o[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 y(this._startShape), this._endShape = new y(this._endShape), this.shapeList.push(this._startShape), this.shapeList.push(this._endShape) }, _bulidMask: function() { var a = this._calculableLocation.x, o = this._calculableLocation.y, l = this._calculableLocation.width, m = this._calculableLocation.height; this._startMask = { zlevel: this.getZlevelBase(), z: this.getZBase() + 1, style: { x: a, y: o, width: "horizontal" == this.dataRangeOption.orient ? 0 : l, height: "horizontal" == this.dataRangeOption.orient ? m : 0, color: "#ccc" }, hoverable: !1 }, this._endMask = { zlevel: this.getZlevelBase(), z: this.getZBase() + 1, style: { x: "horizontal" == this.dataRangeOption.orient ? a + l : a, y: "horizontal" == this.dataRangeOption.orient ? o : o + m, width: "horizontal" == this.dataRangeOption.orient ? 0 : l, height: "horizontal" == this.dataRangeOption.orient ? m : 0, color: "#ccc" }, hoverable: !1 }, this._startMask = new j(this._startMask), this._endMask = new j(this._endMask), this.shapeList.push(this._startMask), this.shapeList.push(this._endMask) }, _buildBackground: function() { var a = this.reformCssArray(this.dataRangeOption.padding); this.shapeList.push(new j({ zlevel: this.getZlevelBase(), z: this.getZBase(), hoverable: !1, style: { x: this._itemGroupLocation.x - a[3], y: this._itemGroupLocation.y - a[0], width: this._itemGroupLocation.width + a[3] + a[1], height: this._itemGroupLocation.height + a[0] + a[2], brushType: 0 === this.dataRangeOption.borderWidth ? "fill" : "both", color: this.dataRangeOption.backgroundColor, strokeColor: this.dataRangeOption.borderColor, lineWidth: this.dataRangeOption.borderWidth } })) }, _getItemGroupLocation: function() { var F = this._valueTextList, P = F.length, H = this.dataRangeOption.itemGap, K = this.dataRangeOption.itemWidth, C = this.dataRangeOption.itemHeight, L = 0, N = 0, O = this.getFont(this.dataRangeOption.textStyle), I = q.getTextHeight("国", O), J = 10; if ("horizontal" == this.dataRangeOption.orient) { if (this.dataRangeOption.text || this._isContinuity()) { L = (this._isContinuity() ? K * J + H : P * (K + H)) + (this.dataRangeOption.text && "undefined" != typeof this.dataRangeOption.text[0] ? q.getTextWidth(this.dataRangeOption.text[0], O) + this._textGap : 0) + (this.dataRangeOption.text && "undefined" != typeof this.dataRangeOption.text[1] ? q.getTextWidth(this.dataRangeOption.text[1], O) + this._textGap : 0) } else { K += 5; for (var S = 0; P > S; S++) { L += K + q.getTextWidth(F[S], O) + H } } L -= H, N = Math.max(I, C) } else { var R; if (this.dataRangeOption.text || this._isContinuity()) { N = (this._isContinuity() ? C * J + H : P * (C + H)) + (this.dataRangeOption.text && "undefined" != typeof this.dataRangeOption.text[0] ? this._textGap + I : 0) + (this.dataRangeOption.text && "undefined" != typeof this.dataRangeOption.text[1] ? this._textGap + I : 0), R = Math.max(q.getTextWidth(this.dataRangeOption.text && this.dataRangeOption.text[0] || "", O), q.getTextWidth(this.dataRangeOption.text && this.dataRangeOption.text[1] || "", O)), L = Math.max(K, R) } else { N = (C + H) * P, K += 5, R = 0; for (var S = 0; P > S; S++) { R = Math.max(R, q.getTextWidth(F[S], O)) } L = K + R } N -= H } var E, M = this.reformCssArray(this.dataRangeOption.padding), D = this.zr.getWidth(); switch (this.dataRangeOption.x) { case "center": E = Math.floor((D - L) / 2); break; case "left": E = M[3] + this.dataRangeOption.borderWidth; break; case "right": E = D - L - M[1] - this.dataRangeOption.borderWidth; break; default: E = this.parsePercent(this.dataRangeOption.x, D), E = isNaN(E) ? 0 : E } var Q, T = this.zr.getHeight(); switch (this.dataRangeOption.y) { case "top": Q = M[0] + this.dataRangeOption.borderWidth; break; case "bottom": Q = T - N - M[2] - this.dataRangeOption.borderWidth; break; case "center": Q = Math.floor((T - N) / 2); break; default: Q = this.parsePercent(this.dataRangeOption.y, T), Q = isNaN(Q) ? 0 : Q } if (this.dataRangeOption.calculable) { var G = Math.max(q.getTextWidth(this.dataRangeOption.max, O), q.getTextWidth(this.dataRangeOption.min, O)) + I; "horizontal" == this.dataRangeOption.orient ? (G > E && (E = G), E + L + G > D && (E -= G)) : (I > Q && (Q = I), Q + N + I > T && (Q -= I)) } return { x: E, y: Q, width: L, height: N } }, _getTextShape: function(a, m, l) { return { zlevel: this.getZlevelBase(), z: this.getZBase(), style: { x: "horizontal" == this.dataRangeOption.orient ? a : this._itemGroupLocation.x + this._itemGroupLocation.width / 2, y: "horizontal" == this.dataRangeOption.orient ? this._itemGroupLocation.y + this._itemGroupLocation.height / 2 : m, color: this.dataRangeOption.textStyle.color, text: l, textFont: this.getFont(this.dataRangeOption.textStyle), textBaseline: "horizontal" == this.dataRangeOption.orient ? "middle" : "top", textAlign: "horizontal" == this.dataRangeOption.orient ? "left" : "center" }, hoverable: !1 } }, _getItemShape: function(m, s, o, r, l) { return { zlevel: this.getZlevelBase(), z: this.getZBase(), style: { x: m, y: s + 1, width: o, height: r - 2, color: l }, highlightStyle: { strokeColor: l, lineWidth: 1 } } }, __ondrift: function(m, F, s) { var C = this._calculableLocation.x, l = this._calculableLocation.y, D = this._calculableLocation.width, E = this._calculableLocation.height; return "horizontal" == this.dataRangeOption.orient ? m.style.x + F <= C ? m.style.x = C : m.style.x + F + m.style.width >= C + D ? m.style.x = C + D - m.style.width : m.style.x += F : m.style.y + s <= l ? m.style.y = l : m.style.y + s + m.style.height >= l + E ? m.style.y = l + E - m.style.height : m.style.y += s, "filler" == m._type ? this._syncHandleShape() : this._syncFillerShape(m), this.dataRangeOption.realtime && this._dispatchDataRange(), !0 }, __ondragend: function() { this.isDragend = !0 }, ondragend: function(a, i) { this.isDragend && a.target && (i.dragOut = !0, i.dragIn = !0, this.dataRangeOption.realtime || this._dispatchDataRange(), i.needRefresh = !1, this.isDragend = !1) }, _syncShapeFromRange: function() { var m = this.dataRangeOption.range || {}, s = m.start, o = m.end; if (s > o && (s = [o, o = s][0]), this._range.end = null != s ? s : null != this._range.end ? this._range.end : 0, this._range.start = null != o ? o : null != this._range.start ? this._range.start : 100, 100 != this._range.start || 0 !== this._range.end) { if ("horizontal" == this.dataRangeOption.orient) { var r = this._fillerShape.style.width; this._fillerShape.style.x += r * (100 - this._range.start) / 100, this._fillerShape.style.width = r * (this._range.start - this._range.end) / 100 } else { var l = this._fillerShape.style.height; this._fillerShape.style.y += l * (100 - this._range.start) / 100, this._fillerShape.style.height = l * (this._range.start - this._range.end) / 100 } this.zr.modShape(this._fillerShape.id), this._syncHandleShape() } }, _syncHandleShape: function() { var a = this._calculableLocation.x, o = this._calculableLocation.y, l = this._calculableLocation.width, m = this._calculableLocation.height; "horizontal" == this.dataRangeOption.orient ? (this._startShape.style.x = this._fillerShape.style.x, this._startMask.style.width = this._startShape.style.x - a, this._endShape.style.x = this._fillerShape.style.x + this._fillerShape.style.width, this._endMask.style.x = this._endShape.style.x, this._endMask.style.width = a + l - this._endShape.style.x, this._range.start = Math.ceil(100 - (this._startShape.style.x - a) / l * 100), this._range.end = Math.floor(100 - (this._endShape.style.x - a) / l * 100)) : (this._startShape.style.y = this._fillerShape.style.y, this._startMask.style.height = this._startShape.style.y - o, this._endShape.style.y = this._fillerShape.style.y + this._fillerShape.style.height, this._endMask.style.y = this._endShape.style.y, this._endMask.style.height = o + m - this._endShape.style.y, this._range.start = Math.ceil(100 - (this._startShape.style.y - o) / m * 100), this._range.end = Math.floor(100 - (this._endShape.style.y - o) / m * 100)), this._syncShape() }, _syncFillerShape: function(m) { var F, s, C = this._calculableLocation.x, l = this._calculableLocation.y, D = this._calculableLocation.width, E = this._calculableLocation.height; "horizontal" == this.dataRangeOption.orient ? (F = this._startShape.style.x, s = this._endShape.style.x, m.id == this._startShape.id && F >= s ? (s = F, this._endShape.style.x = F) : m.id == this._endShape.id && F >= s && (F = s, this._startShape.style.x = F), this._fillerShape.style.x = F, this._fillerShape.style.width = s - F, this._startMask.style.width = F - C, this._endMask.style.x = s, this._endMask.style.width = C + D - s, this._range.start = Math.ceil(100 - (F - C) / D * 100), this._range.end = Math.floor(100 - (s - C) / D * 100)) : (F = this._startShape.style.y, s = this._endShape.style.y, m.id == this._startShape.id && F >= s ? (s = F, this._endShape.style.y = F) : m.id == this._endShape.id && F >= s && (F = s, this._startShape.style.y = F), this._fillerShape.style.y = F, this._fillerShape.style.height = s - F, this._startMask.style.height = F - l, this._endMask.style.y = s, this._endMask.style.height = l + E - s, this._range.start = Math.ceil(100 - (F - l) / E * 100), this._range.end = Math.floor(100 - (s - l) / E * 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(z.EVENT.DATA_RANGE, null, { range: { start: this._range.end, end: this._range.start } }, this.myChart) }, __dataRangeSelected: function(m) { if ("single" === this.dataRangeOption.selectedMode) { for (var s in this._selectedMap) { this._selectedMap[s] = !1 } } var o = m.target._idx; this._selectedMap[o] = !this._selectedMap[o]; var r, l; this._useCustomizedSplit() ? (r = this._splitList[o].max, l = this._splitList[o].min) : (r = (this._colorList.length - o) * this._gap + this.dataRangeOption.min, l = r - this._gap), this.messageCenter.dispatch(z.EVENT.DATA_RANGE_SELECTED, m.event, { selected: this._selectedMap, target: o, valueMax: r, valueMin: l }, this.myChart), this.messageCenter.dispatch(z.EVENT.REFRESH, null, null, this.myChart) }, __dispatchHoverLink: function(m) { var D, r; if (this.dataRangeOption.calculable) { var s, l = this.dataRangeOption.max - this.dataRangeOption.min; s = "horizontal" == this.dataRangeOption.orient ? (1 - (v.getX(m.event) - this._calculableLocation.x) / this._calculableLocation.width) * l : (1 - (v.getY(m.event) - this._calculableLocation.y) / this._calculableLocation.height) * l, D = s - 0.05 * l, r = s + 0.05 * l } else { if (this._useCustomizedSplit()) { var C = m.target._idx; r = this._splitList[C].max, D = this._splitList[C].min } else { var C = m.target._idx; r = (this._colorList.length - C) * this._gap + this.dataRangeOption.min, D = r - this._gap } } this.messageCenter.dispatch(z.EVENT.DATA_RANGE_HOVERLINK, m.event, { valueMin: D, valueMax: r }, this.myChart) }, __onhoverlink: function(a) { if (this.dataRangeOption.show && this.dataRangeOption.hoverLink && this._indicatorShape && a && null != a.seriesIndex && null != a.dataIndex) { var i = a.value; if ("" === i || isNaN(i)) { return } i < this.dataRangeOption.min ? i = this.dataRangeOption.min : i > this.dataRangeOption.max && (i = this.dataRangeOption.max), this._indicatorShape.position = "horizontal" == this.dataRangeOption.orient ? [(this.dataRangeOption.max - i) / (this.dataRangeOption.max - this.dataRangeOption.min) * this._calculableLocation.width, 0] : [0, (this.dataRangeOption.max - i) / (this.dataRangeOption.max - this.dataRangeOption.min) * this._calculableLocation.height], this._indicatorShape.style.text = this._textFormat(a.value), this._indicatorShape.style.color = this.getColor(i), this.zr.addHoverShape(this._indicatorShape) } }, _textFormat: function(a, m) { var l = this.dataRangeOption; if (a !== -Number.MAX_VALUE && (a = (+a).toFixed(l.precision)), null != m && m !== Number.MAX_VALUE && (m = (+m).toFixed(l.precision)), l.formatter) { if ("string" == typeof l.formatter) { return l.formatter.replace("{value}", a === -Number.MAX_VALUE ? "min" : a).replace("{value2}", m === Number.MAX_VALUE ? "max" : m) } if ("function" == typeof l.formatter) { return l.formatter.call(this.myChart, a, m) } } return null == m ? a : a === -Number.MAX_VALUE ? "< " + m : m === Number.MAX_VALUE ? "> " + a : a + " - " + m }, _isContinuity: function() { var a = this.dataRangeOption; return !(a.splitList ? a.splitList.length > 0 : a.splitNumber > 0) || a.calculable }, _useCustomizedSplit: function() { var a = this.dataRangeOption; return a.splitList && a.splitList.length > 0 }, _buildColorList: function(m) { if (this._colorList = w.getGradientColors(this.dataRangeOption.color, Math.max((m - this.dataRangeOption.color.length) / (this.dataRangeOption.color.length - 1), 0) + 1), this._colorList.length > m) { for (var D = this._colorList.length, r = [this._colorList[0]], s = D / (m - 1), l = 1; m - 1 > l; l++) { r.push(this._colorList[Math.floor(l * s)]) } r.push(this._colorList[D - 1]), this._colorList = r } if (this._useCustomizedSplit()) { for (var C = this._splitList, l = 0, D = C.length; D > l; l++) { C[l].color && (this._colorList[l] = C[l].color) } } }, _buildGap: function(a) { if (!this._useCustomizedSplit()) { var i = this.dataRangeOption.precision; for (this._gap = (this.dataRangeOption.max - this.dataRangeOption.min) / a; this._gap.toFixed(i) - 0 != this._gap && 5 > i;) { i++ } this.dataRangeOption.precision = i, this._gap = ((this.dataRangeOption.max - this.dataRangeOption.min) / a).toFixed(i) - 0 } }, _buildDataList: function(m) { for (var F = this._valueTextList = [], s = this.dataRangeOption, C = this._useCustomizedSplit(), l = 0; m > l; l++) { this._selectedMap[l] = !0; var D = ""; if (C) { var E = this._splitList[m - 1 - l]; D = null != E.label ? E.label : null != E.single ? this._textFormat(E.single) : this._textFormat(E.min, E.max) } else { D = this._textFormat(l * this._gap + s.min, (l + 1) * this._gap + s.min) } F.unshift(D) } }, _buildSplitList: function() { if (this._useCustomizedSplit()) { for (var m = this.dataRangeOption.splitList, D = this._splitList = [], r = 0, s = m.length; s > r; r++) { var l = m[r]; if (!l || null == l.start && null == l.end) { throw new Error("Empty item exists in splitList!") } var C = { label: l.label, color: l.color }; C.min = l.start, C.max = l.end, C.min > C.max && (C.min = [C.max, C.max = C.min][0]), C.min === C.max && (C.single = C.max), null == C.min && (C.min = -Number.MAX_VALUE), null == C.max && (C.max = Number.MAX_VALUE), D.push(C) } } }, refresh: function(a) { if (a) { this.option = a, this.option.dataRange = this.reformOption(this.option.dataRange); var m = this.dataRangeOption = this.option.dataRange; if (!this._useCustomizedSplit() && (null == m.min || null == m.max)) { throw new Error("option.dataRange.min or option.dataRange.max has not been defined.") } this.myChart.canvasSupported || (m.realtime = !1); var l = this._isContinuity() ? 100 : this._useCustomizedSplit() ? m.splitList.length : m.splitNumber; this._buildSplitList(), this._buildColorList(l), this._buildGap(l), this._buildDataList(l) } this.clear(), this._buildShape() }, getColor: function(m) { if (isNaN(m)) { return null } var s; if (this._useCustomizedSplit()) { for (var o = this._splitList, r = 0, l = o.length; l > r; r++) { if (o[r].min <= m && o[r].max >= m) { s = r; break } } } else { if (this.dataRangeOption.min == this.dataRangeOption.max) { return this._colorList[0] } if (m < this.dataRangeOption.min ? m = this.dataRangeOption.min : m > this.dataRangeOption.max && (m = this.dataRangeOption.max), this.dataRangeOption.calculable && (m - (this._gap * this._range.start + this.dataRangeOption.min) > 5e-05 || m - (this._gap * this._range.end + this.dataRangeOption.min) < -5e-05)) { return null } s = this._colorList.length - Math.ceil((m - this.dataRangeOption.min) / (this.dataRangeOption.max - this.dataRangeOption.min) * this._colorList.length), s == this._colorList.length && s-- } return this._selectedMap[s] ? this._colorList[s] : null }, getColorByIndex: function(a) { return a >= this._colorList.length ? a = this._colorList.length - 1 : 0 > a && (a = 0), this._colorList[a] }, onbeforDispose: function() { this.messageCenter.unbind(z.EVENT.HOVER, this._onhoverlink) } }, A.inherits(B, u), p("../component").define("dataRange", B), B }), d("echarts/util/shape/HandlePolygon", ["require", "zrender/shape/Base", "zrender/shape/Polygon", "zrender/tool/util"], function(l) { function p(a) { m.call(this, a) } var m = l("zrender/shape/Base"), o = l("zrender/shape/Polygon"), j = l("zrender/tool/util"); return p.prototype = { type: "handle-polygon", buildPath: function(a, i) { o.prototype.buildPath(a, i) }, isCover: function(a, s) { var q = this.transformCoordToLocal(a, s); a = q[0], s = q[1]; var r = this.style.rect; return a >= r.x && a <= r.x + r.width && s >= r.y && s <= r.y + r.height ? !0 : !1 } }, j.inherits(p, m), p }), d("echarts/chart/k", ["require", "./base", "../util/shape/Candle", "../component/axis", "../component/grid", "../component/dataZoom", "../config", "../util/ecData", "zrender/tool/util", "../chart"], function(l) { function u(r, x, v, i, w) { m.call(this, r, x, v, i, w), this.refresh(i) } var m = l("./base"), p = l("../util/shape/Candle"); l("../component/axis"), l("../component/grid"), l("../component/dataZoom"); var j = l("../config"); j.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 q = l("../util/ecData"), s = l("zrender/tool/util"); return u.prototype = { type: j.CHART_TYPE_K, _buildShape: function() { var a = this.series; this.selectedMap = {}; for (var z, v = { top: [], bottom: [] }, w = 0, x = a.length; x > w; w++) { a[w].type === j.CHART_TYPE_K && (a[w] = this.reformOption(a[w]), this.legendHoverLink = a[w].legendHoverLink || this.legendHoverLink, z = this.component.xAxis.getAxis(a[w].xAxisIndex), z.type === j.COMPONENT_TYPE_AXIS_CATEGORY && v[z.getPosition()].push(w)) } for (var y in v) { v[y].length > 0 && this._buildSinglePosition(y, v[y]) } this.addShapeList() }, _buildSinglePosition: function(w, B) { var x = this._mapData(B), y = x.locationMap, v = x.maxDataLength; if (0 !== v && 0 !== y.length) { this._buildHorizontal(B, v, y); for (var z = 0, A = B.length; A > z; z++) { this.buildMark(B[z]) } } }, _mapData: function(w) { for (var D, x, z = this.series, v = this.component.legend, A = [], B = 0, C = 0, y = w.length; y > C; C++) { D = z[w[C]], x = D.name, this.selectedMap[x] = v ? v.isSelected(x) : !0, this.selectedMap[x] && A.push(w[C]), B = Math.max(B, D.data.length) } return { locationMap: A, maxDataLength: B } }, _buildHorizontal: function(z, K, C) { for (var F, v, G, I, J, D, B, E, N, M, x = this.series, H = {}, w = 0, L = C.length; L > w; w++) { F = C[w], v = x[F], G = v.xAxisIndex || 0, I = this.component.xAxis.getAxis(G), B = v.barWidth || Math.floor(I.getGap() / 2), M = v.barMaxWidth, M && B > M && (B = M), J = v.yAxisIndex || 0, D = this.component.yAxis.getAxis(J), H[F] = []; for (var O = 0, A = K; A > O && null != I.getNameByIndex(O); O++) { E = v.data[O], N = this.getDataFromOption(E, "-"), "-" !== N && 4 == N.length && H[F].push([I.getCoordByIndex(O), B, D.getCoord(N[0]), D.getCoord(N[1]), D.getCoord(N[2]), D.getCoord(N[3]), O, I.getNameByIndex(O)]) } } this._buildKLine(z, H) }, _buildKLine: function(A, P) { for (var E, J, K, N, O, G, D, I, S, R, z, M, w, Q, W, C, v, B = this.series, F = 0, T = A.length; T > F; F++) { if (v = A[F], z = B[v], Q = P[v], this._isLarge(Q) && (Q = this._getLargePointList(Q)), z.type === j.CHART_TYPE_K && null != Q) { M = z, E = this.query(M, "itemStyle.normal.lineStyle.width"), J = this.query(M, "itemStyle.normal.lineStyle.color"), K = this.query(M, "itemStyle.normal.lineStyle.color0"), N = this.query(M, "itemStyle.normal.color"), O = this.query(M, "itemStyle.normal.color0"), G = this.query(M, "itemStyle.emphasis.lineStyle.width"), D = this.query(M, "itemStyle.emphasis.lineStyle.color"), I = this.query(M, "itemStyle.emphasis.lineStyle.color0"), S = this.query(M, "itemStyle.emphasis.color"), R = this.query(M, "itemStyle.emphasis.color0"); for (var a = 0, H = Q.length; H > a; a++) { W = Q[a], w = z.data[W[6]], M = w, C = W[3] < W[2], this.shapeList.push(this._getCandle(v, W[6], W[7], W[0], W[1], W[2], W[3], W[4], W[5], C ? this.query(M, "itemStyle.normal.color") || N : this.query(M, "itemStyle.normal.color0") || O, this.query(M, "itemStyle.normal.lineStyle.width") || E, C ? this.query(M, "itemStyle.normal.lineStyle.color") || J : this.query(M, "itemStyle.normal.lineStyle.color0") || K, C ? this.query(M, "itemStyle.emphasis.color") || S || N : this.query(M, "itemStyle.emphasis.color0") || R || O, this.query(M, "itemStyle.emphasis.lineStyle.width") || G || E, C ? this.query(M, "itemStyle.emphasis.lineStyle.color") || D || J : this.query(M, "itemStyle.emphasis.lineStyle.color0") || I || K)) } } } }, _isLarge: function(a) { return a[0][1] < 0.5 }, _getLargePointList: function(r) { for (var x = this.component.grid.getWidth(), v = r.length, w = [], o = 0; x > o; o++) { w[o] = r[Math.floor(v / x * o)] } return w }, _getCandle: function(x, J, C, n, H, I, E, B, F, M, L, w, G, v, K) { var N = this.series, A = N[x], o = A.data[J], z = [o, A], D = { zlevel: A.zlevel, z: A.z, clickable: this.deepQuery(z, "clickable"), hoverable: this.deepQuery(z, "hoverable"), style: { x: n, y: [I, E, B, F], width: H, color: M, strokeColor: w, lineWidth: L, brushType: "both" }, highlightStyle: { color: G, strokeColor: K, lineWidth: v }, _seriesIndex: x }; return D = this.addLabel(D, A, o, C), q.pack(D, A, x, o, J, C), D = new p(D) }, getMarkCoord: function(r, x) { var v = this.series[r], w = this.component.xAxis.getAxis(v.xAxisIndex), o = this.component.yAxis.getAxis(v.yAxisIndex); return ["string" != typeof x.xAxis && w.getCoordByIndex ? w.getCoordByIndex(x.xAxis || 0) : w.getCoord(x.xAxis || 0), "string" != typeof x.yAxis && o.getCoordByIndex ? o.getCoordByIndex(x.yAxis || 0) : o.getCoord(x.yAxis || 0)] }, refresh: function(a) { a && (this.option = a, this.series = a.series), this.backupShapeList(), this._buildShape() }, addDataAnimation: function(w, F) { function y() { C--, 0 === C && F && F() } for (var B = this.series, o = {}, D = 0, E = w.length; E > D; D++) { o[w[D][0]] = w[D] } for (var z, x, A, H, G, v, C = 0, D = 0, E = this.shapeList.length; E > D; D++) { if (G = this.shapeList[D]._seriesIndex, o[G] && !o[G][3] && "candle" === this.shapeList[D].type) { if (v = q.get(this.shapeList[D], "dataIndex"), H = B[G], o[G][2] && v === H.data.length - 1) { this.zr.delShape(this.shapeList[D].id); continue } if (!o[G][2] && 0 === v) { this.zr.delShape(this.shapeList[D].id); continue } x = this.component.xAxis.getAxis(H.xAxisIndex || 0).getGap(), z = o[G][2] ? x : -x, A = 0, C++, this.zr.animate(this.shapeList[D].id, "").when(this.query(this.option, "animationDurationUpdate"), { position: [z, A] }).done(y).start() } } C || F && F() } }, s.inherits(u, m), l("../chart").define("k", u), u }), d("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(p) { function B(l, F, m, i, s) { u.call(this, l, F, m, i, s); var E = this; E.shapeHandler.onmouseover = function(H) { var O = H.target, I = q.get(O, "seriesIndex"), L = q.get(O, "dataIndex"), r = q.get(O, "special"), M = [O.style.x, O.style.y], N = O.style.startAngle, J = O.style.endAngle, K = ((J + N) / 2 + 360) % 360, Q = O.highlightStyle.color, P = E.getLabel(I, L, r, M, K, Q, !0); P && E.zr.addHoverShape(P); var G = E.getLabelLine(I, L, M, O.style.r0, O.style.r, K, Q, !0); G && E.zr.addHoverShape(G) }, this.refresh(i) } var u = p("./base"), x = p("zrender/shape/Text"), j = p("zrender/shape/Ring"), y = p("zrender/shape/Circle"), z = p("zrender/shape/Sector"), A = p("zrender/shape/Polyline"), v = p("../config"); v.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 q = p("../util/ecData"), w = p("zrender/tool/util"), D = p("zrender/tool/math"), C = p("zrender/tool/color"); return B.prototype = { type: v.CHART_TYPE_PIE, _buildShape: function() { var a = this.series, H = this.component.legend; this.selectedMap = {}, this._selected = {}; var l, E, F; this._selectedMode = !1; for (var G, o = 0, I = a.length; I > o; o++) { if (a[o].type === v.CHART_TYPE_PIE) { if (a[o] = this.reformOption(a[o]), this.legendHoverLink = a[o].legendHoverLink || this.legendHoverLink, G = a[o].name || "", this.selectedMap[G] = H ? H.isSelected(G) : !0, !this.selectedMap[G]) { continue } l = this.parseCenter(this.zr, a[o].center), E = this.parseRadius(this.zr, a[o].radius), this._selectedMode = this._selectedMode || a[o].selectedMode, this._selected[o] = [], this.deepQuery([a[o], this.option], "calculable") && (F = { zlevel: a[o].zlevel, z: a[o].z, hoverable: !1, style: { x: l[0], y: l[1], r0: E[0] <= 10 ? 0 : E[0] - 10, r: E[1] + 10, brushType: "stroke", lineWidth: 1, strokeColor: a[o].calculableHolderColor || this.ecTheme.calculableHolderColor || v.calculableHolderColor } }, q.pack(F, a[o], o, void 0, -1), this.setCalculable(F), F = E[0] <= 10 ? new y(F) : new j(F), this.shapeList.push(F)), this._buildSinglePie(o), this.buildMark(o) } } this.addShapeList() }, _buildSinglePie: function(J) { for (var ab, O = this.series, T = O[J], F = T.data, X = this.component.legend, Z = 0, aa = 0, Q = 0, N = Number.NEGATIVE_INFINITY, S = [], ae = 0, ad = F.length; ad > ae; ae++) { ab = F[ae].name, this.selectedMap[ab] = X ? X.isSelected(ab) : !0, this.selectedMap[ab] && !isNaN(F[ae].value) && (0 !== +F[ae].value ? Z++ : aa++, Q += +F[ae].value, N = Math.max(N, +F[ae].value)) } if (0 !== Q) { for (var I, Y, H, ac, ah, M, G = 100, K = T.clockWise, P = (T.startAngle.toFixed(2) - 0 + 360) % 360, ag = T.minAngle || 0.01, E = 360 - ag * Z - 0.01 * aa, R = T.roseType, ae = 0, ad = F.length; ad > ae; ae++) { if (ab = F[ae].name, this.selectedMap[ab] && !isNaN(F[ae].value)) { if (Y = X ? X.getColor(ab) : this.zr.getColor(ae), G = F[ae].value / Q, I = "area" != R ? K ? P - G * E - (0 !== G ? ag : 0.01) : G * E + P + (0 !== G ? ag : 0.01) : K ? P - 360 / ad : 360 / ad + P, I = I.toFixed(2) - 0, G = (100 * G).toFixed(2), H = this.parseCenter(this.zr, T.center), ac = this.parseRadius(this.zr, T.radius), ah = +ac[0], M = +ac[1], "radius" === R ? M = F[ae].value / N * (M - ah) * 0.8 + 0.2 * (M - ah) + ah : "area" === R && (M = Math.sqrt(F[ae].value / N) * (M - ah) + ah), K) { var af; af = P, P = I, I = af } this._buildItem(S, J, ae, G, F[ae].selected, H, ah, M, P, I, Y), K || (P = I) } } this._autoLabelLayout(S, H, M); for (var ae = 0, ad = S.length; ad > ae; ae++) { this.shapeList.push(S[ae]) } S = null } }, _buildItem: function(H, Q, I, L, E, M, O, P, J, K, T) { var S = this.series, G = ((K + J) / 2 + 360) % 360, N = this.getSector(Q, I, L, E, M, O, P, J, K, T); q.pack(N, S[Q], Q, S[Q].data[I], I, S[Q].data[I].name, L), H.push(N); var F = this.getLabel(Q, I, L, M, G, T, !1), R = this.getLabelLine(Q, I, M, O, P, G, T, !1); R && (q.pack(R, S[Q], Q, S[Q].data[I], I, S[Q].data[I].name, L), H.push(R)), F && (q.pack(F, S[Q], Q, S[Q].data[I], I, S[Q].data[I].name, L), F._labelLine = R, H.push(F)) }, getSector: function(I, U, M, Q, E, R, T, O, L, P) { var H = this.series, S = H[I], G = S.data[U], V = [G, S], X = this.deepMerge(V, "itemStyle.normal") || {}, K = this.deepMerge(V, "itemStyle.emphasis") || {}, F = this.getItemStyleColor(X.color, I, U, G) || P, J = this.getItemStyleColor(K.color, I, U, G) || ("string" == typeof F ? C.lift(F, -0.2) : F), N = { zlevel: S.zlevel, z: S.z, clickable: this.deepQuery(V, "clickable"), style: { x: E[0], y: E[1], r0: R, r: T, startAngle: O, endAngle: L, brushType: "both", color: F, lineWidth: X.borderWidth, strokeColor: X.borderColor, lineJoin: "round" }, highlightStyle: { color: J, lineWidth: K.borderWidth, strokeColor: K.borderColor, lineJoin: "round" }, _seriesIndex: I, _dataIndex: U }; if (Q) { var W = ((N.style.startAngle + N.style.endAngle) / 2).toFixed(2) - 0; N.style._hasSelected = !0, N.style._x = N.style.x, N.style._y = N.style.y; var r = this.query(S, "selectedOffset"); N.style.x += D.cos(W, !0) * r, N.style.y -= D.sin(W, !0) * r, this._selected[I][U] = !0 } else { this._selected[I][U] = !1 } return this._selectedMode && (N.onclick = this.shapeHandler.onclick), this.deepQuery([G, S, this.option], "calculable") && (this.setCalculable(N), N.draggable = !0), (this._needLabel(S, G, !0) || this._needLabelLine(S, G, !0)) && (N.onmouseover = this.shapeHandler.onmouseover), N = new z(N) }, getLabel: function(H, V, M, n, Q, S, T) { var O = this.series, K = O[H], X = K.data[V]; if (this._needLabel(K, X, T)) { var G, R, F, W = T ? "emphasis" : "normal", Z = w.merge(w.clone(X.itemStyle) || {}, K.itemStyle), J = Z[W].label, E = J.textStyle || {}, I = n[0], N = n[1], Y = this.parseRadius(this.zr, K.radius), m = "middle"; J.position = J.position || Z.normal.label.position, "center" === J.position ? (G = I, R = N, F = "center") : "inner" === J.position || "inside" === J.position ? (Y = (Y[0] + Y[1]) * (J.distance || 0.5), G = Math.round(I + Y * D.cos(Q, !0)), R = Math.round(N - Y * D.sin(Q, !0)), S = "#fff", F = "center") : (Y = Y[1] - -Z[W].labelLine.length, G = Math.round(I + Y * D.cos(Q, !0)), R = Math.round(N - Y * D.sin(Q, !0)), F = Q >= 90 && 270 >= Q ? "right" : "left"), "center" != J.position && "inner" != J.position && "inside" != J.position && (G += "left" === F ? 20 : -20), X.__labelX = G - ("left" === F ? 5 : -5), X.__labelY = R; var P = new x({ zlevel: K.zlevel, z: K.z + 1, hoverable: !1, style: { x: G, y: R, color: E.color || S, text: this.getLabelText(H, V, M, W), textAlign: E.align || F, textBaseline: E.baseline || m, textFont: this.getFont(E) }, highlightStyle: { brushType: "fill" } }); return P._radius = Y, P._labelPosition = J.position || "outer", P._rect = P.getRect(P.style), P._seriesIndex = H, P._dataIndex = V, P } }, getLabelText: function(m, J, E, F) { var l = this.series, G = l[m], H = G.data[J], I = this.deepQuery([H, G], "itemStyle." + F + ".label.formatter"); return I ? "function" == typeof I ? I.call(this.myChart, { seriesIndex: m, seriesName: G.name || "", series: G, dataIndex: J, data: H, name: H.name, value: H.value, percent: E }) : "string" == typeof I ? (I = I.replace("{a}", "{a0}").replace("{b}", "{b0}").replace("{c}", "{c0}").replace("{d}", "{d0}"), I = I.replace("{a0}", G.name).replace("{b0}", H.name).replace("{c0}", H.value).replace("{d0}", E)) : void 0 : H.name }, getLabelLine: function(H, S, L, O, s, P, R, N) { var K = this.series, V = K[H], G = V.data[S]; if (this._needLabelLine(V, G, N)) { var Q = N ? "emphasis" : "normal", F = w.merge(w.clone(G.itemStyle) || {}, V.itemStyle), T = F[Q].labelLine, X = T.lineStyle || {}, J = L[0], E = L[1], I = s, M = this.parseRadius(this.zr, V.radius)[1] - -T.length, W = D.cos(P, !0), m = D.sin(P, !0); return new A({ zlevel: V.zlevel, z: V.z + 1, hoverable: !1, style: { pointList: [ [J + I * W, E - I * m], [J + M * W, E - M * m], [G.__labelX, G.__labelY] ], strokeColor: X.color || R, lineType: X.type, lineWidth: X.width }, _seriesIndex: H, _dataIndex: S }) } }, _needLabel: function(a, m, l) { return this.deepQuery([m, a], "itemStyle." + (l ? "emphasis" : "normal") + ".label.show") }, _needLabelLine: function(a, m, l) { return this.deepQuery([m, a], "itemStyle." + (l ? "emphasis" : "normal") + ".labelLine.show") }, _autoLabelLayout: function(m, H, s) { for (var E = [], l = [], F = 0, G = m.length; G > F; F++) { ("outer" === m[F]._labelPosition || "outside" === m[F]._labelPosition) && (m[F]._rect._y = m[F]._rect.y, m[F]._rect.x < H[0] ? E.push(m[F]) : l.push(m[F])) } this._layoutCalculate(E, H, s, -1), this._layoutCalculate(l, H, s, 1) }, _layoutCalculate: function(F, O, H, K) { function E(o, l, m) { for (var e = o; l > e; e++) { if (F[e]._rect.y += m, F[e].style.y += m, F[e]._labelLine && (F[e]._labelLine.style.pointList[1][1] += m, F[e]._labelLine.style.pointList[2][1] += m), e > o && l > e + 1 && F[e + 1]._rect.y > F[e]._rect.y + F[e]._rect.height) { return void L(e, m / 2) } } L(l - 1, m / 2) } function L(l, a) { for (var e = l; e >= 0 && (F[e]._rect.y -= a, F[e].style.y -= a, F[e]._labelLine && (F[e]._labelLine.style.pointList[1][1] -= a, F[e]._labelLine.style.pointList[2][1] -= a), !(e > 0 && F[e]._rect.y > F[e - 1]._rect.y + F[e - 1]._rect.height)); e--) {} } function M(S, ad, W, Z, R) { for (var aa, ab, ac, X = W[0], T = W[1], Y = R > 0 ? ad ? Number.MAX_VALUE : 0 : ad ? Number.MAX_VALUE : 0, af = 0, ae = S.length; ae > af; af++) { ab = Math.abs(S[af]._rect.y - T), ac = S[af]._radius - Z, aa = Z + ac > ab ? Math.sqrt((Z + ac + 20) * (Z + ac + 20) - Math.pow(S[af]._rect.y - T, 2)) : Math.abs(S[af]._rect.x + (R > 0 ? 0 : S[af]._rect.width) - X), ad && aa >= Y && (aa = Y - 10), !ad && Y >= aa && (aa = Y + 10), S[af]._rect.x = S[af].style.x = X + aa * R, S[af]._labelLine && (S[af]._labelLine.style.pointList[2][0] = X + (aa - 5) * R, S[af]._labelLine.style.pointList[1][0] = X + (aa - 20) * R), Y = aa } } F.sort(function(a, i) { return a._rect.y - i._rect.y }); for (var N, I = 0, G = F.length, J = [], Q = [], P = 0; G > P; P++) { N = F[P]._rect.y - I, 0 > N && E(P, G, -N, K), I = F[P]._rect.y + F[P]._rect.height } this.zr.getHeight() - I < 0 && L(G - 1, I - this.zr.getHeight()); for (var P = 0; G > P; P++) { F[P]._rect.y >= O[1] ? Q.push(F[P]) : J.push(F[P]) } M(Q, !0, O, H, K), M(J, !1, O, H, K) }, reformOption: function(a) { var i = w.merge; return a = i(i(a || {}, w.clone(this.ecTheme.pie || {})), w.clone(v.pie)), a.itemStyle.normal.label.textStyle = this.getTextStyle(a.itemStyle.normal.label.textStyle), a.itemStyle.emphasis.label.textStyle = this.getTextStyle(a.itemStyle.emphasis.label.textStyle), this.z = a.z, this.zlevel = a.zlevel, a }, refresh: function(a) { a && (this.option = a, this.series = a.series), this.backupShapeList(), this._buildShape() }, addDataAnimation: function(H, R) { function K() { Q--, 0 === Q && R && R() } for (var M = this.series, l = {}, N = 0, P = H.length; P > N; N++) { l[H[N][0]] = H[N] } var Q = 0, J = {}, L = {}, W = {}, T = this.shapeList; this.shapeList = []; for (var G, O, F, S = {}, N = 0, P = H.length; P > N; N++) { G = H[N][0], O = H[N][2], F = H[N][3], M[G] && M[G].type === v.CHART_TYPE_PIE && (O ? (F || (J[G + "_" + M[G].data.length] = "delete"), S[G] = 1) : F ? S[G] = 0 : (J[G + "_-1"] = "delete", S[G] = -1), this._buildSinglePie(G)) } for (var X, I, N = 0, P = this.shapeList.length; P > N; N++) { switch (G = this.shapeList[N]._seriesIndex, X = this.shapeList[N]._dataIndex, I = G + "_" + X, this.shapeList[N].type) { case "sector": J[I] = this.shapeList[N]; break; case "text": L[I] = this.shapeList[N]; break; case "polyline": W[I] = this.shapeList[N] } } this.shapeList = []; for (var E, N = 0, P = T.length; P > N; N++) { if (G = T[N]._seriesIndex, l[G]) { if (X = T[N]._dataIndex + S[G], I = G + "_" + X, E = J[I], !E) { continue } if ("sector" === T[N].type) { "delete" != E ? (Q++, this.zr.animate(T[N].id, "style").when(400, { startAngle: E.style.startAngle, endAngle: E.style.endAngle }).done(K).start()) : (Q++, this.zr.animate(T[N].id, "style").when(400, S[G] < 0 ? { startAngle: T[N].style.startAngle } : { endAngle: T[N].style.endAngle }).done(K).start()) } else { if ("text" === T[N].type || "polyline" === T[N].type) { if ("delete" === E) { this.zr.delShape(T[N].id) } else { switch (T[N].type) { case "text": Q++, E = L[I], this.zr.animate(T[N].id, "style").when(400, { x: E.style.x, y: E.style.y }).done(K).start(); break; case "polyline": Q++, E = W[I], this.zr.animate(T[N].id, "style").when(400, { pointList: E.style.pointList }).done(K).start() } } } } } } this.shapeList = T, Q || R && R() }, onclick: function(E) { var L = this.series; if (this.isClick && E.target) { this.isClick = !1; for (var F, H = E.target, l = H.style, I = q.get(H, "seriesIndex"), J = q.get(H, "dataIndex"), K = 0, G = this.shapeList.length; G > K; K++) { if (this.shapeList[K].id === H.id) { if (I = q.get(H, "seriesIndex"), J = q.get(H, "dataIndex"), l._hasSelected) { H.style.x = H.style._x, H.style.y = H.style._y, H.style._hasSelected = !1, this._selected[I][J] = !1 } else { var M = ((l.startAngle + l.endAngle) / 2).toFixed(2) - 0; H.style._hasSelected = !0, this._selected[I][J] = !0, H.style._x = H.style.x, H.style._y = H.style.y, F = this.query(L[I], "selectedOffset"), H.style.x += D.cos(M, !0) * F, H.style.y -= D.sin(M, !0) * F } this.zr.modShape(H.id) } else { this.shapeList[K].style._hasSelected && "single" === this._selectedMode && (I = q.get(this.shapeList[K], "seriesIndex"), J = q.get(this.shapeList[K], "dataIndex"), this.shapeList[K].style.x = this.shapeList[K].style._x, this.shapeList[K].style.y = this.shapeList[K].style._y, this.shapeList[K].style._hasSelected = !1, this._selected[I][J] = !1, this.zr.modShape(this.shapeList[K].id)) } } this.messageCenter.dispatch(v.EVENT.PIE_SELECTED, E.event, { selected: this._selected, target: q.get(H, "name") }, this.myChart), this.zr.refreshNextFrame() } } }, w.inherits(B, u), p("../chart").define("pie", B), B }), d("echarts/chart/radar", ["require", "./base", "zrender/shape/Polygon", "../component/polar", "../config", "../util/ecData", "zrender/tool/util", "zrender/tool/color", "../util/accMath", "../chart"], function(l) { function w(r, y, s, i, x) { m.call(this, r, y, s, i, x), this.refresh(i) } var m = l("./base"), p = l("zrender/shape/Polygon"); l("../component/polar"); var j = l("../config"); j.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 q = l("../util/ecData"), u = l("zrender/tool/util"), v = l("zrender/tool/color"); return w.prototype = { type: j.CHART_TYPE_RADAR, _buildShape: function() { this.selectedMap = {}, this._symbol = this.option.symbolList, this._queryTarget, this._dropBoxList = [], this._radarDataCounter = 0; for (var a, y = this.series, r = this.component.legend, s = 0, x = y.length; x > s; s++) { y[s].type === j.CHART_TYPE_RADAR && (this.serie = this.reformOption(y[s]), this.legendHoverLink = y[s].legendHoverLink || this.legendHoverLink, a = this.serie.name || "", this.selectedMap[a] = r ? r.isSelected(a) : !0, this.selectedMap[a] && (this._queryTarget = [this.serie, this.option], this.deepQuery(this._queryTarget, "calculable") && this._addDropBox(s), this._buildSingleRadar(s), this.buildMark(s))) } this.addShapeList() }, _buildSingleRadar: function(y) { for (var F, z, B, x, C = this.component.legend, D = this.serie.data, E = this.deepQuery(this._queryTarget, "calculable"), A = 0; A < D.length; A++) { B = D[A].name || "", this.selectedMap[B] = C ? C.isSelected(B) : !0, this.selectedMap[B] && (C ? (z = C.getColor(B), F = C.getItemShape(B), F && (F.style.brushType = this.deepQuery([D[A], this.serie], "itemStyle.normal.areaStyle") ? "both" : "stroke", C.setItemShape(B, F))) : z = this.zr.getColor(A), x = this._getPointList(this.serie.polarIndex, D[A]), this._addSymbol(x, z, A, y, this.serie.polarIndex), this._addDataShape(x, z, D[A], y, A, E), this._radarDataCounter++) } }, _getPointList: function(y, E) { for (var z, A, x = [], B = this.component.polar, C = 0, D = E.value.length; D > C; C++) { A = this.getDataFromOption(E.value[C]), z = "-" != A ? B.getVector(y, C, A) : !1, z && x.push(z) } return x }, _addSymbol: function(x, F, z, C, o) { for (var D, E = this.series, A = this.component.polar, y = 0, B = x.length; B > y; y++) { D = this.getSymbolShape(this.deepMerge([E[C].data[z], E[C]]), C, E[C].data[z].value[y], y, A.getIndicatorText(o, y), x[y][0], x[y][1], this._symbol[this._radarDataCounter % this._symbol.length], F, "#fff", "vertical"), D.zlevel = this.getZlevelBase(), D.z = this.getZBase() + 1, q.set(D, "data", E[C].data[z]), q.set(D, "value", E[C].data[z].value), q.set(D, "dataIndex", z), q.set(D, "special", y), this.shapeList.push(D) } }, _addDataShape: function(x, E, z, n, D, A) { var y = this.series, B = [z, this.serie], H = this.getItemStyleColor(this.deepQuery(B, "itemStyle.normal.color"), n, D, z), G = this.deepQuery(B, "itemStyle.normal.lineStyle.width"), s = this.deepQuery(B, "itemStyle.normal.lineStyle.type"), C = this.deepQuery(B, "itemStyle.normal.areaStyle.color"), o = this.deepQuery(B, "itemStyle.normal.areaStyle"), F = { zlevel: this.getZlevelBase(), z: this.getZBase(), style: { pointList: x, brushType: o ? "both" : "stroke", color: C || H || ("string" == typeof E ? v.alpha(E, 0.5) : E), strokeColor: H || E, lineWidth: G, lineType: s }, highlightStyle: { brushType: this.deepQuery(B, "itemStyle.emphasis.areaStyle") || o ? "both" : "stroke", color: this.deepQuery(B, "itemStyle.emphasis.areaStyle.color") || C || H || ("string" == typeof E ? v.alpha(E, 0.5) : E), strokeColor: this.getItemStyleColor(this.deepQuery(B, "itemStyle.emphasis.color"), n, D, z) || H || E, lineWidth: this.deepQuery(B, "itemStyle.emphasis.lineStyle.width") || G, lineType: this.deepQuery(B, "itemStyle.emphasis.lineStyle.type") || s } }; q.pack(F, y[n], n, z, D, z.name, this.component.polar.getIndicator(y[n].polarIndex)), A && (F.draggable = !0, this.setCalculable(F)), F = new p(F), this.shapeList.push(F) }, _addDropBox: function(a) { var s = this.series, o = this.deepQuery(this._queryTarget, "polarIndex"); if (!this._dropBoxList[o]) { var r = this.component.polar.getDropBox(o); r.zlevel = this.getZlevelBase(), r.z = this.getZBase(), this.setCalculable(r), q.pack(r, s, a, void 0, -1), this.shapeList.push(r), this._dropBoxList[o] = !0 } }, ondragend: function(s, A) { var x = this.series; if (this.isDragend && s.target) { var y = s.target, o = q.get(y, "seriesIndex"), z = q.get(y, "dataIndex"); this.component.legend && this.component.legend.del(x[o].data[z].name), x[o].data.splice(z, 1), A.dragOut = !0, A.needRefresh = !0, this.isDragend = !1 } }, ondrop: function(E, y) { var B = this.series; if (this.isDrop && E.target) { var e, C, D = E.target, z = E.dragged, x = q.get(D, "seriesIndex"), A = q.get(D, "dataIndex"), G = this.component.legend; if (-1 === A) { e = { value: q.get(z, "value"), name: q.get(z, "name") }, B[x].data.push(e), G && G.add(e.name, z.style.color || z.style.strokeColor) } else { var F = l("../util/accMath"); e = B[x].data[A], G && G.del(e.name), e.name += this.option.nameConnector + q.get(z, "name"), C = q.get(z, "value"); for (var o = 0; o < C.length; o++) { e.value[o] = F.accAdd(e.value[o], C[o]) } G && G.add(e.name, z.style.color || z.style.strokeColor) } y.dragIn = y.dragIn || !0, this.isDrop = !1 } }, refresh: function(a) { a && (this.option = a, this.series = a.series), this.backupShapeList(), this._buildShape() } }, u.inherits(w, m), l("../chart").define("radar", w), w }), d("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(p) { function B(l, s, m, i, r) { u.call(this, l, s, m, i, r), this.refresh(i) } var u = p("./base"), x = p("zrender/shape/Text"), j = p("zrender/shape/Line"), y = p("zrender/shape/Polygon"), z = p("zrender/shape/Circle"), A = p("zrender/shape/Ring"), v = p("../config"); v.polar = { zlevel: 0, z: 0, center: ["50%", "50%"], radius: "75%", startAngle: 90, boundaryGap: [0, 0], splitNumber: 5, name: { show: !0, textStyle: { color: "#333" } }, axisLine: { show: !0, lineStyle: { color: "#ccc", width: 1, type: "solid" } }, axisLabel: { show: !1, textStyle: { color: "#333" } }, splitArea: { show: !0, areaStyle: { color: ["rgba(250,250,250,0.3)", "rgba(200,200,200,0.3)"] } }, splitLine: { show: !0, lineStyle: { width: 1, color: "#ccc" } }, type: "polygon" }; var q = p("zrender/tool/util"), w = p("../util/coordinates"); return B.prototype = { type: v.COMPONENT_TYPE_POLAR, _buildShape: function() { for (var a = 0; a < this.polar.length; a++) { this._index = a, this.reformOption(this.polar[a]), this._queryTarget = [this.polar[a], this.option], this._createVector(a), this._buildSpiderWeb(a), this._buildText(a), this._adjustIndicatorValue(a), this._addAxisLabel(a) } for (var a = 0; a < this.shapeList.length; a++) { this.zr.addShape(this.shapeList[a]) } }, _createVector: function(C) { for (var K, E = this.polar[C], G = this.deepQuery(this._queryTarget, "indicator"), m = G.length, H = E.startAngle, I = 2 * Math.PI / m, J = this._getRadius(), F = E.__ecIndicator = [], D = 0; m > D; D++) { K = w.polar2cartesian(J, H * Math.PI / 180 + I * D), F.push({ vector: [K[1], -K[0]] }) } }, _getRadius: function() { var a = this.polar[this._index]; return this.parsePercent(a.radius, Math.min(this.zr.getWidth(), this.zr.getHeight()) / 2) }, _buildSpiderWeb: function(D) { var M = this.polar[D], F = M.__ecIndicator, I = M.splitArea, C = M.splitLine, J = this.getCenter(D), K = M.splitNumber, L = C.lineStyle.color, G = C.lineStyle.width, E = C.show, H = this.deepQuery(this._queryTarget, "axisLine"); this._addArea(F, K, J, I, L, G, E), H.show && this._addLine(F, J, H) }, _addAxisLabel: function(O) { for (var G, e, K, M, e, N, I, J, R, Q, D = p("../util/accMath"), L = this.polar[O], C = this.deepQuery(this._queryTarget, "indicator"), P = L.__ecIndicator, T = this.deepQuery(this._queryTarget, "splitNumber"), F = this.getCenter(O), n = 0; n < C.length; n++) { if (G = this.deepQuery([C[n], L, this.option], "axisLabel"), G.show) { var E = this.deepQuery([G, L, this.option], "textStyle"), H = this.deepQuery([G, L], "formatter"); if (K = {}, K.textFont = this.getFont(E), K.color = E.color, K = q.merge(K, G), K.lineWidth = K.width, e = P[n].vector, N = P[n].value, J = n / C.length * 2 * Math.PI, R = G.offset || 10, Q = G.interval || 0, !N) { return } for (var S = 1; T >= S; S += Q + 1) { M = q.merge({}, K), I = D.accAdd(N.min, D.accMul(N.step, S)), I = "function" == typeof H ? H(I) : "string" == typeof H ? H.replace("{a}", "{a0}").replace("{a0}", I) : this.numAddCommas(I), M.text = I, M.x = S * e[0] / T + Math.cos(J) * R + F[0], M.y = S * e[1] / T + Math.sin(J) * R + F[1], this.shapeList.push(new x({ zlevel: this.getZlevelBase(), z: this.getZBase(), style: M, draggable: !1, hoverable: !1 })) } } } }, _buildText: function(E) { for (var N, G, n, J, L, M, H, F = this.polar[E], I = F.__ecIndicator, P = this.deepQuery(this._queryTarget, "indicator"), O = this.getCenter(E), D = 0, K = 0, C = 0; C < P.length; C++) { J = this.deepQuery([P[C], F, this.option], "name"), J.show && (H = this.deepQuery([J, F, this.option], "textStyle"), G = {}, G.textFont = this.getFont(H), G.color = H.color, G.text = "function" == typeof J.formatter ? J.formatter.call(this.myChart, P[C].text, C) : "string" == typeof J.formatter ? J.formatter.replace("{value}", P[C].text) : P[C].text, I[C].text = G.text, N = I[C].vector, n = Math.round(N[0]) > 0 ? "left" : Math.round(N[0]) < 0 ? "right" : "center", null == J.margin ? N = this._mapVector(N, O, 1.1) : (M = J.margin, D = N[0] > 0 ? M : -M, K = N[1] > 0 ? M : -M, D = 0 === N[0] ? 0 : D, K = 0 === N[1] ? 0 : K, N = this._mapVector(N, O, 1)), G.textAlign = n, G.x = N[0] + D, G.y = N[1] + K, L = J.rotate ? [J.rotate / 180 * Math.PI, N[0], N[1]] : [0, 0, 0], this.shapeList.push(new x({ zlevel: this.getZlevelBase(), z: this.getZBase(), style: G, draggable: !1, hoverable: !1, rotation: L }))) } }, getIndicatorText: function(a, i) { return this.polar[a] && this.polar[a].__ecIndicator[i] && this.polar[a].__ecIndicator[i].text }, getDropBox: function(C) { var K, E, C = C || 0, G = this.polar[C], m = this.getCenter(C), H = G.__ecIndicator, I = H.length, J = [], F = G.type; if ("polygon" == F) { for (var D = 0; I > D; D++) { K = H[D].vector, J.push(this._mapVector(K, m, 1.2)) } E = this._getShape(J, "fill", "rgba(0,0,0,0)", "", 1) } else { "circle" == F && (E = this._getCircle("", 1, 1.2, m, "fill", "rgba(0,0,0,0)")) } return E }, _addArea: function(D, M, F, I, C, J, K) { for (var L, G, E, H, O = this.deepQuery(this._queryTarget, "type"), N = 0; M > N; N++) { G = (M - N) / M, K && ("polygon" == O ? (H = this._getPointList(D, G, F), L = this._getShape(H, "stroke", "", C, J)) : "circle" == O && (L = this._getCircle(C, J, G, F, "stroke")), this.shapeList.push(L)), I.show && (E = (M - N - 1) / M, this._addSplitArea(D, I, G, E, F, N)) } }, _getCircle: function(m, F, r, C, l, D) { var E = this._getRadius(); return new z({ zlevel: this.getZlevelBase(), z: this.getZBase(), style: { x: C[0], y: C[1], r: E * r, brushType: l, strokeColor: m, lineWidth: F, color: D }, hoverable: !1, draggable: !1 }) }, _getRing: function(m, s, o, r) { var l = this._getRadius(); return new A({ zlevel: this.getZlevelBase(), z: this.getZBase(), style: { x: r[0], y: r[1], r: s * l, r0: o * l, color: m, brushType: "fill" }, hoverable: !1, draggable: !1 }) }, _getPointList: function(m, F, s) { for (var C, l = [], D = m.length, E = 0; D > E; E++) { C = m[E].vector, l.push(this._mapVector(C, s, F)) } return l }, _getShape: function(m, s, o, r, l) { return new y({ zlevel: this.getZlevelBase(), z: this.getZBase(), style: { pointList: m, brushType: s, color: o, strokeColor: r, lineWidth: l }, hoverable: !1, draggable: !1 }) }, _addSplitArea: function(F, P, H, K, C, L) { var N, O, I, G, J, R = F.length, Q = P.areaStyle.color, E = [], R = F.length, M = this.deepQuery(this._queryTarget, "type"); if ("string" == typeof Q && (Q = [Q]), O = Q.length, N = Q[L % O], "polygon" == M) { for (var D = 0; R > D; D++) { E = [], I = F[D].vector, G = F[(D + 1) % R].vector, E.push(this._mapVector(I, C, H)), E.push(this._mapVector(I, C, K)), E.push(this._mapVector(G, C, K)), E.push(this._mapVector(G, C, H)), J = this._getShape(E, "fill", N, "", 1), this.shapeList.push(J) } } else { "circle" == M && (J = this._getRing(N, H, K, C), this.shapeList.push(J)) } }, _mapVector: function(a, m, l) { return [a[0] * l + m[0], a[1] * l + m[1]] }, getCenter: function(a) { var a = a || 0; return this.parseCenter(this.zr, this.polar[a].center) }, _addLine: function(D, M, F) { for (var I, C, J = D.length, K = F.lineStyle, L = K.color, G = K.width, E = K.type, H = 0; J > H; H++) { C = D[H].vector, I = this._getLine(M[0], M[1], C[0] + M[0], C[1] + M[1], L, G, E), this.shapeList.push(I) } }, _getLine: function(a, F, l, m, C, D, E) { return new j({ zlevel: this.getZlevelBase(), z: this.getZBase(), style: { xStart: a, yStart: F, xEnd: l, yEnd: m, strokeColor: C, lineWidth: D, lineType: E }, hoverable: !1 }) }, _adjustIndicatorValue: function(N) { for (var F, I, e, J = this.polar[N], L = this.deepQuery(this._queryTarget, "indicator"), M = L.length, G = J.__ecIndicator, E = this._getSeriesData(N), H = J.boundaryGap, Q = J.splitNumber, P = J.scale, D = p("../util/smartSteps"), K = 0; M > K; K++) { if ("number" == typeof L[K].max) { F = L[K].max, I = L[K].min || 0, e = { max: F, min: I } } else { var C = this._findValue(E, K, Q, H); I = C.min, F = C.max }!P && I >= 0 && F >= 0 && (I = 0), !P && 0 >= I && 0 >= F && (F = 0); var O = D(I, F, Q, e); G[K].value = { min: O.min, max: O.max, step: O.step } } }, _getSeriesData: function(m) { for (var H, C, D, l = [], E = this.component.legend, F = 0; F < this.series.length; F++) { if (H = this.series[F], H.type == v.CHART_TYPE_RADAR) { C = H.data || []; for (var G = 0; G < C.length; G++) { D = this.deepQuery([C[G], H, this.option], "polarIndex") || 0, D != m || E && !E.isSelected(C[G].name) || l.push(C[G]) } } } return l }, _findValue: function(C, K, E, G) { function m(a) { (a > H || void 0 === H) && (H = a), (I > a || void 0 === I) && (I = a) } var H, I, J; if (C && 0 !== C.length) { if (1 == C.length && (I = 0), 1 != C.length) { for (var F = 0; F < C.length; F++) { m(this.getDataFromOption(C[F].value[K])) } } else { J = C[0]; for (var F = 0; F < J.value.length; F++) { m(this.getDataFromOption(J.value[F])) } } var D = Math.abs(H - I); return I -= Math.abs(D * G[0]), H += Math.abs(D * G[1]), I === H && (0 === H ? H = 1 : H > 0 ? I = H / E : H /= E), { max: H, min: I } } }, getVector: function(C, K, E) { C = C || 0, K = K || 0; var G = this.polar[C].__ecIndicator; if (!(K >= G.length)) { var m, H = this.polar[C].__ecIndicator[K], I = this.getCenter(C), J = H.vector, F = H.value.max, D = H.value.min; if ("undefined" == typeof E) { return I } switch (E) { case "min": E = D; break; case "max": E = F; break; case "center": E = (F + D) / 2 } return m = F != D ? (E - D) / (F - D) : 0.5, this._mapVector(J, I, m) } }, isInside: function(a) { var i = this.getNearestIndex(a); return i ? i.polarIndex : -1 }, getNearestIndex: function(C) { for (var K, E, G, m, H, I, J, F, D, L = 0; L < this.polar.length; L++) { if (K = this.polar[L], E = this.getCenter(L), C[0] == E[0] && C[1] == E[1]) { return { polarIndex: L, valueIndex: 0 } } if (G = this._getRadius(), H = K.startAngle, I = K.indicator, J = I.length, F = 2 * Math.PI / J, m = w.cartesian2polar(C[0] - E[0], E[1] - C[1]), C[0] - E[0] < 0 && (m[1] += Math.PI), m[1] < 0 && (m[1] += 2 * Math.PI), D = m[1] - H / 180 * Math.PI + 2 * Math.PI, Math.abs(Math.cos(D % (F / 2))) * G > m[0]) { return { polarIndex: L, valueIndex: Math.floor((D + F / 2) / F) % J } } } }, getIndicator: function(a) { var a = a || 0; return this.polar[a].indicator }, refresh: function(a) { a && (this.option = a, this.polar = this.option.polar, this.series = this.option.series), this.clear(), this._buildShape() } }, q.inherits(B, u), p("../component").define("polar", B), B }), d("echarts/util/coordinates", ["require", "zrender/tool/math"], function(a) { function m(i, n) { return [i * l.sin(n), i * l.cos(n)] } function j(i, n) { return [Math.sqrt(i * i + n * n), Math.atan(n / i)] } var l = a("zrender/tool/math"); return { polar2cartesian: m, cartesian2polar: j } }), d("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(u) { function E(l, r, m, i, p) { w.call(this, l, r, m, i, p), this.scaleLineLength = 4, this.scaleUnitAngle = 4, this.refresh(i) } var w = u("./base"), z = u("zrender/shape/Text"), j = u("zrender/shape/Line"), A = u("zrender/shape/Sector"), C = u("../util/shape/Ribbon"), D = u("../util/shape/Icon"), x = u("zrender/shape/BezierCurve"), v = u("../config"); v.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: 0.5 } }, emphasis: { borderWidth: 0, borderColor: "#000", chordStyle: { width: 1, color: "black", borderWidth: 1, borderColor: "#999" } } } }; var y = u("../util/ecData"), G = u("zrender/tool/util"), F = u("zrender/tool/vector"), q = u("../data/Graph"), B = u("../layout/Chord"); return E.prototype = { type: v.CHART_TYPE_CHORD, _init: function() { var p = this.series; this.selectedMap = {}; for (var N = {}, H = {}, J = 0, m = p.length; m > J; J++) { if (p[J].type === this.type) { var K = this.isSelected(p[J].name); this.selectedMap[p[J].name] = K, K && this.buildMark(J), this.reformOption(p[J]), N[p[J].name] = p[J] } } for (var J = 0, m = p.length; m > J; J++) { if (p[J].type === this.type) { if (p[J].insertToSerie) { var L = N[p[J].insertToSerie]; p[J]._referenceSerie = L } else { H[p[J].name] = [p[J]] } } } for (var J = 0, m = p.length; m > J; J++) { if (p[J].type === this.type && p[J].insertToSerie) { for (var M = p[J]._referenceSerie; M && M._referenceSerie;) { M = M._referenceSerie } H[M.name] && this.selectedMap[p[J].name] && H[M.name].push(p[J]) } } for (var I in H) { this._buildChords(H[I]) } this.addShapeList() }, _getNodeCategory: function(a, i) { return a.categories && a.categories[i.category || 0] }, _getNodeQueryTarget: function(a, m) { var l = this._getNodeCategory(a, m); return [m, l, a] }, _getEdgeQueryTarget: function(a, m, l) { return l = l || "normal", [m.itemStyle && m.itemStyle[l], a.itemStyle[l].chordStyle] }, _buildChords: function(J) { for (var S = [], L = J[0], O = function(a) { return a.layout.size > 0 }, p = function(a) { return function(e) { return a.getEdge(e.node2, e.node1) } }, P = 0; P < J.length; P++) { var Q = J[P]; if (this.selectedMap[Q.name]) { var R; Q.matrix ? R = this._getSerieGraphFromDataMatrix(Q, L) : Q.links && (R = this._getSerieGraphFromNodeLinks(Q, L)), R.filterNode(O, this), Q.ribbonType && R.filterEdge(p(R)), S.push(R), R.__serie = Q } } if (S.length) { var M = S[0]; if (!L.ribbonType) { var K = L.minRadius, N = L.maxRadius, X = 1 / 0, W = -(1 / 0); M.eachNode(function(a) { W = Math.max(a.layout.size, W), X = Math.min(a.layout.size, X) }); var I = (N - K) / (W - X); M.eachNode(function(a) { var l = this._getNodeQueryTarget(L, a), i = this.query(l, "symbolSize"); a.layout.size = W === X ? i || X : i || (a.layout.size - X) * I + K }, this) } var H = new B; H.clockWise = L.clockWise, H.startAngle = L.startAngle * Math.PI / 180, H.clockWise || (H.startAngle = -H.startAngle), H.padding = L.padding * Math.PI / 180, H.sort = L.sort, H.sortSub = L.sortSub, H.directed = L.ribbonType, H.run(S); var T = this.query(L, "itemStyle.normal.label.show"); if (L.ribbonType) { this._buildSectors(L, 0, M, L, S), T && this._buildLabels(L, 0, M, L, S); for (var P = 0, Y = 0; P < J.length; P++) { this.selectedMap[J[P].name] && this._buildRibbons(J, P, S[Y++], L) } L.showScale && this._buildScales(L, 0, M) } else { this._buildNodeIcons(L, 0, M, L, S), T && this._buildLabels(L, 0, M, L, S); for (var P = 0, Y = 0; P < J.length; P++) { this.selectedMap[J[P].name] && this._buildEdgeCurves(J, P, S[Y++], L, M) } } this._initHoverHandler(J, S) } }, _getSerieGraphFromDataMatrix: function(I, S) { for (var K = [], N = 0, H = [], O = 0; O < I.matrix.length; O++) { H[O] = I.matrix[O].slice() } for (var Q = I.data || I.nodes, O = 0; O < Q.length; O++) { var R = {}, L = Q[O]; L.rawIndex = O; for (var J in L) { "name" === J ? R.id = L.name : R[J] = L[J] } var M = this._getNodeCategory(S, L), W = M ? M.name : L.name; if (this.selectedMap[W] = this.isSelected(W), this.selectedMap[W]) { K.push(R), N++ } else { H.splice(N, 1); for (var T = 0; T < H.length; T++) { H[T].splice(N, 1) } } } var P = q.fromMatrix(K, H, !0); return P.eachNode(function(a) { a.layout = { size: a.data.outValue }, a.rawIndex = a.data.rawIndex }), P.eachEdge(function(a) { a.layout = { weight: a.data.weight } }), P }, _getSerieGraphFromNodeLinks: function(I, S) { for (var K = new q(!0), N = I.data || I.nodes, H = 0, O = N.length; O > H; H++) { var Q = N[H]; if (Q && !Q.ignore) { var R = this._getNodeCategory(S, Q), L = R ? R.name : Q.name; if (this.selectedMap[L] = this.isSelected(L), this.selectedMap[L]) { var J = K.addNode(Q.name, Q); J.rawIndex = H } } } for (var H = 0, O = I.links.length; O > H; H++) { var M = I.links[H], W = M.source, T = M.target; "number" == typeof W && (W = N[W], W && (W = W.name)), "number" == typeof T && (T = N[T], T && (T = T.name)); var P = K.addEdge(W, T, M); P && (P.rawIndex = H) } return K.eachNode(function(a) { var l = a.data.value; if (null == l) { if (l = 0, S.ribbonType) { for (var m = 0; m < a.outEdges.length; m++) { l += a.outEdges[m].data.weight || 0 } } else { for (var m = 0; m < a.edges.length; m++) { l += a.edges[m].data.weight || 0 } } } a.layout = { size: l } }), K.eachEdge(function(a) { a.layout = { weight: null == a.data.weight ? 1 : a.data.weight } }), K }, _initHoverHandler: function(m, r) { var o = m[0], p = r[0], l = this; p.eachNode(function(a) { a.shape.onmouseover = function() { p.eachNode(function(i) { i.shape.style.opacity = 0.1, i.labelShape && (i.labelShape.style.opacity = 0.1, i.labelShape.modSelf()), i.shape.modSelf() }); for (var n = 0; n < r.length; n++) { for (var H = 0; H < r[n].edges.length; H++) { var I = r[n].edges[H], J = l._getEdgeQueryTarget(r[n].__serie, I.data); I.shape.style.opacity = 0.1 * l.deepQuery(J, "opacity"), I.shape.modSelf() } } a.shape.style.opacity = 1, a.labelShape && (a.labelShape.style.opacity = 1); for (var n = 0; n < r.length; n++) { var t = r[n].getNodeById(a.id); if (t) { for (var H = 0; H < t.outEdges.length; H++) { var I = t.outEdges[H], J = l._getEdgeQueryTarget(r[n].__serie, I.data); I.shape.style.opacity = l.deepQuery(J, "opacity"); var e = r[0].getNodeById(I.node2.id); e && (e.shape && (e.shape.style.opacity = 1), e.labelShape && (e.labelShape.style.opacity = 1)) } } } l.zr.refreshNextFrame() }, a.shape.onmouseout = function() { p.eachNode(function(s) { s.shape.style.opacity = 1, s.labelShape && (s.labelShape.style.opacity = 1, s.labelShape.modSelf()), s.shape.modSelf() }); for (var i = 0; i < r.length; i++) { for (var n = 0; n < r[i].edges.length; n++) { var t = r[i].edges[n], H = [t.data, o]; t.shape.style.opacity = l.deepQuery(H, "itemStyle.normal.chordStyle.opacity"), t.shape.modSelf() } } l.zr.refreshNextFrame() } }) }, _buildSectors: function(o, L, p, I) { var m = this.parseCenter(this.zr, I.center), J = this.parseRadius(this.zr, I.radius), K = I.clockWise, H = K ? 1 : -1; p.eachNode(function(l) { var e = this._getNodeCategory(I, l.data), s = this.getColor(e ? e.name : l.id), r = l.layout.startAngle / Math.PI * 180 * H, a = l.layout.endAngle / Math.PI * 180 * H, n = new A({ zlevel: o.zlevel, z: o.z, style: { x: m[0], y: m[1], r0: J[0], r: J[1], startAngle: r, endAngle: a, brushType: "fill", opacity: 1, color: s, clockWise: K }, clickable: I.clickable, highlightStyle: { brushType: "fill" } }); n.style.lineWidth = this.deepQuery([l.data, I], "itemStyle.normal.borderWidth"), n.highlightStyle.lineWidth = this.deepQuery([l.data, I], "itemStyle.emphasis.borderWidth"), n.style.strokeColor = this.deepQuery([l.data, I], "itemStyle.normal.borderColor"), n.highlightStyle.strokeColor = this.deepQuery([l.data, I], "itemStyle.emphasis.borderColor"), n.style.lineWidth > 0 && (n.style.brushType = "both"), n.highlightStyle.lineWidth > 0 && (n.highlightStyle.brushType = "both"), y.pack(n, o, L, l.data, l.rawIndex, l.id, l.category), this.shapeList.push(n), l.shape = n }, this) }, _buildNodeIcons: function(m, J, p, s) { var l = this.parseCenter(this.zr, s.center), H = this.parseRadius(this.zr, s.radius), I = H[1]; p.eachNode(function(r) { var K = r.layout.startAngle, t = r.layout.endAngle, n = (K + t) / 2, O = I * Math.cos(n), N = I * Math.sin(n), e = this._getNodeQueryTarget(s, r.data), L = this._getNodeCategory(s, r.data), a = this.deepQuery(e, "itemStyle.normal.color"); a || (a = this.getColor(L ? L.name : r.id)); var M = new D({ zlevel: m.zlevel, z: m.z + 1, style: { x: -r.layout.size, y: -r.layout.size, width: 2 * r.layout.size, height: 2 * r.layout.size, iconType: this.deepQuery(e, "symbol"), color: a, brushType: "both", lineWidth: this.deepQuery(e, "itemStyle.normal.borderWidth"), strokeColor: this.deepQuery(e, "itemStyle.normal.borderColor") }, highlightStyle: { color: this.deepQuery(e, "itemStyle.emphasis.color"), lineWidth: this.deepQuery(e, "itemStyle.emphasis.borderWidth"), strokeColor: this.deepQuery(e, "itemStyle.emphasis.borderColor") }, clickable: s.clickable, position: [O + l[0], N + l[1]] }); y.pack(M, m, J, r.data, r.rawIndex, r.id, r.category), this.shapeList.push(M), r.shape = M }, this) }, _buildLabels: function(p, O, I, n) { var L = this.query(n, "itemStyle.normal.label.rotate"), M = this.query(n, "itemStyle.normal.label.distance"), N = this.parseCenter(this.zr, n.center), J = this.parseRadius(this.zr, n.radius), H = n.clockWise, K = H ? 1 : -1; I.eachNode(function(r) { var m = r.layout.startAngle / Math.PI * 180 * K, l = r.layout.endAngle / Math.PI * 180 * K, P = (m * -K + l * -K) / 2; P %= 360, 0 > P && (P += 360); var e = 90 >= P || P >= 270; P = P * Math.PI / 180; var o = [Math.cos(P), -Math.sin(P)], a = 0; a = n.ribbonType ? n.showScaleText ? 35 + M : M : M + r.layout.size; var s = F.scale([], o, J[1] + a); F.add(s, s, N); var Q = { zlevel: p.zlevel, z: p.z + 1, hoverable: !1, style: { text: null == r.data.label ? r.id : r.data.label, textAlign: e ? "left" : "right" } }; L ? (Q.rotation = e ? P : Math.PI + P, Q.style.x = e ? J[1] + a : -J[1] - a, Q.style.y = 0, Q.position = N.slice()) : (Q.style.x = s[0], Q.style.y = s[1]), Q.style.color = this.deepQuery([r.data, n], "itemStyle.normal.label.textStyle.color") || "#000000", Q.style.textFont = this.getFont(this.deepQuery([r.data, n], "itemStyle.normal.label.textStyle")), Q = new z(Q), this.shapeList.push(Q), r.labelShape = Q }, this) }, _buildRibbons: function(m, J, p, r) { var l = m[J], H = this.parseCenter(this.zr, r.center), I = this.parseRadius(this.zr, r.radius); p.eachEdge(function(K, s) { var O, N = p.getEdge(K.node2, K.node1); if (N && !K.shape) { if (N.shape) { return void(K.shape = N.shape) } var i = K.layout.startAngle / Math.PI * 180, L = K.layout.endAngle / Math.PI * 180, e = N.layout.startAngle / Math.PI * 180, M = N.layout.endAngle / Math.PI * 180; O = this.getColor(1 === m.length ? K.layout.weight <= N.layout.weight ? K.node1.id : K.node2.id : l.name); var P, o, a = this._getEdgeQueryTarget(l, K.data), n = this._getEdgeQueryTarget(l, K.data, "emphasis"), t = new C({ zlevel: l.zlevel, z: l.z, style: { x: H[0], y: H[1], r: I[0], source0: i, source1: L, target0: e, target1: M, brushType: "both", opacity: this.deepQuery(a, "opacity"), color: O, lineWidth: this.deepQuery(a, "borderWidth"), strokeColor: this.deepQuery(a, "borderColor"), clockWise: r.clockWise }, clickable: r.clickable, highlightStyle: { brushType: "both", opacity: this.deepQuery(n, "opacity"), lineWidth: this.deepQuery(n, "borderWidth"), strokeColor: this.deepQuery(n, "borderColor") } }); K.layout.weight <= N.layout.weight ? (P = N.node1, o = N.node2) : (P = K.node1, o = K.node2), y.pack(t, l, J, K.data, null == K.rawIndex ? s : K.rawIndex, K.data.name || P.id + "-" + o.id, P.id, o.id), this.shapeList.push(t), K.shape = t } }, this) }, _buildEdgeCurves: function(m, J, p, s, l) { var H = m[J], I = this.parseCenter(this.zr, s.center); p.eachEdge(function(o, t) { var K = l.getNodeById(o.node1.id), M = l.getNodeById(o.node2.id), r = K.shape, O = M.shape, N = this._getEdgeQueryTarget(H, o.data), a = this._getEdgeQueryTarget(H, o.data, "emphasis"), L = new x({ zlevel: H.zlevel, z: H.z, style: { xStart: r.position[0], yStart: r.position[1], xEnd: O.position[0], yEnd: O.position[1], cpX1: I[0], cpY1: I[1], lineWidth: this.deepQuery(N, "width"), strokeColor: this.deepQuery(N, "color"), opacity: this.deepQuery(N, "opacity") }, highlightStyle: { lineWidth: this.deepQuery(a, "width"), strokeColor: this.deepQuery(a, "color"), opacity: this.deepQuery(a, "opacity") } }); y.pack(L, H, J, o.data, null == o.rawIndex ? t : o.rawIndex, o.data.name || o.node1.id + "-" + o.node2.id, o.node1.id, o.node2.id), this.shapeList.push(L), o.shape = L }, this) }, _buildScales: function(n, P, I) { var L, N, O = n.clockWise, J = this.parseCenter(this.zr, n.center), H = this.parseRadius(this.zr, n.radius), K = O ? 1 : -1, Q = 0, a = -(1 / 0); n.showScaleText && (I.eachNode(function(i) { var l = i.data.value; l > a && (a = l), Q += l }), a > 10000000000 ? (L = "b", N = 1e-09) : a > 10000000 ? (L = "m", N = 1e-06) : a > 10000 ? (L = "k", N = 0.001) : (L = "", N = 1)); var M = Q / (360 - n.padding); I.eachNode(function(T) { for (var s = T.layout.startAngle / Math.PI * 180, W = T.layout.endAngle / Math.PI * 180, o = s;;) { if (O && o > W || !O && W > o) { break } var m = o / 180 * Math.PI, U = [Math.cos(m), Math.sin(m)], Y = F.scale([], U, H[1] + 1); F.add(Y, Y, J); var r = F.scale([], U, H[1] + this.scaleLineLength); F.add(r, r, J); var l = new j({ zlevel: n.zlevel, z: n.z - 1, hoverable: !1, style: { xStart: Y[0], yStart: Y[1], xEnd: r[0], yEnd: r[1], lineCap: "round", brushType: "stroke", strokeColor: "#666", lineWidth: 1 } }); this.shapeList.push(l), o += K * this.scaleUnitAngle } if (n.showScaleText) { for (var p = s, R = 5 * M * this.scaleUnitAngle, X = 0;;) { if (O && p > W || !O && W > p) { break } var m = p; m %= 360, 0 > m && (m += 360); var e = 90 >= m || m >= 270, S = new z({ zlevel: n.zlevel, z: n.z - 1, hoverable: !1, style: { x: e ? H[1] + this.scaleLineLength + 4 : -H[1] - this.scaleLineLength - 4, y: 0, text: Math.round(10 * X) / 10 + L, textAlign: e ? "left" : "right" }, position: J.slice(), rotation: e ? [-m / 180 * Math.PI, 0, 0] : [-(m + 180) / 180 * Math.PI, 0, 0] }); this.shapeList.push(S), X += R * N, p += K * this.scaleUnitAngle * 5 } } }, this) }, refresh: function(a) { if (a && (this.option = a, this.series = a.series), this.legend = this.component.legend, this.legend) { this.getColor = function(i) { return this.legend.getColor(i) }, this.isSelected = function(i) { return this.legend.isSelected(i) } } else { var m = {}, l = 0; this.getColor = function(i) { return m[i] ? m[i] : (m[i] || (m[i] = this.zr.getColor(l++)), m[i]) }, this.isSelected = function() { return !0 } } this.backupShapeList(), this._init() }, reformOption: function(a) { var i = G.merge; a = i(i(a || {}, this.ecTheme.chord), v.chord), a.itemStyle.normal.label.textStyle = this.getTextStyle(a.itemStyle.normal.label.textStyle), this.z = a.z, this.zlevel = a.zlevel } }, G.inherits(E, w), u("../chart").define("chord", E), E }), d("echarts/util/shape/Ribbon", ["require", "zrender/shape/Base", "zrender/shape/util/PathProxy", "zrender/tool/util", "zrender/tool/area"], function(l) { function r(a) { m.call(this, a), this._pathProxy = new p } var m = l("zrender/shape/Base"), p = l("zrender/shape/util/PathProxy"), j = l("zrender/tool/util"), q = l("zrender/tool/area"); return r.prototype = { type: "ribbon", buildPath: function(z, K) { var C = K.clockWise || !1, F = this._pathProxy; F.begin(z); var v = K.x, G = K.y, I = K.r, J = K.source0 / 180 * Math.PI, D = K.source1 / 180 * Math.PI, B = K.target0 / 180 * Math.PI, E = K.target1 / 180 * Math.PI, N = v + Math.cos(J) * I, M = G + Math.sin(J) * I, x = v + Math.cos(D) * I, H = G + Math.sin(D) * I, w = v + Math.cos(B) * I, L = G + Math.sin(B) * I, O = v + Math.cos(E) * I, A = G + Math.sin(E) * I; F.moveTo(N, M), F.arc(v, G, K.r, J, D, !C), F.bezierCurveTo(0.7 * (v - x) + x, 0.7 * (G - H) + H, 0.7 * (v - w) + w, 0.7 * (G - L) + L, w, L), (K.source0 !== K.target0 || K.source1 !== K.target1) && (F.arc(v, G, K.r, B, E, !C), F.bezierCurveTo(0.7 * (v - O) + O, 0.7 * (G - A) + A, 0.7 * (v - N) + N, 0.7 * (G - M) + M, N, M)) }, getRect: function(a) { return a.__rect ? a.__rect : (this._pathProxy.isEmpty() || this.buildPath(null, a), this._pathProxy.fastBoundingRect()) }, isCover: function(a, o) { var n = this.getRect(this.style); return a >= n.x && a <= n.x + n.width && o >= n.y && o <= n.y + n.height ? q.isInsidePath(this._pathProxy.pathCommands, 0, "fill", a, o) : void 0 } }, j.inherits(r, m), r }), d("echarts/data/Graph", ["require", "zrender/tool/util"], function(l) { var p = l("zrender/tool/util"), m = function(a) { this._directed = a || !1, this.nodes = [], this.edges = [], this._nodesMap = {}, this._edgesMap = {} }; m.prototype.isDirected = function() { return this._directed }, m.prototype.addNode = function(a, q) { if (this._nodesMap[a]) { return this._nodesMap[a] } var i = new m.Node(a, q); return this.nodes.push(i), this._nodesMap[a] = i, i }, m.prototype.getNodeById = function(a) { return this._nodesMap[a] }, m.prototype.addEdge = function(q, u, r) { if ("string" == typeof q && (q = this._nodesMap[q]), "string" == typeof u && (u = this._nodesMap[u]), q && u) { var i = q.id + "-" + u.id; if (this._edgesMap[i]) { return this._edgesMap[i] } var s = new m.Edge(q, u, r); return this._directed && (q.outEdges.push(s), u.inEdges.push(s)), q.edges.push(s), q !== u && u.edges.push(s), this.edges.push(s), this._edgesMap[i] = s, s } }, m.prototype.removeEdge = function(r) { var s = r.node1, t = r.node2, q = s.id + "-" + t.id; this._directed && (s.outEdges.splice(p.indexOf(s.outEdges, r), 1), t.inEdges.splice(p.indexOf(t.inEdges, r), 1)), s.edges.splice(p.indexOf(s.edges, r), 1), s !== t && t.edges.splice(p.indexOf(t.edges, r), 1), delete this._edgesMap[q], this.edges.splice(p.indexOf(this.edges, r), 1) }, m.prototype.getEdge = function(a, i) { return "string" != typeof a && (a = a.id), "string" != typeof i && (i = i.id), this._directed ? this._edgesMap[a + "-" + i] : this._edgesMap[a + "-" + i] || this._edgesMap[i + "-" + a] }, m.prototype.removeNode = function(a) { if ("string" != typeof a || (a = this._nodesMap[a])) { delete this._nodesMap[a.id], this.nodes.splice(p.indexOf(this.nodes, a), 1); for (var q = 0; q < this.edges.length;) { var r = this.edges[q]; r.node1 === a || r.node2 === a ? this.removeEdge(r) : q++ } } }, m.prototype.filterNode = function(a, s) { for (var q = this.nodes.length, r = 0; q > r;) { a.call(s, this.nodes[r], r) ? r++ : (this.removeNode(this.nodes[r]), q--) } }, m.prototype.filterEdge = function(a, s) { for (var q = this.edges.length, r = 0; q > r;) { a.call(s, this.edges[r], r) ? r++ : (this.removeEdge(this.edges[r]), q--) } }, m.prototype.eachNode = function(a, s) { for (var q = this.nodes.length, r = 0; q > r; r++) { this.nodes[r] && a.call(s, this.nodes[r], r) } }, m.prototype.eachEdge = function(a, s) { for (var q = this.edges.length, r = 0; q > r; r++) { this.edges[r] && a.call(s, this.edges[r], r) } }, m.prototype.clear = function() { this.nodes.length = 0, this.edges.length = 0, this._nodesMap = {}, this._edgesMap = {} }, m.prototype.breadthFirstTraverse = function(u, D, w, z) { if ("string" == typeof D && (D = this._nodesMap[D]), D) { var q = "edges"; "out" === w ? q = "outEdges" : "in" === w && (q = "inEdges"); for (var A = 0; A < this.nodes.length; A++) { this.nodes[A].__visited = !1 } if (!u.call(z, D, null)) { for (var B = [D]; B.length;) { for (var C = B.shift(), x = C[q], A = 0; A < x.length; A++) { var v = x[A], y = v.node1 === C ? v.node2 : v.node1; if (!y.__visited) { if (u.call(y, y, C)) { return } B.push(y), y.__visited = !0 } } } } } }, m.prototype.clone = function() { for (var a = new m(this._directed), q = 0; q < this.nodes.length; q++) { a.addNode(this.nodes[q].id, this.nodes[q].data) } for (var q = 0; q < this.edges.length; q++) { var i = this.edges[q]; a.addEdge(i.node1.id, i.node2.id, i.data) } return a }; var o = function(a, i) { this.id = a, this.data = i || null, this.inEdges = [], this.outEdges = [], this.edges = [] }; o.prototype.degree = function() { return this.edges.length }, o.prototype.inDegree = function() { return this.inEdges.length }, o.prototype.outDegree = function() { return this.outEdges.length }; var j = function(a, q, n) { this.node1 = a, this.node2 = q, this.data = n || null }; return m.Node = o, m.Edge = j, m.fromMatrix = function(u, C, y) { if (C && C.length && C[0].length === C.length && u.length === C.length) { for (var i = C.length, z = new m(y), A = 0; i > A; A++) { var B = z.addNode(u[A].id, u[A]); B.data.value = 0, y && (B.data.outValue = B.data.inValue = 0) } for (var A = 0; i > A; A++) { for (var w = 0; i > w; w++) { var v = C[A][w]; y && (z.nodes[A].data.outValue += v, z.nodes[w].data.inValue += v), z.nodes[A].data.value += v, z.nodes[w].data.value += v } } for (var A = 0; i > A; A++) { for (var w = A; i > w; w++) { var v = C[A][w]; if (0 !== v) { var x = z.nodes[A], E = z.nodes[w], D = z.addEdge(x, E, {}); if (D.data.weight = v, A !== w && y && C[w][A]) { var q = z.addEdge(E, x, {}); q.data.weight = C[w][A] } } } } return z } }, m }), d("echarts/layout/Chord", ["require"], function() { var a = function(i) { i = i || {}, this.sort = i.sort || null, this.sortSub = i.sortSub || null, this.padding = 0.05, this.startAngle = i.startAngle || 0, this.clockWise = null == i.clockWise ? !1 : i.clockWise, this.center = i.center || [0, 0], this.directed = !0 }; a.prototype.run = function(w) { w instanceof Array || (w = [w]); var F = w.length; if (F) { for (var i = w[0], G = i.nodes.length, I = [], J = 0, D = 0; G > D; D++) { var B = i.nodes[D], E = { size: 0, subGroups: [], node: B }; I.push(E); for (var M = 0, L = 0; L < w.length; L++) { var v = w[L], H = v.getNodeById(B.id); if (H) { E.size += H.layout.size; for (var t = this.directed ? H.outEdges : H.edges, K = 0; K < t.length; K++) { var O = t[K], A = O.layout.weight; E.subGroups.push({ weight: A, edge: O, graph: v }), M += A } } } J += E.size; for (var q = E.size / M, K = 0; K < E.subGroups.length; K++) { E.subGroups[K].weight *= q } "ascending" === this.sortSub ? E.subGroups.sort(l) : "descending" === this.sort && (E.subGroups.sort(l), E.subGroups.reverse()) } "ascending" === this.sort ? I.sort(j) : "descending" === this.sort && (I.sort(j), I.reverse()); for (var q = (2 * Math.PI - this.padding * G) / J, z = this.startAngle, C = this.clockWise ? 1 : -1, D = 0; G > D; D++) { var E = I[D]; E.node.layout.startAngle = z, E.node.layout.endAngle = z + C * E.size * q, E.node.layout.subGroups = []; for (var K = 0; K < E.subGroups.length; K++) { var N = E.subGroups[K]; N.edge.layout.startAngle = z, z += C * N.weight * q, N.edge.layout.endAngle = z } z = E.node.layout.endAngle + C * this.padding } } }; var l = function(i, m) { return i.weight - m.weight }, j = function(i, m) { return i.size - m.size }; return a }), d("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(w) { function H(a, p, n, i, l) { var r = this; F.call(this, a, p, n, i, l), this.__nodePositionMap = {}, this._graph = new G(!0), this._layout = new A, this._layout.onupdate = function() { r._step() }, this._steps = 1, this.ondragstart = function() { z.apply(r, arguments) }, this.ondragend = function() { j.apply(r, arguments) }, this.ondrop = function() {}, this.shapeHandler.ondragstart = function() { r.isDragstart = !0 }, this.onmousemove = function() { C.apply(r, arguments) }, this.refresh(i) } function z(a) { if (this.isDragstart && a.target) { var i = a.target; i.fixed = !0, this.isDragstart = !1, this.zr.on(I.EVENT.MOUSEMOVE, this.onmousemove) } } function C() { this._layout.temperature = 0.8, this._step() } function j(a, m) { if (this.isDragend && a.target) { var l = a.target; l.fixed = !1, m.dragIn = !0, m.needRefresh = !1, this.isDragend = !1, this.zr.un(I.EVENT.MOUSEMOVE, this.onmousemove) } } function D(a, o, l) { var m = L.create(); return m[0] = (Math.random() - 0.5) * l + a, m[1] = (Math.random() - 0.5) * l + o, m } var F = w("./base"), G = w("../data/Graph"), A = w("../layout/Force"), x = w("zrender/shape/Line"), B = w("zrender/shape/BezierCurve"), K = w("zrender/shape/Image"), J = w("../util/shape/Icon"), v = w("../config"); v.force = { zlevel: 1, z: 2, center: ["50%", "50%"], size: "100%", preventOverlap: !1, coolDown: 0.99, minRadius: 10, maxRadius: 20, ratioScaling: !1, large: !1, useWorker: !1, steps: 1, scaling: 1, gravity: 1, symbol: "circle", symbolSize: 0, linkSymbol: null, linkSymbolSize: [10, 15], draggable: !0, clickable: !0, roam: !1, itemStyle: { normal: { label: { show: !1, position: "inside" }, nodeStyle: { brushType: "both", borderColor: "#5182ab", borderWidth: 1 }, linkStyle: { color: "#5182ab", width: 1, type: "line" } }, emphasis: { label: { show: !1 }, nodeStyle: {}, linkStyle: { opacity: 0 } } } }; var E = w("../util/ecData"), q = w("zrender/tool/util"), I = w("zrender/config"), L = w("zrender/tool/vector"); return H.prototype = { constructor: H, type: v.CHART_TYPE_FORCE, _init: function() { this.selectedMap = {}; var m, u = this.component.legend, p = this.series; this.clear(); for (var r = 0, l = p.length; l > r; r++) { var s = p[r]; if (s.type === v.CHART_TYPE_FORCE) { if (p[r] = this.reformOption(p[r]), m = p[r].name || "", this.selectedMap[m] = u ? u.isSelected(m) : !0, !this.selectedMap[m]) { continue } this.buildMark(r), this._initSerie(s, r); break } } this.animationEffect() }, _getNodeCategory: function(a, i) { return a.categories && a.categories[i.category || 0] }, _getNodeQueryTarget: function(a, o, l) { l = l || "normal"; var m = this._getNodeCategory(a, o) || {}; return [o.itemStyle && o.itemStyle[l], m && m.itemStyle && m.itemStyle[l], a.itemStyle[l].nodeStyle] }, _getEdgeQueryTarget: function(a, m, l) { return l = l || "normal", [m.itemStyle && m.itemStyle[l], a.itemStyle[l].linkStyle] }, _initSerie: function(a, o) { this._temperature = 1, a.matrix ? this._graph = this._getSerieGraphFromDataMatrix(a) : a.links && (this._graph = this._getSerieGraphFromNodeLinks(a)), this._buildLinkShapes(a, o), this._buildNodeShapes(a, o); var l = a.roam === !0 || "move" === a.roam, m = a.roam === !0 || "scale" === a.roam; this.zr.modLayer(this.getZlevelBase(), { panable: l, zoomable: m }), (this.query("markPoint.effect.show") || this.query("markLine.effect.show")) && this.zr.modLayer(v.EFFECT_ZLEVEL, { panable: l, zoomable: m }), this._initLayout(a), this._step() }, _getSerieGraphFromDataMatrix: function(u) { for (var S = [], M = 0, P = [], p = 0; p < u.matrix.length; p++) { P[p] = u.matrix[p].slice() } for (var Q = u.data || u.nodes, p = 0; p < Q.length; p++) { var R = {}, N = Q[p]; for (var y in N) { "name" === y ? R.id = N.name : R[y] = N[y] } var O = this._getNodeCategory(u, N), W = O ? O.name : N.name; if (this.selectedMap[W] = this.isSelected(W), this.selectedMap[W]) { S.push(R), M++ } else { P.splice(M, 1); for (var T = 0; T < P.length; T++) { P[T].splice(M, 1) } } } var s = G.fromMatrix(S, P, !0); return s.eachNode(function(a, i) { a.layout = { size: a.data.value, mass: 0 }, a.rawIndex = i }), s.eachEdge(function(a) { a.layout = { weight: a.data.weight } }), s }, _getSerieGraphFromNodeLinks: function(u) { for (var S = new G(!0), M = u.data || u.nodes, P = 0, p = M.length; p > P; P++) { var Q = M[P]; if (Q && !Q.ignore) { var R = this._getNodeCategory(u, Q), N = R ? R.name : Q.name; if (this.selectedMap[N] = this.isSelected(N), this.selectedMap[N]) { var y = S.addNode(Q.name, Q); y.rawIndex = P } } } for (var P = 0, p = u.links.length; p > P; P++) { var O = u.links[P], W = O.source, T = O.target; "number" == typeof W && (W = M[W], W && (W = W.name)), "number" == typeof T && (T = M[T], T && (T = T.name)); var s = S.addEdge(W, T, O); s && (s.rawIndex = P) } return S.eachNode(function(a) { var m = a.data.value; if (null == m) { m = 0; for (var l = 0; l < a.edges.length; l++) { m += a.edges[l].data.weight || 0 } } a.layout = { size: m, mass: 0 } }), S.eachEdge(function(a) { a.layout = { weight: null == a.data.weight ? 1 : a.data.weight } }), S }, _initLayout: function(N) { var Y = this._graph, P = Y.nodes.length, S = this.query(N, "minRadius"), o = this.query(N, "maxRadius"); this._steps = N.steps || 1; var W = this._layout; W.center = this.parseCenter(this.zr, N.center), W.width = this.parsePercent(N.size, this.zr.getWidth()), W.height = this.parsePercent(N.size, this.zr.getHeight()), W.large = N.large, W.scaling = N.scaling, W.ratioScaling = N.ratioScaling, W.gravity = N.gravity, W.temperature = 1, W.coolDown = N.coolDown, W.preventNodeEdgeOverlap = N.preventOverlap, W.preventNodeOverlap = N.preventOverlap; for (var X = 1 / 0, Q = -(1 / 0), O = 0; P > O; O++) { var R = Y.nodes[O]; Q = Math.max(R.layout.size, Q), X = Math.min(R.layout.size, X) } for (var ab = Q - X, O = 0; P > O; O++) { var R = Y.nodes[O]; ab > 0 ? (R.layout.size = (R.layout.size - X) * (o - S) / ab + S, R.layout.mass = R.layout.size / o) : (R.layout.size = (o - S) / 2, R.layout.mass = 0.5) } for (var O = 0; P > O; O++) { var R = Y.nodes[O]; if ("undefined" != typeof this.__nodePositionMap[R.id]) { R.layout.position = L.create(), L.copy(R.layout.position, this.__nodePositionMap[R.id]) } else { if ("undefined" != typeof R.data.initial) { R.layout.position = L.create(), L.copy(R.layout.position, R.data.initial) } else { var aa = this._layout.center, M = Math.min(this._layout.width, this._layout.height); R.layout.position = D(aa[0], aa[1], 0.8 * M) } } var T = R.shape.style, y = R.layout.size; T.width = T.width || 2 * y, T.height = T.height || 2 * y, T.x = -T.width / 2, T.y = -T.height / 2, L.copy(R.shape.position, R.layout.position) } P = Y.edges.length, Q = -(1 / 0); for (var O = 0; P > O; O++) { var Z = Y.edges[O]; Z.layout.weight > Q && (Q = Z.layout.weight) } for (var O = 0; P > O; O++) { var Z = Y.edges[O]; Z.layout.weight /= Q } this._layout.init(Y, N.useWorker) }, _buildNodeShapes: function(a, o) { var l = this._graph, m = this.query(a, "categories"); l.eachNode(function(p) { var e = this._getNodeCategory(a, p.data), y = [p.data, e, a], M = this._getNodeQueryTarget(a, p.data), N = this._getNodeQueryTarget(a, p.data, "emphasis"), t = new J({ style: { x: 0, y: 0, color: this.deepQuery(M, "color"), brushType: "both", strokeColor: this.deepQuery(M, "strokeColor") || this.deepQuery(M, "borderColor"), lineWidth: this.deepQuery(M, "lineWidth") || this.deepQuery(M, "borderWidth") }, highlightStyle: { color: this.deepQuery(N, "color"), strokeColor: this.deepQuery(N, "strokeColor") || this.deepQuery(N, "borderColor"), lineWidth: this.deepQuery(N, "lineWidth") || this.deepQuery(N, "borderWidth") }, clickable: a.clickable, zlevel: this.getZlevelBase(), z: this.getZBase() }); t.style.color || (t.style.color = this.getColor(e ? e.name : p.id)), t.style.iconType = this.deepQuery(y, "symbol"); var n = this.deepQuery(y, "symbolSize") || 0; "number" == typeof n && (n = [n, n]), t.style.width = 2 * n[0], t.style.height = 2 * n[1], t.style.iconType.match("image") && (t.style.image = t.style.iconType.replace(new RegExp("^image:\\/\\/"), ""), t = new K({ style: t.style, highlightStyle: t.highlightStyle, clickable: t.clickable, zlevel: this.getZlevelBase(), z: this.getZBase() })), this.deepQuery(y, "itemStyle.normal.label.show") && (t.style.text = null == p.data.label ? p.id : p.data.label, t.style.textPosition = this.deepQuery(y, "itemStyle.normal.label.position"), t.style.textColor = this.deepQuery(y, "itemStyle.normal.label.textStyle.color"), t.style.textFont = this.getFont(this.deepQuery(y, "itemStyle.normal.label.textStyle") || {})), this.deepQuery(y, "itemStyle.emphasis.label.show") && (t.highlightStyle.textPosition = this.deepQuery(y, "itemStyle.emphasis.label.position"), t.highlightStyle.textColor = this.deepQuery(y, "itemStyle.emphasis.label.textStyle.color"), t.highlightStyle.textFont = this.getFont(this.deepQuery(y, "itemStyle.emphasis.label.textStyle") || {})), this.deepQuery(y, "draggable") && (this.setCalculable(t), t.dragEnableTime = 0, t.draggable = !0, t.ondragstart = this.shapeHandler.ondragstart, t.ondragover = null); var u = ""; if ("undefined" != typeof p.category) { var e = m[p.category]; u = e && e.name || "" } E.pack(t, a, o, p.data, p.rawIndex, p.data.name || "", p.category), this.shapeList.push(t), this.zr.addShape(t), p.shape = t }, this) }, _buildLinkShapes: function(N, W) { for (var P = this._graph, R = P.edges.length, m = 0; R > m; m++) { var S = P.edges[m], T = S.data, U = S.node1, Q = S.node2, Y = P.getEdge(Q, U), M = this._getEdgeQueryTarget(N, T), X = this.deepQuery(M, "type"); N.linkSymbol && "none" !== N.linkSymbol && (X = "line"); var Z = "line" === X ? x : B, O = new Z({ style: { xStart: 0, yStart: 0, xEnd: 0, yEnd: 0 }, clickable: this.query(N, "clickable"), highlightStyle: {}, zlevel: this.getZlevelBase(), z: this.getZBase() }); if (Y && Y.shape && (O.style.offset = 4, Y.shape.style.offset = 4), q.merge(O.style, this.query(N, "itemStyle.normal.linkStyle"), !0), q.merge(O.highlightStyle, this.query(N, "itemStyle.emphasis.linkStyle"), !0), "undefined" != typeof T.itemStyle && (T.itemStyle.normal && q.merge(O.style, T.itemStyle.normal, !0), T.itemStyle.emphasis && q.merge(O.highlightStyle, T.itemStyle.emphasis, !0)), O.style.lineWidth = O.style.lineWidth || O.style.width, O.style.strokeColor = O.style.strokeColor || O.style.color, O.highlightStyle.lineWidth = O.highlightStyle.lineWidth || O.highlightStyle.width, O.highlightStyle.strokeColor = O.highlightStyle.strokeColor || O.highlightStyle.color, E.pack(O, N, W, S.data, null == S.rawIndex ? m : S.rawIndex, S.data.name || U.id + " - " + Q.id, U.id, Q.id), this.shapeList.push(O), this.zr.addShape(O), S.shape = O, N.linkSymbol && "none" !== N.linkSymbol) { var p = new J({ style: { x: -5, y: 0, width: N.linkSymbolSize[0], height: N.linkSymbolSize[1], iconType: N.linkSymbol, brushType: "fill", color: O.style.strokeColor }, highlightStyle: { brushType: "fill" }, position: [0, 0], rotation: 0, zlevel: this.getZlevelBase(), z: this.getZBase() }); O._symbolShape = p, this.shapeList.push(p), this.zr.addShape(p) } } }, _updateLinkShapes: function() { for (var u = L.create(), T = L.create(), M = L.create(), P = L.create(), p = this._graph.edges, Q = 0, R = p.length; R > Q; Q++) { var S = p[Q], N = S.node1.shape, y = S.node2.shape; L.copy(M, N.position), L.copy(P, y.position); var O = S.shape.style; if (L.sub(u, M, P), L.normalize(u, u), O.offset ? (T[0] = u[1], T[1] = -u[0], L.scaleAndAdd(M, M, T, O.offset), L.scaleAndAdd(P, P, T, O.offset)) : "bezier-curve" === S.shape.type && (O.cpX1 = (M[0] + P[0]) / 2 - (P[1] - M[1]) / 4, O.cpY1 = (M[1] + P[1]) / 2 - (M[0] - P[0]) / 4), O.xStart = M[0], O.yStart = M[1], O.xEnd = P[0], O.yEnd = P[1], S.shape.modSelf(), S.shape._symbolShape) { var X = S.shape._symbolShape; L.copy(X.position, P), L.scaleAndAdd(X.position, X.position, u, y.style.width / 2 + 2); var W = Math.atan2(u[1], u[0]); X.rotation = Math.PI / 2 - W, X.modSelf() } } }, _syncNodePositions: function() { for (var p = this._graph, R = 0; R < p.nodes.length; R++) { var y = p.nodes[R], N = y.layout.position, m = y.data, O = y.shape, P = O.fixed || m.fixX, Q = O.fixed || m.fixY; P === !0 ? P = 1 : isNaN(P) && (P = 0), Q === !0 ? Q = 1 : isNaN(Q) && (Q = 0), O.position[0] += (N[0] - O.position[0]) * (1 - P), O.position[1] += (N[1] - O.position[1]) * (1 - Q), L.copy(N, O.position); var M = m.name; if (M) { var u = this.__nodePositionMap[M]; u || (u = this.__nodePositionMap[M] = L.create()), L.copy(u, N) } O.modSelf() } }, _step: function() { this._syncNodePositions(), this._updateLinkShapes(), this.zr.refreshNextFrame(), this._layout.temperature > 0.01 ? this._layout.step(this._steps) : this.messageCenter.dispatch(v.EVENT.FORCE_LAYOUT_END, {}, {}, this.myChart) }, refresh: function(a) { if (a && (this.option = a, this.series = this.option.series), this.legend = this.component.legend, this.legend) { this.getColor = function(i) { return this.legend.getColor(i) }, this.isSelected = function(i) { return this.legend.isSelected(i) } } else { var m = {}, l = 0; this.getColor = function(i) { return m[i] ? m[i] : (m[i] || (m[i] = this.zr.getColor(l++)), m[i]) }, 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 a = []; return this._graph.eachNode(function(e) { e.layout && a.push({ name: e.data.name, position: Array.prototype.slice.call(e.layout.position) }) }), a } }, q.inherits(H, F), w("../chart").define("force", H), H }), d("echarts/layout/Force", ["require", "./forceLayoutWorker", "zrender/tool/vector"], function(l) { function w() { if ("undefined" != typeof Worker && "undefined" != typeof Blob) { try { var a = new Blob([p.getWorkerCode()]); m = window.URL.createObjectURL(a) } catch (i) { m = "" } } return m } var m, p = l("./forceLayoutWorker"), j = l("zrender/tool/vector"), q = window.requestAnimationFrame || window.msRequestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || function(a) { setTimeout(a, 16) }, u = "undefined" == typeof Float32Array ? Array : Float32Array, v = function(o) { "undefined" == typeof m && w(), o = o || {}, this.width = o.width || 500, this.height = o.height || 500, this.center = o.center || [this.width / 2, this.height / 2], this.ratioScaling = o.ratioScaling || !1, this.scaling = o.scaling || 1, this.gravity = "undefined" != typeof o.gravity ? o.gravity : 1, this.large = o.large || !1, this.preventNodeOverlap = o.preventNodeOverlap || !1, this.preventNodeEdgeOverlap = o.preventNodeEdgeOverlap || !1, this.maxSpeedIncrease = o.maxSpeedIncrease || 1, this.onupdate = o.onupdate || function() {}, this.temperature = o.temperature || 1, this.coolDown = o.coolDown || 0.99, this._layout = null, this._layoutWorker = null; var r = this, i = this._$onupdate; this._$onupdate = function(a) { i.call(r, a) } }; return v.prototype.updateConfig = function() { var r = this.width, y = this.height, s = Math.min(r, y), x = { center: this.center, width: this.ratioScaling ? r : s, height: this.ratioScaling ? y : s, 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: x }) } else { for (var o in x) { this._layout[o] = x[o] } } }, v.prototype.init = function(r, D) { if (this._layoutWorker && (this._layoutWorker.terminate(), this._layoutWorker = null), m && D) { try { this._layoutWorker || (this._layoutWorker = new Worker(m), this._layoutWorker.onmessage = this._$onupdate), this._layout = null } catch (i) { this._layoutWorker = null, this._layout || (this._layout = new p) } } else { this._layout || (this._layout = new p) } this.temperature = 1, this.graph = r; for (var A = r.nodes.length, C = new u(2 * A), y = new u(A), x = new u(A), z = 0; A > z; z++) { var F = r.nodes[z]; C[2 * z] = F.layout.position[0], C[2 * z + 1] = F.layout.position[1], y[z] = "undefined" == typeof F.layout.mass ? 1 : F.layout.mass, x[z] = "undefined" == typeof F.layout.size ? 1 : F.layout.size, F.layout.__index = z } A = r.edges.length; for (var E = new u(2 * A), n = new u(A), z = 0; A > z; z++) { var B = r.edges[z]; E[2 * z] = B.node1.layout.__index, E[2 * z + 1] = B.node2.layout.__index, n[z] = B.layout.weight || 1 } this._layoutWorker ? this._layoutWorker.postMessage({ cmd: "init", nodesPosition: C, nodesMass: y, nodesSize: x, edges: E, edgesWeight: n }) : (this._layout.initNodes(C, y, x), this._layout.initEdges(E, n)), this.updateConfig() }, v.prototype.step = function(a) { var y = this.graph.nodes; if (this._layoutWorker) { for (var o = new u(2 * y.length), r = 0; r < y.length; r++) { var x = y[r]; o[2 * r] = x.layout.position[0], o[2 * r + 1] = x.layout.position[1] } this._layoutWorker.postMessage(o.buffer, [o.buffer]), this._layoutWorker.postMessage({ cmd: "update", steps: a, temperature: this.temperature, coolDown: this.coolDown }); for (var r = 0; a > r; r++) { this.temperature *= this.coolDown } } else { q(this._$onupdate); for (var r = 0; r < y.length; r++) { var x = y[r]; j.copy(this._layout.nodes[r].position, x.layout.position) } for (var r = 0; a > r; r++) { this._layout.temperature = this.temperature, this._layout.update(), this.temperature *= this.coolDown } } }, v.prototype._$onupdate = function(a) { if (this._layoutWorker) { for (var s = new Float32Array(a.data), o = 0; o < this.graph.nodes.length; o++) { var r = this.graph.nodes[o]; r.layout.position[0] = s[2 * o], r.layout.position[1] = s[2 * o + 1] } this.onupdate && this.onupdate() } else { if (this._layout) { for (var o = 0; o < this.graph.nodes.length; o++) { var r = this.graph.nodes[o]; j.copy(r.layout.position, this._layout.nodes[o].position) } this.onupdate && this.onupdate() } } }, v.prototype.dispose = function() { this._layoutWorker && this._layoutWorker.terminate(), this._layoutWorker = null, this._layout = null }, v }), d("echarts/layout/forceLayoutWorker", ["require", "zrender/tool/vector"], function g(m) { function x() { this.subRegions = [], this.nSubRegions = 0, this.node = null, this.mass = 0, this.centerOfMass = null, this.bbox = new q(4), this.size = 0 } function p() { this.position = v.create(), this.force = v.create(), this.forcePrev = v.create(), this.speed = v.create(), this.speedPrev = v.create(), this.mass = 1, this.inDegree = 0, this.outDegree = 0 } function u(a, i) { this.node1 = a, this.node2 = i, this.weight = 1 } function j() { this.barnesHutOptimize = !1, this.barnesHutTheta = 1.5, this.repulsionByDegree = !1, this.preventNodeOverlap = !1, this.preventNodeEdgeOverlap = !1, this.strongGravity = !0, 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 q(4), this._rootRegion = new x, this._rootRegion.centerOfMass = v.create(), this._massArr = null, this._k = 0 } var v, w = "undefined" == typeof window && "undefined" == typeof m; v = w ? { create: function(a, n) { var l = new Float32Array(2); return l[0] = a || 0, l[1] = n || 0, l }, dist: function(a, s) { var l = s[0] - a[0], r = s[1] - a[1]; return Math.sqrt(l * l + r * r) }, len: function(a) { var n = a[0], l = a[1]; return Math.sqrt(n * n + l * l) }, scaleAndAdd: function(a, s, l, r) { return a[0] = s[0] + l[0] * r, a[1] = s[1] + l[1] * r, a }, scale: function(a, n, l) { return a[0] = n[0] * l, a[1] = n[1] * l, a }, add: function(a, n, l) { return a[0] = n[0] + l[0], a[1] = n[1] + l[1], a }, sub: function(a, n, l) { return a[0] = n[0] - l[0], a[1] = n[1] - l[1], a }, dot: function(a, i) { return a[0] * i[0] + a[1] * i[1] }, normalize: function(r, z) { var s = z[0], y = z[1], l = s * s + y * y; return l > 0 && (l = 1 / Math.sqrt(l), r[0] = z[0] * l, r[1] = z[1] * l), r }, negate: function(a, i) { return a[0] = -i[0], a[1] = -i[1], a }, copy: function(a, i) { return a[0] = i[0], a[1] = i[1], a }, set: function(a, n, l) { return a[0] = n, a[1] = l, a } } : m("zrender/tool/vector"); var q = "undefined" == typeof Float32Array ? Array : Float32Array; if (x.prototype.beforeUpdate = function() { for (var a = 0; a < this.nSubRegions; a++) { this.subRegions[a].beforeUpdate() } this.mass = 0, this.centerOfMass && (this.centerOfMass[0] = 0, this.centerOfMass[1] = 0), this.nSubRegions = 0, this.node = null }, x.prototype.afterUpdate = function() { this.subRegions.length = this.nSubRegions; for (var a = 0; a < this.nSubRegions; a++) { this.subRegions[a].afterUpdate() } }, x.prototype.addNode = function(a) { if (0 === this.nSubRegions) { if (null == this.node) { return void(this.node = a) } this._addNodeToSubRegion(this.node), this.node = null } this._addNodeToSubRegion(a), this._updateCenterOfMass(a) }, x.prototype.findSubRegion = function(a, s) { for (var l = 0; l < this.nSubRegions; l++) { var r = this.subRegions[l]; if (r.contain(a, s)) { return r } } }, x.prototype.contain = function(a, i) { return this.bbox[0] <= a && this.bbox[2] >= a && this.bbox[1] <= i && this.bbox[3] >= i }, x.prototype.setBBox = function(a, s, l, r) { this.bbox[0] = a, this.bbox[1] = s, this.bbox[2] = l, this.bbox[3] = r, this.size = (l - a + r - s) / 2 }, x.prototype._newSubRegion = function() { var a = this.subRegions[this.nSubRegions]; return a || (a = new x, this.subRegions[this.nSubRegions] = a), this.nSubRegions++, a }, x.prototype._addNodeToSubRegion = function(z) { var G = this.findSubRegion(z.position[0], z.position[1]), A = this.bbox; if (!G) { var C = (A[0] + A[2]) / 2, y = (A[1] + A[3]) / 2, D = (A[2] - A[0]) / 2, E = (A[3] - A[1]) / 2, F = z.position[0] >= C ? 1 : 0, B = z.position[1] >= y ? 1 : 0, G = this._newSubRegion(); G.setBBox(F * D + A[0], B * E + A[1], (F + 1) * D + A[0], (B + 1) * E + A[1]) } G.addNode(z) }, x.prototype._updateCenterOfMass = function(a) { null == this.centerOfMass && (this.centerOfMass = v.create()); var n = this.centerOfMass[0] * this.mass, l = this.centerOfMass[1] * this.mass; n += a.position[0] * a.mass, l += a.position[1] * a.mass, this.mass += a.mass, this.centerOfMass[0] = n / this.mass, this.centerOfMass[1] = l / this.mass }, j.prototype.nodeToNodeRepulsionFactor = function(a, n, l) { return l * l * a / n }, j.prototype.edgeToNodeRepulsionFactor = function(a, n, l) { return l * a / n }, j.prototype.attractionFactor = function(a, n, l) { return a * n / l }, j.prototype.initNodes = function(l, C, y) { this.temperature = 1; var i = l.length / 2; this.nodes.length = 0; for (var z = "undefined" != typeof y, A = 0; i > A; A++) { var B = new p; B.position[0] = l[2 * A], B.position[1] = l[2 * A + 1], B.mass = C[A], z && (B.size = y[A]), this.nodes.push(B) } this._massArr = C, z && (this._sizeArr = y) }, j.prototype.initEdges = function(y, G) { var A = y.length / 2; this.edges.length = 0; for (var n = "undefined" != typeof G, D = 0; A > D; D++) { var E = y[2 * D], F = y[2 * D + 1], B = this.nodes[E], z = this.nodes[F]; if (B && z) { B.outDegree++, z.inDegree++; var C = new u(B, z); n && (C.weight = G[D]), this.edges.push(C) } } }, j.prototype.update = function() { var r = this.nodes.length; if (this.updateBBox(), this._k = 0.4 * this.scaling * Math.sqrt(this.width * this.height / r), this.barnesHutOptimize) { this._rootRegion.setBBox(this.bbox[0], this.bbox[1], this.bbox[2], this.bbox[3]), this._rootRegion.beforeUpdate(); for (var z = 0; r > z; z++) { this._rootRegion.addNode(this.nodes[z]) } this._rootRegion.afterUpdate() } else { var s = 0, y = this._rootRegion.centerOfMass; v.set(y, 0, 0); for (var z = 0; r > z; z++) { var l = this.nodes[z]; s += l.mass, v.scaleAndAdd(y, y, l.position, l.mass) } s > 0 && v.scale(y, y, 1 / s) } this.updateForce(), this.updatePosition() }, j.prototype.updateForce = function() { for (var a = this.nodes.length, n = 0; a > n; n++) { var l = this.nodes[n]; v.copy(l.forcePrev, l.force), v.copy(l.speedPrev, l.speed), v.set(l.force, 0, 0) } this.updateNodeNodeForce(), this.gravity > 0 && this.updateGravityForce(), this.updateEdgeForce(), this.preventNodeEdgeOverlap && this.updateNodeEdgeForce() }, j.prototype.updatePosition = function() { for (var y = this.nodes.length, G = v.create(), A = 0; y > A; A++) { var D = this.nodes[A], r = D.speed; v.scale(D.force, D.force, 1 / 30); var E = v.len(D.force) + 0.1, F = Math.min(E, 500) / E; v.scale(D.force, D.force, F), v.add(r, r, D.force), v.scale(r, r, this.temperature), v.sub(G, r, D.speedPrev); var B = v.len(G); if (B > 0) { v.scale(G, G, 1 / B); var z = v.len(D.speedPrev); z > 0 && (B = Math.min(B / z, this.maxSpeedIncrease) * z, v.scaleAndAdd(r, D.speedPrev, G, B)) } var C = v.len(r), F = Math.min(C, 100) / (C + 0.1); v.scale(r, r, F), v.add(D.position, D.position, r) } }, j.prototype.updateNodeNodeForce = function() { for (var r = this.nodes.length, z = 0; r > z; z++) { var s = this.nodes[z]; if (this.barnesHutOptimize) { this.applyRegionToNodeRepulsion(this._rootRegion, s) } else { for (var y = z + 1; r > y; y++) { var l = this.nodes[y]; this.applyNodeToNodeRepulsion(s, l, !1) } } } }, j.prototype.updateGravityForce = function() { for (var a = 0; a < this.nodes.length; a++) { this.applyNodeGravity(this.nodes[a]) } }, j.prototype.updateEdgeForce = function() { for (var a = 0; a < this.edges.length; a++) { this.applyEdgeAttraction(this.edges[a]) } }, j.prototype.updateNodeEdgeForce = function() { for (var a = 0; a < this.nodes.length; a++) { for (var i = 0; i < this.edges.length; i++) { this.applyEdgeToNodeRepulsion(this.edges[i], this.nodes[a]) } } }, j.prototype.applyRegionToNodeRepulsion = function() { var a = v.create(); return function(y, l) { if (y.node) { this.applyNodeToNodeRepulsion(y.node, l, !0) } else { if (0 === y.mass && 0 === l.mass) { return } v.sub(a, l.position, y.centerOfMass); var r = a[0] * a[0] + a[1] * a[1]; if (r > this.barnesHutTheta * y.size * y.size) { var e = this._k * this._k * (l.mass + y.mass) / (r + 1); v.scaleAndAdd(l.force, l.force, a, 2 * e) } else { for (var s = 0; s < y.nSubRegions; s++) { this.applyRegionToNodeRepulsion(y.subRegions[s], l) } } } } }(), j.prototype.applyNodeToNodeRepulsion = function() { var a = v.create(); return function(C, r, z) { if (C !== r && (0 !== C.mass || 0 !== r.mass)) { v.sub(a, C.position, r.position); var e = a[0] * a[0] + a[1] * a[1]; if (0 !== e) { var A, B = C.mass + r.mass, y = Math.sqrt(e); v.scale(a, a, 1 / y), this.preventNodeOverlap ? (y = y - C.size - r.size, y > 0 ? A = this.nodeToNodeRepulsionFactor(B, y, this._k) : 0 >= y && (A = this._k * this._k * 10 * B)) : A = this.nodeToNodeRepulsionFactor(B, y, this._k), z || v.scaleAndAdd(C.force, C.force, a, 2 * A), v.scaleAndAdd(r.force, r.force, a, 2 * -A) } } } }(), j.prototype.applyEdgeAttraction = function() { var a = v.create(); return function(A) { var l = A.node1, r = A.node2; v.sub(a, l.position, r.position); var e, y = v.len(a); e = 0 === this.edgeWeightInfluence ? 1 : 1 == this.edgeWeightInfluence ? A.weight : Math.pow(A.weight, this.edgeWeightInfluence); var z; if (!(this.preventOverlap && (y = y - l.size - r.size, 0 >= y))) { var z = this.attractionFactor(e, y, this._k); v.scaleAndAdd(l.force, l.force, a, -z), v.scaleAndAdd(r.force, r.force, a, z) } } }(), j.prototype.applyNodeGravity = function() { var a = v.create(); return function(l) { v.sub(a, this.center, l.position), this.width > this.height ? a[1] *= this.width / this.height : a[0] *= this.height / this.width; var e = v.len(a) / 100; this.strongGravity ? v.scaleAndAdd(l.force, l.force, a, e * this.gravity * l.mass) : v.scaleAndAdd(l.force, l.force, a, this.gravity * l.mass / (e + 1)) } }(), j.prototype.applyEdgeToNodeRepulsion = function() { var a = v.create(), n = v.create(), l = v.create(); return function(y, e) { var z = y.node1, A = y.node2; if (z !== e && A !== e) { v.sub(a, A.position, z.position), v.sub(n, e.position, z.position); var r = v.len(a); v.scale(a, a, 1 / r); var i = v.dot(a, n); if (!(0 > i || i > r)) { v.scaleAndAdd(l, z.position, a, i); var t = v.dist(l, e.position) - e.size, B = this.edgeToNodeRepulsionFactor(e.mass, Math.max(t, 0.1), 100); v.sub(a, e.position, l), v.normalize(a, a), v.scaleAndAdd(e.force, e.force, a, B), v.scaleAndAdd(z.force, z.force, a, -B), v.scaleAndAdd(A.force, A.force, a, -B) } } } }(), j.prototype.updateBBox = function() { for (var r = 1 / 0, A = 1 / 0, s = -(1 / 0), y = -(1 / 0), l = 0; l < this.nodes.length; l++) { var z = this.nodes[l].position; r = Math.min(r, z[0]), A = Math.min(A, z[1]), s = Math.max(s, z[0]), y = Math.max(y, z[1]) } this.bbox[0] = r, this.bbox[1] = A, this.bbox[2] = s, this.bbox[3] = y }, j.getWorkerCode = function() { var a = g.toString(); return a.slice(a.indexOf("{") + 1, a.lastIndexOf("return")) }, w) { var o = null; self.onmessage = function(a) { if (a.data instanceof ArrayBuffer) { if (!o) { return } for (var E = new Float32Array(a.data), y = E.length / 2, A = 0; y > A; A++) { var B = o.nodes[A]; B.position[0] = E[2 * A], B.position[1] = E[2 * A + 1] } } else { switch (a.data.cmd) { case "init": o || (o = new j), o.initNodes(a.data.nodesPosition, a.data.nodesMass, a.data.nodesSize), o.initEdges(a.data.edges, a.data.edgesWeight); break; case "updateConfig": if (o) { for (var C in a.data.config) { o[C] = a.data.config[C] } } break; case "update": var D = a.data.steps; if (o) { var y = o.nodes.length, E = new Float32Array(2 * y); o.temperature = a.data.temperature; for (var A = 0; D > A; A++) { o.update(), o.temperature *= a.data.coolDown } for (var A = 0; y > A; A++) { var B = o.nodes[A]; E[2 * A] = B.position[0], E[2 * A + 1] = B.position[1] } self.postMessage(E.buffer, [E.buffer]) } else { var z = new Float32Array; self.postMessage(z.buffer, [z.buffer]) } } } } } return j }), d("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(x) { function J(l, u, m, i, p) { B.call(this, l, u, m, i, p); var s = this; s._onmousewheel = function(a) { return s.__onmousewheel(a) }, s._onmousedown = function(a) { return s.__onmousedown(a) }, s._onmousemove = function(a) { return s.__onmousemove(a) }, s._onmouseup = function(a) { return s.__onmouseup(a) }, s._onroamcontroller = function(a) { return s.__onroamcontroller(a) }, s._ondrhoverlink = function(a) { return s.__ondrhoverlink(a) }, 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(i), this.zr.on(v.EVENT.MOUSEWHEEL, this._onmousewheel), this.zr.on(v.EVENT.MOUSEDOWN, this._onmousedown), u.bind(L.EVENT.ROAMCONTROLLER, this._onroamcontroller), u.bind(L.EVENT.DATA_RANGE_HOVERLINK, this._ondrhoverlink) } var B = x("./base"), E = x("zrender/shape/Text"), j = x("zrender/shape/Path"), F = x("zrender/shape/Circle"), H = x("zrender/shape/Rectangle"), I = x("zrender/shape/Line"), C = x("zrender/shape/Polygon"), A = x("zrender/shape/Ellipse"), D = x("zrender/shape/Image"); x("../component/dataRange"), x("../component/roamController"); var M = x("../layer/heatmap"), L = x("../config"); L.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 w = x("../util/ecData"), G = x("zrender/tool/util"), v = x("zrender/config"), K = x("zrender/tool/event"), N = x("../util/mapData/params").params, z = x("../util/mapData/textFixed"), q = x("../util/mapData/geoCoord"); return J.prototype = { type: L.CHART_TYPE_MAP, _buildShape: function() { var P = this.series; this.selectedMap = {}, this._activeMapType = {}; for (var ab, S, X, p, Y = this.component.legend, Z = {}, aa = {}, U = {}, R = {}, W = 0, ad = P.length; ad > W; W++) { if (P[W].type == L.CHART_TYPE_MAP && (P[W] = this.reformOption(P[W]), S = P[W].mapType, aa[S] = aa[S] || {}, aa[S][W] = !0, U[S] = U[S] || P[W].mapValuePrecision, this._scaleLimitMap[S] = this._scaleLimitMap[S] || {}, P[W].scaleLimit && G.merge(this._scaleLimitMap[S], P[W].scaleLimit, !0), this._roamMap[S] = P[W].roam || this._roamMap[S], (null == this._hoverLinkMap[S] || this._hoverLinkMap[S]) && (this._hoverLinkMap[S] = P[W].dataRangeHoverLink), this._nameMap[S] = this._nameMap[S] || {}, P[W].nameMap && G.merge(this._nameMap[S], P[W].nameMap, !0), this._activeMapType[S] = !0, P[W].textFixed && G.merge(z, P[W].textFixed, !0), P[W].geoCoord && G.merge(q, P[W].geoCoord, !0), this._selectedMode[S] = this._selectedMode[S] || P[W].selectedMode, (null == this._hoverable[S] || this._hoverable[S]) && (this._hoverable[S] = P[W].hoverable), (null == this._clickable[S] || this._clickable[S]) && (this._clickable[S] = P[W].clickable), (null == this._showLegendSymbol[S] || this._showLegendSymbol[S]) && (this._showLegendSymbol[S] = P[W].showLegendSymbol), R[S] = R[S] || P[W].mapValueCalculation, ab = P[W].name, this.selectedMap[ab] = Y ? Y.isSelected(ab) : !0, this.selectedMap[ab])) { Z[S] = Z[S] || {}, X = P[W].data; for (var O = 0, y = X.length; y > O; O++) { p = this._nameChange(S, X[O].name), Z[S][p] = Z[S][p] || { seriesIndex: [], valueMap: {}, precision: 0 }; for (var ac in X[O]) { "value" != ac ? Z[S][p][ac] = X[O][ac] : isNaN(X[O].value) || (null == Z[S][p].value && (Z[S][p].value = 0), Z[S][p].precision = Math.max(this.getPrecision(+X[O].value), Z[S][p].precision), Z[S][p].value += +X[O].value, Z[S][p].valueMap[W] = +X[O].value) } Z[S][p].seriesIndex.push(W) } } } this._mapDataRequireCounter = 0; for (var Q in Z) { this._mapDataRequireCounter++ } this._clearSelected(), 0 === this._mapDataRequireCounter && (this.clear(), this.zr && this.zr.delShape(this.lastShapeList), this.lastShapeList = []); for (var Q in Z) { for (var y in Z[Q]) { "average" == R[Q] && (Z[Q][y].value /= Z[Q][y].seriesIndex.length); var T = Z[Q][y].value; null != T && (Z[Q][y].value = T.toFixed(null == U[Q] ? Z[Q][y].precision : U[Q]) - 0) } this._mapDataMap[Q] = this._mapDataMap[Q] || {}, this._mapDataMap[Q].mapData ? this._mapDataCallback(Q, Z[Q], aa[Q])(this._mapDataMap[Q].mapData) : N[Q.replace(/\|.*/, "")].getGeoJson && (this._specialArea[Q] = N[Q.replace(/\|.*/, "")].specialArea || this._specialArea[Q], N[Q.replace(/\|.*/, "")].getGeoJson(this._mapDataCallback(Q, Z[Q], aa[Q]))) } }, _mapDataCallback: function(o, l, m) { var e = this; return function(a) { e._isAlive && null != e._activeMapType[o] && (-1 != o.indexOf("|") && (a = e._getSubMapData(o, a)), e._mapDataMap[o].mapData = a, a.firstChild ? (e._mapDataMap[o].rate = 1, e._mapDataMap[o].projection = x("../util/projection/svg")) : (e._mapDataMap[o].rate = 0.75, e._mapDataMap[o].projection = x("../util/projection/normal")), e._buildMap(o, e._getProjectionData(o, a, m), l, m), e._buildMark(o, m), --e._mapDataRequireCounter <= 0 && (e.addShapeList(), e.zr.refreshNextFrame()), e._buildHeatmap(o)) } }, _clearSelected: function() { for (var a in this._selected) { this._activeMapType[this._mapTypeMap[a]] || (delete this._selected[a], delete this._mapTypeMap[a]) } }, _getSubMapData: function(m, u) { for (var p = m.replace(/^.*\|/, ""), r = u.features, l = 0, s = r.length; s > l; l++) { if (r[l].properties && r[l].properties.name == p) { r = r[l], "United States of America" == p && r.geometry.coordinates.length > 1 && (r = { geometry: { coordinates: r.geometry.coordinates.slice(5, 6), type: r.geometry.type }, id: r.id, properties: r.properties, type: r.type }); break } } return { type: "FeatureCollection", features: [r] } }, _getProjectionData: function(P, aa, R) { var W, p = this._mapDataMap[P].projection, X = [], Y = this._mapDataMap[P].bbox || p.getBbox(aa, this._specialArea[P]); W = this._mapDataMap[P].hasRoam ? this._mapDataMap[P].transform : this._getTransform(Y, R, this._mapDataMap[P].rate); var Z, S = this._mapDataMap[P].lastTransform || { scale: {} }; W.left != S.left || W.top != S.top || W.scale.x != S.scale.x || W.scale.y != S.scale.y ? (Z = p.geoJson2Path(aa, W, this._specialArea[P]), S = G.clone(W)) : (W = this._mapDataMap[P].transform, Z = this._mapDataMap[P].pathArray), this._mapDataMap[P].bbox = Y, this._mapDataMap[P].transform = W, this._mapDataMap[P].lastTransform = S, this._mapDataMap[P].pathArray = Z; for (var Q = [W.left, W.top], T = 0, ad = Z.length; ad > T; T++) { X.push(this._getSingleProvince(P, Z[T], Q)) } if (this._specialArea[P]) { for (var ac in this._specialArea[P]) { X.push(this._getSpecialProjectionData(P, aa, ac, this._specialArea[P][ac], Q)) } } if ("china" == P) { var O = this.geo2pos(P, q["南海诸岛"] || N["南海诸岛"].textCoord), y = W.scale.x / 10.5, ab = [32 * y + O[0], 83 * y + O[1]]; z["南海诸岛"] && (ab[0] += z["南海诸岛"][0], ab[1] += z["南海诸岛"][1]), X.push({ name: this._nameChange(P, "南海诸岛"), path: N["南海诸岛"].getPath(O, y), position: Q, textX: ab[0], textY: ab[1] }) } return X }, _getSpecialProjectionData: function(ab, R, W, e, X) { R = this._getSubMapData("x|" + W, R); var Z = x("../util/projection/normal"), aa = Z.getBbox(R), S = this.geo2pos(ab, [e.left, e.top]), Q = this.geo2pos(ab, [e.left + e.width, e.top + e.height]), T = Math.abs(Q[0] - S[0]), ae = Math.abs(Q[1] - S[1]), ad = aa.width, P = aa.height, Y = T / 0.75 / ad, O = ae / P; Y > O ? (Y = 0.75 * O, T = ad * Y) : (O = Y, Y = 0.75 * O, ae = P * O); var ac = { OffsetLeft: S[0], OffsetTop: S[1], scale: { x: Y, y: O } }, af = Z.geoJson2Path(R, ac); return this._getSingleProvince(ab, af[0], X) }, _getSingleProvince: function(m, O, p) { var s, l = O.properties.name, u = z[l] || [0, 0]; if (q[l]) { s = this.geo2pos(m, q[l]) } else { if (O.cp) { s = [O.cp[0] + u[0], O.cp[1] + u[1]] } else { var y = this._mapDataMap[m].bbox; s = this.geo2pos(m, [y.left + y.width / 2, y.top + y.height / 2]), s[0] += u[0], s[1] += u[1] } } return O.name = this._nameChange(m, l), O.position = p, O.textX = s[0], O.textY = s[1], O }, _getTransform: function(R, ae, W) { var Z, O, aa, ac, ad, X, T, Y = this.series, ah = this.zr.getWidth(), ag = this.zr.getHeight(), Q = Math.round(0.02 * Math.min(ah, ag)); for (var ab in ae) { Z = Y[ab].mapLocation || {}, aa = Z.x || aa, ad = Z.y || ad, X = Z.width || X, T = Z.height || T } O = this.parsePercent(aa, ah), O = isNaN(O) ? Q : O, ac = this.parsePercent(ad, ag), ac = isNaN(ac) ? Q : ac, X = null == X ? ah - O - 2 * Q : this.parsePercent(X, ah), T = null == T ? ag - ac - 2 * Q : this.parsePercent(T, ag); var P = R.width, af = R.height, ai = X / W / P, S = T / af; if (ai > S ? (ai = S * W, X = P * ai) : (S = ai, ai = S * W, T = af * S), isNaN(aa)) { switch (aa = aa || "center", aa + "") { case "center": O = Math.floor((ah - X) / 2); break; case "right": O = ah - X } } if (isNaN(ad)) { switch (ad = ad || "center", ad + "") { case "center": ac = Math.floor((ag - T) / 2); break; case "bottom": ac = ag - T } } return { left: O, top: ac, width: X, height: T, baseScale: 1, scale: { x: ai, y: S } } }, _buildMap: function(p, aa, O, Y) { for (var ad, n, ab, ai, s, l, r, R, ag, a, U, af = this.series, ah = this.component.legend, ac = this.component.dataRange, ae = 0, T = aa.length; T > ae; ae++) { if (R = G.clone(aa[ae]), ag = { name: R.name, path: R.path, position: G.clone(R.position) }, n = R.name, ab = O[n]) { s = [ab], ad = ""; for (var P = 0, Q = ab.seriesIndex.length; Q > P; P++) { var o = af[ab.seriesIndex[P]]; s.push(o), ad += o.name + " ", ah && this._showLegendSymbol[p] && ah.hasColor(o.name) && this.shapeList.push(new F({ zlevel: o.zlevel, z: o.z + 1, position: G.clone(R.position), _mapType: p, style: { x: R.textX + 3 + 7 * P, y: R.textY - 10, r: 3, color: ah.getColor(o.name) }, hoverable: !1 })) } ai = ab.value } else { ab = { name: n, value: "-" }, ad = "", s = []; for (var Z in Y) { s.push(af[Z]) } ai = "-" } switch (this.ecTheme.map && s.push(this.ecTheme.map), s.push(L.map), l = ac && !isNaN(ai) ? ac.getColor(ai) : null, R.color = R.color || l || this.getItemStyleColor(this.deepQuery(s, "itemStyle.normal.color"), ab.seriesIndex, -1, ab) || this.deepQuery(s, "itemStyle.normal.areaStyle.color"), R.strokeColor = R.strokeColor || this.deepQuery(s, "itemStyle.normal.borderColor"), R.lineWidth = R.lineWidth || this.deepQuery(s, "itemStyle.normal.borderWidth"), ag.color = this.getItemStyleColor(this.deepQuery(s, "itemStyle.emphasis.color"), ab.seriesIndex, -1, ab) || this.deepQuery(s, "itemStyle.emphasis.areaStyle.color") || R.color, ag.strokeColor = this.deepQuery(s, "itemStyle.emphasis.borderColor") || R.strokeColor, ag.lineWidth = this.deepQuery(s, "itemStyle.emphasis.borderWidth") || R.lineWidth, R.brushType = ag.brushType = R.brushType || "both", R.lineJoin = ag.lineJoin = "round", R._name = ag._name = n, r = this.deepQuery(s, "itemStyle.normal.label.textStyle"), U = { zlevel: this.getZlevelBase(), z: this.getZBase() + 1, position: G.clone(R.position), _mapType: p, _geo: this.pos2geo(p, [R.textX, R.textY]), style: { brushType: "fill", x: R.textX, y: R.textY, text: this.getLabelText(n, ai, s, "normal"), _name: n, textAlign: "center", color: this.deepQuery(s, "itemStyle.normal.label.show") ? this.deepQuery(s, "itemStyle.normal.label.textStyle.color") : "rgba(0,0,0,0)", textFont: this.getFont(r) } }, U._style = G.clone(U.style), U.highlightStyle = G.clone(U.style), this.deepQuery(s, "itemStyle.emphasis.label.show") ? (U.highlightStyle.text = this.getLabelText(n, ai, s, "emphasis"), U.highlightStyle.color = this.deepQuery(s, "itemStyle.emphasis.label.textStyle.color") || U.style.color, r = this.deepQuery(s, "itemStyle.emphasis.label.textStyle") || r, U.highlightStyle.textFont = this.getFont(r)) : U.highlightStyle.color = "rgba(0,0,0,0)", a = { zlevel: this.getZlevelBase(), z: this.getZBase(), position: G.clone(R.position), style: R, highlightStyle: ag, _style: G.clone(R), _mapType: p }, null != R.scale && (a.scale = G.clone(R.scale)), U = new E(U), a.style.shapeType) { case "rectangle": a = new H(a); break; case "line": a = new I(a); break; case "circle": a = new F(a); break; case "polygon": a = new C(a); break; case "ellipse": a = new A(a); break; default: a = new j(a), a.buildPathArray && (a.style.pathArray = a.buildPathArray(a.style.path)) }(this._selectedMode[p] && this._selected[n] && ab.selected !== !1 || ab.selected === !0) && (U.style = U.highlightStyle, a.style = a.highlightStyle), U.clickable = a.clickable = this._clickable[p] && (null == ab.clickable || ab.clickable), this._selectedMode[p] && (this._selected[n] = null != this._selected[n] ? this._selected[n] : ab.selected, this._mapTypeMap[n] = p, (null == ab.selectable || ab.selectable) && (a.clickable = U.clickable = !0, a.onclick = U.onclick = this.shapeHandler.onclick)), this._hoverable[p] && (null == ab.hoverable || ab.hoverable) ? (U.hoverable = a.hoverable = !0, a.hoverConnect = U.id, U.hoverConnect = a.id) : U.hoverable = a.hoverable = !1, w.pack(U, { name: ad, tooltip: this.deepQuery(s, "tooltip") }, 0, ab, 0, n), this.shapeList.push(U), w.pack(a, { name: ad, tooltip: this.deepQuery(s, "tooltip") }, 0, ab, 0, n), this.shapeList.push(a) } }, _buildMark: function(a, o) { this._seriesIndexToMapType = this._seriesIndexToMapType || {}, this.markAttachStyle = this.markAttachStyle || {}; var l = [this._mapDataMap[a].transform.left, this._mapDataMap[a].transform.top]; "none" == a && (l = [0, 0]); for (var m in o) { this._seriesIndexToMapType[m] = a, this.markAttachStyle[m] = { position: l, _mapType: a }, this.buildMark(m) } }, _buildHeatmap: function(O) { for (var Y = this.series, Q = 0, S = Y.length; S > Q; Q++) { if (Y[Q].heatmap) { var m = Y[Q].heatmap.data; if (Y[Q].heatmap.needsTransform === !1) { for (var T = [], W = 0, X = m.length; X > W; ++W) { T.push([m[W][3], m[W][4], m[W][2]]) } var R = [0, 0] } else { var P = Y[Q].heatmap._geoData; if (void 0 === P) { Y[Q].heatmap._geoData = []; for (var W = 0, X = m.length; X > W; ++W) { Y[Q].heatmap._geoData[W] = m[W] } P = Y[Q].heatmap._geoData } for (var X = m.length, Z = 0; X > Z; ++Z) { m[Z] = this.geo2pos(O, [P[Z][0], P[Z][1]]) } var R = [this._mapDataMap[O].transform.left, this._mapDataMap[O].transform.top] } var y = new M(Y[Q].heatmap), V = y.getCanvas(m[0][3] ? T : m, this.zr.getWidth(), this.zr.getHeight()), u = new D({ zlevel: this.getZlevelBase(), z: this.getZBase() + 1, position: R, scale: [1, 1], hoverable: !1, style: { x: 0, y: 0, image: V, width: V.width, height: V.height } }); u.type = "heatmap", u._mapType = O, this.shapeList.push(u), this.zr.addShape(u) } } }, getMarkCoord: function(a, i) { return i.geoCoord || q[i.name] ? this.geo2pos(this._seriesIndexToMapType[a], i.geoCoord || q[i.name]) : [0, 0] }, getMarkGeo: function(a) { return a.geoCoord || q[a.name] }, _nameChange: function(a, i) { return this._nameMap[a][i] || i }, getLabelText: function(m, r, o, p) { var l = this.deepQuery(o, "itemStyle." + p + ".label.formatter"); return l ? "function" == typeof l ? l.call(this.myChart, m, r) : "string" == typeof l ? (l = l.replace("{a}", "{a0}").replace("{b}", "{b0}"), l = l.replace("{a0}", m).replace("{b0}", r)) : void 0 : m }, _findMapTypeByPos: function(m, Q) { var p, u, l, y, O; for (var P in this._mapDataMap) { if (p = this._mapDataMap[P].transform, p && this._roamMap[P] && this._activeMapType[P] && (u = p.left, l = p.top, y = p.width, O = p.height, m >= u && u + y >= m && Q >= l && l + O >= Q)) { return P } } }, __onmousewheel: function(S) { function aj(m, r) { for (var o = 0; o < m.pointList.length; o++) { var p = m.pointList[o]; p[0] *= r, p[1] *= r } var l = m.controlPointList; if (l) { for (var o = 0; o < l.length; o++) { var p = l[o]; p[0] *= r, p[1] *= r } } } function Z(a, i) { a.xStart *= i, a.yStart *= i, a.xEnd *= i, a.yEnd *= i, null != a.cpX1 && (a.cpX1 *= i, a.cpY1 *= i) } if (!(this.shapeList.length <= 0)) { for (var ae = 0, O = this.shapeList.length; O > ae; ae++) { var af = this.shapeList[ae]; if (af.__animating) { return } } var ah, ai, ab = S.event, Y = K.getX(ab), ad = K.getY(ab), ak = K.getDelta(ab), R = S.mapTypeControl; R || (R = {}, ai = this._findMapTypeByPos(Y, ad), ai && this._roamMap[ai] && "move" != this._roamMap[ai] && (R[ai] = !0)); var ag = !1; for (ai in R) { if (R[ai]) { ag = !0; var Q = this._mapDataMap[ai].transform, ao = Q.left, U = Q.top, P = Q.width, T = Q.height, aa = this.pos2geo(ai, [Y - ao, ad - U]); if (ak > 0) { if (ah = 1.2, null != this._scaleLimitMap[ai].max && Q.baseScale >= this._scaleLimitMap[ai].max) { continue } } else { if (ah = 1 / 1.2, null != this._scaleLimitMap[ai].min && Q.baseScale <= this._scaleLimitMap[ai].min) { continue } } Q.baseScale *= ah, Q.scale.x *= ah, Q.scale.y *= ah, Q.width = P * ah, Q.height = T * ah, this._mapDataMap[ai].hasRoam = !0, this._mapDataMap[ai].transform = Q, aa = this.geo2pos(ai, aa), Q.left -= aa[0] - (Y - ao), Q.top -= aa[1] - (ad - U), this._mapDataMap[ai].transform = Q, this.clearEffectShape(!0); for (var ae = 0, O = this.shapeList.length; O > ae; ae++) { var af = this.shapeList[ae]; if (af._mapType == ai) { var am = af.type, u = af.style; switch (af.position[0] = Q.left, af.position[1] = Q.top, am) { case "path": case "symbol": case "circle": case "rectangle": case "polygon": case "line": case "ellipse": case "heatmap": af.scale[0] *= ah, af.scale[1] *= ah; break; case "mark-line": Z(u, ah); break; case "polyline": aj(u, ah); break; case "shape-bundle": for (var ac = 0; ac < u.shapeList.length; ac++) { var al = u.shapeList[ac]; "mark-line" == al.type ? Z(al.style, ah) : "polyline" == al.type && aj(al.style, ah) } break; case "icon": case "image": aa = this.geo2pos(ai, af._geo), u.x = u._x = aa[0] - u.width / 2, u.y = u._y = aa[1] - u.height / 2; break; default: aa = this.geo2pos(ai, af._geo), u.x = aa[0], u.y = aa[1], "text" == am && (af._style.x = af.highlightStyle.x = aa[0], af._style.y = af.highlightStyle.y = aa[1]) } this.zr.modShape(af.id) } } } } if (ag) { K.stop(ab), this.zr.refreshNextFrame(); var an = this; clearTimeout(this._refreshDelayTicket), this._refreshDelayTicket = setTimeout(function() { an && an.shapeList && an.animationEffect() }, 100), this.messageCenter.dispatch(L.EVENT.MAP_ROAM, S.event, { type: "scale" }, this.myChart) } } }, __onmousedown: function(m) { if (!(this.shapeList.length <= 0)) { var O = m.target; if (!O || !O.draggable) { var p = m.event, s = K.getX(p), l = K.getY(p), u = this._findMapTypeByPos(s, l); if (u && this._roamMap[u] && "scale" != this._roamMap[u]) { this._mousedown = !0, this._mx = s, this._my = l, this._curMapType = u, this.zr.on(v.EVENT.MOUSEUP, this._onmouseup); var y = this; setTimeout(function() { y.zr.on(v.EVENT.MOUSEMOVE, y._onmousemove) }, 100) } } } }, __onmousemove: function(m) { if (this._mousedown && this._isAlive) { var O = m.event, p = K.getX(O), s = K.getY(O), l = this._mapDataMap[this._curMapType].transform; l.hasRoam = !0, l.left -= this._mx - p, l.top -= this._my - s, this._mx = p, this._my = s, this._mapDataMap[this._curMapType].transform = l; for (var u = 0, y = this.shapeList.length; y > u; u++) { this.shapeList[u]._mapType == this._curMapType && (this.shapeList[u].position[0] = l.left, this.shapeList[u].position[1] = l.top, this.zr.modShape(this.shapeList[u].id)) } this.messageCenter.dispatch(L.EVENT.MAP_ROAM, m.event, { type: "move" }, this.myChart), this.clearEffectShape(!0), this.zr.refreshNextFrame(), this._justMove = !0, K.stop(O) } }, __onmouseup: function(a) { var m = a.event; this._mx = K.getX(m), this._my = K.getY(m), this._mousedown = !1; var l = this; setTimeout(function() { l._justMove && l.animationEffect(), l._justMove = !1, l.zr.un(v.EVENT.MOUSEMOVE, l._onmousemove), l.zr.un(v.EVENT.MOUSEUP, l._onmouseup) }, 120) }, __onroamcontroller: function(u) { var V = u.event; V.zrenderX = this.zr.getWidth() / 2, V.zrenderY = this.zr.getHeight() / 2; var O = u.mapTypeControl, R = 0, p = 0, S = u.step; switch (u.roamType) { case "scaleUp": return V.zrenderDelta = 1, void this.__onmousewheel({ event: V, mapTypeControl: O }); case "scaleDown": return V.zrenderDelta = -1, void this.__onmousewheel({ event: V, mapTypeControl: O }); case "up": R = -S; break; case "down": R = S; break; case "left": p = -S; break; case "right": p = S } var T, U; for (U in O) { this._mapDataMap[U] && this._activeMapType[U] && (T = this._mapDataMap[U].transform, T.hasRoam = !0, T.left -= p, T.top -= R, this._mapDataMap[U].transform = T) } for (var P = 0, y = this.shapeList.length; y > P; P++) { U = this.shapeList[P]._mapType, O[U] && this._activeMapType[U] && (T = this._mapDataMap[U].transform, this.shapeList[P].position[0] = T.left, this.shapeList[P].position[1] = T.top, this.zr.modShape(this.shapeList[P].id)) } this.messageCenter.dispatch(L.EVENT.MAP_ROAM, u.event, { type: "move" }, this.myChart), this.clearEffectShape(!0), this.zr.refreshNextFrame(), clearTimeout(this.dircetionTimer); var Q = this; this.dircetionTimer = setTimeout(function() { Q.animationEffect() }, 150) }, __ondrhoverlink: function(m) { for (var r, o, p = 0, l = this.shapeList.length; l > p; p++) { r = this.shapeList[p]._mapType, this._hoverLinkMap[r] && this._activeMapType[r] && (o = w.get(this.shapeList[p], "value"), null != o && o >= m.valueMin && o <= m.valueMax && this.zr.addHoverShape(this.shapeList[p])) } }, onclick: function(m) { if (this.isClick && m.target && !this._justMove && "icon" != m.target.type) { this.isClick = !1; var Q = m.target, p = Q.style._name, u = this.shapeList.length, l = Q._mapType || ""; if ("single" == this._selectedMode[l]) { for (var y in this._selected) { if (this._selected[y] && this._mapTypeMap[y] == l) { for (var O = 0; u > O; O++) { this.shapeList[O].style._name == y && this.shapeList[O]._mapType == l && (this.shapeList[O].style = this.shapeList[O]._style, this.zr.modShape(this.shapeList[O].id)) } y != p && (this._selected[y] = !1) } } } this._selected[p] = !this._selected[p]; for (var O = 0; u > O; O++) { this.shapeList[O].style._name == p && this.shapeList[O]._mapType == l && (this.shapeList[O].style = this._selected[p] ? this.shapeList[O].highlightStyle : this.shapeList[O]._style, this.zr.modShape(this.shapeList[O].id)) } this.messageCenter.dispatch(L.EVENT.MAP_SELECTED, m.event, { selected: this._selected, target: p }, this.myChart), this.zr.refreshNextFrame(); var P = this; setTimeout(function() { P.zr.trigger(v.EVENT.MOUSEMOVE, m.event) }, 100) } }, refresh: function(a) { a && (this.option = a, this.series = a.series), this._mapDataRequireCounter > 0 ? this.clear() : this.backupShapeList(), this._buildShape(), this.zr.refreshHover() }, ondataRange: function(a, i) { this.component.dataRange && (this.refresh(), i.needRefresh = !0) }, pos2geo: function(a, i) { return this._mapDataMap[a].transform ? this._mapDataMap[a].projection.pos2geo(this._mapDataMap[a].transform, i) : null }, getGeoByPos: function(a, m) { if (!this._mapDataMap[a].transform) { return null } var l = [this._mapDataMap[a].transform.left, this._mapDataMap[a].transform.top]; return m instanceof Array ? (m[0] -= l[0], m[1] -= l[1]) : (m.x -= l[0], m.y -= l[1]), this.pos2geo(a, m) }, geo2pos: function(a, i) { return this._mapDataMap[a].transform ? this._mapDataMap[a].projection.geo2pos(this._mapDataMap[a].transform, i) : null }, getPosByGeo: function(a, m) { if (!this._mapDataMap[a].transform) { return null } var l = this.geo2pos(a, m); return l[0] += this._mapDataMap[a].transform.left, l[1] += this._mapDataMap[a].transform.top, l }, getMapPosition: function(a) { return this._mapDataMap[a].transform ? [this._mapDataMap[a].transform.left, this._mapDataMap[a].transform.top] : null }, onbeforDispose: function() { this._isAlive = !1, this.zr.un(v.EVENT.MOUSEWHEEL, this._onmousewheel), this.zr.un(v.EVENT.MOUSEDOWN, this._onmousedown), this.messageCenter.unbind(L.EVENT.ROAMCONTROLLER, this._onroamcontroller), this.messageCenter.unbind(L.EVENT.DATA_RANGE_HOVERLINK, this._ondrhoverlink) } }, G.inherits(J, B), x("../chart").define("map", J), J }), d("zrender/shape/Path", ["require", "./Base", "./util/PathProxy", "../tool/util"], function(l) { var w = l("./Base"), m = l("./util/PathProxy"), p = m.PathSegment, j = function(a) { return Math.sqrt(a[0] * a[0] + a[1] * a[1]) }, q = function(a, i) { return (a[0] * i[0] + a[1] * i[1]) / (j(a) * j(i)) }, u = function(a, i) { return (a[0] * i[1] < a[1] * i[0] ? -1 : 1) * Math.acos(q(a, i)) }, v = function(a) { w.call(this, a) }; return v.prototype = { type: "path", buildPathArray: function(D, R, H) { if (!D) { return [] } R = R || 0, H = H || 0; var z = D, N = ["m", "M", "l", "L", "v", "V", "h", "H", "z", "Z", "c", "C", "q", "Q", "t", "T", "s", "S", "a", "A"]; z = z.replace(/-/g, " -"), z = z.replace(/ /g, " "), z = z.replace(/ /g, ","), z = z.replace(/,,/g, ","); var P; for (P = 0; P < N.length; P++) { z = z.replace(new RegExp(N[P], "g"), "|" + N[P]) } var Q = z.split("|"), J = [], G = 0, M = 0; for (P = 1; P < Q.length; P++) { var Z = Q[P], T = Z.charAt(0); Z = Z.slice(1), Z = Z.replace(new RegExp("e,-", "g"), "e-"); var C = Z.split(","); C.length > 0 && "" === C[0] && C.shift(); for (var O = 0; O < C.length; O++) { C[O] = parseFloat(C[O]) } for (; C.length > 0 && !isNaN(C[0]);) { var B, S, ae, F, A, E, I, ac, n = null, K = [], ab = G, ad = M; switch (T) { case "l": G += C.shift(), M += C.shift(), n = "L", K.push(G, M); break; case "L": G = C.shift(), M = C.shift(), K.push(G, M); break; case "m": G += C.shift(), M += C.shift(), n = "M", K.push(G, M), T = "l"; break; case "M": G = C.shift(), M = C.shift(), n = "M", K.push(G, M), T = "L"; break; case "h": G += C.shift(), n = "L", K.push(G, M); break; case "H": G = C.shift(), n = "L", K.push(G, M); break; case "v": M += C.shift(), n = "L", K.push(G, M); break; case "V": M = C.shift(), n = "L", K.push(G, M); break; case "C": K.push(C.shift(), C.shift(), C.shift(), C.shift()), G = C.shift(), M = C.shift(), K.push(G, M); break; case "c": K.push(G + C.shift(), M + C.shift(), G + C.shift(), M + C.shift()), G += C.shift(), M += C.shift(), n = "C", K.push(G, M); break; case "S": B = G, S = M, ae = J[J.length - 1], "C" === ae.command && (B = G + (G - ae.points[2]), S = M + (M - ae.points[3])), K.push(B, S, C.shift(), C.shift()), G = C.shift(), M = C.shift(), n = "C", K.push(G, M); break; case "s": B = G, S = M, ae = J[J.length - 1], "C" === ae.command && (B = G + (G - ae.points[2]), S = M + (M - ae.points[3])), K.push(B, S, G + C.shift(), M + C.shift()), G += C.shift(), M += C.shift(), n = "C", K.push(G, M); break; case "Q": K.push(C.shift(), C.shift()), G = C.shift(), M = C.shift(), K.push(G, M); break; case "q": K.push(G + C.shift(), M + C.shift()), G += C.shift(), M += C.shift(), n = "Q", K.push(G, M); break; case "T": B = G, S = M, ae = J[J.length - 1], "Q" === ae.command && (B = G + (G - ae.points[0]), S = M + (M - ae.points[1])), G = C.shift(), M = C.shift(), n = "Q", K.push(B, S, G, M); break; case "t": B = G, S = M, ae = J[J.length - 1], "Q" === ae.command && (B = G + (G - ae.points[0]), S = M + (M - ae.points[1])), G += C.shift(), M += C.shift(), n = "Q", K.push(B, S, G, M); break; case "A": F = C.shift(), A = C.shift(), E = C.shift(), I = C.shift(), ac = C.shift(), ab = G, ad = M, G = C.shift(), M = C.shift(), n = "A", K = this._convertPoint(ab, ad, G, M, I, ac, F, A, E); break; case "a": F = C.shift(), A = C.shift(), E = C.shift(), I = C.shift(), ac = C.shift(), ab = G, ad = M, G += C.shift(), M += C.shift(), n = "A", K = this._convertPoint(ab, ad, G, M, I, ac, F, A, E) } for (var Y = 0, aa = K.length; aa > Y; Y += 2) { K[Y] += R, K[Y + 1] += H } J.push(new p(n || T, K)) }("z" === T || "Z" === T) && J.push(new p("z", [])) } return J }, _convertPoint: function(C, N, G, K, r, M, I, F, J) { var Q = J * (Math.PI / 180), P = Math.cos(Q) * (C - G) / 2 + Math.sin(Q) * (N - K) / 2, B = -1 * Math.sin(Q) * (C - G) / 2 + Math.cos(Q) * (N - K) / 2, L = P * P / (I * I) + B * B / (F * F); L > 1 && (I *= Math.sqrt(L), F *= Math.sqrt(L)); var A = Math.sqrt((I * I * F * F - I * I * B * B - F * F * P * P) / (I * I * B * B + F * F * P * P)); r === M && (A *= -1), isNaN(A) && (A = 0); var O = A * I * B / F, S = A * -F * P / I, E = (C + G) / 2 + Math.cos(Q) * O - Math.sin(Q) * S, z = (N + K) / 2 + Math.sin(Q) * O + Math.cos(Q) * S, D = u([1, 0], [(P - O) / I, (B - S) / F]), H = [(P - O) / I, (B - S) / F], R = [(-1 * P - O) / I, (-1 * B - S) / F], o = u(H, R); return q(H, R) <= -1 && (o = Math.PI), q(H, R) >= 1 && (o = 0), 0 === M && o > 0 && (o -= 2 * Math.PI), 1 === M && 0 > o && (o += 2 * Math.PI), [E, z, I, F, D, o, Q, M] }, buildPath: function(E, T) { var I = T.path, O = T.x || 0, A = T.y || 0; T.pathArray = T.pathArray || this.buildPathArray(I, O, A); for (var P = T.pathArray, R = T.pointList = [], S = [], K = 0, H = P.length; H > K; K++) { "M" == P[K].command.toUpperCase() && (S.length > 0 && R.push(S), S = []); for (var N = P[K].points, Y = 0, X = N.length; X > Y; Y += 2) { S.push([N[Y], N[Y + 1]]) } } S.length > 0 && R.push(S); for (var K = 0, H = P.length; H > K; K++) { var D = P[K].command, N = P[K].points; switch (D) { case "L": E.lineTo(N[0], N[1]); break; case "M": E.moveTo(N[0], N[1]); break; case "C": E.bezierCurveTo(N[0], N[1], N[2], N[3], N[4], N[5]); break; case "Q": E.quadraticCurveTo(N[0], N[1], N[2], N[3]); break; case "A": var Q = N[0], C = N[1], W = N[2], aa = N[3], G = N[4], B = N[5], F = N[6], J = N[7], Z = W > aa ? W : aa, z = W > aa ? 1 : W / aa, M = W > aa ? aa / W : 1; E.translate(Q, C), E.rotate(F), E.scale(z, M), E.arc(0, 0, Z, G, G + B, 1 - J), E.scale(1 / z, 1 / M), E.rotate(-F), E.translate(-Q, -C); break; case "z": E.closePath() } } }, getRect: function(y) { if (y.__rect) { return y.__rect } var H; H = "stroke" == y.brushType || "fill" == y.brushType ? y.lineWidth || 1 : 0; for (var A = Number.MAX_VALUE, D = Number.MIN_VALUE, x = Number.MAX_VALUE, E = Number.MIN_VALUE, F = y.x || 0, G = y.y || 0, B = y.pathArray || this.buildPathArray(y.path), z = 0; z < B.length; z++) { for (var C = B[z].points, J = 0; J < C.length; J++) { J % 2 === 0 ? (C[J] + F < A && (A = C[J]), C[J] + F > D && (D = C[J])) : (C[J] + G < x && (x = C[J]), C[J] + G > E && (E = C[J])) } } var I; return I = A === Number.MAX_VALUE || D === Number.MIN_VALUE || x === Number.MAX_VALUE || E === Number.MIN_VALUE ? { x: 0, y: 0, width: 0, height: 0 } : { x: Math.round(A - H / 2), y: Math.round(x - H / 2), width: D - A + H, height: E - x + H }, y.__rect = I, I } }, l("../tool/util").inherits(v, w), v }), d("zrender/shape/Ellipse", ["require", "./Base", "../tool/util"], function(a) { var l = a("./Base"), j = function(i) { l.call(this, i) }; return j.prototype = { type: "ellipse", buildPath: function(p, z) { var q = 0.5522848, v = z.x, m = z.y, w = z.a, x = z.b, y = w * q, u = x * q; p.moveTo(v - w, m), p.bezierCurveTo(v - w, m - u, v - y, m - x, v, m - x), p.bezierCurveTo(v + y, m - x, v + w, m - u, v + w, m), p.bezierCurveTo(v + w, m + u, v + y, m + x, v, m + x), p.bezierCurveTo(v - y, m + x, v - w, m + u, v - w, m), p.closePath() }, getRect: function(i) { if (i.__rect) { return i.__rect } var m; return m = "stroke" == i.brushType || "fill" == i.brushType ? i.lineWidth || 1 : 0, i.__rect = { x: Math.round(i.x - i.a - m / 2), y: Math.round(i.y - i.b - m / 2), width: 2 * i.a + m, height: 2 * i.b + m }, i.__rect } }, a("../tool/util").inherits(j, l), j }), d("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(m) { function z(l, C, s, i, A) { if (this.rcOption = {}, i.roamController && i.roamController.show) { if (!i.roamController.mapTypeControl) { return void console.error("option.roamController.mapTypeControl has not been defined.") } q.call(this, l, C, s, i, A), this.rcOption = i.roamController; var B = this; this._drictionMouseDown = function(a) { return B.__drictionMouseDown(a) }, this._drictionMouseUp = function(a) { return B.__drictionMouseUp(a) }, this._drictionMouseMove = function(a) { return B.__drictionMouseMove(a) }, this._drictionMouseOut = function(a) { return B.__drictionMouseOut(a) }, this._scaleHandler = function(a) { return B.__scaleHandler(a) }, this.refresh(i) } } var q = m("./base"), v = m("zrender/shape/Rectangle"), j = m("zrender/shape/Sector"), w = m("zrender/shape/Circle"), x = m("../config"); x.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 y = m("zrender/tool/util"), u = m("zrender/tool/color"), p = m("zrender/tool/event"); return z.prototype = { type: x.COMPONENT_TYPE_ROAMCONTROLLER, _buildShape: function() { if (this.rcOption.show) { this._itemGroupLocation = this._getItemGroupLocation(), this._buildBackground(), this._buildItem(); for (var a = 0, i = this.shapeList.length; i > a; a++) { this.zr.addShape(this.shapeList[a]) } } }, _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(a) { var A = this._itemGroupLocation.r, l = this._itemGroupLocation.x + A, r = this._itemGroupLocation.y + A, s = { zlevel: this.getZlevelBase(), z: this.getZBase(), style: { x: l, y: r, r: A, startAngle: -45, endAngle: 45, color: this.rcOption.handleColor, text: ">", textX: l + A / 2 + 4, textY: r - 0.5, textAlign: "center", textBaseline: "middle", textPosition: "specific", textColor: this.rcOption.fillerColor, textFont: Math.floor(A / 2) + "px arial" }, highlightStyle: { color: u.lift(this.rcOption.handleColor, -0.2), brushType: "fill" }, clickable: !0 }; switch (a) { case "up": s.rotation = [Math.PI / 2, l, r]; break; case "left": s.rotation = [Math.PI, l, r]; break; case "down": s.rotation = [-Math.PI / 2, l, r] } return s = new j(s), s._roamType = a, s.onmousedown = this._drictionMouseDown, s.onmouseup = this._drictionMouseUp, s.onmousemove = this._drictionMouseMove, s.onmouseout = this._drictionMouseOut, s }, _getScaleShape: function(o) { var E = this._itemGroupLocation.width, A = this._itemGroupLocation.height - E; A = 0 > A ? 20 : A; var B = Math.min(E / 2 - 5, A) / 2, l = this._itemGroupLocation.x + ("scaleDown" === o ? E - B : B), C = this._itemGroupLocation.y + this._itemGroupLocation.height - B, D = { zlevel: this.getZlevelBase(), z: this.getZBase(), style: { x: l, y: C, r: B, color: this.rcOption.handleColor, text: "scaleDown" === o ? "-" : "+", textX: l, textY: C - 2, textAlign: "center", textBaseline: "middle", textPosition: "specific", textColor: this.rcOption.fillerColor, textFont: Math.floor(B) + "px verdana" }, highlightStyle: { color: u.lift(this.rcOption.handleColor, -0.2), brushType: "fill" }, clickable: !0 }; return D = new w(D), D._roamType = o, D.onmousedown = this._scaleHandler, D }, _buildBackground: function() { var a = this.reformCssArray(this.rcOption.padding); this.shapeList.push(new v({ zlevel: this.getZlevelBase(), z: this.getZBase(), hoverable: !1, style: { x: this._itemGroupLocation.x - a[3], y: this._itemGroupLocation.y - a[0], width: this._itemGroupLocation.width + a[3] + a[1], height: this._itemGroupLocation.height + a[0] + a[2], brushType: 0 === this.rcOption.borderWidth ? "fill" : "both", color: this.rcOption.backgroundColor, strokeColor: this.rcOption.borderColor, lineWidth: this.rcOption.borderWidth } })) }, _getItemGroupLocation: function() { var s, E = this.reformCssArray(this.rcOption.padding), A = this.rcOption.width, B = this.rcOption.height, l = this.zr.getWidth(), C = this.zr.getHeight(); switch (this.rcOption.x) { case "center": s = Math.floor((l - A) / 2); break; case "left": s = E[3] + this.rcOption.borderWidth; break; case "right": s = l - A - E[1] - E[3] - 2 * this.rcOption.borderWidth; break; default: s = this.parsePercent(this.rcOption.x, l) } var D; switch (this.rcOption.y) { case "top": D = E[0] + this.rcOption.borderWidth; break; case "bottom": D = C - B - E[0] - E[2] - 2 * this.rcOption.borderWidth; break; case "center": D = Math.floor((C - B) / 2); break; default: D = this.parsePercent(this.rcOption.y, C) } return { x: s, y: D, r: A / 2, width: A, height: B } }, __drictionMouseDown: function(a) { this.mousedown = !0, this._drictionHandlerOn(a) }, __drictionMouseUp: function(a) { this.mousedown = !1, this._drictionHandlerOff(a) }, __drictionMouseMove: function(a) { this.mousedown && this._drictionHandlerOn(a) }, __drictionMouseOut: function(a) { this._drictionHandlerOff(a) }, _drictionHandlerOn: function(a) { this._dispatchEvent(a.event, a.target._roamType), clearInterval(this.dircetionTimer); var i = this; this.dircetionTimer = setInterval(function() { i._dispatchEvent(a.event, a.target._roamType) }, 100), p.stop(a.event) }, _drictionHandlerOff: function() { clearInterval(this.dircetionTimer) }, __scaleHandler: function(a) { this._dispatchEvent(a.event, a.target._roamType), p.stop(a.event) }, _dispatchEvent: function(a, i) { this.messageCenter.dispatch(x.EVENT.ROAMCONTROLLER, a, { roamType: i, mapTypeControl: this.rcOption.mapTypeControl, step: this.rcOption.step }, this.myChart) }, refresh: function(a) { a && (this.option = a || this.option, this.option.roamController = this.reformOption(this.option.roamController), this.rcOption = this.option.roamController), this.clear(), this._buildShape() } }, y.inherits(z, q), m("../component").define("roamController", z), z }), d("echarts/layer/heatmap", ["require"], function() { function a(n) { if (this.option = n, n) { for (var o in m) { this.option[o] = void 0 !== n[o] ? n[o] : m[o] } } else { this.option = m } } var m = { blurSize: 30, gradientColors: ["blue", "cyan", "lime", "yellow", "red"], minAlpha: 0.05, valueScale: 1, opacity: 1 }, j = 20, l = 256; return a.prototype = { getCanvas: function(w, H, i) { var D = this._getBrush(), F = this._getGradient(), G = j + this.option.blurSize, B = document.createElement("canvas"); B.width = H, B.height = i; for (var A = B.getContext("2d"), C = w.length, K = 0; C > K; ++K) { var J = w[K], v = J[0], E = J[1], q = J[2], I = Math.min(1, Math.max(q * this.option.valueScale || this.option.minAlpha, this.option.minAlpha)); A.globalAlpha = I, A.drawImage(D, v - G, E - G) } for (var L = A.getImageData(0, 0, B.width, B.height), z = L.data, C = z.length / 4; C--;) { var n = 4 * C + 3, I = z[n] / 256, x = Math.floor(I * (l - 1)); z[n - 3] = F[4 * x], z[n - 2] = F[4 * x + 1], z[n - 1] = F[4 * x + 2], z[n] *= this.option.opacity } return A.putImageData(L, 0, 0), B }, _getBrush: function() { if (!this._brushCanvas) { this._brushCanvas = document.createElement("canvas"); var i = j + this.option.blurSize, p = 2 * i; this._brushCanvas.width = p, this._brushCanvas.height = p; var o = this._brushCanvas.getContext("2d"); o.shadowOffsetX = p, o.shadowBlur = this.option.blurSize, o.shadowColor = "black", o.beginPath(), o.arc(-i, i, j, 0, 2 * Math.PI, !0), o.closePath(), o.fill() } return this._brushCanvas }, _getGradient: function() { if (!this._gradientPixels) { var p = l, v = document.createElement("canvas"); v.width = 1, v.height = p; for (var q = v.getContext("2d"), n = q.createLinearGradient(0, 0, 0, p), s = this.option.gradientColors.length, u = 0; s > u; ++u) { "string" == typeof this.option.gradientColors[u] ? n.addColorStop((u + 1) / s, this.option.gradientColors[u]) : n.addColorStop(this.option.gradientColors[u].offset, this.option.gradientColors[u].color) } q.fillStyle = n, q.fillRect(0, 0, 1, p), this._gradientPixels = q.getImageData(0, 0, 1, p).data } return this._gradientPixels } }, a }), d("echarts/util/mapData/params", ["require"], function(a) { function m(p) { if (!p.UTF8Encoding) { return p } for (var A = p.features, w = 0; w < A.length; w++) { for (var i = A[w], x = i.geometry.coordinates, y = i.geometry.encodeOffsets, z = 0; z < x.length; z++) { var u = x[z]; if ("Polygon" === i.geometry.type) { x[z] = j(u, y[z]) } else { if ("MultiPolygon" === i.geometry.type) { for (var q = 0; q < u.length; q++) { var v = u[q]; u[q] = j(v, y[z][q]) } } } } } return p.UTF8Encoding = !1, p } function j(q, z) { for (var u = [], v = z[0], p = z[1], w = 0; w < q.length; w += 2) { var x = q.charCodeAt(w) - 64, y = q.charCodeAt(w + 1) - 64; x = x >> 1 ^ -(1 & x), y = y >> 1 ^ -(1 & y), x += v, y += p, v = x, p = y, u.push([x / 1024, y / 1024]) } return u } var l = { none: { getGeoJson: function(i) { i({ type: "FeatureCollection", features: [{ type: "Feature", geometry: { coordinates: [], encodeOffsets: [], type: "Polygon" }, properties: {} }] }) } }, world: { getGeoJson: function(e) { a(["./geoJson/world_geo"], function(i) { e(m(i)) }) } }, china: { getGeoJson: function(e) { a(["./geoJson/china_geo"], function(i) { e(m(i)) }) } }, "南海诸岛": { textCoord: [126, 25], getPath: function(q, B) { for (var v = [ [ [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.40000000000001], [8, 70], [9, 70], [8, 64.40000000000001], [6, 64.40000000000001] ], [ [23, 82.59999999999999], [29, 79.8], [30, 79.8], [25, 82.59999999999999], [23, 82.59999999999999] ], [ [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.09999999999999], [64, 93.09999999999999], [64, 0], [63, 0], [63, 92.40000000000001], [1, 92.40000000000001], [1, 3.5], [0, 3.5] ] ], x = "", p = q[0], y = q[1], z = 0, A = v.length; A > z; z++) { x += "M " + ((v[z][0][0] * B + p).toFixed(2) - 0) + " " + ((v[z][0][1] * B + y).toFixed(2) - 0) + " "; for (var w = 1, u = v[z].length; u > w; w++) { x += "L " + ((v[z][w][0] * B + p).toFixed(2) - 0) + " " + ((v[z][w][1] * B + y).toFixed(2) - 0) + " " } } return x + " Z" } }, "新疆": { getGeoJson: function(e) { a(["./geoJson/xin_jiang_geo"], function(i) { e(m(i)) }) } }, "西藏": { getGeoJson: function(e) { a(["./geoJson/xi_zang_geo"], function(i) { e(m(i)) }) } }, "内蒙古": { getGeoJson: function(e) { a(["./geoJson/nei_meng_gu_geo"], function(i) { e(m(i)) }) } }, "青海": { getGeoJson: function(e) { a(["./geoJson/qing_hai_geo"], function(i) { e(m(i)) }) } }, "四川": { getGeoJson: function(e) { a(["./geoJson/si_chuan_geo"], function(i) { e(m(i)) }) } }, "黑龙江": { getGeoJson: function(e) { a(["./geoJson/hei_long_jiang_geo"], function(i) { e(m(i)) }) } }, "甘肃": { getGeoJson: function(e) { a(["./geoJson/gan_su_geo"], function(i) { e(m(i)) }) } }, "云南": { getGeoJson: function(e) { a(["./geoJson/yun_nan_geo"], function(i) { e(m(i)) }) } }, "广西": { getGeoJson: function(e) { a(["./geoJson/guang_xi_geo"], function(i) { e(m(i)) }) } }, "湖南": { getGeoJson: function(e) { a(["./geoJson/hu_nan_geo"], function(i) { e(m(i)) }) } }, "陕西": { getGeoJson: function(e) { a(["./geoJson/shan_xi_1_geo"], function(i) { e(m(i)) }) } }, "广东": { getGeoJson: function(e) { a(["./geoJson/guang_dong_geo"], function(i) { e(m(i)) }) } }, "吉林": { getGeoJson: function(e) { a(["./geoJson/ji_lin_geo"], function(i) { e(m(i)) }) } }, "河北": { getGeoJson: function(e) { a(["./geoJson/he_bei_geo"], function(i) { e(m(i)) }) } }, "湖北": { getGeoJson: function(e) { a(["./geoJson/hu_bei_geo"], function(i) { e(m(i)) }) } }, "贵州": { getGeoJson: function(e) { a(["./geoJson/gui_zhou_geo"], function(i) { e(m(i)) }) } }, "山东": { getGeoJson: function(e) { a(["./geoJson/shan_dong_geo"], function(i) { e(m(i)) }) } }, "江西": { getGeoJson: function(e) { a(["./geoJson/jiang_xi_geo"], function(i) { e(m(i)) }) } }, "河南": { getGeoJson: function(e) { a(["./geoJson/he_nan_geo"], function(i) { e(m(i)) }) } }, "辽宁": { getGeoJson: function(e) { a(["./geoJson/liao_ning_geo"], function(i) { e(m(i)) }) } }, "山西": { getGeoJson: function(e) { a(["./geoJson/shan_xi_2_geo"], function(i) { e(m(i)) }) } }, "安徽": { getGeoJson: function(e) { a(["./geoJson/an_hui_geo"], function(i) { e(m(i)) }) } }, "福建": { getGeoJson: function(e) { a(["./geoJson/fu_jian_geo"], function(i) { e(m(i)) }) } }, "浙江": { getGeoJson: function(e) { a(["./geoJson/zhe_jiang_geo"], function(i) { e(m(i)) }) } }, "江苏": { getGeoJson: function(e) { a(["./geoJson/jiang_su_geo"], function(i) { e(m(i)) }) } }, "重庆": { getGeoJson: function(e) { a(["./geoJson/chong_qing_geo"], function(i) { e(m(i)) }) } }, "宁夏": { getGeoJson: function(e) { a(["./geoJson/ning_xia_geo"], function(i) { e(m(i)) }) } }, "海南": { getGeoJson: function(e) { a(["./geoJson/hai_nan_geo"], function(i) { e(m(i)) }) } }, "台湾": { getGeoJson: function(e) { a(["./geoJson/tai_wan_geo"], function(i) { e(m(i)) }) } }, "北京": { getGeoJson: function(e) { a(["./geoJson/bei_jing_geo"], function(i) { e(m(i)) }) } }, "天津": { getGeoJson: function(e) { a(["./geoJson/tian_jin_geo"], function(i) { e(m(i)) }) } }, "上海": { getGeoJson: function(e) { a(["./geoJson/shang_hai_geo"], function(i) { e(m(i)) }) } }, "香港": { getGeoJson: function(e) { a(["./geoJson/xiang_gang_geo"], function(i) { e(m(i)) }) } }, "澳门": { getGeoJson: function(e) { a(["./geoJson/ao_men_geo"], function(i) { e(m(i)) }) } } }; return { decode: m, params: l } }), d("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] } }), d("echarts/util/mapData/geoCoord", [], function() { return { Russia: [100, 60], "United States of America": [-99, 38] } }), d("echarts/util/projection/svg", ["require", "zrender/shape/Path"], function(p) { function B(a) { return parseFloat(a || 0) } function u(m) { for (var s = m.firstChild; "svg" != s.nodeName.toLowerCase() || 1 != s.nodeType;) { s = s.nextSibling } var t = B(s.getAttribute("x")), l = B(s.getAttribute("y")), C = B(s.getAttribute("width")), D = B(s.getAttribute("height")); return { left: t, top: l, width: C, height: D } } function x(m, s) { function o(a) { var E = a.tagName; if (w[E]) { var C = w[E](a, r); C && (C.scale = r, C.properties = { name: a.getAttribute("name") || "" }, C.id = a.id, A(C, a), l.push(C)) } for (var D = a.childNodes, n = 0, i = D.length; i > n; n++) { o(D[n]) } } var r = [s.scale.x, s.scale.y], l = []; return o(m), l } function j(a, m) { var l = m instanceof Array ? [1 * m[0], 1 * m[1]] : [1 * m.x, 1 * m.y]; return [l[0] / a.scale.x, l[1] / a.scale.y] } function y(a, m) { var l = m instanceof Array ? [1 * m[0], 1 * m[1]] : [1 * m.x, 1 * m.y]; return [l[0] * a.scale.x, l[1] * a.scale.y] } function z(a) { return a.replace(/^\s\s*/, "").replace(/\s\s*$/, "") } function A(m, D) { var r = D.getAttribute("fill"), s = D.getAttribute("stroke"), l = D.getAttribute("stroke-width"), C = D.getAttribute("opacity"); r && "none" != r ? (m.color = r, s ? (m.brushType = "both", m.strokeColor = s) : m.brushType = "fill") : s && "none" != s && (m.strokeColor = s, m.brushType = "stroke"), l && "none" != l && (m.lineWidth = parseFloat(l)), C && "none" != C && (m.opacity = parseFloat(C)) } function v(m) { for (var D = z(m).replace(/,/g, " ").split(/\s+/), r = [], s = 0; s < D.length;) { var l = parseFloat(D[s++]), C = parseFloat(D[s++]); r.push([l, C]) } return r } var q = p("zrender/shape/Path"), w = { path: function(a, o) { var l = a.getAttribute("d"), m = q.prototype.getRect({ path: l }); return { shapeType: "path", path: l, cp: [(m.x + m.width / 2) * o[0], (m.y + m.height / 2) * o[1]] } }, rect: function(m, s) { var t = B(m.getAttribute("x")), l = B(m.getAttribute("y")), C = B(m.getAttribute("width")), D = B(m.getAttribute("height")); return { shapeType: "rectangle", x: t, y: l, width: C, height: D, cp: [(t + C / 2) * s[0], (l + D / 2) * s[1]] } }, line: function(m, s) { var t = B(m.getAttribute("x1")), l = B(m.getAttribute("y1")), C = B(m.getAttribute("x2")), D = B(m.getAttribute("y2")); return { shapeType: "line", xStart: t, yStart: l, xEnd: C, yEnd: D, cp: [0.5 * (t + C) * s[0], 0.5 * (l + D) * s[1]] } }, circle: function(m, r) { var s = B(m.getAttribute("cx")), l = B(m.getAttribute("cy")), t = B(m.getAttribute("r")); return { shapeType: "circle", x: s, y: l, r: t, cp: [s * r[0], l * r[1]] } }, ellipse: function(m, D) { var r = parseFloat(m.getAttribute("cx") || 0), s = parseFloat(m.getAttribute("cy") || 0), l = parseFloat(m.getAttribute("rx") || 0), C = parseFloat(m.getAttribute("ry") || 0); return { shapeType: "ellipse", x: r, y: s, a: l, b: C, cp: [r * D[0], s * D[1]] } }, polygon: function(m, F) { var s = m.getAttribute("points"), C = [1 / 0, 1 / 0], l = [-(1 / 0), -(1 / 0)]; if (s) { s = v(s); for (var D = 0; D < s.length; D++) { var E = s[D]; C[0] = Math.min(E[0], C[0]), C[1] = Math.min(E[1], C[1]), l[0] = Math.max(E[0], l[0]), l[1] = Math.max(E[1], l[1]) } return { shapeType: "polygon", pointList: s, cp: [(C[0] + l[0]) / 2 * F[0], (C[1] + l[1]) / 2 * F[0]] } } }, polyline: function(a, m) { var l = w.polygon(a, m); return l } }; return { getBbox: u, geoJson2Path: x, pos2geo: j, geo2pos: y } }), d("echarts/util/projection/normal", [], function() { function l(a, n) { return n = n || {}, a.srcSize || u(a, n), a.srcSize } function u(v, C) { C = C || {}, s.xmin = 360, s.xmax = -360, s.ymin = 180, s.ymax = -180; for (var x, z, r = v.features, A = 0, B = r.length; B > A; A++) { if (z = r[A], !z.properties.name || !C[z.properties.name]) { switch (z.type) { case "Feature": s[z.geometry.type](z.geometry.coordinates); break; case "GeometryCollection": x = z.geometries; for (var y = 0, w = x.length; w > y; y++) { s[x[y].type](x[y].coordinates) } } } } return v.srcSize = { left: 1 * s.xmin.toFixed(4), top: 1 * s.ymin.toFixed(4), width: 1 * (s.xmax - s.xmin).toFixed(4), height: 1 * (s.ymax - s.ymin).toFixed(4) }, v } function m(w, z, C) { function o(a, i) { t = a.type, G = a.coordinates, q._bbox = { xmin: 360, xmax: -360, ymin: 180, ymax: -180 }, J = q[t](G), B.push({ path: J, cp: q.makePoint(i.properties.cp ? i.properties.cp : [(q._bbox.xmin + q._bbox.xmax) / 2, (q._bbox.ymin + q._bbox.ymax) / 2]), properties: i.properties, id: i.id }) } C = C || {}, q.scale = null, q.offset = null, w.srcSize || u(w, C), z.offset = { x: w.srcSize.left, y: w.srcSize.top, left: z.OffsetLeft || 0, top: z.OffsetTop || 0 }, q.scale = z.scale, q.offset = z.offset; for (var E, F, A, x = w.features, B = [], I = 0, H = x.length; H > I; I++) { if (A = x[I], !A.properties.name || !C[A.properties.name]) { if ("Feature" == A.type) { o(A.geometry, A) } else { if ("GeometryCollection" == A.type) { E = A.geometries; for (var v = 0, D = E.length; D > v; v++) { F = E[v], o(F, F) } } } } } var t, G, J; return B } function p(a, v) { var o, r; return v instanceof Array ? (o = 1 * v[0], r = 1 * v[1]) : (o = 1 * v.x, r = 1 * v.y), o = o / a.scale.x + a.offset.x - 168.5, o = o > 180 ? o - 360 : o, r = 90 - (r / a.scale.y + a.offset.y), [o, r] } function j(a, i) { return q.offset = a.offset, q.scale = a.scale, q.makePoint(i instanceof Array ? [1 * i[0], 1 * i[1]] : [1 * i.x, 1 * i.y]) } var q = { formatPoint: function(a) { return [(a[0] < -168.5 && a[1] > 63.8 ? a[0] + 360 : a[0]) + 168.5, 90 - a[1]] }, makePoint: function(r) { var x = this, v = x.formatPoint(r); x._bbox.xmin > r[0] && (x._bbox.xmin = r[0]), x._bbox.xmax < r[0] && (x._bbox.xmax = r[0]), x._bbox.ymin > r[1] && (x._bbox.ymin = r[1]), x._bbox.ymax < r[1] && (x._bbox.ymax = r[1]); var w = (v[0] - q.offset.x) * q.scale.x + q.offset.left, o = (v[1] - q.offset.y) * q.scale.y + q.offset.top; return [w, o] }, Point: function(a) { return a = this.makePoint(a), a.join(",") }, LineString: function(r) { for (var x, v = "", w = 0, o = r.length; o > w; w++) { x = q.makePoint(r[w]), v = 0 === w ? "M" + x.join(",") : v + "L" + x.join(",") } return v }, Polygon: function(a) { for (var v = "", o = 0, r = a.length; r > o; o++) { v = v + q.LineString(a[o]) + "z" } return v }, MultiPoint: function(a) { for (var v = [], o = 0, r = a.length; r > o; o++) { v.push(q.Point(a[o])) } return v }, MultiLineString: function(a) { for (var v = "", o = 0, r = a.length; r > o; o++) { v += q.LineString(a[o]) } return v }, MultiPolygon: function(a) { for (var v = "", o = 0, r = a.length; r > o; o++) { v += q.Polygon(a[o]) } return v } }, s = { formatPoint: q.formatPoint, makePoint: function(r) { var x = this, v = x.formatPoint(r), w = v[0], o = v[1]; x.xmin > w && (x.xmin = w), x.xmax < w && (x.xmax = w), x.ymin > o && (x.ymin = o), x.ymax < o && (x.ymax = o) }, Point: function(a) { this.makePoint(a) }, LineString: function(a) { for (var o = 0, n = a.length; n > o; o++) { this.makePoint(a[o]) } }, Polygon: function(a) { for (var o = 0, n = a.length; n > o; o++) { this.LineString(a[o]) } }, MultiPoint: function(a) { for (var o = 0, n = a.length; n > o; o++) { this.Point(a[o]) } }, MultiLineString: function(a) { for (var o = 0, n = a.length; n > o; o++) { this.LineString(a[o]) } }, MultiPolygon: function(a) { for (var o = 0, n = a.length; n > o; o++) { this.Polygon(a[o]) } } }; return { getBbox: l, geoJson2Path: m, pos2geo: p, geo2pos: j } }), d("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 } }), d("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 } }), d("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 } }), d("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.76949999999999, 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.71290000000001, 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: !0 } }), d("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 } }), d("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 } }), d("echarts/util/mapData/geoJson/gan_su_geo", [], function() { return { type: "FeatureCollection", features: [{ type: "Feature", id: "6209", properties: { name: "酒泉市", cp: [96.26220000000001, 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.79980000000001, 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 } }), d("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 } }), d("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 } }), d("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 } }), d("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 } }), d("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 } }), d("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 } }), d("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 } }), d("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: !0 } }), d("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 } }), d("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 } }), d("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 } }), d("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 } }), d("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 } }), d("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 } }), d("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 } }), d("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 } }), d("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 } }), d("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 } }), d("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 } }), d("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 } }), d("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 } }), d("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 } }), d("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 } }), d("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 } }), d("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 } }), d("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.77930000000001, 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.97969999999999, 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.16800000000001, 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.92359999999999, 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.53910000000001, 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.02290000000001, 44.2914], childNum: 1 }, geometry: { type: "Polygon", coordinates: ["@@lŁ—ǵm‚ĉ@mż™¼n°ÞmƼš@"], encodeOffsets: [ [88178, 45529] ] } }], UTF8Encoding: !0 } }), d("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.36450000000001, 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.02030000000001, 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.20829999999999, 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 } }), d("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.95359999999999, 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.12990000000001, 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 } }), d("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 } }), d("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(p) { function B(l, s, m, i, r) { u.call(this, l, s, m, i, r), this.refresh(i) } var u = p("./base"), x = p("../util/shape/GaugePointer"), j = p("zrender/shape/Text"), y = p("zrender/shape/Line"), z = p("zrender/shape/Rectangle"), A = p("zrender/shape/Circle"), v = p("zrender/shape/Sector"), q = p("../config"); q.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: [ [0.2, "#228b22"], [0.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 w = p("../util/ecData"), D = p("../util/accMath"), C = p("zrender/tool/util"); return B.prototype = { type: q.CHART_TYPE_GAUGE, _buildShape: function() { var a = this.series; this._paramsMap = {}, this.selectedMap = {}; for (var m = 0, l = a.length; l > m; m++) { a[m].type === q.CHART_TYPE_GAUGE && (this.selectedMap[a[m].name] = !0, a[m] = this.reformOption(a[m]), this.legendHoverLink = a[m].legendHoverLink || this.legendHoverLink, this._buildSingleGauge(m), this.buildMark(m)) } this.addShapeList() }, _buildSingleGauge: function(a) { var i = this.series[a]; this._paramsMap[a] = { center: this.parseCenter(this.zr, i.center), radius: this.parseRadius(this.zr, i.radius), startAngle: i.startAngle.toFixed(2) - 0, endAngle: i.endAngle.toFixed(2) - 0 }, this._paramsMap[a].totalAngle = this._paramsMap[a].startAngle - this._paramsMap[a].endAngle, this._colorMap(a), this._buildAxisLine(a), this._buildSplitLine(a), this._buildAxisTick(a), this._buildAxisLabel(a), this._buildPointer(a), this._buildTitle(a), this._buildDetail(a) }, _buildAxisLine: function(G) { var Q = this.series[G]; if (Q.axisLine.show) { for (var J, L, m = Q.min, M = Q.max - m, O = this._paramsMap[G], P = O.center, K = O.startAngle, I = O.totalAngle, T = O.colorArray, S = Q.axisLine.lineStyle, F = this.parsePercent(S.width, O.radius[1]), N = O.radius[1], E = N - F, R = K, W = 0, H = T.length; H > W; W++) { L = K - I * (T[W][0] - m) / M, J = this._getSector(P, E, N, L, R, T[W][1], S, Q.zlevel, Q.z), R = L, J._animationAdd = "r", w.set(J, "seriesIndex", G), w.set(J, "dataIndex", W), this.shapeList.push(J) } } }, _buildSplitLine: function(H) { var R = this.series[H]; if (R.splitLine.show) { for (var K, N, o, P = this._paramsMap[H], Q = R.splitNumber, L = R.min, J = R.max - L, M = R.splitLine, W = this.parsePercent(M.length, P.radius[1]), T = M.lineStyle, G = T.color, O = P.center, F = P.startAngle * Math.PI / 180, S = P.totalAngle * Math.PI / 180, X = P.radius[1], I = X - W, E = 0; Q >= E; E++) { K = F - S / Q * E, N = Math.sin(K), o = Math.cos(K), this.shapeList.push(new y({ zlevel: R.zlevel, z: R.z + 1, hoverable: !1, style: { xStart: O[0] + o * X, yStart: O[1] - N * X, xEnd: O[0] + o * I, yEnd: O[1] - N * I, strokeColor: "auto" === G ? this._getColor(H, L + J / Q * E) : G, lineType: T.type, lineWidth: T.width, shadowColor: T.shadowColor, shadowBlur: T.shadowBlur, shadowOffsetX: T.shadowOffsetX, shadowOffsetY: T.shadowOffsetY } })) } } }, _buildAxisTick: function(H) { var T = this.series[H]; if (T.axisTick.show) { for (var L, P, o, R = this._paramsMap[H], S = T.splitNumber, N = T.min, K = T.max - N, O = T.axisTick, Y = O.splitNumber, X = this.parsePercent(O.length, R.radius[1]), G = O.lineStyle, Q = G.color, F = R.center, W = R.startAngle * Math.PI / 180, Z = R.totalAngle * Math.PI / 180, J = R.radius[1], E = J - X, I = 0, M = S * Y; M >= I; I++) { I % Y !== 0 && (L = W - Z / M * I, P = Math.sin(L), o = Math.cos(L), this.shapeList.push(new y({ zlevel: T.zlevel, z: T.z + 1, hoverable: !1, style: { xStart: F[0] + o * J, yStart: F[1] - P * J, xEnd: F[0] + o * E, yEnd: F[1] - P * E, strokeColor: "auto" === Q ? this._getColor(H, N + K / M * I) : Q, lineType: G.type, lineWidth: G.width, shadowColor: G.shadowColor, shadowBlur: G.shadowBlur, shadowOffsetX: G.shadowOffsetX, shadowOffsetY: G.shadowOffsetY } }))) } } }, _buildAxisLabel: function(G) { var R = this.series[G]; if (R.axisLabel.show) { for (var J, M, N, P, Q = R.splitNumber, K = R.min, I = R.max - K, L = R.axisLabel.textStyle, T = this.getFont(L), F = L.color, O = this._paramsMap[G], E = O.center, S = O.startAngle, V = O.totalAngle, H = O.radius[1] - this.parsePercent(R.splitLine.length, O.radius[1]) - 5, a = 0; Q >= a; a++) { P = D.accAdd(K, D.accMul(D.accDiv(I, Q), a)), J = S - V / Q * a, M = Math.sin(J * Math.PI / 180), N = Math.cos(J * Math.PI / 180), J = (J + 360) % 360, this.shapeList.push(new j({ zlevel: R.zlevel, z: R.z + 1, hoverable: !1, style: { x: E[0] + N * H, y: E[1] - M * H, color: "auto" === F ? this._getColor(G, P) : F, text: this._getLabelText(R.axisLabel.formatter, P), textAlign: J >= 110 && 250 >= J ? "left" : 70 >= J || J >= 290 ? "right" : "center", textBaseline: J >= 10 && 170 >= J ? "top" : J >= 190 && 350 >= J ? "bottom" : "middle", textFont: T, shadowColor: L.shadowColor, shadowBlur: L.shadowBlur, shadowOffsetX: L.shadowOffsetX, shadowOffsetY: L.shadowOffsetY } })) } } }, _buildPointer: function(s) { var K = this.series[s]; if (K.pointer.show) { var F = K.max - K.min, m = K.pointer, H = this._paramsMap[s], J = this.parsePercent(m.length, H.radius[1]), G = this.parsePercent(m.width, H.radius[1]), E = H.center, M = this._getValue(s); M = M < K.max ? M : K.max; var L = (H.startAngle - H.totalAngle / F * (M - K.min)) * Math.PI / 180, n = "auto" === m.color ? this._getColor(s, M) : m.color, I = new x({ zlevel: K.zlevel, z: K.z + 1, clickable: this.query(K, "clickable"), style: { x: E[0], y: E[1], r: J, startAngle: H.startAngle * Math.PI / 180, angle: L, color: n, width: G, shadowColor: m.shadowColor, shadowBlur: m.shadowBlur, shadowOffsetX: m.shadowOffsetX, shadowOffsetY: m.shadowOffsetY }, highlightStyle: { brushType: "fill", width: G > 2 ? 2 : G / 2, color: "#fff" } }); w.pack(I, this.series[s], s, this.series[s].data[0], 0, this.series[s].data[0].name, M), this.shapeList.push(I), this.shapeList.push(new A({ zlevel: K.zlevel, z: K.z + 2, hoverable: !1, style: { x: E[0], y: E[1], r: m.width / 2.5, color: "#fff" } })) } }, _buildTitle: function(a) { var M = this.series[a]; if (M.title.show) { var F = M.data[0], I = null != F.name ? F.name : ""; if ("" !== I) { var J = M.title, K = J.offsetCenter, L = J.textStyle, G = L.color, E = this._paramsMap[a], H = E.center[0] + this.parsePercent(K[0], E.radius[1]), N = E.center[1] + this.parsePercent(K[1], E.radius[1]); this.shapeList.push(new j({ zlevel: M.zlevel, z: M.z + (Math.abs(H - E.center[0]) + Math.abs(N - E.center[1]) < 2 * L.fontSize ? 2 : 1), hoverable: !1, style: { x: H, y: N, color: "auto" === G ? this._getColor(a) : G, text: I, textAlign: "center", textFont: this.getFont(L), shadowColor: L.shadowColor, shadowBlur: L.shadowBlur, shadowOffsetX: L.shadowOffsetX, shadowOffsetY: L.shadowOffsetY } })) } } }, _buildDetail: function(E) { var M = this.series[E]; if (M.detail.show) { var G = M.detail, J = G.offsetCenter, r = G.backgroundColor, K = G.textStyle, L = K.color, H = this._paramsMap[E], F = this._getValue(E), I = H.center[0] - G.width / 2 + this.parsePercent(J[0], H.radius[1]), N = H.center[1] + this.parsePercent(J[1], H.radius[1]); this.shapeList.push(new z({ zlevel: M.zlevel, z: M.z + (Math.abs(I + G.width / 2 - H.center[0]) + Math.abs(N + G.height / 2 - H.center[1]) < K.fontSize ? 2 : 1), hoverable: !1, style: { x: I, y: N, width: G.width, height: G.height, brushType: "both", color: "auto" === r ? this._getColor(E, F) : r, lineWidth: G.borderWidth, strokeColor: G.borderColor, shadowColor: G.shadowColor, shadowBlur: G.shadowBlur, shadowOffsetX: G.shadowOffsetX, shadowOffsetY: G.shadowOffsetY, text: this._getLabelText(G.formatter, F), textFont: this.getFont(K), textPosition: "inside", textColor: "auto" === L ? this._getColor(E, F) : L } })) } }, _getValue: function(a) { return this.getDataFromOption(this.series[a].data[0]) }, _colorMap: function(m) { var J = this.series[m], E = J.min, F = J.max - E, l = J.axisLine.lineStyle.color; l instanceof Array || (l = [ [1, l] ]); for (var G = [], H = 0, I = l.length; I > H; H++) { G.push([l[H][0] * F + E, l[H][1]]) } this._paramsMap[m].colorArray = G }, _getColor: function(m, s) { null == s && (s = this._getValue(m)); for (var o = this._paramsMap[m].colorArray, r = 0, l = o.length; l > r; r++) { if (o[r][0] >= s) { return o[r][1] } } return o[o.length - 1][1] }, _getSector: function(m, K, F, G, l, H, I, J, E) { return new v({ zlevel: J, z: E, hoverable: !1, style: { x: m[0], y: m[1], r0: K, r: F, startAngle: G, endAngle: l, brushType: "fill", color: H, shadowColor: I.shadowColor, shadowBlur: I.shadowBlur, shadowOffsetX: I.shadowOffsetX, shadowOffsetY: I.shadowOffsetY } }) }, _getLabelText: function(a, i) { if (a) { if ("function" == typeof a) { return a.call(this.myChart, i) } if ("string" == typeof a) { return a.replace("{value}", i) } } return i }, refresh: function(a) { a && (this.option = a, this.series = a.series), this.backupShapeList(), this._buildShape() } }, C.inherits(B, u), p("../chart").define("gauge", B), B }), d("echarts/util/shape/GaugePointer", ["require", "zrender/shape/Base", "zrender/tool/util", "./normalIsCover"], function(a) { function m(i) { j.call(this, i) } var j = a("zrender/shape/Base"), l = a("zrender/tool/util"); return m.prototype = { type: "gauge-pointer", buildPath: function(q, x) { var s = x.r, u = x.width, p = x.angle, v = x.x - Math.cos(p) * u * (u >= s / 3 ? 1 : 2), w = x.y + Math.sin(p) * u * (u >= s / 3 ? 1 : 2); p = x.angle - Math.PI / 2, q.moveTo(v, w), q.lineTo(x.x + Math.cos(p) * u, x.y - Math.sin(p) * u), q.lineTo(x.x + Math.cos(x.angle) * s, x.y - Math.sin(x.angle) * s), q.lineTo(x.x - Math.cos(p) * u, x.y + Math.sin(p) * u), q.lineTo(v, w) }, getRect: function(q) { if (q.__rect) { return q.__rect } var v = 2 * q.width, r = q.x, s = q.y, p = r + Math.cos(q.angle) * q.r, u = s - Math.sin(q.angle) * q.r; return q.__rect = { x: Math.min(r, p) - v, y: Math.min(s, u) - v, width: Math.abs(r - p) + v, height: Math.abs(s - u) + v }, q.__rect }, isCover: a("./normalIsCover") }, l.inherits(m, j), m }), d("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(p) { function B(l, s, m, i, r) { u.call(this, l, s, m, i, r), this.refresh(i) } var u = p("./base"), x = p("zrender/shape/Text"), j = p("zrender/shape/Line"), y = p("zrender/shape/Polygon"), z = p("../config"); z.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 A = p("../util/ecData"), v = p("../util/number"), q = p("zrender/tool/util"), w = p("zrender/tool/color"), C = p("zrender/tool/area"); return B.prototype = { type: z.CHART_TYPE_FUNNEL, _buildShape: function() { var m = this.series, s = this.component.legend; this._paramsMap = {}, this._selected = {}, this.selectedMap = {}; for (var o, r = 0, l = m.length; l > r; r++) { if (m[r].type === z.CHART_TYPE_FUNNEL) { if (m[r] = this.reformOption(m[r]), this.legendHoverLink = m[r].legendHoverLink || this.legendHoverLink, o = m[r].name || "", this.selectedMap[o] = s ? s.isSelected(o) : !0, !this.selectedMap[o]) { continue } this._buildSingleFunnel(r), this.buildMark(r) } } this.addShapeList() }, _buildSingleFunnel: function(H) { var T = this.component.legend, L = this.series[H], O = this._mapData(H), D = this._getLocation(H); this._paramsMap[H] = { location: D, data: O }; for (var P, R = 0, S = [], K = 0, N = O.length; N > K; K++) { P = O[K].name, this.selectedMap[P] = T ? T.isSelected(P) : !0, this.selectedMap[P] && !isNaN(O[K].value) && (S.push(O[K]), R++) } if (0 !== R) { for (var Y, X, G, Q, F = this._buildFunnelCase(H), W = L.funnelAlign, aa = L.gap, J = R > 1 ? (D.height - (R - 1) * aa) / R : D.height, E = D.y, I = "descending" === L.sort ? this._getItemWidth(H, S[0].value) : v.parsePercent(L.minSize, D.width), M = "descending" === L.sort ? 1 : 0, Z = D.centerX, l = [], K = 0, N = S.length; N > K; K++) { if (P = S[K].name, this.selectedMap[P] && !isNaN(S[K].value)) { switch (Y = N - 2 >= K ? this._getItemWidth(H, S[K + M].value) : "descending" === L.sort ? v.parsePercent(L.minSize, D.width) : v.parsePercent(L.maxSize, D.width), W) { case "left": X = D.x; break; case "right": X = D.x + D.width - I; break; default: X = Z - I / 2 } G = this._buildItem(H, S[K]._index, T ? T.getColor(P) : this.zr.getColor(S[K]._index), X, E, I, Y, J, W), E += J + aa, Q = G.style.pointList, l.unshift([Q[0][0] - 10, Q[0][1]]), l.push([Q[1][0] + 10, Q[1][1]]), 0 === K && (0 === I ? (Q = l.pop(), "center" == W && (l[0][0] += 10), "right" == W && (l[0][0] = Q[0]), l[0][1] -= "center" == W ? 10 : 15, 1 == N && (Q = G.style.pointList)) : (l[l.length - 1][1] -= 5, l[0][1] -= 5)), I = Y } } F && (l.unshift([Q[3][0] - 10, Q[3][1]]), l.push([Q[2][0] + 10, Q[2][1]]), 0 === I ? (Q = l.pop(), "center" == W && (l[0][0] += 10), "right" == W && (l[0][0] = Q[0]), l[0][1] += "center" == W ? 10 : 15) : (l[l.length - 1][1] += 5, l[0][1] += 5), F.style.pointList = l) } }, _buildFunnelCase: function(m) { var s = this.series[m]; if (this.deepQuery([s, this.option], "calculable")) { var o = this._paramsMap[m].location, r = 10, l = { hoverable: !1, style: { pointListd: [ [o.x - r, o.y - r], [o.x + o.width + r, o.y - r], [o.x + o.width + r, o.y + o.height + r], [o.x - r, o.y + o.height + r] ], brushType: "stroke", lineWidth: 1, strokeColor: s.calculableHolderColor || this.ecTheme.calculableHolderColor || z.calculableHolderColor } }; return A.pack(l, s, m, void 0, -1), this.setCalculable(l), l = new y(l), this.shapeList.push(l), l } }, _getLocation: function(m) { var G = this.series[m], s = this.zr.getWidth(), D = this.zr.getHeight(), l = this.parsePercent(G.x, s), E = this.parsePercent(G.y, D), F = null == G.width ? s - l - this.parsePercent(G.x2, s) : this.parsePercent(G.width, s); return { x: l, y: E, width: F, height: null == G.height ? D - E - this.parsePercent(G.y2, D) : this.parsePercent(G.height, D), centerX: l + F / 2 } }, _mapData: function(m) { function G(a, i) { return "-" === a.value ? 1 : "-" === i.value ? -1 : i.value - a.value } function s(a, n) { return -G(a, n) } for (var D = this.series[m], l = q.clone(D.data), E = 0, F = l.length; F > E; E++) { l[E]._index = E } return "none" != D.sort && l.sort("descending" === D.sort ? G : s), l }, _buildItem: function(F, O, H, K, s, L, N, I, G) { var J = this.series, R = J[F], Q = R.data[O], E = this.getPolygon(F, O, H, K, s, L, N, I, G); A.pack(E, J[F], F, J[F].data[O], O, J[F].data[O].name), this.shapeList.push(E); var M = this.getLabel(F, O, H, K, s, L, N, I, G); A.pack(M, J[F], F, J[F].data[O], O, J[F].data[O].name), this.shapeList.push(M), this._needLabel(R, Q, !1) || (M.invisible = !0); var D = this.getLabelLine(F, O, H, K, s, L, N, I, G); this.shapeList.push(D), this._needLabelLine(R, Q, !1) || (D.invisible = !0); var P = [], S = []; return this._needLabelLine(R, Q, !0) && (P.push(D.id), S.push(D.id)), this._needLabel(R, Q, !0) && (P.push(M.id), S.push(E.id)), E.hoverConnect = P, M.hoverConnect = S, E }, _getItemWidth: function(m, I) { var D = this.series[m], E = this._paramsMap[m].location, l = D.min, F = D.max, G = v.parsePercent(D.minSize, E.width), H = v.parsePercent(D.maxSize, E.width); return (I - l) * (H - G) / (F - l) + G }, getPolygon: function(F, O, I, K, m, M, N, J, H) { var R, Q = this.series[F], E = Q.data[O], L = [E, Q], D = this.deepMerge(L, "itemStyle.normal") || {}, P = this.deepMerge(L, "itemStyle.emphasis") || {}, S = this.getItemStyleColor(D.color, F, O, E) || I, G = this.getItemStyleColor(P.color, F, O, E) || ("string" == typeof S ? w.lift(S, -0.2) : S); switch (H) { case "left": R = K; break; case "right": R = K + (M - N); break; default: R = K + (M - N) / 2 } var o = { zlevel: Q.zlevel, z: Q.z, clickable: this.deepQuery(L, "clickable"), style: { pointList: [ [K, m], [K + M, m], [R + N, m + J], [R, m + J] ], brushType: "both", color: S, lineWidth: D.borderWidth, strokeColor: D.borderColor }, highlightStyle: { color: G, lineWidth: P.borderWidth, strokeColor: P.borderColor } }; return this.deepQuery([E, Q, this.option], "calculable") && (this.setCalculable(o), o.draggable = !0), new y(o) }, getLabel: function(G, S, J, n, O, Q, R, M, V) { var F, P = this.series[G], E = P.data[S], T = this._paramsMap[G].location, Z = q.merge(q.clone(E.itemStyle) || {}, P.itemStyle), I = "normal", D = Z[I].label, H = D.textStyle || {}, K = Z[I].labelLine.length, Y = this.getLabelText(G, S, I), m = this.getFont(H), N = J; D.position = D.position || Z.normal.label.position, "inner" === D.position || "inside" === D.position || "center" === D.position ? (F = V, N = Math.max(Q, R) / 2 > C.getTextWidth(Y, m) ? "#fff" : w.reverse(J)) : F = "left" === D.position ? "right" : "left"; var X = { zlevel: P.zlevel, z: P.z + 1, style: { x: this._getLabelPoint(D.position, n, T, Q, R, K, V), y: O + M / 2, color: H.color || N, text: Y, textAlign: H.align || F, textBaseline: H.baseline || "middle", textFont: m } }; return I = "emphasis", D = Z[I].label || D, H = D.textStyle || H, K = Z[I].labelLine.length || K, D.position = D.position || Z.normal.label.position, Y = this.getLabelText(G, S, I), m = this.getFont(H), N = J, "inner" === D.position || "inside" === D.position || "center" === D.position ? (F = V, N = Math.max(Q, R) / 2 > C.getTextWidth(Y, m) ? "#fff" : w.reverse(J)) : F = "left" === D.position ? "right" : "left", X.highlightStyle = { x: this._getLabelPoint(D.position, n, T, Q, R, K, V), color: H.color || N, text: Y, textAlign: H.align || F, textFont: m, brushType: "fill" }, new x(X) }, getLabelText: function(m, G, s) { var D = this.series, l = D[m], E = l.data[G], F = this.deepQuery([E, l], "itemStyle." + s + ".label.formatter"); return F ? "function" == typeof F ? F.call(this.myChart, { seriesIndex: m, seriesName: l.name || "", series: l, dataIndex: G, data: E, name: E.name, value: E.value }) : "string" == typeof F ? F = F.replace("{a}", "{a0}").replace("{b}", "{b0}").replace("{c}", "{c0}").replace("{a0}", l.name).replace("{b0}", E.name).replace("{c0}", E.value) : void 0 : E.name }, getLabelLine: function(F, Q, I, L, M, O, P, J, K) { var T = this.series[F], S = T.data[Q], E = this._paramsMap[F].location, N = q.merge(q.clone(S.itemStyle) || {}, T.itemStyle), D = "normal", R = N[D].labelLine, W = N[D].labelLine.length, H = R.lineStyle || {}, a = N[D].label; a.position = a.position || N.normal.label.position; var G = { zlevel: T.zlevel, z: T.z + 1, hoverable: !1, style: { xStart: this._getLabelLineStartPoint(L, E, O, P, K), yStart: M + J / 2, xEnd: this._getLabelPoint(a.position, L, E, O, P, W, K), yEnd: M + J / 2, strokeColor: H.color || I, lineType: H.type, lineWidth: H.width } }; return D = "emphasis", R = N[D].labelLine || R, W = N[D].labelLine.length || W, H = R.lineStyle || H, a = N[D].label || a, a.position = a.position, G.highlightStyle = { xEnd: this._getLabelPoint(a.position, L, E, O, P, W, K), strokeColor: H.color || I, lineType: H.type, lineWidth: H.width }, new j(G) }, _getLabelPoint: function(m, G, s, D, l, E, F) { switch (m = "inner" === m || "inside" === m ? "center" : m) { case "center": return "center" == F ? G + D / 2 : "left" == F ? G + 10 : G + D - 10; case "left": return "auto" === E ? s.x - 10 : "center" == F ? s.centerX - Math.max(D, l) / 2 - E : "right" == F ? G - (l > D ? l - D : 0) - E : s.x - E; default: return "auto" === E ? s.x + s.width + 10 : "center" == F ? s.centerX + Math.max(D, l) / 2 + E : "right" == F ? s.x + s.width + E : G + Math.max(D, l) + E } }, _getLabelLineStartPoint: function(m, s, o, r, l) { return "center" == l ? s.centerX : r > o ? m + Math.min(o, r) / 2 : m + Math.max(o, r) / 2 }, _needLabel: function(a, m, l) { return this.deepQuery([m, a], "itemStyle." + (l ? "emphasis" : "normal") + ".label.show") }, _needLabelLine: function(a, m, l) { return this.deepQuery([m, a], "itemStyle." + (l ? "emphasis" : "normal") + ".labelLine.show") }, refresh: function(a) { a && (this.option = a, this.series = a.series), this.backupShapeList(), this._buildShape() } }, q.inherits(B, u), p("../chart").define("funnel", B), B }), d("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(m) { function z(l, C, s, i, A) { q.call(this, l, C, s, i, A); var B = this; B._ondragend = function() { B.isDragend = !0 }, this.refresh(i) } var q = m("./base"), v = m("../layout/eventRiver"), j = m("zrender/shape/Polygon"); m("../component/axis"), m("../component/grid"), m("../component/dataZoom"); var w = m("../config"); w.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 x = m("../util/ecData"), y = m("../util/date"), u = m("zrender/tool/util"), p = m("zrender/tool/color"); return z.prototype = { type: w.CHART_TYPE_EVENTRIVER, _buildShape: function() { var n = this.series; this.selectedMap = {}, this._dataPreprocessing(); for (var A = this.component.legend, r = [], l = 0; l < n.length; l++) { if (n[l].type === this.type) { n[l] = this.reformOption(n[l]), this.legendHoverLink = n[l].legendHoverLink || this.legendHoverLink; var s = n[l].name || ""; if (this.selectedMap[s] = A ? A.isSelected(s) : !0, !this.selectedMap[s]) { continue } this.buildMark(l), r.push(this.series[l]) } } v(r, this._intervalX, this.component.grid.getArea()), this._drawEventRiver(), this.addShapeList() }, _dataPreprocessing: function() { for (var A, H, C = this.series, E = 0, s = C.length; s > E; E++) { if (C[E].type === this.type) { A = this.component.xAxis.getAxis(C[E].xAxisIndex || 0); for (var F = 0, G = C[E].data.length; G > F; F++) { H = C[E].data[F].evolution; for (var D = 0, B = H.length; B > D; D++) { H[D].timeScale = A.getCoord(y.getNewDate(H[D].time) - 0), H[D].valueScale = Math.pow(H[D].value, 0.8) } } } } this._intervalX = Math.round(this.component.grid.getWidth() / 40) }, _drawEventRiver: function() { for (var a = this.series, r = 0; r < a.length; r++) { var l = a[r].name || ""; if (a[r].type === this.type && this.selectedMap[l]) { for (var o = 0; o < a[r].data.length; o++) { this._drawEventBubble(a[r].data[o], r, o) } } } }, _drawEventBubble: function(A, J, C) { var F = this.series, G = F[J], I = G.name || "", D = G.data[C], E = [D, G], M = this.component.legend, L = M ? M.getColor(I) : this.zr.getColor(J), r = this.deepMerge(E, "itemStyle.normal") || {}, H = this.deepMerge(E, "itemStyle.emphasis") || {}, a = this.getItemStyleColor(r.color, J, C, D) || L, K = this.getItemStyleColor(H.color, J, C, D) || ("string" == typeof a ? p.lift(a, -0.2) : a), N = this._calculateControlPoints(A), B = { zlevel: G.zlevel, z: G.z, clickable: this.deepQuery(E, "clickable"), style: { pointList: N, smooth: "spline", brushType: "both", lineJoin: "round", color: a, lineWidth: r.borderWidth, strokeColor: r.borderColor }, highlightStyle: { color: K, lineWidth: H.borderWidth, strokeColor: H.borderColor }, draggable: "vertical", ondragend: this._ondragend }; B = new j(B), this.addLabel(B, G, D, A.name), x.pack(B, F[J], J, F[J].data[C], C, F[J].data[C].name), this.shapeList.push(B) }, _calculateControlPoints: function(B) { var I = this._intervalX, C = B.y, E = B.evolution, A = E.length; if (!(1 > A)) { for (var F = [], G = [], H = 0; A > H; H++) { F.push(E[H].timeScale), G.push(E[H].valueScale) } var D = []; D.push([F[0], C]); var H = 0; for (H = 0; A - 1 > H; H++) { D.push([(F[H] + F[H + 1]) / 2, G[H] / -2 + C]) } for (D.push([(F[H] + (F[H] + I)) / 2, G[H] / -2 + C]), D.push([F[H] + I, C]), D.push([(F[H] + (F[H] + I)) / 2, G[H] / 2 + C]), H = A - 1; H > 0; H--) { D.push([(F[H] + F[H - 1]) / 2, G[H - 1] / 2 + C]) } return D } }, ondragend: function(a, i) { this.isDragend && a.target && (i.dragOut = !0, i.dragIn = !0, i.needRefresh = !1, this.isDragend = !1) }, refresh: function(a) { a && (this.option = a, this.series = a.series), this.backupShapeList(), this._buildShape() } }, u.inherits(z, q), m("../chart").define("eventRiver", z), z }), d("echarts/layout/eventRiver", ["require"], function() { function l(t, A, E) { function G(r, x) { var s = r.importance, u = x.importance; return s > u ? -1 : u > s ? 1 : 0 } for (var H = 4, C = 0; C < t.length; C++) { for (var z = 0; z < t[C].data.length; z++) { null == t[C].data[z].weight && (t[C].data[z].weight = 1); for (var D = 0, K = 0; K < t[C].data[z].evolution.length; K++) { D += t[C].data[z].evolution[K].valueScale } t[C].data[z].importance = D * t[C].data[z].weight } t[C].data.sort(G) } for (var C = 0; C < t.length; C++) { null == t[C].weight && (t[C].weight = 1); for (var D = 0, z = 0; z < t[C].data.length; z++) { D += t[C].data[z].weight } t[C].importance = D * t[C].weight } t.sort(G); for (var J = Number.MAX_VALUE, q = 0, C = 0; C < t.length; C++) { for (var z = 0; z < t[C].data.length; z++) { for (var K = 0; K < t[C].data[z].evolution.length; K++) { var F = t[C].data[z].evolution[K].timeScale; J = Math.min(J, F), q = Math.max(q, F) } } } J = ~~J, q = ~~q; for (var n = function() { var i = q - J + 1 + ~~A; if (0 >= i) { return [0] } for (var r = []; i--;) { r.push(0) } return r }(), I = n.slice(0), M = [], w = 0, a = 0, C = 0; C < t.length; C++) { for (var z = 0; z < t[C].data.length; z++) { var v = t[C].data[z]; v.time = [], v.value = []; for (var B, L = 0, K = 0; K < t[C].data[z].evolution.length; K++) { B = t[C].data[z].evolution[K], v.time.push(B.timeScale), v.value.push(B.valueScale), L = Math.max(L, B.valueScale) } o(v, A, J), v.y = j(I, v, function(i, r) { return i.ypx[r] }), v._offset = j(n, v, function() { return H }), w = Math.max(w, v.y + L), a = Math.max(a, v._offset), M.push(v) } } p(M, E, w, a) } function p(v, E, x, A) { for (var q = E.height, B = A / q > 0.5 ? 0.5 : 1, C = E.y, D = (E.height - A) / x, y = 0, w = v.length; w > y; y++) { var z = v[y]; z.y = C + D * z.y + z._offset * B, delete z.time, delete z.value, delete z.xpx, delete z.ypx, delete z._offset; for (var G = z.evolution, F = 0, u = G.length; u > F; F++) { G[F].valueScale *= D } } } function m(r, w, s, u) { if (r === s) { throw new Error("x0 is equal with x1!!!") } if (w === u) { return function() { return w } } var q = (w - u) / (r - s), v = (u * r - w * s) / (r - s); return function(a) { return q * a + v } } function o(q, B, x) { var i = ~~B, y = q.time.length; q.xpx = [], q.ypx = []; for (var z, A = 0, v = 0, u = 0, w = 0, D = 0; y > A; A++) { v = ~~q.time[A], w = q.value[A] / 2, A === y - 1 ? (u = v + i, D = 0) : (u = ~~q.time[A + 1], D = q.value[A + 1] / 2), z = m(v, w, u, D); for (var C = v; u > C; C++) { q.xpx.push(C - x), q.ypx.push(z(C)) } } q.xpx.push(u - x), q.ypx.push(D) } function j(s, y, u) { for (var v, q = 0, w = y.xpx.length, x = 0; w > x; x++) { v = u(y, x), q = Math.max(q, v + s[y.xpx[x]]) } for (x = 0; w > x; x++) { v = u(y, x), s[y.xpx[x]] = q + v } return q } return l }), d("echarts/chart/venn", ["require", "./base", "zrender/shape/Text", "zrender/shape/Circle", "zrender/shape/Path", "../config", "../util/ecData", "zrender/tool/util", "../chart"], function(m) { function y(l, z, r, i, s) { p.call(this, l, z, r, i, s), this.refresh(i) } var p = m("./base"), u = m("zrender/shape/Text"), j = m("zrender/shape/Circle"), v = m("zrender/shape/Path"), w = m("../config"); w.venn = { zlevel: 0, z: 1, calculable: !1 }; var x = m("../util/ecData"), q = m("zrender/tool/util"); return y.prototype = { type: w.CHART_TYPE_VENN, _buildShape: function() { this.selectedMap = {}, this._symbol = this.option.symbolList, this._queryTarget, this._dropBoxList = [], this._vennDataCounter = 0; for (var a = this.series, r = this.component.legend, l = 0; l < a.length; l++) { if (a[l].type === w.CHART_TYPE_VENN) { a[l] = this.reformOption(a[l]); var o = a[l].name || ""; if (this.selectedMap[o] = r ? r.isSelected(o) : !0, !this.selectedMap[o]) { continue } this._buildVenn(l) } } this.addShapeList() }, _buildVenn: function(B) { var L, D, G = this.series[B], z = G.data; z[0].value > z[1].value ? (L = this.zr.getHeight() / 3, D = L * Math.sqrt(z[1].value) / Math.sqrt(z[0].value)) : (D = this.zr.getHeight() / 3, L = D * Math.sqrt(z[0].value) / Math.sqrt(z[1].value)); var H = this.zr.getWidth() / 2 - L, J = (L + D) / 2 * Math.sqrt(z[2].value) / Math.sqrt((z[0].value + z[1].value) / 2), K = L + D; 0 !== z[2].value && (K = this._getCoincideLength(z[0].value, z[1].value, z[2].value, L, D, J, Math.abs(L - D), L + D)); var E = H + K, C = this.zr.getHeight() / 2; if (this._buildItem(B, 0, z[0], H, C, L), this._buildItem(B, 1, z[1], E, C, D), 0 !== z[2].value && z[2].value !== z[0].value && z[2].value !== z[1].value) { var F = (L * L - D * D) / (2 * K) + K / 2, N = K / 2 - (L * L - D * D) / (2 * K), M = Math.sqrt(L * L - F * F), A = 0, I = 0; z[0].value > z[1].value && H + F > E && (I = 1), z[0].value < z[1].value && H + N > E && (A = 1), this._buildCoincideItem(B, 2, z[2], H + F, C - M, C + M, L, D, A, I) } }, _getCoincideLength: function(C, M, E, H, z, I, K, L) { var F = (H * H - z * z) / (2 * I) + I / 2, D = I / 2 - (H * H - z * z) / (2 * I), G = Math.acos(F / H), P = Math.acos(D / z), O = H * H * Math.PI, B = G * H * H - F * H * Math.sin(G) + P * z * z - D * z * Math.sin(P), J = B / O, A = E / C, N = Math.abs(J / A); return N > 0.999 && 1.001 > N ? I : 0.999 >= N ? (L = I, I = (I + K) / 2, this._getCoincideLength(C, M, E, H, z, I, K, L)) : (K = I, I = (I + L) / 2, this._getCoincideLength(C, M, E, H, z, I, K, L)) }, _buildItem: function(z, H, B, E, s, F) { var G = this.series, C = G[z], A = this.getCircle(z, H, B, E, s, F); if (x.pack(A, C, z, B, H, B.name), this.shapeList.push(A), C.itemStyle.normal.label.show) { var D = this.getLabel(z, H, B, E, s, F); x.pack(D, C, z, C.data[H], H, C.data[H].name), this.shapeList.push(D) } }, _buildCoincideItem: function(B, M, F, J, o, L, H, E, I, P) { var O = this.series, A = O[B], K = [F, A], z = this.deepMerge(K, "itemStyle.normal") || {}, N = this.deepMerge(K, "itemStyle.emphasis") || {}, Q = z.color || this.zr.getColor(M), D = N.color || this.zr.getColor(M), s = "M" + J + "," + o + "A" + H + "," + H + ",0," + I + ",1," + J + "," + L + "A" + E + "," + E + ",0," + P + ",1," + J + "," + o, C = { color: Q, path: s }, G = { zlevel: A.zlevel, z: A.z, style: C, highlightStyle: { color: D, lineWidth: N.borderWidth, strokeColor: N.borderColor } }; G = new v(G), G.buildPathArray && (G.style.pathArray = G.buildPathArray(C.path)), x.pack(G, O[B], 0, F, M, F.name), this.shapeList.push(G) }, getCircle: function(z, I, B, E, F, G) { var H = this.series[z], C = [B, H], A = this.deepMerge(C, "itemStyle.normal") || {}, D = this.deepMerge(C, "itemStyle.emphasis") || {}, K = A.color || this.zr.getColor(I), J = D.color || this.zr.getColor(I), a = { zlevel: H.zlevel, z: H.z, clickable: !0, style: { x: E, y: F, r: G, brushType: "fill", opacity: 1, color: K }, highlightStyle: { color: J, lineWidth: D.borderWidth, strokeColor: D.borderColor } }; return this.deepQuery([B, H, this.option], "calculable") && (this.setCalculable(a), a.draggable = !0), new j(a) }, getLabel: function(B, L, E, n, H, J) { var K = this.series[B], F = K.itemStyle, D = [E, K], G = this.deepMerge(D, "itemStyle.normal") || {}, O = "normal", N = F[O].label, A = N.textStyle || {}, I = this.getLabelText(L, E, O), z = this.getFont(A), M = G.color || this.zr.getColor(L), P = A.fontSize || 12, C = { zlevel: K.zlevel, z: K.z, style: { x: n, y: H - J - P, color: A.color || M, text: I, textFont: z, textAlign: "center" } }; return new u(C) }, getLabelText: function(r, B, s) { var z = this.series, l = z[0], A = this.deepQuery([B, l], "itemStyle." + s + ".label.formatter"); return A ? "function" == typeof A ? A(l.name, B.name, B.value) : "string" == typeof A ? (A = A.replace("{a}", "{a0}").replace("{b}", "{b0}").replace("{c}", "{c0}"), A = A.replace("{a0}", l.name).replace("{b0}", B.name).replace("{c0}", B.value)) : void 0 : B.name }, refresh: function(a) { a && (this.option = a, this.series = a.series), this._buildShape() } }, q.inherits(y, p), m("../chart").define("venn", y), y }), d("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(q) { function C(l, G, m, i, s) { v.call(this, l, G, m, i, s), this.refresh(i); var F = this; F._onclick = function(a) { return F.__onclick(a) }, F.zr.on(E.EVENT.CLICK, F._onclick) } var v = q("./base"), y = q("zrender/tool/area"), j = q("zrender/shape/Rectangle"), z = q("zrender/shape/Text"), A = q("zrender/shape/Line"), B = q("../layout/TreeMap"), w = q("../data/Tree"), u = q("../config"); u.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 x = q("../util/ecData"), E = q("zrender/config"), D = (q("zrender/tool/event"), q("zrender/tool/util")), p = q("zrender/tool/color"); return C.prototype = { type: u.CHART_TYPE_TREEMAP, refresh: function(m) { this.clear(), m && (this.option = m, this.series = this.option.series), this._treesMap = {}; for (var s = this.series, o = this.component.legend, r = 0; r < s.length; r++) { if (s[r].type === u.CHART_TYPE_TREEMAP) { s[r] = this.reformOption(s[r]); var l = s[r].name || ""; if (this.selectedMap[l] = o ? o.isSelected(l) : !0, !this.selectedMap[l]) { continue } this._buildSeries(s[r], r) } } }, _buildSeries: function(a, o) { var l = w.fromOptionData(a.name, a.data); this._treesMap[o] = l; var m = a.root && l.getNodeById(a.root) || l.root; this._buildTreemap(m, o) }, _buildTreemap: function(I, Z) { for (var N = this.shapeList, R = 0; R < N.length;) { var s = N[R]; x.get(s, "seriesIndex") === Z ? (this.zr.delShape(N[R]), N.splice(R, 1)) : R++ } for (var S = N.length, Y = this.series[Z], P = Y.itemStyle, M = this.parsePercent(Y.size[0], this.zr.getWidth()) || 400, ac = this.parsePercent(Y.size[1], this.zr.getHeight()) || 500, ab = this.parseCenter(this.zr, Y.center), H = ab[0] - 0.5 * M, T = ab[1] - 0.5 * ac, G = M * ac, aa = 0, ag = [], K = I.children, R = 0; R < K.length; R++) { aa += K[R].data.value } for (var F = 0; F < K.length; F++) { ag.push(K[F].data.value * G / aa) } for (var J = new B({ x: H, y: T, width: M, height: ac }), O = J.run(ag), ae = 0; ae < O.length; ae++) { var m = K[ae].data, Q = O[ae], ad = [m.itemStyle, P], af = this.deepMerge(ad); af.normal.color || (af.normal.color = this.zr.getColor(ae)), af.emphasis.color || (af.emphasis.color = af.normal.color), this._buildItem(m, af, Q, Z, ae), m.children && this._buildChildrenTreemap(m.children, af, Q, Z) } this.query(Y, "itemStyle.normal.breadcrumb.show") && this._buildBreadcrumb(I, Z, H, T + ac); for (var R = S; R < N.length; R++) { this.zr.addShape(N[R]) } }, _buildItem: function(m, I, s, F, l) { var G = this.series, H = this.getRectangle(m, I, s); x.pack(H, G[F], F, m, l, m.name), this.shapeList.push(H) }, getRectangle: function(a, K, m) { var G = K.emphasis, H = K.normal, I = this.getLabel(K, m, a.name, a.value), J = this.option.hoverable, F = { zlevel: this.getZlevelBase(), z: this.getZBase(), hoverable: J, clickable: !0, style: D.merge({ x: m.x, y: m.y, width: m.width, height: m.height, brushType: "both", color: H.color, lineWidth: H.borderWidth, strokeColor: H.borderColor }, I.style, !0), highlightStyle: D.merge({ color: G.color, lineWidth: G.borderWidth, strokeColor: G.borderColor }, I.highlightStyle, !0) }; return new j(F) }, getLabel: function(H, R, K, n) { var N = H.normal.label.textStyle, P = [H.emphasis.label.textStyle, N], Q = this.deepMerge(P), L = H.normal.label.formatter, J = this.getLabelText(K, n, L), M = this.getFont(N), W = y.getTextWidth(J, M), T = y.getTextHeight(J, M), G = this.deepQuery([H.emphasis, H.normal], "label.formatter"), O = this.getLabelText(K, n, G), F = this.getFont(Q), S = y.getTextWidth(J, F), X = y.getTextHeight(J, F); H.normal.label.show ? (H.normal.label.x + W > R.width || H.normal.label.y + T > R.height) && (J = "") : J = "", H.emphasis.label.show ? (Q.x + S > R.width || Q.y + X > R.height) && (O = "") : O = ""; var I = { style: { textX: R.x + H.normal.label.x, textY: R.y + H.normal.label.y, text: J, textPosition: "specific", textColor: N.color, textFont: M }, highlightStyle: { textX: R.x + H.emphasis.label.x, textY: R.y + H.emphasis.label.y, text: O, textColor: Q.color, textPosition: "specific" } }; return I }, getLabelText: function(a, m, l) { return l ? "function" == typeof l ? l.call(this.myChart, a, m) : "string" == typeof l ? (l = l.replace("{b}", "{b0}").replace("{c}", "{c0}"), l = l.replace("{b0}", a).replace("{c0}", m)) : void 0 : a }, _buildChildrenTreemap: function(G, P, J, L) { for (var m = J.width * J.height, M = 0, O = [], K = 0; K < G.length; K++) { M += G[K].value } for (var I = 0; I < G.length; I++) { O.push(G[I].value * m / M) } for (var S = new B({ x: J.x, y: J.y, width: J.width, height: J.height }), R = S.run(O), F = P.normal.childBorderWidth, N = P.normal.childBorderColor, s = 0; s < R.length; s++) { var Q = R[s], T = []; J.y.toFixed(2) !== Q.y.toFixed(2) && T.push(this._getLine(Q.x, Q.y, Q.x + Q.width, Q.y, F, N)), J.x.toFixed(2) !== Q.x.toFixed(2) && T.push(this._getLine(Q.x, Q.y, Q.x, Q.y + Q.height, F, N)), (J.y + J.height).toFixed(2) !== (Q.y + Q.height).toFixed(2) && T.push(this._getLine(Q.x, Q.y + Q.height, Q.x + Q.width, Q.y + Q.height, F, N)), (J.x + J.width).toFixed(2) !== (Q.x + Q.width).toFixed(2) && T.push(this._getLine(Q.x + Q.width, Q.y, Q.x + Q.width, Q.y + Q.height, F, N)); for (var H = 0; H < T.length; H++) { x.set(T[H], "seriesIndex", L), this.shapeList.push(T[H]) } } }, _getLine: function(m, I, r, F, l, G) { var H = { zlevel: this.getZlevelBase(), z: this.getZBase(), hoverable: !1, style: { xStart: m, yStart: I, xEnd: r, yEnd: F, lineWidth: l, strokeColor: G } }; return new A(H) }, _buildBreadcrumb: function(F, N, H, J) { for (var m = [], L = F; L;) { m.unshift(L.data.name), L = L.parent } for (var M = this.series[N], I = this.query(M, "itemStyle.normal.breadcrumb.textStyle") || {}, G = this.query(M, "itemStyle.emphasis.breadcrumb.textStyle") || {}, P = { y: J + 10, textBaseline: "top", textAlign: "left", color: I.color, textFont: this.getFont(I) }, K = { brushType: "fill", color: G.color || p.lift(I.color, -0.3), textFont: this.getFont(G) }, o = 0; o < m.length; o++) { var O = new z({ zlevel: this.getZlevelBase(), z: this.getZBase(), style: D.merge({ x: H, text: m[o] + (m.length - 1 - o ? " > " : "") }, P), clickable: !0, highlightStyle: K }); x.set(O, "seriesIndex", N), x.set(O, "name", m[o]), H += O.getRect(O.style).width, this.shapeList.push(O) } }, __onclick: function(m) { var G = m.target; if (G) { var r = x.get(G, "seriesIndex"), s = x.get(G, "name"), l = this._treesMap[r], F = l.getNodeById(s); F && F.children.length && this._buildTreemap(F, r) } } }, D.inherits(C, v), q("../chart").define("treemap", C), C }), d("echarts/layout/TreeMap", ["require"], function() { function a(i) { ({ x: i.x, y: i.y, width: i.width, height: i.height }); this.x = i.x, this.y = i.y, this.width = i.width, this.height = i.height } return a.prototype.run = function(i) { var j = []; return this._squarify(i, { x: this.x, y: this.y, width: this.width, height: this.height }, j), j }, a.prototype._squarify = function(p, B, u) { var x = "VERTICAL", j = B.width, y = B.height; B.width < B.height && (x = "HORIZONTAL", j = B.height, y = B.width); for (var z = this._getShapeListInAbstractRow(p, j, y), A = 0; A < z.length; A++) { z[A].x = 0, z[A].y = 0; for (var v = 0; A > v; v++) { z[A].y += z[v].height } } var q = {}; if ("VERTICAL" == x) { for (var w = 0; w < z.length; w++) { u.push({ x: z[w].x + B.x, y: z[w].y + B.y, width: z[w].width, height: z[w].height }) } q = { x: z[0].width + B.x, y: B.y, width: B.width - z[0].width, height: B.height } } else { for (var D = 0; D < z.length; D++) { u.push({ x: z[D].y + B.x, y: z[D].x + B.y, width: z[D].height, height: z[D].width }) } q = { x: B.x, y: B.y + z[0].width, width: B.width, height: B.height - z[0].width } } var C = p.slice(z.length); 0 !== C.length && this._squarify(C, q, u) }, a.prototype._getShapeListInAbstractRow = function(l, r, m) { if (1 === l.length) { return [{ width: r, height: m }] } for (var p = 1; p < l.length; p++) { var j = this._placeFixedNumberRectangles(l.slice(0, p), r, m), q = this._placeFixedNumberRectangles(l.slice(0, p + 1), r, m); if (this._isFirstBetter(j, q)) { return j } } }, a.prototype._placeFixedNumberRectangles = function(m, z, q) { for (var v = m.length, j = [], w = 0, x = 0; x < m.length; x++) { w += m[x] } for (var y = w / q, u = 0; v > u; u++) { var p = q * m[u] / w; j.push({ width: y, height: p }) } return j }, a.prototype._isFirstBetter = function(j, o) { var l = j[0].height / j[0].width; l = l > 1 ? 1 / l : l; var m = o[0].height / o[0].width; return m = m > 1 ? 1 / m : m, Math.abs(l - 1) <= Math.abs(m - 1) ? !0 : !1 }, a }), d("echarts/data/Tree", ["require", "zrender/tool/util"], function(a) { function m(i, n) { this.id = i, this.depth = 0, this.height = 0, this.children = [], this.parent = null, this.data = n || null } function j(i) { this.root = new m(i) } var l = a("zrender/tool/util"); return m.prototype.add = function(i) { var n = this.children; i.parent !== this && (n.push(i), i.parent = this) }, m.prototype.remove = function(n) { var p = this.children, o = l.indexOf(p, n); o >= 0 && (p.splice(o, 1), n.parent = null) }, m.prototype.traverse = function(n, p) { n.call(p, this); for (var o = 0; o < this.children.length; o++) { this.children[o].traverse(n, p) } }, m.prototype.updateDepthAndHeight = function(o) { var r = 0; this.depth = o; for (var p = 0; p < this.children.length; p++) { var q = this.children[p]; q.updateDepthAndHeight(o + 1), q.height > r && (r = q.height) } this.height = r + 1 }, m.prototype.getNodeById = function(n) { if (this.id === n) { return this } for (var p = 0; p < this.children.length; p++) { var o = this.children[p].getNodeById(n); if (o) { return o } } }, j.prototype.traverse = function(i, n) { this.root.traverse(i, n) }, j.prototype.getSubTree = function(i) { var p = this.getNodeById(i); if (p) { var o = new j(p.id); return o.root = p, o } }, j.prototype.getNodeById = function(i) { return this.root.getNodeById(i) }, j.fromOptionData = function(p, q) { function i(s, w) { var x = new m(s.name, s); w.add(x); var y = s.children; if (y) { for (var z = 0; z < y.length; z++) { i(y[z], x) } } } var t = new j(p), u = t.root; u.data = { name: p, children: q }; for (var v = 0; v < q.length; v++) { i(q[v], u) } return t.root.updateDepthAndHeight(0), t }, j.fromGraph = function(p) { function v(A) { for (var n = p.getNodeById(A.id), e = 0; e < n.outEdges.length; e++) { var o = n.outEdges[e], z = w[o.node2.id]; A.children.push(z), v(z) } } for (var i = {}, w = {}, x = 0; x < p.nodes.length; x++) { var y, t = p.nodes[x]; 0 === t.inDegree() ? (i[t.id] = new j(t.id), y = i[t.id].root) : y = new m(t.id), y.data = t.data, w[t.id] = y } var q = []; for (var u in i) { v(i[u].root), i[u].root.updateDepthAndHeight(0), q.push(i[u]) } return q }, j }), d("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(p) { function B(l, s, m, i, r) { u.call(this, l, s, m, i, r), this.refresh(i) } var u = p("./base"), x = 0.618, j = p("../util/shape/Icon"), y = p("zrender/shape/Image"), z = p("zrender/shape/Line"), A = p("zrender/shape/BezierCurve"), v = p("../layout/Tree"), q = p("../data/Tree"), w = p("../config"); w.tree = { zlevel: 1, z: 2, calculable: !1, clickable: !0, rootLocation: {}, orient: "vertical", symbol: "circle", symbolSize: 20, nodePadding: 30, layerPadding: 100, itemStyle: { normal: { label: { show: !0 }, lineStyle: { width: 1, color: "#777", type: "curve" } }, emphasis: {} } }; var D = p("../util/ecData"), C = (p("zrender/config"), p("zrender/tool/event"), p("zrender/tool/util")); return B.prototype = { type: w.CHART_TYPE_TREE, _buildShape: function(m, s) { var o = m.data[0]; this.tree = q.fromOptionData(o.name, o.children), this.tree.root.data = o, this._setTreeShape(m), this.tree.traverse(function(a) { this._buildItem(a, m, s), a.children.length > 0 && this._buildLink(a, m) }, this); var r = m.roam === !0 || "move" === m.roam, l = m.roam === !0 || "scale" === m.roam; this.zr.modLayer(this.getZlevelBase(), { panable: r, zoomable: l }), (this.query("markPoint.effect.show") || this.query("markLine.effect.show")) && this.zr.modLayer(w.EFFECT_ZLEVEL, { panable: r, zoomable: l }), this.addShapeList() }, _buildItem: function(E, N, G) { var J = [E.data, N], L = this.deepQuery(J, "symbol"), M = this.deepMerge(J, "itemStyle.normal") || {}, H = this.deepMerge(J, "itemStyle.emphasis") || {}, F = M.color || this.zr.getColor(), I = H.color || this.zr.getColor(), O = -E.layout.angle || 0; E.id === this.tree.root.id && (O = 0); var o = "right"; Math.abs(O) >= Math.PI / 2 && Math.abs(O) < 3 * Math.PI / 2 && (O += Math.PI, o = "left"); var K = [O, E.layout.position[0], E.layout.position[1]], a = new j({ zlevel: this.getZlevelBase(), z: this.getZBase() + 1, rotation: K, clickable: this.deepQuery(J, "clickable"), style: { x: E.layout.position[0] - 0.5 * E.layout.width, y: E.layout.position[1] - 0.5 * E.layout.height, width: E.layout.width, height: E.layout.height, iconType: L, color: F, brushType: "both", lineWidth: M.borderWidth, strokeColor: M.borderColor }, highlightStyle: { color: I, lineWidth: H.borderWidth, strokeColor: H.borderColor } }); a.style.iconType.match("image") && (a.style.image = a.style.iconType.replace(new RegExp("^image:\\/\\/"), ""), a = new y({ rotation: K, style: a.style, highlightStyle: a.highlightStyle, clickable: a.clickable, zlevel: this.getZlevelBase(), z: this.getZBase() })), this.deepQuery(J, "itemStyle.normal.label.show") && (a.style.text = null == E.data.label ? E.id : E.data.label, a.style.textPosition = this.deepQuery(J, "itemStyle.normal.label.position"), "radial" === N.orient && "inside" !== a.style.textPosition && (a.style.textPosition = o), a.style.textColor = this.deepQuery(J, "itemStyle.normal.label.textStyle.color"), a.style.textFont = this.getFont(this.deepQuery(J, "itemStyle.normal.label.textStyle") || {})), this.deepQuery(J, "itemStyle.emphasis.label.show") && (a.highlightStyle.textPosition = this.deepQuery(J, "itemStyle.emphasis.label.position"), a.highlightStyle.textColor = this.deepQuery(J, "itemStyle.emphasis.label.textStyle.color"), a.highlightStyle.textFont = this.getFont(this.deepQuery(J, "itemStyle.emphasis.label.textStyle") || {})), D.pack(a, N, G, E.data, 0, E.id), this.shapeList.push(a) }, _buildLink: function(E, L) { var F = L.itemStyle.normal.lineStyle; if ("broken" === F.type) { return void this._buildBrokenLine(E, F, L) } for (var H = 0; H < E.children.length; H++) { var m = E.layout.position[0], I = E.layout.position[1], J = E.children[H].layout.position[0], K = E.children[H].layout.position[1]; switch (F.type) { case "curve": this._buildBezierCurve(E, E.children[H], F, L); break; case "broken": break; default: var G = this._getLine(m, I, J, K, F); this.shapeList.push(G) } } }, _buildBrokenLine: function(G, Q, J) { var n = C.clone(Q); n.type = "solid"; var M = [], O = G.layout.position[0], P = G.layout.position[1], K = J.orient, I = G.children[0].layout.position[1], L = O, S = P + (I - P) * (1 - x), F = G.children[0].layout.position[0], N = S, E = G.children[G.children.length - 1].layout.position[0], R = S; if ("horizontal" === K) { var T = G.children[0].layout.position[0]; L = O + (T - O) * (1 - x), S = P, F = L, N = G.children[0].layout.position[1], E = L, R = G.children[G.children.length - 1].layout.position[1] } M.push(this._getLine(O, P, L, S, n)), M.push(this._getLine(F, N, E, R, n)); for (var H = 0; H < G.children.length; H++) { T = G.children[H].layout.position[0], I = G.children[H].layout.position[1], "horizontal" === K ? N = I : F = T, M.push(this._getLine(F, N, T, I, n)) } this.shapeList = this.shapeList.concat(M) }, _getLine: function(m, s, o, r, l) { return m === o && (m = o = this.subPixelOptimize(m, l.width)), s === r && (s = r = this.subPixelOptimize(s, l.width)), new z({ zlevel: this.getZlevelBase(), hoverable: !1, style: C.merge({ xStart: m, yStart: s, xEnd: o, yEnd: r, lineType: l.type, strokeColor: l.color, lineWidth: l.width }, l, !0) }) }, _buildBezierCurve: function(H, U, M, s) { var R = x, T = s.orient, O = H.layout.position[0], K = H.layout.position[1], Q = U.layout.position[0], X = U.layout.position[1], G = O, S = (X - K) * R + K, F = Q, W = (X - K) * (1 - R) + K; if ("horizontal" === T) { G = (Q - O) * R + O, S = K, F = (Q - O) * (1 - R) + O, W = X } else { if ("radial" === T) { if (H.id === this.tree.root.id) { G = (Q - O) * R + O, S = (X - K) * R + K, F = (Q - O) * (1 - R) + O, W = (X - K) * (1 - R) + K } else { var Z = H.layout.originPosition[0], J = H.layout.originPosition[1], E = U.layout.originPosition[0], I = U.layout.originPosition[1], N = this.tree.root.layout.position[0], Y = this.tree.root.layout.position[1]; G = Z, S = (I - J) * R + J, F = E, W = (I - J) * (1 - R) + J; var n = (G - this.minX) / this.width * Math.PI * 2; G = S * Math.cos(n) + N, S = S * Math.sin(n) + Y, n = (F - this.minX) / this.width * Math.PI * 2, F = W * Math.cos(n) + N, W = W * Math.sin(n) + Y } } } var P = new A({ zlevel: this.getZlevelBase(), hoverable: !1, style: C.merge({ xStart: O, yStart: K, cpX1: G, cpY1: S, cpX2: F, cpY2: W, xEnd: Q, yEnd: X, strokeColor: M.color, lineWidth: M.width }, M, !0) }); this.shapeList.push(P) }, _setTreeShape: function(E) { var M = new v({ nodePadding: E.nodePadding, layerPadding: E.layerPadding }); this.tree.traverse(function(m) { var a = [m.data, E], e = this.deepQuery(a, "symbolSize"); "number" == typeof e && (e = [e, e]), m.layout = { width: e[0], height: e[1] } }, this), M.run(this.tree); var G = E.orient, I = E.rootLocation.x, l = E.rootLocation.y, J = this.zr.getWidth(), K = this.zr.getHeight(); I = "center" === I ? 0.5 * J : this.parsePercent(I, J), l = "center" === l ? 0.5 * K : this.parsePercent(l, K), l = this.parsePercent(l, K), "horizontal" === G && (I = isNaN(I) ? 10 : I, l = isNaN(l) ? 0.5 * K : l), "radial" === G ? (I = isNaN(I) ? 0.5 * J : I, l = isNaN(l) ? 0.5 * K : l) : (I = isNaN(I) ? 0.5 * J : I, l = isNaN(l) ? 10 : l); var L = this.tree.root.layout.position[0]; if ("radial" === G) { var F = 1 / 0, H = 0, N = 0; this.tree.traverse(function(a) { H = Math.max(H, a.layout.position[0]), F = Math.min(F, a.layout.position[0]), N = Math.max(N, a.layout.width) }), this.width = H - F + 2 * N, this.minX = F } this.tree.traverse(function(s) { var i, n; if ("vertical" === G && "inverse" === E.direction) { i = s.layout.position[0] - L + I, n = l - s.layout.position[1] } else { if ("vertical" === G) { i = s.layout.position[0] - L + I, n = s.layout.position[1] + l } else { if ("horizontal" === G && "inverse" === E.direction) { n = s.layout.position[0] - L + l, i = I - s.layout.position[1] } else { if ("horizontal" === G) { n = s.layout.position[0] - L + l, i = s.layout.position[1] + I } else { i = s.layout.position[0], n = s.layout.position[1], s.layout.originPosition = [i, n]; var a = n, e = (i - F) / this.width * Math.PI * 2; i = a * Math.cos(e) + I, n = a * Math.sin(e) + l, s.layout.angle = e } } } } s.layout.position[0] = i, s.layout.position[1] = n }, this) }, refresh: function(m) { this.clear(), m && (this.option = m, this.series = this.option.series); for (var s = this.series, o = this.component.legend, r = 0; r < s.length; r++) { if (s[r].type === w.CHART_TYPE_TREE) { s[r] = this.reformOption(s[r]); var l = s[r].name || ""; if (this.selectedMap[l] = o ? o.isSelected(l) : !0, !this.selectedMap[l]) { continue } this._buildSeries(s[r], r) } } }, _buildSeries: function(a, i) { this._buildShape(a, i) } }, C.inherits(B, u), p("../chart").define("tree", B), B }), d("echarts/layout/Tree", ["require", "zrender/tool/vector"], function(a) { function l(i) { i = i || {}, this.nodePadding = i.nodePadding || 30, this.layerPadding = i.layerPadding || 100, this._layerOffsets = [], this._layers = [] } var j = a("zrender/tool/vector"); return l.prototype.run = function(m) { this._layerOffsets.length = 0; for (var o = 0; o < m.root.height + 1; o++) { this._layerOffsets[o] = 0, this._layers[o] = [] } this._updateNodeXPosition(m.root); var n = m.root; this._updateNodeYPosition(n, 0, n.layout.height) }, l.prototype._updateNodeXPosition = function(m) { var x = 1 / 0, q = -(1 / 0); m.layout.position = m.layout.position || j.create(); for (var i = 0; i < m.children.length; i++) { var u = m.children[i]; this._updateNodeXPosition(u); var v = u.layout.position[0]; x > v && (x = v), v > q && (q = v) } m.layout.position[0] = m.children.length > 0 ? (x + q) / 2 : 0; var w = this._layerOffsets[m.depth] || 0; if (w > m.layout.position[0]) { var p = w - m.layout.position[0]; this._shiftSubtree(m, p); for (var i = m.depth + 1; i < m.height + m.depth; i++) { this._layerOffsets[i] += p } } this._layerOffsets[m.depth] = m.layout.position[0] + m.layout.width + this.nodePadding, this._layers[m.depth].push(m) }, l.prototype._shiftSubtree = function(m, o) { m.layout.position[0] += o; for (var n = 0; n < m.children.length; n++) { this._shiftSubtree(m.children[n], o) } }, l.prototype._updateNodeYPosition = function(p, u, q) { p.layout.position[1] = u; for (var r = 0, m = 0; m < p.children.length; m++) { r = Math.max(p.children[m].layout.height, r) } var s = this.layerPadding; "function" == typeof s && (s = s(p.depth)); for (var m = 0; m < p.children.length; m++) { this._updateNodeYPosition(p.children[m], u + s + q, r) } }, l }), d("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(m) { function y(l, z, r, i, s) { p.call(this, l, z, r, i, s), this.refresh(i) } var p = m("./base"), u = m("zrender/shape/Text"), j = m("../layout/WordCloud"); m("../component/grid"), m("../component/dataRange"); var v = m("../config"), w = m("../util/ecData"), x = m("zrender/tool/util"), q = m("zrender/tool/color"); return v.wordCloud = { zlevel: 0, z: 2, clickable: !0, center: ["50%", "50%"], size: ["40%", "40%"], textRotation: [0, 90], textPadding: 0, autoSize: { enable: !0, minSize: 12 }, itemStyle: { normal: { textStyle: { fontSize: function(a) { return a.value } } } } }, y.prototype = { type: v.CHART_TYPE_WORDCLOUD, refresh: function(a) { a && (this.option = a, this.series = a.series), this._init() }, _init: function() { var a = this.series; this.backupShapeList(); for (var r = this.component.legend, l = 0; l < a.length; l++) { if (a[l].type === v.CHART_TYPE_WORDCLOUD) { a[l] = this.reformOption(a[l]); var o = a[l].name || ""; if (this.selectedMap[o] = r ? r.isSelected(o) : !0, !this.selectedMap[o]) { continue } this.buildMark(l), this._initSerie(a[l]) } } }, _initSerie: function(a) { var D = a.itemStyle.normal.textStyle, l = [this.parsePercent(a.size[0], this.zr.getWidth()) || 200, this.parsePercent(a.size[1], this.zr.getHeight()) || 200], z = this.parseCenter(this.zr, a.center), A = { size: l, wordletype: { autoSizeCal: a.autoSize }, center: z, rotate: a.textRotation, padding: a.textPadding, font: D.fontFamily, fontSize: D.fontSize, fontWeight: D.fontWeight, fontStyle: D.fontStyle, text: function(i) { return i.name }, data: a.data }, B = new j(A), C = this; B.end(function(i) { C._buildShapes(i) }), B.start() }, _buildShapes: function(a) { for (var n = a.length, l = 0; n > l; l++) { this._buildTextShape(a[l], 0, l) } this.addShapeList() }, _buildTextShape: function(z, G, B) { var l = this.series, D = l[G], F = D.name || "", A = D.data[B], C = [A, D], J = this.component.legend, I = J ? J.getColor(F) : this.zr.getColor(G), r = this.deepMerge(C, "itemStyle.normal") || {}, E = this.deepMerge(C, "itemStyle.emphasis") || {}, n = this.getItemStyleColor(r.color, G, B, A) || I, H = this.getItemStyleColor(E.color, G, B, A) || ("string" == typeof n ? q.lift(n, -0.2) : n), K = new u({ zlevel: D.zlevel, z: D.z, hoverable: !0, clickable: this.deepQuery(C, "clickable"), style: { x: 0, y: 0, text: z.text, color: n, textFont: [z.style, z.weight, z.size + "px", z.font].join(" "), textBaseline: "alphabetic", textAlign: "center" }, highlightStyle: { brushType: E.borderWidth ? "both" : "fill", color: H, lineWidth: E.borderWidth || 0, strokeColor: E.borderColor }, position: [z.x, z.y], rotation: [-z.rotate / 180 * Math.PI, 0, 0] }); w.pack(K, D, G, A, B, A.name), this.shapeList.push(K) } }, x.inherits(y, p), m("../chart").define("wordCloud", y), y }), d("echarts/layout/WordCloud", ["require", "../layout/WordCloudRectZero", "zrender/tool/util"], function(a) { function m(i) { this._init(i) } var j = a("../layout/WordCloudRectZero"), l = a("zrender/tool/util"); return m.prototype = { start: function() { function v() { B.totalArea = C, F.autoSizeCal.enable && B._autoCalTextSize(y, C, i, A, F.autoSizeCal.minSize), G.timer && clearInterval(G.timer), G.timer = setInterval(E, 0), E() } function E() { for (var n, p = +new Date, o = y.length; + new Date - p < G.timeInterval && ++D < o && G.timer;) { n = y[D], n.x = u[0] >> 1, n.y = u[1] >> 1, B._cloudSprite(n, y, D), n.hasText && B._place(z, n, w) && (x.push(n), n.x -= u[0] >> 1, n.y -= u[1] >> 1) } D >= o && (B.stop(), B._fixTagPosition(x), G.endcallback(x)) } var z = null, i = 0, A = 0, C = 0, D = -1, x = [], w = null, y = this.wordsdata, G = this.defaultOption, F = G.wordletype, u = G.size, B = this, q = new j({ type: F.type, width: u[0], height: u[1] }); return q.calculate(function(e) { z = e.initarr, i = e.maxWit, A = e.maxHit, C = e.area, w = e.imgboard, v() }, this), this }, _fixTagPosition: function(o) { for (var r = this.defaultOption.center, p = 0, q = o.length; q > p; p++) { o[p].x += r[0], o[p].y += r[1] } }, stop: function() { return this.defaultOption.timer && (clearInterval(this.defaultOption.timer), this.defaultOption.timer = null), this }, end: function(i) { return i && (this.defaultOption.endcallback = i), this }, _init: function(i) { this.defaultOption = {}, this._initProperty(i), this._initMethod(i), this._initCanvas(), this._initData(i.data) }, _initData: function(n) { var p = this, o = p.defaultOption; this.wordsdata = n.map(function(i, q) { return i.text = o.text.call(p, i, q), i.font = o.font.call(p, i, q), i.style = o.fontStyle.call(p, i, q), i.weight = o.fontWeight.call(p, i, q), i.rotate = o.rotate.call(p, i, q), i.size = ~~o.fontSize.call(p, i, q), i.padding = o.padding.call(p, i, q), i }).sort(function(i, q) { return q.value - i.value }) }, _initMethod: function(q) { function C(i) { return i.name } function v() { return "sans-serif" } function y() { return "normal" } function p(i) { return i.value } function z() { return 0 } function A(i) { return function() { return i[Math.round(Math.random() * (i.length - 1))] } } function B() { return 0 } function w(i) { var n = i[0] / i[1]; return function(o) { return [n * (o *= 0.1) * Math.cos(o), o * Math.sin(o)] } } function u(r) { var F = 4, s = F * r[0] / r[1], E = 0, o = 0; return function(i) { var n = 0 > i ? -1 : 1; switch (Math.sqrt(1 + 4 * n * i) - n & 3) { case 0: E += s; break; case 1: o += F; break; case 2: E -= s; break; default: o -= F } return [E, o] } } function x(i) { return "function" == typeof i ? i : function() { return i } } var D = this.defaultOption; D.text = q.text ? x(q.text) : C, D.font = q.font ? x(q.font) : v, D.fontSize = q.fontSize ? x(q.fontSize) : p, D.fontStyle = q.fontStyle ? x(q.fontStyle) : y, D.fontWeight = q.fontWeight ? x(q.fontWeight) : y, D.rotate = q.rotate ? A(q.rotate) : z, D.padding = q.padding ? x(q.padding) : B, D.center = q.center, D.spiral = w, D.endcallback = function() {}, D.rectangularSpiral = u, D.archimedeanSpiral = w }, _initProperty: function(i) { var n = this.defaultOption; n.size = i.size || [256, 256], n.wordletype = i.wordletype, n.words = i.words || [], n.timeInterval = 1 / 0, n.timer = null, n.spirals = { archimedean: n.archimedeanSpiral, rectangular: n.rectangularSpiral }, l.merge(n, { size: [256, 256], wordletype: { type: "RECT", areaPresent: 0.058, autoSizeCal: { enable: !0, minSize: 12 } } }) }, _initCanvas: function() { var q, v = Math.PI / 180, r = 64, s = 2048, p = 1; "undefined" != typeof document ? (q = document.createElement("canvas"), q.width = 1, q.height = 1, p = Math.sqrt(q.getContext("2d").getImageData(0, 0, 1, 1).data.length >> 2), q.width = (r << 5) / p, q.height = s / p) : q = new Canvas(r << 5, s); var u = q.getContext("2d"); u.fillStyle = u.strokeStyle = "red", u.textAlign = "center", this.defaultOption.c = u, this.defaultOption.cw = r, this.defaultOption.ch = s, this.defaultOption.ratio = p, this.defaultOption.cloudRadians = v }, _cloudSprite: function(D, S, H) { if (!D.sprite) { var N = this.defaultOption.cw, z = this.defaultOption.ch, O = this.defaultOption.c, Q = this.defaultOption.ratio, R = this.defaultOption.cloudRadians; O.clearRect(0, 0, (N << 5) / Q, z / Q); var J = 0, G = 0, M = 0, aa = S.length; for (--H; ++H < aa;) { D = S[H], O.save(), O.font = D.style + " " + D.weight + " " + ~~((D.size + 1) / Q) + "px " + D.font; var Y = O.measureText(D.text + "m").width * Q, C = D.size << 1; if (D.rotate) { var P = Math.sin(D.rotate * R), B = Math.cos(D.rotate * R), T = Y * B, af = Y * P, F = C * B, A = C * P; Y = Math.max(Math.abs(T + A), Math.abs(T - A)) + 31 >> 5 << 5, C = ~~Math.max(Math.abs(af + F), Math.abs(af - F)) } else { Y = Y + 31 >> 5 << 5 } if (C > M && (M = C), J + Y >= N << 5 && (J = 0, G += M, M = 0), G + C >= z) { break } O.translate((J + (Y >> 1)) / Q, (G + (C >> 1)) / Q), D.rotate && O.rotate(D.rotate * R), O.fillText(D.text, 0, 0), D.padding && (O.lineWidth = 2 * D.padding, O.strokeText(D.text, 0, 0)), O.restore(), D.width = Y, D.height = C, D.xoff = J, D.yoff = G, D.x1 = Y >> 1, D.y1 = C >> 1, D.x0 = -D.x1, D.y0 = -D.y1, D.hasText = !0, J += Y } for (var E = O.getImageData(0, 0, (N << 5) / Q, z / Q).data, I = []; --H >= 0;) { if (D = S[H], D.hasText) { for (var Y = D.width, ad = Y >> 5, C = D.y1 - D.y0, q = 0; C * ad > q; q++) { I[q] = 0 } if (J = D.xoff, null == J) { return } G = D.yoff; for (var K = 0, ac = -1, ae = 0; C > ae; ae++) { for (var q = 0; Y > q; q++) { var Z = ad * ae + (q >> 5), ab = E[(G + ae) * (N << 5) + (J + q) << 2] ? 1 << 31 - q % 32 : 0; I[Z] |= ab, K |= ab } K ? ac = ae : (D.y0++, C--, ae--, G++) } D.y1 = D.y0 + ac, D.sprite = I.slice(0, (D.y1 - D.y0) * ad) } } } }, _place: function(B, Q, F) { function K(u, ae, y) { y >>= 5; for (var aa, p = u.sprite, ab = u.width >> 5, ac = u.x - (ab << 4), ad = 127 & ac, L = 32 - ad, x = u.y1 - u.y0, W = (u.y + u.y0) * y + (ac >> 5), ag = 0; x > ag; ag++) { aa = 0; for (var af = 0; ab >= af; af++) { if ((aa << L | (ab > af ? (aa = p[ag * ab + af]) >>> ad : 0)) & ae[W + af]) { return !0 } } W += y } return !1 } function v(i, n) { return n.row[i.y] && n.cloumn[i.x] && i.x >= n.row[i.y].start && i.x <= n.row[i.y].end && i.y >= n.cloumn[i.x].start && i.y <= n.cloumn[i.x].end } for (var M, O, P, H = this.defaultOption.size, E = ([{ x: 0, y: 0 }, { x: H[0], y: H[1] }], Q.x), J = Q.y, T = Math.sqrt(H[0] * H[0] + H[1] * H[1]), S = this.defaultOption.spiral(H), A = Math.random() < 0.5 ? 1 : -1, N = -A; (M = S(N += A)) && (O = ~~M[0], P = ~~M[1], !(Math.min(O, P) > T));) { if (Q.x = E + O, Q.y = J + P, !(Q.x + Q.x0 < 0 || Q.y + Q.y0 < 0 || Q.x + Q.x1 > H[0] || Q.y + Q.y1 > H[1]) && !K(Q, B, H[0]) && v(Q, F)) { for (var z, R = Q.sprite, Z = Q.width >> 5, D = H[0] >> 5, w = Q.x - (Z << 4), C = 127 & w, G = 32 - C, Y = Q.y1 - Q.y0, q = (Q.y + Q.y0) * D + (w >> 5), I = 0; Y > I; I++) { z = 0; for (var X = 0; Z >= X; X++) { B[q + X] |= z << G | (Z > X ? (z = R[I * Z + X]) >>> C : 0) } q += D } return delete Q.sprite, !0 } } return !1 }, _autoCalTextSize: function(x, I, A, D, q) { function E(n) { v.clearRect(0, 0, (w << 5) / J, F / J), v.save(), v.font = n.style + " " + n.weight + " " + ~~((n.size + 1) / J) + "px " + n.font; var R = v.measureText(n.text + "m").width * J, P = n.size << 1; R = R + 31 >> 5 << 5, v.restore(), n.aw = R, n.ah = P; var Q, N, u; if (n.rotate) { var O = Math.sin(n.rotate * M), S = Math.cos(n.rotate * M), p = R * S, i = R * O, o = P * S, y = P * O; N = Math.max(Math.abs(p + y), Math.abs(p - y)) + 31 >> 5 << 5, u = ~~Math.max(Math.abs(i + o), Math.abs(i - o)) } return n.size <= K || n.rotate && R * P <= n.area && A >= N && D >= u || R * P <= n.area && A >= R && D >= P ? void(n.area = R * P) : (Q = n.rotate && N > A && u > D ? Math.min(A / N, D / u) : R > A || P > D ? Math.min(A / R, D / P) : Math.sqrt(n.area / (n.aw * n.ah)), n.size = ~~(Q * n.size), n.size < q ? void(n.size = q) : E(n)) } function G(o, s) { for (var p = o.length, r = 0; p--;) { r += s(o[p]) } return r } for (var H, B, z = G(x, function(i) { return i.size }), C = x.length, L = 0.25, K = q, w = this.defaultOption.cw, F = this.defaultOption.ch, v = this.defaultOption.c, J = this.defaultOption.ratio, M = this.defaultOption.cloudRadians; C--;) { H = x[C], B = H.size / z, H.areapre = L ? L > B ? B : L : B, H.area = I * H.areapre, H.totalarea = I, E(H) } } }, m }), d("echarts/layout/WordCloudRectZero", ["require"], function() { function a(i) { this.defaultOption = { type: "RECT" }, this._init(i) } return a.prototype = { RECT: "_calculateRect", _init: function(i) { this._initOption(i), this._initCanvas() }, _initOption: function(i) { for (k in i) { this.defaultOption[k] = i[k] } }, _initCanvas: function() { var j = document.createElement("canvas"); j.width = 1, j.height = 1; var m = Math.sqrt(j.getContext("2d").getImageData(0, 0, 1, 1).data.length >> 2); if (j.width = this.defaultOption.width, j.height = this.defaultOption.height, j.getContext) { var l = j.getContext("2d") } this.canvas = j, this.ctx = l, this.ratio = m }, calculate: function(j, o) { var l = this.defaultOption.type, m = this[l]; this[m].call(this, j, o) }, _calculateReturn: function(j, m, l) { m.call(l, j) }, _calculateRect: function(l, p) { var m = {}, o = this.defaultOption.width >> 5 << 5, j = this.defaultOption.height; m.initarr = this._rectZeroArray(o * j), m.area = o * j, m.maxHit = j, m.maxWit = o, m.imgboard = this._rectBoard(o, j), this._calculateReturn(m, l, p) }, _rectBoard: function(l, p) { for (var m = [], o = 0; p > o; o++) { m.push({ y: o, start: 0, end: l }) } for (var j = [], o = 0; l > o; o++) { j.push({ x: o, start: 0, end: p }) } return { row: m, cloumn: j } }, _rectZeroArray: function(j) { for (var o = [], l = j, m = -1; ++m < l;) { o[m] = 0 } return o } }, a }), d("echarts/chart/heatmap", ["require", "./base", "../layer/heatmap", "../config", "../util/ecData", "zrender/tool/util", "zrender/tool/color", "zrender/shape/Image", "../chart"], function(l) { function u(r, x, v, i, w) { m.call(this, r, x, v, i, w), this.refresh(i) } var m = l("./base"), p = l("../layer/heatmap"), j = l("../config"), q = (l("../util/ecData"), l("zrender/tool/util")), s = (l("zrender/tool/color"), l("zrender/shape/Image")); return j.heatmap = { zlevel: 0, z: 2, clickable: !0 }, u.prototype = { type: j.CHART_TYPE_HEATMAP, refresh: function(a) { this.clear(), a && (this.option = a, this.series = a.series), this._init() }, _init: function() { var a = this.series; this.backupShapeList(); for (var x = a.length, n = 0; x > n; ++n) { if (a[n].type === j.CHART_TYPE_HEATMAP) { a[n] = this.reformOption(a[n]); var v = new p(a[n]), w = v.getCanvas(a[n].data, this.zr.getWidth(), this.zr.getHeight()), r = new s({ position: [0, 0], scale: [1, 1], hoverable: this.option.hoverable, style: { x: 0, y: 0, image: w, width: w.width, height: w.height } }); this.shapeList.push(r) } } this.addShapeList() } }, q.inherits(u, m), l("../chart").define("heatmap", u), u }); var f = h("zrender"); f.tool = { color: h("zrender/tool/color"), math: h("zrender/tool/math"), util: h("zrender/tool/util"), vector: h("zrender/tool/vector"), area: h("zrender/tool/area"), event: h("zrender/tool/event") }, f.animation = { Animation: h("zrender/animation/Animation"), Cip: h("zrender/animation/Clip"), easing: h("zrender/animation/easing") }; var b = h("echarts"); b.config = h("echarts/config"), b.util = { mapData: { params: h("echarts/util/mapData/params") } }, h("echarts/chart/line"), h("echarts/chart/bar"), h("echarts/chart/scatter"), h("echarts/chart/k"), h("echarts/chart/pie"), h("echarts/chart/radar"), h("echarts/chart/chord"), h("echarts/chart/force"), h("echarts/chart/map"), h("echarts/chart/gauge"), h("echarts/chart/funnel"), h("echarts/chart/eventRiver"), h("echarts/chart/venn"), h("echarts/chart/treemap"), h("echarts/chart/tree"), h("echarts/chart/wordCloud"), h("echarts/chart/heatmap"), c.echarts = b, c.zrender = f }(window);