vue项目是用百度地图实现多点定位

mounted(){

    this.all()

},

methods:{

    all(){

                this.BaiduMap()

                this.addMarker()

            },

            BaiduMap(){

                /**地图初始化 */

                var map = new BMap.Map("all-map");    // 创建Map实例

                map.centerAndZoom(new BMap.Point(108.95,34.28), 5);  // 初始化地图,设置中心点坐标和地图级别

                // 添加地图类型控件

                map.addControl(new BMap.MapTypeControl({

                    mapTypes:[

                        BMAP_NORMAL_MAP,

                        BMAP_SATELLITE_MAP,

                        BMAP_HYBRID_MAP

                    ]})); 

                map.addControl(new BMap.NavigationControl());

                map.setCurrentCity("北京");          // 设置地图显示的城市 此项是必须设置的

                map.enableScrollWheelZoom(true);    //开启鼠标滚轮缩放

                window.map = map;//将map变量存储在全局

            },

            addMarker(){

                var markerArr=this.deviceArry

                map.centerAndZoom(new BMap.Point(markerArr[0].longitude,markerArr[0].latitude), 8);

                var point = new Array();//定义数组标注经纬信息

                var marker = new Array();//定义数组点对象信息

                var info = new Array();//定义悬浮提示信息

                //设置icon信息

                var width = 32;

                var height = 32;

                var imgSrc = "../../../static/images/marker.png"; //引入icon图片

                var myIcon = new BMap.Icon(imgSrc, new BMap.Size(width,height));//配置icon

                for(var i = 0; i < markerArr.length; i++){//遍历

                    point[i] = new window.BMap.Point(markerArr[i].longitude,markerArr[i].latitude);

                    marker[i] = new window.BMap.Marker(point[i],{icon:myIcon});//把icon和坐标添加到Marker中

                    map.addOverlay(marker[i]);

                    var label = new window.BMap.Label(markerArr[i].name);

                    label.setStyle({  //设置提示框的样式

                        color : "#000",

                        fontSize : "12px",

                        backgroundColor :"#fff",

                        border :"1px solid #ccc", 

                        borderRadius:"4px",

                        padding :"2px 6px"

                    });

                    marker[i].setLabel(label);

                    info[i] = new window.BMap.InfoWindow(

                        "

"

                            +"

设备:"+markerArr[i].name+"

"

                            +"

IMEI:"+markerArr[i].terminalid+"

"

                            +"

速度:"+markerArr[i].speed+"

"

                            +"

定位时间:"+markerArr[i].locationdate+"

"

                            +"

通讯时间:"+markerArr[i].insertdate+"

"

                            +"

总里程:"+markerArr[i].mileage+"KM

"

                            +"

详细地址:"+markerArr[i].address+"

"

                        +"

"

                    );//悬浮提示信息

                    this.addInfo(info[i],marker[i])

                }

            },

            addInfo(info,marker){

                marker.addEventListener("click", function(e){

                    var p = e.target

                    var point = new BMap.Point(p.getPosition().lng, p.getPosition().lat)

                    map.centerAndZoom(point, 14);

                    this.openInfoWindow(info)

                })

            },

}

你可能感兴趣的:(vue项目是用百度地图实现多点定位)