前情提要

用echarts画地图的方式有两种

  1. 通过真实的地图来画(百度地图、google地图、或者其它某种地图软件)
  2. 去拿到某块区域的json文件来画

第一种方式,可以前往 https://blog.csdn.net/glorydx/article/details/127656301查看具体如何实现

echarts 获取json文件来画地图

如何获取某一区域的json文件
通过npm 安装echarts的包里面,有自带的中国国内省级地图和中国地图,世界地图

如果想获得外国的国家json,需要另外找资源,并引入使用。

import world from '../../../common/map/world.json';

引入json后需要注册地图,vue示例

import world from '../../../common/map/world';
export default {mounted() {// 我之前直接将echarts挂载到vue原型上了,所以可以这样用this.$echarts.registerMap('world', world);}
}

main.js将echarts挂载到vue原型

import Vue from 'vue';
import echarts from 'echarts';
Vue.prototype.$echarts = echarts;
new Vue({router,store,render: (h) => h(App),
}).$mount('#app');

this.options构建地图所需要的数据和样式,比如

import world from '../../../common/map/world';
export default {data: () => {return {options: {},chart: undefined}},mounted() {// 我之前直接将echarts挂载到vue原型上了,所以可以这样用this.$echarts.registerMap('world', world);this.options = {// 默认的颜色数组 (如果不明确设置每个数据项的颜色,则会采用默认的数组// 此处的颜色为十六进制表示,也可以使用rgb来表示。简单地理解就是一串字符就代表一个颜色,挑选喜欢的颜色可以自行搜索颜色color: ['#ac6767', '#1d953f', '#6950a1', '#918597'],// visualMap: {//   inRang: {//     // color: ['#ac6767', '#1d953f', '#6950a1', '#918597', '#ff2d52'],//   },// },series: [{// 图标类型为 地图type: 'map',name: 'test',label: {show: false,position: 'top',margin: 8,},mapType: 'world', // 地图类型为 世界地图 需要和registerMap注册的名称一致// data里的每一个{}中,是一项数据整体,标明了该项数据的名称,值,以及颜色等参数。注意:此处的字符串需要加双引号""(输入法切换至英文状态)data: [{// ItemStyle 中设置每一个数据项的颜色name: 'United States',value: 43,itemStyle: { color: '#ff2d52' },},{name: 'Japan',value: 17, // 注意项与项之间的逗号itemStyle: { color: '#CD8500' },},{name: 'France',value: 7,itemStyle: { color: '#EE2C2C' },},{name: 'Italy',value: 6,itemStyle: { color: '#918597' },},{name: 'Canada',value: 5,itemStyle: { color: '#bda29a' },},{name: 'United Kingdom',value: 4,itemStyle: { color: '#6950a1' },},{name: 'Spain',value: 4,itemStyle: { color: '#1d953f' },},{name: 'Holland',value: 4,itemStyle: { color: '#2f4554' },},{name: 'Belgium',value: 3,itemStyle: { color: '#EEAD0E' },},{name: 'Germany',value: 2,itemStyle: { color: '#607B8B' },},{name: 'Austria',value: 2,itemStyle: { color: '#5CACEE' },},{name: 'Switzerland',value: 1,itemStyle: { color: '#4EEE94' },},{name: 'Poland',value: 1,itemStyle: { color: '#8DEEEE' },},{name: 'Chile',value: 1,itemStyle: { color: '#B23AEE' },},],roam: true,zoom: 1,// 去除各个国家上的小红点// showLegendSymbol: false,},],// 鼠标悬浮,单击产生的效果(在网页上可以动态显示)tooltip: {show: true,trigger: 'item',triggerOn: 'mousemove|click',axisPointer: {type: 'line',},textStyle: {fontSize: 14,},borderWidth: 0,},};}
}

我们在mounted函数中将这些东西赋值给echarts

 this.$echarts.registerMap('world', world);this.options = {.....}this.chart = this.$echarts.init( 某个dom );this.chart.setOption(this.options, true);

实际效果


样式不太好看,这里只是举例子,大家可以在options里面配置需要的样式和地图的具体功能

这里展示一些地图常用的样式修改api

{// 默认的颜色数组 (如果不明确设置每个数据项的颜色,则会采用默认的数组// 此处的颜色为十六进制表示,也可以使用rgb来表示。简单地理解就是一串字符就代表一个颜色,挑选喜欢的颜色可以自行搜索颜色color: ['yellow', 'orangered'],// 用来分配数值于颜色的关系,以及颜色分布展示 https://echarts.apache.org/zh/option.html#visualMapvisualMap: {min: 0,max: 500,text: ['High', 'Low'],realtime: false,calculable: true,inRange: {color: ['skyblue', 'blue'],},},// 缩放平移是否开启 https://echarts.apache.org/zh/option.html#series-map.roamroam: true,// 设置整个地图的背景色backgroundColor: `rgba(0,0,0,0)`,// 整个地图的阴影,其实是在底下再画一个地图出来,要求与上面的地图同步,看上下有阴影的效果,但是不能缩放,缩放会出问题// geo: {//   type: 'map',//   roam: true,//   name: 'test',//   zoom: 2,//   zlevel: 0,//   map: 'world',//   label: {//   },//   itemStyle: {//     // areaColor: 'red',//     emphasis: {//       show: false,//     },//     shadowColor: '#ff2d52', // 区域之间的阴影,可以让区域之间更立体//     shadowBlur: 10, // 阴影模糊度//     shadowOffsetX: 10, // 阴影偏移//     shadowOffsetY: 10, // 阴影偏移//   },//   layoutCenter: ['70%', '70%'],//   // offset: [10, 10],// },series: [{// 图标类型为 地图type: 'map',name: 'test',zoom: 2, // 初始的缩放程度// scaleLimit: {//   max: 6,//   min: 2,// }, // 因为世界地图比较大,所以最小设置为2nameMap: this.nameMap, // 将地图json提供的名称,对应换成中文,后面data提供的name也应该换成中文colorBy: 'series', // series 或者 data 是按照上面的color来配色还是按照data里面的颜色来配色label: {show: true, // 是否显示每一个块区域的名称,因为是世界地图,名字太多,就设置为falsecolor: '#fff', // 每块区域标签的颜色position: 'inside', //标签所在的位置 https://echarts.apache.org/zh/option.html#series-map.label.positionformatter: '{b}', // 对label的内容进行定义 https://echarts.apache.org/zh/option.html#series-map.label.formatterfontWeight: 'normal', // 文字字体的粗细。https://echarts.apache.org/zh/option.html#series-map.label.fontWeightfontFamily: 'Microsoft YaHei',fontSize: 14,align: 'center',overflow: 'truncate',ellipsis: '...',// rich: {} 可以更加自由的定义label的内容及样式 https://echarts.apache.org/zh/option.html#series-map.label.rich},itemStyle: {areaColor: 'skyblue', // 没有数据时的区域颜色borderColor: 'white', // 区域边界线的颜色borderWidth: 1, // 边界的宽度,为0时无边界borderType: 'dashed', // 边界的类型 https://echarts.apache.org/zh/option.html#series-map.itemStyle.borderTypeopacity: 1, // 地图整体的透明度shadowColor: 'rgba(255, 255, 255, 0.5)', // 区域之间的阴影,可以让区域之间更立体shadowBlur: 10, // 阴影模糊度shadowOffsetX: 0, // 阴影偏移shadowOffsetY: 0, // 阴影偏移},// 鼠标移入区块时的样式emphasis: {disabled: false, // 是否禁止高亮状态// laebl: {...},同上属性// itemStyle: {...},同上属性},// 选中区块(鼠标点击区块)的样式,selectedMode属性被开启时有效select: {disabled: true, // 是否禁止高亮状态// laebl: {...},同上属性// itemStyle: {...},同上属性},selectedMode: 'multiple', // 是否支持多选multiple或者单选singlemapType: 'world', // 地图类型为 世界地图zlevel: 1, //当你有多组数据需要渲染的时候,这个值越大,会被渲染到上方,相当于z-indexz: 2, // 与zlevel相似,但不会创建新的canvas// 内容距离容器的边距// left: 'auto',// top: 'auto',// right: 'auto',// bottom: 'auto',// 在地图上做特殊标记markPoint: {symbol: 'pin',symbolSize: 50, // 标记的大小symbolKeepAspect: false,symbolOffset: [10, 10],silent: false,itemStyle: {color: 'skyblue',},data: [{name: '美国',value: 43,x: 200, //标记的位置,相对于canvas的位置 一旦平移或者缩放,会出问题y: 100, //标记的位置,相对于canvas的位置 一旦平移或者缩放,会出问题label: {color: '#fff', // 标记的颜色},},],},// markLine: {...}, 在地图上划线,一般很少用 https://echarts.apache.org/zh/option.html#series-map.markLine// markArea: {...}, 在地图上划一块儿区域,一般很少用 https://echarts.apache.org/zh/option.html#series-map.markAreaslient: true,// 用来控制地图最初渲染的位置,配合layoutSize使用layoutCenter: ['70%', '70%'],// 会影响地图的放大缩小,慎用// layoutSize: 1000,// data里的每一个{}中,是一项数据整体,标明了该项数据的名称,值,以及颜色等参数。注意:此处的字符串需要加双引号""(输入法切换至英文状态)data: [{// ItemStyle 中设置每一个数据项的颜色name: '美国',value: 43,// itemStyle:{...} // 对某个单独的数据比如美国设置单独的样式,同上方的itemStyle配置一致// select: {...} // 同全局的select属性一致// tooltip: {...} // 同全局的tooltip属性一致label: {// 对某个单独的数据比如美国设置单独的样式,同上方的itemStyle配置一致position: 'insideBottomRight',offset: [-200, 0], // 通过offset可以控制label的位置,但地图缩放位置会发生变化,并不是很好用,除非禁止缩放color: 'skyblue',},labelLine: {// 全局也有labelline属性配置,但在地图中,一般不适用,某个区域因为地方太小,反而需要这样的折线show: true,showAbove: true,length2: 12, // line是一条折线,分为两段,相对来说第二段的长度,为0时就是一条直线lineStyle: {color: 'skyblue', // 折线的颜色width: 1, // 折线宽度type: 'dashed', // 折线的类型 https://echarts.apache.org/zh/option.html#series-map.data.labelLine.lineStyle.type},}, //label的引导线 https://echarts.apache.org/zh/option.html#series-map.data.labelLine},{name: '日本',value: 17, // 注意项与项之间的逗号},{name: '法国',value: 7,},{name: '意大利',value: 6,},{name: '加拿大',value: 5,},{name: '西班牙',value: 40,},],},],// 鼠标悬浮,单击产生的效果(在网页上可以动态显示)tooltip: {show: true,trigger: 'item',triggerOn: 'mousemove|click',axisPointer: {type: 'line',},textStyle: {fontSize: 14,},borderWidth: 0,},};

修改样式之后

样式api文档:https://echarts.apache.org/zh/option.html#series-map.type

echarts如何画地图相关推荐

  1. 在vue中使用echarts,echarts-map:echarts画地图

    1.首先安装:cnpm install echarts --save 2.然后main.js引入(也可以组件内引入) // 引入ECharts图表公共组件 import echarts from 'e ...

  2. echarts geo地图示例_python小白的画地图合集(使用pyecharts)

    经过今晚的小摸索,终于可以画出世界地图.省级地图以及全国的热力图.所以特此决定出一个小的合集,建议先去阅读上一篇写的画中国地图,可能那样子你会很快速了解到画图的精髓. 画世界地图 依旧是上次的套路: ...

  3. Echarts定制一个地图

    制作地图 1.准备制作网站 2.echarts导入 3.开始制作地图 3.json代码放到js里 4.在html代码里显示 1.准备制作网站 制作地图的网站:点击 选择地图的轮廓:点击 我们需要用第二 ...

  4. 详解python 利用 pyecharts 画地图(热力图)(世界地图,省市地图,区县地图)、动态流向图

    转载: 详解python 利用echarts画地图(热力图)(世界地图,省市地图,区县地图) Pyecharts绘制全球流向图 pyecharts中文教程官网 目录  安装对应的python模块 世界 ...

  5. 分享一次自己使用 pyecharts 模块 画地图,一路踩坑和填坑的经历

    pyecharts是一个百度做的数据可视化模块,做好的echarts图可以存为html\svg等多种格式,具有极好的交互性和展示性. 文档很详细,先把官网中文文档放上来:http://pyechart ...

  6. 『Python学习笔记』使用pycharts包画地图!

    使用pycharts包画地图! 文章目录 一. 环境包的安装 二. 画中国地图 三. 参考文献 一. 环境包的安装 pyecharts的下载参考此文章(选择0.1.9.4版本):https://zhu ...

  7. Echarts实现中国地图多级钻取-可实现四级

    Echarts实现中国地图多级钻取-可实现四级 项目git地址 https://gitee.com/fuyanghulin/thermalMap 说明:上述项目只保留了浙江的geo地图(第四级无街道) ...

  8. vue集成echarts,vue+echarts实现中国地图和河南省地图

    安装echarts npm install echarts -D 配置echarts 在项目src目录下main.js文件中加入配置: import echarts from 'echarts'Vue ...

  9. 使用Pyecharts进行全国水质TDS地图可视化全过程7:使用pyecharts画地图总述

    目录 一.什么是pyecharts? 二.安装pyecharts? 三.pyecharts使用文档 四.pyecharts画地图 五.需要注意的事项 六.地图的下钻 本文为总述.后面几篇文章再详细的拿 ...

  10. Echarts结合百度地图API绘制热力图

    最近项目中需要使用echarts与百度地图API结合来绘制事故发生热力图,在将其与百度地图结合的过程中遇到了一些问题,现将其过程与解决方案记录下,以供日后参考.echarts中结合百度地图API的热力 ...

最新文章

  1. History命令用法
  2. swift 函数篇章
  3. Boost.SmartPtr 的快速 (CI) 测试
  4. 转换8421码的程序c语言,16进制数转换成8421BCD编码函数
  5. sqlite 字符串 转 整型 cast 函数 (强制类型转换 )
  6. 如何跨服务器访问html 页面,html页面如何跨域访问另一页面内容,并将部分内容呈现出来?...
  7. Eclipse不编译java文件的解决方法
  8. 泰勒展开与找第一项系数不为1的解题策略
  9. leetcode ----Trie/stack专题
  10. Scala 下载安装配置
  11. pom文件导入maven依赖
  12. SSM框架-小区物业管理系统(附源码)
  13. BlackBerry黑莓7230/7290等常用的功能简介以及技巧分类【转载】
  14. 魔兽实名好友怎么显示服务器,魔兽世界实名好友跨服组队详细解析
  15. poj 1862 贪心
  16. Python人工智能之图片识别,Python3一行代码实现图片文字识别
  17. 乐器php毕业论文,打击乐器在音乐课堂教学中的应用
  18. HTML系列之文本格式化标签
  19. 福昕阅读器给pdf创建目录方法
  20. mysql/jdbc:设置useInformationSchema=true读取表注释信息(table_comment)

热门文章

  1. a3图纸标题栏尺寸标准_标准CAD制图上A3图幅上的标题栏尺寸是多少
  2. JMeter下载及安装详细教程
  3. 使用cmd命令删除服务
  4. IDE、SCSI、SATA、USB、并口和串口
  5. iOS YYKit理解
  6. 架构篇--系统监控--spring-boot2.0.X 系统原生信息监控,SQL信息监控,cpu温度监控报警,cup磁盘内存使用率监控报警,自定义端点监控以及子节点获取,系统异常邮件通知
  7. Win7 专业版安装中文包、汉化处理
  8. xshell 官网下载
  9. java鼠标点击按钮_Java 模拟鼠标事件 java中控制鼠标点击的方法
  10. 汉王数据导入java环境,怎样把u盆内容导入汉王门禁考勤管理软件