写在前面
学到一个奇怪的知识,但是先记录在这里吧
问题还原
已知南京的3度带投影坐标为,坐标系为:CGCS2000
x, y = 4269545.8455270305, 40373596.93238703
如果,我想将其转换为实际的经纬度坐标,该怎么办呢?
经纬度坐标也就是:wgs84 = pyproj.CRS("EPSG:4326")
这里记录一下学习的奇怪的知识
3度带/6度带
这里的有两个概念,我国采用6度分带和3度分带:
1∶2.5万及1∶5万的地形图
采用6度分带投影,即经差为6度,从零度子午线开始,自西向东每个经差6度为一投影带,全球共分60个带,用1,2,3,4,5,……表示.即东经0~6度为第一带,其中央经线的经度为东经3度,东经6~12度为第二带,其中央经线的经度为9度。
可以从下面的图来很形象的了解3度带/6度带的划分含义
当地中央经线经度的计算
六度带中央经线经度的计算:
- 当地中央经线经度=6°×当地带号-3°,
例如:地形图上的横坐标为20345,其所处的六度带的中央经线经度为:6°×20-3°=117°(适用于1∶2.5万和1∶5万地形图)。
三度带中央经线经度的计算:
- 中央经线经度=3°×当地带号(适用于1∶1万地形图)。
啥意思呢,就是说,可以根据提供的坐标y来知道对应的坐标系的带号。
比如,我这儿的y=40373596.93238703,说明带号是40
知道了这个带号有啥用呢,可以知道对应的CGCS2000的坐标系应该选哪个,因为CGCS2000有不同的参数.从下面的网址,我们可以查找到对40带号的CGCS2000_3_Degree的投影epsg为:4528
python转换
假设你要从CGCS2000(EPSG:4528)转换到WGS84(EPSG:4326),这在python里面就非常容易了,可以通过pyproj包来实现。
import pyproj
crs_in = pyproj.CRS("EPSG:4528") # Degree_GK_Zone_40
wgs84 = pyproj.CRS("EPSG:4326") # WGS 84
# 创建转换器
transformer = pyproj.Transformer.from_crs( crs_in , wgs84,)
# 给定坐标
x, y = 4269545.8455270305, 40373596.93238703
# 转换为 WGS 84 坐标系
lon, lat = transformer.transform(x, y)
print(f"Converted coordinates: Longitude = {lon}, Latitude = {lat}")
转换的结果,非常amazing啊。
https://www.cnblogs.com/xlx0210/archive/2010/08/23/1806578.html
https://blog.csdn.net/qq_41441896/article/details/104525296
https://developers.arcgis.com/javascript/3/jshelp/pcs.html