|
|
! 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 = '<img style="vertical-align:middle" src="' + o + '" title="' + (window.ActiveXObject || "ActiveXObject" in window ? "右键->图片另存为" : 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} <br/>{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 += "<br/>" + 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) + "<br/>" + this._encodeHTML(W[0].indicator) + " : " + this.numAddCommas(W[0].value);
|
|
|
for (var Y = 1, X = W.length; X > Y; Y++) {
|
|
|
M += "<br/>" + this._encodeHTML(W[Y].name) + "<br/>", 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) + "<br/>" : "") + ("" === 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 ? "" : "<br />";
|
|
|
for (var s = 0; s < r.length; s++) {
|
|
|
l += this._encodeHTML(r[s].text) + " : " + this.numAddCommas(p[s]) + "<br />"
|
|
|
}
|
|
|
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) + "<br/>" : "") + H + " -> " + I + " (" + this.numAddCommas(p) + ")<br />" + 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 ? "" : "<br />", s = s.evolution;
|
|
|
for (var H = 0, I = s.length; I > H; H++) {
|
|
|
l += '<div style="padding-top:5px;">', s[H].detail && (s[H].detail.img && (l += '<img src="' + s[H].detail.img + '" style="float:left;width:40px;height:40px;">'), l += '<div style="margin-left:45px;">' + s[H].time + "<br/>", l += '<a href="' + s[H].detail.link + '" target="_blank">', l += s[H].detail.text + "</a></div>", l += "</div>")
|
|
|
}
|
|
|
return l
|
|
|
}
|
|
|
},
|
|
|
_styleAxisPointer: function(K, X, N, Q, H, R, T, W) {
|
|
|
if (K.length > 0) {
|
|
|
var O, M, P = this.option.tooltip.axisPointer,
|
|
|
aa = P.type,
|
|
|
Z = {
|
|
|
line: {},
|
|
|
cross: {},
|
|
|
shadow: {}
|
|
|
};
|
|
|
for (var J in Z) {
|
|
|
Z[J].color = P[J + "Style"].color, Z[J].width = P[J + "Style"].width, Z[J].type = P[J + "Style"].type
|
|
|
}
|
|
|
for (var S = 0, I = K.length; I > S; S++) {
|
|
|
O = K[S], M = this.query(O, "tooltip.axisPointer.type"), aa = M || aa, M && (Z[M].color = this.query(O, "tooltip.axisPointer." + M + "Style.color") || Z[M].color, Z[M].width = this.query(O, "tooltip.axisPointer." + M + "Style.width") || Z[M].width, Z[M].type = this.query(O, "tooltip.axisPointer." + M + "Style.type") || Z[M].type)
|
|
|
}
|
|
|
if ("line" === aa) {
|
|
|
var Y = Z.line.width,
|
|
|
ab = X == Q;
|
|
|
this._axisLineShape.style = {
|
|
|
xStart: ab ? this.subPixelOptimize(X, Y) : X,
|
|
|
yStart: ab ? N : this.subPixelOptimize(N, Y),
|
|
|
xEnd: ab ? this.subPixelOptimize(Q, Y) : Q,
|
|
|
yEnd: ab ? H : this.subPixelOptimize(H, Y),
|
|
|
strokeColor: Z.line.color,
|
|
|
lineWidth: Y,
|
|
|
lineType: Z.line.type
|
|
|
}, this._axisLineShape.invisible = !1, this.zr.modShape(this._axisLineShape.id)
|
|
|
} else {
|
|
|
if ("cross" === aa) {
|
|
|
var L = Z.cross.width;
|
|
|
this._axisCrossShape.style = {
|
|
|
brushType: "stroke",
|
|
|
rect: this.component.grid.getArea(),
|
|
|
x: this.subPixelOptimize(T, L),
|
|
|
y: this.subPixelOptimize(W, L),
|
|
|
text: ("( " + this.component.xAxis.getAxis(0).getValueFromCoord(T) + " , " + this.component.yAxis.getAxis(0).getValueFromCoord(W) + " )").replace(" , ", " ").replace(" , ", " "),
|
|
|
textPosition: "specific",
|
|
|
strokeColor: Z.cross.color,
|
|
|
lineWidth: L,
|
|
|
lineType: Z.cross.type
|
|
|
}, this.component.grid.getXend() - T > 100 ? (this._axisCrossShape.style.textAlign = "left", this._axisCrossShape.style.textX = T + 10) : (this._axisCrossShape.style.textAlign = "right", this._axisCrossShape.style.textX = T - 10), W - this.component.grid.getY() > 50 ? (this._axisCrossShape.style.textBaseline = "bottom", this._axisCrossShape.style.textY = W - 10) : (this._axisCrossShape.style.textBaseline = "top", this._axisCrossShape.style.textY = W + 10), this._axisCrossShape.invisible = !1, this.zr.modShape(this._axisCrossShape.id)
|
|
|
} else {
|
|
|
"shadow" === aa && ((null == Z.shadow.width || "auto" === Z.shadow.width || isNaN(Z.shadow.width)) && (Z.shadow.width = R), X === Q ? Math.abs(this.component.grid.getX() - X) < 2 ? (Z.shadow.width /= 2, X = Q += Z.shadow.width / 2) : Math.abs(this.component.grid.getXend() - X) < 2 && (Z.shadow.width /= 2, X = Q -= Z.shadow.width / 2) : N === H && (Math.abs(this.component.grid.getY() - N) < 2 ? (Z.shadow.width /= 2, N = H += Z.shadow.width / 2) : Math.abs(this.component.grid.getYend() - N) < 2 && (Z.shadow.width /= 2, N = H -= Z.shadow.width / 2)), this._axisShadowShape.style = {
|
|
|
xStart: X,
|
|
|
yStart: N,
|
|
|
xEnd: Q,
|
|
|
yEnd: H,
|
|
|
strokeColor: Z.shadow.color,
|
|
|
lineWidth: Z.shadow.width
|
|
|
}, this._axisShadowShape.invisible = !1, this.zr.modShape(this._axisShadowShape.id))
|
|
|
}
|
|
|
}
|
|
|
this.zr.refreshNextFrame()
|
|
|
}
|
|
|
},
|
|
|
__onmousemove: function(p) {
|
|
|
if (clearTimeout(this._hidingTicket), clearTimeout(this._showingTicket), !this._mousein || !this._enterable) {
|
|
|
var K = p.target,
|
|
|
s = y.getX(p.event),
|
|
|
I = y.getY(p.event);
|
|
|
if (K) {
|
|
|
this._curTarget = K, this._event = p.event, this._event.zrenderX = s, this._event.zrenderY = I;
|
|
|
var m;
|
|
|
if (this._needAxisTrigger && this.component.polar && -1 != (m = this.component.polar.isInside([s, I]))) {
|
|
|
for (var J = this.option.series, H = 0, r = J.length; r > H; H++) {
|
|
|
if (J[H].polarIndex === m && "axis" === this.deepQuery([J[H], this.option], "tooltip.trigger")) {
|
|
|
this._curTarget = null;
|
|
|
break
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
this._showingTicket = setTimeout(this._tryShow, this._showDelay)
|
|
|
} else {
|
|
|
this._curTarget = !1, this._event = p.event, this._event.zrenderX = s, this._event.zrenderY = I, this._needAxisTrigger && this.component.grid && G.isInside(C, this.component.grid.getArea(), s, I) ? this._showingTicket = setTimeout(this._tryShow, this._showDelay) : this._needAxisTrigger && this.component.polar && -1 != this.component.polar.isInside([s, I]) ? this._showingTicket = setTimeout(this._tryShow, this._showDelay) : (!this._event.connectTrigger && this.messageCenter.dispatch(D.EVENT.TOOLTIP_OUT_GRID, this._event, null, this.myChart), this._hidingTicket = setTimeout(this._hide, this._hideDelay))
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
__onglobalout: function() {
|
|
|
clearTimeout(this._hidingTicket), clearTimeout(this._showingTicket), this._hidingTicket = setTimeout(this._hide, this._hideDelay)
|
|
|
},
|
|
|
__setContent: function(a, i) {
|
|
|
this._tDom && (a === this._curTicket && (this._tDom.innerHTML = i), setTimeout(this._refixed, 20))
|
|
|
},
|
|
|
ontooltipHover: function(a, o) {
|
|
|
if (!this._lastTipShape || this._lastTipShape && this._lastTipShape.dataIndex != a.dataIndex) {
|
|
|
this._lastTipShape && this._lastTipShape.tipShape.length > 0 && (this.zr.delShape(this._lastTipShape.tipShape), this.shapeList.length = 2);
|
|
|
for (var l = 0, m = o.length; m > l; l++) {
|
|
|
o[l].zlevel = this.getZlevelBase(), o[l].z = this.getZBase(), o[l].style = B.prototype.getHighlightStyle(o[l].style, o[l].highlightStyle), o[l].draggable = !1, o[l].hoverable = !1, o[l].clickable = !1, o[l].ondragend = null, o[l].ondragover = null, o[l].ondrop = null, this.shapeList.push(o[l]), this.zr.addShape(o[l])
|
|
|
}
|
|
|
this._lastTipShape = {
|
|
|
dataIndex: a.dataIndex,
|
|
|
tipShape: o
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
ondragend: function() {
|
|
|
this._hide()
|
|
|
},
|
|
|
onlegendSelected: function(a) {
|
|
|
this._selectedMap = a.selected
|
|
|
},
|
|
|
_setSelectedMap: function() {
|
|
|
this._selectedMap = this.component.legend ? q.clone(this.component.legend.getSelectedMap()) : {}
|
|
|
},
|
|
|
_isSelected: function(a) {
|
|
|
return null != this._selectedMap[a] ? this._selectedMap[a] : !0
|
|
|
},
|
|
|
showTip: function(J) {
|
|
|
if (J) {
|
|
|
var T, M = this.option.series;
|
|
|
if (null != J.seriesIndex) {
|
|
|
T = J.seriesIndex
|
|
|
} else {
|
|
|
for (var P = J.seriesName, l = 0, Q = M.length; Q > l; l++) {
|
|
|
if (M[l].name === P) {
|
|
|
T = l;
|
|
|
break
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
var S = M[T];
|
|
|
if (null != S) {
|
|
|
var O = this.myChart.chart[S.type],
|
|
|
Y = "axis" === this.deepQuery([S, this.option], "tooltip.trigger");
|
|
|
if (O) {
|
|
|
if (Y) {
|
|
|
var X = J.dataIndex;
|
|
|
switch (O.type) {
|
|
|
case D.CHART_TYPE_LINE:
|
|
|
case D.CHART_TYPE_BAR:
|
|
|
case D.CHART_TYPE_K:
|
|
|
case D.CHART_TYPE_RADAR:
|
|
|
if (null == this.component.polar || S.data[0].value.length <= X) {
|
|
|
return
|
|
|
}
|
|
|
var I = S.polarIndex || 0,
|
|
|
R = this.component.polar.getVector(I, X, "max");
|
|
|
this._event = {
|
|
|
zrenderX: R[0],
|
|
|
zrenderY: R[1]
|
|
|
}, this._showPolarTrigger(I, X)
|
|
|
}
|
|
|
} else {
|
|
|
var H, W, Z = O.shapeList;
|
|
|
switch (O.type) {
|
|
|
case D.CHART_TYPE_LINE:
|
|
|
case D.CHART_TYPE_BAR:
|
|
|
case D.CHART_TYPE_K:
|
|
|
case D.CHART_TYPE_TREEMAP:
|
|
|
case D.CHART_TYPE_SCATTER:
|
|
|
for (var X = J.dataIndex, l = 0, Q = Z.length; Q > l; l++) {
|
|
|
if (null == Z[l]._mark && x.get(Z[l], "seriesIndex") == T && x.get(Z[l], "dataIndex") == X) {
|
|
|
this._curTarget = Z[l], H = Z[l].style.x, W = O.type != D.CHART_TYPE_K ? Z[l].style.y : Z[l].style.y[0];
|
|
|
break
|
|
|
}
|
|
|
}
|
|
|
break;
|
|
|
case D.CHART_TYPE_RADAR:
|
|
|
for (var X = J.dataIndex, l = 0, Q = Z.length; Q > l; l++) {
|
|
|
if ("polygon" === Z[l].type && x.get(Z[l], "seriesIndex") == T && x.get(Z[l], "dataIndex") == X) {
|
|
|
this._curTarget = Z[l];
|
|
|
var R = this.component.polar.getCenter(S.polarIndex || 0);
|
|
|
H = R[0], W = R[1];
|
|
|
break
|
|
|
}
|
|
|
}
|
|
|
break;
|
|
|
case D.CHART_TYPE_PIE:
|
|
|
for (var L = J.name, l = 0, Q = Z.length; Q > l; l++) {
|
|
|
if ("sector" === Z[l].type && x.get(Z[l], "seriesIndex") == T && x.get(Z[l], "name") == L) {
|
|
|
this._curTarget = Z[l];
|
|
|
var s = this._curTarget.style,
|
|
|
K = (s.startAngle + s.endAngle) / 2 * Math.PI / 180;
|
|
|
H = this._curTarget.style.x + Math.cos(K) * s.r / 1.5, W = this._curTarget.style.y - Math.sin(K) * s.r / 1.5;
|
|
|
break
|
|
|
}
|
|
|
}
|
|
|
break;
|
|
|
case D.CHART_TYPE_MAP:
|
|
|
for (var L = J.name, N = S.mapType, l = 0, Q = Z.length; Q > l; l++) {
|
|
|
if ("text" === Z[l].type && Z[l]._mapType === N && Z[l].style._name === L) {
|
|
|
this._curTarget = Z[l], H = this._curTarget.style.x + this._curTarget.position[0], W = this._curTarget.style.y + this._curTarget.position[1];
|
|
|
break
|
|
|
}
|
|
|
}
|
|
|
break;
|
|
|
case D.CHART_TYPE_CHORD:
|
|
|
for (var L = J.name, l = 0, Q = Z.length; Q > l; l++) {
|
|
|
if ("sector" === Z[l].type && x.get(Z[l], "name") == L) {
|
|
|
this._curTarget = Z[l];
|
|
|
var s = this._curTarget.style,
|
|
|
K = (s.startAngle + s.endAngle) / 2 * Math.PI / 180;
|
|
|
return H = this._curTarget.style.x + Math.cos(K) * (s.r - 2), W = this._curTarget.style.y - Math.sin(K) * (s.r - 2), void this.zr.trigger(v.EVENT.MOUSEMOVE, {
|
|
|
zrenderX: H,
|
|
|
zrenderY: W
|
|
|
})
|
|
|
}
|
|
|
}
|
|
|
break;
|
|
|
case D.CHART_TYPE_FORCE:
|
|
|
for (var L = J.name, l = 0, Q = Z.length; Q > l; l++) {
|
|
|
if ("circle" === Z[l].type && x.get(Z[l], "name") == L) {
|
|
|
this._curTarget = Z[l], H = this._curTarget.position[0], W = this._curTarget.position[1];
|
|
|
break
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
null != H && null != W && (this._event = {
|
|
|
zrenderX: H,
|
|
|
zrenderY: W
|
|
|
}, this.zr.addHoverShape(this._curTarget), this.zr.refreshHover(), this._showItemTrigger())
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
hideTip: function() {
|
|
|
this._hide()
|
|
|
},
|
|
|
refresh: function(m) {
|
|
|
if (this._zrHeight = this.zr.getHeight(), this._zrWidth = this.zr.getWidth(), this._lastTipShape && this._lastTipShape.tipShape.length > 0 && this.zr.delShape(this._lastTipShape.tipShape), this._lastTipShape = !1, this.shapeList.length = 2, this._lastDataIndex = -1, this._lastSeriesIndex = -1, this._lastItemTriggerId = -1, m) {
|
|
|
this.option = m, this.option.tooltip = this.reformOption(this.option.tooltip), this.option.tooltip.textStyle = q.merge(this.option.tooltip.textStyle, this.ecTheme.textStyle), this._needAxisTrigger = !1, "axis" === this.option.tooltip.trigger && (this._needAxisTrigger = !0);
|
|
|
for (var r = this.option.series, o = 0, p = r.length; p > o; o++) {
|
|
|
if ("axis" === this.query(r[o], "tooltip.trigger")) {
|
|
|
this._needAxisTrigger = !0;
|
|
|
break
|
|
|
}
|
|
|
}
|
|
|
this._showDelay = this.option.tooltip.showDelay, this._hideDelay = this.option.tooltip.hideDelay, this._defaultCssText = this._style(this.option.tooltip), this._setSelectedMap(), this._axisLineWidth = this.option.tooltip.axisPointer.lineStyle.width, this._enterable = this.option.tooltip.enterable, !this._enterable && this._tDom.className.indexOf(v.elementClassName) < 0 && (this._tDom.className += " " + v.elementClassName)
|
|
|
}
|
|
|
if (this.showing) {
|
|
|
var l = this;
|
|
|
setTimeout(function() {
|
|
|
l.zr.trigger(v.EVENT.MOUSEMOVE, l.zr.handler._event)
|
|
|
}, 50)
|
|
|
}
|
|
|
},
|
|
|
onbeforDispose: function() {
|
|
|
this._lastTipShape && this._lastTipShape.tipShape.length > 0 && this.zr.delShape(this._lastTipShape.tipShape), clearTimeout(this._hidingTicket), clearTimeout(this._showingTicket), this.zr.un(v.EVENT.MOUSEMOVE, this._onmousemove), this.zr.un(v.EVENT.GLOBALOUT, this._onglobalout), this.hasAppend && this.dom.firstChild && this.dom.firstChild.removeChild(this._tDom), this._tDom = null
|
|
|
},
|
|
|
_encodeHTML: function(a) {
|
|
|
return String(a).replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'")
|
|
|
}
|
|
|
}, q.inherits(E, w), u("../component").define("tooltip", E), E
|
|
|
}), d("echarts/component/legend", ["require", "./base", "zrender/shape/Text", "zrender/shape/Rectangle", "zrender/shape/Sector", "../util/shape/Icon", "../util/shape/Candle", "../config", "zrender/tool/util", "zrender/tool/area", "../component"], function(p) {
|
|
|
function B(l, F, m, i, s) {
|
|
|
if (!this.query(i, "legend.data")) {
|
|
|
return void console.error("option.legend.data has not been defined.")
|
|
|
}
|
|
|
u.call(this, l, F, m, i, s);
|
|
|
var E = this;
|
|
|
E._legendSelected = function(a) {
|
|
|
E.__legendSelected(a)
|
|
|
}, E._dispatchHoverLink = function(a) {
|
|
|
return E.__dispatchHoverLink(a)
|
|
|
}, this._colorIndex = 0, this._colorMap = {}, this._selectedMap = {}, this._hasDataMap = {}, this.refresh(i)
|
|
|
}
|
|
|
var u = p("./base"),
|
|
|
x = p("zrender/shape/Text"),
|
|
|
j = p("zrender/shape/Rectangle"),
|
|
|
y = p("zrender/shape/Sector"),
|
|
|
z = p("../util/shape/Icon"),
|
|
|
A = p("../util/shape/Candle"),
|
|
|
v = p("../config");
|
|
|
v.legend = {
|
|
|
zlevel: 0,
|
|
|
z: 4,
|
|
|
show: !0,
|
|
|
orient: "horizontal",
|
|
|
x: "center",
|
|
|
y: "top",
|
|
|
backgroundColor: "rgba(0,0,0,0)",
|
|
|
borderColor: "#ccc",
|
|
|
borderWidth: 0,
|
|
|
padding: 5,
|
|
|
itemGap: 10,
|
|
|
itemWidth: 20,
|
|
|
itemHeight: 14,
|
|
|
textStyle: {
|
|
|
color: "#333"
|
|
|
},
|
|
|
selectedMode: !0
|
|
|
};
|
|
|
var q = p("zrender/tool/util"),
|
|
|
w = p("zrender/tool/area");
|
|
|
B.prototype = {
|
|
|
type: v.COMPONENT_TYPE_LEGEND,
|
|
|
_buildShape: function() {
|
|
|
if (this.legendOption.show) {
|
|
|
this._itemGroupLocation = this._getItemGroupLocation(), this._buildBackground(), this._buildItem();
|
|
|
for (var a = 0, i = this.shapeList.length; i > a; a++) {
|
|
|
this.zr.addShape(this.shapeList[a])
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
_buildItem: function() {
|
|
|
var F, O, I, m, L, N, K, R, Q = this.legendOption.data,
|
|
|
E = Q.length,
|
|
|
M = this.legendOption.textStyle,
|
|
|
r = this.zr.getWidth(),
|
|
|
P = this.zr.getHeight(),
|
|
|
T = this._itemGroupLocation.x,
|
|
|
H = this._itemGroupLocation.y,
|
|
|
n = this.legendOption.itemWidth,
|
|
|
G = this.legendOption.itemHeight,
|
|
|
J = this.legendOption.itemGap;
|
|
|
"vertical" === this.legendOption.orient && "right" === this.legendOption.x && (T = this._itemGroupLocation.x + this._itemGroupLocation.width - n);
|
|
|
for (var S = 0; E > S; S++) {
|
|
|
L = q.merge(Q[S].textStyle || {}, M), N = this.getFont(L), F = this._getName(Q[S]), K = this._getFormatterName(F), "" !== F ? (O = Q[S].icon || this._getSomethingByName(F).type, R = this.getColor(F), "horizontal" === this.legendOption.orient ? 200 > r - T && n + 5 + w.getTextWidth(K, N) + (S === E - 1 || "" === Q[S + 1] ? 0 : J) >= r - T && (T = this._itemGroupLocation.x, H += G + J) : 200 > P - H && G + (S === E - 1 || "" === Q[S + 1] ? 0 : J) >= P - H && ("right" === this.legendOption.x ? T -= this._itemGroupLocation.maxWidth + J : T += this._itemGroupLocation.maxWidth + J, H = this._itemGroupLocation.y), I = this._getItemShapeByType(T, H, n, G, this._selectedMap[F] && this._hasDataMap[F] ? R : "#ccc", O, R), I._name = F, I = new z(I), m = {
|
|
|
zlevel: this.getZlevelBase(),
|
|
|
z: this.getZBase(),
|
|
|
style: {
|
|
|
x: T + n + 5,
|
|
|
y: H + G / 2,
|
|
|
color: this._selectedMap[F] ? "auto" === L.color ? R : L.color : "#ccc",
|
|
|
text: K,
|
|
|
textFont: N,
|
|
|
textBaseline: "middle"
|
|
|
},
|
|
|
highlightStyle: {
|
|
|
color: R,
|
|
|
brushType: "fill"
|
|
|
},
|
|
|
hoverable: !!this.legendOption.selectedMode,
|
|
|
clickable: !!this.legendOption.selectedMode
|
|
|
}, "vertical" === this.legendOption.orient && "right" === this.legendOption.x && (m.style.x -= n + 10, m.style.textAlign = "right"), m._name = F, m = new x(m), this.legendOption.selectedMode && (I.onclick = m.onclick = this._legendSelected, I.onmouseover = m.onmouseover = this._dispatchHoverLink, I.hoverConnect = m.id, m.hoverConnect = I.id), this.shapeList.push(I), this.shapeList.push(m), "horizontal" === this.legendOption.orient ? T += n + 5 + w.getTextWidth(K, N) + J : H += G + J) : "horizontal" === this.legendOption.orient ? (T = this._itemGroupLocation.x, H += G + J) : ("right" === this.legendOption.x ? T -= this._itemGroupLocation.maxWidth + J : T += this._itemGroupLocation.maxWidth + J, H = this._itemGroupLocation.y)
|
|
|
}
|
|
|
"horizontal" === this.legendOption.orient && "center" === this.legendOption.x && H != this._itemGroupLocation.y && this._mLineOptimize()
|
|
|
},
|
|
|
_getName: function(a) {
|
|
|
return "undefined" != typeof a.name ? a.name : a
|
|
|
},
|
|
|
_getFormatterName: function(a) {
|
|
|
var m, l = this.legendOption.formatter;
|
|
|
return m = "function" == typeof l ? l.call(this.myChart, a) : "string" == typeof l ? l.replace("{name}", a) : a
|
|
|
},
|
|
|
_getFormatterNameFromData: function(a) {
|
|
|
var i = this._getName(a);
|
|
|
return this._getFormatterName(i)
|
|
|
},
|
|
|
_mLineOptimize: function() {
|
|
|
for (var m = [], s = this._itemGroupLocation.x, o = 2, r = this.shapeList.length; r > o; o++) {
|
|
|
this.shapeList[o].style.x === s ? m.push((this._itemGroupLocation.width - (this.shapeList[o - 1].style.x + w.getTextWidth(this.shapeList[o - 1].style.text, this.shapeList[o - 1].style.textFont) - s)) / 2) : o === r - 1 && m.push((this._itemGroupLocation.width - (this.shapeList[o].style.x + w.getTextWidth(this.shapeList[o].style.text, this.shapeList[o].style.textFont) - s)) / 2)
|
|
|
}
|
|
|
for (var l = -1, o = 1, r = this.shapeList.length; r > o; o++) {
|
|
|
this.shapeList[o].style.x === s && l++, 0 !== m[l] && (this.shapeList[o].style.x += m[l])
|
|
|
}
|
|
|
},
|
|
|
_buildBackground: function() {
|
|
|
var a = this.reformCssArray(this.legendOption.padding);
|
|
|
this.shapeList.push(new j({
|
|
|
zlevel: this.getZlevelBase(),
|
|
|
z: this.getZBase(),
|
|
|
hoverable: !1,
|
|
|
style: {
|
|
|
x: this._itemGroupLocation.x - a[3],
|
|
|
y: this._itemGroupLocation.y - a[0],
|
|
|
width: this._itemGroupLocation.width + a[3] + a[1],
|
|
|
height: this._itemGroupLocation.height + a[0] + a[2],
|
|
|
brushType: 0 === this.legendOption.borderWidth ? "fill" : "both",
|
|
|
color: this.legendOption.backgroundColor,
|
|
|
strokeColor: this.legendOption.borderColor,
|
|
|
lineWidth: this.legendOption.borderWidth
|
|
|
}
|
|
|
}))
|
|
|
},
|
|
|
_getItemGroupLocation: function() {
|
|
|
var H = this.legendOption.data,
|
|
|
Q = H.length,
|
|
|
J = this.legendOption.itemGap,
|
|
|
L = this.legendOption.itemWidth + 5,
|
|
|
m = this.legendOption.itemHeight,
|
|
|
M = this.legendOption.textStyle,
|
|
|
O = this.getFont(M),
|
|
|
P = 0,
|
|
|
K = 0,
|
|
|
T = this.reformCssArray(this.legendOption.padding),
|
|
|
S = this.zr.getWidth() - T[1] - T[3],
|
|
|
G = this.zr.getHeight() - T[0] - T[2],
|
|
|
N = 0,
|
|
|
F = 0;
|
|
|
if ("horizontal" === this.legendOption.orient) {
|
|
|
K = m;
|
|
|
for (var R = 0; Q > R; R++) {
|
|
|
if ("" !== this._getName(H[R])) {
|
|
|
var W = w.getTextWidth(this._getFormatterNameFromData(H[R]), H[R].textStyle ? this.getFont(q.merge(H[R].textStyle || {}, M)) : O);
|
|
|
N + L + W + J > S ? (N -= J, P = Math.max(P, N), K += m + J, N = 0) : (N += L + W + J, P = Math.max(P, N - J))
|
|
|
} else {
|
|
|
N -= J, P = Math.max(P, N), K += m + J, N = 0
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
for (var R = 0; Q > R; R++) {
|
|
|
F = Math.max(F, w.getTextWidth(this._getFormatterNameFromData(H[R]), H[R].textStyle ? this.getFont(q.merge(H[R].textStyle || {}, M)) : O))
|
|
|
}
|
|
|
F += L, P = F;
|
|
|
for (var R = 0; Q > R; R++) {
|
|
|
"" !== this._getName(H[R]) ? N + m + J > G ? (P += F + J, N -= J, K = Math.max(K, N), N = 0) : (N += m + J, K = Math.max(K, N - J)) : (P += F + J, N -= J, K = Math.max(K, N), N = 0)
|
|
|
}
|
|
|
}
|
|
|
S = this.zr.getWidth(), G = this.zr.getHeight();
|
|
|
var I;
|
|
|
switch (this.legendOption.x) {
|
|
|
case "center":
|
|
|
I = Math.floor((S - P) / 2);
|
|
|
break;
|
|
|
case "left":
|
|
|
I = T[3] + this.legendOption.borderWidth;
|
|
|
break;
|
|
|
case "right":
|
|
|
I = S - P - T[1] - T[3] - 2 * this.legendOption.borderWidth;
|
|
|
break;
|
|
|
default:
|
|
|
I = this.parsePercent(this.legendOption.x, S)
|
|
|
}
|
|
|
var E;
|
|
|
switch (this.legendOption.y) {
|
|
|
case "top":
|
|
|
E = T[0] + this.legendOption.borderWidth;
|
|
|
break;
|
|
|
case "bottom":
|
|
|
E = G - K - T[0] - T[2] - 2 * this.legendOption.borderWidth;
|
|
|
break;
|
|
|
case "center":
|
|
|
E = Math.floor((G - K) / 2);
|
|
|
break;
|
|
|
default:
|
|
|
E = this.parsePercent(this.legendOption.y, G)
|
|
|
}
|
|
|
return {
|
|
|
x: I,
|
|
|
y: E,
|
|
|
width: P,
|
|
|
height: K,
|
|
|
maxWidth: F
|
|
|
}
|
|
|
},
|
|
|
_getSomethingByName: function(m) {
|
|
|
for (var H, s = this.option.series, E = 0, l = s.length; l > E; E++) {
|
|
|
if (s[E].name === m) {
|
|
|
return {
|
|
|
type: s[E].type,
|
|
|
series: s[E],
|
|
|
seriesIndex: E,
|
|
|
data: null,
|
|
|
dataIndex: -1
|
|
|
}
|
|
|
}
|
|
|
if (s[E].type === v.CHART_TYPE_PIE || s[E].type === v.CHART_TYPE_RADAR || s[E].type === v.CHART_TYPE_CHORD || s[E].type === v.CHART_TYPE_FORCE || s[E].type === v.CHART_TYPE_FUNNEL || s[E].type === v.CHART_TYPE_TREEMAP) {
|
|
|
H = s[E].categories || s[E].data || s[E].nodes;
|
|
|
for (var F = 0, G = H.length; G > F; F++) {
|
|
|
if (H[F].name === m) {
|
|
|
return {
|
|
|
type: s[E].type,
|
|
|
series: s[E],
|
|
|
seriesIndex: E,
|
|
|
data: H[F],
|
|
|
dataIndex: F
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return {
|
|
|
type: "bar",
|
|
|
series: null,
|
|
|
seriesIndex: -1,
|
|
|
data: null,
|
|
|
dataIndex: -1
|
|
|
}
|
|
|
},
|
|
|
_getItemShapeByType: function(E, M, G, I, l, J, K) {
|
|
|
var L, F = "#ccc" === l ? K : l,
|
|
|
H = {
|
|
|
zlevel: this.getZlevelBase(),
|
|
|
z: this.getZBase(),
|
|
|
style: {
|
|
|
iconType: "legendicon" + J,
|
|
|
x: E,
|
|
|
y: M,
|
|
|
width: G,
|
|
|
height: I,
|
|
|
color: l,
|
|
|
strokeColor: l,
|
|
|
lineWidth: 2
|
|
|
},
|
|
|
highlightStyle: {
|
|
|
color: F,
|
|
|
strokeColor: F,
|
|
|
lineWidth: 1
|
|
|
},
|
|
|
hoverable: this.legendOption.selectedMode,
|
|
|
clickable: this.legendOption.selectedMode
|
|
|
};
|
|
|
if (J.match("image")) {
|
|
|
var L = J.replace(new RegExp("^image:\\/\\/"), "");
|
|
|
J = "image"
|
|
|
}
|
|
|
switch (J) {
|
|
|
case "line":
|
|
|
H.style.brushType = "stroke", H.highlightStyle.lineWidth = 3;
|
|
|
break;
|
|
|
case "radar":
|
|
|
case "venn":
|
|
|
case "tree":
|
|
|
case "treemap":
|
|
|
case "scatter":
|
|
|
H.highlightStyle.lineWidth = 3;
|
|
|
break;
|
|
|
case "k":
|
|
|
H.style.brushType = "both", H.highlightStyle.lineWidth = 3, H.highlightStyle.color = H.style.color = this.deepQuery([this.ecTheme, v], "k.itemStyle.normal.color") || "#fff", H.style.strokeColor = "#ccc" != l ? this.deepQuery([this.ecTheme, v], "k.itemStyle.normal.lineStyle.color") || "#ff3200" : l;
|
|
|
break;
|
|
|
case "image":
|
|
|
H.style.iconType = "image", H.style.image = L, "#ccc" === l && (H.style.opacity = 0.5)
|
|
|
}
|
|
|
return H
|
|
|
},
|
|
|
__legendSelected: function(a) {
|
|
|
var m = a.target._name;
|
|
|
if ("single" === this.legendOption.selectedMode) {
|
|
|
for (var l in this._selectedMap) {
|
|
|
this._selectedMap[l] = !1
|
|
|
}
|
|
|
}
|
|
|
this._selectedMap[m] = !this._selectedMap[m], this.messageCenter.dispatch(v.EVENT.LEGEND_SELECTED, a.event, {
|
|
|
selected: this._selectedMap,
|
|
|
target: m
|
|
|
}, this.myChart)
|
|
|
},
|
|
|
__dispatchHoverLink: function(a) {
|
|
|
this.messageCenter.dispatch(v.EVENT.LEGEND_HOVERLINK, a.event, {
|
|
|
target: a.target._name
|
|
|
}, this.myChart)
|
|
|
},
|
|
|
refresh: function(m) {
|
|
|
if (m) {
|
|
|
this.option = m || this.option, this.option.legend = this.reformOption(this.option.legend), this.legendOption = this.option.legend;
|
|
|
var K, F, G, l, H = this.legendOption.data || [];
|
|
|
if (this.legendOption.selected) {
|
|
|
for (var I in this.legendOption.selected) {
|
|
|
this._selectedMap[I] = "undefined" != typeof this._selectedMap[I] ? this._selectedMap[I] : this.legendOption.selected[I]
|
|
|
}
|
|
|
}
|
|
|
for (var J = 0, E = H.length; E > J; J++) {
|
|
|
K = this._getName(H[J]), "" !== K && (F = this._getSomethingByName(K), F.series ? (this._hasDataMap[K] = !0, l = !F.data || F.type !== v.CHART_TYPE_PIE && F.type !== v.CHART_TYPE_FORCE && F.type !== v.CHART_TYPE_FUNNEL ? [F.series] : [F.data, F.series], G = this.getItemStyleColor(this.deepQuery(l, "itemStyle.normal.color"), F.seriesIndex, F.dataIndex, F.data), G && F.type != v.CHART_TYPE_K && this.setColor(K, G), this._selectedMap[K] = null != this._selectedMap[K] ? this._selectedMap[K] : !0) : this._hasDataMap[K] = !1)
|
|
|
}
|
|
|
}
|
|
|
this.clear(), this._buildShape()
|
|
|
},
|
|
|
getRelatedAmount: function(m) {
|
|
|
for (var J, E = 0, F = this.option.series, l = 0, G = F.length; G > l; l++) {
|
|
|
if (F[l].name === m && E++, F[l].type === v.CHART_TYPE_PIE || F[l].type === v.CHART_TYPE_RADAR || F[l].type === v.CHART_TYPE_CHORD || F[l].type === v.CHART_TYPE_FORCE || F[l].type === v.CHART_TYPE_FUNNEL) {
|
|
|
J = F[l].type != v.CHART_TYPE_FORCE ? F[l].data : F[l].categories;
|
|
|
for (var H = 0, I = J.length; I > H; H++) {
|
|
|
J[H].name === m && "-" != J[H].value && E++
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return E
|
|
|
},
|
|
|
setColor: function(a, i) {
|
|
|
this._colorMap[a] = i
|
|
|
},
|
|
|
getColor: function(a) {
|
|
|
return this._colorMap[a] || (this._colorMap[a] = this.zr.getColor(this._colorIndex++)), this._colorMap[a]
|
|
|
},
|
|
|
hasColor: function(a) {
|
|
|
return this._colorMap[a] ? this._colorMap[a] : !1
|
|
|
},
|
|
|
add: function(m, s) {
|
|
|
for (var o = this.legendOption.data, r = 0, l = o.length; l > r; r++) {
|
|
|
if (this._getName(o[r]) === m) {
|
|
|
return
|
|
|
}
|
|
|
}
|
|
|
this.legendOption.data.push(m), this.setColor(m, s), this._selectedMap[m] = !0, this._hasDataMap[m] = !0
|
|
|
},
|
|
|
del: function(a) {
|
|
|
for (var o = this.legendOption.data, l = 0, m = o.length; m > l; l++) {
|
|
|
if (this._getName(o[l]) === a) {
|
|
|
return this.legendOption.data.splice(l, 1)
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
getItemShape: function(a) {
|
|
|
if (null != a) {
|
|
|
for (var o, l = 0, m = this.shapeList.length; m > l; l++) {
|
|
|
if (o = this.shapeList[l], o._name === a && "text" != o.type) {
|
|
|
return o
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
setItemShape: function(m, s) {
|
|
|
for (var o, r = 0, l = this.shapeList.length; l > r; r++) {
|
|
|
o = this.shapeList[r], o._name === m && "text" != o.type && (this._selectedMap[m] || (s.style.color = "#ccc", s.style.strokeColor = "#ccc"), this.zr.modShape(o.id, s))
|
|
|
}
|
|
|
},
|
|
|
isSelected: function(a) {
|
|
|
return "undefined" != typeof this._selectedMap[a] ? this._selectedMap[a] : !0
|
|
|
},
|
|
|
getSelectedMap: function() {
|
|
|
return this._selectedMap
|
|
|
},
|
|
|
setSelected: function(a, m) {
|
|
|
if ("single" === this.legendOption.selectedMode) {
|
|
|
for (var l in this._selectedMap) {
|
|
|
this._selectedMap[l] = !1
|
|
|
}
|
|
|
}
|
|
|
this._selectedMap[a] = m, this.messageCenter.dispatch(v.EVENT.LEGEND_SELECTED, null, {
|
|
|
selected: this._selectedMap,
|
|
|
target: a
|
|
|
}, this.myChart)
|
|
|
},
|
|
|
onlegendSelected: function(a, o) {
|
|
|
var l = a.selected;
|
|
|
for (var m in l) {
|
|
|
this._selectedMap[m] != l[m] && (o.needRefresh = !0), this._selectedMap[m] = l[m]
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
var D = {
|
|
|
line: function(a, m) {
|
|
|
var l = m.height / 2;
|
|
|
a.moveTo(m.x, m.y + l), a.lineTo(m.x + m.width, m.y + l)
|
|
|
},
|
|
|
pie: function(m, F) {
|
|
|
var o = F.x,
|
|
|
s = F.y,
|
|
|
l = F.width,
|
|
|
E = F.height;
|
|
|
y.prototype.buildPath(m, {
|
|
|
x: o + l / 2,
|
|
|
y: s + E + 2,
|
|
|
r: E,
|
|
|
r0: 6,
|
|
|
startAngle: 45,
|
|
|
endAngle: 135
|
|
|
})
|
|
|
},
|
|
|
eventRiver: function(m, F) {
|
|
|
var r = F.x,
|
|
|
s = F.y,
|
|
|
l = F.width,
|
|
|
E = F.height;
|
|
|
m.moveTo(r, s + E), m.bezierCurveTo(r + l, s + E, r, s + 4, r + l, s + 4), m.lineTo(r + l, s), m.bezierCurveTo(r, s, r + l, s + E - 4, r, s + E - 4), m.lineTo(r, s + E)
|
|
|
},
|
|
|
k: function(m, F) {
|
|
|
var r = F.x,
|
|
|
s = F.y,
|
|
|
l = F.width,
|
|
|
E = F.height;
|
|
|
A.prototype.buildPath(m, {
|
|
|
x: r + l / 2,
|
|
|
y: [s + 1, s + 1, s + E - 6, s + E],
|
|
|
width: l - 6
|
|
|
})
|
|
|
},
|
|
|
bar: function(m, H) {
|
|
|
var s = H.x,
|
|
|
E = H.y + 1,
|
|
|
l = H.width,
|
|
|
F = H.height - 2,
|
|
|
G = 3;
|
|
|
m.moveTo(s + G, E), m.lineTo(s + l - G, E), m.quadraticCurveTo(s + l, E, s + l, E + G), m.lineTo(s + l, E + F - G), m.quadraticCurveTo(s + l, E + F, s + l - G, E + F), m.lineTo(s + G, E + F), m.quadraticCurveTo(s, E + F, s, E + F - G), m.lineTo(s, E + G), m.quadraticCurveTo(s, E, s + G, E)
|
|
|
},
|
|
|
force: function(a, i) {
|
|
|
z.prototype.iconLibrary.circle(a, i)
|
|
|
},
|
|
|
radar: function(F, O) {
|
|
|
var H = 6,
|
|
|
K = O.x + O.width / 2,
|
|
|
E = O.y + O.height / 2,
|
|
|
L = O.height / 2,
|
|
|
M = 2 * Math.PI / H,
|
|
|
N = -Math.PI / 2,
|
|
|
I = K + L * Math.cos(N),
|
|
|
G = E + L * Math.sin(N);
|
|
|
F.moveTo(I, G), N += M;
|
|
|
for (var J = 0, P = H - 1; P > J; J++) {
|
|
|
F.lineTo(K + L * Math.cos(N), E + L * Math.sin(N)), N += M
|
|
|
}
|
|
|
F.lineTo(I, G)
|
|
|
}
|
|
|
};
|
|
|
D.chord = D.pie, D.map = D.bar;
|
|
|
for (var C in D) {
|
|
|
z.prototype.iconLibrary["legendicon" + C] = D[C]
|
|
|
}
|
|
|
return q.inherits(B, u), p("../component").define("legend", B), B
|
|
|
}), d("echarts/util/ecData", [], function() {
|
|
|
function a(q, A, u, w, p, x, y, z) {
|
|
|
var v;
|
|
|
return "undefined" != typeof w && (v = null == w.value ? w : w.value), q._echartsData = {
|
|
|
_series: A,
|
|
|
_seriesIndex: u,
|
|
|
_data: w,
|
|
|
_dataIndex: p,
|
|
|
_name: x,
|
|
|
_value: v,
|
|
|
_special: y,
|
|
|
_special2: z
|
|
|
}, q._echartsData
|
|
|
}
|
|
|
|
|
|
function m(n, p) {
|
|
|
var o = n._echartsData;
|
|
|
if (!p) {
|
|
|
return o
|
|
|
}
|
|
|
switch (p) {
|
|
|
case "series":
|
|
|
case "seriesIndex":
|
|
|
case "data":
|
|
|
case "dataIndex":
|
|
|
case "name":
|
|
|
case "value":
|
|
|
case "special":
|
|
|
case "special2":
|
|
|
return o && o["_" + p]
|
|
|
}
|
|
|
return null
|
|
|
}
|
|
|
|
|
|
function j(n, p, o) {
|
|
|
switch (n._echartsData = n._echartsData || {}, p) {
|
|
|
case "series":
|
|
|
case "seriesIndex":
|
|
|
case "data":
|
|
|
case "dataIndex":
|
|
|
case "name":
|
|
|
case "value":
|
|
|
case "special":
|
|
|
case "special2":
|
|
|
n._echartsData["_" + p] = o
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function l(i, n) {
|
|
|
n._echartsData = {
|
|
|
_series: i._echartsData._series,
|
|
|
_seriesIndex: i._echartsData._seriesIndex,
|
|
|
_data: i._echartsData._data,
|
|
|
_dataIndex: i._echartsData._dataIndex,
|
|
|
_name: i._echartsData._name,
|
|
|
_value: i._echartsData._value,
|
|
|
_special: i._echartsData._special,
|
|
|
_special2: i._echartsData._special2
|
|
|
}
|
|
|
}
|
|
|
return {
|
|
|
pack: a,
|
|
|
set: j,
|
|
|
get: m,
|
|
|
clone: l
|
|
|
}
|
|
|
}), d("echarts/chart", [], function() {
|
|
|
var a = {},
|
|
|
i = {};
|
|
|
return a.define = function(e, j) {
|
|
|
return i[e] = j, a
|
|
|
}, a.get = function(j) {
|
|
|
return i[j]
|
|
|
}, a
|
|
|
}), d("zrender/tool/color", ["require", "../tool/util"], function(ae) {
|
|
|
function aG(a) {
|
|
|
ad = a
|
|
|
}
|
|
|
|
|
|
function am() {
|
|
|
ad = ax
|
|
|
}
|
|
|
|
|
|
function aw(a, i) {
|
|
|
return a = 0 | a, i = i || ad, i[a % i.length]
|
|
|
}
|
|
|
|
|
|
function q(a) {
|
|
|
Z = a
|
|
|
}
|
|
|
|
|
|
function ay() {
|
|
|
al = Z
|
|
|
}
|
|
|
|
|
|
function aC() {
|
|
|
return Z
|
|
|
}
|
|
|
|
|
|
function aE(p, B, v, x, m, y, z) {
|
|
|
az || (az = aB.getContext());
|
|
|
for (var A = az.createRadialGradient(p, B, v, x, m, y), w = 0, u = z.length; u > w; w++) {
|
|
|
A.addColorStop(z[w][0], z[w][1])
|
|
|
}
|
|
|
return A.__nonRecursion = !0, A
|
|
|
}
|
|
|
|
|
|
function ar(m, y, p, u, l) {
|
|
|
az || (az = aB.getContext());
|
|
|
for (var v = az.createLinearGradient(m, y, p, u), w = 0, x = l.length; x > w; w++) {
|
|
|
v.addColorStop(l[w][0], l[w][1])
|
|
|
}
|
|
|
return v.__nonRecursion = !0, v
|
|
|
}
|
|
|
|
|
|
function ak(v, E, x) {
|
|
|
v = aA(v), E = aA(E), v = an(v), E = an(E);
|
|
|
for (var A = [], p = (E[0] - v[0]) / x, B = (E[1] - v[1]) / x, C = (E[2] - v[2]) / x, D = (E[3] - v[3]) / x, y = 0, w = v[0], z = v[1], F = v[2], u = v[3]; x > y; y++) {
|
|
|
A[y] = aL([aF(Math.floor(w), [0, 255]), aF(Math.floor(z), [0, 255]), aF(Math.floor(F), [0, 255]), u.toFixed(4) - 0], "rgba"), w += p, z += B, F += C, u += D
|
|
|
}
|
|
|
return w = E[0], z = E[1], F = E[2], u = E[3], A[y] = aL([w, z, F, u], "rgba"), A
|
|
|
}
|
|
|
|
|
|
function au(m, w) {
|
|
|
var p = [],
|
|
|
s = m.length;
|
|
|
if (void 0 === w && (w = 20), 1 === s) {
|
|
|
p = ak(m[0], m[0], w)
|
|
|
} else {
|
|
|
if (s > 1) {
|
|
|
for (var l = 0, u = s - 1; u > l; l++) {
|
|
|
var v = ak(m[l], m[l + 1], w);
|
|
|
u - 1 > l && v.pop(), p = p.concat(v)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return p
|
|
|
}
|
|
|
|
|
|
function aL(a, m) {
|
|
|
if (m = m || "rgb", a && (3 === a.length || 4 === a.length)) {
|
|
|
if (a = ab(a, function(i) {
|
|
|
return i > 1 ? Math.ceil(i) : i
|
|
|
}), m.indexOf("hex") > -1) {
|
|
|
return "#" + ((1 << 24) + (a[0] << 16) + (a[1] << 8) + +a[2]).toString(16).slice(1)
|
|
|
}
|
|
|
if (m.indexOf("hs") > -1) {
|
|
|
var l = ab(a.slice(1, 3), function(i) {
|
|
|
return i + "%"
|
|
|
});
|
|
|
a[1] = l[0], a[2] = l[1]
|
|
|
}
|
|
|
return m.indexOf("a") > -1 ? (3 === a.length && a.push(1), a[3] = aF(a[3], [0, 1]), m + "(" + a.slice(0, 4).join(",") + ")") : m + "(" + a.slice(0, 3).join(",") + ")"
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function aJ(a) {
|
|
|
a = at(a), a.indexOf("rgba") < 0 && (a = aA(a));
|
|
|
var m = [],
|
|
|
l = 0;
|
|
|
return a.replace(/[\d.]+/g, function(i) {
|
|
|
i = 3 > l ? 0 | i : +i, m[l++] = i
|
|
|
}), m
|
|
|
}
|
|
|
|
|
|
function ac(a, o) {
|
|
|
if (!af(a)) {
|
|
|
return a
|
|
|
}
|
|
|
var l = an(a),
|
|
|
m = l[3];
|
|
|
return "undefined" == typeof m && (m = 1), a.indexOf("hsb") > -1 ? l = ah(l) : a.indexOf("hsl") > -1 && (l = aH(l)), o.indexOf("hsb") > -1 || o.indexOf("hsv") > -1 ? l = Q(l) : o.indexOf("hsl") > -1 && (l = av(l)), l[3] = m, aL(l, o)
|
|
|
}
|
|
|
|
|
|
function aA(a) {
|
|
|
return ac(a, "rgba")
|
|
|
}
|
|
|
|
|
|
function aa(a) {
|
|
|
return ac(a, "rgb")
|
|
|
}
|
|
|
|
|
|
function aI(a) {
|
|
|
return ac(a, "hex")
|
|
|
}
|
|
|
|
|
|
function aQ(a) {
|
|
|
return ac(a, "hsva")
|
|
|
}
|
|
|
|
|
|
function ai(a) {
|
|
|
return ac(a, "hsv")
|
|
|
}
|
|
|
|
|
|
function Y(a) {
|
|
|
return ac(a, "hsba")
|
|
|
}
|
|
|
|
|
|
function ag(a) {
|
|
|
return ac(a, "hsb")
|
|
|
}
|
|
|
|
|
|
function ap(a) {
|
|
|
return ac(a, "hsla")
|
|
|
}
|
|
|
|
|
|
function aO(a) {
|
|
|
return ac(a, "hsl")
|
|
|
}
|
|
|
|
|
|
function j(a) {
|
|
|
for (var i in aj) {
|
|
|
if (aI(aj[i]) === aI(a)) {
|
|
|
return i
|
|
|
}
|
|
|
}
|
|
|
return null
|
|
|
}
|
|
|
|
|
|
function at(a) {
|
|
|
return String(a).replace(/\s+/g, "")
|
|
|
}
|
|
|
|
|
|
function aN(a) {
|
|
|
if (aj[a] && (a = aj[a]), a = at(a), a = a.replace(/hsv/i, "hsb"), /^#[\da-f]{3}$/i.test(a)) {
|
|
|
a = parseInt(a.slice(1), 16);
|
|
|
var o = (3840 & a) << 8,
|
|
|
l = (240 & a) << 4,
|
|
|
m = 15 & a;
|
|
|
a = "#" + ((1 << 24) + (o << 4) + o + (l << 4) + l + (m << 4) + m).toString(16).slice(1)
|
|
|
}
|
|
|
return a
|
|
|
}
|
|
|
|
|
|
function aP(m, r) {
|
|
|
if (!af(m)) {
|
|
|
return m
|
|
|
}
|
|
|
var o = r > 0 ? 1 : -1;
|
|
|
"undefined" == typeof r && (r = 0), r = Math.abs(r) > 1 ? 1 : Math.abs(r), m = aa(m);
|
|
|
for (var p = an(m), l = 0; 3 > l; l++) {
|
|
|
p[l] = 1 === o ? p[l] * (1 - r) | 0 : (255 - p[l]) * r + p[l] | 0
|
|
|
}
|
|
|
return "rgb(" + p.join(",") + ")"
|
|
|
}
|
|
|
|
|
|
function aK(a) {
|
|
|
if (!af(a)) {
|
|
|
return a
|
|
|
}
|
|
|
var i = an(aA(a));
|
|
|
return i = ab(i, function(l) {
|
|
|
return 255 - l
|
|
|
}), aL(i, "rgb")
|
|
|
}
|
|
|
|
|
|
function aM(u, D, w) {
|
|
|
if (!af(u) || !af(D)) {
|
|
|
return u
|
|
|
}
|
|
|
"undefined" == typeof w && (w = 0.5), w = 1 - aF(w, [0, 1]);
|
|
|
for (var z = 2 * w - 1, p = an(aA(u)), A = an(aA(D)), B = p[3] - A[3], C = ((z * B === -1 ? z : (z + B) / (1 + z * B)) + 1) / 2, x = 1 - C, v = [], y = 0; 3 > y; y++) {
|
|
|
v[y] = p[y] * C + A[y] * x
|
|
|
}
|
|
|
var E = p[3] * w + A[3] * (1 - w);
|
|
|
return E = Math.max(0, Math.min(1, E)), 1 === p[3] && 1 === A[3] ? aL(v, "rgb") : (v[3] = E, aL(v, "rgba"))
|
|
|
}
|
|
|
|
|
|
function aq() {
|
|
|
return "#" + (Math.random().toString(16) + "0000").slice(2, 8)
|
|
|
}
|
|
|
|
|
|
function an(u) {
|
|
|
u = aN(u);
|
|
|
var D = u.match(aD);
|
|
|
if (null === D) {
|
|
|
throw new Error("The color format error")
|
|
|
}
|
|
|
var w, z, p, A = [];
|
|
|
if (D[2]) {
|
|
|
w = D[2].replace("#", "").split(""), p = [w[0] + w[1], w[2] + w[3], w[4] + w[5]], A = ab(p, function(a) {
|
|
|
return aF(parseInt(a, 16), [0, 255])
|
|
|
})
|
|
|
} else {
|
|
|
if (D[4]) {
|
|
|
var B = D[4].split(",");
|
|
|
z = B[3], p = B.slice(0, 3), A = ab(p, function(a) {
|
|
|
return a = Math.floor(a.indexOf("%") > 0 ? 2.55 * parseInt(a, 0) : a), aF(a, [0, 255])
|
|
|
}), "undefined" != typeof z && A.push(aF(parseFloat(z), [0, 1]))
|
|
|
} else {
|
|
|
if (D[5] || D[6]) {
|
|
|
var C = (D[5] || D[6]).split(","),
|
|
|
x = parseInt(C[0], 0) / 360,
|
|
|
v = C[1],
|
|
|
y = C[2];
|
|
|
z = C[3], A = ab([v, y], function(a) {
|
|
|
return aF(parseFloat(a) / 100, [0, 1])
|
|
|
}), A.unshift(x), "undefined" != typeof z && A.push(aF(parseFloat(z), [0, 1]))
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return A
|
|
|
}
|
|
|
|
|
|
function ao(a, m) {
|
|
|
if (!af(a)) {
|
|
|
return a
|
|
|
}
|
|
|
null === m && (m = 1);
|
|
|
var l = an(aA(a));
|
|
|
return l[3] = aF(Number(m).toFixed(4), [0, 1]), aL(l, "rgba")
|
|
|
}
|
|
|
|
|
|
function ab(a, o) {
|
|
|
if ("function" != typeof o) {
|
|
|
throw new TypeError
|
|
|
}
|
|
|
for (var l = a ? a.length : 0, m = 0; l > m; m++) {
|
|
|
a[m] = o(a[m])
|
|
|
}
|
|
|
return a
|
|
|
}
|
|
|
|
|
|
function aF(a, i) {
|
|
|
return a <= i[0] ? a = i[0] : a >= i[1] && (a = i[1]), a
|
|
|
}
|
|
|
|
|
|
function af(a) {
|
|
|
return a instanceof Array || "string" == typeof a
|
|
|
}
|
|
|
|
|
|
function ah(w) {
|
|
|
var G, y, B, u = w[0],
|
|
|
C = w[1],
|
|
|
E = w[2];
|
|
|
if (0 === C) {
|
|
|
G = 255 * E, y = 255 * E, B = 255 * E
|
|
|
} else {
|
|
|
var F = 6 * u;
|
|
|
6 === F && (F = 0);
|
|
|
var z = 0 | F,
|
|
|
x = E * (1 - C),
|
|
|
A = E * (1 - C * (F - z)),
|
|
|
I = E * (1 - C * (1 - (F - z))),
|
|
|
H = 0,
|
|
|
v = 0,
|
|
|
D = 0;
|
|
|
0 === z ? (H = E, v = I, D = x) : 1 === z ? (H = A, v = E, D = x) : 2 === z ? (H = x, v = E, D = I) : 3 === z ? (H = x, v = A, D = E) : 4 === z ? (H = I, v = x, D = E) : (H = E, v = x, D = A), G = 255 * H, y = 255 * v, B = 255 * D
|
|
|
}
|
|
|
return [G, y, B]
|
|
|
}
|
|
|
|
|
|
function aH(p) {
|
|
|
var A, u, w, m = p[0],
|
|
|
x = p[1],
|
|
|
y = p[2];
|
|
|
if (0 === x) {
|
|
|
A = 255 * y, u = 255 * y, w = 255 * y
|
|
|
} else {
|
|
|
var z;
|
|
|
z = 0.5 > y ? y * (1 + x) : y + x - x * y;
|
|
|
var v = 2 * y - z;
|
|
|
A = 255 * aR(v, z, m + 1 / 3), u = 255 * aR(v, z, m), w = 255 * aR(v, z, m - 1 / 3)
|
|
|
}
|
|
|
return [A, u, w]
|
|
|
}
|
|
|
|
|
|
function aR(a, m, l) {
|
|
|
return 0 > l && (l += 1), l > 1 && (l -= 1), 1 > 6 * l ? a + 6 * (m - a) * l : 1 > 2 * l ? m : 2 > 3 * l ? a + (m - a) * (2 / 3 - l) * 6 : a
|
|
|
}
|
|
|
|
|
|
function Q(u) {
|
|
|
var D, w, z = u[0] / 255,
|
|
|
p = u[1] / 255,
|
|
|
A = u[2] / 255,
|
|
|
B = Math.min(z, p, A),
|
|
|
C = Math.max(z, p, A),
|
|
|
x = C - B,
|
|
|
v = C;
|
|
|
if (0 === x) {
|
|
|
D = 0, w = 0
|
|
|
} else {
|
|
|
w = x / C;
|
|
|
var y = ((C - z) / 6 + x / 2) / x,
|
|
|
F = ((C - p) / 6 + x / 2) / x,
|
|
|
E = ((C - A) / 6 + x / 2) / x;
|
|
|
z === C ? D = E - F : p === C ? D = 1 / 3 + y - E : A === C && (D = 2 / 3 + F - y), 0 > D && (D += 1), D > 1 && (D -= 1)
|
|
|
}
|
|
|
return D = 360 * D, w = 100 * w, v = 100 * v, [D, w, v]
|
|
|
}
|
|
|
|
|
|
function av(u) {
|
|
|
var D, w, z = u[0] / 255,
|
|
|
p = u[1] / 255,
|
|
|
A = u[2] / 255,
|
|
|
B = Math.min(z, p, A),
|
|
|
C = Math.max(z, p, A),
|
|
|
x = C - B,
|
|
|
v = (C + B) / 2;
|
|
|
if (0 === x) {
|
|
|
D = 0, w = 0
|
|
|
} else {
|
|
|
w = 0.5 > v ? x / (C + B) : x / (2 - C - B);
|
|
|
var y = ((C - z) / 6 + x / 2) / x,
|
|
|
F = ((C - p) / 6 + x / 2) / x,
|
|
|
E = ((C - A) / 6 + x / 2) / x;
|
|
|
z === C ? D = E - F : p === C ? D = 1 / 3 + y - E : A === C && (D = 2 / 3 + F - y), 0 > D && (D += 1), D > 1 && (D -= 1)
|
|
|
}
|
|
|
return D = 360 * D, w = 100 * w, v = 100 * v, [D, w, v]
|
|
|
}
|
|
|
var az, aB = ae("../tool/util"),
|
|
|
ad = ["#ff9277", " #dddd00", " #ffc877", " #bbe3ff", " #d5ffbb", "#bbbbff", " #ddb000", " #b0dd00", " #e2bbff", " #ffbbe3", "#ff7777", " #ff9900", " #83dd00", " #77e3ff", " #778fff", "#c877ff", " #ff77ab", " #ff6600", " #aa8800", " #77c7ff", "#ad77ff", " #ff77ff", " #dd0083", " #777700", " #00aa00", "#0088aa", " #8400dd", " #aa0088", " #dd0000", " #772e00"],
|
|
|
ax = ad,
|
|
|
Z = "rgba(255,255,0,0.5)",
|
|
|
al = Z,
|
|
|
aD = /^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+%?)?)\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+)?)%?\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+)?)%?\s*\))\s*$/i,
|
|
|
aj = {
|
|
|
aliceblue: "#f0f8ff",
|
|
|
antiquewhite: "#faebd7",
|
|
|
aqua: "#0ff",
|
|
|
aquamarine: "#7fffd4",
|
|
|
azure: "#f0ffff",
|
|
|
beige: "#f5f5dc",
|
|
|
bisque: "#ffe4c4",
|
|
|
black: "#000",
|
|
|
blanchedalmond: "#ffebcd",
|
|
|
blue: "#00f",
|
|
|
blueviolet: "#8a2be2",
|
|
|
brown: "#a52a2a",
|
|
|
burlywood: "#deb887",
|
|
|
cadetblue: "#5f9ea0",
|
|
|
chartreuse: "#7fff00",
|
|
|
chocolate: "#d2691e",
|
|
|
coral: "#ff7f50",
|
|
|
cornflowerblue: "#6495ed",
|
|
|
cornsilk: "#fff8dc",
|
|
|
crimson: "#dc143c",
|
|
|
cyan: "#0ff",
|
|
|
darkblue: "#00008b",
|
|
|
darkcyan: "#008b8b",
|
|
|
darkgoldenrod: "#b8860b",
|
|
|
darkgray: "#a9a9a9",
|
|
|
darkgrey: "#a9a9a9",
|
|
|
darkgreen: "#006400",
|
|
|
darkkhaki: "#bdb76b",
|
|
|
darkmagenta: "#8b008b",
|
|
|
darkolivegreen: "#556b2f",
|
|
|
darkorange: "#ff8c00",
|
|
|
darkorchid: "#9932cc",
|
|
|
darkred: "#8b0000",
|
|
|
darksalmon: "#e9967a",
|
|
|
darkseagreen: "#8fbc8f",
|
|
|
darkslateblue: "#483d8b",
|
|
|
darkslategray: "#2f4f4f",
|
|
|
darkslategrey: "#2f4f4f",
|
|
|
darkturquoise: "#00ced1",
|
|
|
darkviolet: "#9400d3",
|
|
|
deeppink: "#ff1493",
|
|
|
deepskyblue: "#00bfff",
|
|
|
dimgray: "#696969",
|
|
|
dimgrey: "#696969",
|
|
|
dodgerblue: "#1e90ff",
|
|
|
firebrick: "#b22222",
|
|
|
floralwhite: "#fffaf0",
|
|
|
forestgreen: "#228b22",
|
|
|
fuchsia: "#f0f",
|
|
|
gainsboro: "#dcdcdc",
|
|
|
ghostwhite: "#f8f8ff",
|
|
|
gold: "#ffd700",
|
|
|
goldenrod: "#daa520",
|
|
|
gray: "#808080",
|
|
|
grey: "#808080",
|
|
|
green: "#008000",
|
|
|
greenyellow: "#adff2f",
|
|
|
honeydew: "#f0fff0",
|
|
|
hotpink: "#ff69b4",
|
|
|
indianred: "#cd5c5c",
|
|
|
indigo: "#4b0082",
|
|
|
ivory: "#fffff0",
|
|
|
khaki: "#f0e68c",
|
|
|
lavender: "#e6e6fa",
|
|
|
lavenderblush: "#fff0f5",
|
|
|
lawngreen: "#7cfc00",
|
|
|
lemonchiffon: "#fffacd",
|
|
|
lightblue: "#add8e6",
|
|
|
lightcoral: "#f08080",
|
|
|
lightcyan: "#e0ffff",
|
|
|
lightgoldenrodyellow: "#fafad2",
|
|
|
lightgray: "#d3d3d3",
|
|
|
lightgrey: "#d3d3d3",
|
|
|
lightgreen: "#90ee90",
|
|
|
lightpink: "#ffb6c1",
|
|
|
lightsalmon: "#ffa07a",
|
|
|
lightseagreen: "#20b2aa",
|
|
|
lightskyblue: "#87cefa",
|
|
|
lightslategray: "#789",
|
|
|
lightslategrey: "#789",
|
|
|
lightsteelblue: "#b0c4de",
|
|
|
lightyellow: "#ffffe0",
|
|
|
lime: "#0f0",
|
|
|
limegreen: "#32cd32",
|
|
|
linen: "#faf0e6",
|
|
|
magenta: "#f0f",
|
|
|
maroon: "#800000",
|
|
|
mediumaquamarine: "#66cdaa",
|
|
|
mediumblue: "#0000cd",
|
|
|
mediumorchid: "#ba55d3",
|
|
|
mediumpurple: "#9370d8",
|
|
|
mediumseagreen: "#3cb371",
|
|
|
mediumslateblue: "#7b68ee",
|
|
|
mediumspringgreen: "#00fa9a",
|
|
|
mediumturquoise: "#48d1cc",
|
|
|
mediumvioletred: "#c71585",
|
|
|
midnightblue: "#191970",
|
|
|
mintcream: "#f5fffa",
|
|
|
mistyrose: "#ffe4e1",
|
|
|
moccasin: "#ffe4b5",
|
|
|
navajowhite: "#ffdead",
|
|
|
navy: "#000080",
|
|
|
oldlace: "#fdf5e6",
|
|
|
olive: "#808000",
|
|
|
olivedrab: "#6b8e23",
|
|
|
orange: "#ffa500",
|
|
|
orangered: "#ff4500",
|
|
|
orchid: "#da70d6",
|
|
|
palegoldenrod: "#eee8aa",
|
|
|
palegreen: "#98fb98",
|
|
|
paleturquoise: "#afeeee",
|
|
|
palevioletred: "#d87093",
|
|
|
papayawhip: "#ffefd5",
|
|
|
peachpuff: "#ffdab9",
|
|
|
peru: "#cd853f",
|
|
|
pink: "#ffc0cb",
|
|
|
plum: "#dda0dd",
|
|
|
powderblue: "#b0e0e6",
|
|
|
purple: "#800080",
|
|
|
red: "#f00",
|
|
|
rosybrown: "#bc8f8f",
|
|
|
royalblue: "#4169e1",
|
|
|
saddlebrown: "#8b4513",
|
|
|
salmon: "#fa8072",
|
|
|
sandybrown: "#f4a460",
|
|
|
seagreen: "#2e8b57",
|
|
|
seashell: "#fff5ee",
|
|
|
sienna: "#a0522d",
|
|
|
silver: "#c0c0c0",
|
|
|
skyblue: "#87ceeb",
|
|
|
slateblue: "#6a5acd",
|
|
|
slategray: "#708090",
|
|
|
slategrey: "#708090",
|
|
|
snow: "#fffafa",
|
|
|
springgreen: "#00ff7f",
|
|
|
steelblue: "#4682b4",
|
|
|
tan: "#d2b48c",
|
|
|
teal: "#008080",
|
|
|
thistle: "#d8bfd8",
|
|
|
tomato: "#ff6347",
|
|
|
turquoise: "#40e0d0",
|
|
|
violet: "#ee82ee",
|
|
|
wheat: "#f5deb3",
|
|
|
white: "#fff",
|
|
|
whitesmoke: "#f5f5f5",
|
|
|
yellow: "#ff0",
|
|
|
yellowgreen: "#9acd32"
|
|
|
};
|
|
|
return {
|
|
|
customPalette: aG,
|
|
|
resetPalette: am,
|
|
|
getColor: aw,
|
|
|
getHighlightColor: aC,
|
|
|
customHighlight: q,
|
|
|
resetHighlight: ay,
|
|
|
getRadialGradient: aE,
|
|
|
getLinearGradient: ar,
|
|
|
getGradientColors: au,
|
|
|
getStepColors: ak,
|
|
|
reverse: aK,
|
|
|
mix: aM,
|
|
|
lift: aP,
|
|
|
trim: at,
|
|
|
random: aq,
|
|
|
toRGB: aa,
|
|
|
toRGBA: aA,
|
|
|
toHex: aI,
|
|
|
toHSL: aO,
|
|
|
toHSLA: ap,
|
|
|
toHSB: ag,
|
|
|
toHSBA: Y,
|
|
|
toHSV: ai,
|
|
|
toHSVA: aQ,
|
|
|
toName: j,
|
|
|
toColor: aL,
|
|
|
toArray: aJ,
|
|
|
alpha: ao,
|
|
|
getData: an
|
|
|
}
|
|
|
}), d("echarts/component/timeline", ["require", "./base", "zrender/shape/Rectangle", "../util/shape/Icon", "../util/shape/Chain", "../config", "zrender/tool/util", "zrender/tool/area", "zrender/tool/event", "../component"], function(p) {
|
|
|
function B(m, D, n, l, s) {
|
|
|
x.call(this, m, D, n, l, s);
|
|
|
var C = this;
|
|
|
if (C._onclick = function(a) {
|
|
|
return C.__onclick(a)
|
|
|
}, C._ondrift = function(a, i) {
|
|
|
return C.__ondrift(this, a, i)
|
|
|
}, C._ondragend = function() {
|
|
|
return C.__ondragend()
|
|
|
}, C._setCurrentOption = function() {
|
|
|
var a = C.timelineOption;
|
|
|
C.currentIndex %= a.data.length;
|
|
|
var i = C.options[C.currentIndex] || {};
|
|
|
C.myChart._setOption(i, a.notMerge, !0), C.messageCenter.dispatch(A.EVENT.TIMELINE_CHANGED, null, {
|
|
|
currentIndex: C.currentIndex,
|
|
|
data: null != a.data[C.currentIndex].name ? a.data[C.currentIndex].name : a.data[C.currentIndex]
|
|
|
}, C.myChart)
|
|
|
}, C._onFrame = function() {
|
|
|
C._setCurrentOption(), C._syncHandleShape(), C.timelineOption.autoPlay && (C.playTicket = setTimeout(function() {
|
|
|
return C.currentIndex += 1, !C.timelineOption.loop && C.currentIndex >= C.timelineOption.data.length ? (C.currentIndex = C.timelineOption.data.length - 1, void C.stop()) : void C._onFrame()
|
|
|
}, C.timelineOption.playInterval))
|
|
|
}, this.setTheme(!1), this.options = this.option.options, this.currentIndex = this.timelineOption.currentIndex % this.timelineOption.data.length, this.timelineOption.notMerge || 0 === this.currentIndex || (this.options[this.currentIndex] = v.merge(this.options[this.currentIndex], this.options[0])), this.timelineOption.show && (this._buildShape(), this._syncHandleShape()), this._setCurrentOption(), this.timelineOption.autoPlay) {
|
|
|
var C = this;
|
|
|
this.playTicket = setTimeout(function() {
|
|
|
C.play()
|
|
|
}, null != this.ecTheme.animationDuration ? this.ecTheme.animationDuration : A.animationDuration)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function u(C, K) {
|
|
|
var E = 2,
|
|
|
H = K.x + E,
|
|
|
o = K.y + E + 2,
|
|
|
I = K.width - E,
|
|
|
J = K.height - E,
|
|
|
F = K.symbol;
|
|
|
if ("last" === F) {
|
|
|
C.moveTo(H + I - 2, o + J / 3), C.lineTo(H + I - 2, o), C.lineTo(H + 2, o + J / 2), C.lineTo(H + I - 2, o + J), C.lineTo(H + I - 2, o + J / 3 * 2), C.moveTo(H, o), C.lineTo(H, o)
|
|
|
} else {
|
|
|
if ("next" === F) {
|
|
|
C.moveTo(H + 2, o + J / 3), C.lineTo(H + 2, o), C.lineTo(H + I - 2, o + J / 2), C.lineTo(H + 2, o + J), C.lineTo(H + 2, o + J / 3 * 2), C.moveTo(H, o), C.lineTo(H, o)
|
|
|
} else {
|
|
|
if ("play" === F) {
|
|
|
if ("stop" === K.status) {
|
|
|
C.moveTo(H + 2, o), C.lineTo(H + I - 2, o + J / 2), C.lineTo(H + 2, o + J), C.lineTo(H + 2, o)
|
|
|
} else {
|
|
|
var D = "both" === K.brushType ? 2 : 3;
|
|
|
C.rect(H + 2, o, D, J), C.rect(H + I - D - 2, o, D, J)
|
|
|
}
|
|
|
} else {
|
|
|
if (F.match("image")) {
|
|
|
var G = "";
|
|
|
G = F.replace(new RegExp("^image:\\/\\/"), ""), F = y.prototype.iconLibrary.image, F(C, {
|
|
|
x: H,
|
|
|
y: o,
|
|
|
width: I,
|
|
|
height: J,
|
|
|
image: G
|
|
|
})
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
var x = p("./base"),
|
|
|
j = p("zrender/shape/Rectangle"),
|
|
|
y = p("../util/shape/Icon"),
|
|
|
z = p("../util/shape/Chain"),
|
|
|
A = p("../config");
|
|
|
A.timeline = {
|
|
|
zlevel: 0,
|
|
|
z: 4,
|
|
|
show: !0,
|
|
|
type: "time",
|
|
|
notMerge: !1,
|
|
|
realtime: !0,
|
|
|
x: 80,
|
|
|
x2: 80,
|
|
|
y2: 0,
|
|
|
height: 50,
|
|
|
backgroundColor: "rgba(0,0,0,0)",
|
|
|
borderColor: "#ccc",
|
|
|
borderWidth: 0,
|
|
|
padding: 5,
|
|
|
controlPosition: "left",
|
|
|
autoPlay: !1,
|
|
|
loop: !0,
|
|
|
playInterval: 2000,
|
|
|
lineStyle: {
|
|
|
width: 1,
|
|
|
color: "#666",
|
|
|
type: "dashed"
|
|
|
},
|
|
|
label: {
|
|
|
show: !0,
|
|
|
interval: "auto",
|
|
|
rotate: 0,
|
|
|
textStyle: {
|
|
|
color: "#333"
|
|
|
}
|
|
|
},
|
|
|
checkpointStyle: {
|
|
|
symbol: "auto",
|
|
|
symbolSize: "auto",
|
|
|
color: "auto",
|
|
|
borderColor: "auto",
|
|
|
borderWidth: "auto",
|
|
|
label: {
|
|
|
show: !1,
|
|
|
textStyle: {
|
|
|
color: "auto"
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
controlStyle: {
|
|
|
itemSize: 15,
|
|
|
itemGap: 5,
|
|
|
normal: {
|
|
|
color: "#333"
|
|
|
},
|
|
|
emphasis: {
|
|
|
color: "#1e90ff"
|
|
|
}
|
|
|
},
|
|
|
symbol: "emptyDiamond",
|
|
|
symbolSize: 4,
|
|
|
currentIndex: 0
|
|
|
};
|
|
|
var v = p("zrender/tool/util"),
|
|
|
q = p("zrender/tool/area"),
|
|
|
w = p("zrender/tool/event");
|
|
|
return B.prototype = {
|
|
|
type: A.COMPONENT_TYPE_TIMELINE,
|
|
|
_buildShape: function() {
|
|
|
if (this._location = this._getLocation(), this._buildBackground(), this._buildControl(), this._chainPoint = this._getChainPoint(), this.timelineOption.label.show) {
|
|
|
for (var a = this._getInterval(), o = 0, l = this._chainPoint.length; l > o; o += a) {
|
|
|
this._chainPoint[o].showLabel = !0
|
|
|
}
|
|
|
}
|
|
|
this._buildChain(), this._buildHandle();
|
|
|
for (var o = 0, m = this.shapeList.length; m > o; o++) {
|
|
|
this.zr.addShape(this.shapeList[o])
|
|
|
}
|
|
|
},
|
|
|
_getLocation: function() {
|
|
|
var C, K = this.timelineOption,
|
|
|
E = this.reformCssArray(this.timelineOption.padding),
|
|
|
G = this.zr.getWidth(),
|
|
|
m = this.parsePercent(K.x, G),
|
|
|
H = this.parsePercent(K.x2, G);
|
|
|
null == K.width ? (C = G - m - H, H = G - H) : (C = this.parsePercent(K.width, G), H = m + C);
|
|
|
var I, J, F = this.zr.getHeight(),
|
|
|
D = this.parsePercent(K.height, F);
|
|
|
return null != K.y ? (I = this.parsePercent(K.y, F), J = I + D) : (J = F - this.parsePercent(K.y2, F), I = J - D), {
|
|
|
x: m + E[3],
|
|
|
y: I + E[0],
|
|
|
x2: H - E[1],
|
|
|
y2: J - E[2],
|
|
|
width: C - E[1] - E[3],
|
|
|
height: D - E[0] - E[2]
|
|
|
}
|
|
|
},
|
|
|
_getReformedLabel: function(a) {
|
|
|
var o = this.timelineOption,
|
|
|
l = null != o.data[a].name ? o.data[a].name : o.data[a],
|
|
|
m = o.data[a].formatter || o.label.formatter;
|
|
|
return m && ("function" == typeof m ? l = m.call(this.myChart, l) : "string" == typeof m && (l = m.replace("{value}", l))), l
|
|
|
},
|
|
|
_getInterval: function() {
|
|
|
var E = this._chainPoint,
|
|
|
M = this.timelineOption,
|
|
|
F = M.label.interval;
|
|
|
if ("auto" === F) {
|
|
|
var I = M.label.textStyle.fontSize,
|
|
|
C = M.data,
|
|
|
J = M.data.length;
|
|
|
if (J > 3) {
|
|
|
var K, L, G = !1;
|
|
|
for (F = 0; !G && J > F;) {
|
|
|
F++, G = !0;
|
|
|
for (var H = F; J > H; H += F) {
|
|
|
if (K = E[H].x - E[H - F].x, 0 !== M.label.rotate) {
|
|
|
L = I
|
|
|
} else {
|
|
|
if (C[H].textStyle) {
|
|
|
L = q.getTextWidth(E[H].name, E[H].textFont)
|
|
|
} else {
|
|
|
var O = E[H].name + "",
|
|
|
N = (O.match(/\w/g) || "").length,
|
|
|
D = O.length - N;
|
|
|
L = N * I * 2 / 3 + D * I
|
|
|
}
|
|
|
}
|
|
|
if (L > K) {
|
|
|
G = !1;
|
|
|
break
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
F = 1
|
|
|
}
|
|
|
} else {
|
|
|
F = F - 0 + 1
|
|
|
}
|
|
|
return F
|
|
|
},
|
|
|
_getChainPoint: function() {
|
|
|
function F(a) {
|
|
|
return null != I[a].name ? I[a].name : I[a] + ""
|
|
|
}
|
|
|
var R, J = this.timelineOption,
|
|
|
M = J.symbol.toLowerCase(),
|
|
|
l = J.symbolSize,
|
|
|
N = J.label.rotate,
|
|
|
P = J.label.textStyle,
|
|
|
Q = this.getFont(P),
|
|
|
I = J.data,
|
|
|
L = this._location.x,
|
|
|
W = this._location.y + this._location.height / 4 * 3,
|
|
|
T = this._location.x2 - this._location.x,
|
|
|
E = I.length,
|
|
|
O = [];
|
|
|
if (E > 1) {
|
|
|
var D = T / E;
|
|
|
if (D = D > 50 ? 50 : 20 > D ? 5 : D, T -= 2 * D, "number" === J.type) {
|
|
|
for (var S = 0; E > S; S++) {
|
|
|
O.push(L + D + T / (E - 1) * S)
|
|
|
}
|
|
|
} else {
|
|
|
O[0] = new Date(F(0).replace(/-/g, "/")), O[E - 1] = new Date(F(E - 1).replace(/-/g, "/")) - O[0];
|
|
|
for (var S = 1; E > S; S++) {
|
|
|
O[S] = L + D + T * (new Date(F(S).replace(/-/g, "/")) - O[0]) / O[E - 1]
|
|
|
}
|
|
|
O[0] = L + D
|
|
|
}
|
|
|
} else {
|
|
|
O.push(L + T / 2)
|
|
|
}
|
|
|
for (var Y, H, C, G, K, X = [], S = 0; E > S; S++) {
|
|
|
L = O[S], Y = I[S].symbol && I[S].symbol.toLowerCase() || M, Y.match("empty") ? (Y = Y.replace("empty", ""), C = !0) : C = !1, Y.match("star") && (H = Y.replace("star", "") - 0 || 5, Y = "star"), R = I[S].textStyle ? v.merge(I[S].textStyle || {}, P) : P, G = R.align || "center", N ? (G = N > 0 ? "right" : "left", K = [N * Math.PI / 180, L, W - 5]) : K = !1, X.push({
|
|
|
x: L,
|
|
|
n: H,
|
|
|
isEmpty: C,
|
|
|
symbol: Y,
|
|
|
symbolSize: I[S].symbolSize || l,
|
|
|
color: I[S].color,
|
|
|
borderColor: I[S].borderColor,
|
|
|
borderWidth: I[S].borderWidth,
|
|
|
name: this._getReformedLabel(S),
|
|
|
textColor: R.color,
|
|
|
textAlign: G,
|
|
|
textBaseline: R.baseline || "middle",
|
|
|
textX: L,
|
|
|
textY: W - (N ? 5 : 0),
|
|
|
textFont: I[S].textStyle ? this.getFont(R) : Q,
|
|
|
rotation: K,
|
|
|
showLabel: !1
|
|
|
})
|
|
|
}
|
|
|
return X
|
|
|
},
|
|
|
_buildBackground: function() {
|
|
|
var a = this.timelineOption,
|
|
|
o = this.reformCssArray(this.timelineOption.padding),
|
|
|
l = this._location.width,
|
|
|
m = this._location.height;
|
|
|
(0 !== a.borderWidth || "rgba(0,0,0,0)" != a.backgroundColor.replace(/\s/g, "")) && this.shapeList.push(new j({
|
|
|
zlevel: this.getZlevelBase(),
|
|
|
z: this.getZBase(),
|
|
|
hoverable: !1,
|
|
|
style: {
|
|
|
x: this._location.x - o[3],
|
|
|
y: this._location.y - o[0],
|
|
|
width: l + o[1] + o[3],
|
|
|
height: m + o[0] + o[2],
|
|
|
brushType: 0 === a.borderWidth ? "fill" : "both",
|
|
|
color: a.backgroundColor,
|
|
|
strokeColor: a.borderColor,
|
|
|
lineWidth: a.borderWidth
|
|
|
}
|
|
|
}))
|
|
|
},
|
|
|
_buildControl: function() {
|
|
|
var o = this,
|
|
|
I = this.timelineOption,
|
|
|
D = I.lineStyle,
|
|
|
F = I.controlStyle;
|
|
|
if ("none" !== I.controlPosition) {
|
|
|
var l, G = F.itemSize,
|
|
|
H = F.itemGap;
|
|
|
"left" === I.controlPosition ? (l = this._location.x, this._location.x += 3 * (G + H)) : (l = this._location.x2 - (3 * (G + H) - H), this._location.x2 -= 3 * (G + H));
|
|
|
var C = this._location.y,
|
|
|
E = {
|
|
|
zlevel: this.getZlevelBase(),
|
|
|
z: this.getZBase() + 1,
|
|
|
style: {
|
|
|
iconType: "timelineControl",
|
|
|
symbol: "last",
|
|
|
x: l,
|
|
|
y: C,
|
|
|
width: G,
|
|
|
height: G,
|
|
|
brushType: "stroke",
|
|
|
color: F.normal.color,
|
|
|
strokeColor: F.normal.color,
|
|
|
lineWidth: D.width
|
|
|
},
|
|
|
highlightStyle: {
|
|
|
color: F.emphasis.color,
|
|
|
strokeColor: F.emphasis.color,
|
|
|
lineWidth: D.width + 1
|
|
|
},
|
|
|
clickable: !0
|
|
|
};
|
|
|
this._ctrLastShape = new y(E), this._ctrLastShape.onclick = function() {
|
|
|
o.last()
|
|
|
}, this.shapeList.push(this._ctrLastShape), l += G + H, this._ctrPlayShape = new y(v.clone(E)), this._ctrPlayShape.style.brushType = "fill", this._ctrPlayShape.style.symbol = "play", this._ctrPlayShape.style.status = this.timelineOption.autoPlay ? "playing" : "stop", this._ctrPlayShape.style.x = l, this._ctrPlayShape.onclick = function() {
|
|
|
"stop" === o._ctrPlayShape.style.status ? o.play() : o.stop()
|
|
|
}, this.shapeList.push(this._ctrPlayShape), l += G + H, this._ctrNextShape = new y(v.clone(E)), this._ctrNextShape.style.symbol = "next", this._ctrNextShape.style.x = l, this._ctrNextShape.onclick = function() {
|
|
|
o.next()
|
|
|
}, this.shapeList.push(this._ctrNextShape)
|
|
|
}
|
|
|
},
|
|
|
_buildChain: function() {
|
|
|
var a = this.timelineOption,
|
|
|
i = a.lineStyle;
|
|
|
this._timelineShae = {
|
|
|
zlevel: this.getZlevelBase(),
|
|
|
z: this.getZBase(),
|
|
|
style: {
|
|
|
x: this._location.x,
|
|
|
y: this.subPixelOptimize(this._location.y, i.width),
|
|
|
width: this._location.x2 - this._location.x,
|
|
|
height: this._location.height,
|
|
|
chainPoint: this._chainPoint,
|
|
|
brushType: "both",
|
|
|
strokeColor: i.color,
|
|
|
lineWidth: i.width,
|
|
|
lineType: i.type
|
|
|
},
|
|
|
hoverable: !1,
|
|
|
clickable: !0,
|
|
|
onclick: this._onclick
|
|
|
}, this._timelineShae = new z(this._timelineShae), this.shapeList.push(this._timelineShae)
|
|
|
},
|
|
|
_buildHandle: function() {
|
|
|
var a = this._chainPoint[this.currentIndex],
|
|
|
i = a.symbolSize + 1;
|
|
|
i = 5 > i ? 5 : i, this._handleShape = {
|
|
|
zlevel: this.getZlevelBase(),
|
|
|
z: this.getZBase() + 1,
|
|
|
hoverable: !1,
|
|
|
draggable: !0,
|
|
|
style: {
|
|
|
iconType: "diamond",
|
|
|
n: a.n,
|
|
|
x: a.x - i,
|
|
|
y: this._location.y + this._location.height / 4 - i,
|
|
|
width: 2 * i,
|
|
|
height: 2 * i,
|
|
|
brushType: "both",
|
|
|
textPosition: "specific",
|
|
|
textX: a.x,
|
|
|
textY: this._location.y - this._location.height / 4,
|
|
|
textAlign: "center",
|
|
|
textBaseline: "middle"
|
|
|
},
|
|
|
highlightStyle: {},
|
|
|
ondrift: this._ondrift,
|
|
|
ondragend: this._ondragend
|
|
|
}, this._handleShape = new y(this._handleShape), this.shapeList.push(this._handleShape)
|
|
|
},
|
|
|
_syncHandleShape: function() {
|
|
|
if (this.timelineOption.show) {
|
|
|
var a = this.timelineOption,
|
|
|
o = a.checkpointStyle,
|
|
|
l = this._chainPoint[this.currentIndex];
|
|
|
this._handleShape.style.text = o.label.show ? l.name : "", this._handleShape.style.textFont = l.textFont, this._handleShape.style.n = l.n, "auto" === o.symbol ? this._handleShape.style.iconType = "none" != l.symbol ? l.symbol : "diamond" : (this._handleShape.style.iconType = o.symbol, o.symbol.match("star") && (this._handleShape.style.n = o.symbol.replace("star", "") - 0 || 5, this._handleShape.style.iconType = "star"));
|
|
|
var m;
|
|
|
"auto" === o.symbolSize ? (m = l.symbolSize + 2, m = 5 > m ? 5 : m) : m = o.symbolSize - 0, this._handleShape.style.color = "auto" === o.color ? l.color ? l.color : a.controlStyle.emphasis.color : o.color, this._handleShape.style.textColor = "auto" === o.label.textStyle.color ? this._handleShape.style.color : o.label.textStyle.color, this._handleShape.highlightStyle.strokeColor = this._handleShape.style.strokeColor = "auto" === o.borderColor ? l.borderColor ? l.borderColor : "#fff" : o.borderColor, this._handleShape.style.lineWidth = "auto" === o.borderWidth ? l.borderWidth ? l.borderWidth : 0 : o.borderWidth - 0, this._handleShape.highlightStyle.lineWidth = this._handleShape.style.lineWidth + 1, this.zr.animate(this._handleShape.id, "style").when(500, {
|
|
|
x: l.x - m,
|
|
|
textX: l.x,
|
|
|
y: this._location.y + this._location.height / 4 - m,
|
|
|
width: 2 * m,
|
|
|
height: 2 * m
|
|
|
}).start("ExponentialOut")
|
|
|
}
|
|
|
},
|
|
|
_findChainIndex: function(a) {
|
|
|
var o = this._chainPoint,
|
|
|
l = o.length;
|
|
|
if (a <= o[0].x) {
|
|
|
return 0
|
|
|
}
|
|
|
if (a >= o[l - 1].x) {
|
|
|
return l - 1
|
|
|
}
|
|
|
for (var m = 0; l - 1 > m; m++) {
|
|
|
if (a >= o[m].x && a <= o[m + 1].x) {
|
|
|
return Math.abs(a - o[m].x) < Math.abs(a - o[m + 1].x) ? m : m + 1
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
__onclick: function(a) {
|
|
|
var m = w.getX(a.event),
|
|
|
l = this._findChainIndex(m);
|
|
|
return l === this.currentIndex ? !0 : (this.currentIndex = l, this.timelineOption.autoPlay && this.stop(), clearTimeout(this.playTicket), void this._onFrame())
|
|
|
},
|
|
|
__ondrift: function(m, H) {
|
|
|
this.timelineOption.autoPlay && this.stop();
|
|
|
var C, D = this._chainPoint,
|
|
|
l = D.length;
|
|
|
m.style.x + H <= D[0].x - D[0].symbolSize ? (m.style.x = D[0].x - D[0].symbolSize, C = 0) : m.style.x + H >= D[l - 1].x - D[l - 1].symbolSize ? (m.style.x = D[l - 1].x - D[l - 1].symbolSize, C = l - 1) : (m.style.x += H, C = this._findChainIndex(m.style.x));
|
|
|
var E = D[C],
|
|
|
F = E.symbolSize + 2;
|
|
|
if (m.style.iconType = E.symbol, m.style.n = E.n, m.style.textX = m.style.x + F / 2, m.style.y = this._location.y + this._location.height / 4 - F, m.style.width = 2 * F, m.style.height = 2 * F, m.style.text = E.name, C === this.currentIndex) {
|
|
|
return !0
|
|
|
}
|
|
|
if (this.currentIndex = C, this.timelineOption.realtime) {
|
|
|
clearTimeout(this.playTicket);
|
|
|
var G = this;
|
|
|
this.playTicket = setTimeout(function() {
|
|
|
G._setCurrentOption()
|
|
|
}, 200)
|
|
|
}
|
|
|
return !0
|
|
|
},
|
|
|
__ondragend: function() {
|
|
|
this.isDragend = !0
|
|
|
},
|
|
|
ondragend: function(a, i) {
|
|
|
this.isDragend && a.target && (!this.timelineOption.realtime && this._setCurrentOption(), i.dragOut = !0, i.dragIn = !0, i.needRefresh = !1, this.isDragend = !1, this._syncHandleShape())
|
|
|
},
|
|
|
last: function() {
|
|
|
return this.timelineOption.autoPlay && this.stop(), this.currentIndex -= 1, this.currentIndex < 0 && (this.currentIndex = this.timelineOption.data.length - 1), this._onFrame(), this.currentIndex
|
|
|
},
|
|
|
next: function() {
|
|
|
return this.timelineOption.autoPlay && this.stop(), this.currentIndex += 1, this.currentIndex >= this.timelineOption.data.length && (this.currentIndex = 0), this._onFrame(), this.currentIndex
|
|
|
},
|
|
|
play: function(a, i) {
|
|
|
return this._ctrPlayShape && "playing" != this._ctrPlayShape.style.status && (this._ctrPlayShape.style.status = "playing", this.zr.modShape(this._ctrPlayShape.id), this.zr.refreshNextFrame()), this.timelineOption.autoPlay = null != i ? i : !0, this.timelineOption.autoPlay || clearTimeout(this.playTicket), this.currentIndex = null != a ? a : this.currentIndex + 1, this.currentIndex >= this.timelineOption.data.length && (this.currentIndex = 0), this._onFrame(), this.currentIndex
|
|
|
},
|
|
|
stop: function() {
|
|
|
return this._ctrPlayShape && "stop" != this._ctrPlayShape.style.status && (this._ctrPlayShape.style.status = "stop", this.zr.modShape(this._ctrPlayShape.id), this.zr.refreshNextFrame()), this.timelineOption.autoPlay = !1, clearTimeout(this.playTicket), this.currentIndex
|
|
|
},
|
|
|
resize: function() {
|
|
|
this.timelineOption.show && (this.clear(), this._buildShape(), this._syncHandleShape())
|
|
|
},
|
|
|
setTheme: function(a) {
|
|
|
this.timelineOption = this.reformOption(v.clone(this.option.timeline)), this.timelineOption.label.textStyle = this.getTextStyle(this.timelineOption.label.textStyle), this.timelineOption.checkpointStyle.label.textStyle = this.getTextStyle(this.timelineOption.checkpointStyle.label.textStyle), this.myChart.canvasSupported || (this.timelineOption.realtime = !1), this.timelineOption.show && a && (this.clear(), this._buildShape(), this._syncHandleShape())
|
|
|
},
|
|
|
onbeforDispose: function() {
|
|
|
clearTimeout(this.playTicket)
|
|
|
}
|
|
|
}, y.prototype.iconLibrary.timelineControl = u, v.inherits(B, x), p("../component").define("timeline", B), B
|
|
|
}), d("zrender/shape/Image", ["require", "./Base", "../tool/util"], function(a) {
|
|
|
var l = a("./Base"),
|
|
|
j = function(i) {
|
|
|
l.call(this, i)
|
|
|
};
|
|
|
return j.prototype = {
|
|
|
type: "image",
|
|
|
brush: function(v, F, x) {
|
|
|
var A = this.style || {};
|
|
|
F && (A = this.getHighlightStyle(A, this.highlightStyle || {}));
|
|
|
var q = A.image,
|
|
|
B = this;
|
|
|
if (this._imageCache || (this._imageCache = {}), "string" == typeof q) {
|
|
|
var D = q;
|
|
|
this._imageCache[D] ? q = this._imageCache[D] : (q = new Image, q.onload = function() {
|
|
|
q.onload = null, B.modSelf(), x()
|
|
|
}, q.src = D, this._imageCache[D] = q)
|
|
|
}
|
|
|
if (q) {
|
|
|
if ("IMG" == q.nodeName.toUpperCase()) {
|
|
|
if (window.ActiveXObject) {
|
|
|
if ("complete" != q.readyState) {
|
|
|
return
|
|
|
}
|
|
|
} else {
|
|
|
if (!q.complete) {
|
|
|
return
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
var E = A.width || q.width,
|
|
|
y = A.height || q.height,
|
|
|
w = A.x,
|
|
|
z = A.y;
|
|
|
if (!q.width || !q.height) {
|
|
|
return
|
|
|
}
|
|
|
if (v.save(), this.doClip(v), this.setContext(v, A), this.setTransform(v), A.sWidth && A.sHeight) {
|
|
|
var H = A.sx || 0,
|
|
|
G = A.sy || 0;
|
|
|
v.drawImage(q, H, G, A.sWidth, A.sHeight, w, z, E, y)
|
|
|
} else {
|
|
|
if (A.sx && A.sy) {
|
|
|
var H = A.sx,
|
|
|
G = A.sy,
|
|
|
u = E - H,
|
|
|
C = y - G;
|
|
|
v.drawImage(q, H, G, u, C, w, z, E, y)
|
|
|
} else {
|
|
|
v.drawImage(q, w, z, E, y)
|
|
|
}
|
|
|
}
|
|
|
A.width || (A.width = E), A.height || (A.height = y), this.style.width || (this.style.width = E), this.style.height || (this.style.height = y), this.drawText(v, A, this.style), v.restore()
|
|
|
}
|
|
|
},
|
|
|
getRect: function(i) {
|
|
|
return {
|
|
|
x: i.x,
|
|
|
y: i.y,
|
|
|
width: i.width,
|
|
|
height: i.height
|
|
|
}
|
|
|
},
|
|
|
clearCache: function() {
|
|
|
this._imageCache = {}
|
|
|
}
|
|
|
}, a("../tool/util").inherits(j, l), j
|
|
|
}), d("zrender/loadingEffect/Bar", ["require", "./Base", "../tool/util", "../tool/color", "../shape/Rectangle"], function(l) {
|
|
|
function r(a) {
|
|
|
m.call(this, a)
|
|
|
}
|
|
|
var m = l("./Base"),
|
|
|
p = l("../tool/util"),
|
|
|
j = l("../tool/color"),
|
|
|
q = l("../shape/Rectangle");
|
|
|
return p.inherits(r, m), r.prototype._start = function(a, x) {
|
|
|
var o = p.merge(this.options, {
|
|
|
textStyle: {
|
|
|
color: "#888"
|
|
|
},
|
|
|
backgroundColor: "rgba(250, 250, 250, 0.8)",
|
|
|
effectOption: {
|
|
|
x: 0,
|
|
|
y: this.canvasHeight / 2 - 30,
|
|
|
width: this.canvasWidth,
|
|
|
height: 5,
|
|
|
brushType: "fill",
|
|
|
timeInterval: 100
|
|
|
}
|
|
|
}),
|
|
|
v = this.createTextShape(o.textStyle),
|
|
|
w = this.createBackgroundShape(o.backgroundColor),
|
|
|
u = o.effectOption,
|
|
|
n = new q({
|
|
|
highlightStyle: p.clone(u)
|
|
|
});
|
|
|
return n.highlightStyle.color = u.color || j.getLinearGradient(u.x, u.y, u.x + u.width, u.y + u.height, [
|
|
|
[0, "#ff6400"],
|
|
|
[0.5, "#ffe100"],
|
|
|
[1, "#b1ff00"]
|
|
|
]), null != o.progress ? (a(w), n.highlightStyle.width = this.adjust(o.progress, [0, 1]) * o.effectOption.width, a(n), a(v), void x()) : (n.highlightStyle.width = 0, setInterval(function() {
|
|
|
a(w), n.highlightStyle.width < u.width ? n.highlightStyle.width += 8 : n.highlightStyle.width = 0, a(n), a(v), x()
|
|
|
}, u.timeInterval))
|
|
|
}, r
|
|
|
}), d("zrender/loadingEffect/Bubble", ["require", "./Base", "../tool/util", "../tool/color", "../shape/Circle"], function(l) {
|
|
|
function r(a) {
|
|
|
m.call(this, a)
|
|
|
}
|
|
|
var m = l("./Base"),
|
|
|
p = l("../tool/util"),
|
|
|
j = l("../tool/color"),
|
|
|
q = l("../shape/Circle");
|
|
|
return p.inherits(r, m), r.prototype._start = function(o, C) {
|
|
|
for (var w = p.merge(this.options, {
|
|
|
textStyle: {
|
|
|
color: "#888"
|
|
|
},
|
|
|
backgroundColor: "rgba(250, 250, 250, 0.8)",
|
|
|
effect: {
|
|
|
n: 50,
|
|
|
lineWidth: 2,
|
|
|
brushType: "stroke",
|
|
|
color: "random",
|
|
|
timeInterval: 100
|
|
|
}
|
|
|
}), A = this.createTextShape(w.textStyle), B = this.createBackgroundShape(w.backgroundColor), x = w.effect, v = x.n, y = x.brushType, F = x.lineWidth, E = [], n = this.canvasWidth, z = this.canvasHeight, a = 0; v > a; a++) {
|
|
|
var D = "random" == x.color ? j.alpha(j.random(), 0.3) : x.color;
|
|
|
E[a] = new q({
|
|
|
highlightStyle: {
|
|
|
x: Math.ceil(Math.random() * n),
|
|
|
y: Math.ceil(Math.random() * z),
|
|
|
r: Math.ceil(40 * Math.random()),
|
|
|
brushType: y,
|
|
|
color: D,
|
|
|
strokeColor: D,
|
|
|
lineWidth: F
|
|
|
},
|
|
|
animationY: Math.ceil(20 * Math.random())
|
|
|
})
|
|
|
}
|
|
|
return setInterval(function() {
|
|
|
o(B);
|
|
|
for (var e = 0; v > e; e++) {
|
|
|
var s = E[e].highlightStyle;
|
|
|
s.y - E[e].animationY + s.r <= 0 && (E[e].highlightStyle.y = z + s.r, E[e].highlightStyle.x = Math.ceil(Math.random() * n)), E[e].highlightStyle.y -= E[e].animationY, o(E[e])
|
|
|
}
|
|
|
o(A), C()
|
|
|
}, x.timeInterval)
|
|
|
}, r
|
|
|
}), d("zrender/loadingEffect/DynamicLine", ["require", "./Base", "../tool/util", "../tool/color", "../shape/Line"], function(l) {
|
|
|
function r(a) {
|
|
|
m.call(this, a)
|
|
|
}
|
|
|
var m = l("./Base"),
|
|
|
p = l("../tool/util"),
|
|
|
j = l("../tool/color"),
|
|
|
q = l("../shape/Line");
|
|
|
return p.inherits(r, m), r.prototype._start = function(o, E) {
|
|
|
for (var x = p.merge(this.options, {
|
|
|
textStyle: {
|
|
|
color: "#fff"
|
|
|
},
|
|
|
backgroundColor: "rgba(0, 0, 0, 0.8)",
|
|
|
effectOption: {
|
|
|
n: 30,
|
|
|
lineWidth: 1,
|
|
|
color: "random",
|
|
|
timeInterval: 100
|
|
|
}
|
|
|
}), C = this.createTextShape(x.textStyle), D = this.createBackgroundShape(x.backgroundColor), z = x.effectOption, w = z.n, A = z.lineWidth, H = [], G = this.canvasWidth, n = this.canvasHeight, B = 0; w > B; B++) {
|
|
|
var a = -Math.ceil(1000 * Math.random()),
|
|
|
F = Math.ceil(400 * Math.random()),
|
|
|
I = Math.ceil(Math.random() * n),
|
|
|
v = "random" == z.color ? j.random() : z.color;
|
|
|
H[B] = new q({
|
|
|
highlightStyle: {
|
|
|
xStart: a,
|
|
|
yStart: I,
|
|
|
xEnd: a + F,
|
|
|
yEnd: I,
|
|
|
strokeColor: v,
|
|
|
lineWidth: A
|
|
|
},
|
|
|
animationX: Math.ceil(100 * Math.random()),
|
|
|
len: F
|
|
|
})
|
|
|
}
|
|
|
return setInterval(function() {
|
|
|
o(D);
|
|
|
for (var e = 0; w > e; e++) {
|
|
|
var s = H[e].highlightStyle;
|
|
|
s.xStart >= G && (H[e].len = Math.ceil(400 * Math.random()), s.xStart = -400, s.xEnd = -400 + H[e].len, s.yStart = Math.ceil(Math.random() * n), s.yEnd = s.yStart), s.xStart += H[e].animationX, s.xEnd += H[e].animationX, o(H[e])
|
|
|
}
|
|
|
o(C), E()
|
|
|
}, z.timeInterval)
|
|
|
}, r
|
|
|
}), d("zrender/loadingEffect/Ring", ["require", "./Base", "../tool/util", "../tool/color", "../shape/Ring", "../shape/Sector"], function(l) {
|
|
|
function u(a) {
|
|
|
m.call(this, a)
|
|
|
}
|
|
|
var m = l("./Base"),
|
|
|
p = l("../tool/util"),
|
|
|
j = l("../tool/color"),
|
|
|
q = l("../shape/Ring"),
|
|
|
s = l("../shape/Sector");
|
|
|
return p.inherits(u, m), u.prototype._start = function(v, H) {
|
|
|
var B = p.merge(this.options, {
|
|
|
textStyle: {
|
|
|
color: "#07a"
|
|
|
},
|
|
|
backgroundColor: "rgba(250, 250, 250, 0.8)",
|
|
|
effect: {
|
|
|
x: this.canvasWidth / 2,
|
|
|
y: this.canvasHeight / 2,
|
|
|
r0: 60,
|
|
|
r: 100,
|
|
|
color: "#bbdcff",
|
|
|
brushType: "fill",
|
|
|
textPosition: "inside",
|
|
|
textFont: "normal 30px verdana",
|
|
|
textColor: "rgba(30, 144, 255, 0.6)",
|
|
|
timeInterval: 100
|
|
|
}
|
|
|
}),
|
|
|
G = B.effect,
|
|
|
D = B.textStyle;
|
|
|
null == D.x && (D.x = G.x), null == D.y && (D.y = G.y + (G.r0 + G.r) / 2 - 5);
|
|
|
for (var A = this.createTextShape(B.textStyle), E = this.createBackgroundShape(B.backgroundColor), K = G.x, J = G.y, r = G.r0 + 6, F = G.r - 6, o = G.color, I = j.lift(o, 0.1), M = new q({
|
|
|
highlightStyle: p.clone(G)
|
|
|
}), z = [], n = j.getGradientColors(["#ff6400", "#ffe100", "#97ff00"], 25), w = 15, C = 240, L = 0; 16 > L; L++) {
|
|
|
z.push(new s({
|
|
|
highlightStyle: {
|
|
|
x: K,
|
|
|
y: J,
|
|
|
r0: r,
|
|
|
r: F,
|
|
|
startAngle: C - w,
|
|
|
endAngle: C,
|
|
|
brushType: "fill",
|
|
|
color: I
|
|
|
},
|
|
|
_color: j.getLinearGradient(K + r * Math.cos(C, !0), J - r * Math.sin(C, !0), K + r * Math.cos(C - w, !0), J - r * Math.sin(C - w, !0), [
|
|
|
[0, n[2 * L]],
|
|
|
[1, n[2 * L + 1]]
|
|
|
])
|
|
|
})), C -= w
|
|
|
}
|
|
|
C = 360;
|
|
|
for (var L = 0; 4 > L; L++) {
|
|
|
z.push(new s({
|
|
|
highlightStyle: {
|
|
|
x: K,
|
|
|
y: J,
|
|
|
r0: r,
|
|
|
r: F,
|
|
|
startAngle: C - w,
|
|
|
endAngle: C,
|
|
|
brushType: "fill",
|
|
|
color: I
|
|
|
},
|
|
|
_color: j.getLinearGradient(K + r * Math.cos(C, !0), J - r * Math.sin(C, !0), K + r * Math.cos(C - w, !0), J - r * Math.sin(C - w, !0), [
|
|
|
[0, n[2 * L + 32]],
|
|
|
[1, n[2 * L + 33]]
|
|
|
])
|
|
|
})), C -= w
|
|
|
}
|
|
|
var a = 0;
|
|
|
if (null != B.progress) {
|
|
|
v(E), a = 100 * this.adjust(B.progress, [0, 1]).toFixed(2) / 5, M.highlightStyle.text = 5 * a + "%", v(M);
|
|
|
for (var L = 0; 20 > L; L++) {
|
|
|
z[L].highlightStyle.color = a > L ? z[L]._color : I, v(z[L])
|
|
|
}
|
|
|
return v(A), void H()
|
|
|
}
|
|
|
return setInterval(function() {
|
|
|
v(E), a += a >= 20 ? -20 : 1, v(M);
|
|
|
for (var e = 0; 20 > e; e++) {
|
|
|
z[e].highlightStyle.color = a > e ? z[e]._color : I, v(z[e])
|
|
|
}
|
|
|
v(A), H()
|
|
|
}, G.timeInterval)
|
|
|
}, u
|
|
|
}), d("zrender/loadingEffect/Spin", ["require", "./Base", "../tool/util", "../tool/color", "../tool/area", "../shape/Sector"], function(l) {
|
|
|
function u(a) {
|
|
|
m.call(this, a)
|
|
|
}
|
|
|
var m = l("./Base"),
|
|
|
p = l("../tool/util"),
|
|
|
j = l("../tool/color"),
|
|
|
q = l("../tool/area"),
|
|
|
s = l("../shape/Sector");
|
|
|
return p.inherits(u, m), u.prototype._start = function(v, H) {
|
|
|
var B = p.merge(this.options, {
|
|
|
textStyle: {
|
|
|
color: "#fff",
|
|
|
textAlign: "start"
|
|
|
},
|
|
|
backgroundColor: "rgba(0, 0, 0, 0.8)"
|
|
|
}),
|
|
|
G = this.createTextShape(B.textStyle),
|
|
|
D = 10,
|
|
|
A = q.getTextWidth(G.highlightStyle.text, G.highlightStyle.textFont),
|
|
|
E = q.getTextHeight(G.highlightStyle.text, G.highlightStyle.textFont),
|
|
|
K = p.merge(this.options.effect || {}, {
|
|
|
r0: 9,
|
|
|
r: 15,
|
|
|
n: 18,
|
|
|
color: "#fff",
|
|
|
timeInterval: 100
|
|
|
}),
|
|
|
J = this.getLocation(this.options.textStyle, A + D + 2 * K.r, Math.max(2 * K.r, E));
|
|
|
K.x = J.x + K.r, K.y = G.highlightStyle.y = J.y + J.height / 2, G.highlightStyle.x = K.x + K.r + D;
|
|
|
for (var r = this.createBackgroundShape(B.backgroundColor), F = K.n, o = K.x, I = K.y, M = K.r0, z = K.r, n = K.color, w = [], C = Math.round(180 / F), L = 0; F > L; L++) {
|
|
|
w[L] = new s({
|
|
|
highlightStyle: {
|
|
|
x: o,
|
|
|
y: I,
|
|
|
r0: M,
|
|
|
r: z,
|
|
|
startAngle: C * L * 2,
|
|
|
endAngle: C * L * 2 + C,
|
|
|
color: j.alpha(n, (L + 1) / F),
|
|
|
brushType: "fill"
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
var a = [0, o, I];
|
|
|
return setInterval(function() {
|
|
|
v(r), a[0] -= 0.3;
|
|
|
for (var e = 0; F > e; e++) {
|
|
|
w[e].rotation = a, v(w[e])
|
|
|
}
|
|
|
v(G), H()
|
|
|
}, K.timeInterval)
|
|
|
}, u
|
|
|
}), d("zrender/loadingEffect/Whirling", ["require", "./Base", "../tool/util", "../tool/area", "../shape/Ring", "../shape/Droplet", "../shape/Circle"], function(l) {
|
|
|
function w(a) {
|
|
|
m.call(this, a)
|
|
|
}
|
|
|
var m = l("./Base"),
|
|
|
p = l("../tool/util"),
|
|
|
j = l("../tool/area"),
|
|
|
q = l("../shape/Ring"),
|
|
|
u = l("../shape/Droplet"),
|
|
|
v = l("../shape/Circle");
|
|
|
return p.inherits(w, m), w.prototype._start = function(o, C) {
|
|
|
var x = p.merge(this.options, {
|
|
|
textStyle: {
|
|
|
color: "#888",
|
|
|
textAlign: "start"
|
|
|
},
|
|
|
backgroundColor: "rgba(250, 250, 250, 0.8)"
|
|
|
}),
|
|
|
z = this.createTextShape(x.textStyle),
|
|
|
s = 10,
|
|
|
A = j.getTextWidth(z.highlightStyle.text, z.highlightStyle.textFont),
|
|
|
F = j.getTextHeight(z.highlightStyle.text, z.highlightStyle.textFont),
|
|
|
E = p.merge(this.options.effect || {}, {
|
|
|
r: 18,
|
|
|
colorIn: "#fff",
|
|
|
colorOut: "#555",
|
|
|
colorWhirl: "#6cf",
|
|
|
timeInterval: 50
|
|
|
}),
|
|
|
n = this.getLocation(this.options.textStyle, A + s + 2 * E.r, Math.max(2 * E.r, F));
|
|
|
E.x = n.x + E.r, E.y = z.highlightStyle.y = n.y + n.height / 2, z.highlightStyle.x = E.x + E.r + s;
|
|
|
var B = this.createBackgroundShape(x.backgroundColor),
|
|
|
a = new u({
|
|
|
highlightStyle: {
|
|
|
a: Math.round(E.r / 2),
|
|
|
b: Math.round(E.r - E.r / 6),
|
|
|
brushType: "fill",
|
|
|
color: E.colorWhirl
|
|
|
}
|
|
|
}),
|
|
|
D = new v({
|
|
|
highlightStyle: {
|
|
|
r: Math.round(E.r / 6),
|
|
|
brushType: "fill",
|
|
|
color: E.colorIn
|
|
|
}
|
|
|
}),
|
|
|
G = new q({
|
|
|
highlightStyle: {
|
|
|
r0: Math.round(E.r - E.r / 3),
|
|
|
r: E.r,
|
|
|
brushType: "fill",
|
|
|
color: E.colorOut
|
|
|
}
|
|
|
}),
|
|
|
r = [0, E.x, E.y];
|
|
|
return a.highlightStyle.x = D.highlightStyle.x = G.highlightStyle.x = r[1], a.highlightStyle.y = D.highlightStyle.y = G.highlightStyle.y = r[2], setInterval(function() {
|
|
|
o(B), o(G), r[0] -= 0.3, a.rotation = r, o(a), o(D), o(z), C()
|
|
|
}, E.timeInterval)
|
|
|
}, w
|
|
|
}), d("echarts/theme/macarons", [], function() {
|
|
|
var a = {
|
|
|
color: ["#2ec7c9", "#b6a2de", "#5ab1ef", "#ffb980", "#d87a80", "#8d98b3", "#e5cf0d", "#97b552", "#95706d", "#dc69aa", "#07a2a4", "#9a7fd1", "#588dd5", "#f5994e", "#c05050", "#59678c", "#c9ab00", "#7eb00a", "#6f5553", "#c14089"],
|
|
|
title: {
|
|
|
textStyle: {
|
|
|
fontWeight: "normal",
|
|
|
color: "#008acd"
|
|
|
}
|
|
|
},
|
|
|
dataRange: {
|
|
|
itemWidth: 15,
|
|
|
color: ["#5ab1ef", "#e0ffff"]
|
|
|
},
|
|
|
toolbox: {
|
|
|
color: ["#1e90ff", "#1e90ff", "#1e90ff", "#1e90ff"],
|
|
|
effectiveColor: "#ff4500"
|
|
|
},
|
|
|
tooltip: {
|
|
|
backgroundColor: "rgba(50,50,50,0.5)",
|
|
|
axisPointer: {
|
|
|
type: "line",
|
|
|
lineStyle: {
|
|
|
color: "#008acd"
|
|
|
},
|
|
|
crossStyle: {
|
|
|
color: "#008acd"
|
|
|
},
|
|
|
shadowStyle: {
|
|
|
color: "rgba(200,200,200,0.2)"
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
dataZoom: {
|
|
|
dataBackgroundColor: "#efefff",
|
|
|
fillerColor: "rgba(182,162,222,0.2)",
|
|
|
handleColor: "#008acd"
|
|
|
},
|
|
|
grid: {
|
|
|
borderColor: "#eee"
|
|
|
},
|
|
|
categoryAxis: {
|
|
|
axisLine: {
|
|
|
lineStyle: {
|
|
|
color: "#008acd"
|
|
|
}
|
|
|
},
|
|
|
splitLine: {
|
|
|
lineStyle: {
|
|
|
color: ["#eee"]
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
valueAxis: {
|
|
|
axisLine: {
|
|
|
lineStyle: {
|
|
|
color: "#008acd"
|
|
|
}
|
|
|
},
|
|
|
splitArea: {
|
|
|
show: !0,
|
|
|
areaStyle: {
|
|
|
color: ["rgba(250,250,250,0.1)", "rgba(200,200,200,0.1)"]
|
|
|
}
|
|
|
},
|
|
|
splitLine: {
|
|
|
lineStyle: {
|
|
|
color: ["#eee"]
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
polar: {
|
|
|
axisLine: {
|
|
|
lineStyle: {
|
|
|
color: "#ddd"
|
|
|
}
|
|
|
},
|
|
|
splitArea: {
|
|
|
show: !0,
|
|
|
areaStyle: {
|
|
|
color: ["rgba(250,250,250,0.2)", "rgba(200,200,200,0.2)"]
|
|
|
}
|
|
|
},
|
|
|
splitLine: {
|
|
|
lineStyle: {
|
|
|
color: "#ddd"
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
timeline: {
|
|
|
lineStyle: {
|
|
|
color: "#008acd"
|
|
|
},
|
|
|
controlStyle: {
|
|
|
normal: {
|
|
|
color: "#008acd"
|
|
|
},
|
|
|
emphasis: {
|
|
|
color: "#008acd"
|
|
|
}
|
|
|
},
|
|
|
symbol: "emptyCircle",
|
|
|
symbolSize: 3
|
|
|
},
|
|
|
bar: {
|
|
|
itemStyle: {
|
|
|
normal: {
|
|
|
barBorderRadius: 5
|
|
|
},
|
|
|
emphasis: {
|
|
|
barBorderRadius: 5
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
line: {
|
|
|
smooth: !0,
|
|
|
symbol: "emptyCircle",
|
|
|
symbolSize: 3
|
|
|
},
|
|
|
k: {
|
|
|
itemStyle: {
|
|
|
normal: {
|
|
|
color: "#d87a80",
|
|
|
color0: "#2ec7c9",
|
|
|
lineStyle: {
|
|
|
color: "#d87a80",
|
|
|
color0: "#2ec7c9"
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
scatter: {
|
|
|
symbol: "circle",
|
|
|
symbolSize: 4
|
|
|
},
|
|
|
radar: {
|
|
|
symbol: "emptyCircle",
|
|
|
symbolSize: 3
|
|
|
},
|
|
|
map: {
|
|
|
itemStyle: {
|
|
|
normal: {
|
|
|
areaStyle: {
|
|
|
color: "#ddd"
|
|
|
},
|
|
|
label: {
|
|
|
textStyle: {
|
|
|
color: "#d87a80"
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
emphasis: {
|
|
|
areaStyle: {
|
|
|
color: "#fe994e"
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
force: {
|
|
|
itemStyle: {
|
|
|
normal: {
|
|
|
linkStyle: {
|
|
|
color: "#1e90ff"
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
chord: {
|
|
|
itemStyle: {
|
|
|
normal: {
|
|
|
borderWidth: 1,
|
|
|
borderColor: "rgba(128, 128, 128, 0.5)",
|
|
|
chordStyle: {
|
|
|
lineStyle: {
|
|
|
color: "rgba(128, 128, 128, 0.5)"
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
emphasis: {
|
|
|
borderWidth: 1,
|
|
|
borderColor: "rgba(128, 128, 128, 0.5)",
|
|
|
chordStyle: {
|
|
|
lineStyle: {
|
|
|
color: "rgba(128, 128, 128, 0.5)"
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
gauge: {
|
|
|
axisLine: {
|
|
|
lineStyle: {
|
|
|
color: [
|
|
|
[0.2, "#2ec7c9"],
|
|
|
[0.8, "#5ab1ef"],
|
|
|
[1, "#d87a80"]
|
|
|
],
|
|
|
width: 10
|
|
|
}
|
|
|
},
|
|
|
axisTick: {
|
|
|
splitNumber: 10,
|
|
|
length: 15,
|
|
|
lineStyle: {
|
|
|
color: "auto"
|
|
|
}
|
|
|
},
|
|
|
splitLine: {
|
|
|
length: 22,
|
|
|
lineStyle: {
|
|
|
color: "auto"
|
|
|
}
|
|
|
},
|
|
|
pointer: {
|
|
|
width: 5
|
|
|
}
|
|
|
},
|
|
|
textStyle: {
|
|
|
fontFamily: "微软雅黑, Arial, Verdana, sans-serif"
|
|
|
}
|
|
|
};
|
|
|
return a
|
|
|
}), d("echarts/theme/infographic", [], function() {
|
|
|
var a = {
|
|
|
color: ["#C1232B", "#B5C334", "#FCCE10", "#E87C25", "#27727B", "#FE8463", "#9BCA63", "#FAD860", "#F3A43B", "#60C0DD", "#D7504B", "#C6E579", "#F4E001", "#F0805A", "#26C0C0"],
|
|
|
title: {
|
|
|
textStyle: {
|
|
|
fontWeight: "normal",
|
|
|
color: "#27727B"
|
|
|
}
|
|
|
},
|
|
|
dataRange: {
|
|
|
x: "right",
|
|
|
y: "center",
|
|
|
itemWidth: 5,
|
|
|
itemHeight: 25,
|
|
|
color: ["#C1232B", "#FCCE10"]
|
|
|
},
|
|
|
toolbox: {
|
|
|
color: ["#C1232B", "#B5C334", "#FCCE10", "#E87C25", "#27727B", "#FE8463", "#9BCA63", "#FAD860", "#F3A43B", "#60C0DD"],
|
|
|
effectiveColor: "#ff4500"
|
|
|
},
|
|
|
tooltip: {
|
|
|
backgroundColor: "rgba(50,50,50,0.5)",
|
|
|
axisPointer: {
|
|
|
type: "line",
|
|
|
lineStyle: {
|
|
|
color: "#27727B",
|
|
|
type: "dashed"
|
|
|
},
|
|
|
crossStyle: {
|
|
|
color: "#27727B"
|
|
|
},
|
|
|
shadowStyle: {
|
|
|
color: "rgba(200,200,200,0.3)"
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
dataZoom: {
|
|
|
dataBackgroundColor: "rgba(181,195,52,0.3)",
|
|
|
fillerColor: "rgba(181,195,52,0.2)",
|
|
|
handleColor: "#27727B"
|
|
|
},
|
|
|
grid: {
|
|
|
borderWidth: 0
|
|
|
},
|
|
|
categoryAxis: {
|
|
|
axisLine: {
|
|
|
lineStyle: {
|
|
|
color: "#27727B"
|
|
|
}
|
|
|
},
|
|
|
splitLine: {
|
|
|
show: !1
|
|
|
}
|
|
|
},
|
|
|
valueAxis: {
|
|
|
axisLine: {
|
|
|
show: !1
|
|
|
},
|
|
|
splitArea: {
|
|
|
show: !1
|
|
|
},
|
|
|
splitLine: {
|
|
|
lineStyle: {
|
|
|
color: ["#ccc"],
|
|
|
type: "dashed"
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
polar: {
|
|
|
axisLine: {
|
|
|
lineStyle: {
|
|
|
color: "#ddd"
|
|
|
}
|
|
|
},
|
|
|
splitArea: {
|
|
|
show: !0,
|
|
|
areaStyle: {
|
|
|
color: ["rgba(250,250,250,0.2)", "rgba(200,200,200,0.2)"]
|
|
|
}
|
|
|
},
|
|
|
splitLine: {
|
|
|
lineStyle: {
|
|
|
color: "#ddd"
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
timeline: {
|
|
|
lineStyle: {
|
|
|
color: "#27727B"
|
|
|
},
|
|
|
controlStyle: {
|
|
|
normal: {
|
|
|
color: "#27727B"
|
|
|
},
|
|
|
emphasis: {
|
|
|
color: "#27727B"
|
|
|
}
|
|
|
},
|
|
|
symbol: "emptyCircle",
|
|
|
symbolSize: 3
|
|
|
},
|
|
|
line: {
|
|
|
itemStyle: {
|
|
|
normal: {
|
|
|
borderWidth: 2,
|
|
|
borderColor: "#fff",
|
|
|
lineStyle: {
|
|
|
width: 3
|
|
|
}
|
|
|
},
|
|
|
emphasis: {
|
|
|
borderWidth: 0
|
|
|
}
|
|
|
},
|
|
|
symbol: "circle",
|
|
|
symbolSize: 3.5
|
|
|
},
|
|
|
k: {
|
|
|
itemStyle: {
|
|
|
normal: {
|
|
|
color: "#C1232B",
|
|
|
color0: "#B5C334",
|
|
|
lineStyle: {
|
|
|
width: 1,
|
|
|
color: "#C1232B",
|
|
|
color0: "#B5C334"
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
scatter: {
|
|
|
itemStyle: {
|
|
|
normal: {
|
|
|
borderWidth: 1,
|
|
|
borderColor: "rgba(200,200,200,0.5)"
|
|
|
},
|
|
|
emphasis: {
|
|
|
borderWidth: 0
|
|
|
}
|
|
|
},
|
|
|
symbol: "star4",
|
|
|
symbolSize: 4
|
|
|
},
|
|
|
radar: {
|
|
|
symbol: "emptyCircle",
|
|
|
symbolSize: 3
|
|
|
},
|
|
|
map: {
|
|
|
itemStyle: {
|
|
|
normal: {
|
|
|
areaStyle: {
|
|
|
color: "#ddd"
|
|
|
},
|
|
|
label: {
|
|
|
textStyle: {
|
|
|
color: "#C1232B"
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
emphasis: {
|
|
|
areaStyle: {
|
|
|
color: "#fe994e"
|
|
|
},
|
|
|
label: {
|
|
|
textStyle: {
|
|
|
color: "rgb(100,0,0)"
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
force: {
|
|
|
itemStyle: {
|
|
|
normal: {
|
|
|
linkStyle: {
|
|
|
color: "#27727B"
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
chord: {
|
|
|
itemStyle: {
|
|
|
normal: {
|
|
|
borderWidth: 1,
|
|
|
borderColor: "rgba(128, 128, 128, 0.5)",
|
|
|
chordStyle: {
|
|
|
lineStyle: {
|
|
|
color: "rgba(128, 128, 128, 0.5)"
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
emphasis: {
|
|
|
borderWidth: 1,
|
|
|
borderColor: "rgba(128, 128, 128, 0.5)",
|
|
|
chordStyle: {
|
|
|
lineStyle: {
|
|
|
color: "rgba(128, 128, 128, 0.5)"
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
gauge: {
|
|
|
center: ["50%", "80%"],
|
|
|
radius: "100%",
|
|
|
startAngle: 180,
|
|
|
endAngle: 0,
|
|
|
axisLine: {
|
|
|
show: !0,
|
|
|
lineStyle: {
|
|
|
color: [
|
|
|
[0.2, "#B5C334"],
|
|
|
[0.8, "#27727B"],
|
|
|
[1, "#C1232B"]
|
|
|
],
|
|
|
width: "40%"
|
|
|
}
|
|
|
},
|
|
|
axisTick: {
|
|
|
splitNumber: 2,
|
|
|
length: 5,
|
|
|
lineStyle: {
|
|
|
color: "#fff"
|
|
|
}
|
|
|
},
|
|
|
axisLabel: {
|
|
|
textStyle: {
|
|
|
color: "#fff",
|
|
|
fontWeight: "bolder"
|
|
|
}
|
|
|
},
|
|
|
splitLine: {
|
|
|
length: "5%",
|
|
|
lineStyle: {
|
|
|
color: "#fff"
|
|
|
}
|
|
|
},
|
|
|
pointer: {
|
|
|
width: "40%",
|
|
|
length: "80%",
|
|
|
color: "#fff"
|
|
|
},
|
|
|
title: {
|
|
|
offsetCenter: [0, -20],
|
|
|
textStyle: {
|
|
|
color: "auto",
|
|
|
fontSize: 20
|
|
|
}
|
|
|
},
|
|
|
detail: {
|
|
|
offsetCenter: [0, 0],
|
|
|
textStyle: {
|
|
|
color: "auto",
|
|
|
fontSize: 40
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
textStyle: {
|
|
|
fontFamily: "微软雅黑, Arial, Verdana, sans-serif"
|
|
|
}
|
|
|
};
|
|
|
return a
|
|
|
}), d("zrender/dep/excanvas", ["require"], function() {
|
|
|
return document.createElement("canvas").getContext ? G_vmlCanvasManager = !1 : ! function() {
|
|
|
function ai() {
|
|
|
return this.context_ || (this.context_ = new ak(this))
|
|
|
}
|
|
|
|
|
|
function aM(a, m) {
|
|
|
var l = aD.call(arguments, 2);
|
|
|
return function() {
|
|
|
return a.apply(m, l.concat(aD.call(arguments)))
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function aq(a) {
|
|
|
return String(a).replace(/&/g, "&").replace(/"/g, """)
|
|
|
}
|
|
|
|
|
|
function aA(a, m, l) {
|
|
|
a.namespaces[m] || a.namespaces.add(m, l, "#default#VML")
|
|
|
}
|
|
|
|
|
|
function aa(a) {
|
|
|
if (aA(a, "g_vml_", "urn:schemas-microsoft-com:vml"), aA(a, "g_o_", "urn:schemas-microsoft-com:office:office"), !a.styleSheets.ex_canvas_) {
|
|
|
var i = a.createStyleSheet();
|
|
|
i.owningElement.id = "ex_canvas_", i.cssText = "canvas{display:inline-block;overflow:hidden;text-align:left;width:300px;height:150px}"
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function aC(a) {
|
|
|
var i = a.srcElement;
|
|
|
switch (a.propertyName) {
|
|
|
case "width":
|
|
|
i.getContext().clearRect(), i.style.width = i.attributes.width.nodeValue + "px", i.firstChild.style.width = i.clientWidth + "px";
|
|
|
break;
|
|
|
case "height":
|
|
|
i.getContext().clearRect(), i.style.height = i.attributes.height.nodeValue + "px", i.firstChild.style.height = i.clientHeight + "px"
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function aI(a) {
|
|
|
var i = a.srcElement;
|
|
|
i.firstChild && (i.firstChild.style.width = i.clientWidth + "px", i.firstChild.style.height = i.clientHeight + "px")
|
|
|
}
|
|
|
|
|
|
function aK() {
|
|
|
return [
|
|
|
[1, 0, 0],
|
|
|
[0, 1, 0],
|
|
|
[0, 0, 1]
|
|
|
]
|
|
|
}
|
|
|
|
|
|
function aw(m, v) {
|
|
|
for (var p = aK(), q = 0; 3 > q; q++) {
|
|
|
for (var l = 0; 3 > l; l++) {
|
|
|
for (var s = 0, u = 0; 3 > u; u++) {
|
|
|
s += m[q][u] * v[u][l]
|
|
|
}
|
|
|
p[q][l] = s
|
|
|
}
|
|
|
}
|
|
|
return p
|
|
|
}
|
|
|
|
|
|
function ao(a, i) {
|
|
|
i.fillStyle = a.fillStyle, i.lineCap = a.lineCap, i.lineJoin = a.lineJoin, i.lineWidth = a.lineWidth, i.miterLimit = a.miterLimit, i.shadowBlur = a.shadowBlur, i.shadowColor = a.shadowColor, i.shadowOffsetX = a.shadowOffsetX, i.shadowOffsetY = a.shadowOffsetY, i.strokeStyle = a.strokeStyle, i.globalAlpha = a.globalAlpha, i.font = a.font, i.textAlign = a.textAlign, i.textBaseline = a.textBaseline, i.scaleX_ = a.scaleX_, i.scaleY_ = a.scaleY_, i.lineScale_ = a.lineScale_
|
|
|
}
|
|
|
|
|
|
function ay(a) {
|
|
|
var o = a.indexOf("(", 3),
|
|
|
l = a.indexOf(")", o + 1),
|
|
|
m = a.substring(o + 1, l).split(",");
|
|
|
return (4 != m.length || "a" != a.charAt(3)) && (m[3] = 1), m
|
|
|
}
|
|
|
|
|
|
function aR(a) {
|
|
|
return parseFloat(a) / 100
|
|
|
}
|
|
|
|
|
|
function aP(a, m, l) {
|
|
|
return Math.min(l, Math.max(m, a))
|
|
|
}
|
|
|
|
|
|
function ag(p) {
|
|
|
var z, q, v, m, w, x;
|
|
|
if (m = parseFloat(p[0]) / 360 % 360, 0 > m && m++, w = aP(aR(p[1]), 0, 1), x = aP(aR(p[2]), 0, 1), 0 == w) {
|
|
|
z = q = v = x
|
|
|
} else {
|
|
|
var y = 0.5 > x ? x * (1 + w) : x + w - x * w,
|
|
|
u = 2 * x - y;
|
|
|
z = aE(u, y, m + 1 / 3), q = aE(u, y, m), v = aE(u, y, m - 1 / 3)
|
|
|
}
|
|
|
return "#" + ah[Math.floor(255 * z)] + ah[Math.floor(255 * q)] + ah[Math.floor(255 * v)]
|
|
|
}
|
|
|
|
|
|
function aE(a, m, l) {
|
|
|
return 0 > l && l++, l > 1 && l--, 1 > 6 * l ? a + 6 * (m - a) * l : 1 > 2 * l ? m : 2 > 3 * l ? a + (m - a) * (2 / 3 - l) * 6 : a
|
|
|
}
|
|
|
|
|
|
function ae(m) {
|
|
|
if (m in aJ) {
|
|
|
return aJ[m]
|
|
|
}
|
|
|
var s, p = 1;
|
|
|
if (m = String(m), "#" == m.charAt(0)) {
|
|
|
s = m
|
|
|
} else {
|
|
|
if (/^rgb/.test(m)) {
|
|
|
for (var q, l = ay(m), s = "#", r = 0; 3 > r; r++) {
|
|
|
q = -1 != l[r].indexOf("%") ? Math.floor(255 * aR(l[r])) : +l[r], s += ah[aP(q, 0, 255)]
|
|
|
}
|
|
|
p = +l[3]
|
|
|
} else {
|
|
|
if (/^hsl/.test(m)) {
|
|
|
var l = ay(m);
|
|
|
s = ag(l), p = l[3]
|
|
|
} else {
|
|
|
s = ap[m] || m
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return aJ[m] = {
|
|
|
color: s,
|
|
|
alpha: p
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function aO(m) {
|
|
|
if (aX[m]) {
|
|
|
return aX[m]
|
|
|
}
|
|
|
var q, o = document.createElement("div"),
|
|
|
p = o.style;
|
|
|
try {
|
|
|
p.font = m, q = p.fontFamily.split(",")[0]
|
|
|
} catch (l) {}
|
|
|
return aX[m] = {
|
|
|
style: p.fontStyle || an.style,
|
|
|
variant: p.fontVariant || an.variant,
|
|
|
weight: p.fontWeight || an.weight,
|
|
|
size: p.fontSize || an.size,
|
|
|
family: q || an.family
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function aW(m, s) {
|
|
|
var p = {};
|
|
|
for (var q in m) {
|
|
|
p[q] = m[q]
|
|
|
}
|
|
|
var l = parseFloat(s.currentStyle.fontSize),
|
|
|
r = parseFloat(m.size);
|
|
|
return p.size = "number" == typeof m.size ? m.size : -1 != m.size.indexOf("px") ? r : -1 != m.size.indexOf("em") ? l * r : -1 != m.size.indexOf("%") ? l / 100 * r : -1 != m.size.indexOf("pt") ? r / 0.75 : l, p
|
|
|
}
|
|
|
|
|
|
function am(a) {
|
|
|
return a.style + " " + a.variant + " " + a.weight + " " + a.size + "px '" + a.family + "'"
|
|
|
}
|
|
|
|
|
|
function ac(a) {
|
|
|
return aH[a] || "square"
|
|
|
}
|
|
|
|
|
|
function ak(a) {
|
|
|
this.m_ = aK(), this.mStack_ = [], this.aStack_ = [], this.currentPath_ = [], this.strokeStyle = "#000", this.fillStyle = "#000", this.lineWidth = 1, this.lineJoin = "miter", this.lineCap = "butt", this.miterLimit = 1 * ab, this.globalAlpha = 1, this.font = "12px 微软雅黑", this.textAlign = "left", this.textBaseline = "alphabetic", this.canvas = a;
|
|
|
var o = "width:" + a.clientWidth + "px;height:" + a.clientHeight + "px;overflow:hidden;position:absolute",
|
|
|
l = a.ownerDocument.createElement("div");
|
|
|
l.style.cssText = o, a.appendChild(l);
|
|
|
var m = l.cloneNode(!1);
|
|
|
m.style.backgroundColor = "#fff", m.style.filter = "alpha(opacity=0)", a.appendChild(m), this.element_ = l, this.scaleX_ = 1, this.scaleY_ = 1, this.lineScale_ = 1
|
|
|
}
|
|
|
|
|
|
function au(a, o, l, m) {
|
|
|
a.currentPath_.push({
|
|
|
type: "bezierCurveTo",
|
|
|
cp1x: o.x,
|
|
|
cp1y: o.y,
|
|
|
cp2x: l.x,
|
|
|
cp2y: l.y,
|
|
|
x: m.x,
|
|
|
y: m.y
|
|
|
}), a.currentX_ = m.x, a.currentY_ = m.y
|
|
|
}
|
|
|
|
|
|
function aU(m, s) {
|
|
|
var p = ae(m.strokeStyle),
|
|
|
q = p.color,
|
|
|
l = p.alpha * m.globalAlpha,
|
|
|
r = m.lineScale_ * m.lineWidth;
|
|
|
1 > r && (l *= r), s.push("<g_vml_:stroke", ' opacity="', l, '"', ' joinstyle="', m.lineJoin, '"', ' miterlimit="', m.miterLimit, '"', ' endcap="', ac(m.lineCap), '"', ' weight="', r, 'px"', ' color="', q, '" />')
|
|
|
}
|
|
|
|
|
|
function j(B, bb, N, a3) {
|
|
|
var v = B.fillStyle,
|
|
|
a4 = B.scaleX_,
|
|
|
a8 = B.scaleY_,
|
|
|
a9 = a3.x - N.x,
|
|
|
a0 = a3.y - N.y;
|
|
|
if (v instanceof aQ) {
|
|
|
var L = 0,
|
|
|
a1 = {
|
|
|
x: 0,
|
|
|
y: 0
|
|
|
},
|
|
|
bf = 0,
|
|
|
be = 1;
|
|
|
if ("gradient" == v.type_) {
|
|
|
var A = v.x0_ / a4,
|
|
|
a6 = v.y0_ / a8,
|
|
|
bd = v.x1_ / a4,
|
|
|
bj = v.y1_ / a8,
|
|
|
H = ax(B, A, a6),
|
|
|
w = ax(B, bd, bj),
|
|
|
D = w.x - H.x,
|
|
|
Y = w.y - H.y;
|
|
|
L = 180 * Math.atan2(D, Y) / Math.PI, 0 > L && (L += 360), 1e-06 > L && (L = 0)
|
|
|
} else {
|
|
|
var H = ax(B, v.x0_, v.y0_);
|
|
|
a1 = {
|
|
|
x: (H.x - N.x) / a9,
|
|
|
y: (H.y - N.y) / a0
|
|
|
}, a9 /= a4 * ab, a0 /= a8 * ab;
|
|
|
var bh = af.max(a9, a0);
|
|
|
bf = 2 * v.r0_ / bh, be = 2 * v.r1_ / bh - bf
|
|
|
}
|
|
|
var q = v.colors_;
|
|
|
q.sort(function(a, i) {
|
|
|
return a.offset - i.offset
|
|
|
});
|
|
|
for (var bg = q.length, bi = q[0].color, Z = q[bg - 1].color, Q = q[0].alpha * B.globalAlpha, R = q[bg - 1].alpha * B.globalAlpha, ba = [], C = 0; bg > C; C++) {
|
|
|
var G = q[C];
|
|
|
ba.push(G.offset * be + bf + " " + G.color)
|
|
|
}
|
|
|
bb.push('<g_vml_:fill type="', v.type_, '"', ' method="none" focus="100%"', ' color="', bi, '"', ' color2="', Z, '"', ' colors="', ba.join(","), '"', ' opacity="', R, '"', ' g_o_:opacity2="', Q, '"', ' angle="', L, '"', ' focusposition="', a1.x, ",", a1.y, '" />')
|
|
|
} else {
|
|
|
if (v instanceof aS) {
|
|
|
if (a9 && a0) {
|
|
|
var bc = -N.x,
|
|
|
bk = -N.y;
|
|
|
bb.push("<g_vml_:fill", ' position="', bc / a9 * a4 * a4, ",", bk / a0 * a8 * a8, '"', ' type="tile"', ' src="', v.src_, '" />')
|
|
|
}
|
|
|
} else {
|
|
|
var a2 = ae(B.fillStyle),
|
|
|
a5 = a2.color,
|
|
|
a7 = a2.alpha * B.globalAlpha;
|
|
|
bb.push('<g_vml_:fill color="', a5, '" opacity="', a7, '" />')
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function ax(a, o, l) {
|
|
|
var m = a.m_;
|
|
|
return {
|
|
|
x: ab * (o * m[0][0] + l * m[1][0] + m[2][0]) - az,
|
|
|
y: ab * (o * m[0][1] + l * m[1][1] + m[2][1]) - az
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function aT(a) {
|
|
|
return isFinite(a[0][0]) && isFinite(a[0][1]) && isFinite(a[1][0]) && isFinite(a[1][1]) && isFinite(a[2][0]) && isFinite(a[2][1])
|
|
|
}
|
|
|
|
|
|
function aV(a, o, l) {
|
|
|
if (aT(o) && (a.m_ = o, a.scaleX_ = Math.sqrt(o[0][0] * o[0][0] + o[0][1] * o[0][1]), a.scaleY_ = Math.sqrt(o[1][0] * o[1][0] + o[1][1] * o[1][1]), l)) {
|
|
|
var m = o[0][0] * o[1][1] - o[0][1] * o[1][0];
|
|
|
a.lineScale_ = aY(aN(m))
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function aQ(a) {
|
|
|
this.type_ = a, this.x0_ = 0, this.y0_ = 0, this.r0_ = 0, this.x1_ = 0, this.y1_ = 0, this.r1_ = 0, this.colors_ = []
|
|
|
}
|
|
|
|
|
|
function aS(a, i) {
|
|
|
switch (ar(a), i) {
|
|
|
case "repeat":
|
|
|
case null:
|
|
|
case "":
|
|
|
this.repetition_ = "repeat";
|
|
|
break;
|
|
|
case "repeat-x":
|
|
|
case "repeat-y":
|
|
|
case "no-repeat":
|
|
|
this.repetition_ = i;
|
|
|
break;
|
|
|
default:
|
|
|
av("SYNTAX_ERR")
|
|
|
}
|
|
|
this.src_ = a.src, this.width_ = a.width, this.height_ = a.height
|
|
|
}
|
|
|
|
|
|
function av(a) {
|
|
|
throw new at(a)
|
|
|
}
|
|
|
|
|
|
function ar(a) {
|
|
|
a && 1 == a.nodeType && "IMG" == a.tagName || av("TYPE_MISMATCH_ERR"), "complete" != a.readyState && av("INVALID_STATE_ERR")
|
|
|
}
|
|
|
|
|
|
function at(a) {
|
|
|
this.code = this[a], this.message = a + ": DOM Exception " + this.code
|
|
|
}
|
|
|
var af = Math,
|
|
|
aL = af.round,
|
|
|
aj = af.sin,
|
|
|
al = af.cos,
|
|
|
aN = af.abs,
|
|
|
aY = af.sqrt,
|
|
|
ab = 10,
|
|
|
az = ab / 2,
|
|
|
aD = (+navigator.userAgent.match(/MSIE ([\d.]+)?/)[1], Array.prototype.slice);
|
|
|
aa(document);
|
|
|
var aF = {
|
|
|
init: function(a) {
|
|
|
var l = a || document;
|
|
|
l.createElement("canvas"), l.attachEvent("onreadystatechange", aM(this.init_, this, l))
|
|
|
},
|
|
|
init_: function(a) {
|
|
|
for (var m = a.getElementsByTagName("canvas"), l = 0; l < m.length; l++) {
|
|
|
this.initElement(m[l])
|
|
|
}
|
|
|
},
|
|
|
initElement: function(e) {
|
|
|
if (!e.getContext) {
|
|
|
e.getContext = ai, aa(e.ownerDocument), e.innerHTML = "", e.attachEvent("onpropertychange", aC), e.attachEvent("onresize", aI);
|
|
|
var a = e.attributes;
|
|
|
a.width && a.width.specified ? e.style.width = a.width.nodeValue + "px" : e.width = e.clientWidth, a.height && a.height.specified ? e.style.height = a.height.nodeValue + "px" : e.height = e.clientHeight
|
|
|
}
|
|
|
return e
|
|
|
}
|
|
|
};
|
|
|
aF.init();
|
|
|
for (var ah = [], aB = 0; 16 > aB; aB++) {
|
|
|
for (var ad = 0; 16 > ad; ad++) {
|
|
|
ah[16 * aB + ad] = aB.toString(16) + ad.toString(16)
|
|
|
}
|
|
|
}
|
|
|
var ap = {
|
|
|
aliceblue: "#F0F8FF",
|
|
|
antiquewhite: "#FAEBD7",
|
|
|
aquamarine: "#7FFFD4",
|
|
|
azure: "#F0FFFF",
|
|
|
beige: "#F5F5DC",
|
|
|
bisque: "#FFE4C4",
|
|
|
black: "#000000",
|
|
|
blanchedalmond: "#FFEBCD",
|
|
|
blueviolet: "#8A2BE2",
|
|
|
brown: "#A52A2A",
|
|
|
burlywood: "#DEB887",
|
|
|
cadetblue: "#5F9EA0",
|
|
|
chartreuse: "#7FFF00",
|
|
|
chocolate: "#D2691E",
|
|
|
coral: "#FF7F50",
|
|
|
cornflowerblue: "#6495ED",
|
|
|
cornsilk: "#FFF8DC",
|
|
|
crimson: "#DC143C",
|
|
|
cyan: "#00FFFF",
|
|
|
darkblue: "#00008B",
|
|
|
darkcyan: "#008B8B",
|
|
|
darkgoldenrod: "#B8860B",
|
|
|
darkgray: "#A9A9A9",
|
|
|
darkgreen: "#006400",
|
|
|
darkgrey: "#A9A9A9",
|
|
|
darkkhaki: "#BDB76B",
|
|
|
darkmagenta: "#8B008B",
|
|
|
darkolivegreen: "#556B2F",
|
|
|
darkorange: "#FF8C00",
|
|
|
darkorchid: "#9932CC",
|
|
|
darkred: "#8B0000",
|
|
|
darksalmon: "#E9967A",
|
|
|
darkseagreen: "#8FBC8F",
|
|
|
darkslateblue: "#483D8B",
|
|
|
darkslategray: "#2F4F4F",
|
|
|
darkslategrey: "#2F4F4F",
|
|
|
darkturquoise: "#00CED1",
|
|
|
darkviolet: "#9400D3",
|
|
|
deeppink: "#FF1493",
|
|
|
deepskyblue: "#00BFFF",
|
|
|
dimgray: "#696969",
|
|
|
dimgrey: "#696969",
|
|
|
dodgerblue: "#1E90FF",
|
|
|
firebrick: "#B22222",
|
|
|
floralwhite: "#FFFAF0",
|
|
|
forestgreen: "#228B22",
|
|
|
gainsboro: "#DCDCDC",
|
|
|
ghostwhite: "#F8F8FF",
|
|
|
gold: "#FFD700",
|
|
|
goldenrod: "#DAA520",
|
|
|
grey: "#808080",
|
|
|
greenyellow: "#ADFF2F",
|
|
|
honeydew: "#F0FFF0",
|
|
|
hotpink: "#FF69B4",
|
|
|
indianred: "#CD5C5C",
|
|
|
indigo: "#4B0082",
|
|
|
ivory: "#FFFFF0",
|
|
|
khaki: "#F0E68C",
|
|
|
lavender: "#E6E6FA",
|
|
|
lavenderblush: "#FFF0F5",
|
|
|
lawngreen: "#7CFC00",
|
|
|
lemonchiffon: "#FFFACD",
|
|
|
lightblue: "#ADD8E6",
|
|
|
lightcoral: "#F08080",
|
|
|
lightcyan: "#E0FFFF",
|
|
|
lightgoldenrodyellow: "#FAFAD2",
|
|
|
lightgreen: "#90EE90",
|
|
|
lightgrey: "#D3D3D3",
|
|
|
lightpink: "#FFB6C1",
|
|
|
lightsalmon: "#FFA07A",
|
|
|
lightseagreen: "#20B2AA",
|
|
|
lightskyblue: "#87CEFA",
|
|
|
lightslategray: "#778899",
|
|
|
lightslategrey: "#778899",
|
|
|
lightsteelblue: "#B0C4DE",
|
|
|
lightyellow: "#FFFFE0",
|
|
|
limegreen: "#32CD32",
|
|
|
linen: "#FAF0E6",
|
|
|
magenta: "#FF00FF",
|
|
|
mediumaquamarine: "#66CDAA",
|
|
|
mediumblue: "#0000CD",
|
|
|
mediumorchid: "#BA55D3",
|
|
|
mediumpurple: "#9370DB",
|
|
|
mediumseagreen: "#3CB371",
|
|
|
mediumslateblue: "#7B68EE",
|
|
|
mediumspringgreen: "#00FA9A",
|
|
|
mediumturquoise: "#48D1CC",
|
|
|
mediumvioletred: "#C71585",
|
|
|
midnightblue: "#191970",
|
|
|
mintcream: "#F5FFFA",
|
|
|
mistyrose: "#FFE4E1",
|
|
|
moccasin: "#FFE4B5",
|
|
|
navajowhite: "#FFDEAD",
|
|
|
oldlace: "#FDF5E6",
|
|
|
olivedrab: "#6B8E23",
|
|
|
orange: "#FFA500",
|
|
|
orangered: "#FF4500",
|
|
|
orchid: "#DA70D6",
|
|
|
palegoldenrod: "#EEE8AA",
|
|
|
palegreen: "#98FB98",
|
|
|
paleturquoise: "#AFEEEE",
|
|
|
palevioletred: "#DB7093",
|
|
|
papayawhip: "#FFEFD5",
|
|
|
peachpuff: "#FFDAB9",
|
|
|
peru: "#CD853F",
|
|
|
pink: "#FFC0CB",
|
|
|
plum: "#DDA0DD",
|
|
|
powderblue: "#B0E0E6",
|
|
|
rosybrown: "#BC8F8F",
|
|
|
royalblue: "#4169E1",
|
|
|
saddlebrown: "#8B4513",
|
|
|
salmon: "#FA8072",
|
|
|
sandybrown: "#F4A460",
|
|
|
seagreen: "#2E8B57",
|
|
|
seashell: "#FFF5EE",
|
|
|
sienna: "#A0522D",
|
|
|
skyblue: "#87CEEB",
|
|
|
slateblue: "#6A5ACD",
|
|
|
slategray: "#708090",
|
|
|
slategrey: "#708090",
|
|
|
snow: "#FFFAFA",
|
|
|
springgreen: "#00FF7F",
|
|
|
steelblue: "#4682B4",
|
|
|
tan: "#D2B48C",
|
|
|
thistle: "#D8BFD8",
|
|
|
tomato: "#FF6347",
|
|
|
turquoise: "#40E0D0",
|
|
|
violet: "#EE82EE",
|
|
|
wheat: "#F5DEB3",
|
|
|
whitesmoke: "#F5F5F5",
|
|
|
yellowgreen: "#9ACD32"
|
|
|
},
|
|
|
aJ = {},
|
|
|
an = {
|
|
|
style: "normal",
|
|
|
variant: "normal",
|
|
|
weight: "normal",
|
|
|
size: 12,
|
|
|
family: "微软雅黑"
|
|
|
},
|
|
|
aX = {},
|
|
|
aH = {
|
|
|
butt: "flat",
|
|
|
round: "round"
|
|
|
},
|
|
|
aZ = ak.prototype;
|
|
|
aZ.clearRect = function() {
|
|
|
this.textMeasureEl_ && (this.textMeasureEl_.removeNode(!0), this.textMeasureEl_ = null), this.element_.innerHTML = ""
|
|
|
}, aZ.beginPath = function() {
|
|
|
this.currentPath_ = []
|
|
|
}, aZ.moveTo = function(a, m) {
|
|
|
var l = ax(this, a, m);
|
|
|
this.currentPath_.push({
|
|
|
type: "moveTo",
|
|
|
x: l.x,
|
|
|
y: l.y
|
|
|
}), this.currentX_ = l.x, this.currentY_ = l.y
|
|
|
}, aZ.lineTo = function(a, m) {
|
|
|
var l = ax(this, a, m);
|
|
|
this.currentPath_.push({
|
|
|
type: "lineTo",
|
|
|
x: l.x,
|
|
|
y: l.y
|
|
|
}), this.currentX_ = l.x, this.currentY_ = l.y
|
|
|
}, aZ.bezierCurveTo = function(p, z, q, v, m, w) {
|
|
|
var x = ax(this, m, w),
|
|
|
y = ax(this, p, z),
|
|
|
u = ax(this, q, v);
|
|
|
au(this, y, u, x)
|
|
|
}, aZ.quadraticCurveTo = function(m, x, p, q) {
|
|
|
var l = ax(this, m, x),
|
|
|
u = ax(this, p, q),
|
|
|
v = {
|
|
|
x: this.currentX_ + 2 / 3 * (l.x - this.currentX_),
|
|
|
y: this.currentY_ + 2 / 3 * (l.y - this.currentY_)
|
|
|
},
|
|
|
w = {
|
|
|
x: v.x + (u.x - this.currentX_) / 3,
|
|
|
y: v.y + (u.y - this.currentY_) / 3
|
|
|
};
|
|
|
au(this, v, w, u)
|
|
|
}, aZ.arc = function(u, D, w, z, p, A) {
|
|
|
w *= ab;
|
|
|
var B = A ? "at" : "wa",
|
|
|
C = u + al(z) * w - az,
|
|
|
x = D + aj(z) * w - az,
|
|
|
v = u + al(p) * w - az,
|
|
|
y = D + aj(p) * w - az;
|
|
|
C != v || A || (C += 0.125);
|
|
|
var F = ax(this, u, D),
|
|
|
E = ax(this, C, x),
|
|
|
q = ax(this, v, y);
|
|
|
this.currentPath_.push({
|
|
|
type: B,
|
|
|
x: F.x,
|
|
|
y: F.y,
|
|
|
radius: w,
|
|
|
xStart: E.x,
|
|
|
yStart: E.y,
|
|
|
xEnd: q.x,
|
|
|
yEnd: q.y
|
|
|
})
|
|
|
}, aZ.rect = function(a, o, l, m) {
|
|
|
this.moveTo(a, o), this.lineTo(a + l, o), this.lineTo(a + l, o + m), this.lineTo(a, o + m), this.closePath()
|
|
|
}, aZ.strokeRect = function(m, q, o, p) {
|
|
|
var l = this.currentPath_;
|
|
|
this.beginPath(), this.moveTo(m, q), this.lineTo(m + o, q), this.lineTo(m + o, q + p), this.lineTo(m, q + p), this.closePath(), this.stroke(), this.currentPath_ = l
|
|
|
}, aZ.fillRect = function(m, q, o, p) {
|
|
|
var l = this.currentPath_;
|
|
|
this.beginPath(), this.moveTo(m, q), this.lineTo(m + o, q), this.lineTo(m + o, q + p), this.lineTo(m, q + p), this.closePath(), this.fill(), this.currentPath_ = l
|
|
|
}, aZ.createLinearGradient = function(m, q, o, p) {
|
|
|
var l = new aQ("gradient");
|
|
|
return l.x0_ = m, l.y0_ = q, l.x1_ = o, l.y1_ = p, l
|
|
|
}, aZ.createRadialGradient = function(m, v, p, q, l, s) {
|
|
|
var u = new aQ("gradientradial");
|
|
|
return u.x0_ = m, u.y0_ = v, u.r0_ = p, u.x1_ = q, u.y1_ = l, u.r1_ = s, u
|
|
|
}, aZ.drawImage = function(B) {
|
|
|
var O, F, J, v, K, M, N, H, E = B.runtimeStyle.width,
|
|
|
I = B.runtimeStyle.height;
|
|
|
B.runtimeStyle.width = "auto", B.runtimeStyle.height = "auto";
|
|
|
var R = B.width,
|
|
|
Q = B.height;
|
|
|
if (B.runtimeStyle.width = E, B.runtimeStyle.height = I, 3 == arguments.length) {
|
|
|
O = arguments[1], F = arguments[2], K = M = 0, N = J = R, H = v = Q
|
|
|
} else {
|
|
|
if (5 == arguments.length) {
|
|
|
O = arguments[1], F = arguments[2], J = arguments[3], v = arguments[4], K = M = 0, N = R, H = Q
|
|
|
} else {
|
|
|
if (9 != arguments.length) {
|
|
|
throw Error("Invalid number of arguments")
|
|
|
}
|
|
|
K = arguments[1], M = arguments[2], N = arguments[3], H = arguments[4], O = arguments[5], F = arguments[6], J = arguments[7], v = arguments[8]
|
|
|
}
|
|
|
}
|
|
|
var A = ax(this, O, F),
|
|
|
L = [],
|
|
|
z = 10,
|
|
|
P = 10,
|
|
|
T = w = 1;
|
|
|
if (L.push(" <g_vml_:group", ' coordsize="', ab * z, ",", ab * P, '"', ' coordorigin="0,0"', ' style="width:', z, "px;height:", P, "px;position:absolute;"), 1 != this.m_[0][0] || this.m_[0][1] || 1 != this.m_[1][1] || this.m_[1][0]) {
|
|
|
var D = [],
|
|
|
T = this.scaleX_,
|
|
|
w = this.scaleY_;
|
|
|
D.push("M11=", this.m_[0][0] / T, ",", "M12=", this.m_[1][0] / w, ",", "M21=", this.m_[0][1] / T, ",", "M22=", this.m_[1][1] / w, ",", "Dx=", aL(A.x / ab), ",", "Dy=", aL(A.y / ab), "");
|
|
|
var C = A,
|
|
|
G = ax(this, O + J, F),
|
|
|
S = ax(this, O, F + v),
|
|
|
q = ax(this, O + J, F + v);
|
|
|
C.x = af.max(C.x, G.x, S.x, q.x), C.y = af.max(C.y, G.y, S.y, q.y), L.push("padding:0 ", aL(C.x / ab), "px ", aL(C.y / ab), "px 0;filter:progid:DXImageTransform.Microsoft.Matrix(", D.join(""), ", SizingMethod='clip');")
|
|
|
} else {
|
|
|
L.push("top:", aL(A.y / ab), "px;left:", aL(A.x / ab), "px;")
|
|
|
}
|
|
|
L.push(' ">'), (K || M) && L.push('<div style="overflow: hidden; width:', Math.ceil((J + K * J / N) * T), "px;", " height:", Math.ceil((v + M * v / H) * w), "px;", " filter:progid:DxImageTransform.Microsoft.Matrix(Dx=", -K * J / N * T, ",Dy=", -M * v / H * w, ');">'), L.push('<div style="width:', Math.round(T * R * J / N), "px;", " height:", Math.round(w * Q * v / H), "px;", " filter:"), this.globalAlpha < 1 && L.push(" progid:DXImageTransform.Microsoft.Alpha(opacity=" + 100 * this.globalAlpha + ")"), L.push(" progid:DXImageTransform.Microsoft.AlphaImageLoader(src=", B.src, ',sizingMethod=scale)">'), (K || M) && L.push("</div>"), L.push("</div></div>"), this.element_.insertAdjacentHTML("BeforeEnd", L.join(""))
|
|
|
}, aZ.stroke = function(p) {
|
|
|
var z = [],
|
|
|
q = 10,
|
|
|
v = 10;
|
|
|
z.push("<g_vml_:shape", ' filled="', !!p, '"', ' style="position:absolute;width:', q, "px;height:", v, 'px;"', ' coordorigin="0,0"', ' coordsize="', ab * q, ",", ab * v, '"', ' stroked="', !p, '"', ' path="');
|
|
|
for (var m = {
|
|
|
x: null,
|
|
|
y: null
|
|
|
}, w = {
|
|
|
x: null,
|
|
|
y: null
|
|
|
}, x = 0; x < this.currentPath_.length; x++) {
|
|
|
var y, u = this.currentPath_[x];
|
|
|
switch (u.type) {
|
|
|
case "moveTo":
|
|
|
y = u, z.push(" m ", aL(u.x), ",", aL(u.y));
|
|
|
break;
|
|
|
case "lineTo":
|
|
|
z.push(" l ", aL(u.x), ",", aL(u.y));
|
|
|
break;
|
|
|
case "close":
|
|
|
z.push(" x "), u = null;
|
|
|
break;
|
|
|
case "bezierCurveTo":
|
|
|
z.push(" c ", aL(u.cp1x), ",", aL(u.cp1y), ",", aL(u.cp2x), ",", aL(u.cp2y), ",", aL(u.x), ",", aL(u.y));
|
|
|
break;
|
|
|
case "at":
|
|
|
case "wa":
|
|
|
z.push(" ", u.type, " ", aL(u.x - this.scaleX_ * u.radius), ",", aL(u.y - this.scaleY_ * u.radius), " ", aL(u.x + this.scaleX_ * u.radius), ",", aL(u.y + this.scaleY_ * u.radius), " ", aL(u.xStart), ",", aL(u.yStart), " ", aL(u.xEnd), ",", aL(u.yEnd))
|
|
|
}
|
|
|
u && ((null == m.x || u.x < m.x) && (m.x = u.x), (null == w.x || u.x > w.x) && (w.x = u.x), (null == m.y || u.y < m.y) && (m.y = u.y), (null == w.y || u.y > w.y) && (w.y = u.y))
|
|
|
}
|
|
|
z.push(' ">'), p ? j(this, z, m, w) : aU(this, z), z.push("</g_vml_:shape>"), this.element_.insertAdjacentHTML("beforeEnd", z.join(""))
|
|
|
}, aZ.fill = function() {
|
|
|
this.stroke(!0)
|
|
|
}, aZ.closePath = function() {
|
|
|
this.currentPath_.push({
|
|
|
type: "close"
|
|
|
})
|
|
|
}, aZ.save = function() {
|
|
|
var a = {};
|
|
|
ao(this, a), this.aStack_.push(a), this.mStack_.push(this.m_), this.m_ = aw(aK(), this.m_)
|
|
|
}, aZ.restore = function() {
|
|
|
this.aStack_.length && (ao(this.aStack_.pop(), this), this.m_ = this.mStack_.pop())
|
|
|
}, aZ.translate = function(a, m) {
|
|
|
var l = [
|
|
|
[1, 0, 0],
|
|
|
[0, 1, 0],
|
|
|
[a, m, 1]
|
|
|
];
|
|
|
aV(this, aw(l, this.m_), !1)
|
|
|
}, aZ.rotate = function(a) {
|
|
|
var o = al(a),
|
|
|
l = aj(a),
|
|
|
m = [
|
|
|
[o, l, 0],
|
|
|
[-l, o, 0],
|
|
|
[0, 0, 1]
|
|
|
];
|
|
|
aV(this, aw(m, this.m_), !1)
|
|
|
}, aZ.scale = function(a, m) {
|
|
|
var l = [
|
|
|
[a, 0, 0],
|
|
|
[0, m, 0],
|
|
|
[0, 0, 1]
|
|
|
];
|
|
|
aV(this, aw(l, this.m_), !0)
|
|
|
}, aZ.transform = function(m, v, p, q, l, s) {
|
|
|
var u = [
|
|
|
[m, v, 0],
|
|
|
[p, q, 0],
|
|
|
[l, s, 1]
|
|
|
];
|
|
|
aV(this, aw(u, this.m_), !0)
|
|
|
}, aZ.setTransform = function(m, v, p, q, l, s) {
|
|
|
var u = [
|
|
|
[m, v, 0],
|
|
|
[p, q, 0],
|
|
|
[l, s, 1]
|
|
|
];
|
|
|
aV(this, u, !0)
|
|
|
}, aZ.drawText_ = function(w, H, C, i, D) {
|
|
|
var F = this.m_,
|
|
|
G = 1000,
|
|
|
A = 0,
|
|
|
y = G,
|
|
|
B = {
|
|
|
x: 0,
|
|
|
y: 0
|
|
|
},
|
|
|
J = [],
|
|
|
I = aW(aO(this.font), this.element_),
|
|
|
v = am(I),
|
|
|
E = this.element_.currentStyle,
|
|
|
u = this.textAlign.toLowerCase();
|
|
|
switch (u) {
|
|
|
case "left":
|
|
|
case "center":
|
|
|
case "right":
|
|
|
break;
|
|
|
case "end":
|
|
|
u = "ltr" == E.direction ? "right" : "left";
|
|
|
break;
|
|
|
case "start":
|
|
|
u = "rtl" == E.direction ? "right" : "left";
|
|
|
break;
|
|
|
default:
|
|
|
u = "left"
|
|
|
}
|
|
|
switch (this.textBaseline) {
|
|
|
case "hanging":
|
|
|
case "top":
|
|
|
B.y = I.size / 1.75;
|
|
|
break;
|
|
|
case "middle":
|
|
|
break;
|
|
|
default:
|
|
|
case null:
|
|
|
case "alphabetic":
|
|
|
case "ideographic":
|
|
|
case "bottom":
|
|
|
B.y = -I.size / 2.25
|
|
|
}
|
|
|
switch (u) {
|
|
|
case "right":
|
|
|
A = G, y = 0.05;
|
|
|
break;
|
|
|
case "center":
|
|
|
A = y = G / 2
|
|
|
}
|
|
|
var q = ax(this, H + B.x, C + B.y);
|
|
|
J.push('<g_vml_:line from="', -A, ' 0" to="', y, ' 0.05" ', ' coordsize="100 100" coordorigin="0 0"', ' filled="', !D, '" stroked="', !!D, '" style="position:absolute;width:1px;height:1px;">'), D ? aU(this, J) : j(this, J, {
|
|
|
x: -A,
|
|
|
y: 0
|
|
|
}, {
|
|
|
x: y,
|
|
|
y: I.size
|
|
|
});
|
|
|
var x = F[0][0].toFixed(3) + "," + F[1][0].toFixed(3) + "," + F[0][1].toFixed(3) + "," + F[1][1].toFixed(3) + ",0,0",
|
|
|
z = aL(q.x / ab) + "," + aL(q.y / ab);
|
|
|
J.push('<g_vml_:skew on="t" matrix="', x, '" ', ' offset="', z, '" origin="', A, ' 0" />', '<g_vml_:path textpathok="true" />', '<g_vml_:textpath on="true" string="', aq(w), '" style="v-text-align:', u, ";font:", aq(v), '" /></g_vml_:line>'), this.element_.insertAdjacentHTML("beforeEnd", J.join(""))
|
|
|
}, aZ.fillText = function(a, o, l, m) {
|
|
|
this.drawText_(a, o, l, m, !1)
|
|
|
}, aZ.strokeText = function(a, o, l, m) {
|
|
|
this.drawText_(a, o, l, m, !0)
|
|
|
}, aZ.measureText = function(a) {
|
|
|
if (!this.textMeasureEl_) {
|
|
|
var o = '<span style="position:absolute;top:-20000px;left:0;padding:0;margin:0;border:none;white-space:pre;"></span>';
|
|
|
this.element_.insertAdjacentHTML("beforeEnd", o), this.textMeasureEl_ = this.element_.lastChild
|
|
|
}
|
|
|
var l = this.element_.ownerDocument;
|
|
|
this.textMeasureEl_.innerHTML = "";
|
|
|
try {
|
|
|
this.textMeasureEl_.style.font = this.font
|
|
|
} catch (m) {}
|
|
|
return this.textMeasureEl_.appendChild(l.createTextNode(a)), {
|
|
|
width: this.textMeasureEl_.offsetWidth
|
|
|
}
|
|
|
}, aZ.clip = function() {}, aZ.arcTo = function() {}, aZ.createPattern = function(a, i) {
|
|
|
return new aS(a, i)
|
|
|
}, aQ.prototype.addColorStop = function(a, i) {
|
|
|
i = ae(i), this.colors_.push({
|
|
|
offset: a,
|
|
|
color: i.color,
|
|
|
alpha: i.alpha
|
|
|
})
|
|
|
};
|
|
|
var aG = at.prototype = new Error;
|
|
|
aG.INDEX_SIZE_ERR = 1, aG.DOMSTRING_SIZE_ERR = 2, aG.HIERARCHY_REQUEST_ERR = 3, aG.WRONG_DOCUMENT_ERR = 4, aG.INVALID_CHARACTER_ERR = 5, aG.NO_DATA_ALLOWED_ERR = 6, aG.NO_MODIFICATION_ALLOWED_ERR = 7, aG.NOT_FOUND_ERR = 8, aG.NOT_SUPPORTED_ERR = 9, aG.INUSE_ATTRIBUTE_ERR = 10, aG.INVALID_STATE_ERR = 11, aG.SYNTAX_ERR = 12, aG.INVALID_MODIFICATION_ERR = 13, aG.NAMESPACE_ERR = 14, aG.INVALID_ACCESS_ERR = 15, aG.VALIDATION_ERR = 16, aG.TYPE_MISMATCH_ERR = 17, G_vmlCanvasManager = aF, CanvasRenderingContext2D = ak, CanvasGradient = aQ, CanvasPattern = aS, DOMException = at
|
|
|
}(), G_vmlCanvasManager
|
|
|
}), d("zrender/mixin/Eventful", ["require"], function() {
|
|
|
var a = function() {
|
|
|
this._handlers = {}
|
|
|
};
|
|
|
return a.prototype.one = function(j, o, l) {
|
|
|
var m = this._handlers;
|
|
|
return o && j ? (m[j] || (m[j] = []), m[j].push({
|
|
|
h: o,
|
|
|
one: !0,
|
|
|
ctx: l || this
|
|
|
}), this) : this
|
|
|
}, a.prototype.bind = function(j, o, l) {
|
|
|
var m = this._handlers;
|
|
|
return o && j ? (m[j] || (m[j] = []), m[j].push({
|
|
|
h: o,
|
|
|
one: !1,
|
|
|
ctx: l || this
|
|
|
}), this) : this
|
|
|
}, a.prototype.unbind = function(l, r) {
|
|
|
var m = this._handlers;
|
|
|
if (!l) {
|
|
|
return this._handlers = {}, this
|
|
|
}
|
|
|
if (r) {
|
|
|
if (m[l]) {
|
|
|
for (var p = [], j = 0, q = m[l].length; q > j; j++) {
|
|
|
m[l][j].h != r && p.push(m[l][j])
|
|
|
}
|
|
|
m[l] = p
|
|
|
}
|
|
|
m[l] && 0 === m[l].length && delete m[l]
|
|
|
} else {
|
|
|
delete m[l]
|
|
|
}
|
|
|
return this
|
|
|
}, a.prototype.dispatch = function(l) {
|
|
|
if (this._handlers[l]) {
|
|
|
var r = arguments,
|
|
|
m = r.length;
|
|
|
m > 3 && (r = Array.prototype.slice.call(r, 1));
|
|
|
for (var p = this._handlers[l], j = p.length, q = 0; j > q;) {
|
|
|
switch (m) {
|
|
|
case 1:
|
|
|
p[q].h.call(p[q].ctx);
|
|
|
break;
|
|
|
case 2:
|
|
|
p[q].h.call(p[q].ctx, r[1]);
|
|
|
break;
|
|
|
case 3:
|
|
|
p[q].h.call(p[q].ctx, r[1], r[2]);
|
|
|
break;
|
|
|
default:
|
|
|
p[q].h.apply(p[q].ctx, r)
|
|
|
}
|
|
|
p[q].one ? (p.splice(q, 1), j--) : q++
|
|
|
}
|
|
|
}
|
|
|
return this
|
|
|
}, a.prototype.dispatchWithContext = function(l) {
|
|
|
if (this._handlers[l]) {
|
|
|
var u = arguments,
|
|
|
m = u.length;
|
|
|
m > 4 && (u = Array.prototype.slice.call(u, 1, u.length - 1));
|
|
|
for (var p = u[u.length - 1], j = this._handlers[l], q = j.length, s = 0; q > s;) {
|
|
|
switch (m) {
|
|
|
case 1:
|
|
|
j[s].h.call(p);
|
|
|
break;
|
|
|
case 2:
|
|
|
j[s].h.call(p, u[1]);
|
|
|
break;
|
|
|
case 3:
|
|
|
j[s].h.call(p, u[1], u[2]);
|
|
|
break;
|
|
|
default:
|
|
|
j[s].h.apply(p, u)
|
|
|
}
|
|
|
j[s].one ? (j.splice(s, 1), q--) : s++
|
|
|
}
|
|
|
}
|
|
|
return this
|
|
|
}, a
|
|
|
}), d("zrender/tool/log", ["require", "../config"], function(a) {
|
|
|
var i = a("../config");
|
|
|
return function() {
|
|
|
if (0 !== i.debugMode) {
|
|
|
if (1 == i.debugMode) {
|
|
|
for (var j in arguments) {
|
|
|
throw new Error(arguments[j])
|
|
|
}
|
|
|
} else {
|
|
|
if (i.debugMode > 1) {
|
|
|
for (var j in arguments) {
|
|
|
console.log(arguments[j])
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}), d("zrender/tool/guid", [], function() {
|
|
|
var a = 2311;
|
|
|
return function() {
|
|
|
return "zrender__" + a++
|
|
|
}
|
|
|
}), d("zrender/Handler", ["require", "./config", "./tool/env", "./tool/event", "./tool/util", "./tool/vector", "./tool/matrix", "./mixin/Eventful"], function(w) {
|
|
|
function H(a, i) {
|
|
|
return function(e, l) {
|
|
|
return a.call(i, e, l)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function z(a, i) {
|
|
|
return function(l, m, e) {
|
|
|
return a.call(i, l, m, e)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function C(a) {
|
|
|
for (var l = v.length; l--;) {
|
|
|
var m = v[l];
|
|
|
a["_" + m + "Handler"] = H(q[m], a)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function j(m, r, o) {
|
|
|
if (this._draggingTarget && this._draggingTarget.id == m.id || m.isSilent()) {
|
|
|
return !1
|
|
|
}
|
|
|
var p = this._event;
|
|
|
if (m.isCover(r, o)) {
|
|
|
m.hoverable && this.storage.addHover(m);
|
|
|
for (var l = m.parent; l;) {
|
|
|
if (l.clipShape && !l.clipShape.isCover(this._mouseX, this._mouseY)) {
|
|
|
return !1
|
|
|
}
|
|
|
l = l.parent
|
|
|
}
|
|
|
return this._lastHover != m && (this._processOutShape(p), this._processDragLeave(p), this._lastHover = m, this._processDragEnter(p)), this._processOverShape(p), this._processDragOver(p), this._hasfound = 1, !0
|
|
|
}
|
|
|
return !1
|
|
|
}
|
|
|
var D = w("./config"),
|
|
|
F = w("./tool/env"),
|
|
|
G = w("./tool/event"),
|
|
|
A = w("./tool/util"),
|
|
|
x = w("./tool/vector"),
|
|
|
B = w("./tool/matrix"),
|
|
|
K = D.EVENT,
|
|
|
J = w("./mixin/Eventful"),
|
|
|
v = ["resize", "click", "dblclick", "mousewheel", "mousemove", "mouseout", "mouseup", "mousedown", "touchstart", "touchend", "touchmove"],
|
|
|
E = function(a) {
|
|
|
if (window.G_vmlCanvasManager) {
|
|
|
return !0
|
|
|
}
|
|
|
a = a || window.event;
|
|
|
var i = a.toElement || a.relatedTarget || a.srcElement || a.target;
|
|
|
return i && i.className.match(D.elementClassName)
|
|
|
},
|
|
|
q = {
|
|
|
resize: function(a) {
|
|
|
a = a || window.event, this._lastHover = null, this._isMouseDown = 0, this.dispatch(K.RESIZE, a)
|
|
|
},
|
|
|
click: function(a, m) {
|
|
|
if (E(a) || m) {
|
|
|
a = this._zrenderEventFixed(a);
|
|
|
var l = this._lastHover;
|
|
|
(l && l.clickable || !l) && this._clickThreshold < 5 && this._dispatchAgency(l, K.CLICK, a), this._mousemoveHandler(a)
|
|
|
}
|
|
|
},
|
|
|
dblclick: function(a, m) {
|
|
|
if (E(a) || m) {
|
|
|
a = a || window.event, a = this._zrenderEventFixed(a);
|
|
|
var l = this._lastHover;
|
|
|
(l && l.clickable || !l) && this._clickThreshold < 5 && this._dispatchAgency(l, K.DBLCLICK, a), this._mousemoveHandler(a)
|
|
|
}
|
|
|
},
|
|
|
mousewheel: function(m, M) {
|
|
|
if (E(m) || M) {
|
|
|
m = this._zrenderEventFixed(m);
|
|
|
var p = m.wheelDelta || -m.detail,
|
|
|
s = p > 0 ? 1.1 : 1 / 1.1,
|
|
|
l = !1,
|
|
|
u = this._mouseX,
|
|
|
y = this._mouseY;
|
|
|
this.painter.eachBuildinLayer(function(n) {
|
|
|
var a = n.position;
|
|
|
if (n.zoomable) {
|
|
|
n.__zoom = n.__zoom || 1;
|
|
|
var e = n.__zoom;
|
|
|
e *= s, e = Math.max(Math.min(n.maxZoom, e), n.minZoom), s = e / n.__zoom, n.__zoom = e, a[0] -= (u - a[0]) * (s - 1), a[1] -= (y - a[1]) * (s - 1), n.scale[0] *= s, n.scale[1] *= s, n.dirty = !0, l = !0, G.stop(m)
|
|
|
}
|
|
|
}), l && this.painter.refresh(), this._dispatchAgency(this._lastHover, K.MOUSEWHEEL, m), this._mousemoveHandler(m)
|
|
|
}
|
|
|
},
|
|
|
mousemove: function(m, u) {
|
|
|
if ((E(m) || u) && !this.painter.isLoading()) {
|
|
|
m = this._zrenderEventFixed(m), this._lastX = this._mouseX, this._lastY = this._mouseY, this._mouseX = G.getX(m), this._mouseY = G.getY(m);
|
|
|
var p = this._mouseX - this._lastX,
|
|
|
r = this._mouseY - this._lastY;
|
|
|
this._processDragStart(m), this._hasfound = 0, this._event = m, this._iterateAndFindHover(), this._hasfound || ((!this._draggingTarget || this._lastHover && this._lastHover != this._draggingTarget) && (this._processOutShape(m), this._processDragLeave(m)), this._lastHover = null, this.storage.delHover(), this.painter.clearHover());
|
|
|
var l = "default";
|
|
|
if (this._draggingTarget) {
|
|
|
this.storage.drift(this._draggingTarget.id, p, r), this._draggingTarget.modSelf(), this.storage.addHover(this._draggingTarget), this._clickThreshold++
|
|
|
} else {
|
|
|
if (this._isMouseDown) {
|
|
|
var s = !1;
|
|
|
this.painter.eachBuildinLayer(function(a) {
|
|
|
a.panable && (l = "move", a.position[0] += p, a.position[1] += r, s = !0, a.dirty = !0)
|
|
|
}), s && this.painter.refresh()
|
|
|
}
|
|
|
}
|
|
|
this._draggingTarget || this._hasfound && this._lastHover.draggable ? l = "move" : this._hasfound && this._lastHover.clickable && (l = "pointer"), this.root.style.cursor = l, this._dispatchAgency(this._lastHover, K.MOUSEMOVE, m), (this._draggingTarget || this._hasfound || this.storage.hasHoverShape()) && this.painter.refreshHover()
|
|
|
}
|
|
|
},
|
|
|
mouseout: function(a, m) {
|
|
|
if (E(a) || m) {
|
|
|
a = this._zrenderEventFixed(a);
|
|
|
var l = a.toElement || a.relatedTarget;
|
|
|
if (l != this.root) {
|
|
|
for (; l && 9 != l.nodeType;) {
|
|
|
if (l == this.root) {
|
|
|
return void this._mousemoveHandler(a)
|
|
|
}
|
|
|
l = l.parentNode
|
|
|
}
|
|
|
}
|
|
|
a.zrenderX = this._lastX, a.zrenderY = this._lastY, this.root.style.cursor = "default", this._isMouseDown = 0, this._processOutShape(a), this._processDrop(a), this._processDragEnd(a), this.painter.isLoading() || this.painter.refreshHover(), this.dispatch(K.GLOBALOUT, a)
|
|
|
}
|
|
|
},
|
|
|
mousedown: function(a, i) {
|
|
|
if (E(a) || i) {
|
|
|
if (this._clickThreshold = 0, 2 == this._lastDownButton) {
|
|
|
return this._lastDownButton = a.button, void(this._mouseDownTarget = null)
|
|
|
}
|
|
|
this._lastMouseDownMoment = new Date, a = this._zrenderEventFixed(a), this._isMouseDown = 1, this._mouseDownTarget = this._lastHover, this._dispatchAgency(this._lastHover, K.MOUSEDOWN, a), this._lastDownButton = a.button
|
|
|
}
|
|
|
},
|
|
|
mouseup: function(a, i) {
|
|
|
(E(a) || i) && (a = this._zrenderEventFixed(a), this.root.style.cursor = "default", this._isMouseDown = 0, this._mouseDownTarget = null, this._dispatchAgency(this._lastHover, K.MOUSEUP, a), this._processDrop(a), this._processDragEnd(a))
|
|
|
},
|
|
|
touchstart: function(a, i) {
|
|
|
(E(a) || i) && (a = this._zrenderEventFixed(a, !0), this._lastTouchMoment = new Date, this._mobileFindFixed(a), this._mousedownHandler(a))
|
|
|
},
|
|
|
touchmove: function(a, i) {
|
|
|
(E(a) || i) && (a = this._zrenderEventFixed(a, !0), this._mousemoveHandler(a), this._isDragging && G.stop(a))
|
|
|
},
|
|
|
touchend: function(a, m) {
|
|
|
if (E(a) || m) {
|
|
|
a = this._zrenderEventFixed(a, !0), this._mouseupHandler(a);
|
|
|
var l = new Date;
|
|
|
l - this._lastTouchMoment < K.touchClickDelay && (this._mobileFindFixed(a), this._clickHandler(a), l - this._lastClickMoment < K.touchClickDelay / 2 && (this._dblclickHandler(a), this._lastHover && this._lastHover.clickable && G.stop(a)), this._lastClickMoment = l), this.painter.clearHover()
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
I = function(a, l, i) {
|
|
|
J.call(this), this.root = a, this.storage = l, this.painter = i, this._lastX = this._lastY = this._mouseX = this._mouseY = 0, this._findHover = z(j, this), this._domHover = i.getDomHover(), C(this), window.addEventListener ? (window.addEventListener("resize", this._resizeHandler), F.os.tablet || F.os.phone ? (a.addEventListener("touchstart", this._touchstartHandler), a.addEventListener("touchmove", this._touchmoveHandler), a.addEventListener("touchend", this._touchendHandler)) : (a.addEventListener("click", this._clickHandler), a.addEventListener("dblclick", this._dblclickHandler), a.addEventListener("mousewheel", this._mousewheelHandler), a.addEventListener("mousemove", this._mousemoveHandler), a.addEventListener("mousedown", this._mousedownHandler), a.addEventListener("mouseup", this._mouseupHandler)), a.addEventListener("DOMMouseScroll", this._mousewheelHandler), a.addEventListener("mouseout", this._mouseoutHandler)) : (window.attachEvent("onresize", this._resizeHandler), a.attachEvent("onclick", this._clickHandler), a.ondblclick = this._dblclickHandler, a.attachEvent("onmousewheel", this._mousewheelHandler), a.attachEvent("onmousemove", this._mousemoveHandler), a.attachEvent("onmouseout", this._mouseoutHandler), a.attachEvent("onmousedown", this._mousedownHandler), a.attachEvent("onmouseup", this._mouseupHandler))
|
|
|
};
|
|
|
I.prototype.on = function(a, m, l) {
|
|
|
return this.bind(a, m, l), this
|
|
|
}, I.prototype.un = function(a, i) {
|
|
|
return this.unbind(a, i), this
|
|
|
}, I.prototype.trigger = function(a, i) {
|
|
|
switch (a) {
|
|
|
case K.RESIZE:
|
|
|
case K.CLICK:
|
|
|
case K.DBLCLICK:
|
|
|
case K.MOUSEWHEEL:
|
|
|
case K.MOUSEMOVE:
|
|
|
case K.MOUSEDOWN:
|
|
|
case K.MOUSEUP:
|
|
|
case K.MOUSEOUT:
|
|
|
this["_" + a + "Handler"](i, !0)
|
|
|
}
|
|
|
}, I.prototype.dispose = function() {
|
|
|
var a = this.root;
|
|
|
window.removeEventListener ? (window.removeEventListener("resize", this._resizeHandler), F.os.tablet || F.os.phone ? (a.removeEventListener("touchstart", this._touchstartHandler), a.removeEventListener("touchmove", this._touchmoveHandler), a.removeEventListener("touchend", this._touchendHandler)) : (a.removeEventListener("click", this._clickHandler), a.removeEventListener("dblclick", this._dblclickHandler), a.removeEventListener("mousewheel", this._mousewheelHandler), a.removeEventListener("mousemove", this._mousemoveHandler), a.removeEventListener("mousedown", this._mousedownHandler), a.removeEventListener("mouseup", this._mouseupHandler)), a.removeEventListener("DOMMouseScroll", this._mousewheelHandler), a.removeEventListener("mouseout", this._mouseoutHandler)) : (window.detachEvent("onresize", this._resizeHandler), a.detachEvent("onclick", this._clickHandler), a.detachEvent("dblclick", this._dblclickHandler), a.detachEvent("onmousewheel", this._mousewheelHandler), a.detachEvent("onmousemove", this._mousemoveHandler), a.detachEvent("onmouseout", this._mouseoutHandler), a.detachEvent("onmousedown", this._mousedownHandler), a.detachEvent("onmouseup", this._mouseupHandler)), this.root = this._domHover = this.storage = this.painter = null, this.un()
|
|
|
}, I.prototype._processDragStart = function(a) {
|
|
|
var m = this._lastHover;
|
|
|
if (this._isMouseDown && m && m.draggable && !this._draggingTarget && this._mouseDownTarget == m) {
|
|
|
if (m.dragEnableTime && new Date - this._lastMouseDownMoment < m.dragEnableTime) {
|
|
|
return
|
|
|
}
|
|
|
var l = m;
|
|
|
this._draggingTarget = l, this._isDragging = 1, l.invisible = !0, this.storage.mod(l.id), this._dispatchAgency(l, K.DRAGSTART, a), this.painter.refresh()
|
|
|
}
|
|
|
}, I.prototype._processDragEnter = function(a) {
|
|
|
this._draggingTarget && this._dispatchAgency(this._lastHover, K.DRAGENTER, a, this._draggingTarget)
|
|
|
}, I.prototype._processDragOver = function(a) {
|
|
|
this._draggingTarget && this._dispatchAgency(this._lastHover, K.DRAGOVER, a, this._draggingTarget)
|
|
|
}, I.prototype._processDragLeave = function(a) {
|
|
|
this._draggingTarget && this._dispatchAgency(this._lastHover, K.DRAGLEAVE, a, this._draggingTarget)
|
|
|
}, I.prototype._processDrop = function(a) {
|
|
|
this._draggingTarget && (this._draggingTarget.invisible = !1, this.storage.mod(this._draggingTarget.id), this.painter.refresh(), this._dispatchAgency(this._lastHover, K.DROP, a, this._draggingTarget))
|
|
|
}, I.prototype._processDragEnd = function(a) {
|
|
|
this._draggingTarget && (this._dispatchAgency(this._draggingTarget, K.DRAGEND, a), this._lastHover = null), this._isDragging = 0, this._draggingTarget = null
|
|
|
}, I.prototype._processOverShape = function(a) {
|
|
|
this._dispatchAgency(this._lastHover, K.MOUSEOVER, a)
|
|
|
}, I.prototype._processOutShape = function(a) {
|
|
|
this._dispatchAgency(this._lastHover, K.MOUSEOUT, a)
|
|
|
}, I.prototype._dispatchAgency = function(m, O, p, u) {
|
|
|
var l = "on" + O,
|
|
|
y = {
|
|
|
type: O,
|
|
|
event: p,
|
|
|
target: m,
|
|
|
cancelBubble: !1
|
|
|
},
|
|
|
M = m;
|
|
|
for (u && (y.dragged = u); M && (M[l] && (y.cancelBubble = M[l](y)), M.dispatch(O, y), M = M.parent, !y.cancelBubble);) {}
|
|
|
if (m) {
|
|
|
y.cancelBubble || this.dispatch(O, y)
|
|
|
} else {
|
|
|
if (!u) {
|
|
|
var N = {
|
|
|
type: O,
|
|
|
event: p
|
|
|
};
|
|
|
this.dispatch(O, N), this.painter.eachOtherLayer(function(a) {
|
|
|
"function" == typeof a[l] && a[l](N), a.dispatch && a.dispatch(O, N)
|
|
|
})
|
|
|
}
|
|
|
}
|
|
|
}, I.prototype._iterateAndFindHover = function() {
|
|
|
var a = B.create();
|
|
|
return function() {
|
|
|
for (var u, l, m = this.storage.getShapeList(), e = [0, 0], p = m.length - 1; p >= 0; p--) {
|
|
|
var s = m[p];
|
|
|
if (u !== s.zlevel && (l = this.painter.getLayer(s.zlevel, l), e[0] = this._mouseX, e[1] = this._mouseY, l.needTransform && (B.invert(a, l.transform), x.applyTransform(e, e, a))), this._findHover(s, e[0], e[1])) {
|
|
|
break
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}();
|
|
|
var L = [{
|
|
|
x: 10
|
|
|
}, {
|
|
|
x: -20
|
|
|
}, {
|
|
|
x: 10,
|
|
|
y: 10
|
|
|
}, {
|
|
|
y: -20
|
|
|
}];
|
|
|
return I.prototype._mobileFindFixed = function(a) {
|
|
|
this._lastHover = null, this._mouseX = a.zrenderX, this._mouseY = a.zrenderY, this._event = a, this._iterateAndFindHover();
|
|
|
for (var m = 0; !this._lastHover && m < L.length; m++) {
|
|
|
var l = L[m];
|
|
|
l.x && (this._mouseX += l.x), l.y && (this._mouseY += l.y), this._iterateAndFindHover()
|
|
|
}
|
|
|
this._lastHover && (a.zrenderX = this._mouseX, a.zrenderY = this._mouseY)
|
|
|
}, I.prototype._zrenderEventFixed = function(m, r) {
|
|
|
if (m.zrenderFixed) {
|
|
|
return m
|
|
|
}
|
|
|
if (r) {
|
|
|
var o = "touchend" != m.type ? m.targetTouches[0] : m.changedTouches[0];
|
|
|
if (o) {
|
|
|
var p = this.painter._domRoot.getBoundingClientRect();
|
|
|
m.zrenderX = o.clientX - p.left, m.zrenderY = o.clientY - p.top
|
|
|
}
|
|
|
} else {
|
|
|
m = m || window.event;
|
|
|
var l = m.toElement || m.relatedTarget || m.srcElement || m.target;
|
|
|
l && l != this._domHover && (m.zrenderX = ("undefined" != typeof m.offsetX ? m.offsetX : m.layerX) + l.offsetLeft, m.zrenderY = ("undefined" != typeof m.offsetY ? m.offsetY : m.layerY) + l.offsetTop)
|
|
|
}
|
|
|
return m.zrenderFixed = 1, m
|
|
|
}, A.merge(I.prototype, J.prototype, !0), I
|
|
|
}), d("zrender/Painter", ["require", "./config", "./tool/util", "./tool/log", "./loadingEffect/Base", "./Layer", "./shape/Image"], function(m) {
|
|
|
function z() {
|
|
|
return !1
|
|
|
}
|
|
|
|
|
|
function q() {}
|
|
|
|
|
|
function v(a) {
|
|
|
return a ? a.isBuildin ? !0 : "function" != typeof a.resize || "function" != typeof a.refresh ? !1 : !0 : !1
|
|
|
}
|
|
|
var j = m("./config"),
|
|
|
w = m("./tool/util"),
|
|
|
x = m("./tool/log"),
|
|
|
y = m("./loadingEffect/Base"),
|
|
|
u = m("./Layer"),
|
|
|
p = function(a, l) {
|
|
|
this.root = a, a.style["-webkit-tap-highlight-color"] = "transparent", a.style["-webkit-user-select"] = "none", a.style["user-select"] = "none", a.style["-webkit-touch-callout"] = "none", this.storage = l, a.innerHTML = "", this._width = this._getWidth(), this._height = this._getHeight();
|
|
|
var r = document.createElement("div");
|
|
|
this._domRoot = r, r.style.position = "relative", r.style.overflow = "hidden", r.style.width = this._width + "px", r.style.height = this._height + "px", a.appendChild(r), this._layers = {}, this._zlevelList = [], this._layerConfig = {}, this._loadingEffect = new y({}), this.shapeToImage = this._createShapeToImageProcessor(), this._bgDom = document.createElement("div"), this._bgDom.style.cssText = ["position:absolute;left:0px;top:0px;width:", this._width, "px;height:", this._height + "px;", "-webkit-user-select:none;user-select;none;", "-webkit-touch-callout:none;"].join(""), this._bgDom.setAttribute("data-zr-dom-id", "bg"), this._bgDom.className = j.elementClassName, r.appendChild(this._bgDom), this._bgDom.onselectstart = z;
|
|
|
var s = new u("_zrender_hover_", this);
|
|
|
this._layers.hover = s, r.appendChild(s.dom), s.initContext(), s.dom.onselectstart = z, s.dom.style["-webkit-user-select"] = "none", s.dom.style["user-select"] = "none", s.dom.style["-webkit-touch-callout"] = "none", this.refreshNextFrame = null
|
|
|
};
|
|
|
return p.prototype.render = function(a) {
|
|
|
return this.isLoading() && this.hideLoading(), this.refresh(a, !0), this
|
|
|
}, p.prototype.refresh = function(r, C) {
|
|
|
var s = this.storage.getShapeList(!0);
|
|
|
this._paintList(s, C);
|
|
|
for (var A = 0; A < this._zlevelList.length; A++) {
|
|
|
var l = this._zlevelList[A],
|
|
|
B = this._layers[l];
|
|
|
!B.isBuildin && B.refresh && B.refresh()
|
|
|
}
|
|
|
return "function" == typeof r && r(), this
|
|
|
}, p.prototype._preProcessLayer = function(a) {
|
|
|
a.unusedCount++, a.updateTransform()
|
|
|
}, p.prototype._postProcessLayer = function(a) {
|
|
|
a.dirty = !1, 1 == a.unusedCount && a.clear()
|
|
|
}, p.prototype._paintList = function(a, G) {
|
|
|
"undefined" == typeof G && (G = !1), this._updateLayerStatus(a);
|
|
|
var A, D, E;
|
|
|
this.eachBuildinLayer(this._preProcessLayer);
|
|
|
for (var F = 0, B = a.length; B > F; F++) {
|
|
|
var r = a[F];
|
|
|
if (D !== r.zlevel && (A && (A.needTransform && E.restore(), E.flush && E.flush()), D = r.zlevel, A = this.getLayer(D), A.isBuildin || x("ZLevel " + D + " has been used by unkown layer " + A.id), E = A.ctx, A.unusedCount = 0, (A.dirty || G) && A.clear(), A.needTransform && (E.save(), A.setTransform(E))), (A.dirty || G) && !r.invisible && (!r.onbrush || r.onbrush && !r.onbrush(E, !1))) {
|
|
|
if (j.catchBrushException) {
|
|
|
try {
|
|
|
r.brush(E, !1, this.refreshNextFrame)
|
|
|
} catch (C) {
|
|
|
x(C, "brush error of " + r.type, r)
|
|
|
}
|
|
|
} else {
|
|
|
r.brush(E, !1, this.refreshNextFrame)
|
|
|
}
|
|
|
}
|
|
|
r.__dirty = !1
|
|
|
}
|
|
|
A && (A.needTransform && E.restore(), E.flush && E.flush()), this.eachBuildinLayer(this._postProcessLayer)
|
|
|
}, p.prototype.getLayer = function(a) {
|
|
|
var i = this._layers[a];
|
|
|
return i || (i = new u(a, this), i.isBuildin = !0, this._layerConfig[a] && w.merge(i, this._layerConfig[a], !0), i.updateTransform(), this.insertLayer(a, i), i.initContext()), i
|
|
|
}, p.prototype.insertLayer = function(n, C) {
|
|
|
if (this._layers[n]) {
|
|
|
return void x("ZLevel " + n + " has been used already")
|
|
|
}
|
|
|
if (!v(C)) {
|
|
|
return void x("Layer of zlevel " + n + " is not valid")
|
|
|
}
|
|
|
var r = this._zlevelList.length,
|
|
|
l = null,
|
|
|
A = -1;
|
|
|
if (r > 0 && n > this._zlevelList[0]) {
|
|
|
for (A = 0; r - 1 > A && !(this._zlevelList[A] < n && this._zlevelList[A + 1] > n); A++) {}
|
|
|
l = this._layers[this._zlevelList[A]]
|
|
|
}
|
|
|
this._zlevelList.splice(A + 1, 0, n);
|
|
|
var B = l ? l.dom : this._bgDom;
|
|
|
B.nextSibling ? B.parentNode.insertBefore(C.dom, B.nextSibling) : B.parentNode.appendChild(C.dom), this._layers[n] = C
|
|
|
}, p.prototype.eachLayer = function(a, r) {
|
|
|
for (var l = 0; l < this._zlevelList.length; l++) {
|
|
|
var o = this._zlevelList[l];
|
|
|
a.call(r, this._layers[o], o)
|
|
|
}
|
|
|
}, p.prototype.eachBuildinLayer = function(o, A) {
|
|
|
for (var r = 0; r < this._zlevelList.length; r++) {
|
|
|
var s = this._zlevelList[r],
|
|
|
l = this._layers[s];
|
|
|
l.isBuildin && o.call(A, l, s)
|
|
|
}
|
|
|
}, p.prototype.eachOtherLayer = function(o, A) {
|
|
|
for (var r = 0; r < this._zlevelList.length; r++) {
|
|
|
var s = this._zlevelList[r],
|
|
|
l = this._layers[s];
|
|
|
l.isBuildin || o.call(A, l, s)
|
|
|
}
|
|
|
}, p.prototype.getLayers = function() {
|
|
|
return this._layers
|
|
|
}, p.prototype._updateLayerStatus = function(A) {
|
|
|
var G = this._layers,
|
|
|
B = {};
|
|
|
this.eachBuildinLayer(function(a, i) {
|
|
|
B[i] = a.elCount, a.elCount = 0
|
|
|
});
|
|
|
for (var C = 0, l = A.length; l > C; C++) {
|
|
|
var D = A[C],
|
|
|
E = D.zlevel,
|
|
|
F = G[E];
|
|
|
if (F) {
|
|
|
if (F.elCount++, F.dirty) {
|
|
|
continue
|
|
|
}
|
|
|
F.dirty = D.__dirty
|
|
|
}
|
|
|
}
|
|
|
this.eachBuildinLayer(function(a, i) {
|
|
|
B[i] !== a.elCount && (a.dirty = !0)
|
|
|
})
|
|
|
}, p.prototype.refreshShapes = function(o, A) {
|
|
|
for (var r = 0, s = o.length; s > r; r++) {
|
|
|
var l = o[r];
|
|
|
l.modSelf()
|
|
|
}
|
|
|
return this.refresh(A), this
|
|
|
}, p.prototype.setLoadingEffect = function(a) {
|
|
|
return this._loadingEffect = a, this
|
|
|
}, p.prototype.clear = function() {
|
|
|
return this.eachBuildinLayer(this._clearLayer), this
|
|
|
}, p.prototype._clearLayer = function(a) {
|
|
|
a.clear()
|
|
|
}, p.prototype.modLayer = function(a, n) {
|
|
|
if (n) {
|
|
|
this._layerConfig[a] ? w.merge(this._layerConfig[a], n, !0) : this._layerConfig[a] = n;
|
|
|
var l = this._layers[a];
|
|
|
l && w.merge(l, this._layerConfig[a], !0)
|
|
|
}
|
|
|
}, p.prototype.delLayer = function(a) {
|
|
|
var i = this._layers[a];
|
|
|
i && (this.modLayer(a, {
|
|
|
position: i.position,
|
|
|
rotation: i.rotation,
|
|
|
scale: i.scale
|
|
|
}), i.dom.parentNode.removeChild(i.dom), delete this._layers[a], this._zlevelList.splice(w.indexOf(this._zlevelList, a), 1))
|
|
|
}, p.prototype.refreshHover = function() {
|
|
|
this.clearHover();
|
|
|
for (var a = this.storage.getHoverShapes(!0), r = 0, l = a.length; l > r; r++) {
|
|
|
this._brushHover(a[r])
|
|
|
}
|
|
|
var o = this._layers.hover.ctx;
|
|
|
return o.flush && o.flush(), this.storage.delHover(), this
|
|
|
}, p.prototype.clearHover = function() {
|
|
|
var a = this._layers.hover;
|
|
|
return a && a.clear(), this
|
|
|
}, p.prototype.showLoading = function(a) {
|
|
|
return this._loadingEffect && this._loadingEffect.stop(), a && this.setLoadingEffect(a), this._loadingEffect.start(this), this.loading = !0, this
|
|
|
}, p.prototype.hideLoading = function() {
|
|
|
return this._loadingEffect.stop(), this.clearHover(), this.loading = !1, this
|
|
|
}, p.prototype.isLoading = function() {
|
|
|
return this.loading
|
|
|
}, p.prototype.resize = function() {
|
|
|
var a = this._domRoot;
|
|
|
a.style.display = "none";
|
|
|
var r = this._getWidth(),
|
|
|
l = this._getHeight();
|
|
|
if (a.style.display = "", this._width != r || l != this._height) {
|
|
|
this._width = r, this._height = l, a.style.width = r + "px", a.style.height = l + "px";
|
|
|
for (var o in this._layers) {
|
|
|
this._layers[o].resize(r, l)
|
|
|
}
|
|
|
this.refresh(null, !0)
|
|
|
}
|
|
|
return this
|
|
|
}, p.prototype.clearLayer = function(a) {
|
|
|
var i = this._layers[a];
|
|
|
i && i.clear()
|
|
|
}, p.prototype.dispose = function() {
|
|
|
this.isLoading() && this.hideLoading(), this.root.innerHTML = "", this.root = this.storage = this._domRoot = this._layers = null
|
|
|
}, p.prototype.getDomHover = function() {
|
|
|
return this._layers.hover.dom
|
|
|
}, p.prototype.toDataURL = function(a, D, r) {
|
|
|
if (window.G_vmlCanvasManager) {
|
|
|
return null
|
|
|
}
|
|
|
var A = new u("image", this);
|
|
|
this._bgDom.appendChild(A.dom), A.initContext();
|
|
|
var B = A.ctx;
|
|
|
A.clearColor = D || "#fff", A.clear();
|
|
|
var C = this;
|
|
|
this.storage.iterShape(function(i) {
|
|
|
if (!i.invisible && (!i.onbrush || i.onbrush && !i.onbrush(B, !1))) {
|
|
|
if (j.catchBrushException) {
|
|
|
try {
|
|
|
i.brush(B, !1, C.refreshNextFrame)
|
|
|
} catch (n) {
|
|
|
x(n, "brush error of " + i.type, i)
|
|
|
}
|
|
|
} else {
|
|
|
i.brush(B, !1, C.refreshNextFrame)
|
|
|
}
|
|
|
}
|
|
|
}, {
|
|
|
normal: "up",
|
|
|
update: !0
|
|
|
});
|
|
|
var l = A.dom.toDataURL(a, r);
|
|
|
return B = null, this._bgDom.removeChild(A.dom), l
|
|
|
}, p.prototype.getWidth = function() {
|
|
|
return this._width
|
|
|
}, p.prototype.getHeight = function() {
|
|
|
return this._height
|
|
|
}, p.prototype._getWidth = function() {
|
|
|
var a = this.root,
|
|
|
i = a.currentStyle || document.defaultView.getComputedStyle(a);
|
|
|
return ((a.clientWidth || parseInt(i.width, 10)) - parseInt(i.paddingLeft, 10) - parseInt(i.paddingRight, 10)).toFixed(0) - 0
|
|
|
}, p.prototype._getHeight = function() {
|
|
|
var a = this.root,
|
|
|
i = a.currentStyle || document.defaultView.getComputedStyle(a);
|
|
|
return ((a.clientHeight || parseInt(i.height, 10)) - parseInt(i.paddingTop, 10) - parseInt(i.paddingBottom, 10)).toFixed(0) - 0
|
|
|
}, p.prototype._brushHover = function(a) {
|
|
|
var r = this._layers.hover.ctx;
|
|
|
if (!a.onbrush || a.onbrush && !a.onbrush(r, !0)) {
|
|
|
var l = this.getLayer(a.zlevel);
|
|
|
if (l.needTransform && (r.save(), l.setTransform(r)), j.catchBrushException) {
|
|
|
try {
|
|
|
a.brush(r, !0, this.refreshNextFrame)
|
|
|
} catch (o) {
|
|
|
x(o, "hoverBrush error of " + a.type, a)
|
|
|
}
|
|
|
} else {
|
|
|
a.brush(r, !0, this.refreshNextFrame)
|
|
|
}
|
|
|
l.needTransform && r.restore()
|
|
|
}
|
|
|
}, p.prototype._shapeToImage = function(I, B, E, e, F) {
|
|
|
var G = document.createElement("canvas"),
|
|
|
H = G.getContext("2d");
|
|
|
G.style.width = E + "px", G.style.height = e + "px", G.setAttribute("width", E * F), G.setAttribute("height", e * F), H.clearRect(0, 0, E * F, e * F);
|
|
|
var C = {
|
|
|
position: B.position,
|
|
|
rotation: B.rotation,
|
|
|
scale: B.scale
|
|
|
};
|
|
|
B.position = [0, 0, 0], B.rotation = 0, B.scale = [1, 1], B && B.brush(H, !1);
|
|
|
var A = m("./shape/Image"),
|
|
|
D = new A({
|
|
|
id: I,
|
|
|
style: {
|
|
|
x: 0,
|
|
|
y: 0,
|
|
|
image: G
|
|
|
}
|
|
|
});
|
|
|
return null != C.position && (D.position = B.position = C.position), null != C.rotation && (D.rotation = B.rotation = C.rotation), null != C.scale && (D.scale = B.scale = C.scale), D
|
|
|
}, p.prototype._createShapeToImageProcessor = function() {
|
|
|
if (window.G_vmlCanvasManager) {
|
|
|
return q
|
|
|
}
|
|
|
var a = this;
|
|
|
return function(s, e, l, r) {
|
|
|
return a._shapeToImage(s, e, l, r, j.devicePixelRatio)
|
|
|
}
|
|
|
}, p
|
|
|
}), d("zrender/Storage", ["require", "./tool/util", "./Group"], function(l) {
|
|
|
function r(a, i) {
|
|
|
return a.zlevel == i.zlevel ? a.z == i.z ? a.__renderidx - i.__renderidx : a.z - i.z : a.zlevel - i.zlevel
|
|
|
}
|
|
|
var m = l("./tool/util"),
|
|
|
p = l("./Group"),
|
|
|
j = {
|
|
|
hover: !1,
|
|
|
normal: "down",
|
|
|
update: !1
|
|
|
},
|
|
|
q = function() {
|
|
|
this._elements = {}, this._hoverElements = [], this._roots = [], this._shapeList = [], this._shapeListOffset = 0
|
|
|
};
|
|
|
return q.prototype.iterShape = function(a, w) {
|
|
|
if (w || (w = j), w.hover) {
|
|
|
for (var s = 0, u = this._hoverElements.length; u > s; s++) {
|
|
|
var v = this._hoverElements[s];
|
|
|
if (v.updateTransform(), a(v)) {
|
|
|
return this
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
switch (w.update && this.updateShapeList(), w.normal) {
|
|
|
case "down":
|
|
|
for (var u = this._shapeList.length; u--;) {
|
|
|
if (a(this._shapeList[u])) {
|
|
|
return this
|
|
|
}
|
|
|
}
|
|
|
break;
|
|
|
default:
|
|
|
for (var s = 0, u = this._shapeList.length; u > s; s++) {
|
|
|
if (a(this._shapeList[s])) {
|
|
|
return this
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return this
|
|
|
}, q.prototype.getHoverShapes = function(u) {
|
|
|
for (var v = [], x = 0, t = this._hoverElements.length; t > x; x++) {
|
|
|
v.push(this._hoverElements[x]);
|
|
|
var y = this._hoverElements[x].hoverConnect;
|
|
|
if (y) {
|
|
|
var z;
|
|
|
y = y instanceof Array ? y : [y];
|
|
|
for (var A = 0, w = y.length; w > A; A++) {
|
|
|
z = y[A].id ? y[A] : this.get(y[A]), z && v.push(z)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
if (v.sort(r), u) {
|
|
|
for (var x = 0, t = v.length; t > x; x++) {
|
|
|
v[x].updateTransform()
|
|
|
}
|
|
|
}
|
|
|
return v
|
|
|
}, q.prototype.getShapeList = function(a) {
|
|
|
return a && this.updateShapeList(), this._shapeList
|
|
|
}, q.prototype.updateShapeList = function() {
|
|
|
this._shapeListOffset = 0;
|
|
|
for (var a = 0, o = this._roots.length; o > a; a++) {
|
|
|
var s = this._roots[a];
|
|
|
this._updateAndAddShape(s)
|
|
|
}
|
|
|
this._shapeList.length = this._shapeListOffset;
|
|
|
for (var a = 0, o = this._shapeList.length; o > a; a++) {
|
|
|
this._shapeList[a].__renderidx = a
|
|
|
}
|
|
|
this._shapeList.sort(r)
|
|
|
}, q.prototype._updateAndAddShape = function(a, u) {
|
|
|
if (!a.ignore) {
|
|
|
if (a.updateTransform(), a.clipShape && (a.clipShape.parent = a, a.clipShape.updateTransform(), u ? (u = u.slice(), u.push(a.clipShape)) : u = [a.clipShape]), "group" == a.type) {
|
|
|
for (var o = 0; o < a._children.length; o++) {
|
|
|
var s = a._children[o];
|
|
|
s.__dirty = a.__dirty || s.__dirty, this._updateAndAddShape(s, u)
|
|
|
}
|
|
|
a.__dirty = !1
|
|
|
} else {
|
|
|
a.__clipShapes = u, this._shapeList[this._shapeListOffset++] = a
|
|
|
}
|
|
|
}
|
|
|
}, q.prototype.mod = function(o, u) {
|
|
|
if ("string" == typeof o && (o = this._elements[o]), o && (o.modSelf(), u)) {
|
|
|
if (u.parent || u._storage || u.__clipShapes) {
|
|
|
var s = {};
|
|
|
for (var i in u) {
|
|
|
"parent" !== i && "_storage" !== i && "__clipShapes" !== i && u.hasOwnProperty(i) && (s[i] = u[i])
|
|
|
}
|
|
|
m.merge(o, s, !0)
|
|
|
} else {
|
|
|
m.merge(o, u, !0)
|
|
|
}
|
|
|
}
|
|
|
return this
|
|
|
}, q.prototype.drift = function(a, u, o) {
|
|
|
var s = this._elements[a];
|
|
|
return s && (s.needTransform = !0, "horizontal" === s.draggable ? o = 0 : "vertical" === s.draggable && (u = 0), (!s.ondrift || s.ondrift && !s.ondrift(u, o)) && s.drift(u, o)), this
|
|
|
}, q.prototype.addHover = function(a) {
|
|
|
return a.updateNeedTransform(), this._hoverElements.push(a), this
|
|
|
}, q.prototype.delHover = function() {
|
|
|
return this._hoverElements = [], this
|
|
|
}, q.prototype.hasHoverShape = function() {
|
|
|
return this._hoverElements.length > 0
|
|
|
}, q.prototype.addRoot = function(a) {
|
|
|
this._elements[a.id] || (a instanceof p && a.addChildrenToStorage(this), this.addToMap(a), this._roots.push(a))
|
|
|
}, q.prototype.delRoot = function(n) {
|
|
|
if ("undefined" == typeof n) {
|
|
|
for (var x = 0; x < this._roots.length; x++) {
|
|
|
var i = this._roots[x];
|
|
|
i instanceof p && i.delChildrenFromStorage(this)
|
|
|
}
|
|
|
return this._elements = {}, this._hoverElements = [], this._roots = [], this._shapeList = [], void(this._shapeListOffset = 0)
|
|
|
}
|
|
|
if (n instanceof Array) {
|
|
|
for (var x = 0, u = n.length; u > x; x++) {
|
|
|
this.delRoot(n[x])
|
|
|
}
|
|
|
} else {
|
|
|
var v;
|
|
|
v = "string" == typeof n ? this._elements[n] : n;
|
|
|
var w = m.indexOf(this._roots, v);
|
|
|
w >= 0 && (this.delFromMap(v.id), this._roots.splice(w, 1), v instanceof p && v.delChildrenFromStorage(this))
|
|
|
}
|
|
|
}, q.prototype.addToMap = function(a) {
|
|
|
return a instanceof p && (a._storage = this), a.modSelf(), this._elements[a.id] = a, this
|
|
|
}, q.prototype.get = function(a) {
|
|
|
return this._elements[a]
|
|
|
}, q.prototype.delFromMap = function(a) {
|
|
|
var i = this._elements[a];
|
|
|
return i && (delete this._elements[a], i instanceof p && (i._storage = null)), this
|
|
|
}, q.prototype.dispose = function() {
|
|
|
this._elements = this._renderList = this._roots = this._hoverElements = null
|
|
|
}, q
|
|
|
}), d("zrender/animation/Animation", ["require", "./Clip", "../tool/color", "../tool/util", "../tool/event"], function(w) {
|
|
|
function H(a, i) {
|
|
|
return a[i]
|
|
|
}
|
|
|
|
|
|
function z(a, m, l) {
|
|
|
a[m] = l
|
|
|
}
|
|
|
|
|
|
function C(a, m, l) {
|
|
|
return (m - a) * l + a
|
|
|
}
|
|
|
|
|
|
function j(n, P, u, m, M) {
|
|
|
var N = n.length;
|
|
|
if (1 == M) {
|
|
|
for (var O = 0; N > O; O++) {
|
|
|
m[O] = C(n[O], P[O], u)
|
|
|
}
|
|
|
} else {
|
|
|
for (var y = n[0].length, O = 0; N > O; O++) {
|
|
|
for (var p = 0; y > p; p++) {
|
|
|
m[O][p] = C(n[O][p], P[O][p], u)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function D(a) {
|
|
|
switch (typeof a) {
|
|
|
case "undefined":
|
|
|
case "string":
|
|
|
return !1
|
|
|
}
|
|
|
return "undefined" != typeof a.length
|
|
|
}
|
|
|
|
|
|
function F(u, S, M, P, p, Q, R, N, y) {
|
|
|
var O = u.length;
|
|
|
if (1 == y) {
|
|
|
for (var W = 0; O > W; W++) {
|
|
|
N[W] = G(u[W], S[W], M[W], P[W], p, Q, R)
|
|
|
}
|
|
|
} else {
|
|
|
for (var T = u[0].length, W = 0; O > W; W++) {
|
|
|
for (var s = 0; T > s; s++) {
|
|
|
N[W][s] = G(u[W][s], S[W][s], M[W][s], P[W][s], p, Q, R)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function G(p, Q, u, M, m, N, O) {
|
|
|
var P = 0.5 * (u - p),
|
|
|
y = 0.5 * (M - Q);
|
|
|
return (2 * (Q - u) + P + y) * O + (-3 * (Q - u) - 2 * P - y) * N + P * m + Q
|
|
|
}
|
|
|
|
|
|
function A(a) {
|
|
|
if (D(a)) {
|
|
|
var o = a.length;
|
|
|
if (D(a[0])) {
|
|
|
for (var l = [], m = 0; o > m; m++) {
|
|
|
l.push(q.call(a[m]))
|
|
|
}
|
|
|
return l
|
|
|
}
|
|
|
return q.call(a)
|
|
|
}
|
|
|
return a
|
|
|
}
|
|
|
|
|
|
function x(a) {
|
|
|
return a[0] = Math.floor(a[0]), a[1] = Math.floor(a[1]), a[2] = Math.floor(a[2]), "rgba(" + a.join(",") + ")"
|
|
|
}
|
|
|
var B = w("./Clip"),
|
|
|
K = w("../tool/color"),
|
|
|
J = w("../tool/util"),
|
|
|
v = w("../tool/event").Dispatcher,
|
|
|
E = window.requestAnimationFrame || window.msRequestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || function(a) {
|
|
|
setTimeout(a, 16)
|
|
|
},
|
|
|
q = Array.prototype.slice,
|
|
|
I = function(a) {
|
|
|
a = a || {}, this.stage = a.stage || {}, this.onframe = a.onframe || function() {}, this._clips = [], this._running = !1, this._time = 0, v.call(this)
|
|
|
};
|
|
|
I.prototype = {
|
|
|
add: function(a) {
|
|
|
this._clips.push(a)
|
|
|
},
|
|
|
remove: function(a) {
|
|
|
if (a.__inStep) {
|
|
|
a.__needsRemove = !0
|
|
|
} else {
|
|
|
var i = J.indexOf(this._clips, a);
|
|
|
i >= 0 && this._clips.splice(i, 1)
|
|
|
}
|
|
|
},
|
|
|
_update: function() {
|
|
|
for (var p = (new Date).getTime(), Q = p - this._time, u = this._clips, M = u.length, m = [], N = [], O = 0; M > O; O++) {
|
|
|
var P = u[O];
|
|
|
P.__inStep = !0;
|
|
|
var y = P.step(p);
|
|
|
P.__inStep = !1, y && (m.push(y), N.push(P))
|
|
|
}
|
|
|
for (var O = 0; M > O;) {
|
|
|
u[O].__needsRemove ? (u[O] = u[M - 1], u.pop(), M--) : O++
|
|
|
}
|
|
|
M = m.length;
|
|
|
for (var O = 0; M > O; O++) {
|
|
|
N[O].fire(m[O])
|
|
|
}
|
|
|
this._time = p, this.onframe(Q), this.dispatch("frame", Q), this.stage.update && this.stage.update()
|
|
|
},
|
|
|
start: function() {
|
|
|
function a() {
|
|
|
i._running && (E(a), i._update())
|
|
|
}
|
|
|
var i = this;
|
|
|
this._running = !0, this._time = (new Date).getTime(), E(a)
|
|
|
},
|
|
|
stop: function() {
|
|
|
this._running = !1
|
|
|
},
|
|
|
clear: function() {
|
|
|
this._clips = []
|
|
|
},
|
|
|
animate: function(a, m) {
|
|
|
m = m || {};
|
|
|
var l = new L(a, m.loop, m.getter, m.setter);
|
|
|
return l.animation = this, l
|
|
|
},
|
|
|
constructor: I
|
|
|
}, J.merge(I.prototype, v.prototype, !0);
|
|
|
var L = function(l, m, i, p) {
|
|
|
this._tracks = {}, this._target = l, this._loop = m || !1, this._getter = i || H, this._setter = p || z, this._clipCount = 0, this._delay = 0, this._doneList = [], this._onframeList = [], this._clipList = []
|
|
|
};
|
|
|
return L.prototype = {
|
|
|
when: function(a, m) {
|
|
|
for (var l in m) {
|
|
|
this._tracks[l] || (this._tracks[l] = [], 0 !== a && this._tracks[l].push({
|
|
|
time: 0,
|
|
|
value: A(this._getter(this._target, l))
|
|
|
})), this._tracks[l].push({
|
|
|
time: parseInt(a, 10),
|
|
|
value: m[l]
|
|
|
})
|
|
|
}
|
|
|
return this
|
|
|
},
|
|
|
during: function(a) {
|
|
|
return this._onframeList.push(a), this
|
|
|
},
|
|
|
start: function(n) {
|
|
|
var u = this,
|
|
|
o = this._setter,
|
|
|
r = this._getter,
|
|
|
y = "spline" === n,
|
|
|
m = function() {
|
|
|
if (u._clipCount--, 0 === u._clipCount) {
|
|
|
u._tracks = {};
|
|
|
for (var l = u._doneList.length, p = 0; l > p; p++) {
|
|
|
u._doneList[p].call(u)
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
s = function(Z, l) {
|
|
|
var ac = Z.length;
|
|
|
if (ac) {
|
|
|
var ai = Z[0].value,
|
|
|
P = D(ai),
|
|
|
i = !1,
|
|
|
N = P && D(ai[0]) ? 2 : 1;
|
|
|
Z.sort(function(p, S) {
|
|
|
return p.time - S.time
|
|
|
});
|
|
|
var U;
|
|
|
if (ac) {
|
|
|
U = Z[ac - 1].time;
|
|
|
for (var ag = [], e = [], Y = 0; ac > Y; Y++) {
|
|
|
ag.push(Z[Y].time / U);
|
|
|
var af = Z[Y].value;
|
|
|
"string" == typeof af && (af = K.toArray(af), 0 === af.length && (af[0] = af[1] = af[2] = 0, af[3] = 1), i = !0), e.push(af)
|
|
|
}
|
|
|
var ah, Y, ad, ae, V, Q, R, t = 0,
|
|
|
aa = 0;
|
|
|
if (i) {
|
|
|
var M = [0, 0, 0, 0]
|
|
|
}
|
|
|
var O = function(p, T) {
|
|
|
if (aa > T) {
|
|
|
for (ah = Math.min(t + 1, ac - 1), Y = ah; Y >= 0 && !(ag[Y] <= T); Y--) {}
|
|
|
Y = Math.min(Y, ac - 2)
|
|
|
} else {
|
|
|
for (Y = t; ac > Y && !(ag[Y] > T); Y++) {}
|
|
|
Y = Math.min(Y - 1, ac - 2)
|
|
|
}
|
|
|
t = Y, aa = T;
|
|
|
var S = ag[Y + 1] - ag[Y];
|
|
|
if (0 !== S) {
|
|
|
if (ad = (T - ag[Y]) / S, y) {
|
|
|
if (V = e[Y], ae = e[0 === Y ? Y : Y - 1], Q = e[Y > ac - 2 ? ac - 1 : Y + 1], R = e[Y > ac - 3 ? ac - 1 : Y + 2], P) {
|
|
|
F(ae, V, Q, R, ad, ad * ad, ad * ad * ad, r(p, l), N)
|
|
|
} else {
|
|
|
var W;
|
|
|
i ? (W = F(ae, V, Q, R, ad, ad * ad, ad * ad * ad, M, 1), W = x(M)) : W = G(ae, V, Q, R, ad, ad * ad, ad * ad * ad), o(p, l, W)
|
|
|
}
|
|
|
} else {
|
|
|
if (P) {
|
|
|
j(e[Y], e[Y + 1], ad, r(p, l), N)
|
|
|
} else {
|
|
|
var W;
|
|
|
i ? (j(e[Y], e[Y + 1], ad, M, 1), W = x(M)) : W = C(e[Y], e[Y + 1], ad), o(p, l, W)
|
|
|
}
|
|
|
}
|
|
|
for (Y = 0; Y < u._onframeList.length; Y++) {
|
|
|
u._onframeList[Y](p, T)
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
ab = new B({
|
|
|
target: u._target,
|
|
|
life: U,
|
|
|
loop: u._loop,
|
|
|
delay: u._delay,
|
|
|
onframe: O,
|
|
|
ondestroy: m
|
|
|
});
|
|
|
n && "spline" !== n && (ab.easing = n), u._clipList.push(ab), u._clipCount++, u.animation.add(ab)
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
for (var a in this._tracks) {
|
|
|
s(this._tracks[a], a)
|
|
|
}
|
|
|
return this
|
|
|
},
|
|
|
stop: function() {
|
|
|
for (var a = 0; a < this._clipList.length; a++) {
|
|
|
var i = this._clipList[a];
|
|
|
this.animation.remove(i)
|
|
|
}
|
|
|
this._clipList = []
|
|
|
},
|
|
|
delay: function(a) {
|
|
|
return this._delay = a, this
|
|
|
},
|
|
|
done: function(a) {
|
|
|
return a && this._doneList.push(a), this
|
|
|
}
|
|
|
}, I
|
|
|
}), d("zrender/tool/vector", [], function() {
|
|
|
var a = "undefined" == typeof Float32Array ? Array : Float32Array,
|
|
|
i = {
|
|
|
create: function(l, e) {
|
|
|
var j = new a(2);
|
|
|
return j[0] = l || 0, j[1] = e || 0, j
|
|
|
},
|
|
|
copy: function(j, l) {
|
|
|
return j[0] = l[0], j[1] = l[1], j
|
|
|
},
|
|
|
clone: function(j) {
|
|
|
var e = new a(2);
|
|
|
return e[0] = j[0], e[1] = j[1], e
|
|
|
},
|
|
|
set: function(j, m, l) {
|
|
|
return j[0] = m, j[1] = l, j
|
|
|
},
|
|
|
add: function(j, m, l) {
|
|
|
return j[0] = m[0] + l[0], j[1] = m[1] + l[1], j
|
|
|
},
|
|
|
scaleAndAdd: function(j, o, l, m) {
|
|
|
return j[0] = o[0] + l[0] * m, j[1] = o[1] + l[1] * m, j
|
|
|
},
|
|
|
sub: function(j, m, l) {
|
|
|
return j[0] = m[0] - l[0], j[1] = m[1] - l[1], j
|
|
|
},
|
|
|
len: function(j) {
|
|
|
return Math.sqrt(this.lenSquare(j))
|
|
|
},
|
|
|
lenSquare: function(j) {
|
|
|
return j[0] * j[0] + j[1] * j[1]
|
|
|
},
|
|
|
mul: function(j, m, l) {
|
|
|
return j[0] = m[0] * l[0], j[1] = m[1] * l[1], j
|
|
|
},
|
|
|
div: function(j, m, l) {
|
|
|
return j[0] = m[0] / l[0], j[1] = m[1] / l[1], j
|
|
|
},
|
|
|
dot: function(j, l) {
|
|
|
return j[0] * l[0] + j[1] * l[1]
|
|
|
},
|
|
|
scale: function(j, m, l) {
|
|
|
return j[0] = m[0] * l, j[1] = m[1] * l, j
|
|
|
},
|
|
|
normalize: function(j, l) {
|
|
|
var m = i.len(l);
|
|
|
return 0 === m ? (j[0] = 0, j[1] = 0) : (j[0] = l[0] / m, j[1] = l[1] / m), j
|
|
|
},
|
|
|
distance: function(j, l) {
|
|
|
return Math.sqrt((j[0] - l[0]) * (j[0] - l[0]) + (j[1] - l[1]) * (j[1] - l[1]))
|
|
|
},
|
|
|
distanceSquare: function(j, l) {
|
|
|
return (j[0] - l[0]) * (j[0] - l[0]) + (j[1] - l[1]) * (j[1] - l[1])
|
|
|
},
|
|
|
negate: function(j, l) {
|
|
|
return j[0] = -l[0], j[1] = -l[1], j
|
|
|
},
|
|
|
lerp: function(j, o, l, m) {
|
|
|
return j[0] = o[0] + m * (l[0] - o[0]), j[1] = o[1] + m * (l[1] - o[1]), j
|
|
|
},
|
|
|
applyTransform: function(l, p, m) {
|
|
|
var o = p[0],
|
|
|
j = p[1];
|
|
|
return l[0] = m[0] * o + m[2] * j + m[4], l[1] = m[1] * o + m[3] * j + m[5], l
|
|
|
},
|
|
|
min: function(j, m, l) {
|
|
|
return j[0] = Math.min(m[0], l[0]), j[1] = Math.min(m[1], l[1]), j
|
|
|
},
|
|
|
max: function(j, m, l) {
|
|
|
return j[0] = Math.max(m[0], l[0]), j[1] = Math.max(m[1], l[1]), j
|
|
|
}
|
|
|
};
|
|
|
return i.length = i.len, i.lengthSquare = i.lenSquare, i.dist = i.distance, i.distSquare = i.distanceSquare, i
|
|
|
}), d("zrender/tool/matrix", [], function() {
|
|
|
var a = "undefined" == typeof Float32Array ? Array : Float32Array,
|
|
|
i = {
|
|
|
create: function() {
|
|
|
var e = new a(6);
|
|
|
return i.identity(e), e
|
|
|
},
|
|
|
identity: function(j) {
|
|
|
return j[0] = 1, j[1] = 0, j[2] = 0, j[3] = 1, j[4] = 0, j[5] = 0, j
|
|
|
},
|
|
|
copy: function(j, l) {
|
|
|
return j[0] = l[0], j[1] = l[1], j[2] = l[2], j[3] = l[3], j[4] = l[4], j[5] = l[5], j
|
|
|
},
|
|
|
mul: function(j, m, l) {
|
|
|
return j[0] = m[0] * l[0] + m[2] * l[1], j[1] = m[1] * l[0] + m[3] * l[1], j[2] = m[0] * l[2] + m[2] * l[3], j[3] = m[1] * l[2] + m[3] * l[3], j[4] = m[0] * l[4] + m[2] * l[5] + m[4], j[5] = m[1] * l[4] + m[3] * l[5] + m[5], j
|
|
|
},
|
|
|
translate: function(j, m, l) {
|
|
|
return j[0] = m[0], j[1] = m[1], j[2] = m[2], j[3] = m[3], j[4] = m[4] + l[0], j[5] = m[5] + l[1], j
|
|
|
},
|
|
|
rotate: function(p, B, u) {
|
|
|
var x = B[0],
|
|
|
j = B[2],
|
|
|
y = B[4],
|
|
|
z = B[1],
|
|
|
A = B[3],
|
|
|
v = B[5],
|
|
|
q = Math.sin(u),
|
|
|
w = Math.cos(u);
|
|
|
return p[0] = x * w + z * q, p[1] = -x * q + z * w, p[2] = j * w + A * q, p[3] = -j * q + w * A, p[4] = w * y + q * v, p[5] = w * v - q * y, p
|
|
|
},
|
|
|
scale: function(l, p, m) {
|
|
|
var o = m[0],
|
|
|
j = m[1];
|
|
|
return l[0] = p[0] * o, l[1] = p[1] * j, l[2] = p[2] * o, l[3] = p[3] * j, l[4] = p[4] * o, l[5] = p[5] * j, l
|
|
|
},
|
|
|
invert: function(m, y) {
|
|
|
var p = y[0],
|
|
|
u = y[2],
|
|
|
j = y[4],
|
|
|
v = y[1],
|
|
|
w = y[3],
|
|
|
x = y[5],
|
|
|
q = p * w - v * u;
|
|
|
return q ? (q = 1 / q, m[0] = w * q, m[1] = -v * q, m[2] = -u * q, m[3] = p * q, m[4] = (u * x - w * j) * q, m[5] = (v * j - p * x) * q, m) : null
|
|
|
}
|
|
|
};
|
|
|
return i
|
|
|
}), d("zrender/loadingEffect/Base", ["require", "../tool/util", "../shape/Text", "../shape/Rectangle"], function(l) {
|
|
|
function u(a) {
|
|
|
this.setOptions(a)
|
|
|
}
|
|
|
var m = l("../tool/util"),
|
|
|
p = l("../shape/Text"),
|
|
|
j = l("../shape/Rectangle"),
|
|
|
q = "Loading...",
|
|
|
s = "normal 16px Arial";
|
|
|
return u.prototype.createTextShape = function(a) {
|
|
|
return new p({
|
|
|
highlightStyle: m.merge({
|
|
|
x: this.canvasWidth / 2,
|
|
|
y: this.canvasHeight / 2,
|
|
|
text: q,
|
|
|
textAlign: "center",
|
|
|
textBaseline: "middle",
|
|
|
textFont: s,
|
|
|
color: "#333",
|
|
|
brushType: "fill"
|
|
|
}, a, !0)
|
|
|
})
|
|
|
}, u.prototype.createBackgroundShape = function(a) {
|
|
|
return new j({
|
|
|
highlightStyle: {
|
|
|
x: 0,
|
|
|
y: 0,
|
|
|
width: this.canvasWidth,
|
|
|
height: this.canvasHeight,
|
|
|
brushType: "fill",
|
|
|
color: a
|
|
|
}
|
|
|
})
|
|
|
}, u.prototype.start = function(a) {
|
|
|
function o(e) {
|
|
|
a.storage.addHover(e)
|
|
|
}
|
|
|
|
|
|
function n() {
|
|
|
a.refreshHover()
|
|
|
}
|
|
|
this.canvasWidth = a._width, this.canvasHeight = a._height, this.loadingTimer = this._start(o, n)
|
|
|
}, u.prototype._start = function() {
|
|
|
return setInterval(function() {}, 10000)
|
|
|
}, u.prototype.stop = function() {
|
|
|
clearInterval(this.loadingTimer)
|
|
|
}, u.prototype.setOptions = function(a) {
|
|
|
this.options = a || {}
|
|
|
}, u.prototype.adjust = function(a, i) {
|
|
|
return a <= i[0] ? a = i[0] : a >= i[1] && (a = i[1]), a
|
|
|
}, u.prototype.getLocation = function(r, x, v) {
|
|
|
var w = null != r.x ? r.x : "center";
|
|
|
switch (w) {
|
|
|
case "center":
|
|
|
w = Math.floor((this.canvasWidth - x) / 2);
|
|
|
break;
|
|
|
case "left":
|
|
|
w = 0;
|
|
|
break;
|
|
|
case "right":
|
|
|
w = this.canvasWidth - x
|
|
|
}
|
|
|
var o = null != r.y ? r.y : "center";
|
|
|
switch (o) {
|
|
|
case "center":
|
|
|
o = Math.floor((this.canvasHeight - v) / 2);
|
|
|
break;
|
|
|
case "top":
|
|
|
o = 0;
|
|
|
break;
|
|
|
case "bottom":
|
|
|
o = this.canvasHeight - v
|
|
|
}
|
|
|
return {
|
|
|
x: w,
|
|
|
y: o,
|
|
|
width: x,
|
|
|
height: v
|
|
|
}
|
|
|
}, u
|
|
|
}), d("zrender/Layer", ["require", "./mixin/Transformable", "./tool/util", "./config"], function(l) {
|
|
|
function w() {
|
|
|
return !1
|
|
|
}
|
|
|
|
|
|
function m(s, A, x) {
|
|
|
var y = document.createElement(A),
|
|
|
r = x.getWidth(),
|
|
|
z = x.getHeight();
|
|
|
return y.style.position = "absolute", y.style.left = 0, y.style.top = 0, y.style.width = r + "px", y.style.height = z + "px", y.width = r * u.devicePixelRatio, y.height = z * u.devicePixelRatio, y.setAttribute("data-zr-dom-id", s), y
|
|
|
}
|
|
|
var p = l("./mixin/Transformable"),
|
|
|
j = l("./tool/util"),
|
|
|
q = window.G_vmlCanvasManager,
|
|
|
u = l("./config"),
|
|
|
v = function(n, i) {
|
|
|
this.id = n, this.dom = m(n, "canvas", i), this.dom.onselectstart = w, this.dom.style["-webkit-user-select"] = "none", this.dom.style["user-select"] = "none", this.dom.style["-webkit-touch-callout"] = "none", this.dom.style["-webkit-tap-highlight-color"] = "rgba(0,0,0,0)", this.dom.className = u.elementClassName, q && q.initElement(this.dom), this.domBack = null, this.ctxBack = null, this.painter = i, this.unusedCount = 0, this.config = null, this.dirty = !0, this.elCount = 0, this.clearColor = 0, this.motionBlur = !1, this.lastFrameAlpha = 0.7, this.zoomable = !1, this.panable = !1, this.maxZoom = 1 / 0, this.minZoom = 0, p.call(this)
|
|
|
};
|
|
|
return v.prototype.initContext = function() {
|
|
|
this.ctx = this.dom.getContext("2d");
|
|
|
var a = u.devicePixelRatio;
|
|
|
1 != a && this.ctx.scale(a, a)
|
|
|
}, v.prototype.createBackBuffer = function() {
|
|
|
if (!q) {
|
|
|
this.domBack = m("back-" + this.id, "canvas", this.painter), this.ctxBack = this.domBack.getContext("2d");
|
|
|
var a = u.devicePixelRatio;
|
|
|
1 != a && this.ctxBack.scale(a, a)
|
|
|
}
|
|
|
}, v.prototype.resize = function(a, o) {
|
|
|
var n = u.devicePixelRatio;
|
|
|
this.dom.style.width = a + "px", this.dom.style.height = o + "px", this.dom.setAttribute("width", a * n), this.dom.setAttribute("height", o * n), 1 != n && this.ctx.scale(n, n), this.domBack && (this.domBack.setAttribute("width", a * n), this.domBack.setAttribute("height", o * n), 1 != n && this.ctxBack.scale(n, n))
|
|
|
}, v.prototype.clear = function() {
|
|
|
var r = this.dom,
|
|
|
D = this.ctx,
|
|
|
y = r.width,
|
|
|
B = r.height,
|
|
|
o = this.clearColor && !q,
|
|
|
C = this.motionBlur && !q,
|
|
|
z = this.lastFrameAlpha,
|
|
|
x = u.devicePixelRatio;
|
|
|
if (C && (this.domBack || this.createBackBuffer(), this.ctxBack.globalCompositeOperation = "copy", this.ctxBack.drawImage(r, 0, 0, y / x, B / x)), D.clearRect(0, 0, y / x, B / x), o && (D.save(), D.fillStyle = this.clearColor, D.fillRect(0, 0, y / x, B / x), D.restore()), C) {
|
|
|
var A = this.domBack;
|
|
|
D.save(), D.globalAlpha = z, D.drawImage(A, 0, 0, y / x, B / x), D.restore()
|
|
|
}
|
|
|
}, j.merge(v.prototype, p.prototype), v
|
|
|
}), d("zrender/shape/Text", ["require", "../tool/area", "./Base", "../tool/util"], function(a) {
|
|
|
var m = a("../tool/area"),
|
|
|
j = a("./Base"),
|
|
|
l = function(i) {
|
|
|
j.call(this, i)
|
|
|
};
|
|
|
return l.prototype = {
|
|
|
type: "text",
|
|
|
brush: function(q, u) {
|
|
|
var x = this.style;
|
|
|
if (u && (x = this.getHighlightStyle(x, this.highlightStyle || {})), "undefined" != typeof x.text && x.text !== !1) {
|
|
|
q.save(), this.doClip(q), this.setContext(q, x), this.setTransform(q), x.textFont && (q.font = x.textFont), q.textAlign = x.textAlign || "start", q.textBaseline = x.textBaseline || "middle";
|
|
|
var p, y = (x.text + "").split("\n"),
|
|
|
z = m.getTextHeight("国", x.textFont),
|
|
|
A = this.getRect(x),
|
|
|
v = x.x;
|
|
|
p = "top" == x.textBaseline ? A.y : "bottom" == x.textBaseline ? A.y + z : A.y + z / 2;
|
|
|
for (var t = 0, w = y.length; w > t; t++) {
|
|
|
if (x.maxWidth) {
|
|
|
switch (x.brushType) {
|
|
|
case "fill":
|
|
|
q.fillText(y[t], v, p, x.maxWidth);
|
|
|
break;
|
|
|
case "stroke":
|
|
|
q.strokeText(y[t], v, p, x.maxWidth);
|
|
|
break;
|
|
|
case "both":
|
|
|
q.fillText(y[t], v, p, x.maxWidth), q.strokeText(y[t], v, p, x.maxWidth);
|
|
|
break;
|
|
|
default:
|
|
|
q.fillText(y[t], v, p, x.maxWidth)
|
|
|
}
|
|
|
} else {
|
|
|
switch (x.brushType) {
|
|
|
case "fill":
|
|
|
q.fillText(y[t], v, p);
|
|
|
break;
|
|
|
case "stroke":
|
|
|
q.strokeText(y[t], v, p);
|
|
|
break;
|
|
|
case "both":
|
|
|
q.fillText(y[t], v, p), q.strokeText(y[t], v, p);
|
|
|
break;
|
|
|
default:
|
|
|
q.fillText(y[t], v, p)
|
|
|
}
|
|
|
}
|
|
|
p += z
|
|
|
}
|
|
|
q.restore()
|
|
|
}
|
|
|
},
|
|
|
getRect: function(q) {
|
|
|
if (q.__rect) {
|
|
|
return q.__rect
|
|
|
}
|
|
|
var r = m.getTextWidth(q.text, q.textFont),
|
|
|
s = m.getTextHeight(q.text, q.textFont),
|
|
|
p = q.x;
|
|
|
"end" == q.textAlign || "right" == q.textAlign ? p -= r : "center" == q.textAlign && (p -= r / 2);
|
|
|
var t;
|
|
|
return t = "top" == q.textBaseline ? q.y : "bottom" == q.textBaseline ? q.y - s : q.y - s / 2, q.__rect = {
|
|
|
x: p,
|
|
|
y: t,
|
|
|
width: r,
|
|
|
height: s
|
|
|
}, q.__rect
|
|
|
}
|
|
|
}, a("../tool/util").inherits(l, j), l
|
|
|
}), d("zrender/shape/Rectangle", ["require", "./Base", "../tool/util"], function(a) {
|
|
|
var l = a("./Base"),
|
|
|
j = function(i) {
|
|
|
l.call(this, i)
|
|
|
};
|
|
|
return j.prototype = {
|
|
|
type: "rectangle",
|
|
|
_buildRadiusPath: function(q, C) {
|
|
|
var v, y, p, z, A = C.x,
|
|
|
B = C.y,
|
|
|
w = C.width,
|
|
|
u = C.height,
|
|
|
x = C.radius;
|
|
|
"number" == typeof x ? v = y = p = z = x : x instanceof Array ? 1 === x.length ? v = y = p = z = x[0] : 2 === x.length ? (v = p = x[0], y = z = x[1]) : 3 === x.length ? (v = x[0], y = z = x[1], p = x[2]) : (v = x[0], y = x[1], p = x[2], z = x[3]) : v = y = p = z = 0;
|
|
|
var D;
|
|
|
v + y > w && (D = v + y, v *= w / D, y *= w / D), p + z > w && (D = p + z, p *= w / D, z *= w / D), y + p > u && (D = y + p, y *= u / D, p *= u / D), v + z > u && (D = v + z, v *= u / D, z *= u / D), q.moveTo(A + v, B), q.lineTo(A + w - y, B), 0 !== y && q.quadraticCurveTo(A + w, B, A + w, B + y), q.lineTo(A + w, B + u - p), 0 !== p && q.quadraticCurveTo(A + w, B + u, A + w - p, B + u), q.lineTo(A + z, B + u), 0 !== z && q.quadraticCurveTo(A, B + u, A, B + u - z), q.lineTo(A, B + v), 0 !== v && q.quadraticCurveTo(A, B, A + v, B)
|
|
|
},
|
|
|
buildPath: function(i, m) {
|
|
|
m.radius ? this._buildRadiusPath(i, m) : (i.moveTo(m.x, m.y), i.lineTo(m.x + m.width, m.y), i.lineTo(m.x + m.width, m.y + m.height), i.lineTo(m.x, m.y + m.height), i.lineTo(m.x, m.y)), i.closePath()
|
|
|
},
|
|
|
getRect: function(i) {
|
|
|
if (i.__rect) {
|
|
|
return i.__rect
|
|
|
}
|
|
|
var m;
|
|
|
return m = "stroke" == i.brushType || "fill" == i.brushType ? i.lineWidth || 1 : 0, i.__rect = {
|
|
|
x: Math.round(i.x - m / 2),
|
|
|
y: Math.round(i.y - m / 2),
|
|
|
width: i.width + m,
|
|
|
height: i.height + m
|
|
|
}, i.__rect
|
|
|
}
|
|
|
}, a("../tool/util").inherits(j, l), j
|
|
|
}), d("zrender/tool/area", ["require", "./util", "./curve"], function(F) {
|
|
|
function ah(a) {
|
|
|
return a %= B, 0 > a && (a += B), a
|
|
|
}
|
|
|
|
|
|
function O(a, w, m, p) {
|
|
|
if (!w || !a) {
|
|
|
return !1
|
|
|
}
|
|
|
var u = a.type;
|
|
|
Z = Z || an.getContext();
|
|
|
var v = ab(a, w, m, p);
|
|
|
if ("undefined" != typeof v) {
|
|
|
return v
|
|
|
}
|
|
|
if (a.buildPath && Z.isPointInPath) {
|
|
|
return q(a, Z, w, m, p)
|
|
|
}
|
|
|
switch (u) {
|
|
|
case "ellipse":
|
|
|
return !0;
|
|
|
case "trochoid":
|
|
|
var n = "out" == w.location ? w.r1 + w.r2 + w.d : w.r1 - w.r2 + w.d;
|
|
|
return D(w, m, p, n);
|
|
|
case "rose":
|
|
|
return D(w, m, p, w.maxr);
|
|
|
default:
|
|
|
return !1
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function ab(m, w, r, s) {
|
|
|
var l = m.type;
|
|
|
switch (l) {
|
|
|
case "bezier-curve":
|
|
|
return "undefined" == typeof w.cpX2 ? Y(w.xStart, w.yStart, w.cpX1, w.cpY1, w.xEnd, w.yEnd, w.lineWidth, r, s) : af(w.xStart, w.yStart, w.cpX1, w.cpY1, w.cpX2, w.cpY2, w.xEnd, w.yEnd, w.lineWidth, r, s);
|
|
|
case "line":
|
|
|
return ae(w.xStart, w.yStart, w.xEnd, w.yEnd, w.lineWidth, r, s);
|
|
|
case "polyline":
|
|
|
return aa(w.pointList, w.lineWidth, r, s);
|
|
|
case "ring":
|
|
|
return al(w.x, w.y, w.r0, w.r, r, s);
|
|
|
case "circle":
|
|
|
return D(w.x, w.y, w.r, r, s);
|
|
|
case "sector":
|
|
|
var v = w.startAngle * Math.PI / 180,
|
|
|
p = w.endAngle * Math.PI / 180;
|
|
|
return w.clockWise || (v = -v, p = -p), ad(w.x, w.y, w.r0, w.r, v, p, !w.clockWise, r, s);
|
|
|
case "path":
|
|
|
return w.pathArray && R(w.pathArray, Math.max(w.lineWidth, 5), w.brushType, r, s);
|
|
|
case "polygon":
|
|
|
case "star":
|
|
|
case "isogon":
|
|
|
return A(w.pointList, r, s);
|
|
|
case "text":
|
|
|
var x = w.__rect || m.getRect(w);
|
|
|
return aj(x.x, x.y, x.width, x.height, r, s);
|
|
|
case "rectangle":
|
|
|
case "image":
|
|
|
return aj(w.x, w.y, w.width, w.height, r, s)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function q(m, r, o, p, l) {
|
|
|
return r.beginPath(), m.buildPath(r, o), r.closePath(), r.isPointInPath(p, l)
|
|
|
}
|
|
|
|
|
|
function ac(l, o, m, i) {
|
|
|
return !O(l, o, m, i)
|
|
|
}
|
|
|
|
|
|
function ae(u, K, w, C, p, E, I) {
|
|
|
if (0 === p) {
|
|
|
return !1
|
|
|
}
|
|
|
var J = Math.max(p, 5),
|
|
|
x = 0,
|
|
|
v = u;
|
|
|
if (I > K + J && I > C + J || K - J > I && C - J > I || E > u + J && E > w + J || u - J > E && w - J > E) {
|
|
|
return !1
|
|
|
}
|
|
|
if (u === w) {
|
|
|
return Math.abs(E - u) <= J / 2
|
|
|
}
|
|
|
x = (K - C) / (u - w), v = (u * C - w * K) / (u - w);
|
|
|
var y = x * E - I + v,
|
|
|
L = y * y / (x * x + 1);
|
|
|
return J / 2 * J / 2 >= L
|
|
|
}
|
|
|
|
|
|
function af(u, K, w, C, p, E, I, J, x, v, y) {
|
|
|
if (0 === x) {
|
|
|
return !1
|
|
|
}
|
|
|
var S = Math.max(x, 5);
|
|
|
if (y > K + S && y > C + S && y > E + S && y > J + S || K - S > y && C - S > y && E - S > y && J - S > y || v > u + S && v > w + S && v > p + S && v > I + S || u - S > v && w - S > v && p - S > v && I - S > v) {
|
|
|
return !1
|
|
|
}
|
|
|
var L = ap.cubicProjectPoint(u, K, w, C, p, E, I, J, v, y, null);
|
|
|
return S / 2 >= L
|
|
|
}
|
|
|
|
|
|
function Y(u, K, w, C, p, E, I, J, x) {
|
|
|
if (0 === I) {
|
|
|
return !1
|
|
|
}
|
|
|
var v = Math.max(I, 5);
|
|
|
if (x > K + v && x > C + v && x > E + v || K - v > x && C - v > x && E - v > x || J > u + v && J > w + v && J > p + v || u - v > J && w - v > J && p - v > J) {
|
|
|
return !1
|
|
|
}
|
|
|
var y = ap.quadraticProjectPoint(u, K, w, C, p, E, J, x, null);
|
|
|
return v / 2 >= y
|
|
|
}
|
|
|
|
|
|
function N(u, w, C, p, E, I, J, x, v) {
|
|
|
if (0 === J) {
|
|
|
return !1
|
|
|
}
|
|
|
var y = Math.max(J, 5);
|
|
|
x -= u, v -= w;
|
|
|
var L = Math.sqrt(x * x + v * v);
|
|
|
if (L - y > C || C > L + y) {
|
|
|
return !1
|
|
|
}
|
|
|
if (Math.abs(p - E) >= B) {
|
|
|
return !0
|
|
|
}
|
|
|
if (I) {
|
|
|
var K = p;
|
|
|
p = ah(E), E = ah(K)
|
|
|
} else {
|
|
|
p = ah(p), E = ah(E)
|
|
|
}
|
|
|
p > E && (E += B);
|
|
|
var t = Math.atan2(v, x);
|
|
|
return 0 > t && (t += B), t >= p && E >= t || t + B >= p && E >= t + B
|
|
|
}
|
|
|
|
|
|
function aa(r, I, v, y) {
|
|
|
for (var I = Math.max(I, 10), p = 0, C = r.length - 1; C > p; p++) {
|
|
|
var E = r[p][0],
|
|
|
w = r[p][1],
|
|
|
u = r[p + 1][0],
|
|
|
x = r[p + 1][1];
|
|
|
if (ae(E, w, u, x, I, v, y)) {
|
|
|
return !0
|
|
|
}
|
|
|
}
|
|
|
return !1
|
|
|
}
|
|
|
|
|
|
function al(m, w, p, s, l, u) {
|
|
|
var v = (l - m) * (l - m) + (u - w) * (u - w);
|
|
|
return s * s > v && v > p * p
|
|
|
}
|
|
|
|
|
|
function aj(m, u, p, r, l, s) {
|
|
|
return l >= m && m + p >= l && s >= u && u + r >= s
|
|
|
}
|
|
|
|
|
|
function D(m, r, o, p, l) {
|
|
|
return o * o > (p - m) * (p - m) + (l - r) * (l - r)
|
|
|
}
|
|
|
|
|
|
function ad(p, E, u, w, m, x, y, C, v) {
|
|
|
return N(p, E, (u + w) / 2, m, x, y, w - u, C, v)
|
|
|
}
|
|
|
|
|
|
function A(u, K, w) {
|
|
|
for (var C = u.length, p = 0, E = 0, I = C - 1; C > E; E++) {
|
|
|
var J = u[I][0],
|
|
|
x = u[I][1],
|
|
|
v = u[E][0],
|
|
|
y = u[E][1];
|
|
|
p += ai(J, x, v, y, K, w), I = E
|
|
|
}
|
|
|
return 0 !== p
|
|
|
}
|
|
|
|
|
|
function ai(p, E, u, w, m, x) {
|
|
|
if (x > E && x > w || E > x && w > x) {
|
|
|
return 0
|
|
|
}
|
|
|
if (w == E) {
|
|
|
return 0
|
|
|
}
|
|
|
var y = E > w ? 1 : -1,
|
|
|
C = (x - E) / (w - E),
|
|
|
v = C * (u - p) + p;
|
|
|
return v > m ? y : 0
|
|
|
}
|
|
|
|
|
|
function aq() {
|
|
|
var a = G[0];
|
|
|
G[0] = G[1], G[1] = a
|
|
|
}
|
|
|
|
|
|
function M(y, at, I, L, v, S, X, ar, J, E) {
|
|
|
if (E > at && E > L && E > S && E > ar || at > E && L > E && S > E && ar > E) {
|
|
|
return 0
|
|
|
}
|
|
|
var K = ap.cubicRootAt(at, L, S, ar, E, ag);
|
|
|
if (0 === K) {
|
|
|
return 0
|
|
|
}
|
|
|
for (var aw, av, x = 0, W = -1, w = 0; K > w; w++) {
|
|
|
var au = ag[w],
|
|
|
C = ap.cubicAt(y, I, v, X, au);
|
|
|
J > C || (0 > W && (W = ap.cubicExtrema(at, L, S, ar, G), G[1] < G[0] && W > 1 && aq(), aw = ap.cubicAt(at, L, S, ar, G[0]), W > 1 && (av = ap.cubicAt(at, L, S, ar, G[1]))), x += 2 == W ? au < G[0] ? at > aw ? 1 : -1 : au < G[1] ? aw > av ? 1 : -1 : av > ar ? 1 : -1 : au < G[0] ? at > aw ? 1 : -1 : aw > ar ? 1 : -1)
|
|
|
}
|
|
|
return x
|
|
|
}
|
|
|
|
|
|
function z(v, L, x, E, p, I, J, K) {
|
|
|
if (K > L && K > E && K > I || L > K && E > K && I > K) {
|
|
|
return 0
|
|
|
}
|
|
|
var y = ap.quadraticRootAt(L, E, I, K, ag);
|
|
|
if (0 === y) {
|
|
|
return 0
|
|
|
}
|
|
|
var w = ap.quadraticExtremum(L, E, I);
|
|
|
if (w >= 0 && 1 >= w) {
|
|
|
for (var C = 0, W = ap.quadraticAt(L, E, I, w), S = 0; y > S; S++) {
|
|
|
var u = ap.quadraticAt(v, x, p, ag[S]);
|
|
|
J > u || (C += ag[S] < w ? L > W ? 1 : -1 : W > I ? 1 : -1)
|
|
|
}
|
|
|
return C
|
|
|
}
|
|
|
var u = ap.quadraticAt(v, x, p, ag[0]);
|
|
|
return J > u ? 0 : L > I ? 1 : -1
|
|
|
}
|
|
|
|
|
|
function H(v, x, E, t, I, K, L, y) {
|
|
|
if (y -= x, y > E || -E > y) {
|
|
|
return 0
|
|
|
}
|
|
|
var w = Math.sqrt(E * E - y * y);
|
|
|
if (ag[0] = -w, ag[1] = w, Math.abs(t - I) >= B) {
|
|
|
t = 0, I = B;
|
|
|
var C = K ? 1 : -1;
|
|
|
return L >= ag[0] + v && L <= ag[1] + v ? C : 0
|
|
|
}
|
|
|
if (K) {
|
|
|
var w = t;
|
|
|
t = ah(I), I = ah(w)
|
|
|
} else {
|
|
|
t = ah(t), I = ah(I)
|
|
|
}
|
|
|
t > I && (I += B);
|
|
|
for (var W = 0, S = 0; 2 > S; S++) {
|
|
|
var u = ag[S];
|
|
|
if (u + v > L) {
|
|
|
var J = Math.atan2(y, u),
|
|
|
C = K ? 1 : -1;
|
|
|
0 > J && (J = B + J), (J >= t && I >= J || J + B >= t && I >= J + B) && (J > Math.PI / 2 && J < 1.5 * Math.PI && (C = -C), W += C)
|
|
|
}
|
|
|
}
|
|
|
return W
|
|
|
}
|
|
|
|
|
|
function R(ar, aE, at, aA, r) {
|
|
|
var aB = 0,
|
|
|
az = 0,
|
|
|
aH = 0,
|
|
|
aF = 0,
|
|
|
E = 0,
|
|
|
aC = !0,
|
|
|
s = !0;
|
|
|
at = at || "fill";
|
|
|
for (var aM = "stroke" === at || "both" === at, aw = "fill" === at || "both" === at, aK = 0; aK < ar.length; aK++) {
|
|
|
var l = ar[aK],
|
|
|
ay = l.points;
|
|
|
if (aC || "M" === l.command) {
|
|
|
if (aK > 0 && (aw && (aB += ai(az, aH, aF, E, aA, r)), 0 !== aB)) {
|
|
|
return !0
|
|
|
}
|
|
|
aF = ay[ay.length - 2], E = ay[ay.length - 1], aC = !1, s && "A" !== l.command && (s = !1, az = aF, aH = E)
|
|
|
}
|
|
|
switch (l.command) {
|
|
|
case "M":
|
|
|
az = ay[0], aH = ay[1];
|
|
|
break;
|
|
|
case "L":
|
|
|
if (aM && ae(az, aH, ay[0], ay[1], aE, aA, r)) {
|
|
|
return !0
|
|
|
}
|
|
|
aw && (aB += ai(az, aH, ay[0], ay[1], aA, r)), az = ay[0], aH = ay[1];
|
|
|
break;
|
|
|
case "C":
|
|
|
if (aM && af(az, aH, ay[0], ay[1], ay[2], ay[3], ay[4], ay[5], aE, aA, r)) {
|
|
|
return !0
|
|
|
}
|
|
|
aw && (aB += M(az, aH, ay[0], ay[1], ay[2], ay[3], ay[4], ay[5], aA, r)), az = ay[4], aH = ay[5];
|
|
|
break;
|
|
|
case "Q":
|
|
|
if (aM && Y(az, aH, ay[0], ay[1], ay[2], ay[3], aE, aA, r)) {
|
|
|
return !0
|
|
|
}
|
|
|
aw && (aB += z(az, aH, ay[0], ay[1], ay[2], ay[3], aA, r)), az = ay[2], aH = ay[3];
|
|
|
break;
|
|
|
case "A":
|
|
|
var aJ = ay[0],
|
|
|
aL = ay[1],
|
|
|
aG = ay[2],
|
|
|
aI = ay[3],
|
|
|
ax = ay[4],
|
|
|
au = ay[5],
|
|
|
av = Math.cos(ax) * aG + aJ,
|
|
|
u = Math.sin(ax) * aI + aL;
|
|
|
s ? (s = !1, aF = av, E = u) : aB += ai(az, aH, av, u);
|
|
|
var aD = (aA - aJ) * aI / aG + aJ;
|
|
|
if (aM && N(aJ, aL, aI, ax, ax + au, 1 - ay[7], aE, aD, r)) {
|
|
|
return !0
|
|
|
}
|
|
|
aw && (aB += H(aJ, aL, aI, ax, ax + au, 1 - ay[7], aD, r)), az = Math.cos(ax + au) * aG + aJ, aH = Math.sin(ax + au) * aI + aL;
|
|
|
break;
|
|
|
case "z":
|
|
|
if (aM && ae(az, aH, aF, E, aE, aA, r)) {
|
|
|
return !0
|
|
|
}
|
|
|
aC = !0
|
|
|
}
|
|
|
}
|
|
|
return aw && (aB += ai(az, aH, aF, E, aA, r)), 0 !== aB
|
|
|
}
|
|
|
|
|
|
function ao(m, u) {
|
|
|
var p = m + ":" + u;
|
|
|
if (ak[p]) {
|
|
|
return ak[p]
|
|
|
}
|
|
|
Z = Z || an.getContext(), Z.save(), u && (Z.font = u), m = (m + "").split("\n");
|
|
|
for (var r = 0, l = 0, s = m.length; s > l; l++) {
|
|
|
r = Math.max(Z.measureText(m[l]).width, r)
|
|
|
}
|
|
|
return Z.restore(), ak[p] = r, ++T > Q && (T = 0, ak = {}), r
|
|
|
}
|
|
|
|
|
|
function j(a, o) {
|
|
|
var l = a + ":" + o;
|
|
|
if (am[l]) {
|
|
|
return am[l]
|
|
|
}
|
|
|
Z = Z || an.getContext(), Z.save(), o && (Z.font = o), a = (a + "").split("\n");
|
|
|
var m = (Z.measureText("国").width + 2) * a.length;
|
|
|
return Z.restore(), am[l] = m, ++P > Q && (P = 0, am = {}), m
|
|
|
}
|
|
|
var Z, an = F("./util"),
|
|
|
ap = F("./curve"),
|
|
|
ak = {},
|
|
|
am = {},
|
|
|
T = 0,
|
|
|
P = 0,
|
|
|
Q = 5000,
|
|
|
B = 2 * Math.PI,
|
|
|
ag = [-1, -1, -1],
|
|
|
G = [-1, -1];
|
|
|
return {
|
|
|
isInside: O,
|
|
|
isOutside: ac,
|
|
|
getTextWidth: ao,
|
|
|
getTextHeight: j,
|
|
|
isInsidePath: R,
|
|
|
isInsidePolygon: A,
|
|
|
isInsideSector: ad,
|
|
|
isInsideCircle: D,
|
|
|
isInsideLine: ae,
|
|
|
isInsideRect: aj,
|
|
|
isInsidePolyline: aa,
|
|
|
isInsideCubicStroke: af,
|
|
|
isInsideQuadraticStroke: Y
|
|
|
}
|
|
|
}), d("zrender/shape/Base", ["require", "../tool/matrix", "../tool/guid", "../tool/util", "../tool/log", "../mixin/Transformable", "../mixin/Eventful", "../tool/area", "../tool/color"], function(p) {
|
|
|
function B(K, G, e, H, I, J, E) {
|
|
|
I && (K.font = I), K.textAlign = J, K.textBaseline = E;
|
|
|
var i = u(G, e, H, I, J, E);
|
|
|
G = (G + "").split("\n");
|
|
|
var F = p("../tool/area").getTextHeight("国", I);
|
|
|
switch (E) {
|
|
|
case "top":
|
|
|
H = i.y;
|
|
|
break;
|
|
|
case "bottom":
|
|
|
H = i.y + F;
|
|
|
break;
|
|
|
default:
|
|
|
H = i.y + F / 2
|
|
|
}
|
|
|
for (var M = 0, L = G.length; L > M; M++) {
|
|
|
K.fillText(G[M], e, H), H += F
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function u(K, E, G, e, H, I) {
|
|
|
var J = p("../tool/area"),
|
|
|
F = J.getTextWidth(K, e),
|
|
|
m = J.getTextHeight("国", e);
|
|
|
switch (K = (K + "").split("\n"), H) {
|
|
|
case "end":
|
|
|
case "right":
|
|
|
E -= F;
|
|
|
break;
|
|
|
case "center":
|
|
|
E -= F / 2
|
|
|
}
|
|
|
switch (I) {
|
|
|
case "top":
|
|
|
break;
|
|
|
case "bottom":
|
|
|
G -= m * K.length;
|
|
|
break;
|
|
|
default:
|
|
|
G -= m * K.length / 2
|
|
|
}
|
|
|
return {
|
|
|
x: E,
|
|
|
y: G,
|
|
|
width: F,
|
|
|
height: m * K.length
|
|
|
}
|
|
|
}
|
|
|
var x = window.G_vmlCanvasManager,
|
|
|
j = p("../tool/matrix"),
|
|
|
y = p("../tool/guid"),
|
|
|
z = p("../tool/util"),
|
|
|
A = p("../tool/log"),
|
|
|
v = p("../mixin/Transformable"),
|
|
|
q = p("../mixin/Eventful"),
|
|
|
w = function(a) {
|
|
|
a = a || {}, this.id = a.id || y();
|
|
|
for (var i in a) {
|
|
|
this[i] = a[i]
|
|
|
}
|
|
|
this.style = this.style || {}, this.highlightStyle = this.highlightStyle || null, this.parent = null, this.__dirty = !0, this.__clipShapes = [], v.call(this), q.call(this)
|
|
|
};
|
|
|
w.prototype.invisible = !1, w.prototype.ignore = !1, w.prototype.zlevel = 0, w.prototype.draggable = !1, w.prototype.clickable = !1, w.prototype.hoverable = !0, w.prototype.z = 0, w.prototype.brush = function(a, m) {
|
|
|
var l = this.beforeBrush(a, m);
|
|
|
switch (a.beginPath(), this.buildPath(a, l), l.brushType) {
|
|
|
case "both":
|
|
|
a.fill();
|
|
|
case "stroke":
|
|
|
l.lineWidth > 0 && a.stroke();
|
|
|
break;
|
|
|
default:
|
|
|
a.fill()
|
|
|
}
|
|
|
this.drawText(a, l, this.style), this.afterBrush(a)
|
|
|
}, w.prototype.beforeBrush = function(a, m) {
|
|
|
var l = this.style;
|
|
|
return this.brushTypeOnly && (l.brushType = this.brushTypeOnly), m && (l = this.getHighlightStyle(l, this.highlightStyle || {}, this.brushTypeOnly)), "stroke" == this.brushTypeOnly && (l.strokeColor = l.strokeColor || l.color), a.save(), this.doClip(a), this.setContext(a, l), this.setTransform(a), l
|
|
|
}, w.prototype.afterBrush = function(a) {
|
|
|
a.restore()
|
|
|
};
|
|
|
var D = [
|
|
|
["color", "fillStyle"],
|
|
|
["strokeColor", "strokeStyle"],
|
|
|
["opacity", "globalAlpha"],
|
|
|
["lineCap", "lineCap"],
|
|
|
["lineJoin", "lineJoin"],
|
|
|
["miterLimit", "miterLimit"],
|
|
|
["lineWidth", "lineWidth"],
|
|
|
["shadowBlur", "shadowBlur"],
|
|
|
["shadowColor", "shadowColor"],
|
|
|
["shadowOffsetX", "shadowOffsetX"],
|
|
|
["shadowOffsetY", "shadowOffsetY"]
|
|
|
];
|
|
|
w.prototype.setContext = function(m, H) {
|
|
|
for (var s = 0, E = D.length; E > s; s++) {
|
|
|
var l = D[s][0],
|
|
|
F = H[l],
|
|
|
G = D[s][1];
|
|
|
"undefined" != typeof F && (m[G] = F)
|
|
|
}
|
|
|
};
|
|
|
var C = j.create();
|
|
|
return w.prototype.doClip = function(a) {
|
|
|
if (this.__clipShapes && !x) {
|
|
|
for (var n = 0; n < this.__clipShapes.length; n++) {
|
|
|
var l = this.__clipShapes[n];
|
|
|
if (l.needTransform) {
|
|
|
var m = l.transform;
|
|
|
j.invert(C, m), a.transform(m[0], m[1], m[2], m[3], m[4], m[5])
|
|
|
}
|
|
|
if (a.beginPath(), l.buildPath(a, l.style), a.clip(), l.needTransform) {
|
|
|
var m = C;
|
|
|
a.transform(m[0], m[1], m[2], m[3], m[4], m[5])
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}, w.prototype.getHighlightStyle = function(H, l, m) {
|
|
|
var e = {};
|
|
|
for (var E in H) {
|
|
|
e[E] = H[E]
|
|
|
}
|
|
|
var F = p("../tool/color"),
|
|
|
G = F.getHighlightColor();
|
|
|
"stroke" != H.brushType ? (e.strokeColor = G, e.lineWidth = (H.lineWidth || 1) + this.getHighlightZoom(), e.brushType = "both") : "stroke" != m ? (e.strokeColor = G, e.lineWidth = (H.lineWidth || 1) + this.getHighlightZoom()) : e.strokeColor = l.strokeColor || F.mix(H.strokeColor, F.toRGB(G));
|
|
|
for (var E in l) {
|
|
|
"undefined" != typeof l[E] && (e[E] = l[E])
|
|
|
}
|
|
|
return e
|
|
|
}, w.prototype.getHighlightZoom = function() {
|
|
|
return "text" != this.type ? 6 : 2
|
|
|
}, w.prototype.drift = function(a, i) {
|
|
|
this.position[0] += a, this.position[1] += i
|
|
|
}, w.prototype.buildPath = function() {
|
|
|
A("buildPath not implemented in " + this.type)
|
|
|
}, w.prototype.getRect = function() {
|
|
|
A("getRect not implemented in " + this.type)
|
|
|
}, w.prototype.isCover = function(l, a) {
|
|
|
var e = this.transformCoordToLocal(l, a);
|
|
|
return l = e[0], a = e[1], this.isCoverRect(l, a) ? p("../tool/area").isInside(this, this.style, l, a) : !1
|
|
|
}, w.prototype.isCoverRect = function(a, m) {
|
|
|
var l = this.style.__rect;
|
|
|
return l || (l = this.style.__rect = this.getRect(this.style)), a >= l.x && a <= l.x + l.width && m >= l.y && m <= l.y + l.height
|
|
|
}, w.prototype.drawText = function(G, J, M) {
|
|
|
if ("undefined" != typeof J.text && J.text !== !1) {
|
|
|
var t = J.textColor || J.color || J.strokeColor;
|
|
|
G.fillStyle = t;
|
|
|
var N, P, Q, K, I = 10,
|
|
|
L = J.textPosition || this.textPosition || "top";
|
|
|
switch (L) {
|
|
|
case "inside":
|
|
|
case "top":
|
|
|
case "bottom":
|
|
|
case "left":
|
|
|
case "right":
|
|
|
if (this.getRect) {
|
|
|
var T = (M || J).__rect || this.getRect(M || J);
|
|
|
switch (L) {
|
|
|
case "inside":
|
|
|
Q = T.x + T.width / 2, K = T.y + T.height / 2, N = "center", P = "middle", "stroke" != J.brushType && t == J.color && (G.fillStyle = "#fff");
|
|
|
break;
|
|
|
case "left":
|
|
|
Q = T.x - I, K = T.y + T.height / 2, N = "end", P = "middle";
|
|
|
break;
|
|
|
case "right":
|
|
|
Q = T.x + T.width + I, K = T.y + T.height / 2, N = "start", P = "middle";
|
|
|
break;
|
|
|
case "top":
|
|
|
Q = T.x + T.width / 2, K = T.y - I, N = "center", P = "bottom";
|
|
|
break;
|
|
|
case "bottom":
|
|
|
Q = T.x + T.width / 2, K = T.y + T.height + I, N = "center", P = "top"
|
|
|
}
|
|
|
}
|
|
|
break;
|
|
|
case "start":
|
|
|
case "end":
|
|
|
var S = J.pointList || [
|
|
|
[J.xStart || 0, J.yStart || 0],
|
|
|
[J.xEnd || 0, J.yEnd || 0]
|
|
|
],
|
|
|
F = S.length;
|
|
|
if (2 > F) {
|
|
|
return
|
|
|
}
|
|
|
var O, E, R, W;
|
|
|
switch (L) {
|
|
|
case "start":
|
|
|
O = S[1][0], E = S[0][0], R = S[1][1], W = S[0][1];
|
|
|
break;
|
|
|
case "end":
|
|
|
O = S[F - 2][0], E = S[F - 1][0], R = S[F - 2][1], W = S[F - 1][1]
|
|
|
}
|
|
|
Q = E, K = W;
|
|
|
var H = Math.atan((R - W) / (E - O)) / Math.PI * 180;
|
|
|
0 > E - O ? H += 180 : 0 > R - W && (H += 360), I = 5, H >= 30 && 150 >= H ? (N = "center", P = "bottom", K -= I) : H > 150 && 210 > H ? (N = "right", P = "middle", Q -= I) : H >= 210 && 330 >= H ? (N = "center", P = "top", K += I) : (N = "left", P = "middle", Q += I);
|
|
|
break;
|
|
|
case "specific":
|
|
|
Q = J.textX || 0, K = J.textY || 0, N = "start", P = "middle"
|
|
|
}
|
|
|
null != Q && null != K && B(G, J.text, Q, K, J.textFont, J.textAlign || N, J.textBaseline || P)
|
|
|
}
|
|
|
}, w.prototype.modSelf = function() {
|
|
|
this.__dirty = !0, this.style && (this.style.__rect = null), this.highlightStyle && (this.highlightStyle.__rect = null)
|
|
|
}, w.prototype.isSilent = function() {
|
|
|
return !(this.hoverable || this.draggable || this.clickable || this.onmousemove || this.onmouseover || this.onmouseout || this.onmousedown || this.onmouseup || this.onclick || this.ondragenter || this.ondragover || this.ondragleave || this.ondrop)
|
|
|
}, z.merge(w.prototype, v.prototype, !0), z.merge(w.prototype, q.prototype, !0), w
|
|
|
}), d("zrender/tool/curve", ["require", "./vector"], function(x) {
|
|
|
function L(a) {
|
|
|
return a > -M && M > a
|
|
|
}
|
|
|
|
|
|
function C(a) {
|
|
|
return a > M || -M > a
|
|
|
}
|
|
|
|
|
|
function G(m, u, p, r, l) {
|
|
|
var s = 1 - l;
|
|
|
return s * s * (s * m + 3 * l * u) + l * l * (l * r + 3 * s * p)
|
|
|
}
|
|
|
|
|
|
function j(m, u, p, r, l) {
|
|
|
var s = 1 - l;
|
|
|
return 3 * (((u - m) * s + 2 * (p - u) * l) * s + (r - p) * l * l)
|
|
|
}
|
|
|
|
|
|
function H(T, aa, af, y, ag, ai) {
|
|
|
var aj = y + 3 * (aa - af) - T,
|
|
|
ac = 3 * (af - 2 * aa + T),
|
|
|
Z = 3 * (aa - T),
|
|
|
ae = T - ag,
|
|
|
an = ac * ac - 3 * aj * Z,
|
|
|
al = ac * Z - 9 * aj * ae,
|
|
|
S = Z * Z - 3 * ac * ae,
|
|
|
ah = 0;
|
|
|
if (L(an) && L(al)) {
|
|
|
if (L(ac)) {
|
|
|
ai[0] = 0
|
|
|
} else {
|
|
|
var R = -Z / ac;
|
|
|
R >= 0 && 1 >= R && (ai[ah++] = R)
|
|
|
}
|
|
|
} else {
|
|
|
var ak = al * al - 4 * an * S;
|
|
|
if (L(ak)) {
|
|
|
var Q = al / an,
|
|
|
R = -ac / aj + Q,
|
|
|
Y = -Q / 2;
|
|
|
R >= 0 && 1 >= R && (ai[ah++] = R), Y >= 0 && 1 >= Y && (ai[ah++] = Y)
|
|
|
} else {
|
|
|
if (ak > 0) {
|
|
|
var ab = Math.sqrt(ak),
|
|
|
aq = an * ac + 1.5 * aj * (-al + ab),
|
|
|
t = an * ac + 1.5 * aj * (-al - ab);
|
|
|
aq = 0 > aq ? -Math.pow(-aq, A) : Math.pow(aq, A), t = 0 > t ? -Math.pow(-t, A) : Math.pow(t, A);
|
|
|
var R = (-ac - (aq + t)) / (3 * aj);
|
|
|
R >= 0 && 1 >= R && (ai[ah++] = R)
|
|
|
} else {
|
|
|
var ad = (2 * an * ac - 3 * aj * al) / (2 * Math.sqrt(an * an * an)),
|
|
|
ap = Math.acos(ad) / 3,
|
|
|
ar = Math.sqrt(an),
|
|
|
am = Math.cos(ap),
|
|
|
R = (-ac - 2 * ar * am) / (3 * aj),
|
|
|
Y = (-ac + ar * (am + P * Math.sin(ap))) / (3 * aj),
|
|
|
ao = (-ac + ar * (am - P * Math.sin(ap))) / (3 * aj);
|
|
|
R >= 0 && 1 >= R && (ai[ah++] = R), Y >= 0 && 1 >= Y && (ai[ah++] = Y), ao >= 0 && 1 >= ao && (ai[ah++] = ao)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return ah
|
|
|
}
|
|
|
|
|
|
function J(u, S, i, T, X) {
|
|
|
var Y = 6 * i - 12 * S + 6 * u,
|
|
|
Q = 9 * S + 3 * T - 3 * u - 9 * i,
|
|
|
y = 3 * S - 3 * u,
|
|
|
R = 0;
|
|
|
if (L(Q)) {
|
|
|
if (C(Y)) {
|
|
|
var aa = -y / Y;
|
|
|
aa >= 0 && 1 >= aa && (X[R++] = aa)
|
|
|
}
|
|
|
} else {
|
|
|
var Z = Y * Y - 4 * Q * y;
|
|
|
if (L(Z)) {
|
|
|
X[0] = -Y / (2 * Q)
|
|
|
} else {
|
|
|
if (Z > 0) {
|
|
|
var t = Math.sqrt(Z),
|
|
|
aa = (-Y + t) / (2 * Q),
|
|
|
W = (-Y - t) / (2 * Q);
|
|
|
aa >= 0 && 1 >= aa && (X[R++] = aa), W >= 0 && 1 >= W && (X[R++] = W)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return R
|
|
|
}
|
|
|
|
|
|
function K(u, Y, Q, T, p, U) {
|
|
|
var W = (Y - u) * p + u,
|
|
|
X = (Q - Y) * p + Y,
|
|
|
R = (T - Q) * p + Q,
|
|
|
y = (X - W) * p + W,
|
|
|
S = (R - X) * p + X,
|
|
|
Z = (S - y) * p + y;
|
|
|
U[0] = u, U[1] = W, U[2] = y, U[3] = Z, U[4] = Z, U[5] = S, U[6] = R, U[7] = T
|
|
|
}
|
|
|
|
|
|
function E(R, af, X, u, ab, ad, ae, Y, T, aa, ah) {
|
|
|
var ag, Q = 0.005,
|
|
|
ac = 1 / 0;
|
|
|
q[0] = T, q[1] = aa;
|
|
|
for (var ak = 0; 1 > ak; ak += 0.05) {
|
|
|
z[0] = G(R, X, ab, ae, ak), z[1] = G(af, u, ad, Y, ak);
|
|
|
var S = v.distSquare(q, z);
|
|
|
ac > S && (ag = ak, ac = S)
|
|
|
}
|
|
|
ac = 1 / 0;
|
|
|
for (var aj = 0; 32 > aj && !(M > Q); aj++) {
|
|
|
var n = ag - Q,
|
|
|
Z = ag + Q;
|
|
|
z[0] = G(R, X, ab, ae, n), z[1] = G(af, u, ad, Y, n);
|
|
|
var S = v.distSquare(z, q);
|
|
|
if (n >= 0 && ac > S) {
|
|
|
ag = n, ac = S
|
|
|
} else {
|
|
|
D[0] = G(R, X, ab, ae, Z), D[1] = G(af, u, ad, Y, Z);
|
|
|
var ai = v.distSquare(D, q);
|
|
|
1 >= Z && ac > ai ? (ag = Z, ac = ai) : Q *= 0.5
|
|
|
}
|
|
|
}
|
|
|
return ah && (ah[0] = G(R, X, ab, ae, ag), ah[1] = G(af, u, ad, Y, ag)), Math.sqrt(ac)
|
|
|
}
|
|
|
|
|
|
function B(m, r, o, p) {
|
|
|
var l = 1 - p;
|
|
|
return l * (l * m + 2 * p * r) + p * p * o
|
|
|
}
|
|
|
|
|
|
function F(a, o, l, m) {
|
|
|
return 2 * ((1 - m) * (o - a) + m * (l - o))
|
|
|
}
|
|
|
|
|
|
function O(u, S, i, T, X) {
|
|
|
var Y = u - 2 * S + i,
|
|
|
Q = 2 * (S - u),
|
|
|
y = u - T,
|
|
|
R = 0;
|
|
|
if (L(Y)) {
|
|
|
if (C(Q)) {
|
|
|
var aa = -y / Q;
|
|
|
aa >= 0 && 1 >= aa && (X[R++] = aa)
|
|
|
}
|
|
|
} else {
|
|
|
var Z = Q * Q - 4 * Y * y;
|
|
|
if (L(Z)) {
|
|
|
var aa = -Q / (2 * Y);
|
|
|
aa >= 0 && 1 >= aa && (X[R++] = aa)
|
|
|
} else {
|
|
|
if (Z > 0) {
|
|
|
var t = Math.sqrt(Z),
|
|
|
aa = (-Q + t) / (2 * Y),
|
|
|
W = (-Q - t) / (2 * Y);
|
|
|
aa >= 0 && 1 >= aa && (X[R++] = aa), W >= 0 && 1 >= W && (X[R++] = W)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return R
|
|
|
}
|
|
|
|
|
|
function N(a, o, l) {
|
|
|
var m = a + l - 2 * o;
|
|
|
return 0 === m ? 0.5 : (a - o) / m
|
|
|
}
|
|
|
|
|
|
function w(m, S, p, u, l) {
|
|
|
var y = (S - m) * u + m,
|
|
|
Q = (p - S) * u + S,
|
|
|
R = (Q - y) * u + y;
|
|
|
l[0] = m, l[1] = y, l[2] = R, l[3] = R, l[4] = Q, l[5] = p
|
|
|
}
|
|
|
|
|
|
function I(S, ae, W, Z, Q, aa, ac, ad, X) {
|
|
|
var Y, ag = 0.005,
|
|
|
af = 1 / 0;
|
|
|
q[0] = ac, q[1] = ad;
|
|
|
for (var R = 0; 1 > R; R += 0.05) {
|
|
|
z[0] = B(S, W, Q, R), z[1] = B(ae, Z, aa, R);
|
|
|
var ab = v.distSquare(q, z);
|
|
|
af > ab && (Y = R, af = ab)
|
|
|
}
|
|
|
af = 1 / 0;
|
|
|
for (var ai = 0; 32 > ai && !(M > ag); ai++) {
|
|
|
var T = Y - ag,
|
|
|
ah = Y + ag;
|
|
|
z[0] = B(S, W, Q, T), z[1] = B(ae, Z, aa, T);
|
|
|
var ab = v.distSquare(z, q);
|
|
|
if (T >= 0 && af > ab) {
|
|
|
Y = T, af = ab
|
|
|
} else {
|
|
|
D[0] = B(S, W, Q, ah), D[1] = B(ae, Z, aa, ah);
|
|
|
var u = v.distSquare(D, q);
|
|
|
1 >= ah && af > u ? (Y = ah, af = u) : ag *= 0.5
|
|
|
}
|
|
|
}
|
|
|
return X && (X[0] = B(S, W, Q, Y), X[1] = B(ae, Z, aa, Y)), Math.sqrt(af)
|
|
|
}
|
|
|
var v = x("./vector"),
|
|
|
M = 0.0001,
|
|
|
P = Math.sqrt(3),
|
|
|
A = 1 / 3,
|
|
|
q = v.create(),
|
|
|
z = v.create(),
|
|
|
D = v.create();
|
|
|
return {
|
|
|
cubicAt: G,
|
|
|
cubicDerivativeAt: j,
|
|
|
cubicRootAt: H,
|
|
|
cubicExtrema: J,
|
|
|
cubicSubdivide: K,
|
|
|
cubicProjectPoint: E,
|
|
|
quadraticAt: B,
|
|
|
quadraticDerivativeAt: F,
|
|
|
quadraticRootAt: O,
|
|
|
quadraticExtremum: N,
|
|
|
quadraticSubdivide: w,
|
|
|
quadraticProjectPoint: I
|
|
|
}
|
|
|
}), d("zrender/mixin/Transformable", ["require", "../tool/matrix", "../tool/vector"], function(m) {
|
|
|
function y(a) {
|
|
|
return a > -x && x > a
|
|
|
}
|
|
|
|
|
|
function p(a) {
|
|
|
return a > x || -x > a
|
|
|
}
|
|
|
var u = m("../tool/matrix"),
|
|
|
j = m("../tool/vector"),
|
|
|
v = [0, 0],
|
|
|
w = u.translate,
|
|
|
x = 5e-05,
|
|
|
q = function() {
|
|
|
this.position || (this.position = [0, 0]), "undefined" == typeof this.rotation && (this.rotation = [0, 0, 0]), this.scale || (this.scale = [1, 1, 0, 0]), this.needLocalTransform = !1, this.needTransform = !1
|
|
|
};
|
|
|
return q.prototype = {
|
|
|
constructor: q,
|
|
|
updateNeedTransform: function() {
|
|
|
this.needLocalTransform = p(this.rotation[0]) || p(this.position[0]) || p(this.position[1]) || p(this.scale[0] - 1) || p(this.scale[1] - 1)
|
|
|
},
|
|
|
updateTransform: function() {
|
|
|
this.updateNeedTransform();
|
|
|
var l = this.parent && this.parent.needTransform;
|
|
|
if (this.needTransform = this.needLocalTransform || l, this.needTransform) {
|
|
|
var o = this.transform || u.create();
|
|
|
if (u.identity(o), this.needLocalTransform) {
|
|
|
var i = this.scale;
|
|
|
if (p(i[0]) || p(i[1])) {
|
|
|
v[0] = -i[2] || 0, v[1] = -i[3] || 0;
|
|
|
var n = p(v[0]) || p(v[1]);
|
|
|
n && w(o, o, v), u.scale(o, o, i), n && (v[0] = -v[0], v[1] = -v[1], w(o, o, v))
|
|
|
}
|
|
|
if (this.rotation instanceof Array) {
|
|
|
if (0 !== this.rotation[0]) {
|
|
|
v[0] = -this.rotation[1] || 0, v[1] = -this.rotation[2] || 0;
|
|
|
var n = p(v[0]) || p(v[1]);
|
|
|
n && w(o, o, v), u.rotate(o, o, this.rotation[0]), n && (v[0] = -v[0], v[1] = -v[1], w(o, o, v))
|
|
|
}
|
|
|
} else {
|
|
|
0 !== this.rotation && u.rotate(o, o, this.rotation)
|
|
|
}(p(this.position[0]) || p(this.position[1])) && w(o, o, this.position)
|
|
|
}
|
|
|
l && (this.needLocalTransform ? u.mul(o, this.parent.transform, o) : u.copy(o, this.parent.transform)), this.transform = o, this.invTransform = this.invTransform || u.create(), u.invert(this.invTransform, o)
|
|
|
}
|
|
|
},
|
|
|
setTransform: function(a) {
|
|
|
if (this.needTransform) {
|
|
|
var i = this.transform;
|
|
|
a.transform(i[0], i[1], i[2], i[3], i[4], i[5])
|
|
|
}
|
|
|
},
|
|
|
lookAt: function() {
|
|
|
var a = j.create();
|
|
|
return function(e) {
|
|
|
this.transform || (this.transform = u.create());
|
|
|
var l = this.transform;
|
|
|
if (j.sub(a, e, this.position), !y(a[0]) || !y(a[1])) {
|
|
|
j.normalize(a, a);
|
|
|
var n = this.scale;
|
|
|
l[2] = a[0] * n[1], l[3] = a[1] * n[1], l[0] = a[1] * n[0], l[1] = -a[0] * n[0], l[4] = this.position[0], l[5] = this.position[1], this.decomposeTransform()
|
|
|
}
|
|
|
}
|
|
|
}(),
|
|
|
decomposeTransform: function() {
|
|
|
if (this.transform) {
|
|
|
var l = this.transform,
|
|
|
B = l[0] * l[0] + l[1] * l[1],
|
|
|
s = this.position,
|
|
|
i = this.scale,
|
|
|
z = this.rotation;
|
|
|
p(B - 1) && (B = Math.sqrt(B));
|
|
|
var A = l[2] * l[2] + l[3] * l[3];
|
|
|
p(A - 1) && (A = Math.sqrt(A)), s[0] = l[4], s[1] = l[5], i[0] = B, i[1] = A, i[2] = i[3] = 0, z[0] = Math.atan2(-l[1] / A, l[0] / B), z[1] = z[2] = 0
|
|
|
}
|
|
|
},
|
|
|
transformCoordToLocal: function(a, n) {
|
|
|
var l = [a, n];
|
|
|
return this.needTransform && this.invTransform && j.applyTransform(l, l, this.invTransform), l
|
|
|
}
|
|
|
}, q
|
|
|
}), d("zrender/Group", ["require", "./tool/guid", "./tool/util", "./mixin/Transformable", "./mixin/Eventful"], function(l) {
|
|
|
var r = l("./tool/guid"),
|
|
|
m = l("./tool/util"),
|
|
|
p = l("./mixin/Transformable"),
|
|
|
j = l("./mixin/Eventful"),
|
|
|
q = function(a) {
|
|
|
a = a || {}, this.id = a.id || r();
|
|
|
for (var n in a) {
|
|
|
this[n] = a[n]
|
|
|
}
|
|
|
this.type = "group", this.clipShape = null, this._children = [], this._storage = null, this.__dirty = !0, p.call(this), j.call(this)
|
|
|
};
|
|
|
return q.prototype.ignore = !1, q.prototype.children = function() {
|
|
|
return this._children.slice()
|
|
|
}, q.prototype.childAt = function(a) {
|
|
|
return this._children[a]
|
|
|
}, q.prototype.addChild = function(a) {
|
|
|
a != this && a.parent != this && (a.parent && a.parent.removeChild(a), this._children.push(a), a.parent = this, this._storage && this._storage !== a._storage && (this._storage.addToMap(a), a instanceof q && a.addChildrenToStorage(this._storage)))
|
|
|
}, q.prototype.removeChild = function(a) {
|
|
|
var i = m.indexOf(this._children, a);
|
|
|
i >= 0 && this._children.splice(i, 1), a.parent = null, this._storage && (this._storage.delFromMap(a.id), a instanceof q && a.delChildrenFromStorage(this._storage))
|
|
|
}, q.prototype.clearChildren = function() {
|
|
|
for (var a = 0; a < this._children.length; a++) {
|
|
|
var i = this._children[a];
|
|
|
this._storage && (this._storage.delFromMap(i.id), i instanceof q && i.delChildrenFromStorage(this._storage))
|
|
|
}
|
|
|
this._children.length = 0
|
|
|
}, q.prototype.eachChild = function(s, w) {
|
|
|
for (var u = !!w, v = 0; v < this._children.length; v++) {
|
|
|
var o = this._children[v];
|
|
|
u ? s.call(w, o) : s(o)
|
|
|
}
|
|
|
}, q.prototype.traverse = function(s, w) {
|
|
|
for (var u = !!w, v = 0; v < this._children.length; v++) {
|
|
|
var o = this._children[v];
|
|
|
u ? s.call(w, o) : s(o), "group" === o.type && o.traverse(s, w)
|
|
|
}
|
|
|
}, q.prototype.addChildrenToStorage = function(a) {
|
|
|
for (var o = 0; o < this._children.length; o++) {
|
|
|
var n = this._children[o];
|
|
|
a.addToMap(n), n instanceof q && n.addChildrenToStorage(a)
|
|
|
}
|
|
|
}, q.prototype.delChildrenFromStorage = function(a) {
|
|
|
for (var o = 0; o < this._children.length; o++) {
|
|
|
var n = this._children[o];
|
|
|
a.delFromMap(n.id), n instanceof q && n.delChildrenFromStorage(a)
|
|
|
}
|
|
|
}, q.prototype.modSelf = function() {
|
|
|
this.__dirty = !0
|
|
|
}, m.merge(q.prototype, p.prototype, !0), m.merge(q.prototype, j.prototype, !0), q
|
|
|
}), d("zrender/animation/Clip", ["require", "./easing"], function(a) {
|
|
|
function l(i) {
|
|
|
this._targetPool = i.target || {}, this._targetPool instanceof Array || (this._targetPool = [this._targetPool]), this._life = i.life || 1000, this._delay = i.delay || 0, this._startTime = (new Date).getTime() + this._delay, this._endTime = this._startTime + 1000 * this._life, this.loop = "undefined" == typeof i.loop ? !1 : i.loop, this.gap = i.gap || 0, this.easing = i.easing || "Linear", this.onframe = i.onframe, this.ondestroy = i.ondestroy, this.onrestart = i.onrestart
|
|
|
}
|
|
|
var j = a("./easing");
|
|
|
return l.prototype = {
|
|
|
step: function(m) {
|
|
|
var p = (m - this._startTime) / this._life;
|
|
|
if (!(0 > p)) {
|
|
|
p = Math.min(p, 1);
|
|
|
var o = "string" == typeof this.easing ? j[this.easing] : this.easing,
|
|
|
i = "function" == typeof o ? o(p) : p;
|
|
|
return this.fire("frame", i), 1 == p ? this.loop ? (this.restart(), "restart") : (this.__needsRemove = !0, "destroy") : null
|
|
|
}
|
|
|
},
|
|
|
restart: function() {
|
|
|
var i = (new Date).getTime(),
|
|
|
m = (i - this._startTime) % this._life;
|
|
|
this._startTime = (new Date).getTime() - m + this.gap, this.__needsRemove = !1
|
|
|
},
|
|
|
fire: function(m, q) {
|
|
|
for (var o = 0, p = this._targetPool.length; p > o; o++) {
|
|
|
this["on" + m] && this["on" + m](this._targetPool[o], q)
|
|
|
}
|
|
|
},
|
|
|
constructor: l
|
|
|
}, l
|
|
|
}), d("zrender/animation/easing", [], function() {
|
|
|
var a = {
|
|
|
Linear: function(i) {
|
|
|
return i
|
|
|
},
|
|
|
QuadraticIn: function(i) {
|
|
|
return i * i
|
|
|
},
|
|
|
QuadraticOut: function(i) {
|
|
|
return i * (2 - i)
|
|
|
},
|
|
|
QuadraticInOut: function(i) {
|
|
|
return (i *= 2) < 1 ? 0.5 * i * i : -0.5 * (--i * (i - 2) - 1)
|
|
|
},
|
|
|
CubicIn: function(i) {
|
|
|
return i * i * i
|
|
|
},
|
|
|
CubicOut: function(i) {
|
|
|
return --i * i * i + 1
|
|
|
},
|
|
|
CubicInOut: function(i) {
|
|
|
return (i *= 2) < 1 ? 0.5 * i * i * i : 0.5 * ((i -= 2) * i * i + 2)
|
|
|
},
|
|
|
QuarticIn: function(i) {
|
|
|
return i * i * i * i
|
|
|
},
|
|
|
QuarticOut: function(i) {
|
|
|
return 1 - --i * i * i * i
|
|
|
},
|
|
|
QuarticInOut: function(i) {
|
|
|
return (i *= 2) < 1 ? 0.5 * i * i * i * i : -0.5 * ((i -= 2) * i * i * i - 2)
|
|
|
},
|
|
|
QuinticIn: function(i) {
|
|
|
return i * i * i * i * i
|
|
|
},
|
|
|
QuinticOut: function(i) {
|
|
|
return --i * i * i * i * i + 1
|
|
|
},
|
|
|
QuinticInOut: function(i) {
|
|
|
return (i *= 2) < 1 ? 0.5 * i * i * i * i * i : 0.5 * ((i -= 2) * i * i * i * i + 2)
|
|
|
},
|
|
|
SinusoidalIn: function(i) {
|
|
|
return 1 - Math.cos(i * Math.PI / 2)
|
|
|
},
|
|
|
SinusoidalOut: function(i) {
|
|
|
return Math.sin(i * Math.PI / 2)
|
|
|
},
|
|
|
SinusoidalInOut: function(i) {
|
|
|
return 0.5 * (1 - Math.cos(Math.PI * i))
|
|
|
},
|
|
|
ExponentialIn: function(i) {
|
|
|
return 0 === i ? 0 : Math.pow(1024, i - 1)
|
|
|
},
|
|
|
ExponentialOut: function(i) {
|
|
|
return 1 === i ? 1 : 1 - Math.pow(2, -10 * i)
|
|
|
},
|
|
|
ExponentialInOut: function(i) {
|
|
|
return 0 === i ? 0 : 1 === i ? 1 : (i *= 2) < 1 ? 0.5 * Math.pow(1024, i - 1) : 0.5 * (-Math.pow(2, -10 * (i - 1)) + 2)
|
|
|
},
|
|
|
CircularIn: function(i) {
|
|
|
return 1 - Math.sqrt(1 - i * i)
|
|
|
},
|
|
|
CircularOut: function(i) {
|
|
|
return Math.sqrt(1 - --i * i)
|
|
|
},
|
|
|
CircularInOut: function(i) {
|
|
|
return (i *= 2) < 1 ? -0.5 * (Math.sqrt(1 - i * i) - 1) : 0.5 * (Math.sqrt(1 - (i -= 2) * i) + 1)
|
|
|
},
|
|
|
ElasticIn: function(j) {
|
|
|
var o, l = 0.1,
|
|
|
m = 0.4;
|
|
|
return 0 === j ? 0 : 1 === j ? 1 : (!l || 1 > l ? (l = 1, o = m / 4) : o = m * Math.asin(1 / l) / (2 * Math.PI), -(l * Math.pow(2, 10 * (j -= 1)) * Math.sin(2 * (j - o) * Math.PI / m)))
|
|
|
},
|
|
|
ElasticOut: function(j) {
|
|
|
var o, l = 0.1,
|
|
|
m = 0.4;
|
|
|
return 0 === j ? 0 : 1 === j ? 1 : (!l || 1 > l ? (l = 1, o = m / 4) : o = m * Math.asin(1 / l) / (2 * Math.PI), l * Math.pow(2, -10 * j) * Math.sin(2 * (j - o) * Math.PI / m) + 1)
|
|
|
},
|
|
|
ElasticInOut: function(j) {
|
|
|
var o, l = 0.1,
|
|
|
m = 0.4;
|
|
|
return 0 === j ? 0 : 1 === j ? 1 : (!l || 1 > l ? (l = 1, o = m / 4) : o = m * Math.asin(1 / l) / (2 * Math.PI), (j *= 2) < 1 ? -0.5 * l * Math.pow(2, 10 * (j -= 1)) * Math.sin(2 * (j - o) * Math.PI / m) : l * Math.pow(2, -10 * (j -= 1)) * Math.sin(2 * (j - o) * Math.PI / m) * 0.5 + 1)
|
|
|
},
|
|
|
BackIn: function(i) {
|
|
|
var j = 1.70158;
|
|
|
return i * i * ((j + 1) * i - j)
|
|
|
},
|
|
|
BackOut: function(i) {
|
|
|
var j = 1.70158;
|
|
|
return --i * i * ((j + 1) * i + j) + 1
|
|
|
},
|
|
|
BackInOut: function(i) {
|
|
|
var j = 2.5949095;
|
|
|
return (i *= 2) < 1 ? 0.5 * i * i * ((j + 1) * i - j) : 0.5 * ((i -= 2) * i * ((j + 1) * i + j) + 2)
|
|
|
},
|
|
|
BounceIn: function(e) {
|
|
|
return 1 - a.BounceOut(1 - e)
|
|
|
},
|
|
|
BounceOut: function(i) {
|
|
|
return 1 / 2.75 > i ? 7.5625 * i * i : 2 / 2.75 > i ? 7.5625 * (i -= 1.5 / 2.75) * i + 0.75 : 2.5 / 2.75 > i ? 7.5625 * (i -= 2.25 / 2.75) * i + 0.9375 : 7.5625 * (i -= 2.625 / 2.75) * i + 0.984375
|
|
|
},
|
|
|
BounceInOut: function(e) {
|
|
|
return 0.5 > e ? 0.5 * a.BounceIn(2 * e) : 0.5 * a.BounceOut(2 * e - 1) + 0.5
|
|
|
}
|
|
|
};
|
|
|
return a
|
|
|
}), d("echarts/chart/base", ["require", "zrender/shape/Image", "../util/shape/Icon", "../util/shape/MarkLine", "../util/shape/Symbol", "zrender/shape/Polyline", "zrender/shape/ShapeBundle", "../config", "../util/ecData", "../util/ecAnimation", "../util/ecEffect", "../util/accMath", "../component/base", "../layout/EdgeBundling", "zrender/tool/util", "zrender/tool/area"], function(w) {
|
|
|
function H(a) {
|
|
|
return null != a.x && null != a.y
|
|
|
}
|
|
|
|
|
|
function z(m, u, p, r, l) {
|
|
|
E.call(this, m, u, p, r, l);
|
|
|
var s = this;
|
|
|
this.selectedMap = {}, this.lastShapeList = [], this.shapeHandler = {
|
|
|
onclick: function() {
|
|
|
s.isClick = !0
|
|
|
},
|
|
|
ondragover: function(y) {
|
|
|
var P = y.target;
|
|
|
P.highlightStyle = P.highlightStyle || {};
|
|
|
var M = P.highlightStyle,
|
|
|
N = M.brushTyep,
|
|
|
o = M.strokeColor,
|
|
|
O = M.lineWidth;
|
|
|
M.brushType = "stroke", M.strokeColor = s.ecTheme.calculableColor || x.calculableColor, M.lineWidth = "icon" === P.type ? 30 : 10, s.zr.addHoverShape(P), setTimeout(function() {
|
|
|
M && (M.brushType = N, M.strokeColor = o, M.lineWidth = O)
|
|
|
}, 20)
|
|
|
},
|
|
|
ondrop: function(a) {
|
|
|
null != B.get(a.dragged, "data") && (s.isDrop = !0)
|
|
|
},
|
|
|
ondragend: function() {
|
|
|
s.isDragend = !0
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
var C = w("zrender/shape/Image"),
|
|
|
j = w("../util/shape/Icon"),
|
|
|
D = w("../util/shape/MarkLine"),
|
|
|
F = w("../util/shape/Symbol"),
|
|
|
G = w("zrender/shape/Polyline"),
|
|
|
A = w("zrender/shape/ShapeBundle"),
|
|
|
x = w("../config"),
|
|
|
B = w("../util/ecData"),
|
|
|
K = w("../util/ecAnimation"),
|
|
|
J = w("../util/ecEffect"),
|
|
|
v = w("../util/accMath"),
|
|
|
E = w("../component/base"),
|
|
|
q = w("../layout/EdgeBundling"),
|
|
|
I = w("zrender/tool/util"),
|
|
|
L = w("zrender/tool/area");
|
|
|
return z.prototype = {
|
|
|
setCalculable: function(a) {
|
|
|
return a.dragEnableTime = this.ecTheme.DRAG_ENABLE_TIME || x.DRAG_ENABLE_TIME, a.ondragover = this.shapeHandler.ondragover, a.ondragend = this.shapeHandler.ondragend, a.ondrop = this.shapeHandler.ondrop, a
|
|
|
},
|
|
|
ondrop: function(M, W) {
|
|
|
if (this.isDrop && M.target && !W.dragIn) {
|
|
|
var N, P = M.target,
|
|
|
m = M.dragged,
|
|
|
Q = B.get(P, "seriesIndex"),
|
|
|
S = B.get(P, "dataIndex"),
|
|
|
T = this.series,
|
|
|
O = this.component.legend;
|
|
|
if (-1 === S) {
|
|
|
if (B.get(m, "seriesIndex") == Q) {
|
|
|
return W.dragOut = W.dragIn = W.needRefresh = !0, void(this.isDrop = !1)
|
|
|
}
|
|
|
N = {
|
|
|
value: B.get(m, "value"),
|
|
|
name: B.get(m, "name")
|
|
|
}, this.type === x.CHART_TYPE_PIE && N.value < 0 && (N.value = 0);
|
|
|
for (var Z = !1, Y = T[Q].data, R = 0, y = Y.length; y > R; R++) {
|
|
|
Y[R].name === N.name && "-" === Y[R].value && (T[Q].data[R].value = N.value, Z = !0)
|
|
|
}!Z && T[Q].data.push(N), O && O.add(N.name, m.style.color || m.style.strokeColor)
|
|
|
} else {
|
|
|
N = T[Q].data[S] || "-", null != N.value ? (T[Q].data[S].value = "-" != N.value ? v.accAdd(T[Q].data[S].value, B.get(m, "value")) : B.get(m, "value"), (this.type === x.CHART_TYPE_FUNNEL || this.type === x.CHART_TYPE_PIE) && (O && 1 === O.getRelatedAmount(N.name) && this.component.legend.del(N.name), N.name += this.option.nameConnector + B.get(m, "name"), O && O.add(N.name, m.style.color || m.style.strokeColor))) : T[Q].data[S] = "-" != N ? v.accAdd(T[Q].data[S], B.get(m, "value")) : B.get(m, "value")
|
|
|
}
|
|
|
W.dragIn = W.dragIn || !0, this.isDrop = !1;
|
|
|
var X = this;
|
|
|
setTimeout(function() {
|
|
|
X.zr.trigger("mousemove", M.event)
|
|
|
}, 300)
|
|
|
}
|
|
|
},
|
|
|
ondragend: function(m, O) {
|
|
|
if (this.isDragend && m.target && !O.dragOut) {
|
|
|
var p = m.target,
|
|
|
u = B.get(p, "seriesIndex"),
|
|
|
l = B.get(p, "dataIndex"),
|
|
|
y = this.series;
|
|
|
if (null != y[u].data[l].value) {
|
|
|
y[u].data[l].value = "-";
|
|
|
var M = y[u].data[l].name,
|
|
|
N = this.component.legend;
|
|
|
N && 0 === N.getRelatedAmount(M) && N.del(M)
|
|
|
} else {
|
|
|
y[u].data[l] = "-"
|
|
|
}
|
|
|
O.dragOut = !0, O.needRefresh = !0, this.isDragend = !1
|
|
|
}
|
|
|
},
|
|
|
onlegendSelected: function(a, o) {
|
|
|
var l = a.selected;
|
|
|
for (var m in this.selectedMap) {
|
|
|
this.selectedMap[m] != l[m] && (o.needRefresh = !0), this.selectedMap[m] = l[m]
|
|
|
}
|
|
|
},
|
|
|
_buildPosition: function() {
|
|
|
this._symbol = this.option.symbolList, this._sIndex2ShapeMap = {}, this._sIndex2ColorMap = {}, this.selectedMap = {}, this.xMarkMap = {};
|
|
|
for (var p, Q, u, M, m = this.series, N = {
|
|
|
top: [],
|
|
|
bottom: [],
|
|
|
left: [],
|
|
|
right: [],
|
|
|
other: []
|
|
|
}, O = 0, P = m.length; P > O; O++) {
|
|
|
m[O].type === this.type && (m[O] = this.reformOption(m[O]), this.legendHoverLink = m[O].legendHoverLink || this.legendHoverLink, p = m[O].xAxisIndex, Q = m[O].yAxisIndex, u = this.component.xAxis.getAxis(p), M = this.component.yAxis.getAxis(Q), u.type === x.COMPONENT_TYPE_AXIS_CATEGORY ? N[u.getPosition()].push(O) : M.type === x.COMPONENT_TYPE_AXIS_CATEGORY ? N[M.getPosition()].push(O) : N.other.push(O))
|
|
|
}
|
|
|
for (var y in N) {
|
|
|
N[y].length > 0 && this._buildSinglePosition(y, N[y])
|
|
|
}
|
|
|
this.addShapeList()
|
|
|
},
|
|
|
_buildSinglePosition: function(m, M) {
|
|
|
var p = this._mapData(M),
|
|
|
s = p.locationMap,
|
|
|
l = p.maxDataLength;
|
|
|
if (0 !== l && 0 !== s.length) {
|
|
|
switch (m) {
|
|
|
case "bottom":
|
|
|
case "top":
|
|
|
this._buildHorizontal(M, l, s, this.xMarkMap);
|
|
|
break;
|
|
|
case "left":
|
|
|
case "right":
|
|
|
this._buildVertical(M, l, s, this.xMarkMap);
|
|
|
break;
|
|
|
case "other":
|
|
|
this._buildOther(M, l, s, this.xMarkMap)
|
|
|
}
|
|
|
for (var u = 0, y = M.length; y > u; u++) {
|
|
|
this.buildMark(M[u])
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
_mapData: function(O) {
|
|
|
for (var Z, P, S, y, T = this.series, X = 0, Y = {}, Q = "__kener__stack__", R = this.component.legend, ac = [], ab = 0, N = 0, W = O.length; W > N; N++) {
|
|
|
if (Z = T[O[N]], S = Z.name, this._sIndex2ShapeMap[O[N]] = this._sIndex2ShapeMap[O[N]] || this.query(Z, "symbol") || this._symbol[N % this._symbol.length], R) {
|
|
|
if (this.selectedMap[S] = R.isSelected(S), this._sIndex2ColorMap[O[N]] = R.getColor(S), y = R.getItemShape(S)) {
|
|
|
var M = y.style;
|
|
|
if (this.type == x.CHART_TYPE_LINE) {
|
|
|
M.iconType = "legendLineIcon", M.symbol = this._sIndex2ShapeMap[O[N]]
|
|
|
} else {
|
|
|
if (Z.itemStyle.normal.barBorderWidth > 0) {
|
|
|
var aa = y.highlightStyle;
|
|
|
M.brushType = "both", M.x += 1, M.y += 1, M.width -= 2, M.height -= 2, M.strokeColor = aa.strokeColor = Z.itemStyle.normal.barBorderColor, aa.lineWidth = 3
|
|
|
}
|
|
|
}
|
|
|
R.setItemShape(S, y)
|
|
|
}
|
|
|
} else {
|
|
|
this.selectedMap[S] = !0, this._sIndex2ColorMap[O[N]] = this.zr.getColor(O[N])
|
|
|
}
|
|
|
this.selectedMap[S] && (P = Z.stack || Q + O[N], null == Y[P] ? (Y[P] = X, ac[X] = [O[N]], X++) : ac[Y[P]].push(O[N])), ab = Math.max(ab, Z.data.length)
|
|
|
}
|
|
|
return {
|
|
|
locationMap: ac,
|
|
|
maxDataLength: ab
|
|
|
}
|
|
|
},
|
|
|
_calculMarkMapXY: function(y, W, N) {
|
|
|
for (var Q = this.series, p = 0, R = W.length; R > p; p++) {
|
|
|
for (var S = 0, T = W[p].length; T > S; S++) {
|
|
|
var O = W[p][S],
|
|
|
M = "xy" == N ? 0 : "",
|
|
|
P = this.component.grid,
|
|
|
Y = y[O];
|
|
|
if ("-1" != N.indexOf("x")) {
|
|
|
Y["counter" + M] > 0 && (Y["average" + M] = Y["sum" + M] / Y["counter" + M]);
|
|
|
var X = this.component.xAxis.getAxis(Q[O].xAxisIndex || 0).getCoord(Y["average" + M]);
|
|
|
Y["averageLine" + M] = [
|
|
|
[X, P.getYend()],
|
|
|
[X, P.getY()]
|
|
|
], Y["minLine" + M] = [
|
|
|
[Y["minX" + M], P.getYend()],
|
|
|
[Y["minX" + M], P.getY()]
|
|
|
], Y["maxLine" + M] = [
|
|
|
[Y["maxX" + M], P.getYend()],
|
|
|
[Y["maxX" + M], P.getY()]
|
|
|
], Y.isHorizontal = !1
|
|
|
}
|
|
|
if (M = "xy" == N ? 1 : "", "-1" != N.indexOf("y")) {
|
|
|
Y["counter" + M] > 0 && (Y["average" + M] = Y["sum" + M] / Y["counter" + M]);
|
|
|
var u = this.component.yAxis.getAxis(Q[O].yAxisIndex || 0).getCoord(Y["average" + M]);
|
|
|
Y["averageLine" + M] = [
|
|
|
[P.getX(), u],
|
|
|
[P.getXend(), u]
|
|
|
], Y["minLine" + M] = [
|
|
|
[P.getX(), Y["minY" + M]],
|
|
|
[P.getXend(), Y["minY" + M]]
|
|
|
], Y["maxLine" + M] = [
|
|
|
[P.getX(), Y["maxY" + M]],
|
|
|
[P.getXend(), Y["maxY" + M]]
|
|
|
], Y.isHorizontal = !0
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
addLabel: function(u, T, M, P, p) {
|
|
|
var Q = [M, T],
|
|
|
R = this.deepMerge(Q, "itemStyle.normal.label"),
|
|
|
S = this.deepMerge(Q, "itemStyle.emphasis.label"),
|
|
|
N = R.textStyle || {},
|
|
|
y = S.textStyle || {};
|
|
|
if (R.show) {
|
|
|
var O = u.style;
|
|
|
O.text = this._getLabelText(T, M, P, "normal"), O.textPosition = null == R.position ? "horizontal" === p ? "right" : "top" : R.position, O.textColor = N.color, O.textFont = this.getFont(N), O.textAlign = N.align, O.textBaseline = N.baseline
|
|
|
}
|
|
|
if (S.show) {
|
|
|
var U = u.highlightStyle;
|
|
|
U.text = this._getLabelText(T, M, P, "emphasis"), U.textPosition = R.show ? u.style.textPosition : null == S.position ? "horizontal" === p ? "right" : "top" : S.position, U.textColor = y.color, U.textFont = this.getFont(y), U.textAlign = y.align, U.textBaseline = y.baseline
|
|
|
}
|
|
|
return u
|
|
|
},
|
|
|
_getLabelText: function(m, u, p, r) {
|
|
|
var l = this.deepQuery([u, m], "itemStyle." + r + ".label.formatter");
|
|
|
l || "emphasis" !== r || (l = this.deepQuery([u, m], "itemStyle.normal.label.formatter"));
|
|
|
var s = this.getDataFromOption(u, "-");
|
|
|
return l ? "function" == typeof l ? l.call(this.myChart, {
|
|
|
seriesName: m.name,
|
|
|
series: m,
|
|
|
name: p,
|
|
|
value: s,
|
|
|
data: u,
|
|
|
status: r
|
|
|
}) : "string" == typeof l ? l = l.replace("{a}", "{a0}").replace("{b}", "{b0}").replace("{c}", "{c0}").replace("{a0}", m.name).replace("{b0}", p).replace("{c0}", this.numAddCommas(s)) : void 0 : s instanceof Array ? null != s[2] ? this.numAddCommas(s[2]) : s[0] + " , " + s[1] : this.numAddCommas(s)
|
|
|
},
|
|
|
buildMark: function(a) {
|
|
|
var i = this.series[a];
|
|
|
this.selectedMap[i.name] && (i.markLine && this._buildMarkLine(a), i.markPoint && this._buildMarkPoint(a))
|
|
|
},
|
|
|
_buildMarkPoint: function(u) {
|
|
|
for (var S, y, O = (this.markAttachStyle || {})[u], p = this.series[u], P = I.clone(p.markPoint), Q = 0, R = P.data.length; R > Q; Q++) {
|
|
|
S = P.data[Q], y = this.getMarkCoord(u, S), S.x = null != S.x ? S.x : y[0], S.y = null != S.y ? S.y : y[1], !S.type || "max" !== S.type && "min" !== S.type || (S.value = y[3], S.name = S.name || S.type, S.symbolSize = S.symbolSize || L.getTextWidth(y[3], this.getFont()) / 2 + 5)
|
|
|
}
|
|
|
for (var M = this._markPoint(u, P), Q = 0, R = M.length; R > Q; Q++) {
|
|
|
var N = M[Q];
|
|
|
N.zlevel = p.zlevel, N.z = p.z + 1;
|
|
|
for (var T in O) {
|
|
|
N[T] = I.clone(O[T])
|
|
|
}
|
|
|
this.shapeList.push(N)
|
|
|
}
|
|
|
if (this.type === x.CHART_TYPE_FORCE || this.type === x.CHART_TYPE_CHORD) {
|
|
|
for (var Q = 0, R = M.length; R > Q; Q++) {
|
|
|
this.zr.addShape(M[Q])
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
_buildMarkLine: function(N) {
|
|
|
for (var X, O = (this.markAttachStyle || {})[N], Q = this.series[N], l = I.clone(Q.markLine), R = 0, T = l.data.length; T > R; R++) {
|
|
|
var W = l.data[R];
|
|
|
!W.type || "max" !== W.type && "min" !== W.type && "average" !== W.type ? X = [this.getMarkCoord(N, W[0]), this.getMarkCoord(N, W[1])] : (X = this.getMarkCoord(N, W), l.data[R] = [I.clone(W), {}], l.data[R][0].name = W.name || W.type, l.data[R][0].value = "average" !== W.type ? X[3] : +X[3].toFixed(null != l.precision ? l.precision : this.deepQuery([this.ecTheme, x], "markLine.precision")), X = X[2], W = [{}, {}]), null != X && null != X[0] && null != X[1] && (l.data[R][0].x = null != W[0].x ? W[0].x : X[0][0], l.data[R][0].y = null != W[0].y ? W[0].y : X[0][1], l.data[R][1].x = null != W[1].x ? W[1].x : X[1][0], l.data[R][1].y = null != W[1].y ? W[1].y : X[1][1])
|
|
|
}
|
|
|
var P = this._markLine(N, l),
|
|
|
Z = l.large;
|
|
|
if (Z) {
|
|
|
var Y = new A({
|
|
|
style: {
|
|
|
shapeList: P
|
|
|
}
|
|
|
}),
|
|
|
M = P[0];
|
|
|
if (M) {
|
|
|
I.merge(Y.style, M.style), I.merge(Y.highlightStyle = {}, M.highlightStyle), Y.style.brushType = "stroke", Y.zlevel = Q.zlevel, Y.z = Q.z + 1, Y.hoverable = !1;
|
|
|
for (var S in O) {
|
|
|
Y[S] = I.clone(O[S])
|
|
|
}
|
|
|
}
|
|
|
this.shapeList.push(Y), this.zr.addShape(Y), Y._mark = "largeLine";
|
|
|
var u = l.effect;
|
|
|
u.show && (Y.effect = u)
|
|
|
} else {
|
|
|
for (var R = 0, T = P.length; T > R; R++) {
|
|
|
var aa = P[R];
|
|
|
aa.zlevel = Q.zlevel, aa.z = Q.z + 1;
|
|
|
for (var S in O) {
|
|
|
aa[S] = I.clone(O[S])
|
|
|
}
|
|
|
this.shapeList.push(aa)
|
|
|
}
|
|
|
if (this.type === x.CHART_TYPE_FORCE || this.type === x.CHART_TYPE_CHORD) {
|
|
|
for (var R = 0, T = P.length; T > R; R++) {
|
|
|
this.zr.addShape(P[R])
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
_markPoint: function(O, ab) {
|
|
|
var R = this.series[O],
|
|
|
W = this.component;
|
|
|
I.merge(I.merge(ab, I.clone(this.ecTheme.markPoint || {})), I.clone(x.markPoint)), ab.name = R.name;
|
|
|
var m, X, Z, aa, T, ad, ac, N = [],
|
|
|
Y = ab.data,
|
|
|
M = W.dataRange,
|
|
|
ae = W.legend,
|
|
|
Q = this.zr.getWidth(),
|
|
|
u = this.zr.getHeight();
|
|
|
if (ab.large) {
|
|
|
m = this.getLargeMarkPointShape(O, ab), m._mark = "largePoint", m && N.push(m)
|
|
|
} else {
|
|
|
for (var P = 0, S = Y.length; S > P; P++) {
|
|
|
null != Y[P].x && null != Y[P].y && (Z = null != Y[P].value ? Y[P].value : "", ae && (X = ae.getColor(R.name)), M && (X = isNaN(Z) ? X : M.getColor(Z), aa = [Y[P], ab], T = this.deepQuery(aa, "itemStyle.normal.color") || X, ad = this.deepQuery(aa, "itemStyle.emphasis.color") || T, null == T && null == ad) || (X = null == X ? this.zr.getColor(O) : X, Y[P].tooltip = Y[P].tooltip || ab.tooltip || {
|
|
|
trigger: "item"
|
|
|
}, Y[P].name = null != Y[P].name ? Y[P].name : "", Y[P].value = Z, m = this.getSymbolShape(ab, O, Y[P], P, Y[P].name, this.parsePercent(Y[P].x, Q), this.parsePercent(Y[P].y, u), "pin", X, "rgba(0,0,0,0)", "horizontal"), m._mark = "point", ac = this.deepMerge([Y[P], ab], "effect"), ac.show && (m.effect = ac), R.type === x.CHART_TYPE_MAP && (m._geo = this.getMarkGeo(Y[P])), B.pack(m, R, O, Y[P], P, Y[P].name, Z), N.push(m)))
|
|
|
}
|
|
|
}
|
|
|
return N
|
|
|
},
|
|
|
_markLine: function() {
|
|
|
function a(i, l) {
|
|
|
i[l] = i[l] instanceof Array ? i[l].length > 1 ? i[l] : [i[l][0], i[l][0]] : [i[l], i[l]]
|
|
|
}
|
|
|
return function(P, aa) {
|
|
|
var m = this.series[P],
|
|
|
ab = this.component,
|
|
|
ad = ab.dataRange,
|
|
|
ae = ab.legend;
|
|
|
I.merge(I.merge(aa, I.clone(this.ecTheme.markLine || {})), I.clone(x.markLine));
|
|
|
var Y = ae ? ae.getColor(m.name) : this.zr.getColor(P);
|
|
|
a(aa, "symbol"), a(aa, "symbolSize"), a(aa, "symbolRotate");
|
|
|
for (var ah = aa.data, af = [], M = this.zr.getWidth(), ac = this.zr.getHeight(), am = 0; am < ah.length; am++) {
|
|
|
var O = ah[am];
|
|
|
if (H(O[0]) && H(O[1])) {
|
|
|
var t = this.deepMerge(O),
|
|
|
N = [t, aa],
|
|
|
S = Y,
|
|
|
ak = null != t.value ? t.value : "";
|
|
|
if (ad) {
|
|
|
S = isNaN(ak) ? S : ad.getColor(ak);
|
|
|
var e = this.deepQuery(N, "itemStyle.normal.color") || S,
|
|
|
Z = this.deepQuery(N, "itemStyle.emphasis.color") || e;
|
|
|
if (null == e && null == Z) {
|
|
|
continue
|
|
|
}
|
|
|
}
|
|
|
O[0].tooltip = t.tooltip || aa.tooltip || {
|
|
|
trigger: "item"
|
|
|
}, O[0].name = O[0].name || "", O[1].name = O[1].name || "", O[0].value = ak, af.push({
|
|
|
points: [
|
|
|
[this.parsePercent(O[0].x, M), this.parsePercent(O[0].y, ac)],
|
|
|
[this.parsePercent(O[1].x, M), this.parsePercent(O[1].y, ac)]
|
|
|
],
|
|
|
rawData: O,
|
|
|
color: S
|
|
|
})
|
|
|
}
|
|
|
}
|
|
|
var aj = this.query(aa, "bundling.enable");
|
|
|
if (aj) {
|
|
|
var al = new q;
|
|
|
al.maxTurningAngle = this.query(aa, "bundling.maxTurningAngle") / 180 * Math.PI, af = al.run(af)
|
|
|
}
|
|
|
aa.name = m.name;
|
|
|
for (var ag = [], am = 0, ai = af.length; ai > am; am++) {
|
|
|
var T = af[am],
|
|
|
Q = T.rawEdge || T,
|
|
|
O = Q.rawData,
|
|
|
ak = null != O.value ? O.value : "",
|
|
|
R = this.getMarkLineShape(aa, P, O, am, T.points, aj, Q.color);
|
|
|
R._mark = "line";
|
|
|
var u = this.deepMerge([O[0], O[1], aa], "effect");
|
|
|
u.show && (R.effect = u, R.effect.large = aa.large), m.type === x.CHART_TYPE_MAP && (R._geo = [this.getMarkGeo(O[0]), this.getMarkGeo(O[1])]), B.pack(R, m, P, O[0], am, O[0].name + ("" !== O[1].name ? " > " + O[1].name : ""), ak), ag.push(R)
|
|
|
}
|
|
|
return ag
|
|
|
}
|
|
|
}(),
|
|
|
getMarkCoord: function() {
|
|
|
return [0, 0]
|
|
|
},
|
|
|
getSymbolShape: function(N, ad, R, Z, ab, ac, T, Q, ag, af, M) {
|
|
|
var aa = [R, N],
|
|
|
n = this.getDataFromOption(R, "-");
|
|
|
Q = this.deepQuery(aa, "symbol") || Q;
|
|
|
var ae = this.deepQuery(aa, "symbolSize");
|
|
|
ae = "function" == typeof ae ? ae(n) : ae, "number" == typeof ae && (ae = [ae, ae]);
|
|
|
var ak = this.deepQuery(aa, "symbolRotate"),
|
|
|
P = this.deepMerge(aa, "itemStyle.normal"),
|
|
|
m = this.deepMerge(aa, "itemStyle.emphasis"),
|
|
|
O = null != P.borderWidth ? P.borderWidth : P.lineStyle && P.lineStyle.width;
|
|
|
null == O && (O = Q.match("empty") ? 2 : 0);
|
|
|
var S = null != m.borderWidth ? m.borderWidth : m.lineStyle && m.lineStyle.width;
|
|
|
null == S && (S = O + 2);
|
|
|
var ai = this.getItemStyleColor(P.color, ad, Z, R),
|
|
|
a = this.getItemStyleColor(m.color, ad, Z, R),
|
|
|
Y = ae[0],
|
|
|
ah = ae[1],
|
|
|
aj = new j({
|
|
|
style: {
|
|
|
iconType: Q.replace("empty", "").toLowerCase(),
|
|
|
x: ac - Y,
|
|
|
y: T - ah,
|
|
|
width: 2 * Y,
|
|
|
height: 2 * ah,
|
|
|
brushType: "both",
|
|
|
color: Q.match("empty") ? af : ai || ag,
|
|
|
strokeColor: P.borderColor || ai || ag,
|
|
|
lineWidth: O
|
|
|
},
|
|
|
highlightStyle: {
|
|
|
color: Q.match("empty") ? af : a || ai || ag,
|
|
|
strokeColor: m.borderColor || P.borderColor || a || ai || ag,
|
|
|
lineWidth: S
|
|
|
},
|
|
|
clickable: this.deepQuery(aa, "clickable")
|
|
|
});
|
|
|
return Q.match("image") && (aj.style.image = Q.replace(new RegExp("^image:\\/\\/"), ""), aj = new C({
|
|
|
style: aj.style,
|
|
|
highlightStyle: aj.highlightStyle,
|
|
|
clickable: this.deepQuery(aa, "clickable")
|
|
|
})), null != ak && (aj.rotation = [ak * Math.PI / 180, ac, T]), Q.match("star") && (aj.style.iconType = "star", aj.style.n = Q.replace("empty", "").replace("star", "") - 0 || 5), "none" === Q && (aj.invisible = !0, aj.hoverable = !1), aj = this.addLabel(aj, N, R, ab, M), Q.match("empty") && (null == aj.style.textColor && (aj.style.textColor = aj.style.strokeColor), null == aj.highlightStyle.textColor && (aj.highlightStyle.textColor = aj.highlightStyle.strokeColor)), B.pack(aj, N, ad, R, Z, ab), aj._x = ac, aj._y = T, aj._dataIndex = Z, aj._seriesIndex = ad, aj
|
|
|
},
|
|
|
getMarkLineShape: function(P, ad, T, aa, s, ac, X) {
|
|
|
var S = null != T[0].value ? T[0].value : "-",
|
|
|
Z = null != T[1].value ? T[1].value : "-",
|
|
|
ag = [T[0].symbol || P.symbol[0], T[1].symbol || P.symbol[1]],
|
|
|
af = [T[0].symbolSize || P.symbolSize[0], T[1].symbolSize || P.symbolSize[1]];
|
|
|
af[0] = "function" == typeof af[0] ? af[0](S) : af[0], af[1] = "function" == typeof af[1] ? af[1](Z) : af[1];
|
|
|
var O = [this.query(T[0], "symbolRotate") || P.symbolRotate[0], this.query(T[1], "symbolRotate") || P.symbolRotate[1]],
|
|
|
ab = [T[0], T[1], P],
|
|
|
N = this.deepMerge(ab, "itemStyle.normal");
|
|
|
N.color = this.getItemStyleColor(N.color, ad, aa, T);
|
|
|
var ae = this.deepMerge(ab, "itemStyle.emphasis");
|
|
|
ae.color = this.getItemStyleColor(ae.color, ad, aa, T);
|
|
|
var ai = N.lineStyle,
|
|
|
R = ae.lineStyle,
|
|
|
M = ai.width;
|
|
|
null == M && (M = N.borderWidth);
|
|
|
var Q = R.width;
|
|
|
null == Q && (Q = null != ae.borderWidth ? ae.borderWidth : M + 2);
|
|
|
var W = this.deepQuery(ab, "smoothness");
|
|
|
this.deepQuery(ab, "smooth") || (W = 0);
|
|
|
var ah = ac ? G : D,
|
|
|
o = new ah({
|
|
|
style: {
|
|
|
symbol: ag,
|
|
|
symbolSize: af,
|
|
|
symbolRotate: O,
|
|
|
brushType: "both",
|
|
|
lineType: ai.type,
|
|
|
shadowColor: ai.shadowColor || ai.color || N.borderColor || N.color || X,
|
|
|
shadowBlur: ai.shadowBlur,
|
|
|
shadowOffsetX: ai.shadowOffsetX,
|
|
|
shadowOffsetY: ai.shadowOffsetY,
|
|
|
color: N.color || X,
|
|
|
strokeColor: ai.color || N.borderColor || N.color || X,
|
|
|
lineWidth: M,
|
|
|
symbolBorderColor: N.borderColor || N.color || X,
|
|
|
symbolBorder: N.borderWidth
|
|
|
},
|
|
|
highlightStyle: {
|
|
|
shadowColor: R.shadowColor,
|
|
|
shadowBlur: R.shadowBlur,
|
|
|
shadowOffsetX: R.shadowOffsetX,
|
|
|
shadowOffsetY: R.shadowOffsetY,
|
|
|
color: ae.color || N.color || X,
|
|
|
strokeColor: R.color || ai.color || ae.borderColor || N.borderColor || ae.color || N.color || X,
|
|
|
lineWidth: Q,
|
|
|
symbolBorderColor: ae.borderColor || N.borderColor || ae.color || N.color || X,
|
|
|
symbolBorder: null == ae.borderWidth ? N.borderWidth + 2 : ae.borderWidth
|
|
|
},
|
|
|
clickable: this.deepQuery(ab, "clickable")
|
|
|
}),
|
|
|
Y = o.style;
|
|
|
return ac ? (Y.pointList = s, Y.smooth = W) : (Y.xStart = s[0][0], Y.yStart = s[0][1], Y.xEnd = s[1][0], Y.yEnd = s[1][1], Y.curveness = W, o.updatePoints(o.style)), o = this.addLabel(o, P, T[0], T[0].name + " : " + T[1].name)
|
|
|
},
|
|
|
getLargeMarkPointShape: function(N, Y) {
|
|
|
var P, S, r, T, X, Q, O = this.series[N],
|
|
|
R = this.component,
|
|
|
ab = Y.data,
|
|
|
aa = R.dataRange,
|
|
|
M = R.legend,
|
|
|
W = [ab[0], Y];
|
|
|
if (M && (S = M.getColor(O.name)), !aa || (r = null != ab[0].value ? ab[0].value : "", S = isNaN(r) ? S : aa.getColor(r), T = this.deepQuery(W, "itemStyle.normal.color") || S, X = this.deepQuery(W, "itemStyle.emphasis.color") || T, null != T || null != X)) {
|
|
|
S = this.deepMerge(W, "itemStyle.normal").color || S;
|
|
|
var y = this.deepQuery(W, "symbol") || "circle";
|
|
|
y = y.replace("empty", "").replace(/\d/g, ""), Q = this.deepMerge([ab[0], Y], "effect");
|
|
|
var Z = window.devicePixelRatio || 1;
|
|
|
return P = new F({
|
|
|
style: {
|
|
|
pointList: ab,
|
|
|
color: S,
|
|
|
strokeColor: S,
|
|
|
shadowColor: Q.shadowColor || S,
|
|
|
shadowBlur: (null != Q.shadowBlur ? Q.shadowBlur : 8) * Z,
|
|
|
size: this.deepQuery(W, "symbolSize"),
|
|
|
iconType: y,
|
|
|
brushType: "fill",
|
|
|
lineWidth: 1
|
|
|
},
|
|
|
draggable: !1,
|
|
|
hoverable: !1
|
|
|
}), Q.show && (P.effect = Q), P
|
|
|
}
|
|
|
},
|
|
|
backupShapeList: function() {
|
|
|
this.shapeList && this.shapeList.length > 0 ? (this.lastShapeList = this.shapeList, this.shapeList = []) : this.lastShapeList = []
|
|
|
},
|
|
|
addShapeList: function() {
|
|
|
var u, S, y = this.option.animationThreshold / (this.canvasSupported ? 2 : 4),
|
|
|
O = this.lastShapeList,
|
|
|
p = this.shapeList,
|
|
|
P = O.length > 0,
|
|
|
Q = P ? this.query(this.option, "animationDurationUpdate") : this.query(this.option, "animationDuration"),
|
|
|
R = this.query(this.option, "animationEasing"),
|
|
|
M = {},
|
|
|
N = {};
|
|
|
if (this.option.animation && !this.option.renderAsImage && p.length < y && !this.motionlessOnce) {
|
|
|
for (var W = 0, T = O.length; T > W; W++) {
|
|
|
S = this._getAnimationKey(O[W]), S.match("undefined") ? this.zr.delShape(O[W].id) : (S += O[W].type, M[S] ? this.zr.delShape(O[W].id) : M[S] = O[W])
|
|
|
}
|
|
|
for (var W = 0, T = p.length; T > W; W++) {
|
|
|
S = this._getAnimationKey(p[W]), S.match("undefined") ? this.zr.addShape(p[W]) : (S += p[W].type, N[S] = p[W])
|
|
|
}
|
|
|
for (S in M) {
|
|
|
N[S] || this.zr.delShape(M[S].id)
|
|
|
}
|
|
|
for (S in N) {
|
|
|
M[S] ? (this.zr.delShape(M[S].id), this._animateMod(M[S], N[S], Q, R, 0, P)) : (u = this.type != x.CHART_TYPE_LINE && this.type != x.CHART_TYPE_RADAR || 0 === S.indexOf("icon") ? 0 : Q / 2, this._animateMod(!1, N[S], Q, R, u, P))
|
|
|
}
|
|
|
this.zr.refresh(), this.animationEffect()
|
|
|
} else {
|
|
|
this.motionlessOnce = !1, this.zr.delShape(O);
|
|
|
for (var W = 0, T = p.length; T > W; W++) {
|
|
|
this.zr.addShape(p[W])
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
_getAnimationKey: function(a) {
|
|
|
return this.type != x.CHART_TYPE_MAP && this.type != x.CHART_TYPE_TREEMAP && this.type != x.CHART_TYPE_VENN && this.type != x.CHART_TYPE_TREE ? B.get(a, "seriesIndex") + "_" + B.get(a, "dataIndex") + (a._mark ? a._mark : "") + (this.type === x.CHART_TYPE_RADAR ? B.get(a, "special") : "") : B.get(a, "seriesIndex") + "_" + B.get(a, "dataIndex") + (a._mark ? a._mark : "undefined")
|
|
|
},
|
|
|
_animateMod: function(m, u, p, r, l, s) {
|
|
|
switch (u.type) {
|
|
|
case "polyline":
|
|
|
case "half-smooth-polygon":
|
|
|
K.pointList(this.zr, m, u, p, r);
|
|
|
break;
|
|
|
case "rectangle":
|
|
|
K.rectangle(this.zr, m, u, p, r);
|
|
|
break;
|
|
|
case "image":
|
|
|
case "icon":
|
|
|
K.icon(this.zr, m, u, p, r, l);
|
|
|
break;
|
|
|
case "candle":
|
|
|
s ? this.zr.addShape(u) : K.candle(this.zr, m, u, p, r);
|
|
|
break;
|
|
|
case "ring":
|
|
|
case "sector":
|
|
|
case "circle":
|
|
|
s ? "sector" === u.type ? K.sector(this.zr, m, u, p, r) : this.zr.addShape(u) : K.ring(this.zr, m, u, p + (B.get(u, "dataIndex") || 0) % 20 * 100, r);
|
|
|
break;
|
|
|
case "text":
|
|
|
K.text(this.zr, m, u, p, r);
|
|
|
break;
|
|
|
case "polygon":
|
|
|
s ? K.pointList(this.zr, m, u, p, r) : K.polygon(this.zr, m, u, p, r);
|
|
|
break;
|
|
|
case "ribbon":
|
|
|
K.ribbon(this.zr, m, u, p, r);
|
|
|
break;
|
|
|
case "gauge-pointer":
|
|
|
K.gaugePointer(this.zr, m, u, p, r);
|
|
|
break;
|
|
|
case "mark-line":
|
|
|
K.markline(this.zr, m, u, p, r);
|
|
|
break;
|
|
|
case "bezier-curve":
|
|
|
case "line":
|
|
|
K.line(this.zr, m, u, p, r);
|
|
|
break;
|
|
|
default:
|
|
|
this.zr.addShape(u)
|
|
|
}
|
|
|
},
|
|
|
animationMark: function(m, r, o) {
|
|
|
for (var o = o || this.shapeList, p = 0, l = o.length; l > p; p++) {
|
|
|
o[p]._mark && this._animateMod(!1, o[p], m, r, 0, !0)
|
|
|
}
|
|
|
this.animationEffect(o)
|
|
|
},
|
|
|
animationEffect: function(m) {
|
|
|
if (!m && this.clearEffectShape(), m = m || this.shapeList, null != m) {
|
|
|
var r = x.EFFECT_ZLEVEL;
|
|
|
this.canvasSupported && this.zr.modLayer(r, {
|
|
|
motionBlur: !0,
|
|
|
lastFrameAlpha: this.option.effectBlendAlpha || x.effectBlendAlpha
|
|
|
});
|
|
|
for (var o, p = 0, l = m.length; l > p; p++) {
|
|
|
o = m[p], o._mark && o.effect && o.effect.show && J[o._mark] && (J[o._mark](this.zr, this.effectList, o, r), this.effectList[this.effectList.length - 1]._mark = o._mark)
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
clearEffectShape: function(a) {
|
|
|
var m = this.effectList;
|
|
|
if (this.zr && m && m.length > 0) {
|
|
|
a && this.zr.modLayer(x.EFFECT_ZLEVEL, {
|
|
|
motionBlur: !1
|
|
|
}), this.zr.delShape(m);
|
|
|
for (var l = 0; l < m.length; l++) {
|
|
|
m[l].effectAnimator && m[l].effectAnimator.stop()
|
|
|
}
|
|
|
}
|
|
|
this.effectList = []
|
|
|
},
|
|
|
addMark: function(p, R, y) {
|
|
|
var N = this.series[p];
|
|
|
if (this.selectedMap[N.name]) {
|
|
|
var m = this.query(this.option, "animationDurationUpdate"),
|
|
|
O = this.query(this.option, "animationEasing"),
|
|
|
P = N[y].data,
|
|
|
Q = this.shapeList.length;
|
|
|
if (N[y].data = R.data, this["_build" + y.replace("m", "M")](p), this.option.animation && !this.option.renderAsImage) {
|
|
|
this.animationMark(m, O, this.shapeList.slice(Q))
|
|
|
} else {
|
|
|
for (var M = Q, u = this.shapeList.length; u > M; M++) {
|
|
|
this.zr.addShape(this.shapeList[M])
|
|
|
}
|
|
|
this.zr.refreshNextFrame()
|
|
|
}
|
|
|
N[y].data = P
|
|
|
}
|
|
|
},
|
|
|
delMark: function(p, Q, u) {
|
|
|
u = u.replace("mark", "").replace("large", "").toLowerCase();
|
|
|
var M = this.series[p];
|
|
|
if (this.selectedMap[M.name]) {
|
|
|
for (var m = !1, N = [this.shapeList, this.effectList], O = 2; O--;) {
|
|
|
for (var P = 0, y = N[O].length; y > P; P++) {
|
|
|
if (N[O][P]._mark == u && B.get(N[O][P], "seriesIndex") == p && B.get(N[O][P], "name") == Q) {
|
|
|
this.zr.delShape(N[O][P].id), N[O].splice(P, 1), m = !0;
|
|
|
break
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
m && this.zr.refreshNextFrame()
|
|
|
}
|
|
|
}
|
|
|
}, I.inherits(z, E), z
|
|
|
}), d("zrender/shape/Circle", ["require", "./Base", "../tool/util"], function(a) {
|
|
|
var l = a("./Base"),
|
|
|
j = function(i) {
|
|
|
l.call(this, i)
|
|
|
};
|
|
|
return j.prototype = {
|
|
|
type: "circle",
|
|
|
buildPath: function(i, m) {
|
|
|
i.moveTo(m.x + m.r, m.y), i.arc(m.x, m.y, m.r, 0, 2 * Math.PI, !0)
|
|
|
},
|
|
|
getRect: function(i) {
|
|
|
if (i.__rect) {
|
|
|
return i.__rect
|
|
|
}
|
|
|
var m;
|
|
|
return m = "stroke" == i.brushType || "fill" == i.brushType ? i.lineWidth || 1 : 0, i.__rect = {
|
|
|
x: Math.round(i.x - i.r - m / 2),
|
|
|
y: Math.round(i.y - i.r - m / 2),
|
|
|
width: 2 * i.r + m,
|
|
|
height: 2 * i.r + m
|
|
|
}, i.__rect
|
|
|
}
|
|
|
}, a("../tool/util").inherits(j, l), j
|
|
|
}), d("echarts/util/accMath", [], function() {
|
|
|
function a(q, v) {
|
|
|
var r = q.toString(),
|
|
|
s = v.toString(),
|
|
|
p = 0;
|
|
|
try {
|
|
|
p = s.split(".")[1].length
|
|
|
} catch (u) {}
|
|
|
try {
|
|
|
p -= r.split(".")[1].length
|
|
|
} catch (u) {}
|
|
|
return (r.replace(".", "") - 0) / (s.replace(".", "") - 0) * Math.pow(10, p)
|
|
|
}
|
|
|
|
|
|
function m(q, v) {
|
|
|
var r = q.toString(),
|
|
|
s = v.toString(),
|
|
|
p = 0;
|
|
|
try {
|
|
|
p += r.split(".")[1].length
|
|
|
} catch (u) {}
|
|
|
try {
|
|
|
p += s.split(".")[1].length
|
|
|
} catch (u) {}
|
|
|
return (r.replace(".", "") - 0) * (s.replace(".", "") - 0) / Math.pow(10, p)
|
|
|
}
|
|
|
|
|
|
function j(q, v) {
|
|
|
var r = 0,
|
|
|
s = 0;
|
|
|
try {
|
|
|
r = q.toString().split(".")[1].length
|
|
|
} catch (p) {}
|
|
|
try {
|
|
|
s = v.toString().split(".")[1].length
|
|
|
} catch (p) {}
|
|
|
var u = Math.pow(10, Math.max(r, s));
|
|
|
return (Math.round(q * u) + Math.round(v * u)) / u
|
|
|
}
|
|
|
|
|
|
function l(i, n) {
|
|
|
return j(i, -n)
|
|
|
}
|
|
|
return {
|
|
|
accDiv: a,
|
|
|
accMul: m,
|
|
|
accAdd: j,
|
|
|
accSub: l
|
|
|
}
|
|
|
}), d("echarts/util/shape/Icon", ["require", "zrender/tool/util", "zrender/shape/Star", "zrender/shape/Heart", "zrender/shape/Droplet", "zrender/shape/Image", "zrender/shape/Base"], function(C) {
|
|
|
function Z(m, u) {
|
|
|
var p = u.x,
|
|
|
r = u.y,
|
|
|
l = u.width / 16,
|
|
|
s = u.height / 16;
|
|
|
m.moveTo(p, r + u.height), m.lineTo(p + 5 * l, r + 14 * s), m.lineTo(p + u.width, r + 3 * s), m.lineTo(p + 13 * l, r), m.lineTo(p + 2 * l, r + 11 * s), m.lineTo(p, r + u.height), m.moveTo(p + 6 * l, r + 10 * s), m.lineTo(p + 14 * l, r + 2 * s), m.moveTo(p + 10 * l, r + 13 * s), m.lineTo(p + u.width, r + 13 * s), m.moveTo(p + 13 * l, r + 10 * s), m.lineTo(p + 13 * l, r + u.height)
|
|
|
}
|
|
|
|
|
|
function G(m, u) {
|
|
|
var p = u.x,
|
|
|
r = u.y,
|
|
|
l = u.width / 16,
|
|
|
s = u.height / 16;
|
|
|
m.moveTo(p, r + u.height), m.lineTo(p + 5 * l, r + 14 * s), m.lineTo(p + u.width, r + 3 * s), m.lineTo(p + 13 * l, r), m.lineTo(p + 2 * l, r + 11 * s), m.lineTo(p, r + u.height), m.moveTo(p + 6 * l, r + 10 * s), m.lineTo(p + 14 * l, r + 2 * s), m.moveTo(p + 10 * l, r + 13 * s), m.lineTo(p + u.width, r + 13 * s)
|
|
|
}
|
|
|
|
|
|
function Q(m, u) {
|
|
|
var p = u.x,
|
|
|
r = u.y,
|
|
|
l = u.width / 16,
|
|
|
s = u.height / 16;
|
|
|
m.moveTo(p + 4 * l, r + 15 * s), m.lineTo(p + 9 * l, r + 13 * s), m.lineTo(p + 14 * l, r + 8 * s), m.lineTo(p + 11 * l, r + 5 * s), m.lineTo(p + 6 * l, r + 10 * s), m.lineTo(p + 4 * l, r + 15 * s), m.moveTo(p + 5 * l, r), m.lineTo(p + 11 * l, r), m.moveTo(p + 5 * l, r + s), m.lineTo(p + 11 * l, r + s), m.moveTo(p, r + 2 * s), m.lineTo(p + u.width, r + 2 * s), m.moveTo(p, r + 5 * s), m.lineTo(p + 3 * l, r + u.height), m.lineTo(p + 13 * l, r + u.height), m.lineTo(p + u.width, r + 5 * s)
|
|
|
}
|
|
|
|
|
|
function q(m, u) {
|
|
|
var p = u.x,
|
|
|
r = u.y,
|
|
|
l = u.width / 16,
|
|
|
s = u.height / 16;
|
|
|
m.moveTo(p, r + 3 * s), m.lineTo(p + 6 * l, r + 3 * s), m.moveTo(p + 3 * l, r), m.lineTo(p + 3 * l, r + 6 * s), m.moveTo(p + 3 * l, r + 8 * s), m.lineTo(p + 3 * l, r + u.height), m.lineTo(p + u.width, r + u.height), m.lineTo(p + u.width, r + 3 * s), m.lineTo(p + 8 * l, r + 3 * s)
|
|
|
}
|
|
|
|
|
|
function R(m, u) {
|
|
|
var p = u.x,
|
|
|
r = u.y,
|
|
|
l = u.width / 16,
|
|
|
s = u.height / 16;
|
|
|
m.moveTo(p + 6 * l, r), m.lineTo(p + 2 * l, r + 3 * s), m.lineTo(p + 6 * l, r + 6 * s), m.moveTo(p + 2 * l, r + 3 * s), m.lineTo(p + 14 * l, r + 3 * s), m.lineTo(p + 14 * l, r + 11 * s), m.moveTo(p + 2 * l, r + 5 * s), m.lineTo(p + 2 * l, r + 13 * s), m.lineTo(p + 14 * l, r + 13 * s), m.moveTo(p + 10 * l, r + 10 * s), m.lineTo(p + 14 * l, r + 13 * s), m.lineTo(p + 10 * l, r + u.height)
|
|
|
}
|
|
|
|
|
|
function T(m, w) {
|
|
|
var p = w.x,
|
|
|
s = w.y,
|
|
|
l = w.width / 16,
|
|
|
u = w.height / 16,
|
|
|
v = w.width / 2;
|
|
|
m.lineWidth = 1.5, m.arc(p + v, s + v, v - l, 0, 2 * Math.PI / 3), m.moveTo(p + 3 * l, s + w.height), m.lineTo(p + 0 * l, s + 12 * u), m.lineTo(p + 5 * l, s + 11 * u), m.moveTo(p, s + 8 * u), m.arc(p + v, s + v, v - l, Math.PI, 5 * Math.PI / 3), m.moveTo(p + 13 * l, s), m.lineTo(p + w.width, s + 4 * u), m.lineTo(p + 11 * l, s + 5 * u)
|
|
|
}
|
|
|
|
|
|
function Y(m, u) {
|
|
|
var p = u.x,
|
|
|
r = u.y,
|
|
|
l = u.width / 16,
|
|
|
s = u.height / 16;
|
|
|
m.moveTo(p, r), m.lineTo(p, r + u.height), m.lineTo(p + u.width, r + u.height), m.moveTo(p + 2 * l, r + 14 * s), m.lineTo(p + 7 * l, r + 6 * s), m.lineTo(p + 11 * l, r + 11 * s), m.lineTo(p + 15 * l, r + 2 * s)
|
|
|
}
|
|
|
|
|
|
function N(m, u) {
|
|
|
var p = u.x,
|
|
|
r = u.y,
|
|
|
l = u.width / 16,
|
|
|
s = u.height / 16;
|
|
|
m.moveTo(p, r), m.lineTo(p, r + u.height), m.lineTo(p + u.width, r + u.height), m.moveTo(p + 3 * l, r + 14 * s), m.lineTo(p + 3 * l, r + 6 * s), m.lineTo(p + 4 * l, r + 6 * s), m.lineTo(p + 4 * l, r + 14 * s), m.moveTo(p + 7 * l, r + 14 * s), m.lineTo(p + 7 * l, r + 2 * s), m.lineTo(p + 8 * l, r + 2 * s), m.lineTo(p + 8 * l, r + 14 * s), m.moveTo(p + 11 * l, r + 14 * s), m.lineTo(p + 11 * l, r + 9 * s), m.lineTo(p + 12 * l, r + 9 * s), m.lineTo(p + 12 * l, r + 14 * s)
|
|
|
}
|
|
|
|
|
|
function F(m, w) {
|
|
|
var p = w.x,
|
|
|
s = w.y,
|
|
|
l = w.width - 2,
|
|
|
u = w.height - 2,
|
|
|
v = Math.min(l, u) / 2;
|
|
|
s += 2, m.moveTo(p + v + 3, s + v - 3), m.arc(p + v + 3, s + v - 3, v - 1, 0, -Math.PI / 2, !0), m.lineTo(p + v + 3, s + v - 3), m.moveTo(p + v, s), m.lineTo(p + v, s + v), m.arc(p + v, s + v, v, -Math.PI / 2, 2 * Math.PI, !0), m.lineTo(p + v, s + v), m.lineWidth = 1.5
|
|
|
}
|
|
|
|
|
|
function P(m, u) {
|
|
|
var p = u.x,
|
|
|
r = u.y,
|
|
|
l = u.width / 16,
|
|
|
s = u.height / 16;
|
|
|
r -= s, m.moveTo(p + 1 * l, r + 2 * s), m.lineTo(p + 15 * l, r + 2 * s), m.lineTo(p + 14 * l, r + 3 * s), m.lineTo(p + 2 * l, r + 3 * s), m.moveTo(p + 3 * l, r + 6 * s), m.lineTo(p + 13 * l, r + 6 * s), m.lineTo(p + 12 * l, r + 7 * s), m.lineTo(p + 4 * l, r + 7 * s), m.moveTo(p + 5 * l, r + 10 * s), m.lineTo(p + 11 * l, r + 10 * s), m.lineTo(p + 10 * l, r + 11 * s), m.lineTo(p + 6 * l, r + 11 * s), m.moveTo(p + 7 * l, r + 14 * s), m.lineTo(p + 9 * l, r + 14 * s), m.lineTo(p + 8 * l, r + 15 * s), m.lineTo(p + 7 * l, r + 15 * s)
|
|
|
}
|
|
|
|
|
|
function ad(p, K) {
|
|
|
var u = K.x,
|
|
|
w = K.y,
|
|
|
m = K.width,
|
|
|
x = K.height,
|
|
|
y = m / 16,
|
|
|
I = x / 16,
|
|
|
v = 2 * Math.min(y, I);
|
|
|
p.moveTo(u + y + v, w + I + v), p.arc(u + y, w + I, v, Math.PI / 4, 3 * Math.PI), p.lineTo(u + 7 * y - v, w + 6 * I - v), p.arc(u + 7 * y, w + 6 * I, v, Math.PI / 4 * 5, 4 * Math.PI), p.arc(u + 7 * y, w + 6 * I, v / 2, Math.PI / 4 * 5, 4 * Math.PI), p.moveTo(u + 7 * y - v / 2, w + 6 * I + v), p.lineTo(u + y + v, w + 14 * I - v), p.arc(u + y, w + 14 * I, v, -Math.PI / 4, 2 * Math.PI), p.moveTo(u + 7 * y + v / 2, w + 6 * I), p.lineTo(u + 14 * y - v, w + 10 * I - v / 2), p.moveTo(u + 16 * y, w + 10 * I), p.arc(u + 14 * y, w + 10 * I, v, 0, 3 * Math.PI), p.lineWidth = 1.5
|
|
|
}
|
|
|
|
|
|
function ab(m, w) {
|
|
|
var p = w.x,
|
|
|
s = w.y,
|
|
|
l = w.width,
|
|
|
u = w.height,
|
|
|
v = Math.min(l, u) / 2;
|
|
|
m.moveTo(p + l, s + u / 2), m.arc(p + v, s + v, v, 0, 2 * Math.PI), m.arc(p + v, s, v, Math.PI / 4, Math.PI / 5 * 4), m.arc(p, s + v, v, -Math.PI / 3, Math.PI / 3), m.arc(p + l, s + u, v, Math.PI, Math.PI / 2 * 3), m.lineWidth = 1.5
|
|
|
}
|
|
|
|
|
|
function B(p, K) {
|
|
|
for (var u = K.x, w = K.y, m = K.width, x = K.height, y = Math.round(x / 3), I = Math.round((y - 2) / 2), v = 3; v--;) {
|
|
|
p.rect(u, w + y * v + I, m, 2)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function S(p, K) {
|
|
|
for (var u = K.x, w = K.y, m = K.width, x = K.height, y = Math.round(m / 3), I = Math.round((y - 2) / 2), v = 3; v--;) {
|
|
|
p.rect(u + y * v + I, w, 2, x)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function A(m, r) {
|
|
|
var o = r.x,
|
|
|
p = r.y,
|
|
|
l = r.width / 16;
|
|
|
m.moveTo(o + l, p), m.lineTo(o + l, p + r.height), m.lineTo(o + 15 * l, p + r.height), m.lineTo(o + 15 * l, p), m.lineTo(o + l, p), m.moveTo(o + 3 * l, p + 3 * l), m.lineTo(o + 13 * l, p + 3 * l), m.moveTo(o + 3 * l, p + 6 * l), m.lineTo(o + 13 * l, p + 6 * l), m.moveTo(o + 3 * l, p + 9 * l), m.lineTo(o + 13 * l, p + 9 * l), m.moveTo(o + 3 * l, p + 12 * l), m.lineTo(o + 9 * l, p + 12 * l)
|
|
|
}
|
|
|
|
|
|
function aa(m, u) {
|
|
|
var p = u.x,
|
|
|
r = u.y,
|
|
|
l = u.width / 16,
|
|
|
s = u.height / 16;
|
|
|
m.moveTo(p, r), m.lineTo(p, r + u.height), m.lineTo(p + u.width, r + u.height), m.lineTo(p + u.width, r), m.lineTo(p, r), m.moveTo(p + 4 * l, r), m.lineTo(p + 4 * l, r + 8 * s), m.lineTo(p + 12 * l, r + 8 * s), m.lineTo(p + 12 * l, r), m.moveTo(p + 6 * l, r + 11 * s), m.lineTo(p + 6 * l, r + 13 * s), m.lineTo(p + 10 * l, r + 13 * s), m.lineTo(p + 10 * l, r + 11 * s), m.lineTo(p + 6 * l, r + 11 * s)
|
|
|
}
|
|
|
|
|
|
function ai(m, u) {
|
|
|
var p = u.x,
|
|
|
r = u.y,
|
|
|
l = u.width,
|
|
|
s = u.height;
|
|
|
m.moveTo(p, r + s / 2), m.lineTo(p + l, r + s / 2), m.moveTo(p + l / 2, r), m.lineTo(p + l / 2, r + s)
|
|
|
}
|
|
|
|
|
|
function E(m, r) {
|
|
|
var o = r.width / 2,
|
|
|
p = r.height / 2,
|
|
|
l = Math.min(o, p);
|
|
|
m.moveTo(r.x + o + l, r.y + p), m.arc(r.x + o, r.y + p, l, 0, 2 * Math.PI), m.closePath()
|
|
|
}
|
|
|
|
|
|
function z(a, i) {
|
|
|
a.rect(i.x, i.y, i.width, i.height), a.closePath()
|
|
|
}
|
|
|
|
|
|
function D(m, w) {
|
|
|
var p = w.width / 2,
|
|
|
s = w.height / 2,
|
|
|
l = w.x + p,
|
|
|
u = w.y + s,
|
|
|
v = Math.min(p, s);
|
|
|
m.moveTo(l, u - v), m.lineTo(l + v, u + v), m.lineTo(l - v, u + v), m.lineTo(l, u - v), m.closePath()
|
|
|
}
|
|
|
|
|
|
function J(m, w) {
|
|
|
var p = w.width / 2,
|
|
|
s = w.height / 2,
|
|
|
l = w.x + p,
|
|
|
u = w.y + s,
|
|
|
v = Math.min(p, s);
|
|
|
m.moveTo(l, u - v), m.lineTo(l + v, u), m.lineTo(l, u + v), m.lineTo(l - v, u), m.lineTo(l, u - v), m.closePath()
|
|
|
}
|
|
|
|
|
|
function ag(m, r) {
|
|
|
var o = r.x,
|
|
|
p = r.y,
|
|
|
l = r.width / 16;
|
|
|
m.moveTo(o + 8 * l, p), m.lineTo(o + l, p + r.height), m.lineTo(o + 8 * l, p + r.height / 4 * 3), m.lineTo(o + 15 * l, p + r.height), m.lineTo(o + 8 * l, p), m.closePath()
|
|
|
}
|
|
|
|
|
|
function j(r, l) {
|
|
|
var m = C("zrender/shape/Star"),
|
|
|
e = l.width / 2,
|
|
|
p = l.height / 2;
|
|
|
m.prototype.buildPath(r, {
|
|
|
x: l.x + e,
|
|
|
y: l.y + p,
|
|
|
r: Math.min(e, p),
|
|
|
n: l.n || 5
|
|
|
})
|
|
|
}
|
|
|
|
|
|
function O(l, a) {
|
|
|
var e = C("zrender/shape/Heart");
|
|
|
e.prototype.buildPath(l, {
|
|
|
x: a.x + a.width / 2,
|
|
|
y: a.y + 0.2 * a.height,
|
|
|
a: a.width / 2,
|
|
|
b: 0.8 * a.height
|
|
|
})
|
|
|
}
|
|
|
|
|
|
function af(l, a) {
|
|
|
var e = C("zrender/shape/Droplet");
|
|
|
e.prototype.buildPath(l, {
|
|
|
x: a.x + 0.5 * a.width,
|
|
|
y: a.y + 0.5 * a.height,
|
|
|
a: 0.5 * a.width,
|
|
|
b: 0.8 * a.height
|
|
|
})
|
|
|
}
|
|
|
|
|
|
function ah(m, w) {
|
|
|
var p = w.x,
|
|
|
s = w.y - w.height / 2 * 1.5,
|
|
|
l = w.width / 2,
|
|
|
u = w.height / 2,
|
|
|
v = Math.min(l, u);
|
|
|
m.arc(p + l, s + u, v, Math.PI / 5 * 4, Math.PI / 5), m.lineTo(p + l, s + u + 1.5 * v), m.closePath()
|
|
|
}
|
|
|
|
|
|
function ac(r, l, m) {
|
|
|
var e = C("zrender/shape/Image");
|
|
|
this._imageShape = this._imageShape || new e({
|
|
|
style: {}
|
|
|
});
|
|
|
for (var p in l) {
|
|
|
this._imageShape.style[p] = l[p]
|
|
|
}
|
|
|
this._imageShape.brush(r, !1, m)
|
|
|
}
|
|
|
|
|
|
function ae(a) {
|
|
|
H.call(this, a)
|
|
|
}
|
|
|
var M = C("zrender/tool/util"),
|
|
|
H = C("zrender/shape/Base");
|
|
|
return ae.prototype = {
|
|
|
type: "icon",
|
|
|
iconLibrary: {
|
|
|
mark: Z,
|
|
|
markUndo: G,
|
|
|
markClear: Q,
|
|
|
dataZoom: q,
|
|
|
dataZoomReset: R,
|
|
|
restore: T,
|
|
|
lineChart: Y,
|
|
|
barChart: N,
|
|
|
pieChart: F,
|
|
|
funnelChart: P,
|
|
|
forceChart: ad,
|
|
|
chordChart: ab,
|
|
|
stackChart: B,
|
|
|
tiledChart: S,
|
|
|
dataView: A,
|
|
|
saveAsImage: aa,
|
|
|
cross: ai,
|
|
|
circle: E,
|
|
|
rectangle: z,
|
|
|
triangle: D,
|
|
|
diamond: J,
|
|
|
arrow: ag,
|
|
|
star: j,
|
|
|
heart: O,
|
|
|
droplet: af,
|
|
|
pin: ah,
|
|
|
image: ac
|
|
|
},
|
|
|
brush: function(u, l, m) {
|
|
|
var e = l ? this.highlightStyle : this.style;
|
|
|
e = e || {};
|
|
|
var p = e.iconType || this.style.iconType;
|
|
|
if ("image" === p) {
|
|
|
var s = C("zrender/shape/Image");
|
|
|
s.prototype.brush.call(this, u, l, m)
|
|
|
} else {
|
|
|
var e = this.beforeBrush(u, l);
|
|
|
switch (u.beginPath(), this.buildPath(u, e, m), e.brushType) {
|
|
|
case "both":
|
|
|
u.fill();
|
|
|
case "stroke":
|
|
|
e.lineWidth > 0 && u.stroke();
|
|
|
break;
|
|
|
default:
|
|
|
u.fill()
|
|
|
}
|
|
|
this.drawText(u, e, this.style), this.afterBrush(u)
|
|
|
}
|
|
|
},
|
|
|
buildPath: function(a, m, l) {
|
|
|
this.iconLibrary[m.iconType] ? this.iconLibrary[m.iconType].call(this, a, m, l) : (a.moveTo(m.x, m.y), a.lineTo(m.x + m.width, m.y), a.lineTo(m.x + m.width, m.y + m.height), a.lineTo(m.x, m.y + m.height), a.lineTo(m.x, m.y), a.closePath())
|
|
|
},
|
|
|
getRect: function(a) {
|
|
|
return a.__rect ? a.__rect : (a.__rect = {
|
|
|
x: Math.round(a.x),
|
|
|
y: Math.round(a.y - ("pin" == a.iconType ? a.height / 2 * 1.5 : 0)),
|
|
|
width: a.width,
|
|
|
height: a.height * ("pin" === a.iconType ? 1.25 : 1)
|
|
|
}, a.__rect)
|
|
|
},
|
|
|
isCover: function(m, r) {
|
|
|
var o = this.transformCoordToLocal(m, r);
|
|
|
m = o[0], r = o[1];
|
|
|
var p = this.style.__rect;
|
|
|
p || (p = this.style.__rect = this.getRect(this.style));
|
|
|
var l = p.height < 8 || p.width < 8 ? 4 : 0;
|
|
|
return m >= p.x - l && m <= p.x + p.width + l && r >= p.y - l && r <= p.y + p.height + l
|
|
|
}
|
|
|
}, M.inherits(ae, H), ae
|
|
|
}), d("echarts/util/shape/MarkLine", ["require", "zrender/shape/Base", "./Icon", "zrender/shape/Line", "zrender/shape/BezierCurve", "zrender/tool/area", "zrender/shape/util/dashedLineTo", "zrender/tool/util", "zrender/tool/curve"], function(p) {
|
|
|
function B(a) {
|
|
|
u.call(this, a), this.style.curveness > 0 && this.updatePoints(this.style), this.highlightStyle.curveness > 0 && this.updatePoints(this.highlightStyle)
|
|
|
}
|
|
|
var u = p("zrender/shape/Base"),
|
|
|
x = p("./Icon"),
|
|
|
j = p("zrender/shape/Line"),
|
|
|
y = new j({}),
|
|
|
z = p("zrender/shape/BezierCurve"),
|
|
|
A = new z({}),
|
|
|
v = p("zrender/tool/area"),
|
|
|
q = p("zrender/shape/util/dashedLineTo"),
|
|
|
w = p("zrender/tool/util"),
|
|
|
C = p("zrender/tool/curve");
|
|
|
return B.prototype = {
|
|
|
type: "mark-line",
|
|
|
brush: function(a, m) {
|
|
|
var l = this.style;
|
|
|
m && (l = this.getHighlightStyle(l, this.highlightStyle || {})), a.save(), this.setContext(a, l), this.setTransform(a), a.save(), a.beginPath(), this.buildPath(a, l), a.stroke(), a.restore(), this.brushSymbol(a, l, 0), this.brushSymbol(a, l, 1), this.drawText(a, l, this.style), a.restore()
|
|
|
},
|
|
|
buildPath: function(m, s) {
|
|
|
var o = s.lineType || "solid";
|
|
|
if (m.moveTo(s.xStart, s.yStart), s.curveness > 0) {
|
|
|
var r = null;
|
|
|
switch (o) {
|
|
|
case "dashed":
|
|
|
r = [5, 5];
|
|
|
break;
|
|
|
case "dotted":
|
|
|
r = [1, 1]
|
|
|
}
|
|
|
r && m.setLineDash && m.setLineDash(r), m.quadraticCurveTo(s.cpX1, s.cpY1, s.xEnd, s.yEnd)
|
|
|
} else {
|
|
|
if ("solid" == o) {
|
|
|
m.lineTo(s.xEnd, s.yEnd)
|
|
|
} else {
|
|
|
var l = (s.lineWidth || 1) * ("dashed" == s.lineType ? 5 : 1);
|
|
|
q(m, s.xStart, s.yStart, s.xEnd, s.yEnd, l)
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
updatePoints: function(D) {
|
|
|
var K = D.curveness || 0,
|
|
|
E = 1,
|
|
|
G = D.xStart,
|
|
|
m = D.yStart,
|
|
|
H = D.xEnd,
|
|
|
I = D.yEnd,
|
|
|
J = (G + H) / 2 - E * (m - I) * K,
|
|
|
F = (m + I) / 2 - E * (H - G) * K;
|
|
|
D.cpX1 = J, D.cpY1 = F
|
|
|
},
|
|
|
brushSymbol: function(G, R, K) {
|
|
|
if ("none" != R.symbol[K]) {
|
|
|
G.save(), G.beginPath(), G.lineWidth = R.symbolBorder, G.strokeStyle = R.symbolBorderColor;
|
|
|
var n = R.symbol[K].replace("empty", "").toLowerCase();
|
|
|
R.symbol[K].match("empty") && (G.fillStyle = "#fff");
|
|
|
var N = R.xStart,
|
|
|
P = R.yStart,
|
|
|
Q = R.xEnd,
|
|
|
L = R.yEnd,
|
|
|
J = 0 === K ? N : Q,
|
|
|
M = 0 === K ? P : L,
|
|
|
T = R.curveness || 0,
|
|
|
F = null != R.symbolRotate[K] ? R.symbolRotate[K] - 0 : 0;
|
|
|
if (F = F / 180 * Math.PI, "arrow" == n && 0 === F) {
|
|
|
if (0 === T) {
|
|
|
var O = 0 === K ? -1 : 1;
|
|
|
F = Math.PI / 2 + Math.atan2(O * (L - P), O * (Q - N))
|
|
|
} else {
|
|
|
var E = R.cpX1,
|
|
|
S = R.cpY1,
|
|
|
V = C.quadraticDerivativeAt,
|
|
|
I = V(N, E, Q, K),
|
|
|
D = V(P, S, L, K);
|
|
|
F = Math.PI / 2 + Math.atan2(D, I)
|
|
|
}
|
|
|
}
|
|
|
G.translate(J, M), 0 !== F && G.rotate(F);
|
|
|
var H = R.symbolSize[K];
|
|
|
x.prototype.buildPath(G, {
|
|
|
x: -H,
|
|
|
y: -H,
|
|
|
width: 2 * H,
|
|
|
height: 2 * H,
|
|
|
iconType: n
|
|
|
}), G.closePath(), G.fill(), G.stroke(), G.restore()
|
|
|
}
|
|
|
},
|
|
|
getRect: function(a) {
|
|
|
return a.curveness > 0 ? A.getRect(a) : y.getRect(a), a.__rect
|
|
|
},
|
|
|
isCover: function(a, m) {
|
|
|
var l = this.transformCoordToLocal(a, m);
|
|
|
return a = l[0], m = l[1], this.isCoverRect(a, m) ? this.style.curveness > 0 ? v.isInside(A, this.style, a, m) : v.isInside(y, this.style, a, m) : !1
|
|
|
}
|
|
|
}, w.inherits(B, u), B
|
|
|
}), d("echarts/util/shape/Symbol", ["require", "zrender/shape/Base", "zrender/shape/Polygon", "zrender/tool/util", "./normalIsCover"], function(l) {
|
|
|
function r(a) {
|
|
|
m.call(this, a)
|
|
|
}
|
|
|
var m = l("zrender/shape/Base"),
|
|
|
p = l("zrender/shape/Polygon"),
|
|
|
j = new p({}),
|
|
|
q = l("zrender/tool/util");
|
|
|
return r.prototype = {
|
|
|
type: "symbol",
|
|
|
buildPath: function(z, J) {
|
|
|
var B = J.pointList,
|
|
|
E = B.length;
|
|
|
if (0 !== E) {
|
|
|
for (var v, F, H, I, C, A = 10000, D = Math.ceil(E / A), M = B[0] instanceof Array, L = J.size ? J.size : 2, x = L, G = L / 2, w = 2 * Math.PI, K = 0; D > K; K++) {
|
|
|
z.beginPath(), v = K * A, F = v + A, F = F > E ? E : F;
|
|
|
for (var N = v; F > N; N++) {
|
|
|
if (J.random && (H = J["randomMap" + N % 20] / 100, x = L * H * H, G = x / 2), M ? (I = B[N][0], C = B[N][1]) : (I = B[N].x, C = B[N].y), 3 > x) {
|
|
|
z.rect(I - G, C - G, x, x)
|
|
|
} else {
|
|
|
switch (J.iconType) {
|
|
|
case "circle":
|
|
|
z.moveTo(I, C), z.arc(I, C, G, 0, w, !0);
|
|
|
break;
|
|
|
case "diamond":
|
|
|
z.moveTo(I, C - G), z.lineTo(I + G / 3, C - G / 3), z.lineTo(I + G, C), z.lineTo(I + G / 3, C + G / 3), z.lineTo(I, C + G), z.lineTo(I - G / 3, C + G / 3), z.lineTo(I - G, C), z.lineTo(I - G / 3, C - G / 3), z.lineTo(I, C - G);
|
|
|
break;
|
|
|
default:
|
|
|
z.rect(I - G, C - G, x, x)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
if (z.closePath(), D - 1 > K) {
|
|
|
switch (J.brushType) {
|
|
|
case "both":
|
|
|
z.fill(), J.lineWidth > 0 && z.stroke();
|
|
|
break;
|
|
|
case "stroke":
|
|
|
J.lineWidth > 0 && z.stroke();
|
|
|
break;
|
|
|
default:
|
|
|
z.fill()
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
getRect: function(a) {
|
|
|
return a.__rect || j.getRect(a)
|
|
|
},
|
|
|
isCover: l("./normalIsCover")
|
|
|
}, q.inherits(r, m), r
|
|
|
}), d("zrender/shape/Polyline", ["require", "./Base", "./util/smoothSpline", "./util/smoothBezier", "./util/dashedLineTo", "./Polygon", "../tool/util"], function(l) {
|
|
|
var r = l("./Base"),
|
|
|
m = l("./util/smoothSpline"),
|
|
|
p = l("./util/smoothBezier"),
|
|
|
j = l("./util/dashedLineTo"),
|
|
|
q = function(a) {
|
|
|
this.brushTypeOnly = "stroke", this.textPosition = "end", r.call(this, a)
|
|
|
};
|
|
|
return q.prototype = {
|
|
|
type: "polyline",
|
|
|
buildPath: function(a, A) {
|
|
|
var w = A.pointList;
|
|
|
if (!(w.length < 2)) {
|
|
|
var x = Math.min(A.pointList.length, Math.round(A.pointListLength || A.pointList.length));
|
|
|
if (A.smooth && "spline" !== A.smooth) {
|
|
|
A.controlPointList || this.updateControlPoints(A);
|
|
|
var y = A.controlPointList;
|
|
|
a.moveTo(w[0][0], w[0][1]);
|
|
|
for (var z, u, i, v = 0; x - 1 > v; v++) {
|
|
|
z = y[2 * v], u = y[2 * v + 1], i = w[v + 1], a.bezierCurveTo(z[0], z[1], u[0], u[1], i[0], i[1])
|
|
|
}
|
|
|
} else {
|
|
|
if ("spline" === A.smooth && (w = m(w), x = w.length), A.lineType && "solid" != A.lineType) {
|
|
|
if ("dashed" == A.lineType || "dotted" == A.lineType) {
|
|
|
var B = (A.lineWidth || 1) * ("dashed" == A.lineType ? 5 : 1);
|
|
|
a.moveTo(w[0][0], w[0][1]);
|
|
|
for (var v = 1; x > v; v++) {
|
|
|
j(a, w[v - 1][0], w[v - 1][1], w[v][0], w[v][1], B)
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
a.moveTo(w[0][0], w[0][1]);
|
|
|
for (var v = 1; x > v; v++) {
|
|
|
a.lineTo(w[v][0], w[v][1])
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
updateControlPoints: function(a) {
|
|
|
a.controlPointList = p(a.pointList, a.smooth, !1, a.smoothConstraint)
|
|
|
},
|
|
|
getRect: function(a) {
|
|
|
return l("./Polygon").prototype.getRect(a)
|
|
|
}
|
|
|
}, l("../tool/util").inherits(q, r), q
|
|
|
}), d("zrender/shape/ShapeBundle", ["require", "./Base", "../tool/util"], function(a) {
|
|
|
var l = a("./Base"),
|
|
|
j = function(i) {
|
|
|
l.call(this, i)
|
|
|
};
|
|
|
return j.prototype = {
|
|
|
constructor: j,
|
|
|
type: "shape-bundle",
|
|
|
brush: function(p, u) {
|
|
|
var q = this.beforeBrush(p, u);
|
|
|
p.beginPath();
|
|
|
for (var r = 0; r < q.shapeList.length; r++) {
|
|
|
var m = q.shapeList[r],
|
|
|
s = m.style;
|
|
|
u && (s = m.getHighlightStyle(s, m.highlightStyle || {}, m.brushTypeOnly)), m.buildPath(p, s)
|
|
|
}
|
|
|
switch (q.brushType) {
|
|
|
case "both":
|
|
|
p.fill();
|
|
|
case "stroke":
|
|
|
q.lineWidth > 0 && p.stroke();
|
|
|
break;
|
|
|
default:
|
|
|
p.fill()
|
|
|
}
|
|
|
this.drawText(p, q, this.style), this.afterBrush(p)
|
|
|
},
|
|
|
getRect: function(p) {
|
|
|
if (p.__rect) {
|
|
|
return p.__rect
|
|
|
}
|
|
|
for (var y = 1 / 0, q = -(1 / 0), u = 1 / 0, m = -(1 / 0), v = 0; v < p.shapeList.length; v++) {
|
|
|
var w = p.shapeList[v],
|
|
|
x = w.getRect(w.style),
|
|
|
y = Math.min(x.x, y),
|
|
|
u = Math.min(x.y, u),
|
|
|
q = Math.max(x.x + x.width, q),
|
|
|
m = Math.max(x.y + x.height, m)
|
|
|
}
|
|
|
return p.__rect = {
|
|
|
x: y,
|
|
|
y: u,
|
|
|
width: q - y,
|
|
|
height: m - u
|
|
|
}, p.__rect
|
|
|
},
|
|
|
isCover: function(o, r) {
|
|
|
var p = this.transformCoordToLocal(o, r);
|
|
|
if (o = p[0], r = p[1], this.isCoverRect(o, r)) {
|
|
|
for (var q = 0; q < this.style.shapeList.length; q++) {
|
|
|
var m = this.style.shapeList[q];
|
|
|
if (m.isCover(o, r)) {
|
|
|
return !0
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return !1
|
|
|
}
|
|
|
}, a("../tool/util").inherits(j, l), j
|
|
|
}), d("echarts/util/ecAnimation", ["require", "zrender/tool/util", "zrender/tool/curve", "zrender/shape/Polygon"], function(v) {
|
|
|
function F(I, R, K, N, p) {
|
|
|
var O, P = K.style.pointList,
|
|
|
Q = P.length;
|
|
|
if (!R) {
|
|
|
if (O = [], "vertical" != K._orient) {
|
|
|
for (var L = P[0][1], J = 0; Q > J; J++) {
|
|
|
O[J] = [P[J][0], L]
|
|
|
}
|
|
|
} else {
|
|
|
for (var M = P[0][0], J = 0; Q > J; J++) {
|
|
|
O[J] = [M, P[J][1]]
|
|
|
}
|
|
|
}
|
|
|
"half-smooth-polygon" == K.type && (O[Q - 1] = C.clone(P[Q - 1]), O[Q - 2] = C.clone(P[Q - 2])), R = {
|
|
|
style: {
|
|
|
pointList: O
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
O = R.style.pointList;
|
|
|
var S = O.length;
|
|
|
K.style.pointList = S == Q ? O : Q > S ? O.concat(P.slice(S)) : O.slice(0, Q), I.addShape(K), K.__animating = !0, I.animate(K.id, "style").when(N, {
|
|
|
pointList: P
|
|
|
}).during(function() {
|
|
|
K.updateControlPoints && K.updateControlPoints(K.style)
|
|
|
}).done(function() {
|
|
|
K.__animating = !1
|
|
|
}).start(p)
|
|
|
}
|
|
|
|
|
|
function x(m, r) {
|
|
|
for (var o = arguments.length, p = 2; o > p; p++) {
|
|
|
var l = arguments[p];
|
|
|
m.style[l] = r.style[l]
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function A(p, P, L, i, M) {
|
|
|
var N = L.style;
|
|
|
P || (P = {
|
|
|
position: L.position,
|
|
|
style: {
|
|
|
x: N.x,
|
|
|
y: "vertical" == L._orient ? N.y + N.height : N.y,
|
|
|
width: "vertical" == L._orient ? N.width : 0,
|
|
|
height: "vertical" != L._orient ? N.height : 0
|
|
|
}
|
|
|
});
|
|
|
var O = N.x,
|
|
|
J = N.y,
|
|
|
I = N.width,
|
|
|
K = N.height,
|
|
|
Q = [L.position[0], L.position[1]];
|
|
|
x(L, P, "x", "y", "width", "height"), L.position = P.position, p.addShape(L), (Q[0] != P.position[0] || Q[1] != P.position[1]) && p.animate(L.id, "").when(i, {
|
|
|
position: Q
|
|
|
}).start(M), L.__animating = !0, p.animate(L.id, "style").when(i, {
|
|
|
x: O,
|
|
|
y: J,
|
|
|
width: I,
|
|
|
height: K
|
|
|
}).done(function() {
|
|
|
L.__animating = !1
|
|
|
}).start(M)
|
|
|
}
|
|
|
|
|
|
function j(m, K, p, s, l) {
|
|
|
if (!K) {
|
|
|
var I = p.style.y;
|
|
|
K = {
|
|
|
style: {
|
|
|
y: [I[0], I[0], I[0], I[0]]
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
var J = p.style.y;
|
|
|
p.style.y = K.style.y, m.addShape(p), p.__animating = !0, m.animate(p.id, "style").when(s, {
|
|
|
y: J
|
|
|
}).done(function() {
|
|
|
p.__animating = !1
|
|
|
}).start(l)
|
|
|
}
|
|
|
|
|
|
function B(p, O, I, K, m) {
|
|
|
var L = I.style.x,
|
|
|
M = I.style.y,
|
|
|
N = I.style.r0,
|
|
|
J = I.style.r;
|
|
|
I.__animating = !0, "r" != I._animationAdd ? (I.style.r0 = 0, I.style.r = 0, I.rotation = [2 * Math.PI, L, M], p.addShape(I), p.animate(I.id, "style").when(K, {
|
|
|
r0: N,
|
|
|
r: J
|
|
|
}).done(function() {
|
|
|
I.__animating = !1
|
|
|
}).start(m), p.animate(I.id, "").when(K, {
|
|
|
rotation: [0, L, M]
|
|
|
}).start(m)) : (I.style.r0 = I.style.r, p.addShape(I), p.animate(I.id, "style").when(K, {
|
|
|
r0: N
|
|
|
}).done(function() {
|
|
|
I.__animating = !1
|
|
|
}).start(m))
|
|
|
}
|
|
|
|
|
|
function D(l, K, m, i, p) {
|
|
|
K || (K = "r" != m._animationAdd ? {
|
|
|
style: {
|
|
|
startAngle: m.style.startAngle,
|
|
|
endAngle: m.style.startAngle
|
|
|
}
|
|
|
} : {
|
|
|
style: {
|
|
|
r0: m.style.r
|
|
|
}
|
|
|
});
|
|
|
var I = m.style.startAngle,
|
|
|
J = m.style.endAngle;
|
|
|
x(m, K, "startAngle", "endAngle"), l.addShape(m), m.__animating = !0, l.animate(m.id, "style").when(i, {
|
|
|
startAngle: I,
|
|
|
endAngle: J
|
|
|
}).done(function() {
|
|
|
m.__animating = !1
|
|
|
}).start(p)
|
|
|
}
|
|
|
|
|
|
function E(l, K, m, i, p) {
|
|
|
K || (K = {
|
|
|
style: {
|
|
|
x: "left" == m.style.textAlign ? m.style.x + 100 : m.style.x - 100,
|
|
|
y: m.style.y
|
|
|
}
|
|
|
});
|
|
|
var I = m.style.x,
|
|
|
J = m.style.y;
|
|
|
x(m, K, "x", "y"), l.addShape(m), m.__animating = !0, l.animate(m.id, "style").when(i, {
|
|
|
x: I,
|
|
|
y: J
|
|
|
}).done(function() {
|
|
|
m.__animating = !1
|
|
|
}).start(p)
|
|
|
}
|
|
|
|
|
|
function y(M, m, I, e, J) {
|
|
|
var K = v("zrender/shape/Polygon").prototype.getRect(I.style),
|
|
|
L = K.x + K.width / 2,
|
|
|
p = K.y + K.height / 2;
|
|
|
I.scale = [0.1, 0.1, L, p], M.addShape(I), I.__animating = !0, M.animate(I.id, "").when(e, {
|
|
|
scale: [1, 1, L, p]
|
|
|
}).done(function() {
|
|
|
I.__animating = !1
|
|
|
}).start(J)
|
|
|
}
|
|
|
|
|
|
function w(m, N, J, i, K) {
|
|
|
N || (N = {
|
|
|
style: {
|
|
|
source0: 0,
|
|
|
source1: J.style.source1 > 0 ? 360 : -360,
|
|
|
target0: 0,
|
|
|
target1: J.style.target1 > 0 ? 360 : -360
|
|
|
}
|
|
|
});
|
|
|
var L = J.style.source0,
|
|
|
M = J.style.source1,
|
|
|
I = J.style.target0,
|
|
|
p = J.style.target1;
|
|
|
N.style && x(J, N, "source0", "source1", "target0", "target1"), m.addShape(J), J.__animating = !0, m.animate(J.id, "style").when(i, {
|
|
|
source0: L,
|
|
|
source1: M,
|
|
|
target0: I,
|
|
|
target1: p
|
|
|
}).done(function() {
|
|
|
J.__animating = !1
|
|
|
}).start(K)
|
|
|
}
|
|
|
|
|
|
function z(m, I, p, r, l) {
|
|
|
I || (I = {
|
|
|
style: {
|
|
|
angle: p.style.startAngle
|
|
|
}
|
|
|
});
|
|
|
var s = p.style.angle;
|
|
|
p.style.angle = I.style.angle, m.addShape(p), p.__animating = !0, m.animate(p.id, "style").when(r, {
|
|
|
angle: s
|
|
|
}).done(function() {
|
|
|
p.__animating = !1
|
|
|
}).start(l)
|
|
|
}
|
|
|
|
|
|
function H(n, M, p, m, J, K) {
|
|
|
if (p.style._x = p.style.x, p.style._y = p.style.y, p.style._width = p.style.width, p.style._height = p.style.height, M) {
|
|
|
A(n, M, p, m, J)
|
|
|
} else {
|
|
|
var L = p._x || 0,
|
|
|
I = p._y || 0;
|
|
|
p.scale = [0.01, 0.01, L, I], n.addShape(p), p.__animating = !0, n.animate(p.id, "").delay(K).when(m, {
|
|
|
scale: [1, 1, L, I]
|
|
|
}).done(function() {
|
|
|
p.__animating = !1
|
|
|
}).start(J || "QuinticOut")
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function G(m, N, J, i, K) {
|
|
|
N || (N = {
|
|
|
style: {
|
|
|
xStart: J.style.xStart,
|
|
|
yStart: J.style.yStart,
|
|
|
xEnd: J.style.xStart,
|
|
|
yEnd: J.style.yStart
|
|
|
}
|
|
|
});
|
|
|
var L = J.style.xStart,
|
|
|
M = J.style.xEnd,
|
|
|
I = J.style.yStart,
|
|
|
p = J.style.yEnd;
|
|
|
x(J, N, "xStart", "xEnd", "yStart", "yEnd"), m.addShape(J), J.__animating = !0, m.animate(J.id, "style").when(i, {
|
|
|
xStart: L,
|
|
|
xEnd: M,
|
|
|
yStart: I,
|
|
|
yEnd: p
|
|
|
}).done(function() {
|
|
|
J.__animating = !1
|
|
|
}).start(K)
|
|
|
}
|
|
|
|
|
|
function u(K, W, M, P, I) {
|
|
|
I = I || "QuinticOut", M.__animating = !0, K.addShape(M);
|
|
|
var Q = M.style,
|
|
|
S = function() {
|
|
|
M.__animating = !1
|
|
|
},
|
|
|
T = Q.xStart,
|
|
|
N = Q.yStart,
|
|
|
L = Q.xEnd,
|
|
|
O = Q.yEnd;
|
|
|
if (Q.curveness > 0) {
|
|
|
M.updatePoints(Q);
|
|
|
var Z = {
|
|
|
p: 0
|
|
|
},
|
|
|
Y = Q.cpX1,
|
|
|
J = Q.cpY1,
|
|
|
R = [],
|
|
|
X = [],
|
|
|
aa = q.quadraticSubdivide;
|
|
|
K.animation.animate(Z).when(P, {
|
|
|
p: 1
|
|
|
}).during(function() {
|
|
|
aa(T, Y, L, Z.p, R), aa(N, J, O, Z.p, X), Q.cpX1 = R[1], Q.cpY1 = X[1], Q.xEnd = R[2], Q.yEnd = X[2], K.modShape(M)
|
|
|
}).done(S).start(I)
|
|
|
} else {
|
|
|
K.animate(M.id, "style").when(0, {
|
|
|
xEnd: T,
|
|
|
yEnd: N
|
|
|
}).when(P, {
|
|
|
xEnd: L,
|
|
|
yEnd: O
|
|
|
}).done(S).start(I)
|
|
|
}
|
|
|
}
|
|
|
var C = v("zrender/tool/util"),
|
|
|
q = v("zrender/tool/curve");
|
|
|
return {
|
|
|
pointList: F,
|
|
|
rectangle: A,
|
|
|
candle: j,
|
|
|
ring: B,
|
|
|
sector: D,
|
|
|
text: E,
|
|
|
polygon: y,
|
|
|
ribbon: w,
|
|
|
gaugePointer: z,
|
|
|
icon: H,
|
|
|
line: G,
|
|
|
markline: u
|
|
|
}
|
|
|
}), d("echarts/util/ecEffect", ["require", "../util/ecData", "zrender/shape/Circle", "zrender/shape/Image", "zrender/tool/curve", "../util/shape/Icon", "../util/shape/Symbol", "zrender/shape/ShapeBundle", "zrender/shape/Polyline", "zrender/tool/vector", "zrender/tool/env"], function(u) {
|
|
|
function E(I, P, K, N) {
|
|
|
var o, O = K.effect,
|
|
|
L = O.color || K.style.strokeColor || K.style.color,
|
|
|
M = O.shadowColor || L,
|
|
|
S = O.scaleSize,
|
|
|
R = O.bounceDistance,
|
|
|
H = "undefined" != typeof O.shadowBlur ? O.shadowBlur : S;
|
|
|
"image" !== K.type ? (o = new v({
|
|
|
zlevel: N,
|
|
|
style: {
|
|
|
brushType: "stroke",
|
|
|
iconType: "droplet" != K.style.iconType ? K.style.iconType : "circle",
|
|
|
x: H + 1,
|
|
|
y: H + 1,
|
|
|
n: K.style.n,
|
|
|
width: K.style._width * S,
|
|
|
height: K.style._height * S,
|
|
|
lineWidth: 1,
|
|
|
strokeColor: L,
|
|
|
shadowColor: M,
|
|
|
shadowBlur: H
|
|
|
},
|
|
|
draggable: !1,
|
|
|
hoverable: !1
|
|
|
}), "pin" == K.style.iconType && (o.style.y += o.style.height / 2 * 1.5), B && (o.style.image = I.shapeToImage(o, o.style.width + 2 * H + 2, o.style.height + 2 * H + 2).style.image, o = new D({
|
|
|
zlevel: o.zlevel,
|
|
|
style: o.style,
|
|
|
draggable: !1,
|
|
|
hoverable: !1
|
|
|
}))) : o = new D({
|
|
|
zlevel: N,
|
|
|
style: K.style,
|
|
|
draggable: !1,
|
|
|
hoverable: !1
|
|
|
}), A.clone(K, o), o.position = K.position, P.push(o), I.addShape(o);
|
|
|
var s = "image" !== K.type ? window.devicePixelRatio || 1 : 1,
|
|
|
Q = (o.style.width / s - K.style._width) / 2;
|
|
|
o.style.x = K.style._x - Q, o.style.y = K.style._y - Q, "pin" == K.style.iconType && (o.style.y -= K.style.height / 2 * 1.5);
|
|
|
var T = 100 * (O.period + 10 * Math.random());
|
|
|
I.modShape(K.id, {
|
|
|
invisible: !0
|
|
|
});
|
|
|
var J = o.style.x + o.style.width / 2 / s,
|
|
|
p = o.style.y + o.style.height / 2 / s;
|
|
|
"scale" === O.type ? (I.modShape(o.id, {
|
|
|
scale: [0.1, 0.1, J, p]
|
|
|
}), I.animate(o.id, "", O.loop).when(T, {
|
|
|
scale: [1, 1, J, p]
|
|
|
}).done(function() {
|
|
|
K.effect.show = !1, I.delShape(o.id)
|
|
|
}).start()) : I.animate(o.id, "style", O.loop).when(T, {
|
|
|
y: o.style.y - R
|
|
|
}).when(2 * T, {
|
|
|
y: o.style.y
|
|
|
}).done(function() {
|
|
|
K.effect.show = !1, I.delShape(o.id)
|
|
|
}).start()
|
|
|
}
|
|
|
|
|
|
function w(J, S, L, N) {
|
|
|
var m = L.effect,
|
|
|
O = m.color || L.style.strokeColor || L.style.color,
|
|
|
Q = m.scaleSize,
|
|
|
R = m.shadowColor || O,
|
|
|
M = "undefined" != typeof m.shadowBlur ? m.shadowBlur : 2 * Q,
|
|
|
K = window.devicePixelRatio || 1,
|
|
|
W = new y({
|
|
|
zlevel: N,
|
|
|
position: L.position,
|
|
|
scale: L.scale,
|
|
|
style: {
|
|
|
pointList: L.style.pointList,
|
|
|
iconType: L.style.iconType,
|
|
|
color: O,
|
|
|
strokeColor: O,
|
|
|
shadowColor: R,
|
|
|
shadowBlur: M * K,
|
|
|
random: !0,
|
|
|
brushType: "fill",
|
|
|
lineWidth: 1,
|
|
|
size: L.style.size
|
|
|
},
|
|
|
draggable: !1,
|
|
|
hoverable: !1
|
|
|
});
|
|
|
S.push(W), J.addShape(W), J.modShape(L.id, {
|
|
|
invisible: !0
|
|
|
});
|
|
|
for (var T = Math.round(100 * m.period), I = {}, P = {}, H = 0; 20 > H; H++) {
|
|
|
W.style["randomMap" + H] = 0, I = {}, I["randomMap" + H] = 100, P = {}, P["randomMap" + H] = 0, W.style["randomMap" + H] = 100 * Math.random(), J.animate(W.id, "style", !0).when(T, I).when(2 * T, P).when(3 * T, I).when(4 * T, I).delay(Math.random() * T * H).start()
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function z(M, ah, U, ae, o) {
|
|
|
var af = U.effect,
|
|
|
R = U.style,
|
|
|
ad = af.color || R.strokeColor || R.color,
|
|
|
al = af.shadowColor || R.strokeColor || ad,
|
|
|
r = R.lineWidth * af.scaleSize,
|
|
|
aj = "undefined" != typeof af.shadowBlur ? af.shadowBlur : r,
|
|
|
aq = new C({
|
|
|
zlevel: ae,
|
|
|
style: {
|
|
|
x: aj,
|
|
|
y: aj,
|
|
|
r: r,
|
|
|
color: ad,
|
|
|
shadowColor: al,
|
|
|
shadowBlur: aj
|
|
|
},
|
|
|
hoverable: !1
|
|
|
}),
|
|
|
Q = 0;
|
|
|
if (B && !o) {
|
|
|
var ae = aq.zlevel;
|
|
|
aq = M.shapeToImage(aq, 2 * (r + aj), 2 * (r + aj)), aq.zlevel = ae, aq.hoverable = !1, Q = aj
|
|
|
}
|
|
|
o || (A.clone(U, aq), aq.position = U.position, ah.push(aq), M.addShape(aq));
|
|
|
var p = function() {
|
|
|
o || (U.effect.show = !1, M.delShape(aq.id)), aq.effectAnimator = null
|
|
|
};
|
|
|
if (U instanceof F) {
|
|
|
for (var O = [0], aa = 0, ao = R.pointList, l = R.controlPointList, ac = 1; ac < ao.length; ac++) {
|
|
|
if (l) {
|
|
|
var an = l[2 * (ac - 1)],
|
|
|
ap = l[2 * (ac - 1) + 1];
|
|
|
aa += q.dist(ao[ac - 1], an) + q.dist(an, ap) + q.dist(ap, ao[ac])
|
|
|
} else {
|
|
|
aa += q.dist(ao[ac - 1], ao[ac])
|
|
|
}
|
|
|
O.push(aa)
|
|
|
}
|
|
|
for (var ak = {
|
|
|
p: 0
|
|
|
}, am = M.animation.animate(ak, {
|
|
|
loop: af.loop
|
|
|
}), ac = 0; ac < O.length; ac++) {
|
|
|
am.when(O[ac] * af.period, {
|
|
|
p: ac
|
|
|
})
|
|
|
}
|
|
|
am.during(function() {
|
|
|
var T, e, J = Math.floor(ak.p);
|
|
|
if (J == ao.length - 1) {
|
|
|
T = ao[J][0], e = ao[J][1]
|
|
|
} else {
|
|
|
var K = ak.p - J,
|
|
|
L = ao[J],
|
|
|
S = ao[J + 1];
|
|
|
if (l) {
|
|
|
var a = l[2 * J],
|
|
|
I = l[2 * J + 1];
|
|
|
T = x.cubicAt(L[0], a[0], I[0], S[0], K), e = x.cubicAt(L[1], a[1], I[1], S[1], K)
|
|
|
} else {
|
|
|
T = (S[0] - L[0]) * K + L[0], e = (S[1] - L[1]) * K + L[1]
|
|
|
}
|
|
|
}
|
|
|
aq.style.x = T, aq.style.y = e, o || M.modShape(aq)
|
|
|
}).done(p).start(), am.duration = aa * af.period, aq.effectAnimator = am
|
|
|
} else {
|
|
|
var ab = R.xStart - Q,
|
|
|
Y = R.yStart - Q,
|
|
|
Z = R.xEnd - Q,
|
|
|
H = R.yEnd - Q;
|
|
|
aq.style.x = ab, aq.style.y = Y;
|
|
|
var ag = (Z - ab) * (Z - ab) + (H - Y) * (H - Y),
|
|
|
N = Math.round(Math.sqrt(Math.round(ag * af.period * af.period)));
|
|
|
if (U.style.curveness > 0) {
|
|
|
var P = R.cpX1 - Q,
|
|
|
ai = R.cpY1 - Q;
|
|
|
aq.effectAnimator = M.animation.animate(aq, {
|
|
|
loop: af.loop
|
|
|
}).when(N, {
|
|
|
p: 1
|
|
|
}).during(function(e, a) {
|
|
|
aq.style.x = x.quadraticAt(ab, P, Z, a), aq.style.y = x.quadraticAt(Y, ai, H, a), o || M.modShape(aq)
|
|
|
}).done(p).start()
|
|
|
} else {
|
|
|
aq.effectAnimator = M.animation.animate(aq.style, {
|
|
|
loop: af.loop
|
|
|
}).when(N, {
|
|
|
x: Z,
|
|
|
y: H
|
|
|
}).during(function() {
|
|
|
o || M.modShape(aq)
|
|
|
}).done(p).start()
|
|
|
}
|
|
|
aq.effectAnimator.duration = N
|
|
|
}
|
|
|
return aq
|
|
|
}
|
|
|
|
|
|
function j(J, S, L, n) {
|
|
|
var O = new G({
|
|
|
style: {
|
|
|
shapeList: []
|
|
|
},
|
|
|
zlevel: n,
|
|
|
hoverable: !1
|
|
|
}),
|
|
|
Q = L.style.shapeList,
|
|
|
R = L.effect;
|
|
|
O.position = L.position;
|
|
|
for (var M = 0, K = [], N = 0; N < Q.length; N++) {
|
|
|
Q[N].effect = R;
|
|
|
var V = z(J, null, Q[N], n, !0),
|
|
|
I = V.effectAnimator;
|
|
|
O.style.shapeList.push(V), I.duration > M && (M = I.duration), 0 === N && (O.style.color = V.style.color, O.style.shadowBlur = V.style.shadowBlur, O.style.shadowColor = V.style.shadowColor), K.push(I)
|
|
|
}
|
|
|
S.push(O), J.addShape(O);
|
|
|
var P = function() {
|
|
|
for (var a = 0; a < K.length; a++) {
|
|
|
K[a].stop()
|
|
|
}
|
|
|
};
|
|
|
if (M) {
|
|
|
O.__dummy = 0;
|
|
|
var H = J.animate(O.id, "", R.loop).when(M, {
|
|
|
__dummy: 1
|
|
|
}).during(function() {
|
|
|
J.modShape(O)
|
|
|
}).done(function() {
|
|
|
L.effect.show = !1, J.delShape(O.id)
|
|
|
}).start(),
|
|
|
T = H.stop;
|
|
|
H.stop = function() {
|
|
|
P(), T.call(this)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
var A = u("../util/ecData"),
|
|
|
C = u("zrender/shape/Circle"),
|
|
|
D = u("zrender/shape/Image"),
|
|
|
x = u("zrender/tool/curve"),
|
|
|
v = u("../util/shape/Icon"),
|
|
|
y = u("../util/shape/Symbol"),
|
|
|
G = u("zrender/shape/ShapeBundle"),
|
|
|
F = u("zrender/shape/Polyline"),
|
|
|
q = u("zrender/tool/vector"),
|
|
|
B = u("zrender/tool/env").canvasSupported;
|
|
|
return {
|
|
|
point: E,
|
|
|
largePoint: w,
|
|
|
line: z,
|
|
|
largeLine: j
|
|
|
}
|
|
|
}), d("echarts/component/base", ["require", "../config", "../util/ecData", "../util/ecQuery", "../util/number", "zrender/tool/util", "zrender/tool/env"], function(l) {
|
|
|
function u(n, y, i, v, w) {
|
|
|
this.ecTheme = n, this.messageCenter = y, this.zr = i, this.option = v, this.series = v.series, this.myChart = w, this.component = w.component, this.shapeList = [], this.effectList = [];
|
|
|
var x = this;
|
|
|
x._onlegendhoverlink = function(z) {
|
|
|
if (x.legendHoverLink) {
|
|
|
for (var B, r = z.target, A = x.shapeList.length - 1; A >= 0; A--) {
|
|
|
B = x.type == m.CHART_TYPE_PIE || x.type == m.CHART_TYPE_FUNNEL ? p.get(x.shapeList[A], "name") : (p.get(x.shapeList[A], "series") || {}).name, B != r || x.shapeList[A].invisible || x.shapeList[A].__animating || x.zr.addHoverShape(x.shapeList[A])
|
|
|
}
|
|
|
}
|
|
|
}, y && y.bind(m.EVENT.LEGEND_HOVERLINK, this._onlegendhoverlink)
|
|
|
}
|
|
|
var m = l("../config"),
|
|
|
p = l("../util/ecData"),
|
|
|
j = l("../util/ecQuery"),
|
|
|
q = l("../util/number"),
|
|
|
s = l("zrender/tool/util");
|
|
|
return u.prototype = {
|
|
|
canvasSupported: l("zrender/tool/env").canvasSupported,
|
|
|
_getZ: function(a) {
|
|
|
if (null != this[a]) {
|
|
|
return this[a]
|
|
|
}
|
|
|
var i = this.ecTheme[this.type];
|
|
|
return i && null != i[a] ? i[a] : (i = m[this.type], i && null != i[a] ? i[a] : 0)
|
|
|
},
|
|
|
getZlevelBase: function() {
|
|
|
return this._getZ("zlevel")
|
|
|
},
|
|
|
getZBase: function() {
|
|
|
return this._getZ("z")
|
|
|
},
|
|
|
reformOption: function(a) {
|
|
|
return a = s.merge(s.merge(a || {}, s.clone(this.ecTheme[this.type] || {})), s.clone(m[this.type] || {})), this.z = a.z, this.zlevel = a.zlevel, a
|
|
|
},
|
|
|
reformCssArray: function(a) {
|
|
|
if (!(a instanceof Array)) {
|
|
|
return [a, a, a, a]
|
|
|
}
|
|
|
switch (a.length + "") {
|
|
|
case "4":
|
|
|
return a;
|
|
|
case "3":
|
|
|
return [a[0], a[1], a[2], a[1]];
|
|
|
case "2":
|
|
|
return [a[0], a[1], a[0], a[1]];
|
|
|
case "1":
|
|
|
return [a[0], a[0], a[0], a[0]];
|
|
|
case "0":
|
|
|
return [0, 0, 0, 0]
|
|
|
}
|
|
|
},
|
|
|
getShapeById: function(a) {
|
|
|
for (var o = 0, n = this.shapeList.length; n > o; o++) {
|
|
|
if (this.shapeList[o].id === a) {
|
|
|
return this.shapeList[o]
|
|
|
}
|
|
|
}
|
|
|
return null
|
|
|
},
|
|
|
getFont: function(a) {
|
|
|
var i = this.getTextStyle(s.clone(a));
|
|
|
return i.fontStyle + " " + i.fontWeight + " " + i.fontSize + "px " + i.fontFamily
|
|
|
},
|
|
|
getTextStyle: function(a) {
|
|
|
return s.merge(s.merge(a || {}, this.ecTheme.textStyle), m.textStyle)
|
|
|
},
|
|
|
getItemStyleColor: function(a, v, o, r) {
|
|
|
return "function" == typeof a ? a.call(this.myChart, {
|
|
|
seriesIndex: v,
|
|
|
series: this.series[v],
|
|
|
dataIndex: o,
|
|
|
data: r
|
|
|
}) : a
|
|
|
},
|
|
|
getDataFromOption: function(a, i) {
|
|
|
return null != a ? null != a.value ? a.value : a : i
|
|
|
},
|
|
|
subPixelOptimize: function(a, i) {
|
|
|
return a = i % 2 === 1 ? Math.floor(a) + 0.5 : Math.round(a)
|
|
|
},
|
|
|
resize: function() {
|
|
|
this.refresh && this.refresh(), this.clearEffectShape && this.clearEffectShape(!0);
|
|
|
var a = this;
|
|
|
setTimeout(function() {
|
|
|
a.animationEffect && a.animationEffect()
|
|
|
}, 200)
|
|
|
},
|
|
|
clear: function() {
|
|
|
this.clearEffectShape && this.clearEffectShape(), this.zr && this.zr.delShape(this.shapeList), this.shapeList = []
|
|
|
},
|
|
|
dispose: function() {
|
|
|
this.onbeforDispose && this.onbeforDispose(), this.clear(), this.shapeList = null, this.effectList = null, this.messageCenter && this.messageCenter.unbind(m.EVENT.LEGEND_HOVERLINK, this._onlegendhoverlink), this.onafterDispose && this.onafterDispose()
|
|
|
},
|
|
|
query: j.query,
|
|
|
deepQuery: j.deepQuery,
|
|
|
deepMerge: j.deepMerge,
|
|
|
parsePercent: q.parsePercent,
|
|
|
parseCenter: q.parseCenter,
|
|
|
parseRadius: q.parseRadius,
|
|
|
numAddCommas: q.addCommas,
|
|
|
getPrecision: q.getPrecision
|
|
|
}, u
|
|
|
}), d("echarts/layout/EdgeBundling", ["require", "../data/KDTree", "zrender/tool/vector"], function(p) {
|
|
|
function B(m, F) {
|
|
|
m = m.array, F = F.array;
|
|
|
var r = F[0] - m[0],
|
|
|
s = F[1] - m[1],
|
|
|
l = F[2] - m[2],
|
|
|
E = F[3] - m[3];
|
|
|
return r * r + s * s + l * l + E * E
|
|
|
}
|
|
|
|
|
|
function u(a) {
|
|
|
this.points = [a.mp0, a.mp1], this.group = a
|
|
|
}
|
|
|
|
|
|
function x(a) {
|
|
|
var i = a.points;
|
|
|
i[0][1] < i[1][1] || a instanceof u ? (this.array = [i[0][0], i[0][1], i[1][0], i[1][1]], this._startPoint = i[0], this._endPoint = i[1]) : (this.array = [i[1][0], i[1][1], i[0][0], i[0][1]], this._startPoint = i[1], this._endPoint = i[0]), this.ink = w(i[0], i[1]), this.edge = a, this.group = null
|
|
|
}
|
|
|
|
|
|
function j() {
|
|
|
this.edgeList = [], this.mp0 = v(), this.mp1 = v(), this.ink = 0
|
|
|
}
|
|
|
|
|
|
function y() {
|
|
|
this.maxNearestEdge = 6, this.maxTurningAngle = Math.PI / 4, this.maxIteration = 20
|
|
|
}
|
|
|
var z = p("../data/KDTree"),
|
|
|
A = p("zrender/tool/vector"),
|
|
|
v = A.create,
|
|
|
q = A.distSquare,
|
|
|
w = A.dist,
|
|
|
D = A.copy,
|
|
|
C = A.clone;
|
|
|
return x.prototype.getStartPoint = function() {
|
|
|
return this._startPoint
|
|
|
}, x.prototype.getEndPoint = function() {
|
|
|
return this._endPoint
|
|
|
}, j.prototype.addEdge = function(a) {
|
|
|
a.group = this, this.edgeList.push(a)
|
|
|
}, j.prototype.removeEdge = function(a) {
|
|
|
a.group = null, this.edgeList.splice(this.edgeList.indexOf(a), 1)
|
|
|
}, y.prototype = {
|
|
|
constructor: y,
|
|
|
run: function(E) {
|
|
|
function L(a, l) {
|
|
|
return q(a, l) < 1e-10
|
|
|
}
|
|
|
|
|
|
function H(m, r) {
|
|
|
for (var s = [], l = 0, t = 0; t < m.length; t++) {
|
|
|
l > 0 && L(m[t], s[l - 1]) || (s[l++] = C(m[t]))
|
|
|
}
|
|
|
return r[0] && !L(s[0], r[0]) && (s = s.reverse()), s
|
|
|
}
|
|
|
for (var i = this._iterate(E), I = 0; I++ < this.maxIteration;) {
|
|
|
for (var J = [], K = 0; K < i.groups.length; K++) {
|
|
|
J.push(new u(i.groups[K]))
|
|
|
}
|
|
|
var F = this._iterate(J);
|
|
|
if (F.savedInk <= 0) {
|
|
|
break
|
|
|
}
|
|
|
i = F
|
|
|
}
|
|
|
var G = [],
|
|
|
M = function(n, S) {
|
|
|
for (var m, P = 0; P < n.length; P++) {
|
|
|
var Q = n[P];
|
|
|
if (Q.edgeList[0] && Q.edgeList[0].edge instanceof u) {
|
|
|
for (var R = [], O = 0; O < Q.edgeList.length; O++) {
|
|
|
R.push(Q.edgeList[O].edge.group)
|
|
|
}
|
|
|
m = S ? S.slice() : [], m.unshift(Q.mp0), m.push(Q.mp1), M(R, m)
|
|
|
} else {
|
|
|
for (var O = 0; O < Q.edgeList.length; O++) {
|
|
|
var N = Q.edgeList[O];
|
|
|
m = S ? S.slice() : [], m.unshift(Q.mp0), m.push(Q.mp1), m.unshift(N.getStartPoint()), m.push(N.getEndPoint()), G.push({
|
|
|
points: H(m, N.edge.points),
|
|
|
rawEdge: N.edge
|
|
|
})
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
return M(i.groups), G
|
|
|
},
|
|
|
_iterate: function(t) {
|
|
|
for (var H = [], M = [], O = 0, G = 0; G < t.length; G++) {
|
|
|
var K = new x(t[G]);
|
|
|
H.push(K)
|
|
|
}
|
|
|
for (var Q = new z(H, 4), r = [], N = v(), n = v(), P = 0, V = v(), F = v(), l = 0, G = 0; G < H.length; G++) {
|
|
|
var K = H[G];
|
|
|
if (!K.group) {
|
|
|
Q.nearestN(K, this.maxNearestEdge, B, r);
|
|
|
for (var E = 0, I = null, S = null, a = 0; a < r.length; a++) {
|
|
|
var J = r[a],
|
|
|
R = 0;
|
|
|
J.group ? J.group !== S && (S = J.group, P = this._calculateGroupEdgeInk(J.group, K, N, n), R = J.group.ink + K.ink - P) : (P = this._calculateEdgeEdgeInk(K, J, N, n), R = J.ink + K.ink - P), R > E && (E = R, I = J, D(F, n), D(V, N), l = P)
|
|
|
}
|
|
|
if (I) {
|
|
|
O += E;
|
|
|
var T;
|
|
|
I.group || (T = new j, M.push(T), T.addEdge(I)), T = I.group, D(T.mp0, V), D(T.mp1, F), T.ink = l, I.group.addEdge(K)
|
|
|
} else {
|
|
|
var T = new j;
|
|
|
M.push(T), D(T.mp0, K.getStartPoint()), D(T.mp1, K.getEndPoint()), T.ink = K.ink, T.addEdge(K)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return {
|
|
|
groups: M,
|
|
|
edges: H,
|
|
|
savedInk: O
|
|
|
}
|
|
|
},
|
|
|
_calculateEdgeEdgeInk: function() {
|
|
|
var a = [],
|
|
|
i = [];
|
|
|
return function(l, m, e, s) {
|
|
|
a[0] = l.getStartPoint(), a[1] = m.getStartPoint(), i[0] = l.getEndPoint(), i[1] = m.getEndPoint(), this._calculateMeetPoints(a, i, e, s);
|
|
|
var t = w(a[0], e) + w(e, s) + w(s, i[0]) + w(a[1], e) + w(s, i[1]);
|
|
|
return t
|
|
|
}
|
|
|
}(),
|
|
|
_calculateGroupEdgeInk: function(E, L, F, H) {
|
|
|
for (var m = [], I = [], J = 0; J < E.edgeList.length; J++) {
|
|
|
var K = E.edgeList[J];
|
|
|
m.push(K.getStartPoint()), I.push(K.getEndPoint())
|
|
|
}
|
|
|
m.push(L.getStartPoint()), I.push(L.getEndPoint()), this._calculateMeetPoints(m, I, F, H);
|
|
|
for (var G = w(F, H), J = 0; J < m.length; J++) {
|
|
|
G += w(m[J], F) + w(I[J], H)
|
|
|
}
|
|
|
return G
|
|
|
},
|
|
|
_calculateMeetPoints: function() {
|
|
|
var a = v(),
|
|
|
i = v();
|
|
|
return function(m, t, e, E) {
|
|
|
A.set(a, 0, 0), A.set(i, 0, 0);
|
|
|
for (var F = m.length, s = 0; F > s; s++) {
|
|
|
A.add(a, a, m[s])
|
|
|
}
|
|
|
A.scale(a, a, 1 / F), F = t.length;
|
|
|
for (var s = 0; F > s; s++) {
|
|
|
A.add(i, i, t[s])
|
|
|
}
|
|
|
A.scale(i, i, 1 / F), this._limitTurningAngle(m, a, i, e), this._limitTurningAngle(t, i, a, E)
|
|
|
}
|
|
|
}(),
|
|
|
_limitTurningAngle: function() {
|
|
|
var a = v(),
|
|
|
o = v(),
|
|
|
l = v(),
|
|
|
m = v();
|
|
|
return function(e, G, I, F) {
|
|
|
var L = Math.cos(this.maxTurningAngle),
|
|
|
K = Math.tan(this.maxTurningAngle);
|
|
|
A.sub(a, G, I), A.normalize(a, a), A.copy(F, G);
|
|
|
for (var s = 0, H = 0; H < e.length; H++) {
|
|
|
var n = e[H];
|
|
|
A.sub(o, n, G);
|
|
|
var J = A.len(o);
|
|
|
A.scale(o, o, 1 / J);
|
|
|
var M = A.dot(o, a);
|
|
|
if (L > M) {
|
|
|
A.scaleAndAdd(l, G, a, J * M);
|
|
|
var E = w(l, n),
|
|
|
i = E / K;
|
|
|
A.scaleAndAdd(m, l, a, -i);
|
|
|
var t = q(m, G);
|
|
|
t > s && (s = t, A.copy(F, m))
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}()
|
|
|
}, y
|
|
|
}), d("zrender/shape/Star", ["require", "../tool/math", "./Base", "../tool/util"], function(l) {
|
|
|
var u = l("../tool/math"),
|
|
|
m = u.sin,
|
|
|
p = u.cos,
|
|
|
j = Math.PI,
|
|
|
q = l("./Base"),
|
|
|
s = function(a) {
|
|
|
q.call(this, a)
|
|
|
};
|
|
|
return s.prototype = {
|
|
|
type: "star",
|
|
|
buildPath: function(n, D) {
|
|
|
var z = D.n;
|
|
|
if (z && !(2 > z)) {
|
|
|
var B = D.x,
|
|
|
C = D.y,
|
|
|
w = D.r,
|
|
|
v = D.r0;
|
|
|
null == v && (v = z > 4 ? w * p(2 * j / z) / p(j / z) : w / 3);
|
|
|
var x = j / z,
|
|
|
G = -j / 2,
|
|
|
F = B + w * p(G),
|
|
|
i = C + w * m(G);
|
|
|
G += x;
|
|
|
var A = D.pointList = [];
|
|
|
A.push([F, i]);
|
|
|
for (var a, E = 0, H = 2 * z - 1; H > E; E++) {
|
|
|
a = E % 2 === 0 ? v : w, A.push([B + a * p(G), C + a * m(G)]), G += x
|
|
|
}
|
|
|
A.push([F, i]), n.moveTo(A[0][0], A[0][1]);
|
|
|
for (var E = 0; E < A.length; E++) {
|
|
|
n.lineTo(A[E][0], A[E][1])
|
|
|
}
|
|
|
n.closePath()
|
|
|
}
|
|
|
},
|
|
|
getRect: function(a) {
|
|
|
if (a.__rect) {
|
|
|
return a.__rect
|
|
|
}
|
|
|
var i;
|
|
|
return i = "stroke" == a.brushType || "fill" == a.brushType ? a.lineWidth || 1 : 0, a.__rect = {
|
|
|
x: Math.round(a.x - a.r - i / 2),
|
|
|
y: Math.round(a.y - a.r - i / 2),
|
|
|
width: 2 * a.r + i,
|
|
|
height: 2 * a.r + i
|
|
|
}, a.__rect
|
|
|
}
|
|
|
}, l("../tool/util").inherits(s, q), s
|
|
|
}), d("zrender/shape/Heart", ["require", "./Base", "./util/PathProxy", "../tool/area", "../tool/util"], function(l) {
|
|
|
var p = l("./Base"),
|
|
|
m = l("./util/PathProxy"),
|
|
|
o = l("../tool/area"),
|
|
|
j = function(a) {
|
|
|
p.call(this, a), this._pathProxy = new m
|
|
|
};
|
|
|
return j.prototype = {
|
|
|
type: "heart",
|
|
|
buildPath: function(a, q) {
|
|
|
var i = this._pathProxy || new m;
|
|
|
i.begin(a), i.moveTo(q.x, q.y), i.bezierCurveTo(q.x + q.a / 2, q.y - 2 * q.b / 3, q.x + 2 * q.a, q.y + q.b / 3, q.x, q.y + q.b), i.bezierCurveTo(q.x - 2 * q.a, q.y + q.b / 3, q.x - q.a / 2, q.y - 2 * q.b / 3, q.x, q.y), i.closePath()
|
|
|
},
|
|
|
getRect: function(a) {
|
|
|
return a.__rect ? a.__rect : (this._pathProxy.isEmpty() || this.buildPath(null, a), this._pathProxy.fastBoundingRect())
|
|
|
},
|
|
|
isCover: function(a, q) {
|
|
|
var n = this.transformCoordToLocal(a, q);
|
|
|
return a = n[0], q = n[1], this.isCoverRect(a, q) ? o.isInsidePath(this._pathProxy.pathCommands, this.style.lineWidth, this.style.brushType, a, q) : void 0
|
|
|
}
|
|
|
}, l("../tool/util").inherits(j, p), j
|
|
|
}), d("zrender/shape/Droplet", ["require", "./Base", "./util/PathProxy", "../tool/area", "../tool/util"], function(l) {
|
|
|
var p = l("./Base"),
|
|
|
m = l("./util/PathProxy"),
|
|
|
o = l("../tool/area"),
|
|
|
j = function(a) {
|
|
|
p.call(this, a), this._pathProxy = new m
|
|
|
};
|
|
|
return j.prototype = {
|
|
|
type: "droplet",
|
|
|
buildPath: function(a, q) {
|
|
|
var i = this._pathProxy || new m;
|
|
|
i.begin(a), i.moveTo(q.x, q.y + q.a), i.bezierCurveTo(q.x + q.a, q.y + q.a, q.x + 3 * q.a / 2, q.y - q.a / 3, q.x, q.y - q.b), i.bezierCurveTo(q.x - 3 * q.a / 2, q.y - q.a / 3, q.x - q.a, q.y + q.a, q.x, q.y + q.a), i.closePath()
|
|
|
},
|
|
|
getRect: function(a) {
|
|
|
return a.__rect ? a.__rect : (this._pathProxy.isEmpty() || this.buildPath(null, a), this._pathProxy.fastBoundingRect())
|
|
|
},
|
|
|
isCover: function(a, q) {
|
|
|
var n = this.transformCoordToLocal(a, q);
|
|
|
return a = n[0], q = n[1], this.isCoverRect(a, q) ? o.isInsidePath(this._pathProxy.pathCommands, this.style.lineWidth, this.style.brushType, a, q) : void 0
|
|
|
}
|
|
|
}, l("../tool/util").inherits(j, p), j
|
|
|
}), d("zrender/tool/math", [], function() {
|
|
|
function l(a, i) {
|
|
|
return Math.sin(i ? a * j : a)
|
|
|
}
|
|
|
|
|
|
function p(a, i) {
|
|
|
return Math.cos(i ? a * j : a)
|
|
|
}
|
|
|
|
|
|
function m(a) {
|
|
|
return a * j
|
|
|
}
|
|
|
|
|
|
function o(a) {
|
|
|
return a / j
|
|
|
}
|
|
|
var j = Math.PI / 180;
|
|
|
return {
|
|
|
sin: l,
|
|
|
cos: p,
|
|
|
degreeToRadian: m,
|
|
|
radianToDegree: o
|
|
|
}
|
|
|
}), d("zrender/shape/util/PathProxy", ["require", "../../tool/vector"], function(a) {
|
|
|
var m = a("../../tool/vector"),
|
|
|
j = function(i, n) {
|
|
|
this.command = i, this.points = n || null
|
|
|
},
|
|
|
l = function() {
|
|
|
this.pathCommands = [], this._ctx = null, this._min = [], this._max = []
|
|
|
};
|
|
|
return l.prototype.fastBoundingRect = function() {
|
|
|
var q = this._min,
|
|
|
u = this._max;
|
|
|
q[0] = q[1] = 1 / 0, u[0] = u[1] = -(1 / 0);
|
|
|
for (var x = 0; x < this.pathCommands.length; x++) {
|
|
|
var p = this.pathCommands[x],
|
|
|
y = p.points;
|
|
|
switch (p.command) {
|
|
|
case "M":
|
|
|
m.min(q, q, y), m.max(u, u, y);
|
|
|
break;
|
|
|
case "L":
|
|
|
m.min(q, q, y), m.max(u, u, y);
|
|
|
break;
|
|
|
case "C":
|
|
|
for (var z = 0; 6 > z; z += 2) {
|
|
|
q[0] = Math.min(q[0], q[0], y[z]), q[1] = Math.min(q[1], q[1], y[z + 1]), u[0] = Math.max(u[0], u[0], y[z]), u[1] = Math.max(u[1], u[1], y[z + 1])
|
|
|
}
|
|
|
break;
|
|
|
case "Q":
|
|
|
for (var z = 0; 4 > z; z += 2) {
|
|
|
q[0] = Math.min(q[0], q[0], y[z]), q[1] = Math.min(q[1], q[1], y[z + 1]), u[0] = Math.max(u[0], u[0], y[z]), u[1] = Math.max(u[1], u[1], y[z + 1])
|
|
|
}
|
|
|
break;
|
|
|
case "A":
|
|
|
var A = y[0],
|
|
|
v = y[1],
|
|
|
t = y[2],
|
|
|
w = y[3];
|
|
|
q[0] = Math.min(q[0], q[0], A - t), q[1] = Math.min(q[1], q[1], v - w), u[0] = Math.max(u[0], u[0], A + t), u[1] = Math.max(u[1], u[1], v + w)
|
|
|
}
|
|
|
}
|
|
|
return {
|
|
|
x: q[0],
|
|
|
y: q[1],
|
|
|
width: u[0] - q[0],
|
|
|
height: u[1] - q[1]
|
|
|
}
|
|
|
}, l.prototype.begin = function(i) {
|
|
|
return this._ctx = i || null, this.pathCommands.length = 0, this
|
|
|
}, l.prototype.moveTo = function(i, n) {
|
|
|
return this.pathCommands.push(new j("M", [i, n])), this._ctx && this._ctx.moveTo(i, n), this
|
|
|
}, l.prototype.lineTo = function(i, n) {
|
|
|
return this.pathCommands.push(new j("L", [i, n])), this._ctx && this._ctx.lineTo(i, n), this
|
|
|
}, l.prototype.bezierCurveTo = function(p, v, q, i, s, u) {
|
|
|
return this.pathCommands.push(new j("C", [p, v, q, i, s, u])), this._ctx && this._ctx.bezierCurveTo(p, v, q, i, s, u), this
|
|
|
}, l.prototype.quadraticCurveTo = function(o, q, p, i) {
|
|
|
return this.pathCommands.push(new j("Q", [o, q, p, i])), this._ctx && this._ctx.quadraticCurveTo(o, q, p, i), this
|
|
|
}, l.prototype.arc = function(p, v, q, i, s, u) {
|
|
|
return this.pathCommands.push(new j("A", [p, v, q, q, i, s - i, 0, u ? 0 : 1])), this._ctx && this._ctx.arc(p, v, q, i, s, u), this
|
|
|
}, l.prototype.arcTo = function(p, s, q, r, o) {
|
|
|
return this._ctx && this._ctx.arcTo(p, s, q, r, o), this
|
|
|
}, l.prototype.rect = function(o, r, p, q) {
|
|
|
return this._ctx && this._ctx.rect(o, r, p, q), this
|
|
|
}, l.prototype.closePath = function() {
|
|
|
return this.pathCommands.push(new j("z")), this._ctx && this._ctx.closePath(), this
|
|
|
}, l.prototype.isEmpty = function() {
|
|
|
return 0 === this.pathCommands.length
|
|
|
}, l.PathSegment = j, l
|
|
|
}), d("zrender/shape/Line", ["require", "./Base", "./util/dashedLineTo", "../tool/util"], function(a) {
|
|
|
var m = a("./Base"),
|
|
|
j = a("./util/dashedLineTo"),
|
|
|
l = function(i) {
|
|
|
this.brushTypeOnly = "stroke", this.textPosition = "end", m.call(this, i)
|
|
|
};
|
|
|
return l.prototype = {
|
|
|
type: "line",
|
|
|
buildPath: function(i, p) {
|
|
|
if (p.lineType && "solid" != p.lineType) {
|
|
|
if ("dashed" == p.lineType || "dotted" == p.lineType) {
|
|
|
var o = (p.lineWidth || 1) * ("dashed" == p.lineType ? 5 : 1);
|
|
|
j(i, p.xStart, p.yStart, p.xEnd, p.yEnd, o)
|
|
|
}
|
|
|
} else {
|
|
|
i.moveTo(p.xStart, p.yStart), i.lineTo(p.xEnd, p.yEnd)
|
|
|
}
|
|
|
},
|
|
|
getRect: function(i) {
|
|
|
if (i.__rect) {
|
|
|
return i.__rect
|
|
|
}
|
|
|
var n = i.lineWidth || 1;
|
|
|
return i.__rect = {
|
|
|
x: Math.min(i.xStart, i.xEnd) - n,
|
|
|
y: Math.min(i.yStart, i.yEnd) - n,
|
|
|
width: Math.abs(i.xStart - i.xEnd) + n,
|
|
|
height: Math.abs(i.yStart - i.yEnd) + n
|
|
|
}, i.__rect
|
|
|
}
|
|
|
}, a("../tool/util").inherits(l, m), l
|
|
|
}), d("zrender/shape/BezierCurve", ["require", "./Base", "../tool/util"], function(a) {
|
|
|
var l = a("./Base"),
|
|
|
j = function(i) {
|
|
|
this.brushTypeOnly = "stroke", this.textPosition = "end", l.call(this, i)
|
|
|
};
|
|
|
return j.prototype = {
|
|
|
type: "bezier-curve",
|
|
|
buildPath: function(i, m) {
|
|
|
i.moveTo(m.xStart, m.yStart), "undefined" != typeof m.cpX2 && "undefined" != typeof m.cpY2 ? i.bezierCurveTo(m.cpX1, m.cpY1, m.cpX2, m.cpY2, m.xEnd, m.yEnd) : i.quadraticCurveTo(m.cpX1, m.cpY1, m.xEnd, m.yEnd)
|
|
|
},
|
|
|
getRect: function(p) {
|
|
|
if (p.__rect) {
|
|
|
return p.__rect
|
|
|
}
|
|
|
var y = Math.min(p.xStart, p.xEnd, p.cpX1),
|
|
|
q = Math.min(p.yStart, p.yEnd, p.cpY1),
|
|
|
u = Math.max(p.xStart, p.xEnd, p.cpX1),
|
|
|
m = Math.max(p.yStart, p.yEnd, p.cpY1),
|
|
|
v = p.cpX2,
|
|
|
w = p.cpY2;
|
|
|
"undefined" != typeof v && "undefined" != typeof w && (y = Math.min(y, v), q = Math.min(q, w), u = Math.max(u, v), m = Math.max(m, w));
|
|
|
var x = p.lineWidth || 1;
|
|
|
return p.__rect = {
|
|
|
x: y - x,
|
|
|
y: q - x,
|
|
|
width: u - y + x,
|
|
|
height: m - q + x
|
|
|
}, p.__rect
|
|
|
}
|
|
|
}, a("../tool/util").inherits(j, l), j
|
|
|
}), d("zrender/shape/util/dashedLineTo", [], function() {
|
|
|
var a = [5, 5];
|
|
|
return function(z, p, v, e, w, x) {
|
|
|
if (z.setLineDash) {
|
|
|
return a[0] = a[1] = x, z.setLineDash(a), z.moveTo(p, v), void z.lineTo(e, w)
|
|
|
}
|
|
|
x = "number" != typeof x ? 5 : x;
|
|
|
var y = e - p,
|
|
|
q = w - v,
|
|
|
j = Math.floor(Math.sqrt(y * y + q * q) / x);
|
|
|
y /= j, q /= j;
|
|
|
for (var u = !0, A = 0; j > A; ++A) {
|
|
|
u ? z.moveTo(p, v) : z.lineTo(p, v), u = !u, p += y, v += q
|
|
|
}
|
|
|
z.lineTo(e, w)
|
|
|
}
|
|
|
}), d("zrender/shape/Polygon", ["require", "./Base", "./util/smoothSpline", "./util/smoothBezier", "./util/dashedLineTo", "../tool/util"], function(l) {
|
|
|
var r = l("./Base"),
|
|
|
m = l("./util/smoothSpline"),
|
|
|
p = l("./util/smoothBezier"),
|
|
|
j = l("./util/dashedLineTo"),
|
|
|
q = function(a) {
|
|
|
r.call(this, a)
|
|
|
};
|
|
|
return q.prototype = {
|
|
|
type: "polygon",
|
|
|
buildPath: function(i, z) {
|
|
|
var w = z.pointList;
|
|
|
if (!(w.length < 2)) {
|
|
|
if (z.smooth && "spline" !== z.smooth) {
|
|
|
var x = p(w, z.smooth, !0, z.smoothConstraint);
|
|
|
i.moveTo(w[0][0], w[0][1]);
|
|
|
for (var y, u, n, v = w.length, B = 0; v > B; B++) {
|
|
|
y = x[2 * B], u = x[2 * B + 1], n = w[(B + 1) % v], i.bezierCurveTo(y[0], y[1], u[0], u[1], n[0], n[1])
|
|
|
}
|
|
|
} else {
|
|
|
if ("spline" === z.smooth && (w = m(w, !0)), z.lineType && "solid" != z.lineType) {
|
|
|
if ("dashed" == z.lineType || "dotted" == z.lineType) {
|
|
|
var A = z._dashLength || (z.lineWidth || 1) * ("dashed" == z.lineType ? 5 : 1);
|
|
|
z._dashLength = A, i.moveTo(w[0][0], w[0][1]);
|
|
|
for (var B = 1, a = w.length; a > B; B++) {
|
|
|
j(i, w[B - 1][0], w[B - 1][1], w[B][0], w[B][1], A)
|
|
|
}
|
|
|
j(i, w[w.length - 1][0], w[w.length - 1][1], w[0][0], w[0][1], A)
|
|
|
}
|
|
|
} else {
|
|
|
i.moveTo(w[0][0], w[0][1]);
|
|
|
for (var B = 1, a = w.length; a > B; B++) {
|
|
|
i.lineTo(w[B][0], w[B][1])
|
|
|
}
|
|
|
i.lineTo(w[0][0], w[0][1])
|
|
|
}
|
|
|
}
|
|
|
i.closePath()
|
|
|
}
|
|
|
},
|
|
|
getRect: function(v) {
|
|
|
if (v.__rect) {
|
|
|
return v.__rect
|
|
|
}
|
|
|
for (var C = Number.MAX_VALUE, w = Number.MIN_VALUE, y = Number.MAX_VALUE, u = Number.MIN_VALUE, z = v.pointList, A = 0, B = z.length; B > A; A++) {
|
|
|
z[A][0] < C && (C = z[A][0]), z[A][0] > w && (w = z[A][0]), z[A][1] < y && (y = z[A][1]), z[A][1] > u && (u = z[A][1])
|
|
|
}
|
|
|
var x;
|
|
|
return x = "stroke" == v.brushType || "fill" == v.brushType ? v.lineWidth || 1 : 0, v.__rect = {
|
|
|
x: Math.round(C - x / 2),
|
|
|
y: Math.round(y - x / 2),
|
|
|
width: w - C + x,
|
|
|
height: u - y + x
|
|
|
}, v.__rect
|
|
|
}
|
|
|
}, l("../tool/util").inherits(q, r), q
|
|
|
}), d("echarts/util/shape/normalIsCover", [], function() {
|
|
|
return function(a, l) {
|
|
|
var j = this.transformCoordToLocal(a, l);
|
|
|
return a = j[0], l = j[1], this.isCoverRect(a, l)
|
|
|
}
|
|
|
}), d("zrender/shape/util/smoothSpline", ["require", "../../tool/vector"], function(a) {
|
|
|
function l(p, z, q, v, m, w, x) {
|
|
|
var y = 0.5 * (q - p),
|
|
|
u = 0.5 * (v - z);
|
|
|
return (2 * (z - q) + y + u) * x + (-3 * (z - q) - 2 * y - u) * w + y * m + z
|
|
|
}
|
|
|
var j = a("../../tool/vector");
|
|
|
return function(v, A) {
|
|
|
for (var i = v.length, B = [], D = 0, E = 1; i > E; E++) {
|
|
|
D += j.distance(v[E - 1], v[E])
|
|
|
}
|
|
|
var x = D / 5;
|
|
|
x = i > x ? i : x;
|
|
|
for (var E = 0; x > E; E++) {
|
|
|
var w, z, H, G = E / (x - 1) * (A ? i : i - 1),
|
|
|
t = Math.floor(G),
|
|
|
C = G - t,
|
|
|
q = v[t % i];
|
|
|
A ? (w = v[(t - 1 + i) % i], z = v[(t + 1) % i], H = v[(t + 2) % i]) : (w = v[0 === t ? t : t - 1], z = v[t > i - 2 ? i - 1 : t + 1], H = v[t > i - 3 ? i - 1 : t + 2]);
|
|
|
var F = C * C,
|
|
|
I = C * F;
|
|
|
B.push([l(w[0], q[0], z[0], H[0], C, F, I), l(w[1], q[1], z[1], H[1], C, F, I)])
|
|
|
}
|
|
|
return B
|
|
|
}
|
|
|
}), d("zrender/shape/util/smoothBezier", ["require", "../../tool/vector"], function(a) {
|
|
|
var i = a("../../tool/vector");
|
|
|
return function(w, B, F, j) {
|
|
|
var G, I, J, D, A = [],
|
|
|
E = [],
|
|
|
M = [],
|
|
|
L = [],
|
|
|
v = !!j;
|
|
|
if (v) {
|
|
|
J = [1 / 0, 1 / 0], D = [-(1 / 0), -(1 / 0)];
|
|
|
for (var H = 0, t = w.length; t > H; H++) {
|
|
|
i.min(J, J, w[H]), i.max(D, D, w[H])
|
|
|
}
|
|
|
i.min(J, J, j[0]), i.max(D, D, j[1])
|
|
|
}
|
|
|
for (var H = 0, t = w.length; t > H; H++) {
|
|
|
var G, I, K = w[H];
|
|
|
if (F) {
|
|
|
G = w[H ? H - 1 : t - 1], I = w[(H + 1) % t]
|
|
|
} else {
|
|
|
if (0 === H || H === t - 1) {
|
|
|
A.push(i.clone(w[H]));
|
|
|
continue
|
|
|
}
|
|
|
G = w[H - 1], I = w[H + 1]
|
|
|
}
|
|
|
i.sub(E, I, G), i.scale(E, E, B);
|
|
|
var N = i.distance(K, G),
|
|
|
z = i.distance(K, I),
|
|
|
q = N + z;
|
|
|
0 !== q && (N /= q, z /= q), i.scale(M, E, -N), i.scale(L, E, z);
|
|
|
var x = i.add([], K, M),
|
|
|
C = i.add([], K, L);
|
|
|
v && (i.max(x, x, J), i.min(x, x, D), i.max(C, C, J), i.min(C, C, D)), A.push(x), A.push(C)
|
|
|
}
|
|
|
return F && A.push(i.clone(A.shift())), A
|
|
|
}
|
|
|
}), d("echarts/util/ecQuery", ["require", "zrender/tool/util"], function(l) {
|
|
|
function p(a, s) {
|
|
|
if ("undefined" != typeof a) {
|
|
|
if (!s) {
|
|
|
return a
|
|
|
}
|
|
|
s = s.split(".");
|
|
|
for (var q = s.length, r = 0; q > r;) {
|
|
|
if (a = a[s[r]], "undefined" == typeof a) {
|
|
|
return
|
|
|
}
|
|
|
r++
|
|
|
}
|
|
|
return a
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function m(r, s) {
|
|
|
for (var t, q = 0, u = r.length; u > q; q++) {
|
|
|
if (t = p(r[q], s), "undefined" != typeof t) {
|
|
|
return t
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function o(a, q) {
|
|
|
for (var s, t = a.length; t--;) {
|
|
|
var u = p(a[t], q);
|
|
|
"undefined" != typeof u && ("undefined" == typeof s ? s = j.clone(u) : j.merge(s, u, !0))
|
|
|
}
|
|
|
return s
|
|
|
}
|
|
|
var j = l("zrender/tool/util");
|
|
|
return {
|
|
|
query: p,
|
|
|
deepQuery: m,
|
|
|
deepMerge: o
|
|
|
}
|
|
|
}), d("echarts/util/number", [], function() {
|
|
|
function l(a) {
|
|
|
return a.replace(/^\s+/, "").replace(/\s+$/, "")
|
|
|
}
|
|
|
|
|
|
function r(e, a) {
|
|
|
return "string" == typeof e ? l(e).match(/%$/) ? parseFloat(e) / 100 * a : parseFloat(e) : e
|
|
|
}
|
|
|
|
|
|
function m(a, n) {
|
|
|
return [r(n[0], a.getWidth()), r(n[1], a.getHeight())]
|
|
|
}
|
|
|
|
|
|
function p(a, o) {
|
|
|
o instanceof Array || (o = [0, o]);
|
|
|
var s = Math.min(a.getWidth(), a.getHeight()) / 2;
|
|
|
return [r(o[0], s), r(o[1], s)]
|
|
|
}
|
|
|
|
|
|
function j(a) {
|
|
|
return isNaN(a) ? "-" : (a = (a + "").split("."), a[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g, "$1,") + (a.length > 1 ? "." + a[1] : ""))
|
|
|
}
|
|
|
|
|
|
function q(a) {
|
|
|
for (var o = 1, n = 0; Math.round(a * o) / o !== a;) {
|
|
|
o *= 10, n++
|
|
|
}
|
|
|
return n
|
|
|
}
|
|
|
return {
|
|
|
parsePercent: r,
|
|
|
parseCenter: m,
|
|
|
parseRadius: p,
|
|
|
addCommas: j,
|
|
|
getPrecision: q
|
|
|
}
|
|
|
}), d("echarts/data/KDTree", ["require", "./quickSelect"], function(a) {
|
|
|
function m(i, n) {
|
|
|
this.left = null, this.right = null, this.axis = i, this.data = n
|
|
|
}
|
|
|
var j = a("./quickSelect"),
|
|
|
l = function(i, n) {
|
|
|
i.length && (n || (n = i[0].array.length), this.dimension = n, this.root = this._buildTree(i, 0, i.length - 1, 0), this._stack = [], this._nearstNList = [])
|
|
|
};
|
|
|
return l.prototype._buildTree = function(p, t, i, u) {
|
|
|
if (t > i) {
|
|
|
return null
|
|
|
}
|
|
|
var v = Math.floor((t + i) / 2);
|
|
|
v = j(p, t, i, v, function(n, o) {
|
|
|
return n.array[u] - o.array[u]
|
|
|
});
|
|
|
var w = p[v],
|
|
|
q = new m(u, w);
|
|
|
return u = (u + 1) % this.dimension, i > t && (q.left = this._buildTree(p, t, v - 1, u), q.right = this._buildTree(p, v + 1, i, u)), q
|
|
|
}, l.prototype.nearest = function(q, B) {
|
|
|
var v = this.root,
|
|
|
x = this._stack,
|
|
|
p = 0,
|
|
|
y = 1 / 0,
|
|
|
z = null;
|
|
|
for (v.data !== q && (y = B(v.data, q), z = v), q.array[v.axis] < v.data.array[v.axis] ? (v.right && (x[p++] = v.right), v.left && (x[p++] = v.left)) : (v.left && (x[p++] = v.left), v.right && (x[p++] = v.right)); p--;) {
|
|
|
v = x[p];
|
|
|
var A = q.array[v.axis] - v.data.array[v.axis],
|
|
|
w = 0 > A,
|
|
|
u = !1;
|
|
|
A *= A, y > A && (A = B(v.data, q), y > A && v.data !== q && (y = A, z = v), u = !0), w ? (u && v.right && (x[p++] = v.right), v.left && (x[p++] = v.left)) : (u && v.left && (x[p++] = v.left), v.right && (x[p++] = v.right))
|
|
|
}
|
|
|
return z.data
|
|
|
}, l.prototype._addNearest = function(p, s, q) {
|
|
|
for (var r = this._nearstNList, o = p - 1; o > 0 && !(s >= r[o - 1].dist); o--) {
|
|
|
r[o].dist = r[o - 1].dist, r[o].node = r[o - 1].node
|
|
|
}
|
|
|
r[o].dist = s, r[o].node = q
|
|
|
}, l.prototype.nearestN = function(q, C, v, y) {
|
|
|
if (0 >= C) {
|
|
|
return y.length = 0, y
|
|
|
}
|
|
|
for (var p = this.root, z = this._stack, A = 0, B = this._nearstNList, w = 0; C > w; w++) {
|
|
|
B[w] || (B[w] = {}), B[w].dist = 0, B[w].node = null
|
|
|
}
|
|
|
var u = v(p.data, q),
|
|
|
x = 0;
|
|
|
for (p.data !== q && (x++, this._addNearest(x, u, p)), q.array[p.axis] < p.data.array[p.axis] ? (p.right && (z[A++] = p.right), p.left && (z[A++] = p.left)) : (p.left && (z[A++] = p.left), p.right && (z[A++] = p.right)); A--;) {
|
|
|
p = z[A];
|
|
|
var u = q.array[p.axis] - p.data.array[p.axis],
|
|
|
E = 0 > u,
|
|
|
D = !1;
|
|
|
u *= u, (C > x || u < B[x - 1].dist) && (u = v(p.data, q), (C > x || u < B[x - 1].dist) && p.data !== q && (C > x && x++, this._addNearest(x, u, p)), D = !0), E ? (D && p.right && (z[A++] = p.right), p.left && (z[A++] = p.left)) : (D && p.left && (z[A++] = p.left), p.right && (z[A++] = p.right))
|
|
|
}
|
|
|
for (var w = 0; x > w; w++) {
|
|
|
y[w] = B[w].node.data
|
|
|
}
|
|
|
return y.length = x, y
|
|
|
}, l
|
|
|
}), d("echarts/data/quickSelect", ["require"], function() {
|
|
|
function a(i, n) {
|
|
|
return i - n
|
|
|
}
|
|
|
|
|
|
function m(o, r, p) {
|
|
|
var q = o[r];
|
|
|
o[r] = o[p], o[p] = q
|
|
|
}
|
|
|
|
|
|
function j(q, t, v, p, w) {
|
|
|
for (var x = t; v > t;) {
|
|
|
var x = Math.round((v + t) / 2),
|
|
|
y = q[x];
|
|
|
m(q, x, v), x = t;
|
|
|
for (var u = t; v - 1 >= u; u++) {
|
|
|
w(y, q[u]) >= 0 && (m(q, u, x), x++)
|
|
|
}
|
|
|
if (m(q, v, x), x === p) {
|
|
|
return x
|
|
|
}
|
|
|
p > x ? t = x + 1 : v = x - 1
|
|
|
}
|
|
|
return t
|
|
|
}
|
|
|
|
|
|
function l(s, i, e, p, q) {
|
|
|
return arguments.length <= 3 && (p = i, q = 2 == arguments.length ? a : e, i = 0, e = s.length - 1), j(s, i, e, p, q)
|
|
|
}
|
|
|
return l
|
|
|
}), d("echarts/component/dataView", ["require", "./base", "../config", "zrender/tool/util", "../component"], function(l) {
|
|
|
function p(q, u, r, i, s) {
|
|
|
m.call(this, q, u, r, i, s), this.dom = s.dom, this._tDom = document.createElement("div"), this._textArea = document.createElement("textArea"), this._buttonRefresh = document.createElement("button"), this._buttonRefresh.setAttribute("type", "button"), this._buttonClose = document.createElement("button"), this._buttonClose.setAttribute("type", "button"), this._hasShow = !1, this._zrHeight = r.getHeight(), this._zrWidth = r.getWidth(), this._tDom.className = "echarts-dataview", this.hide(), this.dom.firstChild.appendChild(this._tDom), window.addEventListener ? (this._tDom.addEventListener("click", this._stop), this._tDom.addEventListener("mousewheel", this._stop), this._tDom.addEventListener("mousemove", this._stop), this._tDom.addEventListener("mousedown", this._stop), this._tDom.addEventListener("mouseup", this._stop), this._tDom.addEventListener("touchstart", this._stop), this._tDom.addEventListener("touchmove", this._stop), this._tDom.addEventListener("touchend", this._stop)) : (this._tDom.attachEvent("onclick", this._stop), this._tDom.attachEvent("onmousewheel", this._stop), this._tDom.attachEvent("onmousemove", this._stop), this._tDom.attachEvent("onmousedown", this._stop), this._tDom.attachEvent("onmouseup", this._stop))
|
|
|
}
|
|
|
var m = l("./base"),
|
|
|
o = l("../config"),
|
|
|
j = l("zrender/tool/util");
|
|
|
return p.prototype = {
|
|
|
type: o.COMPONENT_TYPE_DATAVIEW,
|
|
|
_lang: ["Data View", "close", "refresh"],
|
|
|
_gCssText: "position:absolute;display:block;overflow:hidden;transition:height 0.8s,background-color 1s;-moz-transition:height 0.8s,background-color 1s;-webkit-transition:height 0.8s,background-color 1s;-o-transition:height 0.8s,background-color 1s;z-index:1;left:0;top:0;",
|
|
|
hide: function() {
|
|
|
this._sizeCssText = "width:" + this._zrWidth + "px;height:0px;background-color:#f0ffff;", this._tDom.style.cssText = this._gCssText + this._sizeCssText
|
|
|
},
|
|
|
show: function(a) {
|
|
|
this._hasShow = !0;
|
|
|
var s = this.query(this.option, "toolbox.feature.dataView.lang") || this._lang;
|
|
|
this.option = a, this._tDom.innerHTML = '<p style="padding:8px 0;margin:0 0 10px 0;border-bottom:1px solid #eee">' + (s[0] || this._lang[0]) + "</p>";
|
|
|
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); |