python 对不同坐标系之间坐标点转换

不同坐标系下,点的转换函数。以备查阅

python 复制代码
# -*- coding:utf-8 -*-
# 定义坐标转换函数
import pandas as pd
import pyproj

WGS84= r"GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0],UNIT[\"degree\",0.0174532925199433],AUTHORITY[\"EPSG\",\"4326\"]]"


EPSG4549 = r'PROJCS["CGCS2000_3_Degree_GK_CM_120E",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",120.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]'


Test = 'PROJCS["CGCS2000_3_Degree_GK_CM_120E",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",120.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4549]]'
# def convert_to_cgcs2000(lat, lon):
def convert_to_cgcs2000(lon,lat):
    # transformer = pyproj.Transformer.from_crs("epsg:4326", "epsg:4521", always_xy=True)
    # transformer = pyproj.Transformer.from_crs("epsg:4326", "epsg:4543", always_xy=True)
    # transformer = pyproj.Transformer.from_crs(WGS84, CGCS2000_3_120, always_xy=True)
    transformer = pyproj.Transformer.from_crs(WGS84, Test, always_xy=True)
    cgcs2000_lon, cgcs2000_lat = transformer.transform(lon, lat)
    return cgcs2000_lat, cgcs2000_lon


if __name__ == '__main__':
    Lng = 120.557994
    Lat = 24.292394
    cgcs2000_lat, cgcs2000_lon = convert_to_cgcs2000(Lng,Lat)
    print("Lng:{},Lat:{},cgcs2000_lat:{}, cgcs2000_lon:{}".format(Lng,Lat,cgcs2000_lat, cgcs2000_lon))
相关推荐
2601_962294617 分钟前
python中range函数怎么用
python·for循环·可迭代对象·range函数·整数列表
青 春 记 忆1 小时前
零基础入门python70:Docker Compose 编排完整后端
python·后端开发
新时代牛马1 小时前
字符设备驱动完整篇:从 cdev_add、file_operations 到chrdev_open 与排障
开发语言·python
白山编程大哥2 小时前
Java OutputStreamWriter 详解:从字符到字节的桥梁
java·开发语言·python
落羽的落羽3 小时前
【AI】快速理解AI应用的相关名词概念
linux·c++·人工智能·python·计算机网络·算法
Chasing__Dreams3 小时前
大模型应用开发--13--RAG 查询优化策略
python
“AI国潮设计-小江”3 小时前
《Python实战 | SDXL大模型批量生成“英歌舞海浪”蛋糕IP,附核心Prompt控制代码与IP授权变现思路》
人工智能·python·prompt·aigc
znnnk4 小时前
【Python】GUI 开发从入门到实战(三):PyQt/PySide 进阶之路
开发语言·python·pyqt
触底反弹5 小时前
面试被问到 Text2SQL,我用 DeepSeek 自己实现了一个
python·sqlite
2601_962295586 小时前
python+selenium实现自动化测试
自动化测试·python·selenium·学习心得·web端测试