JSP结合ECharts动态绘制地图标记点详解

作者:工具松鼠

时间:2026-10-30

浏览:171

本文介绍如何在JSP环境中利用ECharts实现地图动态标记。核心在于通过geoCoord对象存储经纬度坐标,并在series中配置markPoint。通过Ajax获取数据后,动态更新geoCoord与markPoint.data数组,最后调用setOption刷新图表,实现实时点位展示。

文章目录

ECharts地图类型实现概述

ECharts能够便捷地在网页端渲染地图及各类图表,并支持图像下载、缩放及拖拽交互。本文重点解析地图类型(type: 'map')的具体实现机制。

首先,需在ECharts配置中定义geoCoord属性,该属性为JavaScript字典对象,由键值对构成。键名代表点位名称,值为包含经纬度的数组,例如[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,渲染层级上前者覆盖后者,即第一个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);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章