热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用EchartsforWeixin小程序实现中国地图及区域点击事件

本文介绍了如何使用EchartsforWeixin在微信小程序中构建中国地图,并实现区域点击事件。包括效果展示、条件准备和逻辑实现的具体步骤。

使用Echarts for Weixin 小程序实现中国地图及区域点击事件

1. 效果展示

本文使用了Echarts for Weixin作为绘图框架,具体API文档请参见官方文档

2. 条件准备

1. 从GitHub下载echarts-for-weixin项目。技术分享图片

  1. ec-canvas组件全部导入到你的小程序中,并将其作为组件引用。技术分享图片
  2. 在需要使用该组件的页面中注册该组件。show.json
    {
      "component": true,
      "usingComponents": {
          "ec-canvas": "../../../ec-canvas/ec-canvas"
      }
    }
    show.wxml
    
     
    
    show.wxss
    .box {
        width:100%;
        height:100%;
        position: absolute;
        top: 0;
        bottom: 0;
        left: 0;
        right: 0;
    } 
    #mychart-dom-map {
    position: relative;
    width: 100%;
    padding-top: 20rpx;
    height: 720rpx;
    }

3. 逻辑实现

3.1 引入地图数据

地图数据是绘制地图的关键,可以使用JSON或JS格式导入,小程序中使用JS更为方便。代码较长,托管在Gitee data.js

3.2 组件初始化

通过pageInstance绑定页面内事件,进行锚定。show.js

import * as echarts from '../../../ec-canvas/echarts.js';
import geoJson from 'data.js';
let chart = null;
let dataList = [{ name: 'china' }];
let pageInstance = {}

// 初始化数据
function initChart(canvas, width, height) {
  chart = echarts.init(canvas, null, {
    width: width,
    height: height
  });
  canvas.setChart(chart); // 容器初始化
  echarts.registerMap('china', geoJson); // 地图数据注册
  var option = {
    tooltip: {
      triggerOn: 'click',
      formatter: function (e, t, n) {
        pageInstance.BindEvent(e);
        return e.name
      }
    }, // 点击响应事件
    geo: {
      map: 'china',
      roam: false,
      scaleLimit: {
        min: 1,
        max: 2
      },
      zoom: 1.23,
      top: 120,
      label: {
        normal: {
          show: true,
          fontSize: '10',
          color: 'rgba(0,0,0,0.7)'
        }
      },
      itemStyle: {
        normal: {
          borderColor: 'rgba(0, 0, 0, 0.2)'
        },
        emphasis: {
          areaColor: '#f2d5ad',
          shadowOffsetX: 0,
          shadowOffsetY: 0,
          borderWidth: 0
        }
      }
    }, // 地图颜色等配置
    series: [{
      name: '来源信息',
      type: 'map',
      geoIndex: 0,
      data: dataList
    }] // 对应点击事件响应
  };
  chart.setOption(option); // 返回初始化结果
  return chart;
}

Component({
  options: {
    addGlobalClass: true,
    multipleSlots: true
  },
  properties: {},
  data: {
    ec: {
      onInit: initChart
    }
  },
  lifetimes: {
    created: function () {
      pageInstance = this;
    }
  },
  methods: {
    BindEvent(e) {
      // 点击事件锚定
      // e.name 是省份,可以在该事件内实现所需操作
    }
  }
})


推荐阅读
  • Python 日志记录模块详解
    日志记录机制是软件开发中不可或缺的一部分,它帮助开发者追踪和调试程序运行时的各种异常。Python 提供了内置的 logging 模块,使我们在代码中记录和管理日志信息变得更加方便。本文将详细介绍如何使用 Python 的 logging 模块。 ... [详细]
  • AngularJS 控制器详解
    本文通过一个示例详细介绍了 AngularJS 控制器的使用方法,并探讨了控制器之间数据共享的问题。 ... [详细]
  • Vulnhub DC3 实战记录与分析
    本文记录了在 Vulnhub DC3 靶机上的渗透测试过程,包括漏洞利用、内核提权等关键步骤,并总结了实战经验和教训。 ... [详细]
  • 2019-2020学年 20174325 叶竞蔚 《网络对抗技术》实验六:Metasploit基础应用
    本实验旨在掌握Metasploit框架的基本应用方法,重点学习三种常见的攻击方式及其实施思路。实验内容包括一次主动攻击(如MS08-067)、一次针对浏览器的攻击(如MS11-050)以及一次针对客户端的攻击(如Adobe漏洞利用)。此外,还包括成功应用一个辅助模块。 ... [详细]
  • 本文介绍了如何使用 Gesture Detector 和 overridePendingTransition 方法来实现滑动界面和过渡动画。 ... [详细]
  • 在使用 Python 编程时,如果在一个函数中引用了未声明为全局变量的外部变量,可能会遇到 UnboundLocalError。本文将通过一个具体的例子来解释如何解决这个问题。 ... [详细]
  • 本文详细介绍了进程、线程和协程的概念及其之间的区别与联系。进程是在内存中运行的独立实体,具有独立的地址空间和资源;线程是操作系统调度的基本单位,属于进程内部;协程则是用户态下的轻量级调度单元,性能更高。 ... [详细]
  • 2012年中国科学院大学数学分析与高等代数研究生入学考试试题
    本文提供了2012年中国科学院大学数学分析和高等代数研究生入学考试的试题,供考生参考和学习。 ... [详细]
  • 本文介绍了 PHP 的基本概念、服务器与客户端的工作原理,以及 PHP 如何与数据库交互。同时,还涵盖了常见的数据库操作和安全性问题。 ... [详细]
  • HPE OEM Brocade 300 交换机无中断固件升级指南
    本文详细介绍了如何通过FTP方式对HPE OEM Brocade 300交换机进行无中断固件升级,确保网络服务的连续性。 ... [详细]
  • Android 属性 allowBackup 的安全风险分析
    在 Android API Level 8 及以上版本中,系统提供了一种机制来备份和恢复应用程序数据。通过设置 allowBackup 属性,开发者可以控制是否允许这种备份和恢复功能。然而,这一功能也带来了潜在的安全风险。 ... [详细]
  • 列表生成式虽然简洁高效,但在处理复杂算法时存在局限性。本文将介绍生成器(generator)的概念及其优势,探讨如何通过生成器解决列表生成式的局限性,并提供实际示例。 ... [详细]
  • Ubuntu 环境下配置 LAMP 服务器
    本文详细介绍了如何在 Ubuntu 系统上安装和配置 LAMP(Linux、Apache、MySQL 和 PHP)服务器。包括 Apache 的安装、PHP 的配置以及 MySQL 数据库的设置,确保读者能够顺利搭建完整的 Web 开发环境。 ... [详细]
  • 本文介绍了编程语言的基本分类,包括机器语言、汇编语言和高级语言的特点及其优缺点。随后详细讲解了Python解释器的安装与配置方法,并探讨了Python变量的定义、使用及内存管理机制。 ... [详细]
  • 在开发板的启动选项中看到如下两行:7:LoadBootLoadercodethenwritetoFlashviaSerial.9:LoadBootLoadercodethenwri ... [详细]
author-avatar
蜃海
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有