提交 9e10e482 编写于 作者: O Ovilia

feat: support symbolKeepAspect for graph symbol, which keeps apsect of svg path

#7813
上级 4280d1d4
......@@ -38,7 +38,13 @@ function driftSymbol(dx, dy) {
this.parent.drift(dx, dy);
}
symbolProto._createSymbol = function (symbolType, data, idx, symbolSize) {
symbolProto._createSymbol = function (
symbolType,
data,
idx,
symbolSize,
keepAspect
) {
// Remove paths created before
this.removeAll();
......@@ -51,7 +57,7 @@ symbolProto._createSymbol = function (symbolType, data, idx, symbolSize) {
// and macOS Sierra, a circle stroke become a rect, no matter what
// the scale is set. So we set width/height as 2. See #4150.
var symbolPath = createSymbol(
symbolType, -1, -1, 2, 2, color
symbolType, -1, -1, 2, 2, color, keepAspect
);
symbolPath.attr({
......@@ -152,7 +158,8 @@ symbolProto.updateData = function (data, idx, seriesScope) {
var isInit = symbolType !== this._symbolType;
if (isInit) {
this._createSymbol(symbolType, data, idx, symbolSize);
var keepAspect = data.getItemVisual(idx, 'symbolKeepAspect');
this._createSymbol(symbolType, data, idx, symbolSize, keepAspect);
}
else {
var symbolPath = this.childAt(0);
......
......@@ -9,11 +9,13 @@ export default function (seriesType, defaultSymbolType, legendSymbol) {
var symbolType = seriesModel.get('symbol') || defaultSymbolType;
var symbolSize = seriesModel.get('symbolSize');
var keepAspect = seriesModel.get('symbolKeepAspect');
data.setVisual({
legendSymbol: legendSymbol || symbolType,
symbol: symbolType,
symbolSize: symbolSize
symbolSize: symbolSize,
symbolKeepAspect: keepAspect
});
// Only visible series has each data be visual encoded
......@@ -34,7 +36,11 @@ export default function (seriesType, defaultSymbolType, legendSymbol) {
if (data.hasItemOption) {
var itemModel = data.getItemModel(idx);
var itemSymbolType = itemModel.getShallow('symbol', true);
var itemSymbolSize = itemModel.getShallow('symbolSize', true);
var itemSymbolSize = itemModel.getShallow('symbolSize',
true);
var itemSymbolKeepAspect =
itemModel.getShallow('symbolKeepAspect',true);
// If has item symbol
if (itemSymbolType != null) {
data.setItemVisual(idx, 'symbol', itemSymbolType);
......@@ -43,6 +49,10 @@ export default function (seriesType, defaultSymbolType, legendSymbol) {
// PENDING Transform symbolSize ?
data.setItemVisual(idx, 'symbolSize', itemSymbolSize);
}
if (itemSymbolKeepAspect != null) {
data.setItemVisual(idx, 'symbolKeepAspect',
itemSymbolKeepAspect);
}
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册