当前位置: 首页 > news >正文

openLayers实战(八):坐标系及其转换

 

坐标系介绍

EPSG: 3857 --web地图,基于球体的、web墨卡托投影(伪墨卡托投影Pseudo-Mercator)的投影坐标系,范围为纬度85度以下,由于google地图最先使用而成为事实标准。至今,大多互联网地图都使用EPSG3857,主要是因为该投影是等角投影,适合地图定向及导航,但是纬度越高,面积变形越大。

EPSG: 4326 --全球通用,基于WGS84椭球的经纬度坐标系,大地坐标系,在 EPSG: 4326 坐标系中,经度表示位置的横向偏移量,范围为 -180 到 180,单位是度;纬度表示位置的纵向偏移量,范围为 -90 到 90,单位也是度。

      // 初始化地图配置this.map = new Map({target: this.mapDom, // 地图容器view: new View({center: [121.70185, 31.298777], // 地图中心点zoom: 15,minZoom: 14,maxZoom: 18,projection: "EPSG:4326", // 椭球extent: this.extent, // 限定范围}),

地图上的点是何坐标系

以 EPSG:4326 椭球坐标系为例

1.监听地图的事件得到的点位信息

如:

this.map.on("click", function()) // 点击
this.map.on("pointermove", function()) // 鼠标指针移动

得到的都是EPSG: 4326坐标系下的信息。

2.交互式绘制 interaction 的 draw

绘制出的圆形并不会考虑当前地图的椭球坐标系。这是因为 draw 方法默认使用的是平面坐标系,而不是地球的椭球坐标系。

3.圆形、多边形的坐标系转换

import * as turf from '@turf/turf';// 假设你已经通过 'draw' 方法绘制了一个圆形对象 'circleFeature'// 获取绘制的圆形对象的几何信息
var geometry = circleFeature.getGeometry();// 将几何信息转换为椭球坐标系
var coords = geometry.getCoordinates();
var circleOnEllipse = turf.toWgs84(coords);// 创建一个新的圆形对象,使用椭球坐标系
var circleFeatureOnEllipse = new Feature({geometry: new GeoJSON().readGeometry(circleOnEllipse)
});// 将新的圆形对象添加到矢量源中
vectorSource.addFeature(circleFeatureOnEllipse);

 4.单点的坐标系转换

import * as turf from '@turf/turf';const x1 = 123; // 假设的x坐标
const y1 = 45; // 假设的y坐标
const sourceCRS = 'EPSG:3857'; // 源坐标系(墨卡托投影坐标系)
const targetCRS = 'EPSG:4326'; // 目标坐标系(经纬度坐标系,WGS84)// 创建一个点要素
const point = turf.point([x1, y1]);// 进行坐标转换
const transformedPoint = turf.transformRotateScaleTranslate(point,0, // 旋转角度1, // 缩放比例[0, 0], // 平移向量sourceCRS,targetCRS
);// 提取转换后的坐标
const [longitude, latitude] = turf.getCoord(transformedPoint);console.log('经度:', longitude);
console.log('纬度:', latitude);

相关文章:

openLayers实战(八):坐标系及其转换

坐标系介绍 EPSG: 3857 --web地图,基于球体的、web墨卡托投影(伪墨卡托投影Pseudo-Mercator)的投影坐标系,范围为纬度85度以下,由于google地图最先使用而成为事实标准。至今,大多互联网地图都使用EPSG3857&…...

DAY06_SpringBoot—简介基础配置yaml多环境开发配置整合第三方技术

目录 一 SpringBoot简介1. 入门案例问题导入1.1 入门案例开发步骤1.2 基于SpringBoot官网创建项目1.3 SpringBoot项目快速启动 2. SpringBoot概述问题导入2.1 起步依赖2.2 辅助功能 二 基础配置1. 配置文件格式问题导入1.1 修改服务器端口1.2 自动提示功能消失解决方案1.3 Spri…...

无涯教程-Perl - setpwent函数

描述 此功能将枚举设置(或重置)到密码条目集的开头。应该在第一次调用getpwent之前调用此函数。 语法 以下是此函数的简单语法- setpwent返回值 此函数不返回任何值。 例 以下是显示其基本用法的示例代码- #!/usr/bin/perlwhile(($name, $passwd, $uid, $gid, $quota, …...

代码随想录-数组篇

2-二分查找 方法一&#xff1a; 左闭右闭&#xff0c;[left, right] class Solution { public:int search(vector<int>& nums, int target) {//[left, right]int left 0;int right nums.size() - 1 ;while(left < right){int middle left ((right - left)…...

vue3+element-plus表格默认排序default-sort失效问题

场景 在使用动态数据渲染的场景&#xff0c;el-table设置默认属性default-sort失效。 原因 el-table的default-sort属性是针对静态数据的&#xff0c;如果是动态数据&#xff0c;default-sort则无法监听到。 案例&#xff1a;静态数据 <template><el-table:data&…...

