通过比较来自其他 table 的几何列来更新 table 列

Update table column by comparing geometry columns from other table

我有 2 个 table。 1. 岛屿 2. 地区

我想使用 st_distance 函数更新基于最近区域的岛屿 table 区域列。例如对于 g1,st_distance(g1, geom1), st_distance(g1, geom2)... st_distance(g1, geom4) 并使用最接近的距离更新 g1 几何的区域列。

可以这样工作:

UPDATE island
SET region = (SELECT regions.geom <-> island.geom
              FROM regions
              ORDER BY regions.geom <-> island.geom
              LIMIT 1);

这可以在 regions(geom) 上使用 GiST 索引,但如果 island 很大,它仍然需要一段时间。