comparison pkg/imports/fd.go @ 5031:8c590ef35280

Improve feedback if geometry cannot be stored This is also a backout of rev. 36a3dce20232
author Tom Gottfried <tom@intevation.de>
date Wed, 18 Mar 2020 19:19:09 +0100
parents 737d7859dd86
children afc242588642
comparison
equal deleted inserted replaced
5030:737d7859dd86 5031:8c590ef35280
156 min_width, 156 min_width,
157 max_width, 157 max_width,
158 min_depth, 158 min_depth,
159 date_info, 159 date_info,
160 source_organization) 160 source_organization)
161 SELECT dmp.geom, $3, $4, $5, $6, $7, $8 161 SELECT
162 FROM ST_GeomFromWKB($1, $2::integer) AS new_fd (new_fd),
163 ST_Multi(ST_CollectionExtract(ST_MakeValid(ST_Transform( 162 ST_Multi(ST_CollectionExtract(ST_MakeValid(ST_Transform(
164 CASE WHEN pg_has_role('sys_admin', 'MEMBER') 163 CASE WHEN pg_has_role('sys_admin', 'MEMBER')
165 THEN new_fd 164 THEN new_fd
166 ELSE ST_Intersection( 165 ELSE ST_Intersection(
167 (SELECT ST_Buffer(a, -0.0001) FROM resp), 166 (SELECT ST_Buffer(a, -0.0001) FROM resp),
168 ST_MakeValid(ST_Transform(new_fd, (SELECT ST_SRID(a) FROM resp)))) 167 ST_MakeValid(ST_Transform(new_fd, (SELECT ST_SRID(a) FROM resp))))
169 END, 168 END,
170 4326)), 3)) AS dmp (geom) 169 4326)), 3)),
171 WHERE NOT ST_IsEmpty(dmp.geom) 170 $3, $4, $5, $6, $7, $8
171 FROM ST_GeomFromWKB($1, $2::integer) AS new_fd (new_fd)
172 WHERE pg_has_role('sys_admin', 'MEMBER')
173 OR ST_Intersects((SELECT a FROM resp),
174 ST_MakeValid(ST_Transform(new_fd, (SELECT ST_SRID(a) FROM resp))))
172 RETURNING id, 175 RETURNING id,
173 ST_X(ST_Centroid(area::geometry)), 176 ST_X(ST_Centroid(area::geometry)),
174 ST_Y(ST_Centroid(area::geometry)) 177 ST_Y(ST_Centroid(area::geometry))
175 ` 178 `
176 ) 179 )
338 if len(unsupported) != 0 { 341 if len(unsupported) != 0 {
339 feedback.Warn("Unsupported types found: %s", unsupported) 342 feedback.Warn("Unsupported types found: %s", unsupported)
340 } 343 }
341 344
342 if outside > 0 { 345 if outside > 0 {
343 feedback.Info( 346 feedback.Info("Features outside responsibility area: %d", outside)
344 "Features outside responsibility area or no valid polygon: %d",
345 outside)
346 } 347 }
347 348
348 if features == 0 { 349 if features == 0 {
349 return nil, UnchangedError("No features found") 350 return nil, UnchangedError("No features found")
350 } 351 }