FutureWarning: This function is deprecated x2, y2 = transform(spatialRef, target_crs, point2.x, point2.y)
时间: 2024-04-21 22:22:45 浏览: 144
解决 warning 显示 The linear_assignment function is deprecated in 0.21 and will be removed from 0.23. Us…
抱歉,这是由于`pyproj.transform`函数中的`init`参数的使用方式已被弃用,导致出现了警告。请使用新的初始化方法来定义投影坐标系。
以下是更新后的示例代码:
```python
from shapely.geometry import Point
from pyproj import CRS, Transformer
# 定义投影坐标系
source_crs = CRS.from_epsg(4326) # WGS84经纬度坐标系
target_crs = CRS.from_epsg(3857) # 3857投影坐标系
# 定义两个点的经纬度坐标
lon1, lat1 = 120.1234, 30.5678
lon2, lat2 = 120.4321, 30.8765
# 创建Shapely点对象
point1 = Point(lon1, lat1)
point2 = Point(lon2, lat2)
# 创建投影转换器
transformer = Transformer.from_crs(source_crs, target_crs)
# 转换为投影坐标系3857
x1, y1 = transformer.transform(point1.x, point1.y)
x2, y2 = transformer.transform(point2.x, point2.y)
# 计算两点之间的距离
distance = Point(x1, y1).distance(Point(x2, y2))
print(f"The distance between the two points is {distance:.2f} meters.")
```
在这个更新后的示例中,我们使用了`CRS.from_epsg`方法来定义投影坐标系。
然后,我们创建了一个投影转换器 `Transformer`,通过 `Transformer.from_crs` 方法从源坐标系到目标坐标系。
最后,我们使用转换器的 `transform` 方法将点的经纬度坐标转换为目标投影坐标系 3857 中的坐标。
请确保你已经安装了最新版本的 `pyproj` 库,并根据你的实际需求进行必要的参数调整。
阅读全文