jsp使用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 }
          }
        }

egend:图标显示,当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)

相关推荐

  • 详解ECharts使用心得总结

    前言 上周项目组要临时给客户做一个演示的原型,首页设计的是一个中国地图,本来打算用谷歌的地图,但是,做出来之后,整体的效果看起来太差了,最后就在网上搜相关的地图呈现的控件,然后就找到了这个ECharts报表呈现组件,挺不错的一个组件,而且地图数据都是离线的,真心很赞.但是,使用起来却颇费了一番工夫.所以就把使用中的一些心得体会跟大家分享一下. 1.    插件的下载 以下是ECharts的下载链接,需要注意的是ECharts内部也是依赖于另一个插件的叫ZRender,当然对于大部分图表而言不需要

  • jsp利用echarts实现报表统计的实例

    echarts用来做数据报表的一个展示效果了,这里我们来给各位介绍一个java/jsp利用echarts实现报表统计的例子,例子非常的简单只是把数据调出来给echarts即可了. 开始上代码. 首先是tag,这个东西,大学之后,几乎不怎么用了,没想到现在又用到了. <%@ tag pageEncoding="UTF-8" isELIgnored="false" body-content="empty"%> <%--自定义div容

  • ECharts仪表盘实例代码(附源码下载)

    大家在汽车驾驶舱里一眼就可以看到仪表盘,使用使用Echarts制作的仪表盘可以轻松展示用户的数据,清晰的看出某个指标值所在的范围,仪表盘形式的报表应用在各种统计系统中,本文结合实例讲解仪表盘在销售任务完成率的统计应用. 效果演示      源码下载 HTML 首先引入Echarts,然后在需要放置图表的地方加上div#myChart,同时给它加上宽度和高度属性. <script src="echarts.min.js"></script> <div id=

  • 如何使用PHP+jQuery+MySQL实现异步加载ECharts地图数据(附源码下载)

    ECharts地图主要用于地理区域数据的可视化,展示不同区域的数据分布信息.ECharts官网提供了中国地图.世界地图等地图数据下载,通过js引入或异步加载json文件的形式调用地图. 效果演示      源码下载 本文将结合实例讲解如何使用PHP+jQuery+MySQL实现异步加载ECharts地图数据,我们以中国地图为例,展示去年(2015年)我国各省份GDP数据.通过异步请求php,读取mysql中的数据,然后展示在地图上,因此本文除了你掌握前端知识外,还需要你了解PHP以及MySQL方

  • jQuery插件echarts设置折线图中折线线条颜色和折线点颜色的方法

    本文实例讲述了jQuery插件echarts设置折线图中折线线条颜色和折线点颜色的方法.分享给大家供大家参考,具体如下: 1.问题背景 设计一条折线图,但是图形中不用插件自带的颜色,需要自定义线条和折点的颜色 2.实现源码 (1)图形自分配颜色 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>echarts-设置折线图中折线线条颜色和折线点颜色</t

  • Ajax获取到数据放入echarts里不显示的原因分析及解决办法

    在做一个需要用到echarts地图的项目的时候,成功通过ajax获取到了后台提供的数据,并生成了想要的JSON串.但是,放到echarts option.series[0].data里,获取不到数据.在生成的地图上无法看到你从后台获取到的值.翻遍百度和必应,给出的答案五花八门,仍旧未解决问题,最后还是一个同事大牛给解决的,在此分享给大家.希望对大家有帮助,,,, 废话不多说,直接上码: $(function () { var data = []; function setOption(data)

  • echarts图表导出excel示例

    根据传入的参数生成相应的图形 复制代码 代码如下: loadChart : function(data,item){  var that = this;  require(['echarts', 'echarts/chart/bar', 'echarts/chart/line',    'echarts/chart/pie'], function(ec) {   that.body.setHeight(800);   var myChart = ec.init(that.body.dom);  

  • echarts3 使用总结(绘制各种图表,地图)

    由于项目需要自学了echarts,下面将学到的东西总结如下,如果有哪里写的不好,请批评指正 一.前期准备 1.使用echarts之前先要引入echarts.js,js可以到官网下载 2.写一个div容器用来装echarts内容,这个容器必须有高度,不然看不到内容. 3.在script中获取div容器的id,根据需要写option中的参数(也许你现在还不知道option是干嘛用的,不要着急往下看),使用setoption生成图表. (代码如下)注:后面将不再对引入js,获取id,调用option生

  • jQuery插件echarts去掉垂直网格线用法示例

    本文实例讲述了jQuery插件echarts去掉垂直网格线用法.分享给大家供大家参考,具体如下: 1.问题背景 设计一条统计人数的折线,其中网格线没有垂直线 2.实现源码 (1)有垂直网格线 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>echarts-有垂直网格线</title> <link rel="shortcut ic

  • 快速移动鼠标触发问题及解决方法(ECharts外部调用保存为图片操作及工作流接线mouseenter和mouseleave)

    记录两个项目开发中遇到的问题,一个是ECharts外部调用保存为图片操作,一个是workflow工作流连接曲线onmouseenter和onmouseleave事件由于鼠标移动过快触发问题. 一.外部按钮调用ECharts图表的保存为图片操作 最近使用ECharts库绘制图表,依据需求希望可以把图表设置的保存为图片操作可以在图表外部调用,主要是希望可以和项目之前的下载图片操作界面保持一致.然后上网找了一些方法,看了看也没遇到一个可以满意的.后来,突然想到了echart开放了源码,可以看看源码,找

  • 基于Echarts 3.19 制作常用的图形(非静态)

    饼图: 环境:Echarts 3.19 vs2013 实现方式:ajax+ashx+json 注意事项: 官网所需格式为 [{value:23,name:'xxxx' }] 请将key 的名字不要写错 具体代码,各位看官 请下移目光. <!--请先引用文件--> <script src="../Scripts/jquery-1.8.2.min.js"></script> <script src="../Scripts/echarts/

随机推荐