You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

计算圆形坐标时如何将pyproj 1.x代码适配到pyproj 3.6.0?

适配pyproj 3.6.0的圆形坐标计算代码修改

以下是消除弃用警告的修改后的代码:

from shapely import ops
from shapely.geometry import Point
from pyproj import CRS, Transformer

def circleByPoint(lat, lon, km=5):
    # WGS84坐标系(EPSG:4326)
    crs_wgs84 = CRS.from_epsg(4326)
    # 以目标经纬度为中心的等距方位投影
    aeqd_crs = CRS.from_proj_string(f'+proj=aeqd +lat_0={lat} +lon_0={lon} +x_0=0 +y_0=0')
    # 创建坐标转换器(从投影坐标系转WGS84)
    transformer = Transformer.from_crs(aeqd_crs, crs_wgs84, always_xy=True)
    # 创建指定半径的缓冲圆(单位:米)
    buf = Point(0, 0).buffer(km * 1000)
    # 转换几何对象并提取圆形边界坐标
    return ops.transform(transformer.transform, buf).exterior.coords[:]

关键改动说明:

  • 替换旧的Proj类为CRS类:pyproj 2.x+版本推荐使用CRS管理坐标参考系,更规范且避免弃用问题
  • 用Transformer.from_crs替代transform函数:这是pyproj新版本的标准坐标转换方式,完全替代旧的partial(transform, ...)写法
  • 添加always_xy=True参数:确保坐标转换时始终遵循**经度(x)/纬度(y)**的顺序,避免因投影轴顺序差异导致的坐标混乱
  • 移除不必要的functools.partial依赖:新的Transformer用法无需额外包装函数

内容的提问来源于stack exchange,提问作者mikezang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 03:16:05