echarts 地图 显示某一个省的地图,点击可进入市 点击空白可返回上级 - 内蒙古demo

我这里echarts 用的 4.5.0

官网 https://echarts.apache.org/v4/examples/zh/index.html#chart-type-map

获取地图json数据工具 https://datav.aliyun.com/portal/school/atlas/area_selector

<!DOCTYPE html> <!-- 获取地图地址 --> <!-- https://datav.aliyun.com/portal/school/atlas/area_selector --> <html style="height: 100%"> <head> <meta charset="utf-8"> </head> <body style="height: 100%; margin: 0"> <div id="container" style="height: 100%; width: 70%;"></div> <script type="text/javascript" src="./echarts@4.5.0.js"></script> <!-- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts-gl@1/dist/echarts-gl.min.js"></script> --> <!-- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts-stat@1/dist/ecStat.min.js"></script> --> <!-- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts@4/dist/extension/dataTool.min.js"></script> --> <!-- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts@4/map/js/china.js"></script> --> <!-- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts@4/map/js/world.js"></script> --> <!-- <script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak=xfhhaTThl11qYVrqLZii6w8qE5ggnhrY&__ec_v__=20190126"></script> --> <!-- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts@4/dist/extension/bmap.min.js"></script> --> <script type="text/javascript" src="./neimenggu.js"></script> <script type="text/javascript" src="150700_full.js"></script> <script type="text/javascript"> var dom = document.getElementById("container"); var myChart = echarts.init(dom); var app = {}; option = null; myChart.showLoading(); // $.get(ROOT_PATH + '/data/asset/geo/HK.json', function (geoJson) { const geoJson = window.neimenggu myChart.hideLoading(); echarts.registerMap('neimenggu', geoJson) echarts.registerMap('full150700', window.full150700) myChart.setOption(option = { // title: { // text: '香港18区人口密度 (2011)', // subtext: '人口密度数据来自Wikipedia', // sublink: 'http://zh.wikipedia.org/wiki/%E9%A6%99%E6%B8%AF%E8%A1%8C%E6%94%BF%E5%8D%80%E5%8A%83#cite_note-12' // }, tooltip: { trigger: 'item', formatter: '{b}<br/>{c}' }, // toolbox: { // show: true, // orient: 'vertical', // left: 'right', // top: 'center', // feature: { // dataView: {readOnly: false}, // restore: {}, // saveAsImage: {} // } // }, // visualMap: { // min: 800, // max: 50000, // text: ['High', 'Low'], // realtime: false, // calculable: true, // inRange: { // color: ['lightskyblue', 'yellow', 'orangered'] // } // }, geo: { map: 'neimenggu', itemStyle: { normal: { borderColor: '#0A5E96', // 描边颜色 borderWidth: 6, // 描边宽度 shadowColor: 'rgba(0, 0, 0, 0.5)', // 阴影颜色 shadowOffsetX: 0, // 阴影水平偏移 shadowOffsetY: 8, // 阴影垂直偏移 shadowBlur: 10 // 阴影模糊度 } } }, series: [ { name: '香港18区人口密度', type: 'map', mapType: 'neimenggu', // 自定义扩展图表类型 label: { show: true, color: '#FFFFFF', // 设置标签文字颜色为白色 emphasis: { color: '#ffffff' } }, itemStyle: { emphasis: { areaColor: '#0a50a3', // 鼠标悬停时的深蓝色背景 }, normal: { areaColor: new echarts.graphic.LinearGradient( 0, 0, 1, 0, // 渐变的方向控制 [{ offset: 0, // 开始位置 color: '#4a8bec' // 开始颜色 深蓝 }, { offset: 1, // 结束位置 color: '#579afe' // 结束颜色 }] ) } } // data: [ // {name: '兴安盟', value: 20057.34}, // {name: '湾仔', value: 15477.48}, // {name: '东区', value: 31686.1}, // {name: '南区', value: 6992.6}, // {name: '油尖旺', value: 44045.49}, // {name: '深水埗', value: 40689.64}, // {name: '九龙城', value: 37659.78}, // {name: '黄大仙', value: 45180.97}, // {name: '观塘', value: 55204.26}, // {name: '葵青', value: 21900.9}, // {name: '荃湾', value: 4918.26}, // {name: '屯门', value: 5881.84}, // {name: '元朗', value: 4178.01}, // {name: '北区', value: 2227.92}, // {name: '大埔', value: 2180.98}, // {name: '沙田', value: 9172.94}, // {name: '西贡', value: 3368}, // {name: '离岛', value: 806.98} // ], // 自定义名称映射 // nameMap: { // 'Central and Western': '中西区', // 'Eastern': '东区', // 'Islands': '离岛', // 'Kowloon City': '九龙城', // 'Kwai Tsing': '葵青', // 'Kwun Tong': '观塘', // 'North': '北区', // 'Sai Kung': '西贡', // 'Sha Tin': '沙田', // 'Sham Shui Po': '深水埗', // 'Southern': '南区', // 'Tai Po': '大埔', // 'Tsuen Wan': '荃湾', // 'Tuen Mun': '屯门', // 'Wan Chai': '湾仔', // 'Wong Tai Sin': '黄大仙', // 'Yau Tsim Mong': '油尖旺', // 'Yuen Long': '元朗' // } } ] }); // });; if (option && typeof option === "object") { myChart.setOption(option, true); myChart.getZr().on('click', (params) => { // console.info('getZr click params', params.target) if (params.target) { // //画布里面点击,如果不需要空白处点击,直接将下面方法移出去即可 myChart.off('click') myChart.on('click', function (params) { console.info('myChart on click event', params) var clickedCity = params.name; console.info('clickedCity', clickedCity) if (clickedCity === "呼伦贝尔市") { // 更新 ECharts 图表的选项,显示新的地图 myChart.setOption({ series: [ { name: clickedCity, type: 'map', mapType: 'full150700', // 自定义扩展图表类型 label: { show: true }, } ] }); } }) // //单击执行的方法...... } else { console.info('空白') myChart.setOption({ series: [ { name: '内蒙古', type: 'map', mapType: 'neimenggu', // 自定义扩展图表类型 label: { show: true }, } ] }); // //画布空白区 // //空白单击执行的方法...... } }) // 为地图添加点击事件 // myChart.on('click', function (params) { // console.info('myChart on click params', params) // if (params.componentType === 'series') { // // 获取被点击的市的名称 // var clickedCity = params.name; // console.info('clickedCity', clickedCity) // // 加载被点击市的地图数据 // // 这里需要替换为实际获取市地图数据的代码 // // var cityMapData = getCityMapData(clickedCity); // // 更新 ECharts 图表的选项,显示新的地图 // // myChart.setOption({ // // series: [{ // // mapType: clickedCity, // 设置地图类型为被点击的市 // // data: cityMapData // 设置新的地图数据 // // }] // // }); // } // }) } </script> </body> </html>

__EOF__

本文作者Reciter
本文链接https://www.cnblogs.com/pengchenggang/p/18380887.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   彭成刚  阅读(227)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
历史上的今天:
2021-08-26 被 两个 vetur 玩惨了的几天,可不是vue-helper的锅
2019-08-26 返回运行方法,可以写在一行 callback&&callback()
点击右上角即可分享
微信分享提示