热门标签 | 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 是省份,可以在该事件内实现所需操作
    }
  }
})


推荐阅读
  • 本文探讨了如何在Classic ASP中实现与PHP的hash_hmac('SHA256', $message, pack('H*', $secret))函数等效的哈希生成方法。通过分析不同实现方式及其产生的差异,提供了一种使用Microsoft .NET Framework的解决方案。 ... [详细]
  • 本文探讨了如何利用HTML5和JavaScript在浏览器中进行本地文件的读取和写入操作,并介绍了获取本地文件路径的方法。HTML5提供了一系列API,使得这些操作变得更加简便和安全。 ... [详细]
  • ListView简单使用
    先上效果:主要实现了Listview的绑定和点击事件。项目资源结构如下:先创建一个动物类,用来装载数据:Animal类如下:packagecom.example.simplelis ... [详细]
  • 本文探讨了2019年前端技术的发展趋势,包括工具化、配置化和泛前端化等方面,并提供了详细的学习路线和职业规划建议。 ... [详细]
  • 探讨ChatGPT在法律和版权方面的潜在风险及影响,分析其作为内容创造工具的合法性和合规性。 ... [详细]
  • 本文介绍了如何通过Java代码计算一个整数的位数,并展示了多个基础编程示例,包括求和、平均分计算、条件判断等。 ... [详细]
  • 使用JS、HTML5和C3创建自定义弹出窗口
    本文介绍如何结合JavaScript、HTML5和C3.js来实现一个功能丰富的自定义弹出窗口。通过具体的代码示例,详细讲解了实现过程中的关键步骤和技术要点。 ... [详细]
  • 本篇文章介绍如何将两个分别表示整数的链表进行相加,并生成一个新的链表。每个链表节点包含0到9的数值,如9-3-7和6-3相加得到1-0-0-0。通过反向处理链表、逐位相加并处理进位,最终再将结果链表反向,即可完成计算。 ... [详细]
  • 深入探讨Web页面中的锚点交互设计
    本文旨在分享Web前端开发中关于网页锚点效果的实现与优化技巧。随着Web技术的发展,越来越多的企业开始重视前端开发的质量和用户体验,而锚点功能作为提升用户浏览体验的重要手段之一,值得深入研究。 ... [详细]
  • 本文详细介绍了 Android 开发中 layout_gravity 属性的使用方法及其在不同布局下的效果,旨在帮助开发者更好地理解和利用这一属性来精确控制视图的布局。 ... [详细]
  • 解决Spring Boot项目创建失败的问题
    在尝试创建新的Spring Boot项目时遇到了一些问题,具体表现为在项目创建过程中的两个关键步骤出现错误。本文将详细探讨这些问题及其解决方案。 ... [详细]
  • 如何在iview-admin中替换mock数据为自定义接口数据
    本文介绍如何在iview-admin项目中取消默认的mock数据,并使用自己定义的接口数据,确保应用正常运行。 ... [详细]
  • 本文详细介绍了如何解决 Microsoft SQL Server 中用户 'sa' 登录失败的问题。错误代码为 18470,提示该帐户已被禁用。我们将通过 Windows 身份验证方式登录,并启用 'sa' 帐户以恢复其访问权限。 ... [详细]
  • 深入剖析JVM垃圾回收机制
    本文详细探讨了Java虚拟机(JVM)中的垃圾回收机制,包括其意义、对象判定方法、引用类型、常见垃圾收集算法以及各种垃圾收集器的特点和工作原理。通过理解这些内容,开发人员可以更好地优化内存管理和程序性能。 ... [详细]
  • 深入解析:OpenShift Origin环境下的Kubernetes Spark Operator
    本文探讨了如何在OpenShift Origin平台上利用Kubernetes Spark Operator来管理和部署Apache Spark集群与应用。作为Radanalytics.io项目的一部分,这一开源工具为大数据处理提供了强大的支持。 ... [详细]
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社区 版权所有