! 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[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: ["@@nJUXUV°UÑnU@mlLVaVln@@bn@VU@xlb@lLnKlVIJUVxnI@lVL@b°VX@bxnVVUnVVnU@kX@VwV@al¥UUnUWa@@wĸULU¥lKUa@aUI@alLVaU¯anWkUKm@XV@VaXlW@aU_UWVUI¯@ma¯W¯I@UU@WWU@U@@UU@VkV@@WUUm@UaU@lK@IUKL@KWmXUWaXI@@a@a@U@U@KV¥lwk°b²JVIVKlV@UXlaUl`UVLVVVUJU@Lnm@_VK@KUIW@J@Xk@WW@UmmXmWk@kK@aUUVmmkUwUmWL@WmU@UJmUULkKWakLWVkIlwULW@X°lUJ@°ULWVwmJ@bmb¯Vkm@@WkWm¯wL@lkXWmXym¯UImJUbkV@Vn¯@V@lUb@mk@maUxmlUbULWn@JLmKUkWKkwUKbmXWxkVUKmLkVV@JUUWL@xkJUUV@X@VVlUbVX@xk¤x¼xWxnnn@Þ¼JVb°aVn@mlnXUJlbVlkz@lUlXJmxVxXnWxXÈ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°znWXlW@kK°xXnl@Xn@l°Una@anIxXUVK@¯VIkW¯X@VKxklJXUlKXblLVKnVVIV@Xn@XKVnVxlnnUlmV@²óUkVlWbln@VVVIn@lw@WVIXblV@ÈxaUaVIVVnKVLKln@b²K@»U£ÑķġÝÅbKa@Im@Û@kWÓkkmKÅnóJUÅ£W@wĕ@wĉţ¯¯UkK±l¯U¥UÑkÝUķ»Ý¥¯JIUVbUl¯ÈV¼VJU¼Vb@bkLUl@VJ@bUXÇ@lkVmXmKkLVxVL@VkVVVlzWkbmLUUUbVbUVlÒnJlUnLllUL@bUVxlLXVƦÈVU¦WJ"], encodeOffsets: [ [118834, 31759] ] } }, { type: "Feature", id: "3411", properties: { name: "滁州市", cp: [118.1909, 32.536], childNum: 7 }, geometry: { type: "Polygon", coordinates: ["@@@`nnl@xK@X°KXVIXVlbXVWnXlL@È»LVan@VJêVVn@X@laÞbVayn@_xnWVXnWl@VnUVkI@lnXKVLVV@V@kW@LlVô@J@bVnnKnkVa@»lç@nwKmaUUUVÑ@nmWXalI@alVn@VwUaVU@nlaôJnUVVXlJaXXVK@UV@VWx@nXVWXVUlLUbVULVVnUVbUbVb@@aKÆnnKVK@U@UU@@a@V°¯ÈJVIlķ@aaUaVKU_@mkxUI@aUlyU@@wkKWmUbUnUVWbkJW_J@bn@Vm@@KULk@V@@bVbÅm@LW@UVVbkK@UkKWL@VULUKWIUJUbkK@_WVXUJka@XVa@ky@aVIUUW@@mUlLKWÑUKVan@UkVmmIXKaVaUwVU@UmykU¯@±UUL@WUIVUU@KkIWaaU@kUUaÇUó»mKk¯@y@kWK@bkI¯`mnl¯XWlkVUzUJlbUbVJl@nnm@VULV`XnWÆbmUUnJmUknJ¯km@yk@kUxL@VUbmnn¤lX@`z@JmaULUVl@Xn@xllkXWaaW@UVmUb@mVXWxXbWbUÒnVVnVVUL"], encodeOffsets: [ [120004, 33520] ] } }, { type: "Feature", id: "3418", properties: { name: "宣城市", cp: [118.8062, 30.6244], childNum: 7 }, geometry: { type: "Polygon", coordinates: ["@@Vb@XLJXxlIXxlVlV@I²¤nlUnVU@VULWVUJ@Lnb@lV@UnV@@VVVlLnbnJUVkUUVWn@@anUVnVJVIV@@nUJVbUb@VUbVK@bn@VbnIlxkllXVlXKWUXUlL°¤UVVb@bUlkXWxXz@IlaUlnUlJVInVÆJULVUnVK°@VnlVnxV@XLlK@wVL@KnUlJXUbnKVLXlUw@VWlLXKm@@a@VLnmlIVVnKn@kVaVlwk@@a@k@VIUa@maUa@wna@kmWUUmVUIVÇ@aKmakUJ@InmUUaVaklX@Vk@m@VU@wnK@alKVUkUkKbmUkm@U£WVk@@UÝbbaÇx@b@WVUa¯@wVwUUV@VwnK@KWaÅ@KIUyUI@WmXóUbWaKm@km@IUyIUaWKx@zUKUL@llVUnkLVVkJWX@VUKUVIkVWakb@VWb@n@JkXUlmL@xkL@`VxLUÈUJ@Vm@@bmIUlUL@VUVVbknm@mKUwKVÈ@J@LV±kkJUIl"], encodeOffsets: [ [120803, 31247] ] } }, { type: "Feature", id: "3412", properties: { name: "阜阳市", cp: [115.7629, 32.9919], childNum: 6 }, geometry: { type: "Polygon", coordinates: ["@@Vn@ak°a±@¥@UUI@aUmlwUUxb@¥XU@mmI@a@Kn@@_W@@WI@mUVVXUl@XaV@K@I@aLX@aVI°K@KVLUUwyXkK@kKÆbXnlK@k@aJlU@w@U@»@aXKWn_JXkVKn@°LlKXW@¯U@aUK@kmJUwVIUJkmLK@kka@wUVm@@am@UkUbkK@nmVÒ¯VUWVVmIULk@ma@kkK@nUbUamU`UUVUkKVkkW@@bkmnmUXVKXVL@VbUmbVXJ@nmKÅI@KWKUXVJUL@VUKUX@KUKWL@LUJmaXXm@kVVV@L@VUL@VlK@L@V@LUK@VUb@UUU@°@nVxU`Lkn@`@XVJ@XVmk@UKmV¯LVVn±Wm@Ub@JlLUl@VLk@lmVVn@bnV@V°IVaVJXI°K°V@XXVlVVUnKVlUbWXnV@bV`U@@m@@@nxmn@bXVlL@¤nbUl¦VVUnJVUVl@@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@aUIkWVlLXblVIUVV@mn@V_n@VaUK@I@UaanJVU@lVUVnnKVVlaUaI@wnKLnll@nVlk@wVKXkl@@bbUJ@VU@UUUyVk@aVUXwlWXXWU¹@aU@WUI@mlUnJ@Il@aXbV@VKl@XxVL@WIJlb@al@IUUm@@aVK@¥¯@mUķ¯bWk£Vm@akm@VaÅ@UVWa@UJWkJUbWbU@UlXk@amV@K¯nk@lU@Uxmz@bU`ÇbUbÅVm£U@Wwx@akLUK@UlakwUJWVkLmaUal@n_mVUnKVUUmÅXWa@kJmx@XUJ@bVLXxl@VVUVVUbkLWbU@@lUVVVVXK@XkJ@nU@@bV@VxUVlbU@xXLWn@UxVbVĊV@b@XV`mnkJ@kUKmbaU@VbnbÆx@XU@@`k@@bl@@bkL@WakXWaU@Vmkx@XWW@@wUUUbJU¯V@¯ÞU@WxXlL@bkb@lVlnbJW@kkU@mbkaWJIVlmz¯`UnU@mb@@`@bkVlnV@b@V@aVxn@VxKXnl@nbVKbVK@a_V@Vw@WLlwnK@UmIU@VW@UÈ@lKnalw@@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@VUJVnUJVzXJVxkVJlI²lU@K@IUÇLVxnLn@lmUaVU@UVKVknJ@an@@UVIVÇKUw@_lK@wnKVklW@I@mXa@UlaXblUJVUVL@UXWlIUUlKVmkU@kVKVL@ywXLVbJVz@Jln@nLXbVaônW@la@UVWUa@@a@mk@WIk@VwUa¯¥m@UUVK@ImK@aX£kKÅVa_@±akXWWLnU@@a@¯mK@LJUWwUVVmbXX@lWLn`mzUJUbLk@makVWmkXambkKkna@ab@U@Unm@WV@VbUbUJWIk@@lmL@°UVUVmn@@kmWkb@x_m@@aU@b@JlUzlWxXn@b²@l`IVlUlL@VKnVbUl@VlIn@@bbVWUk@@bX@Valb@bnb°Vn@xVKlbVnV@VxL@ln@UXVVL"], encodeOffsets: [ [120747, 31095] ] } }, { type: "Feature", id: "3414", properties: { name: "巢湖市", cp: [117.7734, 31.4978], childNum: 5 }, geometry: { type: "Polygon", coordinates: ["@@VV@blL@XlWnnn@VXXl@@WIX@VJ@LxŎxln@bXJVblX@VVbUVn@VbUVlb@LnJVbVLVXLÒVLÒVbVIVylUXk°Wknm°_lJ@aXL@lz°@lnLô¼VÈVUUaVKU@WW@@UUa@knmVLlaV@a@kak±@UmwkKmkljÝUUkL@mlIVmnÝWkkUÝ@KƑĉa@»mma@mX¤¯Uw@@UU@bU±±L@akmLUKmLUUUJVbbÇw@kUWaUJ@Xkxm@UJUUm@kakXUVl±ô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@ankWXK@@V²VVIÈU@al@VaÈamK@wU@klaUV@XVUU»WUUbkmUkVmk@aÈw@mWU@VkIkVWKUÑķXȭºU¯l@kkLWmÅaL@lLWlzVxVUK@L¯LUJ@bWK@b@JLU@Wbk@WVUUV@nJ@XX@@`m@@L@bnJ@nWV@¦awVVkxVn@bVJ@V¦@²¯blb@mUU@¼¦XbUV`@nnxUxWLkUkVWKkV@XV@@VVL@VX@lVV@L@blL@`L@xXKVL@VnU@lwnU@ml@XnV@@UVW°LnalUI@aUK@aa@UkXW@I@mWL@UXK@UVW@U@@kWn@@V@XblaVxL@bVKXbIlJ"], encodeOffsets: [ [119183, 34594] ] } }, { type: "Feature", id: "3417", properties: { name: "池州市", cp: [117.3889, 30.2014], childNum: 4 }, geometry: { type: "Polygon", coordinates: ["@@V°°ĊŤ@xĖ@xXƤVôIÆmnLllXÔ@lÜn@@JbLÆaĢÞĸ°VVUUKVanK@UV@VLVVnln@xnklxXamk@WV@Xa@naVkKlk@mkUWwkJWwIWK@UaUwWIUyVIUmVI@UXWmkkWKUUVWm@@kKw@UUUmkaULwm@¯Uma@akaUbW@@a@VlUXa@am@kJ@UVkUamL@UkKVUkJk_±@a@WmXwÇkkaVaUa±wV@VkwnyUaW@UU¯amLk@m@kmmU¯K@L@lUX¯WlkXVbbVUL@J@LVKnlJXnlb@`nXlalV@bnL@Vnb¼@lXbWlkLK@zUJmIUxUVUVmX", "@@llUL@VlxL@a@UwXa¯@"], encodeOffsets: [ [119543, 30781], [120061, 31152] ] } }, { type: "Feature", id: "3401", properties: { name: "合肥市", cp: [117.29, 32.0581], childNum: 4 }, geometry: { type: "Polygon", coordinates: ["@@LxVĊLÞkVlVVXaWaXwWnU@anVVUX@bXblWkk@wWmk@VUVKnb@Iy@_kWm£nmVa@UKwlVl@zn@°lIlmnVIVmnVaXÅWmU_VK@Unmmk@UIVakaaUÑUKÑWKUUKUamI@KkaVUUam@VUUa@UkWUaWI@akmōwwUL@`mn@KVIUVUUUKVk_VkbW@VkUULUJ±I¯alkxU¦@L@V@V@b@b@WJXbWVXn@LKVL@JkLV@Vbn@VV@XU@UlV@@VV@V@XXV@@VJ°°Xnb°@JUVVXV`@bkXWUbU@Wn@VLXlm°bVUbkK@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@bnlUVllnVaXVV¼UVWU@V²wVV@Vl@VnwlI@XbÆWVnUVmLUVnm`k@VbnblKXUVIlxkb@VVLlK@bwXxV@n¤ÆUVaÈaV_@anyVwV@kl@°m@LnUbl@WVkV@XaaVIXlIV@XbVUÆ@XKWwUkmW@_UmnIlJXkWKXmV@w@_XV@Kl@kU@KlX@@UUUUKWLm@klJVUUmk@mXUWmXw`m@zUbÝakbW@m@UUéUIm@UbKǼ@kKWXmWUkaWUJWU¯L@WLwk@mm@_ÅlUVkmWUnV@VWLUbbƑĬ¯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¯IkVUVU@@b@lUXUWmbn@¼bƒĊLÞ@lVXlmÞUnkJ@nlKVVÞXklWVaVI@aUKn»lL@Kn@XXwlm@mn°@V@WywXlWVk@aUaVU¯£kKWVXVWLUkkWlkkwmJUam@@aULVa@UVaUaVI@m@UUJUIUmmV@bm@UXVVUlVmImakKUU@UU@VmU@@kma@KVIXUVK@UVmUkVm±£@JkU@nlkLUlmb@WbU@@XnlWb"], encodeOffsets: [ [120814, 31585] ] } }, { type: "Feature", id: "3406", properties: { name: "淮北市", cp: [116.6968, 33.6896], childNum: 3 }, geometry: { type: "MultiPolygon", coordinates: [ ["@@lnnK@¦n@@VV@@VV@nIVV@VW²a@b@bVnUVVV@Vz@l@°UVIVaVV@x@XX@WlwUnV@XblWb@XlK@a@k@al@@_V@@WÅwmaUaV@bnaVL@llInmU_@W@aUUĉUaVwm@XWK@wVkaVUUwU@@aV@@mlI@WLWUUUVU@kV@XalKVaUVUUUk@WwUK@aVI@WUk@@UUU±xkb@lV@xnLÇbUbk@@bÇVUJ±U@U@WLXml@bVVXL@lV@@LmbkLW`kbVxUn@LkxmV@bm@@VkV"], ["@@VVVkV@¥@UV@U@VUUJkWakKUlXVJ@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@UUVmnXUlVÆkVKUUUmmUÑkUUÝlĉKUwKbU@UxW@@lmVUUVmUUmwaWkL¯K@mULWlIm`XWL@b@¼@V@xkVI@b@l@lkV°Ȯ¹ĸW"], encodeOffsets: [ [119543, 33722] ] } }, { type: "Feature", id: "3405", properties: { name: "马鞍山市", cp: [118.6304, 31.5363], childNum: 2 }, geometry: { type: "Polygon", coordinates: ["@@NJnllLnxV@laXLVKmaaXbVIbVKVVVIVyn@n_W@@UnJlUVVXlLnaUWlV@VVIXW@_W@XK@K@UVUUwVamÑXmmwwKUnUKçU@JU¯@m@nknWxWm@@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@VUUl°JUkVm@U@UkK¯WVkKWkU@Ubakwmlwm@kUmUUKU@@VmLUbVLUV¯U"], ["@@LllUL@VlxL@a@UwXamK"] ], 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^IHWXITQCIY^AXGfRDXF`DJOLB~G\\DZIHHpErUVMhHb]\\MBVF@FTP`@zTbD\\@~M\\K`H^EVODWICAakAQXoIcCOCIgGYNWFWNGGKKGaJEGMEIKYJUT_J_Go@_SyQaSFMEGTcYOQLIIi@EKAUPCV[EEXQCW|aMUMAaYCYNIDGGACIMGGSKDQGaF_C[GaB@GOIiOKAYLmI@CN]F[SWWAcKKI@HMUimEKbeYQYISNUOcBKPIFBNgvDPGZYFSf]CMSIWGEUFgDIQ[MeDMJS@RR@LphFPCHaBAJKF@J]IBJO@HlO@@RKAMPJHCNDJTHFP@ZGNANBRFH@J_fM^ONJNF\\VTDJHDON@XRND\\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[WMCQ@WPMGCCIUSE[IMPMN]`e@IEGAQBMHM@YEOSGCIDMIGNOLB@QP@GkP@AI^J@ILEBIbADGEOog@KQQWSekWQQUOFKZLF@PUNmIaHIUeBCTSHENcJa@_IWSaGu`GLSBKJQFOXGDXVQVOBIHcDSJWBEFGTMH[^mLaXcHiKElTRKtFXZ`MHMPCNRDxZB\\ICIHK@KHbIVFZ@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@OVISKSJACEQNQbVIXGDIN@dMB[IIBcN]ZHNLP@XOWCFWCNRHTpATD@^NVNLED@Rh@jCEF}E[OOHUEW]W@QGGDIQSH_MmFmCUT_K]i@MHCMWFCFE{BMHMPOHKS]CFNGBELDH_@BcAKOACESAOBELaXAROB@FODMEDWJAG[aE@UM@DImEWJMC@OeCA{aE[@{L@MINUCQXKfUJORCHqJBF@TCXWNQX]M[EAJO@@KMBQJIC]EWMCCUBEBFHKDOTMBGNGF]MWDBRDdMDQVyE@LPVHDCP@JVVMTG~HNSH[CmRUvHPHBbA\\PTNRC\\YNJPRARPJDDR"], 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@UEaJG@LGLDJ[JAwYQCDMNONGY_EWLsSQFkMO[NWAIGaIYL@HMBOKiOQDWEUDMQSF_QIUBWdg@[NaAKQ@M]OQ@WhgLUMMFYQDIRCEUZOOCIOJ[KIUMKL@HIDKVEBM`HJAJSJUdBLGNEdMBMO[BYEWJSNKNaD]PE\\SjOT_RQVEZPpNQXfNA~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@CABAAEEDMGCH]A[M@CJWHJaUMRFRBDTITLUJ@PFJKLOVST@FSLENgKGFSCaCmF_ESQiOSFOT[HYPu@IH_[IoE_[]GUC[USB__CYQI@Gakg@qZeHQNMNV\\FVLPgJAFJPRLCH[XcPELUT[JiV_EELFTADBXRTRLJC@fHXHHbPd`fR@NfT`@TLplHMpCEJHJBVLF@JTVnG^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`RTCNFVXRCjPPLNA@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@IHJFCPEBACBIAAKDOABXARHPNEHGbQAAKQFGIAM[C@WHKaGiCEGOAHUKCIokSCUSOCYN[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@EFEG@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@CHFBHUNAJKADGECBCMAG^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: ["@@ZJZRafFLjnVGNJ@LLBdXX\\T^EDMJ@nZKLBjPPJ@HbA\\H`DbERHLCFK^BZaFWXQLAGMHa\\OLO@SBIpBdCLVQfElO@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\\NNBNAkNU|]HMTMN@MZBLFFF@RIRUTBMFIEGaAGGAOIIUGTSFcYKS@MSLYPKRUBU]EWDOI]CKGASgW@MTWKIMCS@uMAKKADMECGAKVUTSDy@IjWLMNBF@hHEF@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"], ["@@HUNAJKADGECBCMAG^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: ["@@plDJVLGPBFHjDbHGL@X\\DBNHJREBLRBHaFGMGOBQAWPBLCBBAJBDFADOIEJGE@@EP@HCPWP@ZgfBRQJJ\\D@HLHLDVA@IVDFGSI@EGC@EBB@CN@@IZCAGHGaEqGJG@EjwJ]@K@GSA@e_I@NE@CA@Kg@KC@ENCFAKQAW@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@ig@@QFCMKMU@]SCoBGSMQDEXXDWPO@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@@OAEDQEW@BLEMD@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@AC@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@RFFCBFU@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@@bEVD@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@VLnJlxnbUU@IVK@lVIVwnJlU@n@J@L@Jn@l_nWVLVln@@blLmV@@xÔ`nxVÈLlxLVxVVV_U»VWn_m¥XwVmnX°lmUUVwÞaVk@a@mmIUa@mwk@m@@U¯a@UV@@K@ykkmwkV@kU@ÑVkKWLÅamaUm@kyU@WkU@UaIUaVaUUmUUa@aVLXKWa¯UUbmJXnWnX`l@@xkzWÆ@VLU¦x@b@JkIkJ@LmbUamJwm@óxnk@V@xVnUVmVUVUbVlUbkXW"], encodeOffsets: [ [110914, 29695] ] } }, { type: "Feature", id: "500236", properties: { name: "奉节县", cp: [109.3909, 30.9265], childNum: 1 }, geometry: { type: "Polygon", coordinates: ["@@WVXbUnK@x@b²kxmKkl¯_VV°VU@bnKVVV@@nk@nbn@°@VLČU@°WV@VnU@InKVl@nUbKnXWlknLlKUwnalLaVlUXmWk@UU@UWWIUyķ¹XaWW@XKUIVmU@W@UVU@KV@n»VkUkÇmUmVIUmULUbm@wUaKkkm¯ÑUL@bWVnx@VmxUI@klmkkK@aK@IlJ@I¯k@mak@mnkJVL@bV@UbW`UUUVI@VU@VVbUJVLUVVbUXVVxk¦VJUnVxnVVUJV@Ubl@@bXV@L"], encodeOffsets: [ [111781, 31658] ] } }, { type: "Feature", id: "500238", properties: { name: "巫溪县", cp: [109.3359, 31.4813], childNum: 1 }, geometry: { type: "Polygon", coordinates: ["@@nLWbXVLVUV@KIVl@b@lbUVnU@JÆU@V@n°KĢUl@VbÞKV@_VKXUU@KX@wlkkU@mWKUU@UôJ@XV@aVmÞIVaVL@»km@UkLU@aU@WWLUUUKkbwWa@KU@kaXmWLamVk@UmL@JmVUU@¯X@ċVUK¯@ÅnWKLkKULWK@UXK@wW@LkV@bVLlXn`¯xU°LnlV@n°Lnl"], encodeOffsets: [ [111488, 32361] ] } }, { type: "Feature", id: "500234", properties: { name: "开县", cp: [108.4131, 31.2561], childNum: 1 }, geometry: { type: "Polygon", coordinates: ["@@n@naIw@@VVKLVbVxnVÆUnanKWXamKmk¯K@mkUm¯KV°w@Wm@UIUUlKUU@a¯KWanwmUXamKkUWUnU@KkUwWKXaWLUWkImaUUUKka±k@l¯wwmbUkXm@UJkIWXXbmUJXUV@°KllVXV@xmbnV@blV@VU`UL@Va@bULlb°VXbÜ@V@bL@JxnLVb@lVb@V@@zbXWXKVLV@@bUVVL@blVna@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@ÆlLUl`nVKU¼VxkbWnlUxlXX@°°WnnJ@VUn@Jk°L@VlV@nUJx@bVVVz@VnLlaKnalVlIU¼@nV@@anKUwVal@UlJlI@akU@UWXKVI¯Uak@@KmkXWÜkXWykIWwXw@laXamkVUUym_XmlkkmmakwmIUKU@Wak@kaW@kI¯WIk¦VUUmaUV@XkVUV±aUb¯b¯¥m@@ImJ@mmL@kUKUkkJbV¦"], encodeOffsets: [ [110408, 29729] ] } }, { type: "Feature", id: "500235", properties: { name: "云阳县", cp: [108.8306, 31.0089], childNum: 1 }, geometry: { type: "Polygon", coordinates: ["@@lbLVVVnblJVXXKWbXLVxl@LmVXVVlnLWbnVmxXb°L@bVVkLVVVJn@@X_WmkUK@alUKX@@xWL@VXLVKlLKXLÆm@ma@ml@mU@UUmL@aVUU¯U°`lknLlw±@a@wmLVWaXU@KWU@ak@VaU@IUVmUUwVmUIl¥UwUVWUaVUUKVIUa@UUUUJUUmknl@@VWV@L¯aUbUlx@@b@VULUx@VUxVVU@bU@mxUU@mUVklkk@WxknlxK@amLKUK"], encodeOffsets: [ [111016, 31742] ] } }, { type: "Feature", id: "500101", properties: { name: "万州区", cp: [108.3911, 30.6958], childNum: 1 }, geometry: { type: "Polygon", coordinates: ["@@ĸĊVInaWWXlJVIn@lWVnax°xkl@²LVLnK@bLkwlmXw@lllkUnVV@VnwV@@aVUUVw@UVwVK@U@a@kwVVa°b@KXU@U@mkÇÑamlkUVmn@VULUm@kUVkUawUWm@Uw¯mKUUmVUUULUKUW@XbWVkaWwkUUk@maUbmbVlk¦xUVUIWVUkJVVkL@UmJUUVU@lLUVUlx@@VbJUL¯¤@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@ImVUVka@@aUkJ@LUUVUKmLmbÅVmUUwUaKUL@U@xJmbm@nVJ@X@VkVnlLXx@b@bUVLU`UnbU@@mVVX@JX@VLVVklV`@bUL@VLVKn@U@UJkn@lmLmK@X@Jn@mbnÞWVXnJkKČÑÆ@VK@knaÜmXlUČW°kôÇÆ@a@yÞ_VmUnU@K"], encodeOffsets: [ [111893, 32513] ] } }, { type: "Feature", id: "500116", properties: { name: "江津区", cp: [106.2158, 28.9874], childNum: 1 }, geometry: { type: "Polygon", coordinates: ["@@InWUUlU@LValX@°²lÒXxlK@Ul@@Un@UaVJ@I@W@UUUVUwVIUKUaUUVwn@Üx@XUlnnbJ@¥VklKUUlk@ynU@kVUUVWnI@¥V£VWVIUKU@UVa@n@Vm@@nlUaVkUwJ@blLkLW@XWmXkmmLn@m@U@UVm@UVUUlakUVaVkV@@wnaWUk@VwklmVIkUUxmJ@U@KIkx±V@IUm@K@IUKkbWKUbnm@bmVnbmb@xkxUJ@ULW`@bX@WVXL@V¯mk¯@UJ@VmLUaWnX@WJ@nkKkxW@UIV@@KkImmkK@UW@XaWIU@UIkbWbxXlLVbnV@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@Vbn@VJVLnaVanbl@VlVXxlbXUWaX@VUUVwUUVm@I@WmI@amlLlK@alwnUV@kóVaÝk@UlbVK@VU»VUUVWU@U`ULkwm@@KmU@knK»VkJkUmbLkbmK@UUyUU@awm@@XXJ@VVLVVUbVnUJVX@Kk`WXXJWXUbmW@bkLUm`Xnb@JVL@LU@°VVXKVnUxVLUbmJ"], encodeOffsets: [ [110588, 30769] ] } }, { type: "Feature", id: "500237", properties: { name: "巫山县", cp: [109.8853, 31.1188], childNum: 1 }, geometry: { type: "Polygon", coordinates: ["@@kVUbkKmbVxkLmKkllbV@@LXbxlaLVVVKXXV@@bVlKV@ln@¼°KXaU@Ulw°JXalIUaÝWXW@kVU@VUVWUUUamUw@aVamwn@VUUlLXWm£@wÇĉkKklmLUÒ¯Wn@ğ±kwmaWm¼U@@LUV@V@XVUnVJLW@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@xVn@nJ@LUVVX@lbUJV@@nn@VVVK@zV@nzVJVUlmX@@_VVVbnaVal@@knW@wnaVK@aVIJ@£kUVW@wXUVJam@Ik_X¥@WwkKkwmkUxnÅmm¥WV@Um@UlVL@JU@@X@UVkKVkKVkKkb@bmJVXUVVUbU@@`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@aVKXVanb£°mnIVaUKVwUmWLUU¯V@@KUK@IaWmn_VlK@anXVaXWWIXWl_@LUWVIUmVaUUUK@UWI@Wn@VI@mkU@U¯Kl@ImVÅLwU¤óbUU@wWXkmm@LU@@VUIWVUL@JUnax@JnbUIWVx@UXlV@¤IUJ@bULmb@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: ["@@lwbVm@IVKXUVJ@UV@@KnnWlX@xVVôaV£xÆKnUVm@UmIXm¯¯@WkWVwmkXlaUwV»ULmk_VkK@ÅWa@aUU@mkaIb@n¼nm_@mmK@ULUVVmI@aUJ@XWJ@U`UIkm±kk@@lULmUmKUnVnlUVmI@VkVlxbkIVmLUxkKUXn¦ÆnmVwlnlxlLXx@W¦`"], encodeOffsets: [ [110262, 30291] ] } }, { type: "Feature", id: "500119", properties: { name: "南川区", cp: [107.1716, 29.1302], childNum: 1 }, geometry: { type: "Polygon", coordinates: ["@@VUbVJVUn@VLX@WVXVVI@VUVWxU@m@ĊX@@¼V°aVUX`@_V@VaUUVUWnI@alaLUlLUllLVU@@WV@@IUKVkn@@VlLVwnKUlJakwlU@UnJVUmkUVmXa@wVK@UUw@VVI@ak@alInwlKXUmaUW@wWLkKVak_ÇaUV@XbLVxUlWIk@UK@V@kU@VbUVUlVnLUV@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@VnbÆbXKlLUÒV@@llUnxll@z@LU@@V°b@Vn@l@VÑUnK@UU@aUakVm@K¯wklmnnUl`nI@almkIUwmWVkUakkJmUUa@K@aU@@_m@@wUyVUUa@Um@awl@Wka±UkUykIWVb@bUVk@aU@UXUUIWakUWmUxUV@nUVWb@XXVVmXX@VbVLkVWx"], 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@VXVXV@@W@UIVK@kUKna@£VWUaVUUalIVJVIUW_lm@bXKV@mn@JUUw@KnIVll@VanLVmUkVKXLVKUIVamw@UaU_lwKlwUWV_Ua@aUa@KUwm_Ó@wU@nkK@am@UkUKmXk`m@@I@K@I@mkVmIUxUJ@kUL@JVVlnklWnn`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: ["@@XKVXlKVL@UnV@aValXXKU@WVwUaVU@IV@@aVWL@U@anVV@@bVK@UVL@bnJWL@VnUnb@@JnIlVl@@bXIWbn@UKVLVKXLlaV@VVnK@bVLmIV@KmknUUWVI@aVJ@_WU_VmUwU@KVak@am¯mJU_UJUkU@WkIV`UI@JV@LmmU@@mbUzÅ@VK@nUKbakb@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: ["@@@¦@XlVX@@UVKlVUX@lanVlUVbXWVXVVVUnKVUlwUwU@UJ@nmVkUVlwXam@VaUUUw@W@kk»mV@UmKkwVKVUU@@LUKVI@mV@XVWxnXVKUUUK@wWU@UUWnUlLXamUIam@wI@K@amImUUkI@makUkKWUUan@wamLVxk@UVmUUL@Vm@kV@I@ak@@bWVXJlLVbVL@@bn@@`Un@WbUKULWVXb@UVmbXWVb@bVmxUKUV@Un@V@V@nmnKlnnWWXX@lKkK@aIVxUlVbk@mn@@U@mbVUV@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²mlVUllVnI@VlKUUlIVXUVJVUwl¥UkUKUIm@aU@mUna@XUWmkK@aVIUa@aUVmIXa@Kl@UUVKUIUJmwU@@aWInUVa»k@@l¯n¤mabWUUL@bnl@bÝWVnbU@mLUWk@Wbka@WVUU@UmUmVkUULVlVUxl@L@VbÈÒlb"], encodeOffsets: [ [110239, 31146] ] } }, { type: "Feature", id: "500228", properties: { name: "梁平县", cp: [107.7429, 30.6519], childNum: 1 }, geometry: { type: "Polygon", coordinates: ["@@XLV@VV@b°°nnkb@bnJWVXblIUVxWnUJnVVLVUJlUnLVK@UnUVJ²nKVbVKla@aXlJkKlb@U°£KVIUa@@kwVVUkKV@VUkkUVk±n@xkl@U@»@XVÝĉUJnxWb@UXKkVUbUKWUkVmkkLU`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_VJlnVlnb²VVVJVVmUUkĕUamçU@»W@@ĉnV@XwVU@UUJWUXUW@UKm@UVUIVaUUVmLUVUUUWWXUakVmUkbW@UVkUL@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@bUbxUxVbXJVbUVWIUVU@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ÜnWVLXlxVVxXxlVn@@bVblK@a@UnLVJV@@UnLVU@VXaVKVX@n`WUÿ@IUKlaUUUkWyUÛÅÝ@mmkUKUwW@Xk@amUUakKWwXaK@VVLklXVlkxVUL@bm@Vxn`IVxUVkLVUl@@lkXmmVUn@VV@Xb"], encodeOffsets: [ [108192, 30038] ] } }, { type: "Feature", id: "500231", properties: { name: "垫江县", cp: [107.4573, 30.2454], childNum: 1 }, geometry: { type: "Polygon", coordinates: ["@@Ċ°¤nÒ¼aV_lKnllUXVVLValULVW@XamwVIUKkaÇÑa@U@KkVwkUUVKlVnU@aU@VIka@akU@KVL@WÝçUV@Vmbů@LKnnJWVkxlL@VX@VxmnXVWxUb@bkn"], encodeOffsets: [ [109812, 30961] ] } }, { type: "Feature", id: "500112", properties: { name: "渝北区", cp: [106.7212, 29.8499], childNum: 1 }, geometry: { type: "Polygon", coordinates: ["@@@bVVXLa@lnbWn@L@XVlK@VVLUVlbkLUKVVVL@VnXVL@VV@UbVb@x@¦UxVb@bUJL@LVVxlK@nk@U@WUVLlKXV@VblU@UUKVU@wn@VJVanLlkX@VaVK¯@a@U@U@VaUKkUU±maUkm@UUkbm@@Vk@@JwU@Ub@I@JmwUL@a@@KkVÇLkWk@kUU@@xUVmKUnllUb"], encodeOffsets: [ [109013, 30381] ] } }, { type: "Feature", id: "500115", properties: { name: "长寿区", cp: [107.1606, 29.9762], childNum: 1 }, geometry: { type: "Polygon", coordinates: ["@@VVUbXlX¥l@XnVmlxUx@@blVnnôĀlm@aVaXwWUnmUwW@@UkKlwUXmImL@KÆ°na@UUImyU@@yULUUm@@mU@VIkaW@UUV@KI@mmUw@mKUnUUIlVLUb@@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@UXLlUJXa@_@@aVKÅWVkwWawUa@am@kUWLU@kWmX@ykI@W@UV@na@LlLV@UkwWUKmXX`mIVl@bXLWVkbkkx@`VXm@@J@U@UUKUxk@WbUIVl@VXLWJUkUlUImxXlmb@X@VUJUnVbW@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@LlklVLkxWK@bXb@Vbk@Vb@ll@@nVlnIlmXblaXl@W@_Ü@UUalU@aXL@VlabaVL@mUL@UUÇXUWX_WaU»m_@UWULWb@UUVmK@VU@UImK@V@bkLxXblxXUÆUL@b@@`WbIkVWK@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@WnaWknwVJVkVlIXWK@UUkVJXal@VwVL@V@V@In@UW@_wlllaXUWK@aUknJW_Û@aWaU@@UVmUUaUImJVnÅUmVUm`kUUVWLnVU@VVmXK@nxmULkxImJ@nU`@X@Vkn@`@nlV@nVJVaXVLnK@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¼VXbW`XWVÈVVVkV@@UXa@alK@IU@UKWUyUI@wVUUWVak@VUkW¹@WXI@yVIUK@kWwkѯ±W@kUb@KkVVVmXJ"], encodeOffsets: [ [108585, 30032] ] } }, { type: "Feature", id: "500109", properties: { name: "北碚区", cp: [106.5674, 29.8883], childNum: 1 }, geometry: { type: "Polygon", coordinates: ["@@XVLV@@JkL@bWb@VU@UlÆVya@nV@nn@KU@IVJU_lJXV@VlVIV`nIn°@blUbKVI@aUaVw@¥@wUaVaU@@UUKWm@UUKUUVLlKkaVUUK@UkLWU@@KXmma@kbWKUU@aUamLnÞ@VWLk@@Wm@ULU@@UKUVWI"], 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@kVUKUmVkUa@I@KW@@bk@@mU@m@k@a@aIUxmJk@wULwkKmVVX@VXV@xVLVVULmWXwWUU@@nUJVL@KV@UVULlxnL@VnUl¼@l@XVxVVUbn@WbkxUlVnU@m"], encodeOffsets: [ [109452, 29779] ] } }, { type: "Feature", id: "500107", properties: { name: "九龙坡区", cp: [106.3586, 29.4049], childNum: 1 }, geometry: { type: "Polygon", coordinates: ["@@XKL@V@XbV@lW@UV@@VXIV@UVKlL@KnnJ@VV@VU@I@@mVUVWUUmL@V¯LUK@UV@UU@a@U@yU@WLUK@X@KUVmL@@aXI@w@ammVk@WÛwm@UxVVVbVLUJVxVUV@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ºlUVl@UbVXUV@xVJVzXJVUL@VV@VKn@@Xl@XK@UmÝnKVbVakkVm@kUK@UmIm@LkKULVU@WJ@UU@@VkXU@Wa@@UKWL"], encodeOffsets: [ [108799, 30241] ] } }, { type: "Feature", id: "500108", properties: { name: "南岸区", cp: [106.6663, 29.5367], childNum: 1 }, geometry: { type: "Polygon", coordinates: ["@@VVJVL@bUVVnl`XIlwXJlw°nnlIXW@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@mkUIm`k@WXJmk¯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¥WKkVkImUmwa@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@aUKIUU@@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: ["@@@knyk@KU¥wV@nkWzUmk@@lKUa@aVI@UKUamKUUVaUI@X@UV@K±IUVVlUbUbUL@KWUXmWk@KkXmmkÅKUa@amUbkUkKWUnwUÇwVUUÝUKV£U@nKWwXLVKm¥@wUXkmWk@@wX@lU@yVImaXwV@knU@mbk@mlUXmU@mV@n@bnW@bUIWJImVUKWbUK@nkKaU@W_VUUmWmL@UU@bUWUL@V@bmVUz@`mUUVVbXL@VL@lmLUxmVamXkW@xWbUVbUxkU±@ÅUmmkLUbW@@`kLknVlV@lbXxlVUXVVUU@UbWkIWVUUUJkI@llbUxVL@VVUU°ULUmWXUV@VULWb@xm@UaVLVKUa@w@VbkmVambUUm@@VkK@@bxlxX@n¤@X@@lkLWV@nVkb@bWJXLWx@nkxmmbXn@VWVUn@VnJ@bVXl@VJXnWbX`lLUlJVI@@VXV@Vl@bn@@Æmn@VxXU@mVIlxVnIl@nVJaXI@mlU@aXkVm°klmnVV_na°@V@xܦXKVnnUlVXbVKLXKV@naV@@VVl@@lXblXWnLlbVK²n@@VLUnlV@lXxô°V@UnaUUlKXLVUVVUbVVlUnJVX@VW@an@lb@nl@VU@anUVW@kaUm@InVVKVU@kUW@Uam@km@kVa@a@nwU@WlI@mVI@WXaW_n@nlkkW@U¥@kV@Uw@wU@@IXK¥VIn@nU@`@Xl@VVLnaWbVaUwnU@VIKlV"], encodeOffsets: [ [122119, 28086] ] } }, { type: "Feature", id: "3504", properties: { name: "三明市", cp: [117.5317, 26.3013], childNum: 11 }, geometry: { type: "Polygon", coordinates: ["@@lL@Un@VVnabnUla@Ux@VbULUKVbn@w@XaVK@UVUXWVnVKV¯VU@UUKVwka@klJVIVVXUlJXVaV@VUUVWkUWwkaU@UklmlK@_X@ValKnnÆV²@lVVwUaVXa@wlXnWbnUVwnK@kK@UWKUaVUnV@_VynU@a@UVKVXaV@@VnKnXVVUX`V@blL@mVLXaVLnUJXIVJ@amX@a@mnUV@nVWnkl@naV@ml@@KmKUam@UU@@UlKUVkUK@aVaUwVU¥UIkJ@wmI@mbkwkVW@UXKULU`IVKUa@LkkVmUU@WlULUWÅU@I@WWnU@@w@a@Uam_XyVIVWkk@mwVKXUV@nwVXkWÅU@aU¯KUnK@¯mULXVLnWVbVbUVm@Ub¯¼W@am`kbamLUUUaUXV`@x@XmJ@n@L@xkJUU@kU@mWm@kUUwUUVWl@VUkIy@kkaVUUmIWVXbWxU@kmVkK@nWVX¦WxU@@bkx@VU@Wk@kUbmJUUmkUW@_kKWK@knV¤kIUKWLUbV@Wbk@@VWL@VkI@lUXVxUVU@@mWIV@a¯nUaaUV@Jb@bÞ°VbU@XaUVmL@VXblnV°n@Vnx@VUUUlK@InJVb@Vlnn@VL@VWJUx@XlJUVVVl@LUUUJ@L@lUL°¦kVVnV@xVl@blLnlLVaXll@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: ["@@aI@VUbVb°m@bUXJ@nV@VUUwVW@klJ@UXK@Ul@Xa@UVaXKVLlJU£lm@XLlL@`VXnlVVnIVall@XV@@Ulw@aV@XwW¥XU@mlLnUlV@XwWaXUJVnUVlb@lzlJUVk@UXVVVxlVn@nXV@@lVVlI@w@K@mnI@W@wU_VWbVVVnKbla_nbX@°»Van@VUUaUamXUKWK@a@Uk@wWkXWW@wUUKw@_lywUkU@@U@kamVmXaUVUka@Wk@»UUUVKkbWUVUbk@mkxkKnIVUmW@kUKmXUmVaU@kU@m@KUWVkIWJ@U@UI@wUUUa@KW»nU@mVkUmm@XwWU@UUmL@w@mnVUU@aWak@@amxU@UxULWVXbVLU`mbUImVUbnV@@bVn@bnVWxLmyUbIUK@aVmakbVUXWUlKWbkV@WLUlk@@nbb@lkKmU@UIWJkw¯UUVVxm@@XkbWxXKlUzWJkUUL@bmKkV@@VUIUlWV@XK@VkbWx°xUb@LUbk@@VWb@LXJ@VWXU@@bUVVVVn@VVlLn@l@xk¦Vx@bVJXbn@JlnXxV@@nJ@X@V@lmxbUn@xVL@VVKlL@lnLVaVL@xkl@LxVl°XWVXVlJWnxlJ"], encodeOffsets: [ [119194, 26657] ] } }, { type: "Feature", id: "3509", properties: { name: "宁德市", cp: [119.6521, 26.9824], childNum: 9 }, geometry: { type: "Polygon", coordinates: ["@@@LVKVaVaUkVU²J@LVU@@WVJUbVVnLVbL@VUJ@bVbkL@l@VnyXmlU@xV¦L@lmz@lnL@bVVbVb@lnKVkVl¤@zXV@l@XJVLVKnXVKVnU@wUm@KU@UlVlw@U@U@UaUKlU@kXKlmXIWKXaVIVUVK@KU@@kJVUnLVJUL@VIVa@VnLKUnl`VbVV@Vbn@Vzn@lKnVlIVVKUalkXJl@XXVWVLVUUmVU@Unm£lK@Uk@WUXK@U@WVwVkĠkĢÇ°aUÅUwmaţɱUÇaw±V¹XalKôx@UVaÜʓͿVóbÅLJm¯Vk¦k@mamXkKUULakbk@mV@LkJWb@VkmXk@UVmaUV@amLUKUamI@KUaU@WbU@UUUUIWJUkm@wKkVJm@kxÇVUK@mUVUkmlkkVm@amwLVWU@UbVLkUb@VmK@XaVWU_VJnwV@@kUmWakx@kwWakIWxnbUJz@kVW@@x@XllnVW@xn¦ULWKXxmL@VU¤VLÞVVUÈxVmxXVlLlVanV@bbVLlÆ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¦UVxUb@bLVUlVkL@V@VVn@VbLn@LUlJXblx@lwXbVn@lU@mxUIV`UXWb@nLU@ValUKVaV@UXKnxbn@lUkllnUVnV@VLUÈlwn@UIlLxn@VlXIVJVVVV@XaV@Vb@LnJVbVLnK@bVUnbVUl@nWl@UXalI@KnUl@labVKVlLnWnbl@l¥°UnIÆKôaUa@UUwÇWǓIUWUÅVkƨm@@£@KmLU¤ULˣJkUVǟUUķ@ĉVKUk@Ñ°wôÇç@īé@Åţ¥mīÛkm¼Å@VķVó°ō¦U°n@bVJXVVL@bUakLmx@xmxXzW`XbWnXV@bWLÛ@a@aXbWVkaÝwU@mlWKkLWWkLUKULW@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@bVVUm@nx@nKVV@XVWxn@VnUl@nmVX¼@LVbVV@xVJV@@XIlJXUV@Ln@lVV@UbVnnWVL@lnXUVmJLlwnll@VaUXVlaLVUVV@¼Xl@lbUVVWbnnUlb@@VV@aVUmlUaUny@kU@Wkk@WaUVk@@ammk@@U@UlU@aUa@wl@mXLllnLU@anVnU@L@VVV@KlXnWVnVanUw@w@wmnÅ@waUam@UkmUl@@aa@U@¥kôKwȯ°w@ŻkwǕaKÑÛk@ĕōřċ£ĵUKW»kÅŻLU@Ulġw@¤VzVUbkKUbmLmlULU¼UxmbXl@bWVb@bUnVUVbULU@@VkbVL@`U@WX@XV@b°@b¯@¤@Xm@@b@`UVVUL"], encodeOffsets: [ [119712, 24953] ] } }, { type: "Feature", id: "3505", properties: { name: "泉州市", cp: [118.3228, 25.1147], childNum: 9 }, geometry: { type: "Polygon", coordinates: ["@@Vlxkz@`xLVV@xXXWXl@xl@V@bnV°@LVm°LVbV@ÆXWlUmxU@WVULnx@llUXUJWzn`Vb@@b@xV@mXX@@JÆVVXVKXkV@nVlUl@KVbULJV_VKLVWX@lUVkIU¥lIVyVU@wm£nUVWU@am@UmWw@UX@@amVUn@@aUUlUVanaWUXWmUnkK@VUlVVUUw@XLWWXma@knmbVbVXbVL@XJlInlLwmXów@çV»ÇçŋaķƧóƅóKġ°nÅUķƑUÇW@¯xÇ°öÆlVn@lla@Lb`@VXVVx@V@bULVJUkÇ@¼XUKk@mmULkaWbk@x@UkL@a@K@U@UmKmbU@kV@UmVUbUmmXkW@LUU@U@KmVmU@bVmKkkWKnk@@xVb@bkV@V@Vl@nn@bl@VUXbl@XlV@@lmzVVbknUVb"], encodeOffsets: [ [120398, 25797] ] } }, { type: "Feature", id: "3503", properties: { name: "莆田市", cp: [119.0918, 25.3455], childNum: 2 }, geometry: { type: "Polygon", coordinates: ["@@VbÞVVnUlUX@VKVLlKXXlKXLnkV@ÞxlbXUWab@bÜ@XK@aWUXmWaX_Wynw@wnwlKbV@aUKWUUI@amV¯Ŏ¥ô¯ĸUUÆ@n»¯aƿé@ţ¯nĉĬÝKóó@ÑU¼@èxWônxKmkkJWI@UKWaUUaamn@lnbWXXWK@VxUVkUV@ULmlnVWXXVmbUbkVVV@bm@UVn@bW@@VXxn@Vn@bVUX"], 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@Vwl@XalbVKnnl@VLW»È@lVUIVK@a@UUwWUU@_aK@bkkm@UkõÅxóLl@¦@Vb@bk@VnVln@Vbb@xmÆn@x@xx"], 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±JkkUwyÞIČxĊĕĊ¯¥ÆUkţUÅÓ±¼IUx¯UÒƑÝÅ°KÝnğ°ÅU@@Vn@þ¼¯WnŎ°XLWlnVnbWnVXxmbabóUlǕUUaIUmlU¥k¥ĉwkkÝɛa@¯U¯°mVkVnKlōÑÇÑU@klUġkUŻnUW@¯k»mWV£UKnUmUww@UIVaXwm»Èmmwn¯ċ¯LĉUJUalka±Va@Uk@ÛѯWmnUaɝ¤Ûmn¯m±x@wóxÛLġÒUx¯VÈJUbózÝÇKĉ¯ōlÝUÅWl¯nťbÝ@¯ǩLġmV@ƯĢkÆmĊkVťLɃmÝXó°@ĢbVóVݦɱ@ƧaġUVĠÇÈV¼UVţwmbJÇwˋaXmǯKkkmbXm¼V¼ǬŚ²¤ôŰÆƴô̐ŤǪnɆӨ¼ɆLÆłUĊxŎƞȘǔˎǬǪnƨŮǬö°»ġÞÜÆĸÒĊǀbƾèôÈ@¼¯þŤĸƧ°VĀ¯b@lÈĊʠń̐ȘKǀֲॗţÿǕý@ʊǓƨóÆÑǖŃôw@ʈƆÅÈVVĊVóĊÅ@ÞƒĬV@Þī@°V@ĸĢ°XτƜĠ@ÈaÜ¥ŐƅnğóĕVġUůƿŋĕa±VUťÇğÑ"], encodeOffsets: [ [101892, 40821] ] } }, { type: "Feature", id: "6207", properties: { name: "张掖市", cp: [99.79980000000001, 38.7433], childNum: 9 }, geometry: { type: "Polygon", coordinates: ["@@ÈÒŎÒkmLUlU¯nV°@°ɜbÞĠaÈ»ĸlLVUÈ@Ċ@ýUm@@ÆVĠ¯ÞmLƯރѰVVwJ²»ÆÔVlŤÅV¦ĉ°ĉĖċwÝJzVxll²IVVVþX¤źV°¦VĊ@ÆbÈmǔLĸĠ¯Ģaô¯ĸmÆÛUlÇĸk°XyĊUǔVǩnmV»a@ýnK°n@l¥@»żĊ¤mç@£ČU@mmVkÞUƐ±²¹°ĠwÅƑŃU¯V¯aÈŁÇ»ġn_°xŎKlxklx@Þw@Æm²bDzLlkWXať¯ĊaÑK±w@wUÅçV±Uk@@¯¯xU±±UU°ōxVxÅÔō°ó¯UݦóbÝþ@ĉÈóUVUx@VUVÝ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: ["@@ÞnKlnwX¥WÝXkxÞUn°aĊVnUUKlÞĶWXnĠ¥ô»@nmVL@¤°VzJanU@aÆwna@kU¯yX_aĉbwéXkWwÅa¯V¥m¯UI@@mb°aÈçU¥@»knwɜƇ°I°ÑÈmVU¯Xa@wW@wV¯Č¥l¯Uwnm@kaUaóKkk@Çab@ÒWa¯IÇxÛam¼VUxÒl@zÝÒ¯bÝaĉVĉwÇWzJmJn²mܯU¯ĉ@ġ¤Åb@²nml@@ULVxVU¼Ålmab@°l@WIU¯@m@ó@UzţyXÇUÇVUUVLkbWakVWmUbkkKUÆ»n°Knk@aUVmnk»l¯Ģlw@_kKVU@na@lUk@¯¥mV@kmbWb¯Åõa@mkU@kÇkU@`@óóbl¼Uxn¼lVÈx@blVkVVn`XÈġÈ@ÇK£ÝJmUUnUĖmlUmKUnVÅaUwUĉ`¯n¯wW¼nxV@bĉnkIċŘkXU±ÒxÈ@X°`lVIȯĊVVVan@VaUVażVmblkÈWWIXaalL@wVbV¦lL@lĠnÒUnkL@ÆÞkÞKbñþW¦ÛċVULUºkÈlŎUxÆxÞUUxÒx@XbL@lÆ@ÒlXVln@bm¼J@Ånx@bnĠmxVXmbÈè@Ċ£ČWw"], encodeOffsets: [ [105210, 36349] ] } }, { type: "Feature", id: "6206", properties: { name: "武威市", cp: [103.0188, 38.1061], childNum: 4 }, geometry: { type: "Polygon", coordinates: ["@@±¯¥@klwU»ÞÝmwKm¯ç@kVÇUL¯lVUKġġm@a@U@X£°l°LŎÇ@aōVÝwÔKUÅWJ¯lm@ÛVWa@klĉUmaLUanak¯J±KkXóÜÅx²Ç@nUÒĊb°@ÆkLXÇÆ@xÝnxWxţ¯¤I@ÆnVVVlU²ÆèV@x²xLÒĉbŦ°WbXklÞ@l¤XĊ`wl@ĢÈŎm@bnVUb@ÈÆÛ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`UmV¼@nnÆwVlnVVaLVÈ_ÿÞ@naxÆ@l_@VxnK@llLnxmÈŎJnbUxI°l@n¦lÈIlmX¥k°@kJk²é@klaUaVaU@@ÝnIWnmnxkºÞaV°V@nwKxôbÞ£VUbþLn»mVwIJ°@nb@°°IġUkÇKV@ů»lLnm£@anK@ÑÜn@»mL@£ykUUmbUÞÝ@kyÇbó»XUxWVzb±mÝbXawUamL¯»@wUKVwm¯ĵJ°ÅUWVkKVk°wÈVVÑlU¥kmVamknUw¯¯bċ¥ÅKkKkVċVk£kKVwÑa@kóyÛ¯ÇVkówXō¥Ç¼ów¯U±k@xIĉÒÅVmÈnÜ@n°bUbÝVUnnJ¯Į@m¦nVÜ@L°JXbÑ@aÈb@llôLVbb@lmnVxk°ċ¦U°@xX@xWb°UVÇn¯Ò¯Jɛƈmxl@¼"], encodeOffsets: [ [106527, 34943] ] } }, { type: "Feature", id: "6210", properties: { name: "庆阳市", cp: [107.5342, 36.2], childNum: 8 }, geometry: { type: "Polygon", coordinates: ["@@kwĉ»VamV¯wIóVkl¯KmVō¯ÝWkL@bÝKō¦@@Lx@b@la@km@@l¯nm@UaÅ@óWUXm¥nw`@UUxķôÇ°ğ¦@VJ_nIVnalxkXJWn¯nVLxl¤nnVbklVX@xnxmV@bUK@nm@@xV°±aÅnkUWnUax@mn@¯LmUĀlU@lV@blLUblxklkIÇx¯°UXbaVUnV@°LUlnbX@`°nVmbnÆmVkLmK¦U@Xy@kl@U°K@¼XbW@bWnLVaVVz@xlVČ¥lbUxÞlVU@nÆWôn²VJlUƧLnmÜLXan@mw@wlUlV²mblwVÈlLÞ±@lVnUlxnkma@mkJ@kXVU@mn@¼VXUVlLnmVbôaVnWV»ÈUl°È¯ÆInÆU@kk»mKkÆġk¯@»mk¯@óÇlÇ@VykklUml¯Þ@w"], encodeOffsets: [ [111229, 36383] ] } }, { type: "Feature", id: "6204", properties: { name: "白银市", cp: [104.8645, 36.5076], childNum: 6 }, geometry: { type: "Polygon", coordinates: ["@@VKUÈl@è°nLnxÝÞV¼kx@l¦²°ĊóĠĊ»@ÈxaĊxlwÈVŤa@¯²aÇ£Jk£lnUÞ@°ô@ywl»lIX¥Ǫnw@ÑÞWlaÅlL@Uwĉakl@¯mwna°JV¯nUVÓÞÑm£²óWaUÇ@óÝUçV»ÈkkW@¯xV@XlK@wX@Vmm_@wÈÝKU¯ÇwVwÅK¯VkJXkWVaIm¯UkÇlVĀV°mxók@¼óWxĉÜU@UbzÛJÇk@ÆnVlÔ@kxô@ĬWL¯K@aÛImm@IUa@UÇêU¤VÒÇx¯ÒVlk@Wbĉ¦UbkWV_y¯Laók@b@nmbkx°"], encodeOffsets: [ [106077, 37885] ] } }, { type: "Feature", id: "6211", properties: { name: "定西市", cp: [104.5569, 35.0848], childNum: 7 }, geometry: { type: "Polygon", coordinates: ["@@aV²wVJV_@LlanÅllŦçÜÓ_lnWaôkxUbmV@È°lènk°l¦`@nnL@ÈlÜIyVaV@ĊÛXwô@»lônwU¯ÿUÈkl°VnJUblXWIl°UV@aVVVmnL@lUUwmk£bV¥VUVwÛlaÇÝÞmk£LUy¯L@WlkKW_XaWmġU@akakXkmVwmŹVUbWónmwnWW£KÈnV¥¥Æ_klWbU¯V°aôbnaVwmaōInÇmwkK@kmLUw@`kÅ@wb@mÝĀÇ`UKUbmUUkÅxmm@»nUVk_Ý@ǦVÇè¯ban@@JV°nU¦°ÆbXxWlêxĊabW`zV°@lmbÅx@bmVbI`¦@ÒUVUI@ÆL@b¼@@lmxnL°ULÞğÞ°kLUL°xVnKVl@zX@"], encodeOffsets: [ [106122, 36794] ] } }, { type: "Feature", id: "6205", properties: { name: "天水市", cp: [105.6445, 34.6289], childNum: 6 }, geometry: { type: "Polygon", coordinates: ["@@UyÈVVUnn@VU`UblzJnk@VbKU°lwW°nkVUÈl£°V@n¥VklkU±Unlw¯UkwmKUlmkUmnkym@Å@UmWÈU°l°anlJkUKlU¯Èm@kmWV»kkÝLUWUx±b@¯ma@¯IJUxnm¼KýaVUݤóawLmxU@¯UbݹlmwmnXmJ@ÞV@UbVbkbl@±êlIl¯@lW¦knÇJkm¥k@¯Jmbóa¯bUV°akXlÅ`¦U¦ÇmLX¤mXnxmôXaVźUnUxlnlWbl@bĢVnXWbX`lLXk@°KVzKl¤nÞÝÈkbÜ"], encodeOffsets: [ [108180, 35984] ] } }, { type: "Feature", id: "6201", properties: { name: "兰州市", cp: [103.5901, 36.3043], childNum: 5 }, geometry: { type: "MultiPolygon", coordinates: [ ["@@lW²L°IlmbVbKnbĊVlk@XbÜU@kn°XIÆVLÓÞxŎUlôb°KzU`lXVaĊ¥Xal@kU°ÑÈwUÑV£ÈéV@VbJ@nnÜJ@bL°XK@īówl@kÓmUÅmK@m_k¥l¯mkçǯ@nUaVwólXbmk`ÛÔťèkkmÆkbK@U`UI±xUbWlXmbVbÅÒólkIWJk@zKŻ¼@xUxó¯LWb@ÅÒ±¦U`nbťĀUVbLU"], ["@@¯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ĊÆwnJmwUxaUkw@V@waVmlLXÝl@XVĢmV°@nl@UUUWK@wÿVI²Òlm@nÝĊýVV@nJ°Ułm@kV¼nKĢȤôKblnKllVk²aĠ¥È¯ĸóVw@V_xmn¦VWôXÆ@Vbn@°m@kn@@lb@ka@wK@@UlKVaWXW²¹lÓw@_°n@@_lKÅķW@mLUWn»Û@l_Ç`Ûmm°ÅbWb@VWbUUKÇÅaġlmkUġl»LlUm¦@¯U¤ÇkVUml¯Xx¯kVLUa@mlIkyVa_UV@mmUVUÇVzUxUVU¦a¤lnVxVk@mKUnUU@bU", "@@@ż@mlkġk"], encodeOffsets: [ [107877, 36338], [108439, 36265] ] } }, { type: "Feature", id: "6229", properties: { name: "临夏回族自治州", cp: [103.2715, 35.5737], childNum: 8 }, geometry: { type: "Polygon", coordinates: ["@@@ż»Ly@lXIJlôkÆÑUanaWXkW@yk@ULmUw¯KVlK¯ĠÝÝVK¯mKnwk@@»@aK@ÅVJVU@Ñ¥_Uy¯@£UKmn@ó¼ğ¦WmĵXÝkVLmVĉU¯bmÝVwWlXÞW¦xkmmLݱU@VÞ@ÅÈW°XܼƨyUĮnWnXÝxUx°lVXJlôV"], encodeOffsets: [ [105548, 37075] ] } }, { type: "Feature", id: "6203", properties: { name: "金昌市", cp: [102.074, 38.5126], childNum: 2 }, geometry: { type: "Polygon", coordinates: ["@@ĢÈ¼Çł°bU°VƒńÆǖŰnÆōĬǔaʠůĭ_kķÆ¥VÑÈçÜKÅ@ÇVaUm@aōnġÇk@xĉ_Wk£@ݱKȱaÅn@Ýx@kwlkwō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¦kVVnJVbǖVkôVabnaWwUXmmamUXkWKō¯Xm°»ĉÇ@UVKķ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¥ÆÇIlxmnbUxlUôl°kWl@ôVwUanUl@xVkaX¥kU»a¯±@kka@UwmUkwJk±k@L@ÝWUwVÝxÇU¯ÇX@mÅ@@yĉ£VmUwȗ»ÇUnlUnWU¯`Uk@@x@bÇxX¼VV¯LĀkÝL¯@VĀ¯lnĊW¦kVÇôkUÇUK@ţU@aóÜUU»@¦k@VxKVbn@Æl@xbWnlUlxÈlVÈ°Æ@¼@xWxŎVK°¥nÆkŎ@ÈÑmK@¥k@ô@nôV"], encodeOffsets: [ [115707, 25527] ] } }, { type: "Feature", id: "4402", properties: { name: "韶关市", cp: [113.7964, 24.7028], childNum: 8 }, geometry: { type: "Polygon", coordinates: ["@@WXk±Ñ@UwmUwĉwlmn@Æwn£mkI¥ÇÅ@¥aón£nWWw£V`Þ@nVml@xô¼IV¥kUmkamUkVWwÛ»mó£UVÅKmn@x@kbmm¯aXkaVĉaUbݲlIlxnVVx@lb@l²°bV¼lW¦bUlwk@mVVbUxó@kX¯lókVkwVmankwJÅȦÇVUbU°blĀ°kÈ@x¦ÆÜ°@°¦óaVUôlUlbXl@nÜVnKlnIVÞ°W°U@bnm@¥IV²Ul°VnalzXyl_Vyƒ¦lLlx@ÞbKmknVWanwÑVwČº@n_ÞVaVÜIl@KÈVJ@a£È@@kmaV¯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@aUUċlkJk@wVJXUWk°W@nKnwlUl²blU@lIl@XbWxnm@lW@wwUJX¯VU°`ŎóˋkÝÝkÅ@ÇmğÈřmwaĵVxUÛ»°ĠǷnýmóX¥ɅĵҏÇ@°²ĊUĖ±ĮU¤Ç°Ā¯ɐnżUĊĊĬV@è@ÔÒU¼l¤nĠbêVĠ°ÈyzVaVnUÆLabVlwÆ@"], encodeOffsets: [ [113040, 22416] ] } }, { type: "Feature", id: "4414", properties: { name: "梅州市", cp: [116.1255, 24.1534], childNum: 8 }, geometry: { type: "Polygon", coordinates: ["@@nÔlW¼x¦@lVllLkèa@z¤Ė¼UxlnUKUbÝlU¼lb@VxVklJÈwV¯@ĠlÛĖnbkÆźÞUÈôklmL¥LWnKUkVa°Vx@IVV@x°bUkaa@mV@@ywLÑUwVUVUbÞVVann@XwÇÿ¯²aVamkXaÆ»@»nw@¥UXakbWa¯KUw@¥m@kwmLU»UUJ@kmU@UUWU@yanwmçÛl¯¯UmKUmwVkmÝXbW@XWÝbk¯@±w@»U@W¯Å@Ç¥UU@IUakJĀê°þ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£@¦Ģklynn¼lW°zW°VbÈV@lÆbnnJkXVÆaÅW@UUw@kaV»ÞkVaVLkmVw»ĕ£@yblçkKkU@k¥wX»kmÓ@Wn¯I`@nlbWý¯éÿlI@XUmWUw@@UJUÇmKUV@xţk¯¯LWnUxK@ű»Vwa¯@¤WX@Û¦@¤ÇIȼWxX@WxwUnVbÅèmVa±²UWl@klȤnôܼXxlUnVlbVnlU¦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ôÛ@bV@ŤVLÈlVÈólUX¥mĉ°kÿU°@ÞKlÿ°KUUW»Èw@aw@@nm@w£kÓVUVnKk¥£Vam@nkKkbÆǫmakmLU¥UmÛwmVUmUJÇaUxÇIn`mb@Þ¯b@nJ@nlUVlVULW¯Û`Ç_¯`m¯IbĉWċzx±Jx¯ÆU_k@J@UmbXôlLn¦@¼ĊxlUXxUbLĠUnVĊwlUb@lWXm²@ÞWxXUnb"], encodeOffsets: [ [114627, 24818] ] } }, { type: "Feature", id: "4413", properties: { name: "惠州市", cp: [114.6204, 23.1647], childNum: 4 }, geometry: { type: "Polygon", coordinates: ["@@lbW°bnnla@@wnmÆLVUkÇl@XkV²±bnUÆçUaVmxXw@WXwÇ»ÈJ@£Ü¥@XW@£°bUx²¼@ÆLVwmX°K°Ťl@wVUnLÈVVIky±wkKU¯ÅkXġÑÛlwUwlm@mnKWaÅm¯óÇmğb¯alĉUwķbmb@lÞÒVnmĀŹ@VbVUnmakLm`@xĉkklVÔVJVnlVUnmJmaLUblzmkLaō@@zV¦UV²kJnÜU@VXUL@lJL@bݤUnVb@xVnlK²Vx°VxlIlkVl²k¤@n"], encodeOffsets: [ [116776, 24492] ] } }, { type: "Feature", id: "4409", properties: { name: "茂名市", cp: [111.0059, 22.0221], childNum: 5 }, geometry: { type: "Polygon", coordinates: ["@@LnÇlkKnkÆLUmÈxlUJló°n@ana@@X_@mÝóóU@aaU¯mL¯kV¯ÇVwkw@V±Ŏ£@@alw±Vk@mÅm¯ÿÅƧIÇ`ōô¯_UVW°IVx@xkX@mnwXWa@kkJ@kVa±kkVmxmL@¯XXlWVUI@xlIklVČV@blW@@nUxVblVxkôlxnynIƻưaXwlKbVnXbL¤kLèVV¼²IlĠVXynz°KVx°@VlLlblK"], encodeOffsets: [ [113761, 23237] ] } }, { type: "Feature", id: "4407", properties: { name: "江门市", cp: [112.6318, 22.1484], childNum: 5 }, geometry: { type: "Polygon", coordinates: ["@@lUXx°JWnnÆXVWX@ºVLV¯nUVnbôxaXmWXIUb°xlKl¯KxXÞ°XÈ¥Ü@ĉÞUç»nóVmax¯UÅU¥Ý¯@ç@ș@çĉÅUmUç±ĉKÝxÝ_ÅJk¯»ó¯nmèkǀWx¼mnUÜġ°@¦@xLkÇaVnUxVVlnIlbnÆÆ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Þô@nVlÒôÆUnlnn@lmkmVkaÈkÆÆk¥ÅÞ»ÆKXkW¥ÅLmÅkamJUkUVwUmÈblKw@@¥Ģ¯VÛnm»Xwlƿ@kbWaʵ@óLl¯ƽ@Ln°Æ@nUl²kxb@@ō¤U²@lxUxÈU°l"], encodeOffsets: [ [114053, 22782] ] } }, { type: "Feature", id: "4453", properties: { name: "云浮市", cp: [111.7859, 22.8516], childNum: 5 }, geometry: { type: "Polygon", coordinates: ["@@@VIl@`V°Åw²IwČyĊXa°Jn°_È`Ü_°XKVkUUVk@mmI@°a@Ýnam_ÈJVwlĉX@lUómaUmVU°UK¹@WXUWmÅXm¯IWwkVWlÅLݼÆl¦ÅÅÇlbUllnknm@kmVmóÅkÑUW`@@bmb@¯mkôIkVÇwnVÅKmlLklmÈKVĊK°²`n¤nUbWlxVxLUx@°nXm`VklVxmnnx"], encodeOffsets: [ [114053, 23873] ] } }, { type: "Feature", id: "4401", properties: { name: "广州市", cp: [113.5107, 23.2196], childNum: 13 }, geometry: { type: "Polygon", coordinates: ["@@Ș¼VxUnĊ¤@z@Æ@nÈW°ÈVwUÞVxÞX@Kl@ÞVaĊbU@ml£k±lUkkJw¯UUw±kLUm@waUVmÞ£@aKkI@KVUW@ÛVmlIU±VU¥@yğzƧÇƽĠřÅnī±m@²¯l°@nÝÆóUll@XnÝVU¦mVV°V¼Jnb@°mbn@²¯¯wVw@@nmxX¤¯L@VLUm@@l"], encodeOffsets: [ [115673, 24019] ] } }, { type: "Feature", id: "4415", properties: { name: "汕尾市", cp: [115.5762, 23.0438], childNum: 4 }, geometry: { type: "Polygon", coordinates: ["@@@@VxnXWV@bVJV@ÞÅU¥Ċx£UWUwÅUU¥WVUkĊÇnkV`°LVwnU@lbĊ¯Vnal@@çkUÝ¥ġaó¯ÅaÅLŻÆUýmy¯ó@ĉÆóȯwÆXbmL@nknVxkxÜĢÒWÆlV°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ÞWlnUxVnnL°V@kmĢl@ak@mlk°aX±nwm±²¯JV²@wW_maV»U@m¯ĉUÑJlabVnlĸLlƅÛDZwÝ@ĉxó@è@kmbUĉ°ka@mVxU¯KU_mlĉÈVlXUV¦ÆVxVVX¤ĉwV¦ÝÆ"], encodeOffsets: [ [118384, 24036] ] } }, { type: "Feature", id: "4404", properties: { name: "珠海市", cp: [113.7305, 22.1155], childNum: 1 }, geometry: { type: "Polygon", coordinates: ["@@è@Þ°V¦VÆ°wnbUÆ»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: ["@@ÈbInVVnUÜxnVV¦nKlnbÅǬlalL@mnUb¤l¦LUmUVlÔ¤@xmnVl°_XVVmkVmÈ@kn@VUK@°KW£nw@m@Ux°x°@±mna@¯amIU»U¯nUV¥ÞUWmk@Vk¯UknÑWÝĊÛ@ǦW¯WÝwLk°kL¯wVaWJXWnbwkVW@kĊ"], encodeOffsets: [ [115088, 23316] ] } }, { type: "Feature", id: "4451", properties: { name: "潮州市", cp: [116.7847, 23.8293], childNum: 3 }, geometry: { type: "Polygon", coordinates: ["@@°Üknèmxbz@VVX@VnV@lIVVV¼nKlxn@@¦Vx°LXblaWbV°£¯W@nW@aUñVwW»@¥ŤÅUÝǓÝóV@ńÇkUVmIUwÅVWÇX¹@W¯bkl@nlb@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ÈÆUVxJUnlVÈ@ŃôUǔÞVçn»VyĢÛVm@»kaÝUǼóÛÈķKċ¥X¥Wwğk¯@wķKkUmabkIVÒ°Ċ@nVU¼bn`Xx"], encodeOffsets: [ [119251, 24059] ] } }, { type: "Feature", id: "4403", properties: { name: "深圳市", cp: [114.5435, 22.5439], childNum: 1 }, geometry: { type: "Polygon", coordinates: ["@@ÞL@xbVVK°X°Kô¥Vw@anUèlkĊl@wn_lKnbVmUaUź@nÿUmÝѯUbk@ÆkxŻ@aÇXwJ¯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: ["@@Ŏ@blKnykVaKnbnIVmUkUmUIUÓçmV@bUxó¦¯LW¯LUUa@wÝKğŚƾƨÈĠy"], encodeOffsets: [ [116573, 23670] ] } }, { type: "Feature", id: "4420", properties: { name: "中山市", cp: [113.4229, 22.478], childNum: 1 }, geometry: { type: "Polygon", coordinates: ["@@XÒlmV°ôÞÅ@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@VIl@XnJn@VUUalk@mK@kny@UlU@a°UU@VmaU@Ua@UWw@n@KmLm@alkmnIm@an@VIUamWÅImwU@@a@KX@JVLUVmUaVkUa@m@@Ulmkk°UaVUlKXbVwVIkaVmUk@KVk@aaW¯m@w¥laX@KmakVmnUl@nxVKInU@yVaVIV@na°KlxX@@_lmXUV`VIVV@n@lbn@@WUkValK@²yl@VUV@@K°L@KU@@UVaXIVVV@naVkVa@K@UUK@UUaLWaw@m@K@UVV@mVUUVKnLmVLKbVK@UUIkmI@mUIVK@IUK@VkL@WU@mU@WmUk@I@VJk@WwX_@amK@UUWkIK@LVb@mVmakL@J@bU@Ux@xbmI@`Iwm@UbmKUaUWa¯UkJWV@XJUU¯LUmV@ma@kkamKwLUUmWVkkm@aVUUkVKnVVUmXK@UW@km@Ukkm@@W@UkUy@I@aUUmb¤U@kUmL@bmJU@Ua@wkLWWkL@U@VaU@LUakKWbkUWVkKkLVLUV@JVbz@V@VmUU@kVmK¯@VU_VWakVmIUKUaU@@bml@XU@@V@LmKUVmVUKKbkaUXKUL@x@V@l@mxU¦V@lL@V@Ln@@VV@nlKUaV@nLUbmJnL@VWLkbmV@@LWXLlxVVIVV@x@V²blUVmLVUK@kWWXUlV@Xl`LXl@@Vn@VnbV@lVUVUÈVb@@`UXU`l@@XUVm@k@xmVknUJVXUbmKULmbx@VlJ@LVbkKUbVLÇUUVUVmU@VaUkUKVUwmLkUUVVlbkaXmwKUVVU@@V±Uk@VWUUm»XamUbKk`U@UnWW_kKmbUVUVmnUV@nJVUlUbU@UV@n@JmI@VmbnVUXlx¯kKmnVV@L@VbkVUmm@Ub¯LmlUL@VWLkmkLmmn£WmnKU_mWbnbmx@U¦UJU@Xmlk¦@mnUUm@@Jn@lVÔVJnIVWI@aÆK@I@aVKIlÞnnl@nl`nbÆX²l@xV@llbVn²VVl@nnV@IlW@Un@@kVa°KnÈmVaVXUlaVÈUVlwôUlynIVaan@lVXbI@n¥la@K_n@bÆx@XnJVnKVz@`VXVU`@b¦UV@VIlxUnVKXÈbVllbVbnVn@"], encodeOffsets: [ [109126, 25684] ] } }, { type: "Feature", id: "4512", properties: { name: "河池市", cp: [107.8638, 24.5819], childNum: 11 }, geometry: { type: "Polygon", coordinates: ["@@lLVlbVV@nXVlI@JVXmnW°bIVV@ln@nalVUbnW@kVkÒlbVKn²°bUlV²@X@`nbaUI@°wlU@aXJVI@aVK@wUamIXm@XUV@@bV@VmImnUUwVaVKXUnVK@akVwV@nL@UV`n@@XlnIUJl@X¦V@aUIVm@anV@UwnL@VlbVL@KVVXUWwUUVUka@UVJnUlbnalbVVn@°LV`Þ@XVxV@@bVlUVVbXnWlXnml@XXWVXJmbUI@VllUVkn@@VWV@Vnb@VXUJVnn`lLVka»lVLnw@WV@lInw@WnU@U@mknUVóKwUmUXUU@@wVJVIl@XKVVVbVIJ@Un@lVLnmb@U@Ul@nU°VUVJnnVJV@@mVU@@wkUVwkKWkyUUkU@alkÈ@lJ@xIl@UUWVkUw@Kn@@kmaVUlUULÇUUKl@UUmL@aXU@mlUUwmKkUUVKVUaKUnK@U@Vl@XUWUKlwX@b@K@XkV@UwWJka@aUwmV@U@@U@wUm@»kLWVkIWXnmV@VkbmKLUbkVa@aa@@aVU@aVak£@±UkVU¯VUUJVUI@kxmUmWUbLw@K@aU@@aVU@Kma@aka@_VWkk@UWVUKULWKULU@KUnwVaUKxU@UmaLm@kVmVa@UkmI@@KmIkxU@@KU@mmakI@VLkmWkkJ_U@V@L@nxXbKVb@VVL@V@LUbUlmbU@UUWJUb@VV@@L¯K@LU@UVk@±z@kLUbVl@Xm@akm@U@UUJU_VWkn@`W@kw¯LmbU@UJUb@zmVJULmwk@mVUnlnb@LWkb¦@x°nXb@bUl@LVlUnlbUJUxWakLUVVb¯llkn@V@@nVbUlVbUnVUK@IW@L@bV@nxÆJnXVbUJm@@bnmJnkl@bnnK@Lm@Xx@VVbV@nb@UVV¯@bkV@Vmz@lnLl@kVbUVm@mI@WkJ@UWKkXkl"], encodeOffsets: [ [109126, 25684] ] } }, { type: "Feature", id: "4503", properties: { name: "桂林市", cp: [110.5554, 25.318], childNum: 13 }, geometry: { type: "Polygon", coordinates: ["@@nU@JX@`XLm¦Vb`lVXXW@VblČnVlanLnmVLK@_Va¥@kUa@VmVbaV@XVVzlVVK@knKVmX£VKLlbn@b@llL@xĊôXaV@°È@¤bnV@@Wl_VU@WnVamwwVbn@KVLX@VmVUxlV@nVV_nK@mI@Wn@@IUĊ@@wVWX@@I°VVm@wmU@m@IUVklkUmmkÅV@@aV@@Wn_UKla@kaVlVanb@k@@KlVn@@aV@nIWWUUaVU@kKmwU@UImKk@UU@w@W@k@UkW@mk_W@Ua@a@¯mV£@mUUam@kWakVama@UUm@nw@alaUmnUlVlIVLVyk£Vm@k@UUJkK@kmKUwKkWK@UXImyVwnI@mkUlkUKkUVmw@kkJWUÈm@_k@@aaW@UUJUwU@@IWKkmUUV@nVl@bVb@bUUXakw@WUkbkKbm@xUlkLm@@wmKUX@UaVWXVmU@@UUUxkmWXkKkUWaUaUbL@`UL@LV`UXmK@VmakLVbkLxUJUIVbUVVb¯KV@Xnl@lVXbmÒnV@L@VWKkVUIWJkIUamUUbm@UkU@JUbW@XWxUam@kbVVUnUJmUUV@bU@UUV@Vk@bmULV¦U@VU`VLUL@xVbn@UJ@nWJXXVVV@bkxVbUxL@x¦@UlXUVVlULV@@nUb@xlnJVnlVknUlVUbmU@bVx"], encodeOffsets: [ [112399, 26500] ] } }, { type: "Feature", id: "4501", properties: { name: "南宁市", cp: [108.479, 23.1152], childNum: 7 }, geometry: { type: "Polygon", coordinates: ["@@lKnbnU@Ua@KLlJVX@VnL@bW`Xxl@I@UJl@nV@XV@nXV@lK@UVL@JULVJ@nnJlVJ@VULaLUKnmKULVVU@nU`lIXllnK@UlJnb@nV@LV@lwnJ@L@nJl@VUbUn@lnKnbVV@wVLUbxVm@LVVKXLVKVLXU@VllUX@`lb@bnbL@UV@bV@@b@LxKVanXVUUmVUUUaVUkyUUaImK@mUUVUkKU_@W@UVVVIUWUVaVU@UUKn@k@al@ll@bnL@bVUVX@V@@bKnblmn@V_@aUalL@a@akK@kVKUKlwUUnV¥VmU_VWVIVaX@VaalÅK@LVJnalL@LnKwlVUwmX@VXlLUVnblaUmVUVwXU@Wm¯Va@ÞKnw@wmk»UVW²a@_mW@U@IyLVUUKW@@LX@VUV@@yVU@UV@nwUUmJka@IU@mVkaW@UwUX@`@kLWUk@mkUUm@kUUWkUkWxk@@VK@nV@UVaUUJmIkV@UamLUbkVmamLka@kmL¯WI@wJmwx@akU@aUKmbkaW_nW@_U@Wm@a@wkwUKmk@bkbw@mKUkkU@J@bW@kVWz@bVUaVUx@ULkJWbXVVX`@mJUVU@@Lk@WbU@UJlnXlmVx@Ln@b@KLXWJUUW@kaUVUbmV@nnV@n@lVLVmLXmXkV±@kxÅLUbJWIÅJ@ImXalkUamKkkL±aVwKUU@mÞnbWJXm@lbmKULWUUVkabnn@Vl@VVV@VbVbnLWLXJWxXLV@@VV"], encodeOffsets: [ [109958, 23806] ] } }, { type: "Feature", id: "4502", properties: { name: "柳州市", cp: [109.3799, 24.9774], childNum: 7 }, geometry: { type: "Polygon", coordinates: ["@@wUaV@nVaUVklmkUUmmIk@waVm@U@VKUkVUkWV@¥@wKVwUalw@aUUUWWXI@mVIm@Ua@wVKUKV_UV@U¥VKnal@U@VU@VV@aVUnVVIVmUUlan@VbXwWX@Va@IlVVn@VanVVblJXIVJlUXL@U@KmUnÑWakU@mkJUI@mk@wUmmUV@JXaWIXWmaUIJkk@WnJ@aUak@kkJ@kUKU_@myUóWUkm¥kUmL@KUKm@k_UmVa@k@@UmU@mm_JWIUVUWLUlbVUJÇVUIVwKUVk@mU@n@lUL@Km@@l@LVzJmUU¤m@UbV²U`U@@¼Vn@x@V@@VnUVx@blbXIVxU@Wl@@LaW@kxLXVWVk@@U@VmLVLbUVULVVlnLVxkV@nWV@bnKVVk@VLVÈVKVVkUnb@lm@@LVxUlVX@VkJ@wkIÇ@kl@blVVVzXllLUxlV@x@UV@nU@UImmUIUV¯mVk@@V@VamnUKkm@@VIUJUaUUWLk@UJUI@xV@VVWVnxLUômVV@VkVVVUnV@UVkL@VVV@bVxla@bkXVJVn`nU@bb@bVL@VnJ@l@VaU@@_lW@UUU@Unlll@XLl@@UX@°bVWVanLlknVV@VVX@VVnUVLmbXJ@nllXX@`VXlmaXVWk@WkwJ@VL@JbnU@bn@@bVKUnVJVIVVVL²a@bV@@Vl@nUVakalmUL@VUL@Va@mXl@nK@UlKL@Vl@@nkllb@Vnn@nVV°lVInwlKXxlU°n@@I@UnVlakUJWkUK@anUWK@_ÞJ@U"], encodeOffsets: [ [112399, 26500] ] } }, { type: "Feature", id: "4514", properties: { name: "崇左市", cp: [107.3364, 22.4725], childNum: 7 }, geometry: { type: "Polygon", coordinates: ["@@@JVzl@V@Xn@ll@VlnX@@VWLnUVmUULVlUV@blnUlnXVVKxnLlb@lnbU@Vn°KVVI@WXUlI°VXbVVbnLVan@xJ@_nJa@wVwV@@a@IU@UU@WKXwWIXKmKUaa@UUUUk@@UmmalbVUXVVKnLa@knWXImanÝV@VLUx²blKlnLVbklWbn@JÆIXJIVaÆKlw²@lUnWWnKUUK@k@mmU@mnUVaVUb@lVXVXIWK@Lam@@KUwnWkkmVIV@Xal@@KV@VUnI@_UWWUkam@kkm@ka@mk@wkJWIUU@WXkWXkWWLUU@UakLWXV±VIVWUU@anUWaUK@IU@Vak@@UUKWa@m@ak@@wUkla@mUaUklakwV¯¯@WWUkLkKmakLUnV`UxWX@Jkn@bmlakkk@b@l¯bmbJb@VXnbVV@bJUkkKWVU@mÛVUUW@UVUJWXkVkKmUL@WW@UVl@XXKWXJ@XVlmbUxnnm@UlVnV@XVm¦VJb@mLkKÇbXblVkn@l@bWnX`V@@IVV@VV°n@@_naÆVVbUVVbUJnzlVUlXkV@Vlx@XVnxbKUK@b¯VVUVL"], encodeOffsets: [ [109227, 23440] ] } }, { type: "Feature", id: "4513", properties: { name: "来宾市", cp: [109.7095, 23.8403], childNum: 6 }, geometry: { type: "Polygon", coordinates: ["@@nVlw@VJUIVVUV°lU²V@l¤Ub@bUV@b@b@bUblVaKnLla@UnUWmXlJXUlKV@V_U±Van@V£nVIyU@K@kn@@LVK@k@mnVl@VULUxVJÈUVIUaVkXKVVUXJIn`@nnV@Vl@@UbVnl`n@VL@LnKlVn¦VlôXVnz@V`VL@llIll@Vbb@mIXl@lIVJnbWXXJWb@IUnVVn@xl@nVJI@WU°LUaVUUaVJVIwlKUalKnb@UnLVWU_@KVK@_KVa@VKU¯VLVKn@laaUkU@maVUJ@k@Um@XmbkyVaUIUU@KV@laVn@KXKWUkUk@aWUUVw@aXKmVaUUkmIlUU@wUaxUmmU¯U@WLUmVIUym@UVmUa@wmw@çm@aWLUJUIUamKmL@ax¯¥kU¥U@±kUVmKU_mJUbkKmLÅÇ_@WWUXUmaVUkKUWW@nVxkUxmL@KkKmbUI@KLkÆbUbW@UbUJUXV`UnU¦mVVkxVLUL@llL@b@bkKVb@bU`m@knmaL@a@@UWVUU@amK@akkk@@b@lmVL@VUVUbVVXUJUU@V@XV`lLUVVV@nnLJVbVlzUVVbVVnUVVU"], encodeOffsets: [ [111083, 24599] ] } }, { type: "Feature", id: "4509", properties: { name: "玉林市", cp: [110.2148, 22.3792], childNum: 6 }, geometry: { type: "Polygon", coordinates: ["@@VJUXVVXlWX@VxVnX@@`ULWUXÅbWK@mULUUmJ@n¯b@l@VULVxxXU`VXXJVIV@nm`@nUVXn@lWVn@b@Jn@nU@Lm`@Xn@WJ¦U@@VnLlV@@Xl`nIlJnkVLw@KVK@UaVL@bVKXlUUKVK@IVLa@U@WLUlVL@bU@@blb@VlbUxVbXUVJ@xVLUlV@VUbVLnKlXJ@Lb@an@VanL@`VLKV_UWl@U_a@WVInlVUUUVm@I@W@wVakIWm@U@XwlaVbnI@m»Va@aXaVLU»@aVa@kKkL@KmU@WzUK@wU@VWUUVUUKUa@mKmbUK@_nWVaUkVaUaVUVLXKVVUVmVI@UkKkLm`UkW@UwWW_UaU@WakXmK@xUXJkUUWUk@WlmJ@km@@aUKzmyVka@kkWVUU¯lmU@@wkkmV@Vk@mÅIUka@Ub@m@UUU`mUbWaWmbXXKWIXUWm@Å@y@UkIUJUUWLUWL@UkVUxW@kaWbKWnXxW¦nm`XLVlUbVbUxI@JmLUKUb@VW@@bkL@b@VlU@xk@L@lxXxWXX°V@VVVbUVV@UVVbULVnVJUb²baUb@VVVVInlV@VnXaVUlIVUb"], encodeOffsets: [ [112478, 22872] ] } }, { type: "Feature", id: "4504", properties: { name: "梧州市", cp: [110.9949, 23.5052], childNum: 6 }, geometry: { type: "Polygon", coordinates: ["@@VbXblVlLXWlnwVV@VV@UnWUXVb@VWXa@kVKUaVaVkUlyX@VaVmUwUaVU@UÈymI@aU°@nWV@VaVaw@IV@VmnLVK@kmmna@VbVI@aV@XbW`ULUVVx@VbUV@bl@VLXblJn¦lL°°@n@K@UlLnKa°LWbnJ¦UÒVUllLlVnKnbWnnV`w@@Xa±nl@XKV_WVkVa@kVyUa@wU£UW@UIVW@@awWaX_WKkVmUULmak@UJUI@±m»k@m»VyUImnmmwnkUmVaVIUn_mW@»Vk@VwkmmUXa@IaVmm@Wm_U@mIUWóLmUk@laXmmkUK@UmKULUUmWUL@VakU@Ub@b¼VUKWb@bUbn¼@mJUakbWx@@VXnlJUb@x@X@JUnVVUVmkUJ@XbV`k@VXU`LUK@_mKUbm@@b@U`@nlV@bUnbVbn@@`VbUbVV¯bm@@mJXb@bVnUllVXUlbUl@LU¦VVmkLVb@bl@V@XlK@V@nUJUz°mwmLmlXbWVU@UUUlIU@VVmV@@¦bXbWxXWlXVWL@LUmkbU@@LVVVJUblzna@WVn@@lIUVnbV@Vlbkbm@ULUKV°UL@"], encodeOffsets: [ [112973, 24863] ] } }, { type: "Feature", id: "4511", properties: { name: "贺州市", cp: [111.3135, 24.4006], childNum: 4 }, geometry: { type: "Polygon", coordinates: ["@@nL@xn@lKVkwn@alLlaXV@lxbVWV@aUa@aUk@mVUnVlXL@JV@VxVIVX@b@bl@@`ÇnXVlI@lxUnlVVLkllV@nmJUxnzWJ@VXLlLVxnL@lLlVI@V@lUnl¤UzK@Vl@LlLnb@VnVVU@kaKnxn@VkVJ@ÅUlakmWIUaVanm@_UK@UVWUa@klXamU@VmVIXW@lUVknVlKVLXVXW@b@VlnnVL@KXLKn@lb@UnW°@VaXWVb°aVa@I¯aUkUaVKVwaXk@aa@wkm@alanUVw@alK@Umkw@UaUmU@WXUaUK@UW@UaVWI@¥Xa@w@WWVXwU@mKUXUWVU@a¯kl@akU@UULmK¯VUVW@U_m`U@@xVbUz@lUbUlXU`WLk@m²Wb@@xU_mXmmamLkUkKVkUVÑ¥mIXa¯KbmLkK@V@Lm¯@¯kKm¥kIWaUKk@@aVUUa@UwVUKVX_WaU@@bUJUa@mbnn@lULmKUnU@@JxUbUbU@mX¯@V@bnJÇz@VUVVbVxUnUbW@kzVUlUbVbUL@lWb"], encodeOffsets: [ [113220, 24947] ] } }, { type: "Feature", id: "4507", properties: { name: "钦州市", cp: [109.0283, 22.0935], childNum: 3 }, geometry: { type: "Polygon", coordinates: ["@@@IlVVlnL@xlaal@nVLlx@x@bXnV@@`mXX`lbnaVL@blV@bwnxI@xXJ°nKl@lbnKnblUVanKVb@lUnJVIVUb@VU@mL@Ul@XwllVVXV@lVnlVnl@XVlK@@_VWVxX@lbUnV@@JlbnIlmnVV@UwVK@U@k°a@mnIVVVK@nXLÆaVWXVK@_W@Umw@UXWWkUUVWUIVaUkJUVWbUmU@mkUJUU@UVab±aVaUIUmVKUaVUU@VUUaUUU@W¯XWWww@k@Kl@wkV@U@alK@aX@@UmIUWUI@mmkXU`U_WJUnUJmUk@@amLU@UVW@UkU@@VbUWVUk@@wmKkUWLUWX@JmIlUkkKWKkLWU@UKWa@bU@@a@_UKWUUUmJmw@nV_@ġğKóLmbU¼VÆ@xUX@Um@wklVnUnlkaUV@lV²WVklWXXbWlkVkIm`UULUU@UWx@XU@@lWLU@kbUbV`UXllUV@bmb@LnKVbULmnVVIV`X@"], encodeOffsets: [ [110881, 22742] ] } }, { type: "Feature", id: "4508", properties: { name: "贵港市", cp: [109.9402, 23.3459], childNum: 3 }, geometry: { type: "Polygon", coordinates: ["@@n@VzUJnVK@XV°nVVnwVb@xVVknJlVVUbnWL@bUxVVXbl@lVXkWXwWaa@¥@nUUUV@JVkVVV@XUWanknKxn¯VyVI@m@UkL@W@Uk@aUalKnUUV¥@KVkkaWVkUVkUm@aWanI@n@°aUUVaUa@_m@UamaV@akU@mV_@a@KWIkmLUKaUVU@kVUK@wUIWVUaVwka@Uka@aV@@aUKVkK@X@VbKU@JULVLkVWUL@aUKb@VUL@LxUKmlkImJk_@WU@kmK@UV@¥XIm@@Wn_@KmVm@@I@aUmkXm@UWV@mn_@mUUJWIUWV_WwU@mUknVVmxU@@VUV@zU@UVW@K@X@VLUVKz@J@VnX@`±bUXV¼ln@xmxÝL@Ubn°@XWVUxUVVnkbWVXV@X`ÆÈKnlLVanIV`nLVUl²V@V¦l°¦wb@nKnLVbVJIVXK@bn@ènx@xVbUnV"], encodeOffsets: [ [112568, 24255] ] } }, { type: "Feature", id: "4506", properties: { name: "防城港市", cp: [108.0505, 21.9287], childNum: 3 }, geometry: { type: "Polygon", coordinates: ["@@XV@X°°UlxkbVlVb@nkbVl@xl@@b@nXbVL@Vl@UbV@@JVLXbmV@bVVUXUJU²WXlKVb@VVXKlXWlXXWV@VXJlI@xl@nlbn@lln@lbXalIVK@VwUVbU@aXylUX@@aW@U_UJmUnVKUamL@Kna@aVUkkVWU_ValaV@XK@kV@@WwVXV@VKVVn_lJlUXkWaXWlkXU±kU@VUlbkVmUmlk¯ÝW@mb@¦VxULmkJUU@ma¯wmkX@VóJ±bUVUXÝWklWXXlxUabIğÇ@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@IJVwUaVaUkWKn_mX¥WwXmLXalbU£UyVÅ@Ýwm@°lLÅUmkmwÛaƑLÝUUm@ȣÆV_Ó@£UUV¼U°W̄ÞVbXbôx@b@bmV@ÇUÝ@@ĢU`m@nxnIVVVXVL@`@bV@@aXbVL@XVlKXLlLVlknJ@IWVXXKlVnL@xl@UVVXa@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: [ ["@@@UnUlJnwJU°VL@bnVUwlJ@XXVlU@klVUJknlUllL@bUJ@xULUlUblVkblbnwUXmla@wV@VK@L@UXaVKVLXWUVa@U@Im@@W@£UKUakKWIXU@al@@llUnL@W@Un@@VlUV@VIUanKl@Xb@lmxVb@b°bb@nlJVVnnJ@b@LV@ln@LmV@Vx@blnVKnlJXIlwJ@Òb@nlK@Un@UL@VVVVUUUVKl@VUVLJ@UVUUw@Wm@UVÈVlbUb@JLlX@@xLmk@@nlx@bUJUzVJ@@LVxUV@bWxnLnVVK@_K²xVbV@n¥@aVI@b@l@VaKnb@n`nmmýW@U_wV@VlVV@Vn@n@nI@Jn@°¦VaUU@mVVWVaUÅU@aVKnVbVUmmU@a@kUwm@aUUmUUJ¯lakUaXaWUUaVkkamkmUnVlULVlJ@XU@UJWUUwk@aU@WbkWL@U@WU@@XUKmV@aUVwUĕUJUamUUVUÑmnIVJ@kl@XalJVn@KVL¥@UWIXWmU@mVUKnUWLUKUaWUUKVU@U@anUny@UlUkK@w@a@aVU»UkVw@WmkJÅmUUVmwXalLXWWUnam@XkJ@UVU@U@W@@U@I@Wl@Ènlw@KXLWblVUkalKUUVVaV@@wnIlaUmkUKWU@KkUkLWaKUUWUn@VK@LnnWJUIVkUWVnV@V@@XK@VUIUJ@IWJkX@VVJIVkK@I@UVaUWk@m@wnUWKk@mxk@@lV@bxmb@x@VUmLkUJ@nVV@b@VkLVbU`¯Il@U_UW@UU@K¯wm@xL¯¥kI@bkb@Ua@m@kkW@XVbmV@kV@bWbUbV@¦xXlmVk@¦bkaWL@KUImK@wUK@VUIb@bmK@LÅy@akXW@kbWlXblL@ULUb`@UkUymX¯@mUJUUJL@Lm@@WX@lUVlXll@l@Èk°V°X@VU@UVll@XUJVXUVm@@VXLWlnV@Xk@mVULnxV@@bmkL@VWLUbU@UVm@b@ķ¥UnmJ@UUVkkJUlÔU`UIW@°kLUlUI@WVIU@mWKkXk@WU@bXW@J@xX@l@LVl@xLVxXX@xKnxVknbKVV@ULWlXU`@nUlX@llVXVUKlkUKlI@anKVLXKVaUIVWV_VK@VnLlU»VKVLm"], ["@@@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@bL@LV@UVlUI@aKULVb@bkJmxlLVxknVJkxnKmnnL@bn`WIXlWLU@UxVbUVmKVXI@JVIVJ@UL@W@@UmUXUlVUVJXImm@KL@UVmVXVLXblKlV@LXVLlVVnkbmJ@xnXl@bXa@VanaÒLmVnIlÞ¦°k@b@@lVnJlUnVX_@lVlKVUUxVLVWVIXJUlnnWlI@KUaUUVKn@VaVXV@na@mw¯@mUkJUamI@lk@@am@@IUmVImUUw@anUVaUU@LU@WaWUXWWwV@VwnU@L@ynbl@@X@aJ@nW@@Vn@lVLlxnIl@@UWKUnIlJXIVllIVV¼XK@aVIV@@bn@VKXLVKVVVInwJ@UWI@mX@WKnI@KmUUVJUL@VKW@@k@aU@@W@InJWUXwWI@W@¯wkaVaUIl@nValIXWWI@UUm@anwWkXWWIUbk@UJmIUamKVUUUVVama¯VkIVVUlKnXVwX@@WVaUUVa@IlaVmknawkUU@U@mUVUVwl°LVbnJVU¯la@mX@@UWKXU@aV_V@@JlkU¯@VnK@km¯kU@WUW@mmU@kmlU@wkL@WUkL@VmLJ@b@V@bknUUVK@UVKUK@Uk@Wa@LUVVnUbmVk@@UU@@aV¯K@U@UU@WmUL@aU@WVw@IxXll@UXK@KXXVJna@wWa£naUKVm@UU@mUmalm@@XkVm@U@VLmWU@kkWxU@@bVV@VkXVlV@UUk@@mI@KUwm@UmVUUwU@lwkV@IUa@mUaVIVKVa@w@U@UJkb@n@bmJ@XmlVUxWXkJmUkUUVWxUlU@aULUmbU@@WXkmL@xUV@nUxÇm@XLWbnlnVnnUVUnVVz@lbUVVlULVb@V@nUJkwm@Ux@bWbUK@UULkaJbUU@U@lUK@XUJmnJ@bU@UwWax@zkJWnUJUUVVV@bXn@xVb@JLm@Xw@`@bkb@VmXUV¯L@mW@@n@V@L@KIW@@aaUx¯@Um@XbW@@LV@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@kW@Xn@@KKVIVVIn°@nWVzl@V_VaVK@kKWaXklaX@lW@bÆz@KnL@aaVJ@UVL@xnLVJ@LXKlba¥l@nUWkw¥U@VaXa@amLkUKm¯kmkIUaKUIWkKm@anw@mlwXImUk¯@a@amU`kkKWVkxmUUak_mJmw@wmXUW¯X_@WnI@aVwkWWýÅU@WLkUaUbVV@lUVVnm@kUmV¯kKLwmVUUaWVaaWw¯wÈ@VULUVUUK@nWJkIl@Umxnbm@kbUJa¯bUbVxmLUVaU@VUUWxkVVV@bUV@XWbnlUbbUJlbUV¯b@z`WbXnmbawUwVWUbUxmbU@Uam@VkVawVaUWI@mUKóz@lUlÅ@WIb@xXxml@XklULWKUmwUa¯KUXWJkaULmKkLWbkKUVImWa@kUaULW¯LK¯@kbL@bx@J@bmnnlUlzU`U@@Ub@mn¦°bUVx@bkVm¼mx@mkmVV@bkxVnaVV@bU@mL@b²`lIVV@lXLlbVxn@@bl@XllIVnbVn°°wlbXw@mVa°lVnU@mVLVbn@@b@@WVnUV@Xlxn`VznJVb@L@bV`V@UnwU@WUXKV@UUlmUUlaXalLmbIVbnJVIlVVaUUnWVXnVLk@nWnblnlb²xxVKVXlVXLVWLlUVJna@wVL¼@JVX@`@nnx@nWJU@Vx@XXKUblxU°LVKVVlL@KnbVUnJIlUnKl£VWxIlJ@nVÞUVVnbVX@V_°lnK", "@@@UmWUwkU@Um@@VkL@V@VVkV@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@@KUaVIVVLlaVbVWnX@@LnUlxl@naVLXVVaVUJ@lUUanWWI@VlV@Xbb@Vn@VmVVbk@kU@VV@XJ@zn`ULW@kK@_WVUK@LUb@Jlxn@nnWlU@@bx@XVVU@UbVb@n`VI@VVLUlUIUV@KmL@VV@XIV@@lVLVmXV@WLXLW@U`nkb@Vl@UL@VVVLllX@`lIXbJIXWLaVL@XXWĢb@bmK@L@°@VnxmxnK@xVn@VkL@VLakbl`VnnxVnUlV@@VVXV`@k°JV_UalK@U@aUU@mIlVnKV@U@wnaw@akU@l@nwl@XLmV@xnl@VXUb@V@JlLUJUI@UlWUnLVUUaVwV@XKWkXJm_@amKnmmLwlUIlmUwkKnwlI@aUaVKL@bVJkVUU@@KK@a@I@ama@UUaV»XIVa@alU@WUU¯IWVUbkVUKWLUwUJ@zmWm@@amVUaUIU`VbULmU@KU@@UmJ@kÅb@akUVylLXUmU@aU@KX@Wan@V°@Vwb@bX@J@LK@@U@mX@@n°KVUnW@Ula@a@_x@WnK@IUa@wWm@aUUUVVVIXmlI@ywXbVxV@@aInmVI@WVL@k@VVVaIlbVK@VVLXa@aVwn@lxVI@m@UUaVKUkVUka@UymUVVUmmUmmkXaWK@ÈnVw@mVU@wKlnXW@V@naVVKUk@KVIUW@mk@KXU@Um@@lVk@UVJna@UWaL@a@Xa@kmmVUUk@mkkamJImJUUmIm±aUUkambkamVUU@VlbUbVVxXWVUU@VUakU@UmUVU@mnUVVnUbVJ@bUW¥kLVamVkUaWJU_UVWKk@@nlUVVJUXm@Vm@UnVlmbnmJUbULU@@UUKWVIWxnJVb@xUL@bUJWIkxbkb@xVJbmU@kW±LkKUkVa@a¯am¥ULkalÑlKXUWXaVakImV@ka@UUJ¯aXmmbKWU@wUUaUaKmU@UXlWb¼WLUKUb°UlVbkbVL@VJ@nVlUbUXmJ@VX@lbUbU@@bWb@VnLVJ@bVVUzVL@lnL@bVVVULmKUkJkbm@xVb@VkKVnnV@b@WXUnVlVVXVJUXlVXbWV@VU@Ubk@@KWbUUmL@JnXV°XJ@_`UbkXVVlÆkb@VLXVV@V@kKXX@`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@aVKnVVVUlyX¹lWVa@UVnUVU@m@mUl@mÞw@xnIVbna@KVIJ@kwV¥UXÇVkVW@kkKWU@aXUWmnIVa°VXbmL@VVbnVVVUbVbJVbVKXkVKVanU@aWnWUWa@Unk@mVIVK@wXxlLXbVJVlKbl@VI@maXalVVVbX@@aalnkx@b@Vb@Vnx@bVVUXn¤WXn@Vl@Vlzn@`@I@KUU@V£namVkXa@aVKnnU@anVlKa@UUU@amk@»kU¯@aVWnkWmkImU@akaVm@»VUV@UKnkW¯XWlkUKnIWa@nmlIXmWUnwUwWm@wULmaUJkIUaaWaklwkwmJmU@bkJ@XUJ¯W@XbWbUKUkWJUUVKnn@UmmXUWa@mU@@UI@WmXVykwm@kaULWwU@¯lKUUVU@mU@UkmaUbmV@bxVnVUJVn@Jn@@bl@@knJVblInV°@nx@mbU@UWUbm@ULVVVb@LkJmXkmVWIUJUXUKVwVUkLkU@W`UmkVmIU@k@@a¯lÝ¥kmJUnKÑmbUb@Wbak@mWU@UbUVVkLlbUVkXaWK@LkxÇmk@@X@J@V@@X@VUV@VIWln@mbXVWXkKWbnxVUnVÆInl@XUxVl¼UV@b@b@xlLkV@VmzmV@b@VUVVLXVVbVLXKmVVLU@nnVWXXJ@V¦UK@LUmkIWbk@@lUImJnVÒVUnVVbVIVĖUxV@bnUVL@WV@@X@VKlXXaV@@blVxXVVIV@@WkIUVKUkVmlnnbllUVbXVWbblVkb°VInVVV@bnVx@l@bnVVnUUamUL@bVVÆUbUXUn@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@XlKVVnUVlL@baVbb@xX°ÔUxV@kbm@VxkxWJV¦@ÈnVKxWXJmV@nÒ@xVbn@@blLk`VX@bla²JVUlnn@U±lw@wnw@mlwVIX@@m@klKnkaKnwmmXkÆVmU¥l@nb°n@aVwVmVIVnI@a¯@mU°l@@VnI@JV@UV@b@IUbVJmXöºzllUbVa@aXUl@U@llLnKVaUa@UmK@UwVbnKV@VwVK@UXV@Vbn@w@UWnX@a@mI@UUKlaUaVk¯VaVLXK»XaWk¯mkğwmW@mIVkwJUIÇVwUUkVKkm@UkmU@WÅwm£Vm¤¯IkJWa_lUbmJzÝJkUÇVU@bUÝnm¯LUb@`mL@VkL@VUmmk@UU±Umka@kU@ķymUkk@mmkÝmUaUakImV@V@VÅL¦JUXmJXWb@n°Æx¼nV@LlbUUbmL¯@Þ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@nXJVUbxbUlU@nVbV@naVwaVUXVxxbnaWmXa_@y°aVUkaVIaVamkXa@WVU@aUUlUXwVV@UVbVUnKUwVa°abVIlan@manw@VklJXI@mLVVVUVK@UÇk@KUa@UkaVU@UVWV_XWVXVWlLXKlLXaÆKwVL@akKm@Uw@@XUVk@VUI@wWK@aUVI@UkK@mLW@kImJUÅVmkXUW@UJkx@nmx@xkxV²m@kmUV±Ikb@aUWl_kK@am@Ua@wÑ@mnUWIXwULm@ÇU¥XIlwUwn@laU@Vw¯ÓW@waUab@akKUmVUUkL@WmXUaUV@lWX@Jk@@UUKULmLUJmzkKmVX°VUnWKULL@mU@UnVJ@b@UV@X`m_@l@@bmbXJmnn@°wnn@VLX@V@nVl@nk@@bl@nn°WlXzW`XXVKnUlxVbUb@VXb@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@bUKxÅLWbkKWLkKUXUWWXU`UX@VUVlb@VVb@Ll°xXxbbXUVbVnUxKlL°nUlVn@UmVU@kUUVablVXKV@ÆXþlXUxnU@mVK@_@ml@UU@blU@KnLVyUw@@UmkWVw@UVK@VXzVK@nVVUUW@kVJnla@nKWkaWL@Uõb@JU@mU@@_WWL@lUU@WUUK@lakÅUUlWVa_@`WIU¯mW@InKVVXa@Ll@VaV@@UXUWakUVWUIUWUkUmVXW@@amUUmLl@UUawn@laIVlnLVKUUU@amK@kUKVyUU@aUImK@UXa@aV@VakaW@@UnIVWVaUkb@mWX@Vxm@UaU@W@VULUxU@mLaUx@VnL@VVbUbmLkK@kVk@WV@bUbVakkyõ¹nWUIVa@J@aVUU@@ImJ@Uk@¯V@n°@bmJUUJUnUxbm@¯mak@¦VUnÅWlnnmxLbmlkL@l@nWVnlÆUVnIlJ@XnK@lL@VJVU@bXL@xVJUl@VU@W@Vxn@"], encodeOffsets: [ [108237, 26792] ] } }, { type: "Feature", id: "5201", properties: { name: "贵阳市", cp: [106.6992, 26.7682], childNum: 5 }, geometry: { type: "Polygon", coordinates: ["@@nlLXVJLVblJn°lnLlVnKlU@nUUa@WlX@ln@Vb@la@alJ°¦Kwn@°xLVkUmmwUmk_labK@UlK@UUm@wLmnwmw@U@¯@KnL@aaġXWW@UKbKWXJIWakJ@_kWkKUU@UVKk@@UlamV_X@WKXK@WUUnUK@kU@WJU@@UnK@LVUVJVkUK@UUJm_@UaVaV@UU@Ww@aV@Xkmmm@kw@IVa@KVLXU@`lLX@VKm_@yI@WU@UlVl@UanU@Um@UaWaU@Uk@XJmXVbkV@IUVUbWUUKmbk@kwmV@K@mWUXUakbKUUUJVb@LU@@VkL@VXKlbXmL@kbmUI@lVXUVU@mULWy@UUL@VUxXnl@V@VxUzmK@LkVa@VVk@@n@`UL@nmV@bmJ@X`WX°WVn@xnxnIl`VbnVlwXUlLl_nV@b@bl°VnWJkx@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[FMbECZS@KKS[FDWsCeRuU_DUQNOE[LKGUBM¨EDQP@HWHGDImXCog_~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ìwGF~Z^Ab[¹ZYöpFº lN®D´INQQk]U[GSU©S_c}aoSiA£cÅ¡©EiQeUqWoESKSSOmwćõ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^JOHLh@NNBnHP`\\xH@NBRLJTlNv_^CTLd@bNDVFbxdFVUPBTKOGEOUO@OEBXQP[H_EI\\EbeYa@UO_JMEJ_IEDKJUGMDcNUd_FMTEJSGoZ]EIYGO[YWgEQ]a@WHEDQKUSDUGAbYBUpSCYNiWqOSQEoF[UcQISWWNMSDe_cLQ_UBiKQOOASQAWgSā]ZaSPÝ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`TCNXMTXRJVdE\\FpTRrPjXZMTDVoZABaVHTCLVCRGF@X^bFRhZXP\\ZHHMA[^wBWXJlW¤EJ[bCTOFWWMm@ILMGWQ@DQ^QNWFSHEbF`OXNbOVNKTEPDTLTCCVTREfvfEHNbRAENH^RJXCFHNFRpVGHWISDOTMVCZeGamaLoLÛD¹¹ėgsia{OųETtlÉwr}jR±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: ["@@bRFnHNbHgN@NPEnbXP@bND`NT\\@\\QZb@`@J]V@XhDpWnCJGHGXO@CR§FANHVKLF\\MPVR`CvVfQtDPKpGHG@S`WJP~^dSTHWX\\RHTFACQTIAUPOU@MG__IaYSFQKNSbORHXCZeTFJgB`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: ["@@ºxJYZQIYXLl@dR\\WZEn]bA\\S~F`KXaDeTiNO^EEKWEDQXITBXaWaDQMUJOIaTWf@NJV@dSxGZFu_@WMKAU}AQ@MwG_[GOAmMMg@GKP]IUcaFKG[JSCoLGMqGEOYIMSWMSBucIeYA_HUKGFBLOFGPQBcMOF_@KO©UAtERadwZQ\\@ÊJÒgòUĪRlR°KĮVLJ"], 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¤@[ïKLÑIÏ]ÇE±I{uYś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@LYTDaFENF\\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`eJ`}@W^U@I@_Ya[R[@MSC_aMO@aWFmMOM@haGGMEmaQ[@MESHaIQJQ MckBIw[AOSKKAMPSDSLOAV_@@`KJRbKRDfMdHZERgAWVsDMTUHqOUr@VQXTT@TfgL^NH\\@heTCZaESNObHPHeZF\\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[fYGGOPaTMbFDYfS@g[MGK]he@SSSRW@UVqrPVGNStCXUhBFQGYNcCeLQQaLI@_`@EUwcEaCUaMc@SK]Du`MSkKI~BVNL@X`EvYwHcTU@MIe@SXJbIPNVCRXbWbSAWJCRXFFL]FMPSjCfWb_L}E[TaBm^YF[XcQk@WKZJYRIZw¹ "], 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ǯ@aKmaeWuCº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\\CSFQK[LqDMACiUa@[QiFBRIHYCHkGSBS[oSOqBIE^QHCRWHIXsHU\\UC}JEjMNAN_ZAIhSEYfWDQGaPMTLERZTJb``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]EYyMKoO_QEIIKiNSMa[LqOKOaVMWMGMDY\\_IKrL\\ERT[DEPYOUA@nNTUHINkRBVMdNvGTxzRF^U`BD\\@tfNDNOJ@Z{TeTJZ@VUcB[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\\GZYHTPBHRCPTdH\\K\\@HXiBJILJJAVNTOZJNtFPC`YxDPWci@IBgbGKaTOIM@KNKrP@_hE@QbgKWUMJoWAQMFEKM@wTONCJWRCZDHSAM_UD_GWMKeCITSCGIQBGXUHQoMEEGWDQIG]FMQBMaFGueFeSQDUSDSKOCSFMLUaPWM_PaEGFETMX]RCRR@HXKN@JNnXXESPaDI\\£FkXWIAX]xB\\GN"], encodeOffsets: [ [112031, 19071] ] } }, { type: "Feature", id: "469001", properties: { name: "五指山市", cp: [109.5282, 18.8299], childNum: 1 }, geometry: { type: "Polygon", coordinates: ["@@TCNOLBTLBPx\\AJdlNRRIbJTGNF\\@RcIYbmHoLQdKN_fCJYbDRRXKZFVEZVXBXIJBXMdESW[CUYHUVQFQAqsEIMPYMSBUIIJKAIjGW[@[LGScDOGQOAGSYZ[HSd[HFNVD@XmJFG[OWiWKNqGKN_MAMO[HoM[BoRewo@Y^HpITSFENc`MVCdHNIVCLJFI`NFIP`@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ÈÞ@kxnX°VÈa°V@kôwbJVkXlVUx@lL@xkVV°VbxlVUnVxk@KkVbIl@°kVl@lÆnkll@@VVX@V²bUlVlVUVÇn@nkJlkVb@x²V@n°VUnlKUn`@n°bWLnVUblVUVVbknV`°kkl@@V°@nzJ@XxlWXb°n@bĠlbXbbVbJ@Vba@@lbUbVmn@lVmnIW@WbÞ@n@x°@ĢaƐéϚnlČ¯ĠŻÈwm@ôçUmm£Xy°UV@wÈ£Ǫ¯kõÝçUÑUķĢkVÑÆÞU°nŎ¥ČUĊx°m°¦żVƐx°Ç£@yUônÞÆ@Èĉ°Kô¦WkWUbÇ»@ÈĕWÇÈ£ŤU@n£ÆUUKVamanwÅmÝJ¯k@JIkaVaUUÇbkaÆÑkWmÝUÛÝ@wnU±@kkV¯KUkJ¼U¦Å@ówķaķůV¥Uaó@Åwm_kVwĉĉmmn_V»a@UVwķóU¦LǫéóXÇmōLǓÇķxÝkĉkmakbUĶ°@W¼@bÈÆ@ĖLl@°J¯mkl¯LݱLamJ@¼VƧUóUXċb¯ńVbkÆÝI@llxk°V²V@UxÞL@b@b`Çzkókݤ@ğ¯WLĉÇLmmnċVkbUaL@¯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¯@@wmÝ@XV@Ill@bUxl¯VlVbV@ULVlUV_kxVVVÈÝJ@¯Ulm¯x@xóÒĉ¼m¯Wxţ@Uz¯WwnUwť@knW£óVUUwğyó¦WIVmmI@±kwÇ@@b@ĉ¼ó@¯wó@¯aó¼KÅaUwmWUwÅI@aKó@UaLaVÅwō¼UUÝl±I¤VxÇx@zkJmnnmbnzxll¯ČkJl°@kbmx@x@kêmVnWxôXxU°bWLóJnÇWĵV¦UUbbÆġKk¯VU±aXmċÑUwĉKġkVxkÇKkbIÛXWl¯bX¯KbĊÞVÆnĸ²lxU°n°òÈb¦xVb@¯Vx@¯VķÞČlĊ°KĸȘI°¤ČIôò»ƨnȰKǬ¦ôWŎÈƨwlnKVXmbX`lbwkVWXXL°aƾaĊ£n°@°¥ŎzÞ¥»alwôkƒJa@Ķ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@alUwwĢřk@wÆWXUWXWam@_ƒ»ÇéXaĸwVa@ÝKkUWkXkKXxn@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¦°JUnLôlnŤ@@ÈaUÒVbkbl¤zk°ÇVÛô°IlVUVôUxÆU@bźĀº@¦b@l²UVl@°ÒĠxnXxÆVô¼Þ@Üx²KÞlVÑ°UȰôlwô@²ĸ°lanV@VŎUll@bÈnÜmwĢ@la@ÝÞb°UXblŎ²ÆkVI@nJnĠ°knÜbĢwna@akÞKƒĀaIVbU¥wĠwkôxnLċVçkaU±IUmnġW°WôĉalÞÅĵ¯@W¹XÝab¯a±X¯ºLaVmkLóbkaVUKVkkKV_@aÝykk±L@ÅU@yV_aU¥ówÇx@UkVn@lkÅlwWVwUkĉmkklW@abVwnWWwWL@UUÇLÇm@wJĉL¥@Ý_@a¯yUWw¯¯Uġx¯aÝXVmaU£ó±¯nwa¯óÅVXmanUlUXkWa@mkIğamIklÇUkĊzkKlUōĬl@nX°@llUxŹ²mKĉVWwk@UbUK@bmVmIVmwaWxXlWČmºÞÆbUxV@ĵńWÆĉLkWUbaWzkbĉ`U±LklōwUVÝ£UW`Uwk@mk¯VkaõVX@WbLK@XƧºWzxK@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ČUmnnKĊÈKX°Ġ@Þ£ôllÈy_@a@aKÝVwU@±¯Ulkw@kÞJlÅUa°ŃČaWVôƨVU@»nIb²KÞ°Klkn°¯I@kK@ĕÇÅ@aX»¯@VĵlaÿVamI@aÅÝउýĊȗJôȁÅkmƑÛ@kxġ@@laVk¯»īŹak¥Å¯JUaWU@@wa»KUkÆkUmUmwÛ±±UUbUUXwWwÆÝklkUanaWwnKlkal¯kaƽakÅxa¯@amb¯VlÇwÛĀV@xmêVÆVVaôVwÈx@ˌx¦VÞ¯VlmX@L@¯Ua¯LmV@°XċKV@UÈ@¥@wġIUkm¥Źw¦¯lmn@°kxVV@¦óamn¦l@nxlĉVómxnÒĉĀĊ¼þǔêÞ°ˌĠÞÒ°ĀɲĀƨźˤȤƨĊ°w@£nymwnkUUV¥ôÑVmkÆmUUVamVIkmôlxkXÞþbll@kVƆVxV@¼VÒ@UnnÞJ"], encodeOffsets: [ [127744, 50102] ] } }, { type: "Feature", id: "2310", properties: { name: "牡丹江市", cp: [129.7815, 44.7089], childNum: 7 }, geometry: { type: "Polygon", coordinates: ["@@U`lLUlVLUlbaôlKnUbK°¹²W°baÞbknyUlUkamř²L@m°@lm²n`ôÅlKxÜKnxV@l@ÅXyW_k@wmŹĕmX»Ûl°ôÈ»ôô_WW@Ual»wU@@wUV@VXI@wĢ͑ÞȻaU_@mUkly@¯óV»XmWUXUWmnm¥nUUaWLk»Æ²IÇawÅaÝ°¯nUa±a@¦õÆğ@@ÅbxUÜnÇłlb¯¦ôó»m@±Uk@Wwa¯xUV°xXbÇÅUVK@¹KUaȯ@ōÝXallÛkalÇUǫÇÅÇakbÝƆ¯nl¯@¼VUx@x¯W¼Æ¯mĖĬ¯ČVkķÅmx°ô²V¤bUnÞW°bĢw°V°XxV°z@bÞ`@¦KĊI@xnÈÈKV@VXKxXmXUxab@kXllĊnVlUxXkxlÆkm@UVl@È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@VbU¼m`nnĊĊxlUmkaVÿLw@°»UmbKmÝUwUmVknKUUl¯KUUÈnK@ĠkX±lX°L@¯¥@wV_mĵ¯WwL¯UkōÇVUlwVó±¯aVka°wVk°mÞ¯ŦřÆl²ŎkU@mUkb¯ķ±ó@kxȯó¯VUÒkݱLÛwÝ@ó»ÅUWwmğw¯Ñ@UkV±@ka@¥¹Źÿ@aÅVwóVVUkU¯JÜóÈUl¯yk£laUaVÑÇb@ţ@kmómKV¯IU¥@@kVI`@ô¼blUlbÈb@xÇKkĢɳaÅɆō@VK@z@@¥ÆKnÜ@@aÛUwwnUķ@_V°@klVnULVVÞbVl@°@nxn°LÅÆlVÈmU²@VmĠLxn¯xkWzJwnLmbXbW°Æ²@x@JVxLĀ²Æ°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ÇVVLk°VVmLUlVnxVnÞLnaV¯¼@xKUĀlbn`nÆxô@VbU¦ĸŰĸbôxÆ@V¥»IVl°LUll@²mVx@ÞÜÞVnlXÅÒlbÈaVVUblbJ@I°lÞInÆmxnbUbVLÅVm¤@ţVǤXÈÇĖ@ȼaXVÜaXbWnzŎařKôbUlw@¯naÆKnUU¯Üa@mkkVUĊmżÝǖK°L²lÆI@¯¥ĉƛVaÞk@ÝVaĠlnUVwóma@wĉ@aVxamX@a@UaÅLaVW_nWm£nWm_ÅV¯m@mó¤Ý¦¯ÅalmX£VWUÅwmÇ@@IVWUw@aI@k@wŎ»WÅVaKIka@¥lUkUlwÅwVyÈwWU@a¯U°mÇ@UçaVa¯mV»ÅwÝUlUkV@kmUkX£w°@@ÇaÝIamÛam¯lğmmI@JUl±ÅōkWa¯VÝa@Þkbġ@xÛnÇm@akkōVōl±kÅťŚÝ°¯nUl¯xlbU°b²ôUxkVÈUŎVl°KXxĶ°nU`@x°¦@"], encodeOffsets: [ [131637, 48556] ] } }, { type: "Feature", id: "2308", properties: { name: "佳木斯市", cp: [133.0005, 47.5763], childNum: 7 }, geometry: { type: "Polygon", coordinates: ["@@nbÞJb@ȯ@xW¤Vln@lUVlkÞVÆxU¼°nUbbVèÈ@nIn@ĢmlUw°żVUn@lnL@VôbwĊlJķĸĢlwôwƨxVVUŦxLźÈ°`nnĠwŎJÞĶwôJ@¤XnÜĸln°¼È°lUbx@l@ÞÞÈm°lôwL°¼ĸ°Þ²nĠ@ôwÞ`ŤIVÒĠU@VJĸbƲ@°ĊKJĶaĢȰ@ô¥°n¤bČU@VxmUw@aÝţÇķ@ĕķīU¯²@ÆmVÑô¯X¥ċç@ĉ»U¥ÝţKWVÅkUVÝŎUmÇÝx¯aķxÛUóL¯a±óōb¯ÑÅVÿ_Åķa@UK@wm@Van@UmmLVa@VImmXUWÝUÅKUwÝUUkVk@l¯XÅ_J¯kJmÅLa@¥U@¯Vz¯@`@¼mxƥŏKÛk@±laÛ@@Xm@@xƽ@WŎnˣĕÅ@@aÅ@@nÝbǯ@_UkUWkbwÝU@çWlw@anI¯lyX°m°VaÛm@mVwÞK°XlaXmm_@UkwÝK@VIXmV»I@a¯ğWbġaU_¯JU¯ġĉkō`±nÝÆkbóĊ¯XĢXmVn²JVlbUèČmKwlóğxxV¦UaJbƑÿÝLl@bmbġx"], encodeOffsets: [ [132615, 47740] ] } }, { type: "Feature", id: "2303", properties: { name: "鸡西市", cp: [132.7917, 45.7361], childNum: 4 }, geometry: { type: "Polygon", coordinates: ["@@LKVVnkbVÈb²U°VnklVlaÈL@anU°ÜmXV`nôLèxlLXL²aVVmÈX@ķlnUÈl`ȹ@Ť°U@xKnnVmlnnUllVnnaŎwlVÞÒ@n¦LV°lwVkLaÞlnÒ@xmLÞ¤Wn¼WÈLVVUxlÈôWVaU_VKKXUÆbnnôKbÞw°bÆWXamVwKUw¯WUkUlJUwVUa@@kmyzmĉw@kVwkW¯ÅKU_VmxU@aW@@kK@wa@K@@kVUaky°_Vmkna¯K@Lwġk@@IÇóXwVakmV@mwXUWanlĉ@ÇUwKóܛNJÛm°@wÅ@±b¯W¹WVwŹĕ¯kVmōb¯w@awmVUUbVIkaVwķxk¼b@VXXó`ó¼Çó¯kܼWnźĖnxl@X`WzÆ"], encodeOffsets: [ [133921, 46716] ] } }, { type: "Feature", id: "2305", properties: { name: "双鸭山市", cp: [133.5938, 46.7523], childNum: 5 }, geometry: { type: "Polygon", coordinates: ["@@UUwómÑÞÑUÝÝUkmmÅyV¯ī¥Uÿĉ¯mÇkaWbÅX¯aÝxaóLmmÅaWVLULV`UbXókÇVwUUÇKX»XmÝ£nK@wmÑkÝbKUlx¯kUKm¥@ÝÑkUōxmbUmkVkmmnkUmmL@w¯Vţ@Ǻk_ÇmVk@ĸVxVÈ°lLkllUbōwnVW¼nlUx¯XmWUnÝ@xÝUó¼¯J@LVbkJWnkbW¯ÝLUxn@nÜb¯U¯nWkz°mJ@bkxX@èÞVxlaXlVV`°@ÈÞa@mÆ@@bÆ@ˤĖmXōƾ@@wn@@WÜ@kb@²ÜlŐLƦnw@»_°@y°UV@@¦bÆKnI°lIÆ`°W@kllUVÞVVxLÆÞVXWVnnUJ@UbnKVnm@Ubn@@xL@VbÆĸ`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±ÅÿKUwI@w@±ÅX¯WanamKxIylX°wmwğKUn±@nVÇUÅkƯKmmw@@¯UkÝaUUVKmUlk@¯U`ĸ@VmxVxÜ@bÛ@mÅL@¦@@yLUŎ@ÆɅɴblġÈL@wÇaakkVa»@ó¯_ÝJwÇaÅXnyU¯¥Å@wbÝaLmm@@VUlbğVm¯Xm_`¯_UxmLa¯b@maó¦Çk¤V@bóJknVxVXx±aLUbVxkLVlLWl@nX@VÅbWlÈnxbWÅbm@xbml°bXbWXVmnn`Lmnbmb@k@mwU@@¯Jlbk°lbkmLXxmbVbkllÅÞxXxVWVVa²VܲnxVVnÅlVlL¼b@xV@XVbIÆ°¦lźbĬ°¼Ulb@kĢ@lw@ƒÜlnȂÆóȘIĉ"], encodeOffsets: [ [128352, 48421] ] } }, { type: "Feature", id: "2304", properties: { name: "鹤岗市", cp: [130.4407, 47.7081], childNum: 3 }, geometry: { type: "Polygon", coordinates: ["@@Þ¥ô£nn@°ÆUn`mXn¤mX`UXbÆKVb@@bnWbwUbĊ@x@nbWVm_mm@ó»UmÅWXkĠ»²¯¯nķwŎ@ĊŎK°bĸUnÑKȦĠÈbÆknJÆUĢV°IVƾwaVkǯ¯»mķkÛWm@£óIĵxÝōIğxmm¯_ÇŹKwťUVUƧwóxxġkĸķIkĉxóa@UmK@kVmUŻ¯Vxkġn@mmJ¯n°V@bXVÇxUzÆxkxlVkV@¦lbJLUbÆXō¼@xl@J@bVxXU@JÈ@nxVÆUXW¤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`ĢbaĠX°@bJU¼WnUJ@ÞLlxV@n`lIUa@K°Iô»ÞVwÞ@VmnX°WVwmkX»UmŎxVaklkkKǯUUwÇWUnU±bKWKkwçóKmU_nW¯ÛmV@bÇKkbkUml¯U±VÇaUamlUULKk@U@mwÛLwkLóÆm_±nk¯@@n±KnŚlbkVVmzlWXº@Ķ°"], 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: ["@@lLnlmxnIVVlUnb@VVxXJWL@LÞVnnVJ_@wkmKbxwXkWXXKlb²K@nVVVbL@WlU²lKVnUJVz@VVb@lżmVUVnbôaVX@°Ub@lWbX@b@bVb°x@VxÈLVlaÆ@Þb²k°@lVU@Xn@VWLXb@¤VXKVVVLnm°_ƨ¤@aUIVaalkX°kV@alwUVyU@kó°na°UVUUmUÆw@mkLVUWVIWLnn@xlVnKmyU@U°UXaV@U¥U@UÆ@aVUkWU¯aU@WLUV@bkbmKULmKkUVUkmVIUwlWV²Uml°U@WLUwVm@UUK@_KUUÜaXw@VKUU@mVIUUlmnIVVVbÈVlKnbVK@nI@nVnwVLVKKVnb@aUIVW@In°@lVnI@lWĢ@°UVL@b@VyUUa@w@WUnU@WǯK@UkkJWaÛbmk@mVaÞU@amkW@mXUKkÿ£@akl@Um°UXwlaal@nmlXnW°znW@awV@akbĉ¥VmU@IVUJkUmWUKbmkUaKkUVU@KV@@klwWaU@kmXVènbmlUUKX¯JkbI@JmIUWU@Lml@XkJ@UkK@aVKwWaIWwmU@mU@J@UaċUaUUVkI±k@UU@UbVVm@UVKLlkIWaULUWXUJU@WbUb@lkXUxm@@JVn@J@bnb@Vkx@bLUÆnJaVXnKVVmzX°V@_lJXxWXK¯bÅamU@lUIbñJ@LÇKkIÇ`kxWL@@@bUVUb¯xWKkÅVlULW@n¦Ul@IlmUUUVm@kWnkKma¯XUKWmnwVwÝLmVUbUVWb@LnxmxVmbXx¦@nb@`V@kbLUmVUlkbVXkº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¹UWlaVknUVKla@U@_ma@¥WwnaUwnmw@KXaVUVaUnmWUk°lnUVUXWVwIWVóKUI@WXxUU@mma@kUKWLkw@yk@aVkUUċaUU@Wk@Unm@UVmLm±IUkJkW@aI@m@UVUla@VXVXmVwnkWKKU_k@m¥mX_JmnU@km@U@KmUVU@U@Umk@@LmW@Û£Wka@wk@aI@mmk@mUa@UmUIwW@aWUbU@kbÇ@kw@makVUkU@am@aU@mxkUbKUXU±KXVWLUK@wkU@V@WXUa@WbUxJI@¦VèVVX@±ê¯KUI`¯UULVx@V@UKIVkLmVkKm@nUJÝbkIUJVXVVxVbUVJUn°bVmlU°XnK@Ul@lVÈVUXx@W@VXVKÞbn@VnbVm`UxkW@UVkLKm¼@lUnUJVnVXV@Vm@@LVklIkl@VWlULWKUL@mJ@blbUVUlmzUJUxm@UUbċÜk@Ub@VLVV¦ôbVmUKUkU@m@VlVn¼WbUJ¯@@°nIllÈl@nXWlLkJ@bkxlxkxlXUlklJXL@bWn`@nÆXxlL@xl@XbLKlVlIXblVUbUJW@lX@VL@VVXJwn@WnL°KbVbl@VI@K@U@nmVmV@XUWI@aXm@VUUkWmn@lmUUk@mUmK@UnwVĉ@mU_V@XJôVVULVUn@llUnJl_n@ml@XlLlw²LVJUL@VmbVblVXmVnl@Ť¦nn@Ü@bl@@XV`Unb@VlLVb²JXn¥ÆÑ@¥Þ@"], encodeOffsets: [ [118868, 42784] ] } }, { type: "Feature", id: "1306", properties: { name: "保定市", cp: [115.0488, 39.0948], childNum: 23 }, geometry: { type: "Polygon", coordinates: ["@@VbXW@@UlV@xVLXKWU²LVVWLalVnwV@@bn@bVVllUnb@lxÈ@laV@aXV@bXxJnV@VVb@nnl@nJ@bll@aU_VWUwVUkUmUkb±mVwU@VIUW@UWk@VU@ynLm@IV@bnKLVaVmnIlaXwV@@WVL°@@xnX@V`V@VbUVVLVKnwnL@ll@@_V@VVnaÆ@KVXÆ@n@wKmUWm@km@kÜKXU@ÑW±nIUwVKla@I°wU±kkmm¯m_JnawW@IVaUama@wUmU@mVw@aXk@mWa@£km@a_kVmUnWW@¯bkUmk@VÇm@@kUUKUU@UVUamVUaWIkb@xU@@amUkKVkam@@kVUkUWmKmUkLUb@xmJU@UImVÛVmnUwJU@VX@UWm@Ub°¦UmxklmX@`ULU@@UW@@xkn¯@makVUmxUb°lUbUbnUJUUVaLkbUUJUU@mUUUJka@xUIWJUnJ@Vz@kb@`@bln@lb@X@@@XlbnbVb@VJlInlbVw@UKl@lbnan@VbJôLnUzlV@lÈLVbVK@LVxVWXX`WxXzbV`UXV¤nx@bVlVnVlUL"], encodeOffsets: [ [117304, 40512] ] } }, { type: "Feature", id: "1302", properties: { name: "唐山市", cp: [118.4766, 39.6826], childNum: 11 }, geometry: { type: "Polygon", coordinates: ["@@@VVl@²lJUVVbČVVb@@InV@VnXxJXbxUL@bLl@VlI@WnkKV@VXnJ@IJla°IWLVVnkmaUçWVkôaܯ@nV°wnJlaV@VUnUUaW¯wXWWwna@£UaWKU¯¯@aVUkKUamUUn»anIVwUWlk@LlWVakU@K_lbÞU°@y°n@KÈkWWţ¥ĉōkġWUw¯£¯Çwţw@kK@k¥ÝwÅbÇ¤ÛťVlW°@ĸx@VVVULVLkl@V@X`Ub@Xm@UWbk@ÆVbnLWV@lnXUbl@X¯lmUVkKWLkK@_UK@U@UmmUxmVXLWVULkU@`W@ULUK@XlJXzV@@xml@VU@UX@Kk@WbUK@Xn`XmJnmkxUVbUVlVVxUbV@nKlLkVKÞbVKXI°KVmVUIUKULVxVJVLkV@V@UbU@WUU@UbUK@b@nV@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@Vnl°aX@mXnVlU`@bln@¤Xb@nWl@bUx@nnVV@xnbVbUb@JXxbmXa@kUVwlWkKôVm@wkkK@kl»ÈmVKXkla°@XVV@VI@ml@@Vn@VX@V@J@VxUzVV²blVk¦@Ġ@@»@VK@VÈLlK@XnJ@alIUlaVVb@n@aU@WUIV@mUn@mKXml@lL@LnWb@XV@@aVVbV@VVIVWÈbIÈ»ƒǟlWaVUÅUUm@kVUWVkaUwmaóUJUU¯ÑU¥mk¯UaKÅnÇyóXmWÛX¯aċbÛaJWÝU¯»aóóUm@IVVl@bLUJWLX@@xXUxl¤V@VnVUVXVbV@@@VVn°V@ţU¯VUmUWV@mUXabUKUwUaÇKnVk¦Wb@VnLmV@bkV@nxW`Å_UVV@bUklVX@VmlUx@VVL@xVWVL@VW@UUm@"], encodeOffsets: [ [118485, 39280] ] } }, { type: "Feature", id: "1301", properties: { name: "石家庄市", cp: [114.4995, 38.1006], childNum: 19 }, geometry: { type: "Polygon", coordinates: ["@@la@y@UImVXIVJw@lbIVVnV@VVIVVlaKbVUVVImVaaVk¯VanwVlUnb°@lm@wX@@VV@VK@_nWlknwV¯¥Van@VX@W@UVIVxnmÜUnUVJV@nI@wValKnV@kmU£na@mVk°KLVa@UU@UmknWWkXU@aWW@@km@UaU@@klK@UkaWaUnamm@Ua¯wWU@UkL@Un@xVlUXVJUbLmU@aUWUkmKkLUUm@mWXammkkWUm@@U¯JUUmkU¯@mKĉxÝwÝ¥LUómwkUUUWVkKmkKmLXlxVLVxXJ@nVJnz@VWL@`nX@x@kVUUmJmIXxJVnUV@UVV@LU`UXVVlXL@l@b@VmX@bxn°UbkKWLXlW@@bKmKULmakLUlmb@Xb@xmXU`Vb@`lLx@nWVXL@°WlXnlbKVKXVb@X@l_lJ@V@XnI"], encodeOffsets: [ [116562, 39691] ] } }, { type: "Feature", id: "1305", properties: { name: "邢台市", cp: [114.8071, 37.2821], childNum: 18 }, geometry: { type: "Polygon", coordinates: ["@@nKlLnlLXUVVlVnxôVKÞ¦ÞxĊwnL°@lVnVV°I@Vn@VlXnlnbWnXn@VVlKnLVlVX@bnVKVaUIVWkU@wVm@¯@U¥VmU_°lKkw@LXVaU@wUUUKlUóW@UVUUl°KwlKU_naKVnlKkkWWa@IJVa@IlJnU@KVUUmVlaXUl@lm@kXWÝÑnk±k@wğ@@U@mKĉLmVJ@zmlnWLUÝJU_@@mJkXUVlbklÝ@Ýab¯@¯±JÅwġaUU@kU@mVI±bUKLWUXJkaLóKULWbUVkKmnk@@bmLUl@b@mnmJkUULabnmn@lVV@¦n@l@bznx@`Vz@bxnV@xllbnKVx"], encodeOffsets: [ [116764, 38346] ] } }, { type: "Feature", id: "1304", properties: { name: "邯郸市", cp: [114.4775, 36.535], childNum: 18 }, geometry: { type: "Polygon", coordinates: ["@@bVKlVnInm@@akVnK@al@nmlLVUXaVKôLKlbIVWXKVL²aJnU@lV@VVĢbÆx²I°°@aÞbÞ@lkkaVUlWnI@@V`ÞIVXKmnk@yInUĊKÇkUUamUUk@aU@Uk@WUwVkVJVkkw°a@mK@UX@VVLVW@wwVa@¯Xm@@lUIWaU@UWkXWmU@UwmUkKmn@lkV²VaULUVmJUUUwLma@UmkIUmLmVmx@bLUamKÅL@VmbkU¯KÝamzkJUb±VkbL@lU@WIkJzkKmKnUalWkkKW@@nkbk@WW¯XUVUJ@XlJ@X@XlWLkU`VUnaWaUV@UVIaUxUUmVK@I@W@ÇU@@U@b@nmKXmx@UxkVWUX@`VLlL@`zXÝb@b@VUVkIUJVz°KVlnLlKnLxlLVVUVlXUJ@nnI@mVUlbn@@m@bVnV"], encodeOffsets: [ [116528, 37885] ] } }, { type: "Feature", id: "1303", properties: { name: "秦皇岛市", cp: [119.2126, 40.0232], childNum: 5 }, geometry: { type: "Polygon", coordinates: ["@@lnV@Xbkx@lU@@LUVlVLVbnlaLXVVnlIVUJV@UnĊ¦lab@nJ°UmV@wn@VUJVI°bnWlXnWVLVK²bakklI@aUaVUwVUUalaVwnUVak¥X@WkLVÓmmUK@_lW@n_UK@alÅ@ğÅƑŃÝm@ÑţÇlL@¯mz¯@ÝVak`@LlVUbkXK@klVXUxJmbm¼VnVVblLUV@b°V°XLVb@¤mbXxWX°xXVbmVUVU@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°xb@VnnmbVXblb@VkL@lV@Vbn@@l@XX@bWVXlmXnlVV@@VUbK¯LUl@nmbV¤n@lLXnlVUV@ln@lbUlLnV@bV@@wlaXJVbnUVbVU@VVLVVn@VVX@@UKXUU@wUK@UwVnk@UUWlkV@aUVUÆ`X_w@mlU@anUmK@UXal¥UmÈLVbVxVLabVW@nXUVnV°UŤV@U¯Um@U@@UUaWVUmUUU@k£VwW@wW@XKIUa@wU@@al@UK@_mKXKbUU@aVKm@Xm±@kbÇakLğVaUw@a@mkUJk@ykw@£WX@lknk@WVkbUVnUVL@mVkI@JUbI@JXbXllkLUmLmbV`kLx¯LkVUV@VôXkVVLVV@xVUbW@KxlL¯kV`UnV¦°@"], encodeOffsets: [ [118024, 38549] ] } }, { type: "Feature", id: "1310", properties: { name: "廊坊市", cp: [116.521, 39.0509], childNum: 9 }, geometry: { type: "MultiPolygon", coordinates: [ ["@@laU@UnL@VWbklWxnIVVV@XJlbUlXVbn@@KmV@@X°WVInJmn²@lmVbnL@amKV_kwlmX@@LVamaXaaVU@UnJVanLlUkaW@UaVakK@IlKUU@an@ln@alKUkIVa@a@klaUKUV@UkUV¯KVV@kUmU@@a¯ImJUU@VV@UL@U@@WXUWa@Ukwm@X@@w@al@@aVIUmVUUUVWUknK@I@l¥kU±aUUVyUw@@I@UUWm@@Uk@@nUJU@WU¯@kbWlULnÇk¼@llLl@xUnóLlkXUxV@lWbI`°nnnllV²¯x@JkbLUVxmJX²@ÒWVÛL@lln@XnnVL"], ["@@@kX@Valaa@KWI@UXW@WanaUIW@UaUKķk_W@UVUKU@b@UamxVXnJUbWVXLVbn@W°kb@U@Wó¼mIU¼k`V@bVbl@lX@lUôVlUIV`lXVn@lUlVn@l@UVaIUWl£UmVWU@@UUKlUUUnVL@KUnLVWUa@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@VVnmnLLXx@VLlKVUIXWÜ@Člbl@XUĊUlwnWLÞwm@ÞUVmnVl@nXJXLm@VnnJlaI@VkxVb@VlnJ@knKVn@°aVanal@XK°b@¯VJXIVK@al@nVk@nKab@XL@blVVKVLXK@VaVI°mVaX@V_@a@yUkVwVIVaJ°@anIlaV@nKnXÆm@wUUV±UUWUKnaWwXUWmůVam@kakImUK»lan@VXXaW@@UlUUa@a@UlwUV@Xal@@anIVaUK@VXmwVmUmVLXl@nalLnal@nKlkV@@UnJUXnl@nVl¦V@@VnJ@nUVVVVIn@VaJÆn@@K@mka@kmWVaUI@a@k@@aUL@mmaVIUKUV@@IU@mUmmL@K@UUUU@mW@@nU@ğ»mVmbk@klW@UXnV@LJmlUnUJUUUW@UnkKxmLa@@@lUUbmUVWk@@nkUmam@UakJU_Vm@ÅlÇLUVmVUwULKU@k@UVUlU@@U@UaUUWaÅzJaWLklb@bmL@kKabWUV_@mV@b¯JmXUbUK¤ÇLUU@b@JkLWmkUWIkJ@VmX@JUbVXU`¯VV¯blK@LXKlUV@Um@@Uk@kxWkbL@KkbmL@UXmaU@@l@x@blX@xUJ@bULUlULÇ@@VnU`W@@nÛ¼U@@VmKUkm@VVX@@xÇ@bUbVb@VX@@xLUb@l¼XLlbUlVVUUb@n"], encodeOffsets: [ [113671, 34364] ] } }, { type: "Feature", id: "4115", properties: { name: "信阳市", cp: [114.8291, 32.0197], childNum: 9 }, geometry: { type: "Polygon", coordinates: ["@@VllInJlknJVkVU@mXlUÞ`VnVVU@U@y@nXlKVnJVkXKWaXIb@yVkVUkVwn@K@nW@kKlUXVVUlbnUV`n@V_V@llX@@Vb@bV@@nlVUb¯WLnbmb@nLnKbUbVWnLlaX@VVUX@Vln@`kL@ll@VXVJÈIVl@XÞJ°UnaLlylU@UXKlnn@lanLWWnbVI@KXKVL@LVWVL@UVKUIVWX@@XÆJ@In`@lJVI@aWÛnK@UlK@UU@VKnlmnXalUllLUbVVknJ@nV@Vm@al@@xnVlJVUU@w@ak@XW@_mWnUlŁUmVKV@VXwW»XWaUwnkWUkVUU@@@WlaUkkaIWVkm¯xmIUmLUVaUIó»m@mmwXk@amk¯¯l@wmkLmmU@UbkUWJ@XUbJ@b@l@znÆmK@Xk@Ub@lm@I@akmVKUUVUkU@U±JUbk@IWmkxa@UUVUWVkIUaW@UlLWn@VkJI@VkK@L@bmKkJmUUaUKWXk¼VxnJ@V@@VULV¼@@UkaUlWL@U@W@IkKmL@KULUWULWKUXUJmIbK²UWnWKUUkLUmUUam@UU@mUL@xkV@VV@bmV@Vk@mwkUVUx@mbXÇnVbUL¯WnUVLVb@xnlWnU@UVUVVUbVVlVkn@llVUXUWUXVbUJ@bmLUJnb@nVK@bl@@@bVJUbnX@lb"], encodeOffsets: [ [116551, 33385] ] } }, { type: "Feature", id: "4103", properties: { name: "洛阳市", cp: [112.0605, 34.3158], childNum: 11 }, geometry: { type: "Polygon", coordinates: ["@@VVUllLXl@LWn@J@bKUVmnL@`VblLnbV@b@JmL@LnV@VV@¯VJVnXL@nm@aÞ@ak@mImVbXLynLk°@°aVJnUV@UVVXk@WJ@VXLlUnJVnn°U@»°Uwl@bWmUXÆ@VLXU@m@Ua@Imkba@naWW@_@WXUV@@U²@K@I±U@¥kKWLóLla@£Um@kWKXU@mlLXUVKUU±J¯_@`UL¯Wmk@WakklUnVUVaU@KUU@mmK@_a@KX@VaUIm±kaVKVUkw@kaW@kbkL±UUaK@UUKVak£@UmmL@lIkmU@Ualw@UJkbmIUmn@WKImWk@mUUnÝV@nÝxKmXkxĉVWVk@kaċÛ@WXJUV@zmVWnbUbVbLlUnlUÒnWVVWnk@@Vm@kxm@Unl@Ll@@V@XnkJVV@nlVXxU@ln@a@VLnWĊ¦nx@lbVKXLl@ÞVLXJl@XXl`lIXVl@XlXUVKwV@lanxzUbVJ@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Ü@VLm@n@na@Jm@k@lVVxXX@V`lLVXVV@VVÞLVV°²@labnxV@@bLmlm_VWnIWUna@lLbnV°VL@KVLVUVaVLXK@mÆXna@wVma@Xw@KlL@a@Va@wUkaWnIVla@Kn@Vn@VUl@nKVnJ@LnK@aVkVUUW@VakUVanI²XW@UUU°KnUVLl@XaVK@aU@KUI@W@_lm@KkLUKV_U@»@UVJ@XV@@mVL@K@U@Kk@VwUUm@kmWL@VkVkzKmb¯VÝI@WUkÇJUIUWk@@klK@_km@UVWUUW@kbmKUXaVamLmK@namaXK°VakU@mU@@aa@UW@kkU@U`m@U_mVkaUVWUkVL@lmX@Lm@UxVlUUl@zaWJXbWLUlmIUkLmW@@z@VUVUUmÝ_kVW@nUVUlmIklmIkJUkl@n@Lm@ÅIUbm@UJUUVU@mmI@UU@k¥mUk@WmVmI@VU@klmLk@mbkKmb@WkKUVnUnnxW@UVLUbmJ@bk@WbU@Vkx@V@bVbkV@V@XWbUWm@kb¼VLnlJlb"], encodeOffsets: [ [115920, 33863] ] } }, { type: "Feature", id: "4116", properties: { name: "周口市", cp: [114.873, 33.6951], childNum: 10 }, geometry: { type: "Polygon", coordinates: ["@@lnb@xlJ@UnLlKXUlJl_KnV@xVL@bkbVVUè@Wb@UbmkVmbXVJnUl@a°@@bLVblXxInmnLVwanJÆw²IlmnXVl°VVbÈaVb@lkn@VWnLlUVmÞUUklkVkUaVaVaUwK@kkaVWmw_l@nUVVb@baV@VV@zXJl@@kl@lk°WVnÆbnbUVJI@VKVm@kK@_kK@a@aU@@wW@@k@aUW@IUWVUnLlUlVXKVwmk@W@VWa¥@k@lnUIÇKUaU@UUVmIUVUk¥Vma@¯k@Wanwm@@n@@m@UIVkUVamUXWaVU_@mUVUImW@aUIĉK@VmIb@lU@@nJkU@KIUmmLk@UVm@Um@@LkbUmJXlbV@xUb@@bkK@LWx@bUn@xmbÅW@nWLUKUbUVKU@LUK¯mU@VV@xULUVL@bU`WUz¯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»UanWX@VaÆÇô@ÈaVX@xVJXUÞUaVLĸbXKlV@m°Vn_nyXX»mUk¥lK@a_@yInaVKVa°_@WXI@@KVnIlbnaV@l@a@_w@lwUKmXa@UV@»Vw@kUKVUUm@w±VUXUKUwmJUU@km@@±mXkmUI@mmKUwkbWakLWaUIkJmX@l@@VUX@JWbX@VbULWblUVULknlV@bVJkmb¯KknWmk@@nmVkx@VmU¯KUnUL@JUIVmaÅaUm¯Xlkk@@lk@WI@yUUU@b@aUaUmVk@`nxUXlb@lLVxUbUbVbUllkVlÝVUnkVmKUXm@kl@nUx@xnxn@`VX@V²x@V@b@Wl@zU`VUVVbL@VbW@bkXllkLWV@V@VVÈwlV@@XK²LlbWnnÆ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@IaU@makKUa@_KnmVUL@a@IXm@KWkkKVkUU@aUW@UUIVaymwkbU@xLVUWWkk@WUkJk_WWk@WIUKÝk@WKULka@mwĉ¥mXUK@@bm@kVWwkU@mUUlIWm@@Uk@@KkVmn@lwn@@Ul@XmUXUmVÑkmkVKUaVamaUXn@ykLUK@WwKmKnUm@UmaU@mUk@kL@lxċxUnkVmnXxWb@`kzWJ@VLmVUnlmUL@lW@Ub@VXUb`VLUbUJ@nmnUlUUm@@bUJlnUU@lxkb@@XJUn@kb¯VVVmlXXlJlzn@VlkVW@bkKbmkUbVblXVxKÈnwÞlĊKlVnKlwX@lL@xlUnVn@l@lmX@ÆÈb°¼ÈwVJlx_°xalUÈxlUnbVxnL@lllbmn@nb@@VL@V@@VLJnIVVlKnV_"], encodeOffsets: [ [114661, 35911] ] } }, { type: "Feature", id: "4107", properties: { name: "新乡市", cp: [114.2029, 35.3595], childNum: 9 }, geometry: { type: "Polygon", coordinates: ["@@XVlLK°bUblbUbl@nX@WXVVKVk@@mb@UbnW`kLLV@VVLnKlVXIlV@@a@l£nWlkVa@°bnUlLVlnabnUVUXKlU@@lk@aI°y@ôkUU@wmônkWakmlUkVmkUlmUUm@nkUKWanamULXW@UVnUln`lblL°KXV@ĠJ@L°JUVwanK@UUImmkK@¯±Um@IVmUmmÅnWaUK¯aUkw@W±kVxUVwnÅJUIWaÝJóIbm`ÝbÅImJUI¯¥¯@mU¯UJmnUVóUkl±V@zXlbWVXL@bmmº@@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@VLVb²VlKlaX@lb@lxUVULbln²VJUbW@@Lb@`nL@nVV@LVUbUVmkVllXbl@Xn°VK@_°`²IVVV@VUVJnInaWK@U@KLÆ@nmlXXWVUUw@klKVa@knyVkVanIJXUl@XbVUl@@aa@mXkbnK@UlK@UUUVaXaWmkUm¥nWmXaWakl@VmÞbKVL@aVI@mUwVm@KÅméULKVaUk@kUK@UWXI@VlKXU@VVnInVV@VLlK@UUkKU_@WWUwU@kln@@Imb@@mnUKÛ@mKUkWVXxmbVLXVVU²VV@xÅnmWmLU@kbmJ@b¯IUbJUUxVl@z@bU`W@Ub¯nUJUb@WLUKULkU@aWK@abmL@lmUk@@bULWJUI°@¯aWLk@mbUb¯b"], encodeOffsets: [ [114942, 34527] ] } }, { type: "Feature", id: "4101", properties: { name: "郑州市", cp: [113.4668, 34.6234], childNum: 8 }, geometry: { type: "Polygon", coordinates: ["@@@nWVUKÅ@WnVnIV@kÆwV@nn@lxÞlnôJzXJl@nalUČVll@²UlkôVVUnmI°VnV°@°¦VJnIÆJÞan_VmU@ama@kU¥kaUklw@UIV¥kVUI@mmUÅmUlwVU@amUJWbUakVVé¯Im`k@wVWmLkU¯XkWmLmx@UUbm@@xJ@LbW@UUVWUkVK@kaIUamKUkkmmLUkJUVWXkWmnÅ@KL@@VXLmbmJUIUVU@ULWVkK@nWVXL@lVn@¤bkôKXKlL@¦²V@JL±@@VU@WV@X@`XXmb@blan@Jb@V"], encodeOffsets: [ [115617, 35584] ] } }, { type: "Feature", id: "4105", properties: { name: "安阳市", cp: [114.5325, 36.0022], childNum: 6 }, geometry: { type: "Polygon", coordinates: ["@@°kVaV¥kVmUkWkWVkVKUwkkmKUU@awWWXWakKWkXmlaIVmX¥U@a@WnK@kVI¯@KğI@WU¯LkKak_kmmVU@VWXKnVmbXbVLmln@VVknlVUnVlklnXbmlmlXblnÈlWbn@@nK@VLbVV°VVzln@VxIbU@WLUa¯VUkWõ@¯kkmxk¼lXUlVbVLnlULmU@lLkVUlX@xW@¯mU@UmIUWL@aXakU¯anWk°@kkKmmUIWaambUkkKmV¯a@UblkmXk¤@@b@UbULWVnb@lUVVnmnVVUJ@bWXX@WJkL@blVU°UV@XlWnXUbW@UVkVVWbnLUJWLUK@Lnn@blVUnUblxVUVJXUa@UbLnUVV@mVIVVn@UbV@XbmbUV_lVXUWanJVI@WkI@WVIVU°WXXl@la@mX@lLXlkVbmXylIXJV@@kKla²UVaIVyÞb°LlVna@UÆKnLVbK@anwU"], encodeOffsets: [ [117676, 36917] ] } }, { type: "Feature", id: "4102", properties: { name: "开封市", cp: [114.5764, 34.6124], childNum: 6 }, geometry: { type: "Polygon", coordinates: ["@@lUVbXaInV@bUVxknVVÆnn@VJlUU¦VJ@kxVllb¦lV@nb@bVUnaôJÞIXbVJÆImxUVwU²l@XxVl°bVLXb`XklUnmVblL@lmx°LVK@UXIVaWlL@Uk°KkVaVUXmmI@UÅKmmXka±KL@W@kUÇxUU@@UXUlKkklW@aXa@UKUaVUUV_@yXk@@a@U±w@UUW@_mmw@wVwmUaÇbUa¯UUkmWkn±JÅxmIbUxmKmnJWwkUaK@a¯@bk@mVUIWLmwm@Ua@WJUb@LUl@UUmLUbWJ@VL@VmXWWzUJUê"], encodeOffsets: [ [116641, 35280] ] } }, { type: "Feature", id: "4108", properties: { name: "焦作市", cp: [112.8406, 35.1508], childNum: 8 }, geometry: { type: "Polygon", coordinates: ["@@V@VL@x@bXWV@XklUWX@J@nI@KlLKUVaV@JlL@KUk@KÞLl²_@nWlLUVV@nLWVUJVn@anV@awÞUVLVxb@lW@lbXnVn@@¼L°mKVn@bnl@nVK@blbLWU@VWLXV@nlKn@lVVbXw°nV_@¥Vl@XI@mlkkV¯VWnI@W@n¹n@aWKXUaWk@yk@kċUkVmbk@WIyóImÝkkwm@mU@xÅlU@mJXak@x¯V@¼¯VmUmmIkVWK@UXIl@UWVUU@mVUI¯b¯@lmKzWKUanJ@nlbÝ@@b"], encodeOffsets: [ [114728, 35888] ] } }, { type: "Feature", id: "4110", properties: { name: "许昌市", cp: [113.6975, 34.0466], childNum: 6 }, geometry: { type: "Polygon", coordinates: ["@@lIVnKlnVlnLVbJlb@ULVlUXVVX@a@KI@wn@aVV@nwnKlXW°lVnKUXx@ln_°JVIXyXnW@UK@UXIVanKVV@Vk@KVaXI@Vbn@nxKnaUlnVa@Xa@VçUUla@aUK@wmULk`kIWVkLmK@V@XUln@JXV@nmbUóImUa±@@ÑóVUUk@UlKVU@akWVUUlUUaUK@UUKWbUkÅJ@XWa@XbmJ@nUJ@bUKLÝaUnk@lXbWbXnmn¦lVXnWbUbVV@VkL@VmLaWl@nb@bk@UVWak@WVImJUbUlmz@lUbkL@lVx"], encodeOffsets: [ [115797, 35089] ] } }, { type: "Feature", id: "4109", properties: { name: "濮阳市", cp: [115.1917, 35.799], childNum: 6 }, geometry: { type: "Polygon", coordinates: ["@@lLXbWXXx@bVVnLllVxULUlXXlVlUnlU¦Ub¯lnK@VbVb@XbVLKVxVVnIlaba¥lU@wnalLnVVlVLXnlWVXn@@lVI@WnU@mÅW¥aW_k@WwXy@km@wUm¦lUxVLV@UwJ°x@VX@Vb@`VX@VX@llIVbnJlIbVlJ@mѯLóa@KUakX@UK@wU@lWUUݯImW¯aLUKU@k»k@mwa@UnKWI@UU@akVWKk@a±bóUWKXUmkKUmLbUx@lmLX@@bVW¦UnJkbWnXl"], encodeOffsets: [ [117642, 36501] ] } }, { type: "Feature", id: "4111", properties: { name: "漯河市", cp: [113.8733, 33.6951], childNum: 3 }, geometry: { type: "Polygon", coordinates: ["@@@LUnVxnIWa@Xb@WÆIVlXaVL@VVLVbkVVUVlX@bUVkLVl@VVôU@Ò²@VbnôJVan@mWU@ImVk@WkI@wmak@wlW@w@VbnLVb°bVyXV_@aUKVVK@wUU@aK@kmbXVmJUX`knnK@aU@mwakb±@¯UUÝKUUU@WU@VkLUKU@mUmJUU@WVkL@UWJX@VVL@lVlUbLVKnêÆ"], encodeOffsets: [ [116348, 34431] ] } }, { type: "Feature", id: "4106", properties: { name: "鹤壁市", cp: [114.3787, 35.744], childNum: 3 }, geometry: { type: "Polygon", coordinates: ["@@ón@xVVól@¯zJ@bkl@@kVWLUVmVXbVJnnlLl¯@Xlm°bVlWb@bKVXnJ@VV°nX@@wWVklUK@knVVKmkUKUaVkWkl»nwl°lö@lXV°UVbXKV@aJw@UmkUy¯UUUaK@UL@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: ["@@VKbX@lbUVnL°@VlVnUl@VUX@aVmaXlaUUU@wmaVUn@Vnmmk@mU@knaaU¥VamX_@WUmW@_kVaVKnLl@VVal@k¥@kUW@kUKVUlUVÑW@kÇaU»ValmkUVUVak@aV¯_@WUkmVUlU@aalI@akkVWUaWXUWwWVbÆ@lalIVK@Um@UUW@al²a¯UağÇm@bkk@w@@WaULmxIUb¯@U`UXJmL¯aKXWUL@aknmK@aWUXaWm@I@UÅmVU@aUV@bVI@WkUbXkm@VakwUKULWKXmJ@XUK@mL@KUwVaUI@KU@mmnmXka@»V@@UUaw¯yVk@UUVmmkÛÈU@mWUnmxmlUbV¦UlbWVUL@UUIUmÇKVVbUVVxknLUxV`VX@kJVVUXWaUVVlUnmKUbkI@WULmK@L@LVlLnmUIWV@akn`VXUJIVlUVVbUX@¤mbnLmm@UXk@mm@Uka¥@kV@@KkU@aUKWbkLWVkIVk@UbVlmX@bU@@mmL@bn`@Ln@llVLVk@XVVU@`VXU¼k`VULka@VllVIn¤VU@@blÜbkx@bkLkKn@bn@@b@JUnV`UnVbVKlVXUlbn@°Vx@@bnVbUllVn@VVK@UnW@UVUlnkVÈÞxVbVVIxVaÆ@@aka@UVaU@@ak@Wl@nbVIÆ@Jk@L@VlXnlla@VJnw@UmwXU@aVK°ÒnllnLlbxnKVaV@l¦²nVl@llLx@XVVĶ@nax@U@alXUVaLÈþV°XxWXkK@mLnlUb@bxnLVlVVkb@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@WkLaVmwV@anK@UlIXmWkk@@mmLkWlwk@U_mKXwWK@U¯K@UU@VUakmkIyUUVUmanU@mlwk@_mWXaUWU@Ç@U@aUaVwUKUIVkK@UWIXmaV@k@Vm@UnwlUamk@V@ULUamxUJkU@I`WkkK¯XWak@@W@IUVLWJkXkaÇVUK@kUmbmUUUKbkKWUkI@kKÝ@@aUm»nI@mU@UnWV_@aUmWbkLUl¯b@akkk@WkkJm_k@UV±@J@bnU@@WÝIUJVbXL@nlJkx@Wn@VkJmbLmU`VbUL@xVn@XV@mVVnnJVbUx@VnVUbVVx@nbUK@b@bJm²VUlbXzVJVJVbn@@Xmb@V@bVJÈ@Vnkn@°aVVV@XKnalLVmUnnVKVlnLWlXXKlk°XWkLUVVV@nU@ml¯nmbk@W`Å@mbLWm¯UxnêVèk@mbVnUK@kKmXk@@JUIlÛLllnbVnlJ@LULnlÆaVLnV@nkVJ@lkô@²bÆm°wLWV@VXKVXI@W°ÆVKb°UJVIVV¦XKVL@lInaVÝnUl@@bX@nmVL@lVLlVLVUnbVW@xXnbU°¤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@blUbUVlVknUbV¼Èb@lXUÒkVUVVL@lVX@ll¦k@UbU@kmKULUbl@`nXV@XW`nUbV¦bmb@lV@nnlmnUm@UVnb@xVVVkbWnbVnVa@an@UaVUJXnWlXX@l¦@lKÆXbXV@VV@°¯°xXxXV@nV°UVWU_VWXkmaVnWVkn@lln@lb@UVLXWlnX@aXUmaVK@UXUU@WVIWXXVU@¥VK@UÞa²LlV@kV@UanKma@UVUnK@UVLXyVLknJ@UV@@UXKWUXaV@Vb@mVLnKWm@aUUm@@UkK@UlaLXKWaXI@alKlmUk@wVKXL@m@WWn@UVa@K@wna@aW_XWWkXbVW@k@U¯WWwka@UUaVIVkU@m±@U@@wVKka_@VV@XUVwU¥yUkm@V±ÈUKk»ÇLmmLk@ó£kmWwm@UIkWKXwWU@kLwkbmabkK@VLkmWIUKkUUÇIǫJXÅJULVÇLUV@UK@kI@WVI@UaWmXVVUL`±kÅLmKkkÅ@UaXXxWVXVbUXll@bkJb@bkVUVlnV@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@@UnlVbkmx@VUnl@U@nbWXJ@VlLUVJVLUxVb@b@VÈ@XVVWbnX@`lkx@nmVnbUVVVzlJnlVbUV@@V°L@VXLWxnLV`l@kxlXnK@nl@XlWn`Xnl@@UVa@VÈK£VLVanW°U@UVU@`VInmV@nV@Xa@aVW@UalkXKblIyÆXnlJXbl@@VV@nklU@`nVKLVKVb@VU@UÈKUVKIlUX@V`lIVbn@nblVVmV@@XXJUVV@knKVn@`@XVnKwlLVmUUU@U@aXL@WlU@UUW@UmU@KkLWaXkWmXUWm@U@nk@UmK@U@UaUVUUKV_@al@namWUI@KUK@aV@WUIb¥ULUJkImK@U@KV@U@a@UkU@K@wVaUwlU@mUULmKUkV@@anIWmUK@I¯mKkl@LUb±lUakLmk@WwUKÝVUIm`¯n@Uk@makJU_@Jma¯ImwUVkKbaUÅ@wWaU@VU@mXIVmmUkJkwm@mIlUKWzUK@VmLUV@VnbmLVbU@@lkU±KbÝV@UL@¦VWUWXUJ@XVWV@VULnbWVbW@kmWXUK@Vkam@kkm@UlmXUnbWlUXV`UX¯VmUU@Ul@Lll@nnJ@LnWmbm@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@VXV@@IVJUn@V@L@KlIVlVanLVbnVlIn@@a@Kl@@IJlI@aXU@KlKkVblJXUVlU@VbVkVKXn@VlxVa²I@VlVUxln@bJXklaVWnLmÅ@y@k@aI@W@aXIlVVaV@nnlKnLVW@IUa@a@KUVVlI@wXKVV@IUla@lUXwWnnalLlxXLll°@XwVKVaXIlnb@nln@Va@U@k°UmÆUVaXIJV¯ÇUmmkU@WaKmakVm@U@aVKkkmKkVmIkÇ°£@aUUVaVVnKlkXmk@lUVaX@@Um@UmlUXVUVU@wK²¥Ua@I@UVl@UV±UIUÇ°»VkUmVI@a@Umĉ¯V±bŹĖğaÇL¯lmkX@óĀ@mÝêb±WkLn@xXx@@b@V@LW@UblţX`kxWnXô¯¦ÆV@L@JVLxkK@V@bkz°llXz@JUlVla@XUVbVKXnW`XXV@laVV@VX@V¯xx@xULVbUJ@n@LU@VmmakbUK@bIWWUUVkUmkLm@VJkb@nUJ@`V@kXaUaVmmLkUmJ@Uk@U±lkzmJUb@bVUxVXU¤L@JX@VlL@JkLUVU@mnUl¦@V"], encodeOffsets: [ [117181, 32063] ] } }, { type: "Feature", id: "4210", properties: { name: "荆州市", cp: [113.291, 30.0092], childNum: 7 }, geometry: { type: "Polygon", coordinates: ["@@ÈJVlVVLXJlnK@UlLanblaxlK@XVWxXLlJ@VnXxlnô¤l@nKnÈKl¼VL²ÇUn@VlzV¦UxWVU@@U`lbUL@xV@²@@nlVUUJVb@VlbXx°XVWX_VKUwVKVa@UVKUUVk@KnblaUU@wnWl@UX@lÆ@@aIVmUkxVJUbÜ@Uk@WWnk@VVm@I@m@Un@mXUlVlUnJ@knJVU°@@aÆLX@llL@¦nJV@XblLVa²U@UlW@VX@`@LV@@bXJlIXml_lJU°bKÆLnVVl@öVmXaVIĢllUlVnLVlX@@bannxVLbn@°ÆXmmkĉ¯w±Uċ@KÝÅƧŃÝçUw¯m¯k@WkV@¯UIUJW¼kbUwk@W`@¦Uônb@VÆlÈ@VU@£UWWnUÆUnmJkUÇ£VWUI@aUU@WkI@Ua@JW@k£kaWVUKmnkKbkkVWbVmUUmwU@kk@UakUUa@V@nlx@lUb±lUbnnWLUyk@UamUK@mlk@Wb@VXL@x@xWI@a¯¯V@bVn@LkKmL@`XmKmVU@@bkL@V±bk@UaaLKUVIWXamVVbUK@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ÆbalLVUnx°JnbI@V`lInbl@@V°mn_VJÞUVLXx@nllKVb²kVa@KlknL°@JVLXnmJ@bU@VlnLVKV@nX@lUKVaXal@VKn@¥°L@UnwbnaV@KV@VUX@lVXI@KW@@IXWV@laVLKlaXUVVnkVWV@lwXblIXWVkVmaU£VaUmVIkU@y@WakKUamU@UUK@kmK@w@@mK@LV¯U@WwkmULamVVUU@IbUKUakmm@UakLmxU@UÒWlULţÿmwkIUm@akÈblW@UVUUk@JW@XkWWUkUKUIlw@aUWknWUUmnIWaUwVaÛaVUIwVlUnJ@bÅ@@kVWk@mX@xVVkbma@LUlVVUL@VUbULVxULW`UX@V@lUXWaXlWXX`@bmb@x@LUb@VmXX@@nWKUL@xVlknkL@bWJXbWLKkb@VlL@Vn@VV@bnXmLUK@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@aK@°nJwnVIUaÆJÅ@wwVXW@aV_l@²V°lĊwlaXLwlUkalVVaX@lVXI@aUXJ@U°UU¥VIVKVklanLVa@VÈIVV@nk@aVa@mV_@aK@klKUa@UnKWk@@lU@@UW@@nUWUwmaVIXlV@mLXblJ@kV@kk@KU@WkUWVÅwkLmW@UmL@lULKULak@maUUÝwUJIbKUU@aWK@kUWVkUwVw@mÝ@I@wkW@aww@LU¥kJ@nVJIkVVnkVUkyUIUl@xWUkaW@@°kzWxkLUWmzk@@bVVVb@@XlV@Vl@bVbUn`Wn@WbVVI@`LVbXLV`mnU@@lL@LUak@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`lwkUmUVWX@lk@VanUĠ¼V@@mX@@nVVVXLmJVLnK@bV@@J@VUn@VaVUUUVWVLV@@Kk_@almaVkUU@WVVUVLXmmk@wUaUKUV@°@kmaUaÈmWmUVklaX@lVnxl@@UnaUk@VUVwVKn@VVn@VbVJUknUmmVmk_VwKUUmVak¥@UVKVIkW@UmIVWkIVkmmLkwmVU@LUU@VVXL@JmLUbmK@UUKmkKUUmVUaUnÇlk¯mJUnmLUaUJUaWL@UkJU@aklkU@¯@KWLUmUUWVkbLUKkbU@WX@JX@@LWJkUW@UVU@@LUmbamx@V¯K@¦mULk@WbUbLkVW@kVVxUb@x@LlV@V@b@VU@L@VLnlJVIVK¦aVJ@XU@bLV@LVJnXmbk@@bU`VLUVVb@V@VnL@Vml@@VXnWVXnWlXblK@LnV@VVX@VkV@XWK@bVV@VV"], encodeOffsets: [ [115830, 33154] ] } }, { type: "Feature", id: "4209", properties: { name: "孝感市", cp: [113.9502, 31.1188], childNum: 7 }, geometry: { type: "Polygon", coordinates: ["@@VnXK@L@°lVlkb@VlI@VXKVbVIVbnKVmnI°lÈkVmVbnUVVlLnVL@VnLVanK@IWKUUV@V@KVnUlxnKlnUlJUXnJ@VlXUJUL@Vl¦UbnVVLUxl`UnnnmVVlnVKbmVX@a°Ý°LaXJV@VUnKVXVK@LnKlLUbVVX@VwVJVn@@UU¥V@@UUK@maUVUkkJ@L@K@UmVUI@JU@W@U@UV@UIWmXUVmUUÇ@UVmIlmnmakK@akaW@UwVUkKVnUlKVwkVU_WKUkVW@UXaWkUa@w@VU@XaW±@IkbKb¯L@WXkW@UakL@UV@UmVUmL@UXWVL@aUVUUUVU@yUUIUa@wUKWVU@kWk¯UkwVKLUxK@nVxUlUUWVUmw@wUUyXWlX¦WbUV@U@blbUVVbXXl@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: ["@@nbnmknJVUÈ@@U¥VknmV@VUlK@IkK@UW@IKV£UWVwU@aVanIly²kVl@@VnIlVnKUnVbblWU@@_VI@mlaUIn@lKVnUlVVXXJ@aVLlanbUnV@@K@mVIUaVK@ww°w@UW@UUUkbU@WWX_WmULaVU@WkbkUV@IWyk¯kly@a@UlLwUK@I@KÅUW@űUm@wl¥ka@@_Vw@ķa@akw@kKW£XVUVwVwUaU@VUUxWKkbĉx¯k±Uk@U`@bWXUx@xÆÅIVbUJmxIm¯@UmxnUVVbnJV@L@@kV@bVn@UVULlx°VXllV@XUVL@xVbJVV@zUVVVUVV@bUKWX@VnKUVVnU@@VlKVb@lXW@X°KaLla@JX²Wb@UV@@xVbXlWb@VUXVlXLV`UlUxkLmVUlLUVVxX@lb@blL"], encodeOffsets: [ [117000, 32097] ] } }, { type: "Feature", id: "4202", properties: { name: "黄石市", cp: [115.0159, 29.9213], childNum: 3 }, geometry: { type: "Polygon", coordinates: ["@@VUVV@VbUxaWUblUVmnKlX@bXJVIlVUxVVVIUzlx¯@VbnL@xx@UVaXKb@XkWU_Vm²klWXVKl@nXV@@wmlK²XaÞén@ôÿ@lWn°kUKmmUÑUmm@wkImWU@UakL@bVLUVċ@bUK@alIXKWK@nXnKmkUVw@¯b@LlUL±Wn@KULUaW@kL@lL@bU`@nUb@bmlU@UÇJ@UUbmKkblUULUJV¦¯V@VWIV@bWJkUW@UbkUlbkV"], encodeOffsets: [ [117282, 30685] ] } }, { type: "Feature", id: "429021", properties: { name: "神农架林区", cp: [110.4565, 31.5802], childNum: 1 }, geometry: { type: "Polygon", coordinates: ["@@n`lIXll@ll@b°aVklKXaVn@bU`mX@VV@nmJn¼V@bÞ@lL@lJXVlLaVLVnVnalV@VLÈUlblWXIKVU@J_@annaXm@KmI@mkk@KVkWWw¯w¯°@UUU@WaÅWkL@¥@kWWXkWmIUVVbm@@bUbmUUbW@UVk@mVkU@U¯mKVUkaW@aULÆVbb@VÅ@Un@VLWl¯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@kkWWUaVUka@aV@VUXaW¥Xk@WWIklm@ÅxmIVÝUkxka@bWJaUL@W@l¯UULUbkVUa¯bm¤UnÇUkmUUxb@VkXÇal@bVnlJnxŤĀVKXkVÑV@nwlKVbn@nlVbVLaJ@VVUnUbVKlnXxV@°U@KnL"], encodeOffsets: [ [116056, 31636] ] } }, { type: "Feature", id: "429004", properties: { name: "仙桃市", cp: [113.3789, 30.3003], childNum: 1 }, geometry: { type: "Polygon", coordinates: ["@@VK°VkX@@VKbXI@alblwÞVUnJÆwn@lkXJ@XWVzV@xnxVXUVVVkUw@mLVwKVU@Um@alU@@@KUmIUaVUmnwmwmb@aW@UkmKkUkVġkUJWbnUõ@UkmUÅKL¯aVkIk`WnkJ@xVLUVVbUbk@WlXbmVxnxUblbUV@@VUV@nVL"], encodeOffsets: [ [115662, 31259] ] } }, { type: "Feature", id: "429005", properties: { name: "潜江市", cp: [112.7637, 30.3607], childNum: 1 }, geometry: { type: "Polygon", coordinates: ["@@UbVxbXmJVnXVlmVX@bkxVJVLVlXXWlX@@IVlVUaVwVlnÈVVmn£°aVbUlaVUK@mVU@U@VUkaVamwUwnWaXkl@VaUaVUUK@wWI@aU@@K@_UW@kX@V±VUbkKWaU@mI@¥kKkW@ÅK@b¯@UVmI@lmIkVkUWVnm@@V@n@JUnU@mlXXl@@V"], encodeOffsets: [ [115234, 31118] ] } }, { type: "Feature", id: "4207", properties: { name: "鄂州市", cp: [114.7302, 30.4102], childNum: 1 }, geometry: { type: "Polygon", coordinates: ["@@°¥WóXmlw_ŤWkVaX@@K@U@a@WwU@mWk@ULWkX±lUnV`XWl@aWLUb@Vw@wmKUa@°kwyVUJUUVwkUUJWI@akWmLUnkVaXVbUxUVWX¤lL@lx@bb@ĸUx@`@lbk¦@xn²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@aVUnlUXnV@@VnJWUJVnIVV°UbVVVL@²LUVa°V@aV@nmUXblLXWVXVmVLVK@an_`@X@l°VlXXW`nX@Jmn@b@nV@Lm`bUbn@VUVl@nIVbUlV@LkJUnVV@xVblVUbU@zUKU@mx@xUnn@@WV@lbUb@nVWXXV@VIV@VUnJ@VUz@JWbXllI@VXVVL@Vn@Wlb@lXVlLaV@VJ@XX`kVwVl@bkbUlVXIlnLVamVwV@@nV@XaVJVbX@lwV@n@nV@VWnIVVUÆ@Xxa@IUUKmk@mVIXmWUVJnUVU@anaVwkU@UXa@W@m_@a¯@@K@UVbnK@blIlbXa@WW_n@VU@¯bmyUkUJÇÅ@WU@kWKÅwnm°KVkmankVWnXVWV@UwXkV@mUlLnaVaX@VUn@VnVK@xlnXWU@a@@klakVwmUaV@wmIÛ`m@mVUXmlIXVI@K@aU@UaV_UK@wkUmmUKWXmVkUL@mU_nK@aVU@Ukak»@U@ymU¯UUVKkam@nka@mwkLWb¯mka_VaVKUIUw@kKmU@WK@UnmaULkU@wUalWV¹U@@WUI@WU@_@W@U@mU@WbbUK@Um@@UmbUwWWkk@WUa@anUUwlWUwUU@wlJVUnnV@@mnI@mK@U@wa@wUm@_mVUUaVUk_kċUkVWL@mlU@kn¥W@UwUWV@VÝU@lXLWVUbVLXlVIlknmU@VUJk@@@kVmwmVkxU@@XmVUb@xnKVLl@VxUxkIU`@bWVXX@JWL@bkb¤@bmUUU¯Kkmb@VVUVVn@@Vb@`lnxmblUnbk@xUmV@bmWbUV@VJIl@nVUbK@nn@VbnJVIlJVkXJ@X@lmx@bnnWVXJWXU@UlU@mk@@llb°xIUbnJ@VWbXVmI@JVX@bk@bWL@JUXUK@U@U`n@@Xm@XVW@@nX@@`ImxU@@JUI@KLmK@UÅUUV@VW@¯kUU@UamVUUmJ@nxmLKkmJkwkKm_mKXU@aU@b@Wk@ma@zUJVUmbUlU@xnXlWlXXblK¤V@@nUVVLkVl@Xb@VVKnXKVx@znW@X@@lVK@X@JXbWbnn@JUamLVVXIVxnK@aWUX@x@VnI@WlI@anVIVxkl@lbXXxVVVJVInbV@@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: ["@@lxUXVlXUVnlVĢJVbUXVJV@XUW¯VIUK@klW@Un@nl@V`XUVL@l@Vx@XXW`UnUbxUlVnUVlb@VnJUVVVInJlUVnwVklKnwLVJVV@nIV@nbVa@KVVVUUaKV_nVVJ@_VWnV@n¥lI@anl¥X_VKlwVlULUVVV@U@VXL@IUmn@VU@wmKXUWU@m²l@VIXWWkWUkWlkIVamUXamUnmWUU@@UnlK@XJl@kVUk@mWKXkl@@aVU@UVWUUVaIn`VUVLnw@U@K@U@w@UVmUU°K@UnV@bV@Xk@KVm@amkaU£VWUUmUUwm`UbULkaKXU@kVmU@aV_UWVIn@yXXK@klmVV_kWVUn@WUU@UmaU@wnwWanUmmXkam@UakLmK@bxUUUU@Km¥Va¯@kUaVUlmUU@mUUÇmUkUybbUaXUWWbÅLmL@VaL@WWXUKmmk@a@UUKXW¥kU@VUkxmVkUWbUJnVJ@nVJXzWxk@lVbUX@VVL@`mbUnUnVV¼k@Ulm@mwLb@lmLUK@UamWkK@£Ua@UkJkUmbVlkX@bWbUVnnUVl@bbVK@VX@lbV@nU¤x²Knblb@xVô@l@b@l@XWxnVl@VV@XLVlLUUXV`bXXmJU@@bm@UUkLW@UlUKWUUbwUmL@nklVVmVXXm@@bUKlÆnXkllVUVVL@nUbV@V@nnV@xUn¯U@JW@UX@xĉ@`m@@LV@b"], encodeOffsets: [ [113671, 26989] ] } }, { type: "Feature", id: "4305", properties: { name: "邵阳市", cp: [110.9619, 26.8121], childNum: 10 }, geometry: { type: "Polygon", coordinates: ["@@XIlJIVVK@n@VVVKnLVwVmnLVK@U@wJ@wVIÆ°X@ÜÈUÈxll@kn@VwVaXJWXn@@WVL@UUKVKV_U@@aVKx@UaV@lk@XylbUaV_Vnal@WU@aI@aV@@aVUl@XmUXWaXml@@kk@ma@V_UnUVUUWJUa@kkaWLUmk@@LUVWUkJWkK@¼UnWJIkV@b@JUIm@UlVm@Uw@a@kWXWKUknW@WUU@kmxUkVmIUJUUVmI@UkaUVUmVkwVaVmX_WW@Uw@@kUKWVU_k@mm@@VkX@lVLUJX°WVU@UIVWUaIUġmkVUkWUVWkwWXk`mI@¥kUVUUn±@mXkWknVUVmmU@@XVUk`@Xk@¥¯»mbĉó@mkU@kUKmX@UnmL@lULkKUWUU@bUaUn@Vb@l¦Ub@l@UKmnKUnlUVVbUVn@`Vn@xb@x@VL@nmJ@nU@mmUVkI@xVVVxkXVxmV@bbXVl@XlXVxna@Vn@@VVLaXaV@n@@V@X`V@@XVJ@XV@UºkXVb@xlVVKnbm@VXLV@nlL@VxJVULUb`lb°nXalKnx@lbmn@lbULVV°nV@z@Vl¼lb@VUV@bmLV`@nKlVnUXWVLnnlV@xVLU`VbV@"], encodeOffsets: [ [113535, 28322] ] } }, { type: "Feature", id: "4310", properties: { name: "郴州市", cp: [113.2361, 25.8673], childNum: 10 }, geometry: { type: "Polygon", coordinates: ["@@²zVaVlnVl@nVkJl_XJlIVmnL@mV@VXn@lV@XzV@lyV¯²U@UlJ@XVKnVVIXl@UVLV`@n@JI@mlIKVLnUlVUVVLXaKVLl@nb@WXV°KUnVVL@xVJL@b@LUVVVUVXbmbVbn@@lUbm@x@XVVV@@@bkImx@Vm@Xbb@l°XU¤aLmnL@bl@@VUX@VxnVanLnW¥XKVwnUWXmVIUWÆLVxLw@wVmlU@¥XWUkwlÇn_UwWV@VU°wnUy@aVkVlnL@lVnw@VlJ@bXx@bVKnb@U@WVUl@@Vnbl@XLlK@aVLVKnxÞn@aLlmUaVUm@ÅknUmaUKmVk@mkk@UlWUkVm@w@kUU@WU¯¥@wÇ@aVIlUV@kUWU@UUm»@k@mKVkUKUwaUaUa@kkUWJkImaU@UK@maUzk`@zy@XmJkL@UUJmUkV@z@kkVmK@¦UbWL@a@UbmKmwUKXkVUUkmVkw@UUKmL@WUIWaJW_k@@WmI@mk@WkWULUUVKUUVm@Ub@nUÇ@U@wV@Ua@aL@akl@kUJwó@@L@V@`@J@xnnmV@bkJmUó@nJWUUmU@UV@LkWlnnmVXbmxxV@nbVV@XVm@UVlXU`Ukn@lWLWzm@UJVXU`@bVUn@lWVLlbVKVan_VxnVVVUXV¤bnl@bUn@LWlU@@amU@V¯LVVUn@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: ["@@lUmkUwUyV@VW@¯VaVmUU@KVUVUVLnaWnkUÓV_@mVU@Ýw@ka@kVmUmK@IkaUamKkXWaUW@WUk@@KVU@aU@L@J@XÇVUKVak_mWkLWakVUbmLUUmlUVKUU@kUWW@UImJ@xkLkKm@@X@óÝ@UUk@UKVULKXkWWbkaIUWU@mUk@WLaUJġ@@XÈÆVIlVnz°aV@Um@X`@XWbkakJ@amLaU@V@L°@@bn`@@XWb@VVlUxmb@bUVmVUIXVWnJU@nnlVLV@JbWzk`m@UVK²VxkLVl@Vn@V°xVKVkVVlUblx@bUÆ@@nVnUllkx@VW@@VkLWxUL@bÝ@kKkVõV@bkXVVUV@VkUkVLkVa@@¯xUxmX@JVb°WXkK@Vm@kVbbn¤xUXkJblxnXÆK²l_@Wnan@UL@bJnIlV@lU@@¯ô@lWȂIVKVmU@aXaV@lwVXn@@K@UVKUUnUbn@lWXlJnULKV@l@²a@UlK@aV@naVXWV_nKlL@KUm@a°U°@VXL@a@wWmXal@k@VLnV@@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: ["@@@KL@wnK±nnm@WUkÜÈn@n»@mVamkmUl@VnmmU@wUan¯VKLnVWlInyWUI@WWk@KXUn@mnUmU@WmkV@kXaaVaUmIk@kaX@Um@UKWU@UkJWkXa@IVy@UmIUVU@UJU@WXWmU@VakaU@@Xm@Vm@wnwV@VLyV@VakUUa@wUUVmlI@KUVkUamJk@VU@UmVaan_@KmU@@anm@ImWX_WWUk¯@k@W_m`@bULUKUnUWWXkKWaVmnU@@b¯UUbV±K@UKUUVa¯UUmJUVIXmI@UU@WmVmkUV@b¯w@lmI@W@a@m¯LXbmJVLklWL@V@XXmbVVU@@VU²Ul@VlX@b`XxzUmkUVÒl@bXLWxXVl@VbkLma@nmVmULVbmVUb@lnzmbUÒVl@°nLVlJkn@bmJk_VmmkblxÈx@LUbxVb@Vn@JmLVU@nV@¦VbnJ@lVVbkxbm@UxVLV@n`UnVVVkl°zxVb@VU@@ÆlXnWm¦nbVK@XVVUVVl@XKUV@nVL@WnIWXLVKVLlxUbVKXVWbn@@UnKVLVbJU@aVU°b"], encodeOffsets: [ [112354, 30325] ] } }, { type: "Feature", id: "4304", properties: { name: "衡阳市", cp: [112.4121, 26.7902], childNum: 9 }, geometry: { type: "Polygon", coordinates: ["@@lV@XV@mXVlXLWX@l@bVxn@UVkn@VJ@I@alUJXIVm@»LXllIXVVU@Kl@VnXKlb@lVbXIVVUmVVU`@nbl@@lXLVVVKVbnXWJ@VXbWxXbUlVK¦nLVVUVVbbK@ULnK@Un@VxlUV`UnnL@VVL@JV@VUnxnKVbV@@VIVUnJUVUl@nWXllIUaKVbÞLV¼²`V@VIUwlaVmXa@IWanK@U@mkVVUVaX@lnaVLÈ@¥@kkJUWJUaXkaUmwVXJ@_lWUU@¥n_KkamUK@amKnKbV£¯W@kaWan@@UnwlJ@a@@UUU@Wwn@Va@km@UanaWaUVUUVU@K@aKUI@wKUUVm¯LWUX@mak@UKLWbUKVUkUmVUKLkJ@nJ@I@mU_UK@VWkUJmUUL@WkI@V±VU°kzU@Wy@kUm@UWU@@nmKUnkJWIk`IUlmk@mUUkUb±yUX@VUV@bk@WlXL@nVlUlk@WI@kLm@VV@XVmnnVWbnVUblJXkVlXXlWXUJk@±@nXVWVnL@xUVm@Vn@JWK@UV@UUVUVKUkkxULW`k¦m@bkJm¦U@mUX@`UImUU`LVbUVUU@LUbmaU@mJU@UUIKmxkLUl"], encodeOffsets: [ [114222, 27484] ] } }, { type: "Feature", id: "4306", properties: { name: "岳阳市", cp: [113.2361, 29.1357], childNum: 7 }, geometry: { type: "Polygon", coordinates: ["@@@wUklmUUmU@@UVm@wUaV_mmUKmwkIkJmUUnm@@UUbUKUmÛamm¯xVLkbÇÆUVUzkVUlUUKWLX¦W@VUUUaKUbmLKm@akU@amVaUUVIVWkk@wk@@xmLlmÅwmbVlXlÝIWVkK@kkVL@VWKU@Ublnam@b@bnW`@XUJk@UUWKk@UKnn@xmLUVm@kbVbVnV@Vb@KnVLWXÆVĢ¦VblnUJWz@ÆVóUVbkVaÅx@¦lVUbVVknWKk@wKVUÅl@zkb@`m_mJ@xXmbVb@llV@n@llbXLUXalUlalVnwnLVKlVbX@@IV@blJ@bVL@VVVUXȤVnkVÑXmlbnVKkÑÅ@UmaVç@±XUlIxlV@VaX¯lUVVUVJnV@°°n°Vxĸł°¦b²¦lJ@U@aUK@kUm@_m±VIXal@Kl@bV@KK@km@UmUUaK@_UJaXU@Xm_VmUk@WUk@kU@a@m@UaUUU@al@nyXXWWwkly@¯n@@bnV@k@mVIVlUUmlUJUwIbXVaUal@Kb@VKVkXVl@VkUU@ylUVVaVL"], encodeOffsets: [ [116888, 29526] ] } }, { type: "Feature", id: "4309", properties: { name: "益阳市", cp: [111.731, 28.3832], childNum: 5 }, geometry: { type: "Polygon", coordinates: ["@@ÆxXL@lV@ĢVIbXKl@nVV@XVJlbXalXWLVKUVLl@VV@ôÞ@@Wn@lLlK@wnIVJX@VX@lVVULVnkVVnKValUXblKnXl`UbVLÈU@W@IKV@@bUV@L@lXV@VXXblWnLVblb@JnLVUn@llb@x@ÞUV@nU`VÔmlXmbUKUVUV@LVVUnUb@°UX@UVzVxnlVkVnlVnaW@wnIn`@_la@ykÆVULxl@XLlmUUVakU@¥ÆwblUUaôVU@ÅXyVImkUaġ¥ÅUWXKmU@La@UmUUUalan@VUnK@wmmL@VlXLVVl@VI@WX_m@a¯mKUkwW¥UK@_UWWLUVkUWL@WUIkVU@JwkLUUmJVI@WkXm@VmkKUIU@mmm_@VUV@kJċwUU@KUWkkW@IWW@km@klwkWVkkUV¯m@kWLU`mIkmkXm@@`@L@xUKWkU@VL@JUU@mbUKVa¯WVnL@`lXUVkU@xW@UbUWVU@UJ@lnU@mnÈmVa@bULwUb@@VkxmUUUVK@IUmk@akm@wmIkK@bVWXkm@wULUmm@UVW@UbmbkKVnU@WlxVU@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@JlXXlV@LVVČxlI@VU@Un`nnV@VJlLUnn@lW@XUJnIVVlKx@IVlUVJ@XXKlVVUXKVX@`VLX¦lxVnL°an@bkmVaV@XL@UKlU@llLXUÞJWkUknaÆxnknK@w@l@xllUXUJVVUbn@blV@bnLnKVaLVbVVUX@W¥XKVLVVklUVyUVÈÅlaUK°wnnÜbnVVLaVV@n@VmnVlIlJna@Valkn@na@amwm@UXwK@aUUVUUaVawWK@kU@UaW@kKUU@kW¯XWan@kmmÅ@@I@U@KmLkaVUKkLWVUk@UVmU@am@kkk¥UVUKmaUb@UbI@aKkkWm@W¯K¯b@VmaULVxUXlVk@UxVJVbUb@xUL@ULWWLĕmxVVL@VbKUwaŲWwX@@WUWLU@VbkV@aU@@VUnmJ@VUn@VLUK@UmUIk@UÇmU@@UW@J@LbUmVI@aUmW@@bkXUx@lmLUbm@UbkJ@V@XmlUbkKm@ma@kUaVU@aUK@mImJUIkVUVUakbWwka@UWKkLUamKUXm`Å_UULmaU@@lUV@X"], encodeOffsets: [ [114582, 28694] ] } }, { type: "Feature", id: "4302", properties: { name: "株洲市", cp: [113.5327, 27.0319], childNum: 6 }, geometry: { type: "Polygon", coordinates: ["@@XUnwĖKXXVK@VK@wVaUaUIVwl@kUVWUwVKnb@U°a°LX@XnllL@bJVa@VanbVLUV@al@@UV¯ÅÇ@Ummkw@¯yVwnUVVVUkmWVnKVUa@WXkVKn@lUVUVVVXIlV°VnI@VlKnV@mwVm@LXKWkU¥wWw@k@mX@KX¯V@VUVa@VnKWkV@VUkm@aWa@wkUWwkmV£VÿXUVL@mVIXaò@nW@aU@@am@aUUUmXmWUk@nUW@_maVmwUkamaUL@awW@akI@UxUm@kmKUklU@bzVm¯xUVU@XVxm`kÈlxXVW@¦kVUn@xxKUwÅKVXUJWnXmVUxWL¦XmmKbmUUwW@UV@k@VLnlbLm`@¦VVkX@`WIUxVnlbWVbXIVlI@l¦Ç@UKmbkW@UbUVUl@n@VmLXb@JWbUnkbVxUJUxWXXlWL@V@V@XXJWxzUVVVVKnXW`@bkIUlnLVJUbUIWVXlWV@XklVbnn@xl"], encodeOffsets: [ [115774, 28587] ] } }, { type: "Feature", id: "4308", properties: { name: "张家界市", cp: [110.5115, 29.328], childNum: 3 }, geometry: { type: "Polygon", coordinates: ["@@@InWVw°w@@blUKlUlVU@VUUUlW@aöUlUlLÞ@@aVKXwlK@UX@@UlwkVkUm@m@ÅV@akwVaUkUUlUL¯w@UUm@UkKlw±UULVn@l_XyWwÅ@VUUmJUXU@@mmU@kxW@UaUIWbU@@mU@UxnUbmKkWJkUVal@aUkUxlW_@WUIU@bkKWUJVnUbbWblU@nl@XnVmV@nmWV@LXl@XJXVmzkJUXmKULm°Vb@xnVmnUk@VnnlUb@nm¼m@ÛÇVl@Xmnm²mL@xK@LUl@nULÆx@V@VXVWbXXl@nLlm@bVKXWL°bnU@VaVU@mVwJnwVK°zn@VVba@Ċ¼"], encodeOffsets: [ [113288, 30471] ] } }, { type: "Feature", id: "4313", properties: { name: "娄底市", cp: [111.6431, 27.7185], childNum: 5 }, geometry: { type: "Polygon", coordinates: ["@@lLnJ@xln@bnlV@JLVUVnVlw@U@VaxVK@abnUmÇnV@km@I@VUVVXVaX@@wlVVUkW@_mKXU°UbVLnaV@V@IUKV@XlVL@w@K@_n@lWlnnJV_XK@l°nU@WVU@kV@nbVKVl@nLlLXU@lmkw@nW@UKVa¯IVn@@aVUUKl@nXVKVn²aXblKnLlmVI@KUU@akLUaVaUXm@a@wVUVKnLnWlXln@@U@anUVm@UInm@IUK@UmKVmU_kVUwm@@VmLK@VLaUaVUUUmK¥ULkVWaXwWa@UXImWUaULUUWKk@WnXbWVWnk@UV@bU@@bJ@bV@XkmbUU`VbkaWz@klU@b@VwUL@bV@U`ULVL@VUK@Xm@XWWIUbUxm@@lkkÇwVÛÇW@¯ÅUJ@xIx@@VULmKUnUxmKULUUm@@ULUJkIWJ@b@LJUWkJWnUV@nnÜ_nJxU@VbnUxlkb@l@"], encodeOffsets: [ [113682, 28699] ] } }, { type: "Feature", id: "4303", properties: { name: "湘潭市", cp: [112.5439, 27.7075], childNum: 4 }, geometry: { type: "Polygon", coordinates: ["@@Æ`n_VWnLVblKXL@VlbXxlaVbUVlUVJnInJ@VL@bUVVb@lnbn@lLVank@W@UlIVan@VanK@kVwlW@aX@Vn@bUJVna@KIX@@VV@nVÈl@VJn@VVLK@UVm@UnIVm@UV@@blUUaV@XKV@XW@XxƱbVxLUa@UKWk@wmmUalk@WXUWkXUVJVaUImKVklJ@aX_mWULUUVUyXwWI@W@U@UXKWkXWVwU@±_U»ÝKUaLVbkJkWmXk@UVVmIUVJ@UU@UamLmwUVU@mnJ@VUnmV@b@Vm@kkWmXmKULUV@x@bWnVUbVblK@bVV@LUJknmKkLWa±bUmULmWk@VLUV@bm@U°JUbVLX@@mlxkn@WVKkmK@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@lUlVXXJVbnUKmxXV@bm@@XLÞܦXlVnmzVJ@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¦`@XUJU@KmXw¯KXkmy@aUIWJXXmV@K¯UU@@bVL@¤VLXbV@@JVXVK@JVn@bkKmakVVXUVVVlI@`U@nzVVb@¤n@@UlKXLVVI@V@nV@V@ÈUx@óVōkÅWó@mU@bk@Ýwk@WbXxm@@J@zV@kVbVnLWVUXWUXUWLU@Wl°z@VkxU@UVWIxWJkbĬ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°KnVaU°x²mlx@VanU@ak@akmV@@w@Ua@aUwVwUw@w@UK@£kaĉlóIÇVk±@@kUKmVkIkxW@Ua¯UUm@UVI@WVIJV@@Um@UanaU@mI@J@XV@XaVlkXVaUUWLUyVIXmWak@XkJókJUL@KWkk@ULU@WalUIkJmImkVbV@lV°kXUKWKULUmb@VUlVnb@VV@IVKUUmU@ak@@bmV@xklUU@UKmV@nJVbkXKUamLUJ¯UUVmIbVVLl`@LLU`m@kXUVU@VlxUK@xkIWbUKx@VkVVnb¯@@U@xkmbkLÇKb@@XnJ@LmVkl@@XlUVkxakVVb@bVnUbU@@xVUVb@nIĊ`XVVôJ_K@xlU²KlkU@VaVVÈm@kVUVmnamUUaVXIVJ@ç@¥nkVLn@@XVK@VUX@JVUV@UnVJVLUJVLUVlnIbKnU@m°VanI@anVKVLanlKblKÞk@¦@¤@VKnLVKLKVzlWLX@VmV@VbnU°@UalkWXLVUKWkUUW@£Wa"], encodeOffsets: [ [121005, 35213] ] } }, { type: "Feature", id: "3206", properties: { name: "南通市", cp: [121.1023, 32.1625], childNum: 7 }, geometry: { type: "Polygon", coordinates: ["@@VJ@bnzWl°LxnW@LVVI@W_V¥@VKVL@LXJI@nbly@aXXla@aVUnllLX@@UVKlb@@mXV`V@bĢlkČÇÆȘ¯wnĕVĉVÿUƒUĠŦğlXÑVǵ@±ōLʵĖ¯lÇbÝÞ¯xk@Çkķén¯@ğġƴǫ@kVVlUbL@xULÇóLUl¤@nkVV°VLkxVb@laUXUKWĖklVX@¤UUkb"], encodeOffsets: [ [123087, 33385] ] } }, { type: "Feature", id: "3208", properties: { name: "淮安市", cp: [118.927, 33.4039], childNum: 5 }, geometry: { type: "Polygon", coordinates: ["@@nźUôÒɴèl¦nĖVkbmX@xVlVL@xUb@bUJVnUxlKVLÈxmzXV@lW@XVb@bÈVxnbVIXa°LaÆVVaXUlK@aXIÆVlXKVUlIXalK@alwXLVK@¥Ý¯¯ÿ@mVk@aX@mīlaXIwXJVUV@lw@U¯ybUaUġUÅaUKVknaġm@kUm@wÆIV±nLÆwÇnUUk@ƅÝU¯JÝI¯¦Ul@b@@VVL@l@LLÅmL@b@UaVaUWmLUKV¹KLWKX¥WI@mXk@UmaUVUU@VmL@WbkIUWUmVóIkbmm@UbVLUxmJkU@bkJWbnXU`WzKUÞÈlVbLmx@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@xJ@X@blJXnW@@`XbWkV@UbVxXUxkV@LóxVbUVW²VJĸklUǬ@ĢƳĠ°@mƒī°»ÈÇ¥ULUU±a@bU@¯U@KnImUVWUkmXUVU@lIVaUUVWKUbUkWKU¥n£WakJUkULK¯LKkVIn@VaUVUUUkVk@U@amUkJ@UUlwX¥W@@UkVmk@JUakL@kk¯ÝmJUn@nmVXlmbVVkn@UJ@±WUxV¯a¯KōbżÇxUxUUlWL"], encodeOffsets: [ [122794, 31917] ] } }, { type: "Feature", id: "3213", properties: { name: "宿迁市", cp: [118.5535, 33.7775], childNum: 4 }, geometry: { type: "Polygon", coordinates: ["@@XbWnUJVzXKVVUbWklUWbU@@W@IJ@nVmbVbn@@V@UIUJ@XUJ@VVn°VVbX@lwlJnUVL@l²@lÈUôJĊklb@¤VL@@xVxUxVx@bVb@@xU@lnmnXmXLVmV@X@lxVnVJôLLXax@b@@KVL@bn@@m@@alLUUVaU¥nIV±I@mXI@aWWXU@LlUXWW_XWmaUwÇ@aaWUX@@kWUynÇwUKkLVwUmVI@aVa@wUKUk@wWnlaUmĕk¥ɳçóÑŹVmmzkVmm@a@Iók@@LWU@`WbXLWlkImJVn@`nXVbXmL@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`XnlKXXmKnLlab@xmbm@kL@V@Vl@@VUXJXmb@@°Æ@èÈzlW°XĢJlÈ`lInbWV_@m@UUķnôw°ÆmnaVVÛVmĸ»Ģw±Ý@@mUInyUmWkÛ¥ÝK@Wn@@aWUnwVLmUaWIUWVk@kkJUVWLUkÅWJ@bkLWVUbÅUb¯KWbUJWXX`WXkV@KWVXX@bWJ@nJU²mJV¦UbVVkK@b@@nm@@aUK@L@@awWbKóKUIUmkwW@U@UnWKnmWn@bl@bmVUb@kw±n¯wVUb"], encodeOffsets: [ [121253, 35264] ] } }, { type: "Feature", id: "3210", properties: { name: "扬州市", cp: [119.4653, 32.8162], childNum: 5 }, geometry: { type: "Polygon", coordinates: ["@@VUXblVVVb@xV@kzV@lwVLUbVV@VU@VbUblb@nkĶ°IÞV@ƆVlmVÈÅxmKU²ÅJ@xVn@lĢnmbUlVLÆbĢVVbVaXk@VXKVVWXVWXUmKUaWaU@¥@£XWUUV@@ynam_VWkUVUna@ÆV@mnkWmXkWUW@k@@akkllWUI@UnKl¥I@VVma@a@I@U@a@anK@UmK@ÅVUnJlkI@aVwka@mVIUW@UWL@WÅbmIULkaUWUxkLUKWlXL@VImÅVUmĉLUó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¯aUakKWU@XULXaV@@mUaVUUl@VmkaUXm@WUUna°IlmVmIUW@Uk@@aV@VVX@VI°»nmU@VKVan@m»UaU@U_@WlIUaaVaUala@¯n@kaUkUUWKU@mwkUUmmL@K@LmUUVKVÅImUJVkVVLèVLVU@WLV@nVÜULVUL@bW@XbWbkJUUVUxVXmVk@WUUkVmIV@nbnVWbJUkUULa@Jma@XkK@VVL@L@JLUVU@V¼nXlbm@kbUKmn@lVb@VXXVUV@b@LVbÆxXbl@@lV@UVV@XVK²VlI`UbVbUlVVn@WXn@@VUV@@KmbVLXÒLkKV@nX@VVUV@bnVllbmnbIWVXU@`lLlknVnmlLlbUmVInK°nUU@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ô@ÆXlŎôU@Vw@ÇUU@@m@UJUUWKkL@Vm@@£aUUmyV@@_kJUUVUUWlUnblL@aUmI@ULUW@IU@WaUK@£UK@aV@°V@LnUWWXIlaVV@£UWlkXĕVLVWb@kUalwUKU¯lU@mk£VôKÈVK@wKVaUkķlUI±ğ¥ÝUŹ¯ôm¦ĸ@XXK@VVXUJ@nlbUx@blJkmIUV@ÆnL@VmL@b@b@V@J@bnbU@UJk¦mL@VVJkXkll@b@@lXXVWlXnml@nÅU@mbUVlVUXn`mb@zU@VVWX@¤¦V@Xb"], encodeOffsets: [ [122592, 34015] ] } }, { type: "Feature", id: "3202", properties: { name: "无锡市", cp: [120.3442, 31.5527], childNum: 3 }, geometry: { type: "Polygon", coordinates: ["@@nLÒlxUVkLam@kVWUULUxVVVbUV@bVLUnnźÞVĠ¦XVUUaôw@KlUVwWUwVa@lUXWa@_X@WmkI@a@WI@w@KmKUUk@@aVUVVÅmJ_@W@a@I±wÛ@ƑÇkw±¯£mWĉUóçK¯VkUWK@XkV¯UWabmUaUUblln@b@xbXWX`@VxUblL@bn@Vb@`m@XbWnn@l¤n@xnVlUVLÆWkV@VbÞJ_nl@nKVU@aUU@mVk°WVLUV¯bVXbXlVn@VmL@xV@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: ["@@LnxUbVVL@xnnWnn@VVXn@yImx°La¥n@VkKVwW@nXVJ@b@UVn@UnUV@Lb@`VLklVÞnÆ@VaXLlÈJmmVUK@aVUUaUUVwVKXVlUn@blKVUkwÑmKUVUI@±UI@U@WmX@k@aU@wnK@UUmWkaWU°aVUUK¯XUl@nVV@bUVmLk@m`ÝIUaU@lÅXUKkVmU@wmk£m@XmWan@@_Uam@@akKVaUw@W_XWa@w@akmm@mL@UJmnUK@@XnJWLkKUb@VxkWLaWVUImVULUK@L@lkLVVVllbm@@°kbVbUbbVbkJ@XV`V@Vbn¼"], encodeOffsets: [ [122097, 32389] ] } }, { type: "Feature", id: "3211", properties: { name: "镇江市", cp: [119.4763, 31.9702], childNum: 4 }, geometry: { type: "Polygon", coordinates: ["@@VĊKnVÆUnJ@UWKXkVLlKVwXVlbVKnJÆaķn¥°óÇIkWKUbÅ@mUÝlkUK@_a@KVUVm@mVU@@aUIW@mXUxLUlm@¦bK¯nwJzm@UW@UmmXmm@wKUUVamwKm@UbUL@Vmn¯¼JUW@UUU@@bl@@VVXJnnUk¯JmbVVXn@VWlbUnk@VVUVb@nU@WbKWV@XVlLVb°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ÈlnKXkVlVL@lJnb¦VKVVnXW@w°@VUmlnUV`UbVUV@xnKVI°KXKVkVL@al@XaLVlULWVVVL@bx@VXVmb@x@VVV@nn¤lb°b°KXXWbX`lbXxz@x`VIVUnKLxWXLVKVbVLVU@wnW°b@nalXmXVJn@U²mKkVlU@@xlnaVmlKn@JVLlnVl@XXÆèVlUX@xVLXVb°W@wnUWmXk@KLVwUmUkUKUw@wVaVK@k@WnkUKWkwlmXL@KVUlLVKXmWUL@aL@malaVk@aaanX@VVUblbJnXaVwn£K@UWmUk@UaWIV@bJW@KmmU@aUUUkmKkVKlUUnKVUlVaV£Å¥WUUK@UkUUw@m@mIkUUWLK¯Uw°¯@wUKUbKm@kkKUL@UUKV¥U@manw@k@U@Wm@@U@WwkmwWaUU@UUmV¯kw@@kmkKkUW@UK@ÅV@XWWkXa@Ul@Va@KVaUUU@aXwla@UkVWaXk@K@lmkUmV@Vmbk@»XI¥VUkVUVU@anKVUKUalU@wX@@a@K@ÝwL@UnÇlUIkJmn@bVVb@VmnkLV¯U@±lIWm@kaUI@aÇU@K@KUIkbWbJUIUyX¯UbU@méUUmUkWKxWIkJm@V¥U_UJUwmVkUU@@knwm@UmkWJkL@n@VW@@U@knm@kUml@xÅx@@XUJlb@VXJVxn@lbV@lULnV@VlnV@bWV@bXL@lVLVbV@blLn@VlK@xln@bX@laLVbnKUVVbKlXVVkxV@nnVUblV@@z°WWkbIkWL@LUJ@bUI@b`@UmI@mkK¯XWmUV¯@UUVUUam@@VULWUJIm`IUJKUkW@UxnWbnnmlXbmIUVmV@Vnb@VLUKWLnÒVVV@VUL@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@nlIn@blVXKnk¼@VUKWL@bL@`UXU`@V¦XLĠ@lJ¦@nV@l°nn@mVXna@nbKn@lIV@VanJ@_lKVVnL@LK@Vn@VbUVanKlLnbnJVbnWVnVVanI@Vb@LbVKVanXVbVJVU@aXLllbôlƼXxVLVK@Xn@xnVVVmb@LnVVKVXV@@mnaVXUVnVK@_UaUmwnKV_anKVL»K@¯ÝU@U@kWlUnlknKVnaUkma@UIUwl»Åw@VwV@nn@ÈXlKVmna@kVw@anm@n_WWk@mUkUK@ImkLUnbkm@wV@klUnLV±m@UInWkWmb@¯amX@xUVUKUaULWKXwKmLUVUJ_@wyWwkaW_XaWW¯L¯akam£@mUU@U@wnaWU@Uw@aUKUXUVKUkKWbk@@bUKUlWL¯LUJmLwU@UVaVU_VkmnUV¯@@xXmWUUUL¥makI@UKUkWlLkmÇ@aUk@UKL@kmÇak@_VlkL@`lbnlLVanLnbmVÆln@kJlbknmKUbÝmmwULUK@bkLWKULUUma@Kk@UV@L@llbVzxUxnl@bVLm@IVJXVlLV`@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: ["@@@VI°`nm¤²@bVJUVVXUl@Vmb@xV@XbmVV@lkLmbn`VbnU@VaUnbVllUXVa@w°VW@_VWLnVlbLVbnlKnVK@IUW@_@am@ÑUólK@U@WU@VwU@UI@aUUaX@kwmJV@yX@kan@mkwVmmI@aUU@aUUW@kVkV@@anK»XVWnIVUl`@_W@wlUV@UWKnUbn°InJlUV@VnIbWn@VklL@l@Vn²m@U`kI@bWJnV@°VXnJmXVmx@VVL@bkLmWULUmU@bWXb@llnX@xkxVVnVV@¤nLnVxnJVXX@bn`VIb@blmlLnaV@blWXnlUnbl@KVanUVmm_XK@kWWnaU@UnaWUXaXamUkKmXUWLX¯WakKmnUWwXa@KW_aXWW_@WnIVl@XULnWVknK@ImyUUÆbXKÛ@W@IÆUnVÝlkVK@mUIVwkUVaUm@aVIVyXIaÈwmmk@UnanVUmÅaó»lwW@kkUVmUK@WKLUmWULkamKLk@Wa@wk@UU@U@mbUIWVKUXWmkUmVmU@LkakKw@w@U¯UUn¯l@bmn@xkJWxkL@VkI@mkmJUI@V@b@VVxnbWlkÈkVLbkKmVL@V@²nxWkLUL@xlKVxbXmVnWJ@Þ°@nxUKUw±`UImVmnU@kalm@akwU@UUJmxU@@U@kU@Um@@KnVm@kKmkU@@WUnkLWxkVUwmKmLkUbmKUbV@xUnkJ@n±UxVXUWJ@LUblUnm@W@nknUJUVm@kXllknVbÆKVVb¼V@Ul"], encodeOffsets: [ [119194, 29751] ] } }, { type: "Feature", id: "3604", properties: { name: "九江市", cp: [115.4224, 29.3774], childNum: 12 }, geometry: { type: "Polygon", coordinates: ["@@WUkVUkmaVUb@mVUam_nalK@kUnUWaU@@wna@UVkUWVUUI@a±n£m¯_JU@ĉ¦Ul@UVKmmLlm@ğ¹m`Uk¯@@UVK¯@UUK@amkmKkVVUa@UkUKUaL@VVXUJ@n@WUbnVb¯V@LÅlÝIJÅkÝm@UaWUU@UmUXmmwVUUKWUX±mUam@kWzUaVmÇw@aÅLmKXUWKkL@W¯IwVwlkUJ@Um@ÛÈWKUxWkaUU@KkLVl@UKUX±KUb@nVVUbUVmaUlUL@aUL@@nUlWzX`@V@lx²@Vlb@bVÞ@°nl@UxVL@lUbVV@n²xVUVmnUÞbaJ@IV°xnbl@nbÆ@VwnK@VnXlK°xnUlVXV@Vl@L@lk@W_XK@KkWxUL@JnVx@aX@VVUaIXlmL@bVVX@VbnKa²XVWk°a@UnV¤nbmLmW@XbmJUbVLaÞKL@K@U@aVKlbV@nXlJxV@VnVÈÞKôbźĕČmV@Ċ²xÆIV@Þ¦ĸ¼ÞVlVÞnxln°JkLXWVUVUVwnJVI@yn@lXlaXmWI@w»ma@UmK@akKkXmW@_kaWakKWk@@K@IWkUa"], encodeOffsets: [ [119487, 30319] ] } }, { type: "Feature", id: "3610", properties: { name: "抚州市", cp: [116.4441, 27.4933], childNum: 11 }, geometry: { type: "Polygon", coordinates: ["@@°V°UnÜ@n@lnLlV@bV°LlnLllVzVVXlVV@@L@xX@WlXm@UVL@V@n°kVmVUnKlaXxVbnlU@lVVnaVI@aX@VJ@V@bb@Vb@X@lUL@@VlIVm@wUVanLalVnKnLVxlUXwlKVm@k@Una@mWIXKWUÛVk@a@UVWn@@kl@@WXlW@_Um@UVK@aLnalInWV@@xnI@¥Km@kKmnk@mlI¤laXbVblknV@UKXVlUXa@@Unw@±mU@ak_±a@UJUIVKW_Xa@aWUK@mmUVa@IXa@UWmannlmX¯WKXwVUVw@XUlK@klJXa@kkmm@Uww@¯W¯kw@WmbULaUUU@mVUUWmkUbKmkkK@akU¯¥Ulm@akU@m@KVIVV@KUkUVUkaUWbmIkaVaUU@mWbb@bUlkbb@nK@bKXVWnULkKUV@LWKknlxXVLml@X@lULUb@xVxVLVlVnUxK@LWlXnmV@x¯XaWUUK@wVWUkÅçm`@mn@bUx@lmbUnkLÇWm@mU@Ux@Æxk¼VxVJ@nbVlmbUmLklmkVlX@VV@°Þ"], encodeOffsets: [ [118508, 28396] ] } }, { type: "Feature", id: "3609", properties: { name: "宜春市", cp: [115.0159, 28.3228], childNum: 10 }, geometry: { type: "Polygon", coordinates: ["@@@VlbnK@b@JLlUnx±ĀXxÆWX@l@V@@blJ@nX@xUbVVUbVV@bVmnmJ@bmbm@klUbLmb@lVb@xUX@bVVVbV¤@LVVbXlVwLXÜÇn@@VIlVkUxx°J@XlKXLVWnLÆK@bÈxUnVbylXn@VbnW²XVLVVUnxWnnV@VVVXVbn@ÞÆlIÞJÆk@K°UUamVa@UUU»@wV@VkkUKUVW£U@UmW@@aXkVUnVlKVVUUkVmU@kWaUanUVVamIX¥W@@aUaUVW@_mW@UnIVVn@VbVm@bVL@anKVUkWKUXVIkx@nabVKb@nVJ_V@VwVUVVXUlUUaV@X@VblabnKlkVaXa¯@m@UKVUn@WXkW@@w@KU@UWkUUUykkmKk¯KU@akUmK@k@mmÛ¯V¯U@L¼UKmLbU`mLxVnVb@`LmUVUUWmb@nU@UWULmU@KnaUUmUwmJ¯IUJWIkVkaWVUIUlWaUIUVkKmbUIÒlVUnn@VlLUJ@bUX¯@aWVUKUXKUbm@UwKWa@a@VkUWn@Uak@mbXWJXbm@mLaWVk@wL@WmanU@knwWmkaWLKWUXaU@¥lUVVVbnw¥nKV»@aUk@a@UJ@kmLma@mbUWnm@ULǺ@LXnmxUm@UbkbW@@akLmWk@UXmJmUkV@VUXVlULmKUxkL@lmXnJ@Xl°Vnb@bU@WbKUX@VmKUX"], encodeOffsets: [ [116652, 28666] ] } }, { type: "Feature", id: "3601", properties: { name: "南昌市", cp: [116.0046, 28.6633], childNum: 6 }, geometry: { type: "Polygon", coordinates: ["@@X@m@VIUW@UKVbLlV@VVbUlUnLnl@bVL@V°UL@V°@Vln_Ġºn@knKnLVU@VkĊ¥Vk@U»UaUÅLUalmkklWn@VUVIlm@mXn@VmkVa@KXIVUWVw²@m@U@VK@k@WUa@a@aU@IUW@@bUJmbUU@kkVmUaWwkbmLUVUnlWbUbklmLakbUaW@U@VbkVWVUUUVUx@U`UI@maULamb@lwJWUVXLlUVmL@bUK@aUnUam@UUmJ@VnX@`UXVVb@bX@W¦nJUbUmVVbXb@lVUnVlVUUkLmUUVWl@bX@VnV@X¤VUVLllUU@@x¼VV@V"], encodeOffsets: [ [118249, 29700] ] } }, { type: "Feature", id: "3602", properties: { name: "景德镇市", cp: [117.334, 29.3225], childNum: 3 }, geometry: { type: "Polygon", coordinates: ["@@VVX@VbmzxUlU@mbmL@V²xVbUVVblbX@VkVykValKVI@bn@n`lVWnX@lL@WKnVIVa@¯nK@alIXJVIVWUwn@nUnK@alI@a@anKm_aW@UWmIUwmmK@£UUmUUlwwW@km@kWaXaV@VnVKnXlK@aUK@UnwWUnmIUW@¯mUXI@alJV_n@m±@U@kkKUlm@XamJ@UVUkmI¯JmamVXL@VUkV@xX@`k_UVmJUXW¼mL@bU@UllX@VV@bVV@bnJUnlx@nmb@lW@zUnIlx@WbVV@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@UVWLXaV@@ama¯Uk@WmInW@klKVwnLVKUkVW@UlUnVnIVWl@nXlK@bX@laVan@VnwWm@KȹVK¯m@kmU@¥kIğ@WKU¥@V_VW@_K@aXKVL@Ul»mWLkU@amkJm@kmU@@a@UmakwU@Xl@VXk`UIW¼kWWX@@lxV¦XlW@Ubn@mUkL@UmJ¯UkUWVUaUlm@UXWlnUJ@LmLUnXll@bUVUUmVUn@¦xlnn@VÆÈU°kbVVxllnL@VnVVUl@VanL"], encodeOffsets: [ [116652, 28666] ] } }, { type: "Feature", id: "3606", properties: { name: "鹰潭市", cp: [117.0813, 28.2349], childNum: 3 }, geometry: { type: "Polygon", coordinates: ["@@@XV@nlL@lUnm@Ln@@VlV@@VV@nwVI@VVlx@bknlbV@nmnUVJ_²VxVLw@m¯@ÝXImnUWaUwkL@wVKlKXmw@±@UKnUlLaKlUlÇXkmaUw@U@a@UUkwUJ@zWJw@WbkVWUL@VmUklUaWakb£kJ@nmlnlL@nL@¦mJ@wU@mXkJmbK@bUL@VVn@`kXW@Xk@@lm@UX@V@blÜ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Å»ókakkWK@bUVUIUamWUbULa@KUa@mJUbmUXUmUamImakKmLUbVUam@@UL@KKmUUkL@`mIUb@U@V@bVl@b¼UmL¦mxUaUUVk@¦VWbXVLXKlbXnmx@lmVnb@XKxl@XUbnKn@WaXIWnal@Vb@XmlV@U@bXbLVxn@VaLVWVLXUb°@VW@aVIkK@UmVmkUÑ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@ó¤VX@@xܼƨ²xWxVV@XVbWXllaÞU°Ċ@ô¼LôÝWanV¥Ñnĉ°¥ÅX¥°¯@w°w@»°k£°mÈŹmÈbÆŎ¦K°z@kxl¦UbU¤klVKŤÞȰ@@bV@nVVUlÞ¦lUllVlU°ÑU¯V°wbXxl@V²@nô¼ó°kmVk²ĕw@wVÞÞ@@Ġö»¯@bnb°mÞ¯°V°ÈJmX¥mamUÅUlaU¯@wKkl±n@@wkÝVUUl±¯I¯bal@kLmakb@ġŹé°Þb°ékLmwXaÅb@bVlbVbÒVbUbUUanwakbVUVak¯ULmxV°UxnôŻX@JXklbkbĉabWU@kWUU¯@@klm@@Å@awWXlKkI@WbUaVIUanU@ĕ¯KmUnWUwm@£ċèkUmbUmm@@nkJUalwk@@nmWUan_óaWmnw±KIwl@UmI@an@@mlUÅmV_KUk@U`@_KUmU@U¯mmb¯@kbImV¯LkbKÛ@ÇnɱJóaÝĢkb@xÒÇll@²VÆUVVUÇ°XóxlV¯lV@bV@nx@¤@șŎnxV¼knJnKX°¦UlnVbUbÆVnÞWVX¦llb@l°VJôÒnLVbbX"], encodeOffsets: [ [131086, 44798] ] } }, { type: "Feature", id: "2202", properties: { name: "吉林市", cp: [126.8372, 43.6047], childNum: 6 }, geometry: { type: "Polygon", coordinates: ["@@ôlzaÈV°K@mLWlnVxUVÈ@ÝĬUÈnôLa²VmĀkV@ĠĊnU@bV@b@nl°UVnÞaôJ@bV¦mlkbmVXx¯@VxmnbbÈKV@bÈLwĠyônmnbÜ@nnVx@n²KJ@kal@nxÞULź±Vwkw¯LWWUkŎīVww°yVĕ°wÈVlkÛ»@wW@Uô£@nĶXwWaUamKóÑUI¯@kakkW¥XUmÝÅUVaUamVk¥W¯LmIlmU»mwȚō@£kJUÇk@am¯y¯UVwa@wġx¦K¯X°Ċ¯¦U°ċWULÅa±b¯@UkÅWmVkIUlóċ¹`óIlXWXxmbULÝbƧ@x¯bÈl@x¯zaݤ@nmVWb²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ÛÅÇéĉamKōÇ@IôġVȁÑŹçÝUƧċĉwóóÝ@Ƒ»ğL¯ll²@ƆÅV@¦mÅb@nmlU²VxlUn@VbnWbÇbkÒn@èlnlUÒ°Lx@¼ĉb@ÒUċxÅènLVxÒbÅJ±a@_ÅJÅnVbKlnUÜĊ@UxXVÆnmVJÞ¯VĠwXw°xWLxKV¦ôUwVÝǬóÞÞ¼ÞkVôȘxÞUlVn¦ÞĊa°wb°@bÆwlŤL²`z°@V@@nJVnl@@¥nUmmn@mwnmmUnk@mlwUaLnwn¯°anWakIÇmXwÆamUXUlJXaUUklKUknmÞ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Þ`Wb@n°abKnVw°`_X`W¦ĊIkmVakwKx°UÞbU@ll@°¦VWaÞbxÞI@mVI@VkÅUWK¥nLa@@È@°Æ@nU@KÞalkUwVékUWwkUVkkJk¯@»ókV¯ÆÇI@bĉô¯@ķw¯nmmÅL¯wVUÞy@UówÇLkmm@@UóxkkĉmL¯wVwkWWXmLõm@kűV_ô»ÛƯ@VaVaĠVlmğwķUóÝƽ£ÇJkbǫaƽLW@nxݤkzy¯XɅm@VôÇX¯Ė¯ºÝnUnLVlUÔ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°IllUlVXxlVUêVxkllnÈUVll@Vx²IÞ¤VUlVnIôlÞlwô_bVaĶLXÅÞÇ@K¯@wÛaçn¥¯WXyW¯XwUmmÛ@manómğzxÇK@aUÇLamanUw°@WwnUalnk¥U@aóIÝbUm¯Vmk@@aU@amVğĉ@lUnÿ±UbóKmVÇÞī@ÇVUUwmXkKn@L¯ÇUbyókōè@bn@lÝX@x¯ô@ÆUV_maXm@aóJWxnX@VVnĖVnUJ@nōÆǼV¼kxLklÝw@xx@zV`ÅbmxU±xUnnmknğUbUUb@Å°Üó¼U`Ʋ@lönKnXWlXUx°xnKĊllôw@Vn@lnÈKôx@VÝzV"], encodeOffsets: [ [128262, 45940] ] } }, { type: "Feature", id: "2206", properties: { name: "白山市", cp: [127.2217, 42.0941], childNum: 5 }, geometry: { type: "Polygon", coordinates: ["@@Ul¦kÒÆ°IlÒU¤ôz¼lJUnÆXVl°@²aÆbVKČXV¯°¥¯ĉ°WL¥Ģw@xbUx°V°znb@ÈlVlI@w@mU@akU°kUôwWȯVUVUűU@kÈkÑw@laÞġUÞ£@ƅKnÑĢ¯@WaUaVUVkkw@a¯@¯ÝVXnW@@WkXmK@xkKUb@bW@Uw¯mmb@WKUbmUbUaWbJĉIVW@Il±LkmUbUm@nkKWa¯n@`UbmaĉL@bÆ@W`L@n¯Xb@kb@xL@VkL±mlUIU¥mL@lÅx@_la@UaV@kmmK£LmKUnÅKVbmXVlèĉUUbmlĢŤIl¯bǦl@ô¼Ģ@x°l¤nal@xb"], 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ŤJnݤkVÞVVkÈb°y@wkÇ°awƨ@aÞKVnaWwXWkôJ_ČºôVk»óyV£kÑJůlÑk¥Va@wkbmk£¯@wġó»@kÈ¥°akJÆ£ġnkVaĊVkçWUnUaÆLVmnLKU±@m@a¯UbmV¯m@_KUaÅWó¹@UanmWak@@wmI@y@mkJVa@UaIkJ@n@Um±kkxmIkbÇm@°bXnV@°ÈmlÞ¼¯XVº¯LmkWWXLmVVlkn@@lnWÆVxbmnm¯lÝaVÈè@¼VbÆ°ÞUVJkxIxIV¤ÒXxmn"], encodeOffsets: [ [128273, 43330] ] } }, { type: "Feature", id: "2203", properties: { name: "四平市", cp: [124.541, 43.4894], childNum: 5 }, geometry: { type: "Polygon", coordinates: ["@@Ɇn°WzlyÞ£mwX@ƾKǬblaÈIƾ¤ôÞĸVĠxnmmV²wVnwÆaU_@yw@wÞxlkKlwU»È»ŎÅ@mVIUmmĕUU@mWXwIô@bWnnbU`V@Å°ó@wÞW@km@aŎç@m°Ñ°Inm±aXaUn@mƑU¦@ǯaU£aUġ¦ÅÒJōUŻókUÇ@¥¯ak¯mUVak@@aċçÅaUm¦Ý`XbÆ@n`IxĊÞōÞml@Ub@Wl_¯JkÇUÝÆÅb@nllUb¯±a@WĉJġĀ¯Unóm¤xôaVnxôI@xV@bmÆ@lnLmÞ¯ÞxVb¯þ"], encodeOffsets: [ [126293, 45124] ] } }, { type: "Feature", id: "2204", properties: { name: "辽源市", cp: [125.343, 42.7643], childNum: 3 }, geometry: { type: "Polygon", coordinates: ["@@żôŎVIÆÑĢ¥VbV¤°bÈ@V¥ƒÞ£lÇUUUÝlÞ£mţIlUa@¥nlW¯L¯kÇġ¯ğwWmÅk¯UVUbWlXlmnbUx¯xVVknlUbVÇKUb@VnbmlnzUº±bmJUbWÈ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@awnbl@XLa@Ċ¥@LULnJ@xVnmV@VXXV@VJkn@VÜKXXôJlbxl@IVbnJVLUbnlnVwJVU@XUaUUlwn@°nVKnV°_VJwl@nwlVIXWlIVVnK@IWmkIVaVU@WÈUlmU@UWUalkXġŻ@kI»mmakUmĉUŁV»²ġVĕ@aUU؍IɃ`ȃ@kw@Umwĉ@WķÑIĉÇbÝLkymbIwÇmÛbmbU¯ÜõÈkÆVbŎxnXVÆnǪ¦b¤UxÝnĉÒmĊVȤÈbƼĀÆÆÞźbVVbX°²¤"], encodeOffsets: [ [124786, 41102] ] } }, { type: "Feature", id: "2113", properties: { name: "朝阳市", cp: [120.0696, 41.4899], childNum: 6 }, geometry: { type: "Polygon", coordinates: ["@@na@UVI@mÑWkaV¥UI@wl@aÈbm@wVak@@K@k@a@UUmUUalmU@KÇUű¯@±kUKVkUaaU@¥m@@¯k@WLUmkn@mmIkm@amU@wVmkU@Klk@UmaXIWWULaULVbmk@UUmUk±_Uym@mbkImaX¯WWxWKzU@WkJWwkV@Um@UbVVVVXb@VWX@W@Vkb@VnUK±aUUlwXÇWKknU@mmUkLUVVUUVUawbkKmwnIkJ@nmb`kmVkLWwUm@UUUK@UmaUa@UUaWK@mU¯Wkk¯VmUUxVXUVmL¯ymXkWUbmXUKVknWx¯JVnkLl@VVxnxlĀVL²WlXl@bÝVUn@bnlÜaXblIVl@@Ȧ@VmbXV@@xVVnUn@`°@VnXU@K@VV@VmbnVn@ln@bx°Ub@bLV`ÅnW@@lUnnWVU@Vbkl@Xl`XxVUblkX@°¦VUVVbUlkV@UbVbkLUxmJkX@bbxVKÆlXXbnnala@Uk@UVVklKVUXKVU°KVan@VUnLKVLWVaU_@mmUXa@mwXwVkVWXkk@k@klm@wXKl@U@KVUUUVaUV@alLxUx@b°°VnnVxlIXJmxLUVlV@bnX@VbaVx@XJ@bn@VVXÈl@llX@lUVô°°@ÞVbn@Vk@VW"], encodeOffsets: [ [123919, 43262] ] } }, { type: "Feature", id: "2106", properties: { name: "丹东市", cp: [124.541, 40.4242], childNum: 4 }, geometry: { type: "Polygon", coordinates: ["@@lzXJU@²x@@V@bUVmKUn°n@lnVKnV@n@VlV°WbXn@VzJ@¦@bkbbUl@bkbJ¯zWULWbklVnb¦VJ@K°Ukl@@WbVn°@Vm²UnX`UÜLXmVXlKVbUVVnUbnX@VUL@lUbWx@²kl`n@Vlb@nUVWVLVU@aV@²bl@ÈmxWXVÈUJVl@laWnXKÈkÈ@Va°bÆm@XV°IVV°UnalVUn@UwVU@@VVJI@bl@XK@wWmXUUVbkJVXnJVI@mknwlKXL@`l@VI@UUaVKÞnaVm@aÇ£XWU@aÇUU@mbkKm£@WWL@@Kk@klUbWKUkUU¯UõÛmUUaVUU@WU_W@kVkJ_WKkV@bUL¯¯±mk¯ġğÑ@UmwKUaka@am¥ÝIUWmk@wmţLKʝbȗKWĢklVbX@VVknÇV@XUVUblJXn@J"], encodeOffsets: [ [126372, 40967] ] } }, { type: "Feature", id: "2112", properties: { name: "铁岭市", cp: [124.2773, 42.7423], childNum: 7 }, geometry: { type: "Polygon", coordinates: ["@@XJm@¯mXUlnVbUJU@bV@UJWL@VXLmJVbkXlJXxVL@b@V@n@b@`Vbk@lxknV@VVV@bUL@bV@@bVK@VXLWLXJ@LV@nbWJ@IUVx@LVJUXVxVx@VV@@LXJWL@VU@@L@VnL@bVVmVX@@VVInJmbnLWVnVULVVU@VVmX@@JVzl@nVVKVXÞ@mk_lmUUWV_nJlUÞÑÞVVUVVLUVJ@IVna@@KV@XwWknwnKlalUwaĉÝwJl_@aUaKUUU@WU@WXUÆ@@UVK@n@UnVVblK@bllb@bbW@Xbl@UlnLl°°b¦nKlVnIV@UWU@WXkw@am@nm@aVw@I@KUaVIm±XÑlknJVnVJaX_VaUaVKmwnkmmn@lU@U@mnaXlKUmUIVmklaUK@UlUVUW@UkVma@UUU@JmUU@@bmbKWV¯XUKm@ka@UVKVk@aUKmLkKUUÝUmbXbÇJ@k@WU_@m@klm@UXKVaUI@KWUXaÇWkaWUkWUL±U@lUU@UJI@V¯JmIm@@aU@Uwa@UV@VkIV¯aUkWkb@bVL@@VVVUXW@Ua@@bÝbUVÝ@LmUkVUbVllLUV@LXWbUXm@U`@kxlnnJlbnIllLXlVlUXmVKnV@L"], encodeOffsets: [ [126720, 43572] ] } }, { type: "Feature", id: "2101", properties: { name: "沈阳市", cp: [123.1238, 42.1216], childNum: 5 }, geometry: { type: "Polygon", coordinates: ["@@ȚĊÜ°bLlÞxUbUn±@ÈnVÆL@xnLlUVbxkImJkn@V±LUxkV@bbKVKnzVl@L°@VaxÞUlbôxVV@@V±bn@llXLöXĶnal@nkVJVI@aU@@aVK@aUUUU@lmkwl@Ua@_@a@m@U@aUKWwkIlWUanIWK@UXKVIU@@aVVIUamVknW°n@WI@KUmULWnkVkUWKkkmJkamIkmlw@V_n@VWXaW@KVUkKUkValUnVK@ÞVUÞa@a@VbX@VWUU@U@UK@ala@IkKmUUa@U@VkkWVwU_@KÜUXbl@V¥XUVmXakÅlUUkIm`UIUJW@UIKmkm@UUJImmU@VUXU`mIUbUK@LJUUl@X@UbJkU@nm@Uam@@aUmLKwmWXUK@kUaÇa@JUIUa@aKVUUXmUy_@lmbkLUKWLX`n@bVL@JXLWX@Vnb@Vm@UbnVmL@V@x@LUbVV@V@LUVl@mb¯U@xU@UVVV@X@VVblJ@bnVKUnx@llnL±¤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°bUlJ@UVU@bVxV@@bn@nJ°I@UJIVV@V@k²VVKlXXVblÈXWbXV@LVJUbWL@Vkn@l@nV`@X@lÈIWanaÞVVVlLnKVL@bUlUL@Vlbn@VL°WXULna@aV@nV@IVV@VbUnl@VXnKVa@UUnyWkXaaVk@aabnm@_WKXmWanU@alaUl@XJVLVxX@wnKnVlw@V_@a¯¥@UkKWUaUUanK@IaU@WUaVw@klUVyUUVUUÇ@Iôba@mnUma@kXa@UWak@Wal@a@WULmU@U`mIUU`mUk@@UUK±nkJbUam@kwm@@a@UU@Ua@@K@VK@kmKU_UKUUaĉWmkkL@`LnmlkLkbmK@k@Ulmb@b@xUVIUlmVXXxm@JUUk@WUk@akx±@¯x¯UmbKUUVmUU¯UmVVnWkÆlWbUnWVU¦k@WaÛV@LV`UxXllU@@VVbnVlL@J"], encodeOffsets: [ [126754, 42992] ] } }, { type: "Feature", id: "2114", properties: { name: "葫芦岛市", cp: [120.1575, 40.578], childNum: 4 }, geometry: { type: "Polygon", coordinates: ["@@ll°XnV@XLVb@VVbnb@VLVV@VVnXxlKnUl_na@mlImJnxlLaxVbUVVUVUKVlnnV@lmXLÈWkxVV²bVLm@Ula@UX@XW@UWaUUUUVan@V@lUXxlIXV@yXLwXXW°nblJnan@Vz`l²nVVVl@nUaVKbVKnXVaUaVUynXK@kVK@X@m@mLXaLWU¯w@a@UVw¥°ó¯¯y¯Uǯ»w¯Im¯ÇUUl¯»ţKċÑţķm¯w@mU_ómk¼VnU`±IkbVlnnU¼±Lk`@XWl¦UbmVUxkXVlkbllUVb@bkVmx@XVV@Jb±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°lVlnXVJLlVnl@zÆxnK@bblKVLn@@VaVLVK@L@Vl@XVVInVVKVwlUXwlKLVVb@aV@XlUXbVW@nlWnXKV@@V@XUVVLUVV@@bVVV@@ln@VbVUXVIxVanJ@UIVWL@UV@@¤V@nInwWklnIVxlnzUVÇJ¦VVÜLĸUnW@aV_WĊXXaKnkl@nmLa@alUVw²K@UlmnIlJwaVUkmK@wÅKmU@DzVmVaÝwkKaÛ¯șĉķ¥ğ¥@kUWkƏīÝ@@akUK@KWIUm¯nU¯JmwUVmIkJÇLm@UImJUU@aW@U@@nUbJabXVWn@UVmX@V@b@l@L@lUb@xnÇabk@@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@@¦VbVbUlVL²l°@ƲÈV@LVknVbVVnnWVU@XmWUabIVa@mV@X@@bVVnIVJ@nÈKlInJVUnx°IV°mVnXJ@LLlV@b@ÞƐĬXllV@Ġ¦ĸ¦naWW@In@manK@UVkXJ@alk@»lU@ÅLUWl_@a²£Kkm@kwVmULm@akIUa@U@WUUVUaÝ@ğwkmĉ£UW@@bÇL@ma@_mKlXUwKLţÓ@UWw@K@UI@mU@UV¥@°UnJ°@@_KUwW@UnaWUmmI@mķwUaÇLóVĵwÝUUW¯¦Ux@Vb@xV°XKWbK@n@nW@UL@lWLmzUVVbUbmWXXWJbn@Vkl@LlVUn@xnV@bln"], encodeOffsets: [ [123694, 42391] ] } }, { type: "Feature", id: "2103", properties: { name: "鞍山市", cp: [123.0798, 40.6055], childNum: 4 }, geometry: { type: "Polygon", coordinates: ["@@lxĠÞ@bV@@w°Vna@UkV@K@UUUVa@K@w@UnKmUVan@@Uma@UXWWK@IUK@amW_XKVLlKna@kmKVak@VU@VmU@anIÆan@aUVnb@blLV`ÞLlUbnaKn@naVU@¥°IVK@anUUKVaUVak@mJkXUVwkVUUa°U@W@WlkXWlIXUlJlaxIVVXLll@nLV@lLXlKĊz¥maUlkXaVKX°yIla@aVkala@a@¥IUy@WmXa¯kU@U@mmUULkmm@¯VmnLVU@a@U@±w@VWIkymLUUkJWXJkUmxk@xUI¯`mUULm¯m@kxVVbWV@UVIUx@bkVVVxUbVV@V@zJVXUlnk@@lkLlLUU±Jkm@UIUVLUVU@K@UnnV@l@LlaUJ@zn`@nWlIUVUUUV±Ln@nmL@VUVkLVlUxVLVlÅXma@@akLmWUX@JUnVJVkXJ@X@`WXVUVUIlbW@bVUVL@`Un@¦U`@bUV@z@Jm@@XV`LUL¯J@IVKmKÅI@JnWVnLnVxV¤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@VnlnVVUb@VJ@nnJ@bmXUx@xVbkbkWLUxnl@Ul@xWx@nUV@¼UllknkK@bmbnlLVJX@VIVJn_lJVVXUmnU°VVVUnVVLna°V°w²@lwbl@XVl@VVIn@wWWnUVkJVUw@@anaVk@@lnLlalKnkmK@_lKnlĊXVbVVLV`nL@lUL@@L@VbV@@V@bn@lxn@VbalI²mVL@Vl@nV_VVnJV_@nVKV@X@bkXbl@XblylUUk@Xa@UVIlK@UUWVULlm@UUUnKWU@K@UXmXVa@U°KVUUWUk@aUVKkaWkKUknaWa@U@m@mk@aUJk@@_WKkLmxl@nUJmIUWlIUaVWVXn@xWLk@@aJUI@U@UVVxm@UVkmb¯VUU¯JWU@Ån¯aUbÇ@ÇlLmWXkbk@UIÇVUXWwÇnk@±aU@@bUVUKUXmV@kaUm@k_±l@XwVa@kVK@UWmVaUmVUUakLUWWnÛKVW_m±VnU¯@Uma@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ô@xXbwnKl@nX@VUVKmL@VU@UxÝ@VlbxU@VUb@bk`IUlVUnV@@UV@@JnXlK@b@nbÆWUkUKVwUklKVU@UnK@mm²KVUVVVUJXk@mm_@yVIbk@K@kmUm@VLV@VUKVUVJn@l²IVVKklK@kl@kmVUWI@y@UUUVawUUUl@akmmVaUKmIUaJk@wkaóIWWÛL@UlmUIU@WW@UnUUm@wmIVK@Kĉ¦@bWKk@max@bWXkamK@mVkKmxÛaWX@xUlÝnJ"], encodeOffsets: [ [124786, 41102] ] } }, { type: "Feature", id: "2110", properties: { name: "辽阳市", cp: [123.4094, 41.1383], childNum: 5 }, geometry: { type: "Polygon", coordinates: ["@@`VzWnVUVL@bVbVJ@IÈbVb@lVLXWnxLnKVb@n@Vbn@mV@lIVa@@WkVVI@KVLVanJV_VWUV@nnJVIVn@na@alLlmkVk@»VU@mXwwk@@VmkVwXKllaUa@wVwnW@amI@mUI@VaUUkmm@UkaL@UIĉyLWkkKU@mKk@kWKUUJwkbkIWVkJWXkl@X@X¯VVbUVlUxVWlnI@lUbVUbVLmV@bUL¯J@¦UVmbm@LmbakVÝKU_kK@amaVUbm@ÅbmJ@bVUn@UVl@UbnL"], encodeOffsets: [ [125562, 42194] ] } }, { type: "Feature", id: "2111", properties: { name: "盘锦市", cp: [121.9482, 41.0449], childNum: 3 }, geometry: { type: "Polygon", coordinates: ["@@Vbĸx@nnJVnXmb@VXVxL@`¯@mI¯V@U¦@VV@nJ@V@LXx@VŤÔKLVxWknL@`b@nÈK@a@VXĊ¤nVK@aVU@UnU@ayU£UwmmKXUm@IÆJnLUL@J°IVKKU_@Wn@@I@yVU@aV_@¥Vm@_UKUV@aXkaVJVUUXW@_@WWIUlUIVm@IVW@IU@@VU@mUVVkJ_l@aVa@UVwka@UÞVwV@@UnKLVU@UmWk@mLxWa@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@Łkklô@£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ÒÈɆôƐŰǀĊ°ÆǬĮƾbyĊ@ĠƒXǀċm»ôw°Ûk¥Çm¯çkkÇǫţǕéX_ĶWǖīŎaÆĵĸĊ@ȚȘĊLĢĉVÆĉʊÇĕóaU¥ĉ°mkÅ°ġUĠřk°mÑČÿÛƒWĸ£ʠÆxÈÞŎÞ»ʈ²ĊÇČalÒ°Ť±ĸzĊKȲm¤Ŏ@Ò°¼nyȂUźīǖƳÈē°@ÝĶ@Èkl¥ÇçkxkJXÇ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£ÇbyVÅČÇV»ÝU¯KĉýǕċţnġ¯»ÇōUm»ğÑwƏbċÇÅċwˋÈÛÿʉÑ°Łkw@óÇ»ĉw¥VÑŹUmW»ğğljVÿŤÅźī@ř¯ğnõƐ@ÞÅnŁVljóJwĊÑkĕÝw¯nk¥ŏaó¦ĉV¦Å`ğÑÑÝ@mwn¯m±@óƒÛKˍƏǓ±UÝa¯lōșkèĬÞn@ŤġŰk°ċx@ĉ`Ƨĕ°@ţÒĉwmĉ@na¥ķ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ôbkV@ôlbnĊyÈzVôab@ĸÞUl°yǬ²Ǭm°k±lbn°@È»JXVŎÑÆJ@kLÆl²Ġ²ʊůĊġřóƛÞÅ@mmLUÿóĉƧ@»L@`ČĸmȗÑţů±ĉğl¯ĀwÇçƧŤÛI@±ÜĉǓçō°UwôǫůķƳűbÅ£ÓÇwnÑó@ȁƽ@ÇƧĢón»ŏĕóĊ¯bÅVȯÅImōKULǓ±Ý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Åķ¥ˋVbUÒġ»ÅxğLƧbWĖÅx¦U°ÝVóŰlô²@¥ÜÞÛôV@²±`¦¯Ý@ÅVÒō¼ô¤V²ŹĬÇĊƑţxç¯Lk»ʟlƽýmłÝÆƏ@mö°Ġ@ŚŹĬţÆUĀĠNJĠX¼nźVUÒ¦Ċxȼ@ôlx¯łʊÒÜĀˌÇČxÆČÈƐaxÒĠn¼ŎVȼĢ°ŤmǖČĊþLV°ÞU¼ċÈUÆzÈa¤ôbknXĀè"], 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ĉzmkaóU@laóķ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ĉVwXĠÝ°Čÿĸ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»ôÇÑ°a@ŹkġKţóbŹ¦ƽȂóW¤¯bĬ̻ŎW°ÅÈl¼ţ¤ĉI°ōÒ@¼±¦Å@Uġ¦ʟƽ¼ÞĢÒm¤êō°¦Èþlk¼ĊŰ°JĢńȁĬ°żnÇbVݼ@¼óĸţ¤@°Ånl"], 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Ý»ÅVlÅôÑġğVmÞnnWçkWÜXƝÆwU»Șĕ£ĉÑğ±±ÅkK@lÅIōÒUWIǼ¯@mka²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īѯmwk¯Ç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@VLaÞbn@@l@bUVlUVzVx¤kÞVèXn@nm°a@UÑ@VXnV@VaUVKUUU@@U@@KVa@U²@wXkWnk±lLnU@UmmVKnIVWnI@UK@UK@@UVKXkmWLWUXmlkVwUyVa@ww@aVIK@aVÈwKlLVV@LnVVVnUܲ°WÈIUÆ@nÞ¼@¦@UÞUVW@UxUxVnbKb¯ÞU`VbǬV@XXÆVVl°InmnUô°¯anam£WVXKXmkôaVU@Vak@@wman@K@UÛUWKXUÇ@UIb@alW@akLUKV@@Ukw±InL@kmwkWmk@JUIůVmnnU@m@UKVKlkUwknVUKmbkI±KkmVkKb@U@aVkUmn`kIlaUK@UUKmbUIÝUa@mUa@am@UUULUK@bmKkbWI@WXwlkXWa@k@kKLVkkK@L@JUVmzUKlwUUnW£XVlKUwVU@aXI@aWaUw@W@_nam@¯UkWVkUWaU@nwmJkUVkWVUmUkJ@ImbUa@@WÅ_mJknmak@@mXaUV@xU@@VUnkV@Vn@`ULUbWLXVW@kbUJ@XW`@nÅĖWJ@m°@xxbnUaw²lÞ°xŤIVVULÛWbbkVVXÆ`UbVL@kx°LlV@VWbJn@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¯UVKk£@amIXa@UkU¯Klw@UKVaÅ_UWlUaXaÜVKUUţJ¯wݱkxVbmaw@wn¯@XIÆĕm@X_@WVIlaX@WUXKVaVK@_Um@lUVm@U@Vw@VUÛwm@@W@ImKUkU@UaaX@wWaUKkw@UVaUamLUnk@»±`¯@kW@UaykbI@VWJkLWUkJwU@n¤mL¯wm@Um²XVWbnV@bmxVkxUblLUV@kVWKU¼kU@mn@JnV@bUnmJUn@k@XlxLVVnKlLVV@@LkKULVbk`WL@lkXW@kV@UÞUlÇXlkaUbmV¯@@L@V@bkb@xlWbbW@±@UJ@IU@mVkVxV@@lIlln@Vm@VUbl@JLmKÛXmVkUKULU`@LĉwKUXlVUl@VbJX¦̼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@UJlazVbX@l°@²_@¼mlVnKVbUb@VlxVLXb@xWbVbV@VlnL@J@Xn@ÜxbW@nl@nblmnIÆ`@X@Vbna@aVUUWVk@kbWakbU@VwW@_l@nmn@@alVlk@UkmVak@@aUXaL@¯@KVa@axWI@KnkVaVJn_lJ@X@m@nVanUVb@mXLlJVWnLlaVVaVX@KXVVkVKlknKVa@aVU@KXb@klJUknUm@K@_UW@alIUamaU¯kJma@IUK@U@@UW@@aXLVVJVaXIKlaUkUV@ambUUJkIWJ@wUIV@JU@UwV@@Um@nU`@UkUmVUxWUUV@aÅb@aWXkKUUUUaWK@wnm@IVU@aXwm@UmVaUalk@anKUwlUwlkK@wmaUkmmIk@VmkUUbW@UVUnW@kV@xkVmbVnU@UbUV@ak@kkW@kLW¤@nV@VU@W_UVUU`VLUV@IUVõVULU@UUUJ@wmkUJ@WI@l@bkKkbVVbVbUL@UUJ@Vm@@L@xbVVVLVlVwX@Vb@bmUkbk@@JWIUVÅw@Km@UkWKXxWLÅ@UVUnWK@xkVW@KULwWVXVWzXVVKVXkVV@VUbV@UVV@@LXxVL@VbLnKVLVxXVmb@l"], ["@@@J@aU@LWK¯UUxVVn@ĠLUW@UbUUUa@KUX"] ], encodeOffsets: [ [ [108023, 37052] ], [ [108541, 36299] ] ] } }, { type: "Feature", id: "6401", properties: { name: "银川市", cp: [106.3586, 38.1775], childNum: 4 }, geometry: { type: "Polygon", coordinates: ["@@UwVK@UVWÞUbwV@knV@@KU_VK@Kn@W_XWlL@Vn@Ċw@Ula@Wanamī@a»ŋó@aÆÅɲÿUaV_°ÝaLaUmVwVwX@VUVÝ@@¥Ý»@mVÅÇJ¯XÛ±VUmUmU@KUUkKLÇxU@bLUJ@bx@xUbVzUxklWnXVKnXWlUL@V@VL@VL@mJUXmJULnn@VmVkK²mlXWlx±@@VUb@L@@VV@VVULVUbU@WmU@Ò@V¯bmn@V@lVnUnVWXVl@¦VVUn@x@XL@¦lXxVb"], 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@lUxaÝVUX@VULxVkLWV@JnVLXVlUV@zlVL@V@bn@lU²WVLlLVbUVxUx@xǀLxôÒkK²VaU@wXa@WÈĉUa@bÈkm@¯"], 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£°@laXô±źwô@UlżaÜnKw@Uaa²LmÈLÆÈxlaUawÞmÜbÞUnJ°akôÑkwÝVğwÇ@ÝkkV¯¥@ò»nŤ¥XImw@mVwa@ÅwmLkaWw¥l»kçó»@WÑĉğ@ĉŃUwóřVómĵ»Ý@VǕ¯kÝĊÅk°ÓUklkU±IÇÞk±@ƽJ@UġIk@W¦VÑșÓÅnťKULn¯X@¯mUÛ@WÅmóKknōbxÝ@U@kw@ÿÇLţÝUkmwklċVÅU¦LkUWlÅÑ@a@ÅѱUóġŹ¼ÈĉmŻ@@wkwKl¯Uġ@lÇUÓ¯_Waĉ²Åló¼VbknKÇÅ@ƧĢō°Ý@ğWÅxUUm@ÝXÛWULUè¯@mbUaLbUWġxIUJWza¯by@ōÈóLU`ÇXUlUĉV¯nmÛbǕLklUĉVóaġƏbġKţnkbÝmmnÝWȭÈÝXţWókUÇl¯U¯ġUɅĀ@°¯¯VÆnmJ@ĊķnóJUbÝXUlVkL@lVxnnmb@¤Vz`ÞÞŤ@VnÆJV°bUôJkzlkl@²ó@ÆÇ°kĖÇbÛU@lmbXVkzVɅĀXˢlńĬŹ@éÅ@ĉńÆ°ğbUlɜ_°@xŦkbVbƒKĢŤVŎ°@żÈźlĊôKôb@nôxŦÆ@ôŎL@þÆb@nnWˌbÈxInaŎxlU@Ѳ±ğVUĢƨbɲ@Þ¥ôUUķWVô¯ĊWʶnôaŤˁ@£nmnIôǪK°xUXô@Ŧa°mkXÆÞVŎkĊ°ÞLÈôyVaIlwX°UVwĢÑÜKôw@nV@m°nmnÜɞ£VbmXn°ÜÒ@xx@Vb²UlbkxVnJUnVVĊ°KČm°nxÇnn¤±¦@UXVV@lVbmVVÈVxÒ°IbźaČbVw@VLƾÑ@Ŧô¯ĊkôÑ"], ["@@@@nòVaw²bVxxÜaČVô_ĊJIVmLa°@Ŏ¥XlK@klKVbUb@nUĢnaÈ@lmǬ»Ġ¯nmnƨVyÑǖĠ»ɲIn@@ÅĢƳ@¯°ôVKÈbVIÇ¥¯@Ýó@ÑnīWKkk@¥¯ÅaX±VÅw@±Ġ¯@»nWmw@@¯VUUWçKĉa±VkkV¯wx@UJx@bknÇbmÅ@Uw±U¯¦UKm¯I¯ť¼ğĊ@ÇŹÈ¯@Ý»ÇnˡJbÛèÇnÅK¯ġĠŹW¼Ålm@¤n²Ýb@b¯l¯@ŤW¼nV@x°@Vx@lbUblbX¼WDzlU@¼V¦@bÇlVxUbVxÞbVbm¦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ĊUVlkǖKÜan°mĊUVVkÈWV_ôKŎÇ@z°abXyVIJĢwVXaKVbna°@VçVKXÜÞWn@VVÆwXĠÞ@Ŏ¯ƨġÆ@ÈLlmUaô»ÆkĊ±Xb°`ÔVkÈĢ@Vk°Llx@xż@ĊnÇź»ôĢ²VÆÒ@@bÆÒXklVKV¥ÆČUklnxlç¥ċç@±m¥wÅJ@VmÈIléÈa°U¥@kÞVK²ÑW°w²ÑK²ñyÆÝVmw»kkWĉJWUVÅwLmÅ@@mwkn¥VÑ»°°@@»¯LlaJônVUůU@W¯Umѯ¯k@WykU@¯wV¥kVwţk»wWÇĉĶçKÞÇaĉbIlU@kwWXU°w±@UKn£WĉKWxkĕVamwXw@Wmnk@aVkbĉLlImmwUÇWxnÝJn@¥ÆkwaXÜĉ¯ÅV¯¤mkx¯kķܲVWôŹVU@V£¥@°wn@m@¯@UbUôķmn@ÆÛ@ÇýVaUÇĊV@Çlğ¯xÝŤlVÈÈVx¤VxkK@@x@kVĖġ¥kIWbXŎx@nxÅUW`_@±UaLUxK¯WbkVlbbmLÛÆWIUwWkwÝV@kIéUbUUkV¯Km¯k@Umݯm¯mLÞĉÛUmġ£UxkKm°Lwk@kVmKVUk@¯a¯ĢmóKUUxImlÅnÇbXèVVU°@@xXnm@¼ğ°@²ÆxU²WÆb°@¦llXLmĬ@ÒÞô°@ȦUJÇaLóU¯@°ġƴ@Æ@mɱJğ¼ǕÒUzƧmnmğ°ǫ¼knÇ@bġmmV@VaUaLkl@kLWō¦¯@bKUnJĉIó`ċUÛbwUw±axbñUm@@babÇÅXmƒÝÅôVbÞblUÞVÞU°VUx@UV@l`¼nL@ĊLW¤kXķWġXUVVVķUbVb@°kVVxÈa@ȦĊbaźJU@ÈVl@XkôaWĢÞ@laĸUÆb²mÞLĠÞÑôbÒĊaJVbm¦"], 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ôLnXÆÜ@nV°@°WmVKŦLÆmȚÔÒUX¥l@ĢJV@ƾI@wW°Ån¥kÅÝVwôÈç@lÑĊĕaJnaÆLVw°kny°UnkÆVČĊll¦Vƾ@@nUźÈÇIn°XwÞKô¦VWV£@£°ókċ±Iam¯Va»ČĉV¥°@mk¥l@Ċm@aUmwX@wÆxmĢ_`VnÆbKVw@@nUVğVmVVöIll@@çÛm£UÇw°@VU¯»m¯JōĖÅLa@»ĉĢ±`U_k`ÇçókXlK@akÝÞ£WċkÝkxJݯÅwxķxmIÅx@k±J@ýŋ¤UkmV°ÅÝxkwmġnÝVU¦ŤlmóXk¤UKç@mVkK@klī£m¯VUbW¯¼ċb¯ĵam¼mVXm@k¤ÇXÇbU¯J¯¯È@bVXVÒ¤V¼kxÝV@lVWxÛ¦W¯mKnlkU@nƑUĉÝ@ǺÛċUĉ¥UÞÅz±òL±Ò¯xX±ÒLÝU@lV¦¯ÇbkêÇJnU@ÆIxn¦@²Čè¦è"], 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°UXbVȂǵé@kWanm°@xzK°¯ĠVVkwLnm°kÞxÆa¥@wnĉÆ@_l_VwmĸèŤÅČU@Wn@ÑmKUnğK@°¯UÿV£nmLlUUÛé±óókkmnakV@Ç°óÝXWəÞťIţxmmVÛUVȂÓnWyȁĉkV°WnkĊa¥_K°ÿWna@mU¯wlÝIU¤UXó¥ÝLx¯WmJÇÈŹmV@ƽ@Uk¥ĉkċÅUml¯Vmz¯lUxÅKmbIbĉĖkÒ@ÇèóUxÆÞlm¦Æ¯X@x@²ÝlÈJV²klVl¯ÔlĉÆÞ°lUǖÞ@Ķ¼nUôôŚ"], encodeOffsets: [ [101712, 37632] ] } }, { type: "Feature", id: "6322", properties: { name: "海北藏族自治州", cp: [100.3711, 37.9138], childNum: 4 }, geometry: { type: "Polygon", coordinates: ["@@ōmġxƽUm±LǿþġÔ@kxmWb¯I¯mIUx@bbŹVÇkĵblĉI¯¥Um@ƯÈ@aóUlČ»@w»wXaó°ţçÝkUaV¥ÅbÝw¯lmnKlxUğU¯°Lyw¯@mnXbl@êȁǶUWa¯VÝUğ¤ǫkÅ@mܹXVV@K@ma¯¤ÝnƽĖ¯V@¼ôlèk¼¦xXlbnKÆx@bUx@nnxWJţ¦m¼ñ@°¦lUÞlÈ@ĠxÞUlxÒól¯bmIÝVÛaÝnxVbkbÇwÅÇKn±Kbb@VxLmÛŻbkVó@Źxó²Wkb@¯U¤źĊ@lUX°lÆôUlLXaV°wxUb°xÜôÈKVkÈmlwkÈKwKVUŤĉŎ»»Il¥na°LV»²¯Üy@wĢ°ĸwlwĢw°±_lVk@°bƯz@l_@Ģ±lÅVlUaÞLVnKlnÈ°IllČawÞÑ°xUU@wVkmĠLô»KÞýôaÞ¥ôĀÞmÆmUŎV¥Èl°²°a²¥V@@wamm@Ñ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²ôÜêVVkKmnU¤VĀ¯°@LmĠVnLÈL@alb@al@n°V_XmWUÈamaVIn@naV£óVWU£°axÈ¥@aĊwȹ@óağbm@kw@maÆw@In¯mm@UkkWÑÅ@@kċÅçVkÝJÅkVykŹl¥@¯ĢUÜX¥òýmmXÝÅlmU@£WlyXW»Åbl@aI»k@klm@UxUUV¼¯XlaUnķI@x@¯KĉUU`ólČ¯ô@¤ÞJk°xVn@mbX¯ĀL`¦ĉbml¯XUlȂĊXzmȁÔUÜVUnnŤwŦJɚÝXÞW¯ô@ÈlUbmln"], encodeOffsets: [ [103984, 36344] ] } }, { type: "Feature", id: "6321", properties: { name: "海东地区", cp: [102.3706, 36.2988], childNum: 6 }, geometry: { type: "Polygon", coordinates: ["@@@Òb¤ÆI°ôU¼°UnnWx@b¯L@lUUWbXxWlƨnxVUllXVUnL@lȀý²KVnƾĢwV»@mÞ£nÆÞÑmLKUaVżĕWVk²ÆÝ@Xw°@ô@a°wóUUmIkaVmÞwmkny¹VÿƧnÅm£X»naV±Ýw@ab@am¯ĉVó¦kÝWKUU@WanUb@ôǺĉxb@Ǧw¯bV¤UXôU¤bmm@UJnbÇbXVWn`¯Umk@@bka@bÇK"], encodeOffsets: [ [104108, 37030] ] } }, { type: "Feature", id: "6301", properties: { name: "西宁市", cp: [101.4038, 36.8207], childNum: 4 }, geometry: { type: "Polygon", coordinates: ["@@@kmKVUWkVkUmwƧXkWwXaVV@k°K@aXwmmV¯V»¯óÅJ£amX@ċVţÆķçnUx`k`@ÅmĊx@¦U¦blVÞŤèô¯Wbx¼@xċ¼kVôbÇ@Å°@nV°¦ĊJkĶalÈźUa@aVwnJ°°JanXlw@ĢÓ"], 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ÕpnñÂ|ěÔe`² nZzZ~V|B^IpUbU{bs\\a\\OvQKªsMň£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@RCPbAvMtBfH@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_IAHKAEXCQUOQCUDEN@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@CFDVPRRVWDFLBBG`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: ["@@ŤLLllVń²è°xżĢĠÆlÒŤbV¤ĊXnlĢVĊÒÈ°ĊŰÞèL±@џn»VUźċ²»ÆkôVɆkĊŃ²kŤVVwUUVmUa@KkU@mUmmk@UwUkmW@UVIXa@mw@aKULax@Uk@UbWU@yULmK¯@kXVUwm@@JUUknWKUVLUbU@wWykIa@w@mUI@aUVynIWak@@Wbl@@knmK@wnIl°Kna@V¥ğ@ġUķ»¥@UōJX¯¤k@wmI¯k@mwak@@lX@bUJ@VbknWxkLkxlLVlkLmb@bU@bU@VbU`Vb@nL@mbU@VnUVmnU@mm@kIUWVIUKVkkUJUnmL@VmLUaVWaXamU@U@KUUmVUJUVÇwğnm@mXĉV@l¯xnô"], encodeOffsets: [ [122446, 38042] ] } }, { type: "Feature", id: "3713", properties: { name: "临沂市", cp: [118.3118, 35.2936], childNum: 10 }, geometry: { type: "Polygon", coordinates: ["@@bXll@zlV@lXXmkbVVlU@Vn@@Vmb@XKVXWJ@XXl@ÈbVLUl`@XXV@VVUxVbUxVb¦@WnXVJ@bnVUzl@°ÆxUKlU@mUUnUlUVWVUnVV@XX°V@Vll@VkaXVl@Ux@bmbXLlKlb@b@bUJn@@b@n°x°K@an@@UlLVKVbXb@bVVnK°LVa@UVa@XwKVxnLU°@naV@UWUkWULmVwÝKUUla@aó_@mK@aUU@WUkwVm@aVI°W@@IUw@a±¯@¥kUVUm@awkw@K@kVKk@maXalI@alLWXblaVLVUV@LnK@l@waXaLlnUlLmV@n°J@_VmnIVym£UKmI@WnIVm@anUVmÇ_kġIÅWUXÇm@U@ݯÅ@@naWIVW@IkK@klKn@naWImk@abkKkLWnWkLWmk_@UaVUKmLUw@mn£WwUmUaóV@UkUm@UKULUwmJUX@WW@XÒzVblJXWXk@UVWKX¤UL@xU@@VUaU@@XmVkLmWkXUyÝLmKXnV@n@lx@bWLnVVn`knULmxUlWLXVb@VK@z¯x¯¼WxKUn@bk@lVVVz"], encodeOffsets: [ [120241, 36119] ] } }, { type: "Feature", id: "3707", properties: { name: "潍坊市", cp: [119.0918, 36.524], childNum: 9 }, geometry: { type: "Polygon", coordinates: ["@@l@@UK@@L@bX@@VlL@JLUVnX@`ÜXn`V²mJ@bU@@nb@l°xnnĸVÆ°@Ċ£Þ@lWnÑnkʶJmó°w@kk»V@»¥k@V@kw@wVmaÅmaô£ŎXI@mlnKla@mV_UK@kUkw@alWIU»m@WUIl±UUÅUbkJ@a@wUKUaVIÆmXIWaka@m@Ul£XKVw@UIJUkmJVkU@aWKImV@UxmL@bX`WXU@U`ÇkUak@@°UblXkmLUKmL@VULóVk@@Vlbn@Ub@ċaUJUbIUlVLUVVbVKXVlVXU@mb¯@VmKUwLWx@Ub@VUb¯KmLUU@aWaUaULkK@Vm@@b¯L¯w@ma@m@UUU@U¦lJUXVmkb@nmXVWkbIVxUV@VUbWLXVLW`Ux@nk@Vn@x@VkJ@V`mXk@VxV@lVI@VULVUIV`°bVXXxV@VWVnL@xVUb"], encodeOffsets: [ [121332, 37840] ] } }, { type: "Feature", id: "3702", properties: { name: "青岛市", cp: [120.4651, 36.3373], childNum: 6 }, geometry: { type: "Polygon", coordinates: ["@@@nUJXL@blVUnIVlIVJ@UxWLk¤@V@nlbXbWJÅnUJVbVL@x@blIaÆVVVk²VJ@XnV¼JkX@blxlV@VLU`@nkbLkm@nWJōó¤bnÆbUn@xlxU@l@¦@¼Ul¼ĊUnW@nĠmÈxUVIVnUVV@LV@nVWbXbUVbnK@UnKVmVIllUVLUJVXlJ@nnV@nmVUUm@Vna@K@mUaV_UaV@aV@@aanlKUkKklwlKXwlma@UVI@akW@l@bnxl@°nJxl@°£WŎIUÑn»lamô¹Ŏ¥VaUUkmkġWɱIUUŹ`@kk@ĉƨřV¥_Ç@Ĭ¤ÝL¯m¯£ƽóķwUW±ī¯kōaĉĕkğmó°bW@UKkLUaVmz@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@wnmwmKXaWaXI@UV@Vy²blkVKkamU@kb@Um@VmUkmKmkXKWwkU@Ul@UnK@UVUUmKXwUVLwKU@@Wl@@wUkV¥@@I@W@_V@VWUw@UUa@aaWa@@_mKUwl¯amzmV@WKnU@kWLķaUKbÝVmV@UWÇbÛ@X°UbW@XmVlk²UJUbmLÇxÅWUzl¯Ll@VkKXUbWJ@bU@¯@kbLmKka@l_WXºVbUz@Jn²V@¤lXnV°Ln`WbXLôVlKVUxXnlXLlU@bVV@XJWLUVnVV@@nl°nnVKÈbVXÆJU°VnXVkV@@xVL@Wlb"], encodeOffsets: [ [118654, 36726] ] } }, { type: "Feature", id: "3708", properties: { name: "济宁市", cp: [116.8286, 35.3375], childNum: 11 }, geometry: { type: "Polygon", coordinates: ["@@nam_nKlVLXaIl`_@KVVXI@m@w@@k@Knô@n`VbV@@LL@KVVn@VX@VLJl@VUUU@Uam@UkwKWaXamkJmIUVUÈblaUnV@kVKl@@lXL°kVJ@VÈnVJUX@VLXl@xVLnU@VKV@aIUaV@bĊUxKkVJXUlVUVaI@WUI@KlUnwmWk@WXIWUL@Wna@Um@@UVkUUlanWW@kkU@ykWkaWVUlÝbUU@kJUIU@@JmaókLKÇUUkKWLk@WbkUUabmKn¯°¥V@XwV@VanaVaU_@Wlk@WÈ@VUÈVVÛmaklKȯlLVUX@lK@aX@@kV@VmV@VwnJV_UWUwXam@kW@wVUkKVIUUVmU@UV@IVK@aUL@aV@LmUKmx@ômLkUWJ@nXmlUxUL@VknVUU@VL`Ub±LkV@kUKÇbÛ@UWó_mJ@Wk@@X@VLxUKVWxLVnUV@VmL@Vk@VlVXxWLnlLnVlUnn@@VlaV@nlbULkl±aUzU@@VWJXbWbnLnxm@xUmJUUU@@VmLUl@VUÞVLUV@bllUn@VUXm@@VkV@VݼÇnUVJ@¦nnlnVlL@Þb°KVV"], encodeOffsets: [ [118834, 36844] ] } }, { type: "Feature", id: "3714", properties: { name: "德州市", cp: [116.6858, 37.2107], childNum: 11 }, geometry: { type: "Polygon", coordinates: ["@@¤@VmbVXnVVbVJX@ll@zlVInl@@bVxUbĠl@ÈblaIxXVWb@L@nULWVXXWWLnL@`@LUVVL@lVnJU@UUkanVôôb°¼VÞXIÜbČabôWXÞWÈzÆmnLVJ°ÈnlV²lbnW@@UUVmnwmkkKWkla@mVIUKUaaUwmnJU@@amIk@@bVlkX@mmUklUUa@_UaUUV@wwWkXmW@I@WUaÝU@UXaWUU@UUVW@UUUWUn¥nUVa@m@k@alU@wkLWa@UUm@@wnmUwla@anKn_@alK@Ý_@@WUUUmlkaIyU@UwU_Wa¯yU_mWUwkImm@InWWUk@@UVWVkW¯U@VL@b¯b@l±¦@VV@lUbV@kxVnUl¼XV@b@lV@nIWxnb@UULxÅxm¯aUwU@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@`bVkVlnV@nlWUk@al@nJ@bV@InmVxbVbVLUJ@nkblXlLnlmxnUV@V@mXnlbĸ@nnVxb@lnXV@UJ@nVxxnxVbÆVn¯ƒĕ@@wÈçUÇlķVIb@Çmk@¥k@UkUK@aWakUóJW_UW@wkkWK@U@K@XUUkmUUalKXala@U@kkWlkÈl@kVmVIVmU_awnwVW@wwU@wU£wkJWIyUI±bkVUJ@nmVUklXmx@lnbWkVUkLWxkKUUmUkbJ±LÇxUKmkUmkkWamUaVkJÆ_²KĠ@UW@wU¥nUWwK@aÝUkÅVaVK@akLW¯I@bnbVx¯JWñWbUL@nV@VmbkUUV@IÇak@@bWak@WJUJWL@bXV@@VJlb@zUlUUImnbVmz@°UV@VbV@@V@L@xLmKUnmJVXJ@VkLW@UVUL@b"], encodeOffsets: [ [120083, 38442] ] } }, { type: "Feature", id: "3715", properties: { name: "聊城市", cp: [115.9167, 36.4032], childNum: 8 }, geometry: { type: "Polygon", coordinates: ["@@ô@VWnLan@VKÞLÆUnVV@xVbn°ÆwwKVV@maXwmJU@@k@aWUk»VUmlw@UVa@kUU@²¥@k°a@aK@UU@mmm@ówѱ¥¯@@wKmwI¥kU¯UmakJmIUaVkKUkm@VUUaU@UaKUK¯@wUVUIUKVwk¥wbV@xn@lWnXxlL@`XlJX¦l°XxW¦@¦Uln@@@Um@@VXVmx@¯bllUnUJ@VULVn@bxVVL@bVlnVVblVÈnVlIVJLôlJ@xl²"], encodeOffsets: [ [118542, 37801] ] } }, { type: "Feature", id: "3705", properties: { name: "东营市", cp: [118.7073, 37.5513], childNum: 5 }, geometry: { type: "Polygon", coordinates: ["@@ͬUǪlô@°Uw°ōĠ¯»Ģç»XÇ@wwƑaÇkwVƑ¯@ÅķUmm¯w@ka@mV@@anIU±m_ÛW@_mWVUK@IkK@UW@@a@K@L@Vk@±U@UV@lm@mUU@kLmxV¤@xVx@xUXmxxbV`UnUJnU@lÇkkllX@l@VkbWbkLVbnVVlWV@@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°VlXUUX@Vl@XVmX@JnnlJVxnXV`°zXbV`VxV@zJlbkVnVV@X@`@ÞkL@bm`mL@bkbxnVm@xn@VV@XbKl@xkV@b@l@nUbmVm¦XVVV@VUXVVV@XVWb@VÞVVb@X@JnXlWXx@xUVV@aVKVUX@lK@UIUWnIVmnLK@w@K@UU@a@UVU@¯nyUmanVJVVk@ykaIU@@WU@aXKIVXIl@Xb@al@Èb@JVUlVna@UmU@VKXaòX°IUwma@aU@UU@wVW@Ñw@aI±`kbUkwUmJ@UkmÇUUkmKknUV@mJUkaWka@KmKkULmyXa¯_@WmImmbLmUkVUbUVJbUkkWJkUlIUmkLlK@knaVmkI@mWaLUKUU@@VmLUVLWK@UUUWUkkVmx@Vl¦"], encodeOffsets: [ [119014, 37041] ] } }, { type: "Feature", id: "3709", properties: { name: "泰安市", cp: [117.0264, 36.0516], childNum: 5 }, geometry: { type: "Polygon", coordinates: ["@@n¼WnxL@x°@¥Uk@nwlUVlXVV@VXLKVUnK@UV@VVLKXb@nlJUnmb@lkLKlVnJklVXIllVaIVUValUnVKannnJ@X°`WbnzKlVnL@LbXlbVlnI@VUU@UmV@U@U¥@VmV@@_Ua@m°@@kmUUm@UVmn@nX@@aanJVUVLmlIVJn@nkVLVa@KVmVLXVVL@@U°bn@VaV@@K@aVkbWaXUVymU@aUImWX@¥UaVwUaVwUUU@WW@k_VUKÇa@nmxkV@LVJ@XJUbVkUWVUIlLwĉVaU@VbJ@bUUL@mVUK@wWkK@UVWUIÇm@UUI¯lWK@kk@UL@lmUVkbÇaUVVnJlInWbXbLxVln@VbV@VUV@kIUK@UWm@UU@LK@KU@Uam_ó@m@L@l@@x@nWJUU@L`k_JWbUKkmLn`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ł̥Uwm¥kÝmkkKóbÝ@U¦@mb¯LkmJ@xLmn@lk@a@X@lXbmJUzV@bVJ@n@xblJXzxV@VaKVUXLlmVV@In@VxUlW°@nLVK@zXVVal@@VwbVKL@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: ["@@UaVUUKVkJVaVIČb@Vam@ka@Ul@UôVK@UnKVLnKlkWVa@¯l@VbÈlV_V@XWW_@anKVwUmVw@@UnyUVblKVLX@aô¯ó¥mÛĊÿÈ¥Þ¹lUī¯Kĉ¼ʟbÇVUUXmakJUnmV@bUnmJ@XnJVLn¤UzmJUn@`¯ImU@nKVkkmKWbb@xk@mL@KUUVUKkbWaXkK@bkJWbnbl@UL@lL@lxx@bnUVlV@¦²°@bVx@J@¯XUJ@bUnlxVX@VV@bL@nô`@bkbVVÞLxnU"], encodeOffsets: [ [121883, 36895] ] } }, { type: "Feature", id: "3703", properties: { name: "淄博市", cp: [118.0371, 36.6064], childNum: 4 }, geometry: { type: "Polygon", coordinates: ["@@nlKV@nVn@@kVU@²VVaU@wmKXU@UUWwUW¯aU_JUVVK@UJU@kUw@UlnWU_@lI@U@wUml@@mVwX_KWUXKVa@UVUUwJlaXWUn@mlanUVWkIV¥V@VVVI@a@akakLWKna@aVwk@WUbUlk@k@U¯UWWU@mUUVUXkVmVVV@nkVLVÅw¯k@WVXbaUl@bV@@b@xkVVXVxkJ@nk@@VLUlVbVXUVVUzVLVbUbVVWVkLmkJ@n±@UxUVVkV@bx@ÒUX@xVVV@°JXlK@bULUblÆÞV@bLXxmV¦V@xXVğ@±LÅ`IUlVbnbXllVnnlVLÈwK²IlanVVVlLwXlKVlUXma@knwWlkVnU@mVIUl²aVJzXJlI"], encodeOffsets: [ [121129, 37891] ] } }, { type: "Feature", id: "3704", properties: { name: "枣庄市", cp: [117.323, 34.8926], childNum: 2 }, geometry: { type: "Polygon", coordinates: ["@@yUUUkl@@aVmLXw°»°w@yL@UUaWXKVknwVKlm_UmmUXK@aw@k@mUWmUL@@@£@KbÝV@akwaULmbUKLUU@lm@°mL@nUJVxVXU`mIUxU@UnU@@lW@@bkLW@UVkKÇ°kLlbnUÜÇUUVÇ@@Xkl@XV`UbmbUbU@WxU@¯¦m°nLaVblVXal@XKlLVVÈLKôlnbI@V@VJI@lVVÞaVkXU"], encodeOffsets: [ [120241, 36119] ] } }, { type: "Feature", id: "3712", properties: { name: "莱芜市", cp: [117.6526, 36.2714], childNum: 1 }, geometry: { type: "Polygon", coordinates: ["@@lmnLVlÈVln@VnIVlxVla²_JlUUUVVw²@@mlInlKXUUUVaUaKUVyUUWVUUaVkUK@l@@mlIUwUWlU@w@aU@@LU@Ubm@¯a@V@UKWUUKUn@LUbUKmlm@UIkJnUKUVmIb@b@mWm@Un@VVnnVl@¯@@nVb@`U@Un@¦@V@VUVnV@"], 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: ["@@ýVnIW»W@»kUÇLÝU¯¥ÇIUWWÑUWwX¯m@»n@ÜÈķô@a±kȱwÑmwçċmU»ÆkkVyImĉÿ@ݹWnwÇVÅazmmĉ¦ókVmxxU¼VkVm_UlVlk°IVkmJa¦kLmmV@XmKnlUôVXbb@UaÇLğÜÅw£mKnmċwÅ@UkbmaVn@m¯aUJm_k@kWXyl@@kÅamwLUÞmWÅzUKUk±@b@nnKbX¤mzVVxÇn¯@ÒknWVUbkķÈÑWkk@VaU@mUkbÝÅ@Ý¥ÇbkĬXV`kLÇVmalUUanV±nwmkJ@In°KVw¯UnÅ@¥U±bUU±mWbÛKWnUm`UƒVK@bmnmÈż@VL@xxmŤ°n@VmK²VllKkô@êÜV@VXLlm¦UV°Ș¯²ÿ@¥@ÆĊ²ImĶnnb°bKVĸLlÞ@UȮÜ°IVÞÝÞlx@ķĀWUxèÆ@°XnlĊĖ°mnV²V°ÒƦaÞ@zll@bÞĀl¼nKĊ¼óÈb²±IǪÒ¯ĖV@lxnVlkJlaXwŌĉ@VnlÆĕUÆLèŌŤôxÈlU@xlaUċĕXmIWmnkVVVW_@aÈWUUmk@¯çVm»±W¯n¥VmkXw±ÇVw"], encodeOffsets: [ [113592, 39645] ] } }, { type: "Feature", id: "6106", properties: { name: "延安市", cp: [109.1052, 36.4252], childNum: 13 }, geometry: { type: "Polygon", coordinates: ["@@@kkÇmImUwVkUU²WmVkm@m`mIĢĕUVa@mXÿVVkyUýĕ@l_UmnWKVkţ¥awğ@@aôWakUma¯¯a±£kxmmxUwÝ@xmUb¯KwóÝ@kmm¹Ub@lklVbmnnVUV@xUknƧJUX@LÇWkwLķƧÅwWJkLkþĉxWzJUnÇk@Ɛk¼ÜÔÈKè@°lÈÆk¦ln@l¼@l¯L°UUVÇ°¹`m¼mXkbUaV@U¯x@¦ÇUUmlmUVmnnmlkw@@¦ÅÇLmx¯Ikl@¦mÆ°VUx¯Lm@JInlmxU²mVbkVbUnÈlKU_WlīÈaÞ¦Æ@ÞlanV@VUbl@XlÇÒĸlVaUXlm@Ñ°ÈmUwUnyW£amL@ma²@lVVLÆynXÝVKnxÆb@lk@WzX@lln`IV°b@nmUnbaVlÆ@ČxmnnL¤ÆxĠÛÈKVb@aWaUókVmnL@WUnnKl¥bnIlU¯JlUkVkn`lUUV»wnwlUôĊ¥nnyÆb"], encodeOffsets: [ [113074, 37862] ] } }, { type: "Feature", id: "6107", properties: { name: "汉中市", cp: [106.886, 33.0139], childNum: 11 }, geometry: { type: "Polygon", coordinates: ["@@lKnb@nlWb°bkxĸwVb@łnlĊ¥L@XlÈVblÈKbakVwôml²`n@nVKlk²xŎ°¦VUJĊw@çnWçÞVkUóÛ@¥kwUmX¯WÑk@UymIUwlUn¥mUk²a°¯V»@ÝVÈÝċÅÅVl»@l@a°±@_kammÅba@m@żKknõĠ@m¯LÅwLVxmb@¼kV@mw¯wVakKW»X±¼¯Vkxb¼W@nx@x±bóakb@ÝmU@ķÓÛLkVUmk¯¤ÝLUlÝ@Ýzx@x°bmX¯aUJW¯k@bÇWwÛwWx@XWlb@VÈUlwLnl°VlUô¦U°¤VUxVXUxlbkVVlI°ÅVlU°m@kÇU¯xUlLUlVL@b°ĠInĠ°ÈnK@xÞa²naUyXUKVkWô¼Èaz°JXUVÇV_JVz@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°aXVÞVUÞ@aXm¥kImx¯¯V@anU@UÇéğL@¯¥V£m@ÝÈbKX°wČÿb@xÈblxȯĊmÆUVnÈ@ƨÜLĢ¥Źn°VnnKaô_ÈwUaXmnW¯klLXÇō¦ÝaÅVmbğUn¥±wÅéVan¥U»°am¥£Ý@wVw¥nUÑUmmVwmķIÅaóVWxkblb@ból@ğÒĉ¤ċX¯XxkÇ@óÆÅx@xķ_kmÝÇ£kblb@`¯²@bk@k¼ÆUČÆÞÇÞU@U¼¯°±bVlnm¦kVVxnJVz@lÒXW°nVlx@¦ôÜVUlÝ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`°wXôw°VĊ°@ÅÞÆVzÞK@x@aLÅ@b@nLl@lnmnLVwabVVnbU¼V°blbÈ@ĶŦb@nÇ@amIyUI@ĠVmôUVwkwlanJ¯lwó¥@an°J_@nóƒó@£l¥UwmaÑ@Um±V_J£JUW¥¯@_k¯¼mUVUè¯b@wmL»ğVmağI¯¤ċIUWXKĵ¦ķaJUbIlUóVmk@WÅÅÇ@mUÅVnĉÇ°kwÇa@waċĀ¯xWLÇa@ÞnU¤°¦@ĠKÈê@VmV@bU°°nwlJn¦WbÝ@V"], encodeOffsets: [ [111454, 34628] ] } }, { type: "Feature", id: "6103", properties: { name: "宝鸡市", cp: [107.1826, 34.3433], childNum: 10 }, geometry: { type: "Polygon", coordinates: ["@@@£@°Ib@¯°ynŹaUlU£Umĵĉ@@ylUÞ@@£kWU¯WaU£¯ÇV¥@kb¯wn¥ÇkUÇnU@¯±kULm@m±_kónUxlbaÇLkUaÇkW@Kĉ¦km@ŁUaķxlw¯aXak@mmakL@mÛ@¼m@lXV`nKU°°@²¤UÈ@VxmôxKlVV²aVwXlaVlx@UVnÇnk°VVLlkIJÇk¯V@knÆn@lznmlVkzVVVx@Uxz@x±¼VxxUlkb@¼ČkVXlĠkôV²wLUKlwJ@aIV¥Þn¯Ün@nkl²kÆ@°aVbnI@Ťn"], encodeOffsets: [ [110408, 35815] ] } }, { type: "Feature", id: "6105", properties: { name: "渭南市", cp: [109.7864, 35.0299], childNum: 11 }, geometry: { type: "Polygon", coordinates: ["@@@ÈôLxU°Þ@mÈnl¤nUôLwX`@ÞÝLUmLôôbVbnºlnÞ@ôx°LanVwÞ@Vxnwnlw²¤b°°bVnlXbó@bĠ@xb¦ŤVXġ£W¥ƽɽó@ýóƝÝ»£XmƅĊkU@ókťaĵÇ@aka¯UV»maUUabUxmKnkm@kmK@xó@¯n¯KǦ@ôÅèlxkx°nƾ¯KU¯WķL@VÝIUbyWbX¼Ç°"], encodeOffsets: [ [111589, 35657] ] } }, { type: "Feature", id: "6104", properties: { name: "咸阳市", cp: [108.4131, 34.8706], childNum: 14 }, geometry: { type: "Polygon", coordinates: ["@@IXyĊwlýKlXIVaķ»a£¯aVU@awÈōaL²»VUln°WȯW»XazVaÞJ@U»@¯Ýbğwly@£kÑţ±WÑ@kaIUn@¯ómţUbU¯lÇIÝb@¤Ý@kV@zĊ@ĶnVV¤kVbmź¯z@°a¯J@¤@bUxb@`xUÔ±ºVXWUnUJLĢ¯ÈKlblmÈXŎ°U°LlkÞ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°kVaŤVôn°@mVJlb@XÒŤ²lÒ@¤kzĠxÞa@°¼ĸK°XV°Lƽ¯mlwkwÆç@óÈ¥°L°mô@w@aÆK@b@wÝLyÅUÝÆ@ĉ¯¯UóxW¯x_ÝJmLUx¯bóak±mÝUUW¯ba»óóxƧçĉbaĉxIUV¯¥ō±wl"], encodeOffsets: [ [110206, 34532] ] } }, { type: "Feature", id: "6102", properties: { name: "铜川市", cp: [109.0393, 35.1947], childNum: 2 }, geometry: { type: "Polygon", coordinates: ["@@ÆxĸƨKlxÈXK@VWƨIlmV@wVUmUnmUalk@kVaUaóaónKVÞK@ÝW_xóKmVk£ÇmnÝ@¯VwóK@ǯXkmVU±¼KbÇŎ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¦WlnnUm°²VVVVVnUnºlz@l@J@kXWVXl@La@KULlbnKlLnKLnKÆXn°bVV@bUVl°Un@LnaVJUbW@UX²l@ČwlVVIWnkÆa°anVKn°UW¯@aVUVk@Un@aV@ValwUanmWUk@WVUUanaVwnLVl°@nk@mVU@UVK@wLVKVU@K@UUKVUV@@bnLaVaôlIXmlKX_°KVV@bVV@zV`kblIVUlL@bnV@VĊllVlIXW@kaU²blKVnIlJalbXXlWVn°JnnL@l@XlJlaX@XW²@l_VmnKUblU@mnkVK¯@U@ma@kX¥VmakkLa@a@WIUUVXWWnk@a°a@kkm@kUUmJm@WUUUIk`m@VkaWWkXKmXk¯@WKLkak@±bw@aa@aka@ma¯@LKÇÅkKWbkmġ±ÅULUKVVkm¯LUVVbUwUW¯bmULxWJ@klmkUm@@KnwVkVK@akw@@a¯bKknVUIb¯mmbk@UbmKUL@xUU@klmLUlVXIVVVUVUU`mLXVWbXnW`Ų°xmxU@mĉwU@mbU@UmbkVW¦kJ@X@`¯Im@UlUVVnb@bWJXnmbJUUUUa@UamIkax@@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@VbVVVInaWmXI@aaUmVUVkn@°J@_W@lIX¥lUnaVV@naV@xĊnV@wn¯wƱX_WmXaWUnKV_VVUUUUWJkUVnKlk¯@@kmKUaűKkU@WmI@WUIlUUmVwXw@UlUVwV@LnbW@anU@UaVkô@l»n@naJnUÈLVaÆUUVmVKV²L@mU_lK@UVWkUa@a@U¯aUaÑóÑUbKk@@ak¯mVaUwVÑkWUmK@UUKmXUWÝwUaLUU@aWJUUU@UaÝU@WL@VKVaVI@WnU@alIVK@kImIkJ@m@@@_K@x@kaW@U@Vmn@UK@mIJUXV¤XXWlkKkkK@XmJVakImJU@ó¯LWKUV@nUVLkxmKkLma@kXKmmLabLmK@V@mXVÆUxX@`nLaV@@VmLUVnLlLb@°²nx@bVUxlb@V¯bUV@zVXVĊXVx@lVn@VnnmU@LlJXVz¯VWVXbV@bmnVUVkÇþÅ@XVxmbUlVUlnW@Xl@VLXÒ@bÞJ°¦Lò@nUb@°X@XbmVUVnb@xx"], encodeOffsets: [ [113614, 39657] ] } }, { type: "Feature", id: "1410", properties: { name: "临汾市", cp: [111.4783, 36.1615], childNum: 17 }, geometry: { type: "Polygon", coordinates: ["@@nW@@UnLKabKnnWL@lnblKnLlwKVU@mVUXL°KôV@nIlJUbnI@WlLllLXkWWU£VWInJ@VL@nm@UVX@lb@@wL@`@n@V@lw@nVmVXWmwnUla@_lKwVlUn°xVKVXXWlUVVI@K@Kn°KwlVlU@kna@V_WnmUVm@kXml_@mLlKXw°m@_ôJVUV@Xl@UaV@Va°Ilk»VwUkVmwUmmVn@V¯@KUwmK@U¯wUVÝ@mJUnWK@@UnKVa_lykUmKÛnm@x@UUlwVkXW@a@U@@K@kIVnammVakUl@wX@@k¯@VVbml@°UbULmlVbnbÅK±VKVXUJWa@ULWaUU@@U@aWK@UkxUKLUUUJ±UkL@V±kk@kam@UV@l@LWl@n@VVUxLlUUx@VUVU@aIUlL@°mLUbkUUaWUUaUU@aWKLWJ@bUL@VUVVbU@m@a@kmKmnĉlUKXWUblbxmIkU@xWb@lkVxLXmzVV@bklVVUzm@bk@Vx@xlU@lUbVnl@Wxnl@n@UbVmLmb@`X@lUX@@xlnkLWaUJnnWVVn@l@bULVV@lV@XnJVX"], encodeOffsets: [ [113063, 37784] ] } }, { type: "Feature", id: "1407", properties: { name: "晋中市", cp: [112.7747, 37.37], childNum: 11 }, geometry: { type: "Polygon", coordinates: ["@@@lInJlJ@ULkJ@bmV@XUJUbL@UXKV@ÞVbV@VVXI@bVVKVbÞxVXnWVL@VnLVlXÒUVxUb°nl@bl@LVaôÒÒVb°b@VnLnnV@lmn@lbUV@JUVVXkl@lUzmJ@xXklbUnJVUbnUlbV@nlLX@lakV`Ub°@XVJnUL²KlxnI@KV@lbUbVVKnVl@zlm@U@nI@WUaVl@@mVU@XkW@nkVKV_Vwy@knwVa@XalU@Vnml@X@VLKVaÞbnnlJImVKnVVVInVlU@m@mXK@UmyUI@mWUUakamw@wUwmLkakwVmKw@wUam£y@am_W@UU@knmmamU@WUa@knw@UUUUV@nJm@mVUkKVUUUkKmwKULKUImV@lUnnm@mbUK@°bUnmbUmkkWUb@am@UXkK@a±@V@ĉÅVUXVxUVkLWl¯@@bULUlm@@nm`XlWakIkmVUbUL@Vm@kI@@Km@VaXI@W@aU@kUVU_KbJkkÇb@nkKmLwÅW@kVUUVU@WUIJmIXmma@_kyVaUUlkUm@kUx¯Lm@L@LUJUkVWXUWUL¯wVmUkxkL@`bkmVnxXUWUnm@kxU@"], encodeOffsets: [ [114087, 37682] ] } }, { type: "Feature", id: "1408", properties: { name: "运城市", cp: [111.1487, 35.2002], childNum: 13 }, geometry: { type: "Polygon", coordinates: ["@@VlnJwkaVaXWVLĊknmnLl@@bnV@UaVU@UVK@aXIKXL@bVVVbXVVblVaVnK@¯KVkJ@bVVU@UVwkVKVwUUm@@Xk@K@kVUn@lbl@²l@UlK²VVIVVKVLlw@VXL@b@VV@VXbVK@XbVIUWLU²ÆLmaUankVKVa¯@nkUaU°@n@@kWaUVaXUW@IXKVw@UWU@W@@UUU@mn@`m@UUULkUmJIU@@UK@U@anak_@wmKUwmakVkmKVk¯bw`kwUIÇx¯»ÇaÅmn@@mmUkV@wkKW@kxmLUkĉLÝkxÝw¯lóVUmV@ĀVVX¦W¤kz@`Vx°²ĸ@Ul@xêĸNJ°¤VVlXLWnXxmV@nUl@"], encodeOffsets: [ [113232, 36597] ] } }, { type: "Feature", id: "1402", properties: { name: "大同市", cp: [113.7854, 39.8035], childNum: 8 }, geometry: { type: "Polygon", coordinates: ["@@²£yl@ČĖ@bĸĢbĸXaKŤnn@ŎôllÈxnVnÞÇV@bnXllL°KbVb@J@b@UxlKXLlKlXk@UlkJlkUVKXUÇVIVm@_nÇLalwVnU@UUwma@aaÝaLmUk@@W@U@@XwVWÝUUUk@@VmLKV»nwUwaUL@`mzJUIVUaUwKUaVIlJôanÑlLVUn@a@VV@@UUwVK°Vn_lJÆLéW@UUUÅ@»lm@aÞIVwXWUUkkm@U@aU@mwU£VWU_kWmXwW_°yUkkK@UÇK@kkUVymóKU@KWIbUak@mJ@bkbmLkUmkVUW¦@lnb@@V°ULml@nkVaVmLUnk`±@XWW@kbǦX¯WxI@xmbmxXlWV@bÅUz@Jb@bÞbU@Wbk@xk@WX¯VÛWÝbÝUkVUU@alI@a@akLWam@U¯UUmÇL@K@aU@¯VUkKmX@`@kJ@nVUb@lbVÆXVWULU`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: ["@@UkLky@IJVa@mÞaWy@_W@_WXVlUVw@nw°K@mUVamVkU@mmmnLVUmKXaU@IlKVUnK@UmWkX@WV_V@akU@aKWIXyIUVmUnUa@WaXUVKVmkUWVkULU@@VbKbIUm@mbVLxWUUkn±V¯wbÅJUbmLkbmKÅKbVnUbVKUbKUbmLKmbaKkUm@UnnVnxUVlUxl¼k¯JUbU@Vbk@WU@UVóI@`¯nWxkLK@nk`Wn@lUnVnmXU`@mb@lkV@VnklVVUblz@`nbWnnJIVJ@XUVVUV@lÆXxnKlL@maÈllIaLV`UlVV@@b@XJWUb@n@L@lJn@@UVKVaUlnlJXbkWn_@mn@VkVK@a°@XklKVUUwVWUĊÆ@U²@@blLVWn@@bVaXllVnnaVma@¯VLnan@mVm@knUVJ"], encodeOffsets: [ [116269, 37637] ] } }, { type: "Feature", id: "1406", properties: { name: "朔州市", cp: [113.0713, 39.6991], childNum: 5 }, geometry: { type: "Polygon", coordinates: ["@@XXWVXVWnnlnn@èƼ@xlVnblVÈUVl@blnLÜĊmUkU@Ua@WI@aXk@WVUlKUaV_VKXWUUÅka@VaU@mlI@@_nWLVl°UV@@b@LÈKVn°V@VnXblK@b@bkJ@bVVlUÞVÞaXÜ°UXWl@wl@XaV@Ýa@aa@IVyÆ@aXUWknwna@wJXw°WÈ¥kI@W@kmKm¯IUmkXWWkabkImJUkL±aVb@lWXkJUkĉk@UmU@aKkVUkJlaU_y@UU@aUU¯LW`kLWnkJóbUbmK@aU@UVVL@VL@UVULK@xUL@VUV@nml¯@UkmKUxmbVbUV@XlXVmnVbkxUbU@bm@@VUlUVb°@VX¯m"], encodeOffsets: [ [114615, 40562] ] } }, { type: "Feature", id: "1405", properties: { name: "晋城市", cp: [112.7856, 35.6342], childNum: 6 }, geometry: { type: "Polygon", coordinates: ["@@lVLbanLnKVaLVaLUVaUmaÆLnLlanKVaÆIa°x²UlmVVXwUKna@VnJaLa@UV@@alUkKVKnkmmVwUkw@@kxWUXW@@mk@aUa@a¯aLkKmwkUm@kL@K@aWIXmVXWkUVakL@UVKw@aUK@UUKmLU@¯nKUwVUIWJUWmka@UXJk@UkmW@kLWKVx@bmI@VUaVU@a¯@UUmVKmX@±`kÝKVxUL±akL@VbLkKmV@XWVUbVXb@lm@@lW@@xklVUbnnmbUlJ@@L@@Vb@WXUlkxVV@wn@ÜmnLlVkz`UbmL@V@XLmVnIÞ@VU°x@VnLxV@LU°"], encodeOffsets: [ [115223, 36895] ] } }, { type: "Feature", id: "1401", properties: { name: "太原市", cp: [112.3352, 37.9413], childNum: 5 }, geometry: { type: "Polygon", coordinates: ["@@@VV@wVKnLVal@na°naVJUlmL°a@b@lx@bULUlmx@Ln@lVknl@XIwKVn°aVXVxUaVU°KnUlUVLKÆV²ĢlnXalLÈÆLKUaVkUanmWUa@WwkUWU¯y¯Ñ@anIl@@aVUmIymULUUVakaU@@LmJkw±LKmVUI@W¯VaU_lkbW@kK@mUkaVmVaUIVmalkW@wnIVy@klkWUUVI@UVkam@knU@mmmK@bblVUX@VkLV`@n±KUULUnVVÅUbÇKmVImbm@k¼ó@Ulb@VmV@bXmaK@UUxkVV@xWUxVnkVVJ@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@bbb@x²al@lbKXU@mkUWkkmUUVwV@XUW@naVklKXblKnLnLVanImaXKlLaV@U@KUKWalXK@£WKXUV@VUUUVW_V@W@@K@UIWmXUmULnJkImmÝaUbLK@UWk@mnU@kVWb@Ubmx@lzUx`UULml@XWl@UV@nk@UVb@XJm@@Vknyk@zJnUV@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²KU@UU¥a@£ÞôxKnkmX¥IUÝUwlk°V@ÈKUwlkUyV¹mx²XllÑW»lw°UŎnJl¯°V@wôIVÇnnUllLVÇLô¼XW£@±@¥k_ÇJkUékwXa@Llw²Vxbm¼ÈxlLÈVWÞn¯mÇÑUÝlÛkwlĉmULmwUJç@wkm@ÑlUXÑôġVaUѯ@wķÓkbVmnU@@y¯IķKV@¹aé@kmÞU°¥@a¯@anKlblU¥@óğç@Çw@wklaçݱk¯±@ğÝUÛmݯw@kb±¯akXWÜkXUÆÇU¤X_ƐwV@¤XUbUIUlÇUkġ@aXČmlUlèUV@mVk¦Vx@¦±¯¯¯anlW¯nÅw@w°KVak£m@klKknÇU»óKīlaUaV£@¯@ÆUVÛÝÇXÇlÓlŹ»WUğJ¯£mxLĵôºXVlUll²bllxónn°ÝU¼mJU¯nV@êĉ°Uĸw@m@¯kmXamѯaUwÝKU¥mÅn¥Wmn¹n±ƑƆÇôXê±NJnUôlĖkȂVÒ¯¼VnȮ¯ĀnƆĢ@k°V°¯ĢVlkVxm¼X²Ŏ@VxknWÜ°U¯nÆÝ@`ôݲÒÇznmX@xè°K°ÅUČĬóĖÝó¼ÅêÒbmk@V@Òl@nĉÜêx@ĖmlÅJ¯¦óxȭ°Ým¯LĵèĀ@Æl°żX@xmkV@z@°blnÞ°J@bn@ƼUVUóóL°X°ÝLxUn°Ĭn@lnL@Æ@nKÆxnUnVInĬmÆnxŎ¼ĊIĢóÞ@ĊƨbUmV¥lkwnLmÅÆ¥XwU@wwUÞ@alUUÅUVkkm°aU°Ó°w°Ub°a²K¯ĕ@ÈbÞĊa»XVm°InĬk¼VbaJô£VĊanků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@lVL°wnJ°UĸŎèIlwV°¤nĮ¤ÝlèL@@xlè²ôĊ_ĊġVÈôJżīlbXÆÈVkxÇVn°¦Üb@è@nn@@°UÈ¥WÇ_Uala¯¯UÇk»mVwk»k²°VxlL@¤_@x`ÈĖöb@l²alXa@bnK°¦VK@nnWmx@nUnl@@llĉk°l°UXkmW@Un`kÇLWÛÈVxVVlVk@lIXb@ylXÈWĮWŤzy@mI²J@n°@VJ°aÅ@ŎkVÇkaUwKVwV@nkm@±ôkôĊJ¼InÑm±nIÞXÈĊxĊUÈbÜyÈ£Vkw@kVUVm@a»ÜbÈmUXwÝxUn¥@°ġÅaJVkaW¯Û@W¥UŏĶ@¯kUŃ@aI@mmanwÞW@mw°»Uřk¹±WxVx¯¦U°zţWw@°ÇVÑk¯@y°a£@mnl¼aÝÝakwU±aĉImlĵn@m@kkV¯Ñmĸ°xl@XVÞmlÛÝĉUÅ¥mwÅ¥VaUwXġċaVůÛŹlwU¯Uó±xÛV±¯¯n¯mċLmnĊm@_kJWaXmwUĉK»@mwXÝUÇkKÇw»naUw±kxK@WbxlVêlÈIl`@¦@²X¤Wó»KUÈKkkmVmUÈóJ@x¯Uk°Imō¯VxkX¼Òkk±WwnUºVzklVxLÇ@¯UklVxÞVJW¦nmlLówÝ@¤b¦V@VV±LUxVbU@Vx¯x@²n°xnWbb"], 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ÞÈÜUVÅ°@@U¤VbkbĬôL¼ÈVlmLlkn@l¤Ub¯L@xÆx°mXmk°b°°²@¥Uwl¥nU@VUkçVnkWċbĢ@lÈVVkJVaVW@£UƏxW`£ÈVVÅlWXÛlW°b²la@°xnÞVÜĠÞ²@l°Þ²èkbl@xÈx@Ġènal£nUDz@ÞKnn¤@¼°U¼nVXUbnĠUVbUlV°LX@lVèÜUnK@_yXVyUwmIU»VkÇ¥ÿkkV¯m±n@n¯ÜanVVÆz@bwÜbm@wa@kmk»@a@VUUów@nb°mXmnVbÞVôanwJak£lwLÅnÝ@wl¥IÇÓ@UL¼kVÇÅó¯kVmmw@n_Vn»°LÅ»@éÇçŹīVÇÝ@ÝğUaVݯķlŭġl@óÞÛċ@¯nkUÓm±IVġUwóKUn±¯Kw»KÝVnl@óxUwţ£ĉUmÅÇÝKÝUlmK£UV@ÞÈW¦Ò@Ĭnny@nÒmV¼@°Vbl@VlnUUwl°a@@llnk°lbnKWĀnUVxU²Åm¦ÛÇÅaUVb@¦m`móXUmmxÅ@±Þnè²U¯»mVm@wU@wÝÝmLa@VÇUkl°¯VlkV¦UmxaULUèVx@kIUxmWV¼¯VmȯUnlÈ@m»ÅVWxÅbÅğW@km@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ĊÑJw@È»m»£°Kk@ÇnÑÆ@w°JUwnw@wbVb@VlźLUwa»aUklyUUVakwWXwWUxkLmn¥mwkUXlJw@aIk°X¥W²l¥aUIlmkklÈL@m°nlWUaW@V@UaV¥@ak@Çk¹K@aK@kKkÇX@VU@kx±VèkIWwUVUkkKÇ@a@wkml¯@kUWn£WaaVwnaVÝw¯@UaWxnJÅUxUma@L@mbUU±VVnkxUÆVm@kkKW°X@¤ÇUkÆÇnU¦¯kmLVwÅK@UóbÇÆV¦L@±êX¦mVÞkÜÝnWU@k¯wķn°ÒUlln@@ĶmnkĊJ²bVlxÞbÞbk»mn@¤¯bz@l°UÒ¯È@xŤXyV¯°¥Uww²XlºVŚ¯¼nx@XÝmxnb@nJ@b"], encodeOffsets: [ [106448, 33694] ] } }, { type: "Feature", id: "5117", properties: { name: "达州市", cp: [107.6111, 31.333], childNum: 7 }, geometry: { type: "Polygon", coordinates: ["@@Uxn°bnlUnÒÆnn@n¤LnxlUV@Ælx°XXxl`XVWLè±nÈb°b@²x°Kܼ°ĉV¦lJnU@¦ÞJÞğmLÞ»xUlbVÆannalVÆX@lnŎVmUmaÅXa@aWm@£@wĉJVkkkkmnk@mna@alKJ@ÞwmÅÅ@ambkU@KUġKU@mak¯±a@aĉÑÅaVwXlw±V¥l@@ak@@£mĉÝónWV@nÝÇÇxUmbaVkkk@m@m°ÝýXmakÅī@@mb@@xmnb@mxkWL@¯b@WUXmWWKkbm@kxXmm@LUlxlêóKnUallLlLó°m¯JVUK@xK²Āô¦l°"], encodeOffsets: [ [109519, 31917] ] } }, { type: "Feature", id: "5108", properties: { name: "广元市", cp: [105.6885, 32.2284], childNum: 5 }, geometry: { type: "Polygon", coordinates: ["@@ÆLĊx°»Ŧ¦WLÈ@xÞKÜ°ÞnVxÅĀlÒnJ°a@wV¯l@XWknKnwVÈ°XXalX°VI°bWna¥@w°n@yÆ@nkÞ@°¯lJn°IÈlUlXÅ@ķlUV¥VUUÝÞUU@UwJUkĉm@ýlkWUwVwWJk@VUKlUkaVUmLkm@@UIk`@UmlUkV¯ÇXKÝ_mm¯@U`kwml¼±KV¯¯Vk±Vk±kzmaKUnDZbk¦±X¦¯WlJ@bxkIWVlxnm¦nlKVwXWxXlxUbVVkzVlb¼bVxŹKUk@Uaa@xmxVx¯Ix@Å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ĊklxkÜVÞÒnÈm°nx@¼ĊLVnxWXblI`@nmĉnKČôÅlUÑmUK²¹@ÇÅVÓůVýÞWUVmXÆbnwKUÿ@UmmIUb¯¥Uw¯ÇmçmanUm»UUlk¤a¯bVU_WĕmÇűĢUlUlÛVçkU@W¯KUVkUağVmaVWUmV»¯@»m£mÝL±@ÈmVk¤mb@ô¦kVkamL@b°@b¯¦ÝVn@lêb@ºUĸL°J@zV@nmUlaĸÔ@x°VÒUbóĢÒWkV@Ò"], encodeOffsets: [ [104727, 30797] ] } }, { type: "Feature", id: "5115", properties: { name: "宜宾市", cp: [104.6558, 28.548], childNum: 10 }, geometry: { type: "Polygon", coordinates: ["@@VlÈnlXnWLX`m²nV@b°xĢçlnVmnn@@°UzlV°nÞÒkxlw`UnVbmL@albÞKÈÛmܼ°@XÇ@wmW@ÅKĊLlVLVŎçÞL²±ğkw@Uy@¹lKXlKVa@wČ@w@aÇU¯n@@wġakaōK@Å»VakUWmķwkbğ¥mLak@ġÞ°¯xVVÞ@VxVVWxXlxU@k²WVÅULmèULVĊklĠVJVx±nů¦mwğ@mlğkkl±@kUk@¯±ÇKkxl¤bImx"], encodeOffsets: [ [106099, 29279] ] } }, { type: "Feature", id: "5111", properties: { name: "乐山市", cp: [103.5791, 29.1742], childNum: 9 }, geometry: { type: "Polygon", coordinates: ["@@kVkÆkV²UlºÈIlxLXèÜlUXUmkbVèx°@@¼°Knnn@mÆIUbnJ@bVI°b°±@nK@mVakkKl¯nbmĸèl@VnÈlUUwwmwnm°¥LlLnU@VaImbkmKnk@mbLVJVUUVnkVmb@a¯JUaÆkk¥IW¥KlwÑmÝU¯kVy¯@@mmnUkmġè¯w@aU±mnW_XKWmkÇmUkóbUÝUanmW¯nma@xVôUV@b@l¼n@lb@xnÛaxa@yUÅmUÛbm°@mn²U°llĀȦlUV¼nJVxUzWz@`mL"], encodeOffsets: [ [105480, 29993] ] } }, { type: "Feature", id: "5113", properties: { name: "南充市", cp: [106.2048, 31.1517], childNum: 7 }, geometry: { type: "Polygon", coordinates: ["@@ȲVmLnblyl²²UUl°U°²L»knlx_V°@nnÞ`WL°ÈUVlnkV@l_JV@n@lnKV£ÇUV¯m@laXUUbVx@VkôJU°Jn@wUk°wnUV_nJmknmm¯Vwk¯ó¥±ÿL@wLVUkUbX¯mykI@a±Kk¦ULmaXVm¯Kz±klUIVbÇJkL¯lUÿUlUkJUmUUkVVklKk@@aU@J²x¦kĬ@¼±ºXnWbxU@xx@lL@bLlº@Èl@bU¦Vb@U@XbVkX¯m@nÇKkllknJV"], encodeOffsets: [ [107989, 32282] ] } }, { type: "Feature", id: "5119", properties: { name: "巴中市", cp: [107.0618, 31.9977], childNum: 4 }, geometry: { type: "Polygon", coordinates: ["@@VUlbkVVLUl@XIUxVxXkl@þĊnVlIVx@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çKXUWk_Ww¯WwÅk@UkVmwK£@mmmÅmÑkVmamnnlmIU`Vm¯xVlx@m¯IVóIUl@UwVaVWkb@nU°VÈU¤"], encodeOffsets: [ [108957, 32569] ] } }, { type: "Feature", id: "5105", properties: { name: "泸州市", cp: [105.4578, 28.493], childNum: 5 }, geometry: { type: "Polygon", coordinates: ["@@VVXwVKnwnVnl@b¯xmKUbVn°°X°@blLènV@Vnl@ULnmmUnaVV_ĶV@wnJl@@kkKVólaUwnJmwUlm@aUaôKVnJWbÞ@VwVLX¥VV_Þ`wWÞŹmmnIn¥W@kWV¯@°kILk¼Ç@k¤±XknmݯUlÅÛKWV¯klUwkLÓ@U@w@ġXVWX@UbVbV_kÇVlU°lnwŎ¦ÞaƯnmm¯Um¥nkVmkl_ó¥¯UÇl¯@Lk`¯ķLUy¯@mw¼ķ°ġ_ÅU°mlnÇVUÞ@_JUnVUXblĢb@x@mV°Èb@xċ@@xUbkLWkL@ºzV@lxĠ±²"], encodeOffsets: [ [107674, 29639] ] } }, { type: "Feature", id: "5101", properties: { name: "成都市", cp: [103.9526, 30.7617], childNum: 11 }, geometry: { type: "Polygon", coordinates: ["@@°n°m²°ÜUw²ôV°VkxÜźUŰČbĢlaÈL»@kwVÇ@nÛÆ»ÈUÝ°Kl_V°U`Vbn@VbÈLaVU@ƨ»VnIlUUa±lIk±@VnKmÅ@WaK¦lVōkKÝ@maXÇmw¯IU@kVwUmVIçÿU±Å@¯È@xK@wLUbÇKÅ@mÝ£@yóUóóUxkI@WlIUabaVĀLmxÅaWUnVÝXUþÆ°UÔÈÆ@±ºLnVVÒkóÆ"], encodeOffsets: [ [105492, 31534] ] } }, { type: "Feature", id: "5120", properties: { name: "资阳市", cp: [104.9744, 30.1575], childNum: 4 }, geometry: { type: "Polygon", coordinates: ["@@èUJVnxU@lV°JnxWÈnbÞ@lLŎUk¥LXbÆ@nmLU@zlbXmlnVynLçJVbUnómUnamUan¥lKV_²aValWôn@nbVK°¯VblW@kklUnlV£°W@wUXk°KVwmVkwVyVI@wkmVÅ_Umm@Uÿmbk£xUaVw±V¼V¤kLWxU@UkbyXóm°V@@zÝÒkKn±U@@_VVkÇaVwnLWalm@@kkVVl¦kIV`±n@wKk²aVUUV¤nkxmUkVWVnLUbVb`kUUmLUmX@`ÅbÇXbWLXn"], encodeOffsets: [ [106695, 31062] ] } }, { type: "Feature", id: "5104", properties: { name: "攀枝花市", cp: [101.6895, 26.7133], childNum: 3 }, geometry: { type: "Polygon", coordinates: ["@@bKÞnÞ@xV@xnUn°¼V±mç²ÝÆ@wnnVWnôn_@¥UaVbÆÈÜn¥Æ±VUwVmXÿmLkal¯km@k@¯bkVxmVUkk@Ua@¯»UnmÑ@mzm@īÑX¥Ç@ÝxU¦ÅÇUkx@lbUWVXmV@xĵĖ±@@¯xUÆLnÆmx@nXL±lUUVwKWak@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@baVbkJ@XlJVwôôôV@zÞ¤@nÆÈLVaK@xL@w°ÇÆ@²VĀmWXKWaÈÆa@_nWVnKVlV_UaVamKXUWwnmmwÑm£@ynUkWĉUkWVkkV±çkJmkKK¯¦mnnxxVxVÇkUmk@çķnmak°LllUb@nmL@¯²¯aUJ@amIVaÅJnm@mm¯L@»¯@wUçanlVWVÛkWçKkwÇJk¹±VUÅlġV²ÈÆnXĖV`U°ab£lkVVn¼mVnbèÈn°"], encodeOffsets: [ [105683, 30685] ] } }, { type: "Feature", id: "5116", properties: { name: "广安市", cp: [106.6333, 30.4376], childNum: 5 }, geometry: { type: "Polygon", coordinates: ["@@VlIVkVĀVk°lKÈIUaVJlk²yLn°UWnbVKl¥²L@blJnzW°alV°Inô¯KkKkkbVmôLkéwVk@KnnWlwn@laXLnXVW@X°a@XKlnw@man@w@na@@wĕġġwUkUWb@mk@¦¥mUÛb±yÅn@bml@kV@lknVbmVnlmbÇk¯bWyk@V_UamJ@I@WaVXamIVWkUkbVaUUx@VnkVU¼bkKUxmK@WxnV@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¯lLln@UVÅlwUm²UVVna@@KnbVVwÆImXwWkIVwÝĕVUaIèmKUzkmWnka@y@l²kJ²VbVkmJUƧ¼@UVbÇKUam@Ua_¯VUk`¯LVÞÇżmÜ@UÈx@l¼ÇKkbWVxUbƦnxƦĊV"], encodeOffsets: [ [106594, 32457] ] } }, { type: "Feature", id: "5110", properties: { name: "内江市", cp: [104.8535, 29.6136], childNum: 4 }, geometry: { type: "Polygon", coordinates: ["@@²èlUUllXĊVXlmV@zn¤ÒnxmnXxlUnVlwmU£VVUbl±L@x²mU_lJ¥UklU@ln@kXbmKUxÈblUU@`V@²mlLÞÑ@yU@¯ônWzaVlV@XwlKU£»aVaUwm@mwUVUwklVDzLlKVm_@ykUm@mUçkKmxkIUÝ@LUJ@n±kºLXb¼@mmIXa@mamnkWKUx_U`UklwUwmUbV²akbmkn@`UmÒVxUbI`UaÝÈ"], encodeOffsets: [ [106774, 30342] ] } }, { type: "Feature", id: "5109", properties: { name: "遂宁市", cp: [105.5347, 30.6683], childNum: 4 }, geometry: { type: "Polygon", coordinates: ["@@ÞĖUxlJXVb°@xUÞmbUxbXbm¤VX@lk°ln@xbÈ@lLVlVUXxlJç²UlwV@@UÈWlLw@wVwXaWm²¹@»lī¥w±I@V@bl@kLUllUVVn@mmUwXċbVb@VUkbmamW@ka@k@laUa@¯b@mmwó@@lkXUa¯°LUamm@ó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ÞÇbV_JVaUwnÑV@_lmnlab±UVanVxkxVlV_`wVLlXnmnb@WbnJ@n»WaKl¹²@mVI@KÞVlJnw@aW¯¯¯UmVanL°w@akmmUxmULWxUUÝKōèUKUkĉKL@ÆnX@xWȯ@Û»nÇÜÝLka@bKnUaVm_xkLX¦Jl¦ÅlVb°I@bnaUmlUVUVIUKa@nmlnLlnaJUbV@"], 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}aekgKSuSsMß`¡CqZ·be@Q^o@gieMp]}}Ľc_Kk {ùA¡r[uom@ÑĥJiq©mʼnq¯Bq]ÙYgSåk_gwUisTE ĕiqiUEkue_OSsZaWKo¡qycY£w}ĩĕS§Z©SN¥SyLÑ¡±Ks^IYPdY[UoFp}´\\¬\\j]eÜò¤¡ā a\\bnU㺹Ìs¼j®[cíȈEĝĆ`ļf¶®K|VØDdKGpVnUFjpHF`B[pMºxÖjbpÎxp¬|ΟÜÒC²®ÜApZG~dÞàV¨|¸`|²tx~\\~|dFf^zGĄŚhdL\\hĸ¼OªP®lV`p\\]Xpllæ¤CpQ|oF}fMRiNSon_²qämMNM\\"], 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@[LaCIICBWKCEEG@WBQHCDFD@HSLEJI@IHWECFGAAEKCGDBFCBSBIDCKKHEADMJMFABKOKEQAA@IEEG@GIQAEK@OZEESMOLlu@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@DUÂ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@BIOEKJEBICFKaKPFAFSE@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[wepc¢·²^QEKIEKIgiQDkehY£uSDBMkUDOJDHC@GF@CAFBFEN@CQ@BeP@@G@HD@@MHQKi@[IGCOCESE@GMA_OcCGDu`a@VZzKDkJBLNXGDqKEWE@cFEFA@ISIi@@KMABJGBcMuFEzGVH\\ATSEUBeALCEMG@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@ETEBObLELJDFALIPFAJL@@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@IXIFEoGE[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~yFVNRrdJGzDPVFBCTNND\\UR@E`F@@Ip@IWGUoawOEE@ÏDgK{İEEMFëCb @KwOCDHHKBDJCDEEEAGHOABFABMCgDLSQ@CFEBMgYIDQINE@AUSwSAdYEHQMEyK[KI@GRMLE@@OqOoBOnpJ@BmEAFHL^FDB[C@BBDVFAHFJENB@sNEjQAMYsUgCSBGDJH@\\LjGR@NC@@G@HO@AfR@DM@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@ITURBRZNHNWRQoOj½fcqAqeiDÿÍyÓįFL|Ch@ÐFFxPpbHVJXo@@JCTR^BPABQA]^MB@bE@@FQBFVJRH@FXtPNZSBAja@@NDTLJrQTHFXZFB`"], 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±¡¸odfx\\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^FJFFJIbSCAFTJTIpKDGLBEKLBjHTVNBZWbE\\SBQGE@ATCRHDGEEKECBECxOhOfAZGA_YEEWSGqRKISC@Mb@BiTAMYsOEWG@IQEURA@EF@@acUOXQRYCUDCHDTEF[SUEgAYDcVGJM`iAWDWLQRMHUHgDsDBLHJFCFDFGHBFFVEAGHCJN@RJFPIhBD\\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ēAM¡Wa[MeqpQRMXMGQYQASV@J@NNXDPmBAtJXlveRLFGACFGAYf@^X@BPV@|HNPFA\\FNEEYBCnQGMDCDE\\IHFpEFWJ@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@[VMCSMADUECOHycIqMQEU}zkawENRDENB@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[EACJgOIE@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: ["@@DT@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: ["@@ƀǨə͌ƣǛɁ҄˽ʁˋΦɫϘƏḷ}Ӣ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: ["@@ỉŶÆگʉѬµє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ନύʐ֛ƛ˧ɚٙىʱٹ̕ϡΥŽˏ¥čȹAMϛƷࢵĿßˍ͝ޗBࠛGϛƅƊǑøʯeďષлࡽſউ҅Ɂ@˷ƂĥŦnĔȂ̎ЂҦʘӺǙܴǵނЂľƬūĺɳ@ǛƆ¥ȤǍēɥ¾ĊȡĊćɚٵːڹ˪ࠑ͘߁̨ݧʃ˝SਕɔڻʼnࠁʺƆו¾ʻƜƫҤ˳IE͓BᮝA᭯@ᡃ@ᠿ@៙@ᢡ@ࠛ@᠁@ᛷ@őFࠜδຽΐҳݖŤԨΨƧڴ৭؎iѠҲКwՌෙॠՁޑϚ֣ΈѿѢࡇ˕ࠇҹݛւדπࠋɸࠟ|JⷎNᷲ༬ȭЙ࢘û݆ΖৰˀఢĹ఼τ൘Ⱦ־ΑظȠȊЄęෆݫ૦֬ŖّਔƐ͆ʖৰ·౼Λዸ̭ୄƛࠖÄଊэзຶǷᗘIJܒƦࣆԋࣴьࡩΦժ˼৾ڦĎڴȩࡊҗरäϛಬƄ௬oĭԺݞƦದ˵KߑՖڠڰuϞࡊ࣑কͺäघশ؎ૌƇࡘχଞॅݗЭ༠ǝ"], ["@@нϿሎʬୠщॊіސ˟یࠛфΒࡰ݊Ŭ࠲ƇशՆࠉʼץථеະЉĝσൡã՚͓˱ູ̯Ƃฃɪঋ»ཅ˷ᒃűāҕІଫɮݙģਛږ֔ĚಘƜஈરƦྷȞᅗãjѷ̴ዎͲಗ[ืɚ۶ـגͮᖬԠNj"], ["@@݉ևಹך˸Şٔȁ"], ["@@öɵࢿ|ࣟjࣿőʑ¼ऍѾ̠ИÈነěชң"], ["@@ڎԽޤڴᒆΈࢅůջဒʒߒͮሀыୄЏŊν༚Ȑ࢘᎐ܸͩߐϹጘչೲȁீޙೖÇʽכ้ঋਗά߲ઙĿŁӕࢪӥଜϯΌɟմࠩ́ɪᑏڨஎܣԕƎ̉ᗱͲᅩӤ৳Ц̌ʂయќТ`ʑᝡƅ܃˾ֆؤdႸņ˫̜̊оચࠊɳϊ͕˾౿Рၳ˺՞ɆࢷԺ´ڏ˸҇ʛŅᵝȈᄫʚഹŴۥ̐࢞ϦHˉ࡚٦ݨࡺ΄ᓪɢأի"], ["@@ǯຄńɖʑЕαƱݳ൝͗߳ê͎ᐡٮjˎ႖ĽएռসР"], ["@@࣓عय़Խ݆`кѮΨ࠰ɮცྈȱళݟǍ"], ["@@ᕍЙѷςኹѺήΤؘܰւࠑԦᭊƀǧᒰ±ࠄʑࣖΝ੍ɃᏝןਫי@ν"], ["@@ҙ͙Øৱɖ҂Ϛீɨܼ̬̍ˇ"], ["@@ٞϵљϣس൱đࣗƈjӬ൝ÝÁٮࣜౌ˺ஂµÜŎ"], ["@@̙͢ݠƘࢢƪЩԝЋ᭗Žᑯη౩mŅ˜პϊ④ij୯Ʈପࠐ߈ɾᛄ˳ӻฺÛறߨޔ̪ࢄĭ˲Џ"], ["@@ढ˓ကFܨˡȑ́८ȍՔȧଊ௬ëǼႊðീÏ࣒ͅȊԽɟభǷĸᜱŻႫcഫļᖁ˔̃ҦĹжࡇξĺঅʼ͂ΈႾÁ"], ["@@ŗ٣٩̇£༝ΫŹଗǼ@@ුؼႮծಆ[ସŬ"], ["@@ϣ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ŭޥVAAӁϛ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ߊɌࣴĴʼиÆ̚ƶӎKaEAࡑ@ѫ"], 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ˎ͞ŀàࢶϜƸ౦NBĎȺː¦Φž̖Ϣʲٺٚي˨ə֜Ɯώʏ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@DZJX´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ȣˌōlUȯŎKÆƅ°XÑܱnŗġV¯óaUƧUōŁÑ±çɲ¥lĉkğ°k¥nğţL¯ÝÝUƽĬlķ°@ōXÿݯV»ŹLʉÞɱŤĉó°ÝJ¦ÝKÝ£ţÜÈĉ@xǩUċƑ@ky͓¹`U²ĉVġ»ğa¯¥ť@ĉó@ŻÛÛJw¯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ŎçÅ°ȯȰÝ°óƒÆͿĉ»̽çnmɱĵƧºóUƽ@±wóL¯°̻L±Æ¯Vƴķb¯VÇ¥ğ²Ǖbk¥ÇKlÅɱġ@ÑóK@ÇaÝXğţxĉČǫķê¯K@ÑaŹƑK¼¯VóaónġwóÞéUġbóĉğÇl¹aUóğKWVůnÇŋƑķnʇ»óxĉwçÇ°Åw°ċXób±kÈÇJm²ţx@ÒÝŦǺnó¼n°ÇbUÒ±¼XĸĠłƽXmwĉºzÈÜmnxmx²Ė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°°ĸJkʠ¼Æw°¤ÈlxɆzČºĶI²ÆǔU°ô@Þ¦UnUĠ¼ŎÓĢ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@ĊXmmÑÆ»ȰÑ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¹ƨémanѱĕnwmwnÇÛyĉ¹ŹlŏkĵèķmōÞġKñÔċKÅèĉzômxȗÿƿI@þÅČÝKÝ°@¼ÈVº@ÅĢÆUċłnÝÆǕČĵJm£ÝJ¦@ĊxV°ƏLċ¼ǩ@m@ÅĢómÇÆğ¹ÇÆĖÞKxwô¦ÆÑÆL²ÆƾU±ŚÅŻĖ@ĬŤÈñ@ǔÇxÈǃ", "@@VÇţ°ğUĠ¯mk¯ó¥ķIġÿƏbĉa±ÒĸĀlKU_m»nwm@ÈŤ¦ĉ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ğnaċƨbVğ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ôÝĢLxÆLɲm²VlwÈ@Uƒ°¯ǖxĊmUÑƨa°Å°WV¹aÇɃÈm¥°¯ŹóĸķǫUm»Å¼ÇVɱlÝŋnķÇÝX¯ͩÇɳaÝ`±_U±ĵnWa@ĸóķ¯ǓV±ÅĵJċ¹Ʌykwǯ£Åxʟ»lķI¯X¯ķêǕȭnķ»Ź`±kÞ@Ýô@Þ°xŤŎIƨÆUxō¯²ǔĬǬlUŚ"], ["@@ÞĀlź¦¯ĸŤKÞċƨbVğ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ȁĊÝabŻ£¯°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ğnaÝţ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»nwm@ÈŤ¦ĉ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Ŏ¼źÇĢĠĕˎŁ°óƨ¼Èam@¥°wǔǖ°ƨÇŤġƨŎŃôbÈÛŎĊ°@Ġw²ÑÞJÆÆb²°êĊUÞlȲVÈKĊÒĸĉ»ÅôťUÅÇk¯@ÇÑklÇÅlĢVÑó@°@ÛĸV¯ÇĊn¯Uĕƽ¯m¯bÈ@Ò°Ĭbĵ¼kxķýÇJk£ÝaUÑÅóĶǟkÓʉnĉݼƑó»Þmn£mČ¯@ȮÿV¯ĸk@Ýów»ğġ±ǓLōV¼Əèķĉè±b@ÒţUÑóakl£Ó@¯L@ÇlUóȁ¯aġÈÅĕÝLķ¯Ė¯@WĬxÒÈnW°ţôU²ǓÓġ²V°¯ôǔÝLċk»Ý»Ý¯ÞVwÛÝÇōͩÈĉċ»ĉm¯£W¥ţKkóġƏW@¯±kōÈb@ÒÇaƯakóÛǦÝa¯Ýĉ@Ç»ÛmǓxķƛ¯lVĀÅÞġbÇJUÅVĖƑWzō»ōWn@è¯ÞóVkwƩnkźÇÞÒÞ¯ýğÇUxÆÈnè±bĉÝ»ÈŃwwÞ@m»ÈV@ýÇ°ķxaݯXċ¥ÈóW@ôkxlnxVÈóĊ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ÇýVUó£ğÇÑŹ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¦lKnĬȀƾÛ¦WÆÅmNJĉ°ōUţ¤UŎ°ŎKÞłÆǓ¦Þř¯bmUÝl¯Umğl¯£șwÅǫaÝnĉĶk@¯Kō»ĉnaÞ»ť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ĠÞĕklýƾťô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Ŏ±²¦ƐUlj°aÈÑŎbĢŎbÆ¥ÞIȘlôVÈUbkɲĶnmnXb̼òƾĖŎ@ĢȂÑôÓĠĖʊĊÔ"], 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Æķ¦klnŦmݼbĊmŎ¼L@°lĊĵÞmǬbÆȚx°¤Ġkn°VÞkVn°aŚÝǔ¥ÅÝŁōL¯ōVŤ£ŎVĊ¯nljÆXÅÜ¥ǿƽmīLkl¥ÿn¯ĊL°ķÈw°ĉ@ƑĸaV£ʈȣÞlôwÈ@ҼưºŐnmÆĸ¦UńÆVóĶLèôkÅ°lĬ¦ŹôôaÆôÇĢnèŎÈƨaĉ²VLĢ»lţôĉUÇwkmlw@óôXÇȦ°WÞbwĸȯ@þÇUn¼Ý@xxÇńÞ¼Ċ²amçÅÇVwĠÈþ°ÝÑÈÝlŹƪmlxôU°Ý@çmXŎŎ¼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Òó¯±Żĉ£ķÆÅLLjĉýţÛ¯VnV¤ÝÈ@°ÅÞݤŰğŁm¦ÝxóK¥ɱÈUĠôêVôÛ¼ÇWÝçĵaō¦óĖƧlÇĢƑnŎÇV¼¼ºÛ@m¦ƽĉmm¯ÝKÛç¯bŏłĬb¼ÅLmxť°Å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ķÑÜ@ÒóŚÝ¯°ĉówDZ¦ÅJUÒĉĀķw¯°mĖ¯±akxÝÅn»lÑK@¯lU¯UVѯóĊ¯mōğVǓƅÞWÝÈÛ@ƿô¯ÜġzÅþ¯ólmôʇġĊÅUͿřŏȁˋŁóÇˡōƧÇbw°Ķôk¦ÒnUþġÒÔkǔķèó@²@ŘōńĵyzġaݤÅI¤Ƀť¦ğѯ¤ķbó¯ó±U²°¤ČÜVnÈÆŚŎ°ôĢþÆzèVĀÇĀÇXŹÑ¯¤ówċķk¦łUÒġzÇ@ÆÝx@²Þ@ƤUô¦U°xU"], 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ÿwwÝw@¯mÞŗ°wĠĸkÞğlĔ²¦°@ĕĸwVóal@nĢÇĊn°@¦źUXçǔůĸVÆKÈÝĠ²ÅĔô@lÈ_mzǖlaU¼ôwV°¯¦ĬÈal@ČǼnIxô»ɜ@ƨ¥ɆŁŃǪȁ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ÒɳÒÅ»¯xVmbb¯Ý°UWéÛaxʉÛm¯ÝIUÇKk°VƧīķU°ȭĀ@ċ°nm¤Ý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Þ£ĢbyĶ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Č¼ÇĊŎͪÞÈÜxU°ÝÞÞ¼¼lČÞKǓ°óU¯Ģ±ǔÔV±ŤóX¯ÇmÑwXī°@°ĕĸÞKÆĖĢÇ°bȂÇŁUV¯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¤kVxl@°Ś²@y@ô¦¯@xxVxUVbVÜm¼ŎĢmºXXWÆ@ĀmmXU°ÅÒm¼Þx°w@°XêĠ°»nV°Ul@k@V±ôī@£ČŃÆ£KÞý@¥k@ya@nWVUVwm£Jknm@wmknXX¥mUUlUnb¯°nkVInlIUw°nmk@@mlanXlanmk@wVWUw_@éĠanmUaÜ£mX¥¯@@óUmݯ¯ÞÝlKnxô£»»ĠJ°aVUÝÿV¥ÛbI@wmón¯yÛL@WkÅmÈ`IWa¯K@¯mUnmaXmbmak¯ĢÒÝm¯mV¯KÇb¯KÛWWX@aVknċLUWVkXóW@ka@ób¯Uwmb¥UUlaU¥U£maķKXkmÝ@kwmѯk±ċbUUVakaġ¦kL@`a¯xmÅLUW@ċnÅUV°LkL@b°°@¤²nôôkl°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@°@¦WnÛ¤Vbmnğb@ê`VxUX@xÆÞUnnWÞĸĢÈ@Çè@zÛÜWÅêl²KnV¯ĖĊx@bk@@°JÆ£Èblnnm°nlUkVUUwVmKnnVÞxVLX¥laX@@xl@VzÈVmk@b°ÈĸmV¦`WXbUbbX¼°x@aVVkn@lþnXUlVxŤÅyIUkaIŎĊ@lXx@bz@ô¥_V@ln@ôy@al_l`nmÈ»@kmXwWKU¯»aÅ@wmUÝKUaUUwW@w²»@kÆV£mm£VKkÑV@@»nw¥@kÆnllIVlnLVakalknJWmnaUaVÑVVÞn¥m@¯Uÿl@VçaXaV¯UyVLVk@nJlXLlkxlbla²Òl@nVJVkxKlkUaVķÝÑU@Åm¯@±Uó°ğńķĠmUÑ@ǯ¯Å¼@nml@°¯¯`@w£@¯Çk@»nmċ¯U»I¯LÇĶÛn@bó°Uwm¯UmǯaI@ykIVU¯bIğ¼¼ó¤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@XbÞInlVUVwJVaUK°¥xmÞXnlKlnna°@ĊČÆwUmnkl@°£nyn@VV@Vak@@kÞÝbmx°Vnw°klÞInĖÞVlKl@Xa°KlVU@JnxU@ÈĢbUKlm@ak_wanWUk°l»k@Wk@lwU_@UalóU¥ÇnkJW@mVXx±bK@nV±a@Åa£ÝK²WknamKknÇk¯aVV¯ĀUÒ¥I@mm¯¯xÅW@@`k@ó»UU¯lm£ÅWlĵw@mmwÅmWU@y±UxmwU¯U¥Ý¥¯£m@kÇVUV°VbklLwUlUImk@±ÑkbkalwkWKkmI@UlUKVzU°WbbUè@kVĀ°@nm¦ÝUUUÒVbmbXnmIkllbUbmKUkkJmkÅ@l¦mx@¼U@lÒULn¤nU¤Å@l±¼@xXxVVVbÞLVn@xÆb°¼V"], encodeOffsets: [ [106504, 25037] ] } }, { type: "Feature", id: "5303", properties: { name: "曲靖市", cp: [103.9417, 25.7025], childNum: 9 }, geometry: { type: "Polygon", coordinates: ["@@ȦlKÞĕUV¯Um¯ÇVUnVVUĉnĊÇƾLn°°ÈJÆw@lbÞa¦VXJ°¯W¯aÞJVkUa@lKnÅmWUk¯a¯»@m±@ÑkkbWWX_WÓU»_lkÑm@U»m@l@IWċn¯l@VanVUVUVwVxKÈVmUē@n@VÝÆLwVVwnVlmkUVÑÇ°ka@kÿÝaÞUl£ċĕX±±ĉa@UnVnalónk@wlUVmkÝJaW@ÅwóVVnnb±°@óxXLWxn@lǼnmk_k`@bózm@kU@`¦ó@nW@ÜÅXWw@yb¦@ÒlnUb@xlÜk@²Ç@U¯bmy@kV@bb¦U`lLVx@bLl¼Þ¤@°VVÞU@WÞUbJ@nn@lnnmxUUUbK@ÇwklkUVWakn@lbU@@ULVxkKUn°¯Ò@¼km¦m@klȰ@lUl¦@Vl°wnnþĊUÆbUxbVĖU°annaVal@@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°knmKUxxVôUx°¼ôÒÈ°JlnÞKĠW°¦Vx²JVw_°¥@UV@@wnymknK¯I@²b°£V¥wUV¤nLkÆJÈwôô°l»Č¯ġVUU@@°ÝXl@U»°Å@U¯@w±¯VmUUlm@mÑnIVyUwmak£Vwm±@Çw@n@UxkwlÇnLmkÅ@±kka@kóJV¯Ç»U£lw¯Xalbl¥¯UX@aUaÈL@ÇVIVkaU¯mmakLWkUJ¯Umxn@kUx¯xmWÅīÝkkbŤbkxWmXwWk¯wKkLŤċń@¤óĬU²@@lk¯VmU¯¼@xV@k°l°kbU°nmVnU@°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: ["@@lbKVIUa@²m@bxôÒÜxXLmbnl@K°¼kUôxôlV¦nJUÆnm@xÆwbXÆôôLUVwôK@wlmaVw@WknmIUmlnJla@_@kÝmKUaÑm¯Xw°aUaVl»²JVbÆJkôĶĀ²VVkmbVwUówVwnLlmk¯maVw²¥Wk@XmV_WnÑUk@kó»UV¥ÝmVÑÅaÝUçV@¯VUmn¯mVlak¯l¯U@@wğWé¯@¯xÝw¯¯Jċa¯U¥mLU¤bÞȤbÇLWUwmIUVW¼kb`UVb¯L±ĊÛkÿÝKkwKţêUĉþÈV¯ÞVbU°KVk²ÝmImV@kmUkVxm¯KXÈķJU¦V°ULWxL@môb@bkx±LnVUVLnkÜWnwlLŃmW@kkJU_VWĊÞ"], encodeOffsets: [ [101408, 26770] ] } }, { type: "Feature", id: "5309", properties: { name: "临沧市", cp: [99.613, 24.0546], childNum: 8 }, geometry: { type: "Polygon", coordinates: ["@@xĢl`²X°Vx@x°Þ°KXağUÑWbnIl`X²°bxl°V@xVxk¦mbl@xXVÆzX¤Æk°kx@lźêlaX»VUnJVxXÈKaÝȣaV£nKV¦°Čb°I°n»ÆÑV¯nWn@ÿXÅWWn¹ġōn»ÛUaUVUww@w°ó¥@z±@ř¯@kUwlk£±aĵ¯Uĵ¦±±@bó±VÝ@ó¤w¯I@mÅóm±X¯IólK@°UllbzkKlln@@ÔºUmVk²ôÒxŎUVóLbmÈnmbnlax@z@Ʀk"], encodeOffsets: [ [101251, 24734] ] } }, { type: "Feature", id: "5334", properties: { name: "迪庆藏族自治州", cp: [99.4592, 27.9327], childNum: 3 }, geometry: { type: "Polygon", coordinates: ["@@WXw@akk@yk°īX¥Uóķ¯w@n»UaVaUÛ¯mV¼kÞċô@n¯xÛÒmV¯Ô@x@kwmÅa@UaݯVÅyVa@ÿn»ÝVmankmmÞÅô@n£±ğzÇmU¦VmnÜmbn@°nV@xmzÅ@mºV¦k°ln¤¼õôn@xkÆIUxU@Ť¦VmVkmkXW¤XzVx@Æx¼Þ¯b@lVĸÞVm¼Xm¦VÞ@ƹVón¥ÆKnKX¯x@èĊȱłXaÆxnlV@UÛlȻkğV¥m²ljmÅÞĕƒƛm°ÆmX¤mznÆV¦ÞVVb°bnÞWbn°l@VÈ@VĵĊ±@óInxÆw¥@£ÞW¯ĸ£UUKk±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: ["@@mnK@wmUÅ¥móXǓŏmX@VmL@xţnk@mlUŻÒğŋ@L@mmLkm@bXÅW¼ka¯lÇŹ¯aÇ»ÝÝ_@m@@a@UklwUm@ak@bUmbmbV¯ĕUaVwÅaĉVmým¯xUk@k¥VUX¤VÈm`@ńÇÜ@ĀknĔkƞÆĠÞUVôƆÞI@UxƦnl@ĊĊnxUÒ°¦Vb¯WUnWIml@xnUbô¤¼ÈxlI»KV@ÈÔJkUĖ±ÆVb@nVÜVUVLwĠlknĠ@nx°¥Æ²mUw@mmÅUl¯UÑÑUmLllIl±@VkwW@w°@U»kUóI°»ĢÑL`nUĠ²lmbôV@nJUxƦX¦l@ŎUV@lVKVÅV£UaÞUnW@¯VU@ó"], encodeOffsets: [ [107787, 28244] ] } }, { type: "Feature", id: "5301", properties: { name: "昆明市", cp: [102.9199, 25.4663], childNum: 11 }, geometry: { type: "Polygon", coordinates: ["@@n@VkVUn²°@x°V@¯ÆV¼k@WÞ¯@@VVUĢċ°k¼VĊx¤Ōx°mVkÑÈL°x°X°VmĊLVxUĖ°bX¦VW@kȯlkn@¥ln@»°Ñ¯VmlLUwVK@V@ka@lmXbUlVlkÈx@LVaVVwnmm@km@mIVaÝ@XVUݯU@Ý£k»K@aUwkKV_¥a@alU@nz°aVÈ@@±lÛk@wVakm@Ñ¥az@XxÆW@ÛX@m@y@aWw@kōĉJlbVJzţÆUwVkmWkým@UlU@b¯wVºUVUêĠXUaUbVĊUWXUmkKWnUUUVVVÝ@kk±¯Lk±WkXlVkl@wXbmLVUIVmk@Ubma@kkaVKUkmlXLWnJ¯ÒĊ°@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°ÓUnÜÑ°w@mČóÝlU»n°VÜUbVbm¼@°xôĸVW¦¯Ĭl@zll@bWxXaX@ÆĠÆaXwl@XaƦn¼Jn@mnKW¯È»V¯°akVanXVwl@VyUĕVUbÈīlaUk°k¯l²VUkƛô@I@mVwĊaVakaÆbUVLaXIWKUwaWÑÅKUaVk°@Uw¯¥XğÝLkm¯IÇóѯ»anUl±UĵÿlóÅIaU±Ik¼UVb¯bWxn°ÒVbnLlÞ@@`kbmIkVnJmnXl@Uxbkn@xóLUxVKóóÅWaÅxw@nÅmVôXLlVU¤b¦m¼@ĀbUzUÆ°ÞVb@Æbnx"], encodeOffsets: [ [101937, 28227] ] } }, { type: "Feature", id: "5328", properties: { name: "西双版纳傣族自治州", cp: [100.8984, 21.8628], childNum: 3 }, geometry: { type: "Polygon", coordinates: ["@@l²°nÒlxÞ@nWlLĸnbV¤V¦kbVV¦nax°Vôa@b@lôXlWUVXČKlmU@bWXXÜ°LÈa°LnU°ÞnÑġ°lnba¯¯KWó@kmK@UĉV@k°VV¹a@y_ċl_nÓlL@anI@óWl£VUlkĕlKVwU@kVam¯ÅL@bÝk@VnUbÇbÝwÅ@ċ¥¯lk¼ÅÒ°b@¦nlUn@ÇVmÆbWôU@ÝÅōm¯aUmkWWw@±n¯UèaL¯mLkwl@°mnÈÒ¯ów@VxĀ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ޣȺlkUUw¯UĕVwĊ@n¦mlnVĸIWÇ°LnUwlVn@lnUnJÞl±U¯LVUa°ÝUÇĊýVŤéLlxÞLĀÜl²ĉ°KUaV_Źé@klw¯lÅW£ÅyUW@wknal¥Uw@wUk¯w¯aW±k_mJaXVÒĠWb¯L¯Ý@wwU¯±Wk_ġwwōKmb@¤bk°lĖôUJVnÅlťU¯°VbnbWxXmÞWUĀLyWzÛKmbUxVKknÝkVĀċ¤Ux@¯m@¦"], encodeOffsets: [ [100440, 25943] ] } }, { type: "Feature", id: "5304", properties: { name: "玉溪市", cp: [101.9312, 23.8898], childNum: 9 }, geometry: { type: "Polygon", coordinates: ["@@lL°xXlWxXnlwaţlaÞlÆĬnX°wVwl@mnw°VVIXllKbnnV°lbUUJ@ÈÇKVb@bW°Vk¦kaWb°kxV¤È¼U°ôI@llbl²@@ó@mm@VţkKl¹@yĉ¯°ÑIXmWKnklVULlb@lnbVal@UnVJUnKWax@lkkUlW²XlK°l²@lÞUUUVVVXmlLVnXWVUĉVaVbWğVéUVU¹W»aVaaWX_U¥nÇķ¯@alUnÇUyk@@wW@kbW¦UKÝwUmmLUnVxUVVlk¯mmnmkÇaŤ¯I@l@@aĉw°ĕmUL±kÆéXÜÛ@yÈç@ÇġÝķXmmÝVÅlmnkbmWkb@nl@nm¯VxkJmUJml¯°makVVnV¦WWmnl@xmnlI¤nxUVUmX@b@zl@¦Ýþ"], encodeOffsets: [ [103703, 24874] ] } }, { type: "Feature", id: "5333", properties: { name: "怒江傈僳族自治州", cp: [99.1516, 26.5594], childNum: 4 }, geometry: { type: "Polygon", coordinates: ["@@WyX£lWlnnUU¥@ţVVwJlÅ@wmöó»£kml¯U¥n¹Æ@ny@wmU@¯mnamÛnUV¥ÈnĠy²m¤@ÆónÝnmlnbÞU¥aV£kUKWómIU¥ókwVól»¯Lk@mnaWKÛwóÑw@a±n@VbUJLkaÝXĉUV`lI@lnXÆƑkKmxÛXmlUKVmU²Klw@aaó@nKXwVKU¯V¥mUnkm¥ĉ@UxVĖ°VxVklmÞkKWĀkVWnl°Lnm@°UxlV@nk¦JVÈ°VÒ@nX°@ÆlUômlnô²nxmłnVV¯x@Èm°XblVUl°@xkXU¤WXXWXÆmkÅJmÞw±bxUīkKmÅVUĖÝèVkx@lXlnk¤LkĖk¦xUL°¯Ė@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Č£ÿUlÞlmULVwnaÜLXyzKVÿXÝnWXwmaUa°¯VŦÆkUmVIókĕl¯a@£nama@¯m¯ó@óyţbġkÅm±ÛammVkLwU`Wk@VkUmÅlUUKmbkkUVUw¦ó°¼bn°ô¦lºz@x¯@U°nU¤ţU°VƆ@ÈmlnzÞl°¦ÆaxUxLkxWƒ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: ["@@@VbVl@XnUXKV@¦nxlUXVnKVmnLUV@bn¤lLXK²`nnlJXIVJIVnn°KnnVll@VLXWV@UkVaVKzV@VVaUK@U»VUl@@WnUU@wVLn@Vwl@XW°LVbn@VU@Xl`@XnKVbkl@XVJlUnlVxlL@lnXl@VUnV°°@aUVLXblWVXn@VVUV@L¤VLVUVbnalLUUVX_laVaWVzXKV@@a@KUmImmXama@kU@yVIUKaVa@kXK@aWU@VIUmW@kkVmU@VwUa@K@k@U`@kUKVk@UV@VaUm²Vy@klUUWUkVmUa@_KVaXaXmU@mUlWkaUX@mmkL@wJnVVÅbWKXa@@I@aJUUÇ@VULW@akLmb@K@aXXw@mVmUVkUy@£@aU@@VkUWm@kUKXUWU_mW@wkkmJUUkLWWUXW@IkJ@k@mW_kÓ_UlLm@I@aUa¯m@ka¯LUJ@mVVxUba@LUKkXbm@Uak@@a@Um`IUbUJ@nUVW@@LnVV@lUbVlUX@`@blXklWUmXlm¦U@@V¯bml@@nUb@llnn@VbX@lV@UVULmU@JVnbVbkbVWxU@@nUVk@"], encodeOffsets: [ [121546, 28992] ] } }, { type: "Feature", id: "3301", properties: { name: "杭州市", cp: [119.5313, 29.8773], childNum: 6 }, geometry: { type: "Polygon", coordinates: ["@@X@l°KXXlWb@²`bIX`l@@bWl@n@VnLUV@V@°¦@l@XVlU@@xVbUb@Vkb@@XVJVzJ@LÞ@VmLUxUJ@LUVxbxXUl@VaÈwbaÞa@Vl@XUVx@V@VLlbnVal@lbVnnLnKnL@VlbVJXalIb@KUU@mVInJUVl@xUVLnU@UÞaV@lkV@UanKL@UlKVUnbÆmn@@nUlVnVJl@@UXUL@WVIVJVxVLXV@IÜKnbn@V¥V@@I@y°b@UUwnk°ÆƨVlUçXm£aÇIkV@WV@@aWIUWUIkb@WW@UnK@UU@kaWVkVIVVnU@UWVUV@VmVkKkWIkVWaULU`UImJUImmU@wmwUVIUWVkUamaU@mVkb@KVU@aVU@anKULVJU@kÛUJUVkkVakU@aVwkW@UWkXmWaULUaUK@XJUUmVU@UVUkJ@ImwmKU@k@lUW@@akKmkamIkWl_UwVm@UkaVUUa@UamakbWlkL@aUalU@mkL@U@UlmK@XkKm@Ýakb@xnXb`nUUU@U@wU@@mKkkV¯U@lULUbVbUb@Va@LºÝb@bLmKx@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`VXWVL@lXnlV@UV@@b@¤VzUlnVU@nWxW@b@LnalK@bXVKUÈ@VVI@b@J@WbXLÆaUUmI@xlKnn@VWlbkXV@nVWnWbUbL@`VbUnVlVXkV@lUz±VnUbU@@VUlVL@l_@V@l@LVbV@XLV`VÈlxn@lU@aaVVk@XJ@nl@@LU`°LVbL°a@aUVy@anI@aanV@²wÜJX@VVV°kna@WVkaWwU@m@kaUĕÝÝŤnÈaaóI»@±XWkUķ@kV±kwUkWwUÝ»ÛkɳlImaUaWóXÿǬkUnWVmmkKţnŏÞğlUlUx@XWbV@JkX°mb@VULVxUVk@@LWWk@WIkUkJmUkVmI@y@UakLmU@mUUUkaVk@mK@UlUU@UmKmbUUUJ@n@KVLUL@VkJWXX`mnULWlkL@JVLVb@°kxkU@LVV@VLV`UL@VUX"], encodeOffsets: [ [122502, 28334] ] } }, { type: "Feature", id: "3302", properties: { name: "宁波市", cp: [121.5967, 29.6466], childNum: 6 }, geometry: { type: "Polygon", coordinates: ["@@Ċ¦ĸĀ°nXÞVKkƨƑźÿ°»n@wô¥ÜbU°ÆXÞWóçĉݱIUÈ¥@U°wÆ»²mm_@aXVKÞVlk@akk̅@£X»VwÆXWa¯aȗbKƽŰĊxLók@@¯nKUL@xkLÑkWULUUmJUXVU@mUX¯@V`mbXbV@@nn¤WXx@kJ@nVVUVl²UbÝVUVk@Wx@V@VXzmlaL@VlLU`XUVVVUnl@VbnJlnUVVnlUKkbmnnVxlJnxmbU@UL@KUVX@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ÑÆwlƏÈóVĭVǓ@ĉwɛkmK@ĉXīWaĉUĵÝm¯ĉwĉ±±nż¯x@VǦV²JĊÞôèÝXÅW¯VÛaó¦@xm¯¼ŹĀ"], encodeOffsets: [ [124437, 30983] ] } }, { type: "Feature", id: "3310", properties: { name: "台州市", cp: [121.1353, 28.6688], childNum: 7 }, geometry: { type: "Polygon", coordinates: ["@@lVIVWVz@bXJl@Xal@°nLll@nVxnVK@UJVb¦°k`UIWJXnÆ@bUJXl@lbWn@UzVV@bVVmVnnJVXnabKUKnUVVUnVLlKVLXaJm£@mU@WanaU_°@VWnV@UVWnIVVVKlXÒlK@wVKL°m@l@ôKwĉƾůUl£@»UVkm@ƅUaÛIŏmUk@mw@a£Wk@ţIm±@ankôUlaUUw¯ōabÇbţmÞÞVĖbl@@nVXxbUl@Xmb¯lUUUW@ÛI±xU@mb@bmJ@bUzV@b¯bKUa¯KV_@Kk@@mWI@lUUb@bkVm@kwUÇU_WKU@Ux@VUnllX@VnJ@UXV@bWL@lUbbVLUJ@zV@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`lXnJlbnlL@bX@V@klV@nLnx@JlIVU@VUVnVVI@WVLVbVKXbWnXl@VlXUxb@lVUbllVUIÜVnalKX@@bV@@aUUlUwUw@naWWUVaUUaVbLlxXJVk°UlkU¥@ka@LVlXLVlVWznVn@lxJl_@WX_@mVaa@alU@kVVnaKVLlKb@UUaVabnUWmXU@k@yVI@aÅWmXIVJl_¯¥UaVI@LmUUw@mkkmK¯k@Wbk@WI@aUyUXJkU@bU@WLUyXUbkbW`UVVkKmbUaVUUK£@KVUUUm@UWkXWaUKV@b¯¯mUV@UkmW@kkKwUmkkVUI@WlkUamL@Wk_W@UVm@Ua¯KWXk@Uxm@UK@xVmV@Xk@UVV¼@VLUbUU@yULUbVlU@@XlVUVVbU@lXXVW@XUVl@@VUVÈn@VVU@lVa@UmL@`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@UwnLK@aÞa¹@Kb@UVaUaVaVK@k°VUllnL@V@xV@V@VVm_Wam@wlaÞbn@lL@WnLk@V@VlK@nkVVb@blKXklakw@wVK@kVW@UXK@_W@_nKV@Ub@kVUUm@ÇVU@Uk@VU@WUXWW@kVUaVUkU@WWXUKk@Ukmm¯LmmUJUIWJkImm_±WLkKm£@aVUmKUnLmWUkVmw@¥ULVWm@WUka@UmmLmm@@bUX@@WUIm@UVUK@UVUUUVVJmb@bXnmV¼nnn¦mJUVLV@VW@UzUlVnUbl`UnVl@XU@kl@bmÈUxVk@@J@¼W@ÅaVVnzmV@WJk@kWJ@lXbWbXxmVnlLXb@°lKVXnWbWVXmbV@XlbI@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_VKXblUXJllLUUnU@UVVX@mVUUUJlXUlbV@@VLVmX@@XlaVJVXXJ@b@XU@lUJÈb¤ŌJçVUUnml@@kna@wWVU@LVKV@namwkIUwmnmlaVLkUmVUkmmIUak@VmUUVUWV_kK@UKbnkWyU@@UXwl@VUÞUVak±VUUU@mlI@wXWIWbUKkLUKVmUUmVVLLambUWmIUmnUU@aUUVym@Xkak@W@z@lWVXnmVaUbVb@VakLUKLmbUU@lkV@bbUb@nW`@Xk`Ikwm@mUXyUUkWKUk@Kb@lV¦klV¯UlWIkwKUabVVUbVXXmb@VxxkVVV@bU@@aW@kLmb@lVUIVKmL@bUV@bUV@LalnUV@nbVbUlVXJVUnx"], encodeOffsets: [ [122997, 30561] ] } }, { type: "Feature", id: "3304", properties: { name: "嘉兴市", cp: [120.9155, 30.6354], childNum: 6 }, geometry: { type: "Polygon", coordinates: ["@@@blIX@@VÜVUnn@lklKnI°Þl`²LVKVbnbVaVLUVn@W¦@VkVVb@VI`@blLnLaX@VVb@U@XlVa@@kVaUKV»U_lWXU@albk@VllnLVKn@@UVIUw@y°IVVXU@VV@lwm@wVkƾaJLkΡƧƒlLÝUmW¯ķÿĉ¥IŋWnèkVƧU¯ÅmlVx@V¯az@@JU@U¦m@@nVmn@VLV"], encodeOffsets: [ [123233, 31382] ] } }, { type: "Feature", id: "3305", properties: { name: "湖州市", cp: [119.8608, 30.7782], childNum: 4 }, geometry: { type: "Polygon", coordinates: ["@@kLlkm@VmÛU@UW@kJ@aUK@UnmmU@maÛL@JWUUKUwUIUJ@XKWV@Vk@UIUmVk@mm@ÅnmaUVkL@VKmLVbU@klU@ÝbV@mVUKV@wUkVmIUJ@nVV@LakJWbUIka@UmKmLKmmUUVk@@nmLX`WXUV@@nUlkmlU@UbxVVIlVnn@@nUÒ@°n@@xmb@VbnV@@b@`@L@L@x@blVklVbnnV@aXb°VlU@Wb°ULXWVUVVwÈwÜ»ĸaĠnUVw²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);