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

百度地图中添加全屏控件

前置知识:
进入整个页面的全屏模式 :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);

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/89316.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【PHP】函数-作用域可变函数匿名函数闭包常用系统函数

文章目录 函数定义&使用命名规则参数种类默认值引用传递函数返回值return关键字 作用域global关键字静态变量 可变函数匿名函数闭包常用系统函数输出函数时间函数数学函数与函数相关函数 函数 函数:function,是一种语法结构,将实现某一个…

时序预测 | Matlab实现SO-CNN-BiGRU蛇群算法优化卷积双向门控循环单元时间序列预测

时序预测 | Matlab实现SO-CNN-BiGRU蛇群算法优化卷积双向门控循环单元时间序列预测 目录 时序预测 | Matlab实现SO-CNN-BiGRU蛇群算法优化卷积双向门控循环单元时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 时序预测 | Matlab实现SO-CNN-BiGRU蛇群算法优化…

HarmonyOS学习路之方舟开发框架—学习ArkTS语言(状态管理 四)

Observed装饰器和ObjectLink装饰器:嵌套类对象属性变化 上文所述的装饰器仅能观察到第一层的变化,但是在实际应用开发中,应用会根据开发需要,封装自己的数据模型。对于多层嵌套的情况,比如二维数组,或者数…

1.1 VMware Workstation与Kali的安装和配置1

资源见专栏第一篇文章https://blog.csdn.net/algorithmyyds/article/details/132457258 安装VMware 不多加赘述,直接按顺序安装即可。 有以下需注意的地方: 1.建议选择增强型服务; 2.不要加入体验改进计划。是否开启提示更新看你的想法&…

MySQL数据的导入导出mysqldump、mysqlimport into outfile和load data

0、概述 MySQL数据的导入导出方案通常是配套的,例如: 方案一:使用mysqldump导出数据,再使用mysql客户端导入数据 方案二:使用SELECT INTO OUTFILE命令导出数据,再使用LOAD DATA或mysqlimport导入数据 方案…

Tokenview再度升级:全新Web3开发者APIs数据服务体验!

Tokenview发布全新版本的区块链APIs和数据服务平台,为开发者打造更强大、更便捷的开发体验! 此次升级,我们整合了开发者使用习惯以及Tokenview产品优势。我们深知对于开发者来说,时间是非常宝贵的,因此我们努力提供一…

概率论与数理统计:第六章:数理统计

文章目录 Ch6. 数理统计(一) 总体与样本(二) 统计量 (5个)2.5个常用统计量3.矩的概念 (三) 抽样分布 (3个)0.上α分位点1.χ分布2.t分布3.F分布 (四) 抽样分布定理1.单个正态总体2.两个正态总体 Ch6. 数理统计 (一) 总体与样本 1.概念: (1)总体 (2)样本 简单随机…

利用“病毒制造机”实现脚本病毒的制造

一、脚本病毒的概念: 脚本病毒通常是 JavaScript 或 VBScript 等语言编写的恶意代码,一般广告性质,会修改 IE 首页、修改注册表等信息,对用户计算机造成破坏。 通过网页进行的传播的病毒较为典型,脚本病毒还会有如下前…

大模型+学习机,是概念游戏还是双向奔赴?

众所周知,2023年上半年大模型概念炙手可热。各大科技公司纷纷卷入,或宣称布局相关领域,或率先官宣自研大模型。而随着资本市场对大模型概念的热情有所消退,属于这片战场的新一轮角逐慢慢聚焦在了技术的落地应用上。 8月15日&#…

基于XL32F003单片机的可控硅调光方案

可控硅调光是一种用于调节电源输出电压的技术,被广泛应用于各种场景。它主要通过改变波形的导通角度来调节输出电压的大小,从而实现对照明设备亮度的控制。在照明市场占据了很大的调光市场。 可控硅调光的兼容性强,应用范围广。例如&#xff…

Flink、Yarn架构,以Flink on Yarn部署原理详解

Flink、Yarn架构,以Flink on Yarn部署原理详解 Flink 架构概览 Apache Flink是一个开源的分布式流处理框架,它可以处理实时数据流和批处理数据。Flink的架构原理是其实现的基础,架构原理可以分为以下四个部分:JobManager、TaskM…

【RuoYi移动端】uniApp导入和引用uView2.0插件

一、打开uiew官网 安装 | uView 2.0 - 全面兼容 nvue 的 uni-app 生态框架 - uni-app UI 框架uView UI,是 uni-app 生态最优秀的 UI 框架,全面的组件和便捷的工具会让您信手拈来,如鱼得水https://uviewui.com/components/install.html 也可直…

数据库类型

文章目录 数据库的类型1. 关系型数据库2. 非关系型数据库NOSQL3. 常见的关系型数据库3.1 Oracle3.2 DB23.3 SQL Server3.4 MySQL 数据库的类型 主要分为四大类: 一:关系型数据库。 二:非关系型数据库。 三:网状数据库。 四&#…

ArcGIS Serve Windows下用户密码变更导致Server服务无法启动问题

问题: 因未知原因Windows下的Server安装账户密码变更,但是又忘记了密码,导致,Server服务启动失败,错误1069: 解决方法: 在账户管理界面,重置对应的arcgis账户的密码,…

融合算法综述

融合算法 前言一、概念二、原理三、融合的先决条件四、融合分类4.1、前融合和后融合4.2 、数据级融合、特征级融合和决策级融合 五、典型融合算法 多传感器信息融合(Multi-sensor Information Fusion,MSIF):利用计算机技术将来自多传感器或多…

网深科技与中科方德完成兼容性认证

网深科技的产品NetInside可观测性分析平台与国产中科方德主流操作系统完成兼容性适配,系统名称:方德高可信服务器操作系统V4.0,系统运行稳定,性能卓越,完美兼容,能够为广大用户提供灵活、专业、直观可视性&…

[网络架构]Self-organized operational neural networks (SelfONN)

Self-organized operational neural networks (SelfONN 背景CNNONNSelfONNCNN, ONN, SelfONN对比SelfONN与CNN的关系总结相关资源References 背景 本节要分享的是SelfONN, SelfONN可以看作是ONN的优化/升级, 而ONN可以看作是更一般化的CNN, …

Azure文件共享

什么是Azure文件共享 Azure文件共享是一种在云中存储和访问文件的服务。它允许用户在不同的计算机、虚拟机和服务之间共享数据,并在应用程序中进行访问、修改和管理。 Azure文件共享可以用于各种用途,例如: 共享文件资源给多个虚拟机或服务…

laravel aws s3

由于公司有境外项目,服务器、文件存储都是用的亚马逊,真真地是没有用过,在此记录一下自己的s3研究结果 Laravel - aws - s3 第一步创建用户,生成秘钥: 第二步创建存储桶: 1、创建存储桶时,以下…

人工智能如何颠覆和改变信息安全格局

当谈及网络信息安全领域,人工智能(AI)正扮演着关键的角色。其作用是分析庞大的风险数据,以及企业信息系统中不同威胁之间的关联,从而识别出全新类型的攻击方式。这一过程的成果为各类网络安全团队提供了重要情报&#…