comparison pkg/imports/dma.go @ 2912:93fa55bce126

Add utility function to get users area of responsibility
author Tom Gottfried <tom@intevation.de>
date Tue, 02 Apr 2019 19:25:17 +0200
parents 1b6840093eac
children 899b591493b4
comparison
equal deleted inserted replaced
2911:a75c546ef498 2912:93fa55bce126
75 } 75 }
76 76
77 const ( 77 const (
78 deleteDistanceMarksSQL = ` 78 deleteDistanceMarksSQL = `
79 WITH resp AS ( 79 WITH resp AS (
80 SELECT best_utm(area) AS t, 80 SELECT users.current_user_area_utm() AS a
81 ST_Transform(area::geometry, best_utm(area)) AS a
82 FROM users.responsibility_areas
83 WHERE country = users.current_user_country()
84 ) 81 )
85 DELETE FROM waterway.distance_marks 82 DELETE FROM waterway.distance_marks
86 WHERE ST_Covers( 83 WHERE ST_Covers(
87 (SELECT a FROM resp), 84 (SELECT a FROM resp),
88 ST_Transform(geom::geometry, (SELECT t FROM resp))) 85 ST_Transform(geom::geometry, (SELECT ST_SRID(a) FROM resp)))
89 ` 86 `
90 insertDistanceMarksSQL = ` 87 insertDistanceMarksSQL = `
91 WITH resp AS ( 88 WITH resp AS (
92 SELECT best_utm(area) AS t, 89 SELECT users.current_user_area_utm() AS a
93 ST_Transform(area::geometry, best_utm(area)) AS a
94 FROM users.responsibility_areas
95 WHERE country = users.current_user_country()
96 ) 90 )
97 INSERT INTO waterway.distance_marks (geom, catdis) 91 INSERT INTO waterway.distance_marks (geom, catdis)
98 SELECT ST_Transform(clipped.geom, 4326)::geography, $3 FROM ( 92 SELECT ST_Transform(clipped.geom, 4326)::geography, $3 FROM (
99 SELECT (ST_Dump( 93 SELECT (ST_Dump(
100 ST_Intersection( 94 ST_Intersection(
101 (SELECT a FROM resp), 95 (SELECT a FROM resp),
102 ST_Transform( 96 ST_Transform(
103 ST_GeomFromWKB($1, $2::integer), 97 ST_GeomFromWKB($1, $2::integer),
104 (SELECT t FROM resp) 98 (SELECT ST_SRID(a) FROM resp)
105 ) 99 )
106 ) 100 )
107 )).geom AS geom 101 )).geom AS geom
108 ) AS clipped 102 ) AS clipped
109 WHERE clipped.geom IS NOT NULL 103 WHERE clipped.geom IS NOT NULL