• 发帖数1
  • 粉丝0

此人很懒,什么也没有留下

    [可视化] Echarts 地图无法显示

    星洲青铜一 显示全部楼层 发表于 2024-4-19 14:19:31 |阅读模式 打印 上一主题 下一主题
    1
    已解决

    【可视化】 Echarts 地图无法显示

    • 星洲青铜一
    • 2024-04-19 14:19:31
    • 发布在 论坛
    94 1
    以下是一个echarts 地图脚本,需要引用 china.js   ;  我已经将china.js 下载到安装目录下:bihome/plugins/lib 文件夹下;  但是还是看不到地图显示请问还如何正确引用 china.js  第三方文件库?



    var chinaGeoCoordMap = {
                    "宜昌": [114.3896, 30.6628],
                    "长沙": [113.0823, 28.2568],
                    "广州": [113.12244, 23.009505],
                    '泰国': [100.31, 13.45]
            };
            var chinaDatas = [
                    [{
                            name: '宜昌',
                            value: 0
                    }],        [{
                            name: '长沙',
                            value: 0
                    }],        [{
                            name: '泰国',
                            value: 0
                    }],        [{
                            name: '广州',
                            value: 0
                    }]
            ];

            var convertData = function(data) {
                    var res = [];
                    for(var i = 0; i < data.length; i++) {
                            var dataItem = data;
                            var fromCoord = chinaGeoCoordMap[dataItem[0].name];
                            var toCoord = [113.12244, 23.009505];
                            if(fromCoord && toCoord) {
                                    res.push([{
                                            coord: fromCoord,
                                            value: dataItem[0].value
                                    }, {
                                            coord: toCoord,
                                    }]);
                            }
                    }
                    return res;
            };
            var series = [];
            [['广州', chinaDatas]].forEach(function(item, i) {
                console.log(item)
                    series.push({
                                    type: 'lines',
                                    zlevel: 2,
                                    effect: {
                                            show: true,
                                            period: 4, //箭头指向速度,值越小速度越快
                                            trailLength: 0.02, //特效尾迹长度[0,1]值越大,尾迹越长重
                                            symbol: 'arrow', //箭头图标
                                            symbolSize: 5, //图标大小
                                    },
                                    lineStyle: {
                                            normal: {
                                                    width: 1, //尾迹线条宽度
                                                    opacity: 1, //尾迹线条透明度
                                                    curveness: .3 //尾迹线条曲直度
                                            }
                                    },
                                    data: convertData(item[1])
                            }, {
                                    type: 'effectScatter',
                                    coordinateSystem: 'geo',
                                    zlevel: 2,
                                    rippleEffect: { //涟漪特效
                                            period: 4, //动画时间,值越小速度越快
                                            brushType: 'stroke', //波纹绘制方式 stroke, fill
                                            scale: 4 //波纹圆环最大限制,值越大波纹越大
                                    },
                                    label: {
                                            normal: {
                                                    show: true,
                                                    position: 'right', //显示位置
                                                    offset: [5, 0], //偏移设置
                                                    formatter: function(params){//圆环显示文字
                                                            return params.data.name;
                                                    },
                                                    fontSize: 13
                                            },
                                            emphasis: {
                                                    show: true
                                            }
                                    },
                                    symbol: 'circle',
                                    symbolSize: function(val) {
                                            return 5+ val[2] * 5; //圆环大小
                                    },
                                    itemStyle: {
                                            normal: {
                                                    show: false,
                                                    color: '#f00'
                                            }
                                    },
                                    data: item[1].map(function(dataItem) {
                                            return {
                                                    name: dataItem[0].name,
                                                    value: chinaGeoCoordMap[dataItem[0].name].concat([dataItem[0].value])
                                            };
                                    }),
                            },
                            //被攻击点
                            {
                                    type: 'scatter',
                                    coordinateSystem: 'geo',
                                    zlevel: 2,
                                    rippleEffect: {
                                            period: 4,
                                            brushType: 'stroke',
                                            scale: 4
                                    },
                                    label: {
                                            normal: {
                                                    show: true,
                                                    position: 'right',
                                                    //offset:[5, 0],
                                                    color: '#0f0',
                                                    formatter: '{b}',
                                                    textStyle: {
                                                            color: "#0f0"
                                                    }
                                            },
                                            emphasis: {
                                                    show: true,
                                                    color: "#f60"
                                            }
                                    },
                                    symbol: 'pin',
                                    symbolSize: 50,
                                    data: [{
                                            name: item[0],
                                            value: chinaGeoCoordMap[item[0]].concat([10]),
                                    }],
                            }
                    );
            });

            option = {
                    tooltip: {
                            trigger: 'item',
                            backgroundColor: 'rgba(166, 200, 76, 0.82)',
                            borderColor: '#FFFFCC',
                            showDelay: 0,
                            hideDelay: 0,
                            enterable: true,
                            transitionDuration: 0,
                            extraCssText: 'z-index:100',
                            formatter: function(params, ticket, callback) {
                                    //根据业务自己拓展要显示的内容
                                    var res = "";
                                    var name = params.name;
                                    var value = params.value[params.seriesIndex + 1];
                                    res = "<span style='color:#fff;'>" + name + "</span><br/>数据:" + value;
                                    return res;
                            }
                    },
                    backgroundColor:"#013954",
                    visualMap: { //图例值控制
                            min: 0,
                            max: 1,
                            calculable: true,
                            show: true,
                            color: ['#f44336', '#fc9700', '#ffde00', '#ffde00', '#00eaff'],
                            textStyle: {
                                    color: '#fff'
                            }
                    },
                    geo: {
                            map: 'china',
                            zoom: 1.2,
                            label: {
                                    emphasis: {
                                            show: false
                                    }
                            },
                            roam: true, //是否允许缩放
                            itemStyle: {
                                    normal: {
                                            color: 'rgba(51, 69, 89, .5)', //地图背景色
                                            borderColor: '#516a89', //省市边界线00fcff 516a89
                                            borderWidth: 1
                                    },
                                    emphasis: {
                                            color: 'rgba(37, 43, 61, .5)' //悬浮背景
                                    }
                            }
                    },
                    series: series
            };







    最佳答案

    永洪vip
    yhdata_lyaa 关注Ta

    2024-04-19 14:19:32

    在js代码最前面添加引用:options.loadDepends(["g2.min.js"],false);//第一个参数为您放到lib下的js文件名,false代表引用本地库import { Chart } from '@antv/G2'; //注意这里的G2为大写,和引用的js文件里面保持一致
    查看完整内容
    回复

    使用道具 举报

    精彩评论1

    yhdata_lyaa 显示全部楼层 发表于 2024-4-19 14:19:32

    在js代码最前面添加引用:
    options.loadDepends(["g2.min.js"],false);//第一个参数为您放到lib下的js文件名,false代表引用本地库
    import { Chart } from '@antv/G2'; //注意这里的G2为大写,和引用的js文件里面保持一致


    回复

    使用道具 举报

    高级模式
    您需要登录后才可以回帖 登录 | 免费注册

    • 官方微信

      欢迎关注永洪服务号!收费为0,价值无限

      扫码关注
    • 新浪微博

      让每位用户轻松挖掘数据价值!

      访问新浪微博
    • 智能客服
    50W

    会员等你来哦

    Copyright   ©2012-2024  北京永洪商智科技有限公司  (京ICP备12050607) 京公网安备110110802011451号 |联系社区管理员|《永洪社区协议》
    返回顶部