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 相关文章推荐
极酷的javascirpt,让你随意编辑任何网页
Feb 25 Javascript
JQUERY获取form表单值的代码
Jul 17 Javascript
一个不错的js html页面倒计时可精确到秒
Oct 22 Javascript
jQuery操作DOM之获取表单控件的值
Jan 23 Javascript
jQuery实现的超简单点赞效果实例分析
Dec 31 Javascript
基于JS实现无缝滚动思路及代码分享
Jun 07 Javascript
手机端js和html5刮刮卡效果
Sep 29 Javascript
Three.js实现浏览器变动时进行自适应的方法
Sep 26 Javascript
Node 升级到最新稳定版的方法分享
May 17 Javascript
jQuery中将json数据显示到页面表格的方法
May 27 jQuery
深入解析vue 源码目录及构建过程分析
Apr 24 Javascript
JavaScript如何实现元素全排列实例代码
May 14 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
浅谈电磁辐射对健康的影响
2021/03/01 无线电
PHP5中虚函数的实现方法分享
2011/04/20 PHP
thinkphp3.x连接mysql数据库的方法(具体操作步骤)
2016/05/19 PHP
php输出文字乱码的解决方法
2019/10/04 PHP
js验证表单第二部分
2006/11/25 Javascript
window.requestAnimationFrame是什么意思,怎么用
2013/01/13 Javascript
js防止页面被iframe调用的方法
2014/10/30 Javascript
JavaScript 学习笔记之基础中的基础
2015/01/13 Javascript
全面解析Bootstrap图片轮播效果
2015/12/03 Javascript
完美实现bootstrap分页查询
2015/12/09 Javascript
WordPress 单页面上一页下一页的实现方法【附代码】
2016/03/10 Javascript
基于jQuery实现淡入淡出效果轮播图
2020/07/31 Javascript
jQuery异步提交表单的两种方式
2016/09/13 Javascript
js+css3实现旋转效果
2017/01/20 Javascript
JS获取鼠标位置距浏览器窗口距离的方法示例
2017/04/11 Javascript
详解vue2.0的Element UI的表格table列时间戳格式化
2017/06/13 Javascript
解决echarts数据二次渲染不成功的问题
2020/07/20 Javascript
浅谈Vue使用Cascader级联选择器数据回显中的坑
2020/10/31 Javascript
Vue+Bootstrap实现简易学生管理系统
2021/02/09 Vue.js
Python映射拆分操作符用法实例
2015/05/19 Python
Python Json模块中dumps、loads、dump、load函数介绍
2018/05/15 Python
python实现各种插值法(数值分析)
2019/07/30 Python
Django学习之文件上传与下载
2019/10/06 Python
pygame实现烟雨蒙蒙下彩虹雨
2019/11/11 Python
常用的10个Python实用小技巧
2020/08/10 Python
python Cartopy的基础使用详解
2020/11/01 Python
python爬取代理ip的示例
2020/12/18 Python
财务部岗位职责
2013/11/19 职场文书
消防安全宣传标语
2014/06/07 职场文书
大学拉赞助协议书范文
2014/09/26 职场文书
2014年销售工作总结
2014/12/01 职场文书
我的1919观后感
2015/06/03 职场文书
2016年暑假学生家长评语
2015/12/01 职场文书
mysql在项目中怎么选事务隔离级别
2021/05/25 MySQL
Python中Matplotlib的点、线形状、颜色以及绘制散点图
2022/04/07 Python
Elasticsearch 数据类型及管理
2022/04/19 Python