1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- import * as zrUtil from 'zrender/lib/core/util.js';
- import * as modelUtil from '../../util/model.js';
- export default function findPointFromSeries(finder, ecModel) {
- var point = [];
- var seriesIndex = finder.seriesIndex;
- var seriesModel;
- if (seriesIndex == null || !(seriesModel = ecModel.getSeriesByIndex(seriesIndex))) {
- return {
- point: []
- };
- }
- var data = seriesModel.getData();
- var dataIndex = modelUtil.queryDataIndex(data, finder);
- if (dataIndex == null || dataIndex < 0 || zrUtil.isArray(dataIndex)) {
- return {
- point: []
- };
- }
- var el = data.getItemGraphicEl(dataIndex);
- var coordSys = seriesModel.coordinateSystem;
- if (seriesModel.getTooltipPosition) {
- point = seriesModel.getTooltipPosition(dataIndex) || [];
- } else if (coordSys && coordSys.dataToPoint) {
- if (finder.isStacked) {
- var baseAxis = coordSys.getBaseAxis();
- var valueAxis = coordSys.getOtherAxis(baseAxis);
- var valueAxisDim = valueAxis.dim;
- var baseAxisDim = baseAxis.dim;
- var baseDataOffset = valueAxisDim === 'x' || valueAxisDim === 'radius' ? 1 : 0;
- var baseDim = data.mapDimension(baseAxisDim);
- var stackedData = [];
- stackedData[baseDataOffset] = data.get(baseDim, dataIndex);
- stackedData[1 - baseDataOffset] = data.get(data.getCalculationInfo('stackResultDimension'), dataIndex);
- point = coordSys.dataToPoint(stackedData) || [];
- } else {
- point = coordSys.dataToPoint(data.getValues(zrUtil.map(coordSys.dimensions, function (dim) {
- return data.mapDimension(dim);
- }), dataIndex)) || [];
- }
- } else if (el) {
-
- var rect = el.getBoundingRect().clone();
- rect.applyTransform(el.transform);
- point = [rect.x + rect.width / 2, rect.y + rect.height / 2];
- }
- return {
- point: point,
- el: el
- };
- }
|