前端实现投影坐标和地理坐标系(CGCS2000)转换

前言

地理坐标系和投影坐标系是地理信息系统(GIS)和制图学中用于描述地球表面位置的两种不同的参考系统。它们在使用方式和应用场景上有显著的区别。

1、什么是地理坐标系和投影坐标系?

1.1、地理坐标系

地理坐标系是基于地球的三维球面模型来描述位置的系统。地理坐标系通常使用经度和纬度来表示地球表面的任何一个点。常见的地理坐标系:WGS1984(World Geodetic System 1984)、CGCS2000(China Geodetic Coordinate System 2000)等。

(1)纬度(Latitude):表示一个点相对于赤道的角度,范围是从-90°(南极)到90°(北极)。

(2)经度(Longitude):表示一个点相对于本初子午线的角度,范围是从-180°到180°。

地理坐标系是以地球椭球体或球体模型为基础,适合全球范围的定位,但因为地球表面是曲面的,在较大的范围内使用时可能不够精确。

1.2、投影坐标系

投影坐标系是将地球的三维曲面(通常是椭球体)投影到二维平面上来表示位置的系统。这种转换过程称为地图投影(Map Projection)。常见的投影坐标系墨卡托投影、高斯克吕格投影。

(1)投影方法:通过将地球表面的点投影到一个平面(通常是纸张或屏幕)上,从而将地理坐标转换为平面坐标。常见的投影方法包括墨卡托投影、兰伯特投影、UTM投影等。

(2)平面坐标:在投影坐标系中,位置通常用X(东向)和Y(北向)平面坐标来表示,适用于地图制作和本地区域的测量。

理坐标系虽然对空间位置有利,但难以进行距离、方位、面积的量算,所有需要投影坐标系要计算要素的面积、长度等信息。但它们会引入不同类型的变形(例如形状、面积或距离的变形),因此通常只在特定区域使用。

2、投影坐标系中投影带计算方法

地理坐标系和投影坐标系是相对应的,常见的对应关系

地理坐标系投影坐标系
WGS84墨卡托投影
CGCS200高斯克吕格投影

在进行投影坐标系转换时不同的经度位置的坐标转换参数并不一致,需要根据经度计算具体分带数

(WGS1984-UTM-ZONE-46N)(CGCS2000-3-Degree-GK-CM-105E)

我国基本比例尺地形图多采用高斯-克吕格投影(GK),为减少投影变形,高斯-克吕格投影分为3度或6度带投影。

计算公式:带号=(经度整数位/6)的整数部分+31

方式3度带计算方式6度带计算方式

计算方式

带号=(经度+1.5°)/3取整

带号=(经度+6°)/6取整

适用范围

1:1万比例尺的地形图按3°分带

1:2.5万~1:50万比例尺地形图按6°分带

例如:汶川县东经102°51′~103°44′、103/6≈17+31=48    即:WGS_1984_UTM_Zone_48N

CGCS2000投影带表示意义

CGCS2000_3_Degree_GK_CM_105E 

3°分带下的35带投影(横坐标没有带号)

CGCS2000_3_Degree_GK_Zone_35

3°分带下的35带投影(横坐标有带号)

CGCS2000_GK_CM_105E

6°分带下的18带投影(横坐标没有带号)

CGCS2000_GK_Zone_18

6°分带下的18带投影(横坐标有带号) 

3、前端如何实现投影坐标系转换为CGCS2000地理坐标系?

前端实现坐标系转换最常用的工具是proj4.js工具库。proj4.js是一个 JavaScript 库,用于在 Web 应用程序中执行地理坐标系统的转换。它是 Proj4 的 JavaScript 版本,适用于在浏览器中处理地理空间数据。以下是 Proj4.js 的一些关键特点:

1. 坐标转换:支持在不同的地理坐标系统之间进行转换,比如从 WGS84(常用于 GPS 数据)到 UTM 等。

2. 多种投影支持:与 Proj4 类似,Proj4.js 支持多种地理投影,例如墨卡托投影、兰伯特投影等,可以处理全球或局部的坐标转换需求。

