echarts实现省市区县三级下钻,并且附带中国地图数据

百度echarts在大数据图表开发,图表数据展示中越来越受欢迎!实现柱状图,地图,航线图,电影排行榜等!下面就来一篇echarts实现省市区县三级下钻,并且附带源码,请看下图的案例:

w3c教程中echarts实现省市区县地图下钻

点击上图中的城市,例如:延安市,就会下钻到延安市对应的区县:

w3c教程中echarts实现省市区县地图下钻标题

返回省级地图按钮,就会回到省市页面

部分代码如下:

<body>
  
    <div class='main' style='width:700px;height:580px;margin:10px auto;'>

            <div id='p' style='width:700px;height:580px;padding:10px;background:#F6F8F7;'>

                    <!--下属单位完成项目概况-->

                <div class='proj fl pro_map' style='position: relative;'>

                    <div class='proj_top'>

                        <p>地图总览</p>

                    </div>

                    <div class='retPro'>

                        <a href='javascript:void(0);' οnclick='goBackProeMap()'>

                            返回省级地图

                        </a>

                    </div>

                    <div id='cont_pro_map' style='width:580px;height:440px;float:left;position: absolute;left:10px;top:50px;z-index:1;'></div>

                    <div id='cont_city_map' style='width:580px;height:440px;float:left;display: none;position: absolute;left:10px;top:50px;z-index:99;'></div>

                     

                </div>

                 

            </div>

        </div>

         

        <script>

            $().ready(function(){

                  /*echarts*/

                   $.get('https://www.w3cschool.net/js/echarts/china/json/shanxi/shanxi.json', function (mapJson) {

                        echarts.registerMap('shan_xi', mapJson);

                        var chart = echarts.init(document.getElementById('cont_pro_map'));//在id为mainMap的dom元素中显示地图

                        chart.setOption({

                            tooltip: {

                                trigger: 'item',

                                formatter: function loadData(result){//回调函数,参数params具体格式参加官方API

                                    //鼠标放到某个地市上,显示这个地市的名称加人口数

                                    //例如 params.name:当前地市名称。params.value:你传入的json数据与当前地市匹配的一项。

                                    //params.data.value:你传入的json数据与当前地市匹配的一项中'value'对应的数据

                                    return result.name+'<br />数据:'+result.value;

                                }

                            },
完整代码请访问https://www.w3cschool.net/html/html525

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
实现echarts vue区地图,需要以下步骤: 1. 引入echarts和vue-echarts插件 ```JavaScript import echarts from 'echarts' import VueECharts from 'vue-echarts' ``` 2. 创建一个Vue组件 ```HTML <template> <div> <vue-echarts :options="mapOptions" @click="handleClick"></vue-echarts> </div> </template> <script> export default { data () { return { mapOptions: {}, cityMap: { // 城市映射表 }, data: { // 区数据 } } }, components: { VueECharts }, mounted () { this.initMap() }, methods: { initMap () { // 初始化地图 this.mapOptions = { // echarts配置项 } }, handleClick (params) { // 点击事件处理函数 } } } </script> ``` 3. 初始化地图 在initMap方法中,根据城市映射表和区数据,生成一个包含所有区地图。初始化时可以设置初始显示的区层级,例如选择某个城市的第一个区。 ```JavaScript initMap () { // 初始化地图 const currentCity = '深圳市' const cityMap = this.cityMap[currentCity] const data = this.data const mapData = [] for (const name in data) { const value = data[name] mapData.push({ name: name, value: value }) } echarts.registerMap(currentCity, cityMap) this.mapOptions = { tooltip: { trigger: 'item' }, visualMap: { min: 0, max: 100, text: ['高', '低'], realtime: false, calculable: true, inRange: { color: ['#f5e8c8', '#e76f8c'] } }, series: [{ name: currentCity, type: 'map', mapType: currentCity, selectedMode: 'single', label: { show: true }, data: mapData }] } this.mapOptions.series[0].selected = { [Object.keys(data)[0]]: true } } ``` 4. 点击事件处理函数 在handleClick方法中,根据点击的区名称,判断是否需要下到下一级。如果需要下,重新生成地图并更新组件的options。 ```JavaScript handleClick (params) { if (params.componentType === 'series') { const name = params.name const city = this.cityMap[name] if (city) { // 需要下 const data = this.data[name] const mapData = [] for (const name in data) { const value = data[name] mapData.push({ name: name, value: value }) } this.mapOptions = { tooltip: { trigger: 'item' }, visualMap: { min: 0, max: 100, text: ['高', '低'], realtime: false, calculable: true, inRange: { color: ['#f5e8c8', '#e76f8c'] } }, series: [{ name: name, type: 'map', mapType: name, selectedMode: 'single', label: { show: true }, data: mapData }] } this.mapOptions.series[0].selected = { [Object.keys(data)[0]]: true } } } } ``` 这样就完成了echarts vue区地图实现。可以根据需要,进一步完善样式和功能。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端教程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值