前端实现坐标系转换

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

地理坐标系和投影坐标系是地理信息系统(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.mzph.cn/pingmian/41274.shtml

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

相关文章

【CentOS 7.6】Linux版本 portainer本地镜像导入docker安装配置教程,不需要魔法拉取!(找不着镜像的来看我)

吐槽 我本来根本不想写这篇博客,但我很不解也有点生气,CSDN这么大没有人把现在需要魔法才能拉取的镜像放上来。 你们都不放,根本不方便。我来上传资源。 portainer-ce-latest.tar Linux/amd64 镜像下载地址: 链接:h…

Chapter11让画面动起来——Shader入门精要学习笔记

Chapter11让画面动起来 一、Unity Shader中的内置变量(时间篇)二、纹理动画1.序列帧动画2.滚动背景 三、顶点动画1.流动的河流2.广告牌3.注意事项①批处理问题②阴影投射问题 一、Unity Shader中的内置变量(时间篇) Unity Shader…

东北财税之星:董女士的家乡创业记

乐财业智慧财税赋能平台,是一个帮助财税机构专业提升、业务增长,让财税生意更好做的综合赋能平台。聚焦财税公司业绩增长,预计2027年帮助2000家财税合伙人利润增长300%,致力打造轻量化、批量化、智能化的”业财税“一体财税服务生…

ARCGIS PRO 要素标注

一、普通模式 1、标注:名称和面积(无分数线) 语言:Arcade $feature.QLR \nRound($feature.Shape_Area,2) 语言:vbscript [QLR] & " " & Round([Shape_Area],2) 2、标注:名称…

ChatGPT如何提升论文写作(附指令集合)

先讲前提: ChatGPT无论是3.5还是4.0都存在非常严重的幻觉问题,目前ChatGPT无法替代搜索引擎。 如果你希望得到更加优质的体验,请用GPT-4.0,幻觉问题上比3.5大幅降低 ChatGPT中文版,一站式AI创作平台​aibox365.com …

Python | Leetcode Python题解之第203题移除链表元素

题目: 题解: # Definition for singly-linked list. # class ListNode: # def __init__(self, val0, nextNone): # self.val val # self.next next class Solution:def removeElements(self, head: ListNode, val: int) -> Li…

因版本冲突导致logback的debug日志不打印

因框架调整,降级了logback的版本号,由1.3.12降级为1.2.11(因框架限制,只能采用1.2版本),降级后发现debug日志无法打印出来,logback.xml配置文件不生效。后排查发现是与slf4j的版本兼容问题 依赖…

一种频偏估计与补偿方法

一种简易的频偏估计补偿方法,使用QAM等信号。估计精度受FFT长度限制,可以作为粗频偏估计。 Nfft 1024; % FFT长度 N 10*Nfft; % 仿真符号数 M 16; % 调制QAM16 freq 1e…

如何选择视频号矩阵系统源码:关键要素与决策指南

在短视频和直播内容迅速崛起的今天,视频号矩阵系统源码成为了企业和个人创作者高效管理视频内容的重要工具。选择合适的视频号矩阵系统源码,可以极大提升内容发布的效率和质量,同时优化用户体验。本文将提供一套选择视频号矩阵系统源码的指南…

MYSQL篇二:数据库的操作

文章目录 1. 创建数据库1.1 查看数据库列表1.2 创建与删除数据库 2. 数据的编码问题3. 字符集和校验规则3.1 查看系统默认字符集以及校验规则3.2 查看数据库支持的字符集3.3 查看数据库支持的字符集校验规则3.4 校验规则对数据库的影响 4. 操纵数据库4.1 查看当前是哪一个数据库…

小程序渗透测试的两种方法——burpsuite、yakit

首先呢主要是配置proxifier,找到小程序的流量,然后使用burpsuite或者yakit去抓包。 一、使用burpsuiteproxifier的抓包测试 1、先配置proxifier,开启http流量转发 勾选确定 2、配置burp对应代理端口,选择profile,点…

《梦醒蝶飞:释放Excel函数与公式的力量》8.7 STDEV函数

8.7 STDEV函数 STDEV函数是Excel中用于计算一组数值的标准偏差的函数。标准偏差是统计学中的一个重要指标,用于衡量数据集中各数值偏离平均值的程度。它反映了数据的离散程度或波动大小。 8.7.1 函数简介 STDEV函数用于返回样本数据的标准偏差,标准偏…

软件测试面试1000问(含答案)

1、自动化代码中,用到了哪些设计模式? 单例设计模式工厂模式PO设计模式数据驱动模式面向接口编程设计模式 2、什么是断言( Assert) ? 断言Assert用于在代码中验证实际结果是不是符合预期结果,如果测试用例执行失败会抛出异常并提供断言日志 3、什么是web自动化…

地图下载工具

1 概述 做仿真的,一般都要用到地图。各大地图厂商,都提供了地图测试接口。只不过,这些接口有限制,用多了就容易被封IP。于是我写了一个瓦片地图下载工具,把地图下载到本地,就可以愉快的玩耍了。 2 操作 …

文字识别技术升级:Airtest与PaddleOCR模型的协作小技巧

一、前言 在进行自动化测试的过程中,ocr文字识别一直是大家最想要实现以及最需要的能力,今天就来介绍一个由百度飞浆提供的一个免费的ocr识别库——PaddleOCR,以及探讨一下,PaddleOCR与Airtest协作能擦出怎么样的火花~ 二、Padd…

打包 最新血液净化器制作技术和资料

网盘 https://pan.baidu.com/s/1fm3LF20dCvy4iSMQklHpug?pwd4je2 便携可穿戴可血液净化用器件及其制备方法和应用.pdf 基于贻贝仿生化学的血液净化材料及其制备方法.pdf 膜分离式一体化血液净化系统.pdf 血液净化器固定夹.pdf 血液净化膜及其制备方法和应用.pdf 评估血液净化…

【手机取证】如何使用360加固助手给apk加固

文章关键词:手机取证、电子数据取证、数据恢复 一、前言 APP加固是对APP代码逻辑的一种保护。原理是将应用文件进行某种形式的转换,包括不限于隐藏,混淆,加密等操作,进一步保护软件的利益不受损坏,下面给…

生成式人工智能如何改变软件开发:助手还是取代者?

生成式人工智能如何改变软件开发:助手还是取代者? 生成式人工智能(AIGC)正在引领软件开发领域的技术变革。从代码生成、错误检测到自动化测试,AI工具在提高开发效率的同时,也引发了对开发者职业前景的讨论…

Java面试八股之MySQL的pconenct和connect有什么区别

MySQL的pconenct和connect有什么区别 在PHP中,mysql_pconnect() 和 mysql_connect() 是用来建立与MySQL数据库服务器连接的两个函数,它们的主要区别在于连接的持久性。 mysql_connect(): 这个函数每次调用都会尝试创建一个新的数据库连接。 当PHP脚本…

天猫超市卡怎么用

猫超卡是在天猫超市里面消费用的卡 但是我们现在买东西都喜欢货比三家,肯定是哪家划算在哪买,要是淘宝其他店铺或京东卖的更便宜,猫超卡自然就用不上了 这种情况的话,还不如直接把猫超卡的余额提出来,买东西也不受限…