36 lines
1.0 KiB
Python
36 lines
1.0 KiB
Python
from pyproj import Transformer
|
|
|
|
|
|
class Projector:
|
|
def __init__(self, from_epsg, to_epsg):
|
|
self._transformer = Transformer.from_crs(from_epsg, to_epsg)
|
|
|
|
def transform(self, y_lat, x_lon):
|
|
transformer = self._transformer
|
|
lat_y, lon_x = transformer.transform(y_lat, x_lon)
|
|
return lat_y, lon_x
|
|
|
|
|
|
EPSG_WGS_84 = "epsg:4326"
|
|
EPSG_CGCS_2000_105E = "epsg:4507"
|
|
EPSG_CGCS_2000_108E = "epsg:4545"
|
|
EPSG_Xian_1980_114E = "epsg:2383"
|
|
# _transformer_84_yx = Transformer.from_crs("epsg:4326", "epsg:4507")
|
|
# _transformer_yx_84 = Transformer.from_crs("epsg:4507", "epsg:4326")
|
|
|
|
# WGS 84 坐标转平面
|
|
# latitude 纬度
|
|
# longitude 经度
|
|
|
|
|
|
# def wgs_84_yx(latitude, longitude, _elevation):
|
|
# y, x = _transformer_84_yx.transform(latitude, longitude) # lon 和lat 可以是元组
|
|
# return y, x
|
|
#
|
|
#
|
|
# def yx_wgs_84(y, x, _elevation):
|
|
# latitude, longitude = _transformer_yx_84.transform(y, x) # lon 和lat 可以是元组
|
|
# return latitude, longitude
|
|
#
|
|
# def yx_2000_wgs_84(y, x, _elevation):
|