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监控数据是否变化(修正版)
Apr 12 Javascript
JS Jquery 遍历,筛选页面元素 自动完成(实现代码)
Jul 08 Javascript
js计算字符串长度包含的中文是utf8格式
Oct 15 Javascript
jQuery实现单击按钮遮罩弹出对话框(仿天猫的删除对话框)
Apr 10 Javascript
使用jquery解析XML示例代码
Sep 05 Javascript
js实现仿百度瀑布流的方法
Feb 05 Javascript
vue基于Vue2.0和高德地图的地图组件实例
Apr 28 Javascript
vue.js实例todoList项目
Jul 07 Javascript
10种JavaScript最常见的错误(小结)
Jun 21 Javascript
在JavaScript中实现链式调用的实现
Dec 24 Javascript
JavaScript装箱及拆箱boxing及unBoxing用法解析
Jun 15 Javascript
小程序实现可拖动的悬浮按钮
Sep 07 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
PHP学习笔记之二 php入门知识
2011/01/12 PHP
解析:使用php mongodb扩展时 需要注意的事项
2013/06/18 PHP
php操作access数据库的方法详解
2017/02/22 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
2019/12/20 PHP
Javascript 跨域访问解决方案
2009/02/14 Javascript
基于jquery的一个简单的脚本验证插件
2010/04/05 Javascript
jquery中获取元素里某一特定子元素的代码
2014/12/02 Javascript
浅谈JavaScript for循环 闭包
2016/06/22 Javascript
前端面试知识点锦集(JavaScript篇)
2016/12/28 Javascript
使用BootStrap进行轮播图的制作
2017/01/06 Javascript
JS代码实现电脑配置检测功能
2018/03/21 Javascript
JavaScript EventEmitter 背后的秘密 完整版
2018/03/29 Javascript
微信小程序实现底部导航
2018/11/05 Javascript
JavaScript之实现一个简单的Vue示例
2019/01/17 Javascript
react国际化化插件react-i18n-auto使用详解
2020/03/31 Javascript
[49:59]KG vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python实现socket客户端和服务端简单示例
2014/02/24 Python
python如何统计序列中元素
2020/07/31 Python
python使用HTMLTestRunner导出饼图分析报告的方法
2019/12/30 Python
解决django 向mysql中写入中文字符出错的问题
2020/05/18 Python
keras输出预测值和真实值方式
2020/06/27 Python
python实现粒子群算法
2020/10/15 Python
Django多数据库联用实现方法解析
2020/11/12 Python
Python 中如何使用 virtualenv 管理虚拟环境
2021/01/21 Python
猫途鹰英国网站:TripAdvisor英国(旅游社区和旅游评论)
2016/08/30 全球购物
俄罗斯街头服装品牌:Black Star Wear
2017/03/01 全球购物
酷瑞网络科技面试题
2012/03/30 面试题
物流管理专业大学生自荐信
2013/10/04 职场文书
小学毕业感言500字
2014/02/28 职场文书
机电专业毕业生求职信
2014/07/01 职场文书
小学生竞选班干部演讲稿(5篇)
2014/09/12 职场文书
2014年幼儿园教学工作总结
2014/12/04 职场文书
学校禁毒宣传活动总结
2015/05/08 职场文书
陈斌强事迹观后感
2015/06/17 职场文书
2016年小学生清明节广播稿
2015/12/17 职场文书
深入理解python协程
2021/06/15 Python