Spec 调整
#4616
Replies: 1 comment
-
|
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Spec 调整
在写案例和实现的时候发现 spec 的一些可以优化的点。
mark
一个完整的 Mark 拥有的配置如下:
mark.coordinate
目前的
mark.coorindates
严格来讲并不是坐标系,而是坐标系变换。存在的问题:所以做如下的改变:一个坐标系等于一个主体坐标系变化 + 一系列普通变换
这样的调整也和 d3-geo 里面 projection 相关的设计不谋而合。所以这样调整之后,G2 设置地图投影的 API 如下。
这之后支持的主体坐标系变化如下:
普通变换如下:
mark.interaction
mark.axis
axis 因为其实也是一种 mark,所以 spec 应该和 mark 类似,不应该把所有的配置混合在一起。混合在一起有一些问题:
所以如下调整。
所以 component 的配置会和普通 Mark 保持一致
mark.legend
同
mark.axis
mark.state
view.coordinate
mark 的坐标系会合并作为 view 的坐标系,这样使得 mark 可以有独立的坐标系描述,有利于上层封装带坐标系的 mark。
view.interaction
mark 的 interaction 会合并作为 view 的 interaction,这样使得 mark 可以有独立的 interaction 描述,有利于上层封装带 interaction 的 mark。
view.encode
view 的 encode 会传递给孩子并且合并。这个设计是合理的,可以参考 vega 的设计。
view.transform
view 的 transform 会传递给孩子,并且把孩子的 transform 添加到后面。这个设计是合理的,可以参考 vega 的设计。
Beta Was this translation helpful? Give feedback.
All reactions