我想知道从ST_Distance返回的浮点数的单位是什么。

在文档中说:


...笛卡尔最小距离(基于空间ref)以投影单位表示的两个几何之间。


这些投影单位是什么?

几何存储在一个字段中:geometry(Point,4326)

#1 楼

我认为这是一段时间后PostGIS列表上最常见的问题:-)

如果您的数据在SRID 4326中,并且您使用geometry类型,则结果将没有任何意义。

要获得以米为单位的结果,只需将其强制转换为geography类型,ST_Distance就会计算沿大圆的距离,然后以米为单位返回。

geometry(Point,4326)::geography


另一种选择是基于合适的单位将数据投影到某些局部投影。那么答案将在该单位内。

评论


这是一个示例,用于查找表中两行之间的距离。SELECT ST_Distance(a.geom :: geography,b.geom :: geography)从pure_gis a,pure_gis b其中a.id ='1'和b.id = '2';

–布赖恩·麦考尔(Brian McCall)
17/09/22在20:35



#2 楼

来自http://postgis.net/docs/ST_Distance.html


-几何示例-平面度为4326的单位是WGS 84 long lat unit =度


如果给ST_Distance提供了两个几何,则假定这些几何确实在笛卡尔(或平面)坐标中。因此,单位与坐标中的单位相同-通常为米或英尺。

您的问题似乎是您的空间参考系统4326实际上使用了(角)地理坐标-纬度-度,因此结果以(有些意义)度。 >

评论


结果完全没有意义,甚至没有意义。

– Paul Ramsey
13年10月10日在20:41

@PaulRamsey。它们是否与我在PlateCaree投影上获得“测量”距离的距离相同?

–马丁F
13年11月11日,下午3:17

在PC上,您将获得线性单位,并且至少可以说“好吧,我知道这些单位会严重变形”。找回“度”,人们可能会想:“啊哈,我在这里有一个角度距离,只需要乘以2R就可以得到一个线性距离”。这些设备的测量质量很差,有可能造成更大的误导。 PC太可怕了,我不知道为什么它会得到一个投影名称...不保留距离,不保留方向,不保留区域...

– Paul Ramsey
13年11月11日13:21

PC会保留沿赤道且垂直于赤道的距离。除了所需的弧度和半径转换(不便之处,这是非常不便的)之外,在4326个几何图形上使用ST_Distance的结果将具有与将ST_Distance与投影几何图形一起使用时必须考虑的相同的缺点和益处。也许更好的辩论应该是(不是“有点”与“完全”毫无意义,而是)“是否应该允许ST_Distance和ST_Area返回给定4326几何形状的结果?”

–马丁F
13年11月11日17:41