Raphael绘制中国地图实现点击哪儿在哪儿显示柱状图

这篇博客介绍了如何使用Raphael.js库来绘制中国地图,并实现地图上的省份点击后在其下方显示对应的柱状图。通过遍历地图区域,设置点击事件,动态改变颜色和形状,实现了交互式地图的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


1.首先导入各种js包:

<script type="text/javascript" src="../js/chinamapPath.js"></script>
<script type="text/javascript" src="../js/raphael.js"></script>
<script type="text/javascript" src="../js/g.raphael-min.js"></script>      
<script type="text/javascript" src="../js/g.pie-min.js"></script>  
<script type="text/javascript" src="../js/g.bar-min.js"></script> 


2. 添加页面部分代码

<div id="china_map" style="margin-left:200px; margin-top:40px"></div>


3. 绘制地图部分代码:

    $(function() {
    
        Raphael.getColor.reset(); //色谱重置回红色
        //创建一个画布对象用来绘制。你必须第一步就这么做,该实例将来调用的所有绘图方法都被绑定到这个画布。
        var R = Raphael("china_map", 600, 500);  
        //调用绘制地图方法
        paintMap(R);
        
        var current = null;
        
        //用于对鼠标点击次数的计数;
        var result = 0;  
        //判断两次点击的区域名字的标志量;              
        var nameFlag = "";
        var x=0;
        var y=0;
        
        var textAttr = {
            "fill": "#000",
            "font-size": "13px",
            "cursor": "pointer"   //光标的CSS类型,指针类型;
        };
                
               
        for (var state in china) {//state代表每个省,即就是用每个或区域来遍历整个地图区域;
            //Raphael.getColor(0.9):每次调用返回色谱中的下一个颜色(返回颜色的十六进制表示)
            china[state]['path'].color = Raphael.getColor(0.9);//分省区域着色
            china[state]['path'].transform("t30,0");//地图的每个省的路径横向平移坐标(30px,0px)
                    
            (function (st, state) {
                
                //获取每个区域的中心坐标(getBBox():返回指定元素的边界框,x:左上角X; y表示左上角y)
                var xx = st.getBBox().x + (st.getBBox().width / 2);
                var yy = st.getBBox().y + (st.getBBox().height / 2);
                
                //***修改部分地图文字偏移坐标
                switch (china[state]['name']) {
                    case "江苏":
                   

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值