背景:
上头给了我一个使用兰溪市地图进行相关的数据可视化任务,我自然想到了以前用过的echarts,但使用过发现他自带的能实现的只到地级市(例如金华市),而县级市的区划暂时没法实现。

讯享网
本文以兰溪市(县级市)为例,别的地区也是一样的操作
echarts官网:https://echarts.apache.org/zh/index.html
一、准备阶段:
1.在DATAV上获取地区json
DATAV.GeoAtlas:是阿里推出的一个用于获取全国、各省、各市以及个县级市详细地图信息的json文件。
这里我选中浙江省-金华市-兰溪市:
可以看到县级市并没有包含子区域,因此还需要我们继续处理

复制json数据(第二个红框的第一个按钮)
2.在geojson.io绘制自己的地图
geojson.io:

之后把上一步复制来的json数据填在右边,得到兰溪市的地图:

3.下载bigemap,依次下载兰溪市下辖的乡镇的kml文件,并添加到geojson.io的地图中
bigemap下载地址
点击如图的按钮保存乡镇的kml文件

在geojson.io中,点击Open-file,以此选择之前下载的kml文件:

注意:实际使用时应该是不需要整体的,用一部分一部分拼成一个整体,这样就不会出现重影
全部导入完成之后,就得到如下的效果:
并将右侧的json数据全部复制

4.在线测试
打开echerts的官方网站,并选择示例,点进这个香港人口密度图:

将红框处替换为上一步获得的json数据:

最终结果:

能够确定无误的展示出来之后,可以根据需求进行修改,最后放到我们的web应用上
二、使用
现在先放上静态数据的页面,后面再根据实际业务从接口获取数据
index.html
<meta charset="utf-8"> <title>兰溪数据可视化</title> </head> <body> <div id="main" style="height: 600px; width: 1050px"></div> <script src="../static/js/echarts-4.1.0.js"></script> <script src="../static/js/jquery-3.4.1.js"></script> <script type="text/javascript"> var my_data = [ {
name: '云山街道', value: 20057}, {
name: '兰江街道', value: 15477}, {
name: '上华街道', value: 31686}, {
name: '永昌街道', value: 6992}, {
name: '赤溪街道', value: 44045}, {
name: '女埠街道', value: 40689}, {
name: '游埠镇', value: 37659}, {
name: '诸葛镇', value: 45180}, {
name: '马涧镇', value: 55204}, {
name: '香溪镇', value: 21900}, {
name: '黄店镇', value: 4918}, {
name: '梅江镇', value: 5881}, {
name: '横溪镇', value: 4178}, {
name: '柏社乡', value: 2227}, {
name: '灵洞乡', value: 2180}, {
name: '水亭畲族乡', value: 9172}, ] var myChart = echarts.init(document.getElementById('main')); $.get("../static/js/lanxi.json", function (map) {
echarts.registerMap("兰溪数据可视化", map); var option = {
geo: {
type: 'map', map: '兰溪数据可视化', //需要和registerMap第一个参数保持一致 roam: false, //是否允许拖动 label: {
show: true //显示标签 } }, title: {
text: '兰溪数据可视化(2021)', subtext: '测试用demo', }, tooltip: {
trigger: 'item', formatter: '{b}<br/>{c} (例)' }, series: [{
map: "兰溪数据可视化", geoIndex: 0, //将数据和第0个geo配置关联 type: "map", mapType: 'LX', label: {
show: true, }, data: my_data, }], visualMap: {
show: true, min: 2000, max: 60000, text: ['高', '低'], calculable: true, //出现滑块筛选 }, } myChart.setOption(option); }); </script>
讯享网
三、实现效果:


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/16081.html