echarts实现航线图,航运图

echarts实现航运图,航运图

 

需求:地图上有一些地点或者港口,如果港口间有航线,则点击具体的点会显示出具体的航线。实现图如下:

点击具体的点后呈现:

具体的echarts代码如下:

var data = [
    {name: '上海', value: 50},
    {name: '厦门', value: 50},
    {name: '深圳', value: 60},
    {name: '三亚', value: 54},
    {name: '长崎', value: 60},
    {name: '新加坡', value: 60},
    {name: '马尼拉', value: 60},
    {name: '雅加达', value: 60},
];
var geoCoordMap = {
    '上海':[121.48,31.22],
    '厦门':[118.1,24.46],
    '深圳':[114.07,22.62],
    '珠海':[113.52,22.3],
    '三亚':[109.511909,18.252847],
    '长崎':[130,30],
    '新加坡':[103.51,1.18],
    '马尼拉':[120.984219,14.599512],
    '雅加达':[106.845172,-6.211544],
};

var convertData = function (data) {
    var res = [];
    for (var i = 0; i < data.length; i++) {
        var geoCoord = geoCoordMap[data[i].name];
        if (geoCoord) {
            res.push({
                name: data[i].name,
                value: geoCoord.concat(data[i].value)
            });
        }
    }
    return res;
};

option = {
    title: {
        text: '航运路线图',
        left: 'center'
    },
    tooltip : {
        trigger: 'item'
    },
    bmap: {
        center: [104.114129, 37.550339],
        zoom: 5,
        roam: true,
        mapStyle: {
            styleJson: [{
                'featureType': 'water',
                'elementType': 'all',
                'stylers': {
                    'color': '#d1d1d1'
                }
            }, {
                'featureType': 'land',
                'elementType': 'all',
                'stylers': {
                    'color': '#f3f3f3'
                }
            }, {
                'featureType': 'railway',
                'elementType': 'all',
                'stylers': {
                    'visibility': 'off'
                }
            }, {
                'featureType': 'highway',
                'elementType': 'all',
                'stylers': {
                    'color': '#fdfdfd'
                }
            }, {
                'featureType': 'highway',
                'elementType': 'labels',
                'stylers': {
                    'visibility': 'off'
                }
            }, {
                'featureType': 'arterial',
                'elementType': 'geometry',
                'stylers': {
                    'color': '#fefefe'
                }
            }, {
                'featureType': 'arterial',
                'elementType': 'geometry.fill',
                'stylers': {
                    'color': '#fefefe'
                }
            }, {
                'featureType': 'poi',
                'elementType': 'all',
                'stylers': {
                    'visibility': 'off'
                }
            }, {
                'featureType': 'green',
                'elementType': 'all',
                'stylers': {
                    'visibility': 'off'
                }
            }, {
                'featureType': 'subway',
                'elementType': 'all',
                'stylers': {
                    'visibility': 'off'
                }
            }, {
                'featureType': 'manmade',
                'elementType': 'all',
                'stylers': {
                    'color': '#d1d1d1'
                }
            }, {
                'featureType': 'local',
                'elementType': 'all',
                'stylers': {
                    'color': '#d1d1d1'
                }
            }, {
                'featureType': 'arterial',
                'elementType': 'labels',
                'stylers': {
                    'visibility': 'off'
                }
            }, {
                'featureType': 'boundary',
                'elementType': 'all',
                'stylers': {
                    'color': '#fefefe'
                }
            }, {
                'featureType': 'building',
                'elementType': 'all',
                'stylers': {
                    'color': '#d1d1d1'
                }
            }, {
                'featureType': 'label',
                'elementType': 'labels.text.fill',
                'stylers': {
                    'color': '#999999'
                }
            }]
        }
    },
    series : [
        {
                name: '航运起点',
                type: 'graph',
                coordinateSystem: 'bmap',
                layout: 'none',
                data: convertData(data),
                links: [{
                    source: '深圳',
                    target: '长崎'
                }, {
                    source: '深圳',
                    target: '新加坡'
                },{
                    source: '深圳',
                    target: '马尼拉'
                }, {
                    source: '深圳',
                    target: '雅加达'
                },{
                    source: '三亚',
                    target: '雅加达'
                },
                {
                    source: '上海',
                    target: '长崎'
                },
                {
                    source: '上海',
                    target: '马尼拉'
                },{
                    source: '上海',
                    target: '新加坡'
                },{
                    source: '上海',
                    target: '深圳'
                },{
                    source: '上海',
                    target: '三亚'
                },{
                    source: '厦门',
                    target: '马尼拉',
                },{
                    source: '马尼拉',
                    target: '厦门'
                }
                ],
                roam: true,
                focusNodeAdjacency: true,
                itemStyle: {
                    normal: {
                        borderColor: '#fff',
                        borderWidth: 1,
                        shadowBlur: 10,
                        shadowColor: 'rgba(0, 0, 0, 0.3)'
                    }
                },
                hoverAnimation: true,
                label: {
                    normal: {
                        formatter: '{b}',
                        position: 'right',
                        show: true
                    }
                },
                lineStyle: {
                    color: 'source',
                    curveness: 0.3
                },
                emphasis: {
                    lineStyle: {
                        width: 2
                    }
                }
            }
    ]
};

 

直接复制代码替换https://www.echartsjs.com/examples/zh/editor.html?c=effectScatter-bmap的代码内容就可显示出效果了。剩下的就是整合到项目里了。

整合到项目的步骤就不写了  这个比较简单,好了  快拿走吧   好用记得点赞哈!!!

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值