星空网 > 软件开发 > Java

百度地图 自定义控件

前言

百度地图API中预定义的UI控件,比如NavigationControl平移缩放控件,CopyrightControl版权控件,MapTypeControl地图类型控件....,这些都继承自抽象基类Control,因此均继承了Control的属性和方法,故如果我们需要自定义属于自己的控件就必须先继承Control.下面具体看下怎么自定义自己的控件?

步骤一

      自定义控件的构造函数,在构造函数中指定控件的默认位置,自定义控件的构造函数,在构造函数中指定控件的默认位置,然后让新控件的prototype原型对象指向Control的对象以继承其原型链上的属性和方法。比如下边创建一个缩放级别的控件:

百度地图    自定义控件百度地图    自定义控件
/自定义控件function ZoomControl(){  this.defaultAnchor=BMAP_ANCHOR_TOP_LEFT;//设置控件默认位置  this.defaultOffset = new BMap.Size(60,30);//设置偏移}ZoomControl.prototype= new BMap.Control();//继承Control的属性和方法

View Code

 

步骤二

      当通过addControl()方法添加自定义控件的时候,API会调用该对象从Control继承过来的initialize()方法用来初始化控件,所以要创建出你期望的UI控件,你就必须重写initialize()来构建出自定义控件的DOM和附上相应的DOM事件。由于自定义的控件的DOM最终会被添加到地图所在的DOM容器中去,所以首先我们需要调用getContainer()方法获得地图容器,然后将自定义的DOM附加到容器中.initialize()方法最终返回自定义控件容器的DOM元素.

百度地图    自定义控件百度地图    自定义控件
// 自定义控件必须实现initialize方法,并且将控件的DOM元素返回  // 在本方法中创建个div元素作为控件的容器,并将其添加到地图容器中  ZoomControl.prototype.initialize = function(map){  // 创建一个DOM元素  var div = document.createElement("div");  // 添加文字说明   div.appendChild(document.createTextNode("放大2级"));   // 设置样式   div.style.cursor = "pointer";   div.style.border = "1px solid gray";   div.style.backgroundColor = "white";   // 绑定事件,点击一次放大两级   div.onclick = function(e){  map.zoomTo(map.getZoom() + 2);   }   // 添加DOM元素到地图中  map.getContainer().appendChild(div);   // 将DOM元素返回  return div;   }

View Code

 

步骤三

     自此自定义的一个单击地图放大2个级别的控件就写出来了,接下来就是使用,和地图API中定义的控件的使用方式相同.

百度地图    自定义控件百度地图    自定义控件
/ 创建控件实例  var myZoomCtrl = new ZoomControl();// 添加到地图当中 map.addControl(myZoomCtrl); 

View Code
附图

百度地图    自定义控件  百度地图    自定义控件




原标题:百度地图 自定义控件

关键词:百度

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

VAT税号申请后为何每年需缴纳服务费?:https://www.kjdsnews.com/a/1341257.html
VAT税号申请后为何每年要缴纳服务费?:https://www.kjdsnews.com/a/1341258.html
VAT税号注册费用有多少?:https://www.kjdsnews.com/a/1341259.html
VAT税号注册流程指南一步一步轻松搞定:https://www.kjdsnews.com/a/1341260.html
VAT税号注册流程及费用详解:https://www.kjdsnews.com/a/1341261.html
VAT税号注册流程及注意事项:https://www.kjdsnews.com/a/1341262.html
川藏线自驾游要怎么走才比较划算呢?:https://www.vstour.cn/a/411240.html
去日本入住酒店,东西随意用却有一个特殊“要:https://www.vstour.cn/a/411241.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流