vue3+mapboxgl鼠标浮动显示cgcs2000

一、需求

鼠标在地图中浮动展示地图的经纬度,cgcs2000 xy 还有显示带号

二、实现效果

展示经度,纬度,x值,y值显示的是带号和y值

三、思路

3.1、mapbox获取经纬度方法

初始化地图后.on方法中有个mousemove方法

mapboxUtil._mapInstance.on('mousemove', mapboxUtil.mouseMove);
mouseMove(e) {console.log(e,"eeeeeeee")let obj = e.lngLatlet WebMercator = wgs84ToCgcs2000(e.lngLat)obj["cgcsY"] = WebMercator[0]obj["cgcsX"] = WebMercator[1]obj["signed"] = WebMercator[2]store.commit("setMouseMove", obj);},

可以看出方法的参数中有经纬度,我们可以通过经纬度获取他的cgcs2000 xy 

 3.2、经纬度 和cgcs2000 互相转换

我这边用的是proj4,添加依赖

npm install proj4 --s

引用proj4 

import proj4 from "proj4";

  wgs84的参数= "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs  "

cgcs2000的参数= "+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"

wgs84ToCgcs2000(lngLat) {let wgs84 = "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs  "let cgcs2000 ="+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"let obj = proj4(wgs84, cgcs2000, [lngLat.lng, lngLat.lat]);return obj;
}

 3.3、计算带号

 

由此可以看出三度带不在中央子午线上所以需要先减1.5度 

判断带号中国陆地范围内带号小于23的肯定是6度带,大于等于24的肯定是3度带。

如果计算的不多请多指教,我会及时改正

3度带带号计算公式:Math.floor((经度 - 1.5) / 3) + 1

let dh = Math.floor((lngLat.lng - 1.5) / 3) + 1

6度带带号计算公式:Math.floor(经度/ 3) + 1

let dh = Math.floor(lngLat.lng / 3) + 1

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023年31个最适合博主的WordPress主题

自从我最初开始写博客以来,在近十年的经验中,我已经出于各种目的在多个博客中测试和使用了数十种不同的 WordPress 主题。 以下是我挑选的绝对最佳WordPress主题,专门针对不想编写一行代码的博主。 无论您是想创建个人理财博客、撰写时尚、…

[RocketMQ] Broker asyncPutMessage处理消息以及存储的高性能设计措施 (十一)

asyncPutMessage方法真正的用来存储消息。 文章目录 1.asyncPutMessage存储普通消息1.1 checkStoreStatus检查存储状态1.2 checkMessage检查消息 2.CommitLog#asyncPutMessage异步存储消息2.1 处理延迟消息2.2 获取最新mappedFile2.2.1 tryCreateMappedFile创建新的MappedFile2…

【LeetCode热题100】打卡第33天:环形链表LRU缓存

文章目录 【LeetCode热题100】打卡第33天:环形链表&LRU缓存⛅前言 环形链表🔒题目🔑题解 LRU缓存🔒题目🔑题解 【LeetCode热题100】打卡第33天:环形链表&LRU缓存 ⛅前言 大家好,我是知…

Vue 组件化开发

文章目录 前言组件化开发父子组件相互传数据父传子:自定义属性子传父:自定义事件父子组件互传案例 插槽 slot多个插槽 总结组件化开发总结Vue组件的基本组成子组件使用的三个步骤父子组件相互传递数据 前言 提示:这里可以添加本文要记录的大…

Android-jar包方式连接本地sqlite并操作返回数据

背景: 数据库的创建及字段都是后端人员维护,Android端只是映射相关数据库到本地来操作。为了统一管理操作方式方法,所以提出,后端打jar包的方式封装对Android端数据库sqllite的连接、操作。 说明: 因为之前是后端打jar包,JDBC连接的驱动及方法有差异,导致连接Android…

VMware将虚拟机网络设置为NAT模式

虚拟机有vmware和desktop,本人一直使用的是vmware。安装好vmware并激活后,创建完虚拟机。(需要vmware和激活码的可留言) 进入虚拟机设置,网络适配器选择NAT模式 在虚拟机工具栏->菜单栏点击编辑,选择“虚拟网络编辑器”。 选择…

[C语言][小游戏][猜拳游戏]

C语言的奇妙旅行 一、模块化编程二、游戏基本设计2.1 确定计算机要出的手势2.2 显示“石头剪刀布”,然后玩家输入自己要出的手势2.3进行输赢判断,显示结果2.4询问是否继续2.5 基本程序 三、游戏实现的过程3.1将玩家的手势和电脑的手势显示出来 三、总代码…

metersphere主从节点部署

metersphere主从节点关系 环境搭建 docker 环境准备 检查内存是否大于8G free -m 安装docker服务 安装docker,使用yum -y install docker; 启动docker,使用systemctl start docker; 设置开机启动,使用systemctl en…

基于SpringBoot的网上订餐系统【附ppt和开题|万字文档(LW)和搭建文档】

主要功能 前台登录:前台登录: ①首页:菜品信息推荐、菜品信息展示、查看更多 ②菜品信息:菜品分类、菜品名称查询、食材查询、菜品详情、下单提交 ③个人中心:可以查看自己的信息、我的订单、我的地址 后台登录&#…

哪款3D虚拟人物建模软件好用?

3D虚拟人物建模软件一直以来受到许多人的关注和追捧。现在,随着智能手机的普及,3D虚拟人物手机建模软件也开始走进大家的视野。那么,市面上3D虚拟人物建模软件这么多,究竟哪款3D虚拟人物建模软件是好用的呢? 首先&…

Vision Transformer推理中线性-角度注意转换压缩自注意

文章目录 Castling-ViT: Compressing Self-Attention via Switching Towards Linear-Angular Attention at Vision Transformer Inference摘要本文方法实验结果 Castling-ViT: Compressing Self-Attention via Switching Towards Linear-Angular Attention at Vision Transform…

Blender--原理化体积

“原理化体积 着色器将所有体积着色组件组合到一个易于使用的节点中。该节点含有散射,吸收和黑体辐射属性,因此,可以仅仅使用该着色器节点对烟雾和火焰等进行渲染。” 官方文档介绍:原理化体积 — Blender Manual 可以用于实现丁…