提交 63d363f5 编写于 作者: L lang

Map tooltip

上级 7666ec30
define(function (require) {
var zrUtil = require('zrender/core/util');
var echarts = require('../../echarts');
var actionInfo = {
type: 'geoRoam',
......@@ -20,13 +22,6 @@ define(function (require) {
echarts.registerAction(actionInfo, function (payload, ecModel) {
var componentType = payload.component || 'series';
function syncRoamOfAllMapSeries(mapType, panX, panY, zoom) {
ecModel.eachSeriesByTypeAll('map', function (seriesModel) {
seriesModel.setRoamPan(panX, panY);
seriesModel.setRoamZoom(zoom);
});
}
ecModel.eachComponent(componentType, function (componentModel) {
if (componentModel.name === payload.name) {
var dx = payload.dx;
......@@ -73,9 +68,10 @@ define(function (require) {
// All map series with same `map` use the same geo coordinate system
// So the roamDetail must be in sync. Include the series not selected by legend
if (componentType === 'series') {
syncRoamOfAllMapSeries(
componentModel.get('map'), panX, panY, (zoom || 1) * previousZoom
);
zrUtil.each(componentModel.seriesGroup, function (seriesModel) {
seriesModel.setRoamPan(panX, panY);
seriesModel.setRoamZoom(zoom);
})
}
}
});
......
......@@ -5,6 +5,10 @@ define(function (require) {
var SeriesModel = require('../../model/Series');
var zrUtil = require('zrender/core/util');
var formatUtil = require('../../util/format');
var encodeHTML = formatUtil.encodeHTML;
var addCommas = formatUtil.addCommas;
var dataSelectableMixin = require('../helper/dataSelectableMixin');
function fillData(dataOpt, geoJson) {
......@@ -36,6 +40,12 @@ define(function (require) {
*/
needsDrawMap: false,
/**
* Group of all map series with same mapType
* @type {boolean}
*/
seriesGroup: [],
init: function (option, parentModel, ecModel, dependentModels, seriesIndex) {
option = this._fillOption(option);
......@@ -95,6 +105,29 @@ define(function (require) {
}
},
/**
* Map tooltip formatter
*
* @param {number} dataIndex
*/
formatTooltip: function (dataIndex) {
var data = this._data;
var formattedValue = addCommas(data.getRawValue(dataIndex));
var name = data.getName(dataIndex, true);
var seriesGroup = this.seriesGroup;
var seriesNames = [];
for (var i = 0; i < seriesGroup.length; i++) {
var subData = seriesGroup[i].getData();
if (!isNaN(subData.getRawValue(dataIndex))) {
seriesNames.push(seriesGroup[i].name);
}
}
return seriesNames.join(', ') + '<br />'
+ name + ' : ' + formattedValue;
},
defaultOption: {
// 一级层叠
zlevel: 0,
......
......@@ -57,6 +57,7 @@ define(function (require) {
seriesList[0].setData(data);
for (var i = 0; i < seriesList.length; i++) {
seriesList[i].seriesGroup = seriesList;
seriesList[i].needsDrawMap = i === 0;
}
});
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册