使用uCharts实现疫情地图

接着上一篇文章,我们使用uniapp的插件uCharts实现疫情地图

uCharts是一款跨端的图表插件,类似于eCharts。

 

首先我们导入uCharts示例,看下官方示例,找到地图对应的示例文件。喵一眼,如下

发现需要找中国地图的json资源,于是找到阿里云的资源地址,如下

http://datav.aliyun.com/tools/atlas/

建议把json下载到本地,但是为了继续熟悉uniCloud,我们继续使用云函数去动态获取json文件编写云函数china如下:

'use strict';exports.main = async (event, context) => {  //获取中国地图数据  const res = await uniCloud.httpclient.request('https://geo.datav.aliyun.com/areas/bound/100000_full.json', {      method: 'GET',      data: {      },      dataType: 'json',      header: {'content-type':'application/x-www-form-urlencoded'}    })  //获取疫情实时数据  const ncovcitys = await uniCloud.httpclient.request('http://api.tianapi.com/txapi/ncovcity/index', {    method: 'POST',    data: {     key: 'XXXXXX',      },    dataType: 'json',    header: {'content-type':'application/x-www-form-urlencoded'}  })  let datas = ncovcitys.data.newslist;  let provinces = res.data.features;  //将疫情数据和地图数据合并在一起,用于地图渲染  return provinces.map(province=>{    for (var i = 0; i < datas.length; i++) {      if(datas[i].provinceName === province.properties.name){        return {...province,...datas[i]}      }    }    return province;  })};

PS:因为中国地图只需要获取一次用于渲染地图就可以了,所以上面把两个请求合并在一个函数里,纯属笔者偷懒。。

疫情数据依然是调用天性数据的api接口,链接如下

https://www.tianapi.com/apiview/170

 

云函数编写完毕,我们只需要获取数据,然后渲染页面就可以了,前端稍微调整一下官方示例就可以了,代码如下:​​​​​​​

getServerData(){        //调用云函数china        uniCloud.callFunction({          name:'china'        }).then(res=>{          res = res.result;          console.log(res)          let cMap={series:[]};          //将数据放进渲染参数中          cMap.series=res;          _self.showMap("canvasMap",cMap);        })      },

这样地图就出来了:

然后我们继续修改一下官方示例中的点击事件,把疫情数据展示出来:​​​​​​​

touchMap(e){        let that = this;        canvaMap.showToolTip(e, {          format: function (item) {            console.log(item);            //cityList为城市的疫情数据,点击省份同时把城市数据也带出来            that.cityList = item.cities;            return `${item.properties.name}: ${item.confirmedCount}`          }        });      }

好的,大功告成。成果如下:

谢谢大家收看,希望能对大家有所帮助。

中国加油!武汉加油!

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
uCharts是一个高性能的跨平台图表库,支持H5、APP、小程序(微信小程序、支付宝小程序、钉钉小程序、百度小程序、头条小程序、QQ小程序、360小程序)、Vue、Taro等更多支持canvas的框架平台,支持饼图、圆环图、线图、柱状图、区域图、雷达图、圆弧进度图、仪表盘、K线图、条状图、混合图、玫瑰图、漏斗图、词云图、时序图、散点图、气泡图、地图。 为解决开发者使用可视化组件的困扰,uCharts官方特推出可视化通用组件,本组件具备以下特点: 1、极简单的调用方式,默认配置下只需要传入图表类型及图表数据即可全端显示。 2、提供强大的在线配置生成工具,可视化中的可视化,鼠标点一点就可以生成图表,可视化从此不再难配。 3、兼容ECharts,并解决了ECharts无法使用formatter的问题,可选择PC端或APP端单独使用ECharts引擎渲染图表。 4、H5及App采用renderjs渲染图表,动画流畅、性能翻倍。 5、根据父容器尺寸弹性显示图表,再也不必为宽高匹配及多端适配问题发愁。 6、支持加载状态loading及error展示,避免数据读取显示空白的尴尬。 7、chartData配置与数据解耦,即便使用ECharts引擎也不必担心拼接option的困扰。 8、localdata后端数据直接渲染,无需自行拼接chartData的categories及series,从后端拿回的数据简单处理即可生成图表。 9、小程序端不必担心包体积过大问题,ECharts引擎将不会编译到各小程序端,u-charts.js编译后仅为93kb。 10、未来将支持通过HbuilderX的schema2code自动生成全端全平台图表,敬请期待!!! 11、uCharts官方拥有3个2000人的QQ群支持,庞大的用户量证明我们一直在努力,本组件将持续更新,请各位放心使用,本组件问题请在QQ3群反馈,您的宝贵建议是我们努力的动力!! 安装注意前提条件【版本要求:HBuilderX 3.1.0+】 1、插件市场点击右侧绿色按钮【使用HBuilderX导入插件】,或者【使用HBuilderX导入示例项目】查看完整示例工程 2、依赖uniapp的vue-cli项目:请将uni-modules目录复制到src目录,即src/uni_modules。(请升级uniapp依赖为最新版本) 3、页面中直接按下面用法直接调用即可,无需在页面中注册组件qiun-data-charts 4、注意父元\u7d20class='charts-box'这个样式需要有宽高

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值