echarts自定义省份地图及map上的内容

先来看效果,太原市的地图,显示市下面的区,区下面的商户,默认显示3个商户信息,其余商户信息鼠标移动上去显示商户信息:

我是怎么做的呢?因为网上找的地图都不符合需求,所以从设计开始就按非常规方法:大致就是先代码模拟出市的轮廓->截图保存,ps处理,每个区保存为一个图层->需要的区加上颜色和区名->页面中使用整张地图作为背景图->其他文字信息一律代码写上去。

第一步:

  • 由于echarts官网下载的包里只包含省份下面的市json文件,我们要的是市下面的区json文件,所以要先从网上找到对应的区json文件,放入map包里或者其他地方。

  • 然后去官网示例中找到地图的示例,下载html页面,复制其中的主要内容,新建如下代码的html页面,然后启动服务器就能生成一张带有区名的太原市区地图。
<div id="taiyuanMap" style="width: 100%;height:240px;"></div>

<script src="js/jquery.min.js"></script>
<script src="echarts/dist/echarts.min.js"></script>

<script type="text/javascript">
    var dom8 = document.getElementById("taiyuanMap");
    var myChart8 = echarts.init(dom8);
    var app8 = {};
    option8 = null;
    myChart8.showLoading();

    //从官网下的echarts包里面有包含市的json文件,引入进来即显示省份下面的市。我们这里是从网上找的太原市区的json文件,引入进来
    $.get('echarts/map/json/taiyuan.json', function (geoJson) {

            myChart8.hideLoading();

            echarts.registerMap('taiyuan', geoJson);

            myChart8.setOption(option8 = {
                tooltip: {
                    trigger: 'item',
                    formatter: '{b}<br/>{c} (p / km2)'
                },
                visualMap: {
                    show: false,
                    min: 800,
                    max: 50000,
                    text:['High','Low'],
                    realtime: false,
                    calculable: true,
                    inRange: {
                        color: ['#0048ff','#0078ff', '#0090ff']
                    },

                },
                series: [
                    {
                        name: '太原',
                        type: 'map',
                        mapType: 'taiyuan', // 自定义扩展图表类型
                        itemStyle:{
                            normal:{label:{show:true}},
                            emphasis:{label:{show:true}},
                        },
                        label:{
                            normal:{
                                textStyle:{
                                    color:'#fff'
                                }
                            }
                            
                        },
                        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},
                        ],
                        // 自定义名称映射,我们只要一个地图轮廓可以不管它
                        nameMap: {
                            'Central and Western': '中西区',
                            'Eastern': '东区',
                            'Islands': '离岛',
                            'Kowloon City': '九龙城',
                            'Kwai Tsing': '葵青',
                            'Kwun Tong': '观塘',
                            'North': '北区',
                            'Sai Kung': '西贡',
                            'Sha Tin': '沙田',
                            'Sham Shui Po': '深水埗',
                            
                        }
                    }
                ]
            });
        });;
        if (option8 && typeof option8 === "object") {
            myChart8.setOption(option8, true);
        }
</script>

 上面的代码生成的一张地图:

第二步:

 ps处理这张图,将每个区域区分开来,处理成我们想要的样子,作为一张背景图放入页面中:

第三步:

就是常规的写静态页面的方法了。在页面上加上运营商的各种信息和图标。页面完成。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ECharts是一个强大的JavaScript图表库,它可以用来创建交互式的数据可视化图表。在ECharts中,你可以利用其地理地图组件来制作中国乃至湖南地图,并在地图上展示数据。下面是使用ECharts实现湖南地图的基本步骤: 1. **引入ECharts库**: 首先,在HTML文件中引入ECharts的CDN链接或者本地文件。 ```html <script src="https://cdn.jsdelivr.net/npm/echarts@latest/dist/echarts.min.js"></script> ``` 2. **初始化地图**: 创建一个ECharts实例,并设置地图类型为China或Hunan(湖南地图可能需要自定义地图数据)。 ```javascript var myChart = echarts.init(document.getElementById('map')); myChart.setOption({ map: 'Hunan', // 如果没有内置,可能需要自己提供省份编码 }); ``` 3. **加载地图数据**: ECharts的地理地图功能通常依赖于百度地图API或者其他地图服务提供商的数据。你需要获取省份边界信息和名称对应的数据。 ```javascript var geoCoordMap = { // 假设这是湖南地图的地理坐标映射 "湖南": [[...]] }; ``` 4. **绘制地图**: 使用`geochart`配置项,结合地图数据来绘制地图。 ```javascript myChart.setOption({ geochart: { regions: geoCoordMap.Hunan, roam: true, // 是否开启鼠标缩放 label: { show: false // 隐藏默认标签 } } }); ``` 5. **添加交互和数据绑定**: 可以添加点击事件监听器,根据用户选择的省份显示相关数据。 ```javascript myChart.on('click', function (params) { var province = params.name; // 获取点击省份名 // 根据province获取并展示对应的数据 }); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值