javascript 开发之百度地图使用到的js函数整理


Posted in Javascript onMay 19, 2017

 javascript 开发之百度地图使用到的js函数整理

接项目用到的地图,客户要求用百度地图,没办法只好用百度地图,这里总结一下,写的一些函数,注释比较详细!

//创建和初始化地图函数: 
    
    function initMap(){ 
     createMap();//创建地图 
     setMapEvent();//设置地图事件 
     addMapControl();//向地图添加控件 
     addMarker();//向地图中添加marker 
    } 
     
    //创建地图函数: 
    function createMap(){ 
     var map = new BMap.Map("container");//在百度地图容器中创建一个地图 
     var point = new BMap.Point(116.395645,39.929986);//定义一个中心点坐标 
     map.centerAndZoom(point,12);//设定地图的中心点和坐标并将地图显示在地图容器中 
     window.map = map;//将map变量存储在全局 
    } 
     
    //地图事件设置函数: 
    function setMapEvent(){ 
     map.enableDragging();//启用地图拖拽事件,默认启用(可不写) 
     map.enableScrollWheelZoom();//启用地图滚轮放大缩小 
     map.enableDoubleClickZoom();//启用鼠标双击放大,默认启用(可不写) 
     map.enableKeyboard();//启用键盘上下左右键移动地图 
    } 
  
    //地图控件添加函数: 
    function addMapControl(){ 
      //向地图中添加缩放控件 
     var ctrl_nav = new BMap.NavigationControl({anchor:BMAP_ANCHOR_TOP_LEFT,type:BMAP_NAVIGATION_CONTROL_LARGE}); 
     map.addControl(ctrl_nav); 
      //向地图中添加缩略图控件 
     var ctrl_ove = new BMap.OverviewMapControl({anchor:BMAP_ANCHOR_BOTTOM_RIGHT,isOpen:1}); 
     map.addControl(ctrl_ove); 
      //向地图中添加比例尺控件 
     var ctrl_sca = new BMap.ScaleControl({anchor:BMAP_ANCHOR_BOTTOM_LEFT}); 
     map.addControl(ctrl_sca); 
    } 
     
    //标注点数组 
    var markerArr = [{title:"我的标记",content:"我的备注",point:"116.354539|39.970253",isOpen:0,icon:{w:21,h:21,l:0,t:0,x:6,lb:5}} 
      ]; 
    //创建marker 
    function addMarker(){ 
     for(var i=0;i<markerArr.length;i++){ 
      var json = markerArr[i]; 
      var p0 = json.point.split("|")[0]; 
      var p1 = json.point.split("|")[1]; 
      var point = new BMap.Point(p0,p1); 
      var iconImg = createIcon(json.icon); 
      var marker = new BMap.Marker(point,{icon:iconImg}); 
      var iw = createInfoWindow(i); 
      var label = new BMap.Label(json.title,{"offset":new BMap.Size(json.icon.lb-json.icon.x+10,-20)}); 
      marker.setLabel(label); 
       
      map.addOverlay(marker); 
      label.setStyle({ 
         borderColor:"#808080", 
         color:"#333", 
         cursor:"pointer" 
      }); 
      (function(){ 
       var index = i; 
       var _iw = createInfoWindow(i); 
       var _marker = marker; 
       _marker.addEventListener("click",function(){ 
        this.openInfoWindow(_iw); 
       }); 
       _iw.addEventListener("open",function(){ 
        _marker.getLabel().hide(); 
       }) 
       _iw.addEventListener("close",function(){ 
        _marker.getLabel().show(); 
       }) 
       label.addEventListener("click",function(){ 
        _marker.openInfoWindow(_iw); 
       }) 
       if(!!json.isOpen){ 
        label.hide(); 
        _marker.openInfoWindow(_iw); 
       } 
      })() 
     } 
    } 
    //创建InfoWindow 
    function createInfoWindow(i){ 
     var json = markerArr[i]; 
     var iw = new BMap.InfoWindow("<b class='iw_poi_title' title='" + json.title + "'>" + json.title + "</b><div class='iw_poi_content'>"+json.content+"</div>"); 
     return iw; 
    } 
    //创建一个Icon 
    function createIcon(json){ 
     var icon = new BMap.Icon("http://openapi.baidu.com/map/images/us_mk_icon.png", new BMap.Size(json.w,json.h),{imageOffset: new BMap.Size(-json.l,-json.t),infoWindowOffset:new BMap.Size(json.lb+5,1),offset:new BMap.Size(json.x,json.h)}) 
     return icon; 
    } 
     
 initMap();//创建和初始化地图

 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
