插件~使用ECharts动态在地图上标识点

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);

效果如下

感谢您的阅读!

谢谢与支持!

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于 ECharts 地图插件,你可以使用 ECharts 官方提供的扩展组件 echarts-liquidfill、echarts-gl、echarts-wordcloud 等,这些组件都可以帮助你更好地展现数据。 如果你需要地图相关的插件,可以使用 echarts-mapboxgl 插件,它是基于 Mapbox GL 实现的 ECharts 地图渲染组件。你可以通过该插件ECharts 中展示 Mapbox GL 的地图效果,并且支持与 ECharts 的其他功能进行交互。 在使用 echarts-mapboxgl 插件之前,你需要先引入 Mapbox GL 的相关库文件,并且在 ECharts 初始化时指定地图类型为 mapboxgl。然后,通过设置 series 数据来配置地图的样式和数据。 以下是一个基本的使用示例: ```javascript // 引入相关库文件 <script src="https://api.mapbox.com/mapbox-gl-js/v2.5.1/mapbox-gl.js"></script> <link href="https://api.mapbox.com/mapbox-gl-js/v2.5.1/mapbox-gl.css" rel="stylesheet" /> // 初始化 ECharts var myChart = echarts.init(document.getElementById('chart-container'), 'mapboxgl'); // 设置地图类型为 mapboxgl option = { mapboxgl: { accessToken: 'your-mapbox-access-token' // 替换为你自己的 Mapbox Access Token }, series: [ { type: 'map', map: 'your-map-name' // 替换为你自己的地图名称 } ] }; // 使用 option 配置绘制地图 myChart.setOption(option); ``` 上述示例中,你需要替换 `your-mapbox-access-token` 为你自己的 Mapbox Access Token,以及 `your-map-name` 为你自己的地图名称。 通过使用 echarts-mapboxgl 插件,你可以利用 ECharts 的强大可视化能力展现更丰富的地图数据。希望对你有帮助!如有更多问题,请继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值