如何用ECharts动态在地图上标识点

如何用ECharts动态在地图上标识点,第1张

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)

1、创建折线图的数据区(包括年份和数据)2、仅选择数据区创建折线图(插入选项卡/图表工具组/折线图)3、得到的折线图x坐标不满足要求,在图表区单击鼠标右键,选择“选择数据”,进入“选择数据源”对话框4、单击对话框右侧“水平分类轴标签”下的“编辑”按钮5、选择对应x坐标轴的年份区域6、单击确定可见年份数据更改了图表的x轴坐标系列

这个是 基于echarts 项目 做的一个实时更新地图的路线图,相信这种路线图不少人见过,那就是在每年的春节,或者各大节假日时,会有一个类型”人群迁徙“图,来表示人口流动的情况。

基于这样的一个思路,我在网上找的别人的轮子,做了一个 这样的一个自驾游/ 旅游 轨迹路线图

刚才去查了下Echarts的项目情况,发现Echarts有一个这样的提示:

我之前就是用这个项目来做这个自驾游轨迹路线图的,现在 Echarts这个项目转移到Apache了。

如果要用国内项目,还有一个是Makeapie的项目,上面也有非常多的这类地图轨迹路线图的案例,上手也比较容易。

上图就是我原来做这个地图时用到的别人的轮子,可以借鉴很多参数设置方法。

这个项目,大多都是按规定格式把你的数据赋值到指定位置即可。

尤其是 各个地方的坐标点 ,前期需要查大量的地图坐标,而且各地图公司的经纬坐标点是不一致的,需要多查几个地图。

等你把想要的坐标全部找完,按指定的Json格式填到对应的位置,就可以形成下面的轨迹路线图。

最后再加上你想要的效果,例如我这个例子中的,做了一个“林”字在走,乍一看还像一辆自驾游中的车,最后导出来就是自己想要的自驾游或者 旅游 轨迹路线图了。

注意

1、这个项目不需要懂代码、编程之类的,只需要找到想要效果的示例路线图,自己动手查找想要的坐标,填到对应位置即可。

2、内容中的动态图是由Pr及其他软件共同完成的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11805379.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存