echarts+百度地图

<html>
<head>
<meta name='viewport' content='initial-scale=1.0,user-scalable=no' />
<meta http-equiv='Content-Type' content='text/html;charset=utf-8' />
<title>地图Test</title>
<style type="text/css">
html{
    height:100%;
}
body{
    height:100%;margin:0;padding:0;
}
.BMap_cpyCtrl {

display: none;

}

.anchorBL {

display: none;

}
#main{height:600px;width:1080px;}
</style>
<script src="./jquery.js"></script>
<script src="./echarts.min.js"></script>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=你申请的百度key"></script>
<script src="./bmap.min.js"></script>
</head>
<body>
<div id='bMap'></div>
<script type='text/javascript'>

            //初始化数据
            //配置样式
            var    styleJson=[
            {
                'featureType': 'water',
                'elementType': 'all',
                'stylers': {
                    'color': '#081843'
                }
            },
            {
                'featureType': 'land',
                'elementType': 'geometry',
                'stylers': {
                    'color': '#082657'
                }
            },
            {
                'featureType': 'highway',
                'elementType': 'all',
                'stylers': {
                    'visibility': 'off'
                }
            },
            {
                'featureType': 'arterial',
                'elementType': 'geometry.fill',
                'stylers': {
                    'color': '#103963'
                }
            },
            {
                'featureType': 'arterial',
                'elementType': 'geometry.stroke',
                'stylers': {
                    'color': '#103963',
                    'lightness': -70
                }
            },
            {
                'featureType': 'local',
                'elementType': 'geometry',
                'stylers': {
                    "visibility": "off"
                }
            },
            {
                "featureType": "railway",
                "elementType": "all",
                "stylers": {
                    "visibility": "off"
                }
            },
            {
                'featureType': 'subway',
                'elementType': 'all',
                'stylers': {
                    "visibility": "off"
                }
            },
            {
                'featureType': 'building',
                'elementType': 'geometry.fill',
                'stylers': {
                    'color': '#000000'
                }
            },
            {
                'featureType': 'all',
                'elementType': 'labels.text.fill',
                'stylers': {
                    'color': '#857f7f'
                }
            },
            {
                'featureType': 'all',
                'elementType': 'labels.text.stroke',
                'stylers': {
                    'color': '#000000'
                }
            },
            {
                'featureType': 'building',
                'elementType': 'geometry',
                'stylers': {
                    'color': '#022338'
                }
            },
            {
                'featureType': 'green',
                'elementType': 'geometry',
                'stylers': {
                    "visibility": "off"
                }
            },
            {
                'featureType': 'boundary',
                'elementType': 'all',
                'stylers': {
                    'color': '#465b6c'
                }
            },
            {
                'featureType': 'manmade',
                'elementType': 'all',
                'stylers': {
                    'color': '#022338'
                }
            },
            {
                'featureType': 'label',
                'elementType': 'all',
                'stylers': {
                    'visibility': 'on',
                    'color': '#FFF'
                }
            },
            {
                "featureType": "poilabel",
                "elementType": "all",
                "stylers": {
                    "visibility": "off"
                }
            },
            {
                "featureType": "district",
                "elementType": "labels.text.stroke",
                "stylers": {
                    "visibility": "on"
                }
                }];
            //线条颜色
            var colors = ["#00A0E9", "#F29B76", "#F76B8F", "#6DF3AC", "#CF42E8", "#F1EA24"];
            $(function () {
                
                //初始化地图
                var bampCharts = echarts.init(document.querySelector("#bMap"));
                
                options = {
                    backgroupColor:"#091E43",
                    title : {
                        show:false,
                        text: '',
                        subtext:'',
                        x:'center',
                        textStyle : {
                            color: '#fff'
                        }
                    },
                    tooltip: {
                        trigger: 'item'
                    },
                    toolbox: {
                        show: false,
                        right: '3%',
                        feature: {
                            dataView: {readOnly: false},
                            restore: {},
                            saveAsImage: {}
                        }
                    },
                    bmap:{
                        //定义中心点
                        center: [119.308069,26.087438],
                        zoom: 8,//地图缩放比例
                        roam: true,//开启用户缩放
                        //样式
                        mapStyle: {
                            styleJson: styleJson

                        },
                        series:[{
                            type:'map',
                            mapType:'china',
                            coordinateSystem:'bmap',
                             data:[{
                                        name: '福建省', value: 20057.34,
                                        label: {
                                            normal: {
                                                show: false,
                                                formatter: function (params) {
                                                    return params.name + "\n" + params.value;    //地图上展示文字 + 数值
                                                },
                                                
                                            }
                                        },  
                                        itemStyle: {
                                            normal: {
                                                areaColor: '#C1FFC1'     //地图颜色
                                            }
                                        }
                                    }]
                        }]
                    }
                };
                
                //实例化地图
                bampCharts.setOption(options);

                //地图点线传输动画效果
                //坐标点集合
                var d = [{name:'清源山',longitude:118.618628,latitude:24.957289,isShow:true},
                {name:'嵩屿电厂',longitude:118.034528,latitude:24.45114,isShow:true},
                {name:'厦门三安光电',longitude:118.203815,latitude:24.683459,isShow:true},
                {name:'龙岩市政府',longitude:117.023867,latitude:25.082091,isShow:true},
                {name:'厦门海沧自贸区',longitude:118.032496,latitude:24.476532,isShow:true}];
                
                var planePath =
                    'path://M1705.06,1318.313v-89.254l-319.9-221.799l0.073-208.063c0.521-84.662-26.629-121.796-63.961-121.491c-37.332-0.305-64.482,36.829-63.961,121.491l0.073,208.063l-319.9,221.799v89.254l330.343-157.288l12.238,241.308l-134.449,92.931l0.531,42.034l175.125-42.917l175.125,42.917l0.531-42.034l-134.449-92.931l12.238-241.308L1705.06,1318.313z';
                var end = { name: '', position: [119.308069,26.087438] ,isShow:false};
                var ods = [];
                var marks = [];
                marks.push({
                    name: end.name,
                    isShow: end.isShow,
                    value: end.position.concat([100])
                });
                
                d.forEach(function(el) {
                    if (!el) return;
                    //描线
                    ods.push({
                        fromName: el.name,
                        toname: end.name,
                        coords: [[el.longitude, el.latitude], end.position]
                    });
                    //定义坐标点
                    marks.push({
                        name: el.name,
                        isShow: el.isShow,
                        value: [el.longitude, el.latitude, 40]
                    });
                });
    
                options.series = [
                    {
                        type: 'lines',
                        coordinateSystem: 'bmap',
                        zlevel: 2,
                        data: ods,
                        //线上面的动态特效
                        effect: {
                            show: true,
                            period: 6,
                            trailLength: 0.1,
                            symbolSize: 10,
                            symbol: planePath
                        },
                        lineStyle: {
                            normal: {
                                color: function(params) {
                                    return colors[params.dataIndex + 1];
                                },
                                curveness: 0.2
                            }
                        }
                    },
                    {
                        type: 'effectScatter',
                        coordinateSystem: 'bmap',
                        data: marks,
                        symbolSize: function(val) {
                            return val[2] / 5;
                        },
                        showEffectOn: 'render',
                        rippleEffect: {
                            period: 2,
                            brushType: 'stroke',
                            scale: 3
                        },
                        hoverAnimation: true,
                        label: {
                            normal: {
                                formatter: function (params) {
                                    if (params.data.isShow) {
                                        var info = '\n {strong1|' + params.name + '}'
                                            + '\n\n 排放总量:2341.42'
                                            + '\n\n 通讯状态:' + '{color3|' + '通讯正常' + '}'
                                            + '\n\n 设备标识:XM-05-TD';    //地图上展示文字 + 数值
                                        return info;
                                    }
                                    else {
                                        return '';
                                    }
                                },
                                position: [-170,-145],
                                show: true,
                                textStyle: {
                                    color: '#fff',
                                    size:'35'
                                },
                                backgroundColor: {//内容背景图
                                    image: '/images/preview/popup.png'
                                },
                                //自定义控件(由于label无法解析html)
                                rich: {
                                    //设置控件引用名
                                    strong1: {
                                        fontSize: 18,
                                        fontWeight: 'bold',
                                        lineHeight:25
                                    },
                                    color1: {
                                        color:'#fff701'//黄色
                                    },
                                    color2: {
                                        color:'#fe0002'//红色
                                    },
                                    color3: {
                                        color:'#18cc47'//绿色
                                    }
                                },
                                height: 150,
                                width: 220,
                                lineHeight: 12,
                                padding: [5, 10]
                            }
                        },
                        itemStyle: {
                            normal: {
                                color: function(params) {
                                    return colors[params.dataIndex];
                                },
                                shadowBlur: 10,
                                shadowColor: '#333'
                            }
                        },
                        zlevel: 1
                    }
                ];
    
                //实例化
                bampCharts.setOption(options);
            })
        
    </script>

 

 

 

里头碰到几个问题:

1.在纯html里头运行无法出现地图

原因:跨域问题(我是放到VS上面运行才出现地图效果的--有经过IIS)

2.echarts.min.js版本问题

3.自定义控件(由于label无法解析html--代码里头已给注释)

 

posted @ 2019-07-18 08:53  蜗牛的礼物  阅读(811)  评论(3编辑  收藏  举报