Echarts显示某省地图

最近构建大数据平台时,需要显示一个市的地图,改完后显示效果

地图json数据

首先你是要显示一个区域的地图,那么就需要获取到这个区域的周维经纬度数据,将其连起来就是一个闭合的区域,也就是你需要显示的地图,可以从阿里云DataV里获取,地图选择器

 下载json数据后,代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/echarts.min.js"></script>

<div id="chart" style="width: 100%;height:500px;"></div>

<script type="text/javascript">

//获取地区json文件
$.get('zhengzhou.json',function(rs){
                echarts.registerMap('zhengzhou',rs);
                showMap();
            })

function showMap(){
        var myChart = echarts.init(document.getElementById('chart'));
        var option = {
            tooltip: {
//                    show: false //不显示提示标签
                formatter: '{b}', //提示标签格式
                backgroundColor:"#999999",//提示标签背景颜色
                textStyle:{color:"#fff"} //提示标签字体颜色
            },
            series: [{
                type: 'map',
                mapType: 'zhengzhou',
                label: {
                    normal: {
                        show: true,//显示省份标签
                        textStyle:{color:"#c71585"}//省份标签字体颜色
                    },
                    emphasis: {//对应的鼠标悬浮效果
                        show: true,
                        textStyle:{color:"#800080"}
                    }
                },
                itemStyle: {
                    normal: {
                        borderWidth: .5,//区域边框宽度
                        borderColor: '#009fe8',//区域边框颜色
                        areaColor:"#ffefd5",//区域颜色
                    },
                    emphasis: {
                        borderWidth: .5,
                        borderColor: '#4b0082',
                        areaColor:"#f47920",
                    }
                },
                data:[
                    {name:'金水区', selected:true}
                ]
            }],
        };

        myChart.setOption(option);
        myChart.on('mouseover', function (params) {
            var dataIndex = params.dataIndex;
            console.log(params);
        });
    }

</script>
</body>
</html>

显示效果:

可以加入geo定位,显示一些更有用的东西,代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/echarts.min.js"></script>

<div id="chart" style="width: 100%;height:500px;"></div>

<script type="text/javascript">

//获取地区json文件
$.get('zhengzhou.json',function(rs){
                echarts.registerMap('zhengzhou',rs);
                showMap();
            })

function showMap(){
        var myChart = echarts.init(document.getElementById('chart'));
        var option = {
            tooltip: {
            },
            geo: {
                tooltip: {
                    show: true
                },
                map: 'zhengzhou',
                roam: true
            },

            series: [
                {// 定位点
                    type: 'effectScatter',
                    coordinateSystem: 'geo',
                    geoIndex: 0,
                    symbolSize: function (params) {
                        return (params[2] / 100) * 15;
                    },
                    symbol: 'circle',
                    itemStyle: {
                        color: '#0E436D'
                    },
                    encode: {
                        tooltip: 2
                    },
                    data:[
                        [113.572182,34.80333, 100],
                        [113.404019,34.793607, 120]
                    ]
                },
                {// 对应的名称
                    type: 'map',
                    mapType: 'zhengzhou',
                    label: {
                        normal: {
                            show: true,//显示省份标签
                            textStyle:{color:"#FFFFFF"}//省份标签字体颜色
                        },
                        emphasis: {//对应的鼠标悬浮效果
                            show: true,
                            textStyle:{color:"#FFFFFF"}
                        }
                    },
                    itemStyle: {
                        normal: {
                            borderWidth: .5,//区域边框宽度
                            borderColor: '#197BC6',//区域边框颜色
                            areaColor:"#209CFC",//区域颜色
                        },
                        emphasis: {
                            borderWidth: .5,
                            borderColor: '#1463A0',
                            areaColor:"#197BC6",
                        }
                    },
                    data:[

                    ]
                }
            ],
        };

        myChart.setOption(option);
        myChart.getZr().on('click', function (params) {
            var pixelPoint = [params.offsetX, params.offsetY];
            var dataPoint = myChart.convertFromPixel({ geoIndex: 0 }, pixelPoint);
            console.log(dataPoint);
        });
    }

</script>
</body>
</html>

 运行效果:

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值