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 获取IFrame中对象及获取其父窗口中对象示例
Aug 19 Javascript
简单对比分析JavaScript中的apply,call与this的使用
Dec 04 Javascript
JS获取字符对应的ASCII码实例
Sep 10 Javascript
微信小程序使用audio组件播放音乐功能示例【附源码下载】
Dec 08 Javascript
浅析vue深复制
Jan 29 Javascript
vue项目国际化vue-i18n的安装使用教程
Mar 14 Javascript
详解VSCode配置启动Vue项目
May 14 Javascript
socket在egg中的使用实例代码详解
May 30 Javascript
小程序点击图片实现png转jpg
Oct 22 Javascript
JavaScript数值类型知识汇总
Nov 17 Javascript
JS实现简易留言板特效
Dec 23 Javascript
Vue自定义多选组件使用详解
Sep 08 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
Search Engine Friendly的URL设计
2006/10/09 PHP
PHP 常用函数库和一些实用小技巧
2009/01/01 PHP
php 读取文件乱码问题
2010/02/20 PHP
php随机输出名人名言的代码
2012/10/07 PHP
PHP原生函数一定好吗?
2014/12/08 PHP
php获取用户浏览器版本的方法
2015/01/03 PHP
Laravel中Facade的加载过程与原理详解
2017/09/22 PHP
javascript入门·图片对象(无刷新变换图片)\滚动图像
2007/10/01 Javascript
Javascript 面向对象编程(一) 封装
2011/08/28 Javascript
js页面跳转的常用方法整理
2013/10/18 Javascript
js使用循环清空某个div中的input标签值
2014/09/29 Javascript
js实现当复选框选择匿名登录时隐藏登录框效果
2015/08/14 Javascript
快速掌握Node.js中setTimeout和setInterval的使用方法
2016/03/21 Javascript
JavaScript接口的实现三种方式(推荐)
2016/06/14 Javascript
AngularJS API之copy深拷贝详解及实例
2016/09/14 Javascript
基于JavaScript实现跳转提示页面
2016/09/24 Javascript
node.js Sequelize实现单实例字段或批量自增、自减
2016/12/08 Javascript
js实现登录框鼠标拖拽效果
2017/03/09 Javascript
基于vue2的canvas时钟倒计时组件步骤解析
2018/11/05 Javascript
基于javascript实现日历功能原理及代码实例
2020/05/07 Javascript
Vue 实现拨打电话操作
2020/11/16 Javascript
windows下wxPython开发环境安装与配置方法
2014/06/28 Python
讲解Python中的标识运算符
2015/05/14 Python
Python函数中的函数(闭包)用法实例
2016/03/15 Python
详解Django之auth模块(用户认证)
2018/04/17 Python
python爬虫_实现校园网自动重连脚本的教程
2018/04/22 Python
python获取网络图片方法及整理过程详解
2019/12/20 Python
浅谈keras2 predict和fit_generator的坑
2020/06/17 Python
python else语句在循环中的运用详解
2020/07/06 Python
django rest framework 自定义返回方式
2020/07/12 Python
python 实现的车牌识别项目
2021/01/25 Python
销售员岗位职责
2015/02/10 职场文书
2015年前台文员工作总结
2015/05/18 职场文书
家庭贫困证明
2015/06/16 职场文书
新闻稿件写作技巧
2015/07/18 职场文书
Vue鼠标滚轮滚动切换路由效果的实现方法
2021/08/04 Vue.js