echarts市级区域地图数据展示
一、原理引用对应市区json数据(比如我就是引用的河南省驻马店市的数据),通过百度地图坐标拾取器获取地区的经纬度,将数据填在对应位置(我下面有注释),再配置下样式颜色之类的渲染上就可以了二、看图片可能感受不大,下面是我echarts社区的主页,里面有这个例子,大家可以去看看效果我的echarts个人主页三、效果图四、直接上代码,解释在注释里<!DOCTYPE html><html
·
一、原理
引用对应市区json数据(比如我就是引用的河南省驻马店市的数据),通过百度地图坐标拾取器获取地区的经纬度,将数据填在对应位置(我下面有注释),再配置下样式颜色之类的渲染上就可以了
二、看图片可能感受不大,下面是我echarts社区的主页,里面有这个例子,大家可以去看看效果
三、效果图

四、直接上代码,解释在注释里
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<title></title>
<script type="text/javascript" src = "jquery-3.4.1.js的路径"></script>
<script type="text/javascript" src = "echarts.js的路径"></script>
</head>
<body>
<div id="map" style="width: 1200px;height:900px;"></div>
<script type="text/javascript">
var dom = document.getElementById("map");
//得到echarts的实例对象
var myChart = echarts.init(dom);
//根据百度地图坐标拾取器来的经纬度
var geoCoordMap = {
'遂平县': [114.015819, 33.150944],
'上蔡县': [114.276256, 33.267906],
'西平县': [114.022143, 33.394355],
"驿城区": [114.006045, 32.978599],
'确山县': [114.033641, 32.810768],
"泌阳县": [113.335694, 32.731107],
"汝南县": [114.375141, 33.016389],
"正阳县": [114.398138, 32.615372],
"平舆县": [114.629254, 32.969876],
"新蔡县": [114.979952, 32.752487]
};
//数据信息(黄色点点的大小,鼠标移上去会显示这个数据)
var data = [{
name: "遂平县",
value: 199
},
{
name: "上蔡县",
value: 170
},
{
name: "西平县",
value: 102
},
{
name: "驿城区",
value: 81
},
{
name: "确山县",
value: 147
},
{
name: "泌阳县",
value: 130
},
{
name: "汝南县",
value: 172
},
{
name: "正阳县",
value: 123
},
{
name: "平舆县",
value: 120
},
{
name: "新蔡县",
value: 292
}
];
//处理数据的函数,将经纬度,名称,value结合到一起放入series中的data中
var convertData = function(data) {
var res = [];
for (var i = 0; i < data.length; i++) {
var geoCoord = geoCoordMap[data[i].name];
if (geoCoord) {
res.push({
name: data[i].name,
value: geoCoord.concat(data[i].value)
});
}
}
return res;
};
//配置样式
var optionMap = {
backgroundColor: '#404a59',
title: {
text: 'XX数量-驻马店市',
left: 'center',
textStyle: {
color: '#fff'
}
},
//鼠标移到黄点点上显示数据就是配置的这个
tooltip: {
trigger: 'item',
//自定义修改显示
formatter: function(data) {
return res = '<div><p>数量:' + data.value[2] + '</p></div>'
},
},
geo: {
map: 'china',
//中心点(经纬度)
center: [114.006045, 32.978599],
//缩放比例
zoom: 1.2,
label: {
emphasis: {
show: false
}
},
//是否允许拖拽
roam: true,
itemStyle: {
normal: {
areaColor: '#323c48',
borderColor: '#111'
},
emphasis: {
areaColor: '#2a333d'
}
}
},
series: [{
name: 'pm2.5',
type: 'effectScatter',
coordinateSystem: 'geo',
data: convertData(data),
symbolSize: function(val) {
return val[2] / 10;
},
showEffectOn: 'render',
rippleEffect: {
brushType: 'stroke'
},
hoverAnimation: true,
label: {
normal: {
formatter: '{b}',
position: 'right',
show: true
}
},
itemStyle: {
normal: {
color: '#f4e925',
shadowBlur: 10,
shadowColor: '#333'
}
},
zlevel: 1
}]
};
//411700.json 是对应区域的地理信息json文件
$.get('../json/411700.json', function (myJson){
echarts.registerMap('411700', myJson) //注册
optionMap.geo.map = '411700';
myChart.setOption(optionMap);
});
</script>
</body>
</html>
五、本地访问json会有跨域的问题,为了图方便我就放在了服务器上看网页的效果…在社区的话没有这个问题
更多推荐


所有评论(0)