微信小程序ec-canvas(echarts)显示地图【以甘肃省为例】

文章目录

  • 一、效果图
  • 二、实现
    • 1、下载echarts插件
    • 2、定制图形,生成 echarts.min.js 文件
    • 3、小程序中使用
      • (1)下载甘肃地图
      • (2)使用

参考文档《微信小程序使用echarts显示全国地图》《如何在微信小程序开发中使用echarts以及踩坑记录(最全教程)》

一、效果图

在这里插入图片描述

二、实现

1、下载echarts插件

  • echarts-for-weixin 项目提供了一个小程序组件,用这种方式可以方便地使用 ECharts
  • echarts-for-weixin 下载地址:https://github.com/ecomfe/echarts-for-weixin
  • 下载压缩包解压后如下图:

在这里插入图片描述

  • ec-canvas文件夹放置小程序的项目目录下( components或pages下 均可,根据个人习惯)

在这里插入图片描述

  • github 网页下载时,可以看到 ec-canvas 的版本号为 5.3.3 版本(定制图表时需要版本一致,若不定制可忽略)

在这里插入图片描述

2、定制图形,生成 echarts.min.js 文件

ec-canvas目录中的 echarts.js有些大(包含了所有图表),小程序后期上线对文件大小有要求,所以建议进行定制可减少文件大小占比。

  • 进入echarts官网
  • 点击下载

在这里插入图片描述

  • 点击在线定制
    在这里插入图片描述
  • 选择版本(必须和前面下载的ec-canvas中的echarts.js版本保持一致)
  • 选择需要定制的图表(我需要的是地图map和视觉映射visualMap),其它保持默认

在这里插入图片描述

  • 其它选项包保持默认,点击下载。

在这里插入图片描述

  • 下载完成后,把项目中 ec-canvas目录中的 echarts.js 文件替换为下载的文件:echarts.min.js

在这里插入图片描述

  • 注意: ec-canvas.jsimport引入的是原来的echarts.js文件,需要自己改成刚才下载的文件,如下图所示

在这里插入图片描述

3、小程序中使用

(1)下载甘肃地图

  • 下载地址:https://datav.aliyun.com/portal/school/atlas/area_selector
  • 搜索想要的地图节点,选择 JSON API(包含子域),我下载的是甘肃省
  • 复制链接并在新窗口打开,这个文件原本为json格式,我们在小程序项目的文件目录下新建一个 mapData.js ,将页面中的所有内容复制到这个js文件中并将其公开(module.exports = 页面上复制的内容)。

在这里插入图片描述
在这里插入图片描述

(2)使用

analysis.json文件中引入ec-canvas组件

 "usingComponents": {"ec-canvas": "../../ec-canvas/ec-canvas",},

analysis.js文件中引入 mapData.jsec-canvas 中的 echarts.js

import * as echartsAll from '../../ec-canvas/echarts.min'
import geoJson from './mapData';

在页面analysis.wxml文件

<view class="chatdt"><ec-canvas-all id="mychart-dom-area" canvas-id="mychart-area" ec="{{ dtMap }}"></ec-canvas-all>
</view>

在页面analysis.wxss文件

.chatdt {width: 750rpx;height: 750rpx;margin: 0 auto;
}

analysis.js文件

