提交 16717b43 编写于 作者: L lang

MapView improvement

上级 56f2c13e
......@@ -9,22 +9,31 @@ define(function (require) {
type: 'map',
render: function (mapModel, ecModel, api) {
render: function (mapModel, ecModel, api, payload) {
var group = this.group;
group.removeAll();
// No update map if it is an roam action from self
if (!(payload && payload.type === 'geoRoam'
&& payload.component === 'series'
&& payload.name === mapModel.name)) {
if (mapModel.needsDrawMap) {
var mapDraw = this._mapDraw || new MapDraw(api, false);
group.add(mapDraw.group);
if (mapModel.needsDrawMap) {
var mapDraw = this._mapDraw || new MapDraw(api, true);
group.add(mapDraw.group);
mapDraw.draw(mapModel, ecModel, api);
mapDraw.draw(mapModel, ecModel, api);
this._mapDraw = mapDraw;
this._mapDraw = mapDraw;
}
else {
// Remove drawed map
this._mapDraw && this._mapDraw.remove();
this._mapDraw = null;
}
}
else {
// Remove drawed map
this._mapDraw && this._mapDraw.remove();
this._mapDraw = null;
var mapDraw = this._mapDraw;
mapDraw && group.add(mapDraw.group);
}
mapModel.get('showLegendSymbol') && ecModel.getComponent('legend')
......@@ -42,6 +51,9 @@ define(function (require) {
var group = this.group;
data.each('value', function (value, idx) {
if (isNaN(value)) {
return;
}
var itemModel = data.getItemModel(idx);
var labelModel = itemModel.getModel('label.normal');
var textStyleModel = labelModel.getModel('textStyle');
......@@ -56,32 +68,29 @@ define(function (require) {
var labelColor = textStyleModel.get('color');
var labelFont = textStyleModel.getFont();
if (!isNaN(value)) {
var circle = new graphic.Circle({
style: {
fill: data.getVisual('color')
},
shape: {
cx: point[0] + offset * 9,
cy: point[1],
r: 3
},
silent: true,
z2: 10
var circle = new graphic.Circle({
style: {
fill: data.getVisual('color')
},
shape: {
cx: point[0] + offset * 9,
cy: point[1],
r: 3
},
silent: true,
z2: 10
});
if (showLabel && !offset) {
circle.setStyle({
text: labelText,
textFill: labelColor,
textPosition: 'bottom',
textFont: labelFont
});
if (showLabel && !offset) {
circle.setStyle({
text: labelText,
textFill: labelColor,
textPosition: 'bottom',
textFont: labelFont
});
}
group.add(circle);
}
group.add(circle);
});
}
});
......
......@@ -52,7 +52,6 @@ define(function (require) {
var dy = Math.sin(midAngle);
var offset = isSelected ? selectedOffset : 0;
var position = [dx * offset, dy * offset];
updateElementSelect(el, position, hasAnimation);
updateElementSelect(el.__labelLine, position, hasAnimation);
......
......@@ -396,7 +396,6 @@ define(function(require) {
visuals = controller[state] = {
color: makeDefault([this.get('inactiveColor')], isCategory)
};
console.log(visuals);
}
// Consistent symbol and symbolSize if not specified.
......
......@@ -182,7 +182,8 @@ define(function (require) {
},
position: region.center.slice(),
scale: [1 / scale[0], 1 / scale[1]],
z2: 10
z2: 10,
silent: true
});
var emphasisLabel = function() {
text.attr('ignore', !hoverShowLabel);
......
......@@ -166,7 +166,7 @@ define(function (require) {
* @param {Object} payload
*/
update: function (payload) {
console.time('update');
console.time && console.time('update');
var ecModel = this._model;
......@@ -189,9 +189,10 @@ define(function (require) {
this._doRender(ecModel, payload);
// Set background
this._dom.style.backgroundColor = ecModel.get('backgroundColor');
var backgroundColor = ecModel.get('backgroundColor');
backgroundColor && (this._dom.style.backgroundColor = backgroundColor);
console.timeEnd('update');
console.time && console.timeEnd('update');
},
// PENDING
......@@ -270,6 +271,8 @@ define(function (require) {
each(this._componentsList, function (component) {
var componentModel = component.__model;
component[methodName](componentModel, ecModel, api, payload);
updateZ(componentModel, component);
}, this);
// Upate all charts
......@@ -277,6 +280,8 @@ define(function (require) {
var id = getViewId(seriesModel);
var chart = this._chartsMap[id];
chart[methodName](seriesModel, ecModel, api, payload);
updateZ(seriesModel, chart);
}, this);
},
......@@ -453,13 +458,7 @@ define(function (require) {
var componentModel = component.__model;
component.render(componentModel, ecModel, api, payload);
var z = componentModel.get('z');
var zlevel = componentModel.get('zlevel');
// Set z and zlevel
component.group.traverse(function (el) {
z != null && (el.z = z);
zlevel != null && (el.zlevel = zlevel);
});
updateZ(componentModel, component);
}, this);
each(this._chartsList, function (chart) {
......@@ -473,13 +472,7 @@ define(function (require) {
chart.__keepAlive = true;
chart.render(seriesModel, ecModel, api, payload);
var z = seriesModel.get('z');
var zlevel = seriesModel.get('zlevel');
// Set z and zlevel
chart.group.traverse(function (el) {
z != null && (el.z = z);
zlevel != null && (el.zlevel = zlevel);
});
updateZ(seriesModel, chart);
}, this);
// Remove groups of charts
......@@ -510,7 +503,20 @@ define(function (require) {
return model.name + '_' + model.type;
}
/**
* @param {module:echarts/model/Series|module:echarts/model/Component} model
* @param {module:echarts/view/Component|module:echarts/view/Chart} view
* @return {string}
*/
function updateZ(model, view) {
var z = model.get('z');
var zlevel = model.get('zlevel');
// Set z and zlevel
view.group.traverse(function (el) {
z != null && (el.z = z);
zlevel != null && (el.zlevel = zlevel);
});
}
/**
* @type {Array.<Function>}
* @inner
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册