【发布时间】:2020-08-11 13:04:10
【问题描述】:
我正在尝试创建一个查询,该查询将返回不与线相交的点列表。在大多数情况下,它工作得很好而且非常快。不过我想知道最近的线路有多远。
我尝试使用 st_distance 函数,但它返回 null。有没有人有任何提示或指导来帮助我解决这个问题?
这是我目前的 SQL 语句:
SELECT p.objectid, p.voidentifier, p.featuretypecd, p.heightagl, st_distance(p.geom::geography, l.geom::geography), p.geom
FROM vo_point p
LEFT JOIN vo_line l ON ST_Intersects(p.geom, l.geom)
WHERE l.featureid IS NULL
and p.featuretypecd in ('537','538','540','541','542','543','544');
【问题讨论】:
-
您好,您能提供一些数据样本吗?
-
首先,st_distance 返回null,因为你的左连接返回所有的null 记录。此外,您正在将所有几何转换为地理,这会减慢速度。你会用地理吗?
标签: sql postgresql postgis