对同一几何表中的两个点进行简单的PostGIS ST_Distance查询?


11

注意:这个问题在在发表#1

我有一个几何表points_table,里面SRID 4326有几点。

我需要从该表中找到一对点(特征)之间的距离。

我想选择一个点与id = X另一个点,id = Y然后用ST_Distance函数找到它们之间的距离。

我知道如何从数据库中查询这两点:

select * from points_table where id = X or id = Y;

但是此查询返回的结果不知道如何传递给ST_Distance,因为ST_Distance它需要2个参数。

我努力了 Select ST_Distance(select the_geom from points_table where id = X or id = Y);

但这显然是错误的。

如何从表格中找到两个几何点(特征)之间的距离?

PS到目前为止,我发现的所有示例都显示了ST_Distance用法,这些点已硬编码到ST_Distance函数的参数中。我还没有找到一个示例,其中ST_Distance用于计算同一张表中两个点之间的距离。

Answers:


28

您需要两次引用表,并为其赋予不同的别名:

SELECT ST_Distance(a.geom, b.geom)
FROM points_table a, points_table b
WHERE a.id='x' AND b.id='y';
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.