前端实现坐标系转换

一、地理坐标系和投影坐标系

地理坐标系和投影坐标系是地理信息系统(GIS)中常见的两种坐标系统,它们用于描述和定位地球表面上的点和区域,但在实现方式和应用场景上有所不同。

1. 地理坐标系(Geographic Coordinate System,GCS)

地理坐标系使用经度(Longitude)和纬度(Latitude)来定义地球表面上的位置。这些坐标是以角度为单位表示的,通常使用度(°)、分(′)、秒(″)或十进制度(decimal degrees)来表示。地理坐标系通常基于地球的几何形状,如椭球体或椭球体修正模型(如WGS84),以及基准点(如赤道或某个标准子午线)。

特点:

  • 使用角度来表示位置,经度和纬度分别表示东西方向和南北方向。
  • 地理坐标系适合全球范围内的位置描述和数据交换,如GPS定位等。

常见的地理坐标系包括:

  • WGS84(World Geodetic System 1984)是一种广泛使用的地理坐标系统,用于描述全球范围内地球表面上的位置。全球定位系统使用的地理坐标系。
  • CGCS2000(China Geodetic Coordinate System 2000)代码(EPSG:4490):是中国采用的地理坐标系。它基于国际标准WGS84(EPSG:4326),但做了一些本地化的适应和调整,以更好地反映中国地区的地理信息。
  • GCJ-02 (火星坐标系):由中国国家测绘地理信息局(National Administration of Surveying, Mapping and Geoinformation)制定的加密坐标系统,用于限制在中国国内的地图和位置服务的精确度。需要注意的是,GCJ-02是一种加密坐标系,因此其坐标不能直接用于国际标准WGS84坐标系的数据交换。
  • BD-09 (百度坐标系):百度地图使用的坐标系,基于GCJ-02坐标系。BD-09坐标系通常用于百度地图API和相关应用中,但在WebGIS开发中,如果需要与其他数据源或标准坐标系交互,可能需要进行坐标转换。

在中国的WebGIS开发中,通常会根据具体需求和数据来源选择合适的地理坐标系。WGS84和CGCS2000是最常见和广泛使用的两种地理坐标系,特别是在涉及到全球位置信息和国内地图数据的处理时。

2. 投影坐标系(Projected Coordinate System,PCS)

投影坐标系是将地球的三维表面投影到平面上的方法。由于地球是一个三维椭球体,为了在平面地图上更准确地表示地球表面的形状和特征,需要使用投影坐标系进行投影转换。投影坐标系使用投影方法(如墨卡托投影、克吕格投影等)将地理坐标转换为平面坐标,通常以米或英尺为单位。

特点:

  • 使用平面坐标来表示位置,通常以米或英尺为单位。
  • 投影坐标系适合于局部地图的制图、测量和空间分析。

常见的投影坐标系包括:

  • 墨卡托投影(EPSG:3857):用于Web地图的常见投影。
  • UTM坐标系(通用横轴墨卡托投影):全球划分为60个纵向带,用于局部地区的精确制图和测量。
  • 高斯-克吕格投影:在某些国家和地区中使用的平面投影,如EPSG:27700(British National Grid)。

3. 总结

        地理坐标系和投影坐标系在GIS中扮演着不同的角色:地理坐标系提供了全球范围内位置的标准描述,而投影坐标系则将地球表面的曲面投影到平面上,以便于地图制图和分析。选择合适的坐标系取决于数据的来源、使用的地图投影以及需要进行的空间分析和测量任务。

二、开发中常见的坐标系及其代码

