博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
插件~使用ECharts动态在地图上标识点
阅读量:5904 次
发布时间:2019-06-19

本文共 3318 字,大约阅读时间需要 11 分钟。

ECharts可以很方便的在网页上绘制地图,图表,并且可以提供下载图像,放大,缩小,拖动等功能,今天主要说一下它的地图类型(type:'map')是如何实现的.

首先在ECharts地图的坐标需要我们存储在一个geoCoord属性里,它是一个JS的字典对象,由键/值对组成,键表示点的名称,值则表达它的坐标,由经纬度组成,它是一个数组,如[136.00,32.00]它就表示了一个坐标.

地图类型的图表需要关注的元素

title:标题,显示这个地图所表示的名称

  title: {                    text: '清大云点亮中国',                    subtext: 'Tsingda.Cloud',                    sublink: 'http://www.eee114.com',                    x: 'center',                    y: 'top',                    textStyle: {                        color: '#fff'                    }                }

toolbox:工具栏,显示一些显示的工具,放大,缩小,查看数据集,下载图像等

    toolbox: {                    show: true,                    feature: {                        mark: { show: true },                        dataView: { show: true, readOnly: false },                        restore: { show: true },                        saveAsImage: { show: true }                    }                }

legend:图标显示,当series有多个地图时,这个值用到显示多个地图的图标,可以是横向显示和纵向显示

    legend: {                    x: 'left',                    y: 'top',                    data: ['在线', '离线'],//在线和离线对应的是series的名字                    selectedMode: false,//选中悬浮                    textStyle: {                        color: '#fff'                    }                }

series:地图显示,用来叠放显示地图,你可以定义多个,它们之间的关系是第一个在最上面,以此类推.

series: [                    //默认                    {                        name: '底层模版',                        type: 'map',                        mapType: 'china',                        data: provinceMap,                        geoCoord: source,                        itemStyle: {                            normal: {                                color: bgColor,                                borderColor: "#eee",                                label: {                                    show: true,                                    textStyle: {                                        color: "#fff"                                    }                                }                            }, emphasis: { color: "rgba(128, 128, 128, 0.5)" }                        },                    }]

markPoint:点标识,用来标识地图上的后,这些点通常是被存储在一个geoCoord对象上,这个对象是一个字典,这在文章开头已经介绍过.

markPoint: {
//动态标记 large: true,//这个选项,悬浮自动失效 symbolSize: 2, itemStyle: { normal: { shadowBlur: 2, shadowColor: 'rgba(37, 140, 249, 0.8)', color: onColor } }, data: [] }

markPoint里的data对象是这个地图上需要显示的点,它是一个字符型数组,用来存储geoCoord里的键!

setOption:将地图对象添加到指定的地图对象上

var myChart = echarts.init(document.getElementById('main'));  var option={}; myChart.setOption(option);

动态构建地图上的点标识markPoint

大概的思路是将要标记的点动态付给geoCoord和markPoint的data对象上,这样就可以动态在地图上标示点了

    $.get("/map/GetOffMap", function (data) {                                     for (var i in data) {                        option.series[0].geoCoord[data[i].longitude + "_" + data[i].latitude] = [parseFloat(data[i].longitude), parseFloat(data[i].latitude)];                        option.series[1].markPoint.data.push({ name: data[i].longitude + "_" + data[i].latitude });                    }                    myChart.setOption(option);

效果如下

感谢您的阅读!

谢谢与支持!

 

转载地址:http://dqkpx.baihongyu.com/

你可能感兴趣的文章
计算机网络物理层
查看>>
快速得到Word2007的Docx或Docm文档中的图片
查看>>
在Exchange Server 2007中使用多主机名称证书
查看>>
Cool!15个创意的 CSS3 文本效果【下篇】
查看>>
中手游接到私有化提议 每股ADS 21.5美元
查看>>
mysql 数据库怎样快速的复制表以及表中的数据
查看>>
vue-cli的webpack配置,迁移适用到react开发配置webpack
查看>>
BIOS,MBR与grub-我从哪里来
查看>>
CUDA学习(九十三)
查看>>
Mysql如何使自增字段重新计算?
查看>>
使用Telnet测试基本POP3服务
查看>>
Flink SQL 功能解密系列 —— 维表 JOIN 与异步优化
查看>>
Codeforces Round #442 (Div. 2) A B
查看>>
封装一个日期时间选择器
查看>>
极值问题(acms)
查看>>
swift UI专项训练8 展示数据
查看>>
openstacks
查看>>
PHP5下单独编译php模块
查看>>
字体图标学习
查看>>
局域网网速变慢的故障细致分析
查看>>