1234567891011121314151617181920212223242526272829 |
- 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) <class 'tuple'>
- # 点坐标转换 将平面坐标系转换为地伦理坐标系
- 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) <class 'tuple'>
- # 转换面图形
- 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)
|