mapbox分屏地图同步缩放拖拽旋转

news2024/9/29 11:33:26

成果图

在这里插入图片描述
之前写过一版,后来又经过一些优化,形成了现在的最终版本,之前是二维的,现在是三维的也可以了,地址在这儿

https://blog.csdn.net/Sakura1998gis/article/details/113175905

实现

监听动作

        // 拖拽同步
        map.on('dragend', () => {
          map.once('idle', () => {
            const info = this.getMapCameraInfo()
            Utils.$emit('MAP_EVENTS.DRAGEND', info)
          })
        })
        // 放大缩小同步
        map.on('zoomend', () => {
          map.once('idle', () => {
            const info = this.getMapCameraInfo()
            Utils.$emit('MAP_EVENTS.ZOOMEND', info)
          })
        })
        //旋转视角同步
        map.on('rotateend',() =>{
          map.once('idle',() =>{
            const info = this.getMapCameraInfo()
            Utils.$emit('MAP_EVENTS.ROTATEEND', info)
          })
        })

获取地图状态的方法

      // 获取地图位置信息
      getMapCameraInfo () {
        const zoom = this.map.getZoom()
        const { lng, lat } = this.map.getCenter()
        //设置地图的倾斜
        const pitch = this.map.getPitch();
        //设置地图的方位(旋转)
        const bearing = this.map.getBearing()
        return {
          from: this.mapId,
          lngLat: [lng, lat],
          zoom,
          pitch,
          bearing
        }
      },

然后在mounted里面,写上事件总线

      // 接收拖拽同步
      Utils.$on('MAP_EVENTS.DRAGEND', this.updateMapCameraInfo)
      // 接收放大缩小同步
      Utils.$on('MAP_EVENTS.ZOOMEND', this.updateMapCameraInfo)
      // 接收旋转视角同步
      Utils.$on('MAP_EVENTS.ROTATEEND', this.updateMapCameraInfo)

更新地图状态的方法

      // 更新地图位置信息
      updateMapCameraInfo (data) {
        const { from, lngLat, zoom, pitch,bearing } = data
        if (this.mapId === from || from === 'map') return
        this.map.jumpTo({
          center: lngLat,
          zoom
        })
        this.map.setPitch(pitch);
        this.map.setBearing(bearing);
      },

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

pm3包1.8版本发布----一个用于3组倾向性评分的R包

