【转】使用Echarts实现地图下钻

浏览: 3114

转载:http://www.w2bc.com/Article/18033

var cityMap = {

    "长沙市": "430100",

    "株洲市": "430200",

    "湘潭市": "430300",

    "衡阳市": "430400",

    "邵阳市": "430500",

    "岳阳市": "430600",

    "常德市": "430700",

    "张家界市": "430800",

    "益阳市": "430900",

    "郴州市": "431000",

    "永州市": "431100",

    "怀化市": "431200",

    "娄底市": "431300",

    "湘西土家族苗族自治州": "433100"

   

};

var curIndx = 0;

var mapType = [];

var mapGeoData = require('echarts/util/mapData/params');

for (var city in cityMap) {

    mapType.push(city);

    // 自定义扩展图表类型

    mapGeoData.params[city] = {

        getGeoJson: (function (c) {

            var geoJsonName = cityMap[c];

            return function (callback) {

                $.getJSON('geoJson/china-main-city/' + geoJsonName + '.json', callback);

            }

        })(city)

    }

}

 

var ecConfig = require('echarts/config');

var zrEvent = require('zrender/tool/event');

document.getElementById('main').onmousewheel = function (e){

    var event = e || window.event;

    curIndx += zrEvent.getDelta(event) > 0 ? (-1) : 1;

    if (curIndx < 0) {

        curIndx = mapType.length - 1;

    }

    var mt = mapType[curIndx % mapType.length];

    option.series[0].mapType = mt;

    option.title.subtext = mt + ' (滚轮或点击切换)';

    myChart.setOption(option, true);

    zrEvent.stop(event);

};

myChart.on(ecConfig.EVENT.MAP_SELECTED, function (param){

    var mt = param.target;

    var len = mapType.length;

    var f= false;

    for(var i=0;i<len;i++){

        if(mt == mapType[i]){

              f =true;

              mt=mapType[i];

        }

     }

  if(!f){

    mt='湖南';

  }

    option.series[0].mapType = mt;

     

    option.title.subtext = mt + ' (滚轮或点击切换)';

    myChart.setOption(option, true);

});

option = {

    title: {

        text : '全国344个主要城市(县)地图 by Pactera 陈然',

        link : 'http://www.pactera.com/',

        subtext : '长沙市 (滚轮或点击切换)'

    },

    tooltip : {

        trigger: 'item',

        formatter: '滚轮或点击切换<br/>{b}'

    },

    series : [

        {

            name: '全国344个主要城市(县)地图',

            type: 'map',

            mapType: '湖南',

            selectedMode : 'single',

            itemStyle:{

                normal:{label:{show:true}},

                emphasis:{label:{show:true}}

            },

            data:[]

        }

    ]

};

将上面部分代码复制,然后粘贴覆盖到http://echarts.baidu.com/doc/example/mix5.html左侧的黑色区域中,然后点击刷新,即可看到效果。


上面代码实现了从某省下钻到区县的功能。我测试发现,把全国344个地级市信息放到cityMap这个对象里,然后把mapType这个数组定义成

var mapType = [

   'china',

   // 23个省

   '广东', '青海', '四川', '海南', '陕西', 

   '甘肃', '云南', '湖南', '湖北', '黑龙江',

   '贵州', '山东', '江西', '河南', '河北',

   '山西', '安徽', '福建', '浙江', '江苏', 

   '吉林', '辽宁', '台湾',

   // 5个自治区

   '新疆', '广西', '宁夏', '内蒙古', '西藏', 

   // 4个直辖市

   '北京', '天津', '上海', '重庆',

   // 2个特别行政区

   '香港', '澳门'

];

就实现了从全国下钻到区县的功能。

推荐 3
本文由 592444087@qq.com 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

1 个评论

大神 请问OBIEE 使用ECharts能实现饼 柱状图 下钻的功能么???

要回复文章请先登录注册