【问题标题】:Moving point after moving polygone in POSTGIS/PostgreSQL在 POSTGIS/PostgreSQL 中移动多边形后移动点
【发布时间】:2021-04-11 17:16:58
【问题描述】:

我想编写一个触发器,用于在更改另一个表中区域的几何形状后更新点的几何形状。

我在同一个模式中有两个表:

Tab1:id、geom(point)、linkedname

Tab2: id, geom(polygone), linkedname

更新表格后,该点应始终在具有相同链接名称的移动多边形的中心跳转。

有什么想法吗?我正在使用 PostgreSQL12.3 和 POSTGIS3。

谢谢!

【问题讨论】:

    标签: postgresql triggers geometry postgis


    【解决方案1】:

    你为什么需要第二张桌子?

    只需使用生成的列。每当您更改多边形时,它都会更新。

        create table tab2(
    id serial primary key,
        geom geometry(polygon),
        linkedname text,
    centroid geometry(point) GENERATED ALWAYS AS (st_centroid(geom)) stored
    );
    

    编辑

    您也可以使用视图而不是第二个表。视图的行为就像一个表,因此您可以将其链接到您的客户端。根据定义,这将始终是最新的,您不必担心触发器。

    create view tab1 as
    select id, linkedname, st_centroid(geom) as geom 
    from tab2;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-01
      • 1970-01-01
      • 2019-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-01
      相关资源
      最近更新 更多