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 相关文章推荐
表单(FORM)的一些实用效果代码
Mar 25 Javascript
Extjs4 类的定义和扩展实例
Jun 28 Javascript
javascript字母大小写转换的4个函数详解
May 09 Javascript
AngularJS在IE8的不支持的解决方法
May 13 Javascript
js 动态给元素添加、移除事件的实现方法
Jul 19 Javascript
JavaScript鼠标特效大全
Sep 13 Javascript
Bootstrap源码解读排版(1)
Dec 23 Javascript
详解JS异步加载的三种方式
Mar 07 Javascript
JS简单获取日期相差天数的方法
Apr 24 Javascript
vue表单绑定实现多选框和下拉列表的实例
Aug 12 Javascript
简单实现jquery隔行变色
Nov 09 jQuery
JavaScript基于对象方法实现数组去重及排序操作示例
Jul 10 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默认安装产生系统漏洞
2006/10/09 PHP
PHP批量生成静态HTML的简单原理和方法
2014/04/20 PHP
PHP 使用memcached简单示例分享
2015/03/05 PHP
php实现读取内存顺序号
2015/03/29 PHP
JavaScript 模仿vbs中的 DateAdd() 函数的代码
2007/08/13 Javascript
用js生产批量批处理执行命令
2008/07/28 Javascript
JavaScript入门教程(11) js事件处理
2009/01/31 Javascript
jQuery布局插件UI Layout简介及使用方法
2013/04/03 Javascript
js加入收藏夹代码(兼容ie/ff/op)
2014/05/16 Javascript
jQuery插件FusionCharts实现的2D柱状图效果示例【附demo源码下载】
2017/03/06 Javascript
js中json对象和字符串的理解及相互转化操作实现方法
2017/09/22 Javascript
Vue 换肤的示例实践
2018/01/23 Javascript
nodejs中密码加密处理操作详解
2018/03/20 NodeJs
vue组件实现进度条效果
2018/06/06 Javascript
微信小程序js文件改变参数并在视图上及时更新【推荐】
2018/06/11 Javascript
vuex存储复杂参数(如对象数组等)刷新数据丢失的解决方法
2019/11/05 Javascript
[45:34]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第一场 12.18
2020/12/19 DOTA
pygame学习笔记(5):游戏精灵
2015/04/15 Python
高效测试用例组织算法pairwise之Python实现方法
2017/07/19 Python
详解pandas库pd.read_excel操作读取excel文件参数整理与实例
2019/02/17 Python
Python字符串内置函数功能与用法总结
2019/04/16 Python
python Web flask 视图内容和模板实现代码
2019/08/23 Python
python网络编程之多线程同时接受和发送
2019/09/03 Python
使用python去除图片白色像素的实例
2019/12/12 Python
HTML5 canvas实现移动端上传头像拖拽裁剪效果
2016/03/14 HTML / CSS
泰国演唱会订票网站:StubHub泰国
2018/02/26 全球购物
android面试问题与答案
2016/12/27 面试题
高校学生干部的自我评价分享
2013/11/04 职场文书
2014植树节活动总结
2014/03/11 职场文书
团日活动总结报告
2014/06/25 职场文书
2015关爱留守儿童工作总结
2014/12/12 职场文书
保留意见审计报告
2015/06/05 职场文书
2015大学党建带团建工作总结
2015/07/23 职场文书
中考百日冲刺决心书
2015/09/22 职场文书
JavaScript如何利用Promise控制并发请求个数
2021/05/14 Javascript
SQL Server数据库基本概念、组成、常用对象与约束
2022/03/20 SQL Server