您的位置:

全能开发工程师的福音——echartsregistermap

一、注册地图的概念

echartsregistermap是echarts中的一个注册地图组件,支持将任意的SVG、PNG、JPG格式的地图文件注册到echarts中并以 echarts-map 的形式呈现,为开发人员提供了更加便利的地图展示方式。只要有能够表现为SVG格式的地图数据,任何人都可以在echarts中展现它。

注册地图需要用到geoJSON语言,即地理信息JSON语言。它是一种以地理位置为核心的数据表示格式,用于描述地理空间信息的结构、形态和特性,用于表示空间位置、制图及空间统计分析等内容,是一种存储不同尺度的地图数据的体系结构。


//注册某个省份的地图(以福建省为例)
echarts.registerMap('fujian',{
    "type": "FeatureCollection",
    "features": [
      { "type": "Feature", "properties": { "id": "3501", "name": "福州市" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 119.245666, 26.048535 ], [ 119.217275, 26.057515 ], [ 119.196799, 26.05204 ], ... } //这里省略了部分坐标信息
    ]
};

二、echartsregistermap的特点

echartsregistermap作为echarts中的一部分,它的优势是在于可以让开发人员更加方便快捷地将地图数据转化为echarts-map的形式,而不需要依赖其他的工具来进行实现。

与其他的地图组件相对比,echartsregistermap具备以下特点:

  • 支持多种地图格式的展示
  • 支持地图属性的自定义设置
  • 可以通过geoJSON数据进行地图注册,不需要依赖其他地图工具
  • 支持地图层级缩放

三、echartsregistermap的使用方法

使用echartsregistermap,需要使用到echarts.js文件,它可以通过多种方式导入到项目中去。这里我们以本地导入方式为例:


//html中导入echarts.js文件
<script src="echarts.js"></script>

//ecahrts容器
<div id="main" style="height:400px"></div>

//JavaScript代码
var myChart = echarts.init(document.getElementById('main'));
myChart.setOption({
    geo: {
        map: 'fujian' //map属性对应注册地图中的地图名称
    },
    series : [
        {
            name: '福州市',
            type: 'map',
            mapType: 'fujian', //mapType属性也对应注册地图中的地图名称
            roam: false,
            label: {
                normal: {
                    show: true
                },
                emphasis: {
                    show: true
                }
            },
            data:[
                {name: '福州市', value: 15}
            ]
        }
    ]
});

四、echartsregistermap的进一步应用

除了基本的地图展示,使用echartsregistermap还可以进行更为丰富的应用。比如:

  • 使用visualMap进行数据展示:visualMap是echarts中的一个控件组件,可以用于调整地图的颜色和大小(通常用于数据展示),来更好的显示数据信息。
  • 数据格式的丰富应用:除了单纯的地图展示之外,还可以将数据以流向图、点图等形式展现在地图上,更丰富地展示了数据信息。
  • 和其他地图组件的相互配合应用:echartsregistermap在应用过程中,不一定需要单独使用,也可以和其他地图组件配合使用,比如和地图热点图组件echartsheatmap结合使用,可以更好地展示地图特点。

//使用visualMap进行数据展示
myChart.setOption({
    visualMap: {
        min: 0,
        max: 20,
        inRange: {
            color: ['#ffffff', '#ff6b6b']
        },
        textStyle: {
            color: '#000000'
        }
    },
    geo: {
        map: 'fujian'
    },
    series : [
        {
            name: '福州市',
            type: 'map',
            mapType: 'fujian',
            roam: false,
            label: {
                normal: {
                    show: true
                },
                emphasis: {
                    show: true
                }
            },
            data:[
                {name: '福州市', value: 15},
                {name: '南平市', value: 10},
                {name: '漳州市', value: 20},
                {name: '泉州市', value: 5},
                {name: '宁德市', value: 8},
                {name: '莆田市', value: 2},
                {name: '三明市', value: 12},
                {name: '龙岩市', value: 9},
                {name: '厦门市', value: 5}
            ]
        }
    ]
});

//和echartsheatmap组件结合使用
myChart.setOption({
    geo: {
        map: 'fujian'
    },
    series: [{
        type: 'heatmap',
        coordinateSystem: 'geo',
        data: [
            {name: '福州市', value: [119.303198,26.080446,15]},
            {name: '南平市', value: [118.181883,26.643626,10]},
            {name: '漳州市', value: [117.641591,24.510897,20]},
            {name: '泉州市', value: [118.589421,24.908853,5]},
            {name: '宁德市', value: [119.548091,26.656144,8]},
            {name: '莆田市', value: [118.987544,25.017532,2]},
            {name: '三明市', value: [117.642194,26.270835,12]},
            {name: '龙岩市', value: [117.023668,25.081257,9]},
            {name: '厦门市', value: [118.089425,24.479834,5]}
        ],
        //只在value中的第三个参数中使用了数据,这里进行自定义,好于实际情况
        pointSize: 20,
        blurSize: 15,
        itemStyle: {
            emphasis: {
                borderColor: '#333333',
                borderWidth: 3
            }
        }
    }]
});

五、总结

通过以上的介绍,我们可以知道echartsregistermap在前端地图展示中起到了很大的作用,它提供了一种便利的方式,可以轻松地展示多种格式的地图,也可以很好地配合其他地图组件进行更丰富的数据展示。它的使用方法也相对简单,只需要了解地图的注册方法和基础API即可,大家可以在实践中进行更深入的学习。