关于echarts3地图下钻省市
最近关于echarts3弄了个地图下钻,也许是因为运气不好,开始上来需要传递到的城市是成都,结果成都地图(js)加载下来总是挤到了一起,好尴尬,各方实验查找后发现原来是js文件中,成都市地图有个县市并没有画出来,导致比例不正常。。。。要是有做成都的,需要注意下。。下面直接铺上三连跳下钻地图吧。。
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<title>ECharts 地图展示</title>
</head>
<style type="text/css">
* {
margin: 0;
padding: 0;
}
</style>
<body>
<!--定义页面图表容器-->
<!-- 必须制定容器的大小(height、width) -->
<div id="maps" style="width: 33%; height: 500px; border: 1px solid #ccc; display: inline-block;float: left;"></div>
<div id="mapsProvice" style="width: 33%; height: 500px; border: 1px solid #ccc; display: inline-block;float: left;"></div>
<div id="mapsCity" style="width: 33%; height: 500px; border: 1px solid #ccc; display: inline-block;float: left;"></div>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script type="text/javascript" src="echarts.min.js"></script>
<script type="text/javascript" src="mapjs/china.js"></script>
<script type="text/javascript">
function loadScript(url, callback) {
var script = document.createElement("script")
script.type = "text/javascript";
if (script.readyState) {
script.onreadystatechange = function() {
if (script.readyState == "loaded" || script.readyState == "complete") {
script.onreadystatechange = null;
callback();
}
};
} else {
script.onload = function() {
callback();
};
}
script.src = url;
document.getElementsByTagName("head")[0].appendChild(script);
}
var myChartMap = echarts.init(document.getElementById('maps'));
var option = {
title: {
text: '全国态势图',
subtext: '进入省市可详细查看',
x: 'center',
textStyle: {
color: '#404a59'
}
},
legend: {
orient: 'vertical',
x: 'left',
data: ['安全状态']
},
dataRange: {
orient: 'vertical',
x: 'left',
min: 0,
max: 1000,
color: ['orange', 'yellow'],
text: ['高', '低'], // 文本,默认为数值文本
},
series: [{
tooltip: {
trigger: 'item',
formatter: '{b}'
},
name: '安全态势',
type: 'map',
mapType: 'china',
x: '5%',
y: 'center',
roam: false,
selectedMode: 'single',
itemStyle: {
normal: {
label: {
show: true
}
},
emphasis: {
label: {
show: true
}
}
},
data: [{
name: '北京',
selected: true,
value: 100
}, {
name: '天津',
selected: false
}, {
name: '上海',
selected: false
}, {
name: '重庆',
selected: true,
value: 100
}, {
name: '河北',
selected: false
}, {
name: '河南',
selected: false
}, {
name: '云南',
selected: false
}, {
name: '辽宁',
selected: true,
value: 100
}, {
name: '黑龙江',
selected: false
}, {
name: '湖南',
selected: true,
value: 1000
}, {
name: '安徽',
selected: false
},
]
}],
animation: false
};
myChartMap.setOption(option, true); //显示国家地图
var myChartProvice = echarts.init(document.getElementById('mapsProvice'));
var myChartCity = echarts.init(document.getElementById('mapsCity'));
if (selectProvice = "undefined") {
selectProvice = "四川";
selectCity = "成都市";
var url = "mapjs/" + selectProvice + "/" + selectProvice + ".js";
loadScript(url, setOpt);
var cityurl = "mapjs/" + selectProvice + "/city/" + selectCity + ".js";
loadScript(cityurl, setOptCity);
setOpt();
setOptCity();
}
myChartMap.on('mapselectchanged', function(param) { //单击省份事件
selectProvice = param.batch[0].name;
var url = "mapjs/" + selectProvice + "/" + selectProvice + ".js";
loadScript(url, setOpt);
setOpt();
})
myChartProvice.on('mapselectchanged', function(param) {
selectCity = param.batch[0].name;
var cityurl = "mapjs/" + selectProvice + "/city/" + selectCity + ".js";
loadScript(cityurl, setOptCity);
setOptCity();
});
function setOpt() {
var option = {
title: {
text: selectProvice + '地区详情',
x: 'center',
textStyle: {
color: 'black'
}
},
dataRange: {
x: '-3000px',
y: 'bottom',
splitList: [{
start: 41,
color: 'rgba(182,132,220,0.8)'
}, {
start: 21,
end: 40,
color: 'rgba(255,108,96,0.8)'
}, {
start: 11,
end: 20,
color: 'rgba(252,179,34,0.8)'
}, {
start: 5,
end: 10,
color: 'rgba(89,172,226,0.8)'
}, {
start: 0,
end: 4,
label: '<4',
color: "rgba(120,205,81,0.8)"
},
],
//
textStyle: {
color: 'white',
},
},
roam: true,
series: [{
tooltip: {
trigger: 'item',
formatter: '{b}'
},
name: '安全态势',
type: 'map',
mapType: selectProvice,
x: 'center',
y: 'center',
// roam: true,
selectedMode: 'single',
itemStyle: {
normal: {
label: {
show: true
}
},
emphasis: {
label: {
show: true
}
}
},
data: ""
}],
animation: false,
}
myChartProvice.setOption(option, true);
}
function setOptCity() {
var option = {
title: {
text: selectCity + '地区详情',
x: 'center',
textStyle: {
color: 'black'
}
},
roam: true,
dataRange: {
x: '-3000px',
y: 'bottom',
splitList: [{
start: 41,
color: 'rgba(182,132,220,0.8)'
}, {
start: 21,
end: 40,
color: 'rgba(255,108,96,0.8)'
}, {
start: 11,
end: 20,
color: 'rgba(252,179,34,0.8)'
}, {
start: 5,
end: 10,
color: 'rgba(89,172,226,0.8)'
}, {
start: 0,
end: 4,
label: '<4',
color: "rgba(120,205,81,0.8)"
}, ],
textStyle: {
color: 'white',
},
},
series: [{
tooltip: {
trigger: 'item',
formatter: '{b}'
},
name: '安全态势',
type: 'map',
mapType: selectCity,
x: 'center',
y: 'center',
// roam: true,
itemStyle: {
normal: {
label: {
show: true
},
},
emphasis: {
label: {
show: true
}
}
},
selectedMode: 'single',
data: ""
}],
animation: false,
}
myChartCity.setOption(option, true);
}
</script>
</body>
</html>
地图js代码现在已经不支持下载了,要结合百度地图使用,如果有需要的同学,请重视中国领土完整,部分市县数据缺失,请注意!
展示效果请狂戳: https://wanglaowuplus.github.io/echarts-maps/
下载请走这里:(https://github.com/wanglaowuPlus/echarts-maps)!
如果此文章对你有帮助,请在github 上点亮你的小星星!!
关于echarts3地图下钻省市的更多相关文章
- Echarts Map地图下钻至县级
**准备工作:**1.首先使用vue-cli的脚手架生成vue项目. 2.然后使用npm安装echartsnpm install echarts -S 3.安装完后再mian.js中挂载到vue的实例 ...
- D3.js中国地图下钻
使用d3.js实现中国地图及中国地图下钻到省市区 在可视化开发中,地图是很重要的一个环节,很多时候需要展现的不仅是国家地图,还需要能从国家进入到省市,看到区这样的下钻过程,今天我们就来实现这个效果. ...
- 关于echarts地图下钻。
在去年十二月份,前端老大交代个任务,关于地图下钻.这里做了个简单的青岛地图下钻,初学echarts,做的不精,凑合看看吧. 第一步呢,先引入echarts等文件,这是最基本的. 第二步,到官网下载 ...
- vue 下实现 echarts 全国到省份的地图下钻
vue 下实现 echarts 全国到省份的地图下钻 项目地址:https://github.com/cag2050/vue_echarts_v3_demo
- vue+echarts可视化大屏,全国地图下钻,页面自适应
之前写过一篇关于数据大屏及地图下钻的文章 https://www.cnblogs.com/weijiutao/p/13977011.html ,但是存在诸多问题,如地图边界线及行政区划老旧,无法自适应 ...
- 一个让echarts中国地图包含省市轮廓的技巧
背景知识及应用简介 本文主要介绍一个使用ECharts地图组件的取巧方法,该技巧源于实际需求中遇到的问题,一般没有该需求的话这个技巧也是用不到的.有前端基础和以及对ECharts有了解的人基本可以读懂 ...
- echarts使用------地图生成----省市地图的生成及其他相关细节调整
为使用多种业务场景,百度echarts地图示例只有中国地图,那么在使用省市地图的时候,就需要我们使用省市的地图数据了 以下为陕西西安市的地图示例: 此页面引用echarts的js:http://ech ...
- vue + echart 实现中国地图 和 省市地图(可切换省份)
一.中国地图 1.先导入echarts,然后再main.js里引入echarts // 引入echartsimport echarts from 'echarts'Vue.prototype.$ech ...
- 使用ECharts来实现地图下钻功能(某省的市级下钻到县级)
var cityMap = { "长沙市": "430100", "株洲市": "430200", "湘潭市& ...
随机推荐
- phpstorm之端点跟踪
如果在断点没有实时染色,首要请检查local与remote的代码文件的对应.
- vb.net字符串格式转为日期型
vb.net字符串格式转为日期型 比如 "20080815" 转换为"2008-05-15"Dim a As Date Dim s As String = ...
- Finish 和 Complete 的区别
2012年,在伦敦举行的语言大赛中,圭亚那选手Samsunder Balgobin 在回答比赛中最后一道问题 "你如何用一种容易让人理解的方式解释 complete与finished 的区別"时, ...
- Net 分页功能的实现
首先写一个接口 1 2 3 4 5 6 public interface IPagedList { int CurrentPageIndex { get; set; } ...
- python "yield"(转载)
转载地址:http://www.ibm.com/developerworks/cn/opensource/os-cn-python-yield/ 您可能听说过,带有 yield 的函数在 Python ...
- 使用OPENROWSET、Microsoft.ACE.OLEDB实现大数据量的高效导入
首先说明使用的环境是:java和Sqlserver. 最近公司需要进行大数据量的导入操作.原来使用的是Apache POI,虽然可以实现功能,但是因为逻辑处理中需要进行许多校验,处理速度太慢,使用多线 ...
- NSBundle常用方法及解释
1.使用类方法创建一个NSBundler对象+ (NSBundle *)mainBundle;eg:[NSBundle mailBundle];2.使用路径获取一个NSBundle 对象,这个路径应该 ...
- C# SHA1散列算法
C# SHA1散列算法 /// <summary> /// C# SHA1散列算法 /// </summary> /// <param name="str&qu ...
- mock测试框架Mockito
无论是敏捷开发.持续交付,还是测试驱动开发(TDD)都把单元测试作为实现的基石.随着这些先进的编程开发模式日益深入人心,单元测试如今显得越来越重要了.在敏捷开发.持续交付中要求单元测试一定要快(不能访 ...
- 初试Nodejs——使用keystonejs创建博客网站1(安装keystonejs)
我正在阿里云上创建一个简单的个人博客网站,刚好正在尝试NodeJs,决定找一款基于NodeJs的CMS来完成这个工作,最后找到了KeyStoneJS. KeyStoneJS是基于Express和Mon ...