在百度地图中添加自定义全屏控件

百度地图中添加全屏控件

前置知识:
进入整个页面的全屏模式 :document.documentElement.requestFullscreen()
进入特定元素的全屏模式 : document.getElementById("ID").requestFullscreen()
退出全屏:document.exitFullscreen()

调用百度地图API写自定义控件的核心部分代码:

 var map = new BMapGL.Map('map');    // 创建Map实例
	map.centerAndZoom(new BMapGL.Point(lng, lat), 3);  // 初始化地图,设置中心点坐标和地图级别
	map.enableScrollWheelZoom(true);     //开启鼠标滚轮缩放
	var scaleCtrl = new BMapGL.ScaleControl();  // 添加比例尺控件
	map.addControl(scaleCtrl);
	var zoomCtrl = new BMapGL.ZoomControl();  // 添加缩放控件
	map.addControl(zoomCtrl);
	
// 添加自定义全屏控件  定义 一个控件类
  function ZoomControl() {
    this.defaultAnchor = BMAP_ANCHOR_TOP_RIGHT;
    this.defaultOffset = new BMapGL.Size(10, 20)
  }
  //通过JavaScript的prototype属性继承于BMap.Control
  ZoomControl.prototype = new BMapGL.Control();

  //自定义控件必须实现自己的initialize方法,并且将控件的DOM元素返回
  ZoomControl.prototype.initialize = function (map) {
    //创建一个dom元素
    var div = document.createElement('div');
    //添加文字说明
    div.appendChild(document.createTextNode('全屏'));
    // 设置样式
    div.style.cursor = "pointer";
    div.style.padding = "8px 13px";
    div.style.margin = "20px 0px";
    div.style.boxShadow = "0 2px 6px 0 rgba(27, 142, 236, 0.5)";
    div.style.borderRadius = "5px";
    div.style.backgroundColor = "white";
    // 绑定事件-全屏
    div.onclick = function (e) {
      if (document.fullscreenElement === null){
        document.getElementById("map").requestFullscreen();
      }else {
        document.exitFullscreen();
      }
    }

    document.addEventListener("fullscreenchange", () => {
      if (document.fullscreenElement === null) {
        console.log("Exited fullscreen");
        div.innerText = '全屏';
      } else {
        div.innerText='退出全屏';
        console.log("Entered fullscreen");
      }
    });
    // 添加DOM元素到地图中
    map.getContainer().appendChild(div);
    // 将DOM元素返回
    return div;
  }
  //创建控件元素
  var myZoomCtrl = new ZoomControl();
  //添加到地图中
  map.addControl(myZoomCtrl);

效果:
在这里插入图片描述

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值