from pyproj import Transformer # 点坐标转换 将地理坐标系转换为平面坐标系 transformer = Transformer.from_crs("epsg:4490", "epsg:4528", always_xy=True) point = [116, 30] r1 = transformer.transform(point[0], point[1]) print(r1, type(r1)) # (40113896.976026766, 3326859.0907140267) # 点坐标转换 将平面坐标系转换为地伦理坐标系 transformer1 = Transformer.from_crs("epsg:4528", "epsg:4490", always_xy=True) r2 = transformer1.transform(r1[0], r1[1]) # (40113896.976026766, 3326859.0907140267) print(r2, type(r2)) # (116.00000000000004, 29.999999999999996) # 转换面图形 from shapely.ops import transform from shapely import wkt from shapely import Polygon polygon1 = wkt.loads( 'POLYGON((119.757825964 29.994700644,119.757759991 29.994631079,119.757664084 29.994699986,119.757689324 29.994726602,119.757730057 29.994769558,119.757768634 29.994741839,119.757825964 29.994700644))') # 1 使用shapely.ops的转换方法 transPolygon1 = transform(transformer.transform, polygon1) print(transPolygon1) # 2 手动遍历转换 print(polygon1.exterior.coords) transform_coords = [transformer.transform(lon, lat) for lon, lat in polygon1.exterior.coords] print(transform_coords) transform2 = Polygon(transform_coords) print(transform2)