版本之间的已知差异

偶尔,新版本的PROJ会改变现有的行为。在本节中,我们将跟踪与以前行为不同的项目的有意更改。大多数情况下,这将是由一个错误修复引起的。不幸的是,有些bug已经存在太久了,它们的错误行为依赖于使用PROJ的软件。

这里不跟踪由新错误引起的行为变化,因为它们应该在以后版本的PROJ中修复。

版本4.6.0

默认的数据应用程序行为随4.6.0版本而更改。如果源坐标系和目标坐标系都有有效的基准偏移信息,PROJ现在只应用基准偏移。

proj4.6.0发行说明

专业:返工 pj_transform() 避免在没有可用的基准信息时,将椭球到椭球的变换应用为基准偏移。

版本5.0.0

使用自定义中央子午线时的经度环绕

默认情况下,PROJ将输出经度包装在-180到180的范围内。在项目5之前,当自定义中央子午线设置为 +lon_0 . 这导致产生的东距上的标志发生变化,如下所示:

$ proj +proj=merc +lon_0=110
-70 0
-20037508.34    0.00
290 0
20037508.34     0.00

从PROJ 5开始,相同的输入现在产生相同的坐标,如下面使用PROJ 5的示例所示:

$ proj +proj=merc +lon_0=110
-70 0
-20037508.34    0.00
290 0
-20037508.34    0.00

变更的依据是 \(\lambda=290^{{\circ}}\) 圆的完全旋转是否大于 \(\lambda=-70^{{\circ}}\) 因此,应该为两个返回相同的输出。

添加 +over 投影定义的标志提供了旧的行为。

版本6.0.0

删除 proj_def.dat

在项目6之前, proj_def.dat 用于提供常规和按投影的参数,当 +no_defs 未指定。它现在已经被移除了。如果在项目字符串中未提供椭球体或基准规范,则默认椭球体为GRS80(在以前的项目版本中为WGS84)。

改变到 deformation

相反的操作顺序

在的初始版本中 deformation 操作时间间隔 \(t_{{obs}}\)\(t_c\) 由表达式确定

\[dt=t\u c-t{obs}\]

在版本6.0.0中,为了与 Helmert operation ,将时间差确定为

\[dt=t{obs}-t\c\]

实际上,这意味着操作的方向已经反转,因此项目5中的正向操作现在是反向操作,反之亦然。

为项目5编写的管道可以通过添加 +inv 推进涉及变形操作的步骤。同样地 +inv 应从反向步骤中删除,以与项目6兼容。

远离的 +t_obs 参数

这个 +t_obs 由于参数在输入坐标中有效地重写了观测时间,因此用户感到困惑。为了更清楚地说明操作在做什么,现在要求用户直接指定希望应用给定变形的时间跨度。参数 +dt 已为此目的添加。新参数与 +t_epoch . +dt 在需要变形一定时间时使用,并且 +t_epoch 当需要从特定历元到观测时间的变形时,使用(与输入坐标的观测时间一起使用)。

版本6.3.0

projinfo项目

在Proj 6.3.0之前,WKT1:GDAL隐式调用 --boundcrs-to-wgs84 ,以添加一个 TOWGS84[] 节点,在某些情况下。情况已经不再是这样了。

版本7.0.0

PROJ

远离的 -ld 选项,因为它促进了不推荐使用的参数,如 +towgs+datum .

CS2CS

远离的 -ld 选项,因为它促进了不推荐使用的参数,如 +towgs+datum .

采用UTF-8

所有路径、通过函数调用传递给PROJ的文件名、PROJ字符串或环境变量的值都应该用UTF-8编码。