jQuery 性能优化指南(3)
May 21 Javascript
Jquery中删除元素的实现代码
Dec 29 Javascript
Knockout数组(observable)使用详解示例
Nov 15 Javascript
javascript教程:关于if简写语句优化的方法
May 17 Javascript
js实现飞入星星特效代码
Oct 17 Javascript
浅析Node.js中的内存泄漏问题
Jun 23 Javascript
三个js循环的关键字示例(for与while)
Feb 16 Javascript
Javascript中的prototype与继承
Feb 06 Javascript
webpack开发跨域问题解决办法
Aug 03 Javascript
vue.js项目nginx部署教程
Apr 05 Javascript
Vuex mutitons和actions初使用详解
Mar 04 Javascript
VUE 项目在IE11白屏报错 SCRIPT1002: 语法错误的解决
Sep 27 Javascript
微信小程序表单验证错误提示效果
May 19 #Javascript
微信小程序实现滑动删除效果
May 19 #Javascript
微信小程序图片横向左右滑动案例
May 19 #Javascript
layui导航栏实现代码
May 19 #Javascript
详解AngularJS controller调用factory
May 19 #Javascript
layer弹窗插件操作方法详解
May 19 #Javascript
layui选项卡效果实现代码
May 19 #Javascript
You might like
全国FM电台频率大全 - 29 青海省
2020/03/11 无线电
深入解析PHP内存管理之谁动了我的内存
2013/06/20 PHP
php获取一个变量的名字的方法
2014/09/05 PHP
PHP GD库相关图像生成和处理函数小结
2016/09/30 PHP
PHP中常用的三种设计模式详解【单例模式、工厂模式、观察者模式】
2019/06/14 PHP
PHP设计模式(九)外观模式Facade实例详解【结构型】
2020/05/02 PHP
pjblog修改技巧汇总
2007/03/12 Javascript
document.open() 与 document.write()的区别
2007/08/13 Javascript
jquery动画1.加载指示器
2012/08/24 Javascript
JavaScript在for循环中绑定事件解决事件参数不同的情况
2014/01/20 Javascript
javascript获取隐藏元素(display:none)的高度和宽度的方法
2014/06/06 Javascript
JsRender for object语法简介
2014/10/31 Javascript
原生js代码实现图片放大境效果
2016/10/30 Javascript
jQuery基于Ajax方式提交表单功能示例
2017/02/10 Javascript
Ajax验证用户名或昵称是否已被注册
2017/04/05 Javascript
配置node服务器并且链接微信公众号接口配置步骤详解
2019/06/21 Javascript
node.js事件轮询机制原理知识点
2019/12/22 Javascript
vue使用openlayers实现移动点动画
2020/09/24 Javascript
[49:40]2018DOTA2亚洲邀请赛小组赛 A组加赛 TNC vs Newbee
2018/04/03 DOTA
[55:54]FNATIC vs EG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python生成指定尺寸缩略图的示例
2014/05/07 Python
Java Web开发过程中登陆模块的验证码的实现方式总结
2016/05/25 Python
Python使用Selenium+BeautifulSoup爬取淘宝搜索页
2018/02/24 Python
Python 定义只读属性的实现方式
2020/03/05 Python
python调用API接口实现登陆短信验证
2020/05/10 Python
Python函数__new__及__init__作用及区别解析
2020/08/31 Python
家乐福巴西网上超市:Carrefour巴西
2016/10/31 全球购物
内部类的定义、种类以及优点
2013/10/16 面试题
运动会通讯稿100字
2014/01/31 职场文书
2014年乡镇领导个人整改措施
2014/09/19 职场文书
教师四风问题整改措施
2014/09/25 职场文书
社区元宵节活动总结
2015/02/06 职场文书
公司市场部岗位职责
2015/04/15 职场文书
入党转正介绍人意见
2015/06/03 职场文书
MySQL表字段时间设置默认值
2021/05/13 MySQL
Java 实现限流器处理Rest接口请求详解流程
2021/11/02 Java/Android