CH32V203 单片机 I2C 使用

CH32V203系列是基于32位RISC-V内核设计的工业级增强型低功耗通用微控制器&#xff0c;高性能&#xff0c;最高支持144MHz系统主频&#xff0c;低功耗&#xff0c;运行功耗低至45uA/MHz。CH32V203集成双路USB接口&#xff0c;支持USB Host主机及USB Device设备功能&#xff0c;具…...

链表OJ题

今天讲一些关于链表的Oj题&#xff0c;相信你看完对链表又提升一个档次。 题目一 思路一 遍历一遍链表是Val值得时候free这个&#xff0c;然后我们往后走&#xff0c;一直走到末尾空指针得时候&#xff0c;新链表就是我们得答案&#xff0c;那我们用代码来表示一下吧。 struct…...

Llama 2免费托管及API提供

Llama 2 是 Meta 最新的文本生成模型&#xff0c;目前其性能优于所有开源替代方案。 推荐&#xff1a;用 NSDT编辑器 快速搭建可编程3D场景 1、强大的Llama 2 它击败了 Falcon-40B&#xff08;之前最好的开源基础模型&#xff09;&#xff0c;与 GPT-3.5 相当&#xff0c;仅低…...

回到未来:使用马尔可夫转移矩阵分析时间序列数据

一、说明 在本文中&#xff0c;我们将研究使用马尔可夫转移矩阵重构时间序列数据如何产生有趣的描述性见解以及用于预测、回溯和收敛分析的优雅方法。在时间上来回走动——就像科幻经典《回到未来》中 Doc 改装的 DeLorean 时间机器一样。 注意&#xff1a;以下各节中的所有方程…...

vue element 多图片组合预览

定义组件&#xff1a;preview-image <template><div><div class"imgbox"><divclass"preview-img":class"boxClass"v-if"Imageslist 3 ||Imageslist 5 ||Imageslist 7 ||Imageslist 8 ||Imageslist > 9"&…...

Vue2集成Echarts实现可视化图表

一、依赖配置 1、引入echarts相关依赖 也可以卸载原有的&#xff0c;重新安装 卸载&#xff1a;npm uninstall echarts --save 安装&#xff1a;npm install echarts4.8.0 --save 引入水球图形依赖 npm install echarts-liquidfill2.0.2 --save 水球图可参考文档&#xff1…...

3 Python的数据类型

概述 在上一节&#xff0c;我们介绍了Python的基础语法&#xff0c;包括&#xff1a;编码格式、标识符、关键字、注释、多行、空行、缩进、引号、输入输出、import、运算符、条件控制、循环等内容。Python是一种动态类型的编程语言&#xff0c;这意味着当你创建一个变量时&…...

new String()到底创建了几个对象

题目&#xff1a; new String&#xff08;"abc"&#xff09;会创建几个对象&#xff1f; 看字节码&#xff0c;就知道是两个。...

第五十五天

CSS3 ●背景 CSS3 中包含几个新的背景属性&#xff0c;提供更大背景元素控制&#xff1a; •background-image&#xff1a;添加背景图片。不同的背景图像和图像用逗号隔开&#xff0c;所有的图片中显示在最顶端的为第一张。 •background-size&#xff1a;指定背景图像的大…...

【推荐】深入浅出benan的生命周期

目录 1.spring 管理JavaBean的过程&#xff08;生命周期&#xff09; 2.spring的JavaBean管理中单例模式及原型&#xff08;多例&#xff09;模式 2.1 . 默认为单例&#xff0c;但是可以配置多例 2.2.举例论证 2.2.1 默认单例 2.2.2 设置多例 2.2.3单例与多例的初始化的时…...

mysql使用redis+canal实现缓存一致性

目录 一、开启binlog日志 1.首先查看是否开启了binlog 2、开启binlog日志&#xff0c;并重启mysql服务 二、授权 canal 链接 MySQL 账号具有作为 MySQL slave 的权限 三、下载配置canal 1、下载 canal, 访问 release 页面 , 选择需要的包下载, 如以 1.0.17 版本为例 2、 …...

9.利用matlab完成 泰勒级数展开 和 符号表达式傅里叶变换和反变换 (matlab程序)

1.简述 matlab之傅里叶变换和逆变换 首先生成一个方波&#xff08;或者其他组合波形&#xff09;&#xff0c;然后对这个信号做傅里叶变换&#xff0c;拆解到频域&#xff0c;可以看到这个信号是由哪些频率的信号叠加而来。 然后把频域信号&#xff0c;用傅里叶逆变换恢复到时…...

文字点选验证码识别(上)-YOLO位置识别

声明 本文以教学为基准、本文提供的可操作性不得用于任何商业用途和违法违规场景。 本人对任何原因在使用本人中提供的代码和策略时可能对用户自己或他人造成的任何形式的损失和伤害不承担责任。 如有侵权,请联系我进行删除。 文章中没有代码,只有过程思路,请大家谨慎订阅。…...