EPSG(http://www.epsg.org):European Petroleum Survey Group,欧洲石油调查组织(你没看错),该组织负责专门维护地球上所有的测量坐标系统(找石油),并且给每组坐标系统都赋予了一个编号和一组描述(WKT),比如大家常用的WGS84坐标系编号就是EPSG:4326,再比如互联网地图(谷歌、高德等)常用的伪墨卡托投影编号就是EPSG:3857。(关于常用的坐标系统以后的文章会单讲)可以理解成EPSG给大家维护了无数把尺子,并且给每把尺子搞了个编号,还标明了这把尺子适合什么条件下用。

坐标系代码坐标系备注
EPSG:4326WGS84地理坐标系(国际标准)
EPSG:4490CGCS2000地理坐标系(中国标准)
EPSG:4527CGCS2000 / 3-degree Gauss-Kruger zone 27地理坐标系
EPSG:4548ETRS89地理坐标系
EPSG:3857Web墨卡托投影(Web Mercator)投影坐标系

可以在:https://epsg.io/  网站(需要加速器可以)查看EPSG有关的坐标系信息,坐标系使用的范围,以及使用proj4转换坐标系的参数

三、常用地图框架默认使用的坐标系

作为专业的GISer来说,我们开发中最常用的都是国外的地图框架,一般都采用WGS84标准。 

前端框架坐标系代码
MapboxWGS84坐标系EPSG:4326
LeafletWGS84坐标系EPSG:4326
CesiumWGS84坐标系EPSG:4326
高德地图火星坐标系(GCJ-02坐标系)无EPSG代码
百度地图

四、Vue前端实现坐标系转换

当前开发常遇到的两个问题: 

  • 在我国的坐标系标准为CGCS2000(EPSG:4490)坐标系,在开发任务中使用的地图框架几乎都是国外的,而国外的标准坐标系为EPSG:4326,因此CGCS2000和WGS84坐标系之间的转换是首要的工作。
  • 移动端开发通常使用高德地图的API,移动端火星坐标系(GCJ-02)和WGS84坐标系之间的转换。

前端常用的坐标系转换工具proj4 npm地址:https://www.npmjs.com/package/proj4

安装proj4

npm i proj4

 在代码中使用proj4

参考文章:

https://www.cnblogs.com/haolb123/p/16553010.html

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

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

相关文章

【CUDA】 扫描 Scan

Scan Scan操作是许多应用程序中常见的操作。扫描操作采用一个二元运算符⊕和一个输入数组并计算输出数组如下: [x0,(x0⊕x1),…,( x0⊕x1⊕…..⊕xn-1)] 分层扫描和多种Scan算法介绍 Kogge-Stones Algorithm Kogge-Stones Algorithm最初是为设计快速加法电路而发…

JavaEE——计算机工作原理

冯诺依曼体系(VonNeumannArchitecture) 现代计算机,大多遵守冯诺依曼体系结构 CPU中央处理器:进行算术运算与逻辑判断 存储器:分为外存和内存,用于存储数据(使用二进制存储) 输入…

第一天(点亮led灯+led灯闪烁)——Arduino uno R3 学习之旅

​ 常识: 一般智能手机的额定工作电流大约为200mA Arduino Uno板上I/0(输入/输出)引脚最大输出电流为40 mA Uno板控制器总的输出电流为200 mA 点亮LED灯 发光二极管介绍 发光二极管(Light Emitting Diode,简称LED)是一种能够将电能转化为光能的固态的半导体器件…

实现模型贴图的移动缩放旋转

技术:threejscanvasfabric 效果图: 原理:threejs中没有局部贴图的效果,只能通过map 的方式贴到模型上,所以说换一种方式来实现,通过canvasfabric来实现图片的移动缩放旋转,然后将整个画布以map…

【STM32】在标准库中使用DMA

1.MDA简介 DMA全称Direct Memory Access,直接存储区访问。 DMA传输将数据从一个地址空间复制到另一个地址空间。当CPU初始化这个传输动作,传输动作本身是由DMA控制器来实现和完成的。DMA传输方式无需CPU直接控制传输,也没有中断处理方式那样保留现场和…

【踩坑】探究PyTorch中创建稀疏矩阵的内存占用过大的问题

转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~ 目录 问题复现 原因分析 解决方案 碎碎念 问题复现 创建一个COO格式的稀疏矩阵,根据计算公式,他应该只占用约5120MB的内存&…

go zero入门

一、goctl安装 goctl 是 go-zero 的内置脚手架,可以一键生成代码、文档、部署 k8s yaml、dockerfile 等。 # Go 1.16 及以后版本 go install github.com/zeromicro/go-zero/tools/goctllatest检查是否安装成功 $ goctl -v goctl version 1.6.6 darwin/amd64vscod…

通过SDK使用百度智能云的图像生成模型SDXL

登录进入百度智能云控制台,在模型广场按照图像生成类别进行筛选,可以找到Stable-Diffusion-XL模型。点击Stable-Diffusion-XL模型的API文档后在弹出的新页面下拉可以找到SDK调用的说明。 import qianfandef sdxl(file: str, prompt: str, steps: int 2…

C语言_练习题

求最小公倍数 思路:假设两个数,5和7,那么最小至少也要7吧,所以先假定最小公倍数是两个数之间较大的,然后看7能不能同时整除5和7,不能就加1继续除 int GetLCM(int _num1, int _num2) {int max _num1>_n…

堆叠的作用

一、为什么要堆叠 传统的园区网络采用设备和链路冗余来保证高可靠性,但其链路利用率低、网络维护成本高,堆叠技术将多台交换机虚拟成一台交换机,达到简化网络部署和降低网络维护工作量的目的。 二、堆叠优势 1、提高可靠性 堆叠系统多台成…

25款404网页源码(下)

25款404网页源码(下) 13部分源码 14部分源码 15部分源码 16部分源码 17部分源码 18部分源码 19部分源码 20部分源码 21部分源码 22部分源码 23部分源码 24部分源码 25部分源码 领取完整源码下期更新 13 部分源码 .rail {position: absolute;width: 100%…

Node.js-path 模块

path 模块 path 模块提供了 操作路径 的功能,如下是几个较为常用的几个 API: 代码实例: const path require(path);//获取路径分隔符 console.log(path.sep);//拼接绝对路径 console.log(path.resolve(__dirname, test));//解析路径 let pa…

Docker搭建MySQL双主复制详细教程

在此之前需要提前安装好Docker和 Docker Compose 。 一、创建目录 首先创建一个本地数据挂载目录。 mkdir -p master1-data master2-data二、编写docker-compose.yml version: 3.7services:mysql-master1:image: mysql:5.7.36container_name: mysql-master1environment:MYSQL_…

mac|idea导入通义灵码插件

官方教程:通义灵码下载安装指南_智能编码助手_AI编程_云效(Apsara Devops)-阿里云帮助中心 下载插件: ⇩ TONGYI Lingma - JetBrains 结果如下: 选择apply、ok,会出现弹窗,点击登录 可以实现:生成单元测…

FRP反向隧道代理打CFS三层

目录 攻击机 查看服务端frps.ini配置文件 开启服务端frps 蚁剑打目标机 上传客户端frp到目标机 ​frpc.ini文件配置成 客户端打开代理frpc vps显示成功客户端frpc打开 访问成功192.168.22.22的第二层内网主机 省去前面漏洞利用的rce过程,直接蚁剑开搞隧道…

如何使用VScode创建和上传Arduino项目

Visual Studio Code (VS Code) 是一种非常流行的通用集成开发环境 (IDE)。IDE 是一种将文本编辑器、编程界面、调试视图和项目管理集成在一个地方的软件。这个开源项目由微软领导,可以在所有操作系统上运行。使 VS Cod…

深度解析Ubuntu版本升级:LTS版本升级指南

深度解析Ubuntu版本升级:Ubuntu版本生命周期及LTS版本升级指南 Ubuntu是全球最受欢迎的Linux发行版之一,其版本升级与维护策略直接影响了无数用户的开发和生产环境。Canonical公司为Ubuntu制定了明确的生命周期和发布节奏,使得社区、企业和开…

宿舍报修小程序的设计

管理员账户功能包括:系统首页,个人中心,管理员管理,基础数据管理,论坛管理,故障上报管理,新闻信息管理,维修人员管理 微信端账号功能包括:系统首页,新闻信息…

C++ 视觉开发 六.特征值匹配

以图片识别匹配的案例来分析特征值检测与匹配方法。 目录 一.感知哈希算法(Perceptual Hash Algorithm) 二.特征值检测步骤 1.减小尺寸 2.简化色彩 3.计算像素点均值 4.构造感知哈希位信息 5.构造一维感知哈希值 三.实现程序 1.感知哈希值计算函数 2.计算距离函数 3…

CTF入门知识点

CTF知识点 md5函数 <?php$a 123;echo md5($a,true); ?> 括号中true显示输出二进制 替换成false显示输出十六进制绕过 ffifdyop 这个字符串被 md5 哈希了之后会变成 276f722736c95d99e921722cf9ed621c&#xff0c;这个字符串前几位刚好是 or 6 而 Mysql 刚好又会把 …