0_init.sql 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. -- 8.22
  2. -- nacos analyse服务添加下
  3. #
  4. 配置 feign 默认请求时间仅几秒钟
  5. ,配置请求时间长一些(毫秒)
  6. feign:
  7. client:
  8. config:
  9. default:
  10. connectTimeout: 600000
  11. readTimeout: 600000
  12. default-to-properties: false
  13. hystrix:
  14. enabled: false # 不要开启hystrix
  15. ,会导致超时配置不生效
  16. -- 8.27
  17. -- 新增
  18. -- base.t_fzss_fzxz_ai_district
  19. -- 修改
  20. -- base.t_fzss_zhxz_file
  21. -- 添加函数,去除小锐角
  22. drop function remove_smallangle;
  23. CREATE OR REPLACE FUNCTION remove_smallangle(jsonarg json)
  24. RETURNS VARCHAR AS $$
  25. DECLARE
  26. sql TEXT;
  27. records VARCHAR;
  28. begin
  29. execute format('
  30. create table %s as
  31. with t0 as(select id, st_removerepeatedPoints(geom,1e-6) geom from %s sa) ,
  32. t1 as(
  33. select id,(st_dump(geom)).path polygonPath, st_dumppoints((st_dump(geom)).geom) poly from t0
  34. ),t2 as (
  35. select id,polygonPath[1] polyID, (poly).path[1] ringId,(poly).path[2] pointID, (poly).geom from t1)
  36. , t3 as (
  37. select id,polyid, ringid, max(pointid) over (partition by id,polyid,ringid) maxid,
  38. lag(pointid) over() lagid, pointid, lead(pointid) over() leadid ,
  39. st_angle(lag(geom) over() , geom, lead(geom) over() ) angle, --st_distance(lag(geom) over() , geom) dist,
  40. geom
  41. from t2)
  42. , t4 as (
  43. select * from t3
  44. where angle is null or not( abs(angle) < %s or ( ''%s'' like ''是'' and abs(angle-pi()) < %s ) or abs(angle - 2*pi() ) < %s) )
  45. ,t41 as(
  46. select id,polyid,ringid, array_agg(geom) points from t4 group by id,polyid,ringid
  47. ),t42 as (
  48. select id,polyid,ringid,array_length(points, 1) cnt, st_angle(points[2], points[1],points[array_length(points, 1)-1] ) angle,points from t41)
  49. , t5 as(
  50. select id,polyid,ringid, st_makeline(
  51. case when ( abs(angle) < %s or ( ''%s'' like ''是'' and abs(angle-pi()) < %s ) or abs(angle - 2*pi() ) < %s )
  52. then array_append( points[2:array_length(points, 1)-1], points[2]) else points end ) geom
  53. from t42)
  54. , t6 as(
  55. select id, polyid, array_agg(geom) geom from t5 group by id, polyid)
  56. ,t7 as (
  57. select id, polyid, case array_length(geom,1) when 1 then st_makepolygon( geom[1]) else st_makepolygon(geom[1], geom[2:]) end geom from t6
  58. ) select id,st_collect(geom) from t7 group by id
  59. ', jsonarg->>'输出表',jsonarg->>'输入表',
  60. jsonarg->>'容差',jsonarg->>'去除平直线上的顶点',jsonarg->>'容差',jsonarg->>'容差',jsonarg->>'容差',jsonarg->>'去除平直线上的顶点',jsonarg->>'容差',jsonarg->>'容差');
  61. return 'OK';
  62. END;
  63. $$ LANGUAGE plpgsql;