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
-
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