进阶 postgis.net 2026-10-09 21:31:24 · 6 阅读
第22章 PostGIS 地理计算是在椭球面上进行的吗?
地理计算是在椭球面上进行的吗?
粗略来说,是的。如果计算两个地理点之间的距离,该计算基于附加在点上的 SRID 所定义的椭球面;若未指定,则默认为 WGS84。
不过,一般而言,PostGIS 在地理计算中会结合球面和椭球面算法。
例如,当计算两个多边形之间等复杂对象的距离时,算法分为几步:
首先,遍历多边形的边,找出最近的边。 然后,取这两条边上距离最近的两个点,计算它们之间的距离。
在第一步——寻找最近边的过程中,PostGIS 使用球面距离。如果在椭球面上进行计算,我们将执行大量极其昂贵的运算,最终却只是为了丢弃那些简单的球面计算同样会丢弃的边。 在第二步中,在确定了最近点(这两个点可能是两个顶点,或一个顶点与边上某投影点)之后,PostGIS 使用椭球面距离计算它们之间的间距。
总体而言,仅使用椭球面计算复杂形状之间的距离,在极少数情况下会改变结果,且变化幅度极小。