gpt4 book ai didi

postgresql - 对一张表内的要素运行 ST_intersects 的最佳方式?

转载 作者:行者123 更新时间:2023-11-29 12:08:35 27 4
gpt4 key购买 nike

我有一个 LineString 特征表,我想确定哪些线相交。ST_Intersects(geom1, geom2) 需要来自两个不同表的两个几何图形。现在我正在为同一张表创建两个不同的引用,这似乎不是正确的方法。

我目前正在使用以下代码,我很好奇是否有更好的方法来完成此操作。当然,在一个表中运行特征相交一定是一项常见任务。

    SELECT a.link_id as a_link_id,
b.link_id as b_link_id,
st_intersects(a.geom, b.geom)
INTO results_table
FROM table_one a, table_one b
WHERE a.link_id != b.link_id;

PostGIS 2.4.0PG 9.6.5

最佳答案

你的方法没问题。唯一的问题是它会返回重复的记录。例如,如果两条线分别与 ID 10 和 11 相交。结果中每个 ID 将有两行,即使这些线只相交一次。您可以使用 > 或 < 运算符代替 != 来满足此要求。相交条件出现在我猜的地方

SELECT a.link_id as a_link_id,
b.link_id as b_link_id
INTO results_table
FROM table_one a, table_one b
WHERE a.link_id < b.link_id AND st_intersects(a.geom, b.geom)

关于postgresql - 对一张表内的要素运行 ST_intersects 的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48978616/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com