使用ucharts地图实现全国碳排放地图

本次使用的是秋云ucharts,在移动端及uniapp用的很不错。
ucharts官网:https://www.ucharts.cn/
阿里云的地图数据来源:http://datav.aliyun.com/tools/atlas/
中国地图数据JSON:https://geo.datav.aliyun.com/areas_v3/bound/100000_full.json
建议把json下载到本地
代码如下

<template>
	<view class="charts-box">
		<qiun-data-charts
			type="map"
			:opts="config"
			:canvas2d="true"
			:chartData="{ series: $store.state.chartsMap.mapList }"
			background="none"
		/>
	</view>
</template>
<script>
import mapData from '@/common/json/mapData.json';

export default {
	data() {
		return {
			data: mapData,
			config: {
				fontSize: 10,
				extra: { map: { mercator: true }}
			}
		}
	},
	created() {
		this.drawMap();
	},
	methods: {
		async drawMap(){
			uni.showLoading({
				title: '处理中...'
			});
			// 通过接口获取碳排量数据
			return await uniCloud
				.callFunction({
					name: 'getList'
				})
				.then(res => {
					let data = res.result.data;
					let arr = mapData.features.map(map => {
						// 未获取到数据时默认给白色,不用地图默认的颜色
						let obj = { ...map, color: '#ffffff' };
						data.forEach(item => {
							if (map.properties.adcode == item.adcode) {
								// 当adcode相等时,则是同一城市,将获取的数据塞入地图JSON mapData 中
								// color为地图填充的颜色
								obj = { ...map, ...item, color: this.addColor(item.count) };
							}
						});
						uni.hideLoading();
					})
				.catch(err => {
					uni.hideLoading();
				});
			},
		// 根据排放量添加颜色
		addColor(count) {
			if (count > 8000) {
				return '#bc3e10';
			} else if (count > 7000) {
				return '#fc5902';
			} else if (count > 5000) {
				return '#fc9c02';
			} else if (count > 4000) {
				return '#fbdb0f';
			} else if (count > 2000) {
				return '#93ce05';
			} else {
				return '#62ae02';
			}
		},
	}
}
</script>

<style lang="scss" scoped>
// 秋云ucharts必须给一个容器
.charts-box {
	width: 100%;
	height: 300px;
}
</style>

如果需要修改tooltip可以使用@getIndex获取点击x轴y轴,自己制作tooltip。

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
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'这个样式需要有宽高
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值