let defaultDtObj = {tooltip: {show: false,},visualMap: {type: 'continuous',inRange: {color: '#7ecac6', //地图用一种颜色显示,不同程度的话,写成数组形式的颜色},show: false},series: [{type: 'map',mapType: 'gansu',left: 10,right: 10,label: {normal: {show: true, //在省市区是否显示省市区名称formatter: '{b}\n{c}',fontSize: 10,lineHeight: 13,},},itemStyle: {borderColor: '#ffffff',emphasis: {areaColor: '#6aa4ce',borderWidth: 0},},animation: false,selectedMode: false,data: [{ name: '兰州', value: 0 },{ name: '平凉', value: 0 },{ name: '张掖', value: 0 },{ name: '酒泉', value: 0 },{ name: '白银', value: 0 },{ name: '庆阳', value: 0 },{ name: '嘉峪关', value: 0 },{ name: '武威', value: 0 },{ name: '临夏', value: 0 },{ name: '定西', value: 0 },{ name: '天水', value: 0 },{ name: '陇南', value: 0 },{ name: '甘南', value: 0 },{ name: '金昌', value: 0 },],}]
}
Page({data: {dtMap: {onInit: function (canvas, width, height, dpr) {dtChart = echartsAll.init(canvas, null, {width: width,height: height,devicePixelRatio: dpr // new});canvas.setChart(dtChart);echartsAll.registerMap('gansu', geoJson);dtChart.setOption(getDtOption());return dtChart;}},},getDtData() {let obj1 = { ...defaultDtObj }obj1.series[0].data = [{ name: '兰州', value: 10 },{ name: '平凉', value: 20 },{ name: '张掖', value: 30 },{ name: '酒泉', value: 40 },{ name: '白银', value: 41 },{ name: '庆阳', value: 15 },{ name: '嘉峪关', value: 10 },{ name: '武威', value: 20 },{ name: '临夏', value: 30 },{ name: '定西', value: 40 },{ name: '天水', value: 41 },{ name: '陇南', value: 15 },{ name: '甘南', value: 15 },{ name: '金昌', value: 15 },]dtChart.setOption(obj1)},onReady() {this.getDtData()}
})function getDtOption() {return defaultDtObj
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/224826.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何发布自定义 npm 组件包

准备工作 1. 注册 npm 账号 还没有 npm 账号&#xff1f;去官网注册&#xff1a; https://www.npmjs.com 需要记住用户名、密码、邮箱&#xff0c;后面需要用到。 2. 查看本地 npm 镜像&#xff0c;如果不是默认的&#xff0c;需要改回来 npm config get registry重置镜像路…

【贝叶斯分析】计算机科学专业博士作业二

1 第一题 1.1 题目 已知变量A和B的取值只能为0或1&#xff0c;A⫫&#x1d469;&#xff0c;且&#x1d45d;(&#x1d434;1)0.65&#xff0c;&#x1d45d;(&#x1d435;1)0.77。C的取值与A和B有关&#xff0c;具体关系如下图所表&#xff1a; ABP(C1|A,B)000.1010.99100…

Leetcode 455 分发饼干

题意理解&#xff1a; 小孩的饭量&#xff1a; [1,2,7,10] 饼的大小&#xff1a; [1,3,5,7] 当饼的大小>小孩饭量时&#xff0c;小孩就能够吃饱。 求如何分配饼让更多的小孩子能够吃饱。 解题思路&#xff1a; 两种思路&#xff1a; 先把胃口小的孩子用较小的饼来喂饱—…

BearPi Std 板从入门到放弃 - 先天神魂篇(7)(RT-Thread 定时器-硬件定时器)

简介 BearPi IOT开发板 硬件定时器使用步骤 创建项目 参考 BearPi RT-Thread项目创建 RT-Thread TIM2 设备注册 宏定义添加 rtconfig.h 中添加 #define RT_USING_HWTIMER #define BSP_USING_TIM #define BSP_USING_TIM2生成支持TIM2的mdk5项目工程 env 指令 scons --t…

k8s中pod监控数据在grafana中展示

实现目标:将kubesphere[K8S]中运行的pod监控数据在grafana平台进行展示。 前提说明:需要在k8s每个集群中内置的prometheus配置中将pod指标数据远程写入到victoriametrics持久化数据库中。 实现效果如下: CPU使用量: round(sum by (namespace, pod) (irate(container_cpu…

Vue3-19-组件-定义和基本使用

组件的定义 个人理解 &#xff1a;1、组件&#xff0c;就是我们把某个功能模块进行封装&#xff0c;在使用时直接引入进行使用&#xff0c;极大的提高了代码的可复用性。2、在vue 中&#xff0c;一个 [.vue] 文件&#xff0c;就是一个组件。3、组件之间存在【引入】 与 【被引…

锁--07_2---- index merge(索引合并)引起的死锁

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 案例分析生产背景死锁日志表结构执行计划 EXPLAN为什么会用 index_merge&#xff08;索引合并&#xff09;为什么用了 index_merge就死锁了解决方案注&#xff1a;M…

【ArcGIS Pro二次开发】:CC工具箱1.1.5更新_免费_50+工具

CC工具箱1.1.5更新【2023.12.15】 使用环境要求&#xff1a;ArcGIS Pro 3.0 一、下载链接 工具安装文件及使用文档&#xff1a; https://pan.baidu.com/s/1OJmO6IPtMfX_vob3bMtvEg?pwduh5rhttps://pan.baidu.com/s/1OJmO6IPtMfX_vob3bMtvEg?pwduh5r 二、使用方法 1、在下…

k8s节点not ready

开发小伙伴反应&#xff0c;发布应用失败。检查后发现有个虚拟机挂掉了 启动后先重启服务&#xff1a;&#xff08;一般是自启动&#xff0c;自动拉起pod服务&#xff09; service docker restart docker ps |grep kube-apiserver|grep -v pause|awk ‘{print $1}’|xargs -i …

Appium 图像识别技术 OpenCV

在我们做App自动化测试的时候&#xff0c;会发现很多场景下元素没有id、content-desc、text等等属性&#xff0c;并且有可能也会碰到由于开发采用的是自定义View&#xff0c;View中的元素也无法识别到&#xff0c;很多的自动化测试框架对此类场景束手无策。Appium在V1.9.0中有给…

10个国内外素材网站,提供免费 Photoshop 素材下载资源

即时设计 被很多人视为免费的PS素材网站——即时设计提供了资源广场版块&#xff0c;方便用户查找材料。对于提供的PS材料&#xff0c;即时设计也做了详细的分类工作&#xff0c;用户可以根据不同的使用标签快速找到相应的PS材料。 进入资源广场&#xff0c;在搜索框中输入要…

Golang在 Docker 中交叉编译 Windows

前言&#xff1a; 前端时间把本地的 Golang 开发环境卸载了&#xff0c;如果编写代码的话就是启动一个 Golang 的 Docker 容器。这样做对于服务端开发本来也是没有问题的&#xff0c;但是有时候想要把程序放到 Windows 上面来执行&#xff0c;那就遇到麻烦了。因为 Docker 容器…

华为数通——网络参考模型

OSI参考模型 七层 应用层&#xff1a;最靠近用户的一层&#xff0c;为应用程序提供网络服务。 六层 表示层&#xff1a;数据格式转换编码格式UTF-8。 五层 会话层&#xff1a;双方之间建立、管理和终止会话。 四层 传输层&#xff1a;建立、维护和取消端到端的数据传输过…

verilog语法进阶-分布式ram

概述: FPGA的LUT查找表是用RAM设计的&#xff0c;所以LUT可以当成ram来使用&#xff0c;也并不是所有的LUT都可以当成ram来使用&#xff0c;sliceM的ram可以当成分布式ram来使用&#xff0c;而sliceL的ram只能当成rom来使用&#xff0c;也就是只能读&#xff0c;不能写&#x…

如何使用ArcGIS Pro裁剪影像

对影像进行裁剪是一项比较常规的操作&#xff0c;因为到手的影像可能是多种范围&#xff0c;需要根据自己需求进行裁剪&#xff0c;这里为大家介绍一下ArcGIS Pro中裁剪的方法&#xff0c;希望能对你有所帮助。 数据来源 本教程所使用的数据是从水经微图中下载的影像和行政区…

软件测试用例经典方法 | 单元测试法案例

单元测试又称模块测试&#xff0c;是对软件设计的最小单元的功能、性能、接口和设计约束等的正确性进行检验&#xff0c;检查程序在语法、格式和逻辑上的错误&#xff0c;并验证程序是否符合规范&#xff0c;以发现单元内部可能存在的各种缺陷。 单元测试的对象是软件设计的最…

hive的分区表和分桶表详解

分区表 Hive中的分区就是把一张大表的数据按照业务需要分散的存储到多个目录&#xff0c;每个目录就称为该表的一个分区。在查询时通过where子句中的表达式选择查询所需要的分区&#xff0c;这样的查询效率会提高很多。 静态分区表基本语法 创建分区表 create table dept_p…

HBase的安装与简单操作

文章目录 第1关&#xff1a;Hbase数据库的安装第2关&#xff1a;创建表第3关&#xff1a;添加数据、删除数据、删除表 第1关&#xff1a;Hbase数据库的安装 编程要求 根据上述步骤安装配置好HBase数据库&#xff0c;并启动成功。 测试说明 若安装配置成功&#xff0c;则程序会…

mfc配置halcon环境

新建mfc窗体 选择基于对话框 打开项目属性 1、附加包含目录添加&#xff1a; $(HALCONROOT)\include;$(HALCONROOT)\include\halconcpp 2、链接器->常规->附加库目录 $(HALCONROOT)\lib\x64-win64 3、链接器->输入->附加依赖项 halcon.lib;halconcpp.lib 在对话…

网络入门---守护进程

目录标题 什么是守护进程会话的理解setsid函数daemonSelf函数模拟实现测试 什么是守护进程 在前面的学习过程中我们知道了如何使用TCP协议和UDP协议来实现通信&#xff0c;比如说登录xshell运行了服务端&#xff1a; 然后再登录一个xshell运行客户端并向服务端发送信息&#…