ssh远程连接慢解决方法

一、关闭SERVER上的GSS认证 将GSSAPIAuthentication改为no ,如果在配置文件中&#xff0c;以下值是被注释的就拿掉注释&#xff0c;因为默认开关就是yes # vi /etc/ssh/sshd_config GSSAPIAuthentication no二、关闭SERVER上DNS反向解析 在linux中&#xff0c;默认就是开启了S…...

10.4K Star!程序员为程序员针对性优化的开源免费笔记

平时我一直用Notion来记录内容为主&#xff0c;但也一直关注着其他开源产品。上周正好看到一款非常受欢迎的开源免费笔记&#xff0c;今天就推荐给大家&#xff1a;VNote。 VNote一个由程序员为程序员打造的开源笔记应用&#xff0c;基于Qt开发&#xff0c;专注于使用 Markdown…...

DownKyi终极指南:简单快速获取B站8K超高清视频的完整解决方案

DownKyi终极指南&#xff1a;简单快速获取B站8K超高清视频的完整解决方案 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等…...

别再只懂BDF了!手把手教你理解PCIe ARI如何将Function数量扩展到256个

突破PCIe传统限制&#xff1a;深入解析ARI如何实现256个功能扩展 在数据中心和云计算架构快速发展的今天&#xff0c;虚拟化技术对硬件资源分配提出了更高要求。传统PCIe设备的8个功能限制已成为制约虚拟功能扩展的瓶颈&#xff0c;特别是在SR-IOV&#xff08;单根I/O虚拟化&am…...

构建可靠AI编码代理:OpenClaw-Build工作流详解与实战

1. 项目概述&#xff1a;一个能“闭环”的AI编码代理工作流如果你用过市面上那些号称能自动编程的AI代理&#xff0c;大概率经历过这样的挫败感&#xff1a;你满怀期待地丢给它一个需求&#xff0c;它吭哧吭哧干了两三个任务&#xff0c;然后要么开始“神游”&#xff0c;写出来…...

告别卡顿!在Qt/C++中手动绑定线程到指定CPU核心(附性能对比测试)

告别卡顿&#xff01;在Qt/C中手动绑定线程到指定CPU核心&#xff08;附性能对比测试&#xff09; 在开发高性能桌面应用时&#xff0c;卡顿问题往往让开发者头疼不已。无论是音视频处理软件还是大型游戏客户端&#xff0c;流畅的用户体验都离不开高效的线程调度。现代操作系统…...

手把手教你用FPGA+CORDIC算法实现任意角度图像旋转(告别浮点运算)

FPGACORDIC算法实现高精度图像旋转的硬件优化实践 在数字图像处理领域&#xff0c;实时图像旋转是一项基础而关键的技术需求。传统基于浮点运算的旋转方案虽然直观&#xff0c;但在FPGA等硬件平台上往往面临资源占用高、时序难以满足的挑战。本文将深入探讨如何利用CORDIC&…...

【权威验证版】Perplexity检索JAMA文章的7个致命误区:哈佛医学院信息学团队实测复现报告

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Perplexity检索JAMA文章的权威验证背景与复现意义 临床证据检索的可信度挑战 在循证医学实践中&#xff0c;JAMA&#xff08;Journal of the American Medical Association&#xff09;作为顶级同行评…...

Pearcleaner:彻底清理Mac应用的终极免费开源解决方案

Pearcleaner&#xff1a;彻底清理Mac应用的终极免费开源解决方案 【免费下载链接】Pearcleaner A free, source-available and fair-code licensed mac app cleaner 项目地址: https://gitcode.com/gh_mirrors/pe/Pearcleaner 在Mac系统中卸载应用程序后&#xff0c;你是…...

第八部分-企业级实践——38. 容器化改造

38. 容器化改造 1. 容器化改造概述 容器化改造是将传统应用迁移到容器环境的过程&#xff0c;涉及应用架构调整、Dockerfile 编写、配置管理、数据持久化等多个方面。 ┌──────────────────────────────────────────────────…...

【译】《心悟内核:先懂设计,再读代码》—1、内核并非进程,而是整个系统本身

作者&#xff1a;Moon Hee Lee 原文&#xff1a; The Kernel in the Mind 心悟内核:先懂设计&#xff0c;再读代码——内核并非进程&#xff0c;而是整个系统本身Linux 内核既不是普通进程、守护进程&#xff0c;也不是应用程序。它是一套常驻内存的高特权运行环境&#xff0c…...

FreeRTOS日志任务设计----LogTask 日志任务

&#x1f3ac; 渡水无言&#xff1a;个人主页渡水无言 ❄专栏传送门&#xff1a; 《linux专栏》《嵌入式linux驱动开发》《linux系统移植专栏》 ❄专栏传送门&#xff1a; 《freertos专栏》 《STM32 HAL库专栏》《linux裸机开发专栏》 ❄专栏传送门&#xff1a;《产品测评专栏》…...