Python pyproj FutureWarning:&x27+;初始化=<;权威>;:&书信电报;代码>';语法已弃用

Python pyproj FutureWarning:&x27+;初始化=<;权威>;:&书信电报;代码>';语法已弃用,python,pyproj,Python,Pyproj,有一个类似的问题,那里的答案对我没有帮助 我使用下面的helper类数百次,我的控制台上充斥着警告: /opt/local/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pyproj/crs/crs.py:53: FutureWarning: '+init=<authority>:<code>' syntax is deprecated. '<authorit

有一个类似的问题,那里的答案对我没有帮助

我使用下面的helper类数百次,我的控制台上充斥着警告:

/opt/local/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pyproj/crs/crs.py:53: FutureWarning: '+init=<authority>:<code>' syntax is deprecated. '<authority>:<code>' is the preferred initialization method. When making the change, be mindful of axis order changes: https://pyproj4.github.io/pyproj/stable/gotchas.html#axis-order-changes-in-proj-6
  return _prepare_from_string(" ".join(pjargs))

当我尝试使用以下命令来遵循提示时:

return transform(Proj('epsg:4326'), Proj('epsg:3857'), lon,lat)
在原始代码有效的情况下,我会得到一些(inf,inf)结果。避免语法错误但获得相同结果的正确方法是什么?

显示兼容的新语句的旧语法,但没有代码示例

国家:

作为代码示例,这意味着什么?

从pyproj导入项目,转换

class Projection:
    @staticmethod
    def wgsToXy(lon,lat):
        return transform(Proj(init='epsg:4326'), Proj(init='epsg:3857'), lon,lat)

    @staticmethod
    def pointToXy(point):
        xy=point.split(",")
        return Projection.wgsToXy(float(xy[0]),float(xy[1]))

这是我目前对修复的猜测:

    #e4326=Proj(init='epsg:4326')
    e4326=CRS('EPSG:4326')
    #e3857=Proj(init='epsg:3857')
    e3857=CRS('EPSG:3857')
投影辅助类

from pyproj import Proj, CRS,transform

class Projection:
    '''
    helper to project lat/lon values to map
    '''
    #e4326=Proj(init='epsg:4326')
    e4326=CRS('EPSG:4326')
    #e3857=Proj(init='epsg:3857')
    e3857=CRS('EPSG:3857')

    @staticmethod
    def wgsToXy(lon,lat):
        t1=transform(Projection.e4326,Projection.e3857, lon,lat)
        #t2=transform(Proj('epsg:4326'), Proj('epsg:3857'), lon,lat)
        return t1

    @staticmethod
    def pointToXy(point):
        xy=point.split(",")
        return Projection.wgsToXy(float(xy[0]),float(xy[1]))

为了继续使用旧语法(馈送变压器
(Lon,Lat)
对),您可以在创建变压器对象时使用
始终_xy=True
参数:

来自pyproj导入转换器
transformer=transformer.from_crs(43263877,始终为_xy=True)
点数=[
(6.783333,51.233333),#杜塞尔多夫
(-122.41689,37.7775)旧金山
]
对于变压器中的pt.itransform(点):
打印(pt)
输出

(755117.1754412088, 6662671.876828446)
(-13627330.088231295, 4548041.532457043)

始终使用xy;引用pyproj:
如果源和目标CR被定义为具有北向的第一个坐标分量点,则可以交换轴顺序(请参见关于轴顺序的项目FAQ)。可以使用pyproj.crs.crs类检查轴顺序。如果您希望始终保持轴的顺序为x,y,则可以在创建pyproj.transformer.transformer时使用always_xy选项。
@Ionut Ticus-这对我来说是希腊语。我对语法弃用的解决方法很感兴趣
(755117.1754412088, 6662671.876828446)
(-13627330.088231295, 4548041.532457043)