postgis判断两个几何数据是否完全重叠
使用场景:国家下发的监测图斑(polygon,wkt:4490)存储在表wp_gjygjctb中 ,根据业务要求对该表中的空间数据进行拆分,拆分后的数据存储在表wp_dktb_temp中,需要对拆分后的数据和拆分前的数据验证是否出现整体偏移的情况,实现思路为:获取表wp_dktb_temp拆分后的数据(可能是多个,面积为t_area),并获取表wp_gjygjctb中的对应的拆分前的数据,通过st_intersection计算两者的叠加面积(overlap_area),比较t_area和overlap_area是否相等来判断拆分数据是否有偏移情况。
SELECT
t.jcbh,
t.jcbh_xh,
t.geom AS geom_b,
g.geom AS geom_a,
cast( st_area(t.geom,true) * 0.0015 AS DECIMAL ( 10, 2 ) ) as t_area,
cast(
cast( st_area ( st_intersection ( g.geom, t.geom ), TRUE ) AS DECIMAL ) * 0.0015 AS DECIMAL ( 10, 2 )
) as overlap_area
FROM
( SELECT * FROM wp_dktb_temp WHERE xzqdm = #{xzqdm} and year = #{year} and quarter = #{quarter} ) t
LEFT JOIN wp_gjygjctb g ON t.YEAR = g.YEAR
AND t.QUARTER = g.QUARTER
AND t.jcbh = g.jcbh
xzqdm、year、quarter、jcbh关联wp_gjygjctb和wp_dktb_temp两表拆分前和拆分后的记录。