项目场景:
cesium加载WGS84坐标系,而计算软件中使用的是CGCS2000坐标,在python中实现坐标转换,后生成geojson用于web端展示
解决:
python中引入:
from pyproj import Transformer
from pyproj import CRS
代码:
其中:
EPSG:4326 -->WGS84
EPSG:4479 -->CGCS2000 meter
EPSG:4490 -->CGCS2000 degree
from_wkt后是.prj格式文件中的坐标信息内容,可以查找相应文件
# crs_CGCS2000 =CRS.from_epsg(4479) #meter#这两个都不行
# crs_CGCS2000=CRS.from_epsg(4490) #degree#这两个都不行
crs_CGCS2000=CRS.from_wkt('PROJCS["CGCS_2000_3_Degree_GK_CM_114E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",114.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]') #degree
crs_WGS84=CRS.from_epsg(4326)
from_crs = crs_CGCS2000
to_crs = crs_WGS84
transformer = Transformer.from_crs(from_crs, to_crs)
new_x,new_y = transformer.transform(x,y) #new_x,new_y即为转换后的坐标,也可以分别使用数组
x,y也可以用以下形式
x = (1,2,3,4)
x = [1,2,3,4]
y = (1,2,3,4)
y = [1,2,3,4]