数据设计:要求调用组件的人将数据转化成什么格式
tongshuangwu opened this issue · comments
Sherry Tongshuang Wu commented
Sherry Tongshuang Wu commented
初步想法
{
// 输入数据arrary, 每个数据点是一个dict,但必须有一个coord的entry
rawDataArr: {[key: string]: string|number, coord: [number, number]}[]
// 当hover的时候会显示的信息,给出需要的entry keys, 去rawdata拿这些信息
tooltip: string[]
// 可以选择两种不同的图种,与视图设计联动
type: "heatmap"|"scatter"
// 如果是点图,需要圆的大小的话,一样给出这个entry key,然后我们去rawData拿信息
sizeKey?: string
// 如果有时间轴 (特指疫情数据,其他还不知道有没有), 可以选择做timeline filtering或者线图。也一样是entry key
timeKey?: string
// 与外部数据联动,点击地图上的点的时候可以做filtering。支持这个功能的话需要外部传进来一个如何filter的function。
filterFunc: (d: {[key: string]: string|number, coord: [number, number]}[]) => {[key: string]: string|number, coord: [number, number]}[]
}
shadowings-zy commented
我的想法是,地图组件直接传进来一个newOption,然后这个newOption和我们内置的defaultOption合并一下,这样优先使用newOption中已规定的配置项,而newOption中未规定的配置项可以直接使用defaultOption的配置项。
shadowings-zy commented
就个人体验来说,echarts的API很易懂,五分钟就能上手。
我主要担心的是,像医院啊物资啊这类信息直接呈现到地图上的话,我们可能要定制label,而这部分都是在series配置项中的,这部分的自由度我认为是必须要有的。
Sherry Tongshuang Wu commented
嗯有道理,我觉得我们给调用的同学们暴露的option要控制在一个限度里,要不学不会了?2333
可能得复制一些echarts的document过来,介绍一些最重要的customization,要不还要跨过去学
shadowings-zy commented
那我觉得我们应该只暴露出title和series的部分项,其他的都做一下限定。
另外这个type:
type: "heatmap"|"scatter"
我感觉干脆做两种组件算了,这两种图所需要的参数还是有一些差距的。
Sherry Tongshuang Wu commented
那也可以~那可以把filtering组件(如果做的话)也单独隔离出来,在两种图的组件里去调用。
shadowings-zy commented
那也可以~那可以把filtering组件(如果做的话)也单独隔离出来,在两种图的组件里去调用。
filtering组件参照我在上一个issue里的回复哈,这个我觉得还是给调用者去做比较好,套用React Redux中展示组件和容器组件的概念来说,我们做的是一种“展示组件”。它对第三方数据没有任何依赖,只会如实地展示传进来的数据。