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

news/2024/7/20 1:20:02 标签: 微信小程序, echarts, 小程序

文章目录

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

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

一、效果图

在这里插入图片描述

二、实现

echarts_8">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 版本(定制图表时需要版本一致,若不定制可忽略)

在这里插入图片描述

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

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

在这里插入图片描述

  • 点击在线定制
    在这里插入图片描述
  • 选择版本(必须和前面下载的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.niftyadmin.cn/n/5266019.html

相关文章

如何解决Windows 11黑屏的问题,让电脑“重见光明”

本页介绍了经过测试并证明有效的常见Windows 11黑屏故障的所有修复程序。 本页上的提示和解决方案适用于所有Windows 11设备,从台式电脑和笔记本电脑到微软的Surface二合一设备。 是什么导致Windows 11黑屏死机 在使用Windows 11时,显示器或屏幕明显关闭,通常被称为Window…

seleniumwire获取页面接口数据

selenium并不支持获取响应的数据&#xff0c;我们可以使用selenium-wire库&#xff0c;selenium-wire扩展了 Selenium 的 Python 绑定&#xff0c;可以访问浏览器发出的底层请求。 编写的代码与 Selenium 的方式相同。 1. 先安装seleniumwire的插件 pip install selenium-wir…

解决Chrome同一账号在不同设备无法自动同步书签的问题

文章目录 一、问题与原因&#xff1f;2. 解决办法 一、问题与原因&#xff1f; 1.问题 使用谷歌Chrome浏览器比较头疼的问题就是&#xff1a;使用同一个Google账号&#xff0c;办公电脑与家用电脑的数据无法同步。比如&#xff1a;办公电脑中的书签、浏览记录等数据&#xff0…

C# 数据的保存和提取(.TXT格式)

红色部分的才是最终版 一、将页面内容保存到文件中 第一步 创建Visual的Windows窗体应用,使用的是 第二步 创建几个Label控件、TextBox控件、以及Button按钮,而TextBox控件放入Panel中 第三步 先对写法进行了解,了解保存的语句 StreamWriter sw= new StreamWriter(TXT…

Gateway No servers available for service

springCloud集成网关测试报错找不到服务&#xff0c;如下 造成这种错误可能是下面两种原因 1、nacos注册的服务不在一个命名空间内&#xff0c;导致找不到服务503 spring cloud:nacos:discovery:server-addr: 127.0.0.1:8848config:server-addr: 127.0.0.1:8848file-extensio…

衡兰芷若成绝响,人间不见周海媚(4k修复基于PaddleGan)

一代人有一代人的经典回忆&#xff0c;1994年由周海媚、马景涛、叶童主演的《神雕侠侣》曾经风靡一时&#xff0c;周海媚所诠释的周芷若凝聚了汉水之钟灵&#xff0c;峨嵋之毓秀&#xff0c;遇雪尤清&#xff0c;经霜更艳&#xff0c;俘获万千观众&#xff0c;成为了一代人的共…

如何使用PHP进行数据加密和解密?

在 PHP 中&#xff0c;你可以使用加密算法和相关的扩展库来进行数据加密和解密。以下是使用 PHP 进行数据加密和解密的基本示例&#xff1a; 使用 OpenSSL 扩展进行加密和解密&#xff1a; 加密&#xff1a; <?php $data "Hello, World!"; $key openssl_rando…

使用Java实现PDF填充图片功能

一、引言 在软件开发中&#xff0c;将图片填充至PDF文件是一项常见的需求。为了满足这一需求&#xff0c;我们可以使用Java编程语言和相关的库来实现。本文将介绍如何使用Java和iText库来实现PDF填充图片的功能。 二、准备工作 在开始之前&#xff0c;我们需要确保已经安装了…