百度地图JS API

2021-04-29 05:32

阅读:612

标签:进入   功能   query   dep   enter   context   引入   styles   turn   

1、百度地图api的使用

1)申请百度账号和ak

2)引用百度地图API文件

3)获取当前位置的经纬度

//获取当前位置的经纬度
getCurrentPosition:function(context,params){
    //navigator.geolocation部分手机有权限问题
    Vue.prototype.$common.showLoading(‘正在获取当前位置‘);
    //使用百度地图api获取当前位置每次进入服务号都需要授权
    var geolocation = new BMap.Geolocation();
    geolocation.getCurrentPosition(function(r){
        if(this.getStatus() == BMAP_STATUS_SUCCESS){
            Vue.prototype.$common.hideLoading();
            var pos={
                longitude:r.point.lng+‘‘,
                latitude:r.point.lat+‘‘
            }
            context.commit(‘setCurrentPosition‘,pos);
            if(params.callback){
                params.callback();
            }
        }else {
            Vue.prototype.$common.hideLoading();
            weui.alert(‘获取当前位置失败‘);
        }        
    },{enableHighAccuracy: true});
}

 4)展示地图

百度地图API中的大部分对象都含有addEventListener方法,您可以通过该方法来监听对象事件。

mounted:function(){
    var self=this;
    this.$common.httpPost(‘userRegisterPre.do‘,{},function(response){
        self.user=response.User;
        //deptseq
        store.dispatch(‘getCurrentPosition‘,{callback:setMap});
        function setMap(){
            var map = new BMap.Map("map");
            var currentPosition=store.state.glob.currentPosition;
            var point = new BMap.Point(currentPosition.longitude, currentPosition.latitude);
            map.centerAndZoom(point, 12);
            
            var me = new BMap.Icon("images/current-pos.png", new BMap.Size(32,32));
            var meMarker = new BMap.Marker(point,{icon:me});//创建标注
            map.addOverlay(meMarker);
            
            var DeptList=store.state.glob.deptList,pointArray=[];
            for(var i=0;i){
                var item=DeptList[i];
                if(item.deptseq==response.User.deptseq){
                    self.dept=item;
                }
                var deptPoint=new BMap.Point(item.Longitude, item.Latitude);
                var marker = new BMap.Marker(deptPoint);//创建点
                map.addOverlay(marker);//增加点
                pointArray.push(deptPoint);
                marker.addEventListener("click",(function(i){
                    return function(){
                        self.dept=DeptList[i];
                        self.showedMap=false;
                    }
                })(i));  //通过闭包为多个点注册点击事件
                var label = new BMap.Label(item.Deptname,{offset:new BMap.Size(20,-10)});
                marker.setLabel(label);
                self.showedMap=false;
            }
        }    
    });
},

 5)地图带检索功能的信息窗口

引入js和css:

setDeptList:function(){
    var self=this;
    this.$common.httpPost(‘queryBankDeptList.do‘,{},function(response){
        var DeptList=response.DeptList;
        self.deptList=DeptList;
        for(var i=0;i){
            var item=DeptList[i];
            var deptPoint=new BMap.Point(item.Longitude, item.Latitude);
            var marker = new BMap.Marker(deptPoint);//创建点
            self.map.addOverlay(marker);//增加点
            var label = new BMap.Label(item.Deptname,{offset:new BMap.Size(20,-10)});
            marker.setLabel(label);
            
            DeptList[i].marker=marker;
            var content=‘

地址:‘+item.addr+‘

; content+=‘

客户经理:‘+item.contactname+‘

; var telStr=‘‘+item.phone+‘‘; content+=‘

联系方式:‘+telStr+‘

; DeptList[i].searchInfoWindow = new BMapLib.SearchInfoWindow(self.map, content, { title : item.Deptname+‘社区支行‘, //标题 width : 290, //宽度 height : 80, //高度 panel : "panel", //检索结果面板 enableAutoPan : true, //自动平移 searchTypes :[ //BMAPLIB_TAB_SEARCH, //周边检索 //BMAPLIB_TAB_TO_HERE, //到这里去 //BMAPLIB_TAB_FROM_HERE //从这里出发 ] }); marker.addEventListener("click",(function(i){ return function(){ DeptList[i].searchInfoWindow.open(DeptList[i].marker); } })(i)); } }); },

百度地图JS API

标签:进入   功能   query   dep   enter   context   引入   styles   turn   

原文地址:http://www.cnblogs.com/colorful-coco/p/7825327.html


评论


亲,登录后才可以留言!