提交 aa4420b2 编写于 作者: S sushuang

tweak series-map label, support position and formatter.

上级 e865e322
......@@ -2,6 +2,7 @@ define(function (require) {
// var zrUtil = require('zrender/core/util');
var graphic = require('../../util/graphic');
var zrUtil = require('zrender/core/util');
var MapDraw = require('../../component/helper/MapDraw');
......@@ -98,14 +99,15 @@ define(function (require) {
r: 3
},
silent: true,
z2: 10
// Do not overlap the first series, on which labels are displayed.
z2: !offset ? 10 : 8
});
// First data on the same region
if (!offset) {
var fullData = mapModel.mainSeries.getData();
var name = originalData.getName(idx);
var labelText = name;
var fullIndex = fullData.indexOfName(name);
var itemModel = originalData.getItemModel(idx);
......@@ -116,16 +118,31 @@ define(function (require) {
var onEmphasis = function () {
var hoverStyle = graphic.setTextStyle({}, hoverLabelModel, {
text: hoverLabelModel.get('show') ? labelText : null
text: hoverLabelModel.get('show')
? mapModel.getFormattedLabel(idx, 'emphasis')
: null
}, {isRectText: true, forMerge: true});
circle.style.extendFrom(hoverStyle);
// Make label upper than others if overlaps.
circle.__mapOriginalZ2 = circle.z2;
circle.z2 += 1;
};
var onNormal = function () {
graphic.setTextStyle(circle.style, labelModel, {
text: labelModel.get('show') ? labelText : null,
textPosition: 'bottom'
text: labelModel.get('show')
? zrUtil.retrieve2(
mapModel.getFormattedLabel(idx, 'normal'),
name
)
: null,
textPosition: labelModel.getShallow('position') || 'bottom'
}, {isRectText: true});
if (circle.__mapOriginalZ2 != null) {
circle.z2 = circle.__mapOriginalZ2;
circle.__mapOriginalZ2 = null;
}
};
polygonGroups.on('mouseover', onEmphasis)
......
......@@ -236,8 +236,13 @@ define(function (require) {
|| (itemLayout && itemLayout.showLabel)
) {
var query = data ? dataIdx : region.name;
var formattedStr = mapOrGeoModel.getFormattedLabel(query, 'normal');
var hoverFormattedStr = mapOrGeoModel.getFormattedLabel(query, 'emphasis');
var formattedStr;
var hoverFormattedStr;
// Consider dataIdx not found.
if (!data || dataIdx >= 0) {
formattedStr = mapOrGeoModel.getFormattedLabel(query, 'normal');
hoverFormattedStr = mapOrGeoModel.getFormattedLabel(query, 'emphasis');
}
var textEl = new graphic.Text({
position: region.center.slice(),
scale: [1 / scale[0], 1 / scale[1]],
......@@ -252,7 +257,7 @@ define(function (require) {
});
graphic.setTextStyle(textEl.hoverStyle = {}, hoverLabelModel, {
text: hoverShowLabel ? (hoverFormattedStr || region.name) : null
text: hoverShowLabel ? hoverFormattedStr : null
}, {forMerge: true});
regionGroup.add(textEl);
......
......@@ -326,8 +326,18 @@
geo: {
map: 'china',
label: {
normal: {
show: true,
formatter: '{a}',
// position: 'inside',
backgroundColor: '#fff',
padding: [3, 5],
borderRadius: 3,
borderWidth: 1,
borderColor: 'rgba(0,0,0,0.5)',
color: '#777'
},
emphasis: {
show: false
}
},
selectedMode: 'single',
......
......@@ -82,7 +82,24 @@
},
label: {
normal: {
show: true
show: true,
formatter: '{b}:{value|{c}}',
// position: 'inside',
backgroundColor: '#fff',
padding: [3, 5],
borderRadius: 3,
borderWidth: 1,
borderColor: 'rgba(0,0,0,0.5)',
color: '#777',
rich: {
value: {
color: '#019D2D',
fontSize: 14,
// fontWeight: 'bold'
// textBorderWidth: 2,
// textBorderColor: '#000'
}
}
},
emphasis: {
show: true
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册