百度地图JS API

1、百度地图api的使用

1)申请百度账号和ak

2)引用百度地图API文件

<script src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥"></script>

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<DeptList.length;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:

<script src="https://api.map.baidu.com/library/SearchInfoWindow/1.5/src/SearchInfoWindow_min.js"></script>

<link rel="stylesheet" href="https://api.map.baidu.com/library/SearchInfoWindow/1.5/src/SearchInfoWindow_min.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<DeptList.length;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=‘<p>地址:‘+item.addr+‘</p>‘;
            content+=‘<p>客户经理:‘+item.contactname+‘</p>‘;
            var telStr=‘<a href="tel:‘+item.phone+‘">‘+item.phone+‘</a>‘;
            content+=‘<p>联系方式:‘+telStr+‘</p>‘;
            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));
        }
    });
},
时间: 2024-10-28 23:07:15

百度地图JS API的相关文章

百度地图JS API移动端,phonegap 自定义覆盖物Click事件无法执行 的 bug 解决方法

当你为自定义覆盖物添加了click事件后,你会发现在移动端是无论如何也触发不了的,这算是一个BUG. 最近我在为我的地图APP开发第二版,在为一个覆盖物添加行为事被困扰到了,自定义覆盖物的click事件竟然无法在iPhone端触发,以及百度地图JS API里面的开源库涉及到自定义覆盖物click事件的均无效. 我为这个BUG烦恼了很久,直到今天,在QQ群里网友(在此要先感谢这位网友mooring)告诉了我解决方法:iPhone上的自定义覆盖物事件默认会触发map的click事件,如果map定义了

关于百度地图js api的getCurrentPosition定位不准确的解决方法

很久之前帮大叔解决了一个gps坐标转换为百度地图坐标的问题.今天大叔又给我讲百度地图定位不准.我查了一下api,用了官方给出的这样一组函数. 1 //创建查询对象 2 var geolocation = new BMap.Geolocation(); 3 4 //调用getCurrentPosition函数 5 geolocation.getCurrentPosition(function (position) { 6 7 //如果查询成功 8 if (this.getStatu() == 'B

百度地图的API接口----多地址查询和经纬度

最近看了百度地图的API的接口,正想自己做点小东西,主要是多地址查询和经纬度坐标跟踪, 下面的代码直接另存为html就可以了. <!DOCTYPE html> <html> <head> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <meta http-equiv="Content-Type" c

百度地图 JavaScript API极速版 开发体会

前段时间百度地图API推出了 JavaScript API 极速版 1.0 简单看了一下,从产品定位来说真是挺好. 把开发者细分成普通web开发者和移动web开发者.正好用到了手机地图这块决定尝试一下.先看一下百度地图官方对它的定义.     本套百度地图API是专为手机浏览器提供的API,您可使用该套API,在手机页面中展示地图.标注位置.检索poi.查询线路等. 特点: 较同时兼容PC和手机浏览器的JavaScript API大众版而言,该版更适配移动设备,体积更小,加载地图速度更快,更省流

百度地图JavaScript API使用

最近在完成优达学城前端开发(入门)课程的P4项目中,要求调用google地图进行交互,项目已提供部分js代码和html代码.但在申请google地图API密钥时由于网络等原因,打不开或者连接超时,所以想着地图应该是相似的,百度地图可能也能实现这样的功能,于是就开始了百度地图JavaScript API使用的学习探究了. 简单介绍:百度地图JavaScript API是一套由JavaScript语言编写的应用程序接口,它能够帮助您在网站中构建功能丰富.交互性强的地图应用,包含了构建地图基本功能的各

百度地图JS

若要转载请注明出处 本文为原创 作者:injuer 严禁用于商业用途,仅供学习交流 </pre><pre code_snippet_id="368934" snippet_file_name="blog_20140529_1_6382235" name="code" class="html"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Tra

[Baidu Map]百度地图 JAVASCRIPT API V2.0 大众版 工具类

关键代码: /* *@description 百度地图 JAVASCRIPT API V2.0 大众版 工具类 *@author YanZhiwei *@see http://developer.baidu.com/map/reference/index.php *@email [email protected] */ (function () { map = {}; infoWindow = {}; BmapUtils = { CONSTANT: { DYNAMIC_CITY: "上海&quo

百度地图js小结

1.获取javascript API 服务方法,首先申请密钥(ak),才可成功载入APIJS文件. 用法例如以下: <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥"></script> 假设须要限制区域,那么须要引入以下的js <!-- 区域限制js --> <script type="text/j

外部引入的js 判断js脚本加载是否完成,完成后执行 相应的动作(以引入百度地图js为例)

可以使用JQuery的 $.getScript(url,function(){});方法 $.getScript("http://api.map.baidu.com/getscript?v=1.1&ak=&services=true&t=",function(){ //获取百度地图js成功后 会执行此方法 initMap(); }); 这个方法等价于 $.ajax({ url: url, dataType: "script", success