提交 aa4420b2 编写于 作者: S sushuang

tweak series-map label, support position and formatter.

上级 e865e322
...@@ -2,6 +2,7 @@ define(function (require) { ...@@ -2,6 +2,7 @@ define(function (require) {
// var zrUtil = require('zrender/core/util'); // var zrUtil = require('zrender/core/util');
var graphic = require('../../util/graphic'); var graphic = require('../../util/graphic');
var zrUtil = require('zrender/core/util');
var MapDraw = require('../../component/helper/MapDraw'); var MapDraw = require('../../component/helper/MapDraw');
...@@ -98,14 +99,15 @@ define(function (require) { ...@@ -98,14 +99,15 @@ define(function (require) {
r: 3 r: 3
}, },
silent: true, 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 // First data on the same region
if (!offset) { if (!offset) {
var fullData = mapModel.mainSeries.getData(); var fullData = mapModel.mainSeries.getData();
var name = originalData.getName(idx); var name = originalData.getName(idx);
var labelText = name;
var fullIndex = fullData.indexOfName(name); var fullIndex = fullData.indexOfName(name);
var itemModel = originalData.getItemModel(idx); var itemModel = originalData.getItemModel(idx);
...@@ -116,16 +118,31 @@ define(function (require) { ...@@ -116,16 +118,31 @@ define(function (require) {
var onEmphasis = function () { var onEmphasis = function () {
var hoverStyle = graphic.setTextStyle({}, hoverLabelModel, { var hoverStyle = graphic.setTextStyle({}, hoverLabelModel, {
text: hoverLabelModel.get('show') ? labelText : null text: hoverLabelModel.get('show')
? mapModel.getFormattedLabel(idx, 'emphasis')
: null
}, {isRectText: true, forMerge: true}); }, {isRectText: true, forMerge: true});
circle.style.extendFrom(hoverStyle); circle.style.extendFrom(hoverStyle);
// Make label upper than others if overlaps.
circle.__mapOriginalZ2 = circle.z2;
circle.z2 += 1;
}; };
var onNormal = function () { var onNormal = function () {
graphic.setTextStyle(circle.style, labelModel, { graphic.setTextStyle(circle.style, labelModel, {
text: labelModel.get('show') ? labelText : null, text: labelModel.get('show')
textPosition: 'bottom' ? zrUtil.retrieve2(
mapModel.getFormattedLabel(idx, 'normal'),
name
)
: null,
textPosition: labelModel.getShallow('position') || 'bottom'
}, {isRectText: true}); }, {isRectText: true});
if (circle.__mapOriginalZ2 != null) {
circle.z2 = circle.__mapOriginalZ2;
circle.__mapOriginalZ2 = null;
}
}; };
polygonGroups.on('mouseover', onEmphasis) polygonGroups.on('mouseover', onEmphasis)
......
...@@ -236,8 +236,13 @@ define(function (require) { ...@@ -236,8 +236,13 @@ define(function (require) {
|| (itemLayout && itemLayout.showLabel) || (itemLayout && itemLayout.showLabel)
) { ) {
var query = data ? dataIdx : region.name; var query = data ? dataIdx : region.name;
var formattedStr = mapOrGeoModel.getFormattedLabel(query, 'normal'); var formattedStr;
var hoverFormattedStr = mapOrGeoModel.getFormattedLabel(query, 'emphasis'); 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({ var textEl = new graphic.Text({
position: region.center.slice(), position: region.center.slice(),
scale: [1 / scale[0], 1 / scale[1]], scale: [1 / scale[0], 1 / scale[1]],
...@@ -252,7 +257,7 @@ define(function (require) { ...@@ -252,7 +257,7 @@ define(function (require) {
}); });
graphic.setTextStyle(textEl.hoverStyle = {}, hoverLabelModel, { graphic.setTextStyle(textEl.hoverStyle = {}, hoverLabelModel, {
text: hoverShowLabel ? (hoverFormattedStr || region.name) : null text: hoverShowLabel ? hoverFormattedStr : null
}, {forMerge: true}); }, {forMerge: true});
regionGroup.add(textEl); regionGroup.add(textEl);
......
...@@ -326,8 +326,18 @@ ...@@ -326,8 +326,18 @@
geo: { geo: {
map: 'china', map: 'china',
label: { 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: { emphasis: {
show: false
} }
}, },
selectedMode: 'single', selectedMode: 'single',
......
...@@ -82,7 +82,24 @@ ...@@ -82,7 +82,24 @@
}, },
label: { label: {
normal: { 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: { emphasis: {
show: true show: true
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册