3. 轻量级:作为一个 JavaScript 库,Proj4.js 设计为轻量且高效,适合在 Web 环境中使用,不会显著增加页面的负载。

4. 易于集成:可以与其他 JavaScript 地图库(如 Leaflet.js 和 OpenLayers)一起使用,扩展地图应用的功能。

5.开源:Proj4.js 是开源的,社区支持活跃,可以在 GitHub 上获取代码并贡献。

        通过 Proj4.js,开发者可以在 Web 项目中轻松处理地理坐标转换,实现复杂的地理空间功能。proj4官网:PROJ4JS | Proj4js

3.1、根据地区经度计算出分带名称

例如:临沂地区经纬度位于117度左右,通过分带计算公式可以求出临沂地区的分度带为 39度带,则临沂地区对应的CGCS2000对应的高斯克吕格投影坐标系为:CGCS2000 / 3-degree Gauss-Kruger zone 39

(1)在https://epsg.io/ (是一个提供地理空间参考系统信息的在线平台,需要梯子)网站中根据分带名称搜索对应的分带信息和转换参数

 

(2)找到CGCS2000坐标系的转换参数

 

 

3.2、安装proj4.js实现坐标转换

 (1)安装

npm install proj4

(2)使用proj4结合上一步中找到的转换参数进行转换得到转换后的数据

// CGCS2000 / 3-degree Gauss-Kruger zone 39
let from_system = "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=39500000 +y_0=0 +ellps=GRS80 +units=m +no_defs +type=crs"

// China Geodetic Coordinate System 2000
let to_system = "+proj=longlat +ellps=GRS80 +no_defs +type=crs";


// transform
let trasnformLnglat = proj4(from_system,to_system,[39624337.6595,3876411.9272]);

// 输出  :  [118.36213558429172, 35.00875250]

参考文章

培训一:坐标系与投影、栅格与矢量数据-太原市水利水保科学研究院

高斯克吕格投影分带计算_高斯克吕格投影3度分带-CSDN博客

### CGCS2000地理坐标系转换方法 #### ArcGIS中的CGCS2000坐标系转换 在ArcGIS环境中,可以利用其内置工具完成从其他坐标系统向CGCS2000转换。具体过程涉及多个步骤: 通过`arctoolbox`内的`数据管理工具 -> 投影变换 -> 要素 -> 投影`功能,能够指定源坐标系统以及目标坐标系统为CGCS2000[^3]。 对于已有的Shapefile文件,在将其导入至ArcMap之后,可以通过设置新的投影参数来改变该文件所使用的坐标体系;当需要调整整个工作区的地图投影时,则可以在`视图(View)`菜单下选择相应的选项来进行全局性的更改[^5]。 另外值得注意的是,在某些情况下为了提高精度,还需要先将原始数据转为中间过渡坐标系(如ITRF2000),再进一步映射到最终所需的CGCS2000上。 #### 前端实现CGCS2000坐标系转换 针对Web应用程序开发场景而言,前端也可以实现在特定条件下由一种坐标形式转变为另一种的形式。例如,在处理6°分带下的18带投影(坐标含带号)的情况下,JavaScript代码片段可用于执行此类操作: ```javascript function transformProjectionToCGCS2000(x, y){ // 这里假设存在一个函数用于实际的数学运算逻辑, // 实际应用中应替换为此处省略的具体算法实现。 let result = performMathematicalTransformation(x,y); return { longitude: result.longitude, latitude : result.latitude }; } ``` 此段伪代码展示了如何构建一个简单的接口去调用内部定义好的转换机制,从而达到把输入坐标的表示方式更改为符合CGCS2000标准的目的[^2]。 #### 使用专门软件进行批量转换 除了上述两种途径外,还有专门为满足大规模、高效能需求而设计的专业级解决方案——比如“MapGIS国土空间数据2000大地坐标系转换系统”。这类产品通常具备图形化界面友好、易于学习掌握的特点,并且支持多种格式的数据集作为输入/输出对象,非常适合于从事地理信息系统(GIS)相关工作的专业人士使用[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员咚咚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值