Comments (7)
建议我们先定一下控件读取的数据格式,考虑解决几个问题:
- 上述两个接口、mock data 的数据格式都不一样,应该有一个标准格式
- 地区名称不标准,如在上层地图称“湖北”,下层地图称“湖北省”
- 代码实用性,如果确定只做市一级的疫情,可以用市名为主键做成 object 而不是以 array 存储,全国地级市没有重名
- 在标准格式之上,考虑兼容哪些上游数据格式,分任务写 adapter
- (optional)考虑查询等其它需求,可制定个别衍生数据格式(如 flatten 的全国各市疫情统计)
目前看来 API 1 的数据格式基础比较好,可以考虑直接使用或者进行微调。不一定要做到 json schema 那么严格,但至少要有个文字版的结构说明
from map-viz.
数据更新机制可能也要讨论一下,如果每个前端用户都触发 ajax 请求去 api 拿数据,会不会给 api 提供者带来不必要的负担?
from map-viz.
感谢!现在VirusMap
数据的输入格式是:(创建的小伙伴 @shadowings-zy )
interface dataObject {
province?: string;
name: string;
confirmed: number;
suspect: number;
cured: number;
death: number;
}
为了让现在的另外一个mock数据还能用,建议更新为
我提议可以更新为:
interface dataObject {
name: string; //简短的名字,省略“省”,“市” ,“区”(就是API 1里的provinceShortName那种,如果拿到的数据不是的话可以做一下filtering)
province: string; // 同样省略 “省”
timestamp: number // updateTime,格式为时间戳序列
confirmed: number;
suspect: number;
cured: number;
death: number;
sum?: {confirmed: number, suspect: number, cured: number, death:number}
}
例如:
interface dataObject {
name: "石家庄";
province: "河北";
timestamp: 1579809031353;
confirmed: 1;
suspect: 0;
cured: 0;
death: 0;
}
代码实用性,如果确定只做市一级的疫情,可以用市名为主键做成 object 而不是以 array 存储,全国地级市没有重名
这个我觉得都可以,数据量不是很大。主要进去了以后好像用的时候还是array用,感觉没太大差别?
数据更新机制可能也要讨论一下,如果每个前端用户都触发 ajax 请求去 api 拿数据,会不会给 api 提供者带来不必要的负担?
我们可以设置每N时间自动拿一次数据,前端客户就用我们拿到的这一层数据。
from map-viz.
两个 mock data 分别在哪?我目前还是只看到之前那一个,sum 感觉比较冗余...
dataObject 我觉得基本没问题,但是那只是一条记录的数据格式,我觉得还是综合确定一下 API 的格式吧,几个问题:
- 现在顶层是
{
name: string;
mapUrl?: string;
data: array[dataObject];
}
这里 mapUrl 我建议直接去掉,由控件填写;data 部分我建议是 dict,这个问题倒不大,很容易转
-
规范没有区分省一级还是市一级,但是实际上数据有差异,比如省一级没有 province 这个字段,不排除后面会有其它区别
-
timestamp 是放到 dataObject 还是外面有待商榷,我觉得可以有一种 override 的机制
综上我 propose 一个方案供讨论:
TypeScript 定义:
interface CountryData {
name: string; // '**'
timestamp?: number; // integer, unit is 's', unix epoch time
confirmed: number;
suspect: number;
cured: number;
death: number;
provinces?: {[name: string]: ProvinceData};
}
interface ProvinceData {
name: string; // '湖北'
timestamp?: number;
confirmed: number;
suspect: number;
cured: number;
death: number;
cities?: {[name: string]: CityData};
}
interface CityData {
name: string; // '湖北'
timestamp?: number;
confirmed: number;
suspect: number;
cured: number;
death: number;
}
这样三种数据可以分开使用,也可以包含一整个数据包里,timestamp 下层 override 上层,使用的最顶层结构要求必须有这个字段。
另外这个任务我领了吧,先开始做着。
from map-viz.
嗯我觉得你说的数据结构可以,assign给你了,感谢!
from map-viz.
merge request #27
from map-viz.
我也在做地图方面的数据可视化报告,看有没有启发
www.graphvis.cn/sari/index.html
from map-viz.
Related Issues (20)
- 偶尔点击virusMap的timeline右边virusCharts线会消失 HOT 1
- 在疫情地图添加治愈/死亡/确诊等多个数据维度 HOT 3
- 增加一个如何使用virusmap的指南
- 研究一下如何接入世界地图 HOT 1
- bug: 引入 webCell 版本的 HierarchicalVirusMap 出现报错
- bug: 引入 webCell 版本 HierarchicalVirusMap 有时候无法加载折线图
- 关于React版组件需要完善的地方
- 确诊小区的可视化 HOT 1
- [webCell 版本] 修复移动端展示问题
- [Feature] 是否可以增加热力图展示类型 HOT 3
- 合并两个折线图 HOT 1
- 增加疫情数据的直接显示 HOT 1
- 对demo/javascript目录进行yarn start报错 HOT 2
- [Bug] 地图中省市疑似数据均为 0
- 香港、澳门 鼠标无法选择
- 临时接口中的丁香园实时疫情接口疑似挂了 HOT 3
- 引用本项目后打包分析得出echarts占的空间很大导致页面加载龟速 HOT 4
- 3D地球可视化项目申请加入 HOT 11
- information map的icon不用字,用一些“医院”,“酒店”的icon HOT 2
- 移动端两个折线图被百度地图遮挡,部分窄屏机型图例会消失 HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from map-viz.