Advertisement
Guest User

Untitled

a guest
Jul 19th, 2019
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.71 KB | None | 0 0
  1. CREATE OR REPLACE FUNCTION sliver_killer(geometry,float) RETURNS geometry AS
  2. $$ SELECT ST_BuildArea(ST_Collect(a.geom)) as final_geom
  3. FROM ST_DumpRings($1) AS a
  4. WHERE a.path[1] = 0 OR
  5. (a.path[1] > 0 AND ST_Area(a.geom) > $2)
  6. $$
  7. LANGUAGE 'sql' IMMUTABLE;
  8.  
  9. UPDATE merged SET geom = sliver_killer(geom,50::float);
  10.  
  11. SELECT st_buffer(st_buffer(geom,1,'join=mitre'),-1,'join=mitre') FROM mygeotable;
  12.  
  13. SELECT st_intersection(st_buffer(st_buffer(geom,-1,'join=mitre'),1,'join=mitre'),geom) FROM mygeotable;
  14.  
  15. SELECT st_intersection(
  16. st_buffer(
  17. st_buffer(geom, 1, 'join=mitre mitre_limit=1.0'
  18. ), -1, 'join=mitre mitre_limit=1.0'
  19. ), geom) as
  20. FROM _mygeotable_ ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement