postgis函数geometry去重 博客分类: GIS
程序员文章站
2024-02-25 08:28:28
...
postgis中多边形相交去重:
create or replace function difference(geom1 geometry , geom2 geometry ) returns geometry as $$ declare begin if st_intersects(geom1 , geom2) then return st_difference(geom1 , geom2); else return geom1 ; end if; end; $$ language plpgsql ;
该函数判断第二个参数和第一个参数是否有重合,有重合的话以第一个参数为模板去掉重合部分,没有重合则返回第一个参数。
postgis,根据两个经纬度返回矩形:
create or replace function points_to_polygon(lon1 numeric , lat1 numeric , lon2 numeric , lat2 numeric ) returns geometry as $$ select st_geomfromtext('POLYGON((' || lon1 || ' ' || lat1 || ',' || lon2 || ' ' || lat1 || ',' || lon2 || ' ' || lat2 || ',' || lon1 || ' ' || lat2 || ',' || lon1 || ' ' || lat1 || '))' , 4326); $$ language sql immutable ;