wuhan2020 / map-viz

通用的地图可视化组件

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

数据设计:要求调用组件的人将数据转化成什么格式

tongshuangwu opened this issue · comments

初步想法

{
     // 输入数据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]}[]
}

我的想法是,地图组件直接传进来一个newOption,然后这个newOption和我们内置的defaultOption合并一下,这样优先使用newOption中已规定的配置项,而newOption中未规定的配置项可以直接使用defaultOption的配置项。

就个人体验来说,echarts的API很易懂,五分钟就能上手。
我主要担心的是,像医院啊物资啊这类信息直接呈现到地图上的话,我们可能要定制label,而这部分都是在series配置项中的,这部分的自由度我认为是必须要有的。

嗯有道理,我觉得我们给调用的同学们暴露的option要控制在一个限度里,要不学不会了?2333
可能得复制一些echarts的document过来,介绍一些最重要的customization,要不还要跨过去学

那我觉得我们应该只暴露出title和series的部分项,其他的都做一下限定。
另外这个type:
type: "heatmap"|"scatter"

我感觉干脆做两种组件算了,这两种图所需要的参数还是有一些差距的。

那也可以~那可以把filtering组件(如果做的话)也单独隔离出来,在两种图的组件里去调用。

那也可以~那可以把filtering组件(如果做的话)也单独隔离出来,在两种图的组件里去调用。

filtering组件参照我在上一个issue里的回复哈,这个我觉得还是给调用者去做比较好,套用React Redux中展示组件和容器组件的概念来说,我们做的是一种“展示组件”。它对第三方数据没有任何依赖,只会如实地展示传进来的数据。