目前,本人写的第二个R包pm3包的1.8版本已经正式在CRAN上线,用于3组倾向评分匹配,只能3组不能多也不能少。 可以使用以下代码安装 install.packages("pm3")什么是倾向性评分匹配?倾向评分匹配(Propensity Sc…

经常被问道的这些类,佬们能够吊打面试官嘛(适合秋招和小白系列)?

前言: 本篇文章主要讲解Java中的几个类常被问到的面试题相关知识。该专栏比较适合刚入坑Java的小白以及准备秋招的大佬阅读。 如果文章有什么需要改进的地方欢迎大佬提出,对大佬有帮助希望可以支持下哦~ 小威在此先感谢各位小伙伴儿了😁 以…

宏病毒组研究大放异彩!| 凌恩生物1-5月高分宏病毒组文章大盘点!

凌恩生物现已在宏组学、基因组、表观遗传以及蛋白代谢等多组学及联合分析领域积累了深厚经验,打造出成熟的科研服务平台,以优质售前方案和优秀售后服务助力客户在Nature、Science、PNAS、ISME和MIcrobiome等高端国际期刊上发表了大量文章。 伴随着组学技…

【DevOps】Python+Golang(一)

Python is和的区别 is检查两个对象是否是同一个对象,即它们的内存地址是否相同。如果是同一个对象,则返回True,否则返回False。 检查两个对象是否相等,即它们的值是否相同。如果值相同,则返回True,否则返回…

Maven-基础

Maven Maven是专门用于管理和构建Java项目的工具,主要功能有: 提供了一套标准化的项目结构 Maven提供了一套标准化的项目结构,所有的IDE使用Maven构建的项目完全一样 提供了一套标准化的构建流程(编译,测试&#xff0c…

jmeter性能测试进阶使用纪要

目录 目录 随机变量:实现注册手机号不重复分配 正则表达式:token等变量提取 HTTP header manager:token传参Authorization使用 后置BeanShell PostProcessor设置prev.setDataEncoding(“utf-8”):响应中文乱码处理 同步定时…

与AI合作穿越剧 编剧徐婷:AI脑洞大,但无法替代人类的情感表达

热门喜剧秀《周六夜现场》本季提前结束,美剧《亿万》最新第七季的更新搁浅,漫威新电影《新刀锋战士》暂停拍摄……美国影视娱乐行业的编剧们以抵制AI为由的大罢工,开始影响诸多作品的产出,据说造成了100亿美元的损失。 这场罢工已…

深入理解Linux虚拟内存管理(八)

系列文章目录 Linux 内核设计与实现 深入理解 Linux 内核(一) 深入理解 Linux 内核(二) Linux 设备驱动程序(一) Linux 设备驱动程序(二) Linux 设备驱动程序(三&#xf…

Hive企业级调优

Hive企业级调优 调优原则已经在MR优化阶段已经有核心描述,优化Hive可以按照MR的优化思路来执行 优化的主要考虑方面: 环境方面:服务器的配置、容器的配置、环境搭建具体软件配置参数:代码级别的优化 调优的主要原则: ​ 20/80原则非常重要,简单的说80…

骨传导蓝牙耳机排行榜10强,介绍几款不错的户外骨传导耳机

随着骨传导技术的不断发展,骨传导耳机的性能也得到了很大的提升,特别是在音质和佩戴舒适性上,都有了很大的提升。很多人在听音乐的时候,都会佩戴骨传导耳机,因为骨传导耳机具有开放双耳的特点,长时间佩戴也…

Android Jetpack Compose 中的Tabs(TabLayout)

Android Jetpack Compose 中的Tabs(TabLayout) 添加依赖 我们需要依赖于2个 accompanist组件,你可以从下面链接中获取最新版本https://github.com/google/accompanist/tree/main/pager#pager-composable-for-jetpack-compose def accompan…

探索LowLatency的HLS低延迟直播协议

HLS全称为HTTP Live Streaming,其中m3u8作为描述协议,指向一系列切片文件。支持多码流与自适应码率,支持广告无缝播放,支持CMAF协议的低延时直播,也支持CDN动态选择。 我们先看下HLS整体架构,由三部分构成…

莫顿曲线映射 一维到二维的变换 MD(莫顿)码 反向变换 线性四叉树

函数声明&#xff1a; #include <stdio.h> #include <math.h>#define MAXSIZE 200 #define N 8typedef struct //栈的存储结构 {int data[MAXSIZE];int MD[MAXSIZE];int top; }stack1;void stackinitiate(stack1 *s); //初始化栈 void push (s…

【已解决】c++ 读入灰度图进行dft变换报错

报错原因&#xff1a; 1、imread函数读入默认参数为1&#xff0c;即彩色三通道图像&#xff0c;而我们要指定参数为0&#xff0c;读入灰度图像 2、在进行傅里叶变换前要将图像数据类型转为CV_32F&#xff0c;因为默认灰度图像类型为CV_8U 正确代码&#xff1a; #include <…

Vue中如何进行滚动加载与无限滚动?

Vue中如何进行滚动加载与无限滚动&#xff1f; 随着Web应用程序的复杂性和数据量的增加&#xff0c;滚动加载和无限滚动成为了Web开发中常见的需求。在Vue中&#xff0c;我们可以使用一些插件和技术来实现这些功能。 本文将介绍Vue中如何进行滚动加载和无限滚动&#xff0c;包…

内核实现信号捕捉的过程,以及要用到的函数sigaction

1.信号捕捉过程 1.在执行主控制流程的某条指令时因为中断、异常或系统调用进入内核。 2.内核处理完异常准备回用户模式之前先处理当前进程中可以递送的信号。 3.do_signal(); 如果信号的处理动作为自定义的信号处理函数&#xff0c;则回到用户模式执行信号处理函数&#xff08…

prometheus监控应用数据(一)

prometheus监控应用数据(一) 以下代码实现均使用go语言,至于其他语言请参照其他语言的prometheus api文档 获取go package: prometheus: go get -u github.com/prometheus/client_golang/prometheus搭建程序基本骨架 IP地址暂定为: localhost启用prometheus的监控端口是2112以…

互联网大厂Java面试题1500+附答案详解(2023版)

很多 Java 工程师的技术不错&#xff0c;但是一面试就头疼&#xff0c;10 次面试 9 次都是被刷&#xff0c;过的那次还是去了家不知名的小公司。 问题就在于&#xff1a;面试有技巧&#xff0c;而你不会把自己的能力表达给面试官。 应届生&#xff1a;你该如何准备简历&#…

2020310

Selenium: 基于WebDriver协议的 Web应用程序测试的工具 精简版&#xff1a; selenium脚本通过http请求发送命令和参数给httpserver httpserver通过json wire protocol格式转发命令和参数给webdriver webdriver通过原生API或者JavaScript代码执行操作给浏览器 浏览器通过json wi…

材料微观结构表征技术:电子背散射衍射EBSD

材料微观结构表征技术&#xff1a;电子背散射衍射EBSD 电子背散射衍射&#xff08;EBSD&#xff09;是一种材料表征技术&#xff0c;通过使用电子束对材料进行照射&#xff0c;并测量背向散射的电子的衍射模式&#xff0c;可以提供关于材料微观结构的详细信息。这项技术结合了…